/* REDFORD V6 · base.css (TOR A). Baza strony: płaski papier #F3F3EF (bez tekstury, KOREKTA 2), typografia, siatka, przyciski, dostępność. */
html,:root[data-theme]{background:none;color:var(--ink);scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-text);font-weight:700;font-size:var(--fs-txt);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* refresh.css z produkcji (html[data-theme="light"] i jego body) nadaje tło obu elementom: tło body zakrywało wtedy duże R (z-index -1)
 * i podmieniało --paper. Tło zostaje na body, przenoszone przez przeglądarkę na płótno. */
:root[data-theme] body{background:var(--paper)}
#swup{position:relative;overflow-x:clip}
main{display:block}
.sec{position:relative}
.wrap{padding-inline:var(--m)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}

/* typografia (PLAN-V6: nagłówki 56-104 px, interlinia 1.02, tracking -2%; tekst 18 px; etykiety 13 px +8%) */
.h-xl,.h-88,.h-1,.h-2,.h-3{margin:0;font-family:var(--f-text);font-weight:700;line-height:var(--lh-h);letter-spacing:var(--ls-h)}
.h-xl{font-size:var(--fs-xl)}
.h-88{font-size:var(--fs-88)}
.h-1{font-size:var(--fs-h1)}
.h-2{font-size:var(--fs-h2)}
.h-3{font-size:var(--fs-h3)}
.lead{font-size:var(--fs-lead);line-height:1.2;letter-spacing:-.01em}
.txt{font-size:var(--fs-txt);line-height:1.45}
.lbl{font-size:var(--fs-lbl);line-height:1.2;letter-spacing:var(--ls-lbl);text-transform:uppercase}
.num{font-family:var(--f-num);font-weight:900;font-variant-numeric:tabular-nums;line-height:.86;letter-spacing:-.01em}
/* R9-A (Rafał 20.10: "usuń wszystkie teksty w kursywie i użyj fontu domyślnego"): akcent = ten sam krój, waga i rozmiar co otoczenie,
   bez pochylenia; zostaje tylko kolor (czerwień). em/i/cite na stronie głównej bez kursywy przeglądarki. */
.serif-i{font-family:inherit;font-style:normal;font-weight:inherit;color:var(--red);letter-spacing:inherit}
em,i,cite{font-style:normal}

/* przyciski */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 22px;border:0;border-radius:999px;background:var(--red);color:var(--paper);font:700 var(--fs-sm)/1 var(--f-text);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .3s var(--e-out),color .3s var(--e-out)}
@media (hover:hover) and (pointer:fine){.pill:hover{background:var(--red-hover)}}
.pill--lg{height:56px;padding:0 28px;font-size:17px}
.pill .arr{display:inline-block;transition:transform .45s var(--e-out)}
@media (hover:hover) and (pointer:fine){.pill:hover .arr{transform:translateX(4px)}}
/* pigułki sekcji 02, 08, 09 (.bp): czerwona, --lg 60 px, --dk obrys na ciemnym tle (KOREKTA 4: brakowało stylów) */
.bp{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 24px;border:0;border-radius:999px;background:var(--red);color:var(--paper);font:700 var(--fs-sm)/1 var(--f-text);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .3s var(--e-out),color .3s var(--e-out),box-shadow .3s var(--e-out)}
@media (hover:hover) and (pointer:fine){.bp:hover{background:var(--red-hover)}}
.bp_arr{display:inline-block;transition:transform .45s var(--e-out)}
@media (hover:hover) and (pointer:fine){.bp:hover .bp_arr{transform:translateX(4px)}}
.bp--lg{height:60px;padding:0 30px;font-size:17px}
.bp--dk{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 1px rgba(243,243,239,.38)}
@media (hover:hover) and (pointer:fine){.bp--dk:hover{background:var(--paper);color:var(--ink)}}

/* wejścia (core.js): ukryte do animacji tylko gdy działa GSAP; bez JS, przy reduced-motion i awarii widoczne */
html.rf-anim:not(.rf-reduced) [data-rv]{visibility:hidden}
html.rf-nogsap [data-rv]{visibility:visible!important}
/* elementy wejścia hero: ukryte do RF.intro (bezpiecznik w <head> po 6.5 s) */
html.js:not(.rf-reduced):not(.rf-intro-ok) [data-intro]{visibility:hidden}
/* linie SplitText (maska) */
.ln-mask{padding-bottom:.06em;margin-bottom:-.06em}
/* R24-A (23.10, Rafał: „Projekty i Realizacje są przycięte”): H1 podstron (realizacje, projekty, strony prawne) mają line-height .92,
   więc maska linii (overflow: clip) ucinała ogonki j, y, g, p. Zapas .26em u dołu (i .1em u góry na znaki diakrytyczne)
   z ujemnym marginesem: położenie i wygląd napisu bez zmian. Hero strony głównej ma własną korektę (hero.css, KOREKTA 8A). */
.rl-h1 .ln-mask,.tx-h1 .ln-mask,.pg-h1 .ln-mask{padding-top:.1em;margin-top:-.1em;padding-bottom:.26em;margin-bottom:-.26em}

/* dostępność */
.sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:fixed;left:var(--m);top:12px;z-index:1100;padding:12px 18px;border-radius:999px;background:var(--ink);color:var(--paper);font:700 var(--fs-sm)/1 var(--f-text);text-decoration:none;transform:translateY(-200%)}
.skip:focus{transform:none}
:focus-visible{outline:2px solid currentColor;outline-offset:4px}
::selection{background:var(--red);color:var(--paper)}

/* placeholder brakującej sekcji (wstawia tools/build.py, tylko w trakcie budowy) */
.ph{min-height:70vh;min-height:70svh;display:grid;align-content:center;gap:12px;padding:120px var(--m);color:rgba(14,14,14,.45)}
.ph-t{margin:0;font-size:var(--fs-h2);line-height:var(--lh-h);letter-spacing:var(--ls-h)}

/* awaryjny układ poniżej desktopu: jedna kolumna, bez efektów */
@media (max-width:1023px){
  .grid{grid-template-columns:minmax(0,1fr)}
  .grid>*{grid-column:1/-1!important}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* KOREKTA 9: produkcyjne bundle CSS zawiera stałe "main > section:nth-of-type(N){min-height:XXXpx}" (zapisane po transformacji dawnej strony).
   W v6 kolejność sekcji jest inna, więc te reguły dawały sekcjom puste pasy (np. karuzela realizacji +430 px na telefonie). Zerujemy je dla sekcji strony głównej. */
main > section{min-height:0!important}
