/* =========================================================
   elLED Marek Ledwig — klimatyzacja (v3)
   Standard kategorii na poziomie producenta: duże zdjęcia
   jednostek, biel, czerń, czerwień tylko na akcjach.
   ========================================================= */

/* Onest — zmienny (wght 400–800), self-hosted, licencja OFL */
@font-face{
  font-family:"Onest"; font-style:normal; font-weight:400 800; font-display:swap;
  src:url("../fonts/onest-latin.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:"Onest"; font-style:normal; font-weight:400 800; font-display:swap;
  src:url("../fonts/onest-latin-ext.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  --ink:      #111113;
  --ink-2:    #3d3d44;
  --muted:    #686870;
  --line:     #e6e6e9;
  --line-2:   #cfcfd4;
  --grey:     #f2f2f3;
  --white:    #ffffff;
  --red:      #e11c23;
  --red-dark: #b8141b;
  --red-tint: #fdecec;
  --on-dark:  #c8c8ce;

  --wrap: 1240px;
  --gutter: 24px;
  --r-img: 12px;
  --r-ctl: 10px;
  --header-h: 76px;

  --font: "Onest", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --t: .24s var(--ease);
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px);
  -webkit-text-size-adjust:100%; scrollbar-color:var(--line-2) transparent; scrollbar-width:thin;
}
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:var(--line-2); border:3px solid #fff; border-radius:var(--r-ctl); }
body{
  margin:0; font-family:var(--font); font-size:1.0625rem; line-height:1.6; color:var(--ink);
  background:var(--white); -webkit-font-smoothing:antialiased; font-variant-numeric:tabular-nums; caret-color:var(--red);
}
::selection{ background:var(--red); color:#fff; }
:focus-visible{ outline:2px solid var(--red); outline-offset:3px; border-radius:4px; }
:focus:not(:focus-visible){ outline:none; }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
p a, li a, dd a, .prose a{ text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:.2em; text-decoration-color:var(--line-2); transition:text-decoration-color var(--t); }
p a:hover, li a:hover, dd a:hover, .prose a:hover{ text-decoration-color:var(--red); }
p a.btn, li a.btn, p a.more{ text-decoration:none; }

h1,h2,h3{ margin:0; font-weight:700; text-wrap:balance; }
h1, .display{ font-size:clamp(2.6rem, 4.6vw, 4rem); line-height:1.03; letter-spacing:-.035em; }
h2{ font-size:clamp(1.875rem, 3.2vw, 2.75rem); line-height:1.08; letter-spacing:-.03em; }
h3, .h3{ font-size:1.375rem; line-height:1.2; letter-spacing:-.02em; font-weight:700; }
p{ margin:0; }
p + p{ margin-top:1em; }
.lead{ font-size:1.1875rem; line-height:1.55; color:var(--ink-2); max-width:56ch; }
.muted{ color:var(--muted); }
.small{ font-size:.9375rem; }

/* ---------- układ ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding:104px 0; }
.section--s{ padding:72px 0; }
.section--grey{ background:var(--grey); }
.section--dark{ background:var(--ink); color:#fff; }
.section--dark .lead, .section--dark .muted{ color:var(--on-dark); }
.head{ max-width:62ch; margin-bottom:48px; }
.head p{ margin-top:16px; }
.head--split{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; max-width:none; }
.head--split p{ max-width:46ch; margin:0; color:var(--muted); }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.grid-2--top{ align-items:start; }
.stack > * + *{ margin-top:24px; }

/* ---------- przyciski ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; height:54px; padding:0 26px;
  border:1.5px solid transparent; border-radius:var(--r-ctl); font:inherit; font-size:1rem; font-weight:600;
  cursor:pointer; white-space:nowrap; transition:background var(--t), border-color var(--t), color var(--t), transform var(--t);
}
.btn:active{ transform:translateY(1px); }
.btn svg{ width:18px; height:18px; flex:none; }
.btn--red{ background:var(--red); border-color:var(--red); color:#fff; }
.btn--red:hover{ background:var(--red-dark); border-color:var(--red-dark); }
.btn--ink{ background:var(--ink); border-color:var(--ink); color:#fff; }
.btn--ink:hover{ background:#2b2b31; border-color:#2b2b31; }
.btn--line{ background:#fff; border-color:var(--line-2); color:var(--ink); }
.btn--line:hover{ border-color:var(--ink); }
.btn--ghost-light{ background:transparent; border-color:rgba(255,255,255,.4); color:#fff; }
.btn--ghost-light:hover{ border-color:#fff; }
.btn--sm{ height:44px; padding:0 18px; font-size:.9375rem; }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; }
.more{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--ink); }
.more svg{ width:18px; height:18px; transition:transform var(--t); }
.more:hover{ color:var(--red); }
.more:hover svg{ transform:translateX(3px); }

.phone-line{ display:flex; align-items:center; gap:12px; margin-top:24px; color:var(--muted); font-size:.9375rem; }
.phone-line a{ font-size:1.25rem; font-weight:700; color:var(--ink); letter-spacing:-.01em; text-decoration:none; }
.phone-line a:hover{ color:var(--red); }

/* ---------- nagłówek ---------- */
.site-header{ position:sticky; top:0; z-index:60; background:#fff; border-bottom:1px solid transparent; transition:border-color var(--t); }
.site-header.is-scrolled{ border-bottom-color:var(--line); }
.header-inner{ display:flex; align-items:center; gap:28px; height:var(--header-h); }
.brand{ display:flex; align-items:center; gap:12px; margin-right:auto; }
.brand svg{ width:38px; height:38px; flex:none; }
.brand-name{ display:block; font-size:1.375rem; font-weight:800; letter-spacing:-.04em; line-height:1; }
.brand-name b{ color:var(--red); font-weight:800; }
.brand-sub{ display:block; font-size:.8125rem; color:var(--muted); margin-top:4px; font-weight:500; }
.nav{ display:flex; align-items:center; gap:2px; }
.nav a{ position:relative; display:inline-flex; align-items:center; height:42px; padding:0 12px; font-size:.9375rem; font-weight:500; color:var(--ink-2); border-radius:8px; transition:color var(--t), background var(--t); }
.nav a:hover{ color:var(--ink); background:var(--grey); }
.nav a[aria-current="page"]{ color:var(--ink); font-weight:600; }
.nav a[aria-current="page"]::after{ content:""; position:absolute; left:12px; right:12px; bottom:5px; height:2px; background:var(--red); border-radius:2px; }
.nav a.nav-quote{ display:none; }
.header-cta{ display:flex; align-items:center; gap:18px; }
.header-phone{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:.9375rem; }
.header-phone svg{ width:17px; height:17px; color:var(--red); }
.burger{ display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:var(--r-ctl); background:#fff; cursor:pointer; padding:0; position:relative; }
.burger span{ position:absolute; left:13px; right:13px; height:2px; background:var(--ink); border-radius:2px; transition:transform var(--t), opacity var(--t); }
.burger span:nth-child(1){ top:16px; } .burger span:nth-child(2){ top:22px; } .burger span:nth-child(3){ top:28px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ---------- hero ---------- */
.hero{ position:relative; padding:20px 0 56px; }
.hero-grid{ display:grid; grid-template-columns:11fr 13fr; gap:56px; min-height:clamp(520px, calc(100vh - var(--header-h) - 76px), 700px); }
.hero-copy{ display:flex; flex-direction:column; justify-content:center; padding:32px 0; }
.hero-copy .lead{ margin-top:24px; }
.hero-copy .btn-row{ margin-top:36px; }
.hero-media{ position:relative; margin:0; overflow:hidden; border-radius:var(--r-img); background:var(--grey); }
.hero-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:78% 30%; }
.photo-note{ position:absolute; right:14px; bottom:12px; font-size:.75rem; color:var(--ink-2); background:rgba(255,255,255,.86); padding:3px 8px; border-radius:6px; }

/* podstrona: krótszy hero */
.page-hero .hero-grid{ min-height:clamp(420px, 60vh, 560px); }
.crumbs{ font-size:.875rem; color:var(--muted); margin-bottom:20px; }
.crumbs a:hover{ color:var(--ink); }
.crumbs span{ margin:0 8px; color:var(--line-2); }
.page-plain{ padding:72px 0 56px; border-bottom:1px solid var(--line); }
.page-plain .lead{ margin-top:20px; }

/* ---------- pasek faktów ---------- */
.facts{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.facts-row{ display:grid; grid-template-columns:repeat(4, 1fr); }
.facts-row > div{ padding:28px 24px; border-left:1px solid var(--line); }
.facts-row > div:first-child{ border-left:0; padding-left:0; }
.facts-row b{ display:block; font-size:clamp(1.875rem, 2.8vw, 2.5rem); font-weight:700; letter-spacing:-.03em; line-height:1; white-space:nowrap; }
.facts-row > div > span{ display:block; margin-top:10px; font-size:.9375rem; color:var(--muted); }

/* ---------- karty ze zdjęciem (ścieżki) ---------- */
.paths{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.path{ display:flex; flex-direction:column; }
.path-img{ overflow:hidden; border-radius:var(--r-img); aspect-ratio:4 / 3; background:var(--grey); }
.path-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.path:hover .path-img img{ transform:scale(1.03); }
.path h3{ margin-top:22px; transition:color var(--t); }
.path:hover h3{ color:var(--red); }
.path p{ margin-top:8px; color:var(--muted); }
.path .more{ margin-top:16px; }

/* ---------- kalkulator ---------- */
.calc{ display:grid; grid-template-columns:7fr 5fr; gap:20px; align-items:start; }
.calc fieldset{ margin:0; }
.calc-form{ padding:36px; border:1px solid var(--line); border-radius:var(--r-img); background:#fff; }
.calc-form > .more{ margin-top:28px !important; }
.calc-result{ position:sticky; top:calc(var(--header-h) + 20px); padding:36px; border-radius:var(--r-img); background:var(--ink); color:#fff; display:flex; flex-direction:column; }
.calc-field + .calc-field{ margin-top:28px; }
.calc-label{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; font-weight:600; margin-bottom:12px; }
.calc-label output{ font-size:1.375rem; font-weight:700; letter-spacing:-.02em; }
input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:6px; background:linear-gradient(90deg, var(--red) var(--pct, 30%), var(--line) var(--pct, 30%)); cursor:pointer; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:26px; height:26px; border-radius:50%; background:#fff; border:2px solid var(--red); }
input[type=range]::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:#fff; border:2px solid var(--red); }
.range-ends{ display:flex; justify-content:space-between; font-size:.8125rem; color:var(--muted); margin-top:8px; }
.pills{ display:flex; flex-wrap:wrap; gap:8px; }
.pill{ position:relative; }
.pill input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.pill span{ display:inline-flex; align-items:center; height:42px; padding:0 16px; border:1.5px solid var(--line-2); border-radius:999px; font-size:.9375rem; font-weight:500; cursor:pointer; transition:border-color var(--t), background var(--t), color var(--t); }
.pill input:hover + span{ border-color:var(--ink-2); }
.pill input:checked + span{ background:var(--ink); border-color:var(--ink); color:#fff; }
.pill input:focus-visible + span{ outline:2px solid var(--red); outline-offset:3px; }
.calc-kicker{ font-size:.9375rem; color:var(--on-dark); }
.calc-kw{ font-size:clamp(3.5rem, 6vw, 5rem); font-weight:700; letter-spacing:-.04em; line-height:1; margin-top:8px; color:var(--red); }
.calc-kw small{ font-size:1.5rem; letter-spacing:0; font-weight:600; margin-left:6px; color:var(--on-dark); }
.calc-class{ margin-top:14px; font-size:1.0625rem; font-weight:600; }
.calc-class b{ color:#fff; font-weight:700; }
.calc-scale{ list-style:none; margin:18px 0 0; padding:0; display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; }
.calc-scale li{ text-align:center; padding:8px 0 6px; font-size:.8125rem; font-weight:600; color:#a4a4ac; border-top:3px solid #2e2e34; transition:color var(--t), border-color var(--t); }
.calc-scale li.on{ color:#fff; border-top-color:var(--red); }
.calc-factors{ list-style:none; margin:24px 0 0; padding:20px 0 0; border-top:1px solid #2e2e34; font-size:.9375rem; color:var(--on-dark); }
.calc-factors li{ display:flex; justify-content:space-between; gap:12px; padding:5px 0; }
.calc-factors li b{ color:#fff; font-weight:600; white-space:nowrap; }
.calc-note{ margin-top:0; padding-top:20px; font-size:.875rem; color:#a4a4ac; }
.calc-result .btn{ margin-top:20px; width:100%; }

/* ---------- typy jednostek ---------- */
.units{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.unit{ border:1px solid var(--line); border-radius:var(--r-img); padding:28px; background:#fff; display:flex; flex-direction:column; }
.unit-pic{ width:120px; height:64px; margin-bottom:20px; fill:none; stroke:var(--ink); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.unit-pic .air{ stroke:var(--red); }
.unit h3{ font-size:1.25rem; }
.unit > p{ margin-top:10px; color:var(--muted); font-size:.9375rem; }
.unit dl{ margin:20px 0 0; padding-top:16px; border-top:1px solid var(--line); display:grid; grid-template-columns:auto 1fr; gap:8px 16px; font-size:.9375rem; }
.unit dt{ color:var(--muted); }
.unit dd{ margin:0; font-weight:600; }
.units--2, .paths--2{ grid-template-columns:repeat(2, 1fr); }
.unit--wide{ grid-column:span 3; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; background:var(--grey); border-color:var(--grey); }
.unit--wide dl{ margin-top:0; }

/* ---------- lista z ptaszkami ---------- */
.ticks{ list-style:none; margin:0; padding:0; }
.ticks li{ position:relative; padding:9px 0 9px 32px; }
.ticks li::before{ content:""; position:absolute; left:2px; top:16px; width:14px; height:8px; border-left:2px solid var(--red); border-bottom:2px solid var(--red); transform:rotate(-45deg); }
.section--dark .ticks li{ color:#e8e8ec; }
.ticks--2{ display:grid; grid-template-columns:1fr 1fr; column-gap:32px; }

/* ---------- proces ---------- */
.steps{ list-style:none; margin:0; padding:0; counter-reset:s; display:grid; grid-template-columns:repeat(5, 1fr); gap:24px; }
.steps li{ counter-increment:s; }
.steps li::before{ content:counter(s); display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#fff; border:1.5px solid var(--line-2); font-weight:700; margin-bottom:20px; }
.steps li:first-child::before{ background:var(--red); border-color:var(--red); color:#fff; }
.steps h3{ font-size:1.25rem; margin-bottom:8px; }
.steps p{ font-size:.9375rem; color:var(--muted); }

/* ---------- pasmo ze zdjęciem ---------- */
.band{ display:grid; grid-template-columns:1fr 1fr; background:var(--ink); color:#fff; }
.band-copy{ padding:104px 72px 104px max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter))); }
.band-copy .lead{ color:var(--on-dark); margin-top:20px; }
.band-copy .ticks{ margin-top:28px; }
.band-copy .btn-row{ margin-top:36px; }
.band-media{ position:relative; min-height:420px; margin:0; }
.band-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.band--flip .band-media{ order:-1; }
.band--flip .band-copy{ padding:104px max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter))) 104px 72px; }

/* ---------- zdjęcie w treści ---------- */
.figure{ margin:0; position:relative; overflow:hidden; border-radius:var(--r-img); background:var(--grey); }
.figure img{ width:100%; height:100%; object-fit:cover; }
.figure--tall{ aspect-ratio:4 / 5; }
.figure--wide{ aspect-ratio:3 / 2; }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:24px 48px 24px 0; position:relative; font-weight:600; font-size:1.125rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:""; position:absolute; right:8px; top:50%; width:10px; height:10px; border-right:2px solid var(--ink); border-bottom:2px solid var(--ink); transform:translateY(-70%) rotate(45deg); transition:transform var(--t); }
.faq details[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.faq summary:hover{ color:var(--red); }
.faq-body{ padding:0 48px 24px 0; color:var(--ink-2); max-width:72ch; }

/* ---------- zamknięcie ---------- */
.closing{ padding:0 0 104px; }
.closing-box{ display:grid; grid-template-columns:7fr 5fr; gap:40px; align-items:center; padding:56px; border-radius:var(--r-img); background:var(--grey); }
.closing-box p{ margin-top:14px; color:var(--muted); max-width:48ch; }
.closing-box .btn-row{ justify-content:flex-end; }

/* ---------- tekst ciągły ---------- */
.two-col{ display:grid; grid-template-columns:4fr 8fr; gap:64px; align-items:start; }
.toc{ position:sticky; top:calc(var(--header-h) + 24px); }
.toc h2{ font-size:1.0625rem; letter-spacing:0; margin-bottom:12px; }
.toc ol{ list-style:none; margin:0; padding:0; border-left:1px solid var(--line); }
.toc a{ display:block; padding:6px 0 6px 16px; font-size:.9375rem; color:var(--ink-2); text-decoration:none; }
.toc a:hover{ color:var(--red); }
.prose{ max-width:70ch; }
.prose h2{ font-size:1.375rem; letter-spacing:-.02em; margin:56px 0 16px; scroll-margin-top:calc(var(--header-h) + 24px); }
.prose h2:first-child{ margin-top:0; }
.prose p, .prose li{ color:var(--ink-2); }
.prose ul{ margin:12px 0 0; padding:0; list-style:none; }
.prose ul li{ position:relative; padding:6px 0 6px 22px; }
.prose ul li::before{ content:""; position:absolute; left:0; top:17px; width:10px; height:2px; background:var(--red); border-radius:2px; }
.prose p + ul, .prose ul + p{ margin-top:16px; }

/* ---------- kontakt ---------- */
.contact-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.contact-list li{ padding:20px 0; border-bottom:1px solid var(--line); }
.contact-list dl{ display:grid; grid-template-columns:140px 1fr; gap:24px; margin:0; }
.contact-list dt{ color:var(--muted); font-size:.9375rem; padding-top:3px; }
.contact-list dd{ margin:0; font-size:1.125rem; font-weight:600; }
.contact-list dd small{ display:block; font-size:.9375rem; font-weight:400; color:var(--muted); margin-top:2px; }
.map-frame{ border-radius:var(--r-img); overflow:hidden; min-height:440px; background:var(--grey); }
.map-frame iframe{ display:block; width:100%; min-height:440px; border:0; }
.tiles3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.tiles3 > div{ background:#fff; border-radius:var(--r-img); padding:28px; }
.tiles3 h3{ font-size:1.125rem; margin-bottom:8px; }
.tiles3 p{ color:var(--muted); font-size:.9375rem; }

/* ---------- formularz ---------- */
.form-layout{ display:grid; grid-template-columns:7fr 5fr; gap:64px; align-items:start; }
fieldset{ border:0; padding:0; margin:0 0 44px; min-width:0; }
legend{ font-size:1.25rem; font-weight:700; letter-spacing:-.02em; padding:0; margin-bottom:20px; }
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:.9375rem; font-weight:600; margin-bottom:8px; }
.req{ color:var(--red); }
.hint{ font-size:.875rem; color:var(--muted); margin-top:8px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea{
  width:100%; height:54px; padding:0 16px; font:inherit; font-size:1rem; color:var(--ink); background:#fff;
  border:1.5px solid var(--line-2); border-radius:var(--r-ctl); transition:border-color var(--t), box-shadow var(--t);
}
select{ appearance:none; padding-right:44px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23111113' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; }
textarea{ height:auto; min-height:140px; padding:14px 16px; resize:vertical; line-height:1.5; }
input::placeholder, textarea::placeholder{ color:#8a8a92; }
input:hover, select:hover, textarea:hover{ border-color:#a9a9b0; }
input:focus, select:focus, textarea:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(17,17,19,.08); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"]{ border-color:var(--red); }
.err{ display:none; color:var(--red); font-size:.875rem; font-weight:500; margin-top:8px; }
.err.show{ display:block; }
.choice-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.choice{ position:relative; }
.choice input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.choice span{ display:block; height:100%; padding:16px 18px; border:1.5px solid var(--line-2); border-radius:var(--r-ctl); font-weight:600; cursor:pointer; transition:border-color var(--t), background var(--t); }
.choice span small{ display:block; font-weight:400; color:var(--muted); font-size:.875rem; margin-top:4px; }
.choice input:hover + span{ border-color:#a9a9b0; }
.choice input:checked + span{ border-color:var(--ink); background:var(--grey); box-shadow:inset 0 0 0 1px var(--ink); }
.choice input:focus-visible + span{ outline:2px solid var(--red); outline-offset:3px; }
.check{ display:flex; gap:12px; align-items:flex-start; font-size:.9375rem; color:var(--ink-2); padding:10px 0; cursor:pointer; }
.check input{ width:18px; height:18px; margin:3px 0 0; accent-color:var(--ink); flex:none; }
.calc-carry{ display:none; margin-bottom:28px; padding:16px 18px; border-radius:var(--r-ctl); background:var(--red-tint); font-size:.9375rem; }
.calc-carry.show{ display:block; }
.form-note{ font-size:.875rem; color:var(--muted); margin-top:20px; max-width:70ch; }
.form-status{ display:none; margin-top:24px; padding:20px; border-radius:var(--r-ctl); background:var(--grey); font-size:.9375rem; }
.form-status.show{ display:block; }
.aside-box{ position:sticky; top:calc(var(--header-h) + 24px); padding:32px; border-radius:var(--r-img); background:var(--grey); }
.aside-box h2{ font-size:1.25rem; letter-spacing:-.02em; }
.aside-box .ticks{ margin-top:12px; }
.aside-box .ticks li{ font-size:.9375rem; padding:7px 0 7px 30px; }
.aside-box hr{ border:0; border-top:1px solid var(--line-2); margin:24px 0; }
.aside-box .big{ display:block; font-size:1.75rem; font-weight:700; letter-spacing:-.03em; }
.aside-box .big:hover{ color:var(--red); }

/* ---------- stopka ---------- */
.site-footer{ background:var(--ink); color:var(--on-dark); padding:72px 0 32px; font-size:.9375rem; }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:48px; }
.foot-title{ color:#fff; font-weight:700; margin:0 0 18px; }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:10px; }
.site-footer a{ text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.site-footer .brand-name{ color:#fff; }
.site-footer .brand-sub{ color:#9a9aa2; }
.site-footer .brand + p{ margin-top:16px; max-width:36ch; }
.footer-bottom{ margin-top:56px; padding-top:24px; border-top:1px solid #2e2e34; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.875rem; color:#9a9aa2; }
.footer-bottom a{ text-decoration:underline; text-underline-offset:.2em; text-decoration-color:#4a4a52; }

/* ---------- pasek na telefonie ---------- */
.mobile-bar{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:70; background:#fff; border-top:1px solid var(--line); padding:10px 16px calc(10px + env(safe-area-inset-bottom)); grid-template-columns:1fr 1fr; gap:10px; }
.mobile-bar .btn{ height:50px; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* ---------- RWD ---------- */
@media (max-width:1180px){
  .header-phone{ display:none; }
  .steps{ grid-template-columns:repeat(3, 1fr); row-gap:40px; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:980px){
  .burger{ display:block; }
  .header-cta .btn{ display:none; }
  .nav{ position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch; background:#fff; border-bottom:1px solid var(--line); padding:8px var(--gutter) 16px; }
  .nav.open{ display:flex; }
  .nav a{ height:54px; padding:0; border-bottom:1px solid var(--line); border-radius:0; font-size:1.0625rem; }
  .nav a:hover{ background:transparent; }
  .nav a[aria-current="page"]::after{ display:none; }
  .nav a[aria-current="page"]{ color:var(--red); }
  .nav a.nav-quote{ display:flex; color:var(--red); font-weight:600; border-bottom:0; }
  .hero{ padding:16px 0 40px; }
  .hero-grid, .page-hero .hero-grid{ grid-template-columns:1fr; gap:0; min-height:0; }
  .hero-media{ order:-1; height:52vh; min-height:300px; }
  .hero-copy{ padding:32px 0 0; }
  .hero-copy .btn-row .btn{ flex:1 1 100%; }
  .facts-row{ grid-template-columns:1fr 1fr; }
  .facts-row > div{ padding:20px 16px; border-left:1px solid var(--line); }
  .facts-row > div:nth-child(odd){ border-left:0; padding-left:0; }
  .facts-row > div:nth-child(-n+2){ border-bottom:1px solid var(--line); }
  .paths, .units, .tiles3{ grid-template-columns:1fr; }
  .unit--wide{ grid-column:auto; grid-template-columns:1fr; gap:20px; }
  .calc{ grid-template-columns:1fr; }
  .calc-result{ position:static; }
  .grid-2, .two-col, .form-layout, .closing-box{ grid-template-columns:1fr; gap:36px; }
  .closing-box .btn-row{ justify-content:flex-start; }
  .band, .band--flip{ grid-template-columns:1fr; }
  .band-media{ order:-1; min-height:300px; }
  .band-copy, .band--flip .band-copy{ padding:56px var(--gutter) 64px; }
  .head--split{ flex-direction:column; align-items:flex-start; gap:16px; }
  .aside-box, .toc{ position:static; }
  .mobile-bar{ display:grid; }
  body{ padding-bottom:74px; }
}
@media (max-width:640px){
  body{ font-size:1rem; }
  .section{ padding:72px 0; }
  .section--s{ padding:56px 0; }
  .closing{ padding-bottom:72px; }
  .closing-box{ padding:32px 24px; }
  .steps{ grid-template-columns:1fr; }
  .field-row, .choice-grid, .ticks--2{ grid-template-columns:1fr; }
  .contact-list dl{ grid-template-columns:1fr; gap:2px; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
  .facts-row b{ font-size:1.625rem; }
  .calc-form, .calc-result{ padding:28px 22px; }
  .brand-sub{ display:none; }
}
