/* ══════════════════════════════════════════════════════════════
   Apartmány pod Slavkáčom
   Paleta: sneh, smrek, žula, smrekovec na jeseň
   Písma:  Fraunces (nadpisy) + Archivo (text)
   ══════════════════════════════════════════════════════════════ */

:root{
  --bg:        #f5f6f2;
  --bg-alt:    #e9ece5;
  --ink:       #1a201b;
  --ink-soft:  #58615a;
  --line:      #d8ded4;
  --forest:    #26332a;
  --forest-2:  #18211b;
  --forest-3:  #101711;
  --brass:     #9c6b2f;
  --brass-lt:  #c4924f;

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "Archivo", "Segoe UI", system-ui, -apple-system, sans-serif;

  --wrap: 1240px;
  --r: 4px;
  --shadow-s: 0 8px 24px -14px rgba(20,28,22,.4);
  --shadow:   0 22px 60px -26px rgba(20,28,22,.45);
  --ease:     cubic-bezier(.22,.61,.36,1);
  --ease-io:  cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:16.5px; font-weight:300; line-height:1.72;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4{
  font-family:var(--serif); font-weight:400; line-height:1.1; margin:0;
  letter-spacing:-.014em; text-wrap:balance; font-variation-settings:"SOFT" 0,"WONK" 0;
}
p{ margin:0 0 1.05em; }
ul{ margin:0; padding:0; list-style:none; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:28px; }
.wrap--narrow{ max-width:860px; }

.skip{ position:absolute; left:-9999px; top:0; z-index:300; background:var(--forest); color:#fff; padding:12px 20px; }
.skip:focus{ left:12px; top:12px; }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; }
::selection{ background:var(--brass); color:#fff; }

/* ── ODHAĽOVANIE PRI SCROLLE ─────────────────────────────── */
[data-anim]{ opacity:0; transition:opacity .85s var(--ease), transform .85s var(--ease); will-change:opacity,transform; }
[data-anim="up"]{ transform:translateY(26px); }
[data-anim="fade"]{ transform:scale(1.02); }
[data-anim].is-in{ opacity:1; transform:none; }
/* odhalenie obrázka zdola nahor, ako clona */
[data-anim="mask"]{ opacity:1; transform:none; clip-path:inset(0 0 100% 0); transition:clip-path 1.15s var(--ease); }
[data-anim="mask"].is-in{ clip-path:inset(0 0 0 0); }

/* Nadpis po riadkoch — každý riadok v maske, vysúva sa zdola.
   Nadpis sa aj prelína, aby mal efekt aj pri obmedzenom pohybe. */
[data-lines]{ opacity:0; transition:opacity .8s var(--ease); }
[data-lines].is-in{ opacity:1; }
.ln{ display:block; overflow:hidden; padding:0 .1em .14em 0; margin:0 -.1em -.14em 0; }
.ln > span{ display:block; transform:translateY(115%); transition:transform 1.05s var(--ease); }
[data-lines].is-in .ln > span{ transform:none; }

/* Obrázok sa pri scrollovaní zväčšuje do pokoja */
[data-zoom]{ transform:scale(var(--z,1.16)); transform-origin:center; will-change:transform; }

/* ── ÚVODNÁ CLONA ────────────────────────────────────────── */
.loader{
  position:fixed; inset:0; z-index:400; background:var(--forest-3);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px;
  transition:opacity .7s var(--ease), visibility .7s;
}
.loader.is-done{ opacity:0; visibility:hidden; }
.loader__mark{ width:120px; fill:none; stroke:var(--brass-lt); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.loader__mark path{ stroke-dasharray:1; stroke-dashoffset:1; animation:draw 1.5s var(--ease) forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.loader__txt{
  font-family:var(--serif); font-size:15px; letter-spacing:.32em; text-transform:uppercase;
  color:rgba(255,255,255,.5); opacity:0; animation:fadeIn .8s .7s var(--ease) forwards;
}
@keyframes fadeIn{ to{ opacity:1; } }

/* ── UKAZOVATEĽ SCROLLU ──────────────────────────────────── */
.progress{
  position:fixed; top:0; left:0; height:2px; width:100%; z-index:120;
  background:var(--brass); transform:scaleX(0); transform-origin:0 50%;
}

/* ── TLAČIDLÁ ────────────────────────────────────────────── */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  padding:15px 32px; border:1px solid var(--forest); background:var(--forest); color:#fff;
  font-size:12px; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  cursor:pointer; border-radius:var(--r); overflow:hidden; isolation:isolate;
  transition:color .35s var(--ease), border-color .35s var(--ease);
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1; background:var(--brass);
  transform:translateY(101%); transition:transform .45s var(--ease);
}
.btn:hover{ border-color:var(--brass); }
.btn:hover::before{ transform:translateY(0); }
.btn--sm{ padding:11px 22px; font-size:11px; }
.btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn--ghost::before{ background:#fff; }
.btn--ghost:hover{ color:var(--forest); border-color:#fff; }
.btn--out{ background:transparent; color:var(--forest); border-color:var(--line); width:100%; }
.btn--out:hover{ color:#fff; }
.btn--full{ width:100%; height:52px; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--brass); font-weight:500;
  border-bottom:1px solid currentColor; padding-bottom:4px; transition:gap .3s var(--ease), color .3s;
}
.link-arrow::after{ content:"→"; }
.link-arrow:hover{ gap:14px; color:var(--forest); }

.eyebrow{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--brass); font-weight:500; margin:0 0 18px; }

/* ── TOP BAR ─────────────────────────────────────────────── */
.topbar{
  background:var(--forest-3); color:rgba(255,255,255,.8); font-size:12.5px;
  display:flex; gap:16px; justify-content:center; align-items:center;
  padding:10px 22px; text-align:center; flex-wrap:wrap;
}
.topbar a{ color:var(--brass-lt); border-bottom:1px solid rgba(196,146,79,.45); }
.topbar a:hover{ color:#fff; border-color:#fff; }

/* ── HLAVIČKA ────────────────────────────────────────────── */
.hdr{
  position:sticky; top:0; z-index:100;
  background:rgba(245,246,242,.9); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s;
}
.hdr.is-stuck{ border-color:var(--line); box-shadow:0 8px 30px -22px rgba(20,28,22,.6); }
.hdr__in{ display:flex; align-items:center; gap:26px; height:78px; transition:height .35s var(--ease); }
.hdr.is-stuck .hdr__in{ height:64px; }

.logo{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.logo__mark{ width:38px; color:var(--brass); flex:0 0 auto; }
.logo__mark svg{ width:100%; height:auto; display:block; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; }
.logo__txt{ display:flex; flex-direction:column; line-height:1.15; }
.logo__txt b{ font-family:var(--serif); font-size:21px; font-weight:500; letter-spacing:-.01em; }
.logo__txt i{ font-style:normal; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }

.nav{ display:flex; gap:21px; margin-left:auto; }
.nav a{ font-size:13px; color:var(--ink-soft); position:relative; padding:6px 0; transition:color .25s; }
.nav a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--brass); transition:width .35s var(--ease); }
.nav a:hover, .nav a.is-active{ color:var(--ink); }
.nav a:hover::after, .nav a.is-active::after{ width:100%; }

.hdr__side{ display:flex; align-items:center; gap:14px; }
.lang{ display:flex; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.lang button{
  border:0; background:transparent; cursor:pointer; padding:7px 10px;
  font-size:11px; font-weight:500; letter-spacing:.1em; color:var(--ink-soft);
  transition:background .25s, color .25s;
}
.lang button.is-on{ background:var(--forest); color:#fff; }

.burger{ display:none; width:42px; height:42px; border:1px solid var(--line); background:transparent; cursor:pointer; border-radius:var(--r); padding:0; }
.burger span{ display:block; width:18px; height:1.5px; background:var(--ink); margin:4px auto; transition:transform .35s var(--ease), opacity .2s; }
.burger.is-on span:nth-child(1){ transform:translateY(5.5px) rotate(45deg); }
.burger.is-on span:nth-child(2){ opacity:0; }
.burger.is-on span:nth-child(3){ transform:translateY(-5.5px) rotate(-45deg); }

/* ── HERO ────────────────────────────────────────────────── */
.hero{ position:relative; min-height:min(92vh,860px); display:flex; align-items:center; overflow:hidden; }
.hero__slides{ position:absolute; inset:0; }
.hero__slide{ position:absolute; inset:0; margin:0; opacity:0; transition:opacity 1.5s var(--ease); }
.hero__slide img{ width:100%; height:100%; object-fit:cover; }
.hero__slide.is-on{ opacity:1; }
.hero__slide.is-on img{ animation:ken 9s linear forwards; }
@keyframes ken{ from{ transform:scale(1.02); } to{ transform:scale(1.12); } }
.hero__veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(16,23,17,.62) 0%, rgba(16,23,17,.28) 42%, rgba(16,23,17,.82) 100%),
    linear-gradient(90deg, rgba(16,23,17,.5) 0%, rgba(16,23,17,0) 62%);
}
.hero__in{ position:relative; z-index:2; color:#fff; padding-block:130px 170px; max-width:840px; }
.hero__in .eyebrow{ color:var(--brass-lt); }
.hero__h{ font-size:clamp(42px,6.6vw,86px); font-weight:300; margin-bottom:26px; }
.hero__h em{ display:block; font-style:italic; color:var(--brass-lt); }
.hero__lead{ font-size:17.5px; max-width:560px; color:rgba(255,255,255,.85); margin-bottom:36px; }
.hero__cta{ display:flex; gap:14px; flex-wrap:wrap; }

/* slová hero nadpisu — maskovaný nábeh
   Kurzíva a dolné dotiahnutia (ď, ý, p) presahujú riadkový box, takže
   by ich overflow:hidden odstrihol. Vypchávka to podchytí a záporný
   okraj vráti pôvodné rozostupy medzi slovami. */
.w{
  display:inline-block; overflow:hidden; vertical-align:top;
  padding:0 .1em .16em 0; margin:0 -.1em -.16em 0;
}
.w > i{ display:inline-block; font-style:inherit; transform:translateY(120%); transition:transform .95s var(--ease); }
.is-ready .w > i{ transform:translateY(0); }

.hero__score{
  position:absolute; right:28px; bottom:150px; z-index:3;
  display:flex; align-items:center; gap:14px;
  background:rgba(255,255,255,.95); padding:15px 22px; border-radius:var(--r); box-shadow:var(--shadow);
}
.hero__score b{ font-family:var(--serif); font-size:36px; font-weight:500; color:var(--forest); line-height:1; }
.hero__score span{ display:flex; flex-direction:column; }
.hero__score em{ font-style:normal; font-size:13px; font-weight:500; }
.hero__score i{ font-style:normal; font-size:11.5px; color:var(--ink-soft); }

.hero__ui{ position:absolute; left:28px; bottom:56px; z-index:3; display:flex; align-items:center; gap:20px; }
.hero__dots{ display:flex; gap:10px; }
.hero__dots button{ width:36px; height:2px; border:0; padding:0; cursor:pointer; background:rgba(255,255,255,.35); position:relative; overflow:hidden; }
.hero__dots button::after{ content:""; position:absolute; inset:0; background:var(--brass-lt); transform:scaleX(0); transform-origin:0 50%; }
.hero__dots button.is-on::after{ animation:fill 7s linear forwards; }
@keyframes fill{ from{ transform:scaleX(0);} to{ transform:scaleX(1);} }
.hero__count{ font-size:11.5px; letter-spacing:.2em; color:rgba(255,255,255,.55); font-variant-numeric:tabular-nums; }
.hero__count b{ color:#fff; font-weight:500; }

.hero__cue{ position:absolute; left:50%; bottom:56px; z-index:3; width:22px; height:36px; border:1px solid rgba(255,255,255,.4); border-radius:12px; transform:translateX(-50%); }
.hero__cue span{ position:absolute; left:50%; top:8px; width:2px; height:6px; background:#fff; border-radius:2px; margin-left:-1px; animation:cue 1.9s var(--ease-io) infinite; }
@keyframes cue{ 0%{ transform:translateY(0); opacity:0 } 25%{ opacity:1 } 75%{ transform:translateY(13px); opacity:0 } 100%{ opacity:0 } }

/* ── RAŇAJKOVÉ KOŠÍKY ────────────────────────────────────── */
.brk{ background:var(--bg-alt); }
.brk__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.brk__card{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), opacity .85s var(--ease);
}
.brk__card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.brk__img{ overflow:hidden; }
.brk__img img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.brk__body{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.brk__top{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:10px; }
.brk__top h3{ font-size:24px; }
.brk__price{
  font-family:var(--serif); font-size:22px; color:var(--brass); font-weight:500;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.brk__body > p{ font-size:14.5px; color:var(--ink-soft); margin:0 0 14px; }
.brk__tag{
  margin-top:auto !important; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass); border-top:1px solid var(--line); padding-top:14px;
}
.brk__note{
  display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;
  margin:38px 0 0; font-size:13.5px; color:var(--ink-soft); text-align:center;
}

/* ── PLÁVAJÚCI NADPIS ────────────────────────────────────── */
.drift{ overflow:hidden; padding-block:56px 60px; background:var(--bg); border-top:1px solid var(--line); }
.drift__row{
  display:flex; align-items:center; gap:24px; width:max-content;
  font-family:var(--serif); font-size:clamp(38px,6vw,84px); font-weight:300; line-height:1;
  white-space:nowrap; will-change:transform;
}
.drift__row i{ font-style:normal; color:var(--brass); font-size:.4em; }
.drift__row--alt{
  margin-top:14px; color:transparent;
  -webkit-text-stroke:1px var(--line); font-size:clamp(30px,4.6vw,62px);
}
.drift__row--alt i{ -webkit-text-stroke:0; color:var(--brass-lt); }

/* ── RAŇAJKY V REZERVÁCII ────────────────────────────────── */
.bk__brk{ border-top:1px solid var(--line); padding-top:18px; margin-bottom:20px; }
.bk__brk-hint{ font-size:11.5px; color:var(--ink-soft); margin:-4px 0 12px; }
.bk__brk-list{ display:flex; flex-direction:column; gap:8px; }
.bk__brk-row{
  display:grid; grid-template-columns:60px 1fr 56px; gap:8px; align-items:center;
  font-size:12.5px; color:var(--ink-soft);
}
.bk__brk-row time{ font-variant-numeric:tabular-nums; }
.bk__brk-row select{
  border:1px solid var(--line); background:var(--bg); border-radius:var(--r);
  padding:7px 8px; font-family:var(--sans); font-size:13px; color:var(--ink); cursor:pointer; width:100%;
}
.bk__brk-row select:disabled{ opacity:.45; cursor:default; }
.bk__brk-sum{
  display:flex; justify-content:space-between; gap:10px;
  margin-top:12px; font-size:12.5px; color:var(--brass); font-variant-numeric:tabular-nums;
}

/* ── RÝCHLE OVERENIE TERMÍNU (pruh pod hero) ─────────────── */
.qbar{ position:relative; z-index:5; margin-top:-56px; }
.qbar__form{
  background:var(--bg); box-shadow:var(--shadow); border:1px solid var(--line); border-radius:var(--r);
  display:grid; grid-template-columns:repeat(3,1fr) auto; padding:14px;
}
.qfld{ display:flex; flex-direction:column; gap:5px; padding:6px 20px; border-right:1px solid var(--line); }
.qfld:first-child{ padding-left:12px; }
.qfld label{ font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--brass); font-weight:500; }
.qfld input,.qfld select{
  border:0; background:transparent; font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:4px 0; width:100%; cursor:pointer;
}
.qfld input:focus,.qfld select:focus{ outline:none; }
.qbar__form .btn{ margin-left:14px; padding-inline:36px; width:auto; }

/* ── REZERVÁCIA ──────────────────────────────────────────── */
.bk{ padding-block:104px; background:var(--bg); }
.bk__grid{ display:grid; grid-template-columns:1fr 366px; gap:44px; align-items:start; }

.bk__step{
  display:flex; align-items:center; gap:12px; margin:0 0 18px;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:500;
}
.bk__step i{
  font-style:normal; width:26px; height:26px; border-radius:50%; flex:0 0 auto;
  background:var(--forest); color:#fff; display:grid; place-items:center;
  font-size:12px; letter-spacing:0; font-family:var(--serif);
}
.bk__left .bk__step:not(:first-child){ margin-top:38px; }

/* výber apartmánu */
.bk__apts{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.bk__apt{
  position:relative; border:1px solid var(--line); background:var(--bg); border-radius:var(--r);
  padding:0; overflow:hidden; cursor:pointer; text-align:left; display:flex; flex-direction:column;
  transition:border-color .3s, box-shadow .3s, transform .3s var(--ease);
}
.bk__apt img{ width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .7s var(--ease); }
.bk__apt:hover{ transform:translateY(-3px); box-shadow:var(--shadow-s); }
.bk__apt:hover img{ transform:scale(1.05); }
.bk__apt.is-on{ border-color:var(--brass); box-shadow:0 0 0 1px var(--brass); }
.bk__apt-txt{ display:flex; flex-direction:column; gap:2px; padding:14px 16px 16px; }
.bk__apt-name{ font-family:var(--serif); font-size:19px; }
.bk__apt-sub{ font-size:12.5px; color:var(--ink-soft); }
.bk__apt-price{ font-size:12px; color:var(--brass); font-weight:500; margin-top:6px; font-variant-numeric:tabular-nums; }

/* lišta nad kalendárom */
.bk__calbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.bk__arrow{
  width:38px; height:38px; border:1px solid var(--line); background:transparent; border-radius:50%;
  cursor:pointer; font-size:20px; line-height:1; color:var(--ink); transition:background .25s, color .25s, border-color .25s;
}
.bk__arrow:hover:not(:disabled){ background:var(--forest); border-color:var(--forest); color:#fff; }
.bk__arrow:disabled{ opacity:.3; cursor:default; }
.bk__legend{ display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--ink-soft); letter-spacing:.06em; }
.bk__legend em{ width:12px; height:12px; border-radius:2px; display:inline-block; }
.bk__legend em.is-free{ background:var(--bg-alt); border:1px solid var(--line); }
.bk__legend em.is-taken{ background:repeating-linear-gradient(135deg,var(--line),var(--line) 3px,transparent 3px,transparent 6px); border:1px solid var(--line); }
.bk__legend span:not(:last-child){ margin-right:10px; }

/* kalendár */
.cal{ display:grid; grid-template-columns:1fr 1fr; gap:34px; }
.cal__h{ font-family:var(--serif); font-size:19px; margin:0 0 12px; text-align:center; }
.cal__dow{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-bottom:6px; }
.cal__dow span{ text-align:center; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.cal__g{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.cal__x{ aspect-ratio:1; }
.cal__d{
  aspect-ratio:1; border:0; background:var(--bg-alt); border-radius:3px; cursor:pointer;
  font-family:var(--sans); font-size:13.5px; color:var(--ink); font-variant-numeric:tabular-nums;
  transition:background .2s, color .2s;
}
.cal__d:hover:not(:disabled){ background:var(--brass-lt); color:#fff; }
.cal__d.is-past{ background:transparent; color:var(--line); cursor:default; }
.cal__d.is-taken{
  cursor:not-allowed; color:var(--ink-soft); opacity:.55;
  background:repeating-linear-gradient(135deg,var(--line),var(--line) 3px,transparent 3px,transparent 6px);
}
.cal__d.is-from,.cal__d.is-to{ background:var(--forest); color:#fff; }
.cal__d.is-mid{ background:rgba(156,107,47,.18); border-radius:0; }

.bk__status{ font-size:12.5px; margin:18px 0 0; padding-left:20px; position:relative; color:var(--ink-soft); }
.bk__status::before{
  content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--line);
}
.bk__status.is-live::before{ background:#4b7f4b; }
.bk__status.is-loading::before{ background:var(--brass); }
.bk__status.is-error::before{ background:#a8563b; }
.bk__status.is-demo::before{ background:var(--brass-lt); }
.ft__person{ color:#fff; font-weight:500; margin:0 0 4px; }

/* bočný panel */
.bk__side{
  background:var(--bg-alt); border:1px solid var(--line); border-radius:var(--r);
  padding:26px 24px 28px; position:sticky; top:100px;
}
.bk__sum{ margin:0 0 22px; display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.bk__sum > div{ background:var(--bg); padding:12px 14px; }
.bk__sum dt{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.bk__sum dd{ margin:2px 0 0; font-family:var(--serif); font-size:18px; }

.bk__guests-h{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass); font-weight:500; margin:0 0 8px; }
.bk__guests{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:22px; }
.bk__guests label{ display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--ink-soft); }
.bk__guests select{
  border:1px solid var(--line); background:var(--bg); border-radius:var(--r); padding:9px 10px;
  font-family:var(--sans); font-size:15px; color:var(--ink); cursor:pointer;
}

.bk__total{
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  border-top:1px solid var(--line); padding-top:16px; margin-bottom:18px;
}
.bk__nights{ font-size:12.5px; color:var(--ink-soft); max-width:60%; }
.bk__total b{ font-family:var(--serif); font-size:32px; font-weight:500; font-variant-numeric:tabular-nums; }

.bk__clear{
  display:block; width:100%; margin-top:10px; border:0; background:none; cursor:pointer;
  font-size:12px; letter-spacing:.1em; color:var(--ink-soft); text-decoration:underline; text-underline-offset:3px;
}
.bk__clear:hover{ color:var(--ink); }
.bk__note{ font-size:11.5px; line-height:1.6; color:var(--ink-soft); margin:16px 0 0; }
.bk__note--req{ color:var(--brass); }

/* ── BEŽIACI PÁS ─────────────────────────────────────────── */
.marquee{ overflow:hidden; border-block:1px solid var(--line); padding-block:18px; background:var(--bg); }
.marquee__row{ display:flex; gap:34px; align-items:center; width:max-content; animation:slide 38s linear infinite; }
.marquee:hover .marquee__row{ animation-play-state:paused; }
.marquee span{ font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
.marquee i{ color:var(--brass); font-size:8px; font-style:normal; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ── SEKCIE ──────────────────────────────────────────────── */
.sec{ padding-block:110px; }
.sec--alt{ background:var(--bg-alt); }
.sec--dark{ background:var(--forest-2); color:rgba(255,255,255,.78); }
.sec--dark h2{ color:#fff; }
.sec__head{ max-width:660px; margin-bottom:56px; }
.sec__head--center{ margin-inline:auto; text-align:center; }
.sec h2{ font-size:clamp(32px,4.3vw,50px); margin-bottom:18px; }
.sec__sub{ color:var(--ink-soft); font-size:16px; margin:0; }
.sec--dark .sec__sub{ color:rgba(255,255,255,.6); }

/* ── O APARTMÁNOCH ───────────────────────────────────────── */
.about{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about__media{ position:relative; padding-bottom:76px; }
.about__img{ margin:0; overflow:hidden; border-radius:var(--r); }
/* obrázok je vyšší než rám, aby mal parallax kam ísť */
.about__img img{ width:100%; height:114%; object-fit:cover; will-change:transform; }
.about__img--a{ aspect-ratio:5/4; }
.about__img--b{
  position:absolute; right:-40px; bottom:0; width:54%; aspect-ratio:4/3;
  border:8px solid var(--bg); box-shadow:var(--shadow-s);
}
.sec--alt .about__img--b{ border-color:var(--bg-alt); }
.about__badge{
  position:absolute; left:-26px; top:38px; z-index:3;
  background:var(--forest); color:#fff; padding:18px 22px; border-radius:var(--r);
  display:flex; flex-direction:column; line-height:1.15; box-shadow:var(--shadow-s);
}
.about__badge b{ font-family:var(--serif); font-size:34px; font-weight:500; color:var(--brass-lt); font-variant-numeric:tabular-nums; }
.about__badge i{ font-style:normal; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.about__txt p{ color:var(--ink-soft); }

/* ── ŠTATISTIKY ──────────────────────────────────────────── */
.stats{ background:var(--forest); color:#fff; }
.stats__in{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-block:58px; text-align:center; }
.stats b{ display:block; font-family:var(--serif); font-size:clamp(34px,3.4vw,46px); font-weight:400; color:var(--brass-lt); line-height:1; font-variant-numeric:tabular-nums; }
.stats span{ font-size:11.5px; letter-spacing:.17em; text-transform:uppercase; color:rgba(255,255,255,.62); }

/* ── KARTY APARTMÁNOV ────────────────────────────────────── */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.card{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), opacity .85s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.card__img{ position:relative; overflow:hidden; }
.card__img img{ aspect-ratio:3/2; object-fit:cover; width:100%; transition:transform .9s var(--ease); }
.card:hover .card__img img{ transform:scale(1.06); }
.card__tag{
  position:absolute; top:14px; left:14px; background:var(--brass); color:#fff;
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; padding:6px 12px; border-radius:2px;
}
/* číslo apartmánu, ako na dverách */
.card__no{
  position:absolute; right:16px; bottom:6px; font-family:var(--serif); font-size:76px; font-weight:400;
  line-height:1; color:#fff; opacity:.34; text-shadow:0 4px 22px rgba(12,18,13,.5);
  transition:opacity .45s var(--ease), transform .45s var(--ease); pointer-events:none;
}
.card:hover .card__no{ opacity:.6; transform:translateY(-3px); }
.card__body{ padding:26px 24px 24px; display:flex; flex-direction:column; flex:1; }
.card h3{ font-size:24px; margin-bottom:6px; }
.card__beds{ font-size:13.5px; color:var(--ink-soft); margin-bottom:20px; }
.card__meta{ display:flex; border-block:1px solid var(--line); margin-bottom:20px; }
.card__meta li{ flex:1; padding:12px 4px; text-align:center; border-right:1px solid var(--line); }
.card__meta li:last-child{ border-right:0; }
.card__meta span{ display:block; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.card__meta b{ font-family:var(--serif); font-size:19px; font-weight:500; }

.chips{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:24px; }
.chips li{ font-size:11.5px; color:var(--ink-soft); border:1px solid var(--line); border-radius:2px; padding:5px 10px; }
.card .btn{ margin-top:auto; }

/* ── VYBAVENIE ───────────────────────────────────────────── */
.amen{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.amen li{ background:var(--bg); padding:30px 24px; display:flex; flex-direction:column; gap:4px; transition:background .35s; }
.amen li:hover{ background:var(--bg-alt); }
.amen i{
  color:var(--brass); width:44px; height:44px; border:1px solid rgba(156,107,47,.3); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:14px; transition:transform .4s var(--ease), background .35s;
}
.amen li:hover i{ transform:translateY(-3px); background:rgba(156,107,47,.08); }
.amen i svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.amen b{ font-weight:500; font-size:15px; }
.amen span{ font-size:13px; color:var(--ink-soft); }

/* ── PARALLAXOVÝ PÁS ─────────────────────────────────────── */
.band{ position:relative; overflow:hidden; color:#fff; padding-block:130px; text-align:center; }
.band__bg{ position:absolute; inset:0; }
.band__bg img{ width:100%; height:132%; object-fit:cover; will-change:transform; }
.band__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(rgba(20,28,21,.72), rgba(20,28,21,.8)); }
.band__in{ position:relative; z-index:2; }
.band__in .eyebrow{ color:var(--brass-lt); }
.band__q{
  font-family:var(--serif); font-size:clamp(26px,3.6vw,44px); font-weight:300; line-height:1.24;
  max-width:20ch; margin:0 auto 34px; text-wrap:balance; letter-spacing:-.012em;
}

/* ── GALÉRIA ─────────────────────────────────────────────── */
.filters{ display:flex; gap:10px; justify-content:center; margin-bottom:44px; flex-wrap:wrap; }
.filters button{
  border:1px solid rgba(255,255,255,.2); background:transparent; color:rgba(255,255,255,.65);
  padding:9px 22px; border-radius:100px; cursor:pointer;
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  transition:background .3s, color .3s, border-color .3s;
}
.filters button:hover{ color:#fff; border-color:rgba(255,255,255,.5); }
.filters button.is-on{ background:var(--brass); border-color:var(--brass); color:#fff; }

.gal{
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:230px; grid-auto-flow:dense; gap:12px;
  width:100%; max-width:1560px; margin-inline:auto; padding-inline:28px;
}
.gal__i{
  position:relative; border:0; padding:0; background:none; cursor:pointer;
  overflow:hidden; border-radius:var(--r);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
}
.gal__i--wide{ grid-column:span 2; }
.gal__i--tall{ grid-row:span 2; }
.gal__i img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gal__i:hover img{ transform:scale(1.07); }
.gal__i span{
  position:absolute; left:0; right:0; bottom:0; padding:26px 18px 14px; text-align:left;
  font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:#fff;
  background:linear-gradient(transparent, rgba(12,18,13,.8));
  opacity:0; transform:translateY(8px); transition:opacity .35s, transform .35s var(--ease);
}
.gal__i:hover span, .gal__i:focus-visible span{ opacity:1; transform:none; }
.gal__i.is-hidden{ display:none; }

/* ── HODNOTENIA ──────────────────────────────────────────── */
.revs .wrap{ max-width:1120px; }
.revs__in{ display:grid; grid-template-columns:auto 1fr; gap:70px; align-items:center; }
.revs__score{ text-align:center; }
.revs__score b{
  display:block; font-family:var(--serif); font-size:96px; font-weight:400; line-height:1;
  color:var(--forest); font-variant-numeric:tabular-nums;
}
.revs__score em{ display:block; font-style:normal; font-size:14px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); margin-top:8px; }
.revs__score i{ display:block; font-style:normal; font-size:12.5px; color:var(--ink-soft); margin-top:6px; max-width:210px; margin-inline:auto; }

.bars{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px 48px; }
.bar{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px 12px; }
.bar span{ font-size:13.5px; color:var(--ink-soft); }
.bar b{ font-family:var(--serif); font-size:18px; font-weight:500; font-variant-numeric:tabular-nums; }
.bar i{ grid-column:1/-1; height:3px; background:var(--line); border-radius:2px; position:relative; display:block; }
.bar i::after{
  content:""; position:absolute; inset:0 auto 0 0; width:0; background:var(--brass); border-radius:2px;
  transition:width 1.3s var(--ease);
}
.bars.is-in .bar i::after{ width:var(--w,0); }

/* ── LOKALITA ────────────────────────────────────────────── */
.loc{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; margin-bottom:96px; }
.loc__txt p{ color:var(--ink-soft); }
.loc__map iframe{ width:100%; aspect-ratio:4/3; border:1px solid var(--line); border-radius:var(--r); filter:grayscale(.4) contrast(.95); background:var(--bg); }
.loc__map .link-arrow{ margin-top:16px; }
.addr{ font-size:14px; color:var(--ink-soft); margin-top:22px; }

.dist{ margin:26px 0 0; }
.dist li{ display:flex; align-items:baseline; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); }
.dist b{ font-family:var(--serif); font-size:22px; font-weight:500; color:var(--brass); min-width:84px; font-variant-numeric:tabular-nums; }
.dist span{ font-size:14.5px; color:var(--ink-soft); }

.loc__h3{ font-size:clamp(24px,2.6vw,32px); margin-bottom:10px; }
.trips{ border-top:1px solid var(--line); }
.trips li{
  display:grid; grid-template-columns:130px 1fr; gap:32px; align-items:baseline;
  padding:26px 0; border-bottom:1px solid var(--line);
  transition:padding-left .4s var(--ease);
}
.trips li:hover{ padding-left:12px; }
.trips li > b{
  font-family:var(--serif); font-size:clamp(26px,3vw,36px); font-weight:400; color:var(--brass);
  font-variant-numeric:tabular-nums; line-height:1;
}
.trips h4{ font-size:22px; margin-bottom:6px; }
.trips p{ font-size:14.5px; color:var(--ink-soft); margin:0; max-width:62ch; }

/* ── FAQ ─────────────────────────────────────────────────── */
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  cursor:pointer; list-style:none; padding:24px 44px 24px 0; position:relative;
  font-family:var(--serif); font-size:21px; transition:color .25s;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:8px; top:50%; width:13px; height:13px; margin-top:-6px;
  background:
    linear-gradient(var(--brass),var(--brass)) center/13px 1.4px no-repeat,
    linear-gradient(var(--brass),var(--brass)) center/1.4px 13px no-repeat;
  transition:transform .35s var(--ease);
}
.faq details[open] summary::after{ transform:rotate(135deg); }
.faq summary:hover{ color:var(--brass); }
.faq details > div{ overflow:hidden; transition:height .42s var(--ease); }
.faq p{ color:var(--ink-soft); font-size:15.5px; padding-bottom:24px; margin:0; max-width:72ch; }

/* ── VÝZVA ───────────────────────────────────────────────── */
.cta{ position:relative; color:#fff; text-align:center; padding-block:110px; overflow:hidden; }
.cta__bg{ position:absolute; inset:0; }
.cta__bg img{ width:100%; height:126%; object-fit:cover; will-change:transform; }
.cta__bg::after{ content:""; position:absolute; inset:0; background:rgba(24,33,27,.86); }
.cta__in{ position:relative; z-index:2; }
.cta h2{ font-size:clamp(31px,4.2vw,46px); margin-bottom:14px; }
.cta p{ color:rgba(255,255,255,.72); max-width:520px; margin-inline:auto; margin-bottom:34px; }
.cta__btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta .btn:not(.btn--ghost){ background:var(--brass); border-color:var(--brass); }
.cta .btn:not(.btn--ghost)::before{ background:#fff; }
.cta .btn:not(.btn--ghost):hover{ color:var(--forest); border-color:#fff; }

/* ── PÄTIČKA ─────────────────────────────────────────────── */
.ft{ background:var(--forest); color:rgba(255,255,255,.7); padding-top:80px; font-size:14.5px; }
.ft__in{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:44px; padding-bottom:58px; }
.ft__col--brand .logo__mark{ color:var(--brass-lt); margin-bottom:16px; }
.ft h3{ color:#fff; font-size:24px; margin-bottom:12px; }
.ft h4{ color:#fff; font-size:13px; font-family:var(--sans); font-weight:500; letter-spacing:.16em; text-transform:uppercase; margin-bottom:18px; }
.ft__col a{ display:block; padding:5px 0; transition:color .25s, transform .25s var(--ease); }
.ft__col a:hover{ color:var(--brass-lt); transform:translateX(3px); }
.ft__col p{ margin:0 0 6px; }
.ft .addr{ color:rgba(255,255,255,.55); margin-top:14px; }
.ft__bot{
  border-top:1px solid rgba(255,255,255,.12); padding-block:24px;
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;
  font-size:12.5px; color:rgba(255,255,255,.5);
}

/* ── SPÄŤ HORE ───────────────────────────────────────────── */
.totop{
  position:fixed; right:24px; bottom:24px; z-index:90; width:46px; height:46px;
  border:1px solid var(--line); background:rgba(245,246,242,.92); backdrop-filter:blur(8px);
  border-radius:50%; cursor:pointer; display:grid; place-items:center;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s, visibility .35s, transform .35s var(--ease), background .3s;
}
.totop.is-on{ opacity:1; visibility:visible; transform:none; }
.totop:hover{ background:var(--forest); border-color:var(--forest); color:#fff; }
.totop svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* ── LIGHTBOX ────────────────────────────────────────────── */
.lb{
  position:fixed; inset:0; z-index:200; background:rgba(12,17,13,.96);
  display:flex; align-items:center; justify-content:center; padding:70px 24px;
  animation:lbIn .3s var(--ease);
}
.lb[hidden]{ display:none; }
@keyframes lbIn{ from{ opacity:0 } to{ opacity:1 } }
.lb__fig{ margin:0; max-width:min(1180px,92vw); }
.lb img{ max-width:100%; max-height:78vh; object-fit:contain; border-radius:var(--r); }
.lb figcaption{
  display:flex; justify-content:space-between; gap:20px; margin-top:16px;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.65);
}
.lb figcaption i{ font-style:normal; font-variant-numeric:tabular-nums; }
.lb button{ background:none; border:0; color:#fff; cursor:pointer; }
.lb__x{ position:absolute; top:22px; right:28px; font-size:38px; line-height:1; opacity:.7; }
.lb__nav{ position:absolute; top:50%; transform:translateY(-50%); font-size:54px; line-height:1; opacity:.6; padding:12px 20px; }
.lb__nav--p{ left:10px; }
.lb__nav--n{ right:10px; }
.lb button:hover{ opacity:1; }

/* ── DETAIL APARTMÁNU ────────────────────────────────────── */
.drawer{ position:fixed; inset:0; z-index:210; background:rgba(12,17,13,.6); backdrop-filter:blur(3px); display:flex; justify-content:flex-end; }
.drawer[hidden]{ display:none; }
.drawer__panel{
  width:min(540px,100%); height:100%; background:var(--bg); overflow-y:auto; position:relative;
  animation:slideIn .5s var(--ease);
}
@keyframes slideIn{ from{ transform:translateX(100%) } to{ transform:none } }
.drawer__x{ position:absolute; top:16px; right:18px; z-index:2; width:40px; height:40px; border:0; border-radius:50%; background:rgba(245,246,242,.92); font-size:26px; line-height:1; cursor:pointer; }
.drawer__imgs{ display:grid; grid-template-columns:1.55fr 1fr; gap:2px; }
.drawer__imgs img{ width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; }
.drawer__body{ padding:34px 34px 44px; }
.drawer__body h3{ font-size:30px; margin-bottom:14px; }
.drawer__body > p{ color:var(--ink-soft); }
.drawer__facts{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin:24px 0; border-radius:var(--r); overflow:hidden; }
.drawer__facts li{ background:var(--bg); padding:14px 16px; }
.drawer__facts span{ display:block; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.drawer__facts b{ font-family:var(--serif); font-size:19px; font-weight:500; }
.drawer .btn{ width:100%; }

/* ── SÚHLAS S COOKIES ────────────────────────────────────── */
.cookie{
  position:fixed; left:0; right:0; bottom:0; z-index:150;
  background:var(--forest); color:rgba(255,255,255,.82);
  border-top:1px solid rgba(255,255,255,.12);
  animation:ckUp .55s var(--ease);
}
.cookie[hidden]{ display:none; }
@keyframes ckUp{ from{ transform:translateY(100%); } to{ transform:none; } }
.cookie__in{
  width:100%; max-width:var(--wrap); margin-inline:auto; padding:22px 28px;
  display:grid; grid-template-columns:1fr auto; gap:26px; align-items:center;
}
.cookie__txt h2{ color:#fff; font-size:19px; margin-bottom:6px; }
.cookie__txt p{ font-size:13px; line-height:1.65; margin:0; max-width:78ch; }
.cookie__btns{ display:flex; flex-direction:column; align-items:stretch; gap:10px; }
.cookie__btns .btn{ background:var(--brass); border-color:var(--brass); white-space:nowrap; }
.cookie__btns .btn::before{ background:#fff; }
.cookie__btns .btn:hover{ color:var(--forest); border-color:#fff; }
.cookie__more{ font-size:11.5px; text-align:center; color:var(--brass-lt); border-bottom:1px solid transparent; }
.cookie__more:hover{ border-color:currentColor; }

.ft__legal{ display:flex; gap:20px; flex-wrap:wrap; align-items:center; }
.ft__legal a, .ft__legal button{
  border:0; background:none; padding:0; cursor:pointer;
  font-size:12.5px; color:rgba(255,255,255,.5); transition:color .25s;
}
.ft__legal a:hover, .ft__legal button:hover{ color:var(--brass-lt); }

/* ── PODSTRÁNKY (právne texty, 404) ──────────────────────── */
.page{ padding-block:80px 96px; }
.page__head{ max-width:760px; margin-bottom:44px; }
.page h1{ font-size:clamp(32px,4.4vw,50px); margin-bottom:14px; }
.page__meta{ font-size:12.5px; color:var(--ink-soft); }
.page__body{ max-width:760px; }
.page__body h2{ font-size:24px; margin:40px 0 12px; }
.page__body h3{ font-size:19px; margin:26px 0 8px; }
.page__body p, .page__body li{ color:var(--ink-soft); font-size:15.5px; }
.page__body ul{ list-style:disc; padding-left:22px; margin:0 0 1.05em; }
.page__body li{ margin-bottom:6px; }
.page__body a{ color:var(--brass); border-bottom:1px solid currentColor; }
.page__body table{ width:100%; border-collapse:collapse; margin:0 0 1.4em; font-size:14.5px; }
.page__body th, .page__body td{ text-align:left; padding:11px 12px; border-bottom:1px solid var(--line); }
.page__body th{ font-weight:500; color:var(--ink); }
.page__body td{ color:var(--ink-soft); }
.page__note{
  border-left:2px solid var(--brass); background:var(--bg-alt);
  padding:18px 22px; margin:32px 0; font-size:14px; color:var(--ink-soft);
}
.e404{ min-height:62vh; display:grid; place-items:center; text-align:center; }
.e404 b{ display:block; font-family:var(--serif); font-size:clamp(84px,14vw,170px); font-weight:300; color:var(--brass); line-height:1; }

/* ── RESPONZÍVNE ─────────────────────────────────────────── */
@media (max-width:1180px){
  .amen{ grid-template-columns:repeat(3,1fr); }
  .gal{ grid-template-columns:repeat(3,1fr); }
  .revs__in{ grid-template-columns:1fr; gap:44px; }
  .revs__score i{ max-width:none; }
}

@media (max-width:980px){
  .cards{ grid-template-columns:repeat(2,1fr); }
  .brk__grid{ grid-template-columns:repeat(2,1fr); }
  .band{ padding-block:96px; }
  .about{ grid-template-columns:1fr; gap:56px; }
  .about__media{ max-width:520px; }
  .about__img--b{ right:-20px; }
  .loc{ grid-template-columns:1fr; gap:48px; margin-bottom:72px; }
}

@media (max-width:900px){
  html{ scroll-padding-top:74px; }
  .nav{
    position:fixed; inset:0; top:0; padding:104px 30px 40px; margin:0;
    background:var(--bg); flex-direction:column; gap:0; height:100dvh;
    transform:translateX(100%); transition:transform .45s var(--ease); z-index:95; overflow-y:auto;
  }
  .nav.is-open{ transform:none; }
  .nav a{ font-size:23px; font-family:var(--serif); padding:17px 0; border-bottom:1px solid var(--line); opacity:0; transform:translateY(12px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
  .nav.is-open a{ opacity:1; transform:none; }
  .burger{ display:block; z-index:99; position:relative; }
  .hdr__side .btn--sm{ display:none; }

  .hero__in{ padding-block:104px 190px; }
  .hero__score{ right:auto; left:28px; bottom:170px; }
  .hero__cue{ display:none; }

  .qbar{ margin-top:-44px; }
  .qbar__form{ grid-template-columns:1fr 1fr; }
  .qfld{ border-right:0; border-bottom:1px solid var(--line); padding:10px 14px; }
  .qfld:nth-child(odd){ border-right:1px solid var(--line); }
  .qbar__form .btn{ grid-column:1/-1; margin:14px 0 0; width:100%; }

  .bk{ padding-block:80px; }
  .bk__grid{ grid-template-columns:1fr; gap:34px; }
  .bk__side{ position:static; }
  .cal{ grid-template-columns:1fr; gap:26px; }
  .cal__m:last-child{ display:none; }

  .sec{ padding-block:80px; }
  .stats__in{ grid-template-columns:repeat(2,1fr); gap:36px; }
  .ft__in{ grid-template-columns:1fr 1fr; gap:34px; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .brk__grid{ grid-template-columns:1fr; }
  .cookie__in{ grid-template-columns:1fr; gap:16px; padding:18px 20px; }
  .cookie__btns{ flex-direction:row; align-items:center; justify-content:space-between; }
  .drift{ padding-block:38px 42px; }
  .topbar{ font-size:11.5px; }
  .cards{ grid-template-columns:1fr; }
  .bk__apts{ grid-template-columns:1fr; gap:10px; }
  .bk__apt{ flex-direction:row; align-items:center; }
  .bk__apt img{ width:112px; flex:0 0 112px; aspect-ratio:1; }
  .bk__apt-txt{ padding:12px 14px; }
  .trips li{ grid-template-columns:1fr; gap:8px; padding:22px 0; }
  .trips li > b{ font-size:24px; }
  .drawer__imgs{ grid-template-columns:1fr; }
  .drawer__imgs img:last-child{ display:none; }
  .band{ padding-block:76px; }
  .amen{ grid-template-columns:repeat(2,1fr); }
  .amen li{ padding:24px 18px; }
  .bars{ grid-template-columns:1fr; }
  .gal{ grid-template-columns:repeat(2,1fr); grid-auto-rows:160px; gap:8px; padding-inline:16px; }
  .gal__i--wide{ grid-column:span 2; }
  .gal__i--tall{ grid-row:span 1; }
  .about__media{ padding-bottom:0; }
  .about__img--b{ position:static; width:100%; margin-top:14px; border:0; }
  .about__badge{ left:14px; top:14px; padding:14px 18px; }
  .about__badge b{ font-size:27px; }
  .revs__score b{ font-size:74px; }
  .ft__in{ grid-template-columns:1fr; }
  .hero__score{ padding:12px 18px; }
  .hero__score b{ font-size:29px; }
  .lb__nav{ font-size:40px; padding:10px 12px; }
  .drawer__body{ padding:26px 22px 36px; }
  .drawer__facts{ grid-template-columns:1fr; }
}

/* ── OBMEDZENÝ POHYB ─────────────────────────────────────── */
/* Obmedzený pohyb — vypíname posuny, zoom a nekonečné slučky.
   Jemné prelínanie necháme: nie je to pohyb a stránka bez neho
   pôsobí mŕtvo. Presne to odporúča aj WCAG. */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }

  [data-anim]{ transform:none !important; }
  [data-anim="mask"]{ clip-path:none !important; }
  [data-parallax], [data-zoom]{ transform:none !important; }
  .ln > span, .w > i, .drift__row{ transform:none !important; }

  .hero__slide.is-on img{ animation:none; }
  .marquee__row{ animation:none; }
  .hero__cue{ display:none; }
  .hero__dots button.is-on::after{ animation:none; transform:scaleX(1); }
  .loader__mark path{ animation:none; stroke-dashoffset:0; }
  .loader__txt{ animation:none; opacity:1; }

  /* posuny pri prejdení myšou nahradíme zmenou farby */
  .btn::before{ display:none; }
  .btn:hover{ background:var(--brass); border-color:var(--brass); }
  .btn--ghost:hover{ background:#fff; color:var(--forest); }
  .btn--out:hover{ background:var(--forest); color:#fff; }
  .card:hover, .brk__card:hover, .bk__apt:hover{ transform:none; }
  .card:hover .card__img img, .gal__i:hover img, .trip:hover .trip__img img{ transform:none; }
  .link-arrow:hover{ gap:8px; }
  .trips li:hover{ padding-left:0; }
}
