/* ============================================================================
   OTSL V3 — redesign.css (pakiet „wow", 2026-07-18)
   Warstwa PO main.css: hero asymetryczny, pasek manifestu (split-flap), menu
   „dispatch board", bento usług, przejście noc→świt, tracking zapytania,
   skaner na kartach, stempel, przejścia między stronami. Czysty CSS, zero
   bibliotek; wszystko na transform/opacity; prefers-reduced-motion na końcu.
   ========================================================================== */

/* Tekst tylko dla czytników ekranu. */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}
/* Fraza niełamliwa (pary etykieta+wartość: KRS, REGON, kapitał…). */
.nw{white-space:nowrap;}

/* ── Przejścia między stronami (View Transitions API, progressive) ────────── */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:vtOut .22s ease both;}
::view-transition-new(root){animation:vtIn .30s cubic-bezier(.22,.61,.36,1) both;}
@keyframes vtOut{to{opacity:0;transform:translateY(-8px);}}
@keyframes vtIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

/* ── Typografia: równe wiersze nagłówków w całym serwisie ─────────────────── */
h1,h2,h3{text-wrap:balance;}

/* ── Górne menu: „magic line" + porządki po starym dropdownie ─────────────── */
.main-nav{position:relative;}
/* Stare podkreślenie per-link zastąpione jedną wędrującą linią. */
.main-nav__list a::after{display:none;}
.main-nav__list a{transition:color .18s ease;}
.nav-magic{position:absolute;left:0;bottom:-25px;height:2px;width:0;background:var(--otsl-red);
  border-radius:2px;box-shadow:0 0 10px rgba(218,31,38,.7);opacity:0;pointer-events:none;
  transition:transform .28s cubic-bezier(.22,.61,.36,1),width .28s cubic-bezier(.22,.61,.36,1),opacity .18s ease;}
/* Stary dropdown mobilny: nawigację przejął overlay „dispatch board".
   Lista musi zniknąć całkiem (transform zostawiał niewidoczne linki w tabulacji). */
@media (max-width:1080px){
  .main-nav__list{display:none;}
}

/* ── HERO v2: asymetryczny split (tekst | nocne foto cięte po skosie) ─────── */
.hero--v2{position:relative;overflow:clip;background:var(--grad-ink);}
.hero--v2 .hero__bg{left:auto;right:0;width:58%;object-position:70% 50%;
  clip-path:polygon(14% 0,100% 0,100% 100%,0 100%);}
.hero--v2 .hero__veil{background:linear-gradient(90deg,#0E0E12 0%,#0E0E12 40%,rgba(14,14,18,.55) 55%,rgba(14,14,18,.08) 100%);}
.hero--v2 .hero__inner{max-width:none;}
.hero--v2 .hero__panel{max-width:620px;}
/* Nagłówek: spokojniejsza skala (sufit ~3rem zamiast 4), równe wiersze. */
.hero--v2 .hero__title{font-size:clamp(1.9rem,3.4vw,2.95rem);letter-spacing:-.015em;
  line-height:1.16;text-wrap:balance;max-width:17ch;}
/* Geografia jako spokojna druga linia w H1 (SEO zostaje, krzyk znika). */
.hero--v2 .hero__geo{display:block;margin-top:.75em;font-size:clamp(.95rem,1.5vw,1.1rem);
  font-weight:600;letter-spacing:.06em;color:var(--silver-300);text-transform:uppercase;}
/* Czerwony szew wzdłuż skosu — cienka wstęga na łączeniu panelu i zdjęcia. */
.hero--v2 .hero__seam{position:absolute;top:-4%;bottom:-4%;left:44%;width:5px;
  background:linear-gradient(180deg,transparent 0%,var(--otsl-red) 18%,var(--otsl-red) 82%,transparent 100%);
  transform:rotate(6.5deg);transform-origin:center;box-shadow:0 0 22px rgba(218,31,38,.55);pointer-events:none;}
@media (max-width:960px){
  .hero--v2 .hero__bg{width:100%;clip-path:none;object-position:60% 50%;}
  .hero--v2 .hero__veil{background:linear-gradient(180deg,rgba(8,8,11,.86) 0%,rgba(8,8,11,.62) 60%,rgba(8,8,11,.78) 100%);}
  .hero--v2 .hero__seam{display:none;}
}

/* ── Pasek manifestu (split-flap, tablica odlotów) ─────────────────────────── */
.manifest{background:#0B0B0E;border-block:1px solid var(--line-dark);overflow:clip;}
.manifest__inner{display:flex;align-items:center;gap:var(--sp-4);padding-block:12px;}
.manifest__dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--otsl-red);
  box-shadow:0 0 10px rgba(218,31,38,.8);animation:maniPulse 2.2s ease-out infinite;}
@keyframes maniPulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.manifest__line{font-family:var(--font-mono);font-size:clamp(.72rem,1.5vw,.92rem);letter-spacing:.14em;
  text-transform:uppercase;color:#DDE0E6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;}
.manifest__line .ch{display:inline-block;min-width:.62em;text-align:center;
  transition:transform .16s ease,opacity .16s ease;transform-origin:50% 60%;}
.manifest__line .ch.is-flip{transform:rotateX(90deg);opacity:.2;}
.manifest__label{flex:none;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;color:var(--silver-500);
  text-transform:uppercase;border:1px solid var(--line-dark);border-radius:4px;padding:3px 8px;}
@media (max-width:640px){.manifest__label{display:none;}}

/* ── Menu „Dispatch board” ────────────────────────────────────────────────── */
.dispatch-toggle{display:inline-flex;align-items:center;gap:10px;min-width:44px;min-height:44px;
  padding:8px 12px;background:none;border:1px solid rgba(255,255,255,.32);border-radius:var(--r-pill);
  cursor:pointer;color:var(--text-on-dark);transition:border-color .18s ease,background .18s ease;}
.dispatch-toggle:hover{border-color:var(--otsl-red);background:rgba(218,31,38,.08);}
.dispatch-toggle__bars{display:flex;flex-direction:column;gap:4px;}
.dispatch-toggle__bars span{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;
  transition:transform .2s ease,width .2s ease;}
.dispatch-toggle:hover .dispatch-toggle__bars span:nth-child(2){width:14px;}
.dispatch-toggle__label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;}
@media (max-width:560px){.dispatch-toggle__label{display:none;}}
/* Stary hamburger (dropdown) zastąpiony overlayem. */
.nav-toggle{display:none!important;}

/* Kurtyna-plandeka: wjeżdża z prawej jak zasuwana burta naczepy. */
.dispatch{position:fixed;inset:0;z-index:1200;background:#0C0C10;color:var(--text-on-dark);
  display:flex;flex-direction:column;visibility:hidden;opacity:0;transform:translateX(103%);
  transition:opacity .2s ease .3s,transform .5s cubic-bezier(.2,.9,.25,1),visibility 0s linear .5s;}
.dispatch.is-open{visibility:visible;opacity:1;transform:none;transition-delay:0s;}
.dispatch__tarp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.dispatch__veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(10,7,7,.42) 0%,rgba(10,7,7,.6) 55%,rgba(10,7,7,.74) 100%);}
/* Fala materiału: dwa miękkie pasma światła przesuwają się chwilę po kurtynie. */
.dispatch::before,.dispatch::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.06) 38%,transparent 46%);
  transform:translateX(-60%);opacity:0;}
.dispatch.is-open::before{animation:tarpSheen .9s cubic-bezier(.2,.7,.3,1) .12s;}
.dispatch.is-open::after{animation:tarpSheen 1.1s cubic-bezier(.2,.7,.3,1) .22s;}
@keyframes tarpSheen{0%{opacity:1;transform:translateX(-60%);}100%{opacity:0;transform:translateX(120%);}}
.dispatch__head,.dispatch__body,.dispatch__foot{position:relative;z-index:2;}
body.dispatch-lock{overflow:hidden;}
.dispatch__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  padding:var(--sp-4) 0;border-bottom:1px solid var(--line-dark);}
.dispatch__close{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;
  background:none;border:1px solid var(--line-dark);border-radius:50%;color:#fff;cursor:pointer;font-size:1.15rem;
  transition:border-color .18s ease,transform .18s ease;}
.dispatch__close:hover{border-color:var(--otsl-red);transform:rotate(90deg);}
.dispatch__body{flex:1;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;padding-block:var(--sp-8);}
.dispatch__list{list-style:none;margin:0;padding:0;max-width:var(--container);width:100%;margin-inline:auto;
  padding-inline:var(--sp-6);}
/* Pola listu przewozowego CMR na plandece. */
.dispatch__row{max-width:820px;margin-bottom:clamp(6px,1.1vh,12px);}
.dispatch__link{position:relative;display:flex;flex-direction:column;gap:2px;
  padding:clamp(.5rem,1.4vh,.9rem) clamp(.9rem,2vw,1.4rem);color:#fff;text-decoration:none;
  border:1px solid rgba(255,255,255,.38);background:rgba(12,8,8,.26);
  transition:transform .24s cubic-bezier(.2,.9,.25,1),background .2s ease,border-color .2s ease;}
.dispatch__link:hover,.dispatch__link:focus-visible{text-decoration:none;transform:translateX(12px);
  background:rgba(12,8,8,.44);border-color:rgba(255,255,255,.7);}
.dispatch__idx{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.22em;
  color:rgba(255,255,255,.62);text-transform:uppercase;}
.dispatch__name{font-family:var(--font-head);font-weight:800;font-size:clamp(1.3rem,3.6vh,2.1rem);
  letter-spacing:-.01em;line-height:1.15;}
/* Stempel „WYBRANO" przybijany na hover/fokus. */
.dispatch__link::after{content:attr(data-stamp);position:absolute;right:clamp(.8rem,2vw,1.6rem);top:50%;
  font-family:var(--font-mono);font-weight:700;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:#fff;border:2px solid #fff;border-radius:6px;padding:5px 12px;
  transform:translateY(-50%) rotate(-7deg) scale(2);opacity:0;pointer-events:none;
  mask-image:radial-gradient(circle at 35% 45%,rgba(0,0,0,.95) 90%,rgba(0,0,0,.55) 96%);}
.dispatch__link:hover::after,.dispatch__link:focus-visible::after{
  animation:menuStamp .3s cubic-bezier(.2,1.35,.4,1) forwards;}
@keyframes menuStamp{0%{opacity:0;transform:translateY(-50%) rotate(-13deg) scale(1.9);}
  100%{opacity:1;transform:translateY(-50%) rotate(-7deg) scale(1);}}
@media (max-width:640px){.dispatch__link::after{display:none;}}
/* Wejście kaskadowe pól (wsuwają się z prawej jak napinane pasy). */
.dispatch__row{opacity:0;transform:translateX(46px);
  transition:opacity .4s ease,transform .5s cubic-bezier(.2,.9,.25,1);}
.dispatch.is-open .dispatch__row{opacity:1;transform:none;transition-delay:calc(.14s + var(--i,0)*.06s);}
.dispatch__foot{border-top:1px solid var(--line-dark);}
.dispatch__foot-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  flex-wrap:wrap;padding-block:var(--sp-4);}
.dispatch__contacts{display:flex;gap:var(--sp-4);flex-wrap:wrap;}
.dispatch__contacts a{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em;color:var(--silver-300);
  text-transform:uppercase;}
.dispatch__contacts a:hover{color:#fff;}
.dispatch .manifest{border-block:0;background:transparent;}

/* ── Przejście noc→świt (home) ────────────────────────────────────────────── */
.dawn{position:relative;padding:0;background:linear-gradient(180deg,#0B0B0E 0%,#17151C 26%,#3B2A33 52%,#B98A6E 74%,#F4E8DC 90%,var(--paper) 100%);}
.dawn__inner{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);
  padding-block:clamp(64px,12vh,128px);text-align:center;}
.dawn__eyebrow{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.78);margin:0;}
.dawn__line{width:2px;height:clamp(42px,9vh,90px);margin-top:var(--sp-2);
  background:linear-gradient(180deg,var(--otsl-red),transparent);}
.dawn__title{font-family:var(--font-head);font-weight:800;color:#fff;font-size:clamp(1.15rem,2.4vw,1.6rem);
  margin:0;text-shadow:0 2px 18px rgba(0,0,0,.45);}
/* Scroll-driven doświetlenie (tylko wspierające przeglądarki). */
@supports (animation-timeline: view()){
  .dawn__inner{animation:dawnRise linear both;animation-timeline:view();animation-range:entry 10% cover 55%;}
  @keyframes dawnRise{from{opacity:.35;transform:translateY(26px);}to{opacity:1;transform:none;}}
}

/* ── Bento usług (nierówna siatka zamiast 4 równych kolumn) ───────────────── */
.bento{display:grid;gap:var(--sp-6);grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(150px,auto);}
.bento>*{grid-column:span 2;}
.bento>*:first-child{grid-column:span 4;grid-row:span 2;}
.bento>*:nth-child(4){grid-column:span 3;}
.bento>*:nth-child(5){grid-column:span 3;}
.bento .card{height:100%;margin:0;}
.bento>*:first-child.card{justify-content:flex-end;background:var(--grad-ink);border-color:var(--line-dark);color:var(--text-on-dark);}
.bento>*:first-child .card__title{color:#fff;font-size:clamp(1.5rem,2.4vw,2rem);}
.bento>*:first-child .card__desc{color:var(--text-on-dark-muted);}
.bento>*:first-child .card__icon{background:rgba(218,31,38,.16);color:var(--otsl-red);}
@media (max-width:1080px){
  .bento{grid-template-columns:repeat(2,1fr);}
  .bento>*,.bento>*:first-child,.bento>*:nth-child(4),.bento>*:nth-child(5){grid-column:span 1;grid-row:auto;}
  .bento>*:first-child{grid-column:span 2;}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr;}
  .bento>*,.bento>*:first-child{grid-column:span 1;}
}
/* Mono-etykieta pozycji manifestu na kartach bento. */
.bento .card{position:relative;}
.bento .card__tag{position:absolute;top:var(--sp-4);right:var(--sp-4);font-family:var(--font-mono);
  font-size:.66rem;letter-spacing:.18em;color:var(--silver-400);text-transform:uppercase;}

/* ── Hover kart: jak w koncepcie (czerwona ramka + lekki lift), bez skanera ── */
.card{position:relative;overflow:hidden;}
a.card:hover,a.card:focus-visible{border-color:var(--otsl-red);}

/* ── Tracking zapytania („Wysyłasz zapytanie. Co dalej?”) ─────────────────── */
.track{position:relative;}
.track__rail{position:relative;height:3px;background:var(--line);border-radius:2px;margin:56px 0 0;}
.track__prog{position:absolute;inset:0 auto 0 0;width:calc(var(--p,0)*100%);background:var(--otsl-red);
  border-radius:2px;box-shadow:0 0 12px rgba(218,31,38,.5);transition:width .2s linear;}
.track__dot{position:absolute;top:50%;left:calc(var(--p,0)*100%);width:14px;height:14px;border-radius:50%;
  background:var(--otsl-red);box-shadow:0 0 0 5px rgba(218,31,38,.18),0 0 16px rgba(218,31,38,.7);
  transform:translate(-50%,-50%);transition:left .2s linear;}
.track__stops{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-4);
  margin:18px 0 0;padding:0;}
.track__stop{position:relative;padding-top:26px;}
.track__stop::before{content:"";position:absolute;top:-27px;left:0;width:13px;height:13px;border-radius:50%;
  background:var(--paper);border:2.5px solid var(--silver-300);transition:border-color .25s ease,background .25s ease,transform .25s ease;}
.track__stop.is-passed::before{background:var(--otsl-red);border-color:var(--otsl-red);}
.track__stop.is-active::before{border-color:var(--otsl-red);transform:scale(1.35);}
.track__time{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--otsl-red);margin-bottom:4px;}
.track__t{display:block;font-weight:700;font-size:.98rem;line-height:1.4;color:var(--text);}
.track__note{margin-top:var(--sp-8);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;
  color:var(--text-muted);text-transform:uppercase;text-align:center;}
@media (max-width:860px){
  .track__rail{display:none;}
  .track__stops{grid-template-columns:1fr;gap:0;margin-top:var(--sp-4);}
  .track__stop{padding:0 0 var(--sp-4) 34px;border-left:2px solid var(--line);margin-left:6px;}
  .track__stop::before{top:2px;left:-8px;}
  .track__stop:last-child{border-left-color:transparent;}
  .track__stop.is-passed{border-left-color:var(--otsl-red);}
}

/* ── Stempel „PRZYJĘTO” (strona podziękowania) ────────────────────────────── */
.stamp{display:inline-block;font-family:var(--font-mono);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--otsl-red);border:3px solid var(--otsl-red);border-radius:10px;
  padding:10px 22px;font-size:clamp(1rem,2.6vw,1.4rem);transform:rotate(-6deg);position:relative;
  -webkit-mask-image:radial-gradient(circle at 30% 40%,#000 92%,transparent 95%),linear-gradient(#000,#000);
  mask-image:radial-gradient(circle at 30% 40%,rgba(0,0,0,.94) 92%,rgba(0,0,0,.6) 95%),linear-gradient(rgba(0,0,0,.92),rgba(0,0,0,.92));
  mask-composite:intersect;margin-bottom:var(--sp-6);}
html.js .stamp{opacity:0;}
html.js .is-loaded .stamp,html.js .stamp.is-in{animation:stampIn .5s cubic-bezier(.2,1.4,.4,1) .45s forwards;}
@keyframes stampIn{0%{opacity:0;transform:rotate(-14deg) scale(2.2);}
  62%{opacity:1;transform:rotate(-5deg) scale(.94);}100%{opacity:1;transform:rotate(-6deg) scale(1);}}

/* ── Pasek postępu czytania artykułu (ciężarówka dojeżdża do celu) ────────── */
.readbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:1100;pointer-events:none;}
.readbar__fill{height:100%;width:calc(var(--p,0)*100%);background:var(--otsl-red);
  box-shadow:0 0 8px rgba(218,31,38,.6);}
.readbar__truck{position:absolute;top:2px;left:calc(var(--p,0)*100%);transform:translateX(-100%);
  color:var(--otsl-red);}
.readbar__truck svg{width:22px;height:22px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));}

/* ── Suwak przed/po (inspekcje, ReturnHub) ────────────────────────────────── */
.ba{margin:var(--sp-8) 0;max-width:860px;}
.ba__frame{position:relative;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow-pop);}
.ba__img{display:block;width:100%;height:auto;}
.ba__top{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--ba,50%)) 0 0);}
.ba__top .ba__img{position:absolute;inset:0;height:100%;object-fit:cover;}
.ba__handle{position:absolute;top:0;bottom:0;left:var(--ba,50%);width:3px;margin-left:-1.5px;
  background:var(--otsl-red);box-shadow:0 0 12px rgba(218,31,38,.8);pointer-events:none;}
.ba__handle::after{content:"\2194";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:40px;height:40px;border-radius:50%;background:var(--otsl-red);color:#fff;font-size:1.05rem;
  display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.35);}
.ba__tag{position:absolute;bottom:12px;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:#fff;background:rgba(11,11,14,.72);padding:4px 10px;border-radius:6px;}
.ba__tag--l{left:12px;}
.ba__tag--r{right:12px;}
/* Suwak NA obrazie: niewidoczny range pokrywa całe zdjęcie (mysz/dotyk/klawiatura). */
.ba__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;
  cursor:ew-resize;touch-action:none;}
.ba__frame:focus-within{box-shadow:var(--ring);}
.ba__cap{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-muted);margin-top:var(--sp-3);}

/* ── Latarka UV (inspekcje): kursor odsłania warstwę fluorescencyjną ──────── */
.uv{margin:var(--sp-8) 0;max-width:860px;}
.uv__frame{position:relative;overflow:hidden;border-radius:10px;box-shadow:var(--shadow-pop);
  cursor:crosshair;touch-action:none;}
.uv__img{display:block;width:100%;height:auto;}
.uv__top{position:absolute;inset:0;
  clip-path:circle(var(--uv-r,120px) at var(--uv-x,50%) var(--uv-y,46%));
  transition:clip-path .18s ease-out;}
.uv__top .uv__img{position:absolute;inset:0;height:100%;object-fit:cover;}
.uv__tag{position:absolute;top:12px;right:12px;font-family:var(--font-mono);font-size:.68rem;
  letter-spacing:.16em;color:#B9AFFF;background:rgba(11,11,14,.72);padding:4px 10px;border-radius:6px;}
.uv__cap{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-muted);margin-top:var(--sp-3);max-width:70ch;}

/* ── Magnetyczne CTA + liczniki w trakcie zliczania ───────────────────────── */
.btn--primary{will-change:transform;}
.stats-band__num.is-counting{text-shadow:0 0 18px rgba(218,31,38,.55);}

/* ── Kropki jadące po głównych trasach mapy (SMIL w SVG) ──────────────────── */
.euromap__cargo{fill:var(--otsl-red);filter:drop-shadow(0 0 6px rgba(218,31,38,.9));}
@media (prefers-reduced-motion:reduce){.euromap__cargo-group{display:none;}}

/* ══════════════════════════════════════════════════════════════════════════
   PAKIET ANTY-AI (audyt krytyka 2026-07-18): mniej neonu, mniej powtórek,
   ostrzejszy język „dokumentu spedycyjnego". Nadpisuje wzorce z main.css.
   ══════════════════════════════════════════════════════════════════════════ */

/* 1. Karty: bez różowego kafla ikony; mono-tag jako identyfikator; jedno CTA. */
.card{border-radius:10px;box-shadow:none;border:1px solid var(--line);}
.card:hover{box-shadow:var(--shadow-pop);}
.card--service .card__icon{width:auto;height:auto;background:none;border-radius:0;
  color:var(--ink-800);}
.card--service .card__icon svg{width:28px;height:28px;}
.bento>*:first-child .card__icon{background:none;color:var(--otsl-red);}
.card--service .card__more{opacity:0;transform:translateX(-6px);
  transition:opacity .2s ease,transform .2s ease;}
a.card:hover .card__more,a.card:focus-visible .card__more{opacity:1;transform:none;}
.bento .card__tag{color:var(--otsl-red);}

/* 2. Swoosh tylko raz na stronę (sekcja usług); reszta nagłówków bez stempla. */
.section-heading .swoosh{display:none;}
.section--alt .section-heading .swoosh{display:block;}
/* Sekcja usług = moment display; poboczne mówią ciszej. */
.section--alt .section-heading__title{font-size:clamp(2.2rem,4.6vw,3.6rem);letter-spacing:-.025em;}
/* Nagłówek dzielony (H2 lewa, lead prawa) dla sekcji trackingu i mapy. */
@supports selector(:has(a)) {
  .section:has(.track) .section-heading,
  .euromap-section .section-heading{display:grid;grid-template-columns:1.15fr 1fr;
    align-items:end;gap:var(--sp-4) var(--sp-12);text-align:left;}
  .section:has(.track) .section-heading__lead,
  .euromap-section .section-heading__lead{margin:0;grid-column:2;grid-row:1 / span 2;align-self:end;}
  @media (max-width:860px){
    .section:has(.track) .section-heading,
    .euromap-section .section-heading{display:block;}
  }
}

/* 3. Rytm sekcji: answer-box nachodzi na pas świtu (przełamanie granic). */
.dawn + .section{padding-top:0;}
.dawn + .section .qa-block{position:relative;z-index:2;margin-top:-56px;
  background:var(--paper);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow-pop);}

/* 5. Neon tylko tam, gdzie żyje puls: manifest i kropka trackingu. */
.nav-magic{box-shadow:none;}
.hero--v2 .hero__seam{box-shadow:none;}
.card::before{box-shadow:none;}
.dispatch__link::after{box-shadow:none;}
.readbar__fill{box-shadow:none;}
.track__prog{box-shadow:none;}
.ba__handle{box-shadow:none;}

/* 6. Przyciski: ostre, płaskie, bez podskoku; ruch tylko w strzałce. */
.btn{border-radius:8px;}
.btn--primary{background:var(--otsl-red);box-shadow:none;}
.btn--primary:hover{background:var(--otsl-red-700);}
.btn:hover{transform:none;}
.btn svg{transition:transform .18s ease;}
.btn:hover svg{transform:translateX(3px);}
.link-arrow{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700;
  border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px;}
.link-arrow:hover{text-decoration:none;border-bottom-color:var(--otsl-red);}
.link-arrow svg{transition:transform .18s ease;}
.link-arrow:hover svg{transform:translateX(4px);}

/* 8. Answer-box jak pozycja dokumentu, nie „callout z czatu". */
.qa-block{border-left-width:1px;}

/* ── Duża karta bento ze zdjęciem (jak koncept-2) ─────────────────────────── */
.card--photo .card__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  transition:transform .5s cubic-bezier(.22,.61,.36,1);}
a.card--photo:hover .card__bg{transform:scale(1.04);}
.card--photo::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,11,14,.18) 0%,rgba(11,11,14,.42) 55%,rgba(11,11,14,.88) 100%);}
.card--photo>*{position:relative;z-index:2;}
.card--photo .card__icon{display:none;}
.card--photo .card__desc{color:#DDE0E6;}
.card--photo .card__tag{color:#fff;}

/* ── Pas CTA: diagonalny podział czerwień/grafit (jak koncept-4) ──────────── */
.cta-band{background:linear-gradient(115deg,var(--otsl-red) 0%,var(--otsl-red-700) 44%,#16161A 44.15%,#0E0E12 100%);}
.cta-band__text{color:rgba(255,255,255,.85);}
.cta-band .btn--primary{background:#fff;color:var(--ink-900);}
.cta-band .btn--primary:hover{background:var(--silver-100);}
@media (max-width:760px){
  .cta-band{background:linear-gradient(165deg,var(--otsl-red) 0%,var(--otsl-red-700) 52%,#16161A 52.2%,#0E0E12 100%);}
}

/* ── FAQ jak pozycje manifestu: mono-numeracja + spokojny akordeon ────────── */
.faq__list{counter-reset:faq;}
.faq__q{counter-increment:faq;}
.faq__q::before{content:"FAQ-" counter(faq,decimal-leading-zero);
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;color:var(--otsl-red);
  flex:none;margin-right:var(--sp-2);}
.faq__item{border-radius:10px;transition:border-color .18s ease;}
.faq__item[open],.faq__item:hover{border-color:var(--silver-400);}

/* 11. Hero: metryki jako jedna mono-linia (manifest już niesie „dane"). */
.hero--v2 .hero__metrics{gap:var(--sp-6);margin-top:var(--sp-8);}
.hero--v2 .hero__metrics li{flex-direction:row;align-items:baseline;gap:8px;}
.hero--v2 .hero__metrics strong{font-family:var(--font-mono);font-size:.78rem;font-weight:700;
  letter-spacing:.14em;color:#fff;text-transform:uppercase;}
.hero--v2 .hero__metrics span{font-family:var(--font-mono);font-size:.7rem;
  letter-spacing:.12em;color:var(--silver-400);text-transform:uppercase;}

/* Mapa: kontynent z kropek pod siatką. */
.euromap__land{opacity:.34;}
.euromap__grid line{opacity:.5;}

/* ── Trasa scrolla (home): pionowa linia z przystankami i ciężarówką ──────── */
.rail{position:fixed;left:26px;top:50%;transform:translateY(-50%);height:56vh;z-index:90;
  display:none;}
@media (min-width:1320px){.rail{display:block;}}
.rail__line{position:absolute;left:5px;top:0;bottom:0;width:2px;
  background:repeating-linear-gradient(180deg,var(--otsl-red) 0 7px,transparent 7px 14px);opacity:.55;}
.rail__truck{position:absolute;left:6px;top:calc(var(--rp,0)*100%);transform:translate(-50%,-50%) rotate(90deg);
  color:var(--otsl-red);transition:top .15s linear;background:var(--paper);border-radius:50%;
  padding:3px;box-shadow:0 1px 6px rgba(14,14,18,.2);}
.section--dark~* .rail__truck{background:transparent;}
.rail__stops{list-style:none;margin:0;padding:0;height:100%;
  display:flex;flex-direction:column;justify-content:space-between;}
.rail__stop{display:flex;align-items:center;gap:10px;color:var(--silver-500);text-decoration:none;}
.rail__stop:hover{text-decoration:none;color:var(--otsl-red);}
.rail__dot{width:9px;height:9px;border-radius:50%;border:2px solid currentColor;background:var(--paper);
  margin-left:0;flex:none;}
.rail__label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap;}
.rail__stop:hover .rail__label,.rail__stop:focus-visible .rail__label,
.rail__stop.is-active .rail__label{opacity:1;transform:none;}
.rail__stop.is-active{color:var(--otsl-red);}

/* ── Naklejka ze skrzyni: eyebrow sekcji jak etykieta magazynowa ──────────── */
.section-heading__eyebrow{display:inline-block;padding:5px 12px;border:1px dashed var(--silver-400);
  border-radius:4px;transform:rotate(-1.4deg);background:var(--paper);}
.section--dark .section-heading__eyebrow,.stats-band .section-heading__eyebrow{
  background:transparent;border-color:rgba(255,255,255,.35);}

/* ── Karty jak szuflady regału (hover wysuwa) ─────────────────────────────── */
a.card:not(.card--photo):hover{transform:translate(5px,-3px);
  box-shadow:-8px 10px 26px rgba(14,14,18,.13);}

/* ── Zegar dyspozytora (PL / UK) w nagłówku ───────────────────────────────── */
.hq-clock{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;color:var(--silver-400);
  white-space:nowrap;padding-right:var(--sp-3);border-right:1px solid var(--line-dark);}
@media (max-width:1080px){.hq-clock{display:none;}}

/* ── Reduced motion: wyłącz cały pakiet ───────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none;}
  .manifest__dot,.manifest__line .ch{animation:none;transition:none;}
  .dispatch{transition:none;}
  .dispatch__row{opacity:1;transform:none;transition:none;}
  .dispatch__link:hover{transform:none;}
  .dispatch__link::after,.card::before{display:none;}
  .dawn__inner{animation:none;}
  .track__prog,.track__dot{transition:none;}
  html.js .stamp{opacity:1;animation:none;}
  .dispatch__close:hover{transform:none;}
  .uv__top{transition:none;clip-path:circle(130px at 50% 46%);}
  .dispatch.is-open::before,.dispatch.is-open::after{animation:none;}
  .dispatch__link::after{animation:none;opacity:1;transform:translateY(-50%) rotate(-7deg) scale(1);}
  .dispatch__link:not(:hover):not(:focus-visible)::after{opacity:0;}
  .rail__truck{transition:none;}
}
