/* Bartini – OFERTA (/oferta): sześć ekranów-slajdów.
   Dziedziczy tokeny, typografię, przyciski, nawigację, menu i kursor z bartini.css –
   tu są wyłącznie układy sześciu ekranów, FAQ i wskaźnik postępu. Prefiks klas: .o- */

/* =========================================================
   EKRAN – wspólne
   Desktop: prawie cały ekran, treść wyśrodkowana w pionie.
   Telefon/tablet: naturalna wysokość, bez wymuszania.
   ========================================================= */
.o-sec{padding:clamp(88px,11vh,150px) 0 clamp(80px,10vh,150px)}
@media (min-width:1001px) and (min-height:720px){
  .o-sec{min-height:100svh;display:grid;align-content:center}
}
.o-sec>.wrap{width:100%}
.o-head{display:grid;gap:clamp(18px,2vw,28px);justify-items:start;align-content:start}
.o-head h2{font-size:clamp(58px,7.6vw,156px);text-wrap:balance}
.o-sub{font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:clamp(22px,2.1vw,34px);line-height:1.15;letter-spacing:-.015em;margin-top:-.2em}
.theme-light .o-sub{color:var(--kier)}
.theme-dark .o-sub{color:var(--gold-hi)}
.o-head .lead{max-width:30em}
.o-num{display:inline-flex;align-items:center;gap:.8em}
.o-num::after{content:"";width:34px;height:1px;background:currentColor;opacity:.5}
.o-chips{display:flex;flex-wrap:wrap;gap:8px}

/* trzy fakty / trzy zalety / trzy grupy – wspólny rytm kolumn (kreska u góry, serif, krótki opis) */
.o-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,44px);border-top:1px solid var(--line-l)}
.theme-dark .o-three{border-top-color:var(--line-d)}
.o-three>li{display:grid;gap:10px;align-content:start;padding-top:clamp(18px,2vw,28px)}
.o-three b,.o-three h4{font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:clamp(30px,2.6vw,46px);line-height:1;letter-spacing:-.025em}
.o-three b small{font-size:.5em;color:var(--kier)}
.theme-dark .o-three b small{color:var(--gold)}
.o-three p{font-size:15px;line-height:1.5;max-width:22em;color:var(--muted-l)}
.theme-dark .o-three p{color:var(--muted-d)}
.o-three--num{counter-reset:o}
.o-three--num>li{counter-increment:o;grid-template-columns:auto 1fr;grid-template-areas:"n h" "n p";column-gap:18px}
.o-three--num>li::before{content:counter(o,decimal-leading-zero);grid-area:n;font-family:var(--f-serif);font-style:italic;font-size:clamp(34px,3vw,52px);line-height:.9;letter-spacing:-.04em;color:var(--kier)}
.o-three--num h4{grid-area:h}
.o-three--num p{grid-area:p}
.o-three--suits>li svg{width:18px;height:18px;color:var(--kier);margin-bottom:4px}

/* zaproszenie do rozmowy – zwykły link, bez kolejnego przycisku */
.o-more{font-size:15.5px;line-height:1.5;color:var(--muted-l)}
.theme-dark .o-more{color:var(--muted-d)}
.o-more a{color:var(--ink);font-weight:500;white-space:nowrap}
.theme-dark .o-more a{color:var(--gold-hi)}

/* =========================================================
   FAQ – poza sześcioma ekranami. Wygląd pozycji: .qa-* z bartini.css.
   ========================================================= */
.o-faq{padding:clamp(88px,11vh,150px) 0 clamp(110px,14vh,190px)}
.o-faq .qa{margin-top:0;position:relative}
/* cel przycisku „Cennik”: początek FAQ zatrzymuje się pod stałą nawigacją (Lenis 1.1 ignoruje scroll-margin);
   na telefonie nad pytaniem jest nagłówek, więc kotwica stoi nad całym .qa, a nie nad samym pytaniem */
.o-anchor{position:absolute;left:0;top:-112px;width:0;height:0}
.o-anchor:focus{outline:0}
@media (max-width:1000px){.o-anchor{top:-96px}}
/* opsz: w dużym stopniu Bodoni ma włoskowate kreski i półpauza w kwocie prawie znika */
.o-price{font-family:var(--f-serif);font-style:italic;font-variation-settings:"opsz" 14;font-size:clamp(34px,3vw,52px);line-height:1.05;letter-spacing:-.025em;padding:4px 0}
.o-price strong{color:var(--kier);font-weight:400}

/* najwęższe telefony: logo, dwa przyciski i burger w jednym rzędzie */
@media (max-width:359px){
  .nav{gap:8px}
  .nav-brand img{width:34px}
  .nav-actions{gap:6px}
  .nav .btn{padding:0 .8em;font-size:13px}
}

/* =========================================================
   WSKAŹNIK POSTĘPU: cienka złota linia u góry + kropki ekranów (desktop)
   ========================================================= */
.o-progress{position:fixed;left:0;top:0;right:0;height:2px;z-index:90;pointer-events:none}
.o-progress i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}
.o-dots{
  position:fixed;right:clamp(14px,2vw,34px);top:50%;z-index:60;transform:translateY(-50%);
  display:none;gap:14px;color:#fff;mix-blend-mode:difference;
}
.o-dots a{display:flex;align-items:center;justify-content:flex-end;gap:12px;text-decoration:none;opacity:.5;transition:opacity .3s}
.o-dots a span{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;opacity:0;transform:translateX(6px);transition:opacity .3s,transform .4s var(--ease-out)}
.o-dots a i{display:block;width:18px;height:1px;background:currentColor;transition:width .45s var(--ease-out)}
.o-dots a[aria-current]{opacity:1}
.o-dots a[aria-current] i{width:40px}
@media (hover:hover){.o-dots a:hover{opacity:1}.o-dots a:hover span{opacity:1;transform:none}}
@media (min-width:1001px){.o-dots{display:grid}}

/* =========================================================
   EKRAN 1 – OKŁADKA (ciemna): zdjęcie sceny na cały ekran, logo i „Oferta” na środku
   ========================================================= */
.o-cover{
  position:relative;overflow:hidden;background:var(--ink);min-height:100svh;
  display:grid;grid-template-rows:1fr auto;padding:0;
}
.o-cover-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;pointer-events:none}
.o-cover-veil{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(62% 58% at 50% 46%,rgba(11,9,7,.8),rgba(11,9,7,.35) 60%,rgba(11,9,7,.05) 100%),
    linear-gradient(to bottom,rgba(11,9,7,.8) 0%,rgba(11,9,7,.38) 34%,rgba(11,9,7,.5) 64%,var(--ink) 100%);
}
.o-cover-center{
  position:relative;z-index:2;display:grid;justify-items:center;align-content:center;text-align:center;
  gap:clamp(18px,2.4vh,30px);padding:clamp(110px,16vh,170px) var(--gutter) clamp(24px,4vh,40px);
}
.o-cover-logo{width:clamp(120px,15vw,220px);height:auto;filter:drop-shadow(0 0 34px rgba(200,160,74,.42))}
.o-cover h1{
  font-size:clamp(96px,17vw,280px);line-height:.82;letter-spacing:-.01em;margin-top:.04em;padding:0 .04em;
  background:radial-gradient(circle at 50% 10%,rgba(255,247,222,.95),rgba(255,247,222,0) 40%),linear-gradient(180deg,#F7F0E1 0%,#ECE0C4 46%,#CDAE68 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,.6));
}
.o-cover-sub{font-family:var(--f-serif);font-style:italic;font-size:clamp(19px,1.7vw,27px);line-height:1.2;letter-spacing:-.01em;color:var(--gold-hi);text-wrap:balance}
.o-cover-sub span{color:var(--muted-d);font-family:var(--f-body);font-style:normal;font-size:.62em;letter-spacing:.14em;text-transform:uppercase;padding:0 .5em}
.o-cover-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(6px,1.4vh,14px)}
.o-cover-actions .btn--ghost{color:var(--bone)}
.o-contact-site+.o-contact-site{padding-top:12px;border-top:0}
.o-cover-meta{
  position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;
  padding:0 var(--gutter) clamp(22px,4vh,40px);
}
.o-cover-meta .hero-role{margin:0}
.o-cover-meta .hero-role br{display:none}
.o-cover-meta .hero-role span{margin:0 .9em}
.o-cover-meta .hero-scroll{grid-column:2;gap:8px}
.o-cover-meta .hero-scroll i{height:34px}
.o-cover-count{justify-self:end;font-family:var(--f-serif);font-style:italic;font-size:clamp(20px,1.6vw,26px);color:var(--muted-d)}
.o-cover-count b{font-weight:400;color:var(--gold)}
/* wejście okładki – tylko przy włączonym ruchu, bez GSAP (brak zależności od ScrollTriggera) */
.motion .o-cover-center>*{animation:o-rise 1.3s var(--ease-out) both}
.motion .o-cover-center>:nth-child(2){animation-delay:.12s}
.motion .o-cover-center>:nth-child(3){animation-delay:.24s}
.motion .o-cover-center>:nth-child(4){animation-delay:.36s}
.motion .o-cover-meta{animation:o-fade 1.2s ease .8s both}
.motion .o-cover-bg{animation:o-zoom 9s var(--ease-out) both}
@keyframes o-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes o-fade{from{opacity:0}to{opacity:1}}
@keyframes o-zoom{from{transform:scale(1.08)}to{transform:scale(1)}}

/* =========================================================
   EKRAN 2 – POKAZ SCENICZNY (jasna)
   Tekst po lewej, pełna sala + odbitka ze sceny po prawej, trzy fakty w pasie pod spodem.
   ========================================================= */
.o-stage .wrap{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(28px,3.6vw,72px);align-items:center}
.o-stage .o-head{gap:clamp(14px,1.6vw,22px)}
/* kompozycja: jedno duże zdjęcie na całą szerokość kolumny (wychodzi do prawej krawędzi), pod nim dwa mniejsze –
   lewe wcięte, prawe obniżone; wszystkie w tej samej siatce, bez ramek */
.o-stage-photos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.1vw,16px);align-items:start;margin-right:calc(var(--gutter) * -1)}
.o-stage-main{grid-column:1/-1;position:relative;z-index:1;aspect-ratio:16/10;border-radius:18px 0 0 18px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(11,9,7,.6)}
.o-stage-main img{width:100%;height:100%;object-fit:cover}
.o-stage-small{margin:0;aspect-ratio:3/2;overflow:hidden;border-radius:12px;background:var(--stock-2);box-shadow:0 26px 44px -30px rgba(11,9,7,.55)}
.o-stage-small img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
@media (hover:hover){.o-stage-small:hover img{transform:scale(1.04)}}
.o-stage-small:nth-child(2){margin-left:clamp(18px,2.4vw,40px)}
.o-stage-small:nth-child(3){margin-top:clamp(18px,2.4vw,40px);border-radius:12px 0 0 12px}
/* kluczowe liczby: w kolumnie tekstu, każda w jednym wierszu – liczba po lewej, etykieta i opis po prawej */
.o-facts{display:grid;margin-top:clamp(4px,.8vw,10px);border-top:1px solid var(--ink)}
.o-fact{display:grid;grid-template-columns:clamp(140px,11.5vw,180px) 1fr;grid-template-areas:"n t" "n d";column-gap:clamp(16px,1.6vw,26px);row-gap:3px;align-items:start;padding:13px 0;border-bottom:1px solid var(--line-l)}
.o-fact dd{display:contents}
.o-fact dt{grid-area:t;padding-top:7px;font-stretch:85%;font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--kier)}
.o-fact b{grid-area:n;font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:clamp(36px,3.3vw,54px);line-height:1;letter-spacing:-.035em}
.o-fact b small{font-size:.42em;color:var(--kier);letter-spacing:-.01em}
.o-fact b.o-fact-txt{font-size:clamp(20px,1.6vw,25px);line-height:1.1;letter-spacing:-.02em;padding-top:4px}
.o-fact span{grid-area:d;font-size:14.5px;line-height:1.45;max-width:24em;color:var(--muted-l)}

/* ekran 2 i 3 mieszczą się w jednym widoku na 1440×900: ciaśniejsze odstępy, krótsze nazwy w jednej linii */
@media (min-width:1001px){
  .o-stage.o-sec{padding-top:clamp(80px,9vh,110px);padding-bottom:clamp(56px,7vh,90px)}
  .o-closeup.o-sec{padding-top:clamp(80px,9vh,110px);padding-bottom:clamp(56px,7vh,90px)}
  .o-closeup .o-head h2{font-size:clamp(50px,6.2vw,124px)}
  .o-closeup .o-head .lead{max-width:28em}
  .o-closeup .o-points{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,2.4vw,36px);max-width:none;margin-top:clamp(24px,3vw,44px)}
}

/* =========================================================
   EKRAN 3 – MAGIA Z BLISKA (ciemna, immersyjna)
   Jedna fotografia gali na całą sekcję, treść na ciemnym gradiencie, fakty jako karty ze złotym brzegiem.
   ========================================================= */
.o-closeup{position:relative;overflow:hidden;background:var(--ink)}
.o-closeup-bg{position:absolute;inset:0;z-index:0;margin:0}
.o-closeup-bg img{width:100%;height:100%;object-fit:cover;object-position:74% 50%}
.o-closeup-bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(11,9,7,.96) 0%,rgba(11,9,7,.86) 34%,rgba(11,9,7,.38) 64%,rgba(11,9,7,.18) 100%),
    linear-gradient(to top,rgba(11,9,7,.96) 0%,rgba(11,9,7,.3) 38%,rgba(11,9,7,0) 60%),
    linear-gradient(to bottom,rgba(11,9,7,.78),rgba(11,9,7,0) 32%);
}
.o-closeup .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(32px,5vw,90px);align-items:end}
.o-closeup .o-head{max-width:34em}
.o-closeup .o-head .lead{color:var(--muted-d)}
.o-points{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(20px,2.6vw,40px);max-width:36em}
.o-points li{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"i b" "i s";column-gap:14px;row-gap:4px;align-content:start;padding:18px 0;border-top:1px solid rgba(235,210,143,.3)}
.o-points svg{grid-area:i;width:16px;height:16px;margin-top:5px;color:var(--gold)}
.o-points b{grid-area:b;font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:clamp(22px,1.8vw,30px);line-height:1.05;letter-spacing:-.02em}
.o-points span{grid-area:s;font-size:14px;line-height:1.45;color:var(--muted-d)}
.o-closeup .wrap{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}
.o-closeup .o-points{grid-column:1/-1;margin-top:clamp(18px,2vw,30px)}

/* =========================================================
   EKRAN 4 – WARSZTATY ILUZJI (jasna)
   Nagłówek i jedna duża fotografia z warsztatów, trzy zalety w pasie pod spodem.
   ========================================================= */
.o-work .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,4vw,80px);align-items:center}
.o-work-photo{position:relative;aspect-ratio:4/3;margin:0 0 0 calc(var(--gutter) * -1);border-radius:0 18px 18px 0;overflow:hidden;box-shadow:0 40px 80px -40px rgba(11,9,7,.6)}
.o-work-photo img{width:100%;height:100%;object-fit:cover}
.o-work .o-three{grid-column:1/-1;margin-top:clamp(10px,2vw,30px)}

/* =========================================================
   EKRAN 5 – INNA WIDOWNIA, INNY PROGRAM (jasna, kremowa – sama typografia)
   ========================================================= */
.o-audience{background:var(--face)}
.o-audience .wrap{display:grid;gap:clamp(36px,5vw,72px)}
.o-audience .o-head{justify-items:center;text-align:center;margin:0 auto}
.o-audience .o-head h2{font-size:clamp(50px,6.6vw,136px)}
.o-audience .o-head .lead{max-width:34em}
.o-audience .o-three{max-width:1240px;width:100%;margin:0 auto;border-top-color:var(--ink)}
.o-audience .o-three>li{padding-top:clamp(22px,2.4vw,34px)}
.o-audience .o-three h4{font-size:clamp(34px,3vw,54px)}
.o-audience .o-three p{font-size:16px;max-width:24em}
.o-audience .o-more{text-align:center}

/* =========================================================
   EKRAN 6 – ZAPLANUJMY COŚ NIEMOŻLIWEGO (ciemna): wstęp, trzy kroki, kontakt, stopka
   ========================================================= */
.o-finale{padding-bottom:0}
@media (min-width:1001px) and (min-height:720px){.o-finale{min-height:0;display:block}}
.o-finale .o-head{max-width:46em}
.o-plan{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);margin-top:clamp(44px,5vw,80px);align-items:start}
.o-plan-steps{display:grid;gap:clamp(22px,2.4vw,36px)}
.o-plan-steps h3{font-size:clamp(34px,3vw,56px)}
.o-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,32px);margin:0}
.o-finale .step{border-top-color:var(--line-d)}
.o-finale .step-n{color:var(--gold)}
.o-finale .step h3{font-size:clamp(24px,1.9vw,34px)}
.o-finale .step p{color:var(--muted-d);font-size:15px}

.o-contact{
  position:relative;overflow:hidden;display:grid;gap:clamp(22px,2.4vw,34px);padding:clamp(24px,3vw,44px);border-radius:var(--radius-card);
  background:radial-gradient(70% 60% at 50% 0%,rgba(200,160,74,.18),transparent 70%),var(--stage);
  box-shadow:inset 0 0 0 1px rgba(200,160,74,.32),0 60px 120px -60px rgba(0,0,0,.9);
}
.o-contact-head{display:grid;gap:12px}
.o-contact-head h3{font-size:clamp(34px,3vw,54px)}
.o-contact-head p{color:var(--muted-d);max-width:30em}
.o-contact-cta{display:flex;flex-wrap:wrap;gap:12px}
.o-contact .person{gap:10px;padding-top:18px}
.o-contact .person-name{font-size:clamp(24px,2vw,34px)}
.o-contact .person-tel{font-size:clamp(28px,2.4vw,40px)}
.o-contact .person-mail{font-size:15px}
.o-contact-site{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:18px;border-top:1px solid var(--line-d);font-size:14px;color:var(--muted-d)}
.o-contact-site a{color:var(--bone)}

.o-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 30px;margin-top:clamp(60px,8vw,120px);padding:clamp(22px,2.4vw,34px) 0 max(24px,env(safe-area-inset-bottom));border-top:1px solid var(--line-d);font-size:12.5px;color:var(--muted-d)}
.o-foot img{width:clamp(180px,18vw,260px);height:auto;opacity:.9}
.o-foot-links{display:flex;flex-wrap:wrap;gap:8px 22px}
.o-foot a{text-decoration:none;color:var(--muted-d);transition:color .3s}
@media (hover:hover){.o-foot a:hover{color:var(--gold)}}

/* =========================================================
   TABLET / TELEFON
   ========================================================= */
@media (max-width:1000px){
  .o-sec{padding:clamp(72px,10vw,110px) 0}
  .o-head h2{font-size:clamp(48px,11.5vw,96px)}
  .o-three{grid-template-columns:1fr;gap:0;border-top:0}
  .o-three>li{padding:20px 0;border-top:1px solid var(--line-l)}
  .theme-dark .o-three>li{border-top-color:var(--line-d)}
  .o-cover{min-height:100svh;padding:0}
  .o-cover-center{padding-top:clamp(96px,16vh,130px)}
  .o-cover h1{font-size:clamp(88px,24vw,150px)}
  .o-cover-meta{grid-template-columns:1fr;gap:12px}
  .o-cover-meta .hero-scroll{display:none}
  .o-cover-count{justify-self:start}
  .o-stage .wrap,.o-work .wrap{grid-template-columns:1fr;gap:34px}
  .o-stage-photos{margin-right:0;gap:10px}
  .o-stage-main{border-radius:18px}
  .o-stage-small{aspect-ratio:4/3}
  .o-stage-small:nth-child(2){margin-left:0}
  .o-stage-small:nth-child(3){margin-top:0;border-radius:12px}
  .o-work-photo{margin:0;border-radius:18px;order:2}
  .o-work .o-head{order:1}
  .o-work .o-three{order:3}
  .o-fact{grid-template-columns:118px 1fr;column-gap:16px}
  .o-points{grid-template-columns:1fr;max-width:none}
  .o-three--num>li{padding:18px 0}
  .o-sub{margin-top:-.1em}
  .o-closeup-bg{position:relative;inset:auto;aspect-ratio:4/3;margin:0 0 30px;border-radius:18px;overflow:hidden}
  .o-closeup-bg img{object-position:68% 50%}
  .o-closeup-bg::after{background:linear-gradient(to top,rgba(11,9,7,.6),transparent 45%)}
  .o-closeup .wrap{display:block}
  .o-closeup .o-tickets{margin-top:28px}
  .o-audience .wrap{gap:30px}
  .o-audience .o-head{justify-items:start;text-align:left}
  .o-audience .o-more{text-align:left}
  .o-plan{grid-template-columns:1fr;gap:40px}
  .o-steps{grid-template-columns:1fr}
}
@media (max-width:640px){
  .o-contact{padding:22px 18px 26px}
  .o-contact-cta .btn{width:100%}
  .o-foot{flex-direction:column;align-items:flex-start}
}
@media (max-width:560px){
  /* wąski telefon: etykieta, liczba i opis jedno pod drugim – liczba się nie łamie */
  .o-fact{grid-template-columns:1fr;grid-template-areas:"t" "n" "d";row-gap:4px;padding:14px 0}
  .o-fact dt{padding-top:0}
  .o-fact b{font-size:38px}
  .o-fact b.o-fact-txt{font-size:24px;padding-top:0}
  .o-cover-sub span{display:block;padding:4px 0}
}
/* niskie monitory (np. 1366×768): okładka bez przewijania */
@media (min-width:1001px) and (max-height:820px){
  .o-cover-center{padding-top:96px;gap:14px}
  .o-cover-logo{width:clamp(100px,11vw,150px)}
  .o-cover h1{font-size:clamp(88px,14vw,200px)}
}
