/* ============================================================
   ABANGANE GUEST LODGE — design system
   Boska (display serif) + Switzer (body) · bone → ink day arc
   ============================================================ */

:root{
  --ink:#16150F;
  --ink-2:#1d1b13;
  --bone:#F4EFE4;
  --bone-2:#ECE4D2;
  --cream:#E3D7BE;
  --honey:#C08A47;
  --honey-soft:#D8B27E;
  --ember:#C97B3F;
  --green-deep:#232E1E;
  --olive:#41502F;
  --txt:#4A4436;
  --txt-soft:#7A7260;
  --txt-inv:#D9D2C0;
  --txt-inv-soft:#9A937F;
  --hairline:rgba(58,52,38,.16);
  --hairline-inv:rgba(228,220,200,.14);
  --ease:cubic-bezier(.23,1,.32,1);
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:40px; --sp-5:64px; --sp-6:96px; --sp-7:144px;
  --pad-x:clamp(24px,5vw,84px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto}

body{
  font-family:'Switzer',-apple-system,sans-serif;
  font-weight:300;
  background:var(--bone);
  color:var(--txt);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}

::selection{background:var(--honey);color:var(--bone)}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--ink)}
::-webkit-scrollbar-thumb{background:#5c4f36;border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:var(--honey)}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ---------- type ---------- */
.display{
  font-family:'Boska',serif;
  font-weight:500;
  line-height:1.02;
  letter-spacing:-.01em;
  color:var(--ink);
}
.display em{font-style:italic;font-weight:401;color:var(--honey)}
.on-dark .display{color:var(--bone)}
h1.display{font-size:clamp(52px,7.2vw,118px)}
h2.display{font-size:clamp(38px,4.6vw,72px)}
h3.display{font-size:clamp(26px,2.6vw,40px)}

.label{
  font-family:'Switzer';
  font-weight:500;
  font-size:11.5px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--honey);
}
.lede{font-size:clamp(18px,1.45vw,22px);font-weight:300;line-height:1.6;max-width:34em}
.on-dark{color:var(--txt-inv)}
.on-dark .lede,.on-dark p{color:var(--txt-inv)}
.small{font-size:14px;color:var(--txt-soft)}
.on-dark .small{color:var(--txt-inv-soft)}

/* ---------- structural ---------- */
.section{position:relative;padding:var(--sp-7) var(--pad-x)}
.section--flush{padding:0}
.wrap{max-width:1520px;margin:0 auto}
.hairline{border:0;border-top:1px solid var(--hairline)}
.on-dark .hairline{border-top-color:var(--hairline-inv)}

/* backgrounds along the day arc — endpoints matched so seams vanish */
.bg-bone{background:var(--bone)}
.bg-dawn{background:linear-gradient(180deg,var(--bone) 0%,#EFE6D2 55%,#E9DDC4 100%)}
.bg-morning{background:linear-gradient(180deg,#E9DDC4 0%,#E4D6B9 100%)}
.bg-day{background:linear-gradient(180deg,#E4D6B9 0%,#D9CFAF 48%,#B9B694 100%)}
.bg-dusk{background:linear-gradient(180deg,#B9B694 0%,#6E7355 40%,#2E3526 100%)}
.bg-night{background:linear-gradient(180deg,#2E3526 0%,var(--ink) 26%,var(--ink) 100%)}
.bg-night-flat{background:var(--ink)}
.bg-return{background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 40%,var(--bone) 82%)}
.bg-dusk-bone{background:linear-gradient(180deg,var(--bone) 0%,#8A8F6D 18%,#3D452F 44%,#2E3526 72%,#2E3526 100%)}

/* ---------- progress bar ---------- */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:1200;pointer-events:none}
.progress i{display:block;height:100%;width:100%;background:var(--honey);transform:scaleX(0);transform-origin:0 50%}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:2000;background:var(--ink);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px}
.loader__word{font-family:'Boska',serif;font-weight:500;font-size:clamp(40px,6vw,84px);color:var(--bone);letter-spacing:.04em;display:flex}
.loader__word span{opacity:0;transform:translateY(24px)}
.loader__meaning{font-size:12.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--honey);opacity:0}
body.is-loading{overflow:hidden}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--pad-x);
  transition:background .5s var(--ease), padding .5s var(--ease), box-shadow .5s;
}
.nav__brand{display:flex;align-items:center;gap:13px}
.nav__mark{height:44px;width:44px;transition:height .4s var(--ease)}
.nav__name{font-family:'Boska',serif;font-weight:500;font-size:21px;letter-spacing:.02em;color:var(--bone);white-space:nowrap;transition:color .4s}
.nav__name small{display:block;font-family:'Switzer';font-weight:500;font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--honey-soft);margin-top:1px}
.nav__links{display:flex;gap:34px;align-items:center}
.nav__links a{font-size:13.5px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--bone);position:relative;padding:4px 0;transition:color .4s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--honey);transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--ease)}
.nav__links a:hover::after,.nav__links a.is-active::after{transform:scaleX(1);transform-origin:0 50%}
.nav.is-solid{background:rgba(22,21,15,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:14px;padding-bottom:14px;box-shadow:0 1px 0 rgba(228,220,200,.08)}
.nav.is-solid .nav__mark{height:36px}

.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Switzer';font-weight:500;font-size:13px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);background:var(--honey);
  padding:17px 30px;border-radius:100px;border:1px solid var(--honey);
  transition:background .4s var(--ease),color .4s,transform .4s var(--ease),box-shadow .4s;
  cursor:pointer;white-space:nowrap;
}
.btn:hover{background:var(--honey-soft);transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(192,138,71,.55)}
.btn svg{transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--ghost{background:transparent;color:var(--bone);border-color:rgba(228,220,200,.4)}
.btn--ghost:hover{background:rgba(228,220,200,.1);box-shadow:none;border-color:var(--bone)}
.btn--ghost-dark{background:transparent;color:var(--ink);border-color:rgba(38,33,20,.35)}
.btn--ghost-dark:hover{background:rgba(38,33,20,.06);box-shadow:none;border-color:var(--ink)}
.btn--sm{padding:12px 22px;font-size:11.5px}

.nav__burger{display:none;background:none;border:0;cursor:pointer;z-index:1300;width:40px;height:40px;position:relative}
.nav__burger span{position:absolute;left:8px;right:8px;height:1.5px;background:var(--bone);transition:transform .4s var(--ease),opacity .3s,top .4s var(--ease)}
.nav__burger span:nth-child(1){top:14px}
.nav__burger span:nth-child(2){top:20px}
.nav__burger span:nth-child(3){top:26px}
body.menu-open .nav__burger span:nth-child(1){top:20px;transform:rotate(45deg)}
body.menu-open .nav__burger span:nth-child(2){opacity:0}
body.menu-open .nav__burger span:nth-child(3){top:20px;transform:rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:1250;background:var(--ink);display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad-x);gap:6px;opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
body.menu-open .mobile-menu{opacity:1;pointer-events:auto}
.mobile-menu a{font-family:'Boska',serif;font-size:clamp(34px,9vw,54px);color:var(--bone);padding:8px 0;border-bottom:1px solid var(--hairline-inv);display:flex;justify-content:space-between;align-items:center}
.mobile-menu a em{font-family:'Switzer';font-style:normal;font-size:11px;letter-spacing:.3em;color:var(--honey);text-transform:uppercase}
.mobile-menu .btn{margin-top:28px;justify-content:center}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:clip}
.hero__media{position:absolute;inset:-6% 0;z-index:0}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover}
.hero__scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(22,21,15,.42) 0%,rgba(22,21,15,0) 30%),
  linear-gradient(0deg,rgba(22,21,15,.78) 0%,rgba(22,21,15,.32) 46%,rgba(22,21,15,0) 70%)}
.hero__content{position:relative;z-index:2;width:100%;padding:0 var(--pad-x) clamp(48px,7vh,84px)}
.hero__eyebrow{margin-bottom:22px;text-shadow:0 1px 3px rgba(22,21,15,.55),0 2px 22px rgba(22,21,15,.6)}
.hero h1{color:var(--bone);max-width:9.5em}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line>span{display:inline-block}
.hero__sub{color:var(--txt-inv);margin-top:26px;max-width:34em;font-size:clamp(16.5px,1.25vw,19.5px);text-shadow:0 1px 14px rgba(22,21,15,.45)}
.hero__cta{display:flex;align-items:center;gap:26px;margin-top:38px;flex-wrap:wrap}
.hero__proof{display:flex;align-items:center;gap:10px;color:var(--txt-inv);font-size:13.5px;letter-spacing:.02em}
.hero__proof b{color:var(--honey-soft);font-weight:500}
.hero__scroll{position:absolute;right:var(--pad-x);bottom:clamp(48px,7vh,84px);z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--txt-inv-soft);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl}
.hero__scroll i{width:1px;height:52px;background:linear-gradient(180deg,var(--honey),transparent);display:block;animation:drip 2.6s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:0 0}45%{transform:scaleY(1);transform-origin:0 0}55%{transform:scaleY(1);transform-origin:0 100%}100%{transform:scaleY(0);transform-origin:0 100%}}

/* ---------- shared media blocks ---------- */
.frame{overflow:clip;border-radius:6px;position:relative;min-width:0}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.frame:hover img{transform:scale(1.045)}
.caption{margin-top:14px;display:flex;justify-content:space-between;gap:16px;font-size:12.5px;letter-spacing:.06em;color:var(--txt-soft)}
.on-dark .caption{color:var(--txt-inv-soft)}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(46px)}
[data-reveal-img] img{transform:scale(1.14)}
html.no-js [data-reveal]{opacity:1;transform:none}

/* ---------- etymology ---------- */
.etym{text-align:center;padding-top:var(--sp-7);padding-bottom:var(--sp-6)}
.etym .label{display:block;margin-bottom:34px}
.etym__word{font-family:'Boska',serif;font-weight:500;font-size:clamp(64px,11vw,180px);line-height:.95;color:var(--ink);letter-spacing:.01em}
.etym__phon{font-size:clamp(14px,1.3vw,18px);letter-spacing:.28em;color:var(--txt-soft);margin-top:18px;text-transform:uppercase}
.etym__def{font-size:clamp(19px,1.8vw,26px);font-weight:300;max-width:30em;margin:40px auto 0;line-height:1.55}
.etym__def em{font-family:'Boska',serif;font-style:italic;color:var(--honey);font-size:1.12em}

/* ---------- day arc ---------- */
.day-head{text-align:center;padding-bottom:var(--sp-5)}
.day-head .label{display:block;margin-bottom:20px}
.beat{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,56px);align-items:center;padding:var(--sp-6) 0}
.beat__media{grid-column:1/8;aspect-ratio:16/10}
.beat__media--tall{aspect-ratio:4/5}
.beat--flip .beat__media{grid-column:6/13;order:2}
.beat__body{grid-column:8/13}
.beat--flip .beat__body{grid-column:1/6;order:1}
.beat__time{font-family:'Boska',serif;font-style:italic;font-weight:401;font-size:clamp(48px,5vw,84px);line-height:1;color:var(--honey);opacity:.9}
.beat__body h3{margin:16px 0 18px}
.beat__body p{max-width:30em}
.beat__more{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-size:12.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--honey);position:relative}
.beat__more::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:100%;background:var(--honey);transform:scaleX(.3);transform-origin:0 50%;transition:transform .5s var(--ease)}
.beat__more:hover::after{transform:scaleX(1)}
.beat__duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,26px)}
.beat__duo .frame:last-child{transform:translateY(clamp(20px,3vw,52px))}

/* ---------- stats band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,3vw,60px);padding:var(--sp-6) 0;border-top:1px solid var(--hairline-inv);border-bottom:1px solid var(--hairline-inv)}
.stat{text-align:center}
.stat__num{font-family:'Boska',serif;font-weight:500;font-size:clamp(44px,4.6vw,76px);color:var(--bone);line-height:1}
.stat__num sup{font-size:.45em;color:var(--honey);top:-.7em}
.stat__lbl{margin-top:12px;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--txt-inv-soft)}

/* ---------- quotes ---------- */
.quotes{position:relative;max-width:1060px;margin:0 auto;text-align:center;padding:var(--sp-6) 0 var(--sp-5)}
.quotes__mark{font-family:'Boska',serif;font-size:120px;line-height:.4;color:var(--honey);opacity:.55;display:block;margin-bottom:34px}
.quote{position:absolute;inset:auto 0;opacity:0;pointer-events:none}
.quote.is-on{position:relative;opacity:1;pointer-events:auto}
.quote__text{font-family:'Boska',serif;font-weight:400;font-size:clamp(24px,2.6vw,40px);line-height:1.32;color:var(--bone)}
.quote__by{margin-top:30px;font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--honey-soft)}
.quote__by span{color:var(--txt-inv-soft)}
.quotes__nav{display:flex;justify-content:center;gap:10px;margin-top:44px}
.quotes__nav button{width:34px;height:4px;border-radius:3px;border:0;background:rgba(228,220,200,.18);cursor:pointer;transition:background .4s}
.quotes__nav button.is-on{background:var(--honey)}

/* ---------- room cards ---------- */
.rooms-teaser__head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:var(--sp-5);flex-wrap:wrap}
.room-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,34px)}
.room-card{position:relative;border-radius:6px;overflow:clip;aspect-ratio:3/4;display:flex;align-items:flex-end;color:var(--bone)}
.room-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.room-card:hover>img{transform:scale(1.06)}
.room-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(22,21,15,.82),rgba(22,21,15,.05) 55%);transition:background .6s}
.room-card__body{position:relative;z-index:2;padding:30px;width:100%}
.room-card__body h3{font-family:'Boska',serif;font-weight:500;font-size:clamp(24px,1.9vw,32px);color:var(--bone)}
.room-card__meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:13px;color:var(--txt-inv)}
.room-card__meta b{color:var(--honey-soft);font-weight:500}
.room-card__arrow{position:absolute;top:24px;right:24px;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid rgba(228,220,200,.35);display:flex;align-items:center;justify-content:center;color:var(--bone);backdrop-filter:blur(6px);background:rgba(22,21,15,.18);transition:background .4s,transform .5s var(--ease)}
.room-card:hover .room-card__arrow{background:var(--honey);color:var(--ink);transform:rotate(45deg)}

/* ---------- final cta ---------- */
.final{position:relative;min-height:88svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:clip}
.final__media{position:absolute;inset:-8% 0}
.final__media img{width:100%;height:100%;object-fit:cover}
.final__scrim{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 62%,rgba(22,21,15,.66),rgba(22,21,15,.28) 58%,rgba(22,21,15,.5))}
.final__body{position:relative;z-index:2;padding:var(--sp-7) var(--pad-x)}
.final h2{color:var(--bone);max-width:11em;margin:0 auto}
.final p{color:var(--txt-inv);margin:26px auto 40px;max-width:30em}
.final__actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:var(--txt-inv);padding:var(--sp-6) var(--pad-x) var(--sp-4)}
.footer a:hover{color:var(--honey-soft)}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:clamp(28px,4vw,72px);padding-bottom:var(--sp-5)}
.footer__brand img{height:64px;margin-bottom:20px;opacity:.95}
.footer__brand p{font-size:14px;color:var(--txt-inv-soft);max-width:26em}
.footer h5{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--honey);margin-bottom:18px;font-weight:500}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:11px;font-size:14.5px}
.footer__base{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--hairline-inv);padding-top:26px;font-size:12.5px;color:var(--txt-inv-soft);flex-wrap:wrap}
.footer__base a{color:var(--txt-inv-soft)}

/* ---------- inner-page hero ---------- */
.page-hero{position:relative;min-height:64svh;display:flex;align-items:flex-end;overflow:clip}
.page-hero .hero__content{padding-bottom:clamp(40px,6vh,64px)}
.page-hero h1{font-size:clamp(44px,6vw,96px)}
.page-hero .hero__scrim{background:
  linear-gradient(180deg,rgba(22,21,15,.52) 0%,rgba(22,21,15,.16) 34%),
  linear-gradient(0deg,rgba(22,21,15,.84) 0%,rgba(22,21,15,.4) 48%,rgba(22,21,15,.06) 74%)}

/* ---------- rooms page ---------- */
.room-block{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,56px);padding:var(--sp-6) 0;align-items:start}
.room-block+.room-block{border-top:1px solid var(--hairline)}
.room-block__gallery{grid-column:1/8;display:grid;grid-template-columns:2fr 1fr;gap:14px;min-width:0}
.room-block__gallery .frame:first-child{grid-column:1/3;aspect-ratio:16/9}
.room-block__gallery .frame{aspect-ratio:4/3}
.room-block--flip .room-block__gallery{grid-column:6/13;order:2}
.room-block__body{grid-column:8/13;position:sticky;top:110px}
.room-block--flip .room-block__body{grid-column:1/6;order:1}
.room-block__body .label{display:block;margin-bottom:14px}
.room-block__price{font-size:15px;margin:18px 0 6px}
.room-block__price b{font-family:'Boska',serif;font-weight:500;font-size:30px;color:var(--ink)}
.amenities{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 28px}
.amenities li{list-style:none;font-size:12.5px;letter-spacing:.04em;padding:8px 15px;border:1px solid var(--hairline);border-radius:100px;color:var(--txt)}

.rates-table{width:100%;border-collapse:collapse;margin-top:var(--sp-4)}
.rates-table th{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--honey);font-weight:500;text-align:left;padding:0 18px 16px}
.rates-table td{padding:22px 18px;border-top:1px solid var(--hairline);font-size:15.5px}
.rates-table td:first-child{font-family:'Boska',serif;font-size:21px;font-weight:500;color:var(--ink)}
.rates-table b{font-weight:500;color:var(--ink)}
.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,34px);margin-top:var(--sp-5)}
.policy{padding:30px;border:1px solid var(--hairline);border-radius:6px}
.policy h4{font-family:'Boska',serif;font-weight:500;font-size:21px;margin-bottom:12px;color:var(--ink)}
.policy p,.policy li{font-size:14px;color:var(--txt-soft)}
.policy ul{padding-left:16px;display:flex;flex-direction:column;gap:6px}

/* ---------- experiences ---------- */
.exp-feature{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,56px);align-items:center;padding:var(--sp-6) 0}
.exp-feature__media{grid-column:1/8;aspect-ratio:16/10}
.exp-feature--flip .exp-feature__media{grid-column:6/13;order:2}
.exp-feature__body{grid-column:8/13}
.exp-feature--flip .exp-feature__body{grid-column:1/6;order:1}
.exp-feature__body h2{margin:14px 0 18px}
.exp-feature__facts{margin-top:26px;display:flex;flex-direction:column;gap:12px}
.exp-feature__facts li{list-style:none;display:flex;gap:14px;font-size:14.5px;align-items:baseline}
.exp-feature__facts li::before{content:"";width:22px;height:1px;background:var(--honey);flex:none;transform:translateY(-4px)}
.adventure-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,28px)}
.adventure{position:relative;border-radius:6px;overflow:clip;aspect-ratio:4/5;display:flex;align-items:flex-end;color:var(--bone)}
.adventure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}
.adventure:hover img{transform:scale(1.06)}
.adventure::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(22,21,15,.8),rgba(22,21,15,0) 55%)}
.adventure figcaption{position:relative;z-index:2;padding:24px;width:100%}
.adventure h4{font-family:'Boska',serif;font-weight:500;font-size:23px}
.adventure p{font-size:13px;color:var(--txt-inv);margin-top:6px}

/* ---------- dining ---------- */
.menu-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,28px);margin-top:var(--sp-5)}
.menu-strip .frame{aspect-ratio:4/5}

/* ---------- gallery ---------- */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:var(--sp-4)}
.filter-bar button{font-family:'Switzer';font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:11px 20px;border-radius:100px;border:1px solid var(--hairline);background:transparent;color:var(--txt);cursor:pointer;transition:all .35s}
.filter-bar button.is-on,.filter-bar button:hover{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.masonry{columns:3;column-gap:18px}
.masonry .frame{margin-bottom:18px;break-inside:avoid;cursor:zoom-in}
.masonry .frame.is-hidden{display:none}

.lightbox{position:fixed;inset:0;z-index:1500;background:rgba(15,14,10,.94);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .45s}
.lightbox.is-on{opacity:1;pointer-events:auto}
.lightbox img{max-width:88vw;max-height:86vh;object-fit:contain;border-radius:4px}
.lightbox__close{position:absolute;top:26px;right:32px;background:none;border:0;color:var(--bone);font-size:34px;cursor:pointer;line-height:1}
.lightbox__arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(228,220,200,.3);color:var(--bone);width:52px;height:52px;border-radius:50%;font-size:20px;cursor:pointer;transition:background .3s}
.lightbox__arrow:hover{background:rgba(228,220,200,.14)}
.lightbox__arrow--l{left:26px}.lightbox__arrow--r{right:26px}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,4vw,80px);align-items:start}
.contact-list{display:flex;flex-direction:column}
.contact-list a{display:flex;justify-content:space-between;align-items:center;padding:24px 4px;border-bottom:1px solid var(--hairline);font-size:16px;transition:padding .4s var(--ease)}
.contact-list a:hover{padding-left:14px;color:var(--honey)}
.contact-list a span:last-child{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--honey)}
.map-frame{border-radius:6px;overflow:clip;border:1px solid var(--hairline);aspect-ratio:4/3;filter:saturate(.82) sepia(.09)}
.map-frame iframe{width:100%;height:100%;border:0}
.directions{counter-reset:step;display:flex;flex-direction:column;gap:0;margin-top:var(--sp-4)}
.directions li{list-style:none;counter-increment:step;display:grid;grid-template-columns:64px 1fr;gap:22px;padding:22px 0;border-top:1px solid var(--hairline);font-size:15.5px;align-items:baseline}
.directions li::before{content:counter(step,decimal-leading-zero);font-family:'Boska',serif;font-style:italic;font-size:26px;color:var(--honey)}
.note-card{margin-top:var(--sp-4);padding:26px 30px;border-left:2px solid var(--honey);background:var(--bone-2);border-radius:0 6px 6px 0;font-size:15px}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .beat__media,.beat--flip .beat__media{grid-column:1/13;order:1}
  .beat__body,.beat--flip .beat__body{grid-column:1/13;order:2}
  .room-block__gallery,.room-block--flip .room-block__gallery{grid-column:1/13;order:1}
  .room-block__body,.room-block--flip .room-block__body{grid-column:1/13;order:2;position:static}
  .exp-feature__media,.exp-feature--flip .exp-feature__media{grid-column:1/13;order:1}
  .exp-feature__body,.exp-feature--flip .exp-feature__body{grid-column:1/13;order:2}
  .masonry{columns:2}
  .contact-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr);row-gap:var(--sp-4)}
}
@media (max-width:1000px){
  .nav__links{display:none}
  .nav__burger{display:block}
  .nav .btn{display:none}
}
@media (max-width:860px){
  .room-cards{grid-template-columns:1fr}
  .room-card{aspect-ratio:4/5}
  .adventure-grid{grid-template-columns:1fr 1fr}
  .menu-strip{grid-template-columns:1fr 1fr}
  .policy-grid{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr 1fr}
  .beat__duo .frame:last-child{transform:translateY(18px)}
  .hero__scroll{display:none}
  .section{padding-top:var(--sp-6);padding-bottom:var(--sp-6)}
}
@media (max-width:560px){
  body{font-size:16px}
  .masonry{columns:1}
  .adventure-grid{grid-template-columns:1fr}
  .menu-strip{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr;gap:28px}
  .rates-table td{padding:16px 8px;font-size:14px}
  .rates-table th{padding:0 8px 12px}
  .hero__cta{gap:16px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
}
