/* ============================================================
   Perpetua Retreat — stylesheet
   Palette, type and spacing per the approved design.
   ============================================================ */

:root{
  --paper:#f4f1ea;
  --paper-dim:#eae5d8;
  --ink:#1b2820;
  --ink-deep:#12211f;
  --ink-darkest:#0e1813;
  --gold:#c5a059;
  --gold-light:#d9bc85;
  --muted:#5d5d54;
  --muted-2:#7a7a70;
  --muted-3:#8a8a7e;
  --muted-4:#9a8f7a;
  --muted-5:#a09680;
  --muted-6:#9a9a8e;
  --sage:#8d9a8c;
  --imgbg:#e6e1d5;
  --line:rgba(27,40,32,.13);
  --line-soft:rgba(27,40,32,.1);
  --line-dark:rgba(244,241,234,.16);
  --line-dark-soft:rgba(244,241,234,.07);
  --ease:cubic-bezier(.22,.61,.36,1);
  --display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --ui:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(1.75rem,7vw,7rem);
  --sec-y:clamp(5rem,11vw,10rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--ui);font-weight:300;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,figure,blockquote,ul,li,cite{margin:0;padding:0}
ul{list-style:none}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--gold)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
iframe{border:0}
::selection{background:var(--gold);color:var(--paper)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.wrap{width:min(1440px,100% - var(--gutter));margin-inline:auto}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--gold);color:var(--ink-deep);padding:.8rem 1.2rem;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.skip:focus{left:1rem;top:1rem}
.gold{color:var(--gold)}
.unit{font-size:.5em}
.unit-s{font-size:.42em}

/* ---------------------------- shared type ---------------------------- */
.label{font-size:9.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted-4)}
.label-dark{color:var(--sage)}
.label-gold{color:var(--gold)}
.eyebrow{font-size:9.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.eyebrow-rule{display:flex;align-items:center;gap:.9rem}
.eyebrow-rule .rule{width:44px;height:1px;background:var(--gold);flex:none}

.h2{font-family:var(--display);font-weight:300;font-size:clamp(2.1rem,4.4vw,3.6rem);line-height:1.06;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
.h2 em{font-style:italic;color:var(--gold)}
.h2-dark{color:var(--paper)}
.h2-sm{font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.08}
.body{font-size:1rem;font-weight:300;line-height:1.82;color:var(--muted);max-width:56ch;margin-bottom:1.3rem}
.caption{margin-top:.9rem;font-size:9.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-5)}
.imgbox{overflow:hidden;background:var(--imgbg)}
.imgbox img{width:100%;transition:transform 1.2s var(--ease)}
.txtlink{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:.4rem}

.btn{display:inline-flex;align-items:center;justify-content:center;padding:.82rem 1.7rem;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;transition:background .35s ease,transform .35s ease,opacity .35s ease}
.btn-gold{background:var(--gold);color:var(--ink-deep)}
.btn-gold:hover{background:var(--gold-light);color:var(--ink-deep);transform:translateY(-2px)}
.btn-lg{padding:1.05rem 2.4rem}
.btn-block{display:block;width:100%;padding:1.05rem 1rem;background:var(--gold);color:var(--ink-deep)}
.btn-block:hover{background:var(--gold-light)}
.btn-block:disabled{background:rgba(27,40,32,.14);color:#8a8a7f;cursor:not-allowed}
.icon-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--ink);border:1px solid rgba(27,40,32,.16);transition:background .3s ease}
.icon-btn:hover{background:rgba(27,40,32,.06)}
.icon-btn-sm{width:32px;height:32px;border-color:rgba(27,40,32,.18)}
.icon-btn-dark{width:44px;height:44px;color:var(--paper);border-color:rgba(244,241,234,.25);font-size:1.1rem}
.icon-btn-dark:hover{background:rgba(244,241,234,.12)}

/* ---------------------------- reveal motion ---------------------------- */
@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes drawline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes slowzoom{from{transform:scale(1.06)}to{transform:scale(1)}}
@keyframes fadein{from{opacity:0}to{opacity:1}}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.rule-full{height:1px;background:var(--ink);opacity:.14;transform-origin:left center;transform:scaleX(0);transition:transform 1s var(--ease)}
.rule-full.in{transform:scaleX(1)}
.sec-01 .rule-full{margin-top:clamp(3rem,7vw,6rem)}

/* ---------------------------- header ---------------------------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:80;padding:clamp(1.1rem,2.2vw,1.9rem) 0;transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s ease,backdrop-filter .5s ease}
.hdr.scrolled{background:rgba(18,28,22,.92);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);padding:.85rem 0;box-shadow:0 1px 0 rgba(197,160,89,.22)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}

.mark-lockup{display:flex;align-items:center;gap:.62rem;color:var(--paper)}
.mark-lockup:hover{color:var(--paper)}
.mark{height:30px;width:auto;flex:none;display:block}
.mark-txt{display:flex;flex-direction:column;line-height:1}
.mark-name{font-family:var(--display);font-size:1.18rem;font-weight:500;letter-spacing:.19em;text-transform:uppercase;text-indent:.19em}
.mark-desc{font-size:8.5px;font-weight:400;letter-spacing:.42em;text-transform:uppercase;margin-top:5px;text-indent:.42em;opacity:.72}
.mark-lockup-lg .mark{height:48px}
.mark-lockup-lg .mark-name{font-size:1.4rem}
.mark-lockup-lg .mark-desc{font-size:9px;margin-top:6px}
.mark-desc-gold{color:var(--gold);opacity:1}

.nav{display:flex;align-items:center;gap:clamp(1.3rem,2.4vw,2.5rem)}
.nav a{font-size:11px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);padding-bottom:3px;position:relative}
.nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s var(--ease)}
.nav a:hover{color:var(--paper)}
.nav a:hover::after{width:100%}

.hdr-act{display:flex;align-items:center;gap:clamp(.75rem,1.6vw,1.4rem)}
.lang{display:flex;align-items:center;gap:.4rem;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);padding:.45rem 0}
.lang-sep{opacity:.35}
.lang [data-lang-ro]{opacity:1}
.lang [data-lang-en]{opacity:.4}
body.en .lang [data-lang-ro]{opacity:.4}
body.en .lang [data-lang-en]{opacity:1}

.burger{display:none;width:26px;height:16px;position:relative;flex:none}
.burger span{position:absolute;left:0;height:1px;background:var(--paper);transition:transform .3s var(--ease),opacity .3s ease,width .3s ease}
.burger span:nth-child(1){top:0;width:100%}
.burger span:nth-child(2){top:7px;width:100%}
.burger span:nth-child(3){top:14px;width:70%}
.burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.on span:nth-child(2){opacity:0}
.burger.on span:nth-child(3){width:100%;transform:translateY(-7px) rotate(-45deg)}

/* ---------------------------- mobile menu ---------------------------- */
.mobmenu{position:fixed;inset:0;z-index:90;background:var(--ink-deep);display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,8vw,4rem);opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s}
.mobmenu.on{opacity:1;visibility:visible;transition:opacity .45s ease,visibility 0s linear 0s}
.mobmenu-close{position:absolute;top:clamp(1.4rem,4vw,2rem);right:clamp(1.4rem,5vw,2.5rem);width:40px;height:40px;color:var(--paper);font-size:1.1rem}
.mobmenu-nav{display:flex;flex-direction:column}
.mobmenu-nav a{font-family:var(--display);font-size:clamp(2rem,9vw,2.8rem);font-weight:300;color:var(--paper);padding:.35rem 0;border-bottom:1px solid rgba(244,241,234,.12)}
.mobmenu-nav a:last-child{border-bottom:0}
.mobmenu-addr{margin-top:clamp(2rem,7vw,3rem);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* ---------------------------- hero ---------------------------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--ink-deep)}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 62%;animation:slowzoom 2.4s var(--ease) both}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(178deg,rgba(18,28,22,.62) 0%,rgba(18,28,22,.18) 34%,rgba(18,28,22,.5) 72%,rgba(18,28,22,.93) 100%)}
.hero-h1,.hero-eyebrow,.hero-sub{text-shadow:0 2px 18px rgba(10,16,12,.4)}
.hero-in{position:relative;padding-top:clamp(9rem,18vw,12rem);padding-bottom:clamp(3.5rem,7vw,6rem);animation:fadein 1.4s ease .25s both}
.hero-eyebrow{font-size:10px;letter-spacing:.32em;margin-bottom:clamp(1.4rem,3vw,2.2rem)}
.hero-h1{font-family:var(--display);font-weight:300;font-size:clamp(2.9rem,8.4vw,7.4rem);line-height:.98;letter-spacing:-.02em;color:var(--paper);max-width:15ch;text-wrap:balance}
.hero-h1 em{font-style:italic;color:var(--gold-light)}
.hero-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:clamp(1.8rem,4vw,3rem);margin-top:clamp(2rem,4.5vw,3.4rem)}
.hero-sub{font-size:clamp(.95rem,1.1vw,1.08rem);font-weight:300;line-height:1.75;color:rgba(244,241,234,.82);max-width:44ch;flex:1 1 min(100%,340px)}
.hero-stats{display:flex;flex-wrap:wrap;gap:clamp(1.8rem,4vw,3.4rem);flex:0 1 auto}
.hero-stat{font-family:var(--display);font-size:clamp(2.2rem,3.4vw,3rem);font-weight:400;line-height:1;color:var(--paper)}
.hero-stat-l{font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:.55rem}
.scrollcue{position:absolute;left:50%;bottom:1.1rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:rgba(244,241,234,.55);font-size:8.5px;letter-spacing:.28em;text-transform:uppercase}
.scrollcue:hover{color:var(--gold)}
.scrollcue-line{width:1px;height:34px;background:linear-gradient(180deg,rgba(244,241,234,.55),transparent)}

/* ---------------------------- sections ---------------------------- */
.sec{padding:var(--sec-y) 0;background:var(--paper)}
.sec-dark{background:var(--ink-deep);color:var(--paper)}
.sec-dim{background:var(--paper-dim)}
.sec-01{padding:clamp(5.5rem,12vw,11rem) 0 clamp(3rem,6vw,5rem)}
.sec-02{padding:clamp(3rem,7vw,6rem) 0 var(--sec-y)}

.sec-head{display:flex;flex-wrap:wrap;gap:clamp(1.6rem,5vw,5.5rem);align-items:baseline}
.sec-head-mb{margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-id{flex:0 0 auto;min-width:110px}
.sec-id-row{display:flex;align-items:baseline;gap:1.2rem;min-width:0}
.sec-num{font-family:var(--display);font-size:1.5rem;color:var(--gold);line-height:1}
.sec-id .label{margin-top:.5rem}
.sec-id-row .label{margin-top:0}
.sec-body{flex:1 1 min(100%,560px)}
.statement{font-family:var(--display);font-weight:300;font-size:clamp(1.6rem,3.4vw,2.85rem);line-height:1.24;letter-spacing:-.01em;text-wrap:pretty}
.lede-dark{margin-top:1.2rem;font-size:15px;font-weight:300;line-height:1.8;color:rgba(244,241,234,.7);max-width:52ch}
.two-col{display:flex;flex-wrap:wrap;gap:clamp(2rem,4.5vw,5rem);align-items:flex-start}

/* 01 facts */
.facts{display:flex;flex-wrap:wrap}
.fact{flex:1 1 150px;padding:clamp(1.8rem,3.5vw,2.8rem) clamp(1rem,2vw,1.6rem);border-bottom:1px solid var(--line)}
.fact:first-child{padding-left:0}
.fact:last-child{padding-right:0}
.fact-n{font-family:var(--display);font-size:clamp(2.4rem,4.6vw,3.9rem);font-weight:300;line-height:1}
.fact-l{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-3);margin-top:.7rem}

/* 02 story */
.story-fig{flex:1 1 min(100%,420px)}
.story-fig .imgbox img{aspect-ratio:4/5;object-fit:cover}
.story-fig:hover .imgbox img{transform:scale(1.035)}
.story-txt{flex:1 1 min(100%,440px);padding-top:clamp(0rem,3vw,3rem)}
.story-txt .sec-id-row{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.story-txt .h2{margin-bottom:clamp(1.4rem,2.6vw,2rem)}
.story-txt .body:last-of-type{margin-bottom:clamp(1.8rem,3vw,2.6rem)}
.pullquote{border-left:1px solid var(--gold);padding-left:clamp(1.1rem,2vw,1.8rem);max-width:50ch}
.pullquote p{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(1.15rem,1.9vw,1.5rem);line-height:1.5;color:var(--ink)}
.pullquote cite{display:block;margin-top:.9rem;font-size:9.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-5);font-style:normal}

/* winter band */
.band{position:relative;background:var(--ink-deep);overflow:hidden}
.band>img{width:100%;height:clamp(320px,58vh,640px);object-fit:cover;opacity:.92}
.band-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,28,22,.66) 0%,rgba(18,28,22,.12) 58%,rgba(18,28,22,.3) 100%)}
.band-in{position:absolute;inset:0;display:flex;align-items:center}
.band-eyebrow{margin-bottom:1rem}
.band-q{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(1.6rem,4.2vw,3.2rem);line-height:1.18;color:var(--paper);max-width:26ch;text-wrap:balance}

/* 03 rooms */
.rooms{display:flex;flex-wrap:wrap;gap:clamp(2rem,4vw,4rem);align-items:flex-start}
.roomlist{flex:1 1 min(100%,400px);border-top:1px solid var(--line)}
.roomlist li{border-bottom:1px solid var(--line)}
.room{display:flex;align-items:center;gap:clamp(.9rem,2vw,1.6rem);width:100%;text-align:left;padding:clamp(1.1rem,2.2vw,1.6rem) 0;transition:padding-left .4s var(--ease)}
.room:hover,.roomlist li.on .room{padding-left:.7rem}
.room-n{font-size:10px;font-weight:500;letter-spacing:.16em;color:var(--gold);flex:none;width:22px}
.room-thumb{display:none;width:62px;height:46px;object-fit:cover;flex:none}
.room-txt{flex:1 1 auto}
.room-t{display:block;font-family:var(--display);font-size:clamp(1.25rem,2.2vw,1.72rem);font-weight:400;line-height:1.2;color:var(--ink)}
.room-s{display:block;font-size:11px;font-weight:300;letter-spacing:.04em;color:var(--muted-3);margin-top:.3rem}
.room-arrow{flex:none;color:var(--gold);font-size:1rem;opacity:.5;transition:opacity .3s ease}
.room:hover .room-arrow{opacity:1}
.roompreview{flex:1 1 min(100%,420px);position:sticky;top:110px}
.roompreview .imgbox img{aspect-ratio:4/3;object-fit:cover;transition:opacity .5s ease}
.roompreview .imgbox img.fade{opacity:0}

/* 04 amenities */
.amen{display:flex;flex-wrap:wrap;gap:clamp(2rem,4vw,4rem)}
.amen-col{flex:1 1 min(100%,240px)}
.amen-h{font-size:9.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);padding-bottom:1rem;border-bottom:1px solid var(--line-dark)}
.amen-col ul{margin-top:.4rem}
.amen-col li{font-size:14px;font-weight:300;color:rgba(244,241,234,.82);padding:.62rem 0;border-bottom:1px solid var(--line-dark-soft)}
.amen-col li:last-child{border-bottom:0}

/* 05 gallery */
.gal-head{display:flex;flex-wrap:wrap;gap:clamp(1.6rem,5vw,5.5rem);align-items:baseline;justify-content:space-between;margin-bottom:clamp(2.2rem,4.5vw,3.5rem)}
.gal-note{font-size:11px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-5)}
.gal{display:flex;flex-wrap:wrap;gap:clamp(.7rem,1.4vw,1.3rem)}
.g{cursor:zoom-in;overflow:hidden;background:var(--imgbg)}
.g img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.g:hover img{transform:scale(1.045)}
.g-a{flex:2 1 min(100%,520px);aspect-ratio:16/11}
.g-b{flex:1 1 min(100%,240px);aspect-ratio:3/4.25}
.g-c{flex:1 1 min(100%,240px);aspect-ratio:3/4}
.g-d{flex:1 1 min(100%,300px);aspect-ratio:4/3}
.g-e{flex:1.6 1 min(100%,380px);aspect-ratio:16/10}
.g-f{flex:2 1 min(100%,460px);aspect-ratio:3/2}
.g-g{flex:1.2 1 min(100%,300px);aspect-ratio:4/3}
.g-h{flex:1 1 min(100%,260px);aspect-ratio:3/3.6}
.g-i{flex:1 1 min(100%,260px);aspect-ratio:3/3.6}
.g-j{flex:1 1 min(100%,260px);aspect-ratio:3/3.6}
.g-k{flex:1 1 min(100%,300px);aspect-ratio:4/3}
.g-l{flex:1.4 1 min(100%,340px);aspect-ratio:16/10}

/* 06 reviews */
.sec-dim .sec-id-row{margin-bottom:clamp(2rem,4vw,3rem)}
.bigquote{margin-bottom:clamp(2.5rem,5vw,4rem)}
.bigquote p{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(1.7rem,4.6vw,3.5rem);line-height:1.22;letter-spacing:-.01em;color:var(--ink);max-width:30ch;text-wrap:pretty}
.bigquote cite{display:block;margin-top:clamp(1.2rem,2.5vw,2rem);font-size:10px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-5);font-style:normal}
.scores{display:flex;flex-wrap:wrap;gap:1.5rem;padding:clamp(1.8rem,3.5vw,2.6rem) 0;border-bottom:1px solid var(--line)}
.scores>div{flex:1 1 90px}
.score-n{font-family:var(--display);font-size:clamp(1.7rem,3vw,2.5rem);font-weight:300;line-height:1;color:var(--ink)}
.score-l{font-size:9.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-3);margin-top:.6rem}
.score-avg{flex:1 1 130px}
.score-avg .score-n{font-weight:400;color:var(--gold)}
.quotes{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,3.5vw,3.5rem);padding-top:clamp(2rem,4vw,3rem)}
.quotes>div{flex:1 1 min(100%,240px)}
.quotes-link{flex:1 1 min(100%,200px)}
.quote-s{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.15rem;line-height:1.55;color:#3d3d36}
.quote-a{font-size:9.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-5);margin-top:.9rem}

/* 07 location */
.loc-col{flex:1 1 min(100%,380px)}
.dist{border-top:1px solid var(--line)}
.dist li{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:1.05rem 0;border-bottom:1px solid var(--line-soft)}
.dist-n{font-size:14.5px;font-weight:400;color:var(--ink)}
.dist-s{display:block;font-size:11px;color:var(--muted-6);margin-top:.2rem}
.dist-v{font-family:var(--display);font-size:1.3rem;color:var(--gold);white-space:nowrap}
.loc-link{margin-top:clamp(1.5rem,3vw,2.2rem)}
.mapframe{aspect-ratio:4/3.4;overflow:hidden;border:1px solid var(--line);filter:grayscale(.42) sepia(.18) contrast(1.04)}
.mapframe iframe{width:100%;height:100%}
.mapnote{margin-top:1rem;font-size:12.5px;font-weight:300;line-height:1.7;color:var(--muted-2);max-width:44ch}

/* 08 rates */
.rates{display:flex;flex-wrap:wrap;gap:clamp(1rem,2.5vw,2rem)}
.rate{flex:1 1 min(100%,300px);border:1px solid rgba(244,241,234,.18);padding:clamp(1.8rem,3.5vw,2.6rem);display:flex;flex-direction:column;gap:1.2rem}
.rate-flex{border-color:var(--gold);background:rgba(197,160,89,.07)}
.rate-l{font-size:9.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}
.rate-flex .rate-l{color:var(--gold)}
.rate-n{font-family:var(--display);font-size:clamp(2.4rem,4vw,3.2rem);font-weight:300;line-height:1;color:var(--paper)}
.rate-per{font-size:.3em;font-family:var(--ui);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-left:.5em}
.rate-per-gold{color:var(--gold)}
.rate ul{display:flex;flex-direction:column;gap:.55rem;margin-top:auto}
.rate li{font-size:13px;font-weight:300;color:rgba(244,241,234,.72)}
.rate-flex li{color:rgba(244,241,234,.8)}
.rate-txt{flex:1 1 min(100%,260px);padding:clamp(1.8rem,3.5vw,2.6rem) 0;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}
.rate-direct{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.4;color:var(--paper)}
.rate-note{margin-top:1.1rem;font-size:12px;font-weight:300;line-height:1.7;color:rgba(244,241,234,.5)}
.rate-txt .btn{align-self:flex-start;padding:1rem 2rem}

/* 09 faq */
.faq-wrap{display:flex;flex-wrap:wrap;gap:clamp(2rem,5vw,5.5rem);align-items:flex-start}
.faq-side{flex:0 1 min(100%,300px)}
.faq-side .sec-id-row{margin-bottom:1.2rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(1.8rem,3.5vw,2.6rem)}
.chip{font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);border:1px solid rgba(27,40,32,.16);padding:.55rem .9rem}
.faq{flex:1 1 min(100%,420px);border-top:1px solid var(--line)}
.faq-i{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;text-align:left;padding:clamp(1.1rem,2.2vw,1.5rem) 0;font-family:var(--display);font-size:clamp(1.1rem,1.9vw,1.45rem);font-weight:400;line-height:1.3;color:var(--ink)}
.faq-ic{flex:none;color:var(--gold);font-size:1.1rem;line-height:1.4;transition:transform .4s var(--ease)}
.faq-i.on .faq-ic{transform:rotate(135deg)}
.faq-p{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.faq-p p{font-family:var(--ui);font-size:14.5px;font-weight:300;line-height:1.8;color:var(--muted);max-width:62ch;padding-bottom:clamp(1.2rem,2.2vw,1.6rem)}

/* CTA final */
.cta{position:relative;background:var(--ink-deep);overflow:hidden}
.cta>img{width:100%;height:clamp(380px,62vh,660px);object-fit:cover;opacity:.42}
.cta-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,28,22,.72),rgba(18,28,22,.86))}
.cta-in{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem}
.cta-in>div{max-width:640px}
.cta-eyebrow{letter-spacing:.3em;margin-bottom:1.4rem}
.cta-h2{font-size:clamp(2rem,5.4vw,3.8rem);line-height:1.08}
.cta-sub{margin-top:1.3rem;font-size:15px;font-weight:300;line-height:1.8;color:rgba(244,241,234,.72);max-width:44ch;margin-inline:auto}
.cta-in .btn{margin-top:clamp(1.8rem,3.5vw,2.6rem)}

/* footer */
.ftr{background:var(--ink-darkest);color:rgba(244,241,234,.62);padding:clamp(3.5rem,7vw,6rem) 0 clamp(1.5rem,3vw,2.5rem)}
.ftr a{color:rgba(244,241,234,.62)}
.ftr a:hover{color:var(--gold)}
.ftr-top{display:flex;flex-wrap:wrap;gap:clamp(2rem,5vw,5rem);padding-bottom:clamp(2.5rem,5vw,4rem);border-bottom:1px solid rgba(244,241,234,.1)}
.ftr-brand{flex:1 1 min(100%,300px)}
.ftr-blurb{margin-top:1.4rem;font-size:13.5px;font-weight:300;line-height:1.8;max-width:36ch}
.ftr-nav{flex:1 1 min(100%,160px)}
.ftr-contact{flex:1 1 min(100%,200px)}
.ftr-h{font-size:9.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--paper);margin-bottom:1.2rem}
.ftr-col ul{display:flex;flex-direction:column;gap:.7rem}
.ftr-col li{font-size:13.5px;font-weight:300}
.ftr-col a.gold{color:var(--gold)}
.ftr-col a.gold:hover{color:var(--gold-light)}
.ftr-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:clamp(1.5rem,3vw,2.2rem);font-size:11px;font-weight:300}

/* ---------------------------- booking bar ---------------------------- */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(18,28,22,.9);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-top:1px solid rgba(197,160,89,.3);transform:translateY(104%);transition:transform .6s var(--ease)}
.bar.on{transform:translateY(0)}
.bar-in{width:min(1440px,100% - clamp(1.25rem,5vw,4rem));margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.9rem;padding:clamp(.75rem,1.6vw,1.1rem) 0}
.bar-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:clamp(.8rem,2vw,2rem);flex:1 1 auto;min-width:0}
.bar-block{display:flex;flex-direction:column;gap:.28rem}
.bar-block-sum{min-width:0}
.bar-l{font-size:8.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}
.bar-v{font-family:var(--display);font-size:1.35rem;font-weight:400;line-height:1;color:var(--paper)}
.bar-per{font-size:.5em;font-family:var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--sage);margin-left:.4em}
.bar-div{width:1px;height:26px;background:rgba(244,241,234,.18);flex:none}
.bar-sum{font-size:13px;font-weight:300;color:rgba(244,241,234,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .btn{flex:0 0 auto;padding:.95rem 2rem}

/* ---------------------------- drawer ---------------------------- */
.scrim{position:fixed;inset:0;z-index:95;background:rgba(14,24,19,.6);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s linear .5s}
.scrim.on{opacity:1;visibility:visible;transition:opacity .5s ease,visibility 0s linear 0s}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:96;width:min(470px,100%);background:var(--paper);transform:translateX(103%);transition:transform .62s cubic-bezier(.3,.86,.36,1);display:flex;flex-direction:column;box-shadow:-30px 0 80px rgba(14,24,19,.28)}
.drawer.on{transform:translateX(0)}
.drawer-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:clamp(1.6rem,4vw,2.2rem) clamp(1.4rem,4vw,2.2rem) clamp(1rem,2vw,1.4rem);border-bottom:1px solid var(--line)}
.drawer-t{font-family:var(--display);font-size:clamp(1.5rem,4vw,1.95rem);font-weight:300;line-height:1.15;color:var(--ink);margin-top:.5rem}
.drawer-bd{flex:1 1 auto;overflow-y:auto;padding:clamp(1.2rem,3vw,1.8rem) clamp(1.4rem,4vw,2.2rem)}
.drawer-ft{padding:clamp(1rem,2.5vw,1.4rem) clamp(1.4rem,4vw,2.2rem) clamp(1.4rem,3vw,1.8rem);border-top:1px solid var(--line);background:var(--paper-dim)}
.drawer-note{text-align:center;font-size:10.5px;font-weight:300;color:#8a8a7f;margin-top:.8rem}

.cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cal-m{font-family:var(--display);font-size:1.2rem;font-weight:400;color:var(--ink);text-transform:capitalize}
.cal-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}
.cal-wd span{text-align:center;font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-5)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--ui);font-size:12.5px;font-weight:400;color:var(--ink);transition:background .2s ease,color .2s ease}
.cal-d.empty{visibility:hidden}
.cal-d.past{color:#cfcabb;cursor:not-allowed}
.cal-d:not(.past):not(.empty):hover{background:rgba(197,160,89,.22)}
.cal-d.mid{background:rgba(197,160,89,.28)}
.cal-d.edge{background:var(--ink);color:var(--paper);font-weight:600}
.icon-btn:disabled{opacity:.25;cursor:not-allowed}

.sum{display:flex;margin-top:clamp(1.4rem,3vw,2rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sum-c{flex:1 1 0;padding:.95rem .4rem}
.sum-c:first-child{padding-left:0}
.sum-c+.sum-c{border-left:1px solid var(--line-soft)}
.sum-c+.sum-c .sum-l,.sum-c+.sum-c .sum-v{padding-left:.7rem}
.sum-c-n{flex:0 0 68px;padding-right:0}
.sum-l{font-size:8.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-5)}
.sum-v{font-family:var(--display);font-size:1.05rem;color:var(--ink);margin-top:.35rem}

.guests{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.guests-note{font-size:12px;font-weight:300;color:var(--muted-2);margin-top:.3rem}
.stepper{display:flex;align-items:center;gap:.9rem}
.stepper span{font-family:var(--display);font-size:1.25rem;color:var(--ink);min-width:20px;text-align:center}

.price{padding:1.2rem 0 0}
.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:13px;font-weight:300;color:var(--muted)}
.price-row span:last-child{font-weight:400;color:var(--ink)}
.price-total{border-top:1px solid var(--line-soft);margin-top:.4rem}
.price-total span:last-child{font-family:var(--display);font-size:1.7rem;font-weight:400;line-height:1}
.price-note{font-size:11.5px;font-weight:300;line-height:1.65;color:#8a8a7f;margin-top:.6rem}

/* ---------------------------- lightbox ---------------------------- */
.lb{position:fixed;inset:0;z-index:98;background:rgba(14,24,19,.96);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s}
.lb.on{opacity:1;visibility:visible;transition:opacity .45s ease,visibility 0s linear 0s}
.lb img{max-width:90vw;max-height:82vh;object-fit:contain}
.lb-cap{position:absolute;left:50%;bottom:clamp(1.2rem,3vw,2.2rem);transform:translateX(-50%);width:80%;text-align:center;font-size:9.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:rgba(244,241,234,.6)}
.lb-close{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}
.lb-prev{position:absolute;left:clamp(.5rem,2vw,2rem);top:50%;transform:translateY(-50%)}
.lb-next{position:absolute;right:clamp(.5rem,2vw,2rem);top:50%;transform:translateY(-50%)}

/* ---------------------------- responsive ---------------------------- */
@media (max-width:940px){
  .nav{display:none}
  .burger{display:block}
  .roompreview{display:none}
  .room-thumb{display:block}
  .bigquote p{font-size:clamp(1.6rem,7vw,2.4rem)}
  .hero-h1{max-width:none}
  .hero-in{padding-bottom:clamp(5.6rem,16vw,7rem)}
  .hero-scrim{background:linear-gradient(178deg,rgba(14,22,17,.72) 0%,rgba(14,22,17,.42) 34%,rgba(14,22,17,.62) 72%,rgba(14,22,17,.95) 100%)}
  .hero-h1,.hero-eyebrow,.hero-sub{text-shadow:0 2px 14px rgba(6,10,8,.6)}
}
@media (min-width:941px){
  .mobmenu{display:none}
}
@media (max-height:720px){
  .scrollcue{display:none}
  .hero-in{padding-top:clamp(7rem,16vw,10rem)}
}
@media (max-width:560px){
  .bar-div,.bar .bar-block:first-child{display:none}
  .bar-in{gap:.7rem}
  .bar .btn{flex:1 1 100%}
  .fact{flex:1 1 45%;padding-left:0;padding-right:clamp(1rem,4vw,1.6rem)}
  .sum-c-n{flex:0 0 56px}
  .hdr-act .btn-gold{display:none}
  .hdr .mark-name{font-size:.98rem}
  .hdr .mark-desc{font-size:7px;letter-spacing:.36em}
}

@media print{
  .hdr,.bar,.drawer,.scrim,.lb,.mobmenu,.scrollcue{display:none!important}
  body{background:#fff}
  .reveal{opacity:1;transform:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .rule-full{transform:scaleX(1)}
}
