/* Písma Google Fonts sa načítavajú až po súhlase návštevníka —
   vkladá ich assets/js/cookies.js. Bez súhlasu beží systémová sada. */

/* ============================================================
   SKALNÉ OBYDLIA BRHLOVCE
   Filmový, editoriálny zostup. Tmavý andezit, tufový piesok,
   vápenná modrá z fasád v uličke Šurda.
   ============================================================ */

:root{
  --night:#13181A;
  --night-2:#1A2023;
  --night-3:#222A2D;
  --tuf:#D9C7A6;
  --sand:#EDE3D0;
  --chalk:#F6F1E7;
  --blue:#7FA7BE;
  --blue-deep:#4B7590;
  --moss:#79866B;
  --ink:#121617;

  --line:rgba(246,241,231,.16);
  --line-2:rgba(246,241,231,.08);

  --progress:0;
  --mx:50vw; --my:50vh; --mnx:0; --mny:0;

  --shell:min(100% - clamp(2rem,7vw,5rem), 1320px);
  --ease:cubic-bezier(.16,1,.3,1);

  --f-disp:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
  --f-serif:'Newsreader','Iowan Old Style',Georgia,serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;background:var(--night);}
body{
  margin:0;
  background:var(--night);
  color:var(--chalk);
  font-family:var(--f-disp);
  font-variation-settings:'wdth' 100;
  font-size:clamp(.95rem,.92rem + .15vw,1.02rem);
  line-height:1.62;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0;font-weight:400;line-height:.94;letter-spacing:-.035em;text-wrap:balance;}
p,figure,ul,dl{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;width:100%;}
:focus-visible{outline:2px solid var(--tuf);outline-offset:4px;}
.shell{width:var(--shell);margin-inline:auto;}
section[id]{scroll-margin-top:2rem;}

/* ── fixné vrstvy ─────────────────────────────────────────── */
.rail{position:fixed;z-index:120;top:0;right:0;width:3px;height:100dvh;background:rgba(246,241,231,.07);pointer-events:none;}
.rail i{display:block;width:100%;height:100%;background:linear-gradient(180deg,var(--tuf),var(--blue));transform:scaleY(var(--progress));transform-origin:top;}
.mouselight{
  position:fixed;z-index:90;top:var(--my);left:var(--mx);
  width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,236,203,.16),rgba(255,236,203,.04) 36%,transparent 70%);
  mix-blend-mode:soft-light;pointer-events:none;translate:-50% -50%;
  transition:top .12s linear,left .12s linear;
}
.grain{
  position:fixed;z-index:95;inset:0;opacity:.11;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");
}

/* ── odhalenie ────────────────────────────────────────────── */
[data-reveal]{opacity:0;filter:blur(10px);transform:translate3d(0,70px,0) scale(.975);
  transition:opacity 1.05s var(--ease),filter 1.05s var(--ease),transform 1.05s var(--ease);}
[data-reveal].on{opacity:1;filter:none;transform:none;}

/* ── hlavička ─────────────────────────────────────────────── */
.head{
  position:relative;z-index:12;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  min-height:86px;border-bottom:1px solid var(--line);
}
.mark{display:flex;align-items:center;gap:.7rem;}
.mark img{
  width:auto;height:40px;display:block;
  filter:brightness(0) invert(1);
  opacity:.88;transition:opacity .3s var(--ease);
}
.mark:hover img{opacity:1;}
footer .mark img{height:46px;}
@media (max-width:520px){.mark img{height:34px;}}
.mark b{display:block;font-size:.92rem;font-weight:600;letter-spacing:-.01em;line-height:1.1;}
.mark small{display:block;font-size:.58rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(246,241,231,.45);}
.head nav{display:flex;gap:2.1rem;justify-self:center;}
.head nav a{position:relative;padding:.6rem 0;font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;}
.head nav a::after{content:'';position:absolute;left:0;right:0;bottom:.25rem;height:1px;background:var(--tuf);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease);}
.head nav a:hover::after{transform:scaleX(1);transform-origin:left;}
@media (max-width:900px){.head{grid-template-columns:1fr auto;}.head nav{display:none;}}

.book{
  display:inline-flex;align-items:center;gap:1rem;justify-self:end;
  padding:.55rem .55rem .55rem 1.25rem;border:1px solid transparent;border-radius:999px;
  background:var(--sand);color:var(--ink);
  font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  transition:background-color .35s var(--ease),color .35s var(--ease);
  translate:var(--magx,0) var(--magy,0);
}
.book i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--sand);font-style:normal;transition:transform .35s var(--ease),background-color .35s var(--ease);}
.book:hover{background:var(--chalk);color:var(--ink);}
.book:hover i{transform:rotate(45deg) scale(1.08);background:var(--blue-deep);color:var(--chalk);}

/* ── HERO ─────────────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;overflow:hidden;isolation:isolate;
  background:radial-gradient(circle at 18% 26%,rgba(121,134,107,.2),transparent 34%),var(--night);}
.hero-rock{
  position:absolute;z-index:1;top:9%;right:-3%;width:min(56vw,860px);height:80%;overflow:hidden;
  clip-path:polygon(16% 0,100% 0,100% 90%,66% 100%,8% 89%,0 22%);
  animation:rockin 1.5s .1s both var(--ease);
}
.hero-rock::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(19,24,26,.82),rgba(19,24,26,.1) 52%),
             linear-gradient(0deg,rgba(19,24,26,.6),transparent 46%);
}
.hero-rock img{height:128%;object-fit:cover;object-position:54% center;filter:saturate(.72) contrast(1.06) brightness(.92);
  transform:translate3d(calc(var(--mnx) * -30px),calc(var(--dy,0px) + var(--mny) * -22px),0) scale(1.12);will-change:transform;}
.rings{position:absolute;z-index:0;right:-14vw;bottom:-22vw;width:70vw;height:70vw;opacity:.55;
  transform:translate3d(calc(var(--mnx) * -20px),calc(var(--mny) * -16px),0);animation:turn 46s linear infinite;}
.rings i{position:absolute;inset:0;border:1px solid rgba(217,199,166,.2);border-radius:44% 56% 58% 42%/52% 38% 62% 48%;}
.rings i:nth-child(2){inset:9%;}.rings i:nth-child(3){inset:18%;}.rings i:nth-child(4){inset:27%;}

.stage{position:relative;z-index:5;min-height:calc(100svh - 86px);padding:clamp(3rem,8vh,6rem) 0 3rem;display:flex;flex-direction:column;}
.kicker{margin-bottom:1.6rem;color:var(--tuf);font-size:.63rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;
  animation:up 1s .34s both var(--ease);}
.hero h1{font-size:clamp(3.6rem,12.5vw,10.5rem);line-height:.85;font-weight:500;letter-spacing:-.045em;}
.row{display:block;overflow:hidden;padding:.16em 0 .08em;margin-bottom:-.16em;}
.row b{display:block;font-weight:inherit;animation:rise 1.2s both var(--ease);}
.row:nth-child(1) b{animation-delay:.26s;}
.row:nth-child(2) b{animation-delay:.38s;}
.row:nth-child(3) b{animation-delay:.5s;}
.row--alt{margin-left:8vw;color:var(--tuf);font-family:var(--f-serif);font-style:italic;font-weight:300;letter-spacing:-.02em;}
.row--in{margin-left:2vw;}

.hero-note{
  position:absolute;right:0;bottom:5.5rem;z-index:6;
  display:grid;grid-template-columns:auto 1fr;gap:1.3rem;width:min(360px,32vw);
  padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  animation:up 1s .74s both var(--ease);
}
.hero-note span{font-size:.63rem;font-weight:700;letter-spacing:.2em;color:var(--tuf);}
.hero-note p{font-size:.86rem;color:rgba(246,241,231,.72);line-height:1.55;}
@media (max-width:900px){.hero-note{width:min(430px,84vw);right:auto;left:0;bottom:6.5rem;}}

.cue{margin-top:auto;display:inline-flex;align-items:center;gap:.7rem;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,241,231,.6);animation:up 1s .9s both var(--ease);}
.cue i{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font-style:normal;animation:bob 2.6s ease-in-out infinite;}

.ghost{
  position:absolute;z-index:0;right:-.03em;bottom:-.14em;pointer-events:none;
  font-size:clamp(6rem,19vw,19rem);font-weight:800;line-height:.8;letter-spacing:-.08em;
  color:rgba(246,241,231,.032);
  transform:translate3d(calc(var(--mnx) * 26px),0,0);
}

/* ── pás ──────────────────────────────────────────────────── */
.ribbon{overflow:hidden;padding:1.1rem 0;border-block:1px solid var(--line-2);background:var(--night-2);}
.ribbon div{display:flex;gap:2.2rem;width:max-content;animation:slide 26s linear infinite;}
.ribbon span{font-size:.72rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:rgba(246,241,231,.62);white-space:nowrap;}
.ribbon i{color:var(--tuf);font-style:normal;}

/* ── PRÍBEH ───────────────────────────────────────────────── */
.origin{position:relative;padding:clamp(5rem,11vw,10rem) 0 clamp(4rem,8vw,7rem);}
.origin-grid{display:grid;grid-template-columns:.34fr .66fr;gap:clamp(2rem,5vw,4.5rem);}
@media (max-width:900px){.origin-grid{grid-template-columns:1fr;}}
.aside span{display:block;font-size:.63rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tuf);}
.aside strong{display:block;margin-top:1.6rem;font-size:clamp(4rem,8vw,7.5rem);font-weight:300;line-height:.85;letter-spacing:-.05em;font-variant-numeric:tabular-nums;}
.aside small{display:block;margin-top:.6rem;font-size:.78rem;color:rgba(246,241,231,.55);max-width:22ch;}
.super{font-family:var(--f-serif);font-weight:300;font-size:clamp(1.9rem,4.6vw,3.6rem);line-height:1.08;letter-spacing:-.02em;}
.super em{color:var(--tuf);}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.3rem,3vw,2.6rem);margin-top:2.6rem;}
@media (max-width:760px){.cols{grid-template-columns:1fr;}}
.cols p{color:rgba(246,241,231,.68);font-size:.94rem;}
.cols strong{color:var(--chalk);font-weight:600;}

.portal{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(1.5rem,4vw,3rem);align-items:end;margin-top:clamp(3rem,7vw,5.5rem);}
@media (max-width:900px){.portal{grid-template-columns:1fr;}}
.window{position:relative;overflow:hidden;height:clamp(320px,44vw,540px);background:var(--night-3);
  clip-path:polygon(0 6%,58% 0,100% 5%,100% 100%,0 100%);}
.window img{height:122%;object-fit:cover;filter:saturate(.8) contrast(1.04) brightness(.95);
  transform:translate3d(0,var(--dy,0px),0) scale(1.08);will-change:transform;}
.portal figcaption{margin-top:.9rem;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,231,.5);}
.seal{
  border:1px solid var(--line);border-radius:2px;padding:1.6rem 1.5rem;
  background:linear-gradient(160deg,rgba(217,199,166,.09),rgba(246,241,231,.02));
  translate:var(--magx,0) var(--magy,0);transition:translate .25s var(--ease);
}
.seal span{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tuf);}
.seal strong{display:block;margin:.9rem 0 .3rem;font-family:var(--f-serif);font-weight:300;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1;}
.seal b{display:block;font-size:.8rem;font-weight:600;color:var(--blue);}
.seal p{margin-top:1rem;font-size:.82rem;color:rgba(246,241,231,.6);}

/* ── OBJAVTE ──────────────────────────────────────────────── */
.layers{position:relative;padding:clamp(4rem,9vw,8rem) 0;background:var(--night-2);}
.layers-head{display:grid;grid-template-columns:auto 1fr .8fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start;}
@media (max-width:900px){.layers-head{grid-template-columns:1fr;}}
.vlabel{writing-mode:vertical-rl;rotate:180deg;font-size:.63rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--tuf);}
@media (max-width:900px){.vlabel{writing-mode:horizontal-tb;rotate:none;}}
.layers-head h2{font-size:clamp(2.4rem,6.5vw,5rem);font-weight:500;}
.layers-head h2 em{font-family:var(--f-serif);font-style:italic;font-weight:300;color:var(--tuf);}
.layers-head > p{color:rgba(246,241,231,.62);font-size:.94rem;align-self:end;}

.list{margin-top:clamp(2.5rem,6vw,4.5rem);}
.list article{
  display:grid;grid-template-columns:5rem 1fr 2.5rem;gap:clamp(1rem,3vw,2.5rem);align-items:start;
  padding:1.9rem 0;border-top:1px solid var(--line-2);transition:background-color .4s var(--ease);
}
.list article:last-child{border-bottom:1px solid var(--line-2);}
.list article:hover{background:rgba(246,241,231,.025);}
.list .n{font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--tuf);padding-top:.35rem;}
.list h3{font-size:clamp(1.3rem,2.6vw,2rem);font-weight:500;}
.list p{margin-top:.7rem;color:rgba(246,241,231,.62);font-size:.94rem;max-width:58ch;}
.list .arw{justify-self:end;color:rgba(246,241,231,.35);transition:transform .4s var(--ease),color .4s var(--ease);}
.list article:hover .arw{transform:translate(4px,4px);color:var(--tuf);}
@media (max-width:640px){.list article{grid-template-columns:auto 1fr;}.list .arw{display:none;}}

.pano{position:relative;margin-top:clamp(3rem,7vw,5.5rem);overflow:hidden;height:clamp(300px,42vw,540px);}
.pano img{height:126%;object-fit:cover;filter:saturate(.78) contrast(1.05) brightness(.9);
  transform:translate3d(0,var(--dy,0px),0) scale(1.06);will-change:transform;}
.pano-cap{position:absolute;left:0;bottom:0;padding:1.4rem clamp(1.2rem,3vw,2.4rem);
  background:linear-gradient(0deg,rgba(19,24,26,.9),transparent);width:100%;}
.pano-cap span{font-size:.63rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tuf);}
.pano-cap p{margin-top:.4rem;font-size:.9rem;color:rgba(246,241,231,.75);}

/* ── filmový pás fotiek ───────────────────────────────────── */
.strip{overflow:hidden;padding:clamp(2.5rem,5vw,4rem) 0;}
.strip-track{display:flex;gap:.6rem;width:max-content;animation:slide 44s linear infinite;}
.strip figure{width:clamp(140px,17vw,220px);aspect-ratio:1;overflow:hidden;background:var(--night-3);flex:none;}
.strip img{height:100%;object-fit:cover;filter:saturate(.75) brightness(.86);transition:filter .5s var(--ease),transform .6s var(--ease);}
.strip figure:hover img{filter:none;transform:scale(1.05);}

/* ── NÁVŠTEVA ─────────────────────────────────────────────── */
.visit{position:relative;padding:clamp(4rem,9vw,8rem) 0 clamp(3rem,6vw,5rem);}
.visit-head{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;}
@media (max-width:760px){.visit-head{grid-template-columns:1fr;}}
.visit-head span{font-size:.63rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tuf);}
.visit-head h2{margin-top:1rem;font-size:clamp(2.4rem,6.5vw,5rem);font-weight:500;}
.visit-head h2 em{font-family:var(--f-serif);font-style:italic;font-weight:300;color:var(--tuf);}
.ghostbtn{
  display:inline-flex;align-items:center;gap:.8rem;padding:.7rem 1.4rem;
  border:1px solid var(--line);border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  translate:var(--magx,0) var(--magy,0);transition:background-color .35s var(--ease),color .35s var(--ease),translate .25s var(--ease);
}
.ghostbtn:hover{background:var(--chalk);color:var(--ink);}

.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:clamp(2.5rem,6vw,4rem);
  background:var(--line-2);border-block:1px solid var(--line-2);}
@media (max-width:880px){.facts{grid-template-columns:1fr;}}
.facts article{background:var(--night);padding:2rem 1.6rem 2.2rem;}
.facts > article > span{font-size:.63rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--tuf);}
.facts h3{margin-top:1.1rem;font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:500;line-height:1.08;}
.frow{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line-2);font-size:.88rem;}
.frow:first-of-type{margin-top:1.2rem;}
.frow p{color:rgba(246,241,231,.6);}
.frow strong{font-weight:600;font-variant-numeric:tabular-nums;}
.facts small{display:block;margin-top:1.1rem;font-size:.78rem;color:rgba(246,241,231,.5);}
.facts .addr{margin-top:1rem;color:rgba(246,241,231,.62);font-size:.9rem;}

/* ── rezervácia ───────────────────────────────────────────── */
.reserve{
  display:grid;grid-template-columns:1fr auto;gap:clamp(1.5rem,4vw,3rem);align-items:center;
  margin-top:clamp(3rem,7vw,5.5rem);padding:clamp(2rem,5vw,3.6rem);
  border:1px solid var(--line);
  background:linear-gradient(150deg,rgba(127,167,190,.14),rgba(217,199,166,.05) 60%,transparent);
}
@media (max-width:820px){.reserve{grid-template-columns:1fr;}}
.reserve span{font-size:.63rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tuf);}
.reserve h2{margin-top:.9rem;font-size:clamp(2rem,5vw,3.4rem);font-weight:500;}
.reserve p{margin-top:1rem;color:rgba(246,241,231,.65);font-size:.92rem;max-width:44ch;}
.bigbtn{
  display:inline-flex;align-items:center;gap:1.4rem;justify-self:end;
  padding:1.1rem 1.1rem 1.1rem 2rem;border-radius:999px;
  background:var(--chalk);color:var(--ink);
  font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  translate:var(--magx,0) var(--magy,0);
  transition:background-color .35s var(--ease),translate .25s var(--ease);
}
.bigbtn i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--chalk);font-style:normal;font-size:1rem;transition:transform .4s var(--ease);}
.bigbtn:hover{background:var(--tuf);}
.bigbtn:hover i{transform:rotate(45deg);}
@media (max-width:820px){.bigbtn{justify-self:start;}}

/* ── logá podpory v pätičke ───────────────────────────────── */
.support{
  display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;
  margin-top:2.4rem;padding-top:1.9rem;border-top:1px solid var(--line-2);
}
.support-logos{
  display:flex;align-items:center;gap:1.3rem;
  background:#fff;border-radius:3px;padding:.75rem 1.05rem;flex:none;
}
.support-logos img{height:42px;width:auto;display:block;}
.support > p{font-size:.78rem;line-height:1.55;color:rgba(246,241,231,.5);max-width:40ch;}
@media (max-width:640px){
  .support-logos{gap:.9rem;padding:.6rem .8rem;}
  .support-logos img{height:34px;}
}

/* ── päta ─────────────────────────────────────────────────── */
footer{border-top:1px solid var(--line-2);padding:clamp(2.5rem,5vw,4rem) 0 2rem;}
.foot{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:start;}
.foot > p{font-family:var(--f-serif);font-weight:300;font-size:1.15rem;line-height:1.35;color:rgba(246,241,231,.7);}
.foot nav{display:flex;gap:1.4rem;font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;}
.foot nav a{color:rgba(246,241,231,.6);}
.foot nav a:hover{color:var(--chalk);}
.foot-rights{
  margin-top:1.8rem;font-size:.74rem;line-height:1.6;
  color:rgba(246,241,231,.4);max-width:70ch;
}
.foot-end a{color:rgba(246,241,231,.55);text-decoration:underline;text-underline-offset:3px;}
.foot-end a:hover{color:var(--chalk);}
.foot-end{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line-2);
  font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(246,241,231,.35);}

/* ── animácie ─────────────────────────────────────────────── */
@keyframes rise{from{transform:translateY(105%);}to{transform:none;}}
@keyframes up{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
@keyframes rockin{from{opacity:0;transform:scale(1.08) translateY(30px);}to{opacity:1;transform:none;}}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes turn{to{rotate:360deg;}}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(4px);}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation:none !important;transition-duration:.01ms !important;}
  [data-reveal]{opacity:1;filter:none;transform:none;}
  .mouselight{display:none;}
}

/* ============================================================
   COOKIE LIŠTA A NASTAVENIA
   ============================================================ */
.cc{
  position:fixed;z-index:200;left:50%;bottom:clamp(.9rem,2.5vw,1.6rem);
  width:min(100% - 1.8rem,1120px);translate:-50% 0;
  background:rgba(26,32,35,.94);backdrop-filter:blur(18px);
  border:1px solid var(--line);border-radius:6px;
  box-shadow:0 24px 70px rgba(0,0,0,.55);
  opacity:0;transform:translateY(22px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.cc.on{opacity:1;transform:none;}
.cc-in{display:flex;flex-wrap:wrap;gap:1.5rem 2rem;align-items:center;justify-content:space-between;padding:clamp(1.1rem,2.2vw,1.5rem) clamp(1.2rem,2.6vw,1.9rem);}
.cc-txt{flex:1 1 380px;min-width:0;}
.cc-txt strong{display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tuf);margin-bottom:.5rem;}
.cc-txt p{font-size:.86rem;line-height:1.6;color:rgba(246,241,231,.72);max-width:68ch;}
.cc-txt a{color:var(--chalk);text-decoration:underline;text-underline-offset:3px;}
.cc-act{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;flex:none;}
.cc-btn{
  font:inherit;font-size:.76rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  padding:.85rem 1.35rem;border-radius:3px;cursor:pointer;
  background:transparent;color:var(--chalk);border:1px solid var(--line);
  transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);
}
.cc-btn:hover{background:rgba(246,241,231,.08);border-color:rgba(246,241,231,.34);}
.cc-btn--main{background:var(--tuf);color:var(--ink);border-color:var(--tuf);}
.cc-btn--main:hover{background:var(--sand);border-color:var(--sand);color:var(--ink);}
.cc-btn--link{border-color:transparent;padding-inline:.4rem;color:rgba(246,241,231,.62);text-decoration:underline;text-underline-offset:4px;}
.cc-btn--link:hover{background:transparent;color:var(--chalk);}
@media (max-width:620px){
  .cc-in{padding:1.1rem;}
  .cc-act{width:100%;}
  .cc-act .cc-btn{flex:1 1 auto;text-align:center;}
  .cc-btn--link{flex-basis:100%;order:3;}
}

html.cc-lock{overflow:hidden;}
.cc-wrap{position:fixed;z-index:240;inset:0;display:grid;place-items:center;padding:1.2rem;}
.cc-veil{position:absolute;inset:0;background:rgba(10,13,14,.72);backdrop-filter:blur(4px);opacity:0;transition:opacity .35s var(--ease);}
.cc-wrap.on .cc-veil{opacity:1;}
.cc-panel{
  position:relative;width:min(100%,660px);max-height:86dvh;overflow-y:auto;
  background:var(--night-2);border:1px solid var(--line);border-radius:6px;
  padding:clamp(1.6rem,4vw,2.6rem);
  box-shadow:0 30px 90px rgba(0,0,0,.6);
  opacity:0;transform:translateY(16px) scale(.985);
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}
.cc-wrap.on .cc-panel{opacity:1;transform:none;}
.cc-x{position:absolute;top:.7rem;right:.9rem;background:none;border:0;color:rgba(246,241,231,.5);font-size:1.7rem;line-height:1;cursor:pointer;padding:.2rem .4rem;}
.cc-x:hover{color:var(--chalk);}
.cc-eyebrow{display:block;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tuf);}
.cc-panel h2{margin:.7rem 0 .9rem;font-size:clamp(1.6rem,3.4vw,2.1rem);}
.cc-lead{font-size:.9rem;line-height:1.65;color:rgba(246,241,231,.68);max-width:56ch;}
.cc-cats{margin:1.8rem 0;display:grid;gap:.9rem;}
.cc-cat{
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;
  padding:1.1rem 1.2rem;border:1px solid var(--line-2);border-radius:4px;
  background:rgba(246,241,231,.02);cursor:pointer;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.cc-cat:hover{border-color:var(--line);background:rgba(246,241,231,.04);}
.cc-cat.is-locked{cursor:default;opacity:.85;}
.cc-cat input{position:absolute;opacity:0;width:0;height:0;}
.cc-box{
  margin-top:.18rem;width:44px;height:24px;border-radius:12px;flex:none;
  background:rgba(246,241,231,.12);border:1px solid var(--line);position:relative;
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
.cc-box::after{
  content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
  background:rgba(246,241,231,.65);transition:transform .3s var(--ease),background .3s var(--ease);
}
.cc-cat input:checked + .cc-box{background:var(--blue-deep);border-color:var(--blue);}
.cc-cat input:checked + .cc-box::after{transform:translateX(20px);background:var(--chalk);}
.cc-cat input:focus-visible + .cc-box{outline:2px solid var(--tuf);outline-offset:3px;}
.cc-cat-t strong{display:block;font-size:.95rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.3rem;}
.cc-cat-t strong i{font-style:normal;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tuf);margin-left:.5rem;vertical-align:.12em;}
.cc-cat-t span{display:block;font-size:.82rem;line-height:1.6;color:rgba(246,241,231,.6);}
.cc-panel-act{display:flex;flex-wrap:wrap;gap:.7rem;}
.cc-panel-act .cc-btn{flex:1 1 auto;text-align:center;}
.cc-fine{margin-top:1.3rem;font-size:.76rem;color:rgba(246,241,231,.45);}
.cc-fine a{color:rgba(246,241,231,.7);text-decoration:underline;text-underline-offset:3px;}

/* ============================================================
   PODSTRÁNKA — PRÁVNY TEXT
   ============================================================ */
.page{padding-bottom:clamp(3rem,7vw,6rem);}
.page-head{padding:clamp(1.3rem,3vw,2.1rem) 0;border-bottom:1px solid var(--line-2);}
.page-head .head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.backlink{
  font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(246,241,231,.62);display:inline-flex;align-items:center;gap:.6rem;
}
.backlink:hover{color:var(--chalk);}
.page-title{padding:clamp(3rem,8vw,6rem) 0 clamp(2rem,4vw,3rem);}
.page-title .kicker{margin-bottom:1.4rem;}
.page-title h1{font-size:clamp(2.5rem,7vw,5rem);letter-spacing:-.045em;max-width:16ch;}
.page-title h1 em{font-family:var(--f-serif);font-style:italic;font-weight:300;color:var(--tuf);}
.page-meta{
  display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin-top:2rem;padding-top:1.4rem;
  border-top:1px solid var(--line-2);
  font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;color:rgba(246,241,231,.42);
}

.legal{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start;}
@media (max-width:920px){.legal{grid-template-columns:1fr;}}
.toc{position:sticky;top:2.2rem;border-left:1px solid var(--line-2);padding-left:1.3rem;}
@media (max-width:920px){.toc{position:static;border-left:0;border-top:1px solid var(--line-2);padding:1.4rem 0 0;}}
.toc span{display:block;font-size:.66rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--tuf);margin-bottom:1rem;}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:t;display:grid;gap:.55rem;}
.toc li{counter-increment:t;}
.toc a{display:block;font-size:.82rem;line-height:1.45;color:rgba(246,241,231,.55);padding-left:1.9rem;position:relative;transition:color .3s var(--ease);}
.toc a::before{content:counter(t,decimal-leading-zero);position:absolute;left:0;top:0;font-size:.66rem;letter-spacing:.08em;color:rgba(246,241,231,.3);}
.toc a:hover{color:var(--chalk);}

.prose h2{
  font-size:clamp(1.35rem,2.6vw,1.9rem);letter-spacing:-.03em;line-height:1.1;
  margin:clamp(2.6rem,5vw,3.6rem) 0 1.1rem;padding-top:1.5rem;border-top:1px solid var(--line-2);
  scroll-margin-top:1.5rem;
}
.prose > h2:first-child{margin-top:0;padding-top:0;border-top:0;}
.prose h3{font-size:1.02rem;font-weight:600;letter-spacing:-.005em;line-height:1.35;margin:1.9rem 0 .6rem;color:var(--tuf);}
.prose p{font-size:.93rem;line-height:1.78;color:rgba(246,241,231,.76);margin-bottom:1rem;max-width:74ch;}
.prose p strong{color:var(--chalk);font-weight:600;}
.prose a{color:var(--chalk);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(246,241,231,.35);}
.prose a:hover{text-decoration-color:var(--tuf);}
.prose ul{margin:0 0 1.2rem;padding:0;list-style:none;display:grid;gap:.55rem;max-width:74ch;}
.prose li{position:relative;padding-left:1.5rem;font-size:.93rem;line-height:1.72;color:rgba(246,241,231,.76);}
.prose li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:1px;background:var(--tuf);}
.prose .lead{font-family:var(--f-serif);font-weight:300;font-size:clamp(1.1rem,2.2vw,1.42rem);line-height:1.5;color:rgba(246,241,231,.88);max-width:60ch;margin-bottom:2rem;}
.callout{
  margin:1.6rem 0;padding:1.3rem 1.5rem;border:1px solid var(--line-2);border-left:2px solid var(--tuf);
  border-radius:0 4px 4px 0;background:rgba(246,241,231,.03);
}
.callout p{margin:0;font-size:.88rem;color:rgba(246,241,231,.72);}
.callout p + p{margin-top:.7rem;}

.ctable{width:100%;border-collapse:collapse;margin:1.4rem 0 1.6rem;font-size:.84rem;}
.ctable th,.ctable td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line-2);vertical-align:top;line-height:1.55;}
.ctable th{font-size:.66rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--tuf);border-bottom-color:var(--line);}
.ctable td{color:rgba(246,241,231,.72);}
.ctable td:first-child{color:var(--chalk);white-space:nowrap;}
@media (max-width:700px){
  .ctable,.ctable tbody,.ctable tr,.ctable td{display:block;width:100%;}
  .ctable thead{display:none;}
  .ctable tr{border-bottom:1px solid var(--line);padding:.6rem 0;}
  .ctable td{border:0;padding:.22rem 0;}
  .ctable td:first-child{font-weight:600;white-space:normal;}
  .ctable td::before{content:attr(data-th) " — ";color:rgba(246,241,231,.4);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;}
  .ctable td:first-child::before{content:none;}
}

.prose .cc-btn{margin-top:.4rem;}

/* ============================================================
   GALÉRIA — otvorenie fotografie na celú obrazovku
   ============================================================ */
.strip figure{cursor:zoom-in;position:relative;}
.strip figure::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%,rgba(19,24,26,.45),transparent 62%);
  opacity:0;transition:opacity .45s var(--ease);pointer-events:none;
}
.strip figure:hover::after,.strip figure:focus-visible::after{opacity:1;}
.strip figure:focus-visible{outline:2px solid var(--tuf);outline-offset:3px;}
.strip:hover .strip-track,.strip:focus-within .strip-track,.strip.paused .strip-track{animation-play-state:paused;}

.lb{
  position:fixed;z-index:260;inset:0;display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  background:rgba(10,13,14,.94);backdrop-filter:blur(10px);
  opacity:0;transition:opacity .35s var(--ease);
}
.lb.on{opacity:1;}
html.lb-lock{overflow:hidden;}

.lb-bar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:clamp(1rem,2.5vw,1.6rem) clamp(1.1rem,3vw,2.2rem);
}
.lb-count{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tuf);}
.lb-close{
  background:none;border:1px solid var(--line);border-radius:999px;color:var(--chalk);
  width:44px;height:44px;font-size:1.4rem;line-height:1;cursor:pointer;
  display:grid;place-items:center;
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
.lb-close:hover{background:rgba(246,241,231,.1);border-color:rgba(246,241,231,.35);}

.lb-stage{
  position:relative;display:flex;align-items:center;justify-content:center;
  padding:0 clamp(.6rem,4vw,4.5rem);min-height:0;overflow:hidden;
}
.lb-stage img{
  max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;flex:0 1 auto;
  border-radius:3px;box-shadow:0 30px 90px rgba(0,0,0,.6);
  opacity:0;transform:scale(.985);
  transition:opacity .4s var(--ease),transform .5s var(--ease);
}
.lb-stage img.shown{opacity:1;transform:none;}

.lb-nav{
  position:absolute;top:50%;translate:0 -50%;
  width:clamp(44px,5vw,56px);height:clamp(44px,5vw,56px);border-radius:50%;
  background:rgba(19,24,26,.72);border:1px solid var(--line);color:var(--chalk);
  font-size:1.15rem;cursor:pointer;display:grid;place-items:center;
  transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);
}
.lb-nav:hover{background:var(--tuf);color:var(--ink);border-color:var(--tuf);transform:translateY(0) scale(1.06);}
.lb-prev{left:clamp(.5rem,2vw,1.8rem);}
.lb-next{right:clamp(.5rem,2vw,1.8rem);}

.lb-foot{padding:clamp(1rem,2.5vw,1.8rem) clamp(1.1rem,3vw,2.2rem);display:grid;gap:1rem;justify-items:center;}
.lb-cap{font-family:var(--f-serif);font-weight:300;font-size:clamp(.95rem,2vw,1.2rem);line-height:1.45;color:rgba(246,241,231,.82);text-align:center;max-width:56ch;}
.lb-dots{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;}
.lb-dot{
  width:8px;height:8px;border-radius:50%;padding:0;cursor:pointer;
  background:rgba(246,241,231,.24);border:0;transition:background .3s var(--ease),transform .3s var(--ease);
}
.lb-dot:hover{background:rgba(246,241,231,.5);}
.lb-dot[aria-current="true"]{background:var(--tuf);transform:scale(1.35);}
@media (max-width:600px){
  .lb-nav{background:rgba(19,24,26,.85);}
  .lb-cap{font-size:.92rem;}
  .lb-dots{display:none;}
}
