/* Web — sestup, rotunda, patička. Tokeny, škála a mřížka podle BRIEF.md, sekce 3. */

/* Písma od 11. 10. 2026 (zadavatelka): Inter na nadpisy a čísla, Anton na verzálky,
   Barlow Semi Condensed na text. Dřív Archivo a Source Serif 4. */
@font-face{
  font-family:'Inter';src:url('/fonts/inter-var.woff2') format('woff2');
  font-weight:400 800;font-display:swap;
}
@font-face{
  font-family:'Anton';src:url('/fonts/anton.woff2') format('woff2');
  font-weight:400;font-display:swap;
}
@font-face{
  font-family:'Barlow SC';src:url('/fonts/barlow-sc-400.woff2') format('woff2');
  font-weight:400;font-display:swap;
}
/* štíhlé psací „webdesign“ v kreditu patičky (11. 10. 2026, zadavatelka; kombinace-fontu.md,
   F005); soubor má jen písmena toho slova (tools/fonts.py), 4,3 kB */
@font-face{
  font-family:'Luxurious Script';src:url('/fonts/luxurious-script-kredit.woff2') format('woff2');
  font-weight:400;font-display:swap;
}

:root{
  /* --paper: světlé písmo a plochy na tmavém a na skle; od 19. 10. 2026 teplá bílá z P014
     (zadavatelka: zlatá pryč, „všude teplou bílou“), dřív #F4F5F3 */
  --ink:#171B20;  --paper:#F0E8DB;
  --stone:#8C918D; --timber:#7A4E2D;
  /* 11. 10. 2026: písmo čokoládové místo černé a šedé (zadavatelka); --ink zůstává na tmavé plochy */
  --text:#4E3324; --ink-soft:var(--text);
  /* 11. 10. 2026 (zadavatelka „1A“): tmavá čokoláda místo černé --ink v lightboxu a v patičce */
  --cocoa:#2A1B12;
  /* paleta P014 Kokos (19. 10. 2026, zadavatelka; fonty a barevné typologie/barevne-typografie.md):
     teplá bílá, písková, taupe, ořechová, hořká čokoláda; zatím nikde použitá */
  --coco-white:#F0E8DB; --coco-sand:#D3BFA4; --coco-taupe:#AC927A;
  --coco-walnut:#76533C; --coco-dark:#3D281D;
  /* podklad stránky (19. 10. 2026, zadavatelka „A, absolutně jasná volba“): stejně světlý jako
     dřívější --paper, jen s přimíchanou krémovou z teplé bílé P014 (ta byla jako podklad moc tmavá) */
  --cream:#F8F4EF;
  /* druhý řádek úvodních textů (21. 10. 2026, zadavatelka „sytější krémová“, paleta P001);
     první řádek je od téhož dne krémově bílá --cream — jasnější než teplá bílá */
  --cream-rich:#E5D6BF;
  /* čiré sklo s teplým odleskem 4 % (19. 10. 2026, zadavatelka; dřív čiré s mléčným pruhem
     a výrazným stínem): výplň 4 % teplé bílé z P014, v levém horním rohu o něco víc, tenký
     teplý odlesk po hraně (::after u .cue níž). Stín od 19. 10. 2026 večer „výrazný 3D“
     (zadavatelka z náhledu nahledy/odlesk/, odlesk 2 + stín 3): pod plochou posunutý jako od
     světla zleva shora, kontaktní, a uvnitř u spodní hrany — plocha vystoupí. Popis u .cue */
  --glass:linear-gradient(155deg,rgba(240,232,219,.1),rgba(240,232,219,.04) 40%);
  --glass-rim:linear-gradient(170deg,rgba(240,232,219,.78),rgba(240,232,219,.3) 32%,rgba(240,232,219,0) 72%);
  --glass-3d:
    6px 28px 52px -18px rgba(20,12,6,.6),       /* rozptýlený, světlo zleva shora */
    2px 10px 18px -8px rgba(20,12,6,.42),       /* kontaktní */
    inset 0 -16px 22px -18px rgba(20,12,6,.45); /* uvnitř u spodní hrany */
  /* stín písma na skle: od 20. 10. 2026 „měkký vržený“ (zadavatelka z náhledu nahledy/stin-pisma/,
     varianta 2, „všude“ — úvodní texty, ukazatel posunu, výzva v patičce), ať písmo není ploché.
     Padá doprava dolů jako stín skla; dřív jen lem 0 1px 2px .45 + 0 0 14px .35 */
  --glass-text:2px 4px 6px rgba(20,12,6,.5),1px 1px 1px rgba(20,12,6,.35),0 0 14px rgba(42,27,18,.25);
  --hairline:rgba(23,27,32,.14);
  --display:'Inter',system-ui,sans-serif;
  --caps:'Anton',var(--display);
  --body:'Barlow SC',system-ui,sans-serif;

  --edge:6vw;
  --gap-section:clamp(7rem,16vh,12rem);
  --gap-inner:clamp(2rem,5vh,3.4rem);
}
@media (max-width:639px){ :root{ --edge:24px } }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  /* 19. 10. 2026 (zadavatelka): krémově bílá místo --paper — jednolitě od parametrů
     přes rozcestník a rotundu až k večerní fotce */
  margin:0;background:var(--cream);color:var(--text);
  font-family:var(--body);font-weight:400;
  /* zúžené písmo je opticky menší — o kousek větší než dřívější Source Serif */
  font-size:clamp(1.1rem,1.36vw,1.28rem);line-height:1.55;letter-spacing:.008em;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
picture{display:block}
h1,h2,h3,p,dl,dd,figure{margin:0}

/* fokus */
:focus-visible{outline:2px solid var(--text);outline-offset:3px}   /* 19. 10. 2026: čokoládová místo okrové */
.descent :focus-visible,.lightbox :focus-visible,.foot :focus-visible{outline-color:var(--paper)}   /* na tmavém teplá bílá */

.skip{
  position:absolute;left:var(--edge);top:12px;z-index:50;
  padding:.5em .8em;background:var(--paper);color:var(--text);
  font-family:var(--display);font-size:.9rem;
  transform:translateY(-200%);
}
.skip:focus{transform:none}

/* ---------- SESTUP ---------- */
/* 20. 10. 2026: čtyři úvodní texty místo tří — sestup o čtvrtinu delší (dřív 400vh, mobil 300vh),
   každý text má k přečtení stejný kus posunu jako dřív */
.descent{position:relative;height:500vh}
.descent__stage{
  position:sticky;top:0;height:100vh;height:100dvh;
  overflow:hidden;background:var(--ink);
}
.layer{position:absolute;inset:0;will-change:opacity}
.layer:not(:first-child){opacity:0}
.layer picture{width:100%;height:100%}
.layer img{
  width:100%;height:100%;object-fit:cover;max-width:none;
  will-change:transform;transform-origin:var(--org,50% 50%);
}

/* Úvodní texty na čirém skle (19. 10. 2026, zadavatelka; 11.–19. 10. sklo s rozmazáním a zlatým
   lemováním — uložené v komponenty/zlate-lemovani/). Od 19. 10. 2026 večer čiré s teplým
   odleskem 4 % (zadavatelka, „neznatelný 3D luxusní efekt“): bez rozmazání, výplň 4 % teplé
   bílé, vystoupení nese tenký teplý odlesk hrany — nahoře plný, po stranách dolů odeznívá,
   spodní hrana bez něj, takže to nepůsobí jako rámeček — a jen tušený stín. Text Antonem, od 21. 10.
   2026 (zadavatelka, náhled nahledy/male-pismo/) malými písmeny místo verzálek: první řádek krémově
   bílá, druhý sytější krémová (dřív oba teplá bílá), s jemným čokoládovým stínem (přes oblohu
   a trávník by jinak mizely); kovová zlatá druhého řádku 19. 10. 2026 pryč. Výjimka z briefu (zaoblení, stíny, text-shadow) jen pro
   tyhle plochy; backdrop-filter už ne. */
.cue{
  position:absolute;z-index:3;
  max-width:min(34ch,72vw);
  opacity:0;will-change:opacity,transform;
  padding:.7em .9em .75em;
  border-radius:.37em;   /* jako s lemováním: 19 % poloviny výšky dvouřádkové plochy */
  background:var(--glass);box-shadow:var(--glass-3d);
  font-family:var(--caps);font-weight:400;   /* malá písmena od 21. 10. 2026, dřív uppercase */
  /* jedna velikost pro všechny tři vstupy (23. 9. 2026): čitelná a nepřekryje dům */
  font-size:clamp(1.4rem,3vw,3rem);
  line-height:1.2;letter-spacing:.005em;   /* 1.2: háčky nenarazí na řádek nad; verzálky měly .02em */
  color:var(--cream);text-shadow:var(--glass-text);   /* 21. 10. 2026 (zadavatelka): krémově bílá, jasnější než teplá bílá */
  text-wrap:balance;
}
/* druhý řádek: od 19. 10. 2026 bez kovové zlaté (zadavatelka: „s odstupem nevkusné“), do 21. 10.
   2026 stejná teplá bílá jako první, od té doby sytější krémová (zadavatelka). 20. 10. 2026 (zadavatelka, kroužek na screenshotu) o .12em níž — kroužek
   nad Ů ve „SVŮJ“ narážel do řádku nad ním (dřív margin-top -.28em); u všech čtyř textů stejně. */
.cue em{
  display:block;font-style:normal;color:var(--cream-rich);
  margin-top:-.16em;padding-top:.32em;
}
.unit{text-transform:none}   /* m² zůstává malé, M² by bylo špatně */
/* Malý nápis nad prvním textem = h1 stránky (20. 10. 2026, zadavatelka: „malým, úzkým písmem
   splývajícím“, kvůli vyhledávačům). Úzká Barlow, malá písmena, o kus průhlednější než text.
   Stejně vypadá podpis autora citátu ve čtvrtém textu. */
.cue__h1,.cue cite{
  display:block;font-family:var(--body);font-weight:400;font-style:normal;text-transform:none;
  /* 22. 10. 2026 (zadavatelka: „téměř neviditelný“): plná krémově bílá a o kus větší — dřív
     teplá bílá s krytím .8 a max(.42em,15px) */
  font-size:max(.48em,16px);line-height:1.3;letter-spacing:.05em;
  color:var(--cream);
}
.cue__h1{margin:0 0 .45em}
/* 21. 10. 2026 (zadavatelka, předloha „—— ITALSKÉ BISTRO · ŠTRAMBERK“): před nápisem krátká tenká
   linka, mezi „Rodinný dům“ a „Štramberk“ střední tečka (ta je v textu). Linka barvou nápisu
   a se stínem jako písmo, ať na fotce nevypadá plochá. */
.cue__h1::before{content:'';display:inline-block;width:.8em;height:1px;margin:0 .5em 0 0;   /* 2.4 → 1.2 → .6 → .8em („o kousek delší“) */
  vertical-align:.32em;background:currentColor;box-shadow:1px 2px 3px rgba(20,12,6,.45)}
/* Výzva otočit telefon na šířku (21. 10. 2026, zadavatelka „1, velikost 2“; náhled nahledy/otoc-telefon/):
   spodní řádek prvního textu, v jeho skle, mizí s ním. Jen telefon na výšku s JS a s pohybem — na šířku
   zmizí sám, bez pohybu je rotunda výpis a na šířku by návštěvník nic nezískal. Písmo jako malý nápis
   nad textem, o kus větší a jasnější. Text z data-t (není v textu stránky). Ikona: telefon se otočí
   o 90° po směru šipky, leží, zmizí a znovu (3,6 s dokola, jen transform a opacity). Dlaždice vpravo
   dole zamítnuta — zakrývala dům. */
.turn{display:none}
@media (max-width:699px) and (orientation:portrait) and (hover:none) and (prefers-reduced-motion:no-preference){
  .js .turn{display:flex}
}
.turn{
  align-items:center;gap:.5em;margin:.7em 0 0;
  /* 22. 10. 2026 (zadavatelka „trochu zesílit“): krémově bílá a o kus větší — dřív .97 a max(.5em,17px) */
  font-family:var(--body);font-weight:500;font-size:max(.54em,18px);line-height:1.3;letter-spacing:.04em;
  color:var(--cream);text-wrap:balance;
}
.turn::after{content:attr(data-t)}
.turn__i{flex:none;width:2.3em;height:2.3em;margin:-.2em 0;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}
.turn__fg{stroke:currentColor;stroke-width:2.3}
.turn__fg circle{fill:currentColor}
.turn__sh{stroke:rgba(20,12,6,.42);stroke-width:3.2}   /* stín čar jako stín písma */
.turn__sh circle{fill:rgba(20,12,6,.42)}
.turn__ph{transform-box:view-box;transform-origin:50% 50%;animation:turn-ph 3.6s cubic-bezier(.5,0,.3,1) infinite}
.turn__ar{animation:turn-ar 3.6s ease infinite}
@keyframes turn-ph{
  0%,22%{transform:rotate(0);opacity:1}
  46%,80%{transform:rotate(90deg);opacity:1}
  90%{transform:rotate(90deg);opacity:0}
  91%{transform:rotate(0);opacity:0}
  100%{transform:rotate(0);opacity:1}
}
@keyframes turn-ar{0%,46%{opacity:1}60%,90%{opacity:.3}100%{opacity:1}}
/* podpis autora citátu bez vlastního řádku (20. 10. 2026, zadavatelka: „zabírá řádek navíc“, kroužek
   pod koncem citátu): na počítači vpravo pod koncem citátu — nulová výška, visí vedle kratšího druhého
   řádku; do 1000 px (telefon, tablet na výšku, kde druhý řádek sahá dál) hned za citátem na jeho
   posledním řádku. Plná teplá bílá kvůli světlému trávníku. */
.cue cite{height:0;margin:0;text-align:right;position:relative;top:-.15em;color:var(--paper);
  font-size:max(.42em,15px)}   /* velikost beze změny, když se 22. 10. 2026 zvětšil nápis h1 */
@media (max-width:1000px){
  .cue cite{display:inline;height:auto;position:static;margin:0 0 0 .7em;white-space:nowrap}
}
/* 7. 10. 2026: texty víc ke středu (zadavatelka, orientační čára) — začátek na 18vw.
   Od 20. 10. 2026 čtyři texty: 1. a 2. nad údolím, 3. nad pozemkem shora, 4. nad zahradou */
#cue1,#cue2{left:18vw;top:16vh}   /* 2. text: údolí přiblížené k domu, dům dole uprostřed — text do oblohy */
/* každý řádek vcelku (20. 10. 2026): zalomený řádek nechá sklo na plné šířce a vpravo zůstane prázdný pruh */
#cue1,#cue2,#cue4{max-width:none;white-space:nowrap}
/* 2. fotka shora: dům je nahoře uprostřed, text dole vlevo nad cestou, každý řádek vcelku */
#cue3{left:18vw;bottom:22vh;max-width:none;white-space:nowrap}   /* 7. 10.: výš, do trávníku pod domem */
/* 3. fotka: dům je vlevo, text na trávník, dosedne a zůstane. 11. 10.: menší a níž,
   plocha nesmí zakrýt prosklení domu (zadavatelka) */
/* 20. 10. 2026 (zadavatelka, červená čárka na screenshotu): výš, horní hrana těsně pod terasou, a ukotvený
   shora — chystané tlačítko CTA ho prodlouží dolů, ne přes dům (dřív bottom:9vh). Poloha podle fotky
   16 : 9 (object-fit cover): 65,3 % její výšky; na širší obrazovce než 16 : 9 je fotka ořezaná
   nahoře a dole, pak 50vh + 0,653 × 56,25vw − 28,125vw = 50vh + 8,61vw */
#cue4{left:18vw;top:max(65.3vh,calc(50vh + 8.61vw));font-size:clamp(1.25rem,2.45vw,2.45rem)}
.cue:empty{display:none}
/* Tlačítka zavolat / napsat e-mail v posledním textu (20. 10. 2026, zadavatelka z náhledu nahledy/cta/:
   „B + chytrý + ikony“). Tenký obrys teplou bílou, výplň skoro žádná — žádná nová skleněná plocha.
   Písmo Inter jako ukazatel posunu a kontakty v patičce. Na telefonu „Zavolat / Napsat e-mail“,
   od 700 px rovnou číslo a adresa. Když na ně přijde fokus z klávesnice, text se ukáže. */
.cta{display:flex;flex-wrap:wrap;gap:.7em .8em;margin-top:.85em;
  font-family:var(--display);font-weight:600;font-size:max(15px,.48em);line-height:1.2;
  letter-spacing:.03em;text-transform:none;white-space:nowrap}
.cta a{display:inline-flex;align-items:center;gap:.55em;padding:.68em 1.1em;border-radius:.3em;
  border:1px solid rgba(240,232,219,.72);background:rgba(240,232,219,.06);
  box-shadow:2px 8px 16px -10px rgba(20,12,6,.5);
  color:var(--paper);text-decoration:none;transition:background-color .3s ease,border-color .3s ease}
.cta a:hover{background:rgba(240,232,219,.18);border-color:var(--paper)}
.cta__i{width:1.05em;height:1.05em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.cta__w{display:none}
.cue:focus-within{opacity:1!important}
/* teplý odlesk hrany skla: přechod --glass-rim vystřižený maskou na 1px obvod (sdílí ho všechny
   čiré plochy — úvodní texty, ukazatel posunu, výzva v patičce) */
.cue::after,.scroll-hint::after,.foot__claim::after{
  content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:var(--glass-rim);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
}

/* První text vítá při načtení (20. 10. 2026, zadavatelka): nahradil úvodní vzkaz „Dámy a pánové…“
   (ve webu 19.–20. 10.). Je vidět hned a po načtení přijede jako dřív vzkaz — přes vlastnost
   translate, bez výplně dopředu; transform a průhlednost pak řídí skript. Bez JS zůstane vidět. */
#cue1{opacity:1;animation:cue-in .9s cubic-bezier(.2,.7,.2,1) .3s backwards}
@keyframes cue-in{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}

/* ukazatel posunu: tučná šipka s nápisem, jen ukazatel — klik nic nedělá
   (11. 10. 2026, zadavatelka: skok k další fotce rozbíjel sestup).
   Vpravo dole, protože uprostřed dole stojí na první fotce dům.
   19. 10. 2026 (zadavatelka): na čirém skle jako úvodní texty, písmo a šipka světlé. */
.scroll-hint{
  /* na telefonu 24 px od kraje jako úvodní texty — viditelná plocha těsně u kraje působila natlačeně */
  position:absolute;right:max(24px,calc(6vw - 16px));bottom:clamp(10px,3vh,32px);z-index:4;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  padding:.8em 1.2em 1.05em;border-radius:.45em;
  background:var(--glass);box-shadow:var(--glass-3d);
  color:var(--paper);text-shadow:var(--glass-text);text-decoration:none;white-space:nowrap;
  font-family:var(--display);font-weight:600;
  font-size:clamp(1rem,1.25vw,1.2rem);letter-spacing:.04em;
  pointer-events:none;user-select:none;will-change:opacity;
}
.scroll-hint i{
  display:block;width:22px;height:22px;
  border-right:3px solid currentColor;border-bottom:3px solid currentColor;
  transform:rotate(45deg);
  animation:hint 2.4s ease-in-out infinite;
}
@keyframes hint{
  0%,100%{transform:translateY(0) rotate(45deg);opacity:.8}
  50%{transform:translateY(6px) rotate(45deg);opacity:1}
}

/* přepínač jazyka (11. 10. 2026, zadavatelka): malá vlajka jazyka, do kterého jde přepnout,
   na skle jako úvodní texty, bez lemování — dřív drobné „EN“, na světlé obloze skoro neviditelné. */
.lang{
  position:absolute;z-index:4;top:clamp(12px,2.2vh,20px);right:clamp(12px,2.4vw,28px);
  display:block;padding:6px;line-height:0;border-radius:4px;
  background:rgba(240,232,219,.34);
  -webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);
}
.lang::before{content:'';position:absolute;inset:-8px}   /* větší plocha pro prst, vizuálně malé */
/* Logo v levém horním rohu hera (21. 10. 2026, zadavatelka: kroužek na screenshotu na kopci vlevo od
   skutečné Trúby; v rámečku prvního textu „ne ne“). Perokresba s nápisem (tools/logo.py →
   img/logo-svetle.svg): krémová, zesílená obtahem, stín zapečený v SVG — bez skla a bez filtru.
   Zůstává po celý sestup jako přepínač jazyka vpravo nahoře. */
.brand{position:absolute;z-index:3;top:clamp(14px,3.4vh,32px);left:clamp(14px,3.2vw,48px);
  width:clamp(96px,11vw,190px);height:auto;pointer-events:none}
.lang svg{
  display:block;width:21px;height:14px;border-radius:2px;
  box-shadow:0 0 0 1px rgba(78,51,36,.28);   /* bílý pruh české vlajky na světlé obloze */
  transition:transform .25s ease;
}
.lang:hover svg{transform:translateY(-1px)}

@media (max-width:699px){
  .descent{height:375vh}
  .cue,#cue1,#cue2,#cue3,#cue4{left:24px;right:24px;max-width:none;text-align:left;white-space:normal}   /* plocha přes celou šířku */
  /* 11. 10. 2026 (zadavatelka, kroužky na screenshotech z iPhonu): všechny tři víc ke středu,
     ať oko nepřeskakuje mezi horním a dolním okrajem. 2. a 3. měřené shora: dům leží na fotce
     vždy ve stejném poměru výšky, takže je plocha nezakryje ani na kratším telefonu */
  #cue1,#cue2{top:23vh}
  #cue3{top:56vh;bottom:auto}
  #cue4{top:66vh;bottom:auto}   /* těsně pod domem, prosklení zůstává volné */
  .cta__w{display:inline}.cta__k{display:none}   /* na telefonu akce místo čísla a adresy */
  /* 11. 10. 2026 (zadavatelka): druhý řádek prvního textu na jeden řádek — bez prostrkání a podle
     šířky displeje. Od 20. 10. 2026 „Váš domov pod Štramberskou Trúbou“ (15,1 em, dřív 13,7 em):
     na 402 px 20,4 px místo 22,4 px hlavního řádku. Od 21. 10. 2026 malými písmeny 15,0 em */
  :lang(cs) #cue1 em{white-space:nowrap;letter-spacing:0;font-size:min(1em,calc((100vw - 92px) / 15.1))}
}

/* ---------- ODHALOVACÍ MOMENT ---------- */
.js .reveal{
  opacity:0;transform:translateY(18px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);
}
.js .reveal.is-in{opacity:1;transform:none}

/* ---------- OBSAH ---------- */
h2{
  font-family:var(--display);font-weight:700;
  font-size:clamp(1.9rem,5vw,3.6rem);line-height:1.0;letter-spacing:-.035em;
}
h3{
  font-family:var(--caps);font-weight:400;text-transform:uppercase;
  font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.2;letter-spacing:.04em;
}

/* pás parametrů — od 5. 10. 2026 bez linky nad pásem a s polovičním odstupem od sestupu */
.params{padding:clamp(.4rem,1.4vh,1rem) var(--edge) 0}   /* 11. 10. 2026 (zadavatelka): hned pod sestupem, dřív půl --gap-section */
.params__list{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:0 clamp(1.4rem,4vw,3rem);
}
@media (min-width:900px){ .params__list{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1700px){ .params__list{grid-template-columns:repeat(6,1fr)} }
.param{
  display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:.7rem;
  padding:clamp(1.4rem,3.4vh,2.2rem) 0 clamp(1rem,2.4vh,1.6rem);
}
.param__value{
  font-family:var(--display);font-weight:600;
  font-size:clamp(2.2rem,5.4vw,4rem);line-height:1;letter-spacing:-.035em;
  white-space:nowrap;
}
.param__label{
  font-family:var(--display);font-weight:500;
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);
}
.params__price{
  margin-top:clamp(.3rem,1.2vh,.8rem);   /* 11. 10. 2026 (zadavatelka): hned pod parametry, dřív --gap-inner */
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.05rem,1.6vw,1.3rem);
}
@media (max-width:420px){
  .param__value{font-size:clamp(1.7rem,8.4vw,2.2rem)}
}

/* ---------- ROTUNDA ----------
   Od 8. 10. 2026 nese texty Domu v detailu (návrh zadavatelky): karta = odstavec,
   nad rotundou rozcestník bloků, pod přední kartou její odstavec. */
/* 11. 10. 2026 (zadavatelka): blíž k ceně, dřív --gap-section; overflow-x: záře krajní dlaždice
   nesmí roztáhnout stránku do šířky */
.rotunda{padding-top:var(--gap-inner);overflow-x:clip}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rnav{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem clamp(.2rem,.8vw,.8rem);
  padding:0 var(--edge);
}
/* dlaždice rozcestníku (11. 10. 2026, zadavatelka): verzálky Antonu; zvolený blok (aria-current —
   po kliknutí i při otáčení rotundy) a dlaždice pod myší jsou skleněné; zlatý rámeček 19. 10. 2026
   pryč. Od 19. 10. 2026 večer (zadavatelka „3“) čiré sklo s odleskem jako v heru, upravené pro
   světlý podklad: hřejivý odlesk z hera i 4 % výplně by na krémové zmizely, proto odlesk bílý,
   plocha lehce zesvětlená a vlasová linka dole; stín společný --glass-3d. Plocha (::before)
   i odlesk (::after, maska jako u .cue) naskakují přes opacity. */
.rnav__b{
  position:relative;z-index:0;padding:.55rem .9rem;border-radius:4px;
  font-family:var(--caps);font-weight:400;text-transform:uppercase;
  font-size:clamp(1.05rem,1.45vw,1.35rem);letter-spacing:.045em;
  color:var(--text);text-decoration:none;
}
.rnav__b::before{
  content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:linear-gradient(155deg,rgba(255,255,255,.55),rgba(255,255,255,.2) 40%);
  box-shadow:var(--glass-3d),inset 0 -1px 0 rgba(78,51,36,.1);   /* stín jako hero a patička (19. 10. večer) */
  opacity:0;transition:opacity .35s ease;
}
.rnav__b::after{
  content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(170deg,#fff,rgba(255,255,255,.6) 32%,rgba(255,255,255,0) 72%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  opacity:0;transition:opacity .35s ease;
}
.rnav__b[aria-current=true]::before,.rnav__b[aria-current=true]::after{opacity:1}
@media (hover:hover){
  .rnav__b:is(:hover,:focus-visible)::before,.rnav__b:is(:hover,:focus-visible)::after{opacity:1}
}
/* tečky pod dlaždicí (11. 10. 2026, zadavatelka „B a C“): kolik pohledů blok má — návštěvníci klikali
   jen na dlaždice a nevěděli, že pod každou je víc karet. U zvoleného bloku plná čokoládová tečka = kde je (do 19. 10. zlatá). */
.rnav__dots{position:absolute;left:0;right:0;bottom:.12rem;display:flex;justify-content:center;gap:4px;pointer-events:none}
.rnav__dots b{width:5px;height:5px;border-radius:50%;background:var(--text);opacity:.28;transition:opacity .3s ease,transform .3s ease}
.rnav__b[aria-current=true] .rnav__dots b{opacity:.45}
.rnav__b[aria-current=true] .rnav__dots b.on{background:var(--text);opacity:1;transform:scale(1.45)}   /* 19. 10. 2026: čokoládová místo zlaté */
.rotunda__stage{
  position:relative;margin-top:clamp(.2rem,1vh,.8rem);
  height:var(--stage-h,min(46vh,448px));
  perspective:1000px;perspective-origin:50% 50%;
  overflow:hidden;
  touch-action:pan-y;
  cursor:grab;
  user-select:none;-webkit-user-select:none;
}
.rotunda__stage.is-dragging{cursor:grabbing}
.rotunda__ring{
  position:absolute;inset:0;
  transform-style:preserve-3d;
  pointer-events:none;           /* rovina prstence leží před kartami a brala by jim klik */
  /* 0,875 R (8. 10. 2026; dřív 0,82): u 16 karet má přední karta podobnou velikost jako dřív u 11 */
  transform:translateZ(calc(var(--R,834px) * .875)) rotateY(var(--rot,0deg));
}
.rotunda__ring.is-settling{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.rotunda__ring.is-live{will-change:transform}
.rotunda__ring:focus-visible{outline-offset:-6px}
.rotunda__card{
  position:absolute;left:50%;top:50%;
  width:var(--W,620px);aspect-ratio:3/2;
  margin:calc(var(--W,620px) / -3) 0 0 calc(var(--W,620px) / -2);
  transform:rotateY(calc(var(--i) * -1 * var(--step,45deg))) translateZ(calc(var(--R,834px) * -1));   /* --step = 360° / počet snímků */
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  pointer-events:auto;
}
.rotunda__open{
  display:block;width:100%;height:100%;padding:0;border:0;background:var(--stone);
  cursor:inherit;
}
.rotunda__open img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.rotunda__card figcaption{display:none}
/* dva odstavce pod jednou kartou */
.rtext__br{display:block;height:.9rem}
/* šipky po stranách (5. 10. 2026): bez výplně a bez rámečku jako ukazatel posunu;
   inkoustová čára s papírovým lemem je čitelná na bílé stěně i na tmavé podlaze.
   Stejné šipky má lightbox, tam světlé s tmavým lemem. */
.rotunda__arrow,.lb-arrow{
  position:absolute;top:50%;z-index:2;
  width:64px;height:80px;margin-top:-40px;padding:0;border:0;background:none;
  display:grid;place-items:center;
  color:var(--text);cursor:pointer;
  transition:transform .25s ease;
}
.rotunda__arrow--prev,.lb-arrow--prev{left:max(4px,1.2vw)}
.rotunda__arrow--next,.lb-arrow--next{right:max(4px,1.2vw)}
.rotunda__arrow--prev:hover,.lb-arrow--prev:hover{transform:translateX(-4px)}
.rotunda__arrow--next:hover,.lb-arrow--next:hover{transform:translateX(4px)}
.rotunda__arrow svg,.lb-arrow svg{width:28px;height:48px;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}
.rotunda__arrow path,.lb-arrow path{stroke:currentColor;stroke-width:3.5}
.rotunda__arrow .h,.lb-arrow .h{stroke:var(--paper);stroke-width:9;opacity:.92}
/* 11. 10. 2026 (zadavatelka): velké šipky rotundy lehce pumpují — návštěvníci je přehlíželi.
   Zlatá barva s čokoládovým lemem tentýž den zase pryč, barvy jsou původní. Jen transform;
   bez pohybu se šipky skrývají. */
.rotunda__arrow svg{animation:arrow-pump 1.8s ease-in-out infinite}
@keyframes arrow-pump{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

/* text pod přední kartou: šířka karty, nahoře název bloku a „n / 16“.
   Všechny odstavce leží v jedné buňce mřížky, výška je podle nejdelšího a stránka
   pod rotundou neposkakuje. Bez JS (a bez pohybu, viz níž) jsou texty pod sebou. */
.rtext{width:min(44vw,620px);margin:0 auto;padding-top:1.2rem}
.rtext__count{display:none}
.rtext__h{margin-top:2.2rem}
.rtext__p{margin-top:.9rem}
@media (prefers-reduced-motion:no-preference){
  .js .rtext{display:grid;grid-template-columns:1fr auto;align-items:baseline}
  .js .rtext__ch{display:contents}
  .js .rtext__h,.js .rtext__count{grid-row:1;margin:0;line-height:1.4}
  .js .rtext__h{grid-column:1;font-size:clamp(.95rem,1.1vw,1.05rem);letter-spacing:.06em}
  /* 11. 10. 2026 (zadavatelka): počítadlo „4 / 18“ se šipkami — tlačítka 40 px pro prst, záporný
     okraj, aby řádek nezvedala */
  .js .rtext__count{
    display:flex;align-items:center;grid-column:2;margin:-.6rem -.7rem -.6rem 0;
    font-family:var(--display);font-weight:500;font-size:.8rem;letter-spacing:.12em;color:var(--ink-soft);
  }
  .js .rtext__count span{min-width:4.2em;text-align:center}
  .rtext__arrow{width:40px;height:40px;padding:0;border:0;background:none;color:var(--text);cursor:pointer;
    display:grid;place-items:center;transition:transform .25s ease}
  .rtext__arrow[data-d="-1"]:hover{transform:translateX(-3px)}
  .rtext__arrow[data-d="1"]:hover{transform:translateX(3px)}
  .rtext__arrow svg{width:12px;height:20px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
  .js .rtext__p{grid-row:2;grid-column:1 / -1}
  .js .rtext__h,.js .rtext__p{opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s .35s}
  .js .rtext__h.is-on,.js .rtext__p.is-on{opacity:1;visibility:visible;transition:opacity .45s ease .1s}
  /* 11. 10. 2026 (zadavatelka „B“): název bloku pod fotkou jen opakoval zvolenou dlaždici — z obrazovky
     pryč, v HTML zůstává jako nadpis h3 (osnova stránky, vyhledávače, cíl dlaždic bez JS) */
  .js .rtext__h{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* „Další pohled ›“ pod odstavcem, na konci bloku „Dál: …“ (11. 10. 2026, zadavatelka „B a C“).
   Popisek z aria-label (text odstavce zůstává čistý), čokoládová vlasová linka (do 19. 10. zlatá). Ovládá se jako šipka
   rotundy. Jen s JS a pohybem — bez nich jsou texty pod sebou a odkaz nemá smysl. */
.rtext__next{display:none}
@media (prefers-reduced-motion:no-preference){
  .js .rtext__next{
    display:block;width:fit-content;margin-top:1rem;padding:.3rem 0 .25rem;
    border:0;border-bottom:1.5px solid var(--text);background:none;cursor:pointer;
    font-family:var(--caps);font-weight:400;text-transform:uppercase;letter-spacing:.06em;
    font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.3;color:var(--text);
  }
  .js .rtext__next::before{content:attr(aria-label)}
  .js .rtext__next::after{content:'›';display:inline-block;margin-left:.35em;transition:transform .25s ease}
  .js .rtext__next:hover::after{transform:translateX(4px)}
}
/* text hned pod přední fotkou: scéna je vyšší než karta kvůli bočním kartám a přední karta
   je v perspektivě zmenšená — mezera pod ní je ~0,06 × šířka karty (perspective 1000px,
   posun 0,875 R, scéna 0,8 × 1,32 × výška karty) */
@media (min-width:700px) and (prefers-reduced-motion:no-preference){
  .rtext{position:relative;z-index:1;margin-top:calc(min(44vw, 620px) * -.06)}
}

/* mobil: od 21. 10. 2026 (zadavatelka) i na výšku prstenec jako na šířku a na počítači — geometrii
   pro úzkou obrazovku počítá site.js. Vodorovný pás, jeden snímek na obrazovku, zůstává jen bez JS
   (posouvá se prstem i bez skriptu) a bez 3D (níž). */
@media (max-width:699px){
  .rnav{justify-content:flex-start;padding:0 calc(24px - .45rem);gap:.2rem .15rem}   /* text dlaždice lícuje s okrajem */
  /* 11. 10. 2026 (zadavatelka): rozcestník na dva řádky (dřív čtyři) — hustší písmo, užší dlaždice
     a velikost podle šířky; drží 360–430 px, na 320 px vyjdou tři řádky */
  .rnav__b{padding:.55rem .45rem;font-size:min(1.05rem,3.8vw);letter-spacing:.01em}
  .rnav__dots{bottom:.05rem;gap:3px}
  .rnav__dots b{width:4px;height:4px}
  :root:not(.js) .rotunda__stage{height:auto;perspective:none;overflow:visible;cursor:auto;touch-action:auto}
  /* pointer-events: iOS Safari nedovolí prstem posunout pás, který má none — i když karty v něm
     klik berou (WebKit 183870); pás na iPhonu šel do 21. 10. 2026 jen šipkami */
  :root:not(.js) .rotunda__ring{
    position:static;transform:none!important;pointer-events:auto;
    display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    scrollbar-width:none;scroll-behavior:smooth;
  }
  :root:not(.js) .rotunda__ring::-webkit-scrollbar{display:none}
  :root:not(.js) .rotunda__card{
    position:static;flex:0 0 100%;width:100%;margin:0;
    transform:none;scroll-snap-align:center;
  }
  :root:not(.js) .rotunda__arrow{top:33.333vw}          /* střed fotky 3 : 2 přes celou šířku */
  .rtext{width:auto;margin:0 24px}
}
@supports not (transform-style:preserve-3d){
  .rotunda__stage{height:auto;perspective:none;overflow:visible}
  .rotunda__ring{position:static;transform:none;pointer-events:auto;display:flex;overflow-x:auto;scroll-snap-type:x mandatory}
  .rotunda__card{position:static;flex:0 0 100%;width:100%;margin:0;transform:none;scroll-snap-align:center}
}

/* 3D půdorys (22. 10. 2026, zadavatelka; náhled nahledy/pudorys/, data content/pudorys.mjs, model
   src/pudorys3d.mjs): u rotundy vpravo vedle konce odstavce (umístění 5 — severní hrana stoupá podle
   její čáry od rohu pod koncem textu), v lightboxu pod textem (varianta A). Místnosti, o kterých karta
   mluví, rudě (třída .on ze site.js). Příčky poloprůhledné, obvodové zdi plné, dřevo i v koupelnách.
   Jen kresba v SVG — bez filtru, přepíná se jen opacity. Telefon na výšku (zadavatelka „určitě A“):
   u rotundy vlevo od počítadla hned pod fotkou, v lightboxu ve volném místě nad fotkou. */
.plan{display:none;
  --wt:#FFFDF8;--ww:#ECE5DA;--ws:#D6CBBB;--walnut:#DEC4A0;--tile:#DFDBD4;--porch:#E7E1D7;--base:#E5DBCC;
  --pw:#D2C9BC;--ps:#C0B5A6;--dt:#8E5E3B;--dw:#74492B;--ds:#5F3B22;
  --pv:#ECE9E4;--pl:#CFC9BF;--pew:#DDD7CE;--pes:#D2CBC0;--sh:rgba(42,27,18,.055)}
.dum3d{display:block;width:100%;height:auto;overflow:visible}
.dum3d .wall,.dum3d .door,.dum3d .gate{stroke-width:.7;stroke-linejoin:round}
.dum3d .wall--t{fill:var(--wt);stroke:var(--wt)}.dum3d .wall--w{fill:var(--ww);stroke:var(--ww)}.dum3d .wall--s{fill:var(--ws);stroke:var(--ws)}
.dum3d .inner--t{fill:var(--wt);fill-opacity:.85}.dum3d .inner--w{fill:var(--ww);fill-opacity:.4}.dum3d .inner--s{fill:var(--ws);fill-opacity:.4}
.dum3d .gate--t{fill:#E9E5DF;stroke:#E9E5DF}.dum3d .gate--w{fill:#D9D4CC;stroke:#D9D4CC}.dum3d .gate--s{fill:#C9C3BA;stroke:#C9C3BA}
.dum3d .door--t{fill:var(--dt);stroke:var(--dt)}.dum3d .door--w{fill:var(--dw);stroke:var(--dw)}.dum3d .door--s{fill:var(--ds);stroke:var(--ds)}
.dum3d .glass{fill:#A9CCDB;fill-opacity:.5;stroke:#86AFC2;stroke-width:.5;stroke-opacity:.7}.dum3d .glass--t{fill-opacity:.9}
.dum3d .floor--walnut{fill:var(--walnut)}.dum3d .floor--tile{fill:var(--tile)}.dum3d .floor--porch{fill:var(--porch)}.dum3d .base{fill:var(--base)}
.dum3d .plinth--w{fill:var(--pw)}.dum3d .plinth--s{fill:var(--ps)}
.dum3d .pave-bg{fill:var(--pv)}.dum3d .pave-line{stroke:var(--pl);stroke-width:2.6}
.dum3d .pave-edge--w{fill:var(--pew)}.dum3d .pave-edge--s{fill:var(--pes)}
.dum3d .shadow{fill:var(--sh)}
.dum3d .hi{fill:#C10F1F;opacity:0;transition:opacity .35s ease}
.dum3d .hi.on{opacity:.86}
/* plánek je poslední buňka mřížky .rtext (výška textu = nejdelší odstavec) */
@media (prefers-reduced-motion:no-preference){
  .js .plan--rot{display:block;align-self:start}
}
/* počítač (22. 10. 2026 večer, zadavatelka, kroužky na screenshotu): text víc vlevo a výš pod fotkami,
   plánek vedle něj vpravo nahoře, nad ním menší počítadlo — rozcestník, fotky, text i plánek na jedné
   obrazovce. Dřív plánek pod koncem textu šikmo (umístění 5); sloupce minmax(0,…), aby široký plánek
   nerozšiřoval mřížku (odstavec pak přetékal). */
@media (min-width:700px) and (prefers-reduced-motion:no-preference){
  /* souměrně (zadavatelka): text začíná na 19,5 % šířky, zhruba v půlce levé fotky, a plánek končí
     na 80,5 %, ve stejném místě pravé fotky. Text nejvýš min(46rem, 45vw) a smí zasahovat nad plánek. */
  .js .rtext{width:auto;margin-left:19.5vw;margin-right:19.5vw;
    grid-template-columns:minmax(0,1fr) minmax(0,min(20.25vw,356px));column-gap:2.4rem;
    align-items:start;padding-top:.2rem}
  .js .rtext__count{grid-column:2;grid-row:1;justify-self:end;margin:.4rem -.6rem 0 0;font-size:.7rem}   /* o půl řádku níž (zadavatelka) */
  .js .rtext__count .rtext__arrow{width:32px;height:32px}
  .js .rtext__count .rtext__arrow svg{width:9px;height:15px}
  .js .rtext__p{grid-column:1 / -1;grid-row:1 / span 2;margin-top:.9rem;max-width:min(46rem,45vw)}   /* o půl řádku níž (zadavatelka) */
  /* o kus výš; pod textem (z-index uvnitř .rtext), takže text přes něj zůstane čitelný */
  .js .plan--rot{grid-column:2;grid-row:2;width:auto;margin:-1.2rem 0 0;position:relative;z-index:-1}
}
/* telefon na výšku: vlevo od „‹ 2 / 18 ›“ hned pod fotkou — fotka a místnost jsou vidět najednou */
@media (max-width:699px) and (prefers-reduced-motion:no-preference){
  .js .plan--rot{grid-row:1;grid-column:1;margin:.2rem 0 0 -.4rem}
  .js .rtext__count{align-self:start;margin-top:-.2rem}
  .js .rtext__p{margin-top:.6rem}
}
/* telefon na šířku (22. 10. 2026, zadavatelka): text víc vlevo, plánek vedle něj vpravo */
@media (min-width:700px) and (max-height:500px) and (orientation:landscape) and (prefers-reduced-motion:no-preference){
  .js .rtext{width:auto;margin-left:var(--edge);margin-right:var(--edge);grid-template-columns:minmax(0,1fr) auto minmax(0,40%);column-gap:0}
  .js .rtext__p{grid-column:1 / 3;grid-row:2;max-width:none}
  .js .plan--rot{grid-row:1 / span 2;grid-column:3;width:auto;margin:.3rem 0 0 1.6rem;z-index:auto}
}
/* lightbox: na tmavém ztlumená dlažba a tmavší stín */
.plan--lb{--pv:#3B2B20;--pl:#4A392D;--pew:#33251B;--pes:#2C2017;--sh:rgba(0,0,0,.16);--pw:#B9AE9F;--ps:#A69B8C}

/* lightbox: fotka a pod ní text odstavce; na široké obrazovce text ve sloupci vpravo */
.lightbox{
  width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;
  background:var(--cocoa);color:var(--paper);
  touch-action:pan-y;            /* vodorovný tah prstem přepíná fotky */
}
.lightbox::backdrop{background:var(--cocoa)}
.lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}
.lb-media{position:relative;min-height:0;display:flex}
.lightbox__frame{flex:1;min-width:0;padding:clamp(3.4rem,8vh,5rem) var(--edge) 1rem}
.lightbox__frame picture{width:100%;height:100%}
.lightbox__frame img{width:100%;height:100%;object-fit:contain;object-position:50% 100%}   /* na výšku: fotka sedí hned nad textem */
.lightbox__close{
  position:absolute;top:10px;right:calc(var(--edge) - 12px);z-index:3;
  width:44px;height:44px;padding:0;border:0;background:none;color:var(--paper);
  font-family:var(--display);font-size:1.8rem;line-height:1;cursor:pointer;
}
.lb-arrow{color:var(--paper)}
.lb-arrow .h{stroke:var(--cocoa);opacity:.85}
/* šipky na střed fotky 3 : 2 přes šířku okna */
.lb-arrow{top:auto;margin-top:0;bottom:calc(1rem + (100vw - 2 * var(--edge)) / 3 - 40px)}
.lb-col{min-height:0}
.lb-text{padding:0 var(--edge) clamp(1.4rem,4vh,2.4rem);max-height:42vh;overflow:auto}
/* 11. 10. 2026 (zadavatelka): název bloku nad počítadlem pryč jako pod rotundou; „Další pohled ›“
   z odstavce se v lightboxu nekreslí — přepínají šipky, tah a klávesy */
.lb-text__head{
  display:flex;justify-content:flex-end;
  font-family:var(--display);font-weight:500;
  font-size:.7rem;letter-spacing:.12em;color:rgba(240,232,219,.62);
}
.lb-text__n{white-space:nowrap}
.lb-text__p{margin-top:.8rem;max-width:62ch}
.lb-text .rtext__next{display:none}
/* 22. 10. 2026 (zadavatelka): i telefon na šířku jako notebook — fotka vlevo, text a plánek vpravo */
@media (min-width:1000px) and (min-aspect-ratio:4/3), (orientation:landscape) and (max-height:500px) and (min-width:600px){
  /* 22. 10. 2026: sloupec o kus širší (dřív min(38ch,30vw)) kvůli 3D půdorysu pod textem */
  .lightbox[open]{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) min(42ch,32vw)}
  .lightbox__frame{padding:clamp(3.4rem,8vh,5rem) 5rem clamp(2rem,6vh,4rem)}
  .lightbox__frame img{object-position:50% 50%}
  .lb-arrow{top:50%;bottom:auto;margin-top:-40px}
  .lb-arrow--prev{left:.6rem}
  .lb-arrow--next{right:.6rem}
  /* 22. 10. 2026 (zadavatelka, varianta A): text nahoře, pod ním 3D půdorys — začíná na její čáře
     (~46 % výšky okna), níž jen pod delším textem; levým rohem až pod šipku, fotka beze změny */
  .lb-col{display:grid;grid-template-rows:auto minmax(0,1fr);gap:1rem;
    padding:clamp(3.4rem,8vh,5rem) var(--edge) clamp(2rem,6vh,4rem) 0}
  .lb-text{align-self:start;max-height:none;padding:0;min-height:calc(46vh - clamp(3.4rem,8vh,5rem) - 1rem)}
  .plan--lb{display:block;min-height:0;height:100%;width:calc(100% + var(--edge) + 1.5rem);margin-left:-3rem}
  .plan--lb .dum3d{height:100%}
}

/* telefon na šířku: nízká obrazovka — fotka přes šipky (jako na výšku), sloupec širší, text se posouvá,
   plánek pod ním */
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){
  .lightbox[open]{grid-template-columns:minmax(0,1fr) min(44vw,400px)}
  .lightbox__frame{padding:.8rem 1.2rem}
  /* text dostane, kolik potřebuje, plánek zbytek (aspoň 6rem); dlouhý text se posouvá */
  .lb-col{grid-template-rows:minmax(0,auto) minmax(6rem,1fr);gap:.6rem;padding:3.8rem var(--edge) .8rem 0}
  .lb-text{align-self:stretch;min-height:0;max-height:none;overflow:auto}
  .plan--lb{width:calc(100% + var(--edge));margin-left:-1rem}
}

/* lightbox na telefonu na výšku (22. 10. 2026, zadavatelka: „text nahoře, mapka dole“): text pod křížkem,
   fotka 3 : 2 uprostřed, pod ní plánek ve zbylém místě (nahoře na střed, co největší) */
@media (max-width:699px) and (orientation:portrait){
  .lightbox[open]{grid-template-rows:auto auto minmax(0,1fr)}
  .lb-col{display:contents}
  .lb-text{grid-row:1;padding:4rem var(--edge) 1rem;max-height:50vh}
  .lb-media{grid-row:2;height:calc((100vw - 2 * var(--edge)) / 1.5 + 1rem)}
  .lightbox__frame{padding:0 var(--edge) 1rem}
  .plan--lb{display:flex;flex-direction:column;grid-row:3;min-height:0;padding:0 var(--edge) 1rem;container-type:size}
  .plan--lb .dum3d{height:100%}
  @supports (width:1cqh){
    .plan--lb .dum3d{width:min(100%, 100cqh * var(--asp));height:auto;aspect-ratio:var(--asp);margin:0 auto auto}
  }
}

/* večerní snímek — bez textu; od 11. 10. 2026 do jeho spodku zasahuje výzva patičky (zadavatelka) */
/* 11. 10. 2026 (zadavatelka): hned pod textem rotundy, bez sekční mezery (text rotundy si drží výšku
   nejdelšího odstavce, ta mezeru pod kratšími odstavci dělá sama) */
.evening{margin-top:clamp(1.5rem,4vh,2.5rem);height:100vh;height:100dvh}
.evening__img{width:100%;height:100%}
.evening__img img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}   /* víc nebe, míň trávníku; Trúba vpravo zůstává */
/* 11. 10. 2026 (zadavatelka, „A“): na mobilu celý snímek na šířku, ne výřez na výšku obrazovky —
   z 5 : 3 zbyla na výšku třetina šířky a byl vidět jen roh domu. Trávník pod domem kryje výzva. */
@media (max-width:699px){
  .evening{height:auto}
  .evening__img img{height:auto}
}

/* ---------- PATIČKA (PATICKA.md) ---------- */
.foot{
  background:var(--cocoa);color:var(--paper);   /* 11. 10. 2026 (zadavatelka): čokoláda místo --ink */
  /* 11. 10. 2026 (zadavatelka): výrazně nižší — výzva je nad patičkou na fotce, prázdná
     plocha pod ní byla zbytečná. Dřív min-height 82dvh a mezery až 6rem. */
  /* 22. 10. 2026 (zadavatelka): tmavá část o polovinu nižší — menší mezery a spodní okraj (dřív
     gap clamp(2.2rem,5.5vh,3.4rem), spodek clamp(1.6rem,4vh,2.6rem)), kontakt na jednom řádku,
     nižší pás log; horní okraj drží polohu výzvy na fotce, proto beze změny */
  padding:clamp(5rem,14vh,9rem) var(--edge) clamp(.6rem,1.4vh,1rem);
  display:flex;flex-direction:column;
  gap:clamp(.7rem,1.7vh,1.1rem);
}
/* kontakt (22. 10. 2026, zadavatelka): popisek, pod ním mail a telefon tučně a menším písmem;
   pod kontaktem řádek navíc před pásem log */
.foot__contact{margin-bottom:clamp(.9rem,2.2vh,1.4rem)}
/* overflow-x: clip — stín skla výzvy přesahuje do stran; hidden by usekl i horní část výzvy nad patičkou */
.foot{container-type:inline-size;overflow-x:clip}
/* 11. 10. 2026 (zadavatelka): výzva na jeden řádek, co největší — plocha přes šířku patičky
   a půl okraje na každou stranu (--fit = šířka řádku v em, změřeno v prohlížeči; EN je delší).
   Stejně jako úvodní texty v heru: od 19. 10. 2026 (zadavatelka) čiré sklo bez rozmazání
   a bez zlatého lemování (dřív mléčné sklo a lemování, viz komponenty/zlate-lemovani/),
   písmo celé teplou bílou (zlatá „ŠTRAMBERKA“ 19. 10. pryč), nájezd řízený scrollem (níž).
   Plocha leží na trávníku závěrečné fotky a spodní hranou přesahuje do patičky; text zůstává na fotce. */
.foot__claim{
  --fit:10.43;--px:.42em;
  width:fit-content;white-space:nowrap;
  margin:calc(-1 * clamp(5rem,14vh,9rem) - 1.47em) 0 0 calc(var(--edge) / -2);
  padding:.3em var(--px);
  border-radius:.154em;   /* jako s lemováním: 19 % poloviny výšky plochy */
  position:relative;z-index:1;
  background:var(--glass);box-shadow:var(--glass-3d);
  /* Anton jako úvodní texty; od 21. 10. 2026 (zadavatelka) malými písmeny a krémově bílá
     --cream jako první řádek úvodních textů (dřív verzálky, teplá bílá, --fit 10.7) */
  font-family:var(--caps);font-weight:400;
  font-size:calc((100vw - var(--edge)) / (var(--fit) + .84));
  font-size:calc((100cqw + var(--edge)) / (var(--fit) + .84));
  line-height:1.02;letter-spacing:.005em;
  color:var(--cream);text-shadow:var(--glass-text);
}
:lang(en) .foot__claim{--fit:12.69}   /* „Home with Štramberk in the air“ bez čárky: malými 12,61 em + rezerva jako CZ (verzálkami 13,07 → 13.15) */
/* „ŠTRAMBERKA“: od 19. 10. 2026 bez zlaté (zadavatelka), teplá bílá jako zbytek výzvy */
.foot__claim em{font-style:normal}
/* odlesk hrany výzvy: plocha je široká a stojí na světlém trávníku — šikmý přechod hera by horní
   hranu doprava vytratil (zadavatelka: „patička nemá rámeček s odleskem“). Svisle a silněji. */
.foot__claim::after{background:linear-gradient(180deg,rgba(240,232,219,.95),rgba(240,232,219,.45) 28%,rgba(240,232,219,0) 66%)}
.foot__lead{
  margin:0 0 .45rem;
  font-family:var(--display);font-weight:400;
  font-size:clamp(.95rem,1.5vw,1.18rem);line-height:1.35;
  color:rgba(240,232,219,.68);
}
.foot__links{display:flex;flex-wrap:wrap;gap:.6rem clamp(1rem,4vw,3rem)}   /* 22. 10. 2026: na telefonu mail a telefon vedle sebe */
.foot__links a{
  font-family:var(--display);
  font-weight:650;   /* 22. 10. 2026: tučně a menší (dřív 500 a clamp(1.05rem,2.2vw,1.5rem)) */
  font-size:clamp(.98rem,1.45vw,1.15rem);
  color:var(--paper);text-decoration:none;
  padding-bottom:.22em;
  border-bottom:1px solid rgba(240,232,219,.34);
  transition:color .3s ease,border-color .3s ease;
}
/* hover kontaktů: od 19. 10. 2026 bez okrové — linka se rozsvítí teplou bílou */
.foot__links a:hover{border-bottom-color:var(--paper)}
/* Pás log dodavatelů (11. 10. 2026, zadavatelka; brief, sekce 7) mezi kontakty a kredity.
   Jednobarevná loga (--paper, img/loga/, tools/loga.py) jedou pomalu ve smyčce přes celou
   šířku okna a na krajích se ztrácejí. Jen CSS, animuje se transform, bez JS; pod myší pás
   stojí. Bez pohybu stojí a loga se zalomí do řádků. Výška loga je optická (--h z
   content/loga.json): široká nižší, kulatá a plná pole vyšší. Seznam je v HTML dvakrát
   (posun o polovinu pásu = plynulé napojení), druhá kopie se ukazuje jen při pohybu. */
.loga{--k:.6;--gap:clamp(2.2rem,4.5vw,4rem)}   /* 22. 10. 2026: nižší pás (dřív --k:1) */
.loga__list{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:1.1rem var(--gap);margin:0;padding:0;list-style:none;
}
.loga__list[aria-hidden]{display:none}
.loga__list li{flex:none}
.loga img{display:block;width:auto;height:calc(var(--h) * var(--k));opacity:.5;transition:opacity .4s ease}
@media (max-width:699px){ .loga{--k:.56;--gap:2rem} }
@media (prefers-reduced-motion:no-preference){
  .loga{
    margin:0 calc(-1 * var(--edge));overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
            mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  }
  .loga__track{display:flex;width:max-content;animation:loga-jizda 85s linear infinite}
  .loga__list{flex-wrap:nowrap;padding-right:var(--gap)}
  .loga__list[aria-hidden]{display:flex}
  .loga__list li{display:flex;align-items:center;min-height:calc(62px * var(--k))}
}
@media (max-width:699px) and (prefers-reduced-motion:no-preference){
  .loga__track{animation-duration:70s}
}
@media (hover:hover){
  .loga li:hover img{opacity:.92}
  .loga:hover .loga__track{animation-play-state:paused}
}
@keyframes loga-jizda{to{transform:translate3d(-50%,0,0)}}
.foot__credits{
  display:flex;flex-wrap:wrap;align-items:baseline;   /* 22. 10. 2026: kredit na lince „domov“ v logu, dřív na středu */
  gap:.3rem clamp(1.4rem,4vw,2.8rem);
  border-top:1px solid rgba(240,232,219,.16);
  padding-top:clamp(.5rem,1.2vh,.8rem);   /* 22. 10. 2026: dřív clamp(1.2rem,3vh,2rem) */
}
/* logo na prvním místě kreditů (21. 10. 2026, zadavatelka): teplá bílá jako kredity, bez stínu
   (tools/logo.py → img/logo-paticka.svg) */
/* 22. 10. 2026 (zadavatelka): o třetinu menší (dřív clamp(104px,9vw,136px)). Účaří obrázku je jeho spodní
   okraj — logo se posune dolů o vzdálenost linky „domov“ od spodku kresby (4,4 % výšky = 3,9 % šířky),
   aby kredit stál na lince „domov“ */
.foot__logo{--lw:clamp(46px,4vw,61px);   /* 22. 10. 2026 večer: ještě o třetinu menší (dřív clamp(69px,6vw,91px)) */
  flex:none;width:var(--lw);height:auto;opacity:.82;
  margin:.2rem .4rem .2rem 0;position:relative;top:calc(var(--lw) * .039)}
@media (max-width:699px){.foot__logo{margin-bottom:.7rem}}   /* na vlastním řádku nad kredity */
.foot__credits p{
  margin:0;
  font-family:var(--display);font-weight:400;
  font-size:clamp(.7rem,1vw,.79rem);   /* 22. 10. 2026 večer: o třetinu menší (dřív clamp(.95rem,1.5vw,1.18rem)), na telefonu nejmíň 11 px */
  line-height:1.35;
  color:rgba(240,232,219,.68);
}
/* psací písmo má malou střední výšku — větší stupeň, aby „webdesign“ opticky ladil s GO:M;
   šikmé je samo, proto font-style normal (jinak by prohlížeč skloněné písmo ještě naklonil) */
.foot__credits em{
  font-family:'Luxurious Script',cursive;font-style:normal;font-weight:400;
  font-size:1.6em;line-height:0;letter-spacing:.01em;
  white-space:nowrap;                   /* „webdesign by Gomola Monika“ se nezalomí uprostřed */
}
/* 11. 10. 2026 večer (zadavatelka, „A“): GO:M tučně, úzce a vysoko (Anton jako nadpisy a výzva)
   v kontrastu k psacímu „webdesign“; „web“ s malým w */
.foot__credits b{
  font-family:var(--caps);font-weight:400;
  font-size:1.22em;line-height:0;letter-spacing:.03em;
}
.js .foot__claim{
  opacity:0;transform:translateY(18px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);
}
.js .foot.is-in .foot__claim{opacity:1;transform:none}
/* nájezd výzvy řízený scrollem (11. 10. 2026, jako texty v heru): vyjede a zprůhlední se podle
   posunu stránky. Bez podpory scroll-timeline jednorázové odhalení výš.
   Týž den (zadavatelka): plně dřív, už u spodního okraje, dokud je závěrečný snímek celý
   na obrazovce — při „cover 40%“ dojížděla v půlce okna, dům byl pryč a na mobilu
   výzva skončila v černé patičce. */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .js .foot__claim{transition:none;animation:claim-in linear both;animation-timeline:view();animation-range:entry 0% cover 20%}
  }
}
@keyframes claim-in{from{opacity:0;transform:translate3d(0,.45em,0)}to{opacity:1;transform:none}}

/* ---------- BEZ POHYBU ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .descent{height:auto}
  .descent__stage{
    position:relative;height:auto;min-height:78vh;
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:18vh var(--edge) 8vh;
  }
  .layer{opacity:0!important}
  .layer--last{opacity:1!important}
  .layer img{transform:none!important}
  .cue{position:relative;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
       text-align:left!important;opacity:1!important;transform:none!important;margin:0 0 1.4rem;
       align-self:flex-start}   /* plocha jen na šířku textu, ne přes celé hero */
  #cue1{animation:none}
  .scroll-hint{display:none}   /* bez pohybu je hero nízké a obsah je vidět hned pod ním */
  .js .reveal,.js .foot__claim{opacity:1;transform:none;transition:none}

  /* rotunda: nadpis bloku, fotka s popiskem a odstavec pod sebou, v pořadí textu (--i ze šablony) */
  .rotunda{display:grid}
  .rotunda__stage,.rotunda__ring,.rtext,.rtext__ch{display:contents}
  .rotunda__card{order:calc(var(--i) * 3 + 1);position:static;width:100%;margin:var(--gap-inner) 0 0;transform:none}
  .rotunda__arrow{display:none}         /* snímky jsou pod sebou, není co otáčet */
  .rotunda__card figcaption{display:block;padding:1rem var(--edge) 0;
    font-family:var(--display);font-weight:500;font-size:.95rem;letter-spacing:.06em}
  .rtext__h{order:calc(var(--i) * 3);margin:var(--gap-section) var(--edge) 0;scroll-margin-top:1rem}
  .rtext__ch:first-of-type .rtext__h{margin-top:var(--gap-inner)}
  .rtext__p{order:calc(var(--i) * 3 + 2);max-width:52ch;margin:.8rem var(--edge) 0}
  .rnav__b::before,.rnav__b::after,.rotunda__ring.is-settling{transition:none}
}
