@font-face{font-family:"Inter";src:url(/assets/fonts/inter-latin-ext-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20C0,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2212}
/* Zastępczy Arial/Helvetica dopasowany do szerokości Inter (size-adjust zmierzony w Chromium na tekstach strony,
   osobno dla wag) — zamiana fontu po pobraniu nie przestawia wierszy (CLS). Ascent/descent = metryki Inter / size-adjust. */
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("LiberationSans"),local("Helvetica");font-weight:100 549;size-adjust:107.3%;ascent-override:90.3%;descent-override:22.6%;line-gap-override:0%}
@font-face{font-family:"Inter Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Helvetica Bold"),local("Helvetica-Bold");font-weight:550 649;size-adjust:102.3%;ascent-override:94.7%;descent-override:23.7%;line-gap-override:0%}
@font-face{font-family:"Inter Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Helvetica Bold"),local("Helvetica-Bold");font-weight:650 900;size-adjust:102.6%;ascent-override:94.4%;descent-override:23.6%;line-gap-override:0%}
:root{
  /* Paleta „Oracle Redwood” (Task 20, decyzja Marcina 2026-10-08): petrol/teal jak na oracle.com; panel wyceny zostaje granatowo-pomarańczowy (--quote-*) */
  --ink:#053242;--ink-2:#0a4456;--accent:#006b8f;--accent-on-dark:#8fd3d0;--accent-text:#006b8f;
  --bg:#f1efed;--surface:#fff;--line:#d4cfca;--text:#161513;--muted:#5a6869;--muted-on-dark:#b4c9d0;--error:#b91c1c;
  /* panel „Twoja wycena” i pasek ceny na telefonie — bez zmian względem wariantu B */
  --quote-bg:#0a1b2b;--quote-ink-3:#1b3550;--quote-cta:#ef7a00;--quote-cta-hover:#ff8a14;--quote-accent:#ff9a2e;--quote-text:#cbd5e1;--quote-muted:#94a3b8;
  --quote-shadow:0 24px 48px -18px rgba(10,27,43,.45);--quote-bar-shadow:0 -16px 32px -16px rgba(10,27,43,.55);--quote-cta-shadow:0 8px 20px -8px rgba(239,122,0,.7);
  --r-sm:8px;--r-md:12px;--r-lg:16px;
  --shadow-card:0 1px 0 rgba(5,50,66,.04),0 24px 48px -18px rgba(5,50,66,.28);
  --shadow-panel:0 24px 48px -18px rgba(5,50,66,.45);
  --shadow-card-hover:0 1px 0 rgba(5,50,66,.04),0 28px 52px -18px rgba(5,50,66,.36);
  --font:"Inter","Inter Fallback",Arial,"Liberation Sans",Helvetica,system-ui,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --t-fast:150ms;--t-med:250ms;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
/* bez szarego błysku stuknięcia tylko tam, gdzie jest własne :active (przyciski, chipy, segmenty, ±, menu, pasek ceny);
   zwykłe linki zostają z systemowym podświetleniem jako informacją zwrotną */
.btn,.rcard,.opt,.step__change,.step__back,.seg__item,.qty__btn,.nav__toggle,.quote-bar{-webkit-tap-highlight-color:transparent}
body{margin:0;font:16px/1.55 var(--font);color:var(--text);background:var(--bg);min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.container{max-width:1200px;margin:0 auto;padding:0 max(clamp(16px,4vw,32px),env(safe-area-inset-right,0px)) 0 max(clamp(16px,4vw,32px),env(safe-area-inset-left,0px))} /* viewport-fit=cover: w poziomie treść nie wchodzi pod notch */
.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}
.band :focus-visible{outline-color:var(--accent-on-dark)}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:16px;z-index:100;background:#fff;padding:8px 12px;border-radius:var(--r-sm)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important}}

/* ---------- Tokeny uzupełniające (docs/DESIGN.md) ---------- */
:root{
  --ink-3:#0f5266;--accent-wash:#e6f1f4;--accent-deep:#004f6b;--surface-2:#ece9e6;
  --line-strong:#78736e;--text-2:#312d2a;--muted-strong:#4a4642;--text-on-dark:#d3e3e8;--text-on-dark-strong:#e3eef1;--error-wash:#fef2f2;--error-deep:#7f1d1d;
  --surface-3:#f6f4f2;--surface-2-hover:#e4e0dc;--surface-hover:#faf9f8;
  /* potwierdzenie: ✓ zrobionego kroku (biały znak, element graficzny 3.30:1), segment „zrobione” na pasie, komunikat OK w panelu */
  --success:#16a34a;--success-on-dark:#22c55e;--success-deep:#15803d;--success-wash:#f0fdf4;
  /* ostrzeżenia w panelu cen (/panel) — zostają bursztynowe, to znaczenie, nie ozdoba */
  --warn:#ef7a00;--warn-wash:#fff7ed;--warn-deep:#9a3412;--warn-ink:#0a1b2b;
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;
  --shadow-cta:0 8px 20px -8px rgba(0,107,143,.6);
  --ease:cubic-bezier(.2,.8,.2,1);
  --band-tail:72px;--lift:52px;
}

/* ---------- Typografia ---------- */
h1,h2,h3,h4{margin:0 0 var(--s-3);color:var(--text);font-weight:700;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:28px;line-height:1.15;letter-spacing:-.025em}
h2{font-size:22px;line-height:1.3}
h3{font-size:18px;line-height:1.4}
p{margin:0 0 var(--s-4);text-wrap:pretty}
@media (min-width:900px){h1{font-size:36px;line-height:1.1}}
a{color:var(--accent-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--t-fast) var(--ease),text-decoration-color var(--t-fast) var(--ease)}
@media (hover:hover) and (pointer:fine){a:hover{text-decoration-thickness:2px}}
img{max-width:100%;height:auto}
[hidden]{display:none!important}
.nowrap{white-space:nowrap}

/* ---------- Pas górny ---------- */
.band{position:relative;isolation:isolate;color:var(--text-on-dark);padding-bottom:var(--band-tail);
  background:radial-gradient(circle 280px at calc(100% - 160px) 100px,rgba(143,211,208,.2),transparent 62%),var(--ink)}
.band::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
.band a{color:inherit}

/* Nagłówek */
.site-header{border-bottom:1px solid rgba(255,255,255,.08)}
.site-header__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-5);padding-top:var(--s-4);padding-bottom:var(--s-4)}
.logo{display:inline-flex;align-items:center;padding:7px 12px;border-radius:var(--r-md);background:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,.14),0 0 0 5px rgba(255,255,255,.05),0 12px 24px -12px rgba(0,0,0,.5);
  transition:box-shadow var(--t-fast) var(--ease)}
.logo picture{display:contents}
.logo img{display:block;flex:none;width:232px;height:auto}
@media (hover:hover) and (pointer:fine){.logo:hover{box-shadow:0 0 0 1px rgba(255,255,255,.3),0 0 0 5px rgba(143,211,208,.2),0 12px 24px -12px rgba(0,0,0,.5)}}
.band .logo:focus-visible{outline-offset:4px}

.nav{justify-self:center}
.nav__list{display:flex;align-items:center;gap:2px;margin:0;padding:0;list-style:none}
.nav__list a{position:relative;display:block;padding:10px 12px;border-radius:var(--r-sm);font-size:14px;font-weight:500;line-height:1.5;color:var(--text-on-dark);text-decoration:none;
  transition:color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}
@media (hover:hover) and (pointer:fine){.nav__list a:hover{color:#fff;background:rgba(255,255,255,.06)}}
.nav__list a[aria-current="page"]{color:#fff;font-weight:600}
.nav__list a[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:var(--accent-on-dark)}
.nav__toggle{display:none}

.site-header__contact{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:2px 12px;margin:0;font-size:13px;line-height:1.4;text-align:right}
.site-header__contact span{flex-basis:100%;color:var(--muted-on-dark);font-size:12px;font-weight:600;letter-spacing:.02em}
.site-header__contact a{color:#fff;text-decoration:none;font-weight:500;white-space:nowrap}
@media (hover:hover) and (pointer:fine){.site-header__contact a:hover{color:var(--accent-on-dark)}}
.site-header__contact a[href^="mailto"]{padding:4px 12px;border:1px solid rgba(255,255,255,.2);border-radius:999px;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
@media (hover:hover) and (pointer:fine){.site-header__contact a[href^="mailto"]:hover{border-color:var(--accent-on-dark)}}
/* „Bezpłatna konsultacja” (Task 21): jedyny wyróżniony przycisk w nagłówku, obok e-maila */
.btn.btn--sm{min-height:36px;padding:6px 14px;font-size:13px}
.site-header__side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-2)}
.site-header__cta{gap:6px;color:var(--ink);font-weight:700;text-decoration:none;white-space:nowrap}
.site-header__cta-icon{flex:none}
.site-header__cta-short{display:none}
.site-header__cta[aria-current="page"]{box-shadow:inset 0 0 0 2px var(--ink)}

/* Hero w pasie (Task 10: partials/hero) */
.hero{position:relative;padding-top:var(--s-6);padding-bottom:var(--s-2)}
.eyebrow{margin:0 0 var(--s-2);color:var(--accent-on-dark);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.hero__title{max-width:14.75em;margin:0 0 var(--s-3);color:#fff}
.hero__lead{max-width:37.8em;margin:0;color:var(--muted-on-dark);font-size:18px;line-height:1.5}
.crumbs{margin:0 0 var(--s-4);color:var(--muted-on-dark);font-size:13px}
.crumbs a{color:var(--text-on-dark);text-decoration:none}
@media (hover:hover) and (pointer:fine){.crumbs a:hover{color:#fff;text-decoration:underline}}

/* Telefon i tablet: menu rozwijane w przepływie (nie nachodzi na kartę, nic go nie przycina) */
@media (max-width:1079px){
  .site-header__row{position:relative;grid-template-columns:1fr;gap:var(--s-3)}
  .logo{justify-self:start;min-height:44px;padding:9px 12px}
  .logo img{width:180px}
  .nav{justify-self:stretch}
  .nav__toggle{position:absolute;top:var(--s-4);right:clamp(16px,4vw,32px);display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;
    border:1px solid rgba(255,255,255,.22);border-radius:999px;background:transparent;color:#fff;font:600 14px/1 var(--font);cursor:pointer;
    transition:border-color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}
  @media (hover:hover) and (pointer:fine){.nav__toggle:hover{border-color:var(--accent-on-dark);background:rgba(255,255,255,.04)}}
  .nav__burger{position:relative;width:16px;height:2px;border-radius:2px;background:currentColor;transition:background-color var(--t-fast) var(--ease)}
  .nav__burger::before,.nav__burger::after{content:"";position:absolute;left:0;width:16px;height:2px;border-radius:2px;background:currentColor;transition:transform var(--t-med) var(--ease)}
  .nav__burger::before{transform:translateY(-5px)}
  .nav__burger::after{transform:translateY(5px)}
  .nav__toggle[aria-expanded="true"] .nav__burger{background:transparent}
  .nav__toggle[aria-expanded="true"] .nav__burger::before{transform:rotate(45deg)}
  .nav__toggle[aria-expanded="true"] .nav__burger::after{transform:rotate(-45deg)}
  .nav__list{display:none;flex-direction:column;align-items:stretch;gap:2px;padding:var(--s-2);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);
    background:var(--ink-2);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease)}
  .nav__list.is-open{display:flex}
  @starting-style{.nav__list.is-open{opacity:0;transform:translateY(-6px)}}
  .nav__list a{min-height:48px;display:flex;align-items:center;padding:0 var(--s-4);font-size:16px}
  .nav__list a[aria-current="page"]{background:rgba(255,255,255,.06)}
  .nav__list a[aria-current="page"]::after{left:0;right:auto;top:12px;bottom:12px;width:3px;height:auto}
  .site-header__side{align-items:flex-start}
  .site-header__contact{justify-content:flex-start;text-align:left;gap:4px 14px}
  .site-header__contact span{flex-basis:auto}
  .site-header__contact a{display:inline-flex;align-items:center;min-height:32px}
}
/* Telefon: „Konsultacja” w linii przycisku menu (ikona + krótka nazwa), menu jako sama ikona — bez osobnego rzędu */
@media (max-width:599px){
  .logo img{width:136px}
  .nav__toggle{width:44px;padding:0;justify-content:center}
  .nav__toggle-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .site-header__cta.btn--sm{position:absolute;top:var(--s-4);right:calc(clamp(16px,4vw,32px) + 52px);min-height:44px;padding:0 10px}
  .site-header__cta-full{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .site-header__cta-short{display:inline}
}
/* bardzo wąski ekran (320–374 px): sama ikona, nazwa dla czytników ekranu zostaje */
@media (max-width:374px){
  .site-header__cta.btn--sm{width:44px;padding:0}
  .site-header__cta-short{display:none}
}
@media (max-width:1079px) and (scripting:none){
  .nav__toggle{display:none}
  .nav__list{display:flex;flex-direction:row;flex-wrap:wrap;padding:0;border:0;background:none}
  .nav__list a{min-height:44px;padding:0 var(--s-3);font-size:14px}
}

/* ---------- Treść ---------- */
.main{display:block;flex:1 0 auto;padding-bottom:var(--s-8)}
.lift{position:relative;z-index:2;margin-top:calc(-1 * var(--lift))}
.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--s-5)}
@media (max-width:599px){.card{padding:var(--s-4)}}

/* Przyciski */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:44px;padding:10px 20px;border:1px solid transparent;border-radius:var(--r-md);
  font:700 15px/1.2 var(--font);text-decoration:none;cursor:pointer;
  transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.btn--primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-cta)}
/* na ciemnym tle (pas, 404 w pasie) akcent jest zbyt ciemny — jasny turkus z tekstem ink */
.band .btn--primary{background:var(--accent-on-dark);color:var(--ink);box-shadow:none}
/* panel wyceny: pomarańczowy CTA z granatowym tekstem, jak w wariancie B */
.quote .btn--primary,.quote-bar .btn--primary{background:var(--quote-cta);color:var(--quote-bg);box-shadow:var(--quote-cta-shadow)}
.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--line-strong);font-weight:600}
.band .btn--secondary,.on-dark .btn--secondary{background:transparent;color:var(--text-on-dark-strong);border-color:rgba(255,255,255,.22)}
@media (hover:hover) and (pointer:fine){
  .btn--primary:hover{background:var(--accent-deep);color:#fff;transform:translateY(-1px)}
  .band .btn--primary:hover{background:#fff;color:var(--ink)}
  .quote .btn--primary:hover,.quote-bar .btn--primary:hover{background:var(--quote-cta-hover);color:var(--quote-bg)}
  .btn--secondary:hover{border-color:var(--text);transform:translateY(-1px)}
  .band .btn--secondary:hover,.on-dark .btn--secondary:hover{border-color:var(--accent-on-dark);color:#fff}
}
.btn:active{transform:translateY(0) scale(.98)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.link-button{padding:0;border:0;background:none;color:var(--accent-text);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* Strona 404/410 */
.status__card{max-width:760px;padding:var(--s-7) var(--s-7) var(--s-6);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.status__code{position:relative;margin:0 0 var(--s-5);padding-bottom:var(--s-4);color:var(--ink);font-size:clamp(64px,12vw,112px);line-height:.9;letter-spacing:-.04em}
.status__code::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:4px;border-radius:2px;background:var(--accent)}
.status__card p:last-child{margin:0;color:var(--text-2);font-size:18px;line-height:1.6;max-width:37.8em}
@media (max-width:599px){.status__card{padding:var(--s-6) var(--s-5) var(--s-5)}.status__card p:last-child{font-size:16px}}

/* ---------- Stopka ---------- */
.site-footer{background:var(--surface);border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.site-footer__row{display:grid;grid-template-columns:1fr auto;gap:var(--s-3) var(--s-6);padding-top:var(--s-6);padding-bottom:max(var(--s-6),env(safe-area-inset-bottom))}
.site-footer p{margin:0}
.site-footer__row > p:first-child{color:var(--text);font-weight:500}
.site-footer__row > p:first-child a{color:var(--text);text-decoration:none;font-weight:700}
@media (hover:hover) and (pointer:fine){.site-footer__row > p:first-child a:hover{color:var(--accent-text)}}
.site-footer__links{justify-self:end;grid-column:2;grid-row:1}
.site-footer__links a{color:var(--text-2);text-decoration:none}
@media (hover:hover) and (pointer:fine){.site-footer__links a:hover{color:var(--accent-text);text-decoration:underline}}
.site-footer__legal{grid-column:1/-1;max-width:69.3em;padding-top:var(--s-4);border-top:1px solid var(--line);font-size:13px;line-height:1.6}
@media (max-width:719px){
  .site-footer__row{grid-template-columns:1fr}
  .site-footer__links{grid-column:auto;grid-row:auto;justify-self:start}
  .site-footer__links a,.site-footer__links .link-button{display:inline-block;padding:10px 0}
}

/* ---------- Strony treściowe (Task 10) ---------- */

/* Treść redakcyjna: akapity 18/1.7, kolumna do 65ch (docs/DESIGN.md → Artykuł). Szerokości w em, nie w ch: „ch” liczy się
   z cyfry 0 bieżącego fontu, a gdy wczytany jest już tylko plik latin-ext Inter (bez cyfr), 1ch = 0.5em i kolumny
   chwilowo się zwężają — przesunięcie układu (CLS 0.18 w Lighthouse). 1ch Inter = 0.63em (400) / 0.67em (700). */
.prose{color:var(--text-2);font-size:16px;line-height:1.7}
.prose > :first-child{margin-top:0}
.prose > :last-child{margin-bottom:0}
.prose p{max-width:41em;margin:0 0 var(--s-4)}
.prose h2{margin:var(--s-6) 0 var(--s-3)}
.prose h3{margin:var(--s-5) 0 var(--s-2)}
.prose ul,.prose ol{max-width:41em;margin:0 0 var(--s-4);padding-left:1.4em}
.prose li{margin-bottom:var(--s-2)}
.prose li::marker{color:var(--accent-text)}
.prose img{display:block;margin:0 0 var(--s-5);border-radius:var(--r-md)}
.prose strong{color:var(--text)}
.prose a{overflow-wrap:anywhere}
.prose table{width:100%;margin:0 0 var(--s-5);border-collapse:collapse;font-size:15px}
.prose th,.prose td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.prose th{background:var(--surface-2);color:var(--text)}
@media (min-width:900px){.prose{font-size:18px}.prose--page{font-size:16px}}
.prose--page p{max-width:49em}

/* Lista artykułów */
.article-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--s-5);margin:0;padding:0;list-style:none}
.article-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card);
  transition:box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.article-card__thumb{aspect-ratio:7/3;background:var(--surface-2);border-bottom:1px solid var(--line)}
.article-card__thumb img{display:block;width:100%;height:100%;object-fit:contain}
.article-card__body{display:flex;flex:1;flex-direction:column;padding:var(--s-5)}
.article-card__title{margin:0 0 var(--s-2);font-size:18px;line-height:1.35}
.article-card__title a{color:var(--text);text-decoration:none}
.article-card__title a::after{content:"";position:absolute;inset:0}
.article-card__title a:focus-visible{outline:none}
.article-card:has(.article-card__title a:focus-visible){outline:3px solid var(--accent-text);outline-offset:2px}
.article-card__meta{margin:0 0 var(--s-3);color:var(--muted);font:500 13px/1.5 var(--mono);font-variant-numeric:tabular-nums}
.article-card__excerpt{margin:0;color:var(--text-2);font-size:15px;line-height:1.6}
@media (hover:hover) and (pointer:fine){
  .article-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}
  .article-card:hover .article-card__title a{color:var(--accent-text);text-decoration:underline}
}

/* Artykuł */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--s-6);align-items:start}
.article-meta{margin:0 0 var(--s-4);color:var(--muted);font:500 13px/1.5 var(--mono)}
.article-aside{display:grid;gap:var(--s-5);position:sticky;top:var(--s-5)}
.aside-cta{padding:var(--s-5);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-card);border-top:4px solid var(--accent)}
.aside-cta__title{margin:0 0 var(--s-2);color:var(--text);font-size:18px;font-weight:700}
.aside-cta p:not(.aside-cta__title){color:var(--text-2);font-size:15px}
.aside-cta .btn{width:100%}
.aside-cta .aside-cta__more{margin:var(--s-3) 0 0;font-size:14px}
.aside-list{padding:var(--s-5);border-radius:var(--r-md);background:var(--surface-2)}
.aside-list__title{margin:0 0 var(--s-3);color:var(--text);font-size:14px;font-weight:700}
.aside-list ul{margin:0;padding:0;list-style:none}
.aside-list li{border-top:1px solid var(--line-strong)}
.aside-list li:first-child{border-top:0}
.aside-list a{display:block;padding:10px 0;color:var(--text-2);font-size:14px;line-height:1.4;text-decoration:none}
@media (hover:hover) and (pointer:fine){.aside-list a:hover{color:var(--accent-text);text-decoration:underline}}
@media (max-width:899px){
  .article-layout{grid-template-columns:minmax(0,1fr)}
  .article-aside{position:static}
}

/* Kontakt */
.contact-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s-5);align-items:start}
.contact-company p{margin-bottom:var(--s-2);font-size:16px}
.contact-company p:first-of-type{margin-bottom:var(--s-3);color:var(--text);font-size:18px}
.contact-side{display:grid;gap:var(--s-5)}
.contact-consult h2{margin-bottom:var(--s-2);font-size:18px}
.contact-consult p{color:var(--text-2);font-size:15px}
.contact-company__logo{display:inline-block;margin:0 0 var(--s-4);border-radius:var(--r-sm)}
.contact-company__logo img{display:block;width:200px;height:auto}
.contact-map h2{margin-bottom:var(--s-4)}
.map-placeholder{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--s-3);min-height:320px;padding:var(--s-5);border:1px dashed var(--line-strong);border-radius:var(--r-md);
  background:var(--surface-2) linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 28px}
.map-placeholder p{max-width:29em;margin:0;color:var(--text-2);font-size:15px}
.map-placeholder a{font-size:14px}
.map-placeholder:has(.map-frame){display:block;min-height:0;padding:0;border:0;background:none}
.map-frame{display:block;width:100%;height:380px;border:0;border-radius:var(--r-md)}
@media (max-width:899px){.contact-layout{grid-template-columns:minmax(0,1fr)}.map-frame{height:300px}}

/* Podziękowanie */
.thanks{max-width:760px}
.thanks__notice{margin:0 0 var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);background:var(--error-wash);box-shadow:inset 3px 0 0 var(--error);color:var(--error);font-weight:500;line-height:1.5}
.thanks > p:only-child{margin:0}

/* ---------- Baner zgody na cookies (Task 14) ---------- */
.consent{position:fixed;left:max(var(--s-4),env(safe-area-inset-left,0px));bottom:max(var(--s-4),env(safe-area-inset-bottom,0px));z-index:60;
  width:min(420px,calc(100vw - 2 * var(--s-4)));padding:var(--s-5);background:var(--surface);color:var(--text);
  border-radius:var(--r-lg);border-top:4px solid var(--accent);box-shadow:var(--shadow-panel);
  animation:consent-in var(--t-med) var(--ease) both}
.consent__title{margin:0 0 var(--s-2);font-size:18px;font-weight:700;line-height:1.3}
.consent__text{margin:0 0 var(--s-4);color:var(--text-2);font-size:14px;line-height:1.55}
.consent__actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.consent__actions .btn{flex:1 1 auto}
@keyframes consent-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (max-width:899px){
  /* nad paskiem ceny kalkulatora (.quote-bar ~66px), żeby go nie zasłaniać */
  body:has(.quote-bar:not(.is-away)) .consent{bottom:calc(66px + var(--s-3) + env(safe-area-inset-bottom,0px))}
}
@media (max-width:599px){
  .consent{right:var(--s-4);width:auto;padding:var(--s-4)}
  .consent__text{margin-bottom:var(--s-3);font-size:13px}
}
