/* =====================================================================
   PLAWA LAGUNA BALI — Editorial site stylesheet
   Shared across every page. Layered on ../colors_and_type.css tokens.
   Direction: "Editorial" — magazine on cream, oversized Ivy Ora serif,
   numbered sections, hairline rules, slow scroll reveals.
   ===================================================================== */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--terracotta);color:#fff;}

:root{ --B-paper:#F7F2E9; --B-paper2:#EFE7D9; --B-line:#D9CDB8; --B-ink:#211E18; }

.wrap{max-width:1300px;margin:0 auto;padding:0 44px;}
.serif{font-family:var(--font-display);font-weight:400;}
.eyebrow{font:500 .72rem/1.4 var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--terracotta);margin:0;}
.idx{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--terracotta);}
.center{text-align:center;}

[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
[data-reveal].is-in{opacity:1;transform:none;}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:11px;font:500 .74rem/1 var(--font-body);
  letter-spacing:.18em;text-transform:uppercase;padding:16px 32px;border-radius:0;border:1px solid var(--B-ink);
  cursor:pointer;transition:all .35s var(--ease);background:transparent;color:var(--B-ink);}
.btn .ar{transition:transform .35s var(--ease);} .btn:hover .ar{transform:translateX(5px);}
.btn:hover{background:var(--B-ink);color:var(--B-paper);}
.btn--solid{background:var(--terracotta);border-color:var(--terracotta);color:#fff;}
.btn--solid:hover{background:var(--terracotta-deep);border-color:var(--terracotta-deep);color:#fff;}
.btn--light{border-color:rgba(255,255,255,.6);color:#fff;}
.btn--light:hover{background:#fff;color:var(--B-ink);border-color:#fff;}

.tlink{display:inline-flex;align-items:center;gap:9px;font:500 .74rem/1 var(--font-body);letter-spacing:.16em;
  text-transform:uppercase;color:var(--terracotta-deep);position:relative;padding-bottom:5px;}
.tlink::after{content:"";position:absolute;left:0;right:30%;bottom:0;height:1px;background:var(--terracotta);transition:right .4s var(--ease);}
.tlink:hover::after{right:0;} .tlink .ar{transition:transform .35s var(--ease);} .tlink:hover .ar{transform:translateX(4px);}

/* ---------- NAV ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;transition:background .5s var(--ease),border-color .5s;border-bottom:1px solid transparent;}
.nav__in{display:flex;align-items:center;gap:24px;height:82px;}
.nav.is-solid{background:rgba(247,242,233,.9);backdrop-filter:blur(12px);border-bottom-color:var(--B-line);}
.nav__logo{height:40px;transition:opacity .4s;}
.nav__logo--light{position:absolute;}
.nav.is-solid .nav__logo--light{opacity:0;}
.nav:not(.is-solid) .nav__logo--dark{opacity:0;}
/* pages that always have a solid nav (no dark hero) */
.nav.nav--static{position:absolute;}
.nav__brand{position:relative;display:flex;align-items:center;}
.nav__links{display:flex;gap:26px;margin:0 auto;}
.nav__links a{font-size:13px;letter-spacing:.03em;color:#fff;position:relative;padding:5px 0;transition:color .3s;white-space:nowrap;}
.nav.is-solid .nav__links a{color:var(--fg-2);}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--terracotta);transition:right .4s var(--ease);}
.nav__links a:hover::after,.nav__links a.is-current::after{right:0;}
.nav.is-solid .nav__links a:hover,.nav.is-solid .nav__links a.is-current{color:var(--terracotta-deep);}
.nav__links a.is-current{color:#fff;}
.nav__book{font:500 .7rem/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;border:1px solid currentColor;color:#fff;padding:12px 24px;transition:all .3s;}
.nav.is-solid .nav__book{color:var(--B-ink);}
.nav__book:hover{background:var(--terracotta);border-color:var(--terracotta);color:#fff;}
.nav__burger{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:8px;}
.nav.is-solid .nav__burger{color:var(--B-ink);}

.drawer{position:fixed;inset:0;z-index:70;background:var(--B-paper);transform:translateY(-100%);transition:transform .6s var(--ease);display:flex;flex-direction:column;padding:30px 44px;visibility:hidden;}
.drawer.is-open{transform:translateY(0);visibility:visible;}
.drawer__top{display:flex;align-items:center;justify-content:space-between;height:82px;}
.drawer__links{display:flex;flex-direction:column;gap:2px;margin:24px 0 auto;}
.drawer__links a{font-family:var(--font-display);font-size:clamp(1.6rem,4.6vw,2.4rem);color:var(--B-ink);transition:color .3s;line-height:1.22;}
.drawer__links a:hover{color:var(--terracotta);}
.drawer__foot{display:flex;flex-direction:column;gap:10px;color:var(--fg-3);font-size:.92rem;padding-top:24px;border-top:1px solid var(--B-line);}
.drawer__contact{color:var(--fg-2);transition:color .3s;}
.drawer__contact:hover{color:var(--terracotta);}
.drawer__social{display:flex;gap:24px;margin-top:6px;}
.drawer__social a{display:flex;align-items:center;gap:8px;color:var(--fg-2);font-size:.85rem;transition:color .3s;}
.drawer__social a:hover{color:var(--terracotta);}
.drawer__social svg{width:17px;height:17px;flex:none;}
.x-btn{background:none;border:0;color:var(--B-ink);cursor:pointer;padding:8px;}

/* ---------- HOME HERO (video) ---------- */
.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;}
.hero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform;}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,28,23,.42),rgba(31,28,23,.05) 36%,rgba(31,28,23,.55));}
.hero__in{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(50px,9vh,96px);color:#fff;}
.hero__top{position:absolute;top:120px;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;}
.hero__top .eyebrow{color:rgba(255,255,255,.86);}
.hero__rating{text-align:right;font-size:11.5px;letter-spacing:.06em;color:rgba(255,255,255,.86);line-height:1.7;text-transform:uppercase;}
.hero__rating b{color:#fff;font-weight:600;}
.hero__title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.5rem,6.4vw,5.8rem);line-height:1;letter-spacing:-.015em;margin:0;max-width:15ch;}
.hero__title em{font-style:italic;}
.hero__row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:30px;flex-wrap:wrap;}
.hero__row .hero__title{margin:0;flex:1 1 auto;}
.hero__row .btn{flex:0 0 auto;margin-bottom:8px;}
.hero__sub{font:400 clamp(1rem,1.2vw,1.18rem)/1.6 var(--font-body);color:rgba(255,255,255,.92);max-width:58ch;margin:0;}
.hero__rule{height:1px;background:rgba(255,255,255,.3);margin-top:26px;}
.hero__award{display:flex;align-items:center;gap:20px;margin-top:20px;flex-wrap:wrap;}
.hero__award-badge{height:44px;width:auto;border-radius:7px;box-shadow:0 6px 22px -8px rgba(0,0,0,.5);filter:saturate(.7) brightness(1.02) opacity(.86);transition:filter .3s var(--ease);}
.hero__award-link{display:inline-flex;}
.hero__award-link:hover .hero__award-badge{filter:saturate(1) brightness(1) opacity(1);}
.hero__award-div{width:1px;height:38px;background:rgba(255,255,255,.32);}
.hero__meta{margin:0;font:500 .8rem/1.4 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.82);display:flex;flex-direction:row;align-items:baseline;gap:.5em;flex-wrap:wrap;}
.hero__meta-l1{display:inline-flex;align-items:baseline;gap:.4em;}
.hero__meta-l2::before{content:"·";margin-right:.5em;}
.hero__meta-score{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:#fff;letter-spacing:0;text-transform:none;}
@media(max-width:560px){.hero__award-div{display:none;}.hero__award{gap:14px;}}

/* hero sound toggle */
.hero__sound{position:absolute;bottom:30px;right:44px;z-index:4;width:50px;height:50px;border-radius:50%;
  border:1px solid rgba(255,255,255,.4);background:rgba(31,28,23,.32);backdrop-filter:blur(8px);
  color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .3s var(--ease),border-color .3s,transform .3s var(--ease);}
.hero__sound:hover{background:rgba(31,28,23,.5);border-color:rgba(255,255,255,.7);transform:scale(1.05);}
.hero__sound svg{position:absolute;transition:opacity .25s var(--ease);}
.hero__sound .hero__sound-on{opacity:0;}
.hero__sound .hero__sound-off{opacity:1;}
.hero__sound.is-on .hero__sound-on{opacity:1;}
.hero__sound.is-on .hero__sound-off{opacity:0;}
@media(max-width:680px){.hero__sound{right:22px;bottom:auto;top:40%;width:44px;height:44px;}}

/* ---------- PAGE HERO (interior, image) ---------- */
.phero{position:relative;height:clamp(440px,70svh,640px);min-height:440px;overflow:hidden;}
.phero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform;}
.phero__media--sunny{filter:brightness(1.12) saturate(1.12) contrast(1.02);object-position:center 78%;}
.phero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,28,23,.46),rgba(31,28,23,.12) 45%,rgba(31,28,23,.6));}
.phero__in{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(40px,7vh,76px);color:#fff;}
.phero__eyebrow{color:rgba(255,255,255,.86);}
.phero__title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.6rem,6.5vw,5.4rem);line-height:1;margin:14px 0 0;max-width:18ch;}
.phero__title em{font-style:italic;}
.phero__sub{font:400 clamp(1rem,1.2vw,1.18rem)/1.6 var(--font-body);color:rgba(255,255,255,.92);max-width:52ch;margin:18px 0 0;}
/* plain text hero (no photo) */
.phero--plain{height:auto;min-height:0;background:var(--cream);}
.phero--plain .phero__in{color:var(--ink);justify-content:flex-end;padding-top:clamp(130px,20vh,200px);padding-bottom:clamp(28px,5vh,56px);}
.phero--plain .phero__eyebrow{color:var(--terracotta);}
.phero--plain .phero__sub{color:var(--fg-2);}

/* ---------- SECTION SCAFFOLD ---------- */
.sec{padding:clamp(70px,11vh,140px) 0;}
.sec--alt{background:var(--B-paper2);}
.sec--dark{background:var(--B-ink);color:var(--B-paper);}
.sec--tight{padding:clamp(48px,7vh,90px) 0;}
.rowhead{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline;border-top:1px solid var(--B-line);padding-top:22px;margin-bottom:50px;}
.sec--dark .rowhead{border-top-color:rgba(244,239,230,.18);}
.rowhead h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.04;margin:6px 0 0;grid-column:2;max-width:22ch;}
.sec--dark .rowhead h2{color:var(--B-paper);}
.rowhead .eyebrow{grid-column:2;}
.rowhead__aside{grid-column:2;justify-self:end;align-self:center;max-width:34ch;color:var(--fg-2);font-size:.98rem;line-height:1.7;}
.rowhead--split{grid-template-columns:1fr;gap:18px;}
.rowhead--split .eyebrow{grid-column:1;margin:0 0 -4px;}
.rowhead--split h2{grid-column:1;margin-top:0;max-width:24ch;}
.rowhead--split .rowhead__aside{grid-column:1;justify-self:start;align-self:start;max-width:48ch;}
/* Suites header — match the Pool/Breakfast section-header look exactly */
#rooms .rowhead--split,#explore .rowhead--split{gap:0;}
#rooms .rowhead--split .eyebrow,#explore .rowhead--split .eyebrow{font-size:1.04rem;line-height:1.6;color:var(--fg-2);margin:0 0 16px;}
#rooms .rowhead--split h2,#explore .rowhead--split h2{font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.06;margin:0 0 20px;}
#rooms .rowhead--split .rowhead__aside{max-width:none;}
@media(min-width:900px){.rowhead--split{grid-template-columns:1fr;align-items:start;gap:16px;}.rowhead--split h2{grid-column:1;white-space:nowrap;max-width:none;}.rowhead--split .rowhead__aside{grid-column:1;justify-self:start;align-self:start;text-align:left;max-width:52ch;margin-bottom:0;}}

/* ---------- STORY (magazine columns) ---------- */
.story{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center;}
.story--rev .story__media{order:2;}
.story__media{position:relative;}
.story__media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.story__media figcaption{font-size:.74rem;letter-spacing:.04em;color:var(--fg-3);margin-top:12px;text-transform:uppercase;}
.story__lead{font-family:var(--font-body);font-weight:400;font-size:1.18rem;line-height:1.72;color:var(--fg-1);margin:0 0 18px;}
.story__lead em{font-style:italic;color:var(--terracotta-deep);}
.story p{font-size:1.04rem;line-height:1.76;color:var(--fg-2);margin:0 0 18px;}
.story__meta{display:flex;gap:40px;margin-top:30px;padding-top:24px;border-top:1px solid var(--B-line);flex-wrap:wrap;}
.story__meta .n{font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--terracotta-deep);}
.story__meta .l{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);margin-top:8px;}

/* ---------- PROSE ---------- */
.prose{max-width:64ch;}
.prose.center{margin:0 auto;}
.prose p{font-size:1.08rem;line-height:1.8;color:var(--fg-2);margin:0 0 22px;}
.prose p.lead{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.34;color:var(--ink);}
.prose em{font-style:italic;color:var(--terracotta-deep);}

/* ---------- ROOMS INDEX (home) ---------- */
.rooms-idx{border-top:1px solid var(--B-line);}
.rrow{display:grid;grid-template-columns:148px 1fr 1.4fr 250px;gap:22px;align-items:center;padding:26px 0;border-bottom:1px solid var(--B-line);
  transition:padding .4s var(--ease);position:relative;}
.rrow:hover{padding-left:14px;}
.rrow__no{font-family:var(--font-display);font-style:italic;font-size:clamp(1.95rem,2.6vw,2.4rem);line-height:1;color:var(--terracotta);white-space:nowrap;}
.rrow__no .amp,.roomfull__no .amp{font-family:var(--font-body);font-style:normal;font-size:.82em;padding:0 .08em;}
.rrow__name{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.05;}
.rrow__name small{display:block;font-family:var(--font-body);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3);margin-top:8px;}
.rrow__specs{font-size:.92rem;color:var(--fg-2);line-height:1.65;text-wrap:pretty;}
.rrow>.tlink{justify-self:end;align-self:center;transition:transform .5s var(--ease);}
.rrow:hover>.tlink{transform:translateX(-174px);}
.rrow__thumb{width:158px;height:112px;overflow:hidden;opacity:0;transition:opacity .35s var(--ease),transform .5s var(--ease);position:absolute;right:0;top:50%;transform:translateY(-50%) translateX(28px);pointer-events:none;border-radius:0;box-shadow:var(--shadow-lg);}
.rrow:hover .rrow__thumb{opacity:1;transform:translateY(-50%) translateX(0);}
.rrow__thumb img{width:100%;height:100%;object-fit:cover;}
@media(hover:none){.rrow__thumb{display:none;}}

/* ---------- ROOM DETAIL (rooms page) ---------- */
.roomfull{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:clamp(480px,72vh,640px);border-top:1px solid var(--B-line);}
.roomfull--rev .roomfull__media{order:2;}
.roomfull__media{position:relative;overflow:hidden;background:var(--B-paper);}
.roomfull__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
.roomfull__media .roomfull__img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transition:opacity .5s var(--ease),transform 1.4s var(--ease);}
.roomfull__img.is-portrait{object-fit:contain;}
.roomfull:hover .roomfull__media .roomfull__img{transform:scale(1.04);}
/* gallery: soft cross-fade image + thumbnails */
.roomfull__media[data-gallery]{cursor:zoom-in;}
.roomfull__img.is-fading{opacity:0;}
.roomfull__thumbs{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;padding:14px 16px;background:linear-gradient(to top,rgba(31,28,23,.5),rgba(31,28,23,0));overflow-x:auto;scrollbar-width:none;}
.roomfull__thumbs::-webkit-scrollbar{display:none;}
.roomfull__thumb{flex:0 0 auto;width:60px;height:46px;padding:0;border:0;border-radius:3px;overflow:hidden;cursor:pointer;opacity:.62;outline:1.5px solid transparent;outline-offset:0;transition:opacity .3s var(--ease),outline-color .3s var(--ease);background:none;}
.roomfull__thumb img{width:100%;height:100%;object-fit:cover;transition:none;}
.roomfull__thumb:hover{opacity:.9;}
.roomfull__thumb.is-on{opacity:1;outline-color:#fff;}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(24,21,17,.92);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s var(--ease);}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox__img{max-width:88vw;max-height:84vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5);opacity:0;transition:opacity .45s var(--ease);}
.lightbox__img.is-shown{opacity:1;}
.lightbox__btn{position:absolute;background:rgba(247,242,233,.1);border:1px solid rgba(255,255,255,.25);color:#fff;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:background .25s;}
.lightbox__btn:hover{background:rgba(247,242,233,.22);}
.lightbox__btn svg{width:22px;height:22px;}
.lightbox__prev{left:max(18px,3vw);}
.lightbox__next{right:max(18px,3vw);}
.lightbox__close{top:22px;right:max(18px,3vw);width:46px;height:46px;}
.lightbox__count{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:.82rem;letter-spacing:.1em;}
.roomfull__no{position:absolute;top:20px;left:20px;z-index:2;display:inline-flex;align-items:center;font-family:var(--font-display);font-style:italic;font-size:1.45rem;line-height:1;color:var(--terracotta);background:rgba(247,242,233,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:7px 15px;border-radius:999px;box-shadow:0 2px 14px -4px rgba(31,28,23,.3);text-shadow:none;}
.roomfull__body{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,5.5vw,90px);}
.roomfull__name{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.04;margin:6px 0 18px;}
.roomfull__body p{font-size:1.04rem;line-height:1.76;color:var(--fg-2);margin:0 0 24px;max-width:46ch;}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 30px;border-top:1px solid var(--B-line);}
.specs div{padding:14px 0;border-bottom:1px solid var(--B-line);display:flex;justify-content:space-between;gap:16px;font-size:.92rem;}
.specs div:nth-child(odd){padding-right:24px;border-right:1px solid var(--B-line);}
.specs div:nth-child(even){padding-left:24px;}
.specs dt{color:var(--fg-3);text-transform:uppercase;letter-spacing:.05em;font-size:.74rem;}
.specs dd{margin:0;color:var(--ink);font-weight:500;}

/* ---------- SPREAD ---------- */
.spread{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:clamp(460px,76vh,680px);}
.spread--rev .spread__media{order:2;}
.spread__media{position:relative;overflow:hidden;}
.spread__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
.spread:hover .spread__media img{transform:scale(1.04);}
.spread__media--fit{background:var(--B-paper);}
.spread__media--fit img{object-fit:contain;padding:clamp(40px,7vw,96px);}
.spread:hover .spread__media--fit img{transform:none;}
.spread__body{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6.5vw,100px);}
.spread--dark .spread__body{background:var(--B-ink);color:var(--B-paper);}
.spread--dark .eyebrow{color:var(--terracotta-soft);}
.spread__body h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.06;margin:14px 0 22px;text-wrap:balance;}
.spread__body p{font-size:1.04rem;line-height:1.76;color:var(--fg-2);margin:0 0 18px;max-width:56ch;}
.spread--dark .spread__body p{color:var(--fg-on-dark-2);}

/* ---------- BIG QUOTE / REVIEWS ---------- */
.bigq{text-align:center;}
.bigq__mark{font-family:var(--font-display);font-size:5rem;line-height:.5;color:var(--terracotta);}
.bigq blockquote{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.35rem);line-height:1.34;margin:24px auto 0;max-width:26ch;text-wrap:balance;display:block;text-align:center;}
.bigq blockquote em{font-style:italic;color:var(--terracotta-deep);white-space:nowrap;}
.bigq .by{margin-top:30px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);}
.revs__ctrl{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:42px;}
.revs__ctrl button{width:48px;height:48px;border-radius:50%;border:1px solid var(--B-line);background:transparent;color:var(--fg-2);cursor:pointer;display:grid;place-items:center;transition:all .3s var(--ease);}
.revs__ctrl button:hover{background:var(--B-ink);color:var(--B-paper);border-color:var(--B-ink);}
.rev-dots{display:flex;gap:11px;align-items:center;}
.revs__ctrl .rev-dot{width:9px;height:9px;flex:0 0 auto;align-self:center;border-radius:50%;border:1px solid var(--border-strong);background:transparent;cursor:pointer;padding:0;transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);}
.revs__ctrl .rev-dot.is-on{background:var(--terracotta);border-color:var(--terracotta);transform:scale(1.3);}
.rev{display:none;} .rev.is-active{display:flex;flex-direction:column;justify-content:center;}

/* ---------- AWARD BADGE ---------- */
.award{margin-top:50px;display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;}
.award__link{display:inline-flex;}
.award__badge{height:46px;width:auto;border-radius:8px;filter:saturate(.7) opacity(.86);transition:filter .3s var(--ease);}
.award__link:hover .award__badge{filter:saturate(1) opacity(1);}
.award__div{width:1px;height:42px;background:var(--border-strong);}
.award__text{margin:0;text-align:left;font-size:.82rem;line-height:1.5;color:var(--fg-3);}
.award__text b{display:block;color:var(--fg-1);font-weight:600;font-size:.96rem;letter-spacing:.005em;margin-bottom:1px;}
@media(max-width:560px){.award__div{display:none;}.award{gap:14px;flex-direction:column;}.award__text{text-align:center;}}

/* ---------- EXPLORE / CARD GRID ---------- */
.exgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.exgrid--2{grid-template-columns:repeat(2,1fr);}
.exgrid--4{grid-template-columns:repeat(4,1fr);}
.ex figure{margin:0;overflow:hidden;position:relative;}
.ex--tint figure::after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(214,196,168,.26);mix-blend-mode:multiply;}
.ex img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1s var(--ease);}
.ex:hover img{transform:scale(1.05);}
.ex h3{font-family:var(--font-display);font-weight:400;font-size:1.6rem;margin:18px 0 2px;display:flex;justify-content:space-between;align-items:baseline;gap:14px;}
.ex h3 span{font-family:var(--font-body);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--terracotta-deep);white-space:nowrap;}
.ex p{font-size:.92rem;color:var(--fg-2);margin:0;line-height:1.6;}

/* explore map */
.exfoot{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-top:46px;flex-wrap:wrap;}
.exmap{display:grid;grid-template-columns:1.2fr 1fr;gap:0;margin:0;border:1px solid var(--B-line);background:var(--B-paper);overflow:hidden;width:560px;max-width:100%;}
.exmap__frame{position:relative;min-height:172px;border-right:1px solid var(--B-line);}
.exmap__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.62) sepia(.2) contrast(.96) brightness(.95);}
.exmap__frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 100% at 50% 40%,rgba(247,242,233,0) 45%,rgba(31,28,23,.16) 100%),linear-gradient(90deg,rgba(31,28,23,.12),rgba(31,28,23,0) 22%);mix-blend-mode:multiply;}
.exmap__card{padding:18px 20px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;}
.exmap__card .eyebrow{margin-bottom:5px;}
.exmap__card h3{font-family:var(--font-display);font-weight:400;font-size:1.3rem;margin:0 0 8px;line-height:1.05;}
.exmap__addr{font-size:.82rem;color:var(--fg-2);line-height:1.5;margin:0 0 14px;}
.exmap__note{display:none;}
.exmap__card .btn{padding:11px 22px;font-size:.78rem;}
@media(max-width:760px){.exfoot{flex-direction:column;align-items:stretch;}.exmap{grid-template-columns:1fr;width:100%;}.exmap__frame{min-height:200px;order:-1;border-right:0;border-bottom:1px solid var(--B-line);}}

/* ---------- FEATURE LIST (amenities / services) ---------- */
.flist{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--B-line);border:1px solid var(--B-line);}
.flist--4{grid-template-columns:repeat(4,1fr);}
.fcell{background:var(--cream);padding:38px 30px;}
.sec--alt .fcell{background:var(--B-paper2);}
.sec--dark .flist,.sec--dark .flist{background:rgba(244,239,230,.16);border-color:rgba(244,239,230,.16);}
.sec--dark .fcell{background:var(--B-ink);}
.fcell svg{width:28px;height:28px;color:var(--terracotta);stroke-width:1.4;margin-bottom:18px;}
.sec--dark .fcell svg{color:var(--terracotta-soft);}
.fcell h3{font-family:var(--font-display);font-weight:400;font-size:1.4rem;margin:0 0 9px;}
.sec--dark .fcell h3{color:var(--B-paper);}
.fcell p{font-size:.94rem;line-height:1.65;color:var(--fg-2);margin:0;}
.sec--dark .fcell p{color:var(--fg-on-dark-2);}

/* simple checklist */
.checks{columns:2;column-gap:48px;}
.checks li{list-style:none;padding:12px 0 12px 30px;border-bottom:1px solid var(--B-line);position:relative;font-size:1rem;color:var(--fg-2);break-inside:avoid;}
.checks li::before{content:"";position:absolute;left:0;top:18px;width:13px;height:9px;border-left:1.5px solid var(--terracotta);border-bottom:1.5px solid var(--terracotta);transform:rotate(-45deg);}
.checks{padding:0;margin:0;}

/* ---------- GALLERY ---------- */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(250px,29vw,400px);gap:10px;}
.gallery a{overflow:hidden;}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.gallery a:hover img{transform:scale(1.06);}
.g-2{grid-column:span 2;} .g-3{grid-column:span 3;} .g-4{grid-column:span 4;}
.g-tall{grid-row:span 2;}

/* ---------- FAQ ACCORDION ---------- */
.faq{border-top:1px solid var(--B-line);max-width:920px;margin:0 auto;}
.faq__item{border-bottom:1px solid var(--B-line);}
.faq__q{width:100%;background:none;border:0;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:26px 0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.2rem,1.9vw,1.6rem);color:var(--ink);transition:color .3s;}
.faq__q:hover{color:var(--terracotta-deep);}
.faq__icon{flex:none;width:22px;height:22px;position:relative;}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;background:var(--terracotta);transition:transform .35s var(--ease);}
.faq__icon::before{top:50%;left:0;right:0;height:1.5px;transform:translateY(-50%);}
.faq__icon::after{left:50%;top:0;bottom:0;width:1.5px;transform:translateX(-50%);}
.faq__item.is-open .faq__icon::after{transform:translateX(-50%) scaleY(0);}
.faq__a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);}
.faq__a p{font-size:1.02rem;line-height:1.75;color:var(--fg-2);margin:0 0 26px;max-width:70ch;}

/* ---------- OFFER / GIFT CARDS ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card2{background:var(--cream);border:1px solid var(--B-line);display:flex;flex-direction:column;overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.sec--alt .card2{background:#fff;}
.card2:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.card2__media{aspect-ratio:3/2;overflow:hidden;}
.card2__media img{width:100%;height:100%;object-fit:cover;object-position:center 22%;transition:transform 1s var(--ease);}
.card2:hover .card2__media img{transform:scale(1.05);}
.cards--gifts .card2__media{aspect-ratio:4/5;}
.cards--gifts .card2__media img{object-position:center 42%;}
.card2__body{padding:26px 28px 30px;display:flex;flex-direction:column;flex:1;}
.card2__tag{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terracotta);margin-bottom:10px;}
.card2__body h3{font-family:var(--font-display);font-weight:400;font-size:1.7rem;line-height:1.1;margin:0 0 10px;}
.card2__body p{font-size:.96rem;line-height:1.65;color:var(--fg-2);margin:0 0 20px;}
.card2__foot{margin-top:auto;}

/* ---------- CONTACT ---------- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);align-items:start;}
.contact__item{padding:20px 0;border-bottom:1px solid var(--B-line);}
.contact__item h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terracotta);margin:0 0 8px;}
.contact__item p,.contact__item a{font-size:1.08rem;color:var(--ink);margin:0;line-height:1.6;}
.contact__item a:hover{color:var(--terracotta-deep);}
.contact__map{aspect-ratio:1;background:var(--B-paper2);overflow:hidden;}
.contact__map img{width:100%;height:100%;object-fit:cover;}

/* ---------- CTA BAND ---------- */
.ctaband{text-align:center;}
.ctaband h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2.2rem,4.4vw,3.8rem);line-height:1.05;margin:0 auto;max-width:20ch;}
.ctaband .flourish{width:42px;height:1px;background:var(--terracotta);margin:24px auto;}

/* ---------- LEGAL / POLICY ---------- */
.legal{max-width:880px;margin:0 auto;}
.legal__intro{font-family:var(--font-display);font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.32;color:var(--ink);margin:0 0 10px;}
.legal__date{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terracotta);margin:0 0 38px;}
.legal h3{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.1;margin:0 0 24px;}
.legal h4{font-family:var(--font-body);font-weight:600;font-size:1rem;letter-spacing:.01em;color:var(--ink);margin:30px 0 10px;}
.legal p{font-size:1rem;line-height:1.78;color:var(--fg-2);margin:0 0 16px;}
.legal ul{list-style:none;padding:0;margin:0 0 18px;}
.legal li{position:relative;padding:0 0 0 22px;margin:0 0 10px;font-size:1rem;line-height:1.7;color:var(--fg-2);}
.legal li::before{content:"";position:absolute;left:0;top:11px;width:6px;height:6px;border-radius:50%;background:var(--terracotta);}
.legal li b{color:var(--ink);font-weight:600;}
.legal__split{border-top:1px solid var(--B-line);margin:64px 0 0;padding-top:64px;}
.legal__contact{background:var(--B-paper2);border-radius:0;padding:30px 32px;margin-top:36px;}
.legal__contact p{margin:0 0 4px;font-size:.96rem;}
.legal__contact a{color:var(--terracotta-deep);}

/* ---------- IG ---------- */
.ig-handle{display:inline-block;text-decoration:none;transition:color .25s var(--ease);}
.ig-handle:hover{color:var(--terracotta);}
.iggrid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;}
.iggrid a{position:relative;aspect-ratio:1;overflow:hidden;}
.iggrid img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.iggrid a:hover img{transform:scale(1.08);}

/* ---------- FOOTER ---------- */
.foot{background:var(--B-ink);color:var(--B-paper);padding:clamp(70px,10vh,120px) 0 40px;}
.foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:46px;}
.foot__logo{height:52px;margin-bottom:22px;}
.foot p{color:var(--fg-on-dark-2);font-size:.92rem;line-height:1.7;margin:0 0 6px;}
.foot p a{color:inherit;text-decoration:none;transition:color .3s;}
.foot p a:hover{color:#fff;}
.foot h4 a{color:inherit;text-decoration:none;transition:color .3s;}
.foot h4 a:hover{color:#fff;}
.foot h4{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terracotta-soft);margin:0 0 18px;}
.foot__links a{display:block;color:var(--fg-on-dark-2);font-size:.92rem;padding:6px 0;transition:color .3s;}
.foot__links a:hover{color:#fff;}
.foot__links a.foot__social{display:flex;align-items:center;gap:9px;}
.foot__social svg{width:17px;height:17px;flex:none;}
.foot__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-top:58px;padding-top:26px;border-top:1px solid rgba(244,239,230,.16);font-size:.8rem;color:var(--fg-on-dark-2);}
.foot__bottom a:hover{color:#fff;}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1024px){
  .story,.story--rev .story__media,.spread,.spread--rev .spread__media,.roomfull,.roomfull--rev .roomfull__media,.contact{grid-template-columns:1fr;order:0;}
  .exgrid,.exgrid--4{grid-template-columns:1fr 1fr;}
  .flist,.flist--4{grid-template-columns:1fr 1fr;}
  .cards{grid-template-columns:1fr 1fr;}
  .iggrid{grid-template-columns:repeat(3,1fr);}
  .foot__grid{grid-template-columns:1fr 1fr;}
  .rrow{grid-template-columns:54px 1.3fr 1fr;gap:18px;}
  .rrow__specs{display:none;}
  .rrow__thumb{display:none;}
  .spread__media,.roomfull__media{min-height:380px;}
  .gallery{grid-template-columns:repeat(4,1fr);}
}
@media(max-width:680px){
  .wrap{padding:0 22px;}
  .nav__links,.nav .nav__book{display:none;}
  .nav__burger{display:block;margin-left:auto;}
  .exgrid,.exgrid--2,.exgrid--4,.flist,.flist--4,.cards,.foot__grid,.iggrid{grid-template-columns:1fr;}
  .checks{columns:1;}
  .rrow{grid-template-columns:1fr auto;gap:4px 18px;align-items:center;padding:22px 0;}
  .rrow__no{font-size:1.4rem;grid-column:1;}
  .rrow__name{font-size:1.45rem;grid-column:1;}
  .rrow>.tlink{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;margin-top:0;}
  .rrow__thumb{display:none;}
  .hero__in{padding-bottom:max(58px, calc(env(safe-area-inset-bottom, 0px) + 42px));}
  .hero__title{font-size:clamp(2.5rem,10vw,3.3rem);}
  .hero__award{gap:11px;flex-direction:row;align-items:center;flex-wrap:nowrap;}
  .hero__award-badge{height:34px;}
  .hero__meta{font-size:.6rem;letter-spacing:.01em;flex-direction:row;gap:.36em;white-space:nowrap;}
  .hero__meta-score{font-size:1rem;}
  .story__meta{flex-wrap:nowrap;gap:14px;}
  .story__meta>div{flex:1;min-width:0;}
  .story__meta .n{font-size:1.85rem;}
  .story__meta .l{font-size:.62rem;letter-spacing:.05em;margin-top:5px;}
  .specs{grid-template-columns:1fr;}
  .specs div:nth-child(odd){border-right:0;padding-right:0;}
  .specs div:nth-child(even){padding-left:0;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .g-3,.g-4{grid-column:span 2;}
}
