/* Villa Rudolf — homepage. Ported from the Claude Design handoff prototype.
   Design tokens per handoff README. Vanilla CSS, no build step.

   THEME SYSTEM (seasonal):
   Léto = dark "night" theme (default). Zima = inverted light "snow" theme.
   All colours run through CSS custom properties on .vr-root and are swapped
   under .vr-root[data-season="zima"]. Photo-overlay text (hero copy, evening
   scene, 360 stage, dark map card, lightbox) intentionally stays light in BOTH
   seasons — scrims over photos must remain dark for photo legibility. */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#0E1311;transition:background-color .6s ease}
/* Body backdrop follows the season (overscroll / rubber-band area). */
body:has(.vr-root[data-season="zima"]){background:#eef2f6}

.vr-root{
  --vr-ember:#D68A4C;
  --vr-ember-2:color-mix(in oklab,var(--vr-ember),#ffffff 24%);
  --vr-ember-deep:color-mix(in oklab,var(--vr-ember),#000000 44%);
  /* Accent = seasonal. Léto: warm ember. Zima: cool alpine blue.
     Small labels/eyebrows/tags/season-pill follow the accent; conversion CTAs
     stay warm ember on purpose (they reference --vr-ember directly). */
  --vr-accent:var(--vr-ember);
  --vr-accent-2:var(--vr-ember-2);
  --vr-on-accent:#10150f;                 /* text on an accent-filled control */
  --vr-accent-photo:var(--vr-ember-2);    /* accent used OVER photos — stays light in zima */
  /* --- surfaces --- */
  --vr-bg:#0E1311;
  --vr-bg-grad:#101714;                   /* lighter mid-stop of section gradients */
  --vr-bg-deep:#0B0F0D;                    /* booking / share deep sections */
  /* --- text --- */
  --vr-text:#F0EBE1;                       /* primary headings / labels */
  --vr-text-soft:#EFEAE0;                  /* leads, card h3, inputs */
  --vr-text-muted:#B4BAAD;                 /* body copy */
  --vr-text-dim:#AEB4A8;                   /* secondary */
  --vr-text-faint:#79817A;                 /* notes */
  --vr-text-faintest:#6c746b;              /* dimmest */
  --vr-text-formlabel:#8c948d;             /* form field labels — WCAG AA (≥4.5:1) on panels */
  /* --- panels + lines --- */
  --vr-panel:rgba(240,235,225,.03);
  --vr-panel-strong:rgba(240,235,225,.05);
  --vr-panel-input:rgba(240,235,225,.04);
  --vr-day-free:rgba(240,235,225,.07);
  --vr-line:rgba(240,235,225,.10);
  --vr-line-2:rgba(240,235,225,.18);
  --vr-seg-bg:rgba(240,235,225,.06);
  /* --- chrome --- */
  /* --- kreslená mapa v sekci Lokalita --- */
  --vr-map-paper:#0B100E;
  --vr-map-ink:#C6CCC0;
  --vr-map-ridge:#F0EBE1;
  --vr-map-water:#5B7A86;
  --vr-map-road:rgba(240,235,225,.16);
  --vr-map-ring:var(--vr-ember);
  --vr-nav-bg:rgba(11,15,13,.82);
  --vr-nav-fg:#F0EBE1;                     /* nav text (light by default: sits over hero photo) */
  --vr-nav-fg-muted:#C9CEC3;
  --vr-mob-bg:rgba(9,13,11,.97);
  --vr-night:0;
  background:var(--vr-bg);color:var(--vr-text);
  font-family:'Archivo',sans-serif;-webkit-font-smoothing:antialiased;
  overflow-x:clip;position:relative;min-height:100vh;
  transition:background-color .6s ease,color .6s ease;
}
/* -------- Zima: inverted light "snow" theme -------- */
.vr-root[data-season="zima"]{
  --vr-accent:#35708a;                     /* deep alpine blue (contrast on light) */
  --vr-accent-2:#285a70;                   /* darker emphasis on light panels */
  --vr-on-accent:#ffffff;                  /* white text on the blue accent fill */
  --vr-accent-photo:#cfe6f0;               /* light icy accent over photos */
  --vr-bg:#eef2f6;
  --vr-bg-grad:#ffffff;
  --vr-bg-deep:#e4ebef;
  --vr-text:#17242e;
  --vr-text-soft:#1f2e39;
  --vr-text-muted:#46545f;
  --vr-text-dim:#55636c;
  --vr-text-faint:#74828b;
  --vr-text-faintest:#93a1a9;
  --vr-text-formlabel:#5c6870;             /* form field labels — WCAG AA on white panel */
  --vr-panel:#ffffff;
  --vr-panel-strong:#ffffff;
  --vr-panel-input:#ffffff;
  --vr-day-free:#dce7ed;
  --vr-line:rgba(23,36,46,.14);
  --vr-line-2:rgba(23,36,46,.24);
  --vr-seg-bg:rgba(23,36,46,.05);
  /* Zima: mapa se „zasněží" — světlý papír, modrý inkoust a voda */
  --vr-map-paper:#F7FAFC;
  --vr-map-ink:#2A3A45;
  --vr-map-ridge:#8FB3C6;
  --vr-map-water:#5F93AE;
  --vr-map-road:#C6D3DB;
  --vr-map-ring:var(--vr-accent);
  --vr-nav-bg:rgba(238,242,246,.85);
  --vr-mob-bg:rgba(238,242,246,.98);
}
/* No-JS notice (rendered only inside <noscript>) */
.vr-noscript{font-family:'Archivo',sans-serif;background:#1a1410;color:#F0EBE1;border-bottom:1px solid rgba(214,138,76,.5);
  padding:16px 20px;text-align:center;font-size:14px;line-height:1.6}
.vr-noscript p{margin:0 auto;max-width:70ch}
.vr-noscript p+p{margin-top:8px}
.vr-noscript a{color:#E7B588;text-decoration:underline}
.vr-root img{display:block;max-width:100%}
.vr-root a{color:inherit;text-decoration:none}
.vr-root section[id]{scroll-margin-top:92px}

/* ---------- Scroll reveal ---------- */
/* Fail-safe návrh: obsah je viditelný VŽDY; schová se pro animaci až když si JS
   ověří, že IntersectionObserver reálně střílí (html.io-ok). Rozbité embedy/staré
   prohlížeče tak nikdy nedostanou černou stránku — jen přijdou o animaci. */
/* Reveal zrychlen na ~300 ms (dle UX kritiky), jemnější posun. */
.io-ok .vr-reveal{opacity:0;transform:translateY(18px);
  transition:opacity .3s cubic-bezier(.2,.7,.15,1),transform .3s cubic-bezier(.2,.7,.15,1)}
.io-ok .vr-reveal.vr-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .io-ok .vr-reveal{opacity:1!important;transform:none!important;transition:none}
}

/* ---------- Nav ---------- */
.vr-nav{position:fixed;top:0;left:0;right:0;z-index:60;
  transition:background .4s ease,border-color .4s ease;border-bottom:1px solid transparent;
  animation:vrNavIn .8s ease .1s both}
.vr-nav[data-scrolled="true"]{background:var(--vr-nav-bg);backdrop-filter:blur(14px);border-bottom-color:var(--vr-line)}
.vr-nav-inner{max-width:1340px;margin:0 auto;padding:16px clamp(20px,5vw,64px);
  display:flex;align-items:center;justify-content:space-between;gap:24px}
.vr-brand{display:flex;flex-direction:column;line-height:1}
.vr-brand b{font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;letter-spacing:.18em;color:var(--vr-nav-fg);transition:color .4s ease}
.vr-brand i{font-family:'Archivo',sans-serif;font-weight:600;font-size:10px;letter-spacing:.34em;color:var(--vr-accent);margin-top:5px;font-style:normal;transition:color .6s ease}
.vr-navlinks{display:flex;gap:clamp(13px,1.7vw,28px);font-size:13.5px;font-weight:500;letter-spacing:.02em;color:var(--vr-nav-fg-muted);white-space:nowrap}
/* Lišta má v zimě o položku navíc („Lyžování"). Aby se nikde nepřetekla,
   dvě nejméně kritické položky se pod 1200 px schovají — v mobilním menu
   i v patičce zůstávají, takže se nic nestane nedosažitelným. */
@media(max-width:1200px){.vr-navlinks .vr-nav-opt{display:none}}
.vr-navlinks a{position:relative;transition:color .2s}
.vr-navlinks a::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1.5px;background:var(--vr-accent);transform:scaleX(0);transform-origin:left;transition:transform .25s,background-color .6s ease}
.vr-navlinks a:hover{color:var(--vr-nav-fg)}
.vr-navlinks a[data-active="true"]{color:var(--vr-nav-fg)}
.vr-navlinks a[data-active="true"]::after{transform:scaleX(1)}
.vr-navright{display:flex;align-items:center;gap:16px}
.vr-langs{display:flex;gap:1px}
.vr-lang{position:relative;font-family:'Archivo',sans-serif;font-weight:600;font-size:12px;letter-spacing:.08em;
  color:var(--vr-nav-fg-muted);background:none;border:0;cursor:pointer;padding:6px 5px;transition:color .4s ease;opacity:.72}
.vr-lang::after{content:'';position:absolute;left:5px;right:5px;bottom:1px;height:1.5px;background:var(--vr-accent);transform:scaleX(0);transition:transform .25s,background-color .6s ease}
.vr-lang[data-active="true"]{color:var(--vr-nav-fg);opacity:1}
.vr-lang[data-active="true"]::after{transform:scaleX(1)}
.vr-navcta{display:inline-flex;align-items:center;font-family:'Archivo',sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.02em;color:#10150f;background:var(--vr-ember);border-radius:2px;padding:10px 18px;cursor:pointer}
/* Season toggle living in the nav (desktop). Reuses the .vr-seg pill component.
   It sits over the hero photo when unscrolled, so its labels follow the light
   nav foreground (nav-fg) rather than the section text tokens. */
.vr-seg.vr-nav-season{margin-right:2px;--vr-seg-bg:rgba(240,235,225,.1);border-color:rgba(240,235,225,.18)}
.vr-nav-season .vr-segbtn{color:var(--vr-nav-fg-muted)}
.vr-nav-season .vr-segbtn[data-active="true"]{color:var(--vr-on-accent)}
/* Zima: when the nav has scrolled onto the light glass, its text must go dark.
   At the very top the nav is transparent over the (dark) hero photo, so it keeps
   the light default above. */
.vr-root[data-season="zima"] .vr-nav[data-scrolled="true"]{--vr-nav-fg:#17242e;--vr-nav-fg-muted:#46545f}
/* When the light mobile menu is open in zima, the (transparent, unscrolled) nav
   sits over a light overlay → brand + langs must go dark too. */
.vr-root[data-season="zima"] .vr-nav:has(.vr-burger[aria-expanded="true"]){--vr-nav-fg:#17242e;--vr-nav-fg-muted:#46545f}

/* burger + mobile menu (added — not in prototype) */
.vr-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;
  background:none;border:0;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
.vr-burger span{display:block;width:24px;height:1.8px;background:var(--vr-nav-fg);margin:0 auto;transition:transform .3s ease,opacity .2s ease,background-color .4s ease}
.vr-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
.vr-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.vr-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}
/* When the light menu is open in zima, the burger sits on a light overlay → dark. */
.vr-root[data-season="zima"] .vr-burger[aria-expanded="true"] span{background:var(--vr-text)}
.vr-mob{position:fixed;inset:0;z-index:55;background:var(--vr-mob-bg);backdrop-filter:blur(18px);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  opacity:0;pointer-events:none;transition:opacity .35s ease,background-color .6s ease;padding:76px clamp(20px,6vw,40px) 40px}
.vr-mob[data-open="true"]{opacity:1;pointer-events:auto}
.vr-mob a{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.7rem,6.4vw,2.5rem);color:var(--vr-text-soft);
  padding:9px 0;letter-spacing:-.01em;transition:color .2s}
.vr-mob a:hover{color:var(--vr-accent-2)}
.vr-mob a[data-active="true"]{color:var(--vr-accent-2)}
.vr-mob .vr-mob-cta{margin-top:20px;font-family:'Archivo',sans-serif;font-size:15px;font-weight:600;color:#10150f;
  background:var(--vr-ember);border-radius:2px;padding:15px 30px}
.vr-mob-season{margin-top:24px}
.vr-mob-langs{display:flex;gap:22px;margin-top:24px}
.vr-mob-langs .vr-lang{font-size:15px;opacity:1;color:var(--vr-text-muted)}
.vr-mob-langs .vr-lang[data-active="true"]{color:var(--vr-text)}

/* ---------- Hero ---------- */
.vrh-hero{position:relative;height:100svh;overflow:hidden;background:#05080a}
.vrh-photo{position:absolute;inset:0;will-change:transform}
.vrim-dayphoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
[data-season="leto"] .vrim-dayphoto.summer{opacity:1}
[data-season="zima"] .vrim-dayphoto.winter{opacity:1}
/* Hero čitelnost (majitel po prohlídce: „hero má zvítězit světlem — nesmíš ji
   zase ztmavit celou"). Nové denní hero (léto: vila v plném slunci; zima: žlutá
   vila mezi zasněženými stromy) zůstává SVĚTLÉ a vzdušné. Tři vrstvy:
   1) .vrim-scrim — jen jemný gradient nahoře (navigace) a dole (přechod do pásu),
   2) .vrim-vig   — jemná vinětace do rohů,
   3) .vrim-copy::before — LOKÁLNÍ elipsa přímo pod textovým blokem (jediná nosná
      vrstva čitelnosti h1). Vzorkováno proti skutečným pixelům nových fotek
      (scratchpad/heroctr.py, object-fit:cover, elipsa v jednotkách vw/vh):
      každý pixel v pásu h1 drží ≥4,5:1 v OBOU sezónách (desktop 1440×900 nejhorší
      4,68:1, mobil 390×780 nejhorší 5,12:1). Střed fotky zůstává plně světlý. */
.vrim-vig{position:absolute;inset:0;z-index:7;pointer-events:none;
  background:radial-gradient(125% 100% at 50% 34%,transparent 60%,rgba(3,5,8,.48) 100%),linear-gradient(180deg,rgba(3,5,8,.5),transparent 16%)}
.vrim-scrim{position:absolute;inset:0;z-index:4;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,7,10,.42) 0%,rgba(4,7,10,.07) 16%,rgba(4,7,10,0) 42%,rgba(4,7,10,.16) 72%,rgba(4,7,10,.5) 100%)}
.vrim-copy{position:absolute;z-index:8;left:0;right:0;bottom:clamp(80px,15vh,160px);text-align:center;padding:0 clamp(20px,5vw,64px);will-change:transform,opacity}
/* Lokální elipsa pod textem. .vrim-copy má z-index:8 → tvoří stacking context,
   takže z-index:-1 sedí pod textem, ale stále NAD vinětací (z-index 7).
   Rozměry ve vw/vh (ne v % bloku) → nezávislé na délce textu i jazyku a přesně
   odpovídají naměřenému modelu. */
.vrim-copy::before{content:'';position:absolute;z-index:-1;pointer-events:none;
  left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(124vw,1900px);height:80vh;
  background:radial-gradient(closest-side,rgba(5,9,12,.66) 0%,rgba(5,9,12,.6) 50%,rgba(5,9,12,.4) 75%,rgba(5,9,12,.17) 90%,transparent 100%)}
@media(max-width:640px){.vrim-copy::before{width:210vw;height:84vh}}
/* Hero copy lives over the photo → always light, both seasons. */
.vrim-eyebrow{display:inline-block;font-family:'Archivo',sans-serif;font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--vr-accent-photo);transition:color .6s ease}
.vrim-h1{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(2.4rem,6vw,5rem);line-height:1;letter-spacing:-.02em;color:#F7F1E8;margin:16px auto 0;max-width:16ch;text-wrap:balance;text-shadow:0 1px 3px rgba(0,0,0,.55),0 2px 18px rgba(0,0,0,.6),0 2px 46px rgba(0,0,0,.5)}
.vrim-h1 span{display:block}
.vrim-sub{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1.4;color:#E4E0D6;max-width:40ch;margin:20px auto 0;text-shadow:0 1px 3px rgba(0,0,0,.55),0 1px 20px rgba(0,0,0,.55)}
.vrim-sub em{font-style:italic;color:var(--vr-accent-photo)}
.vrim-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:15px;margin-top:32px}
.vr-btn-primary{display:inline-flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-size:14px;font-weight:600;color:#10150f;background:var(--vr-ember);border-radius:2px;padding:15px 26px;cursor:pointer;box-shadow:0 10px 34px rgba(214,138,76,.4)}
.vr-btn-primary span{font-size:15px}
/* Obě hero tlačítka leží NAD fotkou v obou sezónách, takže si barvu písma drží
   napevno. Nutná vyšší specificita než .vr-root a{color:inherit} — jinak zdědí
   --vr-text a v zimě (tmavý text na světlém motivu) zmizí do tmavé fotky. */
.vr-root .vr-btn-primary{color:#10150f}
.vr-root .vr-btn-ghost{color:#F0EBE1}
.vr-btn-ghost{display:inline-flex;align-items:center;font-family:'Archivo',sans-serif;font-size:14px;font-weight:600;background:rgba(16,21,18,.42);backdrop-filter:blur(6px);border:1px solid rgba(240,235,225,.32);border-radius:2px;padding:14px 24px;cursor:pointer}
.vr-seg{display:inline-flex;background:var(--vr-seg-bg);border:1px solid var(--vr-line);border-radius:999px;padding:3px;transition:background-color .6s ease,border-color .6s ease}
/* Přepínač sezóny je <a href="?season=…"> (crawler ho musí vidět jako odkaz),
   proto tu jsou i vlastnosti, které <button> dostával od prohlížeče. */
.vr-segbtn{display:inline-block;font-family:'Archivo',sans-serif;font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--vr-text-muted);background:transparent;border:0;border-radius:999px;padding:7px 14px;cursor:pointer;text-decoration:none;white-space:nowrap;line-height:1.2;transition:background .25s,color .25s}
.vr-segbtn[data-active="true"]{background:var(--vr-accent);color:var(--vr-on-accent)}

/* ---------- Winter hero: LIGHT text like summer, carried by a local scrim -----
   Majitel 7/2026: „u zimního hero to udělej stejně jako to má letní … ty bílý
   písmena tam vypadají líp." Zima proto dostává STEJNÉ ošetření jako léto:
   světlý text (#F7F1E8 / #E4E0D6) + tmavá opora pod textem. Aby fotka zůstala
   světlá a vzdušná (a vila NEZANIKLA, což majitel u dřívější celoplošně tmavé
   verze vytýkal), je ztmavení jen dvojí a obojí míří MIMO vilu:
   1) .vrim-scrim — jemný proužek nahoře (čitelnost navigace: bez něj drží
      světlé odkazy na sněhu jen 1,45:1) a náběh odspodu, který začíná až POD
      patou vily (40 % výšky),
   2) .vrim-copy::before — lokální elipsa svázaná s VÝŠKOU textového bloku
      (calc(100% + 26vh)) a posunutá výš (top:33 %), takže vrchol leží na
      eyebrow/h1/podtitulku, ne pod tlačítky; díky vazbě na blok drží ve všech
      4 jazycích stejně.
   Vinětace zůstává v zimě VYPNUTÁ (ztmavovala celou fotku do rohů).
   Naměřeno na skutečných pixelech zimní fotky (scratchpad/herogrid2.mjs +
   grideval.py, text schovaný, vzorkován přesně rámeček h1/podtitulku):
   h1 p90 = 7,04:1 desktop 1440×900 / 5,55:1 mobil 390×780 (nejhorší ze 4 jazyků),
   podtitulek p90 = 5,71:1, eyebrow p90 = 3,8–5,2:1 (léto má na svém eyebrow
   2,5–2,9:1, jde o dekorativní popisek). Pro srovnání ostré letní hero:
   h1 p90 6,78:1 desktop / 7,05:1 mobil. Průměrný jas hera: zima 0,120 vs.
   léto 0,067 — zimní fotka tedy zůstává skoro dvakrát světlejší, pás s vilou
   0,189 vs. 0,130 v létě. Léto NESAHAT. */
.vr-root[data-season="zima"] .vrim-vig{background:none}
.vr-root[data-season="zima"] .vrim-scrim{
  background:linear-gradient(180deg,rgba(4,7,10,.30) 0%,rgba(4,7,10,.048) 13%,
    rgba(4,7,10,0) 40%,rgba(4,7,10,.17) 70%,rgba(4,7,10,.5) 100%)}
.vr-root[data-season="zima"] .vrim-copy::before{
  top:33%;width:min(126vw,1960px);height:calc(100% + 26vh);
  background:radial-gradient(closest-side,rgba(5,9,12,.58) 0%,rgba(5,9,12,.545) 52%,
    rgba(5,9,12,.394) 74%,rgba(5,9,12,.151) 89%,transparent 100%)}
/* PÍSMO JE V ZIMĚ STEJNĚ VELKÉ JAKO V LÉTĚ (majitel: „zkus zvětšit to písmo
   stejně jako to je v letní verzi"). Zimní blok proto NEMÁ vlastní font-size ani
   vlastní odsazení h1/podtitulku — obojí dědí letní clamp(). Aby se větší text
   pořád vešel POD patu vily (~54 % výšky hera), řešíme to jen LAYOUTEM:
   1) širší max-width → h1 se láme na 2 řádky místo 3 a podtitulek na 1 řádek
      (stejná velikost písma, jen jiný zlom),
   2) blok je ukotvený níž nad čistým sněhem (výškově odstupňovaný clamp).
   Ověřeno měřením ve 4 jazycích na desktopu i mobilu. */
.vr-root[data-season="zima"] .vrim-copy{bottom:clamp(18px,4vh,64px)}
/* Barvy i stíny textu jsou v zimě STEJNÉ JAKO V LÉTĚ; zimní zůstává jen
   line-breaking (širší max-width → h1 na 2 řádky), aby se blok vešel pod patu
   vily. Zkoušeli jsme i letní ukotvení bloku (text přes dům, jak majitel
   povolil) — vila na něm sice zůstala vidět, ale podtitulek spadl na 4,25:1
   (pod AA), a fotka se ztmavila víc; proto zůstává blok dole nad sněhem. */
.vr-root[data-season="zima"] .vrim-h1{max-width:22ch}
.vr-root[data-season="zima"] .vrim-sub{max-width:48ch}
/* Jediná zbylá zimní komprese je mezera NAD TLAČÍTKY (písma se netýká): bez ní
   by blok na 2:1 laptopech a malých telefonech vylezl na vilu. */
.vr-root[data-season="zima"] .vrim-actions{margin-top:18px}
/* Nízké obrazovky (2:1 laptopy): pod patou vily zbývá málo místa → blok ukotvi
   ještě níž. Velikost písma se NEMĚNÍ. */
@media(max-height:800px){
  .vr-root[data-season="zima"] .vrim-copy{bottom:clamp(12px,2.4vh,24px)}
}
/* Mobil: h1 se láme podle šířky displeje (max-width se neuplatní), blok je tedy
   vysoký → ukotvi ho co nejníž nad sněhem. Elipsa se šířkou/výškou už řídí sama
   podle bloku (calc(100% + 26vh)), takže vlastní mobilní rozměr nepotřebuje. */
@media(max-width:640px){
  .vr-root[data-season="zima"] .vrim-copy{bottom:clamp(8px,1.6vh,18px)}
}

/* ---------- Section shells ---------- */
.vr-wrap{max-width:1340px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.vr-eyebrow{display:inline-block;font-family:'Archivo',sans-serif;font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--vr-accent);transition:color .6s ease}
.vr-h2{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.05;letter-spacing:-.015em;color:var(--vr-text);margin:14px 0 0;text-wrap:balance;transition:color .6s ease}
.vr-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.vr-sec-note{font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--vr-text-faint);max-width:30ch;transition:color .6s ease}

/* Statement */
.sec-dum{position:relative;padding:clamp(80px,13vh,170px) 0}
.vr-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--vr-line);padding-top:36px}
.vr-fact-k{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.6rem,2.6vw,2.4rem);color:var(--vr-accent-2);line-height:1;transition:color .6s ease}
.vr-fact-v{font-family:'Archivo',sans-serif;font-size:13px;line-height:1.5;color:var(--vr-text-dim);margin-top:9px;letter-spacing:.01em;transition:color .6s ease}

/* 360 */
.sec-interier{padding:clamp(80px,13vh,160px) 0;background:linear-gradient(180deg,var(--vr-bg),var(--vr-bg-grad) 50%,var(--vr-bg));transition:background .6s ease}
.vr-exphead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.vr-tour-hint{font-family:'Archivo',sans-serif;font-size:12.5px;line-height:1.5;color:var(--vr-text-dim);max-width:32ch;text-align:right;transition:color .6s ease}
/* Pano stage is a FULL-BLEED 3D viewer (edge-to-edge like the hero) — keep its
   internals dark in both seasons. Výška vyplní podstatnou část obrazovky. */
/* Majitel: „chci vidět víc svisle — ať se výřez blíží čtverci, ne proužku."
   Výška výrazně nahoru (z min(78vh,820px)); svislý záběr kamery se dopočítává
   v JS z poměru stran, takže vyšší stage = víc stropu i podlahy naráz. */
.vrp-stage{position:relative;overflow:hidden;background:#0b0f0d;cursor:grab;touch-action:pan-y;
  width:100%;height:min(96vh,1100px);margin-top:clamp(26px,3.4vw,42px);
  box-shadow:inset 0 0 90px rgba(0,0,0,.4)}
.vrp-stage:active{cursor:grabbing}
/* Měkké okraje (majitel: „ne ostrá hrana, ale fade away nahoře i dole"). Fade
   jde do var(--vr-bg) → drží v OBOU sezónách (léto tmavé, zima světlé). z-index:2
   = nad canvasem/scrimem, ale POD ovládáním (drag/caption mají z-index:3), takže
   nezakrývá titulek scény ani nápovědu „chyť a otáčej". Pruh náhledů níže do
   spodního fadeu zajíždí (negativní margin). */
.vrp-stage::before,.vrp-stage::after{content:'';position:absolute;left:0;right:0;z-index:2;pointer-events:none}
/* Majitel: „splývání ať jde z fotky ven, ne z pozadí dovnitř." Fade proto jen
   v KRAJNÍCH pásech (malá %) + nelineární křivka (interpolační hint za první
   barvou) → alfa spadne rychle hned u kraje a pak dlouhý jemný ohon do nuly.
   Naprostá většina scény je tak plná a ostrá, splývá až úplně nahoře a dole.
   Blend do var(--vr-bg) → drží v obou sezónách. Spodní pás je o něco vyšší,
   protože do něj zajíždí pruh náhledů. Ovládání (z-index:3) zůstává nad. */
.vrp-stage::before{top:0;height:8%;background:linear-gradient(180deg,var(--vr-bg) 0%,30%,transparent 100%)}
.vrp-stage::after{bottom:0;height:13%;background:linear-gradient(0deg,var(--vr-bg) 0%,34%,transparent 100%)}
.vrp-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity 1s ease}
/* Vnitřní scrim jen kvůli čitelnosti titulku a nápovědy — držíme ho co nejužší,
   ať vyšší výřez zůstane obrazem, ne přechodem. */
.vrp-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(6,9,8,.28),transparent 14%,transparent 72%,rgba(6,9,8,.78))}
.vrp-vig{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(125% 100% at 50% 44%,transparent 56%,rgba(3,6,9,.36) 84%,rgba(3,6,9,.62) 100%)}
.vrp-drag{position:absolute;z-index:3;left:50%;top:16px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:8px 15px;border:1px solid rgba(240,235,225,.18);border-radius:999px;background:rgba(8,11,14,.5);backdrop-filter:blur(10px);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#D5DAD0;pointer-events:none;transition:opacity .5s ease}
.vrp-drag svg{width:15px;height:15px;opacity:.85}
/* Titulek scény posunut výš, aby seděl NAD pruhem náhledů (ten teď zajíždí do
   spodního fadeu) a zůstal nad tmavou částí panoramatu i v zimě (světlé pozadí). */
.vrp-cap{position:absolute;z-index:3;left:clamp(20px,3vw,32px);bottom:clamp(112px,13vh,168px);pointer-events:none}
.vrp-cap h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2.3rem);color:#F7F1E8;margin:0;line-height:1.05;text-shadow:0 1px 2px rgba(0,0,0,.9),0 2px 26px rgba(0,0,0,.6)}
.vrp-spin{position:absolute;z-index:4;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;border:2px solid rgba(240,235,225,.22);border-top-color:var(--vr-accent);border-radius:50%;opacity:0;pointer-events:none;transition:opacity .25s;animation:vrpRot .9s linear infinite}
/* Návratový chip z 360° prohlídky — sklo jako ostatní overlaye. Sedí vlevo
   nahoře: nápověda „chyť a otáčej" je uprostřed, titulek vlevo dole, menu skupin
   nad scénou — takže nekoliduje. z-index nad fady i ovládáním, pointer-events
   zpět zapnuté (rám scény je má vypnuté). */
.vrp-return{position:absolute;z-index:5;top:clamp(14px,2.2vh,22px);left:clamp(14px,3vw,30px);
  display:flex;align-items:stretch;max-width:calc(100% - 28px);
  border:1px solid rgba(240,235,225,.20);border-radius:999px;background:rgba(8,11,14,.56);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 6px 22px rgba(0,0,0,.32);overflow:hidden}
.vrp-return[hidden]{display:none}
.vrp-return-back{display:flex;align-items:center;gap:8px;min-width:0;
  padding:9px 6px 9px 14px;background:transparent;border:0;cursor:pointer;
  font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.02em;
  color:#EDE9E0;transition:background-color .2s}
.vrp-return-back:hover{background:rgba(255,255,255,.08)}
.vrp-return-ar{flex:0 0 auto;display:flex}
.vrp-return-ar svg{width:16px;height:16px;opacity:.9}
.vrp-return-lb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vrp-return-x{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:34px;padding:0;
  background:transparent;border:0;border-left:1px solid rgba(240,235,225,.16);
  color:#CDD2C8;cursor:pointer;transition:background-color .2s,color .2s}
.vrp-return-x:hover{background:rgba(255,255,255,.08);color:#fff}
.vrp-return-x svg{width:15px;height:15px}
.vrp-return-back:focus-visible,.vrp-return-x:focus-visible{outline:2px solid var(--vr-accent);outline-offset:2px}
@media(max-width:600px){
  .vrp-return{top:12px;left:12px;max-width:calc(100% - 24px)}
  .vrp-return-back{font-size:12px;padding:8px 5px 8px 12px}
  .vrp-return-lb{max-width:56vw}
}
/* Menu skupin (patra / exteriéry) nad scénou — decentní chipy, na mobilu
   vodorovný scroll. Stejný jazyk jako filtry galerie, jen menší, aby to
   nevypadalo jako druhá úroveň záložek. */
.vrp-groups{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 4px;margin:clamp(16px,1.8vw,22px) 0 clamp(4px,.6vw,8px);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.vrp-groups::-webkit-scrollbar{display:none}
.vrp-groups[hidden]{display:none}
.vrp-group{flex:0 0 auto;font-family:'Archivo',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--vr-text-muted);background:transparent;border:1px solid var(--vr-line);border-radius:999px;padding:7px 15px;cursor:pointer;white-space:nowrap;transition:color .25s,background-color .25s,border-color .25s}
.vrp-group:hover{color:var(--vr-text);border-color:var(--vr-line-2)}
.vrp-group[data-active="true"]{color:var(--vr-on-accent);background:var(--vr-accent);border-color:var(--vr-accent)}
.vrp-group:focus-visible{outline:2px solid var(--vr-accent);outline-offset:2px}
@media(max-width:600px){.vrp-group{font-size:11px;padding:6px 13px}}

/* Pruh náhledů „sedí ve fadeu" — negativní margin ho vytáhne do spodního okraje
   stage, z-index ho drží nad panoramatem. Negativní margin nese RAIL (obal se
   šipkami), aby se šipky svisle vystředily přesně na náhledy. */
.vrp-striprail{position:relative;z-index:3;margin-top:clamp(-64px,-6vh,-46px)}
.vrp-strip{display:flex;gap:10px;position:relative;overflow-x:auto;padding-bottom:6px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.vrp-strip::-webkit-scrollbar{display:none}
/* ŠIPKY U PRUHU NÁHLEDŮ — stejný jazyk jako u karuselu ložnic (.vr-car-arrow),
   jen menší, protože pruh je nižší. Na krajích se ztlumí a vypnou. */
.vrp-strip-arrow{position:absolute;top:calc(50% - 3px);transform:translateY(-50%);z-index:4;
  display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;
  border:1px solid var(--vr-line-2);background:var(--vr-panel-strong);color:var(--vr-text-soft);
  font-size:21px;line-height:1;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.28);
  backdrop-filter:blur(10px);   /* pruh leží zpola na panoramatu — ať šipka drží i na světlém záběru */
  transition:background .25s,color .25s,border-color .25s,opacity .25s}
.vrp-strip-arrow:hover{background:var(--vr-accent);color:var(--vr-on-accent);border-color:var(--vr-accent)}
.vrp-strip-arrow:focus-visible{outline:2px solid var(--vr-accent);outline-offset:2px}
.vrp-strip-arrow.prev{left:-6px}
.vrp-strip-arrow.next{right:-6px}
/* Krajní stavy: na začátku zhasne levá, na konci pravá, a když se pruh vejde
   celý, zmizí obě. */
.vrp-striprail[data-scrollable="false"] .vrp-strip-arrow,
.vrp-striprail[data-start="true"] .vrp-strip-arrow.prev,
.vrp-striprail[data-end="true"] .vrp-strip-arrow.next{opacity:0;pointer-events:none}
/* Okrajový fade = druhý signál, že pruh pokračuje (drží i na dotyku, kde se
   se šipkami nepracuje). Maskuje se jen ta strana, kam se dá posunout. */
.vrp-striprail[data-scrollable="true"] .vrp-strip{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%)}
.vrp-striprail[data-scrollable="true"][data-start="true"] .vrp-strip{
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent 100%);
  mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent 100%)}
.vrp-striprail[data-scrollable="true"][data-end="true"] .vrp-strip{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34px);
  mask-image:linear-gradient(90deg,transparent 0,#000 34px)}
.vrp-striprail[data-scrollable="true"][data-start="true"][data-end="true"] .vrp-strip{
  -webkit-mask-image:none;mask-image:none}
@media(max-width:600px){
  .vrp-strip-arrow{width:32px;height:32px;font-size:18px}
  .vrp-strip-arrow.prev{left:-4px}
  .vrp-strip-arrow.next{right:-4px}
}
@media(prefers-reduced-motion:reduce){.vrp-strip-arrow{transition:none}}
.vrp-thumb{position:relative;flex:0 0 auto;width:132px;height:80px;border-radius:3px;border:1.5px solid transparent;cursor:pointer;opacity:.5;transition:opacity .25s,border-color .25s;padding:0;overflow:hidden;background:#11160f}
.vrp-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vrp-thumb span{position:absolute;left:0;right:0;bottom:0;z-index:2;font-family:'Archivo',sans-serif;font-size:9.5px;font-weight:700;letter-spacing:.08em;line-height:1.2;text-transform:uppercase;color:#fff;background:linear-gradient(180deg,transparent,rgba(4,7,6,.88));padding:16px 7px 5px;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vrp-thumb:hover{opacity:.85}
.vrp-thumb[data-active="true"]{opacity:1;border-color:var(--vr-accent)}
.vr-expdetail{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,46px);align-items:baseline;margin-top:24px;border-top:1px solid var(--vr-line);padding-top:24px}
.vr-expdetail-idx{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(1.4rem,2vw,1.8rem);color:var(--vr-accent-2);line-height:1;white-space:nowrap;transition:color .6s ease}
.vr-expdetail-idx b{color:var(--vr-text-faintest);font-weight:300}
.vr-expdetail h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.4rem,2.4vw,2.1rem);color:var(--vr-text-soft);margin:0;line-height:1.1;transition:color .6s ease}
.vr-expdetail p{font-family:'Archivo',sans-serif;font-size:clamp(14.5px,1vw,16px);line-height:1.65;color:var(--vr-text-muted);margin:10px 0 0;max-width:60ch;transition:color .6s ease}

/* Amenities */
.sec-vybaveni{padding:clamp(80px,13vh,170px) 0;background:linear-gradient(180deg,var(--vr-bg),var(--vr-bg-grad) 50%,var(--vr-bg));transition:background .6s ease}
.vr-tag{font-family:'Archivo',sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--vr-accent);transition:color .6s ease}

/* ===================== VYBAVENÍ — JEDEN SEZNAM, DVĚ ŘAZENÍ =====================
   V HTML je JEDEN seznam karet (#vr-amen). Pořadí i velikost karty určuje TATO
   tabulka podle .vr-root[data-season] — v HTML se nic nepřesouvá a žádná položka
   neexistuje dvakrát. Tři úrovně hierarchie (verdikt: plochý seznam by ji zabil):
     hlavní karta   --amspan:12  (fotka vedle textu, přes celou šířku)
     velká karta    --amspan:4   (3 v řadě)
     malá karta     --amspan:3/4 (4 v řadě v létě, 3 v zimě — vyjde přesná řada)
   POŘADÍ (zadání majitele + verdikt):
     léto:  bazén → altán → hřiště → sauna → kuchyně → ohniště → kulečník → apartmá
     zima:  lyžárna → sauna → kuchyně → ohniště → altán → kulečník → apartmá
   Lyžárna je v zimě PRVNÍ a jako samostatná hlavní karta — podle majitele je to
   nejčastější dotaz zimních hostů a dřív byla až čtvrtou odrážkou „celoročně". */
.vr-amen{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,2.6vw,36px) clamp(18px,2.2vw,30px);margin-top:clamp(40px,6vw,72px)}
.vr-amen>article{grid-column:span var(--amspan,4);min-width:0}
.vr-amen>article img{display:block;width:100%;height:var(--amh,clamp(200px,21vw,270px));object-fit:cover;border-radius:2px}
.vr-amen .vr-tag{display:inline-block;margin-top:16px}
.vr-amen>article h3{font-family:'Newsreader',serif;font-weight:400;font-size:var(--amfs,clamp(1.25rem,1.9vw,1.6rem));color:var(--vr-text-soft);margin:8px 0 0;line-height:1.12;transition:color .6s ease}
.vr-amen>article p{font-family:'Archivo',sans-serif;font-size:var(--amps,14px);line-height:1.64;color:var(--vr-text-muted);margin:9px 0 0;transition:color .6s ease}
/* --- hlavní karta: fotka vedle textu --- */
.vr-root[data-season="leto"] .vr-amen>[data-am="pool"],
.vr-root[data-season="zima"] .vr-amen>[data-am="skiroom"]{
  --amspan:12;--amh:clamp(280px,36vw,440px);--amfs:clamp(1.7rem,3vw,2.5rem);--amps:clamp(15px,1.05vw,17px);
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,3.6vw,60px);align-items:center}
.vr-root[data-season="leto"] .vr-amen>[data-am="pool"] p,
.vr-root[data-season="zima"] .vr-amen>[data-am="skiroom"] p{max-width:46ch}
.vr-root[data-season="leto"] .vr-amen>[data-am="pool"] .vr-tag,
.vr-root[data-season="zima"] .vr-amen>[data-am="skiroom"] .vr-tag{margin-top:0}
/* --- malé karty (páté a další v pořadí) --- */
.vr-root[data-season="leto"] .vr-amen>[data-am="kitchen"],
.vr-root[data-season="leto"] .vr-amen>[data-am="firepit"],
.vr-root[data-season="leto"] .vr-amen>[data-am="billiard"],
.vr-root[data-season="leto"] .vr-amen>[data-am="lounge"]{--amspan:3;--amh:clamp(150px,15vw,200px);--amfs:clamp(1.1rem,1.5vw,1.35rem);--amps:13.5px}
.vr-root[data-season="zima"] .vr-amen>[data-am="altan"],
.vr-root[data-season="zima"] .vr-amen>[data-am="billiard"],
.vr-root[data-season="zima"] .vr-amen>[data-am="lounge"]{--amh:clamp(150px,15vw,200px);--amfs:clamp(1.1rem,1.5vw,1.35rem);--amps:13.5px}
/* --- pořadí --- */
.vr-root[data-season="leto"] .vr-amen>[data-am="pool"]{order:1}
.vr-root[data-season="leto"] .vr-amen>[data-am="altan"]{order:2}
.vr-root[data-season="leto"] .vr-amen>[data-am="hriste"]{order:3}
.vr-root[data-season="leto"] .vr-amen>[data-am="sauna"]{order:4}
.vr-root[data-season="leto"] .vr-amen>[data-am="kitchen"]{order:5}
.vr-root[data-season="leto"] .vr-amen>[data-am="firepit"]{order:6}
.vr-root[data-season="leto"] .vr-amen>[data-am="billiard"]{order:7}
.vr-root[data-season="leto"] .vr-amen>[data-am="lounge"]{order:8}
.vr-root[data-season="zima"] .vr-amen>[data-am="skiroom"]{order:1}
.vr-root[data-season="zima"] .vr-amen>[data-am="sauna"]{order:2}
.vr-root[data-season="zima"] .vr-amen>[data-am="kitchen"]{order:3}
.vr-root[data-season="zima"] .vr-amen>[data-am="firepit"]{order:4}
.vr-root[data-season="zima"] .vr-amen>[data-am="altan"]{order:5}
.vr-root[data-season="zima"] .vr-amen>[data-am="billiard"]{order:6}
.vr-root[data-season="zima"] .vr-amen>[data-am="lounge"]{order:7}
@media(max-width:1000px){
  .vr-amen{grid-template-columns:repeat(6,1fr)}
  .vr-amen>article{--amspan:3!important;--amh:clamp(190px,26vw,240px)!important;--amfs:clamp(1.2rem,2.6vw,1.5rem)!important;--amps:14px!important}
  .vr-root[data-season="leto"] .vr-amen>[data-am="pool"],
  .vr-root[data-season="zima"] .vr-amen>[data-am="skiroom"]{--amspan:6!important;--amh:clamp(260px,44vw,380px)!important;--amfs:clamp(1.6rem,4vw,2.1rem)!important;grid-template-columns:1fr}
}
@media(max-width:560px){.vr-amen{grid-template-columns:1fr}.vr-amen>article{--amspan:1!important;--amh:clamp(190px,46vw,250px)!important}
  .vr-root[data-season="leto"] .vr-amen>[data-am="pool"],
  .vr-root[data-season="zima"] .vr-amen>[data-am="skiroom"]{--amspan:1!important}}

/* ---------- Bedrooms & beds ---------- */
.sec-loznice{padding:clamp(72px,11vh,150px) 0;background:linear-gradient(180deg,var(--vr-bg),var(--vr-bg-grad) 50%,var(--vr-bg));transition:background .6s ease}
/* ---- Interiérový karusel (nekonečná tažná smyčka, full-bleed) ---- */
.vr-car{position:relative;margin-top:clamp(28px,3.6vw,46px)}
.vr-car-track{display:flex;gap:clamp(12px,1.4vw,18px);overflow-x:auto;overscroll-behavior-x:contain;
  padding:6px clamp(20px,5vw,64px);scrollbar-width:none;-ms-overflow-style:none;
  cursor:grab;touch-action:pan-x;-webkit-overflow-scrolling:touch}
.vr-car-track::-webkit-scrollbar{display:none}
.vr-car-track.dragging{cursor:grabbing}
.vr-car-track:focus-visible{outline:2px solid var(--vr-accent);outline-offset:-4px;border-radius:4px}
.vr-car-card{position:relative;flex:0 0 auto;width:clamp(220px,24vw,290px);aspect-ratio:3/4;
  border:0;padding:0;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--vr-panel);user-select:none;-webkit-user-select:none;
  box-shadow:0 8px 30px rgba(0,0,0,.16);transition:transform .3s ease,box-shadow .3s ease;-webkit-tap-highlight-color:transparent}
.vr-car-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;pointer-events:none}
.vr-car-card::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 44%,rgba(6,10,8,.76))}
.vr-car-card:hover{transform:translateY(-4px);box-shadow:0 16px 46px rgba(0,0,0,.3)}
.vr-car-card:hover img{transform:scale(1.05)}
.vr-car-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 15px 13px;
  font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.02rem,1.4vw,1.24rem);line-height:1.15;color:#F7F1E8;text-shadow:0 1px 10px rgba(0,0,0,.5)}
/* Anglický štítek místnosti přímo NA fotce (majitel: „ať je u každé fotky vidět,
   co je to za pokoj — anglicky stačí pro všechny verze"). Levý HORNÍ roh karty:
   dolní pás patří lokalizovanému popisku, pravý horní roh lupě/360 badge.
   Tmavý poloprůhledný podklad → čitelné v obou sezónách na jakékoli fotce. */
.vr-car-tag{position:absolute;left:10px;top:10px;z-index:3;max-width:calc(100% - 62px);
  pointer-events:none;font-family:'Archivo',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.055em;line-height:1;color:#F7F1E8;background:rgba(8,12,10,.68);
  border:1px solid rgba(240,235,225,.2);backdrop-filter:blur(6px);border-radius:999px;
  padding:6px 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:0 1px 4px rgba(0,0,0,.55)}
.vr-car-badge{position:absolute;top:11px;right:11px;z-index:3;display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:999px;background:rgba(10,14,12,.5);border:1px solid rgba(240,235,225,.28);color:#F0EBE1;
  backdrop-filter:blur(6px);opacity:0;transform:scale(.82);transition:opacity .25s ease,transform .25s ease}
.vr-car-card:hover .vr-car-badge,.vr-car-card:focus-visible .vr-car-badge{opacity:1;transform:none}
.vr-car-badge.is360{background:rgba(214,138,76,.92);border-color:transparent;color:#10150f}
.vr-car-badge svg{width:20px;height:20px}
/* Špendlík „ukázat na plánu" — sesterský prvek k 360/lupě badge, o kousek vlevo.
   Zjeví se s badge při hoveru/fokusu karty; menší a tmavší, ať nedominuje. Na
   dotykových zařízeních skrytý (reverzní cesta tam vede přes lightbox). */
.vr-car-pin{position:absolute;top:13px;right:56px;z-index:4;display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:999px;background:rgba(10,14,12,.5);border:1px solid rgba(240,235,225,.28);color:#F0EBE1;
  cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;
  opacity:0;transform:scale(.82);transition:opacity .25s ease,transform .25s ease,background .2s ease,border-color .2s ease,color .2s ease}
.vr-car-pin svg{width:17px;height:17px;pointer-events:none}
.vr-car-card:hover .vr-car-pin,.vr-car-card:focus-visible .vr-car-pin,.vr-car-pin:hover{opacity:1;transform:none}
.vr-car-pin:hover{background:rgba(214,138,76,.9);border-color:transparent;color:#10150f}
@media(hover:none){.vr-car-pin{display:none}}
.vr-car-arrow{position:absolute;top:calc(50% - 8px);transform:translateY(-50%);z-index:4;display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:999px;border:1px solid var(--vr-line-2);background:var(--vr-panel-strong);color:var(--vr-text-soft);
  font-size:24px;line-height:1;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.22);transition:background .25s,color .25s,border-color .25s}
.vr-car-arrow:hover{background:var(--vr-accent);color:var(--vr-on-accent);border-color:var(--vr-accent)}
.vr-car-arrow.prev{left:clamp(8px,2vw,22px)}
.vr-car-arrow.next{right:clamp(8px,2vw,22px)}
@media(hover:none){.vr-car-arrow{display:none}}
@media(prefers-reduced-motion:reduce){.vr-car-card,.vr-car-card img{transition:none}}
.vr-car-hint{font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--vr-text-faint);margin:clamp(12px,1.4vw,16px) 0 0;transition:color .6s ease}
/* ---- Rozpis lůžek (textový blok pod karuselem) ----
   Od 7/2026 je to samostatně nadepsaný podblok: nadpis sekce se přejmenoval
   na „Dům zevnitř“ (karusel veze i kuchyň a saunu), takže slib o spaní žije
   tady. Proto má rozpis pořádný podnadpis, ne jen drobný štítek. */
.vr-roster{margin-top:clamp(34px,4vw,52px);padding-top:clamp(26px,3vw,38px);border-top:1px solid var(--vr-line);transition:border-color .6s ease}
.vr-roster-title{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.3rem,2.1vw,1.75rem);letter-spacing:-.01em;color:var(--vr-text-soft);margin:0;transition:color .6s ease}
.vr-roster-note{font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.6;color:var(--vr-text-muted);margin:8px 0 clamp(16px,2vw,22px);max-width:62ch;transition:color .6s ease}
.vr-roster-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,4vw,56px);margin:0}
.vr-roster-row{display:grid;grid-template-columns:auto 1fr;column-gap:12px;padding:13px 0;border-top:1px solid var(--vr-line)}
.vr-roster-ic{grid-column:1;grid-row:1/span 2;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;
  color:var(--vr-accent-2);background:color-mix(in oklab,var(--vr-accent),transparent 88%);
  border:1px solid color-mix(in oklab,var(--vr-accent),transparent 74%);transition:color .6s ease,background-color .6s ease,border-color .6s ease}
.vr-roster-ic svg{width:17px;height:17px}
.vr-roster-row dt{grid-column:2;grid-row:1;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.vr-roster-row dt b{font-family:'Newsreader',serif;font-weight:500;font-size:1.06rem;color:var(--vr-text-soft);transition:color .6s ease}
.vr-roster-cap{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;color:var(--vr-accent-2);transition:color .6s ease}
.vr-roster-row dd{grid-column:2;grid-row:2;margin:4px 0 0;font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.55;color:var(--vr-text-muted);transition:color .6s ease}
.vr-beds-foot{font-family:'Archivo',sans-serif;font-size:13px;line-height:1.6;color:var(--vr-text-faint);margin:clamp(20px,2.6vw,30px) 0 0;max-width:60ch;transition:color .6s ease}
@media(max-width:720px){.vr-roster-list{grid-template-columns:1fr}}

/* ---------- Plán domu (interaktivní půdorysy — blend-in do sekce) ----------
   Sedí mezi karuselem a rozpisem lůžek. Rendery jsou vyříznuté z bílého pozadí
   (WebP s alfou) → „plují" přímo v sekci místo nalepeného bílého obdélníku.
   Toning + měkký stín je uzemní v OBOU sezónách: v létě (tmavé téma) ztlumíme
   záři bílých stěn a přidáme teplý tón k paletě + hlubší stín, v zimě (světlé
   téma) stačí decentní stín. Přes render leží NAŠE popisky jako klikací „chipy"
   (tmavé v obou sezónách — render je vždy světlý), hover = ember zvýraznění.
   Přepínač pater = řada čtyř plovoucích modelů (varianta B). */
.vr-plan{margin-top:clamp(34px,4vw,52px);padding-top:clamp(26px,3vw,38px);border-top:1px solid var(--vr-line);transition:border-color .6s ease}
.vr-plan-head{max-width:640px}
.vr-plan-title{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.3rem,2.1vw,1.75rem);letter-spacing:-.01em;color:var(--vr-text-soft);margin:6px 0 0;transition:color .6s ease}
.vr-plan-note{font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.6;color:var(--vr-text-muted);margin:8px 0 0;max-width:56ch;transition:color .6s ease}
.vr-plan-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:clamp(18px,2.4vw,26px) 0 clamp(14px,1.8vw,20px)}
.vr-plan-tab{flex:0 0 auto;font-family:'Archivo',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--vr-text-muted);background:transparent;border:1px solid var(--vr-line);border-radius:999px;padding:7px 15px;cursor:pointer;white-space:nowrap;transition:color .25s,background-color .25s,border-color .25s}
.vr-plan-tab:hover{color:var(--vr-text);border-color:var(--vr-line-2)}
.vr-plan-tab[aria-selected="true"]{color:var(--vr-on-accent);background:var(--vr-accent);border-color:var(--vr-accent)}
.vr-plan-tab:focus-visible{outline:2px solid var(--vr-accent);outline-offset:2px}
.vr-plan-stage{position:relative}
.vr-plan-panel[hidden]{display:none}
/* Vyříznutý render: žádná bílá karta, jen měkký uzemňující stín (zima). */
.vr-plan-fig{position:relative;margin:0 auto;max-width:760px;background:transparent}
.vr-plan-img{display:block;width:100%;height:auto;
  filter:drop-shadow(0 16px 22px rgba(23,36,46,.20));transition:filter .6s ease}
/* Léto (tmavé téma): ztlumit záři bílých stěn, teplý tón k ember paletě, hlubší stín. */
.vr-root[data-season="leto"] .vr-plan-fig .vr-plan-img{
  filter:brightness(.9) contrast(1.03) saturate(1.06) sepia(.1) drop-shadow(0 26px 30px rgba(0,0,0,.5))}
.vr-plan-spot{position:absolute;transform:translate(-50%,-50%);z-index:2;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  font-family:'Archivo',sans-serif;font-size:clamp(9.5px,1.35vw,12.5px);font-weight:600;line-height:1;letter-spacing:.01em;
  padding:5px 9px;border-radius:999px;border:1px solid rgba(240,235,225,.14);
  background:rgba(14,19,17,.74);color:#F2ECE1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.vr-plan-spot .vr-plan-name{pointer-events:none}
.vr-plan-spot.is-static{background:rgba(14,19,17,.56);color:#DAD4C8;font-weight:500;border-color:transparent}
button.vr-plan-spot{cursor:pointer;transition:background-color .18s,color .18s,box-shadow .18s,transform .18s}
button.vr-plan-spot .vr-plan-dot{width:6px;height:6px;border-radius:50%;background:var(--vr-ember);flex:0 0 auto;transition:background-color .18s}
button.vr-plan-spot:hover,button.vr-plan-spot:focus-visible{background:var(--vr-ember);color:#10150f;border-color:var(--vr-ember);box-shadow:0 7px 22px rgba(0,0,0,.4);transform:translate(-50%,-50%) scale(1.06);outline:none;z-index:3}
button.vr-plan-spot:hover .vr-plan-dot,button.vr-plan-spot:focus-visible .vr-plan-dot{background:#10150f}
.vr-plan-orient{position:absolute;left:10px;bottom:10px;z-index:2;font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:.02em;
  padding:4px 10px;border-radius:6px;background:rgba(14,19,17,.66);color:#EDE7DC;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.vr-plan-hint{font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--vr-text-faint);margin:clamp(12px,1.6vw,18px) 0 0;transition:color .6s ease}
@media(prefers-reduced-motion:reduce){button.vr-plan-spot{transition:none}}
/* Pulz hotspotu po skoku „fotka → plán": ember obrys ~2 s (2 iterace) + ember
   výplň, ať je cílová místnost jednoznačně vidět. */
button.vr-plan-spot.vr-plan-pulse{background:var(--vr-ember);color:#10150f;border-color:var(--vr-ember);z-index:4;animation:vrSpotPulse 1.05s ease-out 2}
button.vr-plan-spot.vr-plan-pulse .vr-plan-dot{background:#10150f}
@keyframes vrSpotPulse{
  0%{box-shadow:0 0 0 0 rgba(214,138,76,.7),0 7px 22px rgba(0,0,0,.4)}
  70%{box-shadow:0 0 0 13px rgba(214,138,76,0),0 7px 22px rgba(0,0,0,.4)}
  100%{box-shadow:0 0 0 0 rgba(214,138,76,0),0 7px 22px rgba(0,0,0,.4)}
}
@media(prefers-reduced-motion:reduce){button.vr-plan-spot.vr-plan-pulse{animation:none}}
@media(max-width:520px){.vr-plan-spot{padding:4px 7px;gap:4px}}

/* ===== Varianta B: čtyři patra vedle sebe jako plovoucí modely =====
   Náhledy jsou vyříznuté rendery normalizované na STEJNOU výšku (basement je
   vysoký/úzký, ostatní nízké/široké) → řada působí záměrně jako čtyři modely
   vedle sebe, ne jako čtyři různě velké obdélníky. Chipy na náhledech NEJSOU —
   patro se vybere klikem a zvětší se dole do aktivního stavu s chipy. */
.vr-plan-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(6px,1.2vw,16px);align-items:end;margin:clamp(20px,2.6vw,30px) 0 clamp(20px,2.6vw,30px)}
.vr-plan-thumb{appearance:none;-webkit-appearance:none;background:transparent;border:0;margin:0;padding:6px 2px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:12px;border-radius:12px}
.vr-plan-thumb-fig{height:clamp(78px,9.5vw,132px);width:100%;display:flex;align-items:flex-end;justify-content:center}
.vr-plan-thumb-img{max-height:100%;max-width:100%;width:auto;object-fit:contain;opacity:.8;
  filter:drop-shadow(0 8px 12px rgba(23,36,46,.16));transition:opacity .3s ease,transform .3s ease,filter .3s ease}
.vr-root[data-season="leto"] .vr-plan-thumb-img{opacity:.66;filter:brightness(.9) saturate(1.06) sepia(.1) drop-shadow(0 10px 14px rgba(0,0,0,.42))}
.vr-plan-thumb-lab{position:relative;font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--vr-text-muted);transition:color .25s}
.vr-plan-thumb:hover .vr-plan-thumb-img,.vr-plan-thumb[aria-selected="true"] .vr-plan-thumb-img{opacity:1;transform:translateY(-3px)}
.vr-plan-thumb:hover .vr-plan-thumb-lab,.vr-plan-thumb[aria-selected="true"] .vr-plan-thumb-lab{color:var(--vr-text)}
.vr-plan-thumb[aria-selected="true"] .vr-plan-thumb-lab::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-7px;width:20px;height:2px;border-radius:2px;background:var(--vr-accent)}
.vr-plan-thumb:focus-visible{outline:2px solid var(--vr-accent);outline-offset:3px}
.vr-plan-b .vr-plan-fig{max-width:660px}
.vr-plan-b .vr-plan-panel:not([hidden]){animation:vrPlanFade .45s ease}
@keyframes vrPlanFade{from{opacity:0}to{opacity:1}}
@media(max-width:820px){.vr-plan-thumbs{grid-template-columns:repeat(2,1fr);gap:clamp(12px,2.6vw,22px);max-width:520px;margin-inline:auto}.vr-plan-thumb-fig{height:clamp(100px,20vw,140px)}}
@media(max-width:520px){.vr-plan-thumbs{gap:12px 14px}.vr-plan-thumb-fig{height:118px}}
@media(prefers-reduced-motion:reduce){.vr-plan-b .vr-plan-panel:not([hidden]){animation:none}.vr-plan-thumb-img{transition:none}}

/* Evening (static night scene) — copy sits over a night photo → light in both seasons. */
.sec-vecer{position:relative;height:clamp(420px,72vh,680px);overflow:hidden;background:#05080a}
.vr-vecer-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.vr-vecer-vig{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 38%,transparent 42%,rgba(3,5,8,.82) 100%),linear-gradient(180deg,rgba(4,7,10,.5),transparent 26%,transparent 50%,rgba(4,7,10,.86))}
.vr-vecer-copy{position:absolute;z-index:3;left:0;right:0;bottom:clamp(48px,10vh,120px);text-align:center;padding:0 clamp(20px,5vw,64px)}
.vr-vecer-copy .vr-eyebrow{color:var(--vr-accent-photo)}
.vr-vecer-title{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(1.7rem,3.6vw,3rem);line-height:1.1;letter-spacing:-.015em;color:#F4EFE6;margin:14px auto 0;max-width:22ch;text-wrap:balance;text-shadow:0 2px 30px rgba(0,0,0,.65)}
.vr-vecer-body{font-family:'Archivo',sans-serif;font-size:clamp(14.5px,1.1vw,16.5px);line-height:1.68;color:#D5DAD0;margin:16px auto 0;max-width:52ch;text-shadow:0 1px 14px rgba(0,0,0,.6)}
.sec-vecer .vr-fire-glow{z-index:1}

/* Fire pit */
.sec-ohniste{position:relative;padding:clamp(110px,20vh,240px) 0;overflow:hidden;background:#080B0A}
.vr-fire-glow{position:absolute;left:50%;bottom:-8%;width:62vw;height:48vw;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(214,138,76,.42),rgba(170,82,36,.16) 38%,rgba(214,138,76,0) 70%);filter:blur(8px);animation:vrFlicker 5s ease-in-out infinite;pointer-events:none}
.vr-gabion{position:absolute;left:0;right:0;bottom:0;height:130px;opacity:.45;background:repeating-linear-gradient(90deg,#1a2018 0 38px,#10140e 38px 40px),repeating-linear-gradient(0deg,#1a2018 0 30px,#0e120c 30px 32px);-webkit-mask:linear-gradient(180deg,transparent,#000 65%);mask:linear-gradient(180deg,transparent,#000 65%);pointer-events:none}
.sec-ohniste .vr-wrap{position:relative;z-index:2}
.vr-ohn-grid{display:grid;grid-template-columns:1fr .8fr;gap:clamp(36px,5vw,80px);align-items:center}
.vr-ohn-grid h2{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(2rem,4.6vw,3.7rem);line-height:1.04;letter-spacing:-.015em;color:#F4EFE6;margin:18px 0 0;text-wrap:balance}
.vr-ohn-grid p{font-family:'Archivo',sans-serif;font-size:clamp(15px,1.15vw,17px);line-height:1.72;color:#C7CCC1;margin:22px 0 0;max-width:48ch}
.vr-ohn-grid .vr-slot{display:block;width:100%;height:clamp(320px,40vw,460px)}

/* Group 6-22 */
.sec-skup{padding:clamp(80px,12vh,150px) 0}
.vr-skup{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.vr-skup-big{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(3.4rem,8vw,7rem);line-height:.9;color:var(--vr-accent-2);letter-spacing:-.02em;transition:color .6s ease}
.vr-skup h2{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.7rem,3.2vw,2.7rem);color:var(--vr-text-soft);margin:14px 0 0;line-height:1.1;text-wrap:balance;transition:color .6s ease}
.vr-skup p{font-family:'Archivo',sans-serif;font-size:clamp(15px,1.05vw,17px);line-height:1.72;color:var(--vr-text-muted);margin:16px 0 0;max-width:54ch;transition:color .6s ease}

/* Location */
.sec-lokalita{padding:clamp(80px,13vh,170px) 0}

/* ===================== JEN ZIMA — „Lyžování odsud" =====================
   Exkluzivní zimní sekce (verdikt: právě jedna na sezónu). Schovává ji obecné
   pravidlo [data-season-only]; tady jde čistě o vzhled. Struktura místo prózy:
   jména středisek a čísla jsou jazykově nezávislá, překládají se jen popisky. */
.sec-lyzovani{padding:clamp(72px,11vh,150px) 0;background:linear-gradient(180deg,var(--vr-bg),var(--vr-bg-grad) 50%,var(--vr-bg));transition:background .6s ease}
.vr-ski-hero{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(26px,4vw,60px);align-items:center;margin-top:clamp(34px,5vw,56px)}
.vr-ski-heroimg img{display:block;width:100%;height:clamp(240px,30vw,400px);object-fit:cover;border-radius:2px}
.vr-ski-herobody h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.55rem,2.7vw,2.3rem);color:var(--vr-text-soft);margin:14px 0 0;line-height:1.09;transition:color .6s ease}
.vr-ski-herobody>p{font-family:'Archivo',sans-serif;font-size:clamp(14.5px,1vw,16px);line-height:1.72;color:var(--vr-text-muted);margin:14px 0 0;max-width:52ch;transition:color .6s ease}
.vr-ski-specs{list-style:none;display:flex;flex-wrap:wrap;gap:12px 26px;margin:20px 0 0;padding:16px 0 0;border-top:1px solid var(--vr-line)}
.vr-ski-specs li{display:flex;align-items:baseline;gap:9px;flex:1 1 200px;font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.45;color:var(--vr-text-muted);transition:color .6s ease}
.vr-ski-specs b{font-family:'Newsreader',serif;font-weight:400;font-size:1.4rem;color:var(--vr-accent);white-space:nowrap;transition:color .6s ease}
.vr-ski-plus{font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.65;color:var(--vr-text-muted);margin:16px 0 0;transition:color .6s ease}
/* Poctivá poznámka (sněhové podmínky) — vizuálně tišší, ale nesmí zmizet. */
.vr-ski-warn{font-family:'Archivo',sans-serif;font-size:13px;line-height:1.66;color:var(--vr-text-faint);margin:12px 0 0;padding-left:14px;border-left:2px solid var(--vr-line-2);transition:color .6s ease,border-color .6s ease}
.vr-ski-block{margin-top:clamp(40px,6vw,72px)}
.vr-ski-h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.35rem,2.1vw,1.85rem);color:var(--vr-text-soft);margin:0;line-height:1.14;transition:color .6s ease}
.vr-ski-lead{font-family:'Archivo',sans-serif;font-size:14.5px;line-height:1.7;color:var(--vr-text-muted);margin:10px 0 0;max-width:74ch;transition:color .6s ease}
.vr-ski-rows{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--vr-line)}
.vr-ski-rows li{display:grid;grid-template-columns:minmax(170px,1.05fr) 92px 100px minmax(0,1.5fr);align-items:baseline;gap:6px 18px;padding:14px 0;border-bottom:1px solid var(--vr-line);font-family:'Archivo',sans-serif}
.vr-ski-rows .n{font-size:15px;color:var(--vr-text-soft);transition:color .6s ease}
.vr-ski-rows .d,.vr-ski-rows .t{font-size:13.5px;color:var(--vr-accent);white-space:nowrap;font-variant-numeric:tabular-nums;transition:color .6s ease}
.vr-ski-rows .x{font-size:13px;line-height:1.55;color:var(--vr-text-faint);transition:color .6s ease}
.vr-ski-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,32px);margin-top:clamp(34px,4.5vw,56px);padding-top:clamp(24px,3vw,36px);border-top:1px solid var(--vr-line)}
.vr-ski-notes h4{font-family:'Archivo',sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vr-accent);margin:0;transition:color .6s ease}
.vr-ski-notes p{font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.68;color:var(--vr-text-muted);margin:10px 0 0;transition:color .6s ease}
.vr-ski-tiles{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.6vw,20px);margin:clamp(18px,2.4vw,28px) 0 0;padding:0}
.vr-ski-tiles li{border:1px solid var(--vr-line);border-radius:3px;padding:16px 16px 18px;background:var(--vr-panel);transition:background-color .6s ease,border-color .6s ease}
.vr-ski-tiles b{display:block;font-family:'Newsreader',serif;font-weight:400;font-size:1.1rem;line-height:1.22;color:var(--vr-text-soft);transition:color .6s ease}
.vr-ski-tiles span{display:block;margin-top:7px;font-family:'Archivo',sans-serif;font-size:12.5px;line-height:1.55;color:var(--vr-text-faint);transition:color .6s ease}
@media(max-width:1080px){.vr-ski-tiles{grid-template-columns:repeat(3,1fr)}.vr-ski-notes{grid-template-columns:1fr;gap:20px}}
@media(max-width:900px){.vr-ski-hero{grid-template-columns:1fr}
  .vr-ski-rows li{grid-template-columns:1fr auto auto}
  .vr-ski-rows .x{grid-column:1/-1}}
@media(max-width:640px){.vr-ski-tiles{grid-template-columns:1fr 1fr}
  .vr-ski-rows li{grid-template-columns:1fr auto;gap:4px 12px}
  .vr-ski-rows .t{grid-column:2}}
@media(max-width:400px){.vr-ski-tiles{grid-template-columns:1fr}}

/* Trips */
.sec-vylety{padding:clamp(80px,13vh,170px) 0;background:linear-gradient(180deg,var(--vr-bg),var(--vr-bg-grad) 50%,var(--vr-bg));transition:background .6s ease}
.vr-vyl{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.2vw,30px);margin-top:clamp(36px,5vw,60px)}
.vr-vyl .vr-slot{display:block;width:100%;height:clamp(170px,15vw,210px)}
.vr-vyl article>img{width:100%;height:clamp(170px,15vw,210px);object-fit:cover;border-radius:2px}
.vr-vyl .vr-tag{display:inline-block;font-size:10.5px;margin-top:16px}
.vr-vyl h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.25rem,1.8vw,1.55rem);color:var(--vr-text-soft);margin:8px 0 0;line-height:1.12;transition:color .6s ease}
.vr-vyl p{font-family:'Archivo',sans-serif;font-size:14px;line-height:1.6;color:var(--vr-text-muted);margin:9px 0 0;transition:color .6s ease}
.vr-vyl-cta{display:inline-flex;align-items:center;gap:10px;font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--vr-text);border:1px solid var(--vr-line-2);border-radius:999px;padding:14px 26px;transition:border-color .25s,background .25s,color .6s ease;margin-top:clamp(28px,4vw,44px)}
.vr-vyl-cta:hover{border-color:var(--vr-ember);background:rgba(214,138,76,.12)}
.vr-vyl-cta span{font-size:15px}
.vr-vyl-ctasub{font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--vr-text-faint);
  margin:12px 0 0;transition:color .6s ease}

/* Gallery */
.sec-galerie{padding:clamp(70px,10vh,130px) 0;background:linear-gradient(180deg,var(--vr-bg),var(--vr-bg-grad) 50%,var(--vr-bg));transition:background .6s ease}
.vr-gal-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:clamp(20px,2.4vw,30px)}
/* Galerie: čtvercová mřížka BEZ deformace (majitel: „fotky roztáhnutý na výšku").
   aspect-ratio:1/1 + object-fit:cover ořízne náhled na čtverec beze změny poměru
   stran; lightbox pak otevře 1600px master v původním poměru (object-fit:contain).
   aspect-ratio drží místo → žádný CLS.
   FILTROVACÍ CHIPY tu byly do 7/2026 — majitel je zrušil („vůbec bych to
   nekomplikoval těma filtrama, udělal bych z toho takový trošku Instagram").
   Mřížka proto ukazuje všech ~54 fotek najednou; aby při té délce nevypadala
   jako sklad, je na širokých displejích ČTYŘSLOUPCOVÁ (menší dlaždice, hustší
   rytmus = instagramový list), na tabletu tři, na mobilu dva sloupce. */
.vr-gal{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vr-gal img{display:block;width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;border-radius:2px;cursor:zoom-in;background:var(--vr-panel-strong);transition:opacity .3s,transform .3s}
.vr-gal img:hover{opacity:.9}
@media(max-width:1100px){.vr-gal{grid-template-columns:repeat(3,1fr)}}
/* ohniště photo (was a placeholder slot) */
.vr-ohn-grid img{display:block;width:100%;height:clamp(320px,40vw,460px);object-fit:cover;border-radius:2px}

/* Booking */
.sec-rezervace{position:relative;padding:clamp(90px,15vh,200px) 0;overflow:hidden;background:var(--vr-bg-deep);transition:background .6s ease}
.vr-book-glow{position:absolute;left:50%;top:-20%;width:70vw;height:50vw;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(214,138,76,.14),transparent 65%);filter:blur(10px);pointer-events:none}
.vr-book-wrap{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:0 clamp(20px,5vw,64px);text-align:center}
.vr-book-title{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(2.2rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.02em;color:var(--vr-text);margin:16px auto 0;max-width:18ch;text-wrap:balance;transition:color .6s ease}
.vr-book-body{font-family:'Archivo',sans-serif;font-size:clamp(15px,1.05vw,17px);line-height:1.72;color:var(--vr-text-muted);margin:20px auto 0;max-width:52ch;transition:color .6s ease}
/* Statický orientační ceník nad kalendářem */
.vr-priceblock{max-width:1080px;margin:clamp(30px,4vw,44px) auto 0;border:1px solid var(--vr-line);border-radius:3px;background:var(--vr-panel);padding:clamp(16px,2.2vw,24px);text-align:left;transition:background-color .6s ease,border-color .6s ease}
.vr-priceblock-h{font-family:'Archivo',sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vr-accent);margin-bottom:14px;transition:color .6s ease}
.vr-priceblock-rows{display:grid;gap:0}
.vr-priceblock-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;border-top:1px solid var(--vr-line);padding:11px 0}
.vr-priceblock-row:first-child{border-top:0;padding-top:0}
.vr-priceblock-season{display:flex;flex-direction:column;gap:2px;font-family:'Newsreader',serif;font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--vr-text-soft);transition:color .6s ease}
.vr-priceblock-season b{font-weight:400}
.vr-priceblock-range{font-family:'Archivo',sans-serif;font-size:12px;color:var(--vr-text-dim);transition:color .6s ease}
/* „Léto 2026 je téměř obsazené" — ember, ať si toho host všimne. */
.vr-priceblock-note{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;color:var(--vr-accent);max-width:42ch;transition:color .6s ease}
.vr-priceblock-val{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:2px}
.vr-priceblock-val b{font-family:'Archivo',sans-serif;font-size:15px;font-weight:700;color:var(--vr-text);transition:color .6s ease}
.vr-priceblock-min{font-family:'Archivo',sans-serif;font-size:12px;color:var(--vr-text-dim);transition:color .6s ease}
.vr-priceblock-foot{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding-top:14px;border-top:1px solid var(--vr-line);font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--vr-text-dim);transition:color .6s ease}
.vr-priceblock-fx{color:var(--vr-text-faint);font-style:italic}
.vr-book{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(22px,3vw,40px);max-width:1080px;margin:clamp(20px,2.6vw,32px) auto 0;text-align:left;align-items:start}
.vr-cal-card{border:1px solid var(--vr-line);border-radius:3px;background:var(--vr-panel);padding:clamp(18px,2.4vw,28px);transition:background-color .6s ease,border-color .6s ease}
.vr-cal-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,34px)}
.vr-cal-title{font-family:'Newsreader',serif;font-size:clamp(1.15rem,1.5vw,1.4rem);color:var(--vr-text);transition:color .6s ease}
.vr-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:12px}
.vr-dow{font-family:'Archivo',sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--vr-text-faintest);text-align:center;padding:4px 0}
.vr-day{position:relative;aspect-ratio:1;border:0;border-radius:2px;background:var(--vr-day-free);color:var(--vr-text-soft);font-family:'Archivo',sans-serif;font-size:12.5px;cursor:pointer;padding:0;transition:background .2s,color .2s;-webkit-tap-highlight-color:transparent}
.vr-day:hover{background:rgba(214,138,76,.28)}
.vr-day[data-st="e"],.vr-day[data-st="p"],.vr-day[data-st="b"]{cursor:default;pointer-events:none}
.vr-day[data-st="e"]{background:transparent}
.vr-day[data-st="p"]{background:transparent;color:var(--vr-text-faintest)}
.vr-day[data-st="b"]{background:transparent;color:var(--vr-text-faintest);text-decoration:line-through}
.vr-day[data-st="s"]{background:var(--vr-ember);color:#10150f;font-weight:700}
.vr-day[data-st="r"]{background:rgba(214,138,76,.32);color:var(--vr-text)}
/* „Pouze odjezd" (checkout-only): první noc následující rezervace — volný jen ráno.
   Půlené šrafování (volno vlevo nahoře, obsazeno vpravo dole) à la Airbnb. */
.vr-day[data-st="c"]{background:linear-gradient(135deg,var(--vr-day-free) 0 50%,transparent 50%);color:var(--vr-text-faintest);cursor:pointer}
.vr-day[data-st="c"]:hover{background:linear-gradient(135deg,rgba(214,138,76,.30) 0 50%,transparent 50%)}
.vr-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--vr-line);font-family:'Archivo',sans-serif;font-size:11.5px;color:var(--vr-text-faint)}
.vr-legend .sw{display:inline-flex;align-items:center;gap:7px}
.vr-legend .sw i{width:11px;height:11px;border-radius:2px;display:inline-block}
.vr-legend .demo{margin-left:auto;color:var(--vr-text-faintest)}
.vr-book-aside{border:1px solid var(--vr-line);border-radius:3px;background:var(--vr-panel);padding:clamp(20px,2.6vw,30px);display:flex;flex-direction:column;gap:15px;transition:background-color .6s ease,border-color .6s ease}
.vr-book-sel{font-family:'Newsreader',serif;font-size:clamp(1.3rem,1.9vw,1.7rem);color:var(--vr-text);line-height:1.25;transition:color .6s ease}
.vr-book-sel .nl{color:var(--vr-text-faint);font-size:.68em;white-space:nowrap}
/* Direct-booking value line above the price breakdown */
.vr-book-direct{display:flex;align-items:flex-start;gap:8px;font-family:'Archivo',sans-serif;font-size:12.5px;line-height:1.5;color:var(--vr-accent-2);
  background:color-mix(in oklab,var(--vr-accent),transparent 90%);border:1px solid color-mix(in oklab,var(--vr-accent),transparent 74%);border-radius:3px;padding:11px 13px;transition:color .6s ease,background-color .6s ease,border-color .6s ease}
.vr-book-direct svg{flex:none;margin-top:1px;width:14px;height:14px}
.vr-book-price{display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--vr-line);padding-top:14px;font-family:'Archivo',sans-serif;font-size:14px}
.vr-book-price .row{display:flex;justify-content:space-between;gap:12px;color:var(--vr-text-muted);line-height:1.4;transition:color .6s ease}
.vr-book-price .row .k{padding-right:4px}
.vr-book-price .row .v{color:var(--vr-text);font-weight:600;white-space:nowrap;transition:color .6s ease}
.vr-book-price .row.dep .v{color:var(--vr-accent-2);font-weight:700}
/* Rozpis à la Airbnb: součtový řádek s oddělovačem a ztlumená záloha */
.vr-book-price .row.brk-total{border-top:1px solid var(--vr-line);margin-top:5px;padding-top:13px;font-size:15px;color:var(--vr-text)}
.vr-book-price .row.brk-total .v{font-weight:700}
.vr-book-price .row.brk-dep{color:var(--vr-text-faint);font-size:12.5px}
.vr-book-price .row.brk-dep .v{color:var(--vr-text-dim);font-weight:600}
/* Orientační přepočet €/zł pod součtem (jen cizojazyčné verze) */
.vr-book-price .row.brk-fx{margin-top:-4px;font-size:12px;color:var(--vr-text-faint)}
.vr-book-price .row.brk-fx .k{font-weight:600;color:var(--vr-text-dim)}
.vr-book-price .row.brk-fx .v{color:var(--vr-text-faint);font-weight:400;font-style:italic;white-space:normal;text-align:right}
/* Hláška o minimální délce pobytu / překročení kapacity */
.vr-book-minstay,.vr-book-guestnote{font-family:'Archivo',sans-serif;font-size:13px;line-height:1.5;color:#b5762f;background:rgba(214,138,76,.1);border:1px solid rgba(214,138,76,.34);border-radius:3px;padding:12px 14px}
.vr-book-guestnote{color:#b4442f;background:rgba(214,110,86,.12);border-color:rgba(214,110,86,.36)}
.vr-root[data-season="leto"] .vr-book-minstay{color:#E7C9A6;background:rgba(214,138,76,.08);border-color:rgba(214,138,76,.28)}
.vr-root[data-season="leto"] .vr-book-guestnote{color:#e6b7ac;background:rgba(214,110,86,.09);border-color:rgba(214,110,86,.3)}
/* Počty hostů — dospělí / děti / domácí mazlíčci vedle sebe */
/* Dospělí / děti / mazlíčci: minmax(0,1fr) + min-width:0 brání přetečení sloupce
   dlouhým labelem (čeština „Mazlíčci"), align-items:end srovná políčka ke spodní
   hraně, i kdyby se některý label zalomil na dva řádky → mřížka drží ve všech 4
   jazycích na mobilu i desktopu. */
.vr-book-guests{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}
@media(max-width:420px){.vr-book-guests{grid-template-columns:1fr 1fr}.vr-book-guests label:last-child{grid-column:1 / -1}}
.vr-book-guests label{margin:0;min-width:0}
.vr-book label{display:flex;flex-direction:column;gap:8px}
.vr-book label span{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--vr-text-formlabel);transition:color .6s ease}
.vr-book input,.vr-book textarea,.vr-book select{font-family:'Archivo',sans-serif;font-size:15px;color:var(--vr-text-soft);background:var(--vr-panel-input);border:1px solid var(--vr-line);border-radius:2px;padding:13px 15px;outline:none;transition:border-color .2s,background-color .6s ease,color .6s ease}
.vr-book select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%239aa39b' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:11px}
.vr-book input:focus,.vr-book textarea:focus,.vr-book select:focus{border-color:var(--vr-ember)}
.vr-book-textarea{resize:vertical;min-height:76px;line-height:1.5}
.vr-book-consent{font-family:'Archivo',sans-serif;font-size:11.5px;line-height:1.55;color:var(--vr-text-faint);margin:0;transition:color .6s ease}
.vr-book-consent a{color:var(--vr-accent-2);text-decoration:underline;text-underline-offset:2px}
.vr-book-consent a:hover{color:var(--vr-accent)}
.vr-book-pay{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:'Archivo',sans-serif;font-size:15px;font-weight:600;letter-spacing:.02em;color:#10150f;background:var(--vr-ember);border:0;border-radius:2px;padding:16px 24px;cursor:pointer;margin-top:4px;transition:opacity .2s,background .2s}
.vr-book-pay:disabled{opacity:.4;cursor:not-allowed;background:#6b6459}
.vr-book input[type=number]{-moz-appearance:textfield;appearance:textfield}
.vr-book-note{display:flex;align-items:flex-start;gap:8px;font-family:'Archivo',sans-serif;font-size:11.5px;line-height:1.55;color:var(--vr-text-faint);transition:color .6s ease}
.vr-book-note svg{flex:none;margin-top:2px}

/* Footer */
.vr-footer{border-top:1px solid var(--vr-line);padding:clamp(48px,7vh,80px) 0 40px}
.vr-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start}
.vr-foot-brand b{font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;letter-spacing:.18em;color:var(--vr-text);display:block;transition:color .6s ease}
.vr-foot-brand p{font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.6;color:var(--vr-text-dim);margin:14px 0 0;max-width:34ch;transition:color .6s ease}
.vr-foot-lbl{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--vr-accent);transition:color .6s ease}
.vr-foot-langs{display:flex;gap:16px;margin-top:16px}
.vr-foot-langs .vr-lang{font-size:13px;padding:4px 2px;color:var(--vr-text-faint);opacity:1}
.vr-foot-langs .vr-lang[data-active="true"]{color:var(--vr-text)}
.vr-foot-contact{margin-top:16px;font-family:'Archivo',sans-serif;font-size:14px;color:var(--vr-text-muted);line-height:1.85;transition:color .6s ease}
.vr-foot-contact a{color:var(--vr-text-muted);text-decoration:none;transition:color .2s ease}
.vr-foot-contact a:hover{color:var(--vr-accent-2)}
.vr-foot-contact .vr-foot-host{color:var(--vr-text-dim)}
.vr-foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:clamp(36px,5vw,56px);padding-top:24px;border-top:1px solid var(--vr-line);font-family:'Archivo',sans-serif;font-size:12px;color:var(--vr-text-faintest);transition:color .6s ease}
.vr-foot-terms{color:var(--vr-text-faint);text-decoration:none;transition:color .2s ease}
.vr-foot-terms:hover{color:var(--vr-accent-2)}
/* Patička — skupina sekundárních odkazů (Praktické info / Průvodce / Podmínky).
   „Praktické info" sem přesunuto z hlavního menu (zóna hosta, ne prodejní cesta). */
.vr-foot-botlinks{display:flex;gap:clamp(14px,2vw,26px);flex-wrap:wrap;align-items:center}

/* ---------- „Co potřebujete vědět před rezervací" (proužek nad ceníkem) ----------
   Krátký, skenovatelný přehled faktů, které zájemce řeší PŘED poptávkou. */
.vr-prebook{max-width:1080px;margin:clamp(28px,4vw,44px) auto 0;border:1px solid var(--vr-line);border-radius:3px;
  background:var(--vr-panel);padding:clamp(18px,2.4vw,28px) clamp(18px,2.6vw,30px);text-align:left;
  transition:background-color .6s ease,border-color .6s ease}
.vr-prebook-title{display:block;font-family:'Archivo',sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--vr-accent);margin-bottom:16px;transition:color .6s ease}
.vr-prebook-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);
  gap:14px clamp(20px,3vw,40px)}
.vr-prebook-list li{display:flex;flex-direction:column;gap:3px;padding-left:15px;position:relative}
.vr-prebook-list li::before{content:'';position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;
  background:var(--vr-ember)}
.vr-prebook-list b{font-family:'Archivo',sans-serif;font-size:11.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--vr-text-faint);transition:color .6s ease}
.vr-prebook-list span{font-family:'Archivo',sans-serif;font-size:14.5px;line-height:1.45;color:var(--vr-text-soft);
  transition:color .6s ease}
.vr-prebook-link{display:inline-flex;align-items:center;margin-top:18px;font-family:'Archivo',sans-serif;
  font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--vr-accent);transition:color .2s ease}
.vr-prebook-link:hover{color:var(--vr-accent-2)}
@media(max-width:820px){.vr-prebook-list{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.vr-prebook-list{grid-template-columns:1fr}}

/* Sekundární (hostům určený) odkaz v mobilním menu — menší než hlavní položky. */
.vr-mob .vr-mob-2nd{margin-top:18px;font-family:'Archivo',sans-serif;font-size:15px;font-weight:500;
  letter-spacing:.02em;color:var(--vr-text-faint)}
.vr-mob .vr-mob-2nd:hover{color:var(--vr-accent-2)}

/* ---------- Placeholder blocks (replaces prototype's interactive image-slot drop-zones) ---------- */
.vr-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  border-radius:2px;border:1px dashed color-mix(in oklab,var(--vr-accent),transparent 74%);
  background:var(--vr-panel-strong);color:var(--vr-text-faint);text-align:center;padding:20px;overflow:hidden}
.vr-slot::before{content:'';position:absolute;inset:0;background:
  radial-gradient(120% 100% at 50% 0%,rgba(214,138,76,.06),transparent 60%);pointer-events:none}
.vr-slot svg{width:26px;height:26px;opacity:.5;stroke:currentColor}
.vr-slot span{font-family:'Archivo',sans-serif;font-size:12.5px;letter-spacing:.02em;color:var(--vr-text-faint);position:relative}

/* ---------- Lightbox — always dark (photo viewer), both seasons ---------- */
/* Otevřený stav je VŽDY viditelný: opacity:1 je pevné, nezávislé na animaci.
   Animace vrLbIn/vrLbImg jsou jen ozdoba (blur-in / scale) a NEsahají na opacity,
   takže i když se webview animace zamrzne na 0 % nebo běží prefers-reduced-motion,
   lightbox i fotka zůstávají plně vidět (majitel: „klik a nic" = tohle byla příčina). */
.vr-lb{position:fixed;inset:0;z-index:120;background:rgba(4,7,6,.93);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;opacity:1;animation:vrLbIn .28s ease;cursor:zoom-out}
/* Rám kolem fotky (shrink-wrap): drží štítek místnosti u levého dolního rohu
   SNÍMKU, ne obrazovky. Nesmí měnit velikost ani animaci fotky. */
.vr-lb-stage{position:relative;flex:0 0 auto;max-width:min(93vw,1500px);line-height:0}
.vr-lb img{display:block;max-width:min(93vw,1500px);max-height:82vh;object-fit:contain;border-radius:3px;box-shadow:0 30px 90px rgba(0,0,0,.6);cursor:default;animation:vrLbImg .38s cubic-bezier(.2,.7,.15,1)}
/* Štítek nesmí překážet šipkám ani křížku (pointer-events:none → klik projde na
   fotku pod ním, lightbox se tedy nezavře). */
.vr-lb-tag{position:absolute;left:12px;bottom:12px;z-index:3;max-width:calc(100% - 24px);
  pointer-events:none;font-family:'Archivo',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:.055em;line-height:1;color:#F7F1E8;background:rgba(8,12,10,.7);
  border:1px solid rgba(240,235,225,.22);backdrop-filter:blur(6px);border-radius:999px;
  padding:7px 13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:0 1px 4px rgba(0,0,0,.55)}
.vr-lb-btn{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1px solid rgba(240,235,225,.22);background:rgba(10,14,12,.55);color:#F0EBE1;font-size:22px;cursor:pointer;transition:background .25s,border-color .25s;-webkit-tap-highlight-color:transparent}
.vr-lb-btn:hover{background:rgba(214,138,76,.25);border-color:var(--vr-ember)}
.vr-lb-prev{left:clamp(10px,3vw,34px);top:50%;transform:translateY(-50%)}
.vr-lb-next{right:clamp(10px,3vw,34px);top:50%;transform:translateY(-50%)}
.vr-lb-close{right:clamp(10px,3vw,34px);top:clamp(10px,3vw,28px);font-size:16px}
.vr-lb-count{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-family:'Archivo',sans-serif;font-size:12px;letter-spacing:.14em;color:#AEB4A8}
/* „Otevřít ve 360° prohlídce domu" — jen u fotek, které mají zimní 360° scénu.
   Text jmenuje CÍL a šipka dolů říká, že skok vede po stránce níž, do sekce
   „Projděte si dům i pozemek" (majitelovo přání). */
/* Řada akcí pod fotkou: ember CTA do 360° + decentní odkaz zpět do plánu.
   Vystředěná nad počítadlem; na úzkém displeji se obě pilulky zalomí. */
.vr-lb-actions{position:absolute;left:50%;bottom:50px;transform:translateX(-50%);z-index:3;
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;max-width:calc(100vw - 24px)}
.vr-lb-360{align-items:center;gap:9px;
  font-family:'Archivo',sans-serif;font-size:13px;font-weight:700;letter-spacing:.01em;color:#10150f;background:var(--vr-ember);
  border:0;border-radius:999px;padding:12px 22px;cursor:pointer;box-shadow:0 12px 32px rgba(214,138,76,.42);
  max-width:calc(100vw - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:filter .2s ease,transform .2s ease,box-shadow .2s ease}
.vr-lb-360:hover{filter:brightness(1.06);box-shadow:0 16px 40px rgba(214,138,76,.5)}
.vr-lb-360:focus-visible{outline:2px solid #fff;outline-offset:3px}
.vr-lb-360-ic{display:inline-flex;flex:none}
.vr-lb-360-ic svg{width:19px;height:19px;display:block}
.vr-lb-360-ar{flex:none;font-size:14px;line-height:1;transition:transform .2s ease}
.vr-lb-360:hover .vr-lb-360-ar{transform:translateY(2px)}
/* Decentní protějšek: obrysová pilulka „Zobrazit na plánu". */
.vr-lb-plan{align-items:center;gap:8px;
  font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.01em;color:#F2ECE1;
  background:rgba(10,14,12,.55);border:1px solid rgba(240,235,225,.3);border-radius:999px;padding:11px 18px;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  max-width:calc(100vw - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:background .2s ease,border-color .2s ease}
.vr-lb-plan:hover{background:rgba(214,138,76,.22);border-color:var(--vr-ember)}
.vr-lb-plan:focus-visible{outline:2px solid #fff;outline-offset:3px}
.vr-lb-plan-ic{display:inline-flex;flex:none}
.vr-lb-plan-ic svg{width:17px;height:17px;display:block}
@media(max-width:520px){.vr-lb-actions{bottom:46px}.vr-lb-360{font-size:12px;padding:11px 16px;gap:7px}.vr-lb-plan{font-size:11.5px;padding:10px 14px;gap:6px}}
@media(prefers-reduced-motion:reduce){.vr-lb-360,.vr-lb-360-ar{transition:none}}

/* ---------- Keyframes ---------- */
@keyframes vrNavIn{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
@keyframes vrFlicker{0%,100%{opacity:.82;transform:translateX(-50%) scale(1)}30%{opacity:1;transform:translateX(-50%) scale(1.03)}55%{opacity:.74}78%{opacity:.94;transform:translateX(-50%) scale(1.01)}}
@keyframes vrpRot{to{transform:rotate(360deg)}}
/* Ozdobné animace lightboxu — NIKDY neanimují opacity (jinak by zamrzlý webview
   nechal lightbox/fotku neviditelnou). Backdrop se jen rozostří, fotka jen dosedne. */
@keyframes vrLbIn{from{backdrop-filter:blur(0)}}
@keyframes vrLbImg{from{transform:scale(.96)}}
@media (prefers-reduced-motion:reduce){.vr-lb,.vr-lb img{animation:none}}

/* ---------- Seasonal crossfade images ---------- */
/* Two stacked photos (summer / winter) that crossfade on season toggle.
   Used by the statement, amenities-hero and evening sections. */
/* ===================== SEZÓNNÍ VĚTVE V HTML =====================
   U sezónně dělených slotů (hero, hlavní karta vybavení, tři karty, rychlá
   fakta, lead lokality) jsou ve zdroji stránky OBĚ znění a neaktivní se schová
   TÍMHLE pravidlem — ne výměnou textu v JS. Text schovaný stylem se indexuje;
   text, který ve stránce vůbec není, se neindexuje nikdy.
   !important je tu schválně: některé sloty mají vlastní display (např.
   .vrim-eyebrow je inline-block) a autorské pravidlo by přebilo i atribut
   [hidden], který k tomu JS dodává kvůli čtečkám obrazovky.
   Kontrolní list slotů je v komentáři u applySeasonBranches() v site.js. */
.vr-root[data-season="leto"] [data-season-only="zima"],
.vr-root[data-season="zima"] [data-season-only="leto"]{display:none!important}

.vr-crossfade{position:relative;overflow:hidden;border-radius:2px}
.vr-crossfade .vr-seasonimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.vr-root[data-season="leto"] .vr-seasonimg.summer{opacity:1}
.vr-root[data-season="zima"] .vr-seasonimg.winter{opacity:1}

/* ---------- Winter cool cast (owner: "zima víc do běla") ---------- */
/* A very subtle bluish/lighter wash over the season-swapped photo scenes.
   Body stays dark; only highlights read cooler. Fades in on the zima toggle. */
.vrh-hero::after,.sec-vecer::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(126,166,196,.16),rgba(150,185,210,.06) 44%,transparent 74%);
  opacity:0;transition:opacity .9s ease}
.vrh-hero::after{z-index:5}
.sec-vecer::after{z-index:1}
.vr-root[data-season="zima"] .vrh-hero::after,
.vr-root[data-season="zima"] .sec-vecer::after{opacity:1}

/* ---------- VIDEO: SKUTEČNÝ PŘEHRÁVAČ PŘES CELOU ŠÍŘKU (styl 360 scény) ----------
   Plocha je full-bleed jako .vrp-stage nad ní. Majitel (7/2026): „Šlo by, aby to
   video bylo úplně přes celou stránku — ne na max zvětšené do toho sloupce, ale
   přes celou tu stránku, jako podklad?" Snímek už tedy NEsedí ve vystředěném
   sloupci — roztahuje se od kraje ke kraji viewportu.

   PROČ 16:9 A ŽÁDNÝ OŘEZ: titulky jsou vypálené dole v obraze. Žádný object-fit:
   cover — rámeček drží přesný poměr 16/9, takže je snímek VŽDY vidět celý včetně
   titulků. Šířka = min(100%, 96vh*16/9):
   · na 16:10 a užších/vyšších displejích (typicky notebooky) je to plná šířka
     (100%) a výška vyjde z ní (šířka×9/16) → vyplní prakticky celou obrazovku;
   · na 16:9 to vyjde ~96vw (výška uškrcená na 96vh) — pořád prakticky celá plocha;
   · na velmi širokých (21:9) by plná šířka přerostla obrazovku na výšku, proto
     strop 96vh: video je pak užší než viewport a zůstává vystředěné na tmavém
     pásu, celý snímek se vejde a lišta ovládání zůstává pod ním.
   Šířku sdílí i lišta pod obrazem, aby popisek a odkaz lícovaly s okrajem videa. */
.vr-vidwrap{margin-top:clamp(30px,4vw,52px);border-top:1px solid var(--vr-line);padding-top:clamp(26px,3vw,40px)}
.vr-vidhead{max-width:680px}
.vr-vidtitle{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1.1;color:var(--vr-text-soft);margin:10px 0 0;transition:color .6s ease}
.vr-vidnote{font-family:'Archivo',sans-serif;font-size:clamp(.86rem,1.1vw,.95rem);line-height:1.6;color:var(--vr-text-muted);margin:12px 0 0;max-width:60ch}
/* Tmavý full-bleed pás s měkkým přechodem do pozadí stránky nahoře i dole —
   táž řeč jako .vrp-stage, ale gradient leží JEN v odsazení, nikdy přes obraz
   (jinak by ztmavil titulky i ovládací lištu přehrávače). */
.vr-vidstage{position:relative;width:100%;margin-top:clamp(20px,2.6vw,32px);
  padding:clamp(14px,2.6vh,32px) 0 clamp(18px,3vh,36px);background:#070a09;transition:background-color .6s ease}
.vr-vidstage::before,.vr-vidstage::after{content:'';position:absolute;left:0;right:0;z-index:3;pointer-events:none}
.vr-vidstage::before{top:0;height:clamp(14px,2.6vh,32px);background:linear-gradient(180deg,var(--vr-bg),transparent)}
.vr-vidstage::after{bottom:0;height:clamp(18px,3vh,36px);background:linear-gradient(0deg,var(--vr-bg),transparent)}
.vr-vid{display:block;position:relative;width:100%}
/* Rámeček přehrávače: přesně 16:9, full-bleed přes celou šířku (strop 96vh na
   ultraširokých), bez radiusu a bez rámečku — je to podklad přes stránku, ne
   dlaždice. --vr-vidw sdílí i lišta pod ním, aby popisek a odkaz lícovaly s
   levým okrajem obrazu. */
.vr-vidbox{--vr-vidw:min(100%,calc(96vh * 16 / 9));
  position:relative;width:var(--vr-vidw);margin:0 auto;aspect-ratio:16/9;background:#05070a;overflow:hidden;transition:background-color .6s ease}
.vr-vid-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vr-vid-slot{position:absolute;inset:0;z-index:1}
.vr-vid-slot iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* ČUDLÍK NA ZVUK (majitel: „byl by tam čudlík na to, že by se zapnul zvuk").
   Nesedí V OBRAZE, ale v liště hned pod ním. Uvnitř plochy pro něj není
   bezpečné místo: dole je pás vypálených titulků a nativní časová osa,
   nahoře ho při vystředěném videu překryje sticky navigace. Pod obrazem
   je vidět vždycky a nebojuje s ničím. */
.vr-vid-sound{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:999px;
  border:1px solid rgba(240,235,225,.3);background:rgba(255,255,255,.07);
  font-family:'Archivo',sans-serif;font-size:clamp(11px,.95vw,12px);font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:#EDE8DE;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background-color .25s ease,border-color .25s ease,color .25s ease}
.vr-vid-sound:hover{background:rgba(255,255,255,.14);border-color:var(--vr-ember);color:#fff}
.vr-vid-sound:focus-visible{outline:2px solid var(--vr-ember);outline-offset:3px}
.vr-vid-sound[data-sound="on"]{border-color:rgba(240,235,225,.18);color:rgba(237,232,222,.72);background:transparent}
.vr-vid-sound-ic{width:16px;height:16px;flex:none;display:block}
.vr-vid-sound-ic svg{width:100%;height:100%;display:block;fill:currentColor}
/* Tlačítko „Přehrát video" — jen v úsporném režimu (reduced motion, spořič dat,
   úzký displej). Klidná sklovitá pilulka, ne červený YouTube terč. */
.vr-vid-start{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);
  display:inline-flex;align-items:center;gap:10px;padding:13px 24px;border-radius:999px;
  border:1px solid rgba(240,235,225,.28);background:rgba(8,11,14,.62);backdrop-filter:blur(10px);
  font-family:'Archivo',sans-serif;font-size:clamp(11px,1vw,12.5px);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:#EDE8DE;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background-color .25s ease,border-color .25s ease,color .25s ease}
/* POZOR: display v pravidle třídy přebíjí UA styl [hidden]{display:none},
   takže se schované tlačítko musí vypnout výslovně — jinak zůstane
   „Přehrát video" viset uprostřed běžícího obrazu. */
.vr-vid-sound[hidden],.vr-vid-start[hidden]{display:none!important}
.vr-vid-start:hover{background:rgba(16,20,24,.84);border-color:var(--vr-ember);color:#fff}
.vr-vid-start:focus-visible{outline:2px solid var(--vr-ember);outline-offset:3px}
.vr-vid-start-ic{width:16px;height:16px;flex:none}
.vr-vid-start-ic svg{width:100%;height:100%;display:block}
/* Lišta pod obrazem: sezóna + název + odkaz na YouTube. Popisek byl dřív VE
   snímku vlevo dole — přesně tam, kde jsou titulky, takže se musel odstěhovat. */
.vr-vidbar{--vr-vidw:min(100%,calc(96vh * 16 / 9));
  width:var(--vr-vidw);margin:14px auto 0;box-sizing:border-box;padding:0 clamp(14px,1.6vw,20px);
  display:flex;align-items:baseline;gap:8px 20px;flex-wrap:wrap}
.vr-vid-season{font-family:'Archivo',sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--vr-ember-2)}
.vr-vid-label{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1.15;color:#F7F1E8;margin-right:auto;transition:color .6s ease}
.vr-vid-yt{display:inline-flex;align-items:center;gap:9px;text-decoration:none;
  font-family:'Archivo',sans-serif;font-size:clamp(11px,.95vw,12px);font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(237,232,222,.72);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .25s ease,border-color .25s ease}
.vr-vid-yt:hover{color:#fff;border-color:var(--vr-ember)}
.vr-vid-yt:focus-visible{outline:2px solid var(--vr-ember);outline-offset:3px}
.vr-vid-yt-ic{width:22px;height:16px;flex:none;border-radius:4px;background:#E2201A;color:#fff;
  display:inline-flex;align-items:center;justify-content:center}
.vr-vid-yt-ic svg{width:11px;height:11px;display:block}
@media(max-width:600px){
  .vr-vid-sound{padding:8px 13px;gap:7px;letter-spacing:.06em}
  .vr-vidbar{gap:10px 14px;align-items:center}
  .vr-vid-label{margin-right:0;flex-basis:100%}
}
@media(prefers-reduced-motion:reduce){.vr-vid-sound,.vr-vid-start,.vr-vid-yt{transition:none}}
/* ZIMA: video na SVĚTLÉM (bílém) podkladu — majitel: „to zimní video dej na
   bílý podklad, ta černá je moc kontrastní." LÉTO zůstává tmavé (výchozí
   pravidla výše se nemění). Plocha → bílá; rám (letterbox/stav při načítání) →
   jemně šedý v barvě pozadí, poster ho stejně překryje. Okrajové fady
   (::before/::after) už blendují z var(--vr-bg) do bílé, takže sedí bez úprav.
   Ovládací lišta pod obrazem (název, čudlík zvuku, „Přehrát na YouTube") se
   překlápí na tmavý text/rám kvůli čitelnosti na světlém (kontrast AA). */
.vr-root[data-season="zima"] .vr-vidstage{background:#ffffff}
.vr-root[data-season="zima"] .vr-vidbox{background:var(--vr-bg)}
.vr-root[data-season="zima"] .vr-vid-label{color:var(--vr-text)}
.vr-root[data-season="zima"] .vr-vid-season{color:var(--vr-accent)}
.vr-root[data-season="zima"] .vr-vid-sound{border-color:var(--vr-line-2);background:rgba(23,36,46,.04);color:var(--vr-text-soft)}
.vr-root[data-season="zima"] .vr-vid-sound:hover{background:rgba(23,36,46,.08);border-color:var(--vr-accent);color:var(--vr-text)}
.vr-root[data-season="zima"] .vr-vid-sound[data-sound="on"]{border-color:var(--vr-line);background:transparent;color:var(--vr-text-muted)}
.vr-root[data-season="zima"] .vr-vid-yt{color:var(--vr-text-muted)}
.vr-root[data-season="zima"] .vr-vid-yt:hover{color:var(--vr-text);border-color:var(--vr-accent)}

/* ---------- Guest photo sharing ---------- */
.sec-sdilet{padding:clamp(56px,9vh,110px) 0;background:var(--vr-bg-deep);border-top:1px solid var(--vr-line);transition:background .6s ease}
.vr-share{position:relative;overflow:hidden;max-width:760px;margin:0 auto;text-align:center;
  border:1px solid var(--vr-line);border-radius:4px;background:var(--vr-panel);
  padding:clamp(30px,5vw,56px) clamp(22px,4vw,54px);transition:background-color .6s ease,border-color .6s ease}
.vr-share::before{content:'';position:absolute;left:50%;top:-40%;width:64%;height:72%;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(214,138,76,.1),transparent 70%);pointer-events:none}
.vr-share>*{position:relative}
.vr-share-title{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.8rem,4vw,3rem);line-height:1.06;letter-spacing:-.015em;color:var(--vr-text);margin:14px 0 0;text-wrap:balance;transition:color .6s ease}
.vr-share-body{font-family:'Archivo',sans-serif;font-size:clamp(14.5px,1.05vw,16.5px);line-height:1.72;color:var(--vr-text-muted);margin:18px auto 0;max-width:50ch;transition:color .6s ease}
.vr-share-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:clamp(24px,3vw,34px)}
/* Ztlumeno (dle kritiky) — outline místo plné ember, ať nesoupeří s patičkou. */
.vr-share-ig{display:inline-flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-size:14px;font-weight:600;color:var(--vr-accent-2);background:var(--vr-panel-input);border:1px solid var(--vr-line);border-radius:2px;padding:12px 20px;text-decoration:none;transition:border-color .25s ease,color .6s ease,background-color .6s ease}
.vr-share-ig:hover{border-color:var(--vr-accent)}
.vr-share-tag{display:inline-flex;align-items:center;font-family:'Archivo',sans-serif;font-size:13.5px;font-weight:600;letter-spacing:.02em;color:var(--vr-accent-2);background:var(--vr-panel-input);border:1px solid var(--vr-line);border-radius:999px;padding:11px 18px;text-decoration:none;transition:border-color .25s ease,color .6s ease,background-color .6s ease}
.vr-share-tag:hover{border-color:var(--vr-accent)}

/* ---------- Quick facts + trust (ratings) strip ---------- */
.sec-quickfacts{padding:0 0 clamp(28px,4vh,48px)}
/* Facts sit under the full-width review band — give them breathing room. */
.sec-quickfacts>.vr-wrap{margin-top:clamp(44px,6vw,76px)}
/* Ratings are now the FIRST thing under the hero — prominent + obviously clickable. */
.vr-ratings{margin:0 0 clamp(30px,4vw,44px)}
.vr-ratings-row{display:flex;flex-wrap:wrap;gap:12px}
.vr-rating{display:inline-flex;align-items:center;gap:11px;flex:0 1 auto;font-family:'Archivo',sans-serif;
  border:1px solid var(--vr-line-2);border-radius:999px;padding:13px 22px;background:var(--vr-panel-strong);
  transition:border-color .25s ease,background-color .25s ease,transform .2s ease,box-shadow .25s ease;text-decoration:none;cursor:pointer}
.vr-rating:hover{border-color:var(--vr-accent);transform:translateY(-2px);box-shadow:0 12px 30px -18px rgba(0,0,0,.55)}
.vr-rating-plat{font-size:13.5px;font-weight:600;letter-spacing:.03em;color:var(--vr-text-muted);transition:color .6s ease}
.vr-rating-score{display:inline-flex;align-items:center;gap:4px}
.vr-rating-score b{font-family:'Newsreader',serif;font-weight:500;font-size:19px;color:var(--vr-text);transition:color .6s ease}
.vr-star{font-style:normal;color:var(--vr-accent);font-size:15px;line-height:1;transition:color .6s ease}
.vr-rating-count{font-size:12px;color:var(--vr-text-faint);transition:color .6s ease}
.vr-rating-arrow{font-size:13px;color:var(--vr-accent-2);margin-left:1px;transition:transform .2s ease,color .6s ease}
.vr-rating:hover .vr-rating-arrow{transform:translateX(2px)}
.vr-ratings-note{font-family:'Archivo',sans-serif;font-size:11.5px;letter-spacing:.02em;color:var(--vr-text-faintest);margin-top:14px;transition:color .6s ease}
.vr-qfacts{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(18px,2.2vw,30px);border-top:1px solid var(--vr-line);padding-top:clamp(28px,3.4vw,40px)}
.vr-fact{min-width:0}
.vr-fact .vr-fact-k{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.7rem,2.6vw,2.5rem);color:var(--vr-accent-2);line-height:1;transition:color .6s ease;letter-spacing:-.01em}
.vr-fact.wide .vr-fact-k{font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.15}
.vr-fact .vr-fact-v{font-family:'Archivo',sans-serif;font-size:12.5px;line-height:1.5;color:var(--vr-text-dim);margin-top:9px;letter-spacing:.01em;transition:color .6s ease}

/* Direct-booking value badge (hero-area / fact strip) */
.vr-directbook{display:flex;align-items:flex-start;gap:11px;margin-top:clamp(26px,3vw,38px);
  border:1px solid color-mix(in oklab,var(--vr-accent),transparent 68%);border-radius:10px;
  background:color-mix(in oklab,var(--vr-accent),transparent 91%);padding:15px 20px;
  transition:background-color .6s ease,border-color .6s ease}
.vr-directbook-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;
  background:color-mix(in oklab,var(--vr-accent),transparent 80%);color:var(--vr-accent-2);transition:color .6s ease,background-color .6s ease}
.vr-directbook-ic svg{width:18px;height:18px}
.vr-directbook-txt{font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.55;color:var(--vr-text-muted);transition:color .6s ease}
.vr-directbook-txt b{color:var(--vr-text);font-weight:700}
/* Centered variant used inside the booking intro. */
.vr-directbook-book{max-width:660px;margin-left:auto;margin-right:auto;text-align:left}
/* ---------- Full-width guest-review band (edge-to-edge, photo + rotating quote) ----------
   Light text over a dark scrim in BOTH seasons (like the hero), so it stays WCAG AA
   whether the site is in the dark summer or light winter theme. */
.vr-trustband{position:relative;overflow:hidden;isolation:isolate;background:#080b0a}
.vr-trustband-bg{position:absolute;inset:0;z-index:-2}
.vr-trustband-bg .vr-seasonimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}
.vr-trustband-scrim{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,rgba(6,9,8,.9) 0%,rgba(6,9,8,.7) 48%,rgba(6,9,8,.44) 100%),linear-gradient(0deg,rgba(6,9,8,.66),transparent 42%)}
.vr-trustband-inner{max-width:1340px;margin:0 auto;padding:clamp(44px,6vw,80px) clamp(20px,5vw,64px) 0}
/* ratings chips read over the photo (light + translucent) in both seasons */
.vr-trustband .vr-ratings{margin:0}
.vr-trustband .vr-rating{flex:0 1 auto;border-color:rgba(240,235,225,.26);background:rgba(10,14,12,.34);backdrop-filter:blur(6px)}
.vr-trustband .vr-rating:hover{border-color:var(--vr-ember-2);background:rgba(10,14,12,.52);box-shadow:0 14px 34px -20px rgba(0,0,0,.7)}
.vr-trustband .vr-rating-plat{color:#E7E2D6}
.vr-trustband .vr-rating-score b{color:#FBF7EF}
.vr-trustband .vr-star{color:var(--vr-ember-2)}
.vr-trustband .vr-rating-count{color:#C7CCC1}
.vr-trustband .vr-rating-arrow{color:var(--vr-ember-2)}
.vr-trustband .vr-ratings-note{color:#B9BEB2}
/* NEKONEČNÝ POJEZD RECENZÍ v pásu pod heroem (majitel 7/2026: „Kdyby to tam
   projíždělo… když na to najedeš, tak se to zastaví a můžeš na to kliknout").
   Jde ZÁMĚRNĚ přes celou šířku obrazovky — pás je edge-to-edge a karty mizí
   za pravým i levým okrajem, takže je vidět, že smyčka pokračuje.

   Mechanika: .vr-revmarq-track = dvě identické poloviny; posun o -50 % šířky
   tracku a skok zpět. Doba jednoho průjezdu je v --vr-marq-dur (dopočítá JS
   z reálné šířky, aby rychlost byla vždy stejná v px/s).

   ZASTAVENÍ: :hover (myš) i :focus-within (tabulátor) → animation-play-state.
   Bez animace (reduced motion, mobil) se pás chová jako nativní vodorovný
   scroll — duplicitní polovina se schová, aby v něm nebyly věci dvakrát. */
.vr-revmarq{position:relative;margin-top:clamp(28px,3.4vw,42px);
  padding:0 0 clamp(40px,5.5vw,72px);
  /* měkké okraje: karty se nevynořují „z ničeho", ale vyjedou z mlhy */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 92%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 92%,transparent 100%);
  overflow:hidden}
.vr-revmarq-track{display:flex;width:max-content;
  animation:vr-marq var(--vr-marq-dur,60s) linear infinite}
.vr-revmarq:hover .vr-revmarq-track,
.vr-revmarq:focus-within .vr-revmarq-track{animation-play-state:paused}
.vr-revmarq-half{display:flex;align-items:stretch;gap:clamp(14px,1.4vw,22px);
  padding-right:clamp(14px,1.4vw,22px)}
@keyframes vr-marq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* Karta = citace + jméno hosta + štítek platformy s JEJÍM hodnocením v JEJÍ
   škále. Celá karta je odkaz na profil platformy (nová záložka). */
.vr-revcard{flex:0 0 clamp(258px,25vw,346px);display:flex;flex-direction:column;gap:14px;margin:0;
  border:1px solid rgba(240,235,225,.22);border-radius:4px;background:rgba(10,14,12,.36);
  backdrop-filter:blur(7px);padding:clamp(18px,1.7vw,24px);text-decoration:none;
  transition:border-color .25s ease,background-color .25s ease,transform .25s ease}
a.vr-revcard:hover{border-color:var(--vr-ember-2);background:rgba(10,14,12,.6);transform:translateY(-3px)}
a.vr-revcard:focus-visible{outline:2px solid var(--vr-ember-2);outline-offset:3px}
.vr-revcard-q{margin:0;font-family:'Newsreader',serif;font-style:italic;font-weight:300;
  font-size:clamp(1rem,1.15vw,1.16rem);line-height:1.45;color:#F4EFE6;letter-spacing:-.005em}
.vr-revcard-q::before{content:'\201C';color:var(--vr-ember-2);margin-right:.04em}
.vr-revcard-q::after{content:'\201D';color:var(--vr-ember-2);margin-left:.02em}
.vr-revcard-cap{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:4px}
.vr-revcard-author{font-family:'Archivo',sans-serif;font-size:13px;font-weight:600;letter-spacing:.02em;color:#DED9CD}
.vr-revcard-plat{display:inline-flex;align-items:center;gap:7px;flex:none;
  font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#F1ECE2;border:1px solid rgba(240,235,225,.3);border-radius:999px;padding:5px 10px;
  background:rgba(10,14,12,.3);white-space:nowrap;transition:border-color .25s ease}
a.vr-revcard:hover .vr-revcard-plat{border-color:var(--vr-ember-2)}
.vr-revcard-score{display:inline-flex;align-items:center;gap:3px;color:var(--vr-ember-2);letter-spacing:.06em}
.vr-revcard-score .vr-star{font-size:11px}
.vr-revcard-plat .vr-rating-arrow{font-size:11px;margin-left:0}

/* Nadhlavička nad chipy platforem — pás potřebuje hlavičku, když z něj
   zmizelo velké průměrné číslo. */
.vr-ratings-eyebrow{display:block;margin-bottom:clamp(14px,1.6vw,20px);color:var(--vr-ember-2)}

/* Bez animace (reduced motion i mobil): nativní vodorovný scroll, duplicitní
   polovina pryč, ať v pásu nejsou tytéž recenze dvakrát pod prstem. */
@media(prefers-reduced-motion:reduce){
  .vr-revmarq{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .vr-revmarq-track{animation:none;width:auto}
  .vr-revmarq-half.is-dup{display:none}
  .vr-revcard{scroll-snap-align:start;transition:none}
  a.vr-revcard:hover{transform:none}
}
@media(max-width:760px){
  .vr-revmarq{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
    -webkit-mask-image:none;mask-image:none}
  .vr-revmarq-track{animation:none;width:auto}
  .vr-revmarq-half.is-dup{display:none}
  .vr-revmarq-half{padding-left:clamp(20px,5vw,32px)}
  .vr-revcard{flex-basis:min(78vw,300px);scroll-snap-align:start}
}
@media(max-width:560px){
  .vr-trustband .vr-rating{flex:1 1 100%;justify-content:space-between}
}

/* ---------- Location: illustrated static map + distances (dark map card, both seasons) ---------- */

/* ---------- Booking: month nav arrows ---------- */
.vr-cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.vr-cal-arrow{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;
  border:1px solid var(--vr-line);background:var(--vr-panel-input);color:var(--vr-text);font-size:22px;line-height:1;cursor:pointer;
  transition:border-color .2s ease,background-color .2s ease,opacity .2s ease,color .6s ease;-webkit-tap-highlight-color:transparent}
.vr-cal-arrow span{margin-top:-2px}
.vr-cal-arrow:hover{border-color:var(--vr-accent);background:rgba(214,138,76,.14)}
.vr-cal-arrow:disabled{opacity:.28;cursor:default;pointer-events:none}

/* ---------- Booking: request states (msg / success) ---------- */
.vr-book-msg{font-family:'Archivo',sans-serif;font-size:13px;line-height:1.5;color:#b4442f;
  background:rgba(214,110,86,.12);border:1px solid rgba(214,110,86,.36);border-radius:3px;padding:12px 14px}
.vr-root[data-season="leto"] .vr-book-msg{color:#e6b7ac;background:rgba(214,110,86,.09);border-color:rgba(214,110,86,.3)}
.vr-book-aside[data-state="done"] .vr-book-form{display:none}
.vr-book-aside[data-state="form"] .vr-book-success{display:none}
.vr-book-pay[aria-busy="true"]{opacity:.7;cursor:progress}
.vr-book-success{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.vr-book-ok-ic{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;
  background:rgba(214,138,76,.14);color:var(--vr-ember-2)}
.vr-book-ok-ic svg{width:24px;height:24px}
.vr-book-success h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.4rem,2vw,1.8rem);color:var(--vr-text);margin:0;line-height:1.15;transition:color .6s ease}
.vr-book-success p{font-family:'Archivo',sans-serif;font-size:14px;line-height:1.65;color:var(--vr-text-muted);margin:0;max-width:40ch;transition:color .6s ease}
.vr-book-sum{width:100%;display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--vr-line);padding-top:14px;margin-top:4px;font-family:'Archivo',sans-serif;font-size:14px}
.vr-book-sum .row{display:flex;justify-content:space-between;gap:12px;color:var(--vr-text-muted);line-height:1.4}
.vr-book-sum .row .v{color:var(--vr-text);font-weight:600;white-space:nowrap}
.vr-book-again{margin-top:6px;font-family:'Archivo',sans-serif;font-size:13.5px;font-weight:600;color:var(--vr-text);
  background:var(--vr-panel-input);border:1px solid var(--vr-line);border-radius:2px;padding:13px 20px;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .6s ease}
.vr-book-again:hover{border-color:var(--vr-accent);background:rgba(214,138,76,.1)}

/* ---------- Footer social ---------- */
.vr-foot-lbl-social{margin-top:22px}
.vr-foot-social{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-family:'Archivo',sans-serif;font-size:13.5px;color:var(--vr-text-muted);text-decoration:none;transition:color .2s ease}
.vr-foot-social:hover{color:var(--vr-accent-2)}
.vr-foot-social svg{flex:none}

/* ---------- Responsive ---------- */
@media(max-width:920px){.vr-qfacts{grid-template-columns:repeat(3,1fr);gap:22px 18px}}
@media(max-width:640px){
  .vr-qfacts{grid-template-columns:1fr 1fr;gap:20px 16px}
  .vr-rating{flex:1 1 100%;justify-content:space-between}
  .vrp-stage{height:min(82vh,760px)}
}
/* Sticky spodní CTA na mobilu (nav CTA je ≤960px skryté). Skryté by default;
   zobrazí se jen ≤960px a až po odscrollování za hero (JS přepíná data-show). */
.vr-stickycta{display:none}
@media(max-width:960px){
  .vr-navlinks{display:none}
  .vr-navcta{display:none}
  .vr-nav-season{display:none}
  .vr-burger{display:flex}
  .vr-book{grid-template-columns:1fr}
  .vr-stickycta{display:flex;align-items:center;justify-content:center;gap:8px;
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    font-family:'Archivo',sans-serif;font-size:15px;font-weight:700;letter-spacing:.02em;
    color:#10150f;background:var(--vr-ember);
    padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom));
    box-shadow:0 -6px 26px rgba(0,0,0,.32);
    transform:translateY(120%);opacity:0;pointer-events:none;
    transition:transform .35s cubic-bezier(.2,.7,.15,1),opacity .3s}
  .vr-stickycta[data-show="true"]{transform:none;opacity:1;pointer-events:auto}
}
@media(max-width:880px){
  .vr-ohn-grid{grid-template-columns:1fr}
  .vr-foot{grid-template-columns:1fr;gap:34px}
  .vr-skup{grid-template-columns:1fr}
  .vr-exphead{flex-direction:column;align-items:flex-start}
  .vr-tour-hint{text-align:left}
  .vr-expdetail{grid-template-columns:1fr;gap:10px}
  .vr-vyl{grid-template-columns:1fr 1fr}
  .vr-gal{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .vr-gal{grid-template-columns:repeat(2,1fr);gap:12px}
  .vr-facts{grid-template-columns:1fr 1fr}
  .vr-vyl{grid-template-columns:1fr}
  .vr-cal-wrap{grid-template-columns:1fr}
}
@media(max-width:600px){.vrp-thumb{width:104px;height:64px}}
@media(max-height:780px){
  .vrim-h1{font-size:clamp(2.2rem,6.5vw,4.8rem)}
  .vrim-sub{margin-top:14px}
  .vrim-actions{margin-top:18px}
}

/* ================================================================
   #dum — „Za bránou už jste jen vy."
   Full-bleed pás → číselný panel překrývající spodní hranu fotky →
   rail venkovních „pokojů" → zavírací věta + CTA do 360°.
   Pás zůstává TMAVÝ i ve světlém zimním tématu (světlý text na scrimu),
   stejně jako .vr-trustband. ================================================ */
.sec-dum{padding:clamp(48px,7vh,96px) 0 clamp(70px,10vh,130px);overflow-x:clip}
.vr-own-band{position:relative;width:100vw;margin-inline:calc(50% - 50vw);
  height:clamp(400px,58vh,600px);overflow:hidden;background:#080b0a}
.vr-own-bandimg{position:absolute;inset:0;border-radius:0}
.vr-own-bandimg .vr-seasonimg{object-position:50% 58%;transform:scale(1.06);transition:opacity .8s ease,transform 14s linear}
.vr-own-band.vr-in .vr-seasonimg{transform:scale(1)}
.vr-own-band::before,.vr-own-band::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;transition:opacity .6s ease}
.vr-own-band::before{background:linear-gradient(to top,rgba(6,9,8,.90) 0%,rgba(6,9,8,.55) 36%,rgba(6,9,8,.12) 68%,transparent 100%)}
.vr-own-band::after{background:linear-gradient(to right,rgba(6,9,8,.58) 0%,rgba(6,9,8,.22) 44%,transparent 70%)}
.vr-root[data-season="zima"] .vr-own-band::before{opacity:.80}
.vr-root[data-season="zima"] .vr-own-band::after{opacity:.72}
.vr-root[data-season="zima"] .vr-own-band{box-shadow:0 -1px 0 var(--vr-line) inset}
.vr-own-bandcopy{position:absolute;inset:auto 0 0 0;z-index:2;padding-bottom:clamp(28px,4vw,56px)}
.vr-own-bandcopy .vr-wrap>*{max-width:660px}
.vr-own-bandcopy .vr-eyebrow{color:var(--vr-accent-photo);font-size:11px;letter-spacing:.17em}
.vr-own-h2{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(34px,5.2vw,60px);line-height:1.04;
  letter-spacing:-.015em;color:#F0EBE1;margin:14px 0 0;text-wrap:balance}
.vr-own-rule{height:1px;width:0;background:var(--vr-ember);margin:20px 0 18px;transition:width .6s cubic-bezier(.2,.7,.2,1)}
.vr-own-band.vr-in .vr-own-rule{width:84px}
.vr-own-lead{font-family:'Archivo',sans-serif;font-size:clamp(15.5px,1.15vw,17px);line-height:1.62;color:#E4E0D6;margin:0;max-width:54ch}
/* číselný panel — překrývá spodní hranu fotky a sešívá pás se stránkou */
.vr-own-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:-56px;position:relative;z-index:2;
  background:var(--vr-panel-strong);border:1px solid var(--vr-line);border-radius:4px;
  backdrop-filter:blur(10px);padding:clamp(22px,3vw,34px);transition:background-color .6s ease,border-color .6s ease}
.vr-own-stat{padding:0 clamp(14px,2vw,28px)}
.vr-own-stat+.vr-own-stat{border-left:1px solid var(--vr-line)}
.vr-own-stat .n{display:block;font-family:'Newsreader',serif;font-weight:300;font-size:clamp(28px,3.8vw,44px);
  line-height:1.05;color:var(--vr-accent);font-variant-numeric:tabular-nums;transition:color .6s ease}
.vr-own-stat .l{display:block;margin-top:8px;font-family:'Archivo',sans-serif;font-size:13.5px;line-height:1.5;
  color:var(--vr-text-muted);max-width:24ch;transition:color .6s ease}
@media(max-width:760px){
  .vr-own-stats{grid-template-columns:repeat(2,1fr);margin-top:24px}
  .vr-own-stat{border-left:0;padding:16px 0}
  .vr-own-stat+.vr-own-stat{border-left:0}
  .vr-own-stat:nth-child(3),.vr-own-stat:nth-child(4){border-top:1px solid var(--vr-line)}
}
@media(max-width:720px){
  .vr-own-band{height:clamp(430px,66vh,540px)}
  .vr-own-bandimg .vr-seasonimg{object-position:50% 45%}
  .vr-own-h2{font-size:clamp(30px,8vw,40px)}
  .vr-sm-hide{display:none}
}

/* ================================================================
   #lokalita — „V horách, ne na konci světa."
   Pás „od dveří" → kreslená mapa (statické inline SVG) → tři okruhy →
   blok „Než dorazíte". Mapa jede celá přes proměnné --vr-map-*. ======== */
.vr-lok-head{max-width:820px}
.vr-lok-lead{font-family:'Archivo',sans-serif;font-size:clamp(15px,1.1vw,17px);line-height:1.7;
  color:var(--vr-text-muted);margin:18px 0 0;max-width:62ch;transition:color .6s ease}
.vr-lok-doorstep{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);
  border-top:1px solid var(--vr-line);border-bottom:1px solid var(--vr-line);
  padding:clamp(24px,3vw,36px) 0;margin-top:clamp(32px,4vw,56px)}
.vr-lok-door .n{display:block;font-family:'Newsreader',serif;font-weight:300;font-size:clamp(1.9rem,3.2vw,2.8rem);
  line-height:1.05;color:var(--vr-accent);font-variant-numeric:tabular-nums;transition:color .6s ease}
.vr-lok-door .l{display:block;margin-top:8px;font-family:'Archivo',sans-serif;font-size:13px;line-height:1.55;
  color:var(--vr-text-muted);max-width:24ch;transition:color .6s ease}
.vr-lokgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,3.5vw,56px);
  align-items:start;margin-top:clamp(36px,4vw,60px)}
.vr-lokmap{margin:0;border:1px solid var(--vr-line);border-radius:4px;overflow:hidden;
  background:var(--vr-map-paper);transition:background-color .6s ease,border-color .6s ease}
.vr-lokmap-head{padding:14px 18px;border-bottom:1px solid var(--vr-line);font-family:'Archivo',sans-serif;
  font-weight:600;font-size:14px;color:var(--vr-text-soft);transition:color .6s ease,border-color .6s ease}
.vr-lokmap-foot{padding:14px 18px;border-top:1px solid var(--vr-line);transition:border-color .6s ease}
.vr-lokmap-legend{font-family:'Archivo',sans-serif;font-size:12px;line-height:1.5;color:var(--vr-text-faint);margin:0;transition:color .6s ease}
.vr-lokmap-note{font-family:'Archivo',sans-serif;font-size:12px;line-height:1.5;color:var(--vr-text-muted);margin:8px 0 0;transition:color .6s ease}
/* Mapa: velikosti písma v em vůči kořenovému <svg> (CSS přebíjí atributy a na
   mobilu se všechny popisky zvětší jedním pravidlem). */
.vr-lokmap-svg{display:block;width:100%;height:auto;font-family:'Archivo',sans-serif;font-size:12px}
.vr-lokmap-svg *{transition:fill .6s ease,stroke .6s ease}
.vr-lokmap-svg text{paint-order:stroke;stroke:var(--vr-map-paper);stroke-width:3;stroke-linejoin:round}
.vr-mp-name{font-size:1em;font-weight:500}
.vr-mp-meta{font-size:.875em}
.vr-map-villa{font-size:1.08em;font-weight:600}
.vr-map-villasub{font-size:.79em;letter-spacing:.18em}
.vr-map-country{font-size:.83em;letter-spacing:.25em}
.vr-map-ringlbl{font-size:.79em;letter-spacing:.2em;font-weight:600}
.vr-map-river{font-family:'Newsreader',serif;font-style:italic;font-size:1em}
.vr-mexit-lbl{font-size:.92em;font-weight:500}
.vr-map-scalelbl,.vr-map-northlbl{font-size:.79em}
.vr-lokmap .vr-mp{transition:opacity .25s ease}
.vr-lokgrid:has(.vr-ring[data-ring="foot"]:hover) .vr-lokmap .vr-mp:not([data-ring="foot"]){opacity:.25}
.vr-lokgrid:has(.vr-ring[data-ring="car"]:hover) .vr-lokmap .vr-mp:not([data-ring="car"]){opacity:.25}
.vr-lokgrid:has(.vr-ring[data-ring="day"]:hover) .vr-lokmap .vr-mp{opacity:.25}
.vr-map-glow{animation:vrMapBreath 6s ease-in-out infinite}
@keyframes vrMapBreath{0%,100%{opacity:.82}50%{opacity:1}}
.vr-lokmap.vr-in .vr-map-wave{animation:vrMapWave 1.2s ease-out .5s 1}
@keyframes vrMapWave{from{r:12;opacity:.5}to{r:70;opacity:0}}
/* boční sloupec — tři okruhy + „Než dorazíte" */
.vr-lokaside .vr-ring{border-top:1px solid var(--vr-line);padding:22px 0}
.vr-lokaside .vr-ring:first-child{border-top:0;padding-top:0}
.vr-ring-top{display:flex;align-items:baseline;gap:12px}
.vr-ring-n{font-family:'Newsreader',serif;font-weight:300;font-size:2.4rem;line-height:1;color:var(--vr-accent);transition:color .6s ease}
.vr-ring h3{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--vr-text-soft);margin:0;transition:color .6s ease}
.vr-ring-count{display:block;margin-top:6px;font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--vr-accent);transition:color .6s ease}
.vr-ring p{font-family:'Archivo',sans-serif;font-size:15px;line-height:1.6;color:var(--vr-text-muted);margin:10px 0 0;transition:color .6s ease}
.vr-ring-link{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--vr-accent);transition:color .6s ease}
.vr-ring-link:hover span{text-decoration:underline}
/* Kompas — vizuální signál „tohle otevře nástroj", ne další textový odkaz */
.vr-ring-ico{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.vr-lok-arrive{margin:clamp(24px,3vw,34px) 0 0}
.vr-lok-arrive-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  border-top:1px solid var(--vr-line);padding:11px 0}
.vr-lok-arrive dt{font-family:'Archivo',sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--vr-text-faint);margin:0;transition:color .6s ease}
.vr-lok-arrive dd{font-family:'Archivo',sans-serif;font-size:15px;color:var(--vr-text-soft);margin:0;text-align:right;transition:color .6s ease}
@media(max-width:1000px){.vr-lokgrid{grid-template-columns:1fr}}
@media(max-width:760px){
  .vr-lok-doorstep{grid-template-columns:repeat(2,1fr)}
  .vr-lokmap{margin-inline:calc(-1 * clamp(20px,5vw,64px));border-left:0;border-right:0;border-radius:0}
  .vr-lokmap-svg{font-size:16.2px}
  .vr-lokmap [data-prio="2"]{display:none}
}
@media(max-width:640px){
  .vr-lokaside .vr-ring{padding:18px 0}
  .vr-ring-n{font-size:1.9rem}
}
@media (prefers-reduced-motion:reduce){
  .vr-own-bandimg .vr-seasonimg{transform:none!important;transition:opacity .8s ease}
  .vr-own-rule{width:84px!important;transition:none}
  .vr-map-glow{animation:none;opacity:1}
  .vr-lokmap.vr-in .vr-map-wave{animation:none}
}
