/* Jedno ciągłe tło bez linii podłogi, wielka nazwa modelu za sofą, informacje wprost na scenie. */
:root{
  --beż:#d1bfa7;
  --grafit:#1d2523;
  --d:min(94vw,calc(70svh*1.5),1180px);
  --k:#777;
}
:root{
  /* --tlo i --wielka ustawia skrypt z koloru sofy stojącej z przodu. */
  --tlo:#e4dccf;--wielka:#c9bba6;--swiatlo:radial-gradient(70% 60% at 50% 62%,rgba(255,255,255,.34) 0,transparent 75%);
  --tekst:#1d2523;--szary:#2d3430;--t:29,37,35;--logo:brightness(.2);
  --guzik:#1d2523;--guzik-t:#f6f1e8;--cien:rgba(30,24,16,.42);
}
*{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:Lato,Verdana,Arial,sans-serif;color:var(--tekst);background:var(--tlo);overflow-x:hidden;transition:background-color .5s}
a{color:inherit}
button{font:inherit;color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--tekst);outline-offset:3px}

.butik{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;position:relative;background:var(--swiatlo)}
.gora{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:18px clamp(16px,3vw,40px);position:relative;z-index:150}
.gora img{display:block;height:clamp(38px,6vh,56px);width:auto;filter:var(--logo)}
.gora nav{justify-self:end;display:flex;gap:clamp(12px,2vw,28px);font-weight:700;font-size:16px}
.gora nav a{text-decoration:none;text-underline-offset:3px}
.gora nav a:hover{text-decoration:underline}
.kolekcje,.filtry{display:inline-flex;gap:2px}
.kolekcje button,.filtry button{background:none;border:0;border-bottom:2px solid transparent;padding:.35em .8em;font-weight:700;font-size:16px;cursor:pointer;white-space:nowrap;opacity:.62}
.kolekcje button span,.filtry button span{font-weight:400}
.kolekcje button:hover,.filtry button:hover{opacity:1}
.kolekcje button[aria-pressed=true],.filtry button[aria-pressed=true]{opacity:1;border-bottom-color:currentColor}

.scena{position:relative;flex:1;min-height:clamp(300px,50svh,640px);touch-action:pan-y;cursor:grab;user-select:none;overflow-x:clip;clip-path:inset(0 0 -220px 0)}
.scena.ciagnie{cursor:grabbing}
#k-model{position:absolute;left:50%;top:0;transform:translateX(-50%);margin:0;white-space:nowrap;font-family:"Bricolage Grotesque",Georgia,sans-serif;font-weight:800;line-height:.86;letter-spacing:-.045em;color:var(--wielka);pointer-events:none;transition:color .5s}
#k-model span{display:inline-block;animation:litera .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--n)*35ms)}
@keyframes litera{from{transform:translateY(24%);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){#k-model span,.przewin b{animation:none}}
.perspektywa{position:absolute;left:50%;top:60%;width:var(--d);height:var(--d);margin:calc(var(--d)/-2) 0 0 calc(var(--d)/-2);pointer-events:none;visibility:hidden}
.sofa{position:absolute;left:50%;top:60%;width:calc(var(--d)*.5);margin-left:calc(var(--d)*-.25);padding:0;border:0;background:none;transform-origin:50% 100%;cursor:pointer;will-change:transform}
.sofa img{display:block;width:100%;height:auto;pointer-events:none;-webkit-user-drag:none}
.sofa .cien{position:absolute;left:-8%;top:0;width:116%;max-width:none;height:auto}
.sofa img:not(.cien){visibility:hidden}
.sofa:focus-visible{outline-offset:6px}

.dol{position:relative;z-index:160;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px clamp(16px,2.4vw,36px);padding:0 clamp(16px,3vw,40px) clamp(16px,2.4vw,30px)}
.dol h1{font-family:"Bricolage Grotesque",Georgia,sans-serif;font-weight:800;font-size:clamp(22px,2.1vw,30px);line-height:1.05;letter-spacing:-.02em;margin:0}
.dol p{margin:.4em 0 0;font-size:clamp(15px,1.15vw,17px);color:var(--szary);max-width:44ch}
.kupno{display:flex;align-items:center;gap:clamp(12px,1.6vw,24px)}
.opis-ceny{text-align:right}
.opis-ceny .opis{margin:0 0 .15em;font-size:15px;color:var(--szary);max-width:none}
.cena{font-family:"Bricolage Grotesque",Georgia,sans-serif;font-weight:800;font-size:clamp(28px,3vw,44px);line-height:1;white-space:nowrap;letter-spacing:-.02em}
.guzik{display:inline-flex;align-items:center;height:42px;background:var(--guzik);color:var(--guzik-t);font-weight:700;font-size:15px;padding:0 1.3em;border-radius:999px;text-decoration:none;white-space:nowrap}
.guzik:hover{opacity:.86}
.kupno{justify-content:flex-end}
/* Nawigacja: wielki przycisk pod sofą i strzałki po bokach sceny */
.nawigacja{display:flex;align-items:center;justify-content:center;gap:14px;font-size:14px;color:var(--szary)}
#licznik{white-space:nowrap;min-width:48px;text-align:right}
.przewin{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.6em;background:none;border:1.5px solid var(--tekst);border-radius:999px;height:42px;padding:0 1.2em;font-weight:700;font-family:Lato,Verdana,Arial,sans-serif;font-size:15px;line-height:1;color:var(--tekst);cursor:pointer}
.nawigacja-przyciski{display:flex;justify-content:center;gap:8px}
.przewin--oferta{text-decoration:none;color:inherit}
.przewin:hover{background:rgba(var(--t),.1)}
.przewin b{display:inline-block;font-weight:800;animation:strzalka 1.4s ease-in-out infinite}
@keyframes strzalka{0%,100%{transform:none}50%{transform:translateX(5px)}}
/* Pasek pokazuje, kiedy scena sama przejdzie dalej */
.przewin::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--tekst);transform:scaleX(0);transform-origin:0 50%}
.przewin.idzie::after{animation:odliczanie var(--czas) linear infinite}
@keyframes odliczanie{to{transform:scaleX(1)}}
.pauza{background:none;border:0;padding:.2em 0;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.bok{position:absolute;top:58%;z-index:120;width:clamp(44px,4.4vw,60px);aspect-ratio:1;display:grid;place-items:center;padding:0;border-radius:50%;border:0;background:var(--tekst);color:#f6f1e8;cursor:pointer;transform:translateY(-50%)}
/* Strzałki rysowane: znak tekstowy nigdy nie siada na środku koła */
.bok svg,.przewin svg{display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.bok svg{width:46%;height:46%;stroke-width:2.6}
.przewin svg{width:15px;height:15px;stroke-width:3}
/* Przycisk pod przednią sofą: jedzie z nią i znika podczas obrotu */
.na-sofie{position:absolute;left:0;top:0;z-index:110;transform:translateX(-50%)}
.bok:hover{opacity:.82}
#wstecz{left:clamp(10px,2vw,32px)}
#dalej{right:clamp(10px,2vw,32px)}

/* Cała oferta: spis z wielkimi nazwami, kolor sofy zalewa rząd po najechaniu */
.oferta{background:#f6f1e8;color:#1d2523;--szary:#4d524c}
.oferta-gora{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;padding:clamp(40px,5vw,72px) clamp(16px,3vw,40px) clamp(20px,2.4vw,32px)}
.oferta h2{font-family:"Bricolage Grotesque",Georgia,sans-serif;font-weight:800;font-size:clamp(30px,4vw,56px);line-height:1;letter-spacing:-.025em;margin:0}
.oferta-gora p{margin:.5em 0 0;font-size:clamp(16px,1.25vw,18px);color:var(--szary)}
.siatka{list-style:none;margin:0;padding:0;border-bottom:1px solid rgba(29,37,35,.2)}
.model{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(170px,.8fr) minmax(0,1fr) 130px auto;align-items:center;gap:clamp(12px,2vw,32px);min-height:clamp(112px,9.5vw,150px);padding:8px clamp(16px,3vw,40px);border-top:1px solid rgba(29,37,35,.2);transition:background-color .2s}
.model[hidden]{display:none}
.model:hover,.model:focus-within{background:var(--m-tlo)}
.model h3{margin:0;white-space:nowrap;font-family:"Bricolage Grotesque",Georgia,sans-serif;font-weight:800;line-height:1;letter-spacing:-.045em;font-size:clamp(44px,6.4vw,96px)}
.model-foto{height:clamp(90px,8vw,128px);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.model-foto img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:bottom;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.model:hover .model-foto img,.model:focus-within .model-foto img{transform:scale(1.14)}
.model-link{position:absolute;inset:0;z-index:2;text-decoration:none;color:inherit}
.model-link:focus-visible{outline-offset:-5px}
.model-stopka,.model-stopka>div{display:contents}
.model-rodzaj{margin:0;font-size:15px;line-height:1.25;color:#2d3430}
.model-cena{margin:0;text-align:right;font-family:"Bricolage Grotesque",Georgia,sans-serif;font-weight:800;font-size:clamp(22px,2vw,28px);line-height:1.05;letter-spacing:-.02em;white-space:nowrap}
/* Dotyk nie ma najechania, więc rzędy mają kolor od razu */
@media (hover:none){.model{background:var(--m-tlo);border-top-color:#f6f1e8}}
@media (max-width:760px){
  .model{grid-template-columns:minmax(0,1fr) 116px;gap:2px 10px;padding:14px 16px}
  .model h3{grid-column:1;font-size:clamp(38px,11vw,52px)}
  .model-foto{grid-column:2;grid-row:1/4;height:76px}
  .model-rodzaj{grid-column:1}
  .model-cena{grid-column:1;text-align:left}
}
@media (prefers-reduced-motion:reduce){.model-foto img,.model{transition:none}}

/* Węższe ekrany: licznik i Zatrzymaj schodzą pod przyciski, żeby nic się nie ściskało */
@media (max-width:1240px){
  .nawigacja{flex-wrap:wrap;gap:6px 14px;max-width:320px}
  .nawigacja-przyciski{order:-1;flex:1 0 100%}
}
/* Telefon: układ sceny i dolnego paska */
@media (max-width:760px){
  :root{--d:min(118vw,600px)}
  .gora{grid-template-columns:1fr auto;padding-bottom:8px}
  .gora nav a:not(:last-child):not(.pytanie){display:none}
  .kolekcje{grid-column:1/-1;grid-row:2;justify-content:center}
  .perspektywa,.sofa{top:64%}
  .scena{min-height:clamp(240px,37svh,380px)}
  .bok{top:66%}
  .dol{grid-template-columns:1fr;gap:14px;padding-top:14px}
  .scena{min-height:clamp(290px,44svh,420px)}
  .nawigacja{order:-1;justify-self:center}
  .przewin,.guzik{height:44px}
  .na-sofie{height:36px;font-size:14px}
  .kupno{justify-content:flex-start}
  .opis-ceny{text-align:left}
}
@media (max-width:350px){.kolekcje button,.filtry button{padding:.35em .45em;font-size:14px}}

/* Dodatki motywu */
.licznik-koszyka:not(:empty)::before{content:" ("}
.licznik-koszyka:not(:empty)::after{content:")"}
/* Menu nie może się zawijać: przy węższym oknie znikają linki, które są też niżej na stronie i w stopce. */
.gora nav a{white-space:nowrap}
@media (max-width:1240px){.gora nav a[href$="#oferta"],.gora nav a[href="#oferta"]{display:none}}
