
/* ========== LEOCODE — styl editorial, koncept: linia rejestru ========== */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-normal.woff2) format('woff2');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:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-ext-normal.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-italic.woff2) format('woff2');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:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-ext-italic.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-normal.woff2) format('woff2');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:'Schibsted Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-ext-normal.woff2) format('woff2');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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --papier:#EDEFEC; --plaszcz:#FFFFFF; --atrament:#121A17; --cichy:#4B5A54;
  --zielen:#0A5F43; --limonka:#5FD9A4; --ciemny:#0C1512; --na-ciemnym:#E6EBE7; --cichy-ciemny:#A9B6AE;
  --linia:#C9D0CA; --linia-ciemna:#2B3832;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --grotesk:'Schibsted Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --max:1320px; --gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--atrament);font-family:var(--grotesk);font-size:1.0625rem;line-height:1.62;overflow-x:hidden;font-synthesis-weight:none}
img{display:block;max-width:100%;height:auto}
a{color:var(--zielen);text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--zielen);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;text-wrap:balance;margin:0}
p,li{text-wrap:pretty}
p{margin:0 0 1.1em}
.liczba,.tabela-rejestr{font-variant-numeric:tabular-nums}

/* ---------- siatka ---------- */
.ramka{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.siatka{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2.4vw,32px)}
.srednia{max-width:60ch}

/* ---------- SYGNATURA: linia rejestru ---------- */
.rejestr{border-top:1px solid var(--atrament);padding-top:14px;margin-top:clamp(56px,8vw,112px)}
.rejestr>.siatka{align-items:start}
.rejestr .nr{grid-column:1/-1;font-family:var(--serif);font-size:clamp(2rem,4.4vw,3.4rem);line-height:.9;color:var(--zielen);margin:0 0 .2em}
.rejestr .tytul{grid-column:1/-1}
.rejestr h2{font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.04}
.rejestr .boczek{grid-column:1/-1;font-size:.9375rem;color:var(--cichy);max-width:42ch}
@media(min-width:900px){
  .rejestr .nr{grid-column:1/2;margin-bottom:0}
  .rejestr .tytul{grid-column:3/9}
  .rejestr .boczek{grid-column:9/13;padding-top:.6rem}
}
.rejestr--ciemny{border-top-color:var(--linia-ciemna)}
.rejestr--ciemny .nr{color:var(--limonka)}
.rejestr--ciemny .boczek{color:var(--cichy-ciemny)}

/* ---------- nagłówek strony ---------- */
.gora{position:relative;z-index:5;background:var(--papier);border-bottom:1px solid var(--linia)}
.gora .ramka{display:flex;align-items:baseline;justify-content:space-between;gap:12px 20px;padding-block:18px;flex-wrap:wrap}
.marka{font-family:var(--serif);font-size:1.6rem;letter-spacing:.02em;color:var(--atrament);text-decoration:none}
.marka span{color:var(--zielen)}
.menu{display:flex;flex-wrap:wrap;gap:10px clamp(14px,2vw,28px);list-style:none;margin:0;padding:0;font-size:.9375rem}
.menu a{color:var(--atrament);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent}
.menu a:hover{border-bottom-color:var(--zielen)}
.menu a[aria-current="page"]{border-bottom-color:var(--zielen);color:var(--zielen)}
.gora .tel{font-size:.9375rem;color:var(--cichy);text-decoration:none;white-space:nowrap}
.gora .tel:hover{color:var(--zielen)}

/* ---------- przyciski ---------- */
.cta,.cta-ciemny{display:inline-block;font:inherit;font-weight:600;text-decoration:none;border:1px solid transparent;border-radius:2px;padding:.78em 1.5em;cursor:pointer}
.cta{background:var(--zielen);color:#fff}
.cta:hover{background:#084A35}
.cta-ciemny{background:var(--limonka);color:var(--ciemny)}
.cta-ciemny:hover{background:#D5FF6B}
.cta-pusty{display:inline-block;font:inherit;font-weight:600;text-decoration:none;border:1px solid var(--atrament);border-radius:2px;padding:.78em 1.5em;color:var(--atrament);background:transparent}
.cta-pusty:hover{background:var(--atrament);color:var(--papier)}

/* ---------- hero ---------- */
.hero{padding-top:clamp(36px,6vw,76px)}
.hero h1{font-size:clamp(2.9rem,8.6vw,8rem);line-height:.94;margin-bottom:.4em;grid-column:1/-1}
.hero h1 em{font-style:italic;color:var(--zielen)}
.hero .lid{grid-column:1/-1;font-size:clamp(1.0625rem,1.5vw,1.3125rem);color:var(--cichy);max-width:46ch}
.hero .akcja{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}
.hero .meta{grid-column:1/-1;font-size:.9375rem;color:var(--cichy);max-width:46ch}
@media(min-width:900px){
  .hero h1{grid-column:1/11}
  .hero .lid{grid-column:1/6}
  .hero .akcja{grid-column:7/13;align-self:end}
  .hero .meta{grid-column:7/13}
}
.hero-foto{margin-top:clamp(28px,4vw,56px)}
.hero-foto img{width:100%;aspect-ratio:16/8.2;object-fit:cover;filter:saturate(.88)}

/* ---------- lista rejestrowa ---------- */
.tabela-rejestr{list-style:none;margin:0;padding:0}
.tabela-rejestr li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding:.72rem 0;border-bottom:1px solid var(--linia)}
.tabela-rejestr .et{color:var(--cichy);font-size:.9375rem}
.tabela-rejestr .wa{font-weight:600}
.ciemna-sekcja .tabela-rejestr li{border-bottom-color:var(--linia-ciemna)}
.ciemna-sekcja .tabela-rejestr .et{color:var(--cichy-ciemny)}

/* ---------- wiersze specjalizacji (strona główna) ---------- */
.wiersze{list-style:none;margin:clamp(28px,4vw,48px) 0 0;padding:0}
.wiersz{border-top:1px solid var(--linia);padding:clamp(20px,3vw,34px) 0}
.wiersz:first-child{border-top:0}
.wiersz .w-nr{font-family:var(--serif);font-size:1.5rem;color:var(--zielen);line-height:1;grid-column:1/-1;margin:0}
.wiersz h3{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.1;grid-column:1/-1}
.wiersz .w-tekst{grid-column:1/-1;color:var(--cichy);margin:0;max-width:52ch}
.wiersz .w-tagi{grid-column:1/-1;list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.wiersz .w-tagi li{font-size:.875rem;border:1px solid var(--linia);border-radius:2px;padding:.3em .7em;background:var(--plaszcz);color:var(--atrament)}
@media(min-width:900px){
  .wiersz .w-nr{grid-column:1/2}
  .wiersz h3{grid-column:2/7}
  .wiersz .w-tekst,.wiersz .w-tagi{grid-column:7/13}
}

/* ---------- pasek ciemny ---------- */
.ciemna-sekcja{background:var(--ciemny);color:var(--na-ciemnym);margin-top:clamp(64px,9vw,128px);padding-block:clamp(56px,8vw,112px)}
.ciemna-sekcja h2,.ciemna-sekcja h3{color:var(--na-ciemnym)}
.ciemna-sekcja p{color:var(--cichy-ciemny)}
.ciemna-sekcja a:not(.cta-ciemny){color:var(--limonka)}
.ciemna-sekcja .rejestr{border-top-color:var(--linia-ciemna)}

/* ---------- cytat ---------- */
.cytat{margin:0;border-left:2px solid var(--zielen);padding-left:clamp(18px,2.4vw,32px)}
.cytat p{font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.16;color:var(--atrament);margin:0 0 .6em}
.cytat footer{font-size:.9375rem;color:var(--cichy)}
.cytat footer b{color:var(--atrament);font-weight:600}
.ciemna-sekcja .cytat{border-left-color:var(--limonka)}
.ciemna-sekcja .cytat p{color:var(--na-ciemnym)}
.ciemna-sekcja .cytat footer{color:var(--cichy-ciemny)}
.ciemna-sekcja .cytat footer b{color:var(--na-ciemnym)}

/* ---------- zdjęcia ---------- */
figure{margin:0}
figure img{width:100%;object-fit:cover;filter:saturate(.88)}
figcaption{margin-top:10px;font-size:.875rem;color:var(--cichy);max-width:52ch}
.ciemna-sekcja figcaption{color:var(--cichy-ciemny)}
.foto-wys img{aspect-ratio:4/5}
.foto-szer img{aspect-ratio:3/2}
.foto-pas img{aspect-ratio:16/7}

/* ---------- realizacje (strona główna) ---------- */
.realizacje{list-style:none;margin:clamp(28px,4vw,48px) 0 0;padding:0;border-top:1px solid var(--linia)}
.realizacje li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;border-bottom:1px solid var(--linia);padding:clamp(14px,1.8vw,22px) 0}
.realizacje .r-tytul{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.95rem);line-height:1.12;flex:1 1 18ch}
.realizacje .r-obszar{font-size:.9375rem;color:var(--cichy);white-space:nowrap}

/* ---------- formularz ---------- */
form.kontakt{display:grid;gap:18px;max-width:46rem;margin-top:24px}
form.kontakt label{display:grid;gap:7px;font-size:.9375rem;color:var(--atrament);font-weight:600}
form.kontakt input,form.kontakt select,form.kontakt textarea{font:inherit;font-weight:400;color:var(--atrament);background:var(--plaszcz);border:1px solid #6E7B74;border-radius:2px;padding:.72em .8em;width:100%}
form.kontakt textarea{resize:vertical}
form.kontakt input:focus-visible,form.kontakt select:focus-visible,form.kontakt textarea:focus-visible{outline:3px solid var(--zielen);outline-offset:1px;border-color:var(--zielen)}
form.kontakt button{font:inherit;font-weight:600;background:var(--zielen);color:#fff;border:1px solid var(--zielen);border-radius:2px;padding:.85em 1.6em;cursor:pointer;justify-self:start}
form.kontakt button:hover{background:#084A35}
form.kontakt .form-note,form.kontakt .status{font-size:.9375rem;color:var(--cichy);margin:0;max-width:52ch}
form.kontakt .status:not(:empty){color:var(--atrament);font-weight:600}
.hp{position:absolute;left:-9999px}
.para{display:grid;gap:18px}
@media(min-width:700px){.para{grid-template-columns:1fr 1fr}}

/* ---------- stopka ---------- */
.stopka{background:var(--ciemny);color:var(--cichy-ciemny);margin-top:clamp(64px,9vw,128px);padding-block:clamp(48px,6vw,80px);font-size:.9375rem}
.stopka a{color:var(--na-ciemnym);text-decoration:none}
.stopka a:hover{color:var(--limonka);text-decoration:underline}
.stopka h2{font-size:1.5rem;color:var(--na-ciemnym);margin-bottom:.5em}
.stopka .kol{grid-column:1/-1;margin-bottom:28px}
.stopka ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.stopka .drobne{grid-column:1/-1;border-top:1px solid var(--linia-ciemna);margin:8px 0 0;padding-top:18px;display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:space-between;color:#9EADA4}
@media(min-width:760px){.stopka .kol{grid-column:span 4;margin-bottom:0}.stopka .drobne{margin-top:36px}}

/* ---------- strony prawne ---------- */
.prawne{max-width:68ch}
.prawne h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:1.8em 0 .5em}
.prawne ul{padding-left:1.3em}
.prawne li{margin-bottom:.4em}
.ostrzezenie{border:1px solid var(--zielen);background:var(--plaszcz);padding:16px 18px;margin-bottom:28px;max-width:68ch}
.ostrzezenie p{margin:0;font-size:.9375rem}

/* ---------- pomocnicze ---------- */
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gut);top:10px;z-index:20;background:var(--limonka);color:var(--ciemny);padding:10px 16px;border-radius:2px}
.pas-tech{list-style:none;margin:0;padding:0;display:grid;gap:0 clamp(18px,3vw,40px);grid-template-columns:1fr}
@media(min-width:620px){.pas-tech{grid-template-columns:1fr 1fr}}
.pas-tech li{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.9rem);color:var(--atrament);border-top:1px solid var(--linia);padding:.42em 0}
.ciemna-sekcja .pas-tech li{color:var(--na-ciemnym);border-top-color:var(--linia-ciemna)}

/* ---------- pasek faktów (podstrony) ---------- */
.fakty-pas{list-style:none;margin:clamp(26px,3.4vw,44px) 0 0;padding:0;display:grid;gap:0 clamp(18px,3vw,40px);grid-template-columns:1fr}
@media(min-width:760px){.fakty-pas{grid-template-columns:repeat(3,1fr)}}
.fakty-pas li{border-top:1px solid var(--atrament);padding:12px 0 18px}
.fakty-pas .wa{display:block;font-family:var(--serif);font-size:clamp(1.6rem,2.8vw,2.3rem);line-height:1.08}
.fakty-pas .et{display:block;margin-top:6px;font-size:.9375rem;color:var(--cichy)}

/* ---------- zamykający pas CTA (podstrony) ---------- */
.zamkniecie{margin-top:clamp(56px,8vw,112px);border-top:1px solid var(--atrament);padding-top:clamp(24px,3vw,40px)}
.zamkniecie h2{font-size:clamp(1.8rem,3.6vw,2.9rem);line-height:1.06;grid-column:1/-1;max-width:20ch}
.zamkniecie .z-tekst{grid-column:1/-1;color:var(--cichy);max-width:46ch;margin:1em 0 0}
.zamkniecie .z-akcja{grid-column:1/-1;margin:1.4em 0 0;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
@media(min-width:900px){
  .zamkniecie h2{grid-column:1/7}
  .zamkniecie .z-tekst{grid-column:7/11;margin-top:.4em}
  .zamkniecie .z-akcja{grid-column:11/13;align-self:start;margin-top:.3em}
}

/* ---------- podziały kolumn ---------- */
.kol-tekst,.kol-lista,.foto-prawa,.foto-prawa-szer{grid-column:1/-1}
@media(min-width:900px){
  .kol-tekst{grid-column:1/8}
  .kol-lista{grid-column:1/8}
  .foto-prawa{grid-column:9/13}
  .foto-prawa-szer{grid-column:8/13}
}

/* ---------- nagłówki podstron ---------- */
.naglowek-strony{grid-column:1/-1;font-size:clamp(2.4rem,6.2vw,5.2rem);line-height:1;margin-bottom:.3em}
.lid-strony{grid-column:1/-1;font-size:clamp(1.0625rem,1.4vw,1.25rem);color:var(--cichy);max-width:52ch}
@media(min-width:900px){
  .naglowek-strony{grid-column:1/10}
  .lid-strony{grid-column:1/7}
}

/* ---------- specjalizacje: naprzemienne bloki ---------- */
.blok-spec{margin-top:clamp(26px,3.4vw,44px);align-items:start}
.spec-lista,.spec-foto{grid-column:1/-1}
@media(min-width:900px){
  .spec-lista{grid-column:1/7}
  .spec-foto{grid-column:8/13}
  .blok-spec--odwrotny .spec-lista{grid-column:7/13}
  .blok-spec--odwrotny .spec-foto{grid-column:1/6}
}

/* ---------- usługi: spis + wpisy ---------- */
.uslugi-uklad{margin-top:clamp(28px,4vw,48px);align-items:start}
.uslugi-spis,.uslugi-tresc{grid-column:1/-1}
.uslugi-spis{margin-bottom:32px}
.uslugi-spis .tabela-rejestr li{justify-content:flex-start;gap:16px}
.uslugi-spis .tabela-rejestr .et{min-width:2ch}
.uslugi-spis a{color:var(--atrament);text-decoration:none;border-bottom:1px solid var(--linia)}
.uslugi-spis a:hover{color:var(--zielen);border-bottom-color:var(--zielen)}
.usluga{border-top:1px solid var(--linia);padding:clamp(22px,3vw,36px) 0;display:grid;grid-template-columns:auto 1fr;gap:4px clamp(16px,2vw,28px);scroll-margin-top:24px}
.usluga:first-child{border-top:0;padding-top:0}
.usluga .u-nr{grid-row:1/4;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);color:var(--zielen);line-height:.95;margin:0}
.usluga h3{grid-column:2;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.08}
.usluga .u-opis{grid-column:2;color:var(--cichy);margin:.5em 0 0;max-width:56ch}
.usluga .u-dla{grid-column:2;margin:.7em 0 0;font-size:.9375rem;color:var(--zielen)}
@media(min-width:900px){
  .uslugi-spis{grid-column:1/4;position:sticky;top:24px;margin-bottom:0}
  .uslugi-tresc{grid-column:5/13}
}
.team-tekst,.team-foto{grid-column:1/-1}
.team-tekst{margin-bottom:32px}
@media(min-width:900px){
  .team-tekst{grid-column:1/8;margin-bottom:0}
  .team-foto{grid-column:9/13}
}

/* ---------- realizacje: indeks grup ---------- */
.grupa-real{border-top:1px solid var(--atrament);padding-top:14px;margin-top:clamp(26px,3.4vw,44px);align-items:start}
.grupa-real:first-of-type{margin-top:0}
.g-nazwa{grid-column:1/-1;margin:0;font-size:.9375rem;color:var(--cichy)}
.g-liczba{grid-column:1/-1;margin:0;font-family:var(--serif);font-size:1.5rem;color:var(--zielen);line-height:1}
.g-lista{grid-column:1/-1;list-style:none;margin:10px 0 0;padding:0}
.r-poz{font-family:var(--serif);font-size:clamp(1.5rem,3.6vw,2.8rem);line-height:1.12;padding:.18em 0}
@media(min-width:900px){
  .g-liczba{grid-column:1/2;order:-1}
  .g-nazwa{grid-column:2/4;padding-top:.5rem}
  .g-lista{grid-column:5/13;margin-top:0}
}
.opinia-kol{grid-column:1/-1;margin-bottom:32px}
@media(min-width:760px){.opinia-kol{grid-column:span 6;margin-bottom:0}}

/* ---------- o nas: proza ---------- */
.proza{margin-top:clamp(20px,2.6vw,36px);align-items:start}
.proza-kol{grid-column:1/-1}
.proza-kol p{max-width:62ch}
.proza-cytat{grid-column:1/-1;margin-top:20px}
@media(min-width:900px){
  .proza-kol:nth-of-type(1){grid-column:1/5}
  .proza-kol:nth-of-type(2){grid-column:5/9}
  .proza-cytat{grid-column:10/13;margin-top:0}
  .proza-cytat p{font-size:clamp(1.3rem,1.9vw,1.75rem)}
}
.fakty-lista,.fakty-foto{grid-column:1/-1}
.fakty-foto{margin-top:28px}
@media(min-width:900px){
  .fakty-lista{grid-column:1/9}
  .fakty-foto{grid-column:10/13;margin-top:0}
}

/* ---------- kontakt ---------- */
.kontakt-uklad{align-items:start}
.kontakt-dane,.kontakt-form{grid-column:1/-1}
.kontakt-dane{margin-bottom:44px}
@media(min-width:900px){
  .kontakt-dane{grid-column:1/6;margin-bottom:0}
  .kontakt-form{grid-column:7/13}
}

/* ---------- ruch ---------- */
@keyframes wejscie{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.wejdz{animation:wejscie .7s cubic-bezier(.2,.7,.3,1) both}
.wejdz-2{animation-delay:.1s}
.wejdz-3{animation-delay:.2s}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
