/* pasportbudov.cz · společný styl všech stránek
   Vizuální jazyk: varianta 1 · Cihla (web/design.md). Barvy jen přes proměnné.
   Fonty self-hostované, licence OFL, viz web/licence.md. */

@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/nunito-900-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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/nunito-900-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:'Archivo Web';font-style:normal;font-weight:700 900;font-display:swap;src:url(../fonts/archivo-700-900-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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo Web';font-style:normal;font-weight:700 900;font-display:swap;src:url(../fonts/archivo-700-900-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:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter-400-700-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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter-400-700-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:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-400-500-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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-400-500-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}
/* Náhradní písmo nadpisů, šířkou srovnané s Archivem (30. 10. 2026): bez něj se nadpis hera na mobilu před načtením
   písma zalomil o řádek méně a tlačítka po výměně poskočila (Lighthouse CLS 0,019). Poměr šířek Archivo/Arial změřen
   v Chrome na textu nadpisů: 900 = 1,0995, 800 = 1,0309. Arial má jen tučný řez, proto local('Arial Bold').
   Webové písmo se jmenuje 'Archivo Web', aby se před načtením nepoužilo Archivo nainstalované v systému (je na Macu Matěje). */
@font-face{font-family:'Archivo Fallback';font-style:normal;font-weight:900;src:local('Arial Bold'),local('Arial-BoldMT');size-adjust:110%}
@font-face{font-family:'Archivo Fallback';font-style:normal;font-weight:700 800;src:local('Arial Bold'),local('Arial-BoldMT');size-adjust:103.09%}

:root{
  --blue:#4A6AB5; --blue-dark:#3C568F; --blue-xdark:#2E4270; --blue-soft:#EEF1F8;
  --ink:#1A1D28; --ink-soft:#545870; --line:#E4E7F0; --bg:#FFFFFF; --bg-alt:#F6F7FB;
  --accent:#A8452E; --accent-dark:#8C3823; --accent-text:#A8452E; --accent-soft:#F8EAE5;
  --btn-blue-text:#FFFFFF; --btn-accent-text:#FFFFFF;
  --hero-bg:#141A2B; --hero-text:#FBFBFC; --hero-accent:#F2A58C; --hero-sub:#C3C8D8;
  --hero-mono:#E8A48E; --hero-line:#8E9AB8; --hero-line-soft:#3A4461; --grid:#1F2740;
  --hero-btn2-text:#FFFFFF; --hero-btn2-border:#7D86A3; --focus-hero:#F2A58C;
  --card-bg:#FFFFFF; --label:#545870; --placeholder:#6B7088; --input-border:#8E93A8; --focus:#4A6AB5;
  --chip-bg:#F1F3F8; --chip-text:#3C568F;
  --foot-bg:#141A2B; --foot-text:#C3C8D8; --foot-link:#FBFBFC;
  --sec-bg:var(--bg); --card-top:var(--accent);
  --btn-form:var(--accent); --btn-form-hover:var(--accent-dark); --btn-form-text:var(--btn-accent-text);
  --err:#8C3823;
  --radius:16px; --radius-sm:10px; --maxw:1240px;
  /* Vizuální audit (finále 30. 10. 2026): jeden rytmus mezer (základ 4 px, hlavní kroky násobky 8 px), jedno vnitřní odsazení
     karet, jedna typografická stupnice pro všechny stránky a jedna šířka textového řádku (68 znaků). */
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:32px; --sp-5:40px; --sp-6:48px; --sp-7:56px;
  /* --measure: 68 znaků na řádek. Inter má 1ch = 0,63 em a průměrný znak českého textu 0,49 em, proto 54ch (změřeno 30. 10. 2026: 54ch = 69 znaků při 17 px). */
  --card-pad:24px; --card-pad-sm:16px; --card-gap:12px; --measure:54ch;
  --fs-h1:clamp(32px,3.9vw,52px); --fs-h2:clamp(28px,3.4vw,42px); --fs-h2-sm:clamp(22px,2.4vw,28px);
  --fs-h3-lg:24px; --fs-h3:19px; --fs-text:17px; --fs-sm:15.5px; --fs-xs:13px;
  --font-wordmark:'Nunito',sans-serif; --font-head:'Archivo Web','Archivo Fallback',sans-serif; --font-text:'Inter',system-ui,sans-serif; --font-mono:'JetBrains Mono',ui-monospace,monospace;
  /* výkres na světlém podkladu */
  --pl-bg:#FFFFFF; --pl-line:#2E4270; --pl-line-soft:#B9C0D4; --pl-fill:#F6F7FB; --pl-dim:#A8452E; --pl-room:#545870; --pl-num:#A8452E;
  /* pruh skupiny a karty skupiny (design.md, oddíl Pruh skupiny): barvy skupiny jen na tmavém podkladu */
  --gs-bg:#0E1322; --gs-line:#262E47; --gs-label:#C3C8D8; --gs-text:#FBFBFC;
  --gs-np:#4A6AB5; --gs-ing:#EDCD20; --gs-dtm:#16A578;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font-family:var(--font-text);font-size:var(--fs-text);line-height:1.55;color:var(--ink);background:var(--bg)}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:800;line-height:1.1;letter-spacing:-.015em;margin:0}
p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0}
a{color:var(--blue-dark);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--blue-xdark)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.dark a:focus-visible,.dark button:focus-visible,.dark summary:focus-visible{outline-color:var(--focus-hero)}
.form-card a:focus-visible,.form-card button:focus-visible,.form-card input:focus-visible,.form-card select:focus-visible,.form-card textarea:focus-visible,.form-card summary:focus-visible{outline-color:var(--focus)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
@media(min-width:720px){.wrap{padding:0 32px}}
.mono{font-family:var(--font-mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nowrap{white-space:nowrap}

/* skip link */
.skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--bg);color:var(--ink);padding:12px 18px;border-radius:10px;font-weight:600;text-decoration:none;box-shadow:0 6px 20px rgba(10,14,30,.3)}
.skip:focus{top:12px}

/* tmavé plochy */
.dark{background:var(--hero-bg);color:var(--hero-text)}

/* wordmark */
.wordmark{font-family:var(--font-wordmark);font-weight:900;font-size:24px;letter-spacing:-.02em;line-height:1;text-decoration:none;color:var(--ink);display:inline-flex;align-items:baseline;gap:.28em}
.wordmark b{font-weight:900;color:var(--accent-text)}
.dark .wordmark{color:var(--hero-text)}
.dark .wordmark b{color:var(--hero-accent)}
.wordmark:hover{color:inherit}

/* hlavička */
/* 30. 10. 2026 (audit): odsazení 12 px + logo s paddingem 6 px = stejná výška hlavičky jako dřív (18 px), ale logo je cíl dotyku 44 px */
.site-head{position:relative;z-index:20}
.site-head .nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.nav .links{display:none;gap:22px;font-weight:500;font-size:15.5px;list-style:none}
.nav .links a{display:inline-flex;align-items:center;min-height:44px;padding:0 2px;color:var(--hero-text);text-decoration:none;opacity:.92}
.nav .links a:hover{text-decoration:underline;opacity:1}
@media(min-width:1040px){.nav .links{display:flex}}
/* Menu na mobilu a tabletu (audit 30. 10. 2026): do 1039 px byly odkazy na sekce nedostupné (.links skryté). Řešení bez JS:
   <details class="menu"> se stejnými odkazy, na desktopu skryté (display:none, čtečky vidí jen jeden seznam). Panel je absolutně
   pod hlavičkou, zavírá se dalším klepnutím na Menu; cíle dotyku 44 px. */
.menu{position:relative;margin-left:auto}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 6px;font-weight:600;font-size:15.5px;color:var(--hero-text);border-radius:8px;user-select:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary svg{width:22px;height:22px;flex:0 0 auto}
.menu[open] summary .i-open,.menu summary .i-close{display:none}
.menu[open] summary .i-close{display:block}
.menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:248px;list-style:none;margin:0;padding:8px;background:var(--hero-bg);border:1px solid var(--hero-line-soft);border-radius:12px;box-shadow:0 16px 40px -12px rgba(10,14,30,.6)}
.menu-list a{display:flex;align-items:center;min-height:44px;padding:0 12px;color:var(--hero-text);text-decoration:none;font-weight:500;font-size:15.5px;border-radius:8px}
.menu-list a:hover{background:var(--grid);text-decoration:underline}
@media(min-width:1040px){.menu{display:none}}

/* tlačítka */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-text);font-weight:600;font-size:15.5px;line-height:1.2;padding:14px 24px;border-radius:10px;border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:background-color .2s,border-color .2s;min-height:48px;text-align:center}
.btn svg{width:18px;height:18px;flex:0 0 auto}
.btn-accent{background:var(--accent);color:var(--btn-accent-text);border-color:var(--accent)}
.btn-accent:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:var(--btn-accent-text)}
.btn-blue{background:var(--blue);color:var(--btn-blue-text);border-color:var(--blue)}
.btn-blue:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:var(--btn-blue-text)}
.btn-ghost{background:transparent;color:var(--hero-btn2-text);border-color:var(--hero-btn2-border)}
.btn-ghost:hover{border-color:var(--hero-text);color:var(--hero-btn2-text)}
.btn-line{background:transparent;color:var(--blue-dark);border-color:var(--input-border)}
.btn-line:hover{border-color:var(--blue-dark);color:var(--blue-dark)}
.btn-sm{gap:0;padding:10px 18px;font-size:14.5px;min-height:44px;white-space:nowrap}
@media(max-width:480px){.nav .btn-sm .long{display:none}}

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.35) 70%,transparent);mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.35) 70%,transparent)}
/* mřížka hera: na mobilu text, karta, čísla pod sebou; od 980 px dva sloupce, výšku řádku určuje karta (align-items:stretch),
   čísla skupiny (.hero-trust) sedí ve spodním řádku levého sloupce a lícují se spodní hranou karty */
.hero-grid{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "card" "trust";gap:var(--sp-4);padding:var(--sp-3) 0}
.hero-grid>*{min-width:0}
.hero-left{grid-area:copy}
.hero-right{grid-area:card}
/* kompaktní hero (dodatek „kompaktní web a kóty u karty“, 30. 10. 2026): menší odstupy, horní odsazení 40 px pojme kótu nad kartou (34 px) */
.hero-trust{grid-area:trust;align-self:end;margin-top:24px}
.hero-trust .trust{margin-top:0}
@media(min-width:980px){.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"copy card" "trust card";grid-template-rows:auto auto;gap:0 56px;padding:40px 0 48px;align-items:stretch}}
.eyebrow{display:flex;align-items:flex-start;gap:12px;color:var(--hero-mono);margin-bottom:var(--sp-3);line-height:1.5}
.eyebrow::before{content:"";flex:0 0 auto;width:22px;height:1px;margin-top:.75em;background:currentColor;opacity:.7}
/* max-width v em místo 20ch: ch závisí na šířce nuly písma a náhradní písmo by nadpis zalomilo jinak (30. 10. 2026) */
.hero h1{font-size:var(--fs-h1);font-weight:900;max-width:13.04em;line-height:1.07}
.hero h1 .l2{display:block;color:var(--hero-accent)}
.hero .sub{color:var(--hero-sub);font-size:clamp(17px,1.5vw,19.5px);max-width:52ch;margin:var(--sp-3) 0 var(--sp-4)}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px}
.trust{display:flex;flex-wrap:wrap;gap:0 28px;margin-top:40px;padding-top:16px;border-top:1px solid var(--hero-line-soft);color:var(--hero-sub);list-style:none}
.trust li{display:flex;flex-direction:column;gap:4px;padding:var(--sp-1) 0}
.trust strong{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--hero-text);letter-spacing:-.01em;line-height:1.2}
.trust span{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--hero-mono)}
.trust-light{border-top-color:var(--line);margin-top:28px}
.trust-light strong{color:var(--ink)}
.trust-light span{color:var(--accent-text)}

.hero-left,.hero-right{position:relative}
/* karta v heru vyplní celou výšku řádku (když je levý sloupec vyšší), věta pod formulářem drží u spodní hrany */
.hero-right{display:flex;flex-direction:column}
.hero-right .form-card{flex:1 0 auto;display:flex;flex-direction:column}
.hero-right .form-card>.form-note{margin-top:auto;padding-top:14px}
/* kóty karty v heru (oprava 30. 10. 2026: kóty patří na kartu formuláře, ne na dům): dekorace, jen od 980 px.
   SVG vytváří js/koty.js (bez JS žádné kóty, žádná falešná čísla); překrývá celý .hero-right a kreslí v pixelech
   podle změřené karty. Linka je --hero-line (modrošedá jako čáry výkresu), číslo cihlové --hero-mono jako .dim ve výkresu. */
.kota-svg{display:none}
@media(min-width:980px){
  .kota-svg{display:block;position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
  .kota-svg line{stroke:var(--hero-line);stroke-width:1;fill:none;shape-rendering:crispEdges}
  .kota-svg .k-t{shape-rendering:auto}
  .kota-svg text{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.03em;fill:var(--hero-mono)}
}
.plan.hero-plan{display:none}
/* dekorativní výkres: jen desktop, za levým sloupcem (vkládá js/vykres.js z šablony #hero-plan-src), ztlumený, nikdy za kartou.
   30. 10. 2026: půdorys s mřížkou a kótami z archivu (viewBox 620 × 520), opacity .3, maska do ztracena dole. */
@media(min-width:980px){
  .plan.hero-plan{display:block;position:absolute;top:-36px;left:-48px;width:calc(100% + 96px);height:auto;z-index:-1;pointer-events:none;opacity:.3;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
}

/* výkres (společné třídy pro hero, ukázku i og:image) */
.plan{display:block;width:100%;height:auto}
.plan text{font-family:var(--font-mono);font-size:11px;letter-spacing:.03em}
.plan .wall{fill:none;stroke:var(--pl-line);stroke-width:2.8;stroke-linejoin:miter}
.plan .inner{fill:none;stroke:var(--pl-line);stroke-width:1.5}
.plan .gap{fill:var(--pl-bg);stroke:none}
.plan .leaf{fill:none;stroke:var(--pl-line);stroke-width:1.2}
.plan .door{fill:none;stroke:var(--pl-line);stroke-width:1;stroke-dasharray:3 3}
.plan .win{fill:var(--pl-bg);stroke:var(--pl-line);stroke-width:1.2}
.plan .soft{fill:none;stroke:var(--pl-line-soft);stroke-width:1}
.plan .dim{fill:none;stroke:var(--pl-dim);stroke-width:1}
.plan .dim-t{fill:var(--pl-dim);font-weight:500}
.plan .room{fill:var(--pl-room);font-size:11px}
.plan .room-n{fill:var(--pl-num);font-weight:500;font-size:12px}
.plan .tag{fill:var(--pl-dim);font-size:11px;letter-spacing:.12em;font-weight:500}
.plan .fill{fill:var(--pl-fill)}
.plan .north{fill:var(--pl-dim)}
.hero-plan{--pl-bg:var(--hero-bg);--pl-line:var(--hero-line);--pl-line-soft:var(--hero-line-soft);--pl-fill:rgba(142,154,184,.05);--pl-dim:var(--hero-mono);--pl-room:var(--hero-line);--pl-num:var(--hero-mono)}
/* v heru úvodní stránky zůstávají jen čáry, mřížka a kóty; názvy místností, čísla a titulek by se bily s textem */
.hero-plan:not(.plan-dum) .room,.hero-plan:not(.plan-dum) .room-n,.hero-plan:not(.plan-dum) .tag{display:none}
@media(max-width:640px){.plan-ukazka text{font-size:15px}.plan-ukazka .room,.plan-ukazka .room-n{font-size:15px}.plan-ukazka .tag{font-size:13px}}

/* karta formuláře */
.form-card{position:relative;z-index:1;background:var(--card-bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);box-shadow:0 24px 56px -20px rgba(10,14,30,.45),0 2px 6px rgba(10,14,30,.08);max-width:none;margin-left:0}
/* 30. 10. 2026: karta v heru na celou šířku sloupce (dřív max-width 500 px s prázdným pruhem vlevo), kóty lícují s její hranou */
.popt-form .form-card{box-shadow:0 2px 6px rgba(10,14,30,.06)}
.form-card h2,.sec .form-card h2{font-size:var(--fs-h3-lg);margin-bottom:6px;max-width:none}
.popt-form .form-card h2{margin-bottom:14px}
.form-card .lead{color:var(--ink-soft);font-size:15px;margin-bottom:18px;line-height:1.5}
.req-note{font-size:13px;color:var(--ink-soft);margin-bottom:14px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}
.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}
@media(max-width:460px){.row2{grid-template-columns:minmax(0,1fr)}}
.field label{font-size:13.5px;font-weight:600;color:var(--label);line-height:1.35}
.req{color:var(--accent-text)}
.input{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--input-border);border-radius:9px;padding:11px 12px;width:100%;min-height:46px}
.input::placeholder{color:var(--placeholder)}
textarea.input{resize:vertical;min-height:96px;line-height:1.5}
select.input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23545870' stroke-width='1.8'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
.input[aria-invalid="true"]{border:2px solid var(--err);padding:10.5px 11.5px}
.hint{font-size:13px;color:var(--ink-soft);line-height:1.4}
.err{display:flex;gap:6px;align-items:flex-start;font-size:13.5px;font-weight:600;color:var(--err);line-height:1.4}
.err::before{content:"!";flex:0 0 auto;display:inline-grid;place-items:center;width:17px;height:17px;margin-top:1px;border-radius:50%;background:var(--err);color:#fff;font-size:11.5px;font-weight:700}
.err[hidden]{display:none}
.more{margin-bottom:14px;border:1px dashed var(--input-border);border-radius:9px}
.more summary{cursor:pointer;padding:11px 12px;font-size:14.5px;font-weight:600;color:var(--blue-dark);list-style:none;display:flex;align-items:center;gap:8px;min-height:44px}
.more summary::-webkit-details-marker{display:none}
.more summary::before{content:"+";font-family:var(--font-mono);font-weight:500;color:var(--accent-text);width:14px}
.more[open] summary::before{content:"\2212"}
.more .field{padding:0 12px 4px;margin-bottom:10px}
.check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 8px;font-size:14px;color:var(--ink-soft);line-height:1.45}
.check input{width:20px;height:20px;margin:1px 0 0;flex:0 0 auto;accent-color:var(--accent)}
.check label{font-weight:500;color:var(--ink-soft)}
.check-wrap{margin-bottom:12px}
.check-wrap .err{margin-left:30px}
.form-off{display:flex;gap:10px;align-items:flex-start;background:var(--accent-soft);color:var(--ink);border-radius:9px;padding:12px 14px;font-size:14px;line-height:1.45;margin:6px 0 12px}
.form-off svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px;color:var(--accent-text)}
.form-off a{color:var(--accent-dark);font-weight:600}
.form-off[hidden]{display:none}
.form-card .btn-submit{width:100%;background:var(--btn-form);border-color:var(--btn-form);color:var(--btn-form-text)}
.form-card .btn-submit:hover{background:var(--btn-form-hover);border-color:var(--btn-form-hover)}
.form-card .btn-submit:disabled{opacity:.55;cursor:not-allowed}
.form-card .btn-submit:disabled:hover{background:var(--btn-form);border-color:var(--btn-form)}
.form-status{font-size:14px;font-weight:600;color:var(--err);margin-top:10px;line-height:1.45}
.form-status:empty{display:none}
.form-note{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:14px;color:var(--ink-soft);line-height:1.45}
.form-note svg{width:18px;height:18px;flex:0 0 auto;margin-top:2px;color:var(--accent-text)}
.form-note a{color:var(--blue-dark);font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* sekce */
/* kompaktní sekce (dodatek „kompaktní web a kóty u karty“, 30. 10. 2026): 44 px na mobilu, 56 px od 980 px, hlava sekce 28 px */
.sec{background:var(--sec-bg);padding:var(--sp-6) 0}
.sec.alt{background:var(--bg-alt)}
@media(min-width:980px){.sec{padding:var(--sp-7) 0}}
.sec-num{display:flex;align-items:flex-start;gap:12px;font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin-bottom:16px;line-height:1.5}
.sec-num::before{content:"";flex:0 0 auto;width:22px;height:1px;margin-top:.75em;background:currentColor;opacity:.7}
.sec h2{font-size:var(--fs-h2);max-width:24ch}
.sec .intro{color:var(--ink-soft);max-width:62ch;font-size:clamp(16.5px,1.3vw,18.5px)}
.sec-head{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}
/* 30. 10. 2026 (audit): stejný odstup hlavy sekce od obsahu i tam, kde H2 stojí ve sloupci (.po-h2 místo inline stylů), a poznámky pod mřížkami */
.po-h2{margin-top:var(--sp-4)}
.popt-head .intro{margin-top:var(--sp-2)}
.sec>.wrap>.note{margin-top:var(--sp-3)}
.sample>.note{margin-top:20px;max-width:none}
.doc .note{margin-top:var(--sp-4)}
.page-head .cta{margin-top:var(--sp-4)}
@media(min-width:980px){.sec-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:48px}.sec-head .intro{padding-bottom:4px}}
.prose{max-width:var(--measure)}
.prose p+p{margin-top:var(--sp-2)}
.two{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
@media(min-width:980px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}}
/* 30. 10. 2026 (oprava po auditu kompaktnosti): odstavce sekce 01 ve dvou sloupcích; na mobilu jdou za sebou s rozestupem jako p+p */
.two-prose{gap:var(--sp-2)}
@media(min-width:980px){.two-prose{gap:56px}}
.note{color:var(--ink-soft);font-size:var(--fs-sm);max-width:var(--measure)}

/* karty */
.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);list-style:none}
@media(min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}}
.card{position:relative;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);display:flex;flex-direction:column;gap:var(--card-gap);overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--card-top)}
.card .ico{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent-text);display:grid;place-items:center}
.card .ico svg{width:24px;height:24px}
.card .num{position:absolute;right:20px;top:20px;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--accent-text)}
.card h3{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.01em;line-height:1.25}
.card p{color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.55}
/* 30. 10. 2026 (audit): karta bez řádku formátů (05 Podklad pro mapu) drží štítek „Balíček“ na stejné výšce jako sousední karty */
.cards:has(.chips) .card:not(:has(.chips)) .pkg-tag:last-child{margin-bottom:38px}
.card .grow{flex:1}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;list-style:none}
.chip{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;background:var(--chip-bg);color:var(--chip-text);padding:5px 9px;border-radius:6px;line-height:1.3}
.pkg-tag{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}
.pkg-tag b{color:var(--accent-text);font-weight:500}
.sec-foot{margin-top:var(--sp-4);display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;justify-content:space-between;padding:var(--card-pad);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-alt)}
.sec.alt .sec-foot{background:var(--bg)}
.sec-foot p{color:var(--ink-soft);font-size:var(--fs-sm);max-width:64ch}
.sec-foot p strong{color:var(--ink);font-weight:600}

/* kroky */
.steps{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:0;counter-reset:krok;border-top:1px solid var(--line)}
@media(min-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}}
.steps li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 12px;padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}
.steps .n{grid-row:span 2;font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.06em;color:var(--accent-text);padding-top:3px}
.steps h3{font-size:var(--fs-h3);font-weight:700;line-height:1.3}
.steps p{color:var(--ink-soft);font-size:16px;max-width:var(--measure)}
.steps .t{display:block;margin-top:6px;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-dark)}

/* ukázka */
/* 30. 10. 2026 (audit kolo 2): spodní odsazení karty 12/14 px místo 22/28 px, pod poznámkou vznikal s odstupy sekcí pás 142 px bez obsahu */
.sample{position:relative;border:2px solid var(--accent);border-radius:var(--radius);background:var(--bg);padding:52px var(--card-pad-sm) var(--card-pad-sm)}
@media(min-width:720px){.sample{padding:56px var(--card-pad) var(--card-pad-sm)}}
.sample-flag{position:absolute;top:-1px;left:-1px;display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:8px 14px;border-radius:14px 0 12px 0}
.sample-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
@media(min-width:1040px){.sample-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:var(--sp-5);align-items:stretch}}
/* 5. 11. 2026: metadata (.kv) pod půdorysem v levém sloupci, vpravo jen tabulka. Od 1040 px tabulka bez zalamování
   a natažená na výšku levého sloupce, aby pod půdorysem ani pod tabulkou nezůstalo prázdné místo. */
.sample-plan .kv{margin:var(--sp-3) 0 0}
.sample .tbl th,.sample .tbl td{padding:6px 8px;line-height:1.35}
@media(min-width:1040px){.sample-data{display:flex;flex-direction:column}.sample-data .tbl-wrap{flex:1 1 auto;display:flex;flex-direction:column}.sample-data .tbl{flex:1 1 auto}.sample .tbl th,.sample .tbl td{white-space:nowrap}.sample-data .tbl tbody th,.sample-data .tbl tbody td,.sample-data .tbl tfoot th,.sample-data .tbl tfoot td{vertical-align:middle}}
.sample figure{margin:0}
.sample figcaption{margin-top:10px;font-size:14px;color:var(--ink-soft)}
.kv{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 18px;font-size:15px;margin-bottom:var(--sp-3);padding:var(--card-pad-sm) var(--card-pad);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-alt)}
.kv dt{font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);padding-top:3px}
.kv dd{font-weight:600}

/* tabulka */
.tbl-wrap{width:100%;overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl caption{text-align:left;font-family:var(--font-head);font-weight:700;font-size:18px;margin-bottom:10px}
.tbl th,.tbl td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl thead th{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1.5px solid var(--ink-soft)}
.tbl tbody th{font-weight:600}
.tbl .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .code{font-family:var(--font-mono);font-size:13.5px;color:var(--accent-text);white-space:nowrap}
.tbl tfoot td,.tbl tfoot th{font-weight:700;border-bottom:none;border-top:1.5px solid var(--ink-soft)}
@media(max-width:719px){
  .tbl-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl-cards,.tbl-cards caption,.tbl-cards tbody,.tbl-cards tfoot,.tbl-cards tr,.tbl-cards th,.tbl-cards td{display:block;width:100%}
  .tbl-cards tr{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 14px;margin-bottom:10px;background:var(--bg)}
  .tbl-cards th,.tbl-cards td{border:none;padding:4px 0;display:flex;gap:12px;justify-content:space-between;text-align:right}
  .tbl-cards [data-label]::before{content:attr(data-label);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);text-align:left;font-weight:500;padding-top:2px}
  .tbl-cards .r{white-space:normal}
  .tbl-cards tfoot tr{background:var(--bg-alt)}
  .tbl-cards tfoot th,.tbl-cards tfoot td{border-top:none}
}

/* balíčky */
.pkgs{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);list-style:none}
@media(min-width:1040px){.pkgs{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}}
.pkg{position:relative;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);display:flex;flex-direction:column;gap:var(--card-gap);overflow:hidden}
.pkg::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--card-top)}
.pkg h3{font-size:var(--fs-h3-lg);font-weight:800}
.pkg .lvl{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}
.pkg .what{color:var(--ink-soft);font-size:var(--fs-sm)}
.ticks{list-style:none;display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-sm);flex:1}
.ticks li{position:relative;padding-left:26px;line-height:1.45}
.ticks li::before{content:"";position:absolute;left:2px;top:.32em;width:12px;height:7px;border-left:2px solid var(--accent-text);border-bottom:2px solid var(--accent-text);transform:rotate(-45deg)}
.pkg dl{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 14px;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px}
.pkg dt{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);padding-top:2px}
.pkg dd{color:var(--ink)}
.pkg-note{margin-top:var(--sp-2);color:var(--ink-soft);font-size:var(--fs-sm);max-width:var(--measure)}
/* 5. 11. 2026: tři poznámky pod balíčky ve sloupcích jako karty (.pkgs mají 3 sloupce od 1040 px, proto stejný bod zlomu) */
.pkg-notes{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);margin-top:var(--sp-3)}
.pkg-notes .pkg-note{margin:0;font-size:15px;max-width:var(--measure)}
@media(min-width:1040px){.pkg-notes{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.pkg-notes .pkg-note{max-width:none}}
.price-box{margin-top:var(--sp-4);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);padding:var(--card-pad);border-radius:var(--radius);background:var(--blue-soft)}
@media(min-width:980px){.price-box{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:var(--sp-5);padding:var(--sp-4)}}
.price-box h3{font-size:var(--fs-h3-lg);margin-bottom:var(--sp-1)}
.price-box p{color:var(--ink);font-size:16px;max-width:var(--measure)}
.price-box p+p{margin-top:8px}
.price-box .btn{justify-self:start}
@media(min-width:980px){.price-box .btn{justify-self:end}}
/* 5. 11. 2026: vpravo příklady výpočtu a pod nimi tlačítko */
.price-side{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
.price-side .btn{align-self:flex-start}
.price-ex{width:100%;border-collapse:collapse;font-size:14.5px;background:var(--bg);border-radius:var(--radius-sm);overflow:hidden}
.price-ex caption{text-align:left;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}
.price-ex th,.price-ex td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;line-height:1.35}
.price-ex tbody tr:last-child th,.price-ex tbody tr:last-child td{border-bottom:none}
.price-ex thead th{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.price-ex tbody th{font-weight:600}
.price-ex tbody th span{display:block;font-weight:400;color:var(--ink-soft);font-size:13.5px}
.price-ex .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-ex .r small{display:block;font-size:12.5px;color:var(--ink-soft)}
@media(min-width:980px){.price-side .btn{align-self:stretch;justify-content:center}}

/* kdo za tím stojí */
.contact-card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);display:flex;flex-direction:column;gap:var(--card-gap);align-self:start}
.contact-card .role{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}
.contact-card .name{color:var(--ink);font-family:var(--font-head);font-weight:800;font-size:var(--fs-h3-lg);line-height:1.2}
.contact-card p{color:var(--ink-soft);font-size:var(--fs-sm);max-width:var(--measure)}
.contact-lines{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:6px}
.contact-lines a{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:17px;min-height:44px;color:var(--blue-dark)}
.contact-lines svg{width:20px;height:20px;color:var(--accent-text);flex:0 0 auto}

/* FAQ */
/* FAQ ve dvou sloupcích (dodatek „kompaktní web a kóty u karty“, 30. 10. 2026): vlevo otázky (max. 760 px),
   vpravo lepící karta s kontaktem a pod ní zdroje; na mobilu pod sebou v pořadí otázky, kontakt, zdroje */
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
.faq-aside{display:flex;flex-direction:column;gap:24px;min-width:0}
.faq-aside .sources{margin-top:0}
.faq-contact p{color:var(--ink-soft);font-size:var(--fs-sm)}
@media(min-width:980px){.faq-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:56px;align-items:start}.faq-aside{position:sticky;top:24px}}
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line);max-width:760px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:var(--sp-2) 0;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:var(--fs-h3);font-weight:700;line-height:1.35}
.faq summary::after{content:"+";flex:0 0 auto;font-family:var(--font-mono);font-size:22px;line-height:1;color:var(--accent-text);width:22px;text-align:center;margin-top:2px}
.faq details[open] summary::after{content:"\2212"}
.faq .a{padding:0 40px var(--sp-3) 0;color:var(--ink-soft);max-width:var(--measure)}
.sources{margin-top:var(--sp-4);font-size:14px;color:var(--ink-soft);max-width:900px}
.sources h3{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;color:var(--ink-soft)}
.sources ul{list-style:none;display:flex;flex-direction:column;gap:0}
/* 30. 10. 2026 (audit): odkazy na zdroje jako řádky s cílem dotyku 44 px */
.sources li a{display:flex;align-items:center;min-height:44px}

/* poptávka */
.cta-box{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media(min-width:980px){.cta-box{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:start}}
.cta-box .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.cta-box .addr{margin-top:20px;font-size:14.5px;color:var(--ink-soft)}
/* sekce Poptávka na úvodní stránce: nadpis, plný formulář, kontaktní karta */
.popt-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "form" "contact";gap:24px}
.popt-head{grid-area:head}
.popt-form{grid-area:form}
.popt-grid .contact-card{grid-area:contact}
.popt-grid .addr{margin-top:20px;font-size:14.5px;color:var(--ink-soft)}
@media(min-width:980px){.popt-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"head form" "contact form";grid-template-rows:auto 1fr;gap:32px 56px;align-items:start}
  /* 30. 10. 2026: kontaktní karta vedle dlouhého formuláře se lepí, aby levý sloupec nebyl při rolování prázdný */
  .popt-grid .contact-card{position:sticky;top:24px}}

/* patička */
.foot{background:var(--foot-bg);color:var(--foot-text);padding:40px 0 24px;font-size:14.5px}
.foot a{color:var(--foot-link);text-decoration:none}
.foot a:hover{text-decoration:underline;color:var(--foot-link)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media(min-width:720px){.foot-grid{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}}
.foot h2{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--hero-mono);margin-bottom:12px}
/* 30. 10. 2026 (audit): každý řádek patičky 44 px (i řádek bez odkazu), odkazy jsou cíle dotyku 44 px */
.foot ul{list-style:none;display:flex;flex-direction:column;gap:0}
.foot li{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;min-height:44px}
.foot ul a{display:inline-flex;align-items:center;min-height:44px}
.foot .sub{color:var(--foot-text)}
.foot-about p{margin-top:var(--sp-2);max-width:36ch}
.foot-bottom{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--hero-line-soft);font-size:13.5px}

/* podstránky */
.page-head{padding-top:var(--sp-3);padding-bottom:var(--sp-7)}
.page-head h1{font-size:var(--fs-h1);font-weight:900;max-width:22ch}
.page-head .sub{color:var(--hero-sub);margin-top:var(--sp-2);max-width:60ch;font-size:18px}
.doc{padding:var(--sp-7) 0 88px}
/* 30. 10. 2026 (audit): text dokumentu na stejné levé ose jako nadpis v záhlaví (dřív byl sloupec 74ch vystředěný), řádky do 68 znaků */
.doc .wrap.prose{max-width:var(--maxw)}
.doc .prose>*{max-width:var(--measure)}
.doc h2{font-size:var(--fs-h2-sm);margin:var(--sp-5) 0 var(--sp-2)}
.doc h2:first-child{margin-top:0}
.doc h3{font-size:var(--fs-h3);font-weight:700;margin:var(--sp-3) 0 var(--sp-1)}
.doc p,.doc li{color:var(--ink)}
/* odrážky vlastní, aby lícovaly s levou hranou odstavce nad seznamem (audit 30. 10. 2026) */
.doc ul,.doc ol{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--sp-1);margin:var(--sp-1) 0}
.doc li{position:relative;padding-left:22px}
.doc ul li::before{content:"";position:absolute;left:4px;top:.66em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.doc ol{counter-reset:pol}
.doc ol li{counter-increment:pol}
.doc ol li::before{content:counter(pol) ".";position:absolute;left:0;font-weight:600;color:var(--accent-text)}
.doc p{margin:var(--sp-1) 0}
.doc .meta{font-family:var(--font-mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-text)}
.doc address{font-style:normal;padding:var(--card-pad-sm) var(--card-pad);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-alt);margin:var(--sp-2) 0;line-height:1.6}
.thanks{padding:var(--sp-6) 0 88px}
.thanks h2{font-size:var(--fs-h2-sm)}
.thanks ol{list-style:none;counter-reset:dal;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);margin:var(--sp-2) 0 var(--sp-3);padding:0}
.thanks ol li{counter-increment:dal;display:grid;grid-template-columns:48px minmax(0,1fr);padding:16px 0;border-bottom:1px solid var(--line)}
.thanks ol li::before{content:"0" counter(dal);font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--accent-text);padding-top:3px}

/* pruh skupiny pod hlavičkou: wordmarky jako text, barva skupiny v značce, kontrast viz design.md */
.group-bar{background:var(--gs-bg);color:var(--gs-label);border-top:1px solid var(--gs-line);border-bottom:1px solid var(--gs-line)}
.group-bar .wrap{padding-top:0;padding-bottom:0;line-height:1.2}
.gb-label{display:inline-block;vertical-align:middle;margin:0 18px 0 0;font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--gs-label);line-height:1.4}
.group-bar ul{display:inline;list-style:none;margin:0;padding:0}
.group-bar li{display:inline-block;vertical-align:middle;margin-right:18px}
.group-bar li:last-child{margin-right:0}
.gs{--gs-t:var(--gs-text);--gs-c:var(--gs-text);display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--font-wordmark);font-weight:900;font-size:15px;letter-spacing:-.005em;line-height:1.2;text-decoration:none;color:var(--gs-t)}
.gs::before{content:"";flex:0 0 auto;width:10px;height:10px;border-radius:2px;background:var(--gs-c)}
.gs-np{--gs-c:var(--gs-np);--gs-t:var(--gs-text)}
.gs-ing{--gs-c:var(--gs-ing);--gs-t:var(--gs-ing)}
.gs-dtm{--gs-c:var(--gs-dtm);--gs-t:var(--gs-dtm)}
.gs:hover{color:var(--gs-t);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.group-bar a:focus-visible,.gcard-head a:focus-visible{outline-color:var(--focus-hero)}

/* Pro koho: tři vstupy */
.entries .entry{padding-bottom:var(--card-pad)}
.entry h3 a{color:var(--ink);text-decoration:none}
.entry h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.entry h3 a:focus-visible{outline:none}
.entry:focus-within{outline:3px solid var(--focus);outline-offset:3px}
.entry:hover{border-color:var(--input-border)}
.entry:hover h3 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.entry .go{margin-top:auto;padding-top:4px;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;color:var(--blue-dark)}
.entry .go svg{width:18px;height:18px}
.card h4{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.01em;line-height:1.25}
.sub-block{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.sub-block .sub-h{font-size:var(--fs-h2-sm);margin-bottom:12px}
.sub-block>.intro{margin-bottom:28px}

/* Jedna skupina, tři weby */
.group-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);list-style:none}
@media(min-width:900px){.group-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}}
.gcard{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.gcard-head{background:var(--gs-bg);padding:var(--card-pad-sm) var(--card-pad)}
.gcard-head h3{font-size:inherit;line-height:1.2}
.gcard-head .gs{font-size:21px;min-height:44px}
.gcard-head .gs::before{width:12px;height:12px}
.gcard-head .dom{display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;color:var(--gs-label)}
.gcard-body{padding:var(--card-pad);display:flex;flex-direction:column;gap:var(--card-gap)}
.gcard-body p{color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.55;max-width:var(--measure)}
.gcard-body .role{color:var(--ink)}
.gcard-body .role-l{display:block;font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-text);margin-bottom:4px}
.group-foot{margin-top:var(--sp-5);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3);align-items:center}
@media(min-width:980px){.group-foot{grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:48px}}
.group-foot .trust-light{margin-top:0}
/* 30. 10. 2026 (oprava po auditu kompaktnosti): od 980 px čísla skupiny pod sebou a roztažená na výšku kontaktní karty,
   aby levý sloupec nebyl z větší části prázdný (dřív jeden řádek 77 px vedle karty 281 px) */
@media(min-width:980px){.group-foot{align-items:stretch}
  .group-foot .trust-light{flex-direction:column;flex-wrap:nowrap;gap:0;padding-top:0;border-top:0;justify-content:space-between}
  .group-foot .trust-light li{flex:1 1 auto;justify-content:center;padding:12px 0;border-top:1px solid var(--line)}
  .group-foot .trust-light li:last-child{border-bottom:1px solid var(--line)}
  .group-foot .trust-light strong{font-size:30px}}
.group-more{margin-top:var(--sp-2);font-size:var(--fs-sm)}

/* pasport stavby */
.hero-points{list-style:none;display:flex;flex-direction:column;gap:10px;margin:-8px 0 30px;max-width:56ch;color:var(--hero-sub);font-size:16px;line-height:1.5}
.hero-points li{position:relative;padding-left:24px}
.hero-points li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:2px;background:var(--hero-mono)}
.pkgs.pkgs-2{grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.pkgs.pkgs-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}
.price-big{font-family:var(--font-head);font-weight:800;font-size:clamp(26px,2.6vw,32px);line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
.legal{margin-top:var(--sp-3);padding:var(--card-pad-sm) var(--card-pad);border-left:3px solid var(--accent);background:var(--bg-alt);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink);font-size:var(--fs-sm);max-width:78ch}
.legal p{max-width:var(--measure)}
.sec.alt .legal{background:var(--bg)}
.legal p+p{margin-top:var(--sp-1)}
.price-big small{display:block;margin-top:4px;font-family:var(--font-text);font-size:16px;font-weight:600;letter-spacing:0;color:var(--ink-soft)}
.plan-dum{--pl-room:var(--hero-line)}
/* pasport stavby (dodatek „kompaktní web a kóty u karty“, 30. 10. 2026): levý sloupec se neroztahuje na výšku karty,
   čísla skupiny (.hero-trust) jsou v HTML hned pod tlačítky a pod nimi výkres pohledu v toku dokumentu (dřív absolutně nad kartou,
   karta měla margin-top 262 px). Na mobilu výkres skrytý (.plan.hero-plan{display:none}). */
.hero-grid-dum{grid-template-areas:"copy" "card"}
/* 30. 10. 2026 (audit): od 980 px má levý sloupec stejnou výšku jako karta (align-items:stretch); výkres domu je v .plan-box,
   který vyplní zbytek výšky a nic nepřidává do výšky řádku (SVG absolutně, preserveAspectRatio xMinYMax), takže spodní hrana
   sloupce lícuje se spodní hranou karty bez prázdné díry pod ní (dřív výkres přesahoval 74 až 88 px pod kartu). */
@media(min-width:980px){
  .hero-grid-dum{grid-template-areas:"copy card";grid-template-rows:auto;align-items:stretch}
  .hero-grid-dum .hero-left{display:flex;flex-direction:column}
  .hero-grid-dum .hero-left>*{flex:0 0 auto}
  .hero-grid-dum .hero-trust{align-self:auto}
  .hero-grid-dum .plan-box{flex:1 1 0;min-height:0;position:relative;margin-top:var(--sp-4)}
  .hero-grid-dum .plan.hero-plan.plan-dum{position:absolute;inset:0;width:100%;height:100%;margin:0;z-index:0;opacity:.9;-webkit-mask-image:none;mask-image:none}
}
@media(min-width:720px){.group-bar li{margin-right:20px}.gb-label{margin-right:22px}}

/* Logo Pasport budov (web/loga/pb-logo*.svg), inline SVG. Barvy přechodu řídí třída on-dark
   na hlavičce, stejně jako na naspasport.cz (header.on-dark). Patička používá tentýž tvar přes <use>. */
.brand{display:inline-flex;line-height:0;border-radius:6px;padding:6px 0}
.pb-logo{display:block;height:32px;width:auto;aspect-ratio:4178/1624}
.brand-foot{padding:8px 0}
.brand-foot .pb-logo{height:28px}
@media(min-width:980px){.site-head .pb-logo{height:40px}.brand-foot .pb-logo{height:32px}}
.pb-s1{stop-color:#1A1D28}.pb-s2{stop-color:#A8452E}
.on-dark .pb-s1{stop-color:#FBFBFC}.on-dark .pb-s2{stop-color:#F2A58C}

/* Zvýraznění zástupného textu (od finále 30. 10. 2026 se na webu nepoužívá) */
.doplnit{background:#FFF3C4;color:#1A1D28;padding:0 4px;border-radius:3px}

/* Pasport stavby pro laiky (přepis 30. 10. 2026): rozcestník situací, box „není to“, výstupy ve čtyřech sloupcích,
   dokladová část, šestý krok přes celou šířku, pomůcka k ploše, co si připravit, slovníček. */
@media(min-width:1040px){.cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.two-neni,.two-ready{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
@media(min-width:980px){.two-neni{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:start}.two-ready{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:56px;align-items:center}}
.neni{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad)}
.neni h3{font-size:var(--fs-h3);font-weight:700;margin-bottom:var(--card-gap)}
.neni ul{list-style:none;display:flex;flex-direction:column;gap:var(--card-gap)}
.neni li{position:relative;padding-left:28px;color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.5}
.neni li strong{color:var(--ink);font-weight:600}
.neni li::before{content:"\2715";position:absolute;left:2px;top:0;font-weight:700;color:var(--accent-text)}
.neni-ok p{color:var(--ink-soft);font-size:16px;margin-bottom:var(--sp-2);max-width:var(--measure)}
.legal.dokl{max-width:none;margin-top:var(--sp-4)}
.legal.dokl h3{font-size:var(--fs-h3);font-weight:700;margin-bottom:var(--sp-1)}
.src{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--ink-soft);max-width:var(--measure)}
.src a{color:inherit}
.steps-ps li{align-content:start}
.steps .src{font-size:13px;margin-top:8px}
.step-more p+p{margin-top:8px}
.step-more .t{margin-top:10px}
.tip{margin-top:var(--sp-3);padding:var(--card-pad);border:1px dashed var(--input-border);border-radius:var(--radius);background:var(--card-bg)}
.tip h3{font-size:var(--fs-h3);font-weight:700;margin-bottom:var(--sp-1)}
.tip p{font-size:16px;max-width:var(--measure)}
.tip p+p{margin-top:6px;color:var(--ink-soft)}
.ready{margin-top:var(--sp-4);font-size:16px}
.glos{display:grid;grid-template-columns:minmax(0,1fr);column-gap:48px;border-top:1px solid var(--line)}
@media(min-width:900px){.glos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.glos div{padding:var(--sp-2) 0;border-bottom:1px solid var(--line)}
.glos dt{font-weight:700}
.glos dd{margin:4px 0 0;color:var(--ink-soft);font-size:var(--fs-sm);max-width:var(--measure)}

/* Kontakt podle naspasport.cz (30. 10. 2026): tři lidé (fotka, jméno, role, věta v uvozovkách, kontakt), pod nimi box firmy.
   Na úvodu vpravo plný formulář, na pasportu stavby karta s odkazem na formulář v heru. */
.popt-grid .tym-wrap{grid-area:contact}
@media(min-width:980px){.popt-grid .tym-wrap{position:sticky;top:24px}}
.tym{list-style:none;display:flex;flex-direction:column}
.osoba{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.osoba:first-child{padding-top:0}
.osoba img{display:block;width:56px;height:56px;border-radius:50%;object-fit:cover;margin-top:2px;background:var(--bg-alt)}
.o-jmeno{font-family:var(--font-head);font-weight:700;font-size:17px;line-height:1.3;color:var(--ink)}
.o-role{font-size:14px;color:var(--ink-soft);margin-top:2px}
.o-veta{font-size:14.5px;font-style:italic;color:var(--ink-soft);line-height:1.5;margin:8px 0;padding-left:10px;border-left:2px solid var(--line)}
.o-kontakt{font-size:15px;color:var(--ink-soft);line-height:1.5}
.o-kontakt a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--blue-dark)}
.firma{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--card-pad-sm) var(--card-pad);background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:15px;color:var(--ink)}
.firma span{display:inline-block;min-width:84px;font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.sec:not(.alt) .firma{background:var(--bg-alt)}
.cta-card h3{font-size:var(--fs-h3-lg);margin-bottom:var(--sp-1)}
.cta-card p{color:var(--ink-soft);font-size:16px;max-width:var(--measure)}
.cta-card .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--sp-3)}
.group-link .go-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--blue-dark)}
.group-link .go-link svg{width:18px;height:18px}
@media(min-width:980px){
  .popt-ps{grid-template-areas:"head form" "contact contact";grid-template-rows:auto auto;align-items:center}
  .popt-ps .tym-wrap{position:static}
  .popt-ps .tym{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
  .popt-ps .osoba,.popt-ps .osoba:first-child{padding:20px 0 0;border-bottom:0;border-top:1px solid var(--line)}
  .popt-ps .firma{flex-direction:row;flex-wrap:wrap;gap:8px 40px}}
.firma p{display:flex;gap:8px}
.firma span{flex:0 0 84px;min-width:0;padding-top:2px}
.tile-price{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;color:var(--accent-text);margin-top:-2px}
/* odkaz uvnitř textu dlaždice musí být nad překryvem odkazu z nadpisu (finále 30. 10. 2026) */
.entry p a{position:relative;z-index:2}

/* 5. 11. 2026: bloky s prázdným místem vpravo (kontrola.md oddíl 24) */
.wrap.wrap-narrow{max-width:820px}
.wrap.prose.wrap-narrow{max-width:820px}
.foot-two{margin-top:var(--sp-4);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3);align-items:center}
.foot-two .sec-foot{margin-top:0}
@media(min-width:980px){.foot-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-5)}.foot-two .note{max-width:none}}
.notes-two{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-1) var(--sp-5);margin-top:var(--sp-3)}
.notes-two .note{margin:0}
@media(min-width:980px){.notes-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.notes-two .note{max-width:none}}
@media(min-width:980px){.legal.dokl{column-count:2;column-gap:var(--sp-5)}.legal.dokl>*{break-inside:avoid}.legal.dokl p{max-width:none}}
.tip{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
@media(min-width:980px){.tip{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--sp-5);align-items:center}}
.tip-ex{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);font-size:14.5px}
.tip-ex>div{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line)}
.tip-ex>div:last-child{border-bottom:none;font-weight:700}
.tip-ex dt{color:var(--ink-soft)}
.tip-ex dd{white-space:nowrap;font-variant-numeric:tabular-nums}

/* 5. 11. 2026 (SEO): drobečková navigace v záhlaví a podstránky pasportu stavby (web/pasport-stavby/*.html) */
.crumbs{font-size:14px;color:var(--hero-sub);margin-bottom:var(--sp-2)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:0}
.crumbs li{display:flex;align-items:center;gap:8px}
.crumbs li+li::before{content:"/";opacity:.6}
.crumbs a{color:var(--hero-text);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hero-line-soft)}
.crumbs a:hover{text-decoration-color:currentColor}
.crumbs [aria-current]{color:var(--hero-sub)}
.doc .box{margin:var(--sp-3) 0;padding:var(--card-pad-sm) var(--card-pad);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-alt)}
.doc .box h3{margin-top:0}
.doc .box p:last-child{margin-bottom:0}
.doc .tbl-wrap{margin:var(--sp-2) 0 var(--sp-1)}
.doc .tbl td,.doc .tbl th{color:var(--ink)}
.doc .tbl li::before,.doc .tbl-wrap li::before{content:none}
.doc .src{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:var(--sp-2)}
.doc .cta{display:flex;flex-wrap:wrap;gap:12px;margin:var(--sp-4) 0 0}
.rel h2{font-size:var(--fs-h2-sm);margin-bottom:var(--sp-3)}
.rel-list{display:grid;gap:var(--sp-1);list-style:none;padding:0;margin:0}
.rel-list a{font-weight:600}
.rel-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--sp-4)}
.sec .faq-wide .faq{max-width:none}
.sec .faq-wide .sec-head{margin-bottom:var(--sp-3)}
@media(min-width:720px){.rel-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--sp-4)}}
