/* ===================================================================
   LaMaison, shared design system for the new site
   Optima + Fira Mono only. Bone / Ivory / Ink / Bronze / Olive.
   =================================================================== */
@font-face{
  font-family:"Fira Mono Local";
  src:url("fonts/FiraMono Regular.woff2") format("woff2"),url("fonts/FiraMono Regular.ttf") format("truetype");
  font-weight:400; font-display:swap;
}
@font-face{
  font-family:"Optima Local";
  src:url("fonts/Optima Regular.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Optima Local";
  src:url("fonts/Optima Bold.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}
:root{
  --bone:#F4F1EA;
  --ivory:#FBFAF6;
  --ink:#23211C;
  --charcoal:#3E3E3E;
  --bronze:#9C8A76;
  --sand:#D5CCBE;
  --olive:#4B5043;
  --olive-tint:#EAEDE4;
  --taupe:#B29F8E;
  --taupe-tint:#DED3C6;
  --serif:"Optima Local","Optima","Optima nova LT Pro",Candara,"Gill Sans","Gill Sans MT","Segoe UI",sans-serif;
  --mono:"Fira Mono Local",ui-monospace,Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--serif);background:var(--bone);color:var(--ink);font-size:17px;line-height:1.72;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
h1,h2,h3{font-weight:400;line-height:1.14;letter-spacing:.006em}
p{margin-bottom:1.15em}
p:last-child{margin-bottom:0}
a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;color:var(--bronze);display:inline-block}

/* ===== NAV ===== */
header.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:26px clamp(20px,5vw,64px);transition:background .5s ease,padding .5s ease,box-shadow .5s ease}
header.nav.solid{background:rgba(244,241,234,.96);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(35,33,28,.08);padding:15px clamp(20px,5vw,64px)}
.nav-links{display:flex;gap:24px;justify-self:start}
.nav-links a{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#fff;opacity:.92;transition:opacity .25s,color .5s}
header.nav.solid .nav-links a{color:var(--ink)}
.nav-links a:hover{opacity:.55}
.wordmark{justify-self:center;font-family:var(--serif);font-size:26px;letter-spacing:.02em;color:#fff;transition:color .5s}
header.nav.solid .wordmark{color:var(--ink)}
.nav-cta{justify-self:end}
.nav-cta a{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:6px;transition:all .35s}
header.nav.solid .nav-cta a{color:var(--ink);border-color:var(--bronze)}
.nav-cta a:hover{border-color:var(--bronze);color:var(--bronze)}
/* dark variant for pages whose hero is light or absent */
header.nav.onlight .nav-links a,header.nav.onlight .wordmark{color:var(--ink)}
header.nav.onlight .nav-cta a{color:var(--ink);border-color:var(--bronze)}
@media(max-width:1040px){.nav-links{display:none}header.nav{display:flex;justify-content:space-between}.wordmark{justify-self:auto}}
@media(max-width:560px){.nav-cta a span{display:none}.wordmark{font-size:22px}}
/* language switch */
.nav-right{justify-self:end;display:flex;align-items:center;gap:clamp(16px,2vw,28px)}
.langsw{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#fff;line-height:1}
.langsw a{opacity:.5;transition:opacity .25s}
.langsw a:hover{opacity:1}
.langsw .on{opacity:1}
.langsw .sep{opacity:.4}
header.nav.solid .langsw,header.nav.onlight .langsw{color:var(--ink)}
.nav-rates{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#fff;opacity:.92;text-decoration:none;transition:opacity .25s,color .5s}
.nav-rates:hover{opacity:.55}
header.nav.solid .nav-rates,header.nav.onlight .nav-rates{color:var(--ink)}
/* mobile menu */
.navtoggle{display:none}
.mobilemenu{position:fixed;inset:0;z-index:65;background:var(--bone);opacity:0;visibility:hidden;transition:opacity .35s ease;display:flex;align-items:center;justify-content:center}
.mobilemenu.open{opacity:1;visibility:visible}
.mm-inner{display:flex;flex-direction:column;align-items:center;gap:26px;text-align:center;padding:24px}
.mm-inner a{font-family:var(--serif);font-size:26px;color:var(--ink);padding:8px 14px;min-height:44px;display:flex;align-items:center}
.mm-inner .mm-cta{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);border:1px solid var(--bronze);padding:16px 34px;margin-top:14px}
.mm-inner .mm-lang{flex-direction:row;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--charcoal);margin-top:6px}
@media(max-width:1040px){
  .nav-right,.nav-cta{display:none}
  .navtoggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:0;cursor:pointer;z-index:70}
  .navtoggle span{display:block;height:1.5px;width:24px;margin:0 auto;background:#fff;transition:transform .3s ease,background .3s ease}
  header.nav.solid .navtoggle span,header.nav.onlight .navtoggle span,.navtoggle.on span{background:var(--ink)}
  .navtoggle.on span:first-child{transform:translateY(6.5px) rotate(45deg)}
  .navtoggle.on span:last-child{transform:translateY(-6.5px) rotate(-45deg)}
}

/* ===== HOME HERO (video) ===== */
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden;background:#14110d}
.hero .videobg{position:absolute;inset:0;z-index:0;background:#14110d center/cover no-repeat}
.hero .videobg iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1.35);width:100vw;height:56.25vw;min-height:100vh;min-width:177.78vh;border:0;pointer-events:none}
.hero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,17,13,.5),rgba(20,17,13,.32) 45%,rgba(20,17,13,.6))}
.hero .content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;padding:40px 24px 40px}
/* four pillars pinned to the bottom of the hero */
.hero .hero-pillars{position:absolute;left:0;right:0;bottom:0;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.22)}
.hero .hero-pillars .p{padding:20px clamp(16px,2.2vw,34px) 26px;border-left:1px solid rgba(255,255,255,.16)}
.hero .hero-pillars .p:first-child{border-left:0}
.hero .hero-pillars .n{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;color:#e9dcc4}
.hero .hero-pillars h3{font-size:clamp(15px,1.3vw,18px);color:#fff;margin:9px 0 6px;font-weight:400}
.hero .hero-pillars p{font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.82)}
@media(max-width:820px){
  .hero .content{padding-bottom:40px}
  .hero .hero-pillars{grid-template-columns:1fr 1fr}
  .hero .hero-pillars .p:nth-child(odd){border-left:0}
  .hero .hero-pillars .p:nth-child(n+3){border-top:1px solid rgba(255,255,255,.16)}
}
@media(max-width:480px){.hero .hero-pillars p{display:none}.hero .hero-pillars h3{font-size:14px}}
.hero .content .eyebrow{color:#e9dcc4;margin-bottom:26px}
.hero h1{font-size:clamp(27px,3.8vw,50px);line-height:1.16;max-width:min(34ch,100%);text-shadow:0 2px 40px rgba(0,0,0,.4)}
.hero .sub{font-size:clamp(15px,1.5vw,20px);margin-top:22px;color:#f2ead9;max-width:min(46ch,100%)}
.hero .cta{margin-top:40px}
.hero .cta a,.pillbtn{font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,.6);padding:17px 40px;transition:all .35s;display:inline-block}
.hero .cta a:hover{background:#fff;color:var(--ink);border-color:#fff}
.scrolldown{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:2;width:1px;height:46px;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,0));animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ===== SUBPAGE HERO ===== */
.page-hero{position:relative;height:74vh;min-height:520px;overflow:hidden;background:#14110d}
.page-hero .bg{position:absolute;inset:0;z-index:0}
.page-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,13,.36),rgba(20,17,13,.5))}
.page-hero .content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;color:#fff;padding:0 24px clamp(6px,1vh,16px)}
.page-hero .eyebrow{color:#e9dcc4;margin-bottom:22px}
.page-hero h1{font-size:clamp(24px,3vw,40px);max-width:min(20ch,100%);text-shadow:0 2px 34px rgba(0,0,0,.4)}
.page-hero .sub{margin-top:20px;color:#f2ead9;font-size:clamp(15px,1.4vw,19px);max-width:min(44ch,100%)}

/* ===== SECTIONS ===== */
/* One&Only subpage opening: light centered intro + big image */
.introsec{padding:clamp(128px,17vh,196px) clamp(20px,5vw,64px) clamp(40px,6vh,72px);text-align:center;background:var(--bone)}
.introwrap{max-width:840px;margin:0 auto}
.introwrap .eyebrow{margin-bottom:24px}
.introwrap h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.6vw,44px);line-height:1.12;color:var(--ink);margin-bottom:22px;letter-spacing:.004em}
.introwrap p{color:var(--charcoal);font-size:clamp(15px,1.5vw,18px);line-height:1.62;max-width:62ch;margin:0 auto}
.bigimg{padding:0}
.bigimg img{width:100%;height:clamp(420px,64vh,720px);object-fit:cover;display:block}
/* ===== JOURNAL (editorial, Reschio register, distinct from other pages) ===== */
/* index, full bleed article bands */
.jband{position:relative;display:block;height:min(82vh,760px);min-height:460px;overflow:hidden;background:#14110d}
.jband img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,0,.1,1)}
.jband:hover img{transform:scale(1.04)}
.jband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,13,.08),rgba(20,17,13,.22) 45%,rgba(20,17,13,.66))}
.jband .jbt{position:absolute;inset:auto 0 0 0;z-index:2;color:#fff;padding:0 clamp(24px,6vw,90px) clamp(44px,7vh,84px);max-width:760px}
.jband .jbt .eyebrow{color:#e9dcc4;margin-bottom:16px}
.jband .jbt h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.6vw,46px);line-height:1.08;max-width:min(18ch,100%);text-shadow:0 2px 30px rgba(0,0,0,.5)}
.jband .jbt p{margin-top:14px;max-width:min(46ch,100%);color:#f2ead9;font-size:clamp(15px,1.4vw,18px)}
.jband .jbt .rd{display:inline-block;margin-top:20px;font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#e9dcc4;border-bottom:1px solid rgba(233,220,196,.6);padding-bottom:6px}
/* article, title block with ghosted word, then image, then narrow column */
.jtitle{position:relative;text-align:center;background:var(--bone);padding:clamp(140px,20vh,220px) 24px clamp(40px,6vh,66px);overflow:hidden}
.jtitle .ghost{position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:clamp(120px,26vw,380px);line-height:1;color:rgba(35,33,28,.045);white-space:nowrap;pointer-events:none;z-index:0}
.jtitle .inner{position:relative;z-index:1;max-width:900px;margin:0 auto}
.jtitle .eyebrow{margin-bottom:22px}
.jtitle h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,5vw,66px);line-height:1.05;color:var(--ink);letter-spacing:.004em;max-width:20ch;margin:0 auto}
.jarticle{max-width:680px;margin:0 auto;padding:clamp(56px,9vh,110px) clamp(22px,5vw,40px) clamp(24px,4vh,44px)}
.jarticle .jlead{font-family:var(--serif);font-size:clamp(21px,2.3vw,27px);line-height:1.5;color:var(--ink);margin-bottom:40px}
.jarticle p{font-size:clamp(16px,1.45vw,18px);line-height:1.85;color:var(--charcoal);margin-bottom:1.6em}
.jrule{max-width:680px;margin:0 auto;height:1px;background:var(--sand)}
.jfoot{max-width:680px;margin:0 auto;padding:clamp(28px,4vh,44px) clamp(22px,5vw,40px) clamp(70px,10vh,120px);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
@media(max-width:560px){.jtitle .ghost{font-size:34vw}.jfoot{flex-direction:column;align-items:flex-start;gap:14px}}
.jgridwrap{max-width:1180px;margin:0 auto;padding:clamp(60px,9vh,110px) 7% clamp(30px,5vh,70px)}
.jgridwrap .jhead{margin-bottom:clamp(30px,4.5vh,54px)}
.jgridwrap .jhead .eyebrow{margin-bottom:14px}
.jgridwrap .jhead h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,34px);line-height:1.1;color:var(--ink)}
.jgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(42px,5vh,72px) clamp(30px,3.4vw,56px)}
.jcard{display:block;color:inherit}
.jcard .media{aspect-ratio:3/2;overflow:hidden;margin-bottom:22px}
.jcard .media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,0,.1,1)}
.jcard:hover .media img{transform:scale(1.05)}
.jcard .eyebrow{margin-bottom:13px}
.jcard h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.1vw,28px);line-height:1.14;color:var(--ink);margin-bottom:12px}
.jcard p{font-size:15.5px;line-height:1.72;color:var(--charcoal);margin-bottom:14px}
.jcard .morelink{margin-top:2px}
@media(max-width:760px){.jgrid{grid-template-columns:1fr;gap:52px}}
.jarticle .jfig{margin:clamp(38px,5.5vh,64px) 0}
.jarticle .jfig img{width:100%;display:block}
.jarticle .jfig.wide{width:min(1040px,92vw);margin-left:50%;transform:translateX(-50%)}
.jarticle .jfig.wide img{max-height:78vh;object-fit:cover}
.jarticle .jfig figcaption{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin-top:12px;text-align:center}
/* zen, calm editorial layout (yoga), clean aligned, reference style */
.zen-wrap{background:transparent}
.zen{max-width:1180px;margin:0 auto;padding:clamp(76px,13vh,170px) clamp(20px,5vw,64px)}
.zen-breath{max-width:740px;margin:clamp(72px,13vh,180px) auto;text-align:center;font-family:var(--serif);font-weight:400;font-size:clamp(23px,2.9vw,37px);line-height:1.34;color:var(--ink);letter-spacing:.004em}
.zen-lead{max-width:660px;margin:0 auto;text-align:center;font-family:var(--serif);font-size:clamp(21px,2.4vw,29px);line-height:1.55;color:var(--ink)}
.zen-duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,40px);margin:clamp(50px,8vh,110px) 0}
.zen-duo figure{margin:0}
.zen-duo img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.zen-duo figcaption,.zen-band figcaption{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin-top:13px}
.zen-text{max-width:620px;margin:0 auto;text-align:center;color:var(--charcoal);font-size:clamp(16px,1.4vw,17.5px);line-height:1.85}
.zen-text p{margin-bottom:1.5em}
.zen-band{position:relative;left:50%;transform:translateX(-50%);width:100vw;margin:clamp(56px,9vh,120px) 0 0}
.zen-band img{width:100%;height:min(80vh,760px);object-fit:cover;display:block}
.zen-band figcaption{text-align:center}
@media(max-width:760px){.zen-duo{grid-template-columns:1fr;gap:34px}.zen-duo img{aspect-ratio:4/5}}
/* still, deepen the stillness across the whole yoga layout (warm neutral, air, quiet type) */
body.still .bigimg img{height:clamp(540px,86vh,920px)}
body.still .zen{padding:clamp(96px,18vh,250px) clamp(20px,5vw,64px)}
body.still .zen-lead{color:var(--charcoal);font-size:clamp(22px,2.5vw,31px);line-height:1.72;letter-spacing:.008em}
body.still .zen-duo{margin:clamp(78px,14vh,200px) 0;gap:clamp(30px,3.2vw,60px)}
body.still .zen-breath{margin:clamp(110px,19vh,260px) auto;line-height:1.44;color:var(--ink)}
body.still .zen-text{color:#6B655D;line-height:2.05}
body.still .zen-band{margin-top:clamp(88px,16vh,220px)}
body.still .zen-duo figcaption,body.still .zen-band figcaption{color:#8c8375;margin-top:16px}
.split .media.feat img[data-imgs]{cursor:pointer}
.split .copy .vlink{margin-top:22px}

section{padding:clamp(84px,12vh,158px) clamp(20px,5vw,64px)}
.reveal{opacity:1}
.reveal.in{opacity:1}
.tone-ivory{background:var(--ivory)}
.tone-olive{background:var(--olive-tint)}

/* four pillars */
.pillars{background:var(--bone);padding:clamp(40px,6vh,64px) clamp(20px,5vw,64px)}
.pillars .row{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.pillars .p{padding:4px clamp(24px,3vw,46px);border-left:1px solid var(--sand)}
.pillars .p:first-child{border-left:0;padding-left:0}
.pillars .p h2,.pillars .p h3{font-size:clamp(15px,1.2vw,17px);margin:0 0 8px;font-weight:400;letter-spacing:.02em}
.pillars .p p{font-size:12.5px;line-height:1.55;color:var(--charcoal);opacity:.8}
@media(max-width:820px){.pillars .row{grid-template-columns:1fr 1fr;gap:38px 0}.pillars .p{border-left:0;padding:0 clamp(14px,3vw,24px)}.pillars .p:nth-child(even){border-left:1px solid var(--sand)}}
@media(max-width:480px){.pillars .row{grid-template-columns:1fr;gap:32px}.pillars .p:nth-child(even){border-left:0}}

.statement{max-width:900px;margin:0 auto;text-align:center}
.statement .eyebrow{margin-bottom:30px}
.statement p.lead{font-size:clamp(20px,2.3vw,30px);line-height:1.45;color:var(--ink)}
.hairline{width:56px;height:1px;background:var(--bronze);margin:40px auto 0;opacity:.7}

/* prose column for subpages */
.prose{max-width:680px;margin:0 auto}
.prose .eyebrow{margin-bottom:22px}
.prose h2{font-size:clamp(26px,3.2vw,40px);margin-bottom:24px}
.prose h3{font-size:22px;margin:2em 0 .6em}
.prose p{color:var(--charcoal)}
.prose.center{text-align:center}
.signature{font-family:var(--serif);font-size:19px;color:var(--ink);margin-top:2em}

/* split */
.split{display:grid;grid-template-columns:2fr 1fr;gap:clamp(20px,2.4vw,52px);align-items:start;max-width:none;margin:0}
.split .media.feat{aspect-ratio:8/5}
.split.alt{grid-template-columns:1fr 2fr}.split.alt .media{order:2}.split.alt .copy{order:1}
.split.mid{align-items:center}
.split+.split{margin-top:clamp(60px,9vh,120px)}
section:has(>.split){padding:clamp(24px,3.5vh,60px) 7%}
.split .media{overflow:hidden;aspect-ratio:4/5}
.split .media.wide{aspect-ratio:5/6}
.split .media.land{aspect-ratio:4/3}
.split .media img{transition:none}
.split .copy{max-width:360px}
.split .copy .eyebrow{margin-bottom:24px}
.split h2{font-size:clamp(22px,2.4vw,32px);margin-bottom:24px}
.split p{color:var(--charcoal)}
.morelink{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);border-bottom:1px solid var(--bronze);padding-bottom:6px;display:inline-block;margin-top:16px;transition:all .3s}
.morelink:hover{color:var(--ink);border-color:var(--ink)}
@media(max-width:900px){.split,.split.alt{grid-template-columns:1fr;margin:0}.split.alt .media,.split.alt .copy{order:0}.split .media,.split .media.feat,.split .media.wide,.split .media.land{aspect-ratio:4/3}.split .copy{max-width:none;justify-self:auto}.split+.split{margin-top:40px}section:has(>.split){padding-top:24px;padding-bottom:24px}}

/* full-bleed band */
.band{position:relative;height:92vh;min-height:520px;padding:0;overflow:hidden}
.band.short{height:64vh;min-height:420px}
.band .bg{position:absolute;inset:0}
.band .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,13,.32),rgba(20,17,13,.5))}
.band .inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;color:#fff;padding:0 clamp(24px,6vw,96px) clamp(46px,9vh,96px)}
.band .inner .eyebrow{color:#ecdfca;margin-bottom:20px}
.band .inner h2,.band .inner p.big{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.6vw,48px);line-height:1.14;max-width:min(20ch,100%);white-space:normal;text-shadow:0 2px 30px rgba(0,0,0,.5)}
.band .inner p.body{margin-top:20px;font-size:clamp(15px,1.5vw,18px);line-height:1.6;max-width:min(46ch,100%);color:#f3ecdd;text-shadow:0 1px 20px rgba(0,0,0,.4)}
.band .inner .morelink{margin-top:26px;color:#ecdfca;border-color:#ecdfca}
.band .inner .morelink:hover{color:#fff;border-color:#fff}
@media(max-width:620px){.band .inner h2,.band .inner p.big{font-size:clamp(24px,6.4vw,32px);max-width:min(18ch,100%)}}
.band .bg[data-par="expand"]{overflow:hidden;transform-origin:center center;will-change:transform;transform:scale(.66)}
.split .media img[data-par]{will-change:transform;transform-origin:center center;transform:scale(1.09)}

/* full width featured gallery, dark band */
.gallery{background:var(--olive);padding:clamp(78px,12vh,140px) 0;overflow:hidden;color:var(--ivory)}
.gallery .g-head{text-align:center;margin-bottom:clamp(34px,5vh,56px)}
.gallery .g-head .eyebrow{color:var(--bronze)}
.g-stage{position:relative;height:clamp(400px,60vh,600px);width:100%}
.g-track{display:flex;align-items:center;height:100%;gap:clamp(12px,1.5vw,24px);will-change:transform;transition:transform .75s cubic-bezier(.33,0,.1,1)}
.g-item{flex:0 0 auto;height:100%;aspect-ratio:2/3;opacity:.26;transition:opacity .75s ease;overflow:hidden;cursor:pointer}
.g-item.on{opacity:1}
.g-item img{width:100%;height:100%;object-fit:cover;display:block}
.g-foot{display:flex;align-items:center;justify-content:center;gap:clamp(20px,3vw,44px);margin-top:clamp(30px,5vh,52px);padding:0 24px}
.g-meta{text-align:center;min-width:min(66vw,360px)}
.g-cap{font-family:var(--serif);font-size:clamp(17px,1.7vw,23px);color:var(--ivory);line-height:1.4;margin:0}
.g-count{font-family:var(--mono);font-size:11px;letter-spacing:2.5px;color:var(--bronze);display:block;margin-top:14px}
.g-arrow{width:48px;height:48px;flex:0 0 48px;border:1px solid rgba(251,250,246,.35);background:transparent;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ivory);transition:background .35s,color .35s,border-color .35s}
.g-arrow:hover{background:var(--ivory);color:var(--olive);border-color:var(--ivory)}
.g-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.gallery .g-head h2{font-size:clamp(24px,2.8vw,36px);margin:14px 0 14px;color:inherit;line-height:1.15}
.gallery .g-head p{max-width:54ch;margin:0 auto;font-size:15px;line-height:1.6}
.gallery.light{background:var(--bone);color:var(--ink)}
.gallery.light .g-head p{color:var(--charcoal)}
.gallery.light .g-cap{color:var(--ink)}
.gallery.light .g-count{color:var(--bronze)}
.gallery.light .g-arrow{border-color:var(--sand);color:var(--ink)}
.gallery.light .g-arrow:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
@media(max-width:860px){.g-stage{height:clamp(360px,58vh,500px)}.g-meta{min-width:0}}




/* venue cards (dining pattern, One&Only) */
/* centered section intro (One&Only) */
.secintro{max-width:720px;margin:0 auto clamp(42px,6vh,66px);text-align:center}
.secintro .eyebrow{margin-bottom:16px}
.secintro h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.4vw,44px);line-height:1.12;color:var(--ink);margin-bottom:16px}
.secintro p{color:var(--charcoal);font-size:15px;line-height:1.6;max-width:56ch;margin:0 auto}
.vbtn{display:inline-block;margin-top:18px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--ink);padding:14px 30px;cursor:pointer;transition:background .3s}
.vbtn:hover{background:var(--bronze)}

.venuesec{padding:clamp(72px,10vh,140px) clamp(20px,5vw,64px)}
.venues{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3vw,50px)}
.venue{display:flex;flex-direction:column}
.vmedia{display:block;overflow:hidden;aspect-ratio:3/2;cursor:pointer;background:var(--olive-tint)}
.vmedia img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,0,.1,1)}
.vmedia:hover img{transform:scale(1.04)}
.vcopy{margin-top:20px}
.vcopy .eyebrow{margin-bottom:12px}
.vcopy h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.2vw,30px);margin-bottom:12px;color:var(--ink);line-height:1.15}
.vcopy p{color:var(--charcoal);font-size:15px;line-height:1.6;max-width:46ch}
.vlink{display:inline-block;margin-top:16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);border-bottom:1px solid var(--sand);padding-bottom:5px;cursor:pointer;transition:color .25s,border-color .25s}
.vlink:hover{color:var(--ink);border-color:var(--bronze)}
@media(max-width:900px){.venues{grid-template-columns:1fr 1fr;gap:34px}}@media(max-width:560px){.venues{grid-template-columns:1fr}}

/* gallery folders (row of labelled covers) */
.galfolders{padding:clamp(72px,10vh,140px) clamp(20px,5vw,64px)}
.folders{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.6vw,46px)}
.folder{display:flex;flex-direction:column}
.folder-name{font-family:var(--mono);font-weight:400;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);margin-bottom:16px;text-align:center}
.folder-cover{position:relative;display:block;overflow:hidden;aspect-ratio:4/5;cursor:pointer;background:var(--olive-tint)}
.folder-cover img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,0,.1,1)}
.folder:hover .folder-cover img{transform:scale(1.06)}
.folder-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 52%,rgba(20,17,13,.5))}
.folder-view{position:absolute;left:0;right:0;bottom:16px;text-align:center;z-index:2;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:#fff}
@media(max-width:820px){.folders{grid-template-columns:1fr;gap:30px}.folder-cover{aspect-ratio:3/2}}

/* browsable gallery + lightbox */
.galsec{padding:clamp(72px,10vh,140px) clamp(20px,5vw,64px)}
.galhead{max-width:760px;margin:0 auto clamp(38px,5vh,60px);text-align:center}
.galhead h2{font-size:clamp(24px,2.8vw,36px);margin-bottom:16px}
.galhead p{color:var(--charcoal);max-width:52ch;margin:0 auto}
.galview{display:inline-block;margin-top:24px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);background:transparent;border:0;cursor:pointer;border-bottom:1px solid var(--sand);padding-bottom:6px;transition:color .25s,border-color .25s}
.galview:hover{color:var(--ink);border-color:var(--bronze)}
.galgrid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.galcell{display:block;overflow:hidden;aspect-ratio:4/3;cursor:pointer;background:var(--olive-tint)}
.galcell img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,0,.1,1)}
.galcell:hover img{transform:scale(1.05)}
@media(max-width:820px){.galgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.galgrid{grid-template-columns:1fr}}
/* rescover, residence: text left + one vertical cover right + view gallery */
.rescover{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:1fr minmax(400px,560px);gap:clamp(34px,4.5vw,84px);align-items:center;padding:clamp(56px,9vh,120px) clamp(20px,5vw,64px)}
.rescover .rc-text{max-width:480px}
.rescover .rc-text .eyebrow{margin-bottom:14px}
.rescover .rc-text h2{font-size:clamp(26px,3vw,40px);line-height:1.1;margin-bottom:20px}
.rescover .rc-text p{color:var(--charcoal);font-size:16px;line-height:1.72}
.rescover .folder{margin:0}
.rc-img{aspect-ratio:4/5;overflow:hidden}
.rc-img img{width:100%;height:100%;object-fit:cover;display:block}
.rescover.alt{grid-template-columns:minmax(400px,560px) 1fr}
.rescover.alt .rc-text{order:2}
.rescover.alt .folder,.rescover.alt .rc-img{order:1}
@media(max-width:900px){.rescover,.rescover.alt{grid-template-columns:1fr;gap:24px}.rescover.alt .rc-text,.rescover.alt .folder,.rescover.alt .rc-img{order:0}}
.lb{position:fixed;inset:0;z-index:200;background:rgba(18,15,11,.95);display:none;align-items:center;justify-content:center}
.lb.on{display:flex}
.lb .lb-img{max-width:88vw;max-height:86vh;width:auto;height:auto;object-fit:contain;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.lb button{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;opacity:.75;transition:opacity .25s}
.lb button:hover{opacity:1}
.lb .lb-close{top:22px;right:28px;font-size:32px;line-height:1}
.lb .lb-prev,.lb .lb-next{top:50%;transform:translateY(-50%);width:60px;height:60px;display:flex;align-items:center;justify-content:center}
.lb .lb-prev{left:14px}.lb .lb-next{right:14px}
.lb svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.lb .lb-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:11px;letter-spacing:2.5px;color:rgba(255,255,255,.7)}

/* faq */
.faqwrap{padding:clamp(72px,11vh,130px) 0;background:var(--bone)}
.faq{max-width:840px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.faqhead{text-align:center;margin-bottom:clamp(38px,6vh,60px)}
.faqhead h2{margin-top:14px}
.faqitem{border-top:1px solid var(--sand)}
.faqitem:last-child{border-bottom:1px solid var(--sand)}
.faqitem details{overflow:hidden}
.faqitem summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:clamp(22px,3vh,30px) 0;font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.8vw,23px);line-height:1.32;color:var(--ink);transition:color .25s}
.faqitem summary::-webkit-details-marker{display:none}
.faqitem summary:hover{color:var(--bronze)}
.faqitem .plus{position:relative;flex:0 0 18px;width:18px;height:18px}
.faqitem .plus::before,.faqitem .plus::after{content:"";position:absolute;background:var(--bronze);transition:transform .3s ease,opacity .3s ease}
.faqitem .plus::before{top:8px;left:0;width:18px;height:1.5px}
.faqitem .plus::after{left:8px;top:0;width:1.5px;height:18px}
.faqitem details[open] .plus::after{transform:scaleY(0)}
.faqitem details[open] summary{color:var(--ink)}
.faqitem details p{margin:-4px 0 clamp(24px,3.4vh,34px);max-width:66ch;font-family:var(--serif);font-size:clamp(15px,1.5vw,16.5px);line-height:1.65;color:var(--charcoal);animation:faqfade .35s ease}
@keyframes faqfade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* three-up cards */
.trio{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px)}
.trio .card .media{aspect-ratio:4/5;overflow:hidden;margin-bottom:22px}
.trio .card .media img{transition:transform 1.6s ease}
.trio .card:hover .media img{transform:scale(1.05)}
.trio .card .eyebrow{margin-bottom:10px}
.trio .card h2,.trio .card h3{font-size:22px;margin-bottom:10px}
.trio .card p{font-size:15.5px;color:var(--charcoal)}
.trio .card{display:flex;flex-direction:column}
.trio a.card{color:inherit;text-decoration:none}
.trio .card .morelink{margin-top:auto;padding-top:16px}
.trio .card .media.pending{background:var(--olive-tint);display:flex;align-items:center;justify-content:center}
.trio .card .media.pending span{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze)}
.trio.g4{grid-template-columns:repeat(4,1fr)}
.trio.g4 .card h2,.trio.g4 .card h3{font-size:20px}
.trio.g4 .card p{font-size:14.5px}
@media(max-width:1080px){.trio.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.trio.g4{grid-template-columns:1fr}}
@media(max-width:820px){.trio{grid-template-columns:1fr;gap:44px}}

/* waves, One&Only Kea "Days upon the waves", centred header + one big square image, text left, tabs below */
.waves{max-width:1360px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.waves-head{text-align:center;max-width:720px;margin:0 auto clamp(38px,6vh,68px)}
.waves-head .eyebrow{margin-bottom:16px}
.waves-head h2{font-size:clamp(28px,3.4vw,46px);line-height:1.1}
.waves-head p{margin-top:20px;color:var(--charcoal);font-size:16px;line-height:1.7}
.waves-body{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,80px);align-items:stretch}
.waves-copy{display:flex;flex-direction:column;justify-content:center;position:relative;padding-bottom:74px;min-height:clamp(300px,42vw,560px)}
.waves-panels{position:relative}
.wpanel{display:none}
.wpanel.on{display:block;animation:wfade .55s ease}
@keyframes wfade{from{opacity:0}to{opacity:1}}
.wpanel h3{font-size:clamp(24px,2.8vw,38px);line-height:1.12;margin-bottom:18px}
.wpanel p{color:var(--charcoal);font-size:16px;line-height:1.72;max-width:440px;margin-bottom:22px}
.waves-tabs{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:14px}
.wtabs-strip{display:flex;align-items:center;gap:clamp(18px,2vw,34px);overflow-x:auto;scrollbar-width:none;flex:1;padding-bottom:2px}
.wtabs-strip::-webkit-scrollbar{display:none}
.wtab{flex:0 0 auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dusk,#6B655D);background:none;border:0;padding:0 0 9px;cursor:pointer;white-space:nowrap;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.wtab.on{color:var(--ink);border-bottom-color:var(--ink)}
.wtab:hover{color:var(--ink)}
.waves-next,.waves-prev{flex:0 0 auto;margin-left:6px;width:38px;height:38px;border:1px solid var(--sand);border-radius:50%;background:none;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .25s}
.waves-next:hover,.waves-prev:hover{border-color:var(--ink)}
.waves-next svg,.waves-prev svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3}
.waves-media{position:relative;aspect-ratio:1/1;overflow:hidden}
.waves.flip .waves-media{order:-1}
.lm-cookie{position:fixed;left:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);z-index:9999;width:360px;max-width:calc(100vw - 32px);background:var(--ivory);border:1px solid var(--sand);padding:26px 26px 22px;opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.lm-cookie.on{opacity:1;transform:none}
.lm-cookie .eyebrow{color:var(--bronze);display:block;margin-bottom:12px}
.lm-cookie p{font-size:14px;line-height:1.6;color:var(--charcoal);margin:0 0 18px}
.lm-cookie-row{display:flex;gap:10px;margin-bottom:16px}
.lm-cookie button{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;padding:12px 20px;cursor:pointer;border:1px solid var(--ink);transition:all .3s}
.lm-cookie .lm-ck-accept{background:var(--ink);color:#fff}
.lm-cookie .lm-ck-accept:hover{background:var(--bronze);border-color:var(--bronze)}
.lm-cookie .lm-ck-deny{background:none;color:var(--ink);border-color:var(--sand)}
.lm-cookie .lm-ck-deny:hover{border-color:var(--ink)}
.lm-cookie-link{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze);border-bottom:1px solid var(--bronze);padding-bottom:3px;display:inline-block}
.lm-cookie-link:hover{color:var(--ink);border-color:var(--ink)}
@media(max-width:520px){.lm-cookie{left:12px;right:12px;bottom:12px;width:auto}}
.wimg{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .6s ease}
.wimg.on{opacity:1;pointer-events:auto}
.wimg img{width:100%;height:100%;object-fit:cover}
.wimg.pending{background:var(--olive-tint);display:flex;align-items:center;justify-content:center}
.wimg.pending span{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze)}
@media(max-width:900px){.waves-body{grid-template-columns:1fr;gap:24px}.waves-copy,.waves-media,.waves-panels{min-width:0;max-width:100%}.waves-media{order:-1;width:100%}.waves-copy{min-height:0;padding-bottom:0}.waves-tabs{position:static;margin-top:26px;max-width:100%}}

/* hgrid, text left + row of cards right (One&Only KidsOnly style) */
.hgrid{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,1.6vw,26px);align-items:start;padding:0 clamp(24px,3vw,48px)}
.hgrid-intro{max-width:none;align-self:start}
.hgrid-intro .eyebrow{margin-bottom:16px}
.hgrid-intro h2{font-size:clamp(26px,2.5vw,36px);line-height:1.1;margin-bottom:22px}
.hgrid-intro p{color:var(--charcoal);font-size:16px;line-height:1.72}
.hgrid-cards{grid-column:2 / -1;display:grid;grid-template-columns:subgrid;gap:clamp(16px,1.6vw,26px)}
.hcard{color:inherit;text-decoration:none;display:flex;flex-direction:column}
.hcard .media{aspect-ratio:1/1;overflow:hidden;margin-bottom:clamp(20px,1.7vw,28px)}
.hcard .media img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s cubic-bezier(.2,0,.1,1)}
.hcard:hover .media img{transform:scale(1.05)}
.hcard h3{font-size:clamp(19px,1.75vw,24px);line-height:1.2;margin:0 0 clamp(14px,1.3vw,20px)}
.hcard p{font-size:15px;line-height:1.7;color:var(--charcoal)}
@media(max-width:1000px){.hgrid{grid-template-columns:1fr;gap:36px}.hgrid-intro{align-self:start}.hgrid-cards{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.hgrid-cards{grid-template-columns:1fr;gap:44px}}

/* steps */
.steps{max-width:1120px;margin:60px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3.5vw,60px)}
.step{text-align:center}
.step .n{font-family:var(--mono);font-size:11px;letter-spacing:.28em;color:var(--bronze);margin-bottom:20px}
.step h3{font-size:23px;margin-bottom:14px}
.step p{font-size:15.5px;color:var(--charcoal)}
@media(max-width:820px){.steps{grid-template-columns:1fr;gap:40px}}

/* notes */
.notes{max-width:1240px;margin:0 auto}
.notes .head{text-align:center;margin-bottom:70px}
.notes .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,4vw,64px);align-items:stretch}
.note{display:flex;flex-direction:column;height:100%}
.note p{font-size:16.5px;line-height:1.66;margin-bottom:26px;color:var(--ink);flex:1 0 auto}
.note .who{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);padding-top:22px;border-top:1px solid var(--sand)}
@media(max-width:820px){.notes .grid{grid-template-columns:1fr;gap:48px}}

/* simple facts strip */
.facts{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
.facts .f .n{font-size:clamp(30px,3.4vw,44px);color:var(--ink)}
.facts .f .l{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin-top:10px}
@media(max-width:720px){.facts{grid-template-columns:1fr 1fr;gap:34px}}

/* getting here list */
.distances{max-width:680px;margin:34px auto 0}
.distances .row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--sand);padding:15px 0;font-size:16px}
.distances .row:last-child{border-bottom:1px solid var(--sand)}
.distances .row .p{color:var(--ink)}
.distances .row .d{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--bronze)}

/* enquire, quiet neutral close */
.enquire{background:var(--ivory);color:var(--ink);text-align:center;border-top:1px solid var(--sand)}
.enquire .eyebrow{color:var(--bronze);margin-bottom:28px}
.enquire h2{color:var(--ink);font-size:clamp(24px,2.6vw,34px);max-width:20ch;margin:0 auto 24px}
.enquire p.invite{max-width:min(52ch,100%);margin:0 auto 44px;color:var(--charcoal);font-size:16px;line-height:1.7}
.enquire .contacts{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.enquire a.primary{background:var(--ink);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;padding:18px 38px;transition:all .3s}
.enquire a.primary:hover{background:var(--bronze);color:#fff}
.enquire a.line{color:var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--sand);padding:18px 34px;transition:all .3s}
.enquire a.line:hover{border-color:var(--ink)}
/* closing band, quiet neutral close (photo optional via .cbg) */
.closing{position:relative;background:var(--ivory);color:var(--ink);text-align:center;overflow:hidden;border-top:1px solid var(--sand)}
.closing .cbg{position:absolute;inset:0;z-index:0}
.closing .cbg::after{content:"";position:absolute;inset:0;background:rgba(20,17,13,.46)}
.closing .cinner{position:relative;z-index:2;max-width:720px;margin:0 auto}
.closing .eyebrow{color:var(--bronze);margin-bottom:24px}
.closing h2{color:var(--ink);font-size:clamp(24px,2.6vw,34px);line-height:1.14;margin-bottom:22px}
.closing p{color:var(--charcoal);max-width:min(46ch,100%);margin:0 auto 36px}
.closing .cbtn{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#fff;background:var(--ink);padding:18px 46px;display:inline-block;transition:all .3s}
.closing .cbtn:hover{background:var(--bronze);color:#fff}
.closing .cline{display:block;margin-top:24px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#8a8072}
.closing .cline a{border-bottom:1px solid var(--sand);padding-bottom:4px;transition:border-color .3s;color:var(--charcoal)}
.closing .cline a:hover{border-color:var(--ink)}

/* footer */
footer{background:var(--olive);color:#c3bcae;padding:clamp(64px,9vh,104px) clamp(20px,5vw,64px) 54px;border-top:1px solid rgba(255,255,255,.12)}
.foot-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:clamp(40px,6vw,88px);align-items:start}
.foot-brand{font-family:var(--serif);font-size:26px;color:#fff;line-height:1}
.foot-id{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#cbb89b;margin-top:16px}
footer address{font-style:normal;font-size:14px;line-height:2.05;color:#bbb1a1}
footer address a:hover{color:#fff}
.foot-links{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;line-height:2.35}
.foot-links a:hover{color:#fff}
.foot-note{max-width:1240px;margin:clamp(48px,7vh,78px) auto 0;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#8b8271}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;gap:40px 34px}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr;gap:32px}}

/* whatsapp float */
.wa{position:fixed;right:20px;bottom:20px;z-index:70;background:var(--bronze);color:#fff;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:15px 22px;border-radius:40px;box-shadow:0 8px 30px rgba(0,0,0,.26);transition:transform .2s}
.wa:hover{transform:translateY(-2px)}

/* Lenis smooth scroll (Vocabolo style) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* Static location map (Istria), Palazzo Daniele style */
.mapwrap{max-width:1100px;margin:44px auto 0;overflow:hidden}
.mapwrap img{width:100%;height:auto;display:block}

/* ===== ENQUIRY FORM (connect) ===== */
.formwrap{max-width:760px;margin:0 auto}
.formhead{text-align:center;margin-bottom:48px}
.formhead h2{font-size:clamp(24px,2.6vw,34px);margin:18px 0 14px}
.formhead p{color:var(--charcoal);max-width:48ch;margin:0 auto}
.enform{display:flex;flex-direction:column;gap:32px}
.enform .frow{display:flex;gap:40px}
.enform label{flex:1;display:flex;flex-direction:column;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);gap:12px}
.enform input,.enform textarea{font-family:var(--serif);font-size:16px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--sand);padding:11px 2px;transition:border-color .3s}
.enform input:focus,.enform textarea:focus{outline:none;border-color:var(--bronze)}
.enform textarea{resize:vertical;line-height:1.6}
.enform textarea::placeholder{font-family:var(--serif);text-transform:none;letter-spacing:0;color:#a89f8c;font-size:15px}
.fbtn{align-self:flex-start;margin-top:20px;font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#fff;background:var(--olive);border:0;padding:17px 46px;cursor:pointer;transition:background .3s}
/* connect, photograph paired with each form */
.cxsplit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,4.5vw,84px);align-items:stretch;max-width:1200px;margin:0 auto}
.cxmedia{overflow:hidden;min-height:540px}
.cxmedia img{width:100%;height:100%;object-fit:cover}
.cxform-side{max-width:480px;width:100%;align-self:center}
.cxform-side .eyebrow{margin-bottom:18px}
.cxform-side h2{font-size:clamp(24px,2.5vw,33px);line-height:1.16;margin-bottom:20px}
.cxform-side>p{color:var(--charcoal);line-height:1.75;margin-bottom:38px}
.cxsplit.alt .cxmedia{order:2}
@media(max-width:900px){.cxsplit{grid-template-columns:1fr;gap:34px}.cxsplit.alt .cxmedia{order:0}.cxmedia{aspect-ratio:4/3;max-height:none}.cxform-side{max-width:none}}
.fbtn:hover{background:var(--bronze)}
@media(max-width:600px){.enform .frow{flex-direction:column;gap:24px}}
/* newsletter (on light olive-tint) */
.newsletter{max-width:540px;margin:58px auto 0;padding-top:40px;border-top:1px solid var(--sand)}
.newsletter p{color:var(--charcoal);margin:14px 0 22px;font-size:15px}
.signup{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.signup input{font-family:var(--serif);font-size:15px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--sand);padding:10px 4px;min-width:230px}
.signup input::placeholder{color:#9a9078}
.signup input:focus{outline:none;border-color:var(--bronze)}
.signup button{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:#fff;background:var(--ink);border:0;padding:13px 28px;cursor:pointer;transition:background .3s}
.signup button:hover{background:var(--bronze)}
.enform select{font-family:var(--serif);font-size:16px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--sand);padding:10px 2px;transition:border-color .3s;-webkit-appearance:none;appearance:none}
.enform select:focus{outline:none;border-color:var(--bronze)}
.enform .fnote{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#9a9078;margin:-6px 0 0}
/* nav LM logo */
.wordmark img{height:38px;width:auto;display:block}
.wordmark .lm-dark{display:none}
header.nav.solid .wordmark img{height:30px}
header.nav.solid .wordmark .lm-white{display:none}
header.nav.solid .wordmark .lm-dark{display:block}
header.nav.onlight .wordmark .lm-white{display:none}
header.nav.onlight .wordmark .lm-dark{display:block}

/* ===== EXCLUSIVE OFFERS (One&Only style cards) ===== */
.offershead{max-width:820px;margin:0 auto 64px;text-align:center}
.offershead h2{font-size:clamp(24px,2.8vw,36px);margin:16px 0 16px}
.offershead p{color:var(--charcoal)}
.offers{max-width:1460px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,32px)}
.offer{display:block}
.offer .media{aspect-ratio:1/1;overflow:hidden;margin-bottom:24px}
.offer .media img[data-par]{transform:scale(1.09);transform-origin:center center;will-change:transform}
.offer .eyebrow{display:block;margin-bottom:12px}
.offer h2,.offer h3{font-size:clamp(20px,1.7vw,24px);margin-bottom:12px;font-weight:400}
.offer p{color:var(--charcoal);font-size:15px;line-height:1.6;margin-bottom:16px}
.offer .offerlink{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);border-bottom:1px solid var(--bronze);padding-bottom:5px;transition:all .3s}
.offer:hover .offerlink{color:var(--ink);border-color:var(--ink)}
@media(max-width:900px){.offers{grid-template-columns:1fr;gap:46px;max-width:520px}}

/* offer card buttons */
.offer .obtns{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:6px}
.obtn{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#fff;background:var(--olive);padding:14px 26px;display:inline-block;transition:background .3s}
.obtn:hover{background:var(--bronze)}
.offer .odetails{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);border-bottom:1px solid var(--bronze);padding-bottom:4px;transition:all .3s}
.offer .odetails:hover{color:var(--ink);border-color:var(--ink)}
/* offer detail page list */
.odl{margin:28px 0 30px;max-width:520px}
.odl .drow{border-top:1px solid var(--sand);padding:16px 0}
.odl .drow:last-child{border-bottom:1px solid var(--sand)}
.odl .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin-bottom:8px}
.odl .v{color:var(--charcoal);font-size:15.5px}
.odl ul{list-style:none;margin:0;padding:0}
.odl li{padding:4px 0;color:var(--charcoal);font-size:15.5px;padding-left:18px;position:relative}
.odl li::before{content:"•";position:absolute;left:0;color:var(--bronze)}
section[id]{scroll-margin-top:88px}

/* minimal footer */
.miniftr{background:var(--bone);border-top:1px solid var(--sand);padding:34px clamp(20px,5vw,64px);text-align:center}
.miniftr .mf-id{font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze);margin-bottom:16px}
.miniftr .mf-line{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8a8072;line-height:1.85;max-width:920px;margin:0 auto 5px}
.miniftr .mf-line a{color:var(--bronze)}
.miniftr .mf-line a:hover{color:var(--ink)}
.miniftr .mf-nav{margin:0 auto 20px;max-width:1000px;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#8a8072;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px}
.miniftr .mf-nav a{color:#8a8072}
.miniftr .mf-nav a:hover{color:var(--ink)}

/* ===== SITE FOOTER (clean, grouped) ===== */
/* footer: 4 columns (Instagram inside Reach us), newsletter signup in the base row */
.siteftr{background:var(--bone);border-top:1px solid var(--sand);padding:clamp(44px,5vh,68px) clamp(20px,5vw,64px) 0;color:var(--charcoal)}
.sf-cols{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(26px,3.5vw,60px);align-items:start}
.siteftr .sf-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);margin-bottom:14px;display:block}
.sf-col{display:flex;flex-direction:column;gap:11px}
.sf-col a{font-family:var(--serif);font-size:14.5px;color:var(--charcoal);transition:color .25s;width:fit-content}
.sf-col a:hover{color:var(--ink)}
.sf-reach{gap:5px}
.sf-reach a{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--bronze);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .25s,border-color .25s;word-break:break-word}
.sf-reach a:hover{color:var(--ink);border-color:var(--bronze)}
.sf-addr{font-family:var(--mono);font-size:10px;letter-spacing:.04em;line-height:1.75;color:var(--bronze);margin-top:7px;display:block}
.sf-reach .sf-ig{display:inline-flex;width:fit-content;color:var(--bronze);margin-top:10px;transition:color .25s}
.sf-ig svg{display:block}
.sf-ig:hover{color:var(--ink)}
.siteftr .sf-base{max-width:1040px;margin:clamp(34px,4vh,52px) auto 0;padding:22px 0 30px;border-top:1px solid var(--sand);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px 28px}
.sf-copy{justify-self:start;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8f8776}
.sf-basenews{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:9px}
.sf-basenews .sf-h{margin-bottom:0}
.sf-newsform{display:flex;align-items:center;width:280px;max-width:100%;border-bottom:1px solid var(--sand);transition:border-color .3s}
.sf-newsform:focus-within{border-color:var(--bronze)}
.sf-newsform input{flex:1;min-width:0;font-family:var(--serif);font-size:13.5px;color:var(--ink);background:transparent;border:0;padding:8px 2px;text-align:left}
.sf-newsform input::placeholder{color:#9a9078}
.sf-newsform input:focus{outline:none}
.sf-newsform button{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);background:none;border:0;cursor:pointer;padding:8px 2px 8px 14px;white-space:nowrap;transition:color .3s}
.sf-newsform button:hover{color:var(--ink)}
.sf-legal{justify-self:end;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8f8776}
.sf-legal a{color:#8f8776;transition:color .25s}
.sf-legal a:hover{color:var(--ink)}
@media(max-width:860px){.sf-cols{grid-template-columns:1fr 1fr;gap:30px 28px}.sf-reach{grid-column:1/-1}}
@media(max-width:700px){.siteftr .sf-base{grid-template-columns:1fr;justify-items:center;gap:18px}.sf-copy,.sf-legal{justify-self:center}.sf-legal{justify-content:center}}
@media(max-width:600px){.sf-cols{grid-template-columns:1fr}}
.band.low .inner{justify-content:flex-end;padding-bottom:clamp(50px,10vh,104px)}
/* green statement section */
.tone-olive-dark{background:var(--olive)}
.tone-olive-dark .eyebrow{color:#cbb89b}
.tone-olive-dark p.lead{color:#fff}
.tone-olive-dark .hairline{background:#cbb89b}
/* taupe section (offers) */
.tone-taupe{background:var(--taupe)}
.tone-taupe .eyebrow{color:var(--ink)}
.tone-taupe .offershead h2,.tone-taupe .offer h3{color:var(--ink)}
.tone-taupe .offershead p,.tone-taupe .offer p{color:var(--ink);opacity:.82}
.tone-taupe .offer .odetails{color:var(--ink);border-color:rgba(35,33,28,.4)}
.tone-taupe .offer .odetails:hover{border-color:var(--ink)}
/* light taupe tint section */
.tone-taupe-light{background:var(--taupe-tint)}
/* review polish: band text air + tighter guest notes */
.band.low .inner{padding-bottom:clamp(64px,12vh,128px)}
.notes{padding-top:clamp(58px,8vh,92px);padding-bottom:clamp(58px,8vh,92px)}
.notes .head{margin-bottom:46px}
.note p{font-size:15px;line-height:1.6;margin-bottom:20px}

.dishfeature{background:var(--bone);text-align:center;padding:clamp(14px,3vh,40px) 20px}
.dishfeature img{width:auto;max-width:min(90vw,460px);height:auto;max-height:74vh;display:inline-block;vertical-align:top}

.expsec{background:var(--bone);color:var(--ink);padding:clamp(64px,10vh,120px) 0}
.expsec .secintro{max-width:720px;margin:0 auto;padding:0 24px}
.peek{margin-top:clamp(34px,6vh,64px)}
.peek-stage{overflow:hidden;padding:clamp(22px,4vh,46px) 0}
.peek-track{display:flex;align-items:center;will-change:transform}
.peek-item{flex:0 0 28vw;margin:0 1vw;cursor:pointer;opacity:.5;transition:transform .5s ease,opacity .5s ease}
.peek-item img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}
.peek-item.on{transform:scale(1.1);opacity:1;z-index:2;position:relative}
.peek-cap{display:none}
.peek-cap h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.4vw,30px);color:var(--ink);letter-spacing:.004em}
.peek-cap p{max-width:520px;margin:14px auto 0;font-size:14px;line-height:1.6;color:var(--dusk)}
.peek-link{display:inline-block;margin-top:16px;font-size:14px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:opacity .2s ease}
.peek-link:hover{opacity:.6}
.peek-ctrl{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:clamp(22px,3.5vh,38px)}
.peek-arrow{width:40px;height:40px;border:0;background:none;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.55;transition:opacity .2s ease}
.peek-arrow:hover{opacity:1}
.peek-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3}
.peek-bar{position:relative;width:min(300px,42vw);height:2px;background:var(--sand)}
.peek-fill{position:absolute;left:0;top:0;height:100%;width:20%;background:var(--ink);transition:width .5s ease}
@media(max-width:820px){.peek-item{flex-basis:58vw}}
.contactgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(26px,4vw,64px);margin-top:clamp(30px,4vh,48px)}
.citem{display:flex;flex-direction:column;gap:9px}
.citem .eyebrow{color:var(--bronze)}
.citem a,.citem .cval{font-family:var(--serif);font-size:clamp(16px,1.5vw,19px);color:var(--ink);line-height:1.5}
.citem a{text-decoration:none;border-bottom:1px solid var(--sand);padding-bottom:5px;transition:border-color .3s;margin:0 auto}
.citem a:hover{border-color:var(--ink)}
.gethere{max-width:460px;margin:clamp(28px,4vh,44px) auto 0}
.gitem{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid var(--sand)}
.gitem .gplace{font-family:var(--serif);font-size:clamp(15px,1.4vw,18px)}
.gitem .gtime{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);align-self:center}

picture{display:contents}

/* ===================================================================
   RESPONSIVE, tablet (iPad) + phone. Rebuilt clean.
   Per component breakpoints above already collapse every multi column
   layout to a single column at its own natural width. This block only
   handles the global safety net: no horizontal overflow, full bleed
   elements stay inside the screen, carousels stay contained, and text
   never runs wider than the viewport. Images keep object-fit cover so
   nothing is ever cropped oddly or stretched.
   =================================================================== */

/* ---- Tablet / iPad ---- */
@media(max-width:1040px){
  /* keep the hero video covering fully once the frame narrows */
  .hero .videobg iframe{transform:translate(-50%,-50%) scale(1.5)}
  /* a touch less side air than desktop, more room for content */
  section{padding:clamp(76px,10vh,130px) clamp(24px,5vw,56px)}
}

/* ---- Phones and narrow tablets ---- */
@media(max-width:640px){
  html,body{overflow-x:hidden;max-width:100vw}
  /* full bleed 100vw elements stay inside the screen */
  .zen-band{left:0;right:0;width:100%;transform:none;margin:clamp(40px,7vh,80px) 0 0}
  .jarticle .jfig.wide{width:100%;margin-left:0;transform:none}
  /* text columns never run wider than the phone screen */
  .rescover .rc-text,.split .copy,.cxform-side,.wpanel p,.wpanel,
  .introwrap,.prose,.statement,.secintro,.g-head,.galhead,.rc-text,.waves-head,
  .introwrap p,.prose p,.secintro p,.g-head p,.statement p.lead,
  .vcopy p,.jcard p,.step p,.note p{max-width:100%}
  /* comfortable, consistent phone rhythm and side padding */
  section{padding:clamp(56px,8vh,84px) 22px}
  .hero .content{padding:40px 22px}
  /* horizontal carousels stay contained, never push the page sideways */
  .g-stage,.peek-stage,.gallery,.expsec{overflow-x:hidden}
}

/* ---- Big editorial images (the split blocks and the offer cards) are
   shot in portrait, but their desktop frames are landscape. Once those
   blocks stack into one column on phone and iPad, we drop the crop frame
   and show each photograph in full, full width, nothing cut off.
   Everything else (cards, gallery, journal pairs) keeps its own tidy,
   uniform frame. ---- */
@media(max-width:900px){
  .split .media,.split .media.feat,.split .media.wide,.split .media.land,
  .offer .media,.cxmedia{aspect-ratio:auto;height:auto;min-height:0;max-height:none}
  .split .media img,.split .media.feat img,.offer .media img,.cxmedia img{height:auto}
}

/* ---- Pillars and stat rows: when they stack, align every item to the
   same left edge. The desktop layout gives the first column no left pad
   (it sits against the page edge) and the rest a divider indent; on
   mobile that reads as one item flush and the others pushed in, so we
   reset all of them to a single clean grid. ---- */
@media(max-width:900px){
  .pillars .row{grid-template-columns:1fr 1fr;gap:34px 28px}
  .pillars .p,.pillars .p:first-child{padding:0;border-left:0}
  .pillars .p:nth-child(even){border-left:0}
}
@media(max-width:520px){
  .pillars .row{grid-template-columns:1fr;gap:28px}
}

/* ---- Journal article image pairs: the photographs are a mix of
   portrait and landscape, so the fixed 4/5 frame slices the landscape
   ones. Once the pair stacks into one column on a phone, drop the frame
   and show each photograph in full. ---- */
@media(max-width:760px){
  .zen-duo figure{aspect-ratio:auto}
  .zen-duo img{aspect-ratio:auto;height:auto}
}

/* ---- Experiences tab strip: let it shrink so the prev / next arrows
   stay on screen instead of being pushed off the right edge. ---- */
.wtabs-strip{min-width:0}

/* The phone uses the exact same carousels as the tablet, the centred
   image bright and its neighbours dimmed, so nothing reads as torn.
   (No phone only carousel overrides here on purpose.) */

/* ---- Very small phones ---- */
@media(max-width:440px){
  .facts{grid-template-columns:1fr;gap:26px}
  .hero .cta a,.hero .cta a.pillbtn{padding:16px 30px;letter-spacing:.2em}
}

/* Responsive hero for mobile LCP: serve 960px avif instead of full 284KB */
@media (max-width:960px){.hero .videobg{background-image:image-set(url('img/hero-019-960.avif') type('image/avif'),url('img/hero-019.webp') type('image/webp'))!important}}
