/* ==========================================================
   Ogrodzenia Zawada · demo budstrony.pl nr 2 (ogrodzenia i bramy)
   System wyprowadzony ze świata ogrodzeń: zieleń RAL 6005, ocynk i beton podmurówki, żółć taśmy mierniczej.
   Plan: dema-plany/ogrodzenia/PLAN-DEMA.md · odrzucone: design-system/budstrony/pages/demo-ogrodzenia.md
   Ruch: transform i opacity. ?static=1 i reduced-motion = stan końcowy.
   ========================================================== */

/* ---------- 01 · kroje: Schibsted Grotesk (tekst, nagłówki) + Martian Mono (tylko liczby), OFL, latin + latin-ext ---------- */
@font-face{font-family:"Schibsted Grotesk";src:url("fonts/schibsted-grotesk-latin.woff2") format("woff2");font-weight:400 900;font-display:swap;
  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";src:url("fonts/schibsted-grotesk-latin-ext.woff2") format("woff2");font-weight:400 900;font-display:swap;
  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:"Martian Mono";src:url("fonts/martian-mono-latin.woff2") format("woff2");font-weight:100 800;font-display:swap;
  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:"Martian Mono";src:url("fonts/martian-mono-latin-ext.woff2") format("woff2");font-weight:100 800;font-display:swap;
  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}

/* ---------- 02 · tokeny (kontrasty policzone 2026-10-22, PLAN-DEMA §7) ---------- */
:root{
  --paper:#F5F6F3;  /* tło główne — ink 15,12 */
  --zinc:#E1E5E1;   /* ocynk / beton podmurówki — sekcje przemienne; ink 12,89, stone 5,14 */
  --white:#FFFFFF;
  --ink:#1A211E;
  --stone:#55605A;  /* pomocniczy — 6,04 paper / 5,14 zinc */
  --line:#C9D0CA;
  --field:#7B8780;  /* obrys pól na jasnym — 3,74 */
  --green:#143D30;  /* RAL 6005 — ciemne pole; biel 12,07 */
  --green2:#1C4B3C; /* karta na ciemnym; biel 9,90 */
  --green3:#0F3026; /* najciemniejsze: pasek dema, kolumna planu */
  --moss:#2D6A52;   /* tekst-akcent na jasnym — 5,88 paper / 5,01 zinc */
  --mint:#A6D8BC;   /* pomocniczy na ciemnym — 7,57 green / 6,21 green2 / 8,95 green3 (nasycona: detektor gray-on-color) */
  --tape:#F1B92F;   /* TAŚMA: sygnał. Nigdy tekst na jasnym. green na niej 6,74 */
  --err:#B42318;
  --err-lt:#FFB4A8; /* błąd na ciemnym — 7,9 na green2 */

  --f:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --m:"Martian Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --wrap:1280px; --pad:clamp(16px,4vw,40px);
  --sec:clamp(56px,7vw,88px);
  --r:2px;          /* jedna skala: profil stalowy */
  --ease:cubic-bezier(.16,1,.3,1);
  --spring:cubic-bezier(.32,.72,0,1);
  --nav:72px;
}

/* ---------- 03 · podstawy ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
html.is-motion{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
picture{display:block}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
h1,h2,h3,p,ul,ol,dl,dd,figure,fieldset{margin:0}
ul,ol{padding:0;list-style:none}
fieldset{border:0;padding:0;min-width:0}
legend{padding:0}
p,li,dd{text-wrap:pretty}
h1,h2,h3{font-weight:800;letter-spacing:-.03em;line-height:1.02;text-wrap:balance}
h2{font-size:clamp(32px,4.2vw,56px)}
h3{font-size:clamp(19px,1.6vw,22px);line-height:1.15;letter-spacing:-.015em}
.ic{width:20px;height:20px;fill:currentColor;flex:none}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--moss);outline-offset:3px}
.hero :focus-visible,.calc :focus-visible,.foot :focus-visible,.demobar :focus-visible,.mbar :focus-visible,.nav:not(.is-solid) :focus-visible,.area :focus-visible{outline-color:var(--tape)}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--green);color:var(--white);padding:12px 18px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
.src{margin-top:18px;font-size:13px;color:var(--stone)}
.lnk{display:inline-flex;align-items:center;gap:6px;color:var(--moss);font-weight:700;text-decoration:underline;min-height:44px}
.lnk .ic{width:16px;height:16px;transition:transform .35s var(--spring)}
.lnk:hover .ic{transform:translateX(3px)}

/* ---------- 04 · przyciski: prostokąt + ikona w osobnym kwadracie („czapka słupka”) ---------- */
.btn{--h:54px;display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--h);padding:0 7px 0 22px;border-radius:var(--r);border:0;font:700 16px/1 var(--f);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .3s var(--ease),color .3s var(--ease),transform .2s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn__ic{display:grid;place-items:center;width:40px;height:40px;border-radius:1px;transition:transform .45s var(--spring)}
.btn:hover .btn__ic{transform:translateX(3px)}
.btn--tape{background:var(--tape);color:var(--green)}
.btn--tape .btn__ic{background:var(--green);color:var(--tape)}
.btn--tape:hover{background:#F7C94F}
.btn--line{padding:0 22px;border:1.5px solid rgba(255,255,255,.7);color:var(--white);background:transparent;gap:10px;justify-content:center}
.btn--line:hover{background:rgba(255,255,255,.1)}
.btn--sm{--h:46px;font-size:15px;padding-left:18px;padding-right:5px}
.btn--sm .btn__ic{width:36px;height:36px}
.btn--full{width:100%}
.btn[hidden]{display:none}

/* ---------- 05 · pasek dema ---------- */
.demobar{position:relative;z-index:31;display:flex;justify-content:center;align-items:center;gap:8px 20px;flex-wrap:wrap;padding:9px var(--pad);background:var(--green3);color:#D7E3DC;font-size:13px;line-height:1.4;text-align:center}
.demobar strong{color:var(--white)}
.demobar a{display:inline-flex;align-items:center;gap:4px;color:var(--tape);font-weight:700;min-height:28px}
.demobar a .ic{width:14px;height:14px}

/* ---------- 06 · nawigacja: pełny pasek (nie wyspa), przezroczysty na zdjęciu, pełny po zjechaniu z hero ---------- */
.nav{position:sticky;top:0;z-index:30;height:var(--nav);color:var(--white);transition:background-color .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.nav::before{content:"";position:absolute;inset:0;background:rgba(15,48,38,.72);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);pointer-events:none;transition:opacity .35s var(--ease)}
/* biel na chmurach: 2,5:1 bez tła; z tłem 0,72 najgorszy przypadek ≥ 6:1 */
.nav.is-solid{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav.is-solid::before{opacity:0}
.nav__in{position:relative;max-width:var(--wrap);height:100%;margin-inline:auto;padding-inline:var(--pad);display:flex;align-items:center;gap:28px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.logo__mark{position:relative;display:block;width:30px;height:26px}
.logo__mark::before,.logo__mark::after{content:"";position:absolute;top:0;bottom:0;width:4px;background:currentColor}
.logo__mark::before{left:0}.logo__mark::after{right:0}
.logo__mark i{position:absolute;left:6px;right:6px;height:4px;background:var(--tape)}
.logo__mark i:nth-child(1){top:4px}.logo__mark i:nth-child(2){top:11px}.logo__mark i:nth-child(3){top:18px}
.logo__word{font-weight:900;font-size:21px;letter-spacing:.06em}
.nav__links{display:flex;gap:26px;font-size:15px;font-weight:600}
.nav__links a{text-decoration:none;padding:12px 0;position:relative}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--tape);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__menu-tel{display:none}
.nav__tel{display:inline-flex;align-items:center;gap:8px;font:600 14px/1 var(--m);text-decoration:none;min-height:44px}
.nav__tel .ic{width:18px;height:18px}
.burger{display:none}

/* ---------- 07 · HERO ---------- */
.hero{position:relative;margin-top:calc(var(--nav) * -1);min-height:max(640px, calc(100svh - 38px));display:flex;align-items:flex-end;overflow:hidden;background:var(--green)}
.hero__img{position:absolute;inset:0}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
/* skrzydło bramy: poziome profile w grafitowej ramie, odjeżdża w prawo jak brama na torze */
.hero__gate{position:absolute;inset:0;z-index:1;background:
  linear-gradient(90deg,#20272A 0 14px,transparent 14px calc(100% - 14px),#20272A calc(100% - 14px)),
  repeating-linear-gradient(180deg,#30383B 0 46px,#151B1D 46px 52px);
  box-shadow:-30px 0 60px rgba(0,0,0,.35)}
.hero__wheel{position:absolute;left:12%;bottom:-14px;width:28px;height:28px;border-radius:50%;background:#0F1416;box-shadow:0 0 0 5px #3A4347}
.is-static .hero__gate{display:none}
.is-motion .hero__gate{animation:gate-open 1.6s var(--spring) .35s both}
@keyframes gate-open{to{transform:translateX(101%)}}
.hero__plate{position:relative;z-index:2;width:min(880px,64%);margin-left:max(var(--pad), calc((100vw - var(--wrap)) / 2 + var(--pad)));background:var(--green);color:var(--white);padding:clamp(28px,3.4vw,48px) clamp(24px,3.4vw,48px) clamp(30px,3.6vw,52px)}
.hero__plate::before{content:"";position:absolute;left:0;top:0;width:96px;height:6px;background:var(--tape)}
.hero h1{font-size:clamp(40px,4.4vw,64px);letter-spacing:-.035em;line-height:.98}
.hero__lead{margin-top:18px;max-width:34em;font-size:clamp(17px,1.35vw,19px);color:#D7E3DC}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero__cta .btn--line{font-family:var(--m);font-weight:600;font-size:15px}
.is-motion .hero__plate{animation:rise .9s var(--ease) .1s both}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}

/* ---------- 08 · TAŚMA MIERNICZA ---------- */
.tape-sec{background:var(--zinc);padding-bottom:var(--sec)}
.tape{--mt:clamp(84px,8vw,112px);overflow:hidden;padding-top:clamp(36px,5vw,56px)}
.tape__band{display:flex;width:max-content;height:58px;background-color:var(--tape);
  background-image:
    repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px var(--mt)),
    repeating-linear-gradient(90deg,var(--ink) 0 1.5px,transparent 1.5px calc(var(--mt) / 2)),
    repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px calc(var(--mt) / 10));
  background-size:100% 24px,100% 16px,100% 9px;background-repeat:no-repeat;
  box-shadow:inset 0 -2px 0 rgba(26,33,30,.18);transform-origin:left center}
.tape__band span{width:var(--mt);padding:26px 0 0 6px;font:700 15px/1 var(--m);color:var(--ink)}
.tape__band span:first-child{color:transparent}
.is-motion .tape__band{transform:scaleX(0);transition:transform 1.4s var(--spring)}
.is-motion .tape.in .tape__band{transform:none}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);margin-top:34px}
.facts>div{position:relative;padding-top:22px}
.facts>div::before{content:"";position:absolute;left:0;top:0;width:2px;height:14px;background:var(--ink)}
.facts dt{font-size:14px;font-weight:600;color:var(--stone)}
.facts dd{margin-top:4px;font-size:clamp(26px,2.6vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.05}
.facts p{margin-top:8px;font-size:15px;line-height:1.45;color:var(--stone)}

/* ---------- 09 · RODZAJE: przęsła-paski (Accordion Image Slider) ---------- */
.kinds{padding-block:var(--sec)}
.kinds h2{max-width:14em}
.spans{display:flex;gap:8px;height:clamp(460px,44vw,600px);margin-top:clamp(28px,4vw,44px)}
.span{position:relative;flex:1 1 0;min-width:0;overflow:hidden;border-radius:var(--r);background:var(--green);color:var(--white);cursor:pointer;transition:flex-grow .8s var(--spring)}
.span.is-open{flex-grow:2.7}
.span picture,.span img{position:absolute;inset:0;width:100%;height:100%}
.span img{object-fit:cover;transition:transform 1.2s var(--ease)}
.span.is-open img{transform:scale(1.03)}
.span::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,48,38,0) 30%,rgba(15,48,38,.6) 58%,rgba(15,48,38,.96) 100%)}
.span__in{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:clamp(18px,2vw,28px)}
.span h3{max-width:14em}
.span__price{margin-top:10px;font:700 clamp(20px,1.8vw,26px)/1.1 var(--m);color:var(--tape);letter-spacing:-.02em;white-space:nowrap}
.span__price small{font-size:13px;margin-left:4px;color:var(--mint)}
.span:nth-child(2) img{object-position:60% 92%}
.span__note{margin-top:10px;max-width:30em;font-size:15px;line-height:1.45;color:#D7E3DC;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .5s var(--ease)}
.span.is-open .span__note{opacity:1;transform:none;transition-delay:.25s}
.span:not(.is-open) h3{font-size:18px}
.span:not(.is-open) .span__price{font-size:17px;white-space:normal}
.span:not(.is-open) .span__price small{display:block;margin:2px 0 0}

/* ---------- 10 · KALKULATOR (jedyne ciemne pole) ---------- */
.calc{background:var(--green);color:var(--white);padding-block:var(--sec)}
.calc__head{display:flex;flex-direction:column;gap:12px;max-width:640px}
.calc__head p{color:var(--mint);font-size:18px}
.bezel{margin-top:clamp(28px,4vw,40px);padding:8px;border-radius:4px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.bezel__in{border-radius:var(--r);background:var(--green2);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.calc__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
.calc__form{padding:clamp(20px,3vw,40px)}
.calc__out{position:relative;background:var(--green3);padding:clamp(20px,3vw,36px);display:flex;flex-direction:column;gap:18px}
.grp+.grp{margin-top:30px;padding-top:28px;border-top:1px solid rgba(166,216,188,.22)}
.grp legend{float:left;width:100%;margin-bottom:16px;display:flex;align-items:center;gap:12px;font-size:20px;font-weight:800;letter-spacing:-.015em}
.grp__n{display:grid;place-items:center;width:30px;height:30px;border-radius:1px;background:var(--tape);color:var(--green);font:700 14px/1 var(--m)}
.grp legend+*{clear:both}
.grp__hint{margin-top:0;margin-bottom:0;font-size:15px;line-height:1.45;color:var(--mint)}
.sides{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:16px}
.side>label,.field>label{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:#E3ECE7}
.side__row{display:flex;align-items:center;gap:10px}
.side__row input{width:100%;min-width:0;max-width:110px}
.unit{font:600 14px/1 var(--m);color:var(--mint)}
.calc input[type=text],.calc input[type=tel],.calc select,.calc textarea{width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--mint);border-radius:var(--r);background:var(--green3);color:var(--white);font:500 16px/1.3 var(--f);transition:border-color .2s var(--ease),background-color .2s var(--ease)}
.calc .side__row input{font:600 17px/1 var(--m);text-align:right}
.calc select{appearance:none;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--mint) 50%),linear-gradient(135deg,var(--mint) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;cursor:pointer}
.calc select option{background:var(--green3);color:var(--white)}
.calc textarea{resize:vertical;min-height:90px}
.calc ::placeholder{color:#8FA89B;opacity:1}
.calc input:hover,.calc select:hover,.calc textarea:hover{border-color:#D2E0D8}
.calc input:focus,.calc select:focus,.calc textarea:focus{border-color:var(--tape);outline:none;box-shadow:0 0 0 1px var(--tape)}
.calc [aria-invalid=true]{border-color:var(--err-lt)!important}
.chk{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:#E3ECE7;cursor:pointer;white-space:nowrap}
.chk input{width:20px;height:20px;margin:0;accent-color:var(--tape);cursor:pointer}
.chk--lg{font-size:16px;font-weight:600}
.chk--agree{white-space:normal;align-items:flex-start;margin-top:18px;font-size:15px;line-height:1.4}
.chk--agree input{margin-top:1px}
.types{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.field+.field{margin-top:16px}
.types .field+.field{margin-top:0}
.opt{font-weight:400;color:var(--mint)}
.seg{display:grid;grid-template-columns:repeat(3,1fr);border:1.5px solid var(--mint);border-radius:var(--r)}
.seg label{position:relative;cursor:pointer}
.seg label+label{border-left:1.5px solid var(--mint)}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:grid;place-items:center;min-height:50px;padding:6px 8px;font-size:15px;font-weight:700;text-align:center;transition:background-color .25s var(--ease),color .25s var(--ease)}
.seg input:checked+span{background:var(--tape);color:var(--green)}
.seg input:focus-visible+span{outline:2px solid var(--tape);outline-offset:3px}
.opts{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:10px}
.err{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:14px;font-weight:600;color:var(--err-lt)}
.err .ic{width:17px;height:17px}
.err[hidden]{display:none}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-bottom:18px;padding:0;border:0;background:none;color:var(--mint);font:600 15px/1 var(--f);cursor:pointer}
.back:hover{color:var(--white)}
.back .ic{width:18px;height:18px}
.calc__step[hidden]{display:none}
.calc .btn--full{margin-top:22px}

/* plan działki */
.plan{position:relative;background:
  linear-gradient(rgba(166,216,188,.07) 1px,transparent 1px) 0 0/24px 24px,
  linear-gradient(90deg,rgba(166,216,188,.07) 1px,transparent 1px) 0 0/24px 24px;border:1px solid rgba(166,216,188,.18);border-radius:var(--r)}
.plan svg{width:100%;height:auto;aspect-ratio:1}
.plan__warn{padding:0 14px 12px;font-size:13px;color:var(--tape)}
.p-lot{fill:rgba(166,216,188,.06)}
.p-side{fill:none;stroke-linecap:square;transition:stroke .3s var(--ease)}
.p-side.on{stroke:var(--tape);stroke-width:5}
.p-side.off{stroke:var(--mint);stroke-width:2;stroke-dasharray:6 7;opacity:.7}
.p-post{fill:var(--white)}
.p-gate{fill:none;stroke:var(--white);stroke-width:3}
.p-gate-move{fill:none;stroke:var(--white);stroke-width:1.5;stroke-dasharray:4 4}
.p-dim{font:600 15px/1 var(--m);fill:#E3ECE7}
.p-dim--off{fill:var(--mint)}
.p-street{font:700 11px/1 var(--f);letter-spacing:.24em;fill:var(--mint)}
.p-road{fill:rgba(166,216,188,.12)}
.p-tag{font:600 12px/1 var(--m);fill:var(--white);letter-spacing:.02em}
.result__mb{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.result__num{font:700 clamp(52px,6vw,76px)/.9 var(--m);color:var(--tape);letter-spacing:-.05em}
.result__unit{font-size:16px;font-weight:600;color:var(--mint)}
.result__price{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.result__lbl{font-size:14px;font-weight:600;color:var(--mint)}
.result__price span:last-child{font-size:clamp(28px,2.8vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.result__lines{margin-top:14px;display:grid;gap:8px;font-size:14px;color:#D7E3DC}
.result__lines li{display:flex;justify-content:space-between;gap:16px;padding-top:8px;border-top:1px solid rgba(166,216,188,.16)}
.result__lines b{font:600 13px/1.5 var(--m);color:var(--white);white-space:nowrap;text-align:right}
.result__src{font-size:12.5px;line-height:1.45;color:var(--mint)}
.calc__out .btn--full{margin-top:4px}
.done__flag{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--tape)}
.done__h{margin-top:10px;font-size:clamp(24px,2.4vw,30px)}
.done__mail{margin:18px 0 0;padding:18px;border-radius:var(--r);background:var(--green3);border:1px solid rgba(166,216,188,.25);font:500 13.5px/1.65 var(--m);color:#E3ECE7;white-space:pre-wrap;word-break:break-word}
.done__note{margin-top:16px;font-size:15px;line-height:1.5;color:#D7E3DC}
.done__note strong{color:var(--white)}
.done__note+.back{margin-top:14px}
@media (min-width:901px){.calc__out{position:sticky;top:84px;align-self:start}}

/* ---------- 11 · BRAMY ---------- */
.gates{padding-block:var(--sec)}
.gates__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:center}
.gates__img{overflow:hidden;border-radius:var(--r);aspect-ratio:2/3;max-height:780px}
.gates__img img{width:100%;height:100%;object-fit:cover}
.gates__lead{margin-top:16px;max-width:30em;font-size:18px;color:var(--stone)}
.gplans{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:clamp(24px,3vw,36px)}
.gplan{padding:clamp(18px,2vw,26px);background:var(--zinc);border-radius:var(--r)}
.gplan__svg{width:100%;height:auto;margin-bottom:14px}
.gplan__svg text{font:600 11px/1 var(--m);fill:var(--stone)}
.g-fence{stroke:var(--ink);stroke-width:4}
.g-post{fill:var(--ink)}
.g-leaf{stroke:var(--moss);stroke-width:6}
.g-move,.g-arrow{fill:none;stroke:var(--stone);stroke-width:1.5;stroke-dasharray:4 4}
.g-arrow{stroke-dasharray:none}
.g-dim{stroke:var(--stone);stroke-width:1}
.gplan p{margin-top:8px;font-size:15px;line-height:1.5;color:var(--stone)}
.gplan__p{display:grid;gap:6px;margin-top:16px}
.gplan__p div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.gplan__p dt{font-size:14px;color:var(--stone)}
.gplan__p dd{font:700 15px/1.3 var(--m);white-space:nowrap}
.is-motion .gplan .g-leaf,.is-motion .gplan .g-fence{stroke-dasharray:260;stroke-dashoffset:260;transition:stroke-dashoffset 1.2s var(--ease)}
.is-motion .gplan.in .g-leaf,.is-motion .gplan.in .g-fence{stroke-dashoffset:0}
.is-motion .gplan .g-leaf{transition-delay:.35s}

/* ---------- 12 · MONTAŻ: ogrodzenie jako oś czasu ---------- */
.build{background:var(--zinc);padding-block:var(--sec);overflow:hidden}
.build__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.build__img{flex:none;width:clamp(150px,18vw,260px);aspect-ratio:4/3;overflow:hidden;border-radius:var(--r)}
.build__img img{width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.fence{display:grid;grid-template-columns:repeat(5,1fr);margin-top:clamp(32px,4vw,48px);counter-reset:k}
.fence__span{position:relative;padding:76px 22px 0 30px}
/* dwie poziome belki przęsła */
.fence__span::before,.fence__span::after{content:"";position:absolute;left:0;right:0;height:5px;background:var(--ink);transform-origin:left}
.fence__span::before{top:14px}.fence__span::after{top:44px}
.post{position:absolute;left:0;top:0;width:12px;height:64px;background:var(--ink);transform-origin:bottom}
.post::before{content:"";position:absolute;left:-3px;right:-3px;top:-6px;height:6px;background:var(--tape)}
.post--end{left:auto;right:0}
.fence h3{font-size:20px}
.fence p{margin-top:8px;font-size:15px;line-height:1.5;color:var(--stone)}
.is-motion .fence .post{transform:scaleY(0);transition:transform .7s var(--spring)}
.is-motion .fence__span::before,.is-motion .fence__span::after{transform:scaleX(0);transition:transform .6s var(--ease)}
.is-motion .fence__span>h3,.is-motion .fence__span>p{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .6s var(--ease)}
.is-motion .fence.in .post,.is-motion .fence.in .fence__span::before,.is-motion .fence.in .fence__span::after{transform:none}
.is-motion .fence.in .fence__span>h3,.is-motion .fence.in .fence__span>p{opacity:1;transform:none}
.fence__span:nth-child(1){--d:0s}.fence__span:nth-child(2){--d:.18s}.fence__span:nth-child(3){--d:.36s}.fence__span:nth-child(4){--d:.54s}.fence__span:nth-child(5){--d:.72s}
.is-motion .fence .post{transition-delay:var(--d)}
.is-motion .fence .post--end{transition-delay:.9s}
.is-motion .fence__span::before,.is-motion .fence__span::after{transition-delay:calc(var(--d) + .25s)}
.is-motion .fence__span>h3,.is-motion .fence__span>p{transition-delay:calc(var(--d) + .35s)}

/* ---------- 13 · FORMALNOŚCI: plakat jednej liczby ---------- */
.law{padding-block:var(--sec)}
.law__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center}
.law__poster{display:flex;align-items:flex-end;gap:clamp(18px,3vw,40px)}
.rod{position:relative;flex:none;width:34px;height:clamp(240px,26vw,340px);background:var(--zinc);border-radius:1px}
.rod__bar{position:absolute;left:0;right:0;bottom:0;height:88%;background-color:var(--tape);
  background-image:repeating-linear-gradient(0deg,var(--ink) 0 1.5px,transparent 1.5px 10%),repeating-linear-gradient(0deg,var(--ink) 0 1px,transparent 1px 2%);
  background-size:12px 100%,7px 100%;background-repeat:no-repeat;background-position:right bottom,right bottom;transform-origin:bottom}
.rod__mark{position:absolute;left:calc(100% + 8px);bottom:88%;transform:translateY(50%);font:700 13px/1 var(--m);white-space:nowrap;color:var(--ink)}
.rod__mark::before{content:"";position:absolute;right:calc(100% + 2px);top:50%;width:16px;height:2px;background:var(--ink)}
.is-motion .rod__bar{transform:scaleY(0);transition:transform 1.4s var(--spring)}
.is-motion .law__poster.in .rod__bar{transform:none}
.law__h{display:flex;flex-direction:column;gap:26px}
.law__num{font-size:clamp(96px,15vw,210px);font-weight:900;letter-spacing:-.06em;line-height:.82}
.law__t{font-size:clamp(24px,2.6vw,36px);letter-spacing:-.025em;max-width:12em}
.law__list{display:grid;gap:22px}
.law__list li{display:flex;gap:14px;align-items:flex-start}
.law__list .ic{width:24px;height:24px;color:var(--moss);margin-top:2px}
.law__list p{font-size:17px;line-height:1.5}
.law__list li.src{display:block;margin-top:0}

/* ---------- 14 · OBSZAR ---------- */
.area{position:relative;background:var(--green)}
.area__img{height:clamp(320px,52vw,620px);overflow:hidden}
.area__img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
@supports (animation-timeline:view()){
  .is-motion .area__img img{animation:area-zoom linear both;animation-timeline:view();animation-range:entry 0% exit 60%}
  @keyframes area-zoom{from{transform:scale(1.14)}to{transform:scale(1)}}
}
.area__strip{background:var(--green);color:var(--white);padding-block:clamp(36px,5vw,56px)}
.area__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,56px);align-items:start}
.area h2{font-size:clamp(30px,3.4vw,46px)}
.towns{columns:3;column-gap:28px;font-size:17px;font-weight:600}
.towns li{break-inside:avoid;padding:7px 0 7px 18px;position:relative;color:#E3ECE7}
.towns li::before{content:"";position:absolute;left:0;top:50%;width:8px;height:2px;background:var(--tape)}

/* ---------- 15 · FAQ ---------- */
.faq{background:var(--zinc);padding-block:var(--sec)}
.faq__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,64px);align-items:start}
.faq h2{font-size:clamp(30px,3.4vw,46px)}
.faq details{border-bottom:1px solid #B5BEB8}
.faq details:first-child{border-top:1px solid #B5BEB8}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px 0;font-size:clamp(17px,1.5vw,20px);font-weight:700;letter-spacing:-.01em;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{width:22px;height:22px;transition:transform .35s var(--spring)}
.faq details[open] summary .ic{transform:rotate(180deg)}
.faq details p{padding:0 40px 22px 0;color:var(--stone);max-width:44em}

/* ---------- 16 · STOPKA ---------- */
.foot{background:var(--green);color:var(--white);padding-top:var(--sec);overflow:hidden}
.foot__grid{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap}
.foot__h{font-size:16px;font-weight:600;color:var(--mint)}
.foot__tel{display:inline-block;margin-top:6px;font:700 clamp(32px,4vw,52px)/1.1 var(--m);letter-spacing:-.04em;text-decoration:none}
.foot__tel:hover{color:var(--tape)}
.foot__meta{margin-top:10px;color:#D7E3DC;font-size:15px}
.foot__word{margin:clamp(28px,4vw,48px) 0 0;padding-bottom:.16em;font-size:clamp(64px,18.6vw,300px);font-weight:900;letter-spacing:-.04em;line-height:.8;text-align:center;color:var(--green2);white-space:nowrap;user-select:none}
.is-motion .foot__word{clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease)}
.is-motion .foot__word.in{clip-path:inset(0)}
.foot__base{display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;padding-block:22px 28px;border-top:1px solid rgba(166,216,188,.2);font-size:13.5px;color:var(--mint)}
.foot__base a{color:var(--white)}

/* ---------- 17 · odsłanianie ---------- */
.is-motion .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.is-motion .rv.in{opacity:1;transform:none}
.spans .rv:nth-child(2){transition-delay:.08s}.spans .rv:nth-child(3){transition-delay:.16s}.spans .rv:nth-child(4){transition-delay:.24s}
.facts .rv:nth-child(2){transition-delay:.1s}.facts .rv:nth-child(3){transition-delay:.2s}.facts .rv:nth-child(4){transition-delay:.3s}
.is-motion .span.rv{transition:opacity .8s var(--ease),transform .9s var(--ease),flex-grow .8s var(--spring)}

/* ---------- 18 · dolny pasek (telefon) ---------- */
.mbar{display:none}

/* ---------- 19 · TABLET ---------- */
@media (max-width:1100px){
  .nav__links{gap:18px}
  .nav__tel span{display:none}
}
@media (max-width:1000px){
  .burger{display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;background:none;color:inherit;cursor:pointer;position:relative;z-index:2}
  .burger span{position:absolute;width:24px;height:2px;background:currentColor;transition:transform .45s var(--spring)}
  .burger span:first-child{transform:translateY(-4px)}.burger span:last-child{transform:translateY(4px)}
  .burger[aria-expanded=true] span:first-child{transform:rotate(45deg)}
  .burger[aria-expanded=true] span:last-child{transform:rotate(-45deg)}
  .nav__links{position:fixed;inset:0;z-index:1;flex-direction:column;justify-content:center;gap:4px;padding:96px var(--pad) 40px;background:var(--green);color:var(--white);font-size:30px;font-weight:800;letter-spacing:-.02em;visibility:hidden;opacity:0;transition:opacity .35s var(--ease),visibility 0s .35s}
  .nav__links a{padding:10px 0}
  .nav__links a::after{display:none}
  .nav__menu-tel{display:block;margin-top:18px;font:600 18px/1.3 var(--m)!important;color:var(--tape)}
  .nav.is-open .nav__links{visibility:visible;opacity:1;transition:opacity .35s var(--ease)}
  .nav.is-open{color:var(--white)}
  .nav.is-open .logo{position:relative;z-index:2}
  .is-motion .nav.is-open .nav__links a{animation:rise .6s var(--ease) both}
  .nav.is-open .nav__links a:nth-child(2){animation-delay:.05s}.nav.is-open .nav__links a:nth-child(3){animation-delay:.1s}.nav.is-open .nav__links a:nth-child(4){animation-delay:.15s}.nav.is-open .nav__links a:nth-child(5){animation-delay:.2s}.nav.is-open .nav__links a:nth-child(6){animation-delay:.25s}
  .nav__tel{display:none}
  .facts{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .calc__grid{grid-template-columns:1fr}
  .calc__out{order:-1}
  .gates__grid{grid-template-columns:1fr}
  .gates__img{aspect-ratio:4/3;max-height:none}
  .gates__img img{object-position:50% 96%}
  .law__grid,.area__grid,.faq__grid{grid-template-columns:1fr}
  .fence{grid-template-columns:1fr;margin-top:28px}
  .fence__span{padding:4px 0 30px 40px}
  .fence__span::before,.fence__span::after{display:none}
  .post{height:100%;width:8px;transform-origin:top}
  .post::before{left:-2px;right:-2px}
  .post--end{display:none}
  .fence__span:last-child{padding-bottom:0}
}

/* ---------- 20 · TELEFON ≤ 760 px ---------- */
@media (max-width:760px){
  body{font-size:16px}
  .foot{padding-bottom:68px}
  .nav__cta{display:none}
  .hero{display:block;min-height:0;margin-top:calc(var(--nav) * -1)}
  .hero__img{position:relative;height:min(46svh,380px)}
  .hero__img img{object-position:50% 30%;transform:scale(1.4);transform-origin:52% 42%}
  .hero__gate{bottom:auto;height:min(46svh,380px)}
  .hero__plate{width:auto;margin:0;padding:26px var(--pad) 30px}
  .hero h1{font-size:clamp(34px,9.6vw,44px)}
  .hero__cta{flex-direction:column}
  .hero__cta .btn{width:100%}
  .tape__band{height:50px}
  .tape{--mt:72px}
  .tape__band span{padding-top:22px;font-size:13px}
  .facts{gap:22px 16px;margin-top:26px}
  .facts p{font-size:14px}
  .spans{flex-direction:column;height:auto;gap:8px}
  .span,.span.is-open{flex:none;height:280px}
  .span__note{opacity:1;transform:none}
  .span:not(.is-open) h3{font-size:inherit}
  .sides,.types{grid-template-columns:1fr 1fr;gap:14px 12px}
  .side__row{flex-wrap:wrap;gap:2px 8px}
  .side__row input{max-width:none;flex:1 1 calc(100% - 30px)}
  .side__row .chk{flex-basis:100%}
  .chk{min-height:36px}
  .types{grid-template-columns:1fr}
  .gplans{grid-template-columns:1fr}
  .build__img{display:none}
  .law__poster{gap:16px}
  .rod{width:26px}
  .towns{columns:2;font-size:16px}
  .faq details p{padding-right:0}
  .foot__base{padding-bottom:20px}
  .foot__cta,.foot__cta .btn{width:100%}

  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:block;background:var(--green3);box-shadow:0 -1px 0 rgba(166,216,188,.25);padding:8px var(--pad) calc(8px + env(safe-area-inset-bottom))}
  .mbar__base,.mbar__calc{display:flex;gap:8px;align-items:center}
  .mbar a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:var(--r);font-weight:700;font-size:15px;text-decoration:none}
  .mbar__tel{flex:1;border:1.5px solid var(--mint);color:var(--white)}
  .mbar__tel .ic{width:18px;height:18px}
  .mbar__cta{flex:1.4;background:var(--tape);color:var(--green)}
  .mbar__calc .mbar__cta{flex:none}
  .mbar__calc{display:none}
  .mbar__calc p{flex:1;min-width:0;display:flex;flex-direction:column;color:var(--white);line-height:1.2}
  .mbar__calc p span{font:600 12.5px/1.3 var(--m);color:var(--mint)}
  .mbar__calc p strong{font-size:16px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
  .mbar.in-calc .mbar__base{display:none}
  .mbar.in-calc .mbar__calc{display:flex}
}
@media (max-width:380px){
  .sides{grid-template-columns:1fr}
  .seg span{font-size:14px}
}

/* ---------- 21 · stan końcowy bez ruchu ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
