/* ============================================================================
   OTSL V3 — otsl.css  ·  Kierunek: „FREIGHT CONTROL TERMINAL"
   Ciemny pulpit dyspozytorski: karbon + srebro + sygnałowa czerwień. Głos
   nagłówków = Archivo italic 800 „expanded" (wdth 118), zdaniowo. Etykiety,
   nawigacja, dane, przyciski = JetBrains Mono UPPERCASE. Sygnatura: żywe
   korytarze na mapie Europy, list przewozowy CMR jako karta usługi, tablica
   odjazdów w stopce. Ruch: otsl.js (Lenis + GSAP). Zero build.
   ========================================================================== */

/* ── Fonty (self-hosted, variable: wght + wdth + italic) ── */
@font-face{font-family:'Archivo';font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;src:url('../fonts/archivo-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF,U+2020;}
@font-face{font-family:'Archivo';font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;src:url('../fonts/archivo-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:'Archivo';font-weight:100 900;font-stretch:62% 125%;font-style:italic;font-display:swap;src:url('../fonts/archivo-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF,U+2020;}
@font-face{font-family:'Archivo';font-weight:100 900;font-stretch:62% 125%;font-style:italic;font-display:swap;src:url('../fonts/archivo-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:'JetBrains Mono';font-weight:400 600;font-display:swap;src:url('../fonts/jetbrains-mono-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-weight:400 600;font-display:swap;src:url('../fonts/jetbrains-mono-latin.woff2') format('woff2');unicode-range:U+0000-00FF;}

:root{
  --ink:#0b0c0e; --panel:#101215; --panel2:#16181c; --panel3:#1e2126;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --fg:#e6e8ec; --silver:#c9cdd3; --muted:#8a9099; --dim:#7a828c;
  --red:#d9232e; --red2:#ff3b45;
  --metal:linear-gradient(160deg,#f2f3f5 0%,#c9cdd3 40%,#7d838c 75%,#a8adb5 100%);
  --corridor:linear-gradient(100deg,#e8eaee 0%,#c9cdd3 45%,#d9232e 78%,#ff3b45 100%);
  --display:'Archivo',system-ui,sans-serif; --sans:'Archivo',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --wrap:1320px; --gut:clamp(1.15rem,4vw,3rem); --ease:cubic-bezier(.22,1,.36,1); --ease2:cubic-bezier(.7,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scrollbar-color:#565b63 #0b0c0e;}
body{background:var(--ink);color:var(--silver);font-family:var(--sans);font-weight:400;line-height:1.55;font-size:clamp(1rem,1.02vw,1.06rem);-webkit-font-smoothing:antialiased;overflow-x:clip;}
img,svg,video{display:block;max-width:100%;}a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}ul,ol{list-style:none;}
h1,h2,h3,h4{font-weight:800;line-height:1;}
::selection{background:var(--red);color:#fff;}
:focus-visible{outline:2px solid var(--red2);outline-offset:3px;}
.skip-link{position:absolute;left:-999px;}.skip-link:focus{left:1rem;top:1rem;background:var(--red);color:#fff;padding:.6rem 1rem;z-index:9999;}

/* ── Płynne przejścia między stronami (View Transitions API) ── */
/* Cross-fade całej strony przy nawigacji — użytkownik czuje „tę samą stronę",
   nie przeładowanie. Czyste CSS (CSP-safe, zero JS); przeglądarki bez wsparcia
   robią zwykłą, natychmiastową nawigację (progresywne wzmocnienie). Pod
   prefers-reduced-motion przejście jest praktycznie natychmiastowe. */
@view-transition{navigation:auto;}
@media(prefers-reduced-motion:reduce){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.001ms!important;}
}

/* ── Warstwa layoutu / utility ── */
.o-wrap,.container{width:min(100% - var(--gut)*2,var(--wrap));margin-inline:auto;}
.container.narrow{max-width:820px;}
main{padding-top:60px;}
.o-hero,.hero{margin-top:-60px;}
.o-grain{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");}
.o-dots{background-image:radial-gradient(rgba(255,255,255,.055) 1px,transparent 1px);background-size:26px 26px;}

/* Głos DISPLAY — Archivo italic 800 expanded (TYLKO hero + marketing home) */
.disp,.o-hero__title,.hero__title,.o-sechead__t,.faq__title,.cta-band__heading,.o-cta__t,
.o-rail__h,.o-figs__n,.o-navr__link,.o-foot__word,.o-foot__brand-word{
  font-family:var(--display);font-style:italic;font-weight:800;font-stretch:112%;
  letter-spacing:-.02em;line-height:.95;text-transform:none;color:var(--fg);}
/* Głos TREŚCI — Archivo prosto stojące, spokojne, zwarte (podstrony/artykuły) */
.head,.section-heading__title,.qa-block__q,.card__title,.o-tile__t,.prose h2,.prose h3,
.enq__title,.o-cmr__name,.rstory__title,.rstory__step-h,.o-index__t{
  font-family:var(--display);font-style:normal;font-weight:800;font-stretch:100%;
  letter-spacing:-.01em;line-height:1.12;text-transform:none;color:var(--fg);}
.text-metal{background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;}
.text-corridor{background:var(--corridor);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em;}

/* Etykieta sekcji „01 / SERVICES” */
.o-kick,.o-eyebrow,.section-heading__eyebrow,.hero__eyebrow{display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--mono);font-size:.6875rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--red2);}
.o-kick::before,.o-eyebrow::before,.section-heading__eyebrow::before{content:"";width:2em;height:1px;background:currentColor;opacity:.6;}

/* Przyciski */
.o-btn,.btn{display:inline-flex;align-items:center;gap:.7em;font-family:var(--mono);font-weight:500;font-size:.75rem;
  letter-spacing:.18em;text-transform:uppercase;padding:14px 26px;background:var(--red);color:#fff;
  transition:background .2s,transform .35s var(--ease);}
/* Od tabletu w górę przycisk (etykieta + strzałka) trzyma się jednej linii —
   strzałka nie spada do 2. wiersza. Na wąskim mobile przyciski mogą się zawijać. */
@media(min-width:640px){.o-btn,.btn{white-space:nowrap;}}
.o-btn:hover,.btn:hover{background:var(--red2);}
.o-btn svg,.btn svg{width:1em;height:1em;}
.o-btn--out,.btn--ghost,.btn--ghost-light,.btn--secondary{background:none;border:1px solid var(--line2);color:var(--silver);}
.o-btn--out:hover,.btn--ghost:hover,.btn--ghost-light:hover,.btn--secondary:hover{background:none;border-color:var(--red);color:#fff;}
.btn--sm{padding:9px 15px;font-size:.68rem;}
.o-link{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.6em;color:var(--silver);transition:color .2s,gap .25s;}
.o-link:hover{color:var(--red2);gap:1em;}
[data-magnetic]{display:inline-block;will-change:transform;}
/* Przyciski magnetyczne muszą zostać flexem (inaczej strzałka SVG spada do 2. wiersza). */
.o-btn[data-magnetic],.btn[data-magnetic]{display:inline-flex;}

/* ══ NAGŁÓWEK = WIDOCZNY PASEK + MEGA-MENU (main.js: data-header) ══ */
.site-header{position:fixed;inset:0 0 auto 0;z-index:1000;border-bottom:1px solid transparent;transition:transform .4s var(--ease),background .3s,border-color .3s;}
.site-header.is-scrolled{background:rgba(11,12,14,.82);backdrop-filter:saturate(150%) blur(14px);border-bottom-color:var(--line);}
.site-header.is-hidden{transform:translateY(-100%);}
.site-header__inner{display:flex;align-items:center;gap:1.5rem;min-height:60px;}
.brand{display:inline-flex;align-items:center;gap:.8rem;flex:0 0 auto;}
.brand__logo{height:20px;width:auto;}
.brand__tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red2);}
@media(max-width:1300px){.brand__tag{display:none;}}

.main-nav{margin-left:auto;}
.main-nav__list{display:flex;align-items:center;gap:clamp(.2rem,1vw,1.1rem);}
.main-nav__item{position:relative;}
.main-nav__link{display:inline-flex;align-items:center;gap:.4em;font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);padding:12px 4px;position:relative;white-space:nowrap;transition:color .2s;}
.main-nav__link::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);}
.main-nav__link:hover,.main-nav__item:focus-within>.main-nav__link{color:#fff;}
.main-nav__link:hover::after,.main-nav__item:focus-within>.main-nav__link::after{transform:scaleX(1);}
.main-nav__chev{transition:transform .25s;}
.has-mega:hover .main-nav__chev,.has-mega.is-open .main-nav__chev{transform:rotate(180deg);}
.main-nav__cta{display:none;}
/* Mostek hover: pokrywa lukę między linkiem a panelem, żeby mega nie znikało */
.has-mega::after{content:"";position:absolute;top:100%;left:-1rem;right:-1rem;height:18px;}

/* ── Górne menu: minimalny dropdown TYPOGRAFICZNY ──────────────────────────
   Zero grafik i flag. Kolumny linków (mono), czerwony romb przy ADR, stopka
   „Wszystkie X →". Trzyma się na hover niewidzialnym mostkiem (::before). */
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(7px);
  width:max-content;max-width:min(94vw,600px);background:var(--panel);border:1px solid var(--line2);
  box-shadow:0 26px 56px -22px rgba(0,0,0,.75);padding:1.2rem 1.35rem 1.05rem;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;z-index:30;}
.mega::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;}
.mega::after{content:"";position:absolute;top:-1px;left:1.35rem;width:32px;height:2px;background:var(--red);}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.is-open .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.mega__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(166px,1fr));gap:.35rem 1.7rem;}
.mega__col{min-width:0;}
.mega__coltitle{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:.15rem 0 .55rem;}
.mega__link{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;position:relative;}
.mega__link::before{content:"";position:absolute;left:-.75rem;top:50%;transform:translateY(-50%) scaleY(0);width:2px;height:15px;background:var(--red);transition:transform .18s var(--ease);}
.mega__link:hover::before,.mega__link:focus-visible::before{transform:translateY(-50%) scaleY(1);}
.mega__link-l{font-family:var(--mono);font-size:.78rem;letter-spacing:.01em;color:var(--silver);transition:color .18s var(--ease),transform .18s var(--ease);}
.mega__link:hover .mega__link-l,.mega__link:focus-visible .mega__link-l{color:#fff;transform:translateX(3px);}
.mega__hz{flex:0 0 auto;width:7px;height:7px;margin-left:.1rem;background:var(--red);transform:rotate(45deg);box-shadow:0 0 6px rgba(217,35,46,.55);}
.mega__link--hz:hover .mega__hz,.mega__link--hz:focus-visible .mega__hz{background:var(--red2);box-shadow:0 0 8px rgba(255,59,69,.8);}
.mega__all{display:inline-flex;align-items:center;gap:.5em;margin-top:.95rem;padding-top:.85rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red2);transition:gap .2s var(--ease);}
.mega__all:hover{gap:.95em;}
@media(max-width:1024px){.mega{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;width:auto;max-width:none;box-shadow:none;border:0;border-left:2px solid var(--line2);padding:.2rem 0 .7rem 1rem;margin:.2rem 0 .4rem;}.mega::after,.mega::before{display:none;}.mega__cols{grid-template-columns:1fr;gap:0;}.mega__all{margin-top:.6rem;}}

.site-header__actions{display:flex;align-items:center;gap:.9rem;flex:0 0 auto;}
.header-search{position:relative;display:flex;align-items:center;}
.header-search__toggle{width:38px;height:38px;display:grid;place-items:center;color:var(--muted);border:1px solid transparent;transition:color .2s,border-color .2s;}
.header-search__toggle:hover{color:var(--fg);}
.header-search__input{width:0;padding:0;border:0;background:none;opacity:0;transition:width .3s var(--ease),opacity .2s,padding .3s;font-family:var(--mono);font-size:.8rem;color:var(--fg);}
.header-search.is-open .header-search__input{width:min(46vw,230px);opacity:1;padding:.5rem .7rem;border:1px solid var(--line2);background:var(--panel);}
.header-search__suggest{position:absolute;top:calc(100% + 8px);right:0;width:min(80vw,320px);background:var(--panel);border:1px solid var(--line2);box-shadow:0 24px 48px -18px rgba(0,0,0,.7);z-index:30;}
.search-suggest__item{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .9rem;border-bottom:1px solid var(--line);}
.search-suggest__item:hover{background:var(--panel2);}
.search-suggest__type{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red2);}
.search-suggest__title{color:var(--silver);font-size:.85rem;}
.site-header__cta{white-space:nowrap;}

/* Przełącznik języka (details) */
.lang-switch{position:relative;}
.lang-switch__current{display:inline-flex;align-items:center;gap:.35em;cursor:pointer;list-style:none;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--silver);padding:8px 6px;}
.lang-switch__current::-webkit-details-marker{display:none;}
.lang-switch[open] .lang-switch__chev{transform:rotate(180deg);}
.lang-switch__chev{transition:transform .2s;}
.lang-switch__menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--panel);border:1px solid var(--line2);min-width:80px;z-index:30;}
.lang-switch__item{display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--line);}
.lang-switch__item:hover{background:var(--panel2);color:var(--fg);}
.lang-switch__item.is-active{color:var(--red2);}
.lang-switch__flag{flex:none;width:1.5rem;height:1rem;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line2);}
.lang-switch__flag svg,.lang-switch__flag img{width:100%;height:100%;object-fit:cover;}
.lang-switch__current .lang-switch__flag{width:1.7rem;height:1.15rem;}

.nav-toggle{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;order:3;}
.nav-toggle span{width:24px;height:2px;background:var(--fg);transition:transform .3s,opacity .2s;}
.main-nav__list.is-open{}
@media(max-width:1024px){
  .nav-toggle{display:flex;}
  .main-nav{margin-left:0;order:4;}
  .main-nav__list{position:fixed;inset:60px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--ink);border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;transition:max-height .4s var(--ease2);padding:0 var(--gut);}
  .main-nav__list.is-open{max-height:calc(100svh - 60px);overflow-y:auto;padding-block:.5rem 2rem;}
  .main-nav__link{padding:16px 0;font-size:.95rem;border-bottom:1px solid var(--line);width:100%;}
  .main-nav__link::after{display:none;}
  .nav-toggle[aria-expanded="true"]~.main-nav__list,.main-nav__list.is-open{}
  .main-nav__list.is-open ~ *,.nav-toggle[aria-expanded="true"] span:nth-child(1){}
  .has-mega .main-nav__chev{display:none;}
  .mega{position:static;transform:none;width:auto;opacity:1;visibility:visible;pointer-events:auto;box-shadow:none;border:0;border-bottom:1px solid var(--line);padding:.5rem 0 1rem;background:none;}
  .mega::before{display:none;}
  .mega__grid{grid-template-columns:1fr;}
  .mega__all{display:none;}
  .main-nav__cta{display:block;margin-top:1rem;}
  .main-nav__cta .btn{width:100%;justify-content:center;}
  .site-header__cta{display:none;}
  .header-search.is-open .header-search__input{width:min(50vw,180px);}
}
.site-header .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.site-header .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.site-header .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ══ HERO = MAPA KORYTARZY ══ */
.o-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
.o-hero__media{position:absolute;inset:0;z-index:0;}
.o-hero__media img{width:100%;height:100%;object-fit:cover;object-position:18% center;}
/* Hero 3D „relief Europy": mapa (przezroczyste krawędzie) jako grafika w lewej
   ~72% na ciemnym tle; prawa strona = miejsce na nagłówek. Nic nie jest przycięte. */
.o-hero--3d{background:radial-gradient(120% 105% at 26% 42%,#181b21 0%,#0f1013 52%,#0b0c0e 100%);}
/* Mapa = mniejsza, wykadrowana grafika w bezpiecznej strefie: pod nav,
   na lewo od nagłówka, nad tablicą korytarzy. Miękkie krawędzie wtapiają się w tło. */
/* Szerokość mapy = do lewej krawędzi nagłówka (blok ~600px po prawej) → nie nachodzi
   na tekst na żadnym ekranie, a wschodnia krawędź płynnie gaśnie do czerni. */
/* LQIP: rozmyta miniatura mapy jako tło — zanim ostry WebP się zdekoduje, widać
   mapę (nie czarny ekran). Znika pod obrazem po jego wczytaniu. Eliminuje miganie
   przy pierwszym wejściu / twardym odświeżeniu (powrót załatwia bfcache). */
.o-hero--3d .o-hero__media{inset:44px 0 0 0;width:100%;background:#0b0c0e center 34%/cover no-repeat url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABMNDhEODBMRDxEVFBMXHTAfHRoaHToqLCMwRT1JR0Q9Q0FMVm1dTFFoUkFDX4JgaHF1e3x7SlyGkIV3j214e3b/2wBDARQVFR0ZHTgfHzh2T0NPdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnb/wAARCAAUADADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDIg+bnvVxSo4zzWRBcbe9TfaQDkGqBK5ZnlJO1RiqNwSDg0rXZznFV5rjzDmldlOKS3I3AqBhUjPmoyc0ED1Y04MaKKBiFjTCaKKAE7U2iigD/2Q==);}
.o-hero--3d .o-hero__media img{object-fit:cover;object-position:center 34%;}
.o-hero--3d .o-hero__media::after{display:none;}
@media(max-width:900px){.o-hero--3d .o-hero__media{inset:64px auto auto 0;width:100%;height:34vh;}.o-hero--3d .o-hero__media img{object-position:center;opacity:.7;}}
.o-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink) 2%,rgba(11,12,14,.3) 48%,rgba(11,12,14,.5) 100%),linear-gradient(270deg,rgba(11,12,14,.8) 0%,rgba(11,12,14,.25) 45%,transparent 68%);}
.o-hero__grain{position:absolute;inset:0;z-index:1;opacity:.32;mix-blend-mode:overlay;pointer-events:none;}
/* Łuk pod metrykami (o-figs) — rysowany JS-em (data-arc-path). */
.o-corridor{fill:none;stroke:var(--red);stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 0 5px rgba(217,35,46,.7));}
@keyframes o-net-tw{0%,100%{opacity:.5;}50%{opacity:.18;}}
/* Tablica korytarzy (lewy-dolny róg hero) */
.o-board{position:absolute;left:clamp(1.2rem,4vw,4rem);bottom:clamp(2.2rem,5vh,4rem);z-index:3;display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.2rem;border:1px solid rgba(255,255,255,.09);border-left:2px solid var(--red);background:rgba(11,12,14,.55);backdrop-filter:blur(4px);}
.o-board__h{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem;}
.o-board__row{display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;}
.o-board__dot{width:5px;height:5px;border-radius:50%;background:var(--red2);box-shadow:0 0 6px rgba(255,59,69,.9);animation:o-net-tw 2.6s ease-in-out infinite;}
.o-board__row:nth-child(3) .o-board__dot{animation-delay:.6s;}
.o-board__row:nth-child(4) .o-board__dot{animation-delay:1.2s;}
.o-board__row:nth-child(5) .o-board__dot{animation-delay:1.8s;}
.o-board__code{color:var(--fg);letter-spacing:.12em;min-width:4.2em;}
.o-board__lbl{color:var(--muted);}
@media(max-width:1100px){.o-board{display:none;}}
@media(prefers-reduced-motion:reduce){.o-board__dot{animation:none;}}
/* Panel rynków priorytetowych (prawy-górny róg hero) — równoważy kompozycję. */
.o-markets{position:absolute;right:clamp(1.2rem,4vw,4rem);top:clamp(6.5rem,14vh,10rem);z-index:3;width:min(80vw,272px);display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.05rem;border:1px solid rgba(255,255,255,.09);border-left:2px solid var(--red);background:rgba(11,12,14,.5);backdrop-filter:blur(5px);}
.o-markets__h{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem;}
.o-markets__row{display:flex;align-items:center;gap:.7rem;padding:.42rem .25rem;transition:background .2s;}
.o-markets__row:hover{background:rgba(255,255,255,.045);}
.o-markets__flag{flex:0 0 auto;width:32px;height:22px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:3px;line-height:0;box-shadow:0 3px 10px rgba(0,0,0,.5);}
.o-markets__flag svg{width:100%;height:100%;display:block;}
.o-markets__txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.08rem;}
.o-markets__name{font-family:var(--mono);font-size:.71rem;letter-spacing:.04em;text-transform:uppercase;color:var(--fg);}
.o-markets__cap{font-size:.72rem;color:var(--muted);line-height:1.3;}
.o-markets__arw{flex:0 0 auto;color:var(--red2);opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s;}
.o-markets__row:hover .o-markets__arw{opacity:1;transform:translateX(0);}
@media(max-width:1100px){.o-markets{display:none;}}
.o-hero__inner{position:relative;z-index:3;width:100%;padding:10rem 0 clamp(2.5rem,5vw,4.5rem);}
.o-hero__inner>*{width:min(100%,600px);margin-left:auto;}
@media(max-width:760px){.o-hero__inner>*{width:100%;}}
/* display:flex (nie inline-flex z .o-kick), żeby margin-left:auto z .o-hero__inner>*
   zadziałał i eyebrow był DOKŁADNIE nad tytułem, nie zepchnięty w lewo. */
.o-hero__eyebrow{display:flex;margin-bottom:1.3rem;}
.o-hero__title{font-size:clamp(2.2rem,6vw,4.8rem);line-height:.98;max-width:16ch;}
.o-hero__title .ln{display:block;overflow:hidden;}
.o-hero__title .ln>span{display:block;}
.o-hero__lead{margin-top:1.5rem;max-width:42ch;color:var(--muted);font-size:clamp(1rem,1.2vw,1.15rem);line-height:1.6;}
.o-hero__actions{margin-top:2rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;}

/* ══ TICKER LIVE-OPS ══ */
.o-ticker{position:relative;overflow:hidden;border-block:1px solid var(--line);background:var(--panel);padding:.7rem 0;}
.o-ticker__track{display:inline-flex;white-space:nowrap;gap:2.5rem;padding-left:2.5rem;animation:oTick 42s linear infinite;will-change:transform;}
.o-ticker__track>span{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.o-ticker::before,.o-ticker::after{content:"";position:absolute;inset-block:0;width:6rem;z-index:2;pointer-events:none;}
.o-ticker::before{left:0;background:linear-gradient(90deg,var(--panel),transparent);}
.o-ticker::after{right:0;background:linear-gradient(-90deg,var(--panel),transparent);}
@keyframes oTick{to{transform:translateX(-50%);}}
.o-dot{position:relative;width:6px;height:6px;border-radius:50%;background:var(--red);flex:0 0 auto;}
.o-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(217,35,46,.55);animation:oDot 2.2s var(--ease) infinite;will-change:transform,opacity;}
@keyframes oDot{0%,100%{transform:scale(1);opacity:.55;}55%{transform:scale(3.3);opacity:0;}}

/* ══ SEKCJE ══ */
.section,.o-sec{padding-block:clamp(2.8rem,5.5vw,5rem);}
.section--alt{background:var(--panel);}.section--dark{background:var(--panel2);}
.o-sechead,.section-heading{margin-bottom:clamp(1.6rem,3vw,2.6rem);}
.o-sechead--split{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;}
.o-sechead__t{font-size:clamp(2rem,5vw,3.4rem);line-height:.95;margin-top:1rem;}
.section-heading__title{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.1;margin-top:.8rem;}
.section-heading__lead,.o-lead{color:var(--muted);font-size:clamp(1.02rem,1.3vw,1.2rem);line-height:1.6;max-width:56ch;margin-top:1rem;}

/* ══ MARKETS RAIL (przypięty poziomy) ══ */
.o-rail{position:relative;overflow:hidden;background:var(--ink);}
.o-rail__vp{display:flex;flex-direction:column;justify-content:center;min-height:100svh;}
.o-rail__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:2rem;}
.o-rail__h{font-size:clamp(2rem,5vw,3.6rem);}
.o-rail__hint{font-family:var(--mono);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);white-space:nowrap;}
.o-rail__track{display:flex;gap:1.5rem;padding-inline:var(--gut);will-change:transform;}
.o-rail__panel{position:relative;flex:0 0 auto;width:34vw;height:58svh;overflow:hidden;border:1px solid var(--line);display:block;}
.o-rail__panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.o-rail__panel:hover img{transform:scale(1.06);}
.o-rail__panel::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink) 4%,rgba(11,12,14,.15) 45%,rgba(11,12,14,.35) 100%);}
.o-rail__top{position:absolute;inset:0 0 auto 0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem;}
.o-rail__code{display:flex;align-items:center;gap:.6rem;font-family:var(--display);font-style:italic;font-weight:800;font-stretch:118%;font-size:clamp(3rem,4vw,4.2rem);line-height:.8;color:var(--silver);}
.o-rail__flag{flex:none;width:2.4rem;height:1.6rem;border:1px solid rgba(255,255,255,.25);overflow:hidden;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.4);}
.o-rail__flag svg,.o-rail__flag img{width:100%;height:100%;object-fit:cover;}
.o-rail__idx{font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;color:var(--muted);}
.o-rail__bot{position:absolute;inset:auto 0 0 0;z-index:2;padding:1.25rem;}
.o-rail__bot .u-underline{display:block;width:5rem;height:1px;background:var(--red);margin-bottom:.8rem;transform:scaleX(.5);transform-origin:left center;transition:transform .5s var(--ease);}
.o-rail__panel:hover .u-underline{transform:scaleX(1);}
.o-rail__cap{font-size:.9rem;line-height:1.4;color:var(--silver);}
.o-rail__enter{margin-top:.8rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);opacity:0;transition:opacity .3s;}
.o-rail__panel:hover .o-rail__enter{opacity:1;}
.o-rail__end{flex:0 0 auto;width:26vw;height:58svh;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);background:var(--panel);padding:2rem;}
.o-rail__end p.o-rail__h{font-size:clamp(1.6rem,2.4vw,2.4rem);margin:.8rem 0 1rem;}
.o-rail__endtxt{color:var(--muted);font-size:.92rem;line-height:1.55;}
.o-rail__prog{height:1px;background:var(--line2);margin:2rem var(--gut) 0;}
.o-rail__prog span{display:block;height:1px;background:var(--red);transform-origin:left;transform:scaleX(0);}
@media(max-width:767px){
  .o-rail__vp{min-height:0;padding-block:clamp(3rem,8vw,5rem);}
  .o-rail__track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:1rem;}
  .o-rail__panel{width:78vw;height:52svh;scroll-snap-align:start;}
  .o-rail__end{width:70vw;height:52svh;}
  .o-rail__prog,.o-rail__hint{display:none;}
}

/* ══ KARTY CMR (usługi jako list przewozowy) ══ */
.o-cmr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
@media(max-width:1100px){.o-cmr-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.o-cmr-grid{grid-template-columns:1fr;}}
.o-cmr{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);background:var(--panel2);padding:1.5rem 1.5rem 1.5rem 2.25rem;transition:transform .45s var(--ease),border-color .3s;}
.o-cmr:hover{transform:translateY(-8px);border-color:var(--line2);}
.o-cmr--hot{background:linear-gradient(160deg,rgba(217,35,46,.18),var(--panel2) 55%);border-color:rgba(217,35,46,.4);}
.o-cmr::before{content:"";position:absolute;inset-block:0;left:.75rem;width:1px;border-left:1px dashed rgba(255,255,255,.18);}
.o-cmr::after{content:"";position:absolute;inset-block:.5rem;left:.3rem;width:.55rem;background:radial-gradient(circle at center,var(--ink) 1.5px,transparent 1.6px);background-size:6px 12px;}
.o-cmr__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.o-cmr__note{font-family:var(--mono);font-size:.5625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);line-height:1.7;}
.o-cmr__stamp{width:2.5rem;height:2.5rem;flex:0 0 auto;color:rgba(217,35,46,.7);transform:rotate(-12deg);}
.o-cmr__code{font-family:var(--display);font-style:italic;font-weight:800;font-stretch:118%;font-size:1.7rem;margin-top:1.4rem;color:var(--fg);}
.o-cmr__code em{font-style:italic;color:var(--red);}
.o-cmr__name{font-size:1.05rem;margin-top:.2rem;line-height:1.1;}
.o-cmr__desc{margin-top:.7rem;font-size:.82rem;line-height:1.55;color:var(--muted);}
.o-cmr__foot{margin-top:auto;padding-top:1.3rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.o-cmr__foot--end{justify-content:flex-end;}
.o-cmr__route{font-family:var(--mono);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line2);padding:5px 11px;}
.o-cmr__open{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);opacity:0;transition:opacity .3s;}
.o-cmr:hover .o-cmr__open{opacity:1;}
.o-cmr__ico{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line2);color:var(--red2);}
.svcfx-group{margin-bottom:clamp(2.5rem,5vw,4rem);}
.svcfx-group__h{display:flex;align-items:baseline;gap:.8rem;font-family:var(--display);font-style:normal;font-weight:800;letter-spacing:-.01em;font-size:clamp(1.3rem,2.2vw,1.8rem);margin-bottom:1.4rem;color:var(--fg);}
.svcfx-group__n{font-family:var(--mono);font-size:.8rem;font-weight:400;color:var(--red2);}

/* ══ LICZBY ══ */
.o-figs{position:relative;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:rgba(16,18,21,.55);backdrop-filter:blur(2px);}
.o-figs__cell{position:relative;display:flex;flex-direction:column;padding:clamp(1.7rem,3vw,2.6rem) clamp(1.2rem,2.2vw,1.9rem);border-left:1px solid var(--line);overflow:hidden;}
.o-figs__cell:first-child{border-left:0;}
.o-figs__cell::before{content:"";position:absolute;top:0;left:0;height:2px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left center;transition:transform .7s var(--ease);}
.o-figs__cell::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(217,35,46,.08),transparent 70%);opacity:0;transition:opacity .35s var(--ease);pointer-events:none;}
.o-figs__cell:hover::after{opacity:1;}
.o-figs__n{display:block;white-space:nowrap;font-size:clamp(2rem,4.2vw,3.5rem);line-height:.9;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;}
.o-figs__n em{font-style:italic;-webkit-text-fill-color:var(--red);}
/* margin-top:auto → etykiety wyrównane do DOŁU komórki, nawet gdy liczba/tekst
   ma inną wysokość (siatka rozciąga komórki do równej wysokości). */
.o-figs__l{display:block;margin-top:auto;padding-top:.9rem;padding-left:1.1rem;position:relative;font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.o-figs__l::before{content:"";position:absolute;left:0;top:calc(.9rem + .5em);width:.55rem;height:1px;background:var(--red);}
.o-figs__arc{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:10rem;width:100%;opacity:.4;z-index:-1;}
html.js .o-reveal.is-in .o-figs__cell::before{transform:scaleX(1);}
.o-figs__cell:nth-child(2)::before{transition-delay:.12s;}
.o-figs__cell:nth-child(3)::before{transition-delay:.24s;}
.o-figs__cell:nth-child(4)::before{transition-delay:.36s;}
@media(max-width:820px){.o-figs{grid-template-columns:1fr 1fr;}.o-figs__cell:nth-child(3){border-left:0;}}
@media(max-width:460px){.o-figs{grid-template-columns:1fr;}.o-figs__cell{border-left:0;border-top:1px solid var(--line);}.o-figs__cell:first-child{border-top:0;}}

/* ══ CTA ══ */
.cta-band,.o-cta{position:relative;overflow:hidden;background:var(--panel2);}
.o-cta{min-height:56svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-block:clamp(3.2rem,6vw,5rem);}
.o-cta__media{position:absolute;inset:0;z-index:0;}
.o-cta__media img{width:100%;height:100%;object-fit:cover;}
.o-cta__media::after{content:"";position:absolute;inset:0;background:rgba(11,12,14,.72);}
.o-cta__in{position:relative;z-index:2;}
.cta-band{padding-block:clamp(3rem,6vw,5.5rem);border-top:1px solid var(--line);}
.cta-band__heading,.o-cta__t{font-size:clamp(2rem,5vw,3.8rem);line-height:.98;margin-bottom:1rem;}
.cta-band__text,.o-cta__p{color:var(--muted);max-width:46ch;margin-bottom:1.8rem;}
.o-cta__in .o-cta__p{margin-inline:auto;}
.cta-band__actions,.o-cta__row{display:flex;flex-wrap:wrap;gap:1rem;}
.o-cta__in .o-cta__row{justify-content:center;}

/* ═══ Klasy podstron (hero + treść) ═══ */
.hero,.hero--inner{position:relative;min-height:62vh;display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--line);}
.hero__bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;}
/* Welon hero: mocniejszy w strefie treści (dół ~45%), by mały tekst (eyebrow/lead)
   spełniał WCAG AA nawet na jasnych fragmentach zdjęcia; góra nadal odsłania kadr. */
.hero__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,var(--ink) 0%,rgba(11,12,14,.62) 34%,rgba(11,12,14,.22) 66%,rgba(11,12,14,.35) 100%),linear-gradient(90deg,rgba(11,12,14,.78),rgba(11,12,14,.25) 55%,transparent 78%);}
.hero__inner{position:relative;z-index:2;padding-block:clamp(3rem,7vw,6rem);width:min(100% - var(--gut)*2,var(--wrap));margin-inline:auto;}
.hero--inner .hero__eyebrow{color:var(--red2);}
.hero__title{font-size:clamp(1.9rem,4.4vw,3.3rem);line-height:1;margin:.9rem 0;}
.hero__title strong{font-weight:800;color:var(--red);}
.hero--inner{min-height:58vh;}
.hero--compact{min-height:52vh;}
.hero__lead{color:var(--muted);font-size:clamp(1.05rem,1.4vw,1.28rem);line-height:1.55;max-width:56ch;margin-bottom:1.6rem;}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;}
/* Delikatne wejście hero: treść wpływa z dołu, tło leciutko „oddycha" (Ken Burns).
   Subtelne (18px / scale 1.06), krótkie — ma zmiękczyć wejście na podstronę,
   nie robić pokazu. Wyłączone przy prefers-reduced-motion. */
@media (prefers-reduced-motion:no-preference){
  .hero--inner .hero__inner{animation:heroRise .7s cubic-bezier(.2,.7,.2,1) both;}
  .hero--inner .hero__bg{animation:heroKen 18s ease-out both;transform-origin:50% 42%;}
}
@keyframes heroRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes heroKen{from{transform:scale(1.06);}to{transform:scale(1);}}
/* Znacznik „Grafika AI" (art. 50 AI Act) — nad welonem, róg hero, prowadzi do
   strony Przejrzystość AI. Dyskretny, ale czytelny i o wystarczającym kontraście. */
/* Prawy DÓŁ hero, nie góra: nagłówek jest fixed i przykrywał znacznik, przez co
   ujawnienie z art. 50 AI Act przestawało być czytelne (zostawał sam ogonek). */
.hero__ai-badge{position:absolute;bottom:1rem;right:1rem;z-index:3;display:inline-flex;align-items:center;gap:.34rem;padding:.28rem .6rem;font-size:.72rem;font-weight:600;letter-spacing:.02em;line-height:1;color:#fff;background:rgba(11,12,14,.62);border:1px solid rgba(255,255,255,.28);border-radius:999px;text-decoration:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background .18s ease,border-color .18s ease;}
.hero__ai-badge svg{opacity:.85;flex:none;}
.hero__ai-badge:hover,.hero__ai-badge:focus-visible{background:rgba(11,12,14,.82);border-color:rgba(255,255,255,.55);color:#fff;}
.hero__ai-badge:focus-visible{outline:2px solid var(--red2);outline-offset:2px;}
@media (max-width:640px){.hero__ai-badge{bottom:.7rem;right:.7rem;font-size:.68rem;padding:.24rem .5rem;}}

/* Ten sam znacznik w wersji małej — karty, galerie, figury i slidery. Dotyczy
   każdej grafiki fotorealistycznej, którą odbiorca mógłby wziąć za zdjęcie
   (art. 50 ust. 4 AI Act). Rodzic musi mieć position:relative. */
.ai-chip{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:.28rem;padding:.2rem .48rem;font-size:.66rem;font-weight:600;letter-spacing:.02em;line-height:1;color:#fff;background:rgba(11,12,14,.66);border:1px solid rgba(255,255,255,.26);border-radius:999px;text-decoration:none;pointer-events:auto;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.ai-chip svg{opacity:.85;flex:none;}
a.ai-chip:hover,a.ai-chip:focus-visible{background:rgba(11,12,14,.86);border-color:rgba(255,255,255,.55);color:#fff;}
a.ai-chip:focus-visible{outline:2px solid var(--red2);outline-offset:2px;}
.ai-chip--tr{top:.5rem;right:.5rem;}
.ai-chip--tl{top:.5rem;left:.5rem;}
.ai-chip--br{bottom:.5rem;right:.5rem;}
.ai-chip--bl{bottom:.5rem;left:.5rem;}
@media (max-width:640px){.ai-chip{font-size:.62rem;padding:.18rem .42rem;}}
/* Rodzice, które same nie były pozycjonowane. */
.card--article,.card--feature,.wh-shot,.uvlab__photo{position:relative;}
/* Zastrzeżenie nad treścią pisaną w pierwszej osobie, która NIE opisuje
   konkretnego zlecenia (kategoria „przykłady sytuacji"). Musi być widoczne
   przed lekturą, nie w stopce artykułu. */
.scenario-note{display:block;margin:0 0 1.6rem;padding:.9rem 1.1rem;border-left:3px solid #d99a2b;background:rgba(217,154,43,.09);font-size:.94rem;line-height:1.6;color:var(--silver);}
.scenario-note strong{display:block;margin-bottom:.2rem;color:#e9b455;letter-spacing:.01em;}
/* Tekst tylko dla czytników ekranu (pełne wyjaśnienie przy znaczniku). */
.u-visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}

.qa-block{border-left:2px solid var(--red);padding:clamp(1.2rem,2.5vw,2rem) clamp(1.4rem,3vw,2.4rem);background:var(--panel);}
.qa-block__q{font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.15;margin-bottom:1rem;}
.qa-block__a{color:var(--muted);font-size:clamp(1.02rem,1.3vw,1.15rem);line-height:1.65;}

/* Przełącznik wariantów trasy (CST / UE) */
.rswitch{padding-top:clamp(3rem,6vw,5rem);}
.rswitch__bar{margin-bottom:1.5rem;}
.rswitch__tabs{display:inline-flex;border:1px solid var(--line2);}
.rswitch__tab{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:11px 20px;transition:background .2s,color .2s;}
.rswitch__tab[aria-selected="true"]{background:var(--red);color:#fff;}
.rswitch__panel{display:none;}
.rswitch__panel.is-on{display:block;}
html:not(.js) .rswitch__panel{display:block;}
html:not(.js) .rswitch__tabs{display:none;}

/* Route-story — scrollytelling: przyklejona scena + oś kroków */
.rstory{padding-block:clamp(3rem,7vw,6rem);background:var(--panel);border-block:1px solid var(--line);}
.rstory__head{margin-bottom:2.5rem;}
.rstory__eyebrow{font-family:var(--mono);font-size:.6875rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:.6rem;}
.rstory__hint{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:.8rem;}
.rstory__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start;}
.rstory__scene{position:sticky;top:80px;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);background:var(--panel2);}
.rstory__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s var(--ease);}
.rstory__img.is-on{opacity:1;}
.rstory__scene::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,12,14,.55),transparent 55%);pointer-events:none;}
.rstory__scene-loc{position:absolute;left:1rem;bottom:1rem;z-index:2;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);background:rgba(11,12,14,.6);padding:.35rem .65rem;}
.rstory__flow{position:relative;padding-left:.5rem;}
.rstory__rail{position:absolute;left:.9rem;top:.4rem;bottom:2rem;width:1px;background:var(--line2);}
.rstory__fill{position:absolute;left:0;top:0;width:1px;height:0;background:var(--red);transition:height .3s var(--ease);}
.rstory__marker{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);color:var(--red);transition:top .3s var(--ease);}
.rstory__steps{margin:0;padding:0;list-style:none;}
.rstory__step{position:relative;padding:0 0 2.6rem 2.8rem;opacity:.42;transition:opacity .35s var(--ease);}
.rstory__step.is-active{opacity:1;}
.rstory__step:last-child{padding-bottom:0;}
.rstory__dot{position:absolute;left:.5rem;top:.45rem;width:.8rem;height:.8rem;border-radius:50%;border:1px solid var(--red);background:var(--panel);z-index:1;}
.rstory__step.is-active .rstory__dot{background:var(--red);box-shadow:0 0 0 4px rgba(217,35,46,.15);}
.rstory__idx{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--red);}
.rstory__step-h{font-size:clamp(1.1rem,1.7vw,1.4rem);margin:.3rem 0 .5rem;}
.rstory__step-p{color:var(--muted);line-height:1.6;font-size:.98rem;}
.rstory__step-loc{display:inline-block;margin-top:.7rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);}
.rstory__step-img{display:none;}
@media(max-width:820px){
  .rstory__grid{grid-template-columns:1fr;}
  .rstory__scene{display:none;}
  .rstory__rail,.rstory__marker{display:none;}
  .rstory__step{padding-left:2.8rem;}
  .rstory__step-img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;margin-top:1rem;border:1px solid var(--line);}
}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.cards--2{grid-template-columns:repeat(2,1fr);}
.card,.o-tile{display:flex;flex-direction:column;gap:.6rem;padding:clamp(1.4rem,2.4vw,2rem);background:var(--panel);border:1px solid var(--line);color:var(--silver);transition:border-color .25s,background .25s,transform .35s var(--ease);}
a.card:hover,.o-tile:hover{border-color:var(--red);background:var(--panel2);transform:translateY(-4px);}
.card__icon,.o-tile__ico{width:26px;height:26px;color:var(--red2);}
.card__title,.o-tile__t{font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.15;}
.card__desc,.o-tile__d{color:var(--muted);font-size:.92rem;line-height:1.5;}
/* Adres na kaflu lokalizacji: pełny, czysty (ulica / kod miasto, kraj) */
.card__addr{display:flex;flex-direction:column;gap:.15rem;font-style:normal;margin:.15rem 0 .2rem;}
.card__addr-street{font-family:var(--mono);font-size:.8rem;letter-spacing:.02em;color:var(--fg);}
.card__addr-city{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);}
.card__addr-soft{color:var(--red2);text-transform:uppercase;letter-spacing:.1em;font-size:.65rem;}
.card__tag,.card__code{font-family:var(--mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);}
.card__more{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red2);margin-top:auto;opacity:0;transform:translateX(-4px);transition:opacity .25s var(--ease),transform .25s var(--ease);}
a.card:hover .card__more,a.card:focus-within .card__more,.card:hover .card__more{opacity:1;transform:none;}
@media(hover:none){.card__more{opacity:1;transform:none;}}
.card__flag svg{width:26px;height:auto;}
@media(max-width:860px){.cards,.cards--2{grid-template-columns:1fr;}}

.prose{max-width:72ch;font-size:clamp(1.05rem,1.15vw,1.16rem);line-height:1.75;color:var(--silver);}
.prose h2{font-size:clamp(1.3rem,1.9vw,1.65rem);line-height:1.18;margin:2.4rem 0 .9rem;padding-top:1.4rem;border-top:1px solid var(--line);}
.prose h3{font-size:1.15rem;margin:1.7rem 0 .6rem;}
.prose p{margin-bottom:1.1rem;}.prose a{color:var(--red2);border-bottom:1px solid rgba(217,35,46,.5);}
.prose strong{color:var(--fg);font-weight:700;}.prose ul,.prose ol{margin:0 0 1.1rem 1.2rem;}.prose li{margin-bottom:.4rem;list-style:disc;}
.prose blockquote{border-left:2px solid var(--red);padding-left:1.4rem;margin:1.4rem 0;color:var(--muted);}
.prose .def,.prose .answer{border:1px solid var(--line);border-left:2px solid var(--red);padding:1rem 1.4rem;margin:1.4rem 0;background:var(--panel);}
.prose img,.prose figure{margin:1.6rem 0;}
.prose table{width:100%;border-collapse:collapse;margin:1.4rem 0;}
.prose th,.prose td{border:1px solid var(--line);padding:.7rem;text-align:left;font-size:.95rem;}
.prose thead th{background:var(--panel2);font-family:var(--mono);text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;color:var(--silver);}
/* Przycisk wewnątrz treści (np. pobranie PDF ENS): reguła .prose a nadpisywała
   kolor przycisku na czerwony tekst + podkreślenie (czerwony na czerwonym =
   nieczytelny). Przywracamy wygląd przycisku i usuwamy podkreślenie. */
.btn--primary{background:var(--red);color:#fff;}
.prose a.btn,.prose a.o-btn{border-bottom:none;color:#fff;}
.prose a.btn:hover,.prose a.o-btn:hover{color:#fff;border-bottom:none;}
.prose a.btn--ghost,.prose a.btn--secondary,.prose a.o-btn--out{color:var(--silver);}
.legal-download{margin:1.4rem 0;}
/* Ramka ostrzeżenia (bursztynowa) w treści — była nieostylowana (goły tekst). */
.prose .notice{border:1px solid var(--line);border-left:3px solid var(--red);background:var(--panel);
  padding:1rem 1.35rem;margin:1.5rem 0;border-radius:2px;font-size:.95rem;line-height:1.65;}
.prose .notice--amber{border-left-color:#e0a13a;background:rgba(224,161,58,.07);}
.prose .notice--amber strong{color:#f0b45a;}
.prose .notice a{color:var(--red2);}
/* Wykaz stop words: zwarta lista wielokolumnowa z prefiksem „×" zamiast ściany
   pojedynczych punktów (200+ pozycji). */
.prose ul.ens-terms{list-style:none;margin:.6rem 0 1.4rem;padding:0;columns:3;column-gap:1.8rem;}
.prose ul.ens-terms li{list-style:none;break-inside:avoid;margin:0 0 .32rem;padding-left:1.05rem;position:relative;
  font-size:.9rem;line-height:1.35;color:var(--silver);}
.prose ul.ens-terms li::before{content:"\00d7";position:absolute;left:0;top:0;color:var(--red2);font-family:var(--mono);font-weight:600;}
@media(max-width:860px){.prose ul.ens-terms{columns:2;}}
@media(max-width:520px){.prose ul.ens-terms{columns:1;}}

.compare__scroll,.compare{overflow-x:auto;}
.compare__table{width:100%;border-collapse:collapse;min-width:520px;}
.compare__table th,.compare__table td{border:1px solid var(--line);padding:.8rem 1rem;text-align:left;font-size:.95rem;}
.compare__table thead th{background:var(--panel2);font-family:var(--mono);text-transform:uppercase;font-size:.7rem;color:var(--silver);}
.compare__table tbody th{background:var(--panel);font-style:italic;font-weight:800;}
.compare__caption{margin-top:.8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);}

/* ── Bare nagłówki treści (bez klasy) ── */
.section h2:not([class]),.container h2:not([class]),.o-wrap h2:not([class]){font-family:var(--display);font-style:normal;font-weight:800;font-stretch:100%;letter-spacing:-.01em;font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.15;margin-bottom:1rem;color:var(--fg);}
.section h3:not([class]),.container h3:not([class]){font-family:var(--display);font-style:normal;font-weight:800;font-size:1.2rem;line-height:1.2;margin-bottom:.6rem;color:var(--fg);}
.section p:not([class])+h2,.container p:not([class])+h2{margin-top:2rem;}
.lead{color:var(--muted);font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.7;}

/* ── Oś procesu eksport/import (customs) ── */
.hubfx-flow{display:grid;gap:1.5rem;margin-top:1.5rem;}
.hubfx-flow__row{border:1px solid var(--line);background:var(--panel);padding:clamp(1.2rem,2.2vw,1.6rem);}
.hubfx-flow__label{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red2);margin-bottom:1.2rem;}
.hubfx-flow__label span{color:var(--muted);letter-spacing:.02em;text-transform:none;font-size:.85rem;}
.hubfx-flow__track{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);background:var(--line);}
.hubfx-flow__step{background:var(--panel2);padding:1.1rem 1.2rem;}
.hubfx-flow__step-k{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--red2);}
.hubfx-flow__step-h{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.02rem;line-height:1.15;margin:.4rem 0;color:var(--fg);}
.hubfx-flow__step-t{color:var(--muted);font-size:.87rem;line-height:1.5;}
@media(max-width:720px){.hubfx-flow__track{grid-template-columns:1fr;}}

/* ── Stepper procesu (timeline) ── */
.steps{padding-block:clamp(2.8rem,5.5vw,4.5rem);}
.steps__title{font-family:var(--display);font-style:normal;font-weight:800;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.01em;margin-bottom:2rem;color:var(--fg);}
.steps__list{list-style:none;position:relative;max-width:70ch;}
.steps__item{position:relative;padding:0 0 1.9rem 3.4rem;}
.steps__item::before{content:"";position:absolute;left:1.05rem;top:.3rem;bottom:-.6rem;width:1px;background:var(--line2);}
.steps__item:last-child{padding-bottom:0;}.steps__item:last-child::before{display:none;}
.steps__num{position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;display:grid;place-items:center;border:1px solid var(--red);color:var(--red2);background:var(--ink);border-radius:50%;font-family:var(--mono);font-size:.72rem;z-index:1;}
.steps__name{font-family:var(--display);font-style:normal;font-weight:800;font-size:clamp(1.1rem,1.7vw,1.35rem);margin-bottom:.35rem;color:var(--fg);}
.steps__text{color:var(--muted);line-height:1.6;}
.steps__item::after{content:"";position:absolute;left:1.05rem;top:.3rem;width:1px;height:0;background:var(--red);transition:height .5s var(--ease);}
@media(prefers-reduced-motion:no-preference){
  html.js .steps__item{opacity:.45;transition:opacity .4s var(--ease);}
  html.js .steps__item.is-active,html.js .steps__item.is-done{opacity:1;}
  html.js .steps__item.is-active .steps__num{background:var(--red);color:#fff;box-shadow:0 0 0 4px rgba(217,35,46,.18);}
  html.js .steps__item.is-done::after{height:calc(100% + .3rem);}
}

/* ── Rzędy obraz + tekst (feature-row) ── */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;margin-bottom:clamp(2.5rem,4vw,4rem);}
.feature-row:last-child{margin-bottom:0;}
.feature-row__media{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);}
.feature-row--reverse .feature-row__media{order:2;}
.feature-row__media img{width:100%;height:100%;object-fit:cover;}
.feature-row__cap{position:absolute;left:0;bottom:0;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);background:rgba(11,12,14,.68);padding:.35rem .65rem;}
.feature-row__eyebrow{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red2);}
.feature-row__title{font-family:var(--display);font-style:normal;font-weight:800;font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.01em;margin:.6rem 0 .8rem;color:var(--fg);}
.feature-row__text{color:var(--muted);line-height:1.7;}
.feature-row__actions{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:1rem;}
@media(max-width:820px){.feature-row{grid-template-columns:1fr;}.feature-row--reverse .feature-row__media{order:0;}}

/* ── Karty możliwości (hubfx-caps) ── */
.hubfx-caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;}
.hubfx-cap{border:1px solid var(--line);background:var(--panel);padding:1.6rem;transition:border-color .25s,transform .35s var(--ease);}
.hubfx-cap:hover{border-color:var(--red);transform:translateY(-4px);}
.hubfx-cap__ico{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--line2);color:var(--red2);margin-bottom:1.1rem;}
.hubfx-cap__ico svg{width:24px;height:24px;}
.hubfx-cap__h{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.2rem;margin-bottom:.5rem;color:var(--fg);}
.hubfx-cap__t{color:var(--muted);line-height:1.6;font-size:.92rem;}

/* ── Słownik pojęć (glossary) ── */
.glossary{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--line);background:var(--line);}
.glossary li{background:var(--panel);padding:1rem 1.2rem;color:var(--muted);line-height:1.55;font-size:.9rem;}
.glossary li strong,.glossary li b{color:var(--fg);}
@media(max-width:640px){.glossary{grid-template-columns:1fr;}}

/* ── Obiekty targowe (targi per kraj) ── */
.venues{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;}
.venue{position:relative;min-height:150px;border:1px solid var(--line);background:var(--panel);padding:1.3rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;transition:border-color .25s,transform .35s var(--ease);}
.venue::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);}
.venue:hover{border-color:var(--red);transform:translateY(-3px);}
.venue:hover::before{transform:scaleY(1);}
.venue__top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.venue__idx{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--red2);}
.venue__role{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);padding:.2rem .5rem;white-space:nowrap;}
.venue__name{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.15rem;line-height:1.08;color:var(--fg);}
/* Obiekt z artykułem jest linkiem (audyt 4) — wygląd nazwy + podkreślenie przy najechaniu. */
a.venue__name{text-decoration:none;}
a.venue__name:hover,a.venue__name:focus-visible{color:var(--red);text-decoration:underline;text-underline-offset:3px;}
.venue__city{display:flex;align-items:center;gap:.35rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:auto;}
.venue__pin{flex:none;color:var(--red2);}
.venue__cty{opacity:.7;}

/* ── Galeria „z bliska" na podstronie magazynu ── */
.wh-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:1.6rem;}
.wh-shot{margin:0;border:1px solid var(--line);background:var(--panel);overflow:hidden;}
.wh-shot__img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;filter:saturate(.92);transition:transform .5s var(--ease),filter .35s;}
.wh-shot:hover .wh-shot__img{transform:scale(1.03);filter:saturate(1);}
.wh-shot__cap{padding:.7rem .9rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);}

/* ── Dowód „przepakowanie" na hubie Magazyny (pod „co robimy") ── */
.wh-proof{display:grid;grid-template-columns:1fr 1.15fr;gap:2.4rem;align-items:center;margin-top:3.2rem;padding-top:2.8rem;border-top:1px solid var(--line);}
.wh-proof__h{font-family:var(--display);font-style:italic;font-weight:800;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.05;color:var(--fg);margin:0 0 .8rem;}
.wh-proof__p{color:var(--muted);line-height:1.6;max-width:42ch;}
.wh-proof__media .ba,.wh-proof__media .uv{margin:0;}
/* Rząd odwrócony: media (gadżet UV) po lewej, tekst po prawej. */
.wh-proof--rev{grid-template-columns:1.15fr 1fr;margin-top:2.4rem;}
@media(max-width:860px){.wh-proof{grid-template-columns:1fr;gap:1.4rem;}.wh-proof--rev .wh-proof__media{order:-1;}}

/* Nota per kraj na podstronach targowych (IE: UE bez odpraw / Irlandia Płn.; UK: trasy lokalne). */
.exhc-note{margin-top:1.6rem;padding:1rem 1.2rem;border:1px solid var(--line);border-left:2px solid var(--red);background:var(--panel);color:var(--muted);font-size:.92rem;line-height:1.6;}

/* ── Indeks kierunków (hub Targi: „a co z resztą?”) ── */
/* Targi: kluczowe rynki z kadrem (CH/DE/UE) + eyebrow nad siatką pozostałych. */
.exh-feat{margin-top:1.8rem;}
.exh-feat__card .card__eyebrow{margin-bottom:.35rem;}
.exh-more-eyebrow{margin-top:2.6rem;color:var(--red2);}
.dir-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;margin-top:1.2rem;}
.dir-card{position:relative;display:flex;align-items:center;gap:1rem;border:1px solid var(--line);background:var(--panel);padding:1.1rem 1.2rem;text-decoration:none;overflow:hidden;transition:border-color .25s,transform .35s var(--ease);}
.dir-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);}
.dir-card:hover{border-color:var(--red);transform:translateY(-3px);}
.dir-card:hover::before{transform:scaleY(1);}
.dir-card__flag{flex:none;width:34px;height:24px;display:grid;place-items:center;border:1px solid var(--line2);overflow:hidden;}
.dir-card__flag svg,.dir-card__flag img{width:100%;height:100%;object-fit:cover;}
.dir-card__body{display:flex;flex-direction:column;gap:.25rem;min-width:0;}
.dir-card__name{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.05rem;line-height:1.1;color:var(--fg);}
.dir-card__desc{font-size:.82rem;line-height:1.4;color:var(--muted);}
.dir-card__arrow{flex:none;margin-left:auto;color:var(--red2);opacity:0;transform:translateX(-4px);transition:opacity .25s,transform .25s var(--ease);}
.dir-card:hover .dir-card__arrow{opacity:1;transform:none;}
@media(hover:none){.dir-card__arrow{opacity:1;transform:none;}}

/* ── Fakty kierunku (region detail) ── */
.region-facts{border:1px solid var(--line);background:var(--panel);padding:clamp(1.2rem,2.5vw,1.8rem);margin-bottom:2rem;}
.region-facts__flag{display:flex;align-items:center;gap:.9rem;margin-bottom:1.3rem;}
.region-facts__flag svg{width:36px;height:auto;border:1px solid var(--line);flex:0 0 auto;}
.region-facts__name{font-family:var(--display);font-style:normal;font-weight:800;font-size:clamp(1.3rem,2.2vw,1.7rem);color:var(--fg);}
.region-facts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;border:1px solid var(--line);background:var(--line);margin:0;}
.region-facts__item{background:var(--panel2);padding:1.1rem;}
.region-facts__item dt{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red2);margin-bottom:.35rem;}
.region-facts__item dd{margin:0;color:var(--silver);font-size:.92rem;line-height:1.45;}

/* ── Korytarze (regions hub) — karty trasy ── */
.hubfx-cor-eyebrow{margin:1.5rem 0 1rem;}
.corridors{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1rem;}
.corridor{display:block;border:1px solid var(--line);background:var(--panel);padding:1.3rem 1.4rem;color:var(--silver);transition:border-color .25s,transform .35s var(--ease);}
.corridor:hover{border-color:var(--red);transform:translateY(-3px);}
.corridor__route{display:flex;align-items:center;gap:.55rem;margin-bottom:.75rem;}
.corridor__flag{flex:0 0 auto;line-height:0;}
.corridor__flag svg{width:26px;height:auto;border:1px solid var(--line);display:block;}
.corridor__code{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.15rem;color:var(--fg);}
.corridor__arrow{color:var(--red2);margin:0 .15rem;flex:0 0 auto;}
.corridor__note{color:var(--muted);font-size:.9rem;line-height:1.5;}
.hubfx-badge{position:absolute;top:1rem;right:1rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--red);padding:4px 9px;}
.card--region{position:relative;}

/* ── Cechy magazynu (tagi) ── */
.hubfx-feats{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0;}
.hubfx-feat{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line);padding:5px 9px;}
.hubfx-feat svg{width:15px;height:15px;color:var(--red2);flex:0 0 auto;}

/* ── Badge (pigułka) ── */
.badge{display:inline-block;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--line2);color:var(--silver);}
.badge--accent{background:var(--red);border-color:var(--red);color:#fff;}

/* ── Zespół (karty osób) ── */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.25rem;}
.team-card{border:1px solid var(--line);background:var(--panel);padding:1.7rem;text-align:center;transition:border-color .25s,transform .35s var(--ease);}
.team-card:hover{border-color:var(--line2);transform:translateY(-4px);}
.team-card__avatar{width:92px;height:92px;margin:0 auto 1.1rem;border-radius:50%;overflow:hidden;background:var(--panel2);display:grid;place-items:center;border:1px solid var(--line2);}
.team-card__avatar img{width:100%;height:100%;object-fit:cover;}
.team-card__icon{width:52px;height:52px;color:var(--dim);}
.team-card__icon svg{width:100%;height:100%;}
.team-card__name{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.2rem;line-height:1.1;margin-bottom:.3rem;color:var(--fg);min-height:1.2em;}
.team-card__role{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red2);margin-bottom:.8rem;}
.team-card__bio{color:var(--muted);font-size:.9rem;line-height:1.55;}
.team-card__contact{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line);}
.team-card__contact-label{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:.5rem;}

/* ── Lista zaufania (about) — ikona inline ── */
.trust-list{list-style:none;display:grid;gap:.9rem;max-width:62ch;}
.trust-list li{display:flex;align-items:center;gap:.85rem;color:var(--silver);font-size:1.05rem;line-height:1.4;}
.trust-list svg{width:22px;height:22px;color:var(--red2);flex:0 0 auto;}

/* ── Link-usługa (inline CTA) ── */
.service-link{margin:0;}
.service-link__cta{display:inline-flex;align-items:center;gap:.7em;font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line2);padding:13px 22px;transition:border-color .2s,color .2s;}
.service-link__cta:hover{border-color:var(--red);color:#fff;}

/* ── Stakes (blok „stawka") ── */
.stakes__h{font-family:var(--display);font-style:normal;font-weight:800;font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.01em;margin-bottom:1rem;color:var(--fg);}
.stakes__p{color:var(--muted);line-height:1.7;font-size:1.05rem;}

/* ── Nota o treści (content-disclaimer) ── */
.content-disclaimer{border-top:1px solid var(--line);padding-block:2.2rem;}
.content-disclaimer__meta,.content-disclaimer__body,.content-disclaimer__ai,.content-disclaimer__sources{max-width:82ch;color:var(--dim);font-size:.82rem;line-height:1.65;margin-bottom:.5rem;}
.content-disclaimer__meta{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);}
.content-disclaimer strong,.content-disclaimer b{color:var(--muted);}
.content-disclaimer a{color:var(--muted);text-decoration:underline;text-underline-offset:2px;}
.content-disclaimer a:hover{color:var(--red2);}

.faq__title{font-size:clamp(1.6rem,3.2vw,2.3rem);margin-bottom:1.4rem;}
.faq__list{border-top:1px solid var(--line2);}
.faq__item{border-bottom:1px solid var(--line);}
.faq__item summary,.faq__q{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:clamp(1.1rem,2.2vw,1.6rem) 0;cursor:pointer;font-family:var(--display);font-style:normal;font-weight:800;font-stretch:100%;letter-spacing:-.01em;font-size:clamp(1.02rem,1.6vw,1.3rem);line-height:1.2;list-style:none;color:var(--fg);}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary::after,.faq__q::after{content:"+";font-family:var(--mono);font-style:normal;font-weight:400;color:var(--red2);}
.faq__item[open] summary::after{content:"–";}
.faq__a{color:var(--muted);line-height:1.65;padding-bottom:1.4rem;max-width:78ch;}

/* Suwak przed/po (przepakowanie) */
.ba{margin:2rem 0;max-width:820px;}
.ba__frame{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--panel2);line-height:0;}
.ba__img{display:block;width:100%;height:auto;}
.ba__top{position:absolute;inset:0;clip-path:inset(0 50% 0 0);will-change:clip-path;}
.ba__top .ba__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ba__handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--red);transform:translateX(-50%);pointer-events:none;z-index:3;box-shadow:0 0 12px rgba(217,35,46,.5);}
.ba__handle::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--red);border:2px solid #fff;}
.ba__tag{position:absolute;bottom:1rem;z-index:2;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(11,12,14,.65);padding:.3rem .6rem;}
.ba__tag--l{left:1rem;}.ba__tag--r{right:1rem;}
.ba__range{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:ew-resize;z-index:4;background:none;border:0;}
.ba__cap{margin-top:.8rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;}
.card__img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:.8rem;border:1px solid var(--line);}

/* Pracownia UV (Milton Keynes): latarka + kroki */
.uvlab__glow{display:none;}
.uvlab__inner h2,.uvlab-flow h2{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.12;margin-bottom:.8rem;}
.uvlab__lead{color:var(--muted);font-size:1.05rem;line-height:1.6;margin-bottom:1.5rem;max-width:60ch;}
.uvlab__photo{margin:2rem 0;}
.uvlab__photo img{width:100%;height:auto;border:1px solid var(--line);}
.uvlab__cap,.uv__cap{margin-top:.7rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.uvlab-steps{counter-reset:uv;margin-top:1.5rem;display:grid;gap:.85rem;}
.uvlab-steps li{position:relative;counter-increment:uv;padding-left:2.6rem;color:var(--silver);line-height:1.55;list-style:none;}
.uvlab-steps li::before{content:counter(uv,decimal-leading-zero);position:absolute;left:0;top:.1rem;font-family:var(--mono);font-size:.75rem;color:var(--red);}
.uv{margin:2rem 0;max-width:820px;}
.uv__frame{position:relative;overflow:hidden;border:1px solid var(--line);line-height:0;--uvx:50%;--uvy:50%;cursor:crosshair;}
.uv__img{display:block;width:100%;height:auto;}
.uv__top{position:absolute;inset:0;-webkit-mask:radial-gradient(circle 90px at var(--uvx) var(--uvy),#000 58%,transparent 72%);mask:radial-gradient(circle 90px at var(--uvx) var(--uvy),#000 58%,transparent 72%);}
.uv__top .uv__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.uv__tag{position:absolute;top:1rem;right:1rem;z-index:2;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#c9b3ff;background:rgba(11,12,14,.6);padding:.3rem .6rem;}

/* ── Formularze ── */
input,textarea,select{width:100%;font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);padding:.9rem 1rem;transition:border-color .2s;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--red);}
input::placeholder,textarea::placeholder{color:var(--dim);}
label,legend{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--silver);}
fieldset{border:1px solid var(--line);padding:1.2rem;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem;}
.form-grid>.field--full,.form-grid>fieldset,.form-grid>.enq-topics{grid-column:1 / -1;}
@media(max-width:560px){.form-grid{grid-template-columns:1fr;}}
.wh-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}@media(max-width:600px){.wh-grid{grid-template-columns:1fr;}}
.contact-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}@media(max-width:900px){.contact-cols{grid-template-columns:1fr;}}
.hp{position:absolute;left:-9999px;}
.form-flash{padding:1rem 1.2rem;border:1px solid var(--line);border-left:2px solid var(--red);margin-bottom:1.2rem;font-family:var(--mono);font-size:.85rem;}
.enq-topics{border:0;padding:0;margin-bottom:1.5rem;}.enq-topics>legend{margin-bottom:.8rem;}
.enq-topics__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;}
@media(max-width:720px){.enq-topics__grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:440px){.enq-topics__grid{grid-template-columns:repeat(2,1fr);}}
.enq-topic{position:relative;display:grid;}.enq-topic input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;width:100%;height:100%;z-index:1;}
/* Mniejsze karty (Adrian: były za duże) + mała grafika brandowa zamiast ikony. */
.enq-topic__card{position:relative;display:flex;flex-direction:row;align-items:center;gap:.55rem;padding:.6rem .65rem;height:100%;min-height:0;border:1px solid var(--line);background:var(--panel);transition:background .2s,border-color .2s,transform .2s;pointer-events:none;}
.enq-topic:hover .enq-topic__card{background:var(--panel2);border-color:var(--line2);transform:translateY(-2px);}
.enq-topic__img{flex:0 0 auto;width:34px;height:34px;object-fit:contain;opacity:.92;transition:opacity .2s,transform .2s;}
.enq-topic:hover .enq-topic__img,.enq-topic input:checked+.enq-topic__card .enq-topic__img{opacity:1;transform:scale(1.05);}
.enq-topic__name{font-family:var(--mono);font-size:.66rem;letter-spacing:.03em;text-transform:uppercase;color:var(--silver);line-height:1.2;}
.enq-topic__tick{position:absolute;top:.4rem;right:.4rem;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#fff;opacity:0;transform:scale(.5);transition:opacity .2s,transform .2s;}
.enq-topic__tick svg{fill:currentColor;}
.enq-topic input:checked+.enq-topic__card{border-color:var(--red);background:linear-gradient(180deg,rgba(217,35,46,.16),var(--panel) 70%);}
.enq-topic input:checked+.enq-topic__card .enq-topic__name{color:#fff;}
.enq-topic input:checked+.enq-topic__card .enq-topic__tick{opacity:1;transform:scale(1);}
.enq-topic input:focus-visible+.enq-topic__card{outline:2px solid var(--red2);outline-offset:2px;}
/* Formularz premium: pasek uzupełnienia, grupowanie, walidacja inline, zaufanie */
.cf-progress{display:flex;align-items:center;gap:.9rem;margin-bottom:1.6rem;}
.cf-progress__track{flex:1;height:4px;background:var(--panel3);overflow:hidden;}
.cf-progress__bar{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--red2));transition:width .35s var(--ease);}
.cf-progress__label{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.cf-group__h{grid-column:1/-1;font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:.6rem 0 -.2rem;padding-top:1.3rem;border-top:1px solid var(--line);}
.field{position:relative;}
.field__err{display:none;font-family:var(--mono);font-size:.64rem;letter-spacing:.03em;color:var(--red2);margin-top:.45rem;}
.field.is-invalid input,.field.is-invalid textarea{border-color:var(--red2);}
.field.is-invalid .field__err{display:block;}
.btn--lg{padding:1.05rem 2rem;display:inline-flex;align-items:center;gap:.6rem;}.btn--lg svg{fill:currentColor;}
.cf-trust{display:flex;flex-wrap:wrap;gap:1rem 1.6rem;margin-top:1.4rem;padding-top:1.3rem;border-top:1px solid var(--line);}
.cf-trust__item{display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.cf-trust__item svg{width:15px;height:15px;color:var(--red2);fill:currentColor;flex:none;}

.hubfx-canvas,.hubfx-in{position:relative;}
.hubfx-accent{display:block;width:44px;height:3px;background:var(--red);margin-bottom:1.1rem;}
.hubfx-lede{position:relative;max-width:62ch;margin:1.6rem 0;padding-left:1.5rem;border-left:2px solid var(--red);color:var(--silver);font-size:clamp(1.1rem,1.6vw,1.32rem);line-height:1.6;}
.svc-note{margin-top:clamp(2rem,4vw,3rem);padding:1.3rem 1.5rem;border:1px solid var(--line);border-left:2px solid var(--red);background:var(--panel);color:var(--muted);font-size:.98rem;line-height:1.65;max-width:80ch;}

/* ── Baza wiedzy: pasek szukania + kategorie ── */
.kb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin-bottom:2rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line);}
.kb-search{display:flex;align-items:center;gap:.6rem;border:1px solid var(--line2);padding:.6rem .9rem;background:var(--panel);flex:1 1 240px;max-width:380px;transition:border-color .2s;}
.kb-count{margin-left:auto;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--dim);white-space:nowrap;}
.kb-search:focus-within{border-color:var(--red);}
.kb-search svg{color:var(--muted);flex:0 0 auto;}
.kb-search input{width:100%;border:0;background:none;padding:0;font-family:var(--mono);font-size:.85rem;color:var(--fg);}
.kb-search input:focus{outline:none;}
.kb-filters{display:flex;flex-wrap:wrap;gap:.5rem;}
.kb-pill{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line2);padding:8px 13px;transition:background .2s,border-color .2s,color .2s;cursor:pointer;}
.kb-pill:hover{border-color:var(--red);color:#fff;}
.kb-pill.is-active{background:var(--red);border-color:var(--red);color:#fff;}
/* Chipy kategorii bazy wiedzy — prawdziwe adresy listingów (audyt 4). */
.kb-cats{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;}
.kb-cat{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;padding:.35rem .7rem;border:1px solid var(--line2);color:var(--silver);text-decoration:none;border-radius:2px;transition:color .2s,border-color .2s;}
.kb-cat:hover,.kb-cat:focus-visible{color:var(--fg);border-color:var(--fg);}
.kb-cat.is-on{color:var(--red);border-color:var(--red);}
.kb-cat__n{opacity:.55;margin-left:.3rem;}
/* Paginacja listingu. */
.kb-pagin{display:flex;gap:.4rem;justify-content:center;margin-top:2.2rem;flex-wrap:wrap;}
.kb-pagin__lnk{font-family:var(--mono);font-size:.8rem;min-width:2.2rem;text-align:center;padding:.45rem .6rem;border:1px solid var(--line2);color:var(--silver);text-decoration:none;border-radius:2px;}
.kb-pagin__lnk:hover,.kb-pagin__lnk:focus-visible{color:var(--fg);border-color:var(--fg);}
.kb-pagin__lnk.is-on{color:var(--red);border-color:var(--red);}
.kb-pagin__gap{align-self:center;color:var(--silver);}
.kb-empty{color:var(--muted);font-family:var(--mono);font-size:.9rem;padding:1rem 0;}
/* Chipy tagów pod artykułem (taksonomia → strony-listy /tag/). Styl spójny z .kb-pill. */
.article-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.2rem;}
.article-tags__chip{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line2);padding:7px 12px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;}
.article-tags__chip:hover,.article-tags__chip:focus-visible{background:var(--red);border-color:var(--red);color:#fff;}
.card--article{padding:0;overflow:hidden;}
.card--article .card__img{margin:0;border:0;border-bottom:1px solid var(--line);aspect-ratio:16/9;}
.card--article .card__pad{padding:clamp(1.1rem,2vw,1.4rem);display:flex;flex-direction:column;gap:.5rem;}
/* Karta wyróżniona (pillar na hubie Ryzyka): obraz + treść obok siebie. */
.card--feature{padding:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;}
.card--feature .card__img{margin:0;border:0;border-right:1px solid var(--line);aspect-ratio:16/10;height:100%;}
.card--feature .card__pad{padding:clamp(1.4rem,3vw,2.4rem);display:flex;flex-direction:column;gap:.7rem;justify-content:center;}
.card--feature .card__title{font-size:clamp(1.3rem,2vw,1.72rem);line-height:1.12;}
.card__eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red2);}
.card--feature .card__more{opacity:1;transform:none;}
@media(max-width:860px){.card--feature{grid-template-columns:1fr;}.card--feature .card__img{border-right:0;border-bottom:1px solid var(--line);}}
.lead-muted{color:var(--muted);font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.7;margin-top:1rem;}

/* ── Dokumenty prawne: layout + spis treści ── */
.legal-layout{display:grid;grid-template-columns:250px 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start;}
.legal-toc{position:sticky;top:80px;}
.legal-toc.is-flat .legal-toc__h,.legal-toc.is-flat .legal-toc__list{display:none;}
.legal-toc__meta{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--muted);line-height:1.7;margin-bottom:1rem;}
.legal-toc__pdf{margin-bottom:1.4rem;}
.legal-toc__h{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red2);margin-bottom:.7rem;padding-bottom:.5rem;border-bottom:1px solid var(--line);}
.legal-toc__list{list-style:none;display:flex;flex-direction:column;gap:.1rem;max-height:70vh;overflow-y:auto;}
.legal-toc__link{display:block;padding:.4rem .5rem .4rem .8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.01em;color:var(--muted);border-left:2px solid var(--line);transition:color .2s,border-color .2s;line-height:1.4;}
.legal-toc__link:hover{color:var(--silver);}
.legal-toc__link.is-active{color:#fff;border-left-color:var(--red);}
.prose--legal{max-width:80ch;}
.prose--legal h2{scroll-margin-top:80px;}
@media(max-width:900px){.legal-layout{grid-template-columns:1fr;}.legal-toc{position:static;border-bottom:1px solid var(--line);padding-bottom:1.5rem;margin-bottom:1rem;}.legal-toc__list{max-height:none;}}
.contact-side>h2{font-size:clamp(1.5rem,2.4vw,2rem);}
.contact-card{background:var(--panel);border:1px solid var(--line);padding:1.5rem;margin-bottom:1.2rem;}
.contact-card h3{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:.9rem;}
.contact-card address{font-style:normal;color:var(--muted);line-height:1.7;font-size:.95rem;}
.contact-reveal{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem;}
.contact-hours{margin-top:1rem;color:var(--muted);font-size:.9rem;}.contact-hours strong{color:var(--fg);}
.contact-map{margin-top:1rem;}
/* Małe przyciski: „Pokaż mapę" (ładuje iframe po kliknięciu, RODO) + „Zobacz w
   Mapach Google" (link zewn.). Bez wielkiego kafla-placeholdera. */
.map-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;}
.map-embed{display:inline-flex;}
.map-embed__load{gap:.45rem;}
.map-embed__load svg{color:var(--red2);}
/* Po kliknięciu JS podmienia zawartość .map-embed na iframe → rozwiń na całą szerokość. */
.map-embed:has(.map-embed__frame){display:block;width:100%;flex-basis:100%;margin-top:.3rem;}
.map-embed__frame{display:block;width:100%;aspect-ratio:16/10;border:1px solid var(--line2);}

/* Oś „Co dalej?" */
.enq{position:relative;margin-top:2.6rem;padding:1.8rem;background:var(--panel);border:1px solid var(--line);}
.enq__eyebrow{font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:.4rem;}
.enq__title{font-size:clamp(1.3rem,2.2vw,1.6rem);line-height:1.1;margin-bottom:1.4rem;}
.enq__list{list-style:none;margin:0;padding:0;counter-reset:enq;}
.enq__step{position:relative;counter-increment:enq;padding:0 0 1.3rem 2.6rem;}
.enq__step::before{content:counter(enq,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--mono);font-size:.72rem;color:var(--red);}
.enq__step::after{content:"";position:absolute;left:.55rem;top:1.3rem;bottom:0;width:1px;background:var(--line2);}
.enq__step:last-child{padding-bottom:0;}.enq__step:last-child::after{display:none;}
.enq__time{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg);margin-bottom:.25rem;}
.enq__desc{display:block;color:var(--muted);font-size:.95rem;line-height:1.55;}
.enq__note{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;}

.consent{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;margin:.9rem 0;cursor:pointer;}
.consent input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--red);flex:0 0 auto;}
.consent span{font-family:var(--sans);font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--muted);line-height:1.5;}
.consent a{color:var(--fg);text-decoration:underline;text-underline-offset:2px;}.consent a:hover{color:var(--red2);}
.form-rodo{margin-top:1.5rem;padding:1rem 1.2rem;border:1px solid var(--line);border-left:2px solid var(--red);background:var(--panel);color:var(--muted);font-size:.82rem;line-height:1.6;}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.3rem;margin-top:1.4rem;}
.form-note{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--dim);margin:0;}
.form-note .req,.consent .req,legend .req{color:var(--red2);}

.breadcrumbs{font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:1rem 0;}
.breadcrumbs a:hover{color:var(--red2);}
.section-lead-center{color:var(--muted);max-width:60ch;margin:1rem auto 0;line-height:1.6;}
.cards-cta{margin-top:2rem;}
.trust-bar,.marquee,.dawn,.manifest-strip,.process-track,.swoosh,.mobile-cta,.grain,.nav-magic{display:none!important;}
.back-to-top{position:fixed;right:clamp(1rem,2vw,1.6rem);bottom:clamp(1rem,2vw,1.6rem);z-index:900;width:46px;height:46px;display:grid;place-items:center;background:var(--red);color:#fff;border:1px solid var(--red);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease),background .2s;}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none;}
.back-to-top:hover{background:var(--red2);border-color:var(--red2);}

/* ══ Pas „planowanie łańcucha dostaw" ══ */
.o-scm{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);margin-top:1.5rem;padding:clamp(1.3rem,2.5vw,1.8rem) clamp(1.3rem,2.5vw,2rem);
  background:linear-gradient(100deg,rgba(217,35,46,.14),var(--panel2) 60%);border:1px solid var(--line2);color:var(--silver);transition:border-color .25s,transform .35s var(--ease);}
.o-scm:hover{border-color:var(--red);transform:translateY(-3px);}
.o-scm__k{flex:0 0 auto;font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red2);align-self:flex-start;padding-top:.25rem;}
.o-scm__body{flex:1;}
.o-scm__h{display:block;font-family:var(--display);font-style:normal;font-weight:800;font-size:clamp(1.2rem,2vw,1.6rem);color:var(--fg);}
.o-scm__t{display:block;margin-top:.35rem;color:var(--muted);font-size:.95rem;line-height:1.55;max-width:70ch;}
.o-scm__go{flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;background:var(--red);color:#fff;transition:background .2s;}
.o-scm:hover .o-scm__go{background:var(--red2);}
@media(max-width:640px){.o-scm{flex-wrap:wrap;}.o-scm__go{display:none;}}

/* ══ FILARY (dlaczego OTSL) ══ */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.pillar{border:1px solid var(--line);border-top:2px solid var(--red);background:var(--panel);padding:clamp(1.4rem,2.4vw,2rem);transition:background .25s,transform .35s var(--ease);}
.pillar:hover{background:var(--panel2);transform:translateY(-4px);}
.pillar__ico{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--line2);color:var(--red2);margin-bottom:1.1rem;}
.pillar__k{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.pillar__h{font-size:clamp(1.2rem,1.8vw,1.5rem);margin:.4rem 0 .6rem;}
.pillar__t{color:var(--muted);line-height:1.6;}
@media(max-width:820px){.pillars{grid-template-columns:1fr;}}

/* ══ PASEK METRYK (edytowalny) ══ */
.stats-band{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:2.5rem;border:1px solid var(--line);background:var(--line);}
.stats-band__item{background:var(--panel);padding:1.6rem 1rem;text-align:center;}
.stats-band__num{display:block;font-family:var(--display);font-style:italic;font-weight:800;font-stretch:112%;font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:.95;color:var(--fg);}
.stats-band__label{display:block;margin-top:.5rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
@media(max-width:640px){.stats-band{grid-template-columns:1fr;}}

/* ══ KIERUNKI (siatka z flagami) ══ */
.directions{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;border:1px solid var(--line);background:var(--line);}
.direction{background:var(--panel);padding:1.4rem;display:flex;flex-direction:column;gap:.55rem;color:var(--silver);transition:background .25s;}
.direction:hover{background:var(--panel2);}
.direction__head{display:flex;align-items:center;gap:.6rem;}

/* ═══ Kafle flag: JEDEN spójny wygląd na całej stronie ═══
   Równe proporcje ~3:2, cover-fill (flagSvg domyślnie slice), ten sam border/
   radius. Koniec „różnych flag" (CH kwadrat, GB szeroki) — wszystkie kafelki. */
.card__flag,.corridor__flag,.dir-card__flag,.o-markets__flag,.o-rail__flag,.mega__flag,.direction__flag{
  flex:0 0 auto;display:inline-block;overflow:hidden;line-height:0;background:var(--panel2);
  border:1px solid rgba(255,255,255,.22);border-radius:2px;}
.card__flag>svg,.corridor__flag>svg,.dir-card__flag>svg,.o-markets__flag>svg,.o-rail__flag>svg,.o-rail__flag>img,.mega__flag>svg,.direction__flag>svg{
  width:100%;height:100%;object-fit:cover;display:block;border:0;}
.mega__flag{width:19px;height:13px;}
.corridor__flag{width:27px;height:18px;}
.card__flag{width:30px;height:20px;}
.dir-card__flag{width:31px;height:21px;}
.o-markets__flag{width:32px;height:22px;}
.o-rail__flag{width:36px;height:24px;}
.direction__flag{width:32px;height:21px;}
.direction__code{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--red2);}
.direction__name{font-family:var(--display);font-style:normal;font-weight:800;font-size:1.15rem;line-height:1;}
.direction__t{color:var(--muted);font-size:.82rem;line-height:1.5;}

/* ══ MAPA EUROPY (interaktywna; 30 kierunków) ══ */
.euromap-section{padding-block:clamp(2.8rem,5.5vw,5rem);}
.euromap{max-width:960px;margin-inline:auto;}
.euromap__svg{width:100%;height:auto;display:block;}
.euromap__grid line{stroke:rgba(255,255,255,.05);stroke-width:1;}
.euromap__route{fill:none;stroke:rgba(255,255,255,.13);stroke-width:1;}
.euromap__route--main{fill:none;stroke:var(--red);stroke-width:1.5;opacity:.65;}
.euromap__cargo{fill:var(--red2);}
.euromap__hub-dot{fill:var(--red);}
.euromap__hub-ring{fill:none;stroke:var(--red);stroke-width:1;opacity:.4;}
.euromap__hub-label{fill:#fff;font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.08em;}
.euromap__dot{cursor:pointer;text-decoration:none;outline:none;}
.euromap__hit{fill:transparent;}
.euromap__point{fill:var(--silver);transition:fill .2s ease;}
.euromap__dot--main .euromap__point{fill:var(--red2);}
.euromap__dot:hover .euromap__point,.euromap__dot:focus-visible .euromap__point{fill:#fff;}
.euromap__code{font-family:var(--mono);font-size:15px;fill:var(--red2);letter-spacing:.04em;text-anchor:middle;}
.euromap__name{font-family:var(--mono);font-size:13px;fill:#fff;text-anchor:middle;opacity:0;transition:opacity .2s;pointer-events:none;}
.euromap__dot:hover .euromap__name,.euromap__dot:focus-visible .euromap__name{opacity:1;}
.euromap__all{margin-top:2rem;text-align:center;}

/* ══ STOPKA (pełna: NAP PL+UK, zegary, prawne) ══ */
.site-footer{position:relative;overflow:hidden;background:var(--panel);}
.site-footer__swoosh{display:block;width:100%;height:2.5rem;}
.site-footer__swoosh path{fill:none;stroke:var(--red);stroke-width:2;}
.site-footer__grid{display:grid;grid-template-columns:1.4fr 1.1fr 1.1fr 1fr;gap:2.5rem;padding-top:2.5rem;}
.site-footer__brand .brand__logo{height:30px;width:auto;margin-bottom:1.1rem;}
.site-footer__claim{color:var(--silver);max-width:34ch;line-height:1.55;}
.site-footer__badges{display:flex;flex-direction:column;gap:.45rem;margin-top:1.2rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.site-footer__live{display:inline-flex;align-items:center;gap:.5rem;color:var(--silver);}
.site-footer__heading{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red2);margin-bottom:1rem;font-style:normal;font-weight:500;}
.site-footer__address{font-style:normal;color:var(--muted);line-height:1.7;font-size:.9rem;}
.site-footer__address strong{color:var(--fg);font-weight:700;}
.site-footer__contact{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem;}
.site-footer__contact a{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line2);padding:7px 12px;cursor:pointer;transition:border-color .2s,color .2s;}
.site-footer__contact a:hover{border-color:var(--red);color:#fff;}
.site-footer__clocks{margin-top:1.2rem;}
.site-footer__clocks li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:.4rem;margin-bottom:.4rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;}
.site-footer__clocks .c-city{color:var(--muted);text-transform:uppercase;}
.site-footer__clocks .c-time{color:var(--silver);font-variant-numeric:tabular-nums;}
.site-footer__list li{margin-bottom:.6rem;}
.site-footer__list a{font-family:var(--mono);font-size:.75rem;color:var(--silver);transition:color .2s;}
.site-footer__list a:hover{color:var(--red);}
.site-footer__bar{border-top:1px solid var(--line);}
.site-footer__bar-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.4rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--muted);}
.site-footer__legal{display:flex;flex-wrap:wrap;gap:1rem;}
.site-footer__legal a{color:var(--muted);transition:color .2s;}
.site-footer__legal a:hover{color:var(--red2);}
@media(max-width:960px){.site-footer__grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.site-footer__grid{grid-template-columns:1fr;}}

/* ── Blok „Czego inni nie powiedzą" (konsekwencje) — bursztynowy akcent ostrzegawczy ── */
.conseq{--amber:#e0a13c;--amber2:#f2b95a;--amber-tint:rgba(224,161,60,.12);position:relative;}
.conseq::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--amber),transparent);opacity:.5;}
.conseq__head{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.8rem;max-width:60ch;}
.conseq__badge{flex:none;width:44px;height:44px;display:grid;place-items:center;background:var(--amber-tint);border:1px solid rgba(224,161,60,.4);color:var(--amber2);}
.conseq__title{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.02;}
.conseq__lede{color:var(--muted);margin-top:.5rem;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.55;}
.conseq__card{display:flex;flex-direction:column;gap:.55rem;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--amber);padding:1.4rem 1.5rem;transition:border-color .25s,transform .25s,background .25s;}
.conseq__card:hover{background:var(--panel2);border-left-color:var(--amber2);transform:translateY(-3px);}
.conseq__tag{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber2);}
.conseq__card-t{font-size:1.06rem;line-height:1.22;font-weight:800;}
.conseq__card-d{color:var(--muted);font-size:.92rem;line-height:1.5;flex:1;}
.conseq__more{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--silver);margin-top:.2rem;}
.conseq__card:hover .conseq__more{color:var(--amber2);}
.conseq__more svg{fill:currentColor;transition:transform .25s;}
.conseq__card:hover .conseq__more svg{transform:translateX(3px);}

/* ── Ruch: reveal + hero mask ── */
@media(prefers-reduced-motion:no-preference){
  html.js .o-reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
  html.js .o-reveal.is-in{opacity:1;transform:none;}
  /* Wejście tytułu hero: CZYSTE CSS (keyframe), NIE zależy od klasy dokładanej
     przez JS (html.js / is-in). CSS blokuje render → stan startowy jest malowany
     przed pierwszą klatką, więc animacja gra dokładnie raz i deterministycznie —
     koniec „raz wjeżdża, raz się odświeża" (był wyścig deferowanego JS z paintem). */
  .o-hero__title .ln>span{animation:heroLineUp 1s var(--ease) both;}
  .o-hero__title .ln:nth-child(2)>span{animation-delay:.09s;}
  .o-hero__title .ln:nth-child(3)>span{animation-delay:.18s;}
  /* Reveal partiali z main.js (data-reveal / stagger) */
  html.js [data-reveal]:not(.is-visible),html.js [data-reveal-stagger]>:not(.is-visible){opacity:0;transform:translateY(22px);}
  html.js [data-reveal],html.js [data-reveal-stagger]>*{transition:opacity .8s var(--ease),transform .8s var(--ease);}
  /* Grafiki poza pierwszym ekranem (loading=lazy) wchodzą MIĘKKIM fade zamiast
     twardego „wskoczenia". main.js dokłada .img-in po załadowaniu (lub od razu z
     cache, + bezpiecznik). Hero (loading=eager) NIE jest tu chowany — ma być
     natychmiast. Guard html.js: bez JS obrazy zawsze widoczne. */
  html.js img[loading="lazy"]:not(.img-in){opacity:0;}
  html.js img[loading="lazy"]{transition:opacity .5s var(--ease);}
  html.js img[loading="lazy"].img-in{opacity:1;}
}
@keyframes heroLineUp{from{transform:translateY(110%);}to{transform:translateY(0);}}

/* ── Wyszukiwarka: strona wyników (karty zamiast ściany tekstu) ──────────── */
/* Strona /szukaj: hero wyśrodkowany i zwężony do szerokości kolumny wyników
   (.container.narrow = 820px), żeby tytuł, pole i przycisk stały na środku,
   spójnie z listą wyników poniżej, a nie były zepchnięte w lewo. */
.hero--search .hero__inner{max-width:820px;text-align:center;}
.hero--search .search-page__form{margin-inline:auto;justify-content:center;}
.search-page__form{display:flex;gap:.6rem;max-width:640px;margin-top:1.4rem;flex-wrap:wrap;}
.search-page__form input[type=search]{flex:1;min-width:220px;background:var(--panel);border:1px solid var(--line2);
  color:var(--fg);padding:.85rem 1.05rem;font:inherit;border-radius:2px;}
.search-page__form input[type=search]::placeholder{color:var(--dim);}
.search-page__form input[type=search]:focus{outline:none;border-color:var(--red);}
.search-page__form .btn{flex:none;}
.muted-note{color:var(--muted);font-size:1rem;line-height:1.6;}
/* Podsumowanie: ile wyników + dla jakiej frazy */
.search-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .8rem;margin:0 0 1rem;font-size:1.02rem;color:var(--silver);}
.search-summary strong{font-family:var(--mono);color:var(--red2);font-size:1.15rem;}
.search-summary__q{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
/* Skróty do działów */
.search-jump{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.6rem;padding:0 0 1.2rem;border-bottom:1px solid var(--line);}
.search-jump__chip{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .85rem;border:1px solid var(--line2);
  border-radius:999px;color:var(--silver);font-size:.82rem;text-decoration:none;transition:border-color .2s,background .2s,color .2s;}
.search-jump__chip:hover{border-color:var(--red);color:#fff;background:var(--panel2);}
.search-jump__chip span{font-family:var(--mono);font-size:.7rem;color:var(--red2);}
/* Dział wyników */
.search-section{margin:0 0 1.8rem;scroll-margin-top:90px;}
.search-section__head{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);font-family:var(--mono);}
.search-section__head::before{content:"";width:22px;height:2px;background:var(--red);flex:none;}
.search-section__count{font-family:var(--mono);color:var(--red2);letter-spacing:0;}
.search-results{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;}
.search-result{margin:0;}
.search-result__link{display:flex;flex-direction:column;gap:.3rem;padding:1.05rem 1.3rem;background:var(--panel);
  border:1px solid var(--line);border-left:2px solid var(--red);color:var(--silver);text-decoration:none;
  transition:border-color .25s,background .25s,transform .3s var(--ease);}
.search-result__link:hover,.search-result__link:focus-visible{background:var(--panel2);border-color:var(--red);transform:translateX(3px);}
.search-result__title{font-size:1.08rem;line-height:1.2;color:var(--fg);font-weight:600;}
.search-result__excerpt{color:var(--muted);font-size:.9rem;line-height:1.5;}

/* ── Słownik pojęć (/slownik) ─────────────────────────────────────────────── */
.glossary-intro{color:var(--silver);font-size:1.02rem;line-height:1.65;margin:0 0 1.4rem;}
.glossary-jump{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2.2rem;padding:0 0 1.4rem;border-bottom:1px solid var(--line);}
.glossary-jump__chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;border:1px solid var(--line2);
  border-radius:999px;color:var(--silver);font-size:.84rem;text-decoration:none;transition:border-color .2s,background .2s,color .2s;}
.glossary-jump__chip:hover{border-color:var(--red);color:#fff;background:var(--panel2);}
.glossary-jump__chip span{font-family:var(--mono);font-size:.7rem;color:var(--red2);}
.glossary-group{margin:0 auto 2.4rem;} /* auto: nie nadpisuj centrowania z .container */
.glossary-group__h{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:var(--mono);
  display:flex;align-items:center;gap:.6rem;margin:0 0 1.2rem;}
.glossary-group__h::before{content:"";width:26px;height:2px;background:var(--red);flex:none;}
.glossary-list{display:grid;gap:.7rem;}
.glossary-term{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--red);
  padding:1.1rem 1.4rem;border-radius:2px;scroll-margin-top:90px;}
.glossary-term:target{border-color:var(--red2);background:var(--panel2);box-shadow:0 0 0 1px var(--red);}
.glossary-term__name{font-size:1.15rem;line-height:1.2;color:var(--fg);margin:0 0 .4rem;display:flex;align-items:baseline;gap:.5rem;}
.glossary-term__anchor{font-family:var(--mono);font-size:.85rem;color:var(--dim);text-decoration:none;opacity:0;transition:opacity .2s,color .2s;}
.glossary-term:hover .glossary-term__anchor{opacity:1;}
.glossary-term__anchor:hover{color:var(--red2);}
.glossary-term__short{color:var(--fg);font-size:.98rem;line-height:1.55;margin:0 0 .6rem;font-weight:500;}
.glossary-term__body{color:var(--muted);font-size:.92rem;line-height:1.6;}
.glossary-term__body p{margin:0 0 .6rem;}
.glossary-term__body p:last-child{margin-bottom:0;}
/* Dyskretny baner słownika w Bazie wiedzy */
.kb-glossary{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin:2rem 0 0;padding:.9rem 1.3rem;background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--red);
  border-radius:2px;color:var(--silver);text-decoration:none;transition:border-color .2s,background .2s;}
.kb-glossary:hover{border-color:var(--red);background:var(--panel2);}
.kb-glossary__t{font-size:.95rem;}
.kb-glossary__cta{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.72rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--red2);white-space:nowrap;}

/* ── Narzędzia (/narzedzia): kalkulator ładunku + checklisty ─────────────── */
.tool-sub{color:var(--silver);font-size:.98rem;line-height:1.6;margin:0 0 1.3rem;}
.tool-calc{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--red);border-radius:2px;
  padding:1.4rem 1.5rem;margin:0 0 1rem;}
.tool-calc__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem 1.2rem;margin:0 0 1.3rem;}
.tool-field{display:flex;flex-direction:column;gap:.45rem;}
.tool-field[hidden]{display:none;}
.tool-field>span{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.tool-field select,.tool-field input[type=number]{background:var(--bg);border:1px solid var(--line2);color:var(--fg);
  font:inherit;font-size:.95rem;padding:.65rem .8rem;border-radius:2px;min-height:44px;width:100%;}
.tool-field select:focus-visible,.tool-field input:focus-visible{outline:2px solid var(--red);outline-offset:1px;}
.tool-field--check{flex-direction:row;align-items:center;gap:.6rem;align-self:end;min-height:44px;cursor:pointer;}
.tool-field--check span{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.9rem;color:var(--silver);}
.tool-field--check input{width:1.15rem;height:1.15rem;accent-color:var(--red);flex:none;cursor:pointer;}
.tool-calc__out{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;border-top:1px solid var(--line);
  padding-top:1.2rem;}
.tool-out{display:flex;flex-direction:column;gap:.25rem;}
.tool-out__k{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.tool-out__v{font-family:var(--mono);font-size:1.45rem;color:var(--fg);font-weight:600;}
.tool-hint{grid-column:1/-1;margin:.4rem 0 0;color:var(--red2);font-size:.92rem;line-height:1.55;min-height:1.5em;}
.tool-note{color:var(--muted);font-size:.84rem;line-height:1.55;margin:0 0 .5rem;}
.tool-note--warn{color:var(--silver);border-left:2px solid var(--red);padding-left:.8rem;margin-bottom:2.4rem;}
.tool-checklist{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--red);border-radius:2px;
  padding:1.3rem 1.5rem;margin:0 0 1.2rem;scroll-margin-top:90px;}
.tool-checklist__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1rem;}
.tool-checklist__head h3{margin:0;font-size:1.15rem;color:var(--fg);}
.tool-checklist__actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.tool-checklist__list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem;counter-reset:cl;}
.tool-checklist__list li{margin:0;counter-increment:cl;}
.tool-checklist__list label{display:flex;align-items:flex-start;gap:.75rem;padding:.55rem .6rem;border-radius:2px;
  cursor:pointer;transition:background .2s;}
.tool-checklist__list label:hover{background:var(--panel2);}
.tool-checklist__list label::before{content:counter(cl,decimal-leading-zero);font-family:var(--mono);font-size:.7rem;
  color:var(--dim);padding-top:.3em;flex:none;}
.tool-checklist__list input{width:1.15rem;height:1.15rem;accent-color:var(--red);flex:none;margin-top:.15em;cursor:pointer;}
/* Pozycje list pisane zdaniowo (globalny label = mono+wersaliki dla formularzy). */
.tool-checklist__list span{color:var(--silver);font-size:.95rem;line-height:1.55;
  font-family:var(--sans);text-transform:none;letter-spacing:0;}
.tool-checklist__list input:checked+span{color:var(--dim);text-decoration:line-through;text-decoration-color:var(--red);}
.tool-checklist__reads{margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem;}
.tool-checklist__reads a{color:var(--silver);}
.tool-checklist__reads a:hover{color:#fff;}

/* Nagłówek/stopka checklist wyłącznie do druku — na ekranie niewidoczne. */
.tool-print-head,.tool-print-foot{display:none;}

/* Druk checklisty: przycisk „Drukuj” ustawia body[data-print-target] i drukuje
   TYLKO wybraną listę: biały papier, czarny tekst, logo OTSL u góry, puste
   kratki do odhaczania ręką, stopka z adresem. Bez ciemnych teł (oszczędza
   toner i wygląda jak firmowy dokument, nie zrzut ekranu). */
@media print{
  @page{margin:14mm;}
  /* Animacja reveal zostawia nieodsłonięte sekcje z opacity:0 — na wydruku
     wszystko ma być widoczne od razu, niezależnie od pozycji scrolla. */
  html.js [data-reveal],html.js [data-reveal-stagger]>*{opacity:1 !important;transform:none !important;transition:none !important;}
  html,body{background:#fff !important;}
  body[data-print-target]{background:#fff !important;color:#000;}
  /* Chowamy CAŁĄ stronę... */
  body[data-print-target] .site-header,body[data-print-target] .site-footer,body[data-print-target] .hero,
  body[data-print-target] .cta-band,body[data-print-target] .mobile-cta,body[data-print-target] .back-to-top,
  body[data-print-target] .cookie-banner,body[data-print-target] .faq,body[data-print-target] .tool-calc,
  body[data-print-target] .tool-note,body[data-print-target] .glossary-intro,body[data-print-target] .tool-sub,
  body[data-print-target] .glossary-group__h,body[data-print-target] #kalkulator,
  body[data-print-target] .tool-checklist__actions,body[data-print-target] .skip-link{display:none !important;}
  body[data-print-target="cl1"] #cl2,body[data-print-target="cl2"] #cl1{display:none !important;}
  /* ...i budujemy dokument: logo + nazwa listy + pozycje + stopka. */
  body[data-print-target] .section{padding:0;background:#fff;}
  body[data-print-target] .tool-print-head{display:flex;align-items:center;justify-content:space-between;
    gap:1rem;border-bottom:3px solid #d9232e;padding:0 0 12px;margin:0 0 22px;}
  body[data-print-target] .tool-print-head img{height:34px;width:auto;}
  body[data-print-target] .tool-print-head__site{font-family:var(--mono);font-size:12px;letter-spacing:.18em;
    text-transform:uppercase;color:#000;}
  body[data-print-target] .tool-checklist{border:none;background:#fff;padding:0;margin:0;color:#000;}
  body[data-print-target] .tool-checklist__head{margin:0 0 16px;}
  body[data-print-target] .tool-checklist__head h3{color:#000;font-size:21px;}
  body[data-print-target] .tool-checklist__list{gap:0;}
  body[data-print-target] .tool-checklist__list label{padding:9px 2px;border-bottom:1px solid #d7d9dd;
    border-radius:0;break-inside:avoid;}
  body[data-print-target] .tool-checklist__list label::before{color:#9aa0a8;}
  /* Natywne checkboxy drukują się różnie w silnikach — rysujemy własną kratkę. */
  body[data-print-target] .tool-checklist__list input{appearance:none;-webkit-appearance:none;width:15px;height:15px;
    border:1.5px solid #000;border-radius:2px;background:#fff;margin-top:.2em;}
  body[data-print-target] .tool-checklist__list input:checked{background:#fff;}
  body[data-print-target] .tool-checklist__list input:checked::after{content:"";display:block;width:9px;height:9px;
    margin:1.5px;background:#d9232e;}
  body[data-print-target] .tool-checklist__list span{color:#000;font-size:13.5px;line-height:1.5;}
  body[data-print-target] .tool-checklist__list input:checked+span{color:#000;text-decoration:none;}
  body[data-print-target] .tool-checklist__reads{border-top:none;margin:14px 0 0;padding:0;color:#000;font-size:12px;}
  body[data-print-target] .tool-checklist__reads a{color:#000;text-decoration:none;}
  body[data-print-target] .tool-print-foot{display:block;margin:26px 0 0;padding:10px 0 0;border-top:1px solid #d7d9dd;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:#5a6069;}
}

/* ── Strona 404 (przebudowa 2026-08-18) ──────────────────────────────────
   Poprzednia wersja używała klas, których w tym arkuszu nie było
   (.error-code, .section--center, .search-page__form--light), przez co
   renderowała się bez stylów. Poniżej komplet, oparty na istniejących
   zmiennych motywu. */
.e404__head{text-align:center;}
.e404__code{font-family:var(--mono,ui-monospace,monospace);font-size:clamp(4.5rem,14vw,9rem);line-height:.9;letter-spacing:-.04em;color:var(--red);margin:0 0 .4rem;font-weight:700;opacity:.92;}
.e404__title{font-size:clamp(1.5rem,3.2vw,2.3rem);line-height:1.15;margin:0 0 .8rem;text-wrap:balance;}
.e404__lead{color:var(--muted);font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.6;max-width:52ch;margin:0 auto 2.2rem;}
.e404__search{display:flex;gap:.6rem;max-width:34rem;margin:0 auto;flex-wrap:wrap;}
.e404__search input{flex:1 1 16rem;min-width:0;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);color:var(--silver);font:inherit;font-size:.98rem;}
.e404__search input:focus{outline:2px solid var(--red);outline-offset:2px;border-color:var(--red);}
.e404__search input::placeholder{color:var(--muted);}
.e404__search .btn{flex:0 0 auto;}
.e404__kicker{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 1.2rem;}
@media (max-width:640px){
  .e404__search{flex-direction:column;}
  .e404__search .btn{width:100%;justify-content:center;}
}
