/*
 * Compass — GoodWay Design System w palecie programu Compass.
 *
 * Papier #ECF1F7 i granatowy tusz #122C45. Struktura rysowana 1px liniami,
 * bez zaokrągleń i cieni. Archivo 900 w nagłówkach, Newsreader w treści,
 * Space Mono we wszystkim, co funkcyjne (nawigacja, przyciski, etykiety).
 */

:root {
    --gw-paper: #ECF1F7;
    --gw-ink: #122C45;
    --gw-void: #0C1E30;
    --gw-accent: #1A5687;
    --gw-rule-inverse: #3C566E;
    --gw-rule-overlay: #2A4560;

    --risk-scam: #9E3B2B;
    --risk-caution: #8A5A18;
    --risk-clear: #1F6B62;

    --gw-font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
    --gw-font-body: "Newsreader", Georgia, serif;
    --gw-font-mono: "Space Mono", ui-monospace, Menlo, monospace;

    --gw-gutter: clamp(16px, 3vw, 40px);
    --gw-ease-curtain: cubic-bezier(.76, 0, .24, 1);
    --gw-ease-lift: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- Podstawy ---------- */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--gw-paper);
    color: var(--gw-ink);
    font-family: var(--gw-font-body);
    font-size: 19px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; transition: color .15s, background-color .2s; }
p, blockquote, address { margin: 0; }
address { font-style: normal; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; color: inherit; }

h1, h2, h3 {
    margin: 0;
    font-family: var(--gw-font-display);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: .95;
    text-transform: uppercase;
    text-wrap: balance;
}

::selection { background: var(--gw-ink); color: var(--gw-paper); }
:focus-visible { outline: 2px solid var(--gw-ink); outline-offset: 3px; }
.on-ink :focus-visible { outline-color: var(--gw-paper); }

.skip-link {
    position: absolute; left: var(--gw-gutter); top: -100px; z-index: 100;
    padding: 10px 16px;
    background: var(--gw-ink); color: var(--gw-paper);
    font-family: var(--gw-font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
}
.skip-link:focus { top: 10px; }

/* ---------- Typografia ---------- */

.eyebrow, .label, .caption, .cell__label {
    display: block;
    margin: 0;
    font-family: var(--gw-font-mono);
    font-weight: 400;
    line-height: 1.5;
    text-transform: uppercase;
}
.eyebrow { margin-bottom: 22px; font-size: 11px; letter-spacing: .20em; opacity: .6; }
.label { font-size: 11px; letter-spacing: .16em; opacity: .6; }
.label--spaced { margin-bottom: 18px; }
.cell__label { font-size: 11px; letter-spacing: .16em; opacity: .55; }
.caption { font-size: 10px; letter-spacing: .18em; opacity: .55; }

.title-hero { max-width: 20ch; font-size: clamp(34px, 5.4vw, 88px); line-height: .9; }
.title-page { max-width: 20ch; font-size: clamp(30px, 4.4vw, 72px); line-height: .92; }
.title-section { max-width: 24ch; font-size: clamp(26px, 3.4vw, 48px); }
.title-section--wide { max-width: 26ch; }
.title-card { font-size: clamp(24px, 2.6vw, 38px); }
.title-card--sm { font-size: clamp(22px, 2.4vw, 34px); }

.lead { max-width: 56ch; font-size: clamp(17px, 1.4vw, 21px); line-height: 1.55; }
.lead--article { max-width: 52ch; margin-top: 26px; font-size: clamp(18px, 1.6vw, 25px); line-height: 1.5; }
.hero-note { max-width: 56ch; margin-top: 18px; opacity: .75; }
.intro { max-width: 56ch; margin-top: 20px; opacity: .75; }
.intro--ink { margin-bottom: 34px; opacity: .8; }
.note { max-width: 46ch; opacity: .75; }

.text-link, .back-link {
    font-family: var(--gw-font-mono);
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.text-link:hover { color: var(--gw-accent); }
.back-link { display: inline-block; margin-bottom: 24px; font-size: 11px; letter-spacing: .16em; opacity: .6; }
.back-link:hover { color: var(--gw-accent); opacity: 1; }

/* ---------- Sekcje ---------- */

.section { padding: clamp(40px, 5vw, 76px) var(--gw-gutter); border-bottom: 1px solid var(--gw-ink); }
.section--hero { padding: clamp(46px, 6vw, 92px) var(--gw-gutter) clamp(28px, 4vw, 52px); }
.section--hero .eyebrow { margin-bottom: clamp(24px, 3.5vw, 40px); }
.section--hero .lead { margin-top: clamp(24px, 3vw, 36px); }
.section--hero .actions { margin-top: clamp(28px, 3.5vw, 44px); }
.section--head { padding: clamp(36px, 4.5vw, 72px) var(--gw-gutter) clamp(24px, 3vw, 40px); }
.section--head .eyebrow { margin-bottom: 20px; }
.section--head .lead { margin-top: 22px; }
.section--article-head { padding: clamp(30px, 4vw, 60px) var(--gw-gutter) clamp(24px, 3vw, 40px); }
.section--short-tail { padding-bottom: clamp(24px, 3vw, 44px); }
.section--compact { padding: clamp(32px, 4vw, 60px) var(--gw-gutter); }
.section--tight { padding: clamp(28px, 3.4vw, 52px) var(--gw-gutter); }

.on-ink { background: var(--gw-ink); color: var(--gw-paper); }

/* ---------- Przyciski i linki-etykiety ---------- */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    padding: 15px 24px;
    border: 1px solid var(--gw-ink);
    border-radius: 0;
    background: transparent;
    color: var(--gw-ink);
    font-family: var(--gw-font-mono);
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: .10em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.btn:hover { background: var(--gw-ink); color: var(--gw-paper); }
.btn--solid { background: var(--gw-ink); color: var(--gw-paper); }
.btn--solid:hover { background: transparent; color: var(--gw-ink); }
.btn--sm { padding: 14px 22px; }
.btn--nav { padding: 10px 16px; font-size: 11px; letter-spacing: .12em; }
.btn--start { align-self: flex-start; }
.on-ink .btn { border-color: var(--gw-paper); color: var(--gw-paper); }
.on-ink .btn:hover { background: var(--gw-paper); color: var(--gw-ink); }

.actions { display: flex; flex-wrap: wrap; gap: 14px; }
.actions--tight { gap: 12px; }

.pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.label + .pills { margin-top: 22px; }
.pill-link {
    display: inline-flex;
    align-items: center;
    gap: .6em;
    padding: 11px 16px;
    border: 1px solid var(--gw-ink);
    font-family: var(--gw-font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.pill-link:hover { background: var(--gw-ink); color: var(--gw-paper); }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.chip {
    padding: 7px 12px;
    border: 1px solid currentColor;
    font-family: var(--gw-font-mono);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
}

/* ---------- Nagłówek i nawigacja ---------- */

.site-header {
    position: sticky; top: 0; z-index: 50;
    background: var(--gw-paper);
    border-bottom: 1px solid var(--gw-ink);
}
.site-header__inner {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    min-height: 66px;
    padding: 0 var(--gw-gutter);
}
.brand { display: flex; align-items: baseline; gap: 10px; }
.brand__name { font-family: var(--gw-font-display); font-weight: 900; font-size: 20px; letter-spacing: -0.03em; text-transform: uppercase; }
.brand__org { font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; opacity: .55; }

.site-nav {
    display: flex; align-items: center; gap: clamp(10px, 1.6vw, 24px);
    font-family: var(--gw-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
}
.navlink { position: relative; }
.navlink::after {
    content: ""; position: absolute; left: 0; bottom: -4px;
    width: 0; height: 1px; background: currentColor;
    transition: width .2s;
}
.navlink:hover::after { width: 100%; }
.navlink[aria-current="page"]::after { width: 100%; height: 2px; }

.navcheck, .burger, .mob-overlay { display: none; }

/* ---------- Zdjęcia ---------- */

.media { position: relative; overflow: hidden; background: var(--gw-void); border-bottom: 1px solid var(--gw-ink); }
.media--hero { height: clamp(220px, 26vw, 420px); }
.media--lead { height: clamp(240px, 34vw, 520px); }
.media--guide { height: clamp(220px, 30vw, 460px); }
.media--body { height: clamp(200px, 26vw, 400px); }
.media--card { height: clamp(180px, 17vw, 240px); }
.media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.media__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12, 30, 48, .18), rgba(12, 30, 48, .42)); pointer-events: none; }
.media__placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: flex-end;
    padding: 16px var(--gw-gutter);
    background: repeating-linear-gradient(135deg, rgba(236, 241, 247, .07) 0 1px, transparent 1px 16px);
    color: var(--gw-paper);
}
.media__placeholder span { max-width: 70ch; font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; opacity: .6; }
.media-caption {
    padding: 12px var(--gw-gutter);
    border-bottom: 1px solid var(--gw-ink);
    font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; opacity: .55;
}

/* ---------- Pasek z hasłami i ornament ---------- */

.ticker { overflow: hidden; background: var(--gw-ink); color: var(--gw-paper); border-bottom: 1px solid var(--gw-ink); }
.ticker__track {
    display: flex; width: max-content;
    padding: 11px 0;
    white-space: nowrap;
    font-family: var(--gw-font-mono); font-size: 13px; letter-spacing: .20em; text-transform: uppercase;
    animation: gw-tick 34s linear infinite;
}
.ticker__run { display: flex; }
.ticker__run span { padding: 0 26px; }
@keyframes gw-tick { to { transform: translateX(-50%); } }

.band-arc {
    height: 120px;
    border-bottom: 1px solid var(--gw-ink);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Crect width='120' height='120' fill='none' stroke='%23122C45' stroke-width='1'/%3E%3Cpath d='M0 0 A120 120 0 0 1 120 120' fill='none' stroke='%23122C45' stroke-width='1'/%3E%3Cpath d='M120 0 A120 120 0 0 0 0 120' fill='none' stroke='%23122C45' stroke-width='1'/%3E%3C/svg%3E") repeat-x;
    background-size: 120px 120px;
}

/* ---------- Formularze ---------- */

.quick {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
    gap: clamp(20px, 2.5vw, 40px);
    align-items: end;
    margin-top: 26px;
}
.quick--compact { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: clamp(18px, 2.4vw, 36px); margin-top: 0; }

.stack { display: flex; flex-direction: column; gap: 12px; }
.stack--tight { gap: 10px; }
.stack--loose { gap: 14px; }

.field {
    width: 100%;
    padding: 16px;
    border: 1px solid var(--gw-ink);
    border-radius: 0;
    background: var(--gw-paper);
    color: var(--gw-ink);
    font-family: var(--gw-font-mono);
    font-size: 13px;
    line-height: 1.6;
    resize: vertical;
}
.field::placeholder { color: var(--gw-ink); opacity: .45; }
.field:focus-visible { outline: 2px solid var(--gw-ink); outline-offset: 0; }
.field[aria-invalid="true"] { border-width: 2px; }

.field-error {
    margin: 0;
    font-family: var(--gw-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--risk-scam);
}
.field-error--spaced { margin-top: 12px; }

.choices-group { display: flex; flex-direction: column; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.choices-group legend { float: left; width: 100%; margin-bottom: 10px; padding: 0; }
.choices { display: flex; flex-wrap: wrap; gap: 8px; clear: both; }
.choice { position: relative; }
.choice input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.choice span {
    display: inline-block;
    padding: 10px 14px;
    border: 1px solid var(--gw-ink);
    font-family: var(--gw-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
    transition: background-color .2s, color .2s;
}
.choice input:checked + span { background: var(--gw-ink); color: var(--gw-paper); }
.choice input:focus-visible + span { outline: 2px solid var(--gw-ink); outline-offset: 3px; }

.notice { padding: 18px; border: 1px solid var(--gw-ink); line-height: 1.55; }

/* ---------- Siatka komórek (linie 1px) ---------- */

.cells { overflow: hidden; border-bottom: 1px solid var(--gw-ink); }
.cells__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    width: calc(100% + 1px);
    margin-bottom: -1px;
}
.cells__grid--wide { grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); }

.cell, .card { border-right: 1px solid var(--gw-ink); border-bottom: 1px solid var(--gw-ink); }
.cell {
    display: flex; flex-direction: column; gap: 22px;
    min-height: 280px;
    padding: clamp(24px, 2.6vw, 44px);
}
.cell p, .card__body p { max-width: 46ch; line-height: 1.55; }
.card { display: flex; flex-direction: column; }
.card__body { display: flex; flex-direction: column; flex: 1; gap: 18px; padding: clamp(22px, 2.4vw, 38px); }
.cell__more {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--gw-ink);
    font-family: var(--gw-font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
    transition: color .15s;
}
.cell:hover .cell__more, .card:hover .cell__more { color: var(--gw-accent); }

/* ---------- Statystyki ---------- */

.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: clamp(20px, 2.5vw, 40px); }
.stat { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid var(--gw-rule-inverse); }
.stat__value { font-family: var(--gw-font-display); font-weight: 900; font-size: clamp(26px, 3.2vw, 46px); line-height: .9; letter-spacing: -0.02em; }
.stat__text { line-height: 1.5; opacity: .85; }
.stat__source { margin-top: auto; font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; opacity: .6; }

/* ---------- Dwie kolumny: formularz + objaśnienie ---------- */

.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--gw-ink); }
.split__col { display: flex; flex-direction: column; gap: 16px; padding: clamp(24px, 3vw, 44px); }
.split__col:first-child { border-right: 1px solid var(--gw-ink); }
.split__col--loose { gap: 18px; }
.split__col--result { gap: 20px; }

.ruled { padding-top: 16px; border-top: 1px solid var(--gw-ink); line-height: 1.55; }
.ruled--sm { padding-top: 12px; }
.ruled--soft { opacity: .8; }

.numbered { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; padding-top: 12px; border-top: 1px solid var(--gw-ink); line-height: 1.55; }
.numbered__n { font-family: var(--gw-font-mono); font-size: 11px; line-height: 1.9; letter-spacing: .12em; opacity: .5; }

.verdict { display: flex; flex-direction: column; gap: 12px; padding-bottom: 20px; border-bottom: 1px solid var(--gw-ink); }
.verdict__label { font-family: var(--gw-font-display); font-weight: 900; font-size: clamp(24px, 2.8vw, 40px); line-height: .95; letter-spacing: -0.02em; text-transform: uppercase; }
.verdict__note { line-height: 1.55; opacity: .8; }
.verdict--scam .verdict__label { color: var(--risk-scam); }
.verdict--caution .verdict__label { color: var(--risk-caution); }
.verdict--clear .verdict__label { color: var(--risk-clear); }

.urgent {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
    padding: clamp(28px, 3.5vw, 52px) var(--gw-gutter);
}
.urgent__text { font-family: var(--gw-font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }

/* ---------- Artykuł ---------- */

.meta-row {
    display: flex; flex-wrap: wrap; gap: 20px;
    margin-top: clamp(24px, 3vw, 38px);
    padding-top: 14px;
    border-top: 1px solid var(--gw-ink);
    font-family: var(--gw-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .6;
}

.article-wrap { padding: clamp(38px, 5.5vw, 100px) var(--gw-gutter); border-bottom: 1px solid var(--gw-ink); }
.article { max-width: 66ch; margin: 0 auto; }
.article p, .article li { font-size: clamp(17px, 1.2vw, 20px); line-height: 1.75; text-wrap: pretty; }
.article h2 {
    margin: clamp(30px, 3.2vw, 46px) 0 14px;
    font-family: var(--gw-font-body);
    font-weight: 600;
    font-size: clamp(21px, 1.9vw, 27px);
    line-height: 1.3;
    letter-spacing: -0.01em;
    text-transform: none;
}
.article h2.h2--roomy { margin-top: clamp(32px, 3.4vw, 50px); }
.article h2.h2--tight { margin-bottom: 8px; }
.article .pullquote + h2 { margin-top: 0; margin-bottom: 18px; }
.article .p--spaced { margin-bottom: 14px; }
.article .hint { margin-bottom: 22px; opacity: .8; }
.article .aside { font-size: clamp(15px, 1.05vw, 17px); line-height: 1.7; opacity: .75; }
.article .closing { margin-top: clamp(30px, 3.4vw, 46px); padding-top: 20px; border-top: 1px solid var(--gw-ink); }

.summary { margin-bottom: clamp(30px, 3.6vw, 48px); padding-top: 18px; border-top: 1px solid var(--gw-ink); }
.article .summary p { margin-top: 12px; font-size: clamp(15px, 1.05vw, 17px); line-height: 1.6; opacity: .85; }

.pullquote {
    max-width: 32ch;
    margin: clamp(38px, 4.4vw, 64px) 0;
    font-family: var(--gw-font-body);
    font-weight: 600;
    font-size: clamp(23px, 2.3vw, 33px);
    line-height: 1.28;
    letter-spacing: -0.01em;
}

.marked li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.marked--dash li { gap: 14px; margin-bottom: 14px; }
.marked__mark { font-family: var(--gw-font-mono); font-size: 12px; line-height: 1.9; opacity: .5; }

.contact { margin-bottom: 20px; }
.contact__name { margin-bottom: 6px; font-family: var(--gw-font-mono); font-weight: 400; font-size: 12px; line-height: 1.5; letter-spacing: .14em; }

.on-ink .article h2 { margin: 14px 0 20px; font-size: clamp(23px, 2.1vw, 30px); line-height: 1.25; }
.article .source {
    margin-top: 24px; padding-top: 14px;
    border-top: 1px solid var(--gw-rule-inverse);
    font-family: var(--gw-font-mono); font-size: 10px; line-height: 1.6; letter-spacing: .18em; text-transform: uppercase; opacity: .6;
}

/* ---------- Stopka ---------- */

.site-footer { background: var(--gw-ink); color: var(--gw-paper); }
.site-footer :focus-visible { outline-color: var(--gw-paper); }
.footer-wordmark { padding: clamp(6px, 1vw, 14px) var(--gw-gutter); border-bottom: 1px solid var(--gw-rule-inverse); }
.footer-wordmark svg { display: block; width: 100%; height: auto; overflow: visible; }
.footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--gw-rule-inverse); }
.footer-grid > * { padding: clamp(28px, 4vw, 60px); border-right: 1px solid var(--gw-rule-inverse); }
.footer-grid > :last-child { border-right: 0; }
.footer-title { font-size: clamp(26px, 3.4vw, 48px); line-height: .9; }
.footer-lead { max-width: 46ch; margin-top: 20px; opacity: .8; }
.footer-col {
    display: flex; flex-direction: column; gap: 12px;
    font-family: var(--gw-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
}
.footer-col a:not(.btn):hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-cap { margin-bottom: 6px; font-size: 11px; letter-spacing: .20em; opacity: .6; }
.footer-plain { opacity: .8; text-transform: none; letter-spacing: .04em; }
.footer-cta { margin-top: 8px; border-color: var(--gw-paper); color: var(--gw-paper); }
.footer-cta:hover { background: var(--gw-paper); color: var(--gw-ink); }
.footer-bottom {
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px;
    padding: 16px var(--gw-gutter);
    font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; opacity: .65;
}

/* ---------- Wejście sekcji przy przewijaniu (tylko gdy przeglądarka to wspiera) ---------- */

@supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
        main > section, main > .cells, main > .split {
            animation: gw-rise linear both;
            animation-timeline: view();
            animation-range: entry 4% entry 42%;
        }
    }
}
@keyframes gw-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .ticker__track { animation: none; }
}

/* ---------- 1080px: nawigacja zamienia się w kurtynę ---------- */

@media (max-width: 1080px) {
    .site-nav { display: none; }

    .navcheck { display: block; position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
    .burger {
        position: relative; z-index: 65;
        display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
        width: 46px; height: 40px;
        cursor: pointer;
    }
    .burger span {
        display: block; width: 28px; height: 2px;
        background: var(--gw-ink);
        transition: transform .4s var(--gw-ease-curtain), opacity .25s, background-color .3s;
    }
    .navcheck:focus-visible ~ .burger { outline: 2px solid var(--gw-ink); outline-offset: 3px; }
    .navcheck:checked:focus-visible ~ .burger { outline-color: var(--gw-paper); }
    .navcheck:checked ~ .burger span { background: var(--gw-paper); }
    .navcheck:checked ~ .burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .navcheck:checked ~ .burger span:nth-child(2) { opacity: 0; }
    .navcheck:checked ~ .burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

    .mob-overlay {
        position: fixed; inset: 0; z-index: 64;
        display: flex; flex-direction: column; justify-content: center;
        overflow-y: auto;
        padding: 96px clamp(24px, 7vw, 48px) 48px;
        background: var(--gw-ink); color: var(--gw-paper);
        transform: translateY(-101%);
        visibility: hidden;
        transition: transform .55s var(--gw-ease-curtain), visibility 0s linear .55s;
    }
    .navcheck:checked ~ .mob-overlay { transform: none; visibility: visible; transition: transform .55s var(--gw-ease-curtain); }
    .mob-cap { margin-bottom: 24px; font-family: var(--gw-font-mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; opacity: .5; }
    .mob-overlay a {
        padding: 11px 0;
        border-bottom: 1px solid var(--gw-rule-overlay);
        font-family: var(--gw-font-display); font-weight: 900;
        font-size: clamp(30px, 9vw, 46px); line-height: 1.06; letter-spacing: -0.02em; text-transform: uppercase;
        opacity: 0; transform: translateY(24px);
    }
    .mob-overlay a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
    .mob-overlay a:last-child { border-bottom: 0; }
    .mob-overlay .mob-cta { margin-top: 20px; font-size: clamp(20px, 6vw, 30px); }
    .navcheck:checked ~ .mob-overlay a { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s var(--gw-ease-lift); }
    .navcheck:checked ~ .mob-overlay a:nth-of-type(1) { transition-delay: .14s; }
    .navcheck:checked ~ .mob-overlay a:nth-of-type(2) { transition-delay: .20s; }
    .navcheck:checked ~ .mob-overlay a:nth-of-type(3) { transition-delay: .26s; }
    .navcheck:checked ~ .mob-overlay a:nth-of-type(4) { transition-delay: .32s; }
    .navcheck:checked ~ .mob-overlay a:nth-of-type(5) { transition-delay: .38s; }
    .navcheck:checked ~ .mob-overlay a:nth-of-type(6) { transition-delay: .44s; }
    body:has(.navcheck:checked) { overflow: hidden; }
}

/* ---------- 860px: siatki przechodzą w jedną kolumnę ---------- */

@media (max-width: 860px) {
    .split, .footer-grid { grid-template-columns: 1fr; }
    .split__col:first-child { border-right: 0; border-bottom: 1px solid var(--gw-ink); }
    .footer-grid > * { border-right: 0; border-bottom: 1px solid var(--gw-rule-inverse); }
    .footer-grid > :last-child { border-bottom: 0; }
}

/* ---------- 480px: mniejsze stopnie pisma, przyciski na całą szerokość ---------- */

@media (max-width: 480px) {
    .brand__org { display: none; }
    .actions > .btn { flex: 1 1 100%; }
    .band-arc { height: 56px; background-size: 56px 56px; }
    .cell { min-height: auto; }
    .footer-grid > * { padding: 24px 16px; }
}

/* ==========================================================================
   Warstwa treści SEO — komponenty dodane pod ruch organiczny.
   Ten sam system (papier, granat, linie 1px), ale artykuły są luźniejsze
   i mniej wersalikowe, bo mają być czytane, a nie oglądane.
   ========================================================================== */

/* ---------- Okruszki ---------- */

.crumbs { margin-bottom: 22px; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; opacity: .6; }
.crumbs li + li::before { content: "/"; margin-right: 8px; opacity: .5; }
.crumbs a:hover { color: var(--gw-accent); }

/* ---------- Krótka odpowiedź (pod wynik rozszerzony) ---------- */

.answer { padding: clamp(24px, 3vw, 40px) var(--gw-gutter); border-bottom: 1px solid var(--gw-ink); background: rgba(18, 44, 69, .04); }
.answer .label { margin-bottom: 12px; }
.answer__text { max-width: 68ch; font-size: clamp(18px, 1.5vw, 22px); line-height: 1.6; }
.answer--urgent { border-left: 4px solid var(--risk-scam); }

/* ---------- Blok narzędzia (docelowo analizator) ---------- */

.tool { padding: clamp(28px, 3.4vw, 52px) var(--gw-gutter); border-bottom: 1px solid var(--gw-ink); background: var(--gw-ink); color: var(--gw-paper); }
.tool__head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; }
.tool__title { max-width: 22ch; font-size: clamp(22px, 2.4vw, 34px); }
.tool__lead { max-width: 62ch; margin-top: 14px; line-height: 1.6; opacity: .85; }
.tool__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.tool__form { display: flex; flex-direction: column; gap: 12px; max-width: 70ch; margin-top: 18px; }
.tool__form .field { background: transparent; color: var(--gw-paper); border-color: var(--gw-paper); }
.tool__form .field::placeholder { color: var(--gw-paper); opacity: .45; }
.tool__form .btn { align-self: flex-start; }
.tool .label { opacity: .7; }
.tool--secondary { background: transparent; color: var(--gw-ink); }
.tool--secondary .field { color: var(--gw-ink); border-color: var(--gw-ink); }
.tool--secondary .field::placeholder { color: var(--gw-ink); }

.badge {
    padding: 5px 10px;
    border: 1px solid currentColor;
    font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
}

/* Podgląd wyłączonego narzędzia na /sprawdz */
.preview { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(24px, 3vw, 48px); align-items: start; }
.preview__frame { display: flex; flex-direction: column; gap: 14px; padding: clamp(20px, 2.4vw, 32px); border: 1px solid var(--gw-ink); opacity: .55; }
.preview__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.preview__field { min-height: 130px; padding: 16px; border: 1px dashed var(--gw-ink); font-family: var(--gw-font-mono); font-size: 13px; line-height: 1.6; opacity: .6; }
.preview__button { align-self: flex-start; padding: 15px 24px; border: 1px solid var(--gw-ink); background: var(--gw-ink); color: var(--gw-paper); font-family: var(--gw-font-mono); font-size: 12px; letter-spacing: .10em; text-transform: uppercase; }
.preview__side { display: flex; flex-direction: column; gap: 16px; }

/* ---------- Spis treści ---------- */

.toc { margin-bottom: clamp(28px, 3vw, 44px); padding: 20px 22px; border: 1px solid var(--gw-ink); }
.toc .label { margin-bottom: 12px; }
.toc ol { display: flex; flex-direction: column; gap: 8px; counter-reset: toc; }
.toc li { counter-increment: toc; font-size: 17px; }
.toc li::before { content: counter(toc, decimal-leading-zero) " "; font-family: var(--gw-font-mono); font-size: 11px; opacity: .45; }
.toc a { border-bottom: 1px solid transparent; }
.toc a:hover { color: var(--gw-accent); border-bottom-color: currentColor; }

/* ---------- Artykuł: czytelność ---------- */

.article p { margin-bottom: 20px; }
.article p:last-child { margin-bottom: 0; }
.article__intro { font-size: clamp(18px, 1.4vw, 21px); line-height: 1.7; }
.article h2 {
    margin: clamp(36px, 3.6vw, 54px) 0 16px;
    font-size: clamp(23px, 2.1vw, 30px);
    line-height: 1.25;
}
.article h2:first-child { margin-top: 0; }
.article .hint { margin-bottom: 20px; font-size: 17px; opacity: .75; }

.callout {
    margin-top: clamp(30px, 3.4vw, 44px);
    padding: 20px 22px;
    border: 1px solid var(--gw-ink);
    border-left-width: 4px;
    font-size: 17px;
    line-height: 1.6;
}
.callout a { border-bottom: 1px solid currentColor; }
.callout a:hover { color: var(--gw-accent); }

/* Sygnały ostrzegawcze */
.flags { display: flex; flex-direction: column; gap: 14px; margin-bottom: 8px; }
.flags li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; padding-bottom: 14px; border-bottom: 1px solid rgba(18, 44, 69, .18); }
.flags li:last-child { border-bottom: 0; }
.flags__mark {
    display: grid; place-items: center;
    width: 26px; height: 26px;
    border: 1px solid var(--risk-scam);
    color: var(--risk-scam);
    font-family: var(--gw-font-mono); font-size: 13px; line-height: 1;
}

/* Numerowane sygnały na stronie-filarze */
.signals { display: flex; flex-direction: column; gap: 18px; }
.signals li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; padding-bottom: 18px; border-bottom: 1px solid rgba(18, 44, 69, .18); }
.signals li:last-child { border-bottom: 0; }
.signals__n { font-family: var(--gw-font-display); font-weight: 900; font-size: 22px; line-height: 1.2; opacity: .35; }

/* Kroki „co zrobić teraz” */
.steps { display: flex; flex-direction: column; gap: 16px; }
.steps li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: start; }
.steps__n { font-family: var(--gw-font-mono); font-size: 12px; line-height: 1.9; letter-spacing: .1em; opacity: .5; }
.steps__text { font-size: clamp(17px, 1.2vw, 19px); line-height: 1.7; }
.steps--compact li { gap: 14px; }
.steps--compact .steps__text { font-size: 17px; line-height: 1.6; }

/* Nawyki na stronie profilaktyki */
.habit { margin-bottom: clamp(28px, 3vw, 40px); }
.habit h2 { display: flex; align-items: baseline; gap: 14px; }
.habit__n { font-family: var(--gw-font-mono); font-size: 13px; letter-spacing: .12em; opacity: .45; }

/* ---------- FAQ ---------- */

.faq { display: flex; flex-direction: column; margin-top: 26px; border-top: 1px solid var(--gw-ink); max-width: 82ch; }
.faq__item { border-bottom: 1px solid var(--gw-ink); }
.faq__item summary {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
    padding: 20px 0;
    cursor: pointer;
    list-style: none;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__question { font-family: var(--gw-font-body); font-weight: 600; font-size: clamp(18px, 1.4vw, 21px); line-height: 1.4; }
.faq__marker { position: relative; flex: 0 0 auto; width: 16px; height: 16px; margin-top: 6px; }
.faq__marker::before, .faq__marker::after { content: ""; position: absolute; background: var(--gw-ink); transition: transform .2s; }
.faq__marker::before { top: 7px; left: 0; width: 16px; height: 1px; }
.faq__marker::after { top: 0; left: 7px; width: 1px; height: 16px; }
.faq__item[open] .faq__marker::after { transform: scaleY(0); }
.faq__answer { padding: 0 0 24px; }
.faq__answer p { max-width: 72ch; font-size: 17px; line-height: 1.7; opacity: .85; }
.faq__item summary:hover .faq__question { color: var(--gw-accent); }

/* ---------- Źródła i autorstwo (E-E-A-T) ---------- */

.sources { padding: clamp(28px, 3.4vw, 48px) var(--gw-gutter); border-bottom: 1px solid var(--gw-ink); background: rgba(18, 44, 69, .04); }
.sources__inner { max-width: 74ch; }
.sources .label { margin-bottom: 14px; }
.sources__author { font-size: 17px; line-height: 1.6; }
.sources__list { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.sources__list li { font-size: 16px; line-height: 1.5; }
.sources__list a { border-bottom: 1px solid rgba(18, 44, 69, .35); }
.sources__list a:hover { color: var(--gw-accent); }
.sources__note { margin-top: 16px; font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; opacity: .55; }

/* ---------- Kontakty ---------- */

.contacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 1px; margin-top: 28px; background: var(--gw-ink); border: 1px solid var(--gw-ink); }
.contact-card { display: flex; flex-direction: column; gap: 10px; padding: clamp(20px, 2.2vw, 30px); background: var(--gw-paper); }
.contact-card__name { font-family: var(--gw-font-mono); font-weight: 400; font-size: 13px; line-height: 1.4; letter-spacing: .12em; }
.contact-card__detail { font-family: var(--gw-font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; opacity: .55; }
.contact-card__text { font-size: 16px; line-height: 1.6; }
.contact-card .cell__more { border-top: 0; padding-top: 6px; }

/* ---------- Warianty sytuacji (strona ratunkowa) ---------- */

.variant { scroll-margin-top: 80px; }
.variant__inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(24px, 3vw, 56px); align-items: start; }
.variant__summary { margin-top: 14px; max-width: 40ch; opacity: .75; }
.variant__urgency { margin-top: 14px; max-width: 40ch; font-family: var(--gw-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--risk-scam); line-height: 1.6; }

/* ---------- Kafelki powiązanych treści ---------- */

.cards-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 1px; margin-top: 24px; background: var(--gw-ink); border: 1px solid var(--gw-ink); }
.card-mini { display: flex; flex-direction: column; gap: 12px; min-height: 160px; padding: clamp(20px, 2.2vw, 28px); background: var(--gw-paper); }
.card-mini__title { font-family: var(--gw-font-display); font-weight: 900; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.05; letter-spacing: -0.02em; text-transform: uppercase; }
.card-mini:hover .cell__more { color: var(--gw-accent); }
.card-mini .cell__more { margin-top: auto; }

/* ---------- Drobne ---------- */

.cells--flush { border-bottom: 0; margin-top: 28px; }
.campaigns__title { font-family: var(--gw-font-body); font-weight: 600; font-size: clamp(22px, 2vw, 28px); line-height: 1.25; text-transform: none; letter-spacing: -0.01em; margin-bottom: 20px; }
.split-text { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 56px); align-items: start; }
.split-text .measure + .measure { margin-top: 18px; }
.on-ink .flags li, .on-ink .signals li { border-bottom-color: var(--gw-rule-inverse); }

@media (max-width: 860px) {
    .preview, .variant__inner, .split-text { grid-template-columns: 1fr; }
    .answer__text { font-size: 18px; }
    .toc { padding: 16px 18px; }
}

/* ---------- Ilustracje (rysunki kreską w stylu GoodWay) ---------- */

.media--vector { height: clamp(150px, 19vw, 260px); }
.media--vector img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: clamp(14px, 2vw, 28px); }

/* ---------- Hero z rysunkiem obok tekstu ---------- */

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 4vw, 72px); align-items: center; }
.hero-grid__art { display: flex; justify-content: center; }

.line-art { width: 100%; color: var(--gw-ink); }
.line-art svg { display: block; width: 100%; height: auto; }
.on-ink .line-art { color: var(--gw-paper); }

.hero-grid__art .line-art { max-width: clamp(260px, 34vw, 420px); opacity: .9; }

/* Nagłówek sekcji w dwóch kolumnach — tekst nie zostaje sam na całej szerokości. */
.section-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 64px); align-items: end; }
.section-head__art { display: flex; justify-content: flex-end; align-items: flex-end; }
.section-head__art .line-art { max-width: clamp(200px, 22vw, 320px); opacity: .55; }
.section-head .intro { margin-top: 0; }

@media (max-width: 860px) {
    .hero-grid, .section-head { grid-template-columns: 1fr; }
    .hero-grid__art { justify-content: flex-start; }
    .hero-grid__art .line-art { max-width: 240px; }
    .section-head__art { display: none; }
}

/* ==========================================================================
   Szerokie ekrany — wspólna kolumna treści.
   Pasma (pasek z nazwami, ciemne sekcje, ornament, grafiki) nadal sięgają
   krawędzi ekranu, ale treść w środku nie rozjeżdża się na całą szerokość:
   trzyma się kolumny --gw-shell i wspólnej lewej krawędzi.
   ========================================================================== */

:root {
    --gw-shell: 1440px;
    --gw-pad-x: max(var(--gw-gutter), calc((100% - var(--gw-shell)) / 2));
}

.site-header__inner,
.section,
.section--hero,
.section--head,
.section--article-head,
.section--compact,
.section--tight,
.answer,
.tool,
.sources,
.article-wrap,
.media-caption,
.urgent,
.footer-wordmark,
.footer-bottom {
    padding-inline: var(--gw-pad-x);
}

/* Siatki komórek: wsunięte razem z treścią, więc domykamy je linią z obu stron. */
.cells,
.split,
.footer-grid {
    padding-inline: var(--gw-pad-x);
}
.cells__grid { width: 100%; border-left: 1px solid var(--gw-rule); }
.split { border-inline: 1px solid var(--gw-ink); }
.footer-grid { border-inline: 1px solid var(--gw-rule-inverse); }
.footer-grid > :last-child { border-right: 0; }

/* ==========================================================================
   Skala typografii — ta strona jest do czytania.
   W odróżnieniu od strony fundacji treść jest tu najważniejsza, więc:
   nagłówki schodzą z ekranu (mniejsze maksima, luźniejszy interlinia),
   tekst rośnie i dostaje więcej światła, a przygaszenia przezroczystością
   są słabsze, bo obniżały kontrast w akapitach do czytania.
   ========================================================================== */

h1, h2, h3 { letter-spacing: -0.015em; }

/* ---------- Nagłówki: mniej ekranu ---------- */

.title-hero { max-width: 24ch; font-size: clamp(32px, 4.1vw, 62px); line-height: .98; }
.title-page { max-width: 26ch; font-size: clamp(28px, 3.3vw, 50px); line-height: 1.0; }
.title-section { max-width: 28ch; font-size: clamp(24px, 2.5vw, 36px); line-height: 1.05; }
.title-section--wide { max-width: 30ch; }
.title-card { font-size: clamp(21px, 1.9vw, 28px); line-height: 1.08; }
.title-card--sm { font-size: clamp(20px, 1.7vw, 25px); line-height: 1.1; }
.footer-title { font-size: clamp(22px, 2.3vw, 34px); line-height: 1.05; }
.stat__value { font-size: clamp(24px, 2.5vw, 36px); line-height: 1.0; }
.verdict__label { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.05; }
.tool__title { max-width: 28ch; font-size: clamp(20px, 1.8vw, 27px); line-height: 1.15; }
.card-mini__title { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.12; }
.campaigns__title { font-size: clamp(20px, 1.7vw, 25px); }
.article h2 { margin: clamp(32px, 3vw, 46px) 0 14px; font-size: clamp(21px, 1.55vw, 26px); line-height: 1.32; }
.pullquote { max-width: 36ch; font-size: clamp(21px, 1.8vw, 27px); line-height: 1.35; }
.signals__n { font-size: 19px; }

/* ---------- Treść: większa i czytelniejsza ---------- */

.lead { max-width: 60ch; font-size: clamp(18px, 1.2vw, 21px); line-height: 1.62; }
.lead--article { max-width: 58ch; font-size: clamp(19px, 1.3vw, 23px); line-height: 1.58; }
.article__intro { font-size: clamp(19px, 1.2vw, 21px); line-height: 1.78; }
.article p, .article li { font-size: clamp(18px, 1.05vw, 20px); line-height: 1.8; }
.article .hint { font-size: clamp(17px, 1vw, 19px); line-height: 1.7; opacity: .85; }
.article .aside { font-size: clamp(17px, 1vw, 18px); line-height: 1.75; opacity: .85; }
.answer__text { max-width: 70ch; font-size: clamp(18px, 1.25vw, 21px); line-height: 1.68; }
.steps__text { font-size: clamp(18px, 1.05vw, 20px); line-height: 1.78; }
.steps--compact .steps__text { font-size: 17px; line-height: 1.65; }
.toc li { font-size: 18px; }
.callout { font-size: clamp(17px, 1vw, 19px); line-height: 1.65; }
.cell p, .card__body p { max-width: 48ch; font-size: 18px; line-height: 1.62; }
.intro { max-width: 60ch; font-size: clamp(18px, 1.1vw, 20px); line-height: 1.62; opacity: .85; }
.hero-note, .note { font-size: 18px; line-height: 1.62; opacity: .85; }
.tool__lead { font-size: 18px; line-height: 1.68; opacity: .92; }
.ruled { line-height: 1.65; }
.variant__summary { font-size: 18px; line-height: 1.6; opacity: .85; }
.stat__text { line-height: 1.55; opacity: .92; }
.footer-lead { font-size: 18px; line-height: 1.62; opacity: .9; }

/* ---------- FAQ i źródła ---------- */

.faq__question { font-size: clamp(18px, 1.15vw, 20px); line-height: 1.45; }
.faq__answer p { max-width: 74ch; font-size: 18px; line-height: 1.78; opacity: 1; }
.sources__author { font-size: 18px; line-height: 1.65; }
.sources__list li { font-size: 17px; line-height: 1.6; }
.contact-card__text { font-size: 17px; line-height: 1.65; }

/* Przygaszenia: ciemniejsze niż w systemie fundacji, bo tu się czyta. */
.intro--ink { opacity: .9; }
.ruled--soft { opacity: .88; }
.article .closing { font-size: clamp(18px, 1.05vw, 20px); line-height: 1.78; }

@media (max-width: 480px) {
    .title-hero { font-size: 30px; }
    .title-page { font-size: 27px; }
    .article p, .article li, .steps__text { font-size: 17.5px; line-height: 1.72; }
}

/* Rozmiary treści na sztywno: kolumna tekstu ma stałą szerokość (66ch),
   więc skalowanie pismem od szerokości okna tylko zaniżało stopień. */

.lead { font-size: 20px; }
.lead--article { font-size: 21px; }
.article__intro { font-size: 21px; }
.article p, .article li { font-size: 19px; }
.article .hint { font-size: 18px; }
.article .aside { font-size: 18px; }
.article .closing { font-size: 19px; }
.answer__text { font-size: 20px; }
.steps__text { font-size: 19px; }
.faq__question { font-size: 20px; }
.faq__answer p { font-size: 19px; }
.callout { font-size: 18px; }

@media (min-width: 1200px) {
    .lead { font-size: 21px; }
    .lead--article { font-size: 22px; }
    .article__intro { font-size: 22px; }
    .article p, .article li, .article .closing, .steps__text { font-size: 20px; }
    .answer__text { font-size: 21px; }
    .faq__answer p { font-size: 20px; }
}

/* Etykiety monospace wewnątrz artykułu: reguła .article p miała wyższą
   specyficzność niż .label/.eyebrow i podnosiła je do stopnia tekstu. */
.article .label,
.article .eyebrow { font-size: 11px; line-height: 1.5; }
.article .caption { font-size: 10px; line-height: 1.5; }
