/* ==========================================================================
   Pure Sands Boutique Resort — site stylesheet
   Fonts: Bodoni Moda (display) + Jost (text), self-hosted
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/bodoni-moda-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/bodoni-moda-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/bodoni-moda-latin-ext-400-italic.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/bodoni-moda-latin-400-italic.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/bodoni-moda-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/bodoni-moda-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;
  src:url('../fonts/jost-latin-ext-300-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;
  src:url('../fonts/jost-latin-300-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jost-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jost-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/jost-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/jost-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- Tokens ---------- */
:root{
  --ink:#0C0C0C;            /* černá */
  --ink-deep:#000000;
  --ink-soft:#171717;
  --shell:#FFFFFF;          /* bílá */
  --shell-2:#F4F1EB;
  --paper:#FBFAF8;
  --brass:#C9A063;          /* zlatá z loga */
  --brass-lt:#E2C088;
  --sea:#7A6A4F;
  --muted:#57534E;
  --muted-lt:#A8A29A;
  --line:rgba(12,12,12,.14);
  --line-lt:rgba(255,255,255,.2);

  --ff-display:'Bodoni Moda','Cormorant Garamond',Georgia,'Times New Roman',serif;
  --ff-text:'Jost','Helvetica Neue',Helvetica,Arial,sans-serif;

  --gut:clamp(18px,4.2vw,60px);
  --maxw:1320px;
  --sec:clamp(54px,7.2vw,112px);
  --ease:cubic-bezier(.16,1,.3,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:clamp(84px,13vw,120px)}
body{margin:0;background:var(--shell);color:var(--ink);-webkit-tap-highlight-color:rgba(201,160,99,.18);
  font-family:var(--ff-text);font-weight:300;font-size:clamp(16px,.55vw + 14.6px,17.5px);
  line-height:1.78;letter-spacing:.006em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{margin:0;font-weight:400;font-family:var(--ff-display);letter-spacing:-.005em;
  text-wrap:balance;font-kerning:normal;font-feature-settings:'kern' 1,'liga' 1}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
::selection{background:var(--brass);color:#0C0C0C}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--shell);padding:.9em 1.4em;z-index:200}
.skip:focus{left:12px;top:12px}

/* ---------- Type scale ---------- */
.d1{font-size:clamp(2.7rem,6.6vw,5.6rem);line-height:1.02;letter-spacing:-.018em}
.d2{font-size:clamp(1.85rem,3.5vw,3rem);line-height:1.1;letter-spacing:-.012em}
.d3{font-size:clamp(1.45rem,2.3vw,2.1rem);line-height:1.2;letter-spacing:-.008em}
.d4{font-size:clamp(1.15rem,1.4vw,1.4rem);line-height:1.3}
.lead{font-size:clamp(1.08rem,1.25vw,1.32rem);line-height:1.72;font-weight:300}
.small{font-size:.9rem;line-height:1.7}
.meta{font-family:var(--ff-text);font-size:.74rem;font-weight:400;letter-spacing:.2em;color:var(--brass)}
.muted{color:var(--muted)}
.serif-it{font-family:var(--ff-display);font-style:italic}
.measure{max-width:62ch}
.measure-s{max-width:46ch}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.wrap-wide{width:100%;max-width:1680px;margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:var(--sec);position:relative}
.section-tight{padding-block:clamp(40px,5vw,72px)}
.section-sm{padding-block:clamp(40px,5.4vw,80px)}
.dark{background:var(--ink);color:#F5F2EC}
.dark .muted{color:#B5AFA3}
.dark .meta{color:var(--brass-lt)}
.paper{background:var(--paper)}
.shell2{background:var(--shell-2)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.dark .rule{background:var(--line-lt)}

/* ---------- Header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:90;opacity:1;transition:background .5s var(--ease),backdrop-filter .5s,box-shadow .5s}
.hdr::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,0));
  opacity:1;transition:opacity .4s ease;pointer-events:none}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding-block:clamp(14px,2.1vw,26px);position:relative;padding-top:calc(clamp(14px,2.1vw,26px) + env(safe-area-inset-top,0px))}
.brand{display:block;line-height:0;position:relative;z-index:2}
.brand img{height:clamp(28px,3.1vw,42px);width:auto;transition:height .45s var(--ease)}
.brand .logo-dark{display:none}
.nav{display:flex;align-items:center;gap:clamp(18px,2.3vw,38px)}
.nav a{position:relative;font-size:.83rem;letter-spacing:.13em;color:rgba(255,255,255,.88);padding-block:.35em;
  transition:color .35s ease}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:.05em;height:1px;background:var(--brass-lt);
  transition:right .45s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.hdr-cta{display:inline-block;font-size:.78rem;letter-spacing:.16em;padding:.85em 1.5em;
  border:1px solid rgba(203,167,106,.6);color:var(--shell);transition:background .45s var(--ease),color .45s var(--ease),border-color .45s}
.hdr-cta:hover{background:var(--brass);border-color:var(--brass);color:#fff}

/* scrolled state */
.lb-on .hdr{opacity:0;pointer-events:none;transition:opacity .35s ease}
.hdr.is-stuck{background:rgba(0,0,0,.9);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px)}
.hdr.is-stuck::before{opacity:0}
.hdr.is-stuck .brand img{height:clamp(24px,2.4vw,32px)}

/* burger */
.burger{display:none;width:44px;height:44px;margin-right:-10px;position:relative;z-index:2}
.burger span{display:block;width:24px;height:1px;background:var(--shell);margin:6px auto;transition:transform .45s var(--ease),opacity .3s}
.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .burger span:nth-child(2){opacity:0}
.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:85;background:var(--ink-deep);
  display:flex;flex-direction:column;justify-content:center;
  padding:calc(84px + 4vh + env(safe-area-inset-top,0px)) var(--gut) calc(5vh + env(safe-area-inset-bottom,0px));
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);visibility:hidden}
.nav-open .drawer{clip-path:inset(0 0 0 0);visibility:visible}
.drawer nav{display:flex;flex-direction:column;gap:clamp(8px,1.6vh,18px)}
.drawer nav a{font-family:var(--ff-display);font-size:clamp(2rem,9vw,3rem);color:var(--shell);line-height:1.15;
  opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .6s var(--ease),color .3s}
.nav-open .drawer nav a{opacity:1;transform:none}
.drawer nav a:nth-child(1){transition-delay:.14s}
.drawer nav a:nth-child(2){transition-delay:.2s}
.drawer nav a:nth-child(3){transition-delay:.26s}
.drawer nav a:nth-child(4){transition-delay:.32s}
.drawer nav a:nth-child(5){transition-delay:.38s}
.drawer nav a:nth-child(6){transition-delay:.44s}
.drawer nav a[aria-current="page"]{color:var(--brass-lt)}
.drawer .btn{margin-top:clamp(20px,4vh,36px);align-self:flex-start;opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease) .5s,transform .5s var(--ease) .5s,background .4s,color .4s}
.nav-open .drawer .btn{opacity:1;transform:none}
.drawer-foot{margin-top:auto;padding-top:6vh;color:#A8A29A;font-size:.9rem;
  opacity:0;transition:opacity .6s var(--ease) .5s}
.nav-open .drawer-foot{opacity:1}
.drawer-foot a{border-bottom:1px solid rgba(203,167,106,.4);padding-bottom:1px}

/* ---------- Buttons & links ---------- */
.btn{position:relative;display:inline-block;overflow:hidden;isolation:isolate;
  font-size:.8rem;letter-spacing:.17em;padding:1.15em 2.3em;
  border:1px solid var(--ink);color:var(--ink);background:transparent;
  transition:color .5s var(--ease),border-color .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);
  transform:translateY(101%);transition:transform .55s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn:hover{color:var(--shell)}
.btn-brass{border-color:var(--brass);color:var(--brass)}
.btn-brass::before{background:var(--brass)}
.btn-brass:hover{color:#fff;border-color:var(--brass)}
.btn-light{border-color:rgba(255,255,255,.45);color:var(--shell)}
.btn-light::before{background:var(--shell)}
.btn-light:hover{color:var(--ink);border-color:var(--shell)}
.btn-fill{background:var(--shell);color:var(--ink);border-color:var(--shell)}
.btn-fill::before{background:var(--brass)}
.btn-fill:hover{color:#fff;border-color:var(--brass)}
.btn-solid{background:var(--ink);color:var(--shell);border-color:var(--ink)}
.btn-solid::before{background:var(--brass)}
.btn-solid:hover{color:#fff;border-color:var(--brass)}

.tlink{display:inline-block;font-size:.83rem;letter-spacing:.15em;padding-bottom:.45em;position:relative;color:inherit}
.tlink::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;opacity:.35;
  transform-origin:right;transform:scaleX(1);transition:transform .5s var(--ease),opacity .4s}
.tlink:hover::after{opacity:1;transform:scaleX(.42);transform-origin:left}

/* ---------- Hero ---------- */
.hero{position:relative;height:100svh;min-height:600px;max-height:1100px;display:flex;align-items:flex-end;
  overflow:hidden;background:var(--ink-deep)}
.hero-sm{height:72svh;min-height:480px;max-height:820px}
.hero picture,.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero img{transform:scale(1.1);animation:heroZoom 20s var(--ease) forwards}
@keyframes heroZoom{to{transform:scale(1.005)}}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 85% at 50% 42%,rgba(0,0,0,0) 38%,rgba(0,0,0,.34) 78%,rgba(0,0,0,.62) 100%)}
.hero .grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  background-size:160px 160px}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.52) 0%,rgba(0,0,0,.08) 26%,rgba(0,0,0,.34) 52%,rgba(0,0,0,.74) 74%,rgba(0,0,0,.93) 100%)}
.hero-body{position:relative;z-index:2;width:100%;padding-bottom:clamp(38px,6.5vh,84px);color:var(--shell);text-shadow:0 1px 4px rgba(0,0,0,.62),0 2px 34px rgba(0,0,0,.8)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(20px,4vw,56px)}
.hero h1{max-width:16ch;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.hero .meta{color:#FFFFFF;font-size:.78rem;display:block;margin-bottom:clamp(14px,2.2vh,26px)}
.hero-note{max-width:30ch;font-size:.97rem;line-height:1.75;color:rgba(255,255,255,.86);
  border-top:1px solid rgba(255,255,255,.3);padding-top:1.1em}
.hero-fade > *{opacity:0;transform:translateY(18px);animation:heroUp 1.1s var(--ease) forwards}
.hero-fade > *:nth-child(1){animation-delay:.15s}
.hero-fade > *:nth-child(2){animation-delay:.3s}
.hero-fade > *:nth-child(3){animation-delay:.45s}
.hero-fade > *:nth-child(4){animation-delay:.62s}
@keyframes heroUp{to{opacity:1;transform:none}}
.hero-center{text-align:center}
.hero-center .scroll-cue{display:none}
.hero-center .hero-grid{grid-template-columns:minmax(0,1fr);justify-items:center;gap:clamp(16px,2.6vh,30px)}
.hero-center h1{max-width:15ch;margin-inline:auto;font-size:clamp(2.4rem,5vw,4.3rem)}
.hero-center .hero-note{max-width:46ch;border-top:0;padding-top:0;text-align:center;
  font-size:1.02rem;color:rgba(255,255,255,.92)}
.hero-center .meta{margin-bottom:0}
.ornament{display:block;width:1px;height:clamp(34px,6vh,62px);margin:0 auto clamp(16px,2.4vh,26px);
  background:linear-gradient(180deg,rgba(203,167,106,0),rgba(203,167,106,.95));box-shadow:0 0 18px rgba(0,0,0,.6)}
.hero-actions{display:flex;flex-wrap:wrap;gap:clamp(10px,1.4vw,18px);justify-content:center;margin-top:clamp(10px,2vh,22px)}

.scroll-cue{position:absolute;left:50%;bottom:clamp(16px,3vh,32px);transform:translateX(-50%);z-index:3;
  width:1px;height:clamp(38px,7vh,66px);background:rgba(255,255,255,.35);overflow:hidden}
.scroll-cue::after{content:"";position:absolute;inset:0;background:var(--brass-lt);
  animation:cue 2.6s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

/* page header (inner pages) */
.phead{position:relative;z-index:2;width:100%;padding-bottom:clamp(34px,5.5vh,72px);color:var(--shell);text-shadow:0 1px 26px rgba(0,0,0,.6)}
.phead h1{max-width:18ch}
.phead p{max-width:44ch;margin-top:1.1em;color:rgba(255,255,255,.88)}

/* ---------- Editorial blocks ---------- */
.split{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(24px,4vw,72px);align-items:start}
.split-even{grid-template-columns:repeat(2,minmax(0,1fr))}
.split h2{margin-bottom:.1em}
.stack-lg > * + *{margin-top:clamp(22px,3vw,42px)}
.stack > * + *{margin-top:clamp(14px,1.6vw,22px)}

.figure{position:relative;background:transparent}
.figure picture,.strip picture,.grid-masonry picture,.bleed-section picture{display:block}
.figure img{width:100%;height:auto;object-fit:cover;background:var(--shell-2)}
.figure figcaption{margin-top:.9em;font-size:.76rem;letter-spacing:.09em;color:var(--muted)}
.dark .figure figcaption{color:#A8A29A}
.figure.ar-43 img{aspect-ratio:4/3}
.figure.ar-32 img{aspect-ratio:3/2}
.figure.ar-169 img{aspect-ratio:16/9}
.figure.ar-34 img{aspect-ratio:3/4}
.figure.ar-11 img{aspect-ratio:1/1}
.figure.ar-45 img{aspect-ratio:4/5}
.figure.natural img{max-height:54vh;width:auto;max-width:100%;margin-inline:auto}

/* image reveal (restrained: only on large feature images) */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 1.1s var(--ease),transform 1.2s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* feature rows */
.feat{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,2.6vw,44px);align-items:center}
.feat-img{grid-column:1 / span 7}
.feat-txt{grid-column:8 / span 5}
.feat-rev .feat-img{grid-column:6 / span 7;order:2}
.feat-rev .feat-txt{grid-column:1 / span 4;order:1}

/* index list with hairlines (no cards) */
.hlist{border-top:1px solid var(--line)}
.dark .hlist{border-color:var(--line-lt)}
.hlist li{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:clamp(10px,2.2vw,32px);
  padding:clamp(14px,1.7vw,22px) 0;border-bottom:1px solid var(--line)}
.dark .hlist li{border-color:var(--line-lt)}
.hlist h3{font-family:var(--ff-text);font-size:.95rem;font-weight:400;letter-spacing:.06em}
.hlist p{font-size:.97rem;color:var(--muted)}
.dark .hlist p{color:#B5AFA3}

/* spec list inside villa/restaurant columns */
.specs li{display:flex;gap:.9em;padding:.62em 0;border-bottom:1px solid var(--line);font-size:.95rem}
.dark .specs li{border-color:var(--line-lt)}
.specs li::before{content:"";flex:0 0 auto;width:14px;height:1px;background:var(--brass);margin-top:.85em}

/* menu-style list (restaurant) */
.menu-list{border-top:1px solid var(--line-lt)}
.menu-list li{padding:clamp(13px,1.5vw,20px) 0;border-bottom:1px solid var(--line-lt);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(10px,3vw,40px);align-items:baseline}
.menu-list .dish{font-family:var(--ff-display);font-size:clamp(1.2rem,1.7vw,1.6rem);line-height:1.25}
.menu-list .dish span{display:block;font-family:var(--ff-text);font-size:.76rem;letter-spacing:.16em;
  color:var(--brass-lt);margin-top:.5em}
.menu-list p{font-size:.95rem;color:#B5AFA3}

/* quote / statement */
.statement{font-family:var(--ff-display);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.26;max-width:26ch}
.statement-wide{max-width:34ch}

/* gallery strip (home) */
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(210px,24vw,340px);gap:clamp(10px,1.2vw,18px);
  overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;
  scrollbar-width:thin;scrollbar-color:var(--brass) transparent}
.strip figure{scroll-snap-align:start;margin:0}
.strip img{aspect-ratio:3/4;object-fit:cover;width:100%}
.strip::-webkit-scrollbar{height:3px}
.strip::-webkit-scrollbar-thumb{background:var(--brass)}

/* ---------- Pronájem celého resortu ---------- */
.buyout{display:flex;flex-direction:column;align-items:center;gap:clamp(14px,1.8vw,24px);
  padding-block:clamp(26px,5vw,72px)}
.buyout .divider-head{margin-bottom:clamp(2px,1vw,10px)}
.buyout p{margin:0}
.buyout .btn{margin-top:clamp(10px,1.6vw,20px)}

/* ---------- Rychlá navigace (Okolí) ---------- */
.chips{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;
  scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:0 0 auto;font-size:.78rem;letter-spacing:.12em;padding:.7em 1.25em;white-space:nowrap;
  border:1px solid var(--line-lt);color:rgba(255,255,255,.82);transition:border-color .4s,color .4s,background .4s}
.chips a:hover,.chips a:focus-visible{border-color:var(--brass);color:#fff}

/* ---------- Menu ke stažení ---------- */
.menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,26px);
  max-width:820px;margin-inline:auto;width:100%}
.menu-card{display:flex;flex-direction:column;gap:.5em;padding:clamp(24px,3vw,40px);
  border:1px solid rgba(201,160,99,.45);position:relative;overflow:hidden;isolation:isolate;
  transition:border-color .5s var(--ease),color .5s var(--ease)}
.menu-card::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--brass);
  transform:translateY(101%);transition:transform .55s var(--ease)}
.menu-card:hover{border-color:var(--brass);color:#0C0C0C}
.menu-card:hover::before{transform:translateY(0)}
.menu-card-label{font-size:.72rem;letter-spacing:.2em;color:var(--brass-lt)}
.menu-card:hover .menu-card-label{color:#0C0C0C}
.menu-card-title{font-family:var(--ff-display);font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.2}
.menu-card-note{font-size:.8rem;letter-spacing:.12em;color:#B5AFA3}
.menu-card:hover .menu-card-note{color:#241E12}

/* užší sloupec s obrázkem (např. fotka drinku u baru) */
.feat.feat-narrow .feat-img{grid-column:1 / span 4;order:1}
.feat.feat-narrow .feat-txt{grid-column:6 / span 7;order:2}
.feat.feat-narrow.feat-rev .feat-img{grid-column:9 / span 4;order:2}
.feat.feat-narrow.feat-rev .feat-txt{grid-column:1 / span 7;order:1}

/* ---------- Gallery ---------- */
.filters{display:flex;flex-wrap:wrap;gap:clamp(8px,1.2vw,14px)}
.filters button{font-size:.78rem;letter-spacing:.14em;padding:.75em 1.4em;border:1px solid var(--line);color:var(--muted);
  transition:border-color .4s,color .4s,background .4s}
.filters button:hover{border-color:var(--ink);color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--shell)}
.grid-masonry{columns:4;column-gap:clamp(10px,1.1vw,16px);margin-top:clamp(28px,4vw,52px)}
.grid-masonry figure{break-inside:avoid;margin:0 0 clamp(10px,1.1vw,16px);position:relative;overflow:hidden;
  background:var(--shell-2);cursor:zoom-in}
.grid-masonry img{width:100%;transition:transform 1.1s var(--ease),opacity .6s ease}
.grid-masonry figure:hover img{transform:scale(1.035)}
.grid-masonry figure::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.16);opacity:0;transition:opacity .45s}
.grid-masonry figure:hover::after{opacity:1}
.g-hidden{display:none !important}

/* lightbox */
.lb{position:fixed;inset:0;z-index:120;background:rgba(9,15,14,.96);display:none;
  align-items:center;justify-content:center;padding:clamp(14px,4vh,48px)}
.lb.open{display:flex}
.lb img{max-width:min(94vw,1400px);max-height:82svh;object-fit:contain;
  opacity:0;transform:scale(.985);transition:opacity .45s var(--ease),transform .55s var(--ease)}
.lb.ready img{opacity:1;transform:none}
.lb-cap{position:absolute;left:0;right:0;bottom:clamp(14px,3vh,30px);text-align:center;color:rgba(255,255,255,.7);
  font-size:.82rem;letter-spacing:.1em}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;color:var(--shell);opacity:.65;
  transition:opacity .3s;font-size:1.6rem;line-height:1}
.lb-btn:hover{opacity:1}
.lb-prev{left:clamp(6px,2vw,32px)}
.lb-next{right:clamp(6px,2vw,32px)}
.lb-close{position:absolute;top:clamp(12px,2.4vh,28px);right:clamp(12px,2.4vw,34px);width:46px;height:46px;
  color:var(--shell);opacity:.7;font-size:1.5rem}
.lb-close:hover{opacity:1}

/* ---------- Form ---------- */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.field{display:flex;flex-direction:column;gap:.55em}
.field.full{grid-column:1 / -1}
.field label{font-size:.76rem;letter-spacing:.15em;color:var(--muted)}
.field input,.field select,.field textarea{font-family:var(--ff-text);font-weight:300;font-size:1rem;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--line);padding:.7em 0;border-radius:0;
  transition:border-color .4s}
.field textarea{resize:vertical;min-height:120px}
.field select{appearance:none;-webkit-appearance:none;padding-right:1.6em;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 9px) 1.25em,calc(100% - 4px) 1.25em;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.field .btn{align-self:flex-start;margin-bottom:.4em}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom-color:var(--brass)}
.form-note{font-size:.84rem;color:var(--muted);margin-top:1.4em}
.form-status{font-size:.9rem;color:var(--sea);min-height:1.4em}

/* contact details */
.cdetails li{padding:1.05em 0;border-bottom:1px solid var(--line);display:grid;
  grid-template-columns:minmax(0,8rem) minmax(0,1fr);gap:1.2em;align-items:baseline}
.cdetails .k{font-size:.76rem;letter-spacing:.15em;color:var(--muted)}
.cdetails a{border-bottom:1px solid var(--line);transition:border-color .4s}
.cdetails a:hover{border-color:var(--brass)}

/* ---------- Zpět nahoru ---------- */
.to-top{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));
  bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;
  width:48px;height:48px;border:1px solid rgba(201,160,99,.55);background:rgba(12,12,12,.82);
  color:var(--brass-lt);font-size:1.05rem;line-height:1;backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity .4s var(--ease),transform .4s var(--ease),background .4s,color .4s}
.to-top.on{opacity:1;pointer-events:auto;transform:none}
.to-top:hover{background:var(--brass);color:#0C0C0C;border-color:var(--brass)}

/* ---------- Footer ---------- */
.foot{background:var(--ink-deep);color:#F5F2EC;padding-block:clamp(44px,5.4vw,76px) clamp(22px,2.4vw,32px)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:clamp(30px,5vw,80px)}
.foot img.mark{height:44px;width:auto;margin-bottom:1.6em}
.foot h4{font-family:var(--ff-text);font-size:.76rem;font-weight:400;letter-spacing:.2em;color:var(--brass-lt);margin-bottom:1.3em}
.foot li{margin-bottom:.75em}
.foot a{color:rgba(255,255,255,.82);transition:color .35s}
.foot a:hover{color:#fff}
.foot-base{display:flex;flex-wrap:wrap;gap:.8em 2.5em;justify-content:space-between;align-items:center;
  margin-top:clamp(28px,3.4vw,48px);padding-top:clamp(14px,1.6vw,22px);border-top:1px solid var(--line-lt);
  font-size:.78rem;color:#8C877E;letter-spacing:.04em}

.bleed-section{position:relative;overflow:hidden;background:var(--ink-deep);
  display:flex;align-items:center;min-height:clamp(400px,64vh,680px);color:var(--shell);text-align:center}
.bleed-section > img,.bleed-section > picture{position:absolute;inset:0;width:100%;height:100%}
.bleed-section > img,.bleed-section > picture img{width:100%;height:100%;object-fit:cover;opacity:.7}
.bleed-section::after{content:"";position:absolute;inset:0;
  background:radial-gradient(110% 85% at 50% 50%,rgba(0,0,0,.42) 0%,rgba(0,0,0,.84) 100%)}
.bleed-section .wrap{position:relative;z-index:2;padding-block:clamp(56px,9vw,110px);
  text-shadow:0 1px 3px rgba(0,0,0,.5),0 2px 30px rgba(0,0,0,.6)}
.bleed-section .muted{color:rgba(255,255,255,.84)}
.bleed-section h2{color:var(--shell)}

/* subtle paper grain on light sections */
.paper,.shell2{position:relative}
.paper::before,.shell2::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(12,12,12,.03) 1px,transparent 1px);background-size:3px 3px}
.paper > *,.shell2 > *{position:relative;z-index:1}

/* parallax (subtle, disabled for reduced motion) */
.par{will-change:transform}

.wave-sep{display:flex;justify-content:center;padding-block:clamp(26px,3.4vw,52px)}
.wave-sep img{width:clamp(140px,16vw,230px);height:auto;opacity:.85}
.section > .wave-sep:first-child{padding-top:0}
.divider-head{display:flex;flex-direction:column;align-items:center;gap:.9em;text-align:center}
.divider-head img{width:clamp(120px,12vw,180px);height:auto;opacity:.9}

.quote{margin:0;display:flex;flex-direction:column;align-items:center;gap:clamp(14px,2vw,24px);text-align:center}
.quote img{width:clamp(120px,12vw,180px);height:auto;opacity:.9}
.quote p{font-family:var(--ff-display);font-style:italic;font-size:clamp(1.45rem,2.9vw,2.5rem);
  line-height:1.3;letter-spacing:-.008em;max-width:22ch;margin:0}
.quote .long{font-size:clamp(1.15rem,1.9vw,1.6rem);line-height:1.45;max-width:34ch}
.quote cite{font-style:normal;font-family:var(--ff-text);font-size:.74rem;letter-spacing:.2em;color:var(--brass-lt)}

/* ---------- Utilities ---------- */
.center{text-align:center}
.mx-auto{margin-inline:auto}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.offset-up{margin-top:clamp(-120px,-8vw,-40px)}
.figure img.bleed-img{width:100%;height:auto;aspect-ratio:16/9;max-height:78vh;object-fit:cover}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .grid-masonry{columns:3}
  .feat.feat-narrow .feat-img,.feat.feat-narrow .feat-txt,
  .feat.feat-narrow.feat-rev .feat-img,.feat.feat-narrow.feat-rev .feat-txt{grid-column:1 / span 12}
  .feat-img,.feat-rev .feat-img{grid-column:1 / span 12;order:1}
  .feat-txt,.feat-rev .feat-txt{grid-column:1 / span 12;order:2}
  .feat{gap:clamp(20px,3vw,32px)}
}
@media (max-width:900px){
  .nav,.hdr-cta{display:none}
  .burger{display:block}
  .split,.split-even{grid-template-columns:minmax(0,1fr);gap:clamp(24px,5vw,40px)}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:clamp(18px,4vh,30px)}
  .hero-note{max-width:44ch}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .menu-list li{grid-template-columns:minmax(0,1fr);gap:.5em}
  .form{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:680px){
  .grid-masonry{columns:2}
  .menu-links{grid-template-columns:minmax(0,1fr)}
  .grid-3{grid-template-columns:minmax(0,1fr)}
  .hlist li{grid-template-columns:minmax(0,1fr);gap:.35em}
  .cdetails li{grid-template-columns:minmax(0,1fr);gap:.3em}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .hero{min-height:520px}
  .strip{grid-auto-columns:70vw}
}
@media (max-width:420px){
  .grid-2{grid-template-columns:minmax(0,1fr)}
}

@media (prefers-reduced-motion:reduce){
  .reveal{transform:none}
  .par{transform:none !important}
  .hero .grain{display:none}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1}
  .reveal img{transform:none}
  .hero img{transform:none;animation:none}
  .hero-fade > *{opacity:1;transform:none}
}
