/* ====================================================================
   STYLE STRONY LABSOLUTELY
   Plik czytasz od góry do dołu. Spis:
     1. Kolory i czcionki (jasny i ciemny motyw)  <- tu zmieniasz wygląd
     2. Podstawy: rozmiar tekstu, tło, linki, fokus, nagłówki, odstępy
     3. Nagłówek strony: logo, telefon, menu, przyciski motywu i rozmiaru
     4. Elementy wielokrotnego użytku: przyciski, panele, wartości, kroki,
        box, cytat, FAQ, zdjęcia, pasek "do uzupełnienia"
     5. Strona główna: hero, oko, efekt słów w nagłówku
     6. Podstrony: nagłówek, okruszki, dwie kolumny, formularz, pliki, kafelki
     7. Stopka
     8. Kursor (celownik) i oko na stronie "dziękujemy"
     9. Ograniczenie ruchu (dla osób, które wyłączyły animacje w systemie)
    10. Telefon i wąskie ekrany
   Po KAŻDEJ zmianie tego pliku podbij ?v= (np. z 9 na 10) w plikach HTML,
   inaczej przeglądarka pokaże starą wersję z pamięci podręcznej.
   ==================================================================== */


/* ====================================================================
   1. TOKENY: kolory i czcionki. Każda zmienna działa w całej stronie.
   ==================================================================== */

/* CZCIONKA: Montserrat (licencja OFL), pliki w assets/fonts, bez Google */
@font-face{font-family:"Montserrat Variable";font-style:normal;font-weight:100 900;font-display:swap;
  src:url(fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2-variations");
  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:"Montserrat Variable";font-style:normal;font-weight:100 900;font-display:swap;
  src:url(fonts/montserrat-latin-wght-normal.woff2) format("woff2-variations");
  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}

/* JASNY MOTYW (styl instytutowy: szare tło, granat, akcent bordo) */
:root{
  --paper:#F5F7FA;   /* tło strony: jasny szary */
  --ink:#132840;     /* tekst: głęboki granat (kontrast 13:1) */
  --teal:#8C1F4A;    /* linki: bordo (nazwa z historii, kontrast 7,6:1) */
  --tint:#DDE2EB;    /* panele i duże kształty: szaroniebieski */
  --heat:#8C1F4A;    /* akcent: przyciski, cytat, kreski */
  --heat2:#6E1539;   /* ciemniejszy akcent: przycisk po najechaniu */
  --mint:#E2E7EA;    /* trzeci kolor paneli */
  --blush:#EADCE3;   /* blady róż: panel i pasek "do uzupełnienia" */
  --line:#C4CAD5;    /* cienkie linie */
  --on-heat:#F3DCE6; /* tekst na bordowym tle: blady róż, nie biały (kontrast 6,7:1) */
  --iris:#4299B6;    /* tęczówka oka: stalowy błękit (kontrast do tła oka 3,8:1) */
  
  /* Zmieione chyba na dobre teraz? Nwm lol. */
  --serif:"Montserrat Variable",Montserrat,system-ui,sans-serif;
  --sans:"Montserrat Variable",Montserrat,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  
  /* --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif; */
  /* --sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; zero zewnętrznych fontów */
  color-scheme:light;

  /* Testowe kolory */
  --tile1:#D6DEEF;   /* kafelek 1: granatowy błękit */
  --tile2:#F0D6E3;   /* kafelek 2: wiśniowy róż */
  --tile3:#EFE5CC;   /* kafelek 3: szampańskie złoto */

}



/* CIEMNY MOTYW: nadpisuje tylko to, co się różni. Pilnuj kontrastu
   tekstu do tła, min. 4,5 do 1 (sprawdzisz na contrast-ratio.com).
   Tekst na akcencie (--heat) to zawsze --on-heat. */
:root[data-theme="dark"]{
  --paper:#0C1424;   /* tło: ciemny granat */
  --ink:#E8EDF5;     /* tekst: jasny (kontrast 15,7:1) */
  --teal:#F2A7C3;    /* linki: jasny róż (kontrast 9,7:1) */
  --tint:#1A2A45;    /* panele i kształty: granat */
  --heat:#A3285A;    /* akcent: jaśniejsze bordo */
  --heat2:#8F2250;   /* akcent po najechaniu (ciemniejszy; tekst na nim 6,4:1) */
  --on-heat:#F3DCE6; /* tekst na bordo (kontrast 5,4:1) */
  --iris:#4A82B4;    /* tęczówka oka (kontrast do tła oka 4,5:1) */
  --mint:#172A38;
  --blush:#2E1E2C;
  --line:#33435C;
  color-scheme:dark;

  /* TESTOWE KOLORY */
  --tile1:#1B2C4D;
  --tile2:#38202F;
  --tile3:#3A3320;

}


/* ====================================================================
   2. PODSTAWY
   ==================================================================== */

/* ROZMIAR TEKSTU: przycisk "A A" ustawia data-size na <html>.
   Wszystko liczone w rem rośnie razem z tym. */
html[data-size="2"]{font-size:120%}
html[data-size="3"]{font-size:140%}

/* Reset: szerokość liczona razem z ramką i odstępem wewnętrznym */
*{box-sizing:border-box}
html{scroll-behavior:smooth}

/* Tło, kolor i czcionka całej strony. Zmiana tutaj dotyka wszystkiego. */
body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.65 var(--sans)}
a{color:var(--teal)}

/* FOKUS z klawiatury (styl gov.uk): bordowe tło i ramka w kolorze tekstu */
:focus-visible{outline:3px solid var(--ink);outline-offset:0;background:var(--heat);color:var(--on-heat)}

/* SZEROKOŚĆ TREŚCI: max-width to szerokość kolumny na dużych ekranach,
   padding to boczny margines. Każda sekcja ma w środku jeden .wrap. */
.wrap{max-width:68rem;margin:0 auto;padding:0 1.5rem}

/* Link "Przejdź do treści": ukryty, widoczny dopiero po wciśnięciu Tab */
.skip{position:absolute;left:-999px;top:0;background:var(--heat);color:var(--on-heat);padding:.5rem 1rem}
.skip:focus{left:0;z-index:10}

/* NAGŁÓWKI: czcionka szeryfowa. clamp(min, elastyczna, max) skaluje
   rozmiar do szerokości ekranu. overflow-wrap łamie bardzo długie słowa,
   żeby nie wychodziły poza ekran. */
h1,h2,h3{font-family:var(--serif);line-height:1.12;margin:0 0 .6em;font-weight:700;overflow-wrap:break-word}
h2{font-size:clamp(1.8rem,4vw,2.5rem)}
h3{font-size:1.35rem}

/* AKAPITY: max-width 60ch skraca linie, bo wtedy tekst czyta się
   wygodniej. Nie zwiększaj powyżej ok. 75ch. */
p{margin:0 0 1em;max-width:60ch}

/* Odstęp między sekcjami (góra i dół) */
section{padding:4.5rem 0}

/* Obrazy nigdy nie szersze niż ich kontener */
img{max-width:100%;height:auto}

/* Pomocnicze: mały tekst (podpisy, okruszki) */
.small{font-size:.9rem}

/* Pomocnicze: odstępy i szerokość list (zamiast style="" w HTML) */
.mt-3{margin-top:3rem}
main ul{max-width:60ch}
.panel .more{margin-top:1rem}
.quote p+p{margin-top:1rem}
.value p+p{margin-top:.7rem}


/* ====================================================================
   3. NAGŁÓWEK STRONY: logo, telefon, menu, przyciski
   ==================================================================== */

/* Układ nagłówka: logo po lewej, menu po prawej, zawija się na telefonie */
header .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem 1rem;padding-top:1.25rem;padding-bottom:1.25rem}
nav{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}

/* LOGO: wysokość obrazka to height. Szerokość dopasowuje się sama. */
.logo{font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--ink);text-decoration:none}
.logo img{display:block;height:4rem;width:auto}
/* Dwa pliki SVG: jasne i ciemne tło. Widać zawsze jeden, zależnie od motywu. */
.logo .logo-ciemne{display:none}
:root[data-theme="dark"] .logo .logo-jasne{display:none}
:root[data-theme="dark"] .logo .logo-ciemne{display:block}
@media (max-width:40rem){.logo img{height:3.1rem}}

/* TELEFON: mała ikona obok logo (margin-right:auto dosuwa ją do logo,
   a menu zostaje po prawej) */
.tel{margin-right:auto;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px 0 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink);font-size:.85rem;font-weight:600;text-decoration:none}
.tel:hover{background:var(--tint)}

/* MENU: odstęp wokół linków, podświetlenie po najechaniu i dla
   aktualnej strony (aria-current="page") */
nav a{padding:.45rem 1rem;border-radius:2rem;color:var(--ink);text-decoration:none;font-size:1.2rem}
nav a:hover{background:var(--tint)}
nav a[aria-current="page"]{background:var(--tint)}

/* OKRĄGŁE PRZYCISKI w nagłówku (rozmiar tekstu i motyw).
   Rozmiar w px (40), żeby same przyciski nie rosły razem z tekstem. */
#theme-toggle,#size-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;
  border:1px solid var(--ink);border-radius:50%;
  background:transparent;color:var(--ink);cursor:pointer;
}
#theme-toggle:hover,#size-toggle:hover{background:var(--tint)}

/* Przycisk motywu: w jasnym trybie księżyc, w ciemnym słońce */
#theme-toggle .icon-sun{display:none}
:root[data-theme="dark"] #theme-toggle .icon-moon{display:none}
:root[data-theme="dark"] #theme-toggle .icon-sun{display:inline}

/* Przycisk rozmiaru tekstu: dwie litery A (mała i duża) */
#size-toggle{font-family:var(--serif);font-weight:700;line-height:1;gap:1px;padding:0}
#size-toggle .sz-s{font-size:13px;align-self:flex-end;padding-bottom:10px}
#size-toggle .sz-l{font-size:20px;align-self:flex-end;padding-bottom:9px}


/* ====================================================================
   4. ELEMENTY WIELOKROTNEGO UŻYTKU
   ==================================================================== */

/* PRZYCISK: tło --heat, ramka --ink, pełne zaokrąglenie.
   Tekst zawsze --on-heat (biały). */
.btn{display:inline-block;background:var(--heat);color:var(--on-heat);padding:.9rem 1.8rem;border:2px solid var(--ink);border-radius:3rem;font-weight:700;text-decoration:none}
.btn:hover{background:var(--heat2)}

/* PANELE: siatka kart. auto-fit z minmax układa tyle kolumn, ile się
   zmieści. min(100%, ...) pilnuje, żeby kolumna nie była szersza niż
   ekran telefonu (także przy tekście 140%). */
.panels{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.panel{padding:2rem;background:var(--tile1);border-radius:2.5rem 2.5rem 2.5rem .75rem}
.panel:nth-child(2){background:var(--tile2);border-radius:.75rem 2.5rem 2.5rem 2.5rem}
.panel:nth-child(3){background:var(--tile3);border-radius:2.5rem}
.panel p{margin:0}
.panel img{display:block;width:100%;height:auto;border-radius:1.25rem;margin-bottom:1.25rem}

/* CYTAT (duży bordowy blok) */
.quote{background:var(--heat);color:var(--on-heat);border-radius:3rem 3rem 3rem 1rem;padding:clamp(2rem,6vw,4.5rem)}
.quote blockquote{margin:0 0 1rem;font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.6rem);line-height:1.25;max-width:26ch}
.quote p{margin:0}

/* KROKI (Jak pracujemy, FGI, IDI): numerację dodaje CSS (counter) */
ol.steps{list-style:none;padding:0;margin:0;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));counter-reset:s}
.steps li{counter-increment:s}
.steps li::before{content:counter(s);display:grid;place-items:center;width:2.8rem;height:2.8rem;margin-bottom:.7rem;border-radius:50%;background:var(--tint);font-family:var(--serif);font-weight:700;font-size:1.2rem}
.steps strong{display:block}
ol.steps.steps-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr))} /* 4 kroki w jednym rzędzie na szerokim ekranie */

/* LISTA PYTAŃ (strona Wiedza): numerowana, jedna kolumna */
ol.checklist{list-style:none;padding:0;margin:2rem 0;max-width:46rem;counter-reset:c}
.checklist li{counter-increment:c;position:relative;padding:1rem 0 1rem 3.6rem;border-top:1px solid var(--line)}
.checklist li:last-child{border-bottom:1px solid var(--line)}
.checklist li::before{content:counter(c);position:absolute;left:0;top:.9rem;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--tint);font-family:var(--serif);font-weight:700}
.checklist strong{display:block}

/* WARTOŚCI: bloki z grubą kreską nad tekstem */
.values{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.values-stack{grid-template-columns:1fr} /* wariant: zawsze jedna kolumna (musi być po .values) */
.value{border-top:4px solid var(--heat);padding-top:1rem}
.value p{margin:0}

/* BOX (ramka z kontaktem): odstęp wewnętrzny rośnie z szerokością ekranu */
.box{background:var(--tint);border-radius:3rem;padding:clamp(1.25rem,6vw,4.5rem)}
.box a{color:var(--ink);font-weight:700}
.box .btn{color:var(--on-heat)} /* przycisk w boxie: blady róż na bordo (nie biały) */

/* DUŻY KONTAKT (mail i telefon). overflow-wrap:anywhere zawija adres,
   zamiast wypychać go poza ramkę. */
.big{font-family:var(--serif);font-size:clamp(1.15rem,5vw,2.4rem);margin:0;overflow-wrap:anywhere}

/* WĄSKI BOX obok formularza: mniejszy odstęp i tekst */
.box-compact{padding:clamp(1.5rem,3vw,2.25rem);border-radius:2rem}
.box-compact h2{font-size:clamp(1.4rem,2.5vw,1.8rem)}
.box-compact .big{font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.7}
.box-compact .big a[href^="tel"]{white-space:nowrap}

/* FAQ (rozwijane <details>, bez JS) */
details{border-top:1px solid var(--line);padding:.9rem 0;max-width:46rem}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:700;color:var(--teal)}
details p{margin:.7rem 0 0}

/* PASEK "Do uzupełnienia": blady róż z bordową kreską. Gdy treść jest
   gotowa, usuń taki <p> z HTML. Samego CSS nie ruszaj. */
.todo{padding:.8rem 1rem;border-left:4px solid var(--heat);background:var(--blush);color:var(--ink)}

/* ZDJĘCIE Z PODPISEM. aspect-ratio 4/3 przycina zdjęcia do jednej
   proporcji (dla szerokich wpisz np. 16/9). */
.media{margin:0 0 1.5rem}
.media img{display:block;width:100%;height:auto;border-radius:1.5rem} /* bez przycinania: heatmapa pokazuje cały obraz */
.media figcaption{font-size:.9rem;margin-top:.5rem}

/* PLACEHOLDER na zdjęcia i wykresy (przerywana ramka) */
.ph{display:grid;place-items:center;text-align:center;min-height:14rem;margin-bottom:1.5rem;padding:1.5rem;
  border:2px dashed var(--line);border-radius:1.5rem;background:var(--tint);opacity:.8}
/* Szkielet infografiki w placeholderze (inline SVG). Podmień na obrazek. */
.ph svg{display:block;width:100%;max-width:22rem;height:auto}
.ph .sk-box{fill:var(--paper);stroke:var(--line);stroke-width:2}
.ph .sk-bar{fill:var(--line)}
.ph .sk-acc{fill:var(--heat);opacity:.55}
.ph .sk-arrow{fill:none;stroke:var(--heat);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ph .sk-txt{fill:var(--ink);font:600 13px var(--sans,sans-serif)}


/* ====================================================================
   5. STRONA GŁÓWNA
   ==================================================================== */

/* HERO: sekcja z dużym nagłówkiem */
.hero{position:relative;overflow:hidden;padding:3.5rem 0 6.5rem}
.hero .wrap{position:relative;z-index:1}
.hero h1{font-size:clamp(2rem,5.2vw,3.4rem);max-width:18ch}
.sub{font-family:var(--serif);font-style:italic;font-size:1.4rem}

/* OBIEKTYW: duży miękki kształt w tle. Jego środek leży częściowo poza
   ekranem (right:-7rem), dlatego oko w środku ma padding-left. */
.lens{position:absolute;right:-7rem;top:1rem;width:min(36rem,90vw);aspect-ratio:1;
  background:var(--tint);border-radius:58% 42% 55% 45%/50% 55% 45% 50%;
  display:flex;align-items:center;padding-left:3rem}

/* OKO w kształcie: źrenicą rusza assets/app.js. Na telefonie ukryte. */
.hero-eye{width:min(20rem,62%);height:auto;color:var(--ink)}
.eye-iris{transition:transform .15s ease-out}
/* kolor tęczówki to zmienna --iris (sekcja 1); oko na stronie dziękujemy używa tej samej */

/* EFEKT SŁÓW W NAGŁÓWKU: słowo zamienia się w ikonę po najechaniu myszą.
   Na telefonie nie działa (brak najechania), ale nic się nie psuje. */
.hint{position:relative;display:inline-block;border-bottom:2px dotted var(--teal);cursor:default}
.hint-word{transition:opacity .25s ease}
.hint-icon{position:absolute;left:50%;top:50%;width:1.1em;height:1.1em;color:var(--teal);
  opacity:0;transform:translate(-50%,-50%) scale(.7);
  transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.hint:hover .hint-word{opacity:0}
.hint:hover .hint-icon{opacity:1;transform:translate(-50%,-50%) scale(1)}


/* ====================================================================
   6. PODSTRONY
   ==================================================================== */

/* Nagłówek podstrony i zdanie wstępne pod tytułem */
.page-head{padding-bottom:1rem}
.page-head h1{font-size:clamp(2.2rem,6vw,3.5rem)}
.lead{font-size:inherit;font-weight:600} /* ten sam rozmiar co zwykły tekst, wyróżnia tylko grubość */
.lead-big{font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.5}

/* OKRUSZKI ("Usługi / Badania jakościowe / FGI"). Okruszki są elementem
   <nav>, więc trzeba nadpisać ogólne reguły menu (flex, odstępy). */
nav.crumbs{display:block;font-size:.9rem;margin-bottom:1rem}
nav.crumbs a{display:inline;padding:0;border-radius:0;color:var(--teal);text-decoration:underline;font-size:inherit}
nav.crumbs a:hover{background:none}

/* DWIE KOLUMNY: lewa szersza (3fr), prawa węższa (2fr). Na telefonie
   układają się jedna pod drugą (patrz sekcja 10). */
.method{display:grid;gap:2.5rem;grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}
.method > *{min-width:0} /* siatka nie rozpycha się przez szerokie dzieci */
.method ul{padding-left:1.2rem;max-width:60ch}
.method li{margin-bottom:.4rem}

/* STRONY PRAWNE: węższe listy */
.legal ul,.legal ol{max-width:62ch;padding-left:1.2rem}
.legal li{margin-bottom:.5rem}

/* FORMULARZ: opisy i pola (ramka, zaokrąglenie, max-width 36rem) */
.form label{display:block;font-weight:700;margin:1rem 0 .3rem}
.form input:not([type=checkbox]),.form textarea{width:100%;max-width:36rem;padding:.7rem .9rem;font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:.75rem}

/* HONEYPOT (pułapka na boty): pole schowane daleko poza ekranem.
   Nie zamieniaj na display:none, bo część botów pomija ukryte pola. */
.hp{position:absolute;left:-9999px}

/* LISTA PLIKÓW DO POBRANIA (podstrona Badania) */
.downloads{list-style:none;padding:0;margin:1.5rem 0;max-width:46rem}
.downloads li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 0;border-top:1px solid var(--line)}
.downloads li:last-child{border-bottom:1px solid var(--line)}
.downloads span{font-size:.9rem}

/* KAFELKI BADAŃ (podstrona Badania): szersze kolumny, trzy kolory
   na zmianę, odstępy między akapitami */
.panels.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.tiles .panel:nth-child(3n+2){background:var(--tile2);border-radius:.75rem 2.5rem 2.5rem 2.5rem}
.tiles .panel:nth-child(3n){background:var(--tile3);border-radius:2.5rem}
.tiles .panel p+p{margin-top:.8rem}
.tiles .panel .small{margin-bottom:.5rem;font-size:inherit}


/* ====================================================================
   7. STOPKA
   ==================================================================== */
footer{padding:2rem 0;font-size:.9rem}
footer .wrap{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:space-between}
/* BANER COOKIES (zarządza nim assets/consent.js). Lewy dolny róg,
   żeby nie zasłaniał przycisku "Dodaj uwagi" na demo (prawy róg).
   Oba przyciski mają ten sam wygląd: odrzucenie jest tak samo łatwe jak zgoda. */
.cookie-banner{position:fixed;left:16px;bottom:16px;z-index:9000;width:min(30rem,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;
  background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:1.5rem;padding:1.25rem 1.5rem;box-shadow:0 6px 24px rgba(0,0,0,.3)}
.cookie-banner p{margin:0 0 1rem;font-size:.95rem}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.cookie-actions .btn{flex:1 1 8rem;padding:.7rem 1.2rem;cursor:pointer;font:inherit;font-weight:700}
@media (max-width:40rem){.cookie-banner{bottom:72px}} /* nad przyciskiem uwag na telefonie */


/* ====================================================================
   8. KURSOR I OKO NA STRONIE "DZIĘKUJEMY"
   ==================================================================== */

/* KURSOR: celownik (zarządza nim assets/app.js). Kolor --teal.
   Systemowa strzałka znika dopiero po pierwszym ruchu myszy,
   a nad polami formularza zostaje. */
html.kursor-wlasny,html.kursor-wlasny *:not(input):not(textarea):not(select){cursor:none}
.cursor-ring{position:fixed;left:0;top:0;width:44px;height:44px;color:var(--teal);pointer-events:none;z-index:9999;opacity:0;transition:opacity .25s ease;will-change:transform}
.cursor-ring svg{display:block}
.cursor-ring.is-on{opacity:1}
.cursor-ring.is-text{opacity:0} /* nad polami formularza celownik znika */

/* Puls po kliknięciu: rozszerzający się okrąg */
.cursor-pulse{position:fixed;width:22px;height:22px;border:1.5px solid var(--teal);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);animation:kursor-puls .6s ease-out forwards}
@keyframes kursor-puls{to{transform:translate(-50%,-50%) scale(3.2);opacity:0}}

/* MRUGAJĄCE OKO na dziekujemy.html: powieka (kolor tła) zjeżdża co 5 s.
   Moment zamknięcia to 95% w @keyframes blink. */
.eye{display:block;width:8rem;height:auto;margin:2rem 0 .5rem;color:var(--ink)}
.eye-lid{fill:var(--paper);transform-box:fill-box;transform-origin:center top;transform:scaleY(0);animation:blink 5s infinite}
@keyframes blink{0%,92%,100%{transform:scaleY(0)}95%{transform:scaleY(1)}}
.eye-note{font-family:var(--serif);font-style:italic;font-size:1.4rem}


/* ====================================================================
   9. OGRANICZENIE RUCHU
   Gdy system o to prosi, wyłączamy animacje i płynne przewijanie.
   Dodajesz nową animację? Dopisz tu jej wyłączenie.
   ==================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hint-word,.hint-icon{transition:none}
  .cursor-ring{display:none}
  .eye-lid{animation:none}
}


/* ====================================================================
   10. TELEFON I WĄSKIE EKRANY (poniżej 48rem, ok. 768 px)
   Zmień liczbę, żeby przesunąć próg.
   ==================================================================== */
@media (max-width:48rem){
  .method{grid-template-columns:1fr}   /* kolumny jedna pod drugą */
  .hero-eye{display:none}              /* oko w hero zbędne na telefonie */
  .panel{padding:1.5rem}               /* więcej miejsca na tekst w kartach */
}

/* ZESPÓŁ */
.team{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));
  margin-top:2rem;
  gap:1.5rem;
}
.person{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  background:var(--tint);
  border-radius:1rem;
  padding:1.25rem;
}
.person h3{margin:0 0 .4rem}
.person p{margin:0}
.person img{
  width:8rem;
  height:8rem;
  flex:none;
  object-fit:cover;
  border-radius:.75rem;
}
@media (max-width:30rem){
  .person{flex-direction:column}
  .person img{width:100%;height:auto;aspect-ratio:1/1}
}


/* ====================================================================
 *   DODATEK (v10): nowa strona główna wg Mail-7 + zespół na O nas.
 *   Wklej na SAMYM KOŃCU assets/style.css (późniejsza reguła o tej samej
 *   sile wygrywa, dlatego nadpisuje starsze). Potem podbij ?v=9 na ?v=10.
 *   ==================================================================== */

/* Tekst tylko dla czytników ekranu (np. <caption> tabeli) */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* HERO: drobny tekst pod przyciskiem */
.micro{margin:.9rem 0 0;font-size:.9rem}

/* LICZBY (blok 2): cztery kafelki obok siebie, na telefonie jeden pod drugim.
 *   Liczba jest duża i w kolorze --teal, bo ten kolor ma dobry kontrast w obu motywach. */
#liczby{padding-top:0}
.stats{list-style:none;margin:0;padding:0;max-width:none;display:grid;gap:1.25rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
  .stat{display:flex;flex-direction:column;gap:.35rem;padding:1.5rem;background:var(--tint);border-radius:1.5rem}
  .stat-num{font-family:var(--serif);font-weight:700;font-size:clamp(2.2rem,5vw,3rem);line-height:1;color:var(--teal)}
  .stat strong{font-size:1.1rem}

  /* KARTY METOD (blok 4): mała etykieta nad pytaniem */
  .panel .eyebrow{margin:0 0 .5rem;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal)}

  /* CENNIK (blok 5): zwykła tabela na komputerze, "karty" na telefonie */
  .cennik{width:100%;margin:1.5rem 0;border-collapse:collapse}
  .cennik th,.cennik td{text-align:left;vertical-align:top;padding:1rem;border-top:1px solid var(--line)}
  .cennik thead th{border-top:0;border-bottom:2px solid var(--ink);font-family:var(--serif)}
  .cennik tbody th{font-weight:700}
  .cennik .price{white-space:nowrap;font-weight:700;color:var(--teal)}
  @media (max-width:48rem){
    .cennik,.cennik tbody,.cennik tr,.cennik th,.cennik td{display:block}
    .cennik thead{position:absolute;left:-9999px}  /* nagłówki kolumn znikają z oczu, ale zostają dla czytników */
    .cennik tr{padding:1rem 0;border-top:1px solid var(--line)}
    .cennik th,.cennik td{padding:.2rem 0;border:0}
  }

  /* KONTAKT (blok 8): dwie ścieżki (brief online / plik) */
  .paths{display:grid;gap:1.5rem;margin-top:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
  .path{padding:1.5rem;background:var(--paper);border-radius:1.5rem}
  .path h3{font-size:1.2rem}
  .path p{margin-bottom:1.25rem}
  .box .btn.btn-ghost{background:transparent;color:var(--ink)}
  .box .btn.btn-ghost:hover{background:var(--tint)}

  /* ZESPÓŁ (O nas): trzy osoby = trzy kolumny, zdjęcie nad tekstem.
   *   column-reverse pokazuje zdjęcie na górze, choć w HTML jest po tekście. */
  .team{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}
  .person{flex-direction:column-reverse;justify-content:flex-end;align-items:stretch;gap:1.25rem}
  .person img{width:100%;height:auto;aspect-ratio:1/1}
  .person p{max-width:none;font-size:.95rem}


/* ====================================================================
 *   SIATKA 2×2 (v15): cztery elementy w dwóch rzędach po dwa zamiast 3+1.
 *   Dopisz klasę grid-2 do siatki (.stats, .values, .panels). Na telefonie
 *   jedna kolumna. W kaflach kolory idą szachownicą (tile1/tile2), a
 *   rogi są jednakowe, żeby układ był symetryczny.
 *   ==================================================================== */
.stats.grid-2,.values.grid-2,.panels.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.panels.tiles.grid-2 .panel,
.panels.tiles.grid-2 .panel:nth-child(n){border-radius:2rem}
.panels.tiles.grid-2 .panel:nth-child(1),
.panels.tiles.grid-2 .panel:nth-child(4){background:var(--tile1)}
.panels.tiles.grid-2 .panel:nth-child(2),
.panels.tiles.grid-2 .panel:nth-child(3){background:var(--tile2)}
@media (max-width:40rem){
  .stats.grid-2,.values.grid-2,.panels.grid-2{grid-template-columns:1fr}
}

/* Wideo w ramce .media (np. nagranie z eye trackera na stronie Usługi) */
.media-video{display:block;width:100%;height:auto;border-radius:1rem;background:var(--tint)}
