/* Primavino — kinematický web. Brand tokens per design system (kroky 1–4). */
:root{
  --sediment:#1B0C13; --lees:#2A1420; --garnet:#7A2138; --garnet-hi:#C56A83; --oak:#A67C52; --straw:#E4D6B0; --chalk:#EFEBE1;
  --bg:var(--sediment); --fg:#F1E9DD; --fg-2:#B9AAB2; --fg-dim:rgba(241,233,221,.42); --line:#3E2A34; --accent:var(--garnet-hi); --accent-ink:#5E1729;
  --glass-bg:rgba(255,255,255,.05); --glass-bd:rgba(255,255,255,.10); --glass-blur:16px;
  --f-display:"Bodoni Moda","Bodoni 72","Didot",Georgia,serif; --f-body:"Work Sans",system-ui,-apple-system,sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1); --ease-soft:cubic-bezier(.22,1,.36,1);
  --max:1180px; --gut:24px; --pad:5vw;
  color-scheme:dark;
}
html[data-mode="chalk"]{ --bg:var(--chalk); --fg:#1B0C13; --fg-2:#5E4A55; --fg-dim:rgba(27,12,19,.5); --line:#D7D0C2; --accent:var(--garnet); --glass-bg:rgba(27,12,19,.04); --glass-bd:rgba(27,12,19,.12); color-scheme:light; }

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:300 17px/1.6 var(--f-body);font-optical-sizing:none;font-variation-settings:"opsz" 24;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color 1.2s var(--ease),color 1.2s var(--ease)}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3{font-family:var(--f-display);font-weight:400;margin:0;line-height:1.02;letter-spacing:-.005em;text-wrap:balance}
p{margin:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:max(16px,var(--pad))}
.mono{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:400}
.eyebrow{composes:mono;font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-2)}
.lead{font-size:clamp(16px,1.2vw,19px);line-height:1.6;max-width:36rem;color:var(--fg);font-weight:300}
.lead.dim{color:var(--fg-2)}
.h-section{font-size:clamp(30px,4vw,48px)}
.h-display{font-size:clamp(40px,7vw,88px)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:52px;padding:0 28px;background:var(--garnet);color:#F1E9DD;font:500 14px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;border-radius:0;transition:background-color .2s var(--ease-soft),transform .2s var(--ease-soft);white-space:nowrap}
.btn:hover{background:var(--accent-ink)} .btn:active{transform:translateY(1px)}
.btn-text{display:inline-flex;align-items:center;min-height:32px;gap:10px;font:400 14px/1 var(--f-body);letter-spacing:.06em;color:var(--fg);position:relative;padding-bottom:6px}
.btn-text::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--fg-dim);transition:background-color .2s}
.btn-text:hover::after{background:var(--accent)}
:where(a,button,input,select,textarea,summary):focus-visible{outline:1px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--garnet);color:#fff;padding:8px 12px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Header ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;height:72px;display:flex;align-items:center;transition:opacity .9s var(--ease),transform .9s var(--ease),background-color .6s}
.nav .wrap{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
/* Hlavička po odrolovaní (`solid`) bola krycia len na 78 % — cez ňu presvitali
   vrchy fliaš z katalógu a nad lištou kategórií to vyzeralo ako preliezajúci
   obsah. Rozmazanie to nezakrylo. Solid má byť solid. (Merané 21. 9. 2026.) */
.nav.solid{background:var(--bg);border-bottom:1px solid var(--glass-bd)}
.wordmark{display:inline-flex;align-items:center;min-height:40px}
.wordmark .logo{height:16px;width:auto}
.wordmark .logo-ink{display:none}
html[data-mode="chalk"] .wordmark .logo-ivory{display:none}
html[data-mode="chalk"] .wordmark .logo-ink{display:block}
footer .wordmark .logo{height:18px}
.wordmark em{font-style:italic;color:var(--accent);transition:color .2s var(--ease-soft)}
.wordmark:hover em{color:var(--oak)}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{font:400 13px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);position:relative;padding:12px 0;display:inline-block;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:2px;height:1px;width:0;background:var(--accent);transition:width .4s var(--ease)}
.nav-links a:hover{color:var(--fg)} .nav-links a:hover::after{width:100%}
.nav .btn{height:40px;padding:0 20px;font-size:12px;border-radius:4px}
.menu-btn{display:none;min-width:40px;min-height:40px;place-items:center;color:var(--fg)}
@media (max-width:767px){.nav-links{display:none}.menu-btn{display:grid}
.nav.menu-open .nav-links{display:flex;z-index:5;flex-direction:column;align-items:flex-start;gap:8px;position:absolute;top:72px;left:0;right:0;padding:16px max(16px,var(--pad)) 24px;background:var(--bg);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav.menu-open .nav-links a{min-height:40px;display:flex;align-items:center;font-size:15px}}

/* ---------- Loading dot ---------- */
.dot-loader{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:var(--sediment);transition:opacity .5s var(--ease);pointer-events:none}
.dot-loader i{width:10px;height:10px;border-radius:50%;background:var(--garnet-hi);animation:pulse .7s var(--ease) 1}
.dot-loader.gone{opacity:0}
@keyframes pulse{0%{transform:scale(.4);opacity:0}50%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:1}}
body.enter .nav{opacity:0;transform:translateY(-8px)}
body.enter .film-copy > *{opacity:0;transform:translateY(14px)}

/* ---------- Film (chapters I–IV) ---------- */
.film{position:relative;height:440vh;background:var(--sediment)}
.film-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--sediment)}
.film-layer{position:absolute;inset:0;opacity:0;will-change:opacity;transition:none}
.film-layer video,.film-layer img{width:100%;height:100%;object-fit:cover;filter:saturate(.95)}
.film-layer::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(27,12,19,.85) 0%,rgba(27,12,19,.2) 45%,rgba(27,12,19,.35) 100%),radial-gradient(ellipse at 50% 60%,rgba(27,12,19,0) 40%,rgba(27,12,19,.55) 100%);pointer-events:none}
.film-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 20% 100%,rgba(122,33,56,.18),transparent 60%),radial-gradient(ellipse 50% 40% at 85% 10%,rgba(166,124,82,.14),transparent 60%);mix-blend-mode:screen}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.film-copy{position:absolute;inset:0;display:flex;align-items:flex-end;padding-bottom:clamp(64px,12vh,120px);opacity:0;will-change:opacity,transform;pointer-events:none}
.film-copy.active{pointer-events:auto}
.film-copy .wrap{width:100%}
.film-copy > .wrap > *{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.chapter-no{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--straw);display:flex;align-items:center;gap:14px;margin-bottom:24px}
.chapter-no::before{content:"";width:40px;height:1px;background:var(--straw);opacity:.7}
.film-copy h1,.film-copy h2{color:#F1E9DD;max-width:12ch}
.film-copy .lead{color:rgba(241,233,221,.85);margin-top:24px}
.film-copy .actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:40px}
.film-copy .btn-text{color:#F1E9DD}
.film-copy .wm{max-width:none;margin:0 0 8px;line-height:0}
.wm img{width:min(100%,720px);height:auto;filter:drop-shadow(0 20px 40px rgba(27,12,19,.45))}
.wm em{font-style:italic;color:var(--garnet-hi);transition:color .2s var(--ease-soft)}
.wm:hover em{color:var(--oak)}
.film-index{position:absolute;right:max(16px,var(--pad));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:18px;z-index:5}
.film-index button{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:rgba(241,233,221,.45);display:flex;align-items:center;gap:10px;min-height:32px;transition:color .3s}
.film-index button::after{content:"";width:18px;height:1px;background:currentColor;transition:width .4s var(--ease)}
.film-index button[aria-current="true"]{color:#F1E9DD} .film-index button[aria-current="true"]::after{width:40px}
.scroll-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(241,233,221,.55);font-family:var(--f-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;transition:opacity .6s}
.scroll-hint i{display:block;width:1px;height:40px;background:linear-gradient(to bottom,var(--straw),transparent)}
@media (max-width:767px){.film{height:420vh}.film-index{top:auto;bottom:22px;right:16px;left:16px;transform:none;flex-direction:row;justify-content:flex-end;gap:16px}.film-index button::after{width:12px}.film-index button[aria-current="true"]::after{width:24px}.film-copy .wm img{width:min(100%,78vw)}.film-copy{padding-bottom:72px}.film-index{right:12px;gap:14px}.film-copy h2{max-width:14ch}.film-copy{padding-bottom:88px}.scroll-hint{display:none}}

/* static film (reduced motion / no JS) */
.film.static{height:auto;background:transparent}
.film.static .film-stage{position:relative;height:auto;overflow:visible;background:transparent}
.film.static .film-layer,.film.static .film-copy{position:relative;opacity:1;inset:auto}
.film.static .film-layer{height:70vh}
.film.static .film-copy{padding:40px 0 72px;pointer-events:auto}
.film.static .film-index,.film.static .scroll-hint,.film.static .film-light{display:none}
.film.static .film-copy > .wrap > *{opacity:1!important;transform:none!important}

/* ---------- Sections ---------- */
section{position:relative}
.sec{padding-block:clamp(64px,10vw,144px);border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:clamp(40px,6vw,64px)}
.sec-head .eyebrow{margin-bottom:16px}
@media (min-width:900px){.sec-head{grid-template-columns:7fr 5fr;align-items:end}.sec-head .lead{justify-self:end}}
.reveal{opacity:1;transform:none;transition:opacity .4s var(--ease),transform .4s var(--ease)}
.js .reveal:not(.in){opacity:.6;transform:translateY(12px)}
.clip h2,.clip h1{clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease)}
.clip.in h2,.clip.in h1{clip-path:inset(0 0 -10% 0)}

/* Výber list */
/* Lišta kategórií je lepiaca, takže pod ňou preteká celý katalóg. Kým bola
   na 92 % priehľadná, presvitali cez ňu vrchy fliaš aj názvy vín a rozmazanie
   to nezachránilo — len zašpinilo. Je preto plne krycia a rozmazanie už
   nepotrebuje. (Merané 21. 9. 2026.) */
.filters{display:flex;gap:4px 20px;flex-wrap:wrap;margin-bottom:24px;position:sticky;top:72px;z-index:40;padding:12px 0 8px;background:var(--bg)}
.filters button{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);min-height:32px;padding:4px 0;position:relative}
.filters button::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--accent);transition:width .3s var(--ease)}
.filters button[aria-pressed="true"]{color:var(--fg)} .filters button[aria-pressed="true"]::after{width:100%}
.filters .f-ico,.filters .f-short{display:none}
/* mobil: kategórie prilepené pod hlavičkou, ikony pohárov */
@media (max-width:640px){
  .filters{position:sticky;top:72px;z-index:40;margin:0 calc(-1*var(--pad)) 20px;padding:8px var(--pad) 6px;gap:2px;flex-wrap:nowrap;justify-content:space-between;background:var(--bg);border-bottom:1px solid var(--glass-bd)}
  /* `flex-end`: „Všetky" ikonu nemá (zrušená 21. 9. 2026), bez toho by mal
     jeho popis inú výšku než popisy pri pohároch a riadok by sa rozskákal. */
  .filters button{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;min-height:0;padding:6px 2px;font-size:9px;letter-spacing:.08em;border-radius:8px;color:var(--fg-2);transition:background-color .25s,color .25s}
  .filters button::after{display:none}
  .filters .f-lab{display:none}.filters .f-short{display:block;white-space:nowrap}
  .filters .f-ico{display:grid;place-items:center;margin:0;width:16px;height:22px;opacity:.6;transition:opacity .25s,transform .3s var(--ease-soft)}
  .filters button[aria-pressed="true"]{color:var(--fg);background:var(--glass-bg)}
  .filters button[aria-pressed="true"] .f-ico{opacity:1;transform:translateY(-1px)}
}
.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.row{border-bottom:1px solid var(--line);transition:border-color .2s;--i:0}
.js .list.rev .row{opacity:0;transform:translateY(12px);animation:rowin .4s var(--ease) forwards;animation-delay:calc(var(--i)*50ms)}
@keyframes rowin{to{opacity:1;transform:none}}
.row.hide{display:none}
.row > button{width:100%;display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:baseline;padding:20px 0;text-align:left;min-height:64px}
.row .n{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;color:var(--fg-dim)}
.row .name{font-family:var(--f-display);font-size:clamp(20px,2.2vw,28px);line-height:1.15}
.row .meta{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);margin-top:6px}
.row .price{font-family:var(--f-display);font-size:clamp(20px,2.2vw,28px);font-variant-numeric:tabular-nums;white-space:nowrap}
.row .why{grid-column:2/4;max-height:0;overflow:hidden;transition:max-height .3s var(--ease),opacity .3s;opacity:0;color:var(--fg-2);font-size:15px;max-width:60ch}
.row:hover,.row:focus-within{border-color:var(--accent)}
.row:hover .why,.row:focus-within .why,.row.open .why{max-height:6em;opacity:1}
@media (max-width:640px){.row > button{grid-template-columns:36px 1fr;gap:10px}.row .price{grid-column:2;justify-self:start;font-size:20px}.row .why{grid-column:2}}

/* Panel (wine detail) */
.panel-bg{position:fixed;inset:0;background:rgba(27,12,19,.7);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .4s var(--ease);z-index:60}
.panel-bg.open{opacity:1;pointer-events:auto}
.panel{position:fixed;top:0;right:0;height:100%;width:min(100%,560px);background:var(--lees);color:#F1E9DD;z-index:70;transform:translateX(100%);transition:transform .4s var(--ease);display:flex;flex-direction:column;overflow:hidden;border-left:1px solid #3E2A34}
.panel.open{transform:none}
.panel-head{display:flex;justify-content:space-between;align-items:center;height:72px;padding:0 28px;border-bottom:1px solid #3E2A34;flex:none}
.panel-head .mono{color:#B9AAB2}
.panel-close{min-width:40px;min-height:40px;display:grid;place-items:center;color:#B9AAB2;transition:color .2s}
.panel-close:hover{color:#F1E9DD}
.panel-body{overflow-y:auto;padding:28px;flex:1}
.panel-img{display:grid;place-items:center;height:320px;background:radial-gradient(ellipse at 50% 90%,rgba(166,124,82,.18),transparent 60%);margin-bottom:24px}
.panel-img img{height:280px;width:auto;filter:drop-shadow(0 30px 60px rgba(27,12,19,.5));opacity:0;transform:scale(1.03);transition:opacity .4s var(--ease),transform .6s var(--ease)}
.panel.open .panel-img img{opacity:1;transform:none}
.panel h3{font-size:clamp(28px,3.4vw,40px);margin-bottom:8px}
.panel .maker{color:#B9AAB2;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.panel .price{font-family:var(--f-display);font-size:32px;margin:20px 0;font-variant-numeric:tabular-nums}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:24px 0;padding:20px 0;border-top:1px solid #3E2A34;border-bottom:1px solid #3E2A34}
.facts div{font-size:14px}
.facts b{display:block;font-family:var(--f-mono);font-weight:400;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#B9AAB2;margin-bottom:4px}
.panel .why{font-family:var(--f-display);font-style:italic;font-size:21px;line-height:1.35;margin-bottom:16px}
.panel .desc{color:#D8CBC1;font-size:15px;margin-bottom:12px}
.panel .open-note{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:#B9AAB2;margin-bottom:24px}
.panel-foot{padding:20px 28px;border-top:1px solid #3E2A34;flex:none;display:flex;gap:20px;align-items:center;justify-content:space-between}
.panel .p-stagger > *{opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.panel.open .p-stagger > *{opacity:1;transform:none}
.panel.open .p-stagger > :nth-child(2){transition-delay:60ms}.panel.open .p-stagger > :nth-child(3){transition-delay:120ms}.panel.open .p-stagger > :nth-child(4){transition-delay:180ms}.panel.open .p-stagger > :nth-child(5){transition-delay:240ms}.panel.open .p-stagger > :nth-child(6){transition-delay:300ms}

/* Vinári */
/* `overflow:clip`, nie `hidden`: hidden robí zo sekcie rolovací kontajner
   a tým ruší `position:sticky` na mape vinárov — mapa odscrollovala preč,
   hoci pravidlo sticky mala (merané 21. 9. 2026: po posune o 700 px bola
   240 px nad oknom). `clip` oreže rovnako, ale sticky nechá žiť. */
.vinari{background:var(--sediment);color:#F1E9DD;overflow:clip}
.vinari .eyebrow{color:#B9AAB2}
.vinari-bg{position:absolute;inset:-10% 0;z-index:0}
.vinari-bg img,.vinari-bg video{width:100%;height:100%;object-fit:cover;opacity:.35;will-change:transform}
.vinari-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,var(--sediment),rgba(27,12,19,.4) 40%,var(--sediment))}
.vinari .wrap{position:relative;z-index:1}
.makers{list-style:none;padding:0;margin:0;border-top:1px solid #3E2A34}
.makers li{display:grid;grid-template-columns:1fr;gap:6px 24px;padding:22px 0;border-bottom:1px solid #3E2A34}
/* `minmax(0,…)`: stopa `fr` má predvolene minimálnu šírku podľa obsahu, takže
   dlhé nedeliteľné slovo (Lorenzonetto, Valdobbiadene) rozšírilo svoj stĺpec
   a ostatné stlačilo — a keďže každý `li` je vlastná mriežka, stĺpce sa medzi
   riadkami rozišli. Merané 21. 9. 2026: oblasť začínala raz na 155, raz na 238 px,
   popis raz na 307, raz na 365. S `minmax(0,…)` držia pomery vo všetkých riadkoch. */
/* Zoznam vinárov stojí vedľa lepiacej mapy, takže má na seba len ~570 px.
   Stopy `fr` mali predvolene minimálnu šírku podľa obsahu: dlhé nedeliteľné
   meno (Lorenzonetto, 214 px) roztiahlo svoj stĺpec a ostatné stlačilo — a keďže
   každý `li` je vlastná mriežka, stĺpce sa medzi riadkami rozišli (oblasť
   začínala raz na 155, raz na 238 px). Preto pevné šírky pre meno a oblasť
   a `minmax(0,…)`, aby sa obsah nemohol do stopy pretlačiť. Merané 21. 9. 2026. */
@media (min-width:768px){.makers li{grid-template-columns:minmax(0,190px) minmax(0,122px) minmax(0,1fr);align-items:baseline}}
.makers .mk{font-family:var(--f-display);font-size:clamp(20px,2vw,26px);overflow-wrap:anywhere}  /* `anywhere` je poistka: keby raz prišlo ešte dlhšie meno, zalomí sa, namiesto toho aby preliezlo do stĺpca s oblasťou. */
.makers .rg{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#B9AAB2}
.makers .tx{color:#D8CBC1;font-size:15px}
.makers a.mk{position:relative;display:inline-block}
.makers a.mk::after{content:"→";margin-left:10px;font-size:.7em;opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s var(--ease)}
.makers li:hover .mk{color:var(--straw)}
.makers li:hover .mk::after{opacity:1;transform:none}

/* Príbeh */
.pribeh .grid{display:grid;gap:40px;grid-template-columns:1fr;align-items:center}
@media (min-width:900px){.pribeh .grid{grid-template-columns:5fr 6fr;gap:80px}}
.pribeh figure{margin:0;aspect-ratio:3/4;overflow:hidden;max-width:100%}
.pribeh figure img{width:100%;height:100%;object-fit:cover;will-change:transform}
.quote{font-family:var(--f-display);font-style:italic;font-size:clamp(22px,2.6vw,34px);line-height:1.3}
.pribeh .body{margin-top:32px;color:var(--fg-2);max-width:56ch}
.pribeh .body p+p{margin-top:16px}

/* Ako to funguje – glass cards */
.cards{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:768px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{padding:28px;background:var(--glass-bg);border:1px solid var(--glass-bd);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:12px;transition:border-color .3s}
.card:hover{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}
.card .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.card h3{font-size:24px;margin-bottom:12px}
.card p{font-size:15px;color:var(--fg-2)}

/* Set */

/* Form */
.form{display:grid;gap:28px;grid-template-columns:1fr;max-width:720px}
@media (min-width:640px){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}}
.field{position:relative}
.field label{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--fg);font:300 17px/1.5 var(--f-body);padding:10px 0;border-radius:0;outline:none}
.field textarea{resize:vertical;min-height:80px}
.field::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--accent);transition:width .4s var(--ease)}
.field:focus-within::after{width:100%}
.form .actions{grid-column:1/-1;display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.form .note{font-size:13px;color:var(--fg-2)}
.btn.sent{background:var(--oak)}

/* Footer */
footer{border-top:1px solid var(--line);padding-block:64px 32px;font-size:14px;color:var(--fg-2)}
footer .grid{display:grid;gap:32px;grid-template-columns:1fr 1fr}
@media (min-width:900px){footer .grid{grid-template-columns:4fr 2fr 3fr 3fr}}
footer .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg);margin-bottom:14px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
footer a{display:inline-block;padding:4px 0}
footer a:hover{color:var(--accent)}
footer .legal{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}

/* Toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);opacity:0;background:var(--chalk);color:var(--sediment);padding:12px 18px;font-size:13px;letter-spacing:.04em;z-index:80;transition:all .4s var(--ease);pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:0s!important;animation:none!important}
  .js .reveal:not(.in){opacity:1;transform:none}
  .clip h2,.clip h1{clip-path:none}
}

/* ---------- Výber: showcase (hover preview) ---------- */
.vyber-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:1000px){.vyber-grid{grid-template-columns:7fr 4fr;gap:64px;align-items:start}}
.showcase{display:none;position:sticky;top:96px}
@media (min-width:1000px){.showcase{display:block}}
.sc-stage{position:relative;height:min(56vh,520px);display:grid;place-items:end center;overflow:visible}
.sc-img{position:absolute;bottom:6%;height:88%;width:auto;opacity:0;transform:translateY(24px) rotate(-1.5deg);transform-origin:50% 100%;filter:drop-shadow(0 30px 60px rgba(27,12,19,.5));transition:opacity .6s var(--ease),transform .9s var(--ease);will-change:opacity,transform}
.sc-img.in{opacity:1;transform:none}
.sc-img.out{opacity:0;transform:translateY(-16px) rotate(1deg);transition-duration:.4s,.5s}
.sc-shadow{position:absolute;bottom:4.5%;left:50%;width:46%;height:3%;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(27,12,19,.55),rgba(27,12,19,0) 70%);transition:opacity .6s}
html[data-mode="dark"] .sc-shadow{background:radial-gradient(ellipse at center,rgba(0,0,0,.8),rgba(0,0,0,0) 70%)}
.sc-light{position:absolute;inset:auto 0 0 0;height:70%;background:radial-gradient(ellipse 60% 55% at 50% 100%,rgba(166,124,82,.16),transparent 70%);pointer-events:none}
.sc-info{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.sc-no{color:var(--fg-dim);margin-bottom:8px}
.sc-name{font-family:var(--f-display);font-size:clamp(22px,2vw,28px);line-height:1.15;margin-bottom:16px}
.sc-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
.sc-facts div{font-size:14px}
.sc-facts div:first-child{grid-column:1/-1}
.sc-facts dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);margin-bottom:4px}
.sc-facts dd{margin:0}
.sc-hint{margin-top:20px;color:var(--fg-dim);font-size:10px}
.sc-info.swap > *{animation:scin .5s var(--ease) both}
.sc-info.swap > :nth-child(2){animation-delay:60ms}.sc-info.swap > :nth-child(3){animation-delay:120ms}
@keyframes scin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tag{display:inline-block;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);padding:3px 8px;margin-left:10px;vertical-align:middle;border-radius:2px}
.row .thumb{display:none}
@media (max-width:999px){
  .row > button{grid-template-columns:96px 1fr auto;gap:16px;align-items:center;padding:14px 0}
  .row .n{display:none}
  .row .thumb{display:grid;place-items:center;width:96px;height:96px;background:color-mix(in srgb,var(--fg) 7%,transparent);clip-path:polygon(0 0,100% 0,72% 100%,0 100%);object-fit:contain;object-position:42% center;padding:6px 18px 6px 6px;box-sizing:border-box;filter:drop-shadow(0 8px 12px rgba(27,12,19,.25));transition:background-color .3s}
  .row:hover .thumb,.row:focus-within .thumb{background:color-mix(in srgb,var(--accent) 12%,transparent)}
  .row .why{grid-column:2/4}
}
@media (max-width:640px){.row > button{grid-template-columns:96px 1fr;row-gap:6px}.row .price{grid-column:2;justify-self:start;margin-top:0}.row .why{grid-column:2}}

/* ---------- Panel: archivácia, jedlo ---------- */
.panel .k{display:block;font-family:var(--f-mono);font-weight:400;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#B9AAB2}
.age{margin:8px 0 20px;padding:20px 0;border-top:1px solid #3E2A34}
.age-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.age-label{font-family:var(--f-display);font-style:italic;font-size:18px;color:var(--straw)}
.age-bar{position:relative;height:6px;background:#3E2A34;overflow:visible}
.age-bar span{position:absolute;top:0;bottom:0;left:0;width:0;background:linear-gradient(90deg,var(--garnet),var(--garnet-hi));transition:left 1s var(--ease) .2s,width 1s var(--ease) .2s}
.age-bar i{position:absolute;top:-4px;width:2px;height:14px;background:var(--straw);left:0;opacity:.9}
.age-axis{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:#B9AAB2}
.age-note{margin-top:12px;font-size:14px;color:#D8CBC1}
.pair{padding:0 0 20px;border-bottom:1px solid #3E2A34;margin-bottom:16px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chips span{font:400 13px/1 var(--f-body);padding:9px 12px;border:1px solid #3E2A34;color:#F1E9DD;opacity:0;transform:translateY(6px);animation:chip .45s var(--ease) forwards}
@keyframes chip{to{opacity:1;transform:none}}
.method{color:#B9AAB2;font-size:11px;margin-bottom:16px}
.facts{grid-template-columns:1fr 1fr 1fr}
@media (max-width:480px){.facts{grid-template-columns:1fr 1fr}}

/* ---------- Sommelier (tri otázky) ---------- */
.som-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:960px){.som-grid{grid-template-columns:7fr 4fr;gap:64px;align-items:start}}
.som-stage{position:relative;min-height:420px}
.som-progress{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px;padding-bottom:14px}
.som-progress::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line)}
.som-progress em{position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--accent);transition:width .9s var(--ease)}
.som-step{display:flex;align-items:baseline;gap:10px;color:var(--fg-dim);transition:color .4s}
.som-step i{font-family:var(--f-display);font-style:normal;font-size:20px;line-height:1}
.som-step b{font-family:var(--f-mono);font-weight:400;font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.som-step.done{color:var(--fg-2)} .som-step.on{color:var(--fg)}
.som-step.on i{color:var(--accent)}
.som-q{animation:qin .6s var(--ease) both}
.som-q.leave{animation:qout .35s var(--ease) both}
@keyframes qin{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes qout{to{opacity:0;transform:translateX(-24px)}}
.som-no{color:var(--fg-dim);margin-bottom:12px}
.som-q h3{font-size:clamp(28px,3.4vw,44px);margin-bottom:28px}
.som-opts{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:560px){.som-opts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}
.som-opts button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:22px 20px 20px;text-align:left;border:1px solid var(--line);min-height:150px;background:var(--glass-bg);transition:border-color .25s,transform .35s var(--ease),background-color .3s;overflow:hidden;opacity:0;transform:translateY(12px);animation:optin .5s var(--ease) forwards}
.som-opts button:nth-child(2){animation-delay:70ms}.som-opts button:nth-child(3){animation-delay:140ms}.som-opts button:nth-child(4){animation-delay:210ms}
@keyframes optin{to{opacity:1;transform:none}}
.som-opts button::after{content:"";position:absolute;inset:0;border:1px solid var(--accent);opacity:0;transition:opacity .25s;pointer-events:none}
.som-opts button:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));transform:translateY(-3px)}
.som-opts button:hover svg{stroke:var(--accent)}
.som-opts button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}
.som-opts button[aria-pressed="true"]::after{opacity:1;animation:pulse-ring .6s var(--ease)}
@keyframes pulse-ring{0%{inset:0;opacity:1}100%{inset:-8px;opacity:0}}
.som-opts svg{width:44px;height:44px;fill:none;stroke:var(--fg-2);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px;transition:stroke .25s,transform .5s var(--ease)}
.som-opts button:hover svg{transform:translateY(-2px)}
.som-opts button span{font-family:var(--f-display);font-size:22px;line-height:1.1}
.som-opts button small{font-size:13px;color:var(--fg-2)}
.som-nav{margin-top:24px;min-height:32px}
.som-pad{border:1px solid var(--line);padding:28px;position:relative;background:var(--glass-bg)}
.som-pad::before{content:"";position:absolute;left:28px;right:28px;top:60px;bottom:88px;background:repeating-linear-gradient(to bottom,transparent 0 35px,var(--line) 35px 36px);opacity:.5;pointer-events:none}
.som-pad-h{color:var(--fg-2);margin-bottom:20px}
.som-notes{list-style:none;margin:0;padding:0;position:relative}
.som-notes li{display:grid;grid-template-columns:24px 1fr;gap:2px 12px;padding:8px 0 10px;min-height:56px;align-items:baseline}
.som-notes i{font-family:var(--f-display);font-style:normal;color:var(--fg-dim);grid-row:span 2}
.som-notes .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim)}
.som-notes .v{font-family:var(--f-display);font-style:italic;font-size:22px;line-height:1.1;color:var(--fg-dim);position:relative;display:inline-block}
.som-notes li.filled .v{color:var(--fg);animation:ink .6s var(--ease) both}
.som-notes li.filled i{color:var(--accent)}
@keyframes ink{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 -2% 0 0)}}
.som-quote{margin-top:24px;font-size:14px;color:var(--fg-2);max-width:30ch;position:relative}
#som-reset{margin-top:20px;position:relative}
/* flight */
.flight{margin-top:64px;position:relative;padding-bottom:24px}
.flight-head{display:grid;gap:12px;margin-bottom:8px}
.flight-som{font-family:var(--f-display);font-style:italic;font-size:clamp(22px,2.4vw,34px);line-height:1.25;max-width:32ch}
.flight-list{list-style:none;margin:0;padding:40px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;align-items:end}
.flight-list li{opacity:0;transform:translateY(30px);animation:rise .8s var(--ease) forwards}
.flight-list li:nth-child(2){animation-delay:100ms}.flight-list li:nth-child(3){animation-delay:200ms}.flight-list li:nth-child(4){animation-delay:300ms}.flight-list li:nth-child(5){animation-delay:400ms}
@keyframes rise{to{opacity:1;transform:none}}
.flight-list button{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:0 8px 24px}
.flight-list img{height:clamp(180px,22vw,260px);width:auto;filter:drop-shadow(0 30px 40px rgba(27,12,19,.45));transition:transform .5s var(--ease)}
.flight-list button:hover img{transform:translateY(-8px)}
.flight-list .fn{font-family:var(--f-display);font-size:16px;line-height:1.2}
.flight-list .fp{font-family:var(--f-display);font-size:18px;font-variant-numeric:tabular-nums;color:var(--fg)}
.flight-list .fm{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}
.flight-list li{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.flight-list li .flight-pridaj{margin-top:auto}
.flight-list button[data-open]{padding-bottom:4px}
.flight-pridaj{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);border:1px solid var(--line);padding:9px 12px;background:none;cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease),background-color .2s var(--ease);width:100%;text-align:center;line-height:1.5;text-wrap:balance}
.flight-pridaj:hover{color:var(--fg);border-color:var(--accent)}
.flight-pridaj:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.flight-pridaj.pridane{color:var(--fg);border-color:var(--accent);background:rgba(197,106,131,.14)}
/* Polica pod flasami zrusena 21. 9. 2026 — pod kartami je teraz tlacidlo
   na pridanie do vinoteky a ciara ho odrezavala od flase, ku ktorej patri. */
.flight-shelf{display:none}
@keyframes shelf{to{transform:none}}
@media (prefers-reduced-motion:reduce){.som-opts button,.flight-list li,.som-notes li.filled .v,.flight-shelf,.som-q{animation:none!important;opacity:1;transform:none}}

/* ---------- Vinotéka (full-bleed) ---------- */
.vinoteka{position:relative;background:var(--sediment);color:#F1E9DD;--fg:#F1E9DD;--fg-2:#B9AAB2;--fg-dim:rgba(241,233,221,.42);--line:#3E2A34;--accent:var(--garnet-hi);overflow:hidden;border-top:1px solid #3E2A34}
.vt-bleed{margin:0;position:relative;width:100%;aspect-ratio:4/5;max-height:80vh;overflow:hidden}
.vt-bleed img{width:100%;height:100%;object-fit:cover;will-change:transform;transform:scale(1.04)}
.vt-bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(27,12,19,0) 55%,var(--sediment) 100%)}
.vt-glow{position:absolute;inset:0;background:radial-gradient(ellipse 30% 55% at 50% 50%,rgba(228,180,90,.22),transparent 70%);mix-blend-mode:screen;animation:glow 5s ease-in-out infinite alternate;pointer-events:none}
@keyframes glow{from{opacity:.55}to{opacity:1}}
.js .vt-bleed.reveal:not(.in) img{opacity:0;transform:scale(1.1)}
.js .vt-bleed.reveal img{transition:opacity 1.2s var(--ease),transform 1.6s var(--ease)}
.vinoteka .wrap{position:relative}
.vt-copy{padding:8px 0 clamp(64px,10vw,120px);max-width:560px}
.vt-copy .lead{margin-top:20px;color:#D8CBC1}
.vt-facts{margin:32px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;border-top:1px solid #3E2A34;padding-top:24px}
.vt-facts dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#B9AAB2;margin-bottom:4px}
.vt-facts dd{margin:0;font-size:15px}
.vt-actions{margin-top:36px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.vt-note{font-size:13px;color:#B9AAB2}
@media (min-width:900px){
  .vinoteka{min-height:100vh;display:grid;align-items:center}
  .vt-bleed{position:absolute;inset:0 auto 0 0;width:54%;aspect-ratio:auto;max-height:none;height:100%}
  .vt-bleed::after{background:linear-gradient(to right,rgba(27,12,19,0) 60%,var(--sediment) 100%),linear-gradient(to bottom,rgba(27,12,19,.35),rgba(27,12,19,0) 30%,rgba(27,12,19,0) 70%,rgba(27,12,19,.35))}
  .vt-copy{margin-left:auto;width:46%;max-width:none;padding:clamp(64px,10vw,144px) 0}
}
@media (prefers-reduced-motion:reduce){.vt-glow{animation:none}.js .vt-bleed.reveal:not(.in) img{opacity:1;transform:none}}
.vt-price{font-family:var(--f-display);font-weight:400;font-size:26px;display:block;line-height:1.1;margin-bottom:2px;font-variant-numeric:tabular-nums}

/* ---------- Pre firmy (full-bleed scéna: obálky, pečate, list písaný rukou) ---------- */
.firmy{position:relative;background:var(--sediment);color:#F1E9DD;--fg:#F1E9DD;--fg-2:#B9AAB2;--fg-dim:rgba(241,233,221,.42);--line:#3E2A34;--accent:var(--garnet-hi);--f-hand:'Caveat',cursive}
.fg-headwrap{padding-block:clamp(64px,10vw,144px) clamp(24px,3vw,40px)}
.fg-stage{position:relative;min-height:clamp(640px,58vw,880px);overflow:hidden;isolation:isolate;background:var(--sediment)}
.fg-bg{position:absolute;inset:0;z-index:0}
.fg-bg img{width:100%;height:100%;object-fit:cover;object-position:0% 100%}
.fg-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(27,12,19,.75) 0%,rgba(27,12,19,.25) 22%,rgba(27,12,19,0) 45%,rgba(27,12,19,0) 90%,rgba(27,12,19,.7) 100%)}
.fg-stage-in{position:relative;z-index:2;min-height:inherit;padding-block:0}
.fg-head{}
.firmy .sec-head .lead{color:#D8CBC1;max-width:44ch}
/* list – skutočný ručný papier, písmo písané rukou, reálna vosková pečať */
.fg-letter{position:absolute;right:clamp(16px,7vw,110px);top:clamp(24px,3vw,44px);width:min(33%,380px);color:#241318;padding:7% 5.6% 6%;background:#EFE9DC url(../assets/photos/paper.webp) center/cover;box-shadow:0 40px 70px -24px rgba(0,0,0,.8),0 6px 18px rgba(0,0,0,.25),0 1px 0 rgba(255,255,255,.55) inset;transform:rotate(5deg) translateY(40px);opacity:0;transition:opacity 1s var(--ease) .15s,transform 1.3s var(--ease) .15s;display:flex;flex-direction:column;gap:10px}
.fg-letter::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.3),rgba(255,255,255,0) 45%,rgba(60,30,20,.12) 100%),rgba(243,238,226,.42);pointer-events:none}
.fg-letter>*{position:relative}
.fg-stage.in .fg-letter{opacity:1;transform:rotate(5deg)}
.fg-letter-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.fg-letter-logo img{height:clamp(9px,1.05vw,13px);width:auto;opacity:.82}
.fg-letter-date{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:#6B5560}
.hand{font-family:var(--f-hand);font-weight:500;color:#2B1C24;text-shadow:0 0 .4px rgba(43,28,36,.4)}
.fg-letter-to{font-size:clamp(19px,1.9vw,27px);line-height:1.1;color:var(--garnet);margin:4px 0 0}
.fg-letter-text{font-size:clamp(14px,1.28vw,18.5px);line-height:1.32;overflow-wrap:anywhere}
.fg-letter-text p{margin:0 0 .55em;text-indent:1.2em}
.fg-letter-text p:first-child{text-indent:0}
.fg-letter-text.swap{animation:ink .6s var(--ease)}
.fg-letter-sign{font-size:clamp(17px,1.65vw,24px);line-height:1.1;margin:6px 0 0}
.fg-letter-sign2{font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:#6B5560;margin:0}
.fg-seal{position:absolute;right:6%;bottom:3%;width:clamp(60px,8vw,104px);height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35));transform:scale(0) rotate(-8deg);transition:transform .6s var(--ease-soft) 1s}
.fg-stage.in .fg-seal{transform:scale(1) rotate(-8deg)}
.fg-under{position:relative;z-index:1;display:grid;gap:36px;padding-block:clamp(32px,4vw,56px) clamp(64px,10vw,144px)}
.fg-try{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:720px){.fg-try{grid-template-columns:1fr 2fr 1fr;align-items:start}}
.fg-try .field input,.fg-try .field textarea{color:#F1E9DD}
.fg-try .field textarea{min-height:0;resize:none;field-sizing:content;max-height:9lh}
.fg-try .field label{color:#B9AAB2}
.fg-cols{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:900px){.fg-cols{grid-template-columns:6fr 5fr;gap:72px;align-items:start}}
.fg-tiers{list-style:none;margin:0;padding:0;border-top:1px solid #3E2A34}
.fg-tiers li{display:grid;grid-template-columns:40px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid #3E2A34;align-items:baseline}
.fg-n{font-family:var(--f-display);font-size:24px;color:var(--accent)}
.fg-tiers b{font-family:var(--f-display);font-weight:400;font-size:22px;display:block;margin-bottom:4px}
.fg-tiers p{font-size:15px;color:#B9AAB2}
.fg-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;border-top:1px solid #3E2A34;padding-top:20px}
.fg-facts dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#B9AAB2;margin-bottom:4px}
.fg-facts dd{margin:0;font-size:15px}
.firmy .vt-actions{margin-top:32px}
.firmy .vt-note{color:#B9AAB2}
@media (max-width:900px){.fg-letter{width:min(42%,380px)}}
@media (max-width:640px){
  .fg-stage{min-height:0}
  .fg-bg{position:relative;inset:auto;display:block;margin:-60px 0 0;z-index:0}.fg-bg img{height:auto;object-fit:fill}
  .fg-bg::after{background:linear-gradient(to bottom,var(--sediment) 0%,rgba(27,12,19,.5) 18%,rgba(27,12,19,0) 32%,rgba(27,12,19,0) 90%,var(--sediment) 100%)}
  .fg-headwrap{padding-bottom:0}
  .fg-stage-in{padding-block:8px 0}
  .fg-letter{position:relative;right:auto;top:auto;width:min(88%,360px);margin:28px auto 0;padding:28px 22px 60px;transform:rotate(-2deg) translateY(30px)}
  .fg-stage.in .fg-letter{transform:rotate(-2deg)}
  .fg-letter-text{font-size:16px}.fg-letter-to{font-size:23px}.fg-letter-sign{font-size:21px}
}
/* ---------- Prevádzky ---------- */
.prevadzky{position:relative;background:var(--lees);color:#F1E9DD;--fg:#F1E9DD;--fg-2:#B9AAB2;--fg-dim:rgba(241,233,221,.42);--line:#3E2A34;--accent:var(--garnet-hi);overflow:hidden}
.pv-bg{position:absolute;inset:-10% 0;z-index:0}
.pv-bg img{width:100%;height:100%;object-fit:cover;opacity:.28;will-change:transform}
.pv-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,var(--lees) 0%,rgba(42,20,32,.6) 50%,rgba(42,20,32,.2) 100%),linear-gradient(to bottom,var(--lees),transparent 25%,transparent 75%,var(--lees))}
.prevadzky .wrap{position:relative;z-index:1}
.pv-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:960px){.pv-grid{grid-template-columns:7fr 4fr;gap:72px;align-items:center}}
.pv-copy .lead{margin-top:20px;color:#D8CBC1}
.pv-criteria{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid #3E2A34}
.pv-criteria li{display:grid;grid-template-columns:40px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid #3E2A34;align-items:baseline}
.pv-criteria b{font-family:var(--f-display);font-weight:400;font-size:22px;display:block;margin-bottom:4px}
.pv-criteria p{font-size:15px;color:#B9AAB2}
.prevadzky .vt-actions{margin-top:32px}
.pv-seal{display:grid;justify-items:center;gap:16px;color:var(--straw)}
.seal text{fill:currentColor}
.seal-text{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em}
.seal-p{font-family:var(--f-display);font-size:56px;fill:#F1E9DD}
.seal-y{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em}
@keyframes sealspin{to{transform:rotate(360deg)}}
.pv-seal-note{color:#B9AAB2;font-size:10px;text-align:center;max-width:26ch}
@media (prefers-reduced-motion:reduce){.seal{animation:none}}

/* ---------- Pečať Overená prevádzka ---------- */
.seal2{width:min(320px,78vw);height:auto;transform:none;transition:transform .8s var(--ease)}
.pv-seal:hover .seal2{transform:scale(1.03)}
.seal-rot{transform-origin:130px 130px;animation:sealspin 60s linear infinite}
.seal2{color:#C9758C}
.badge-arc{font-family:var(--f-body);font-weight:700;font-size:15px;letter-spacing:.2em}
.js .pv-seal.reveal:not(.in) .seal2{transform:scale(.92);opacity:0}
.seal2{transition:transform .9s var(--ease),opacity .9s var(--ease)}
@media (prefers-reduced-motion:reduce){.seal-rot{animation:none}}

/* ---------- Vinári: mapa regiónov ---------- */
.vin-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:1000px){.vin-grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start}.vin-map{position:sticky;top:96px}}
.regmap{width:100%;height:auto;display:block;color:#F1E9DD}
.map-land path{fill:rgba(241,233,221,.04);stroke:rgba(241,233,221,.16);stroke-width:.8;stroke-linejoin:round}
.map-main path{fill:rgba(241,233,221,.07);stroke:rgba(241,233,221,.42);stroke-width:1;stroke-linejoin:round}
.map-line{fill:none;stroke:var(--garnet-hi);stroke-width:1;stroke-dasharray:4 5;opacity:.35;transition:opacity .3s}
.js .vin-map.reveal .map-line{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.8s var(--ease),opacity .3s}
.js .vin-map.reveal.in .map-line{stroke-dashoffset:0}
.map-dot circle{fill:var(--straw);transition:fill .3s}
.map-dot .halo{fill:var(--garnet-hi);opacity:0;transform-origin:center;transform-box:fill-box;transition:opacity .3s,transform .5s var(--ease)}
.map-dot text{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;fill:rgba(241,233,221,.7);transition:fill .3s}
.map-dot{cursor:pointer}
.map-dot.on .halo{opacity:.35;transform:scale(1.3)}
.map-dot.on circle:not(.halo){fill:var(--garnet-hi)}
.map-dot.on text{fill:#F1E9DD}
.map-line.on{opacity:1}
.map-home circle{fill:var(--garnet)}
.map-home .ring{fill:none;stroke:var(--garnet-hi);stroke-width:1;animation:ringpulse 3s ease-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes ringpulse{0%{transform:scale(.5);opacity:1}100%{transform:scale(2.2);opacity:0}}
.map-home text{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;fill:rgba(241,233,221,.7)}
.map-legend{list-style:none;margin:12px 0 0;padding:0;display:flex;gap:20px;color:#B9AAB2;font-size:10px}
.map-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--straw);margin-right:8px;vertical-align:middle}
.map-legend i.h{background:var(--garnet)}
@media (prefers-reduced-motion:reduce){.map-home .ring{animation:none}.js .vin-map.reveal .map-line{stroke-dashoffset:0}}

/* ---------- Infografika farby vína: pohár ---------- */
:root{--w-red:#6E1A2E;--w-white:#E6D48A;--w-rose:#E8A0A8;--w-spark:#EBDDA6;--w-nealko:#CFC7B8}
html[data-mode="dark"] :root,:root{--w-red-d:#A5384F}
.glass{width:14px;height:19px;display:inline-block;vertical-align:-3px;margin-right:6px;flex:none}
.glass svg{width:100%;height:100%;overflow:visible}
.glass .line{fill:none;stroke:currentColor;stroke-width:1;stroke-linejoin:round;stroke-linecap:round;opacity:.75}
.glass .fill{fill:var(--w-nealko)}
.glass.k-red .fill{fill:var(--w-red)} html[data-mode="dark"] .glass.k-red .fill{fill:#A5384F}
.glass.k-white .fill{fill:var(--w-white)}
.glass.k-rose .fill{fill:var(--w-rose)}
.glass.k-spark .fill{fill:var(--w-spark)}
.glass.k-nealko .fill{fill:var(--w-nealko);opacity:.7}
.row .meta{display:block}
.sc-no .glass,.panel-head .glass{vertical-align:-4px;margin-left:2px}
.flight-list .fm{display:inline-flex;align-items:center;justify-content:center}

/* ================================================================== */
/* Overenie veku 18+ (js/vek.js). Pridané 13. 9. 2026 — povinnosť pri  */
/* predaji alkoholu; v dodanom návrhu chýbalo.                         */
/* ================================================================== */
html.vek-zamknute{overflow:hidden}
html.vek-zamknute body{overflow:hidden}
.vek{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  padding:max(16px,var(--pad));background:rgba(10,5,8,.88);
  -webkit-backdrop-filter:blur(18px) saturate(.6);backdrop-filter:blur(18px) saturate(.6);
  animation:vek-prichod .5s var(--ease-soft) both}
.vek.vek-odchod{animation:vek-odchod .4s var(--ease-soft) both}
@keyframes vek-prichod{from{opacity:0}to{opacity:1}}
@keyframes vek-odchod{from{opacity:1}to{opacity:0;visibility:hidden}}
.vek-box{width:min(560px,100%);background:var(--sediment);border:1px solid var(--line);
  padding:clamp(28px,4.5vw,52px);display:grid;gap:16px;justify-items:start;
  box-shadow:0 40px 120px rgba(0,0,0,.6);animation:vek-box .6s var(--ease-soft) both}
@keyframes vek-box{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.vek-znacka{width:150px;height:auto;margin-bottom:6px;opacity:.92}
.vek-oko{color:var(--garnet-hi)}
.vek-box h2{font-family:var(--f-display);font-size:clamp(30px,4.6vw,44px);color:#F1E9DD}
.vek-text{color:var(--fg-2);font-size:16px;line-height:1.6;max-width:44ch}
.vek-akcie{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:8px}
.vek-nie{font:400 14px/1 var(--f-body);letter-spacing:.06em;color:var(--fg-2);
  border-bottom:1px solid var(--line);padding-bottom:4px}
.vek-nie:hover{color:#F1E9DD;border-bottom-color:var(--garnet-hi)}
.vek-pozn{color:var(--fg-dim);font-size:11px;margin-top:6px}
@media (prefers-reduced-motion:reduce){
  .vek,.vek-box,.vek.vek-odchod{animation:none}
}

/* Tlačidlo E-shop v hlavičke vo farbe bieleho vína (25. 9. 2026, na pokyn). Košík (.kos-tl) ostáva vínovočervený. */
.nav a.btn:not(.kos-tl){background:var(--w-white,#E6D48A);color:#1B0C13}
.nav a.btn:not(.kos-tl):hover{background:#D6C170;color:#1B0C13}

/* Pravá skupina tlačidiel v hlavičke (E-shop + Košík + menu) — na všetkých stránkach. */
.nav-akcie{display:flex;align-items:center;gap:8px}

/* ---------- Odkaz na stránku vína (SEO, 26. 9. 2026) ---------- */
.row-detail,.panel-detail a{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);text-decoration:none;transition:color .2s}
.row-detail:hover,.panel-detail a:hover{color:var(--accent)}
.row-detail{display:block;width:fit-content;margin:-22px 0 16px 60px;padding:4px 0}
@media (max-width:999px){.row-detail{margin:-10px 0 14px 112px}}
.panel-detail{margin:14px 0 0}

/* päta: odkaz na ochranu webu (26. 9. 2026) */
footer .chranene{margin:18px 0 0;text-align:center;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2)}
footer .chranene a{color:inherit;text-decoration:underline;text-underline-offset:3px}
footer .chranene a:hover{color:var(--accent)}
