
/* DUST – Stratos layout (scoped) */
.dsp-product { margin: 0; }
.dsp-container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

.dsp-top { padding: 40px 0 10px; }
.dsp-top-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 42px; align-items: center; }

.dsp-gallery .dsp-main-image { border-radius: 16px; overflow: hidden; background: rgba(0,0,0,.04); }
.dsp-gallery .dsp-main-image img { width: 100%; height: auto; display: block; }

.dsp-thumbs { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.dsp-thumb { border: 0; background: transparent; padding: 0; cursor: pointer; border-radius: 12px; overflow: hidden; outline: none; }
.dsp-thumb img { width: 68px; height: 68px; object-fit: cover; display: block; border-radius: 12px; opacity: .9; }
.dsp-thumb:hover img { opacity: 1; }

.dsp-title { margin: 0; line-height: 1.05; letter-spacing: .02em; font-size: clamp(28px, 3vw, 44px); }
.dsp-price { margin-top: 10px; font-size: 16px; opacity: .9; }
.dsp-subtitle { margin-top: 8px; text-transform: uppercase; letter-spacing: .14em; font-size: 12px; opacity: .65; }
.dsp-text { margin-top: 16px; font-size: 15px; line-height: 1.7; opacity: .9; max-width: 56ch; }

.dsp-actions { margin-top: 22px; display: grid; gap: 10px; max-width: 420px; }
.dsp-btn { display: inline-flex; justify-content: center; align-items: center; gap: 10px;
  padding: 14px 16px; border-radius: 10px; text-decoration: none; cursor: pointer;
  font-size: 14px; border: 1px solid rgba(0,0,0,.14);
  background: transparent; color: inherit;
}
.dsp-btn-primary { background: #111; border-color: #111; color: #fff; }
.dsp-btn-outline { background: transparent; }
.dsp-fav-btn.is-active { border-color: #111; box-shadow: inset 0 0 0 1px #111; }

.dsp-fullbleed { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.dsp-realizations { background: #0f0f10; padding: 34px 0; margin-top: 24px; }
.dsp-realizations-inner { width: 100%; margin: 0 auto; padding: 0; position: relative; }
.dsp-realizations-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 10px 0; }
.dsp-realizations-track::-webkit-scrollbar { height: 6px; }
.dsp-real-item { flex: 0 0 62%; scroll-snap-align: center; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,.06); }
.dsp-real-item img { width: 100%; height: auto; display: block; }


.dsp-desc { padding: 46px 0 60px; }
.dsp-split { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: start; }
.dsp-split-img img { width: 100%; height: auto; display: block; }
.dsp-h2 { margin: 0 0 14px; font-size: 26px; letter-spacing: .04em; }
.dsp-h3 { margin: 0 0 12px; font-size: 18px; }
.dsp-content { line-height: 1.8; font-size: 15px; opacity: .95; }


.dsp-tech-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.dsp-tech-item img { width: 100%; height: auto; display: block; border-radius: 18px; }

.dsp-tech-dims { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-top: 34px; padding-top: 28px; border-top: 1px solid rgba(0,0,0,.1); }
.dsp-tech img { width: 100%; height: auto; display: block; }
.dsp-dims-list { margin: 0; padding-left: 18px; line-height: 1.9; }
.dsp-dims-chairs { opacity: .75; }
.dsp-muted { opacity: .6; }

.dsp-faq { margin-top: 34px; padding-top: 24px; border-top: 1px solid rgba(0,0,0,.1); }
.dsp-details { border: 1px solid rgba(0,0,0,.1); border-radius: 12px; padding: 12px 14px; margin: 12px 0; }
.dsp-details summary { cursor: pointer; font-weight: 600; }
.dsp-details-body { margin-top: 10px; opacity: .9; line-height: 1.7; }

/* Modal */
.dsp-modal[hidden]{ display:none !important; }
.dsp-modal { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; }
.dsp-modal-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.dsp-modal-card { position: relative; width: min(720px, calc(100vw - 28px)); max-height: calc(100vh - 28px);
  overflow: auto; background: #fff; border-radius: 16px; padding: 18px 18px 22px;
}
.dsp-modal-close { position: absolute; top: 10px; right: 12px; font-size: 24px; border:0; background: transparent; cursor: pointer; }

@media (max-width: 980px){
  .dsp-top-grid { grid-template-columns: 1fr; gap: 18px; }
  .dsp-actions { max-width: 100%; }
  .dsp-split, .dsp-tech-dims { grid-template-columns: 1fr; }
  .dsp-real-item { flex-basis: 86%; }
  }


/* Realizacje – slider jak na screenie (center + side preview + wskaźnik) */
.dsp-realizations { background: #0f0f10; padding: 64px 0; margin-top: 26px; }
.dsp-realizations-inner { max-width: none; width: 100%; margin: 0; padding: 0; position: relative; }
.dsp-realizations-viewport { overflow: hidden; }
.dsp-realizations-track {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 10vw 18px;
  scrollbar-width: none;
}
.dsp-realizations-track::-webkit-scrollbar { display:none; }

.dsp-real-item {
  flex: 0 0 min(84vw, 1100px);
  scroll-snap-align: center;
  border-radius: 26px;
  overflow: hidden;
  background: rgba(255,255,255,.06);
  opacity: .42;
  transform: scale(.92);
  transition: opacity .25s ease, transform .25s ease;
  aspect-ratio: 16 / 9;
}
.dsp-real-item.is-active { opacity: 1; transform: scale(1); }
.dsp-real-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dsp-dots { display: flex; gap: 10px; justify-content: center; align-items: center; padding-top: 10px; }
.dsp-dot { width: 54px; height: 4px; border-radius: 99px; background: rgba(255,255,255,.22); border:0; cursor: pointer; }
.dsp-dot.is-active { background: rgba(255,255,255,.95); }

@media (max-width: 980px){
  .dsp-realizations { padding: 46px 0; }
  .dsp-realizations-track { padding: 0 6vw 16px; gap: 18px; }
  .dsp-real-item { flex-basis: 88vw; border-radius: 18px; aspect-ratio: 4 / 3; transform: scale(.95); }
}


.dsp-dims-table-wrap{overflow:auto;}
.dsp-dims-table{width:100%;border-collapse:separate;border-spacing:0;background:rgba(0,0,0,.03);border-radius:14px;overflow:hidden;}
.dsp-dims-table th,.dsp-dims-table td{padding:14px 16px;font-size:14px;line-height:1.4;}
.dsp-dims-table th{width:44%;text-align:left;opacity:.85;font-weight:600;}
.dsp-dims-table tr+tr th,.dsp-dims-table tr+tr td{border-top:1px solid rgba(0,0,0,.06);}


/* FAQ – styl jak na /kontakt/ (rounded cards + plus/minus) */
.dsp-accordion { display: grid; gap: 18px; }
.dsp-details { background: #f3f6f7; border-radius: 20px; padding: 22px 22px; border: 0; }
.dsp-details summary { list-style: none; cursor: pointer; font-weight: 700; font-size: 18px; display:flex; align-items:center; justify-content: space-between; gap: 16px; }
.dsp-details summary::-webkit-details-marker { display:none; }
.dsp-details summary::after { content: "+"; font-size: 26px; line-height: 1; opacity: .9; }
.dsp-details[open] summary::after { content: "–"; }
.dsp-details-body { margin-top: 14px; opacity: .9; line-height: 1.9; font-size: 15px; }



.dsp-wishlist-proxy{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}


/* v1.0.4 – Realizacje full width + większe slajdy + strzałki */
.dsp-realizations { background: #0f0f10; padding: 46px 0; margin-top: 26px; }
.dsp-realizations-viewport { overflow: hidden; }
.dsp-realizations-track {
  display:flex;
  gap: 28px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding: 10px 8vw 18px;
  scrollbar-width:none;
}
.dsp-realizations-track::-webkit-scrollbar{display:none;}
.dsp-real-item{
  flex: 0 0 min(84vw, 1400px);
  scroll-snap-align:center;
  border-radius: 22px;
  overflow:hidden;
  background: rgba(255,255,255,.06);
  opacity: .42;
  transform: scale(.92);
  transition: opacity .2s ease, transform .2s ease;
  cursor: pointer;
}
.dsp-real-item.is-active{opacity:1; transform: scale(1);}
.dsp-real-item img{width:100%; height:auto; display:block;}

.dsp-real-arrow{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(0,0,0,.35);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index: 5;
}
.dsp-real-prev{ left: 22px; }
.dsp-real-next{ right: 22px; }

@media (max-width: 780px){
  .dsp-realizations-track{ padding-left: 6vw; padding-right: 6vw; }
  .dsp-real-arrow{ display:none; }
}

/* Lightbox */
.dsp-lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.88);
  z-index: 99999;
  display:none;
  align-items:center;
  justify-content:center;
  padding: 24px;
}
.dsp-lightbox.is-open{display:flex;}
.dsp-lightbox-inner{position:relative; width:min(96vw, 1400px);}
.dsp-lightbox-img{width:100%; height:auto; display:block; border-radius: 14px;}
.dsp-lightbox-close{
  position:absolute; top:-16px; right:-16px;
  width: 42px; height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(0,0,0,.45);
  color:#fff;
  font-size: 22px;
  cursor:pointer;
}
.dsp-lightbox-nav{
  position:absolute; top:50%;
  transform: translateY(-50%);
  width: 46px; height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(0,0,0,.45);
  color:#fff;
  font-size: 28px;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.dsp-lightbox-prev{ left: -10px; }
.dsp-lightbox-next{ right: -10px; }




/* v1.0.6 – Wishlist proxy must stay renderable for Blocksy init (but off-screen) */
.dsp-wishlist-proxy{
  position:absolute !important;
  left:-9999px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}


/* Add to cart + variation size grid (v1.0.6.11) */
.dsp-cart{ margin-top: 18px; }
.dsp-cart form.cart{ margin: 0; }
.dsp-cart form.cart.has-dsp-variation-ui .variations{ display:none; } /* hide default table selects (we render custom UI) */
.dsp-cart form.cart .reset_variations{ display:none !important; }
.dsp-cart form.cart .single_variation_wrap{ margin-top: 12px; }
.dsp-cart form.cart .quantity{ margin-right: 10px; }

.dsp-variation-block{ margin-top: 14px; }
.dsp-variation-label{
  font-weight: 600;
  margin-bottom: 10px;
  display:block;
}
.dsp-variation-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
}
@media (max-width: 640px){
  .dsp-variation-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
.dsp-variation-opt{
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 10px;
  padding: 14px 12px;
  background: #fff;
  font-weight: 500;
  text-align:center;
  cursor:pointer;
  line-height: 1.15;
  transition: border-color .15s ease, transform .05s ease, opacity .15s ease;
  user-select:none;
}
.dsp-variation-opt:hover{ border-color: rgba(0,0,0,.25); }
.dsp-variation-opt:active{ transform: translateY(1px); }
.dsp-variation-opt.is-selected{ border-color: rgba(0,0,0,.85); box-shadow: inset 0 0 0 1px rgba(0,0,0,.85); }
.dsp-variation-opt.is-disabled{
  opacity: .35;
  cursor:not-allowed;
}


/* HERO (optional) */
.dsp-hero{ position: relative; margin-bottom: 10px; }
.dsp-hero-inner{ position: relative; width: 100%; }
.dsp-hero-img{ width: 100%; height: min(72vh, 780px); object-fit: cover; display:block; }
.product-background-scroll{
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  width: 52px;
  height: 52px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor: pointer;
  opacity: .9;
  border-radius: 999px;
  background: rgba(0,0,0,.15);
  backdrop-filter: blur(4px);
  animation: dspScrollPulse 1.6s ease-in-out infinite;
}
.product-background-scroll svg{ display:block; }
@keyframes dspScrollPulse{
  0%,100%{ transform: translateX(-50%) translateY(0); opacity: .9; }
  50%{ transform: translateX(-50%) translateY(8px); opacity: .65; }
}

.dsp-split-cta-inline { margin: 18px 0 18px; }
.dsp-split-cta-inline .dsp-btn-cta { width: 100%; max-width: 520px; }
