/* =====================================================================
   SHERIFF — warstwa "OŚ"
   Reżyseria strony glownej. Zasada nadrzedna: zdjecie albo jest duze,
   albo nie ma go wcale. Zadnych siatek pustych prostokatow z ramka —
   to material fotograficzny ma niesc atmosfere, nie border 1px.
   ===================================================================== */

/* ---------------------------------------------------------------
   Wyjscie poza .wrap — pasy pelnoekranowe wewnatrz normalnego flow.
   --------------------------------------------------------------- */
.pelny{width:100vw;margin-left:50%;transform:translateX(-50%)}

/* Rytm strony glownej. Domyslne 150px na sekcje x 10 sekcji to 1500px
   samego powietrza — strona czytala sie jak pusty korytarz. */
.section{padding-block:clamp(54px,7vw,104px)}
#poziomy{padding-bottom:0}

/* =====================================================================
   PASEK POSWIADCZEN  (w miejsce zlotego marquee)
   Zloty pas krzyczal jak baner promocyjny w sklepie. Prestiz jest cichy:
   ciemny pasek, wloskowe linie, zloto tylko na liczbach.
   ===================================================================== */
.cred{border-block:1px solid var(--line);background:
  linear-gradient(180deg,rgba(201,162,75,.05),transparent 60%),var(--ink-2)}
.cred__in{display:flex;flex-wrap:wrap;align-items:center;
  gap:clamp(18px,4vw,54px);padding-block:20px;
  font-family:var(--f-display);font-weight:500;text-transform:uppercase;
  letter-spacing:.2em;font-size:.72rem;color:var(--muted)}
.cred__in span{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.cred__in span+span::before{content:"";width:4px;height:4px;
  background:var(--gold);opacity:.55;margin-right:9px;transform:rotate(45deg)}
.cred__in b{color:var(--bone);font-weight:600;letter-spacing:.12em}

/* =====================================================================
   POZIOMY — nawigacja wg zaawansowania, na zdjeciach
   To jest pierwsza decyzja odwiedzajacego, wiec dostaje pelna szerokosc
   i realne kadry zamiast trzech pustych kart.
   ===================================================================== */
.lv{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line-soft)}
.lv__i{position:relative;display:block;min-height:min(72vh,620px);
  overflow:hidden;background:var(--ink);isolation:isolate}
.lv__i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:50% 38%;
  filter:grayscale(.55) contrast(1.12) brightness(.62);
  transform:scale(1.03);transition:transform 1.1s var(--ease),filter .7s ease}
/* Kadrowanie panelu po panelu — srodek ciezkosci kazdego zdjecia lezy gdzie
   indziej, a domyslne 50/50 ucinalo albo glowy, albo blysk wystrzalu. */
.lv__i:nth-child(1) img{object-position:54% 46%}
.lv__i:nth-child(2) img{object-position:50% 52%}
.lv__i:nth-child(3) img{object-position:44% 44%}
.lv__i::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(6,7,9,.94) 12%,rgba(6,7,9,.55) 48%,rgba(6,7,9,.25) 100%)}
.lv__i:hover img,.lv__i:focus-visible img{transform:scale(1.09);
  filter:grayscale(.15) contrast(1.06) brightness(.72)}
.lv__i:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}

.lv__no{position:absolute;top:clamp(20px,2.4vw,32px);left:clamp(20px,2.4vw,34px);z-index:2;
  font-family:var(--f-display);font-weight:700;font-size:clamp(3rem,5vw,5rem);
  line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(201,162,75,.5)}
.lv__b{position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(24px,2.6vw,38px)}
.lv__b h3{font-size:clamp(1.35rem,2.2vw,2rem);color:var(--bone);line-height:1.02}
.lv__rule{display:block;width:34px;height:2px;background:var(--gold);
  margin:16px 0 0;transition:width .55s var(--ease)}
.lv__i:hover .lv__rule{width:88px}
.lv__b p{color:var(--bone-dim);font-size:.95rem;line-height:1.62;max-width:34ch;
  margin-top:16px}
.lv__go{display:inline-flex;align-items:center;gap:10px;margin-top:18px;
  font-family:var(--f-display);font-weight:600;letter-spacing:.16em;
  font-size:.74rem;text-transform:uppercase;color:var(--gold)}
.lv__go i{font-style:normal;transition:transform .35s var(--ease)}
.lv__i:hover .lv__go i{transform:translateX(7px)}

@media(max-width:900px){
  .lv{grid-template-columns:1fr}
  .lv__i{min-height:58vh}
}

/* =====================================================================
   INSTRUKTOR — miejsce, w ktorym wraca prestiz
   Portret duzy, rodowod szkoleniowy nazwany wprost, liczby jako
   typografia a nie jako kafelki.
   ===================================================================== */
.mistrz{display:grid;grid-template-columns:.92fr 1.08fr;
  gap:clamp(30px,5vw,80px);align-items:center}
.mistrz__foto{position:relative}
.mistrz__foto img{width:100%;aspect-ratio:4/5;object-fit:cover;
  filter:grayscale(.35) contrast(1.1)}
.mistrz__foto::before{content:"";position:absolute;inset:auto auto -16px -16px;
  width:56%;height:56%;border-left:1px solid var(--gold);
  border-bottom:1px solid var(--gold);opacity:.5;pointer-events:none}
/* Sygnatura poza kadrem — na zdjeciu ginela w ciemnych partiach. */
.mistrz__sig{position:absolute;left:calc(100% + 16px);bottom:0;
  writing-mode:vertical-rl;font-family:var(--f-display);font-weight:600;
  letter-spacing:.34em;text-transform:uppercase;font-size:.66rem;color:var(--gold);
  white-space:nowrap}
@media(max-width:1100px){.mistrz__sig{display:none}}
.mistrz blockquote{font-family:var(--f-display);font-weight:600;
  text-transform:uppercase;line-height:1.05;letter-spacing:-.005em;
  font-size:clamp(1.5rem,3.1vw,2.7rem);color:var(--bone);margin:18px 0 22px}
.mistrz blockquote span{color:var(--gold)}

/* rodowod — nazwiska jednostek jako oddzielny, mocny wiersz */
.rodowod{display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  padding:20px 0;margin:26px 0;border-block:1px solid var(--line)}
.rodowod__l{font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.24em;font-size:.68rem;color:var(--muted)}
.rodowod__u{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;font-size:clamp(.95rem,1.5vw,1.22rem);color:var(--gold)}

.liczby{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px)}
.liczba b{display:block;font-family:var(--f-display);font-weight:700;
  font-size:clamp(2.1rem,3.6vw,3.1rem);line-height:.9;color:var(--bone)}
.liczba span{display:block;margin-top:9px;font-family:var(--f-display);
  text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:var(--muted)}

@media(max-width:860px){.mistrz{grid-template-columns:1fr}}

/* =====================================================================
   TOR — przebieg pierwszej wizyty, na pelnoekranowym kadrze
   Piec krokow na jednej szynie zamiast pieciu pudelek.
   ===================================================================== */
.tor{position:relative;overflow:hidden;isolation:isolate}
.tor__bg{position:absolute;inset:0;z-index:-2}
.tor__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;
  filter:grayscale(.6) contrast(1.1) brightness(.5)}
.tor::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,var(--ink) 2%,rgba(8,9,11,.62) 38%,rgba(8,9,11,.78) 72%,var(--ink))}
.tor__szyna{display:grid;grid-template-columns:repeat(5,1fr);
  gap:clamp(14px,2vw,26px);margin-top:clamp(34px,4vw,54px);position:relative}
.tor__szyna::before{content:"";position:absolute;left:0;right:0;top:19px;
  height:1px;background:linear-gradient(90deg,transparent,var(--line),var(--line),transparent)}
.krok{position:relative;padding-top:52px}
.krok::before{content:"";position:absolute;top:13px;left:0;width:13px;height:13px;
  border:1px solid var(--gold);background:var(--ink);transform:rotate(45deg)}
.krok b{position:absolute;top:11px;left:30px;font-family:var(--f-display);
  font-weight:600;letter-spacing:.2em;font-size:.68rem;color:var(--gold)}
.krok h4{font-size:1.03rem;color:var(--bone);margin-bottom:9px}
.krok p{color:var(--bone-dim);font-size:.89rem;line-height:1.6}
@media(max-width:980px){
  .tor__szyna{grid-template-columns:repeat(2,1fr);gap:26px}
  .tor__szyna::before{display:none}
}
@media(max-width:560px){.tor__szyna{grid-template-columns:1fr}}

/* =====================================================================
   CENNIK — lista redakcyjna, nie siatka kafli
   Cennik zawodowca to lista: precyzyjna, skanowalna, bez ozdobnikow.
   Siatka 13 kafelkow ze zdjeciami to sklep, lista to pracownia.
   ===================================================================== */
.cen__grupa{margin-top:clamp(38px,4.4vw,62px)}
.cen__gh{display:flex;align-items:baseline;justify-content:space-between;
  gap:20px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}
.cen__gh h3{font-size:clamp(1.05rem,1.7vw,1.35rem);color:var(--bone)}
.cen__gh p{font-size:.88rem;color:var(--muted);max-width:52ch}

.cen__r{display:grid;grid-template-columns:auto 1fr auto auto;
  align-items:center;gap:clamp(14px,2.4vw,30px);
  padding:clamp(17px,1.9vw,23px) clamp(10px,1.4vw,18px);
  border-bottom:1px solid var(--line-soft);position:relative;
  transition:background .35s ease,padding-left .35s var(--ease)}
.cen__r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--gold);transform:scaleY(0);transform-origin:top;
  transition:transform .4s var(--ease)}
.cen__r:hover{background:rgba(201,162,75,.05);padding-left:26px}
.cen__r:hover::before{transform:scaleY(1)}
.cen__r:focus-visible{outline:1px solid var(--gold);outline-offset:-1px}
.cen__n{font-family:var(--f-display);font-weight:600;font-size:.76rem;
  letter-spacing:.14em;color:var(--gold);opacity:.7;min-width:26px}
.cen__t h4{font-size:clamp(1rem,1.5vw,1.16rem);color:var(--bone);margin-bottom:5px}
.cen__t p{font-size:.87rem;color:var(--muted);line-height:1.5;max-width:62ch}
.cen__czas{font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.16em;font-size:.68rem;color:var(--muted);white-space:nowrap}
.cen__p{font-family:var(--f-display);font-weight:700;
  font-size:clamp(1.15rem,1.9vw,1.5rem);color:var(--bone);
  white-space:nowrap;text-align:right;min-width:88px}
.cen__r:hover .cen__p{color:var(--gold)}
@media(max-width:760px){
  .cen__r{grid-template-columns:auto 1fr auto;row-gap:6px}
  .cen__czas{grid-column:2;justify-self:start}
  .cen__p{grid-row:1;grid-column:3}
}

/* wiersz wyrozniony — Patent PZSS */
.cen__patent{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,4vw,56px);
  align-items:center;margin-top:clamp(40px,5vw,72px);
  border:1px solid var(--line);background:
    linear-gradient(135deg,rgba(201,162,75,.07),transparent 55%),var(--panel);
  padding:clamp(26px,3.4vw,46px)}
.cen__patent h3{font-size:clamp(1.25rem,2.2vw,1.85rem);color:var(--bone);margin:12px 0 14px}
.cen__patent p{color:var(--bone-dim);font-size:.95rem;line-height:1.68}
.cen__patent .cen__p{font-size:clamp(1.7rem,3vw,2.4rem);text-align:left;color:var(--gold)}
@media(max-width:820px){.cen__patent{grid-template-columns:1fr}}

/* =====================================================================
   PRZYGOTOWANIE — "co dostajesz" + "o co ludzie boja sie zapytac"
   Dwie kolumny w jednym pasie zamiast dwoch osobnych sekcji z kaflami.
   ===================================================================== */
.przyg{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(34px,5vw,86px)}
@media(max-width:900px){.przyg{grid-template-columns:1fr}}

.wcenie{margin-top:26px}
.wcenie li{display:flex;gap:14px;align-items:flex-start;
  padding:13px 0;border-bottom:1px solid var(--line-soft)}
.wcenie li:last-child{border-bottom:0}
.wcenie svg{flex:0 0 auto;width:17px;height:17px;margin-top:3px;
  fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wcenie b{display:block;font-family:var(--f-display);font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;color:var(--bone)}
.wcenie small{display:block;margin-top:3px;font-size:.85rem;color:var(--muted);line-height:1.5}

.pyt{border-top:1px solid var(--line-soft)}
.pyt details{border-bottom:1px solid var(--line-soft)}
.pyt summary{list-style:none;cursor:pointer;padding:19px 40px 19px 0;position:relative;
  font-family:var(--f-display);font-weight:600;font-size:1rem;color:var(--bone);
  transition:color .3s ease}
.pyt summary::-webkit-details-marker{display:none}
.pyt summary::after{content:"";position:absolute;right:6px;top:50%;
  width:11px;height:11px;border-right:1px solid var(--gold);
  border-bottom:1px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
.pyt details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.pyt summary:hover{color:var(--gold)}
.pyt p{padding:0 0 20px;color:var(--bone-dim);font-size:.93rem;
  line-height:1.72;max-width:70ch}

/* =====================================================================
   REEL — material wideo na pelnym kadrze
   Marka strzelecka bez ruchu traci najmocniejszy atut, ale wideo w ramce
   obok kolumny tekstu bylo tylko kolejnym kafelkiem. Tu niesie cala sekcje.
   ===================================================================== */
/* Material to jedno statyczne, plaskie ujecie z postacia mala w kadrze.
   Rozciagniecie go na pelny ekran obnazyloby slabosc nagrania, wiec kadr
   jest waski (21:9) — object-fit wycina niebo i trawe, zostaje strzelec,
   a obraz zostaje ostry, bo nie skalujemy 1280px na cala szerokosc. */
.reelfs{position:relative;overflow:hidden;aspect-ratio:21/9;
  border:1px solid var(--line-soft);background:var(--ink-2)}
/* Dociskamy kadr — w oryginalnym ujeciu strzelec zajmuje ~10% szerokosci
   i ginie w trawie. Skala 1.7 kadruje na nim; poster jest wyciety z tej
   samej klatki i w tym samym kadrze, wiec nie ma przeskoku przy starcie. */
.reelfs video{width:100%;height:100%;object-fit:cover;object-position:50% 34%;
  transform:scale(1.45);transform-origin:50% 44%;
  filter:grayscale(.3) contrast(1.12) brightness(.8) saturate(.9)}
.reelfs::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(6,7,9,.55),transparent 42%);
  box-shadow:inset 0 0 130px rgba(0,0,0,.6)}
.reelfs__rec{position:absolute;top:16px;left:18px;z-index:2;
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-mono,var(--f-display));text-transform:uppercase;
  letter-spacing:.24em;font-size:.62rem;color:var(--bone-dim)}
.reelfs__rec::before{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--blood);animation:reelPuls 1.9s infinite}
@keyframes reelPuls{0%,100%{opacity:1}50%{opacity:.25}}
.reelfs__snd{position:absolute;right:16px;bottom:16px;z-index:2;
  font-family:var(--f-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.16em;font-size:.72rem;color:var(--bone);
  background:rgba(8,9,11,.6);backdrop-filter:blur(6px);
  border:1px solid var(--line);padding:12px 20px;transition:.3s var(--ease)}
.reelfs__snd:hover,.reelfs__snd[aria-pressed="true"]{border-color:var(--gold);color:var(--gold)}
@media(prefers-reduced-motion:reduce){.reelfs__rec::before{animation:none}}

/* =====================================================================
   KARTY PAKIETOW (szkolenia) — typograficzne, bez zdjec
   Trzynascie kafli ze zdjeciami to zupa fotograficzna, a polowa kadrow
   byla slaba albo wygenerowana. Karta niesie to, po co tu ktos przyszedl:
   co dostaje i za ile.
   ===================================================================== */
.pkt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.pkt{position:relative;display:flex;flex-direction:column;overflow:hidden;
  padding:clamp(24px,2.6vw,34px);
  background:linear-gradient(160deg,var(--panel-2),var(--panel));
  border:1px solid var(--line-soft);
  transition:border-color .4s ease,transform .45s var(--ease),box-shadow .45s ease}
.pkt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--gold);transform:scaleY(0);transform-origin:top;
  transition:transform .5s var(--ease)}
.pkt:hover{border-color:var(--line);transform:translateY(-6px);
  box-shadow:0 26px 56px -28px rgba(0,0,0,.9)}
.pkt:hover::before{transform:scaleY(1)}
.pkt__no{position:absolute;top:14px;right:18px;font-family:var(--f-display);
  font-weight:700;font-size:clamp(2.6rem,4vw,3.6rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1px rgba(201,162,75,.28);pointer-events:none}
.pkt__meta{font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.2em;font-size:.64rem;color:var(--gold);opacity:.85}
.pkt h3{font-size:clamp(1.15rem,1.8vw,1.42rem);color:var(--bone);
  margin:12px 0 10px;max-width:15ch}
.pkt__dla{color:var(--bone-dim);font-size:.9rem;line-height:1.6;margin-bottom:18px}
.pkt__spec{margin:0 0 22px;padding-top:16px;border-top:1px solid var(--line-soft)}
.pkt__spec li{position:relative;padding-left:20px;margin:9px 0;
  color:var(--bone-dim);font-size:.88rem;line-height:1.5}
.pkt__spec li::before{content:"";position:absolute;left:0;top:.55em;
  width:6px;height:6px;background:var(--gold);opacity:.7;transform:rotate(45deg)}
.pkt__foot{margin-top:auto;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding-top:18px;
  border-top:1px solid var(--line-soft)}
.pkt__cena{font-family:var(--f-display);font-weight:700;
  font-size:clamp(1.5rem,2.4vw,1.95rem);color:var(--bone);line-height:1}
.pkt:hover .pkt__cena{color:var(--gold)}
.pkt__go{display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-display);font-weight:600;letter-spacing:.14em;
  font-size:.7rem;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.pkt__go i{font-style:normal;transition:transform .35s var(--ease)}
.pkt:hover .pkt__go i{transform:translateX(6px)}
.pkt__link{position:absolute;inset:0;z-index:3}
.pkt__link:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}

/* =====================================================================
   VOUCHERY — dwa warianty zamiast klonu calego cennika
   Sklep powielal 13 kart szkolen z powtarzajacymi sie zdjeciami. Kupujacy
   prezent ma dwie realne potrzeby: albo wie, co chce podarowac, albo chce
   dac kwote i zostawic wybor obdarowanemu.
   ===================================================================== */
.vou{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px}
.vo{position:relative;display:flex;flex-direction:column;overflow:hidden;
  padding:clamp(26px,3vw,40px);
  background:linear-gradient(160deg,var(--panel-2),var(--panel));
  border:1px solid var(--line-soft);transition:border-color .4s ease}
.vo:hover,.vo:focus-within{border-color:var(--line)}
.vo__no{position:absolute;top:16px;right:20px;font-family:var(--f-display);
  font-weight:700;font-size:clamp(2.6rem,4vw,3.4rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1px rgba(201,162,75,.26);pointer-events:none}
.vo__kicker{font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.22em;font-size:.66rem;color:var(--gold)}
.vo h3{font-size:clamp(1.2rem,2vw,1.55rem);color:var(--bone);margin:12px 0 10px;max-width:16ch}
.vo__opis{color:var(--bone-dim);font-size:.93rem;line-height:1.62;margin-bottom:24px;max-width:46ch}

.vo__pole{display:block;margin-bottom:18px}
.vo__pole span{display:block;font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.16em;font-size:.66rem;color:var(--muted);margin-bottom:9px}
.vo select,.vo input[type="number"]{
  width:100%;padding:15px 16px;background:rgba(8,9,11,.6);color:var(--bone);
  border:1px solid var(--line-soft);font-family:var(--f-body);font-size:1rem;
  transition:border-color .3s ease}
.vo select:focus,.vo input:focus{outline:none;border-color:var(--gold)}
.vo select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),
    linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px}
.vo select option{background:var(--panel);color:var(--bone)}

.vo__kwoty{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.vo__kwota{padding:11px 17px;border:1px solid var(--line-soft);
  font-family:var(--f-display);font-weight:600;letter-spacing:.06em;
  font-size:.86rem;color:var(--bone-dim);transition:.25s var(--ease)}
.vo__kwota:hover{border-color:var(--line);color:var(--bone)}
.vo__kwota[aria-pressed="true"]{border-color:var(--gold);color:var(--gold);
  background:rgba(201,162,75,.1)}

.vo__zawiera{margin:0 0 22px;padding-top:16px;border-top:1px solid var(--line-soft);
  min-height:120px}
.vo__zawiera li{position:relative;padding-left:20px;margin:8px 0;
  color:var(--bone-dim);font-size:.87rem;line-height:1.5}
.vo__zawiera li::before{content:"";position:absolute;left:0;top:.55em;
  width:6px;height:6px;background:var(--gold);opacity:.7;transform:rotate(45deg)}

.vo__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line-soft)}
.vo__cena{font-family:var(--f-display);font-weight:700;
  font-size:clamp(1.6rem,2.6vw,2.1rem);color:var(--gold);line-height:1}
.vo__cena small{display:block;font-family:var(--f-body);font-weight:400;
  font-size:.72rem;letter-spacing:.04em;color:var(--muted);margin-top:5px}
.vo__blad{width:100%;color:var(--blood);font-size:.84rem;margin-top:-8px;
  margin-bottom:10px;min-height:1.1em}

/* =====================================================================
   KLASTER ZDJEC INSTRUKTORA
   Jeden portret nie buduje zaufania do czlowieka, u ktorego stajesz na osi
   z bronia. Duzy kadr + dwa mniejsze pokazuja go w robocie, nie w pozie.
   ===================================================================== */
/* aspect-ratio jest tu konieczne: wiersze 1fr w kontenerze o wysokosci
   auto zwijaja sie do zera, a zdjecia z height:100% znikaja calkiem. */
.mfoto{display:grid;grid-template-columns:1.32fr 1fr;grid-template-rows:1fr 1fr;
  gap:10px;position:relative;aspect-ratio:1/1.02}
.mfoto figure{position:relative;overflow:hidden;margin:0;background:var(--ink-2)}
.mfoto figure:first-child{grid-row:span 2}
.mfoto img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.34) contrast(1.08);
  transition:transform .9s var(--ease),filter .5s ease}
.mfoto figure:hover img{transform:scale(1.05);filter:grayscale(0) contrast(1.04)}
.mfoto figure::after{content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px var(--line-soft)}
.mfoto__pod{position:absolute;left:0;bottom:0;z-index:2;
  background:linear-gradient(to top,rgba(6,7,9,.9),transparent);
  padding:26px 20px 16px;width:100%;
  font-family:var(--f-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.16em;font-size:.66rem;color:var(--gold)}
.mfoto::before{content:"";position:absolute;left:-14px;bottom:-14px;
  width:44%;height:38%;border-left:1px solid var(--gold);
  border-bottom:1px solid var(--gold);opacity:.45;pointer-events:none}
@media(max-width:640px){
  .mfoto{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .mfoto figure:first-child{grid-row:auto;grid-column:span 2;aspect-ratio:4/3}
  .mfoto figure:not(:first-child){aspect-ratio:1}
}

/* =====================================================================
   ZNAK W NAGLOWKU
   Wczesniej w slocie 34 px siedzial caly poziomy logotyp 900x375 — po
   zgnieceniu byl nieczytelna plama, a do tego powielal napis obok.
   Teraz jest sama gwiazda, wiec ma szanse cokolwiek pokazac.
   ===================================================================== */
.brand img{width:40px!important;height:40px!important;
  mix-blend-mode:normal!important;object-fit:contain}
/* w stopce jest miejsce na pelny logotyp — ale nie na 130 px, bo napis
   pod gwiazda robi sie nieczytelny */
.footer__brand img{width:min(230px,80%)!important;height:auto!important;
  mix-blend-mode:normal!important;margin-bottom:18px}

/* =====================================================================
   STOPKA — ikony spolecznosciowe i wyrozniony kontakt
   ===================================================================== */
.footer__social a svg{width:19px;height:19px;fill:currentColor;display:block}
.footer__social a{color:var(--bone-dim)}
.footer__social a:hover{color:#000}

.fkontakt address{display:flex;flex-direction:column;gap:6px;font-style:normal}
.fkontakt__tel{font-family:var(--f-display);font-weight:600;
  font-size:clamp(1.1rem,1.7vw,1.35rem);letter-spacing:.04em;
  color:var(--gold)!important;transition:color .3s}
.fkontakt__tel:hover{color:var(--gold-bright)!important}
.fkontakt__mail{color:var(--bone)!important;font-size:.95rem;
  border-bottom:1px solid var(--line);align-self:flex-start;
  padding-bottom:2px;transition:border-color .3s}
.fkontakt__mail:hover{border-color:var(--gold)}
.fkontakt__adres{color:var(--muted);font-size:.88rem;line-height:1.6;margin-top:4px}
.fkontakt__btn{margin-top:20px}

/* =====================================================================
   GDZIE TRENUJEMY — lokalizacja z mapa w formularzu rezerwacji
   ===================================================================== */
.miejsce{display:grid;grid-template-columns:1fr 1fr;gap:20px;
  margin-top:26px;border:1px solid var(--line-soft);
  background:rgba(19,22,27,.5);padding:clamp(20px,2.4vw,28px)}
.miejsce h4{font-family:var(--f-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em;font-size:1.15rem;color:var(--bone);margin:10px 0 10px}
.miejsce p{color:var(--bone-dim);font-size:.92rem;line-height:1.62;max-width:44ch}
.miejsce__biuro{color:var(--muted)!important;font-size:.86rem!important;margin-top:10px}
.miejsce .linkline{margin-top:16px;display:inline-flex}
.miejsce__mapa{position:relative;min-height:220px;overflow:hidden;
  border:1px solid var(--line-soft);filter:grayscale(.5) contrast(1.05) brightness(.9)}
.miejsce__mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:760px){
  .miejsce{grid-template-columns:1fr}
  .miejsce__mapa{min-height:210px}
}

/* =====================================================================
   PAS CYTATU — pelnoekranowy oddech miedzy blokami
   ===================================================================== */
.pas{position:relative;overflow:hidden;isolation:isolate;
  min-height:min(62vh,540px);display:grid;place-items:center;text-align:center}
.pas__bg{position:absolute;inset:0;z-index:-2}
/* Wczesniej brightness(.4) plus ciemny gradient gasily zdjecie do czerni —
   sekcja wygladala jak pusty czarny pas. */
.pas__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;
  filter:grayscale(.55) contrast(1.16) brightness(.66)}
.pas::after{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse at center,rgba(8,9,11,.3),rgba(8,9,11,.86) 82%)}
.pas blockquote{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.7rem,4.4vw,3.6rem);line-height:1.03;color:var(--bone);
  max-width:20ch;margin-inline:auto}
.pas blockquote span{color:var(--gold)}
.pas cite{display:block;margin-top:22px;font-family:var(--f-display);
  font-style:normal;text-transform:uppercase;letter-spacing:.32em;
  font-size:.68rem;color:var(--muted)}
