/* Design system Warszawa/Modlin – nowy serwis. Kolory marki: magenta, zieleń, granat.
   Zasada: zieleń #84BD00 i magenta #E4007D tylko jako tła/akcenty; do tekstu warianty -ink (kontrast ≥ 4,5:1). */
:root{
  --magenta:#E4007D; --magenta-ink:#B8005F; --magenta-soft:#FDE8F2;
  --green:#84BD00; --green-ink:#4F7A00; --green-soft:#EEF7DA;
  --navy:#111E38; --navy-2:#1C2E52; --navy-3:#2A4479;
  --bg:#F6F7FA; --surface:#FFFFFF; --surface-2:#EEF1F6; --line:#D9DEE8;
  --fg:#15213B; --fg-muted:#55617A; --fg-on-dark:#FFFFFF; --focus:#1D4ED8;
  --ok:#2F7D32; --warn:#8A3E00; --bad:#B91C1C; --ok-soft:#E3F3E4; --warn-soft:#FDF0DC; --bad-soft:#FBE3E3;
  --board-bg:#0E1A30; --board-row:#16284A; --board-fg:#F3F6FB;
  --display:"Lexend",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --radius:14px; --radius-s:10px; --shadow:0 10px 30px rgba(17,30,56,.10);
  color-scheme:light;
}
/* Tryb wysokiego kontrastu: osobny zestaw tokenów (żółty na czarnym), nie filtr invert */
html.kontrast{ --bg:#000; --surface:#000; --surface-2:#111; --line:#FFD700; --fg:#FFF; --fg-muted:#FFEF9A; --magenta:#FF4DA6; --magenta-ink:#FFD700; --green:#FFD700; --green-ink:#FFD700; --magenta-soft:#000; --green-soft:#000; --navy:#000; --navy-2:#000; --navy-3:#111; --board-bg:#000; --board-row:#111; --focus:#FFD700; --shadow:none; --ok:#FFD700; --warn:#FFD700; --bad:#FF6B6B; --ok-soft:#000; --warn-soft:#000; --bad-soft:#000; }
html.kontrast a{ color:#FFD700 }
html.kontrast .btn{ border:2px solid #FFD700 }
html.kontrast img{ filter:contrast(1.1) }
html.font-xl{ font-size:112.5% }
html.font-xxl{ font-size:125% }

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important} }
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:1.0625rem;line-height:1.55;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
main:focus{outline:none}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--display);line-height:1.15;margin:0;text-wrap:balance;color:var(--fg)}
h1{font-size:clamp(1.7rem,1.1rem + 2.2vw,2.6rem);font-weight:800}
h2{font-size:clamp(1.35rem,1rem + 1.4vw,2rem);font-weight:700}
h3{font-size:1.2rem;font-weight:600}
h4{font-size:1.05rem;font-weight:600}
p{margin:0}
a{color:var(--magenta-ink);text-underline-offset:.15em}
a:hover{color:var(--navy)}
html.kontrast a:hover{color:#fff}
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
table{border-collapse:collapse}
.wrap{max-width:1200px;margin-inline:auto;padding-inline:16px;width:100%}
.narrow{max-width:820px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-80px;background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:8px;z-index:400;font-weight:600}
.skip:focus{top:12px}
.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:600;color:var(--magenta-ink)}
.muted{color:var(--fg-muted)}
.small{font-size:.9rem}
.tnum{font-variant-numeric:tabular-nums}
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.phone{color:#fff;font-size:1.15rem;font-family:var(--display)}

/* Przyciski */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--display);font-weight:600;font-size:.98rem;padding:.75rem 1.2rem;border-radius:var(--radius-s);border:1px solid transparent;cursor:pointer;text-decoration:none;line-height:1.1;min-height:44px;text-align:center}
.btn-primary{background:var(--magenta);color:#fff}
.btn-primary:hover{background:var(--magenta-ink);color:#fff}
.btn-green{background:var(--green);color:var(--navy)}
.btn-green:hover{filter:brightness(.92);color:var(--navy)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--fg)}
.btn-ghost:hover{background:var(--surface-2);color:var(--fg)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy-3);color:#fff}
.btn-sm{padding:.5rem .85rem;min-height:38px;font-size:.9rem}
.btn-lg{padding:.95rem 1.5rem;font-size:1.08rem}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.btn-row{display:flex;gap:.6rem;flex-wrap:wrap}

/* Etykiety */
.pill{display:inline-block;font-family:var(--display);font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.28rem .6rem;border-radius:999px;white-space:nowrap}
.pill-ok{background:var(--green-soft);color:var(--green-ink)}
.pill-off{background:var(--surface-2);color:var(--fg-muted)}
.pill-m{background:var(--magenta-soft);color:var(--magenta-ink)}
.pill-n{background:var(--navy);color:#fff}
.pill-warn{background:var(--warn-soft);color:var(--warn)}
html.kontrast .pill{border:1px solid #FFD700;background:#000;color:#FFD700}

/* Karty i siatki */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.card.pad{padding:1.3rem}
.grid{display:grid;gap:1rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem;align-items:start}
@media (max-width:900px){.two{grid-template-columns:1fr}}

/* Pasek demo */
.demo-bar{background:#FFF3C4;color:#4A3800;border-bottom:1px solid #E6CF6A;font-size:.88rem;padding:.4rem 0;text-align:center}
html.kontrast .demo-bar{background:#000;color:#FFD700;border-color:#FFD700}

/* Pasek ułatwień */
.toolbar{background:var(--navy);color:#fff;font-size:.88rem}
.toolbar .wrap{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between;padding-block:.45rem}
.toolbar .group{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.tb{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:.3rem .6rem;font:inherit;cursor:pointer;min-height:32px}
.tb:hover,.tb[aria-pressed="true"]{background:#fff;color:var(--navy)}
html.kontrast .tb[aria-pressed="true"]{background:#FFD700;color:#000}
.toolbar a{color:#fff}
.tb-prm{background:var(--magenta);border-color:var(--magenta);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:6px;color:#fff}
.tb-prm:hover{background:var(--magenta-ink);color:#fff}
.langs strong{color:#fff}
.langs .muted{color:#B9C4DA}

/* Nagłówek */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:100;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 2px 12px rgba(17,30,56,.06)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.65rem;position:relative}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--fg)}
.brand .mark{width:46px;height:46px;flex:none}
.brand .name{font-family:var(--display);line-height:1}
.brand .name b{display:block;font-size:1.05rem;font-weight:800;letter-spacing:.06em;color:var(--navy)}
html.kontrast .brand .name b{color:#fff}
.brand .name span{display:block;font-size:.72rem;font-weight:600;letter-spacing:.2em;color:var(--magenta-ink);margin-top:.2rem}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:.2rem;flex-wrap:wrap;justify-content:flex-end}
nav.main a{font-family:var(--display);font-weight:600;font-size:.95rem;color:var(--fg);text-decoration:none;padding:.55rem .7rem;border-radius:8px;display:block}
nav.main a:hover{background:var(--surface-2);color:var(--magenta-ink)}
nav.main a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--magenta)}
nav.main a.cta{background:var(--magenta);color:#fff}
nav.main a.cta:hover{background:var(--magenta-ink)}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;font:inherit;color:var(--fg);cursor:pointer;min-height:44px}
@media (max-width:1060px){
  .burger{display:inline-flex;align-items:center;gap:.4rem}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;padding:.6rem 16px 1rem;justify-content:flex-start}
  nav.main a{padding:.85rem .75rem;font-size:1.05rem}
}

/* Komunikaty operacyjne */
.notice{background:var(--green-soft);border-bottom:1px solid var(--line)}
.notice .wrap{display:flex;gap:.8rem;align-items:center;padding-block:.55rem;flex-wrap:wrap}
.notice .pill{background:var(--green);color:var(--navy)}
html.kontrast .notice .pill{background:#FFD700;color:#000}
.notice p{flex:1;min-width:200px}
.notice .ctrl{display:flex;gap:.3rem}
.notice .ctrl button{background:var(--surface);border:1px solid var(--line);color:var(--fg);border-radius:6px;min-width:36px;min-height:36px;cursor:pointer;font:inherit}

/* Okruszki */
.crumbs{font-size:.9rem;padding-block:.7rem 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem .5rem;color:var(--fg-muted)}
.crumbs li+li::before{content:"›";margin-right:.5rem;color:var(--fg-muted)}
.crumbs a{color:var(--fg-muted)}

/* Hero strony */
.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 55%,var(--navy-3) 100%);color:var(--fg-on-dark);padding-block:2.2rem 2.6rem;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-12%;top:-30%;width:55%;aspect-ratio:1;border-radius:50%;border:28px solid rgba(132,189,0,.18);pointer-events:none}
.hero::before{content:"";position:absolute;right:8%;top:-10%;width:34%;aspect-ratio:1;border-radius:50%;border:22px solid rgba(228,0,125,.22);pointer-events:none}
.hero .wrap{position:relative}
.hero h1,.hero h2,.hero p,.hero .eyebrow{color:#fff}
.hero .eyebrow{color:#C8F17A}
.hero .lead{font-size:1.1rem;color:#D6DEEE;max-width:40ch}
.hero .btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.hero .btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.hero.compact{padding-block:1.8rem 2rem}
.hero.compact .lead{margin-top:.5rem}
.hero .meta{margin-top:1.4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.hero .meta div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:.7rem .8rem}
.hero .meta b{display:block;font-family:var(--display);font-size:1.25rem;font-variant-numeric:tabular-nums;color:#fff}
.hero .meta span{font-size:.82rem;color:#C6D0E3}
.hero-home .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.5fr);gap:2rem;align-items:start}
@media (max-width:900px){.hero-home .wrap{grid-template-columns:1fr}}

/* Tablica lotów */
.board{background:var(--board-bg);color:var(--board-fg);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.board .tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}
.board .tabs button{flex:1;background:transparent;border:0;color:#B9C4DA;font:600 1rem var(--display);padding:.9rem .6rem;cursor:pointer;border-bottom:3px solid transparent;min-height:48px}
.board .tabs button[aria-selected="true"]{color:#fff;border-bottom-color:var(--magenta);background:rgba(255,255,255,.04)}
.board .search{display:flex;gap:.6rem;padding:.8rem;border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.board .search input,.board .search select{background:#fff;color:#111;border:1px solid transparent;border-radius:8px;padding:.65rem .8rem;font:inherit;min-height:44px}
.board .search input{flex:1;min-width:180px}
html.kontrast .board .search :is(input,select){background:#000;color:#fff;border-color:#FFD700}
.board table{width:100%;font-variant-numeric:tabular-nums}
.board th{font:600 .74rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:#9FACC6;text-align:left;padding:.55rem .9rem}
.board td{padding:.75rem .9rem;border-top:1px solid rgba(255,255,255,.07);vertical-align:middle}
.board tbody tr:nth-child(odd){background:var(--board-row)}
.board .t{font:700 1.08rem var(--display)}
.board .dest{font-weight:600}
.board .fl{font-size:.85rem;color:#9FACC6}
.board .gate{color:#C6D0E3}
.board .empty{text-align:center;color:#9FACC6;padding:1.4rem}
.st{display:inline-block;font:600 .74rem var(--display);letter-spacing:.05em;text-transform:uppercase;padding:.3rem .55rem;border-radius:6px;white-space:nowrap}
.st-ok{background:rgba(132,189,0,.22);color:#C8F17A}
.st-plan{background:rgba(255,255,255,.1);color:#E6EBF5}
.st-late{background:rgba(228,0,125,.25);color:#FFB3D9}
.st-board{background:var(--green);color:var(--navy)}
.st-gate{background:#FFD166;color:#3B2A00}
.st-cancel{background:#B91C1C;color:#fff}
html.kontrast .st{background:#000;color:#FFD700;border:1px solid #FFD700}
.board .foot{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.7rem .9rem;font-size:.85rem;color:#9FACC6;border-top:1px solid rgba(255,255,255,.1)}
.board .foot a{color:#fff}
.board.full .tabs button{font-size:1.1rem}
@media (max-width:560px){ .board th:nth-child(3),.board td:nth-child(3){display:none} .board td{padding:.65rem .6rem} }

/* Kafle zadań */
.tasks{padding-block:2.4rem 1rem}
.task{display:flex;flex-direction:column;gap:.6rem;padding:1.3rem;text-decoration:none;color:var(--fg);position:relative;transition:transform .15s,border-color .15s}
.task:hover{transform:translateY(-2px);border-color:var(--magenta);color:var(--fg)}
.task .ico{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem}
.task .go{margin-top:auto;font-family:var(--display);font-weight:600;color:var(--magenta-ink)}
.task .price{font-family:var(--display);font-weight:700;color:var(--green-ink)}
.ico-m{background:var(--magenta-soft);color:var(--magenta-ink)}
.ico-g{background:var(--green-soft);color:var(--green-ink)}
.ico-n{background:var(--surface-2);color:var(--navy)}
html.kontrast .ico-n{color:#FFD700}

/* Sekcje */
section.block{padding-block:3rem}
section.block.tight{padding-block:2rem}
section.alt{background:var(--surface);border-block:1px solid var(--line)}
section.soft{background:var(--surface-2)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.sec-head p{max-width:60ch}
.page-head{padding-block:2rem 1rem}
.page-head .lead{font-size:1.15rem;color:var(--fg-muted);max-width:65ch;margin-top:.6rem}

/* Proza (treści redakcyjne) */
.prose{max-width:72ch}
.prose h2{margin-top:2rem;margin-bottom:.6rem}
.prose h3{margin-top:1.4rem;margin-bottom:.4rem}
.prose p{margin-bottom:.9rem}
.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.3rem}
.prose li{margin-bottom:.35rem}
.prose table{width:100%;margin:1rem 0;font-size:.95rem}
.prose th{text-align:left;background:var(--surface-2);padding:.6rem .7rem;font-family:var(--display);font-weight:600;font-size:.85rem}
.prose td{padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
.prose .table-wrap{overflow-x:auto}
.prose dl{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem}
.prose dt{font-weight:600}
.prose dd{margin:0}
.prose blockquote{margin:1rem 0;padding:.8rem 1rem;border-left:4px solid var(--magenta);background:var(--magenta-soft);border-radius:0 10px 10px 0}

/* Alerty */
.alert{display:flex;gap:.8rem;align-items:start;padding:1rem;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);border-left-width:4px}
.alert-info{border-left-color:var(--navy)}
.alert-ok{border-left-color:var(--ok);background:var(--ok-soft)}
.alert-warn{border-left-color:var(--warn);background:var(--warn-soft)}
.alert-bad{border-left-color:var(--bad);background:var(--bad-soft)}
.alert strong{font-family:var(--display)}

/* Akordeon */
details.acc{border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:.6rem}
details.acc summary{cursor:pointer;padding:.9rem 1.1rem;font:600 1.02rem var(--display);list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary::after{content:"+";font-size:1.4rem;color:var(--magenta-ink);flex:none}
details.acc[open] summary::after{content:"–"}
details.acc .acc-body{padding:0 1.1rem 1rem;color:var(--fg)}
details.acc .acc-body p{margin-bottom:.6rem}

/* Zakładki */
.tabs-ui{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:1rem}
.tabs-ui button{background:none;border:0;border-bottom:3px solid transparent;padding:.7rem 1rem;font:600 .98rem var(--display);color:var(--fg-muted);cursor:pointer;min-height:44px}
.tabs-ui button[aria-selected="true"]{color:var(--magenta-ink);border-bottom-color:var(--magenta)}
[role="tabpanel"][hidden]{display:none}

/* Formularze */
.field{display:grid;gap:.35rem;margin-bottom:1rem}
.field label,.field legend{font:600 .9rem var(--display)}
.field .hint{font-size:.85rem;color:var(--fg-muted)}
.field .error{font-size:.88rem;color:var(--bad);font-weight:600}
html.kontrast .field .error{color:#FF6B6B}
.field input,.field select,.field textarea{font:inherit;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);color:var(--fg);min-height:46px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input[aria-invalid="true"],.field select[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--bad);border-width:2px}
fieldset.field{border:0;padding:0;margin:0 0 1rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:560px){.row2,.row3{grid-template-columns:1fr}}
.check{display:flex;gap:.6rem;align-items:start;font-size:.95rem;margin-bottom:.6rem}
.check input{width:20px;height:20px;flex:none;margin-top:.2rem;accent-color:var(--magenta)}
.radio-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:.5rem}
.radio-cards label{border:1px solid var(--line);border-radius:10px;padding:.7rem;display:flex;gap:.5rem;align-items:center;cursor:pointer;font:600 .92rem var(--display);background:var(--surface)}
.radio-cards label:has(input:checked){border-color:var(--magenta);background:var(--magenta-soft)}
.radio-cards input{accent-color:var(--magenta);width:18px;height:18px}

/* Checkout (Fast Track, parking) */
.checkout{box-shadow:var(--shadow);overflow:hidden}
.steps{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface-2);border-bottom:1px solid var(--line)}
.steps div{padding:.8rem .6rem;text-align:center;font:600 .82rem var(--display);color:var(--fg-muted);display:flex;gap:.4rem;align-items:center;justify-content:center}
.steps div i{font-style:normal;width:24px;height:24px;border-radius:50%;background:var(--line);color:var(--fg);display:grid;place-items:center;font-size:.78rem;flex:none}
.steps div[aria-current="step"]{color:var(--magenta-ink)}
.steps div[aria-current="step"] i{background:var(--magenta);color:#fff}
.steps div.done i{background:var(--green);color:var(--navy)}
.pane{padding:1.3rem}
.pane[hidden]{display:none}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem}
.slots label{position:relative}
.slots input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0}
.slots span{display:block;text-align:center;padding:.6rem .4rem;border:1px solid var(--line);border-radius:10px;font:600 .95rem var(--display);font-variant-numeric:tabular-nums;cursor:pointer;background:var(--surface)}
.slots small{display:block;font:400 .72rem var(--body);color:var(--fg-muted)}
.slots input:checked + span{border-color:var(--magenta);background:var(--magenta-soft);color:var(--magenta-ink)}
.slots input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px}
.slots input:disabled + span{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.qty{display:flex;align-items:center;gap:.4rem}
.qty button{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:700 1.2rem var(--display);cursor:pointer}
.qty output{min-width:2.5ch;text-align:center;font:700 1.2rem var(--display);font-variant-numeric:tabular-nums}
.addons{display:grid;gap:.6rem}
.addon{display:flex;gap:.8rem;align-items:center;padding:.8rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:var(--surface)}
.addon:has(input:checked){border-color:var(--green-ink);background:var(--green-soft)}
.addon input{width:22px;height:22px;accent-color:var(--magenta);flex:none}
.addon .ad-t{font:600 .98rem var(--display)}
.addon .ad-d{font-size:.86rem;color:var(--fg-muted)}
.addon .ad-p{margin-left:auto;font:700 1rem var(--display);white-space:nowrap;font-variant-numeric:tabular-nums}
.summary{background:var(--surface-2);border-radius:12px;padding:1rem;margin-block:1rem}
.summary dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;font-variant-numeric:tabular-nums}
.summary dt{color:var(--fg-muted)}
.summary dd{margin:0;text-align:right;font-weight:600}
.summary .total{border-top:1px solid var(--line);padding-top:.5rem;margin-top:.5rem;display:flex;justify-content:space-between;font:700 1.2rem var(--display)}
.pane .actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-top:1rem}
.ticket{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:center;padding:1.2rem;border:2px dashed var(--line);border-radius:14px;background:var(--surface)}
@media (max-width:520px){.ticket{grid-template-columns:1fr;justify-items:center;text-align:center}}
.ticket canvas,.ticket img.qr{width:148px;height:148px;background:#fff;border-radius:8px;padding:6px;image-rendering:pixelated}
.ticket .code{font:700 1.5rem var(--display);letter-spacing:.12em;color:var(--navy);font-variant-numeric:tabular-nums;word-break:break-all}
html.kontrast .ticket .code{color:#FFD700}
.ticket .k{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;font-size:.92rem;margin-top:.6rem;text-align:left}
.ticket .k span:nth-child(odd){color:var(--fg-muted)}
.why ul{margin:.8rem 0 0;padding:0;list-style:none;display:grid;gap:.6rem}
.why li{display:flex;gap:.6rem;align-items:start}
.why li::before{content:"✓";flex:none;width:24px;height:24px;border-radius:50%;background:var(--green);color:var(--navy);display:grid;place-items:center;font-weight:700;font-size:.85rem}
html.kontrast .why li::before{background:#FFD700;color:#000}
.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--navy);color:#fff;padding:.7rem 1rem;border-radius:10px;box-shadow:var(--shadow);font-weight:600;z-index:300;max-width:calc(100% - 32px)}
.toast[hidden]{display:none}

/* Parking */
.lot{padding:1.2rem;display:flex;flex-direction:column;gap:.5rem}
.lot .top{display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.lot .code{font:800 1.6rem var(--display);color:var(--navy)}
html.kontrast .lot .code{color:#FFD700}
.lot .price{font:700 1.25rem var(--display);color:var(--magenta-ink)}
.lot .price small{font:400 .82rem var(--body);color:var(--fg-muted)}
.lot ul{margin:.3rem 0 .6rem;padding-left:1.1rem;color:var(--fg-muted);font-size:.95rem}
.lot .btn{margin-top:auto}

/* Dojazd */
.mode{padding:1.2rem;display:flex;flex-direction:column;gap:.45rem}
.mode .hd{display:flex;align-items:center;gap:.7rem}
.mode .hd .ico{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:1.2rem;flex:none}
.mode .time{font:700 1.1rem var(--display);color:var(--navy);font-variant-numeric:tabular-nums}
html.kontrast .mode .time{color:#FFD700}
.mode p{color:var(--fg-muted);font-size:.95rem}
.mode a.more{margin-top:auto;font-family:var(--display);font-weight:600}

/* PRM */
.steps-list{counter-reset:k;list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.8rem}
.steps-list li{counter-increment:k;display:grid;grid-template-columns:36px 1fr;gap:.8rem;align-items:start}
.steps-list li::before{content:counter(k);width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font:700 1rem var(--display)}
html.kontrast .steps-list li::before{background:#FFD700;color:#000}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
@media (max-width:520px){.facts{grid-template-columns:1fr}}
.facts div{padding:.9rem;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.facts b{display:block;font-family:var(--display);margin-bottom:.2rem}
.facts span{font-size:.9rem;color:var(--fg-muted)}
.contact-box{margin-top:1rem;padding:1rem;border-radius:12px;background:var(--magenta-soft);border:1px solid var(--line)}
.contact-box b{font-family:var(--display);font-size:1.3rem;letter-spacing:.03em;display:block;font-variant-numeric:tabular-nums}

/* Aktualności */
.news article{padding:1.1rem;display:flex;flex-direction:column;gap:.4rem}
.news time{font:600 .8rem var(--display);color:var(--fg-muted);letter-spacing:.04em}
.news h3 a{color:var(--fg);text-decoration:none}
.news h3 a:hover{color:var(--magenta-ink)}
.news .tag{align-self:start}

/* Statystyki / liczby */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:.8rem}
.stats div{padding:1rem;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.stats b{display:block;font:800 1.6rem var(--display);color:var(--navy);font-variant-numeric:tabular-nums}
html.kontrast .stats b{color:#FFD700}
.stats span{font-size:.88rem;color:var(--fg-muted)}

/* Mapa (statyczny obraz/SVG) */
.map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--surface-2)}
.map svg{width:100%;height:auto}

/* Stopka */
footer.site{background:var(--navy);color:#D6DEEE;padding-block:2.6rem 1.4rem;margin-top:0}
footer.site a{color:#fff}
footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1.6rem}
footer.site .fh{color:#fff;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.7rem;font-family:var(--display)}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;font-size:.95rem}
footer.site .legal{margin-top:2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-size:.85rem;justify-content:space-between}
footer.site .legal .links{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}
footer.site .linklike{color:#fff}
footer.site .copy{margin-top:1rem;font-size:.82rem;color:#9FACC6}
.a11y-badge{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.3rem .7rem;font-size:.82rem}

/* Cookies */
.cookies{position:fixed;left:0;right:0;bottom:0;z-index:350;background:var(--surface);border-top:3px solid var(--magenta);box-shadow:0 -10px 30px rgba(17,30,56,.15);padding-block:1rem calc(1rem + env(safe-area-inset-bottom,0px))}
.cookies[hidden]{display:none}
.cookies .wrap{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between}
.cookies .ck-body{flex:1;min-width:260px;max-width:70ch}
.cookies h2{font-size:1.1rem;margin-bottom:.3rem}
.cookies p{font-size:.92rem}
.ck-opts{border:0;padding:0;margin:.6rem 0 0;display:flex;gap:1rem;flex-wrap:wrap;font-size:.92rem}
.ck-opts label{display:flex;gap:.4rem;align-items:center}
.ck-opts input{width:18px;height:18px;accent-color:var(--magenta)}
.ck-actions{display:flex;gap:.5rem;flex-wrap:wrap}

/* Druk */
@media print{ .toolbar,header.site,.notice,.demo-bar,.cookies,.toast,footer.site .legal,.btn{display:none!important} body{background:#fff;color:#000} .card{border-color:#999} a::after{content:" (" attr(href) ")";font-size:.8em} }

/* Mobile: ochrona przed poziomym przewijaniem */
.two>*,.grid>*,.row2>*,.row3>*,.cols>*,.facts>*,.stats>*{min-width:0}
input,select,textarea{max-width:100%}
fieldset{min-width:0;max-width:100%}
label.check{overflow-wrap:anywhere}
.prose p,.prose li,.prose dd,.prose td,.card p,.alert{overflow-wrap:anywhere}
@media (max-width:640px){
  .prose dl{grid-template-columns:1fr;gap:.15rem .8rem}
  .prose dd{margin-bottom:.6rem}
  .prose table{display:block;overflow-x:auto;max-width:100%}
  .prose table caption{white-space:normal;text-align:left}
  .hero .meta{grid-template-columns:1fr 1fr}
}
body{overflow-x:clip}
.prose{min-width:0;max-width:min(72ch,100%)}
.table-wrap{overflow-x:auto;max-width:100%}
.table-wrap table{display:table;min-width:100%}
