:root{
  /* White edition — light white+beige palette (token names kept; meanings flipped to light) */
  --black:#f4ecdf;         /* beige page / alternating beige sections */
  --black-2:#fffdf9;       /* near-white paper / alternating light sections */
  --panel:#efe6d6;         /* soft beige panel */
  --camel:#b48a55;
  --gold:#856027;          /* gold darkened for WCAG AA contrast on light */
  --indigo:#4d6794;        /* signature accent: colonial indigo */
  --indigo-deep:#3d567d;
  --cream:#211c15;         /* primary ink (headings) */
  --cream-dim:#4c4438;     /* body text */
  --muted:#6f6557;
  --line:rgba(72,54,30,.16);
  --serif:'Italiana',Georgia,serif;
  --sans:'Lato',-apple-system,system-ui,sans-serif;
  --maxw:1280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--cream-dim);background:var(--black);
  line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:rgba(187,140,78,.25)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--cream);line-height:1.07;letter-spacing:.01em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 36px}
.kicker{font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.34em;
  text-transform:uppercase;color:var(--gold)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:11px;font-family:var(--sans);font-size:11.5px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;padding:15px 32px;cursor:pointer;transition:.32s ease;border:1px solid transparent;border-radius:1px}
.btn .arr{transition:transform .32s ease}
.btn:hover .arr{transform:translateX(5px)}
.btn--gold{background:var(--gold);color:#fff8ee}
.btn--gold:hover{background:var(--camel)}
.btn--ghost{border-color:rgba(56,42,22,.34);color:var(--cream)}
.btn--ghost:hover{background:var(--cream);color:var(--black-2)}
/* ghost buttons sitting on dark photo bands need light contrast */
.hero .btn--ghost,.subhero .btn--ghost,.crosslink .btn--ghost,.resv .btn--ghost{border-color:rgba(255,255,255,.6);color:#fff}
.hero .btn--ghost:hover,.subhero .btn--ghost:hover,.crosslink .btn--ghost:hover,.resv .btn--ghost:hover{background:#fff;color:var(--black-2)}
.link-more{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11.5px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold);padding-bottom:5px;border-bottom:1px solid var(--line);transition:.3s}
.link-more .arr{transition:transform .3s ease}
.link-more:hover{color:var(--cream)}
.link-more:hover .arr{transform:translateX(5px)}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;transition:.45s ease}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:88px;max-width:var(--maxw);margin:0 auto;padding:0 36px}
.brandmark{font-family:var(--serif);color:#fff;font-size:19px;letter-spacing:.2em;text-transform:uppercase;line-height:1}
.brandmark small{display:block;font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:.34em;color:var(--gold);margin-top:6px}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-size:13.5px;font-weight:600;letter-spacing:.14em;color:#fff;opacity:.9;transition:.25s;position:relative;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--indigo);transition:right .3s ease}
.nav a:hover{opacity:1}
.nav a:hover::after{right:0}
.hdr-right{display:flex;align-items:center;gap:20px}
.lang{display:flex;gap:6px;font-size:11px;letter-spacing:.12em;color:#fff;opacity:.9}
.lang a{opacity:.55;transition:.25s}.lang a.on{opacity:1;color:#e7caa1}.lang a:hover{opacity:1}.lang i{opacity:.4;font-style:normal}
.book-mini{background:var(--gold);border:1px solid var(--gold);color:#fff8ee;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:11px 22px;transition:.3s}
.book-mini:hover{background:var(--camel);border-color:var(--camel)}
.hdr.solid{background:var(--black-2);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);box-shadow:0 6px 30px rgba(40,28,12,.07)}
.hdr.solid .brandmark img{filter:brightness(0) saturate(100%) opacity(.82)}
.hdr.solid .nav a{color:var(--cream-dim);text-shadow:none;opacity:.78}
.hdr.solid .nav a:hover{opacity:1;color:var(--cream)}
.hdr.solid .lang{color:var(--cream-dim)}
.hdr.solid .lang a.on{color:var(--gold)}
.hdr.solid .menu-tog span{background:var(--cream)}
.menu-tog{display:none}

/* hero */
.hero{position:relative;height:100vh;min-height:600px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}
.hero-bg{position:absolute;inset:-8% 0;background-size:cover;background-position:center;will-change:transform}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 40%,rgba(20,17,14,.35) 0%,rgba(20,17,14,.62) 70%,rgba(20,17,14,.85) 100%)}
.hero-in{position:relative;z-index:3;padding:0 32px;max-width:1000px}
.hero .kicker{color:#e7caa1;font-size:clamp(14px,1.4vw,17px)}
.hero h1{color:#fff;font-size:clamp(42px,8vw,116px);margin:22px 0 0;text-shadow:0 4px 40px rgba(0,0,0,.5)}
.hero .sub{color:#efe6d8;font-weight:300;font-size:clamp(15px,1.6vw,20px);max-width:46ch;margin:26px auto 36px;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.scrollcue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:4;color:#fff;opacity:1;display:flex;flex-direction:column;align-items:center;gap:9px;text-shadow:0 2px 14px rgba(0,0,0,.65)}
.scrollcue span{font-size:13px;font-weight:700;letter-spacing:.32em;text-transform:uppercase}
.scrollcue .ln{width:3px;height:56px;background:#fff;animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.3);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:.9}}
@media(prefers-reduced-motion:reduce){.scrollcue .ln{animation:none}}

/* intro line */
.intro{padding:120px 0 96px;text-align:center}
.intro .wrap{max-width:880px}
.intro p.big{font-family:var(--serif);font-size:clamp(24px,3.2vw,40px);line-height:1.4;color:var(--cream);margin-top:26px}
.intro p.small{margin:28px auto 0;max-width:60ch;color:var(--muted);font-size:16px}

/* immersive mansion bands */
.band{display:grid;grid-template-columns:1fr 1fr;min-height:90vh}
.band .img{position:relative;overflow:hidden;min-height:420px}
.band .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.band:hover .img img{transform:scale(1.06)}
.band .img .num{position:absolute;top:34px;left:34px;font-family:var(--serif);font-size:15px;letter-spacing:.3em;color:rgba(255,255,255,.85);z-index:2}
.band .txt{display:flex;flex-direction:column;justify-content:center;padding:8vh 7vw;background:var(--black-2)}
.band.alt{direction:rtl}
.band.alt .txt,.band.alt .img{direction:ltr}
.band .txt .tier{color:var(--indigo);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:600}
.band .txt h2{font-size:clamp(32px,4.2vw,58px);margin:14px 0 0}
.band .txt p{color:var(--cream-dim);margin-top:22px;max-width:42ch;font-size:16px}
.band .row{display:flex;gap:36px;margin:32px 0 30px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band .row div{display:flex;flex-direction:column;gap:4px}
.band .row b{font-family:var(--sans);font-size:22px;color:var(--cream);font-weight:500;letter-spacing:.02em}
.band .row span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* glance strip */
.glance{padding:90px 0;background:var(--black);text-align:center;border-top:1px solid var(--line)}
.glance .kicker{color:var(--indigo)}
.glance h3{font-size:clamp(24px,3vw,38px);margin-top:14px;color:var(--cream)}
.glance p{max-width:54ch;margin:18px auto 0;color:var(--muted)}

/* rooms gallery-led */
.rooms{padding:120px 0;background:var(--black-2)}
.rooms .head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}
.rooms .head h2{font-size:clamp(30px,4vw,52px);margin-top:14px}
.rooms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
.rooms-grid.three{grid-template-columns:repeat(3,1fr)}
.rooms .subhead{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:14px;margin-top:64px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.rooms .subhead .shtier{display:block;color:var(--indigo);font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:9px}
.rooms .subhead h3{font-size:clamp(23px,2.8vw,34px);color:var(--cream)}
.rooms .subhead .frm{font-size:13px;color:var(--muted);letter-spacing:.04em}
.room{position:relative;overflow:hidden;aspect-ratio:3/4.1}
.room img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s ease}
.room:hover img{transform:scale(1.07)}
.room::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,17,14,.85) 0%,rgba(20,17,14,0) 55%)}
.room .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px 22px}
.room .cap .rt{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#e7caa1;margin-bottom:6px}
.room .cap h4{font-size:23px;color:#fff}
.room .cap .meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-size:12.5px;color:rgba(255,255,255,.82)}
.room .cap .price{font-family:var(--sans);font-size:15px;font-weight:600;color:#fff}
.rooms-foot{display:flex;justify-content:center;margin-top:56px}

/* amenities */
.amen{padding:72px 0;background:var(--black);text-align:center}
.amen .kicker{color:var(--indigo)}
.amen h2{font-size:clamp(28px,3.6vw,46px);margin-top:14px}
.amen-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-top:56px;border:1px solid var(--line)}
.amen-card{padding:40px 18px;border-right:1px solid var(--line);transition:.35s}
.amen-card:nth-child(6){border-right:none}
.amen-card:hover{background:rgba(93,122,166,.1)}
.amen-card svg{width:30px;height:30px;stroke:var(--gold);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin:0 auto 18px}
.amen-card span{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--cream)}
.amen-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 44px;max-width:1000px;margin:38px auto 0;text-align:left}
.amen-list .am-ln{display:flex;align-items:center;gap:19px;padding:24px 2px;border-bottom:1px solid var(--line)}
.amen-list .am-ig{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--gold);flex:none;transition:.3s}
.amen-list .am-ig svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;display:block}
.amen-list .am-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.amen-list .am-nm{font-family:var(--serif);font-size:24px;color:var(--cream)}
.amen-list .am-ds{font-size:12.6px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.amen-list .am-ln:hover .am-ig{background:var(--gold);border-color:var(--gold);color:#fff8ee}
@media(max-width:760px){.amen-list{grid-template-columns:1fr;max-width:420px}}

/* gallery full-bleed */
.gallery{padding:120px 0;background:var(--black-2)}
.gallery .head{text-align:center;margin-bottom:54px}
.gallery .head h2{font-size:clamp(30px,4vw,52px);margin-top:14px}
.gallery .head .kicker{color:var(--indigo)}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:215px;gap:12px}
.gal-grid figure{overflow:hidden;position:relative}
.gal-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease,filter .6s;filter:saturate(.95)}
.gal-grid figure:hover img{transform:scale(1.08)}
.g-tall{grid-row:span 2}.g-wide{grid-column:span 2}
.gal-foot{display:flex;justify-content:center;margin-top:50px}

/* location */
.loc{padding:120px 0;background:var(--black)}
.loc .head{margin-bottom:54px}
.loc .head h2{font-size:clamp(30px,4vw,52px);margin-top:14px}
.loc .head .kicker{color:var(--indigo)}
.loc-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start}
.map-card{border:1px solid var(--line);overflow:hidden;min-height:440px;background:var(--panel)}
.map-card iframe{width:100%;height:100%;min-height:440px;border:0;filter:grayscale(.35) sepia(.12) contrast(.96)}
.ab-item{padding:26px 0;border-bottom:1px solid var(--line)}
.ab-item:first-child{padding-top:0}
.ab-item .where{color:var(--indigo);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:9px}
.ab-item h4{font-size:21px}
.ab-item p{color:var(--muted);font-size:14.5px}
.ab-item .ph{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:12px;font-size:13.5px;color:var(--cream-dim)}
.ab-item .ph a{border-bottom:1px solid var(--line)}
.nearby{overflow:hidden;max-height:0;opacity:0;transition:max-height .6s ease,opacity .5s ease}
.nearby.open{max-height:520px;opacity:1}
.nearby ul{list-style:none;margin-top:20px;border-top:1px solid var(--line)}
.nearby li{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.nearby li span:first-child{color:var(--cream-dim)}
.nearby li span:last-child{color:var(--muted);font-size:12.5px;white-space:nowrap}
.nearby .nb-head{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--indigo);font-weight:600;margin-top:24px}
.reveal-btn{margin-top:26px;background:none;border:none;cursor:pointer}

/* press */
.press{padding:80px 0;background:var(--black-2);text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.press .lab{font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}
.press-feature{margin-top:30px}
.press-feature .cn{display:block;font-family:var(--serif);font-size:clamp(34px,5.2vw,62px);color:var(--cream);letter-spacing:.02em;line-height:1}
.press-feature .cn-quote{font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.9vw,22px);color:var(--gold);margin-top:14px}
.press-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:30px 56px;margin-top:40px}
.press-row span{font-family:var(--serif);font-size:clamp(18px,2.4vw,28px);color:var(--cream);opacity:.62;transition:.3s}
.press-row span:hover{opacity:1}
.press .lab2{font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);margin-top:56px}
.ota-wall{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:24px auto 0;max-width:880px}
.ota-wall span,.ota-wall a{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--cream-dim);border:1px solid var(--line);padding:11px 20px;border-radius:2px;transition:.3s;opacity:.82}
.ota-wall span:hover,.ota-wall a:hover{opacity:1;border-color:var(--gold);color:var(--cream)}
.press .note{margin-top:30px;font-size:10.5px;color:rgba(147,138,124,.7)}

/* reservations */
.resv{position:relative;padding:140px 0;text-align:center;overflow:hidden}
.resv .resv-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.resv::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(20,17,14,.72),rgba(20,17,14,.82))}
.resv .wrap{position:relative;z-index:3}
.resv .kicker{color:#e7caa1}
.resv h2{font-size:clamp(30px,4.6vw,58px);color:#fff}
.resv p{max-width:48ch;margin:18px auto 0;color:#efe6d8}
.bookbar{display:flex;flex-wrap:wrap;justify-content:center;margin:44px auto 0;max-width:900px;background:rgba(255,253,249,.97);border:1px solid var(--line);border-radius:2px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.32)}
.bf{flex:1 1 0;min-width:150px;text-align:left;padding:18px 22px;border-right:1px solid var(--line)}
.bf label{display:block;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.bf select,.bf input{width:100%;border:none;background:none;font-family:var(--sans);font-size:15px;color:var(--cream);outline:none}
.bf select option{color:#000}
.bf .prop{font-family:var(--serif)}
.bookbar .btn{border-radius:0;align-self:stretch;padding:0 36px}
.bookbar .btn .arr{display:none}

/* sticky book bar — removed (redundant with the persistent header Book now button) */
.stickybar{display:none !important}

/* footer */
.ft{background:var(--panel);color:var(--cream-dim);padding:54px 0 28px;border-top:1px solid var(--line)}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.ft .brandmark{color:var(--cream)}
.ft .blurb{margin-top:33px;font-size:14px;color:var(--muted);max-width:34ch}
.ft h5{font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.ft ul{list-style:none}.ft li{margin-bottom:11px;font-size:14px;color:var(--cream-dim)}.ft li a:hover{color:var(--cream)}
.ft .addr{font-size:13.5px;color:var(--muted);line-height:1.85}
.ft .addr b{color:var(--cream);font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:6px}
.social{display:flex;gap:14px;margin-top:18px}
.social a{width:38px;height:38px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:.3s}
.social a:hover{background:var(--gold);border-color:var(--gold)}
.social svg{width:21px;height:21px;fill:var(--cream-dim)}.social a:hover svg{fill:#fff8ee}
.ft-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.ft-bot a:hover{color:var(--cream)}

/* reveal — visible by default; hide+animate only when motion is allowed */
.rv{opacity:1;transform:none}
@media (prefers-reduced-motion: no-preference){
  .reveal-on .rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
  .reveal-on .rv.in{opacity:1;transform:none}
}
@media print{.rv{opacity:1 !important;transform:none !important}}

@media(max-width:980px){
  .rooms-grid,.rooms-grid.three{grid-template-columns:repeat(2,1fr)}
  .amen-grid{grid-template-columns:repeat(3,1fr)}
  .amen-card:nth-child(3){border-right:none}
  .amen-card:nth-child(n+4){border-top:1px solid var(--line)}
  .loc-grid{grid-template-columns:1fr;gap:38px}
  .ft-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .wrap,.hdr-in{padding-left:22px;padding-right:22px}
  .nav,.lang{display:none}
  .menu-tog{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
  .menu-tog span{width:24px;height:1.6px;background:#fff;transition:.3s}
  .band{grid-template-columns:1fr}
  .band.alt{direction:ltr}
  .band .img{min-height:340px}
  .band .txt{padding:54px 28px}
  .gal-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:155px}
  .rooms-grid,.rooms-grid.three{grid-template-columns:1fr 1fr;gap:12px}
  .ft-grid{grid-template-columns:1fr}
  .bf{flex:1 1 100%;border-right:none;border-bottom:1px solid var(--line)}
  .bookbar .btn{flex:1 1 100%;padding:18px}
  .stickybar .sb-l{display:none}
  .stickybar .wrap{justify-content:center}
}
@media(max-width:430px){.amen-grid{grid-template-columns:repeat(2,1fr)}.rooms-grid,.rooms-grid.three{grid-template-columns:1fr}}

/* ============ SUBPAGE UTILITIES ============ */
.subhero{position:relative;min-height:62vh;display:flex;align-items:flex-end;overflow:hidden}
.subhero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04)}
.subhero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,17,14,.88) 0%,rgba(20,17,14,.32) 55%,rgba(20,17,14,.5) 100%)}
.subhero .wrap{position:relative;z-index:3;padding-bottom:64px;padding-top:128px}
.subhero .crumb{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);opacity:.82}
.subhero .crumb a:hover{color:var(--gold)}
.subhero h1{color:#fff;font-size:clamp(40px,6.5vw,84px);margin-top:16px;text-shadow:0 3px 30px rgba(0,0,0,.45)}
.subhero p{color:#efe6d8;max-width:56ch;margin-top:18px;font-size:clamp(15px,1.5vw,18px);text-shadow:0 2px 14px rgba(0,0,0,.4)}

.sec{padding:110px 0}
.sec-head .kicker{color:var(--indigo)}
.sec-head h2{font-size:clamp(28px,3.8vw,48px);margin-top:14px;color:var(--cream)}
.sec-head p{color:var(--muted);margin-top:16px;max-width:60ch}
.center{text-align:center}
.center .sec-head{margin-left:auto;margin-right:auto}
.center .sec-head p{margin-left:auto;margin-right:auto}

/* room list cards */
.roomlist{display:grid;grid-template-columns:1fr;gap:26px;margin-top:40px}
.rl-card{display:grid;grid-template-columns:1.15fr 1fr;background:var(--black-2);border:1px solid var(--line);overflow:hidden}
.rl-card.flip{direction:rtl}.rl-card.flip>*{direction:ltr}
.rl-card .ph{position:relative;overflow:hidden;min-height:360px}
.rl-card .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.rl-card:hover .ph img{transform:scale(1.05)}
.rl-card .ph .badge{position:absolute;top:20px;left:20px;background:rgba(20,17,14,.66);backdrop-filter:blur(4px);border:1px solid var(--line);color:var(--gold);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;padding:8px 14px}
.rl-card .body{padding:46px 48px;display:flex;flex-direction:column}
.rl-card .body h3{font-size:clamp(26px,3vw,36px)}
.rl-card .body .spec{display:flex;gap:30px;margin:20px 0;flex-wrap:wrap}
.rl-card .body .spec div{display:flex;flex-direction:column;gap:3px}
.rl-card .body .spec b{font-family:var(--sans);font-size:17px;color:var(--cream);font-weight:500}
.rl-card .body .spec span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.rl-card .body p{color:var(--cream-dim);font-size:15px;max-width:48ch}
.rl-card .amlist{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px}
.rl-card .amlist span{font-size:11px;letter-spacing:.04em;color:var(--cream-dim);border:1px solid var(--line);padding:6px 13px;border-radius:2px}
.rl-card .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.rl-card .price{font-family:var(--sans);font-size:22px;font-weight:500;color:var(--cream)}
.rl-card .price small{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* contact form */
.form{display:grid;gap:18px}
.form .fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.form input,.form textarea,.form select{width:100%;background:var(--black-2);border:1px solid var(--line);color:var(--cream);font-family:var(--sans);font-size:15px;padding:14px 16px;border-radius:2px;outline:none;transition:.25s}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--gold)}
.form textarea{min-height:150px;resize:vertical}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(12,10,8,.95);display:none;align-items:center;justify-content:center;padding:40px}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:86vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb button{position:absolute;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;transition:.25s;display:flex;align-items:center;justify-content:center;font-family:var(--serif)}
.lb .x{top:24px;right:24px;width:46px;height:46px;font-size:22px}
.lb .nav-btn{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:26px}
.lb .prev{left:24px}.lb .next{right:24px}
.lb button:hover{background:var(--gold);border-color:var(--gold);color:#1a140c}
.gal-grid.clickable figure{cursor:pointer}

/* cross-link band */
.crosslink{position:relative;overflow:hidden;padding:120px 0;text-align:center}
.crosslink-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.crosslink::after{content:"";position:absolute;inset:0;background:rgba(20,17,14,.74)}
.crosslink .wrap{position:relative;z-index:3}
.crosslink .kicker{color:#e7caa1}
.crosslink h2{color:#fff;font-size:clamp(28px,4vw,50px);margin-top:14px}
.crosslink p{color:#efe6d8;max-width:50ch;margin:16px auto 30px}

@media(max-width:860px){
  .rl-card{grid-template-columns:1fr}
  .rl-card.flip{direction:ltr}
  .rl-card .ph{min-height:260px}
  .rl-card .body{padding:34px 26px}
  .form .fieldrow{grid-template-columns:1fr}
}


/* mobile nav dropdown */
@media(max-width:760px){
  .nav.open{display:flex;position:absolute;top:88px;left:0;right:0;flex-direction:column;gap:0;background:rgba(255,253,249,.98);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:8px 22px 18px;box-shadow:0 20px 40px rgba(40,28,12,.1)}
  .nav.open a{padding:15px 0;border-bottom:1px solid var(--line);width:100%;color:var(--cream-dim);text-shadow:none;opacity:.9}
  .nav.open a::after{display:none}
  .menu-tog[aria-expanded="true"] span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
  .menu-tog[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-tog[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
}
.nav a[aria-current="page"]{opacity:1;color:var(--gold)}
.brandmark img{height:62px;width:auto;display:block}
.ft .brandmark img{height:62px;margin-top:-22px;filter:brightness(0) saturate(100%) opacity(.82)}
@media(max-width:760px){.brandmark img{height:46px}}

/* faq */
.faq{max-width:860px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:26px 44px 26px 0;position:relative;font-family:var(--serif);font-size:clamp(18px,2.2vw,23px);color:var(--cream);transition:.25s}
.faq-q:hover{color:var(--gold)}
.faq-q .ic{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:20px;height:20px}
.faq-q .ic::before,.faq-q .ic::after{content:"";position:absolute;background:var(--gold);transition:.3s}
.faq-q .ic::before{top:9px;left:0;width:20px;height:1.5px}
.faq-q .ic::after{left:9px;top:0;width:1.5px;height:20px}
.faq-item.open .faq-q .ic::after{transform:scaleY(0)}
.faq-a{overflow:hidden;max-height:0;transition:max-height .4s ease}
.faq-a .inner{padding:0 0 26px;color:var(--cream-dim);font-size:15.5px;max-width:74ch}
.faq-item.open .faq-a{max-height:560px}

/* blog */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:46px}
.post{background:var(--black-2);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:.35s}
.post:hover{transform:translateY(-5px);border-color:rgba(216,178,119,.45)}
.post .ph{aspect-ratio:3/2;overflow:hidden}
.post .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s ease}
.post:hover .ph img{transform:scale(1.06)}
.post .body{padding:26px 26px 30px;display:flex;flex-direction:column;flex:1}
.post .cat{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--indigo);font-weight:600}
.post h3{font-size:21px;margin:10px 0 0;color:var(--cream)}
.post p{color:var(--muted);font-size:14px;margin-top:10px}
.post .more{margin-top:auto;padding-top:18px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
@media(max-width:980px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.blog-grid{grid-template-columns:1fr}}

/* recommendations */
.rec-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:44px}
.rec{border:1px solid var(--line);background:var(--black-2);padding:30px 32px;display:flex;flex-direction:column;transition:.3s}
.rec:hover{border-color:rgba(216,178,119,.45);background:rgba(93,122,166,.06)}
.rec .cat{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--indigo);font-weight:600;margin-bottom:9px}
.rec .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.rec h3{font-size:23px;color:var(--cream)}
.rec .dist{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.rec p{color:var(--muted);font-size:14.5px;margin-top:12px}
@media(max-width:760px){.rec-grid{grid-template-columns:1fr}}
.rec.starred{position:relative}
.michelin{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,253,249,.92);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 7px}
.michelin svg{width:17px;height:17px;display:block;flex:none}
.michelin span{font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);font-weight:600}