/* ═══════════════════════════════════════════
   Villa Nicola — redesign concept · v2 (modern)
   ═══════════════════════════════════════════ */
:root{
  --ink:#211d18;
  --ink-soft:#4a443b;
  --muted:#7c7365;
  --paper:#fbf7f0;
  --cream:#f3ece0;
  --cream-2:#ece2d2;
  --brass:#b28642;
  --brass-dark:#946d31;
  --brass-lt:#dcb877;
  --green:#20281f;
  --green-2:#2a352a;
  --line:rgba(33,29,24,.14);
  --shadow:0 26px 60px -28px rgba(33,29,24,.5);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --wrap:1240px;
  --nav-h:76px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
::selection{background:var(--brass);color:#fff}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
section[id]{scroll-margin-top:calc(var(--nav-h) + 8px)}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* film-grain overlay (subtle, site-wide) */
body::after{
  content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
  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='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- type ---- */
.display{font-family:var(--serif);font-weight:500;line-height:1.02;letter-spacing:.004em;font-size:clamp(2.2rem,5vw,3.9rem);color:var(--ink)}
.eyebrow{display:flex;align-items:center;gap:.7rem;font-family:var(--sans);text-transform:uppercase;letter-spacing:.3em;font-size:.7rem;font-weight:500;color:var(--brass-dark);margin-bottom:1.2rem}
.eyebrow--light{color:var(--brass-lt)}
.eyebrow__no{font-family:var(--serif);font-style:italic;font-size:1.05rem;letter-spacing:0;text-transform:none;color:var(--brass);opacity:.9}
.eyebrow__no::after{content:"";display:inline-block;width:2.2rem;height:1px;background:currentColor;vertical-align:middle;margin-left:.7rem;opacity:.5}
h3{font-family:var(--serif);font-weight:600;font-size:1.4rem;line-height:1.2}
p{color:var(--ink-soft)}
em{font-style:italic}

/* ---- layout ---- */
.section{padding:clamp(4.5rem,9vw,8.5rem) clamp(1.25rem,5vw,3rem);position:relative}
.section__head{max-width:var(--wrap);margin:0 auto clamp(2.4rem,4vw,3.6rem)}
.section__head .display{max-width:15ch}

/* ---- buttons ---- */
.btn{
  --bg:var(--brass);--fg:#fff;--bd:var(--brass);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--sans);font-weight:500;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;
  padding:1em 2em;border:1px solid var(--bd);border-radius:2px;background:var(--bg);color:var(--fg);cursor:pointer;overflow:hidden;
  transition:transform .4s var(--ease),background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s var(--ease);pointer-events:none}
.btn:hover::after{left:130%}
.btn--brass{--bg:var(--brass);--fg:#fff;--bd:var(--brass);box-shadow:0 12px 26px -14px rgba(178,134,66,.95)}
.btn--brass:hover{--bg:var(--brass-dark);--bd:var(--brass-dark)}
.btn--line{--bg:transparent;--fg:#f3ece0;--bd:rgba(243,236,224,.5)}
.btn--line:hover{--bg:rgba(243,236,224,.1);--bd:rgba(243,236,224,.9)}
.btn--dark{--bg:var(--green);--fg:#f3ece0;--bd:var(--green)}
.btn--dark:hover{--bg:#151b14;--bd:#151b14}
.btn--wide{width:100%}

/* ═══ NAV (frosted) ═══ */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;transition:box-shadow .4s var(--ease),transform .4s var(--ease)}
/* frosted glass lives on a pseudo — a backdrop-filter on .nav itself would
   become the containing block for the fixed mobile drawer and break it */
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(251,247,240,.72);
  backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);transition:background .4s var(--ease)}
.nav__inner{max-width:var(--wrap);margin:0 auto;padding:1rem clamp(1.25rem,5vw,3rem);display:flex;align-items:center;justify-content:space-between}
.nav__brand{display:flex;align-items:center;gap:.6rem;color:var(--ink)}
.nav__mark{font-family:var(--serif);font-weight:600;font-size:1.02rem;letter-spacing:.04em;width:2.35rem;height:2.35rem;display:grid;place-items:center;border:1px solid var(--brass);border-radius:50%;color:var(--brass-dark)}
.nav__name{font-family:var(--serif);font-size:1.5rem;font-weight:500;letter-spacing:.02em}
.nav__links{display:flex;align-items:center;gap:2.1rem}
.nav__links a{position:relative;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav__links a:not(.nav__cta):hover::after{transform:scaleX(1);transform-origin:left}
.langsw{display:flex;align-items:center;gap:.1rem;margin-left:.3rem}
.langsw button{background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.08em;color:var(--muted);padding:.3rem .34rem;transition:color .25s;position:relative}
.langsw button+button::before{content:"";position:absolute;left:-1px;top:50%;transform:translateY(-50%);width:1px;height:.8em;background:var(--line)}
.langsw button:hover{color:var(--ink)}
.langsw button.is-active{color:var(--brass-dark)}
.hostquote__mark{color:var(--brass-lt)}
.nav__cta{margin-left:.4rem}
.nav__cta.btn{padding:.75em 1.4em}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;z-index:60}
.nav__toggle span{width:26px;height:2px;background:var(--ink);transition:.3s var(--ease)}
.nav.is-solid{box-shadow:0 1px 0 var(--line),0 14px 34px -26px rgba(0,0,0,.5)}
.nav.is-solid::before{background:rgba(251,247,240,.94)}
.nav.is-hidden{transform:translateY(-100%)}

/* ═══ HERO (split) ═══ */
.hero{display:flex;min-height:100svh;background:var(--green);position:relative}
.hero__panel{flex:1 1 47%;background:var(--green);color:#f3ece0;display:flex;align-items:center;position:relative;z-index:2}
.hero__panel::after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(220,184,119,.4),transparent)}
.hero__panel-inner{padding:calc(var(--nav-h) + 3.5vw) clamp(1.5rem,4.5vw,4.5rem) 3.5vw;max-width:620px;margin-left:auto}
.hero .eyebrow__no{color:var(--brass-lt)}
.hero .eyebrow__no::after{background:var(--brass-lt)}
.hero__title{font-family:var(--serif);font-weight:500;font-size:clamp(3.6rem,8vw,7rem);line-height:.92;color:#f6efe1;letter-spacing:.01em}
.hero__title-em{font-style:italic;color:var(--brass-lt)}
.hero__sub{margin:1.6rem 0 2.4rem;max-width:38ch;color:#e8e0d1;font-size:clamp(1.02rem,1.5vw,1.2rem)}
.hero__sub em{color:var(--brass-lt);font-style:italic}
.hero__actions{display:flex;gap:1rem;flex-wrap:wrap}
.hero__meta{display:flex;align-items:center;gap:1rem;margin-top:3rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,236,224,.6)}
.hero__meta .dot{width:5px;height:5px;border-radius:50%;background:var(--brass)}
.hero__visual{flex:1 1 53%;position:relative;overflow:hidden}
.hero__img{position:absolute;inset:0}
.hero__img img{position:absolute;top:-11%;left:0;width:100%;height:122%;object-fit:cover;will-change:transform}
/* hero living montage (Ken Burns cross-fade) */
.kenburns{position:absolute;inset:0;overflow:hidden;background:var(--green)}
.kb-slide{position:absolute;inset:0;z-index:1;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.6s ease;will-change:opacity,transform}
.kb-slide.is-active{opacity:1;z-index:2}
.kb-slide.is-active.kb--a{animation:kbA 8s ease-out forwards}
.kb-slide.is-active.kb--b{animation:kbB 8s ease-out forwards}
.kb-slide.is-active.kb--c{animation:kbC 8s ease-out forwards}
/* cinematic scrim — anchors the panel edge & badge into the photo */
.hero__visual::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(32,40,31,.45),transparent 22%),linear-gradient(0deg,rgba(20,24,20,.38),transparent 32%)}
@keyframes kbA{from{transform:scale(1.05) translate(0,0)}to{transform:scale(1.2) translate(-1.8%,-1.6%)}}
@keyframes kbB{from{transform:scale(1.06) translate(0,0)}to{transform:scale(1.22) translate(1.8%,1.2%)}}
@keyframes kbC{from{transform:scale(1.08) translate(0,1.2%)}to{transform:scale(1.24) translate(-1.2%,-2%)}}
/* Option A: live Street View background (activated via assets/config.js) */
.streetview{position:absolute;inset:0;z-index:2;display:none}
.streetview.is-on{display:block}
.streetview img{max-width:none}
.hero__badge{position:absolute;bottom:2rem;left:2rem;z-index:3;font-family:var(--serif);font-style:italic;font-size:1.5rem;line-height:1;color:#fff;text-align:center;
  width:5.4rem;height:5.4rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;backdrop-filter:blur(3px);background:rgba(20,20,15,.25);
  box-shadow:0 8px 30px -10px rgba(0,0,0,.5);animation:badgeFloat 7s ease-in-out infinite}
@keyframes badgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ═══ MARQUEE ═══ */
.marquee{background:var(--green);color:var(--cream);overflow:hidden;padding:1rem 0;border-top:1px solid rgba(220,184,119,.18);border-bottom:1px solid rgba(220,184,119,.18)}
.marquee__track{display:inline-flex;align-items:center;gap:2.4rem;white-space:nowrap;font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.9rem);animation:marq 34s linear infinite}
.marquee__track i{color:var(--brass-lt);font-style:normal;font-size:.8em}
@keyframes marq{to{transform:translateX(-50%)}}

/* ═══ ABOUT ═══ */
.welcome{background:var(--paper)}
.welcome__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2rem,5vw,5.5rem);align-items:center}
.welcome__text p{margin-top:1.1rem;font-size:1.06rem}
.welcome__text .display{margin-bottom:.4rem}
.signature{font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--brass-dark);margin-top:1.7rem;line-height:1.4}
.welcome__media{position:relative}
.arch{overflow:hidden;border-radius:clamp(120px,20vw,240px) clamp(120px,20vw,240px) 6px 6px;box-shadow:var(--shadow)}
.arch img{width:100%;aspect-ratio:4/5;object-fit:cover;will-change:transform}

/* ═══ SUITE ═══ */
.suite{background:var(--cream)}
.suite__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.suite__main{overflow:hidden;border-radius:3px;box-shadow:var(--shadow);aspect-ratio:16/11}
.suite__main img{width:100%;height:100%;object-fit:cover;transition:opacity .4s,transform 1s var(--ease)}
.suite__main:hover img{transform:scale(1.04)}
.suite__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-top:.7rem}
.suite__thumbs button{border:0;padding:0;background:none;cursor:pointer;border-radius:2px;overflow:hidden;aspect-ratio:1;opacity:.62;transition:opacity .3s,outline .2s;outline:2px solid transparent;outline-offset:2px}
.suite__thumbs button img{width:100%;height:100%;object-fit:cover}
.suite__thumbs button:hover{opacity:.9}
.suite__thumbs button.is-active{opacity:1;outline-color:var(--brass)}
.suite__info p{font-size:1.07rem}
.suite__amenities{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.2rem;margin:1.7rem 0}
.suite__amenities li{position:relative;padding-left:1.5rem;font-size:.95rem;color:var(--ink-soft)}
.suite__amenities li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;background:var(--brass);border-radius:50%}
.suite__price{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:1.7rem}
.suite__amount{font-family:var(--serif);font-size:2.7rem;font-weight:600;color:var(--ink);line-height:1}
.suite__per{color:var(--muted);font-size:.95rem}
.suite__note{font-size:.8rem;color:var(--muted);max-width:20ch;text-align:right}

/* ═══ HOST QUOTE ═══ */
.hostwrap{background:var(--green);color:#efe7d8}
.host__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:minmax(230px,320px) 1fr;gap:clamp(2.2rem,5vw,5rem);align-items:center}
.host__media{margin:0}
.arch--host{border-radius:clamp(90px,12vw,160px) clamp(90px,12vw,160px) 4px 4px;box-shadow:0 26px 52px -26px rgba(0,0,0,.65)}
.hostquote{margin:0;border:0;text-align:left}
.hostquote .eyebrow--light{color:#e2c78e}
.hostquote__q{font-family:var(--serif);font-style:italic;font-weight:500;color:#f3ece0;font-size:clamp(1.25rem,2.3vw,1.9rem);line-height:1.42;margin:.6rem 0 1.8rem}
.hostquote__cite{font-style:normal;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:#c9b48a}

/* ═══ GALLERY ═══ */
.gallery{background:var(--paper)}
.gallery__grid{max-width:var(--wrap);margin:0 auto;column-count:4;column-gap:14px}
.gallery__item{display:block;width:100%;margin:0 0 14px;break-inside:avoid;overflow:hidden;border-radius:3px;cursor:pointer;position:relative;background:var(--cream-2)}
.gallery__item img{width:100%;height:auto;display:block;transition:transform .85s var(--ease)}
.gallery__item::after{content:"";position:absolute;inset:0;background:rgba(33,29,24,0);transition:background .4s}
.gallery__item::before{content:"↗";position:absolute;z-index:2;top:12px;right:14px;color:#fff;font-size:1.1rem;opacity:0;transform:translateY(-6px);transition:.4s var(--ease)}
.gallery__item:hover img{transform:scale(1.06)}
.gallery__item:hover::after{background:rgba(33,29,24,.18)}
.gallery__item:hover::before{opacity:.9;transform:none}

/* ═══ STREET VIEW TOUR ═══ */
.tour{background:var(--paper)}
.tour__frame{position:relative;max-width:var(--wrap);margin:0 auto;aspect-ratio:16/9;border-radius:clamp(90px,14vw,160px) 3px 3px 3px;overflow:hidden;box-shadow:var(--shadow);background:var(--green)}
.tour__fallback{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center}
.tour__fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tour__fallback::after{content:"";position:absolute;inset:0;background:rgba(20,24,20,.4)}
.tour__fallback .btn{position:relative;z-index:2}
.tour__hint{max-width:var(--wrap);margin:1.1rem auto 0;text-align:center;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
@media(max-width:700px){ .tour__frame{aspect-ratio:4/3} }

/* ═══ LOCATION ═══ */
.location{background:var(--cream)}
.location__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.location__text p{margin-top:1rem;font-size:1.05rem}
.location__addr{font-style:normal;margin:1.7rem 0;font-size:1.05rem;line-height:1.8;color:var(--ink)}
.location__map{border-radius:clamp(90px,14vw,150px) 3px 3px 3px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--cream-2)}
.location__map iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(.98)}

/* ═══ STORIES ═══ */
.stories{background:var(--cream)}
.stories__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.story{position:relative;display:flex;flex-direction:column;gap:.55rem;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:1.7rem 1.6rem 1.4rem;transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.story:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.story--feature{grid-row:span 2;justify-content:center;background:var(--green);border-color:transparent}
.story--feature .story__title{color:#f6efe1;font-size:1.9rem}
.story--feature .story__excerpt{color:rgba(243,236,224,.75)}
.story--feature::after{content:"”";position:absolute;top:.4rem;right:1.2rem;font-family:var(--serif);font-size:5.5rem;line-height:1;color:var(--brass-lt);opacity:.35}
.story__tag{width:fit-content;font-size:.62rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-dark);border:1px solid currentColor;border-radius:2rem;padding:.28em .9em;margin-bottom:.3rem}
.story--feature .story__tag{color:var(--brass-lt)}
.story__tag--review{color:#4e7a5d}
.story__title{font-family:var(--serif);font-weight:600;font-size:1.32rem;line-height:1.18;color:var(--ink)}
.story__excerpt{font-size:.92rem;color:var(--muted);line-height:1.55}
.story__date{margin-top:auto;padding-top:.6rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.story--feature .story__date{color:rgba(243,236,224,.5)}
.stories__more{max-width:var(--wrap);margin:2.2rem auto 0;text-align:center}
@media(max-width:980px){ .stories__grid{grid-template-columns:1fr 1fr} .story--feature{grid-column:span 2;grid-row:auto} }
@media(max-width:560px){ .stories__grid{grid-template-columns:1fr} .story--feature{grid-column:auto} }

/* ═══ STORIES PAGE ═══ */
.pagehero{background:var(--green);color:#f3ece0;padding:calc(var(--nav-h) + clamp(3rem,7vw,5.5rem)) clamp(1.25rem,5vw,3rem) clamp(3rem,6vw,4.5rem);position:relative;overflow:hidden}
.pagehero::after{content:"”";position:absolute;top:-1rem;right:2vw;font-family:var(--serif);font-size:clamp(14rem,28vw,26rem);line-height:1;color:var(--brass-lt);opacity:.1;pointer-events:none}
.pagehero__inner{max-width:var(--wrap);margin:0 auto}
.pagehero__title{font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,6vw,4.8rem);line-height:1.02;color:#f6efe1}
.pagehero__sub{margin-top:1.2rem;max-width:52ch;color:rgba(243,236,224,.78);font-size:clamp(1rem,1.4vw,1.15rem)}
.storylist{background:var(--paper)}
.storylist__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.scard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.scard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.scard__media{aspect-ratio:3/2;overflow:hidden;background:var(--cream-2)}
.scard__media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.scard:hover .scard__media img{transform:scale(1.06)}
.scard__body{display:flex;flex-direction:column;gap:.6rem;padding:1.3rem 1.4rem 1.5rem;flex:1}
.scard__meta{display:flex;align-items:center;gap:.8rem}
.scard__meta time{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.scard__title{font-family:var(--serif);font-weight:600;font-size:1.35rem;line-height:1.16;color:var(--ink)}
.scard__excerpt{font-size:.9rem;color:var(--muted);line-height:1.55}
.scard__more{margin-top:auto;padding-top:.5rem;font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-dark)}
.scard__more i{font-style:normal;transition:transform .3s var(--ease);display:inline-block}
.scard:hover .scard__more i{transform:translateX(5px)}
.story__tag--fashion{color:#8a5a7a}
.story__tag--villa{color:var(--brass-dark)}
.story__tag--event{color:var(--brass-dark)}
/* featured first card spans wide */
@media(min-width:981px){
  .scard:first-child{grid-column:span 3;flex-direction:row;min-height:340px}
  .scard:first-child .scard__media{flex:1 1 58%;aspect-ratio:auto}
  .scard:first-child .scard__body{flex:1 1 42%;justify-content:center;padding:2.4rem}
  .scard:first-child .scard__title{font-size:2.1rem}
  .scard:first-child .scard__excerpt{font-size:1rem}
}
/* reader overlay */
.reader{position:fixed;inset:0;z-index:220;background:rgba(16,14,11,.9);display:none;align-items:center;justify-content:center;padding:clamp(.8rem,3vw,2.5rem);opacity:0;transition:opacity .3s}
.reader.is-open{display:flex;opacity:1}
.reader__panel{position:relative;background:var(--paper);border-radius:4px;max-width:860px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 40px 90px rgba(0,0,0,.5)}
.reader__media{aspect-ratio:16/8;overflow:hidden;background:var(--cream-2)}
.reader__media img{width:100%;height:100%;object-fit:cover}
.reader__body{padding:clamp(1.6rem,4vw,2.8rem)}
.reader__title{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.1;color:var(--ink);margin:.7rem 0 1.1rem}
.reader__text p{margin-bottom:1rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.75}
.reader__text p:first-child::first-letter{font-family:var(--serif);font-size:3.2em;float:left;line-height:.82;padding:.06em .12em 0 0;color:var(--brass-dark)}
.reader__nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.reader__nav .btn{--fg:var(--ink);--bd:var(--line)}
.reader__nav .btn:hover{--bg:var(--cream);--bd:var(--brass)}
.reader__close{position:sticky;top:.9rem;margin-left:calc(100% - 3.3rem);z-index:5;width:2.4rem;height:2.4rem;border-radius:50%;border:0;background:rgba(20,18,14,.55);color:#fff;font-size:1.05rem;cursor:pointer;backdrop-filter:blur(4px);transition:background .3s}
.reader__close:hover{background:rgba(20,18,14,.85)}
@media(max-width:980px){ .storylist__grid{grid-template-columns:1fr 1fr} }
@media(max-width:640px){ .storylist__grid{grid-template-columns:1fr} .reader{padding:0} .reader__panel{max-height:100vh;border-radius:0} }

/* ═══ BOOKING ═══ */
.book{position:relative;padding:0;background:var(--green-2);color:#f3ece0;display:grid;grid-template-columns:1fr 1fr;min-height:660px;overflow:hidden}
.book__media{position:relative;overflow:hidden}
.book__media img{position:absolute;top:-11%;left:0;width:100%;height:122%;object-fit:cover;will-change:transform}
.book__panel{padding:clamp(3rem,6vw,5.5rem) clamp(1.5rem,5vw,4.5rem);align-self:center;max-width:660px}
.book__panel .display{color:#f6efe1}
.book__lead{color:rgba(243,236,224,.8);margin-bottom:2rem;font-size:1.05rem}

/* ═══ FORMS ═══ */
.form{display:flex;flex-direction:column;gap:1rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form label{display:flex;flex-direction:column;gap:.4rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:inherit}
.book .form label{color:rgba(243,236,224,.75)}
.form .opt{text-transform:none;letter-spacing:0;opacity:.6;font-weight:400}
.form input,.form select,.form textarea{font-family:var(--sans);font-size:.98rem;letter-spacing:normal;text-transform:none;font-weight:400;padding:.85em .95em;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink);transition:border-color .25s,box-shadow .25s;width:100%}
.book .form input,.book .form select,.book .form textarea{background:rgba(255,255,255,.96)}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--brass);box-shadow:0 0 0 3px rgba(178,134,66,.18)}
.form textarea{resize:vertical}
.form button{margin-top:.4rem}
.form__status{font-size:.9rem;min-height:1.2em;margin-top:.2rem;letter-spacing:normal;text-transform:none}
.form__status.is-ok{color:#3f7d54}
.book .form__status.is-ok{color:#bfe3c9}
.form__status.is-err{color:#c0553f}
.book .form__status.is-err{color:#f0b6a6}

.contact{background:var(--paper)}
.contact__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem)}
.contact__info p{margin-top:.4rem}
.contact__list{list-style:none;margin-top:1.7rem;display:flex;flex-direction:column;gap:.9rem}
.contact__list li{display:flex;gap:.9rem;align-items:baseline;font-size:1.02rem;color:var(--ink)}
.contact__list li span{flex:0 0 5.5rem;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-dark);font-weight:500}
.contact__list a{position:relative;transition:color .3s}
.contact__list a:hover{color:var(--brass-dark)}
.contact__form{background:var(--cream);padding:clamp(1.6rem,3vw,2.4rem);border-radius:3px;box-shadow:var(--shadow)}

/* ═══ FOOTER ═══ */
.footer{background:var(--green);color:#d9d0bf}
.footer__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(3rem,6vw,4.5rem) clamp(1.25rem,5vw,3rem);display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}
.footer__logo{width:150px;filter:brightness(1.1);margin-bottom:1rem}
.footer__brand p{color:rgba(217,208,191,.75);max-width:26ch;font-family:var(--serif);font-style:italic;font-size:1.15rem}
.footer__nav{display:flex;flex-direction:column;gap:.7rem}
.footer__nav a{position:relative;width:fit-content;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(217,208,191,.8);transition:color .3s}
.footer__nav a::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:var(--brass-lt);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.footer__nav a:hover{color:#fff}
.footer__nav a:hover::after{transform:scaleX(1);transform-origin:left}
.footer__contact p{color:rgba(217,208,191,.8);margin-bottom:.8rem;line-height:1.7}
.footer__contact a:hover{color:var(--brass-lt)}
.footer__base{border-top:1px solid rgba(255,255,255,.1);padding:1.4rem clamp(1.25rem,5vw,3rem);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;max-width:var(--wrap);margin:0 auto}
.footer__base p{font-size:.76rem;color:rgba(217,208,191,.55);letter-spacing:.06em}

/* ═══ LIGHTBOX ═══ */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(16,14,11,.95);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.lightbox.is-open{display:flex;opacity:1}
.lightbox img{max-width:90vw;max-height:86vh;border-radius:3px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lightbox__close{position:absolute;top:1.3rem;right:1.6rem;background:none;border:0;color:#fff;font-size:1.7rem;cursor:pointer;opacity:.8}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:2rem;width:54px;height:54px;border-radius:50%;cursor:pointer;transition:background .3s}
.lightbox__nav:hover{background:rgba(255,255,255,.2)}
.lightbox__prev{left:1.6rem}.lightbox__next{right:1.6rem}
.lightbox__close:hover{opacity:1}

/* ═══ REVEAL ═══ */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ═══ RESPONSIVE ═══ */
@media(max-width:980px){
  .nav__links{position:fixed;inset:0 0 0 auto;width:min(82vw,340px);background:var(--paper);flex-direction:column;justify-content:center;gap:1.9rem;padding:3rem;transform:translateX(100%);transition:transform .4s var(--ease);box-shadow:var(--shadow)}
  .nav__links::before{content:"";position:fixed;inset:0;right:100%;background:rgba(20,18,14,.45);opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
  .nav__links.is-open{transform:none}
  .nav__links.is-open::before{opacity:1}
  .nav__links a{font-size:1rem}
  .nav__cta{margin-left:0}
  .nav__toggle{display:flex}
  .nav__toggle.is-x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav__toggle.is-x span:nth-child(2){opacity:0}
  .nav__toggle.is-x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .hero{flex-direction:column;min-height:auto}
  .hero__visual{flex:none;height:46vh;min-height:320px;order:-1}
  .hero__img img{height:100%}
  .hero__panel{flex:none}
  .hero__panel::after{display:none}
  .hero__panel-inner{padding:calc(var(--nav-h) + 2rem) clamp(1.5rem,6vw,3rem) 3rem;margin:0;max-width:none}
  .welcome__grid,.suite__grid,.location__grid,.contact__grid{grid-template-columns:1fr}
  .host__grid{grid-template-columns:1fr;gap:2.6rem}
  .host__media{max-width:300px;margin:0 auto}
  .hostquote{text-align:center}
  .hostquote .eyebrow--light{justify-content:center}
  .suite__info{order:2}
  .welcome__media{max-width:460px;margin:0 auto}
  .book{grid-template-columns:1fr}
  .book__media{min-height:300px;order:-1}
  .book__media img{position:relative;height:100%}
  .gallery__grid{column-count:2}
}
@media(max-width:560px){
  .form__row{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr;gap:2rem}
  .suite__price{flex-direction:column;align-items:flex-start;gap:.4rem}
  .suite__note{text-align:left}
  .hero__actions{flex-direction:column;align-items:stretch;max-width:300px}
  .hero__badge{width:4.4rem;height:4.4rem;font-size:1.2rem;bottom:1.2rem;left:1.2rem}
  .gallery__grid{column-gap:10px}
  .gallery__item{margin-bottom:10px}
  .lightbox__nav{width:42px;height:42px;font-size:1.5rem;background:rgba(0,0,0,.35)}
  .lightbox__prev{left:.6rem}.lightbox__next{right:.6rem}
  .lightbox img{max-width:96vw}
  .marquee__track{font-size:1.15rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  /* the marquee is the one animation kept everywhere (slower here) — a static
     half-cut ribbon reads as broken, and OS "reduce motion" is often just
     Windows' default "animation effects off", not a user choice */
  .marquee__track{animation:marq 60s linear infinite!important}
}
