/* =========================================================================
   Zwinnie - Fundament  (02-base.css)
   -------------------------------------------------------------------------
   Elementy globalne: html/body, nagłówki, rytm pasm sekcji, płaskość projektu.
   Nic tu nie powinno dotyczyć konkretnego komponentu - jeśli reguła zna nazwę
   komponentu, jej miejsce jest w module 04-09.

   Stylowanie wyłącznie tokenami --zwinnie-* (01-design-tokens.css).
   Inwentarz klas: docs/CSS_INVENTORY.md · podgląd na żywo: /styleguide
   ========================================================================= */

/* Przepięcie tokenów odziedziczonych (Pico/quark2) na nasze. Bez tego część
   komponentów - m.in. przyciski i okno zgód - jedzie na tokeny Pico, które
   w theme.css wskazują na Cal Sans i Inter. Po odpięciu tych krojów od
   ładowania spadałyby na krój systemowy, czyli wyglądałyby inaczej na każdym
   systemie.

   SELEKTOR JEST POTRÓJNY CELOWO. theme.css deklaruje te tokeny w bloku
   `:root, :root[data-theme="light"]`, czyli ze specyficznością (0,2,0).
   Zwykłe `:root` (0,1,0) przegrywa z nim NIEZALEŻNIE od kolejności plików -
   późniejsze wczytanie nic nie daje, bo rozstrzyga specyficzność, nie kolejność.
   Objaw był mylący: strona główna wyglądała poprawnie, bo jej komponenty mają
   własne `font-family`, a przeciek widać było dopiero tam, gdzie element
   dziedziczy token Pico (przycisk na /media-kit, okno zgód). */
:root,
:root[data-theme="light"],
:root[data-theme="dark"] {
    --pico-font-family-display: var(--zwinnie-font-display);
    --pico-font-family-sans-serif: var(--zwinnie-font-sans);
    --pico-font-family: var(--zwinnie-font-sans);
    --pico-font-family-monospace: var(--zwinnie-font-mono);
    --q2-bg: var(--zwinnie-bg);
    --q2-surface: var(--zwinnie-surface);
    --q2-text: var(--zwinnie-text);
    --q2-muted: var(--zwinnie-text-muted);
    --q2-border: var(--zwinnie-border);
    --q2-accent: var(--zwinnie-accent);
    --q2-link: var(--zwinnie-accent);
}

/* Zebra sekcji strony głównej.
   Hero jest poza zebrą (renderuje się w bloku `hero`, nad <main id="start">),
   więc rytm liczy się od pierwszej sekcji w <main>. Liczone przez :nth-of-type,
   a nie regułami per klasa - dołożenie sekcji przelicza zebrę samo. Divy
   .module-anchor nie zaburzają numeracji, bo :nth-of-type liczy tylko <section>.
   Scope `body.modular` jest konieczny: zwykłe strony (np. polityka prywatności)
   też mają <main id="start"> z sekcją w środku i inaczej dostałyby tło alt. */
/* Projekt editorial jest PŁASKI: zero promieni i zero cieni na komponentach.
   Reguła jest globalna i celowo siedzi w fundamencie, nie przy komponentach -
   inaczej każdy nowy komponent musiałby pamiętać, żeby się spłaszczyć.

   `!important` zostaje: blades.min.css i theme.css nadają promienie
   selektorami o wyższej specyficzności, a to jest świadome, globalne
   zastrzeżenie projektu, nie łatka na kolejność plików.

   Tokeny --zwinnie-radius-* zostają zdefiniowane dla komponentów spoza
   strony ofertowej (admin, ewentualny blog). */
.column, .step, .price-card, .faq-item, .objection-row, .about-point,
.about-point-icon, .hero-col-cal, .kontakt-form-card,
.btn, button, input, textarea, select {
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Blades (blades.min.css) ustawia `hyphens: auto` na <body>, więc przeglądarka
   dzieli wyrazy myślnikiem. W tekście ciągłym to bywa pożądane, ale w nagłówku
   wygląda jak błąd składu - hasło hero łamało się jako "dzia-łała zwinnie".
   Nagłówki mają się łamać MIĘDZY wyrazami albo wcale. */
h1, h2, h3, h4, h5, h6,
.hero-title,
.section-head h2 {
    hyphens: manual;
    -webkit-hyphens: manual;
}

/* Nagłówki wieloliniowe: rozkładaj wyrazy równo między wiersze zamiast
   zostawiać sierotę w ostatnim. */
h1, h2,
.hero-title {
    text-wrap: balance;
}

body.modular main#start > section:nth-of-type(odd) {
    background: var(--zwinnie-surface-alt);
}

/* Pico (blades.min.css) nadaje KAŻDEJ <section> `margin-bottom` - między pasmami
   powstaje szczelina w kolorze tła body. Niewidoczna, gdy sąsiad jest jasny, ale
   na styku hero (tint) → obawy (alt) rzuca się w oczy białym paskiem. Pasma
   pełnej szerokości mają stykać się bez przerwy, więc zerujemy margines pionowy. */
body.modular main#start > section, body.modular main#start > section:nth-of-type(odd) {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--zwinnie-rule);
    background: var(--zwinnie-bg);
}

h1, h2, h3, h4, h5, h6 {
    color: var(--zwinnie-ink);
}

html, body {
    font-family: var(--zwinnie-font-display);
    background: var(--zwinnie-bg);
    color: var(--zwinnie-text);
}
