/* ==========================================================================
   Self-hosted fonts — Fraunces, Instrument Sans, JetBrains Mono
   Loaded from /assets/fonts/ as woff2 (latin subset).
   ========================================================================== */

@font-face{
  font-family:'Fraunces';
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url('/assets/fonts/fraunces-v38-latin-variable.woff2') format('woff2');
}
@font-face{
  font-family:'Fraunces';
  font-style:italic;
  font-weight:300 900;
  font-display:swap;
  src:url('/assets/fonts/fraunces-v38-latin-variable-italic.woff2') format('woff2');
}

@font-face{
  font-family:'Instrument Sans';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('/assets/fonts/instrument-sans-v4-latin-regular.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Sans';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('/assets/fonts/instrument-sans-v4-latin-italic.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Sans';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('/assets/fonts/instrument-sans-v4-latin-500.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Sans';
  font-style:italic;
  font-weight:500;
  font-display:swap;
  src:url('/assets/fonts/instrument-sans-v4-latin-500italic.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Sans';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url('/assets/fonts/instrument-sans-v4-latin-700.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Sans';
  font-style:italic;
  font-weight:700;
  font-display:swap;
  src:url('/assets/fonts/instrument-sans-v4-latin-700italic.woff2') format('woff2');
}

@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('/assets/fonts/jetbrains-mono-v24-latin-regular.woff2') format('woff2');
}
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('/assets/fonts/jetbrains-mono-v24-latin-500.woff2') format('woff2');
}

/* ==========================================================================
   Kabisu Sumba — shared stylesheet
   ========================================================================== */

:root{
  --ink:#1a1f1e;
  --ink-soft:#3a4240;
  --teal:#005257;
  --teal-deep:#0a3432;
  --cream:#f4ecdd;
  --cream-warm:#efe5d2;
  --cream-deep:#e6d9c0;
  --paper:#faf6ec;
  --terracotta:#b85c3c;
  --sage:#8a9a85;
  --muted:#6b7470;
  --line:rgba(26,31,30,0.14);
  --line-strong:rgba(26,31,30,0.22);
  --ease:cubic-bezier(0.32,0.72,0,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Instrument Sans',-apple-system,sans-serif;
  font-weight:400;
  line-height:1.6;
  font-feature-settings:"ss01","ss02";
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body::before{
  content:'';
  position:fixed;inset:0;
  pointer-events:none;z-index:100;
  background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0 0.05  0 0 0 0.8 0'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.35'/></svg>");
  opacity:0.06;
  mix-blend-mode:multiply;
}

.display{
  font-family:'Fraunces',Georgia,serif;
  font-optical-sizing:auto;
  font-weight:300;
  letter-spacing:-0.022em;
  line-height:0.98;
  font-variation-settings:"SOFT" 50,"WONK" 0;
}
.display em{
  font-style:italic;
  font-weight:300;
  font-variation-settings:"SOFT" 80,"WONK" 1;
}
.eyebrow{
  font-family:'Instrument Sans',sans-serif;
  font-size:10px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.24em;
  color:var(--muted);
}
.eyebrow-teal{color:var(--teal)}
.mono{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.02em;
  font-variant-numeric:tabular-nums;
}

.container{
  max-width:1440px;
  margin:0 auto;
  padding:0 clamp(24px,5vw,64px);
}
.container-narrow{
  max-width:960px;
  margin:0 auto;
  padding:0 clamp(24px,5vw,64px);
}
.container-article{
  max-width:760px;
  margin:0 auto;
  padding:0 clamp(24px,5vw,48px);
}

section{position:relative}

.ikat-row{
  display:flex;align-items:center;justify-content:center;
  gap:24px;padding:24px 0;
}
.ikat-row::before,.ikat-row::after{
  content:'';flex:1;max-width:120px;height:1px;background:var(--line);
}
.ikat-glyph{width:28px;height:28px;flex-shrink:0}

/* NAV */
.nav{
  position:fixed;top:20px;left:0;right:0;
  z-index:60;display:flex;justify-content:center;
  pointer-events:none;
  padding:0 16px;
}
.nav-inner{
  pointer-events:auto;
  display:flex;align-items:center;gap:4px;
  padding:8px 16px 8px 20px;
  background:rgba(244,236,221,0.72);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
  border:1px solid rgba(26,31,30,0.08);
  border-radius:999px;
  box-shadow:0 1px 0 rgba(255,255,255,0.5) inset,0 12px 40px -12px rgba(26,31,30,0.18);
  transition:all 700ms var(--ease);
  max-width:100%;
}
.nav-brand{
  display:flex;align-items:center;
  padding-right:14px;
  border-right:1px solid rgba(26,31,30,0.1);
  margin-right:6px;
  text-decoration:none;
  flex-shrink:0;
}
.nav-logo{height:24px;width:auto;display:block}

/* Hamburger (mobile only) */
.nav-toggle{
  display:none;
  width:36px;height:36px;
  border:none;background:transparent;
  padding:0;cursor:pointer;
  align-items:center;justify-content:center;
  flex-direction:column;gap:4px;
  margin-left:auto;
  border-radius:999px;
  transition:background 300ms var(--ease);
}
.nav-toggle span{
  display:block;width:18px;height:1.5px;
  background:var(--ink-soft);
  border-radius:2px;
  transition:transform 400ms var(--ease),opacity 300ms var(--ease);
  transform-origin:center;
}
.nav-toggle:hover{background:rgba(0,82,87,0.06)}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

.nav-menu{display:flex;align-items:center}
.nav-links{
  display:flex;gap:2px;align-items:center;
  list-style:none;margin:0;padding:0;
}
.nav-item{position:relative;list-style:none}
.nav-link{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;font-weight:450;color:var(--ink-soft);
  font-family:inherit;
  text-decoration:none;padding:8px 12px;border-radius:999px;
  transition:all 400ms var(--ease);letter-spacing:0.01em;
  background:transparent;border:none;cursor:pointer;
  white-space:nowrap;
}
.nav-link:hover{color:var(--teal-deep);background:rgba(0,82,87,0.06)}
.nav-link.active,.nav-link[aria-current="page"]{color:var(--teal-deep);background:rgba(0,82,87,0.08)}
.nav-link-drop{font-family:inherit}
.nav-caret{
  transition:transform 400ms var(--ease);
  opacity:0.6;flex-shrink:0;
}
.nav-item.has-dropdown:hover > .nav-link-drop .nav-caret,
.nav-link-drop[aria-expanded="true"] .nav-caret{transform:rotate(180deg);opacity:1}

/* Dropdown panel (desktop) */
.nav-dropdown{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%) translateY(6px);
  min-width:180px;
  margin-top:10px;
  padding:8px;
  background:rgba(244,236,221,0.94);
  backdrop-filter:blur(22px) saturate(1.2);
  -webkit-backdrop-filter:blur(22px) saturate(1.2);
  border:1px solid rgba(26,31,30,0.08);
  border-radius:18px;
  box-shadow:0 1px 0 rgba(255,255,255,0.5) inset,0 20px 50px -18px rgba(26,31,30,0.25);
  display:flex;flex-direction:column;gap:2px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity 300ms var(--ease),transform 400ms var(--ease),visibility 0s linear 300ms;
}
.nav-item.has-dropdown:hover > .nav-dropdown,
.nav-item.has-dropdown:focus-within > .nav-dropdown,
.nav-dropdown.open{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
  transition:opacity 300ms var(--ease),transform 400ms var(--ease),visibility 0s;
}
.nav-dropdown a{
  display:block;
  padding:9px 14px;
  font-family:'Instrument Sans',sans-serif;
  font-size:13px;font-weight:400;
  color:var(--muted);
  text-decoration:none;
  border-radius:999px;
  transition:all 300ms var(--ease);
  white-space:nowrap;
  letter-spacing:0.015em;
}
.nav-dropdown a:hover{color:var(--teal-deep);background:rgba(0,82,87,0.08)}
.nav-dropdown a[aria-current="page"]{color:var(--teal-deep);background:rgba(0,82,87,0.1)}

/* Bridge the gap between trigger and dropdown so hover doesn't break */
.nav-item.has-dropdown > .nav-dropdown::before{
  content:'';position:absolute;top:-12px;left:0;right:0;height:14px;
}

/* EN/FR language switcher pill (sitewide) */
.nav-lang{display:flex;gap:0;padding:2px;background:rgba(0,82,87,0.06);border-radius:999px;margin-left:14px;border:1px solid rgba(26,31,30,0.04);align-self:center;flex-shrink:0}
.lang-btn{font-size:10px;font-weight:500;padding:6px 10px;border-radius:999px;color:var(--muted);text-decoration:none;letter-spacing:0.08em;transition:all 400ms var(--ease);font-family:'JetBrains Mono',monospace}
.lang-btn.active{background:var(--paper);color:var(--teal-deep);box-shadow:0 1px 2px rgba(10,52,50,0.08)}
.lang-btn:hover:not(.active){color:var(--teal-deep)}
.lang-btn[aria-current]{cursor:default;pointer-events:none}
.nav-cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 8px 8px 16px;background:var(--teal-deep);
  color:var(--cream);border-radius:999px;text-decoration:none;
  font-size:13px;font-weight:500;margin-left:6px;
  transition:all 500ms var(--ease);
}
.nav-cta:hover{background:var(--ink);transform:translateY(-1px)}
.nav-cta:active{transform:scale(0.98)}
.nav-cta .pill{
  width:24px;height:24px;border-radius:999px;
  background:rgba(255,255,255,0.14);
  display:flex;align-items:center;justify-content:center;
  transition:all 500ms var(--ease);
}
.nav-cta:hover .pill{transform:translate(2px,-1px) scale(1.05);background:rgba(255,255,255,0.2)}

/* Tighten nav slightly at mid-widths so 7 items fit */
@media (max-width:1180px){
  .nav-link{padding:8px 10px;font-size:12.5px}
  .nav-inner{padding-left:16px;padding-right:12px}
  .nav-brand{padding-right:12px;margin-right:4px}
}

/* Mobile nav */
@media (max-width:1040px){
  .nav{top:14px;padding:0 14px}
  .nav-inner{
    width:100%;
    padding:10px 10px 10px 20px;
    gap:8px;
  }
  .nav-toggle{display:inline-flex}
  .nav-menu{
    position:absolute;
    top:calc(100% + 10px);
    left:0;right:0;
    max-height:calc(100vh - 100px);
    overflow-y:auto;
    padding:16px;
    flex-direction:column;
    align-items:stretch;
    background:rgba(244,236,221,0.96);
    backdrop-filter:blur(22px) saturate(1.2);
    -webkit-backdrop-filter:blur(22px) saturate(1.2);
    border:1px solid rgba(26,31,30,0.08);
    border-radius:24px;
    box-shadow:0 1px 0 rgba(255,255,255,0.5) inset,0 24px 60px -20px rgba(26,31,30,0.28);
    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateY(-6px);
    transition:opacity 340ms var(--ease),transform 440ms var(--ease),visibility 0s linear 340ms;
  }
  .nav-menu.open{
    opacity:1;visibility:visible;pointer-events:auto;
    transform:translateY(0);
    transition:opacity 340ms var(--ease),transform 440ms var(--ease),visibility 0s;
  }
  .nav-links{flex-direction:column;align-items:stretch;gap:2px;width:100%}
  .nav-item{width:100%}
  .nav-link{
    width:100%;justify-content:space-between;
    padding:12px 16px;font-size:14px;
    border-radius:14px;
  }
  .nav-link-drop{width:100%}
  .nav-dropdown{
    position:static!important;
    transform:none!important;
    min-width:0;margin:4px 0 6px 0;padding:4px 0 4px 14px;
    background:transparent;border:none;box-shadow:none;
    backdrop-filter:none;-webkit-backdrop-filter:none;
    border-left:1px solid rgba(0,82,87,0.18);
    border-radius:0;
    opacity:1;visibility:visible;pointer-events:auto;
    max-height:0;overflow:hidden;
    /* Animate height only — no transform/opacity transition. The desktop
       rule sets translateX(-50%) on .open which would push items off
       the visible area on mobile if we let it transition. */
    transition:max-height 380ms var(--ease);
  }
  .nav-item.has-dropdown > .nav-dropdown,
  .nav-item.has-dropdown.open > .nav-dropdown,
  .nav-dropdown.open{
    transform:none!important;
  }
  .nav-item.has-dropdown.open > .nav-dropdown,
  .nav-dropdown.open{
    max-height:320px;
  }
  .nav-item.has-dropdown:hover > .nav-dropdown{
    /* hover doesn't open on mobile/tablet — click only */
    max-height:0;
  }
  .nav-item.has-dropdown.open:hover > .nav-dropdown,
  .nav-item.has-dropdown.open > .nav-dropdown{
    max-height:320px;
  }
  /* Bombproof — every property explicit so nothing inherited can hide
     the text. Mobile sub-items render quieter than parent items: lighter
     colour, lighter weight, slightly smaller. The indent + the left
     hairline rule do the hierarchy work. */
  .nav-menu .nav-dropdown a{
    display:block!important;
    width:auto!important;
    padding:10px 14px!important;
    margin:0!important;
    font-family:'Instrument Sans',sans-serif!important;
    font-size:13.5px!important;
    font-weight:400!important;
    line-height:1.35!important;
    letter-spacing:0.015em!important;
    color:#6b7270!important;
    -webkit-text-fill-color:#6b7270!important;
    background:transparent!important;
    text-decoration:none!important;
    text-indent:0!important;
    white-space:normal!important;
    opacity:1!important;
    visibility:visible!important;
    text-transform:none!important;
    border-radius:8px!important;
    transition:background 220ms var(--ease),color 220ms var(--ease);
  }
  .nav-menu .nav-dropdown a:hover,
  .nav-menu .nav-dropdown a:focus-visible{
    color:var(--teal-deep)!important;
    -webkit-text-fill-color:var(--teal-deep)!important;
    background:rgba(0,82,87,0.08)!important;
  }
  .nav-menu .nav-dropdown a[aria-current="page"]{
    color:var(--teal-deep)!important;
    -webkit-text-fill-color:var(--teal-deep)!important;
    background:rgba(0,82,87,0.1)!important;
  }
  /* Lang switcher in mobile drawer: centered row with hairline divider above */
  .nav-menu .nav-lang{
    margin:14px auto 4px;
    padding:4px;
    align-self:center;
  }
  .nav-menu .nav-lang::before{
    content:'';
    position:absolute;
    left:16px;right:16px;
    height:1px;
    background:rgba(26,31,30,0.08);
    transform:translateY(-14px);
  }
  .nav-menu .lang-btn{padding:8px 16px;font-size:11px}
}

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 14px 14px 26px;
  border-radius:999px;
  font-size:14px;font-weight:500;
  text-decoration:none;
  letter-spacing:0.01em;
  transition:all 500ms var(--ease);
  cursor:pointer;border:none;font-family:inherit;
}
.btn-primary{
  background:var(--teal-deep);
  color:var(--paper);
  border:1px solid var(--teal-deep);
}
.btn-primary .pill{
  width:32px;height:32px;border-radius:999px;
  background:rgba(255,255,255,0.12);
  display:flex;align-items:center;justify-content:center;
  transition:all 500ms var(--ease);
}
.btn-primary:hover{background:var(--ink);transform:translateY(-2px)}
.btn-primary:hover .pill{transform:translate(2px,-1px) scale(1.08);background:rgba(255,255,255,0.2)}
.btn-primary:active{transform:scale(0.98)}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line);
  padding:14px 26px;
}
.btn-ghost:hover{background:rgba(26,31,30,0.04);border-color:rgba(26,31,30,0.3)}

/* ===== FOOTER (cream / editorial) ===== */
.footer{
  background:var(--cream);
  color:var(--ink-soft);
  padding:96px 0 32px;
  font-size:14px;
  border-top:1px solid var(--line);
}
.footer-top{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:56px;
  padding-bottom:56px;
  border-bottom:1px solid var(--line);
}
.footer-brand{max-width:360px;display:flex;flex-direction:column;gap:24px}
.footer-brand-mark{display:flex;align-items:center;gap:12px}
.footer-logo{
  display:block;
  width:160px;height:52px;
  background-color:var(--teal-deep);
  -webkit-mask:url(/assets/images/logo.svg) no-repeat left center / contain;
  mask:url(/assets/images/logo.svg) no-repeat left center / contain;
}
.footer-brand p,
.footer-address{
  line-height:1.65;
  color:var(--muted);
  font-size:13px;
  margin:0;
  max-width:300px;
}
.footer-social{display:flex;gap:10px;align-items:center}
.footer-social a{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  color:var(--ink-soft);
  background:transparent;
  transition:color 300ms var(--ease),border-color 300ms var(--ease);
}
.footer-social a:hover{
  color:var(--teal-deep);
  border-color:var(--teal-deep);
}
.footer-social svg{width:16px;height:16px;display:block}
.footer h4{
  font-family:'JetBrains Mono',monospace;
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:0.22em;
  color:var(--muted);
  margin:0 0 22px;
  font-weight:500;
}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:11px;padding:0;margin:0}
.footer a{
  color:var(--ink);
  text-decoration:none;
  font-size:14px;
  letter-spacing:-0.005em;
  transition:color 300ms var(--ease);
}
.footer a:hover{color:var(--teal-deep)}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:28px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
}

@media (max-width:900px){
  .footer{padding:72px 0 28px}
  .footer-top{grid-template-columns:1fr 1fr;gap:40px;padding-bottom:40px}
  .footer-brand{grid-column:span 2;max-width:none}
  .footer-bottom{flex-direction:column;gap:10px;align-items:flex-start}
}
@media (max-width:560px){
  .footer-top{grid-template-columns:1fr 1fr;gap:32px}
}

/* ===== SCROLL REVEAL ===== */
.reveal{
  opacity:0;
  transform:translateY(32px);
  filter:blur(6px);
  transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease);
}
.reveal.in{
  opacity:1;
  transform:translateY(0);
  filter:blur(0);
}

/* =====================================
   Page: home (index.html)
   ===================================== */

.hero{
  min-height:100dvh;
  position:relative;
  display:flex;align-items:flex-end;
  padding:120px 0 64px;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background-image:url('/assets/images/villas/kabisu-day-01.webp');
  background-size:cover;
  background-position:center 40%;
  transform:scale(1.05);
  animation:heroScale 18s var(--ease) forwards;
}
@keyframes heroScale{
  from{transform:scale(1.12)}
  to{transform:scale(1.02)}
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(10,52,50,0.08) 0%,rgba(10,52,50,0.0) 30%,rgba(10,52,50,0.45) 70%,rgba(10,52,50,0.85) 100%),
    linear-gradient(90deg,rgba(10,52,50,0.35) 0%,rgba(10,52,50,0.05) 50%);
}
.hero-inner{
  position:relative;z-index:2;
  width:100%;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  align-items:end;
  gap:64px;
}
.hero-head{color:var(--paper)}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  color:rgba(244,236,221,0.85);
  margin-bottom:36px;
  animation:fadeUp 1s var(--ease) 0.2s both;
}
.hero-eyebrow::before{
  content:'';width:32px;height:1px;background:rgba(244,236,221,0.6);
}
.hero h1{
  font-size:clamp(48px,7.2vw,112px);
  color:var(--paper);
  margin-bottom:24px;
  animation:fadeUp 1.2s var(--ease) 0.35s both;
}
.hero h1 em{color:rgba(244,236,221,0.88)}
.hero-sub{
  max-width:420px;
  font-size:16px;
  color:rgba(244,236,221,0.78);
  line-height:1.7;
  animation:fadeUp 1s var(--ease) 0.6s both;
}
.hero-meta{
  display:flex;flex-direction:column;gap:20px;
  animation:fadeUp 1s var(--ease) 0.8s both;
}
.hero-meta-row{
  display:flex;align-items:baseline;gap:16px;
  padding:20px 0;
  border-top:1px solid rgba(244,236,221,0.18);
  color:var(--paper);
}
.hero-meta-row:last-child{border-bottom:1px solid rgba(244,236,221,0.18)}
.hero-meta-num{
  font-family:'Fraunces',serif;
  font-size:36px;font-weight:300;
  letter-spacing:-0.02em;
  line-height:1;
  color:var(--paper);
  min-width:100px;
}
.hero-meta-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.2em;
  color:rgba(244,236,221,0.7);
  line-height:1.5;
}
.hero-scroll{
  position:absolute;bottom:32px;left:50%;
  transform:translateX(-50%);
  z-index:3;
  color:rgba(244,236,221,0.7);
  font-size:10px;letter-spacing:0.3em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  animation:fadeUp 1s var(--ease) 1.2s both;
}
.hero-scroll-line{
  width:1px;height:40px;
  background:linear-gradient(180deg,rgba(244,236,221,0.5),rgba(244,236,221,0));
  animation:scrollPulse 2.4s var(--ease) infinite;
}
@keyframes scrollPulse{
  0%,100%{opacity:0.6;transform:scaleY(1)}
  50%{opacity:1;transform:scaleY(1.3)}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(32px);filter:blur(6px)}
  to{opacity:1;transform:translateY(0);filter:blur(0)}
}

@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;gap:48px}
  .hero{padding:140px 0 80px}
  .hero-meta-num{font-size:28px;min-width:76px}
}

/* Villas & discover-sumba hero variants — dark full-bleed, single-column
   layout with a top meta strip, big headline, and a caption block at the
   bottom. Scoped via :has(.hero-caption) so the homepage (which doesn't
   use .hero-caption) is untouched. */
.hero-inner:has(.hero-caption){
  grid-template-columns:1fr;
  align-items:stretch;
  gap:clamp(48px,6vw,80px);
}
.hero-inner:has(.hero-caption) > .hero-top{
  display:flex;gap:clamp(20px,4vw,48px);flex-wrap:wrap;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,236,221,0.65);
  padding-bottom:20px;
  border-bottom:1px solid rgba(244,236,221,0.18);
  animation:fadeUp 1s var(--ease) 0.15s both;
}
.hero-inner:has(.hero-caption) > .hero-top > span + span{
  padding-left:clamp(20px,4vw,48px);
  border-left:1px solid rgba(244,236,221,0.18);
}
.hero-inner:has(.hero-caption) > .hero-eyebrow{
  animation:fadeUp 1s var(--ease) 0.15s both;
}
.hero-caption{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  max-width:680px;
  margin-left:auto;
  padding-top:28px;
  border-top:1px solid rgba(244,236,221,0.18);
  animation:fadeUp 1s var(--ease) 0.6s both;
}
.hero-tag{
  justify-self:start;
  display:inline-flex;align-items:center;
  padding:8px 14px;
  border:1px solid rgba(244,236,221,0.28);
  border-radius:100px;
  background:rgba(10,52,50,0.35);
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,236,221,0.88);
  backdrop-filter:blur(6px);
}
.hero-caption .hero-sub{
  max-width:560px;
  font-size:16px;line-height:1.7;
  color:rgba(244,236,221,0.8);
  margin:0;
}
.hero-coords{
  display:flex;gap:clamp(20px,3vw,40px);flex-wrap:wrap;
  padding-top:20px;margin-top:12px;
  border-top:1px solid rgba(244,236,221,0.14);
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(244,236,221,0.55);
  align-items:baseline;
}
.hero-coords strong{
  font-family:'Fraunces',serif;font-weight:300;font-size:18px;
  color:var(--paper);
  letter-spacing:-0.01em;text-transform:none;
  margin-left:10px;
}
@media (max-width:760px){
  .hero-inner:has(.hero-caption) > .hero-top > span + span{
    padding-left:0;border-left:none;
  }
  .hero-caption{margin-left:0}
}

.manifesto{
  padding:clamp(96px,14vw,200px) 0;
  background:var(--cream);
  text-align:center;
}
.manifesto .eyebrow{margin-bottom:32px}
.manifesto-text{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:clamp(24px,3vw,42px);
  line-height:1.25;
  letter-spacing:-0.015em;
  color:var(--ink);
  max-width:920px;margin:0 auto;
}
.manifesto-text em{
  font-style:italic;
  color:var(--teal-deep);
}

.place{
  background:var(--paper);
  padding:clamp(96px,14vw,180px) 0;
  position:relative;
}
.place-grid{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:clamp(48px,8vw,120px);
  align-items:center;
}
.place-copy h2{
  font-size:clamp(40px,5.4vw,76px);
  margin:28px 0 32px;
  color:var(--ink);
}
.place-copy p{
  font-size:17px;
  line-height:1.7;
  color:var(--ink-soft);
  max-width:440px;
  margin-bottom:20px;
}
.place-coords{
  margin-top:40px;
  padding-top:24px;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;
  max-width:440px;
}
.place-coord-label{
  font-size:10px;text-transform:uppercase;letter-spacing:0.24em;
  color:var(--muted);margin-bottom:6px;
}
.place-coord-value{
  font-family:'Fraunces',serif;
  font-size:18px;
  color:var(--teal-deep);
  letter-spacing:-0.01em;
}
.place-image{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:4px;
  box-shadow:0 40px 80px -30px rgba(10,52,50,0.3);
}
.place-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 2s var(--ease);
}
.place-image:hover img{transform:scale(1.03)}
.place-image-caption{
  position:absolute;bottom:24px;left:24px;right:24px;
  color:var(--paper);
  font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  display:flex;justify-content:space-between;
  background:linear-gradient(180deg,transparent,rgba(10,52,50,0.5));
  padding:80px 0 0;
}

@media (max-width:900px){
  .place-grid{grid-template-columns:1fr;gap:48px}
  .place-image{aspect-ratio:4/3}
}

.resort{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--cream);
}
.resort-head{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;align-items:end;
  margin-bottom:64px;
}
.resort-head h2{
  font-size:clamp(40px,5.4vw,76px);
}
.resort-head p{
  font-size:16px;
  color:var(--ink-soft);
  max-width:420px;
  line-height:1.7;
}
.bento{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:minmax(180px,auto);
  gap:16px;
}
.bento-card{
  position:relative;
  overflow:hidden;
  border-radius:6px;
  background:var(--cream-deep);
  transition:transform 700ms var(--ease);
  cursor:pointer;
}
.bento-card img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--ease);
}
.bento-card:hover img{transform:scale(1.04)}
.bento-card::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(10,52,50,0.75) 100%);
  pointer-events:none;
}
.bento-meta{
  position:absolute;bottom:20px;left:24px;right:24px;
  z-index:2;color:var(--paper);
  display:flex;justify-content:space-between;align-items:end;
}
.bento-title{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:400;
  letter-spacing:-0.01em;
}
.bento-sub{
  font-size:11px;text-transform:uppercase;letter-spacing:0.22em;
  opacity:0.82;margin-top:4px;
}
.bento-num{
  font-family:'Fraunces',serif;
  font-weight:300;font-size:28px;
  letter-spacing:-0.02em;
}
.b-villa{grid-column:span 7;grid-row:span 2}
.b-pool{grid-column:span 5;grid-row:span 1}
.b-lounge{grid-column:span 5;grid-row:span 1}
.b-bed{grid-column:span 5;grid-row:span 2}
.b-spa{grid-column:span 7;grid-row:span 1}

@media (max-width:900px){
  .bento{grid-template-columns:1fr;grid-auto-rows:260px}
  .b-villa,.b-pool,.b-lounge,.b-bed,.b-spa{grid-column:span 1;grid-row:span 1}
  .resort-head{grid-template-columns:1fr;gap:24px}
}

.offer{
  background:var(--teal-deep);
  color:var(--paper);
  padding:clamp(96px,14vw,180px) 0;
  position:relative;
  overflow:hidden;
}
.offer::before{
  content:'';
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 20% 10%,rgba(184,92,60,0.08),transparent 50%),
    radial-gradient(ellipse at 80% 90%,rgba(138,154,133,0.1),transparent 50%);
}
.offer-inner{position:relative;z-index:1}
.offer .eyebrow{color:rgba(244,236,221,0.6)}
.offer h2{
  font-size:clamp(44px,6vw,88px);
  max-width:900px;
  margin:28px 0 64px;
  color:var(--paper);
}
.offer h2 em{color:rgba(184,92,60,0.9)}
.offer-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  padding:48px 0;
  border-top:1px solid rgba(244,236,221,0.18);
}
.offer-split p{
  font-size:17px;
  line-height:1.7;
  color:rgba(244,236,221,0.82);
  max-width:480px;
}

.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-top:80px;
  border-top:1px solid rgba(244,236,221,0.22);
  border-bottom:1px solid rgba(244,236,221,0.22);
}
.stat{
  padding:40px 24px 40px 0;
  border-right:1px solid rgba(244,236,221,0.12);
}
.stat:last-child{border-right:none}
.stat-num{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:clamp(44px,5.5vw,72px);
  letter-spacing:-0.03em;
  line-height:1;
  color:var(--paper);
  margin-bottom:12px;
}
.stat-num .unit{
  font-size:0.42em;
  color:rgba(244,236,221,0.6);
  margin-left:4px;
  letter-spacing:-0.02em;
}
.stat-label{
  font-size:11px;text-transform:uppercase;letter-spacing:0.2em;
  color:rgba(244,236,221,0.6);
  line-height:1.5;
}

@media (max-width:900px){
  .offer-split{grid-template-columns:1fr;gap:24px}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:32px 20px 32px 0}
  .stat:nth-child(2n){border-right:none;padding-left:24px;padding-right:0}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid rgba(244,236,221,0.12)}
}

.trust{
  padding:clamp(96px,14vw,180px) 0;
  background:var(--cream);
}
.trust-grid{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:80px;
  align-items:start;
}
.trust h2{
  font-size:clamp(36px,4.8vw,64px);
  margin:24px 0 28px;
}
.trust p{
  font-size:16px;
  line-height:1.7;
  color:var(--ink-soft);
  max-width:380px;
}
.team-list{
  display:grid;
  grid-template-columns:1fr;
}
.team-row{
  display:grid;
  grid-template-columns:48px 1fr auto;
  gap:24px;align-items:center;
  padding:22px 0;
  border-bottom:1px solid var(--line);
  transition:background 400ms var(--ease);
}
.team-row:first-child{border-top:1px solid var(--line)}
.team-row:hover{
  background:rgba(0,82,87,0.03);
  padding-left:12px;padding-right:12px;
  margin-left:-12px;margin-right:-12px;
}
.team-index{
  font-size:11px;
  color:var(--muted);
  letter-spacing:0.12em;
  font-variant-numeric:tabular-nums;
}
.team-name{
  font-family:'Fraunces',serif;
  font-size:22px;
  font-weight:400;
  letter-spacing:-0.01em;
  color:var(--ink);
}
.team-role{
  font-size:13px;
  color:var(--muted);
  letter-spacing:0.02em;
}
.team-years{
  font-family:'Fraunces',serif;
  font-size:14px;
  color:var(--teal);
  letter-spacing:0.02em;
  font-style:italic;
}
.team-footer{
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:13px;color:var(--muted);
}
.team-footer strong{
  font-family:'Fraunces',serif;
  font-size:18px;font-weight:400;
  color:var(--teal-deep);
}

@media (max-width:900px){
  .trust-grid{grid-template-columns:1fr;gap:48px}
}

.journey{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--paper);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.journey h2{
  font-size:clamp(36px,4.8vw,64px);
  margin:24px 0 64px;
  max-width:720px;
}
.timeline{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  position:relative;
}
.timeline::before{
  content:'';position:absolute;
  top:20px;left:0;right:0;
  height:1px;background:var(--line);
}
.milestone{
  padding:0 20px 0 0;
  position:relative;
}
.milestone-dot{
  width:10px;height:10px;border-radius:50%;
  background:var(--cream);
  border:1px solid var(--line);
  margin-bottom:28px;
  position:relative;z-index:2;
}
.milestone.active .milestone-dot{
  background:var(--teal);
  border-color:var(--teal);
  box-shadow:0 0 0 4px rgba(0,82,87,0.12);
}
.milestone-date{
  font-size:11px;text-transform:uppercase;letter-spacing:0.2em;
  color:var(--muted);margin-bottom:8px;
}
.milestone.active .milestone-date{color:var(--teal)}
.milestone-title{
  font-family:'Fraunces',serif;
  font-size:18px;font-weight:400;
  letter-spacing:-0.01em;
  color:var(--ink);
  line-height:1.3;
}

@media (max-width:900px){
  .timeline{grid-template-columns:1fr;gap:24px}
  .timeline::before{left:5px;top:0;bottom:0;width:1px;height:auto}
  .milestone{padding:0 0 0 32px}
  .milestone-dot{position:absolute;left:0;top:0;margin-bottom:0}
}

.final{
  padding:clamp(96px,14vw,200px) 0;
  background:var(--cream);
  text-align:center;
  position:relative;
}
.final .ikat-row{margin-bottom:48px}
.final h2{
  font-size:clamp(44px,6.5vw,104px);
  max-width:900px;margin:0 auto 32px;
}
.final h2 em{color:var(--teal-deep)}
.final p{
  font-size:17px;
  color:var(--ink-soft);
  max-width:520px;margin:0 auto 56px;
  line-height:1.7;
}
.cta-group{
  display:flex;justify-content:center;gap:14px;
  flex-wrap:wrap;
}

/* =====================================
   Page: the-villas
   ===================================== */

.villa-hero{
  position:relative;min-height:100dvh;
  display:flex;align-items:flex-end;
  padding:120px 0 56px;overflow:hidden;
}
.villa-hero-bg{
  position:absolute;inset:0;
  background-image:url('/assets/images/villas/villa-hero-poster.webp');
  background-size:cover;background-position:center;
  transform:scale(1.05);
  animation:heroScale 20s var(--ease) forwards;
}
.villa-hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(10,52,50,0.25) 0%,transparent 25%,transparent 55%,rgba(10,52,50,0.7) 100%),
    linear-gradient(90deg,rgba(10,52,50,0.2) 0%,transparent 50%);
}
.villa-hero-inner{position:relative;z-index:2;width:100%;color:var(--paper)}
.villa-hero-top{
  position:absolute;top:0;left:0;right:0;
  display:flex;justify-content:space-between;
  padding:8px 0;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,236,221,0.75);
  animation:fadeUp 1s var(--ease) 0.1s both;
}
.villa-hero-top span{position:relative}
.villa-hero-top span::before{content:'';position:absolute;left:-14px;top:50%;width:6px;height:1px;background:rgba(244,236,221,0.6)}
.villa-hero h1{
  font-size:clamp(56px,9vw,156px);
  color:var(--paper);
  margin-bottom:24px;
  animation:fadeUp 1.2s var(--ease) 0.3s both;
}
.villa-hero h1 em{color:rgba(244,236,221,0.85)}
.villa-hero-caption{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:48px;padding-top:48px;
  border-top:1px solid rgba(244,236,221,0.25);
  animation:fadeUp 1s var(--ease) 0.55s both;
}
.villa-hero-tag{
  display:inline-flex;align-items:center;gap:10px;
  color:rgba(244,236,221,0.85);
  font-size:13px;letter-spacing:0.16em;text-transform:uppercase;
}
.villa-hero-tag::before{content:'';width:32px;height:1px;background:rgba(244,236,221,0.5)}
.villa-hero-sub{
  max-width:440px;font-size:15px;line-height:1.7;
  color:rgba(244,236,221,0.78);
}

@media (max-width:900px){
  .villa-hero-top{position:relative;flex-direction:column;gap:8px;margin-bottom:48px}
  .villa-hero-caption{flex-direction:column;align-items:flex-start;gap:24px}
}

.overview{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--cream);
}
.overview-head{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;
  align-items:start;
}
/* Only space the head from following content. When it's the only child
   in the section, drop the margin so the section doesn't sit under a
   wasteful gap. */
.overview-head:not(:last-child){margin-bottom:80px}
.overview-head h2{font-size:clamp(40px,5.4vw,76px);margin:24px 0 0}
.overview-head p{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:440px;margin-bottom:1.1em}
.overview-head p:last-child{margin-bottom:0}
.overview-head a,.story-block a{color:var(--teal-deep);text-decoration:none;border-bottom:1px solid rgba(10,52,50,0.3);transition:border-color 300ms var(--ease);padding-bottom:1px}
.overview-head a:hover,.story-block a:hover{border-bottom-color:var(--teal-deep)}
.story-block p{margin-bottom:1.1em}
.story-block p:last-child{margin-bottom:0}
.specs-grid{
  display:grid;grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
}
.spec{
  padding:48px 24px 48px 0;
  border-right:1px solid var(--line);
  position:relative;
}
.spec:last-child{border-right:none;padding-right:0}
.spec:not(:first-child){padding-left:28px}
.spec-label{
  font-size:10px;text-transform:uppercase;letter-spacing:0.22em;
  color:var(--muted);margin-bottom:20px;
}
.spec-value{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:clamp(32px,4vw,52px);
  letter-spacing:-0.025em;line-height:1;
  color:var(--ink);margin-bottom:8px;
}
.spec-value .unit{font-size:0.42em;color:var(--muted);margin-left:3px;letter-spacing:0}
.spec-note{font-size:12px;color:var(--muted);line-height:1.5}

@media (max-width:900px){
  .overview-head{grid-template-columns:1fr;gap:24px}
  .specs-grid{grid-template-columns:repeat(2,1fr)}
  .spec{padding:32px 20px 32px 0 !important;border-right:1px solid var(--line) !important}
  .spec:nth-child(2n){border-right:none !important;padding-right:0 !important}
  .spec:not(:last-child){border-bottom:1px solid var(--line)}
  .spec-value{font-size:36px}
}

.feature-shot{
  padding:clamp(24px,4vw,56px) 0;
  background:var(--cream);
}
.feature-shot-image{
  position:relative;
  aspect-ratio:21/9;
  overflow:hidden;
  border-radius:4px;
}
.feature-shot-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 2s var(--ease);
}
.feature-shot-image:hover img{transform:scale(1.02)}
.feature-shot-caption{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-top:20px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--muted);
}
.feature-shot-caption .num{color:var(--teal)}
@media (max-width:900px){
  .feature-shot-image{aspect-ratio:4/3}
}

.tour{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--paper);
}
.tour-head{
  margin-bottom:80px;max-width:720px;
}
.tour-head h2{font-size:clamp(40px,5.4vw,76px);margin:24px 0 24px}
.tour-head p{font-size:16px;line-height:1.7;color:var(--ink-soft)}

.room{
  display:grid;grid-template-columns:5fr 7fr;
  gap:clamp(32px,6vw,80px);
  align-items:center;
  padding:clamp(40px,6vw,72px) 0;
  border-bottom:1px solid var(--line);
}
.room:last-child{border-bottom:none}
.room:nth-child(even){grid-template-columns:7fr 5fr}
.room:nth-child(even) .room-copy{order:2}
.room:nth-child(even) .room-image{order:1}

.room-copy-num{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.2em;color:var(--teal);
  margin-bottom:16px;
}
.room-copy h3{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:clamp(32px,4vw,52px);
  letter-spacing:-0.022em;line-height:1.05;
  color:var(--ink);margin-bottom:24px;
}
.room-copy h3 em{color:var(--teal-deep);font-style:italic}
.room-copy p{
  font-size:16px;line-height:1.7;
  color:var(--ink-soft);
  max-width:440px;
  margin-bottom:24px;
}
.room-specs{
  display:flex;gap:32px;flex-wrap:wrap;
  padding-top:24px;border-top:1px solid var(--line);
}
.room-spec-label{
  font-size:10px;text-transform:uppercase;letter-spacing:0.2em;
  color:var(--muted);margin-bottom:4px;
}
.room-spec-value{
  font-family:'Fraunces',serif;
  font-size:16px;letter-spacing:-0.005em;
  color:var(--teal-deep);
}

.room-image{
  position:relative;aspect-ratio:4/3;
  overflow:hidden;border-radius:4px;
  box-shadow:0 30px 60px -30px rgba(10,52,50,0.25);
}
.room-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}
.room-image:hover img{transform:scale(1.03)}

@media (max-width:900px){
  .room,.room:nth-child(even){grid-template-columns:1fr;gap:32px}
  .room:nth-child(even) .room-copy{order:1}
  .room:nth-child(even) .room-image{order:2}
}

.materials{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--teal-deep);
  color:var(--paper);
  position:relative;overflow:hidden;
}
.materials::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 20%,rgba(184,92,60,0.08),transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(138,154,133,0.1),transparent 50%);
}
.materials-inner{position:relative;z-index:1}
.materials .eyebrow{color:rgba(244,236,221,0.6)}
.materials h2{font-size:clamp(40px,5.4vw,76px);color:var(--paper);margin:24px 0 24px;max-width:820px}
.materials h2 em{color:rgba(184,92,60,0.9)}
.materials-lede{max-width:560px;font-size:16px;line-height:1.7;color:rgba(244,236,221,0.78);margin-bottom:80px}

.mat-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;border-top:1px solid rgba(244,236,221,0.2);
  border-bottom:1px solid rgba(244,236,221,0.2);
}
.mat-item{
  padding:40px 24px 40px 0;
  border-right:1px solid rgba(244,236,221,0.12);
}
.mat-item:last-child{border-right:none;padding-right:0}
.mat-item:not(:first-child){padding-left:28px}
.mat-swatch{
  width:56px;height:56px;border-radius:4px;margin-bottom:24px;
  border:1px solid rgba(244,236,221,0.2);
  position:relative;overflow:hidden;
}
.mat-thatch{background:linear-gradient(135deg,#8b6240,#a8794f,#8b6240);background-size:4px 4px;background-image:repeating-linear-gradient(45deg,#8b6240 0 2px,#a8794f 2px 4px)}
.mat-ironwood{background:linear-gradient(90deg,#5a3b28,#8b5a3c);background-image:repeating-linear-gradient(90deg,#5a3b28 0 3px,#6d4630 3px 4px,#8b5a3c 4px 8px)}
.mat-limewash{background:linear-gradient(135deg,#ede4d1,#f4ecdd);border:1px solid rgba(244,236,221,0.4)}
.mat-stone{background:linear-gradient(135deg,#6a6b65,#8a8c85);background-image:radial-gradient(circle at 30% 40%,#4a4b45 1px,transparent 2px),radial-gradient(circle at 70% 70%,#8a8c85 1px,transparent 2px);background-size:8px 8px}
.mat-name{
  font-family:'Fraunces',serif;font-size:22px;font-weight:400;
  letter-spacing:-0.01em;color:var(--paper);margin-bottom:8px;
}
.mat-desc{font-size:13px;line-height:1.6;color:rgba(244,236,221,0.68)}

@media (max-width:900px){
  .mat-grid{grid-template-columns:1fr 1fr}
  .mat-item{padding:32px 20px 32px 0 !important;border-right:1px solid rgba(244,236,221,0.12) !important}
  .mat-item:nth-child(2n){border-right:none !important;padding-right:0 !important}
  .mat-item:not(:last-child):not(:nth-last-child(2)){border-bottom:1px solid rgba(244,236,221,0.12)}
}

.layout{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--paper);
}
.layout-head{margin-bottom:64px;max-width:720px}
.layout-head h2{font-size:clamp(40px,5.4vw,76px);margin:24px 0 24px}
.layout-head p{font-size:16px;line-height:1.7;color:var(--ink-soft)}

.layout-grid{
  display:grid;grid-template-columns:7fr 5fr;
  gap:clamp(32px,6vw,80px);align-items:center;
}
.floorplan-wrap{
  background:var(--cream);
  padding:40px;
  border-radius:6px;
  border:1px solid var(--line);
  position:relative;
}
.floorplan-wrap svg{width:100%;height:auto;display:block}
.floorplan-header{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:28px;padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.floorplan-header .title{
  font-family:'Fraunces',serif;font-size:16px;font-weight:400;
  color:var(--teal-deep);letter-spacing:-0.005em;
}
.floorplan-header .mono{color:var(--muted)}
.floorplan-footer{
  display:flex;gap:32px;margin-top:28px;padding-top:16px;
  border-top:1px solid var(--line);
  font-size:10px;text-transform:uppercase;letter-spacing:0.18em;color:var(--muted);
}
.floorplan-footer span{display:flex;align-items:center;gap:6px}
.floorplan-footer .dot{width:8px;height:8px;border-radius:2px;background:var(--teal)}
.floorplan-footer .dot.dot-2{background:var(--terracotta);opacity:0.6}
.floorplan-footer .dot.dot-3{background:var(--sage)}

.orientation-copy h3{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(26px,3.2vw,40px);
  letter-spacing:-0.02em;line-height:1.1;
  color:var(--ink);margin-bottom:24px;
}
.orientation-copy h3 em{color:var(--teal-deep);font-style:italic}
.orientation-copy p{font-size:15px;line-height:1.7;color:var(--ink-soft);margin-bottom:16px}
.orientation-list{
  list-style:none;
  margin-top:24px;padding-top:24px;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:14px;
}
.orientation-list li{
  display:flex;justify-content:space-between;gap:16px;
  font-size:14px;
}
.orientation-list .label{color:var(--muted)}
.orientation-list .value{font-family:'Fraunces',serif;color:var(--teal-deep);letter-spacing:-0.005em}

@media (max-width:900px){
  .layout-grid{grid-template-columns:1fr;gap:32px}
}

.site-plan{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--cream);
}
.site-plan-head{margin-bottom:64px;max-width:720px}
.site-plan-head h2{font-size:clamp(40px,5.4vw,76px);margin:24px 0 24px}
.site-plan-head p{font-size:16px;line-height:1.7;color:var(--ink-soft)}

.site-plan-wrap{
  background:var(--paper);border:1px solid var(--line);
  border-radius:6px;
  padding:48px;
  position:relative;
}
.site-plan-wrap svg{width:100%;height:auto;display:block}
.site-plan-legend{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;margin-top:40px;padding-top:28px;
  border-top:1px solid var(--line);
  font-size:13px;color:var(--ink-soft);
}
.legend-row{display:flex;align-items:center;gap:10px}
.legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.legend-dot.villa{background:var(--teal)}
.legend-dot.bungalow{background:var(--terracotta);opacity:0.7}
.legend-dot.common{background:var(--sage)}

@media (max-width:900px){
  .site-plan-wrap{padding:24px}
  .site-plan-legend{grid-template-columns:1fr;gap:12px}
}

/* =====================================
   Page: investment
   ===================================== */

/* Investment hero — cream background, light layout. Scoped via :has() so
   the homepage hero (dark, full-bleed image) is untouched. */
.hero:has(.hero-badge){
  min-height:auto;
  display:block;
  padding:clamp(140px,16vw,200px) 0 clamp(80px,10vw,140px);
  background:var(--cream);
}
.hero:has(.hero-badge) .hero-inner{
  display:block;
  grid-template-columns:none;
  gap:0;
}
.hero:has(.hero-badge) h1.display{
  font-size:clamp(48px,7vw,104px);
  color:var(--ink);
  margin-bottom:32px;
  max-width:13ch;
}
.hero:has(.hero-badge) h1.display em{color:var(--teal);font-style:italic;font-weight:300}
.hero-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px;
  border:1px solid var(--line-strong);
  border-radius:100px;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--ink-soft);
  background:var(--paper);
  margin-bottom:40px;
  animation:fadeUp 1s var(--ease) 0.2s both;
}
.hero-badge-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--terracotta);
  box-shadow:0 0 0 3px rgba(184,92,60,0.18);
}
.hero-lede{
  font-family:'Instrument Sans',sans-serif;
  font-size:clamp(16px,1.3vw,19px);
  line-height:1.7;
  color:var(--ink-soft);
  max-width:620px;
  margin:0 0 64px;
  animation:fadeUp 1s var(--ease) 0.5s both;
}
.hero-meta:has(.hero-meta-cell){
  display:grid;
  grid-template-columns:repeat(4,1fr);
  flex-direction:row;
  gap:0;
  border-top:1px solid var(--line-strong);
  padding-top:32px;
  animation:fadeUp 1s var(--ease) 0.7s both;
}
.hero-meta-cell{
  padding-right:24px;
}
.hero-meta-cell + .hero-meta-cell{
  border-left:1px solid var(--line);
  padding-left:24px;
}
.hero-meta-value{
  font-family:'Fraunces',serif;
  font-size:clamp(30px,3.4vw,44px);
  font-weight:300;
  letter-spacing:-0.02em;
  line-height:1;
  color:var(--ink);
  margin-bottom:14px;
}
.hero-meta-value .unit{
  font-size:0.5em;
  color:var(--muted);
  margin-left:2px;
  font-style:italic;
}
.hero:has(.hero-badge) .hero-meta-label{
  color:var(--muted);
  font-size:10px;
  letter-spacing:0.2em;
  font-family:'JetBrains Mono',monospace;
}
@media (max-width:900px){
  .hero-meta:has(.hero-meta-cell){grid-template-columns:repeat(2,1fr);row-gap:32px}
  .hero-meta-cell:nth-child(odd) + .hero-meta-cell{border-left:1px solid var(--line);padding-left:24px}
  .hero-meta-cell:nth-child(3),.hero-meta-cell:nth-child(4){border-top:1px solid var(--line);padding-top:24px}
  .hero-meta-cell:nth-child(3){border-left:none;padding-left:0}
}

.thesis{
  padding:clamp(96px,14vw,180px) 0;
  background:var(--cream);
  text-align:center;
}
.thesis-text{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:clamp(22px,2.6vw,36px);
  line-height:1.3;letter-spacing:-0.012em;
  color:var(--ink);max-width:880px;margin:32px auto 0;
}
.thesis-text em{font-style:italic;color:var(--teal-deep)}

.economics{
  background:var(--teal-deep);
  color:var(--paper);
  padding:clamp(96px,14vw,180px) 0;
  position:relative;overflow:hidden;
}
.economics::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 15% 20%,rgba(184,92,60,0.08),transparent 50%),
    radial-gradient(ellipse at 85% 80%,rgba(138,154,133,0.1),transparent 50%);
}
.economics-inner{position:relative;z-index:1}
.economics .eyebrow{color:rgba(244,236,221,0.6)}
.economics h2{
  font-size:clamp(40px,5.4vw,80px);
  max-width:900px;margin:28px 0 24px;color:var(--paper);
}
.economics h2 em{color:rgba(184,92,60,0.9)}
.economics-lede{
  max-width:640px;
  font-size:17px;line-height:1.7;
  color:rgba(244,236,221,0.78);
  margin-bottom:80px;
}

.pool-flow{
  display:grid;
  grid-template-columns:1fr 0.2fr 1fr;
  gap:24px;
  margin-bottom:56px;
  align-items:stretch;
}
.pool-box{
  padding:32px 28px;
  background:rgba(244,236,221,0.04);
  border:1px solid rgba(244,236,221,0.14);
  border-radius:4px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.pool-box-label{
  font-size:10px;text-transform:uppercase;letter-spacing:0.24em;
  color:rgba(244,236,221,0.55);
  margin-bottom:20px;
}
.pool-box-value{
  font-family:'Fraunces',serif;
  font-size:44px;font-weight:300;letter-spacing:-0.025em;
  line-height:1;color:var(--paper);margin-bottom:16px;
}
.pool-box-sub{
  font-size:14px;color:rgba(244,236,221,0.72);line-height:1.5;
}
.pool-arrow{
  display:flex;align-items:center;justify-content:center;
  color:rgba(244,236,221,0.4);
  font-family:'Fraunces',serif;font-size:32px;
}

.split-bar{
  display:flex;height:72px;border-radius:4px;overflow:hidden;
  margin-bottom:16px;
  border:1px solid rgba(244,236,221,0.14);
}
.split-owner{
  flex:60;
  background:linear-gradient(135deg,#d9c89f,#e6d9c0);
  color:var(--teal-deep);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 28px;
  font-family:'Fraunces',serif;font-size:18px;
}
.split-owner .pct{font-size:32px;font-weight:400;letter-spacing:-0.02em}
.split-mgmt{
  flex:30;background:rgba(244,236,221,0.12);
  display:flex;align-items:center;padding:0 20px;gap:10px;
  font-size:13px;color:rgba(244,236,221,0.8);
}
.split-mgmt .pct{
  font-family:'Fraunces',serif;font-size:22px;color:var(--paper);
  letter-spacing:-0.02em;
}
.split-maint{
  flex:5;background:rgba(184,92,60,0.25);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;color:rgba(244,236,221,0.85);
}
.split-reno{
  flex:5;background:rgba(138,154,133,0.25);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;color:rgba(244,236,221,0.85);
}
.split-legend{
  display:flex;gap:24px;flex-wrap:wrap;
  font-size:12px;color:rgba(244,236,221,0.6);
}
.split-legend-item{display:flex;align-items:center;gap:8px}
.split-legend-dot{width:10px;height:10px;border-radius:2px}

.econ-notes{
  display:grid;grid-template-columns:repeat(3,1fr);gap:40px;
  margin-top:80px;padding-top:48px;
  border-top:1px solid rgba(244,236,221,0.18);
}
.econ-note h4{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:400;
  margin-bottom:12px;color:var(--paper);
  letter-spacing:-0.01em;
}
.econ-note p{
  font-size:14px;line-height:1.6;
  color:rgba(244,236,221,0.7);
}

@media (max-width:900px){
  .pool-flow{grid-template-columns:1fr;gap:16px}
  .pool-arrow{transform:rotate(90deg);padding:8px 0}
  .split-bar{flex-direction:column;height:auto}
  .split-owner,.split-mgmt,.split-maint,.split-reno{
    flex:none;padding:16px 20px;
  }
  .split-maint,.split-reno{justify-content:flex-start}
  .econ-notes{grid-template-columns:1fr;gap:32px}
}

.paths{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--cream);
}
.paths-head{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:end;margin-bottom:64px;
}
.paths-head h2{font-size:clamp(38px,5vw,72px)}
.paths-head p{
  font-size:16px;color:var(--ink-soft);
  max-width:420px;line-height:1.7;
}
.path-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
}
.path-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:8px;
  padding:48px 40px;
  position:relative;
  transition:all 600ms var(--ease);
}
.path-card:hover{
  border-color:var(--line-strong);
  transform:translateY(-4px);
  box-shadow:0 30px 60px -30px rgba(10,52,50,0.18);
}
.path-card.featured{
  background:var(--teal-deep);
  color:var(--paper);
  border-color:var(--teal-deep);
}
.path-tag{
  display:inline-block;padding:5px 12px;
  background:rgba(0,82,87,0.08);
  color:var(--teal-deep);
  border-radius:999px;
  font-size:10px;text-transform:uppercase;letter-spacing:0.2em;
  margin-bottom:28px;
}
.path-card.featured .path-tag{
  background:rgba(244,236,221,0.15);color:var(--paper);
}
.path-card h3{
  font-family:'Fraunces',serif;
  font-size:36px;font-weight:400;
  letter-spacing:-0.015em;line-height:1.1;
  margin-bottom:12px;
}
.path-sub{
  font-size:14px;color:var(--muted);margin-bottom:32px;
}
.path-card.featured .path-sub{color:rgba(244,236,221,0.6)}

.path-price{
  display:flex;align-items:baseline;gap:10px;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:32px;
}
.path-card.featured .path-price{
  border-color:rgba(244,236,221,0.18);
}
.path-price-prefix{
  font-size:13px;color:var(--muted);
  text-transform:uppercase;letter-spacing:0.16em;
}
.path-card.featured .path-price-prefix{color:rgba(244,236,221,0.6)}
.path-price-value{
  font-family:'Fraunces',serif;
  font-size:48px;font-weight:300;letter-spacing:-0.03em;line-height:1;
  margin-left:auto;
}

.path-specs{list-style:none;display:flex;flex-direction:column;gap:14px;margin-bottom:40px}
.path-specs li{
  display:flex;justify-content:space-between;gap:16px;
  font-size:14px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.path-card.featured .path-specs li{border-color:rgba(244,236,221,0.14)}
.path-specs li:last-child{border-bottom:none}
.path-specs .label{color:var(--muted)}
.path-card.featured .path-specs .label{color:rgba(244,236,221,0.6)}
.path-specs .value{
  font-family:'Fraunces',serif;font-size:15px;
  color:var(--teal-deep);letter-spacing:-0.005em;
}
.path-card.featured .path-specs .value{color:var(--paper)}

.path-action{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 14px 14px 24px;
  border-radius:999px;
  font-size:14px;font-weight:500;
  text-decoration:none;
  transition:all 500ms var(--ease);
}
.path-card .path-action{
  background:var(--teal-deep);color:var(--paper);
}
.path-card.featured .path-action{
  background:var(--paper);color:var(--teal-deep);
}
.path-action .pill{
  width:30px;height:30px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.14);
  transition:all 500ms var(--ease);
}
.path-card.featured .path-action .pill{background:rgba(0,82,87,0.12)}
.path-action:hover{transform:translateY(-2px)}
.path-action:hover .pill{transform:translate(2px,-1px) scale(1.06)}

@media (max-width:900px){
  .paths-head,.path-grid{grid-template-columns:1fr;gap:24px}
}

.projections{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--paper);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.proj-head{margin-bottom:64px;max-width:720px}
.proj-head h2{font-size:clamp(38px,5vw,72px);margin:24px 0 24px}
.proj-head p{font-size:16px;color:var(--ink-soft);line-height:1.7}
.proj-chart{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
  align-items:end;
  height:340px;
  margin-bottom:24px;
  padding:0 0 8px;
  border-bottom:1px solid var(--line);
}
.proj-bar{
  position:relative;
  background:linear-gradient(180deg,var(--teal) 0%,var(--teal-deep) 100%);
  border-radius:3px 3px 0 0;
  transition:all 800ms var(--ease);
  min-height:20px;
  cursor:pointer;
}
.proj-bar.year0{background:linear-gradient(180deg,var(--cream-deep),var(--cream-warm));border:1px solid var(--line)}
.proj-bar:hover{opacity:0.85;transform:translateY(-2px)}
.proj-bar-value{
  position:absolute;bottom:100%;left:50%;transform:translateX(-50%);
  font-family:'Fraunces',serif;font-size:15px;
  color:var(--ink);letter-spacing:-0.01em;
  margin-bottom:10px;white-space:nowrap;
}
.proj-bar.year0 .proj-bar-value{color:var(--muted)}
.proj-labels{
  display:grid;grid-template-columns:repeat(6,1fr);gap:16px;
}
.proj-label{
  font-size:11px;text-transform:uppercase;letter-spacing:0.16em;
  color:var(--muted);text-align:center;
}
.proj-footer{
  margin-top:64px;padding-top:32px;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.proj-footer-item{
  border-left:2px solid var(--teal);
  padding-left:20px;
}
.proj-footer-value{
  font-family:'Fraunces',serif;
  font-size:32px;font-weight:300;letter-spacing:-0.02em;line-height:1;
  color:var(--teal-deep);margin-bottom:8px;
}
.proj-footer-label{
  font-size:12px;text-transform:uppercase;letter-spacing:0.2em;
  color:var(--muted);
}
.proj-caveat{
  margin-top:40px;font-size:12px;color:var(--muted);
  max-width:720px;line-height:1.6;font-style:italic;
}

@media (max-width:900px){
  .proj-chart{grid-template-columns:repeat(3,1fr);height:260px}
  .proj-labels{grid-template-columns:repeat(3,1fr)}
  .proj-chart > :nth-child(n+4),.proj-labels > :nth-child(n+4){display:none}
  .proj-footer{grid-template-columns:1fr;gap:24px}
}

.steps{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--cream);
}
.steps-head{margin-bottom:72px;max-width:720px}
.steps-head h2{font-size:clamp(38px,5vw,72px);margin:24px 0 24px}
.steps-head p{font-size:16px;color:var(--ink-soft);line-height:1.7;max-width:560px}

.step-row{
  display:grid;
  grid-template-columns:80px 1fr 2fr auto;
  gap:40px;align-items:baseline;
  padding:28px 0;
  border-top:1px solid var(--line);
  transition:all 400ms var(--ease);
  position:relative;
}
.step-row:last-child{border-bottom:1px solid var(--line)}
.step-row:hover{
  padding-left:12px;padding-right:12px;
  margin-left:-12px;margin-right:-12px;
  background:rgba(0,82,87,0.03);
}
.step-num{
  font-family:'Fraunces',serif;
  font-size:40px;font-weight:300;
  letter-spacing:-0.02em;line-height:1;
  color:var(--teal-deep);
  font-variant-numeric:tabular-nums;
}
.step-title{
  font-family:'Fraunces',serif;
  font-size:20px;font-weight:400;letter-spacing:-0.01em;
  color:var(--ink);line-height:1.3;
}
.step-desc{
  font-size:15px;line-height:1.65;color:var(--ink-soft);
}
.step-payment{
  text-align:right;white-space:nowrap;
}
.step-payment .amt{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:400;letter-spacing:-0.01em;
  color:var(--terracotta);
  display:block;line-height:1;margin-bottom:4px;
}
.step-payment .label{
  font-size:10px;text-transform:uppercase;letter-spacing:0.2em;
  color:var(--muted);
}
.step-payment .none{
  font-size:11px;color:var(--muted);
  text-transform:uppercase;letter-spacing:0.18em;
  font-style:italic;
}

@media (max-width:900px){
  .step-row{
    grid-template-columns:60px 1fr;gap:20px;
    padding:24px 0;
  }
  .step-desc{grid-column:2}
  .step-payment{grid-column:2;text-align:left}
  .step-payment .amt{font-size:18px}
}

.legal{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--paper);
}
.legal-head{margin-bottom:64px;max-width:720px}
.legal-head h2{font-size:clamp(38px,5vw,72px);margin:24px 0 24px}
.legal-head p{font-size:16px;color:var(--ink-soft);line-height:1.7}

.legal-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
}
.legal-card{
  padding:36px 32px;
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:6px;
}
.legal-card-mono{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.08em;
  color:var(--teal);
  margin-bottom:16px;
}
.legal-card h3{
  font-family:'Fraunces',serif;
  font-size:26px;font-weight:400;letter-spacing:-0.015em;
  margin-bottom:8px;color:var(--ink);
}
.legal-card-role{
  font-size:13px;color:var(--muted);margin-bottom:20px;
  text-transform:uppercase;letter-spacing:0.16em;
}
.legal-card p{
  font-size:14px;line-height:1.65;color:var(--ink-soft);
  margin-bottom:16px;
}
.legal-card-list{
  list-style:none;padding-top:20px;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;
}
.legal-card-list li{
  font-size:13px;color:var(--ink-soft);
  padding-left:16px;position:relative;
}
.legal-card-list li::before{
  content:'';position:absolute;left:0;top:9px;
  width:6px;height:1px;background:var(--teal);
}

@media (max-width:900px){
  .legal-grid{grid-template-columns:1fr;gap:16px}
}

.protect{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--cream);
}
.protect-head{margin-bottom:64px;max-width:720px}
.protect-head h2{font-size:clamp(38px,5vw,72px);margin:24px 0 24px}
.protect-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.protect-item{
  padding:32px 0;
  border-top:1px solid var(--line-strong);
  position:relative;
}
.protect-item::before{
  content:'';position:absolute;top:-1px;left:0;
  width:40px;height:2px;background:var(--teal);
}
.protect-item h4{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:400;letter-spacing:-0.01em;
  margin-bottom:12px;color:var(--ink);line-height:1.3;
}
.protect-item p{
  font-size:14px;line-height:1.65;color:var(--ink-soft);
}

@media (max-width:900px){
  .protect-grid{grid-template-columns:1fr;gap:16px}
}

.faq{
  padding:clamp(80px,12vw,160px) 0;
  background:var(--paper);
}
.faq-head{margin-bottom:64px;text-align:center}
.faq-head h2{font-size:clamp(38px,5vw,72px);margin:24px 0 0}
.faq-list{max-width:840px;margin:0 auto}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-trigger{
  width:100%;
  display:flex;justify-content:space-between;align-items:center;
  gap:24px;padding:28px 0;
  background:transparent;border:none;cursor:pointer;
  font-family:'Fraunces',serif;
  font-size:20px;font-weight:400;letter-spacing:-0.01em;
  color:var(--ink);text-align:left;line-height:1.3;
  transition:color 300ms var(--ease);
}
.faq-trigger:hover{color:var(--teal-deep)}
.faq-icon{
  width:32px;height:32px;flex-shrink:0;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:all 500ms var(--ease);
  color:var(--ink-soft);
}
.faq-item.open .faq-icon{
  background:var(--teal-deep);border-color:var(--teal-deep);
  color:var(--paper);transform:rotate(45deg);
}
.faq-body{
  max-height:0;overflow:hidden;
  transition:max-height 600ms var(--ease);
}
.faq-item.open .faq-body{max-height:400px}
.faq-body-inner{
  padding:0 0 28px;
  font-size:15px;line-height:1.7;color:var(--ink-soft);
  max-width:720px;
}

/* =====================================
   Page: discover-sumba
   ===================================== */

.statement{padding:clamp(96px,14vw,180px) 0;background:var(--cream);text-align:center}
.statement-text{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(22px,2.6vw,36px);line-height:1.3;letter-spacing:-0.012em;color:var(--ink);max-width:860px;margin:32px auto 0}
.statement-text em{font-style:italic;color:var(--teal-deep)}

.facts{padding:clamp(64px,10vw,120px) 0;background:var(--cream)}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.fact{padding:40px 24px 40px 0;border-right:1px solid var(--line)}
.fact:last-child{border-right:none;padding-right:0}
.fact:not(:first-child){padding-left:28px}
.fact-label{font-size:10px;text-transform:uppercase;letter-spacing:0.22em;color:var(--muted);margin-bottom:16px}
.fact-value{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(28px,3.4vw,44px);letter-spacing:-0.025em;line-height:1;color:var(--ink);margin-bottom:8px}
.fact-value .unit{font-size:0.42em;color:var(--muted);margin-left:3px}
.fact-note{font-size:12px;color:var(--muted);line-height:1.5}
@media (max-width:900px){.facts-grid{grid-template-columns:repeat(2,1fr)}.fact{padding:28px 16px 28px 0!important;border-right:1px solid var(--line)!important}.fact:nth-child(2n){border-right:none!important;padding-right:0!important;padding-left:24px!important}.fact:nth-child(1),.fact:nth-child(2){border-bottom:1px solid var(--line)}}

.culture{padding:clamp(80px,12vw,160px) 0;background:var(--paper)}
.culture-head{margin-bottom:80px;max-width:720px}
.culture-head h2{font-size:clamp(40px,5.4vw,76px);margin:24px 0 24px}
.culture-head p{font-size:16px;line-height:1.7;color:var(--ink-soft)}

.culture-row{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,80px);align-items:center;padding:clamp(40px,6vw,72px) 0;border-bottom:1px solid var(--line)}
.culture-row:last-child{border-bottom:none}
.culture-row:nth-child(even){grid-template-columns:7fr 5fr}
.culture-row:nth-child(even) .culture-copy{order:2}
.culture-row:nth-child(even) .culture-image{order:1}
.culture-num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.2em;color:var(--teal);margin-bottom:16px}
.culture-copy h3{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(30px,3.8vw,50px);letter-spacing:-0.022em;line-height:1.05;color:var(--ink);margin-bottom:24px}
.culture-copy h3 em{color:var(--teal-deep);font-style:italic}
.culture-copy p{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:460px;margin-bottom:16px}
.culture-link{display:inline-flex;align-items:center;gap:10px;margin-top:12px;font-size:13px;color:var(--teal-deep);text-decoration:none;padding-bottom:4px;border-bottom:1px solid var(--line);transition:all 400ms var(--ease);letter-spacing:0.02em}
.culture-link:hover{border-bottom-color:var(--teal-deep);padding-left:4px}
.culture-image{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:4px;box-shadow:0 30px 60px -30px rgba(10,52,50,0.25)}
.culture-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}
.culture-image:hover img{transform:scale(1.03)}
.culture-image .caption{position:absolute;bottom:16px;left:16px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--paper);background:rgba(10,52,50,0.6);padding:6px 10px;border-radius:3px;backdrop-filter:blur(4px)}
@media (max-width:900px){.culture-row,.culture-row:nth-child(even){grid-template-columns:1fr;gap:32px}.culture-row:nth-child(even) .culture-copy{order:1}.culture-row:nth-child(even) .culture-image{order:2}}

.land{padding:clamp(80px,12vw,160px) 0;background:var(--cream)}
.land-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:56px}
.land-head h2{font-size:clamp(38px,5vw,72px)}
.land-head p{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:440px}
.bento-discover{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(200px,auto);gap:16px}
.bento-card-discover{position:relative;overflow:hidden;border-radius:6px;background:var(--cream-deep)}
.bento-card-discover img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}
.bento-card-discover:hover img{transform:scale(1.04)}
.bento-card-discover::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,52,50,0.75) 100%);pointer-events:none}
.bento-meta-discover{position:absolute;bottom:20px;left:24px;right:24px;z-index:2;color:var(--paper);display:flex;justify-content:space-between;align-items:end}
.bento-title-discover{font-family:'Fraunces',serif;font-size:22px;font-weight:400;letter-spacing:-0.01em}
.bento-sub-discover{font-size:11px;text-transform:uppercase;letter-spacing:0.22em;opacity:0.82;margin-top:4px}
.bento-num-discover{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;opacity:0.8}
.b-1{grid-column:span 7;grid-row:span 2}
.b-2{grid-column:span 5;grid-row:span 1}
.b-3{grid-column:span 5;grid-row:span 1}
.b-4{grid-column:span 5;grid-row:span 2}
.b-5{grid-column:span 7;grid-row:span 1}
@media (max-width:900px){.bento-discover{grid-template-columns:1fr;grid-auto-rows:260px}.bento-card-discover,.b-1,.b-2,.b-3,.b-4,.b-5{grid-column:span 1!important;grid-row:span 1!important}.land-head{grid-template-columns:1fr;gap:24px}}

.surf{padding:clamp(80px,12vw,160px) 0;background:var(--teal-deep);color:var(--paper);position:relative;overflow:hidden}
.surf::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 30%,rgba(184,92,60,0.08),transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(138,154,133,0.12),transparent 50%)}
.surf-inner{position:relative;z-index:1}
.surf .eyebrow{color:rgba(244,236,221,0.6)}
.surf h2{font-size:clamp(40px,5.4vw,80px);color:var(--paper);margin:28px 0 24px;max-width:860px}
.surf h2 em{color:rgba(184,92,60,0.9)}
.surf-lede{max-width:640px;font-size:17px;line-height:1.7;color:rgba(244,236,221,0.78);margin-bottom:64px}
.surf-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,80px);align-items:start}
.surf-image{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:4px}
.surf-image img{width:100%;height:100%;object-fit:cover}
.surf-list{display:flex;flex-direction:column;gap:0}
.surf-break{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:baseline;padding:22px 0;border-top:1px solid rgba(244,236,221,0.18)}
.surf-break:last-child{border-bottom:1px solid rgba(244,236,221,0.18)}
.surf-break-num{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(244,236,221,0.5);letter-spacing:0.14em}
.surf-break-name{font-family:'Fraunces',serif;font-size:22px;font-weight:400;color:var(--paper);letter-spacing:-0.01em}
.surf-break-level{font-size:11px;color:rgba(244,236,221,0.6);text-transform:uppercase;letter-spacing:0.2em}
.surf-break-desc{font-size:13px;color:rgba(244,236,221,0.7);margin-top:6px;line-height:1.55}
.surf-season{margin-top:40px;padding-top:28px;border-top:1px solid rgba(244,236,221,0.18);display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.surf-season-label{font-size:10px;text-transform:uppercase;letter-spacing:0.22em;color:rgba(244,236,221,0.5);margin-bottom:8px}
.surf-season-value{font-family:'Fraunces',serif;font-size:18px;color:var(--paper);letter-spacing:-0.005em}
@media (max-width:900px){.surf-grid{grid-template-columns:1fr;gap:32px}}

.practical{padding:clamp(80px,12vw,160px) 0;background:var(--paper)}
.practical-head{margin-bottom:64px;max-width:720px}
.practical-head h2{font-size:clamp(38px,5vw,72px);margin:24px 0 24px}
.practical-head p{font-size:16px;line-height:1.7;color:var(--ink-soft)}
.practical-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px}
.practical-item{padding:36px 32px;background:var(--cream);border:1px solid var(--line);border-radius:6px}
.practical-item h3{font-family:'Fraunces',serif;font-weight:400;font-size:26px;letter-spacing:-0.015em;margin-bottom:20px;color:var(--ink)}
.practical-item p{font-size:14px;line-height:1.65;color:var(--ink-soft);margin-bottom:12px}
.practical-specs{list-style:none;padding-top:20px;margin-top:16px;border-top:1px solid var(--line)}
.practical-specs li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;font-size:13px}
.practical-specs .label{color:var(--muted)}
.practical-specs .value{font-family:'Fraunces',serif;color:var(--teal-deep);letter-spacing:-0.005em}
@media (max-width:900px){.practical-grid{grid-template-columns:1fr;gap:16px}}

.further{padding:clamp(80px,12vw,160px) 0;background:var(--cream)}
.further-head{margin-bottom:56px;text-align:center}
.further-head h2{font-size:clamp(38px,5vw,72px);margin:20px 0 0}
.further-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.further-card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);transition:transform 500ms var(--ease)}
.further-card:hover{transform:translateY(-4px)}
.further-card-img{aspect-ratio:3/2;overflow:hidden;border-radius:4px;margin-bottom:20px;background:var(--cream-deep)}
.further-card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.further-card:hover .further-card-img img{transform:scale(1.04)}
.further-tag{font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:0.2em;color:var(--teal);margin-bottom:10px}
.further-title{font-family:'Fraunces',serif;font-weight:400;font-size:22px;letter-spacing:-0.01em;line-height:1.25;margin-bottom:10px}
.further-sub{font-size:13px;color:var(--muted);line-height:1.55}
@media (max-width:900px){.further-grid{grid-template-columns:1fr;gap:24px}}

/* =====================================
   Page: blog index
   ===================================== */

.masthead{padding:160px 0 48px;background:var(--cream);border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;gap:10px;align-items:center;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:40px}
.breadcrumb a{color:var(--muted);text-decoration:none;transition:color 300ms var(--ease)}
.breadcrumb a:hover{color:var(--teal-deep)}
.breadcrumb-sep{opacity:0.5}
.post-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:rgba(0,82,87,0.08);color:var(--teal-deep);border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;margin-bottom:24px}
.post-tag .dot{width:6px;height:6px;border-radius:50%;background:var(--teal)}
.post-title{font-size:clamp(44px,6.5vw,96px);max-width:1100px;margin-bottom:40px;letter-spacing:-0.028em}
.post-title em{color:var(--teal-deep)}
.post-meta{display:grid;grid-template-columns:auto auto auto auto 1fr;gap:32px;align-items:center;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:48px}
.meta-group{display:flex;flex-direction:column;gap:4px}
.meta-label{font-size:10px;text-transform:uppercase;letter-spacing:0.22em;color:var(--muted)}
.meta-value{font-family:'Fraunces',serif;font-size:15px;color:var(--ink);letter-spacing:-0.005em}
.meta-divider{width:1px;height:32px;background:var(--line)}
.share{margin-left:auto;display:flex;gap:8px}
.share-btn{width:36px;height:36px;border-radius:50%;background:transparent;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);cursor:pointer;transition:all 400ms var(--ease)}
.share-btn:hover{background:var(--teal-deep);color:var(--paper);border-color:var(--teal-deep)}
@media (max-width:900px){
  .masthead{padding:120px 0 32px}
  .post-meta{grid-template-columns:1fr 1fr;gap:20px}
  .meta-divider{display:none}
  .share{grid-column:span 2;margin-left:0}
}

/* Blog masthead — typographic, no image. Scoped via :has(.hero-sub-lead) so
   the homepage hero (dark full-bleed) and the villas/discover heroes
   (also dark full-bleed, which also use .hero-top) are untouched. */
.hero:has(.hero-sub-lead){
  min-height:auto;
  display:block;
  padding:clamp(140px,16vw,220px) 0 clamp(56px,7vw,88px);
  background:var(--cream);
  overflow:visible;
}
.hero:has(.hero-sub-lead) .hero-top{
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-bottom:28px;
  border-bottom:1px solid var(--line);
  margin-bottom:clamp(48px,8vw,88px);
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--muted);
  animation:fadeUp 1s var(--ease) 0.15s both;
}
.hero-top-left,.hero-top-right{display:flex;flex-direction:column;gap:6px}
.hero-top-right{text-align:right}
.hero:has(.hero-sub-lead) h1.display{
  font-size:clamp(64px,12vw,180px);
  color:var(--ink);
  margin-bottom:48px;
  letter-spacing:-0.03em;
  line-height:0.95;
}
.hero:has(.hero-sub-lead) h1.display em{color:var(--teal);font-style:italic;font-weight:300}
.hero:has(.hero-sub-lead) .hero-sub{
  max-width:none;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:clamp(32px,6vw,88px);
  align-items:end;
  padding-top:32px;
  border-top:1px solid var(--line);
  animation:fadeUp 1s var(--ease) 0.45s both;
}
.hero-sub-lead{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(20px,2.2vw,30px);
  line-height:1.35;letter-spacing:-0.012em;
  color:var(--ink);
  max-width:28ch;
}
.hero-sub-lead em{font-style:italic;color:var(--teal-deep)}
.hero:has(.hero-sub-lead) .hero-meta{
  display:flex;flex-direction:row;flex-wrap:wrap;gap:24px;
  align-items:baseline;
  justify-self:end;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--muted);
}
.hero:has(.hero-sub-lead) .hero-meta strong{
  font-family:'Fraunces',serif;font-weight:400;font-size:15px;
  color:var(--teal-deep);letter-spacing:-0.01em;text-transform:none;
}
@media (max-width:760px){
  .hero:has(.hero-sub-lead) .hero-top{font-size:9px;letter-spacing:0.18em}
  .hero-top-right{text-align:left}
  .hero:has(.hero-sub-lead) .hero-sub{grid-template-columns:1fr;gap:32px}
  .hero:has(.hero-sub-lead) .hero-meta{justify-self:start}
}

.categories{padding:36px 0;background:var(--cream);border-bottom:1px solid var(--line)}
.cat-list{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cat-label{font-size:10px;text-transform:uppercase;letter-spacing:0.22em;color:var(--muted);margin-right:10px}
.cat-btn{background:transparent;border:1px solid var(--line);padding:7px 16px;border-radius:999px;font-family:inherit;font-size:12px;letter-spacing:0.04em;color:var(--ink-soft);cursor:pointer;transition:all 400ms var(--ease)}
.cat-btn:hover{border-color:var(--line-strong);color:var(--ink)}
.cat-btn.active{background:var(--teal-deep);color:var(--paper);border-color:var(--teal-deep)}
[data-cat].is-hidden,.featured.is-hidden,.grid-section.is-hidden,.list-section.is-hidden{display:none}

.featured{padding:clamp(72px,10vw,120px) 0;background:var(--cream)}
.featured-inner{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,80px);align-items:center}
.featured-image{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:4px;box-shadow:0 40px 80px -30px rgba(10,52,50,0.28)}
.featured-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.featured-image:hover img{transform:scale(1.03)}
.featured-image .tag{position:absolute;top:20px;left:20px;background:var(--paper);color:var(--teal-deep);padding:8px 14px;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.2em;text-transform:uppercase}
.featured-copy .eyebrow{margin-bottom:16px}
.featured-copy h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(36px,4.6vw,60px);letter-spacing:-0.022em;line-height:1.05;color:var(--ink);margin-bottom:28px}
.featured-copy h2 em{color:var(--teal-deep);font-style:italic}
.featured-excerpt{font-size:17px;line-height:1.7;color:var(--ink-soft);margin-bottom:32px;max-width:520px}
.featured-meta{display:flex;gap:24px;align-items:baseline;padding-top:20px;border-top:1px solid var(--line);margin-bottom:28px;font-size:12px;color:var(--muted);letter-spacing:0.04em}
.featured-meta strong{font-family:'Fraunces',serif;color:var(--teal-deep);font-weight:400;font-size:14px}
.featured-link{display:inline-flex;align-items:center;gap:10px;padding:14px 14px 14px 24px;background:var(--teal-deep);color:var(--paper);border-radius:999px;text-decoration:none;font-size:14px;font-weight:500;transition:all 500ms var(--ease)}
.featured-link .pill{width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;transition:all 500ms var(--ease)}
.featured-link:hover{background:var(--ink);transform:translateY(-2px)}
.featured-link:hover .pill{transform:translate(2px,-1px) scale(1.08)}
@media (max-width:900px){.featured-inner{grid-template-columns:1fr;gap:32px}}

.grid-section{padding:clamp(48px,8vw,96px) 0 clamp(72px,10vw,120px);background:var(--paper)}
.grid-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:56px;flex-wrap:wrap;gap:16px}
.grid-head h3{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(22px,2.6vw,32px);letter-spacing:-0.012em;color:var(--ink)}
.grid-head-meta{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted)}

.articles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
.article-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform 500ms var(--ease);border-bottom:1px solid var(--line);padding-bottom:28px}
.article-card:hover{transform:translateY(-4px)}
.article-img{aspect-ratio:16/10;overflow:hidden;border-radius:4px;margin-bottom:24px;background:var(--cream-deep)}
.article-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.article-card:hover .article-img img{transform:scale(1.04)}
.article-meta{display:flex;gap:12px;align-items:center;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.article-tag{color:var(--teal)}
.article-dot{width:3px;height:3px;border-radius:50%;background:var(--muted)}
.article-card h3{font-family:'Fraunces',serif;font-weight:400;font-size:24px;letter-spacing:-0.012em;line-height:1.2;color:var(--ink);margin-bottom:14px}
.article-excerpt{font-size:14px;line-height:1.65;color:var(--ink-soft);margin-bottom:18px;flex:1}
.article-author{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted)}
.article-author strong{color:var(--ink)}
@media (max-width:900px){.articles{grid-template-columns:1fr;gap:40px}}

.list-section{padding:clamp(48px,8vw,96px) 0 clamp(72px,10vw,120px);background:var(--cream);border-top:1px solid var(--line)}
.article-list{display:flex;flex-direction:column}
.list-row{display:grid;grid-template-columns:auto 3fr 2fr auto;gap:32px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--line);transition:all 400ms var(--ease);text-decoration:none;color:inherit}
.list-row:first-child{border-top:1px solid var(--line)}
.list-row:hover{background:rgba(0,82,87,0.03);padding-left:12px;padding-right:12px;margin:0 -12px}
.list-num{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.14em;min-width:36px}
.list-title{font-family:'Fraunces',serif;font-weight:400;font-size:22px;letter-spacing:-0.01em;line-height:1.25;color:var(--ink)}
.list-tag{font-size:11px;color:var(--teal);letter-spacing:0.18em;text-transform:uppercase;font-family:'JetBrains Mono',monospace}
.list-date{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.12em;text-align:right;white-space:nowrap}
@media (max-width:900px){.list-row{grid-template-columns:auto 1fr;gap:16px}.list-row .list-tag,.list-row .list-date{grid-column:2}.list-title{grid-column:2}.list-num{grid-row:span 3}}

.newsletter{padding:clamp(80px,12vw,160px) 0;background:var(--teal-deep);color:var(--paper);text-align:center;position:relative;overflow:hidden}
.newsletter::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(184,92,60,0.08),transparent 60%)}
.newsletter-inner{position:relative;z-index:1}
.newsletter .eyebrow{color:rgba(244,236,221,0.6)}
.newsletter h2{font-size:clamp(36px,5vw,64px);color:var(--paper);margin:24px auto 24px;max-width:720px}
.newsletter h2 em{color:rgba(184,92,60,0.9)}
.newsletter p{color:rgba(244,236,221,0.78);max-width:520px;margin:0 auto 40px;font-size:15px;line-height:1.7}
.newsletter-form{display:flex;gap:8px;max-width:480px;margin:0 auto;padding:6px;background:rgba(244,236,221,0.08);border:1px solid rgba(244,236,221,0.15);border-radius:999px}
.newsletter-input{flex:1;background:transparent;border:none;padding:10px 18px;color:var(--paper);font-family:inherit;font-size:14px;outline:none}
.newsletter-input::placeholder{color:rgba(244,236,221,0.45)}
.newsletter-submit{padding:10px 20px;background:var(--paper);color:var(--teal-deep);border:none;border-radius:999px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all 400ms var(--ease)}
.newsletter-submit:hover{background:#fff}

/* =====================================
   Page: blog post
   ===================================== */

.hero-image{padding:24px 0;background:var(--cream)}
.hero-image-wrap{aspect-ratio:21/9;overflow:hidden;border-radius:4px;max-width:1200px;margin:0 auto}
.hero-image-wrap img{width:100%;height:100%;object-fit:cover}
.hero-image-caption{max-width:1200px;margin:16px auto 0;padding:0 clamp(24px,5vw,64px);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}
.hero-image-caption .num{color:var(--teal)}
@media (max-width:900px){.hero-image-wrap{aspect-ratio:4/3}}

.article{padding:clamp(56px,8vw,96px) 0 clamp(72px,10vw,120px);background:var(--cream)}
.prose{font-family:'Instrument Sans',sans-serif;font-size:18px;line-height:1.75;color:var(--ink)}
.prose > * + *{margin-top:1.3em}
.prose .lede{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(22px,2.4vw,28px);line-height:1.4;letter-spacing:-0.01em;color:var(--ink);margin-bottom:2em;padding-bottom:2em;border-bottom:1px solid var(--line)}
.prose .lede em{font-style:italic;color:var(--teal-deep)}

.prose h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(28px,3.2vw,42px);letter-spacing:-0.02em;line-height:1.15;color:var(--ink);margin-top:2em!important;margin-bottom:0.5em}
.prose h2 em{color:var(--teal-deep);font-style:italic}
.prose h3{font-family:'Fraunces',serif;font-weight:400;font-size:22px;letter-spacing:-0.01em;color:var(--teal-deep);margin-top:2em!important;margin-bottom:0.6em}
.prose h4{font-family:'Fraunces',serif;font-weight:500;font-size:17px;letter-spacing:-0.005em;color:var(--ink);margin-top:1.6em!important;margin-bottom:0.4em}
.prose p{max-width:65ch;margin-bottom:1.4em}
.prose p:last-child{margin-bottom:0}
/* ---- Comparison table (WP <table> in body) ---- */
.prose table{width:100%;margin:2em 0;border-collapse:collapse;font-size:14.5px;line-height:1.6}
.prose table thead th{text-align:left;font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);padding:0 18px 14px;border-bottom:1px solid var(--line-strong)}
.prose table tbody td{padding:18px 18px;vertical-align:top;border-bottom:1px solid var(--line);color:var(--ink-soft)}
.prose table tbody td:first-child{font-family:'Fraunces',serif;font-size:16px;color:var(--ink);font-weight:400;width:22%}
.prose table tbody td strong{color:var(--ink);font-weight:600}
@media (max-width:780px){.prose table,.prose table thead,.prose table tbody,.prose table tr,.prose table th,.prose table td{display:block;width:100%}.prose table thead{display:none}.prose table tbody td{padding:6px 0;border-bottom:none}.prose table tbody tr{padding:18px 0;border-bottom:1px solid var(--line)}.prose table tbody td:first-child{padding-bottom:8px;font-size:18px}.prose table tbody td:not(:first-child)::before{content:attr(data-label);display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}}
.prose a{color:var(--teal-deep);text-decoration:none;border-bottom:1px solid rgba(10,52,50,0.3);transition:border-color 300ms var(--ease);padding-bottom:1px}
.prose a:hover{border-bottom-color:var(--teal-deep)}
.prose strong{color:var(--ink);font-weight:600}
.prose h1 strong,
.prose h2 strong,
.prose h3 strong,
.prose h4 strong{font-weight:inherit;color:inherit}
.prose em{color:var(--ink-soft)}

.prose ul{list-style:none;padding-left:0;margin-top:1.3em}
.prose ul li{position:relative;padding-left:28px;margin-bottom:0.6em;max-width:62ch;line-height:1.7}
.prose ul li::before{content:'';position:absolute;left:0;top:14px;width:14px;height:1px;background:var(--teal)}
.prose ul li strong{color:var(--ink);font-weight:600}

/* WP gallery → image-gallery (3+ figures, default 3-col grid) */
.image-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:2em 0!important;max-width:none!important}
.image-gallery.is-2col{grid-template-columns:repeat(2,1fr);gap:18px}
.image-gallery figure{margin:0;display:flex;flex-direction:column}
.image-gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;display:block}
.image-gallery.is-2col img{aspect-ratio:4/3}
.image-gallery figcaption{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-top:10px}
@media (max-width:780px){.image-gallery{grid-template-columns:repeat(2,1fr);gap:10px}.image-gallery.is-2col{gap:10px}}
@media (max-width:480px){.image-gallery,.image-gallery.is-2col{grid-template-columns:1fr}}

/* Single image (1-item WP gallery) */
.image-single{margin:2em 0!important;max-width:none!important}
.image-single figure{margin:0}
.image-single img{width:100%;height:auto;display:block;border-radius:4px}
.image-single figcaption{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-top:10px}

/* Responsive YouTube/Vimeo iframe wrapper */
.video-embed{position:relative;width:100%;aspect-ratio:16/9;margin:2em 0!important;max-width:none!important;border-radius:4px;overflow:hidden;background:var(--ink)}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.pullquote{margin:2.5em 0!important;padding:48px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);font-family:'Fraunces',serif;font-weight:300;font-size:clamp(24px,3vw,36px);line-height:1.3;letter-spacing:-0.015em;color:var(--teal-deep);max-width:none;text-align:center}
.pullquote::before{content:'';display:block;width:48px;height:1px;background:var(--teal);margin:0 auto 28px}

.comparison{margin:2.5em 0!important;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.comparison-col{padding:32px 28px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.comparison-col.hot{background:var(--teal-deep);color:var(--paper);border-color:var(--teal-deep)}
.comparison-title{font-family:'Fraunces',serif;font-size:22px;font-weight:400;letter-spacing:-0.01em;margin-bottom:16px;color:var(--ink)}
.comparison-col.hot .comparison-title{color:var(--paper)}
.comparison-label{display:inline-block;padding:4px 10px;background:rgba(0,82,87,0.08);color:var(--teal-deep);border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:0.18em;margin-bottom:16px;font-family:'JetBrains Mono',monospace}
.comparison-col.hot .comparison-label{background:rgba(244,236,221,0.15);color:var(--paper)}
.comparison-col ul{margin-top:0!important;list-style:none;padding:0}
.comparison-col li{font-size:14px;line-height:1.65;padding:10px 0;border-bottom:1px solid var(--line);padding-left:16px;position:relative;max-width:none}
.comparison-col li::before{content:'';position:absolute;left:0;top:18px;width:6px;height:1px;background:var(--teal)}
.comparison-col.hot li{color:rgba(244,236,221,0.85);border-color:rgba(244,236,221,0.14)}
.comparison-col.hot li::before{background:var(--paper)}
.comparison-col li:last-child{border-bottom:none}
@media (max-width:900px){.comparison{grid-template-columns:1fr;gap:16px}}

.prose figure{margin:2.5em 0!important}
.prose figure img{width:100%;height:auto;border-radius:4px;display:block}
.prose figcaption{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:12px;text-align:center}

.dual-image{margin:2.5em 0!important;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dual-image figure{margin:0!important}
@media (max-width:900px){.dual-image{grid-template-columns:1fr}}

.post-faq{margin:3em 0!important;padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.post-faq h2{margin-top:0!important;margin-bottom:32px!important}
.post-faq-item{border-bottom:1px solid var(--line)}
.post-faq-item:first-child{border-top:1px solid var(--line)}
.post-faq-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;background:transparent;border:none;cursor:pointer;font-family:'Fraunces',serif;font-size:18px;font-weight:400;letter-spacing:-0.005em;color:var(--ink);text-align:left;line-height:1.4;transition:color 300ms var(--ease)}
.post-faq-trigger:hover{color:var(--teal-deep)}
.post-faq-icon{width:28px;height:28px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all 500ms var(--ease);color:var(--ink-soft)}
.post-faq-item.open .post-faq-icon{background:var(--teal-deep);border-color:var(--teal-deep);color:var(--paper);transform:rotate(45deg)}
.post-faq-body{max-height:0;overflow:hidden;transition:max-height 600ms var(--ease)}
.post-faq-item.open .post-faq-body{max-height:400px}
.post-faq-body-inner{padding:0 0 22px;font-size:15px;line-height:1.7;color:var(--ink-soft)}

.post-cta{margin:3em 0 0!important;padding:48px 40px;background:var(--teal-deep);color:var(--paper);border-radius:8px;position:relative;overflow:hidden;max-width:none!important}
.post-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%,rgba(184,92,60,0.12),transparent 60%)}
.post-cta-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
.post-cta-text{font-family:'Fraunces',serif;font-size:24px;font-weight:400;line-height:1.3;letter-spacing:-0.01em;color:var(--paper);max-width:540px!important}
.post-cta-text em{color:rgba(184,92,60,0.9);font-style:italic}
.post-cta-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 14px 14px 22px;background:var(--paper);color:var(--teal-deep);border-radius:999px;text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap;transition:all 500ms var(--ease)}
.post-cta-btn .pill{width:28px;height:28px;border-radius:999px;background:rgba(0,82,87,0.1);display:flex;align-items:center;justify-content:center;transition:all 500ms var(--ease)}
.post-cta-btn:hover{transform:translateY(-2px)}
.post-cta-btn:hover .pill{transform:translate(2px,-1px) scale(1.08)}
@media (max-width:900px){.post-cta{padding:32px 24px}.post-cta-inner{grid-template-columns:1fr;gap:20px}}

.author-card{padding:36px 32px;margin:64px auto 0;max-width:760px;background:var(--paper);border:1px solid var(--line);border-radius:6px;display:flex;gap:24px;align-items:flex-start}
.author-avatar{width:64px;height:64px;border-radius:50%;background:var(--cream-deep);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:22px;color:var(--teal-deep);flex-shrink:0;letter-spacing:-0.02em}
.author-info{flex:1}
.author-label{font-size:10px;text-transform:uppercase;letter-spacing:0.22em;color:var(--muted);margin-bottom:6px}
.author-name{font-family:'Fraunces',serif;font-size:20px;font-weight:400;letter-spacing:-0.01em;color:var(--ink);margin-bottom:8px}
.author-bio{font-size:13px;line-height:1.65;color:var(--ink-soft);max-width:560px}
@media (max-width:900px){.author-card{flex-direction:column;gap:16px}}

.related{padding:clamp(72px,10vw,120px) 0;background:var(--paper);border-top:1px solid var(--line)}
.related-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:48px}
.related-head h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(28px,3.6vw,44px);letter-spacing:-0.02em;color:var(--ink)}
.related-head a{font-size:13px;color:var(--teal-deep);text-decoration:none;padding-bottom:2px;border-bottom:1px solid var(--line);transition:all 300ms var(--ease)}
.related-head a:hover{border-bottom-color:var(--teal-deep);padding-left:4px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.related-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform 500ms var(--ease)}
.related-card:hover{transform:translateY(-4px)}
.related-img{aspect-ratio:16/10;overflow:hidden;border-radius:4px;margin-bottom:20px;background:var(--cream-deep)}
.related-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.related-card:hover .related-img img{transform:scale(1.04)}
.related-tag{font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:0.2em;color:var(--teal);margin-bottom:10px}
.related-title{font-family:'Fraunces',serif;font-weight:400;font-size:20px;letter-spacing:-0.01em;line-height:1.25;color:var(--ink)}
@media (max-width:900px){.related-grid{grid-template-columns:1fr;gap:32px}}

/* =====================================
   Resort cluster pages
   the-resort, activities, events, facilities, restaurant
   ===================================== */

/* shared button pill */
.btn-pill{display:inline-flex;align-items:center;gap:14px;padding:14px 14px 14px 26px;background:var(--teal-deep);color:var(--paper);border-radius:999px;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:0.04em;transition:all 500ms var(--ease)}
.btn-pill .btn-pill-arrow{width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;transition:all 500ms var(--ease)}
.btn-pill:hover{background:var(--ink);transform:translateY(-2px)}
.btn-pill:hover .btn-pill-arrow{transform:translate(2px,-1px) scale(1.08)}
.btn-pill-cream{background:var(--paper);color:var(--teal-deep)}
.btn-pill-cream .btn-pill-arrow{background:rgba(0,82,87,0.1)}
.btn-pill-cream:hover{background:#fff;color:var(--teal-deep)}

/* the-resort: numbered fact grid */
.resort-facts{padding:clamp(48px,8vw,96px) 0;background:var(--paper)}
.resort-facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 56px}
.resort-fact{position:relative;padding-top:24px;border-top:1px solid var(--line-strong)}
.resort-fact-num{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--teal);letter-spacing:0.2em;margin-bottom:14px}
.resort-fact h3{font-family:'Fraunces',serif;font-weight:400;font-size:22px;letter-spacing:-0.01em;line-height:1.2;color:var(--ink);margin-bottom:10px}
.resort-fact p{font-size:14.5px;line-height:1.65;color:var(--ink-soft);max-width:34ch}
@media (max-width:1040px){.resort-facts-grid{grid-template-columns:repeat(2,1fr);gap:40px}}
@media (max-width:680px){.resort-facts-grid{grid-template-columns:1fr;gap:32px}}

/* aerial / hotspot replacement */
.aerial{padding:clamp(72px,10vw,120px) 0;background:var(--cream)}
.aerial-head{max-width:780px;margin:0 auto 56px;text-align:center}
.aerial-head .eyebrow{margin:0 auto 16px}
.aerial-head h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(40px,5.4vw,72px);letter-spacing:-0.02em;line-height:1;color:var(--ink);margin-bottom:24px}
.aerial-head h2 em{color:var(--teal-deep);font-style:italic}
.aerial-head p{font-size:16px;line-height:1.7;color:var(--ink-soft);max-width:520px;margin:0 auto}
.aerial-figure{margin:0 0 56px;border-radius:6px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(10,52,50,0.28)}
.aerial-figure img{width:100%;height:auto;display:block}
.aerial-figure figcaption{padding:14px 20px;background:var(--paper);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);text-align:center;border-top:1px solid var(--line)}
.aerial-legend{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:0;margin:0 0 56px}
.aerial-legend li{display:flex;gap:14px;align-items:flex-start}
.aerial-legend-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--teal);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.04em;font-weight:500}
.aerial-legend strong{font-family:'Fraunces',serif;font-size:16px;font-weight:400;color:var(--ink);display:block;margin-bottom:4px}
.aerial-legend p{font-size:13px;line-height:1.55;color:var(--ink-soft);margin:0}
.aerial-cta{text-align:center}
@media (max-width:1040px){.aerial-legend{grid-template-columns:repeat(2,1fr);gap:28px}}
@media (max-width:680px){.aerial-legend{grid-template-columns:1fr}}

/* three-pillar features (the-resort) */
.pillars{padding:clamp(72px,10vw,120px) 0;background:var(--paper)}
.pillars .eyebrow{margin-bottom:48px}
.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.pillar{padding:40px 32px;background:var(--cream);border:1px solid var(--line);border-radius:6px;transition:transform 500ms var(--ease),box-shadow 500ms var(--ease)}
.pillar:hover{transform:translateY(-4px);box-shadow:0 30px 60px -25px rgba(10,52,50,0.18)}
.pillar h3{font-family:'Fraunces',serif;font-weight:400;font-size:24px;letter-spacing:-0.012em;line-height:1.2;color:var(--teal-deep);margin-bottom:14px}
.pillar p{font-size:15px;line-height:1.65;color:var(--ink-soft)}
@media (max-width:1040px){.pillars-grid{grid-template-columns:1fr;gap:18px}}

/* dark CTA strip (shared across resort cluster) */
.cta-dark{padding:clamp(80px,12vw,140px) 0;background:var(--teal-deep);color:var(--paper);position:relative;overflow:hidden}
.cta-dark::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 30%,rgba(184,92,60,0.12),transparent 60%);pointer-events:none}
.cta-dark-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end}
.cta-dark .eyebrow{color:rgba(244,236,221,0.6);margin-bottom:20px}
.cta-dark h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(40px,5.4vw,76px);letter-spacing:-0.02em;line-height:1;color:var(--paper);margin-bottom:20px}
.cta-dark h2 em{color:rgba(184,92,60,0.92);font-style:italic}
.cta-dark p{font-size:16px;line-height:1.6;color:rgba(244,236,221,0.78);max-width:520px}
@media (max-width:900px){.cta-dark-inner{grid-template-columns:1fr;gap:28px}}

/* CTA-PAUSE — quiet bottom-of-page invest block.
   Lives inside .container like every other section. Distinct background
   (cream-deep) so it stands apart from the cream/paper section rhythm
   and reads as a closer, not just another section. */
.cta-pause{
  background:var(--cream-deep);
  padding:clamp(80px,10vw,140px) 0;
}
.cta-pause-inner{
  display:grid;
  grid-template-columns:0.9fr 1.15fr;
  gap:clamp(40px,6vw,96px);
  align-items:center;
  max-width:1280px;
}
.cta-pause-copy{
  display:flex;flex-direction:column;
  gap:18px;
  max-width:520px;
}
.cta-pause-copy .eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0;
}
.cta-pause-copy h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.4vw,60px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:0;
}
.cta-pause-copy .lede{
  font-size:16px;line-height:1.65;
  color:var(--ink-soft);
  margin:6px 0 0;
}
.cta-pause-actions{
  display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;
}
.cta-pause-actions .btn-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 22px;border-radius:999px;
  background:var(--teal-deep);color:var(--paper);
  text-decoration:none;
  font-family:'Instrument Sans',sans-serif;
  font-size:14px;font-weight:500;letter-spacing:0.01em;
  transition:transform 280ms cubic-bezier(0.32,0.72,0,1),background 280ms ease;
}
.cta-pause-actions .btn-pill:hover{
  background:var(--ink);transform:translateY(-2px);
}
.cta-pause-actions .btn-pill-ghost{
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 22px;border-radius:999px;
  background:transparent;color:var(--teal-deep);
  border:1px solid var(--teal-deep);
  text-decoration:none;
  font-family:'Instrument Sans',sans-serif;
  font-size:14px;font-weight:500;letter-spacing:0.01em;
  transition:transform 280ms cubic-bezier(0.32,0.72,0,1),background 280ms ease,color 280ms ease;
}
.cta-pause-actions .btn-pill-ghost:hover{
  background:var(--teal-deep);color:var(--paper);
  transform:translateY(-2px);
}
.cta-pause-image{
  aspect-ratio:4/3;
  overflow:hidden;
  background:#e6d9c0;
  border-radius:6px;
}
.cta-pause-image img{
  width:100%;height:100%;
  object-fit:cover;display:block;
}
@media (max-width:900px){
  .cta-pause-inner{grid-template-columns:1fr;gap:36px}
  .cta-pause-image{aspect-ratio:16/10;order:-1}
  .cta-pause-actions{width:100%}
  .cta-pause-actions .btn-pill,
  .cta-pause-actions .btn-pill-ghost{
    width:100%;justify-content:center;
  }
}

/* activities: lede block */
.activities-lede{padding:clamp(56px,8vw,96px) 0;background:var(--paper)}
.activities-lede-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;max-width:1100px;margin:0 auto}
.activities-lede h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(36px,4.6vw,60px);letter-spacing:-0.02em;line-height:1.05;color:var(--ink)}
.activities-lede h2 em{color:var(--teal-deep);font-style:italic}
.activities-lede-prose{font-size:16px;line-height:1.75;color:var(--ink-soft)}
.activities-lede-prose p + p{margin-top:1.1em}
.activities-lede-prose strong{color:var(--ink);font-weight:600}
@media (max-width:900px){.activities-lede-inner{grid-template-columns:1fr;gap:24px}}

/* activities grid (12 cards) */
.activities-grid-section{padding:clamp(48px,8vw,96px) 0 clamp(72px,10vw,120px);background:var(--cream)}
.activities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.activity-card{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:6px;background:var(--cream-deep);display:flex;flex-direction:column;justify-content:flex-end;color:var(--paper);text-decoration:none;cursor:default;isolation:isolate}
.activity-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);z-index:0}
.activity-card:hover .activity-card-img{transform:scale(1.04)}
.activity-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,52,50,0) 35%,rgba(10,52,50,0.85) 100%);z-index:1;pointer-events:none}
.activity-card-body{position:relative;z-index:2;padding:28px;color:var(--paper)}
.activity-card-num{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.22em;color:rgba(244,236,221,0.7);margin-bottom:8px}
.activity-card h3{font-family:'Fraunces',serif;font-weight:400;font-size:22px;letter-spacing:-0.01em;line-height:1.2;color:var(--paper);margin-bottom:10px}
.activity-card p{font-size:13.5px;line-height:1.55;color:rgba(244,236,221,0.86);max-width:36ch}
.activity-card-meta{display:block;margin-top:14px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(244,236,221,0.62)}
@media (max-width:1040px){.activities-grid{grid-template-columns:repeat(2,1fr);gap:18px}}
@media (max-width:680px){.activities-grid{grid-template-columns:1fr}.activity-card{aspect-ratio:5/4}}

/* events / facilities / restaurant: sub-section block */
.story{padding:clamp(72px,10vw,120px) 0;background:var(--cream)}
.story.alt{background:var(--paper)}
.story-head{max-width:760px;margin:0 0 56px}
/* Two-column layout — eyebrow + h2 left, body right.
   Same editorial pattern as the restaurant blocks. Cleaner use of
   horizontal space than the default head-above-body stack. */
@media (min-width:900px){
  .story.is-grid > .container{
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:clamp(40px,5vw,96px);
    align-items:start;
    max-width:1280px;
  }
  .story.is-grid .story-head{margin-bottom:0;max-width:none}
  .story.is-grid .story-block p,
  .story.is-grid .story-block ul{max-width:none}
  /* is-right modifier — both head and block stack in the right column,
     leaving the left column as breathing whitespace. */
  .story.is-grid.is-right .story-head{grid-column:2;grid-row:1}
  .story.is-grid.is-right .story-block{grid-column:2;grid-row:2;margin-top:clamp(24px,3vw,40px)}
}

/* ============================================================
   Kill decorative italics + color accents on heading <em> tags
   sitewide. The <em> stays in markup for semantics; visually it
   renders as normal weight in the inherited colour.
   ============================================================ */
h1 em, h2 em, h3 em, h4 em{
  font-style:normal !important;
  color:inherit !important;
}
.story-head .eyebrow{margin-bottom:18px}
.story-head h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(40px,5.4vw,72px);letter-spacing:-0.02em;line-height:1;color:var(--ink);margin-bottom:24px}
.story-head h2 em{color:var(--teal-deep);font-style:italic}
.story-head p{font-size:16px;line-height:1.75;color:var(--ink-soft);max-width:580px}
.story-body{display:grid;grid-template-columns:1fr 1fr;gap:48px 64px;align-items:start}
.story-block h3{font-family:'Fraunces',serif;font-weight:400;font-size:24px;letter-spacing:-0.01em;line-height:1.2;color:var(--teal-deep);margin-bottom:14px}
.story-block p{font-size:15px;line-height:1.7;color:var(--ink-soft);max-width:50ch}
.story-block p + p{margin-top:0.9em}
.story-block ul{list-style:none;padding:0;margin-top:1em}
.story-block ul li{position:relative;padding-left:22px;margin-bottom:0.5em;font-size:14.5px;line-height:1.6;color:var(--ink-soft)}
.story-block ul li::before{content:'';position:absolute;left:0;top:11px;width:12px;height:1px;background:var(--teal)}
.story-figure{margin:0;border-radius:6px;overflow:hidden;aspect-ratio:4/3;background:var(--cream-deep)}
.story-figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.story-figure:hover img{transform:scale(1.03)}
.story-figure.wide{aspect-ratio:4/3}
@media (max-width:900px){.story-body{grid-template-columns:1fr;gap:32px}}

/* restaurant: dish list */
.dish-list{list-style:none;padding:0;margin:1.4em 0 0;border-top:1px solid var(--line)}
.dish-list li{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline}
.dish-list .dish-num{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--teal);letter-spacing:0.18em}
.dish-list .dish-text{font-family:'Fraunces',serif;font-size:18px;font-weight:400;letter-spacing:-0.005em;color:var(--ink);line-height:1.35}
.dish-list .dish-text em{color:var(--ink-soft);font-style:italic}

/* events: capacity figure */
.capacity-figure{margin-top:48px;display:flex;align-items:baseline;gap:18px;padding-top:32px;border-top:1px solid var(--line-strong)}
.capacity-figure-num{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(72px,10vw,128px);letter-spacing:-0.04em;line-height:1;color:var(--teal-deep)}
.capacity-figure-num em{color:var(--terracotta);font-style:italic}
.capacity-figure-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);max-width:160px;line-height:1.5}

/* =====================================
   Page: about-us cluster
   ===================================== */

/* about-us: principles grid (3 cards) */
.principles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}
.principle-card{padding:40px 32px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.principle-card .num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.2em;color:var(--teal);text-transform:uppercase}
.principle-card h3{font-family:'Fraunces',serif;font-weight:300;font-size:24px;line-height:1.2;letter-spacing:-0.012em;color:var(--ink);margin:18px 0 14px}
.principle-card h3 em{color:var(--terracotta);font-style:italic}
.principle-card p{font-size:14.5px;line-height:1.65;color:var(--ink-soft);margin:0}
@media (max-width:900px){.principles-grid{grid-template-columns:1fr;gap:20px}.principle-card{padding:32px 24px}}

/* our-land: figure-pair (two side-by-side images) and map block */
.figure-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
.figure-pair figure{margin:0;border-radius:6px;overflow:hidden;aspect-ratio:3/2;background:var(--cream-deep)}
.figure-pair img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.figure-pair figure:hover img{transform:scale(1.03)}
@media (max-width:780px){.figure-pair{grid-template-columns:1fr;gap:16px}}

.land-map{margin-top:64px;padding:48px;background:var(--paper);border:1px solid var(--line);border-radius:6px;display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.land-map figure{margin:0;border-radius:4px;overflow:hidden;background:var(--cream-deep)}
.land-map img{width:100%;height:auto;display:block}
.land-map .land-map-text h3{font-family:'Fraunces',serif;font-weight:300;font-size:28px;line-height:1.2;letter-spacing:-0.012em;color:var(--ink);margin:0 0 16px}
.land-map .land-map-text h3 em{color:var(--terracotta);font-style:italic}
.land-map .land-map-text p{font-size:15px;line-height:1.65;color:var(--ink-soft);margin:0}
@media (max-width:900px){.land-map{grid-template-columns:1fr;padding:32px 24px;gap:24px}}

/* our-land: stat strip (3 numbers) */
.land-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px;padding-top:48px;border-top:1px solid var(--line-strong);text-align:center;max-width:880px;margin-left:auto;margin-right:auto}
.land-stat .num{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(56px,7vw,96px);line-height:1;letter-spacing:-0.04em;color:var(--teal-deep)}
.land-stat .num em{color:var(--terracotta);font-style:italic}
.land-stat .label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-top:14px;line-height:1.5}
@media (max-width:780px){.land-stats{grid-template-columns:1fr;gap:24px;text-align:left}}

/* faq: extended max-height for long answers */
.faq-section--extended .faq-item.open .faq-body{max-height:1200px}
.faq-section--extended .faq-body-inner p{margin:0 0 0.8em}
.faq-section--extended .faq-body-inner p:last-child{margin-bottom:0}

/* faq: section grouping (visual rhythm for 17 questions) */
.faq-group{margin-top:64px}
.faq-group:first-of-type{margin-top:48px}
.faq-group-head{display:flex;align-items:baseline;gap:18px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line-strong)}
.faq-group-head .num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.2em;color:var(--teal);text-transform:uppercase}
.faq-group-head h3{font-family:'Fraunces',serif;font-weight:300;font-size:24px;letter-spacing:-0.012em;color:var(--ink);margin:0}

/* ============================================================
   CONTACT PAGE
   ============================================================ */

/* Channels grid: WhatsApp (primary) + email + address */
.channels-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:24px;margin-top:48px}
.channel-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:36px 32px;background:var(--paper);border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--ink);transition:transform 500ms var(--ease),border-color 500ms var(--ease),background 500ms var(--ease)}
.channel-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}
.channel-card .channel-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.2em;color:var(--teal);text-transform:uppercase;display:flex;align-items:center;gap:10px}
.channel-card .channel-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.channel-card .channel-icon svg{width:100%;height:100%;display:block}
.channel-card .channel-value{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(24px,2.6vw,32px);line-height:1.2;letter-spacing:-0.014em;color:var(--ink);margin:24px 0 8px;font-variant-numeric:lining-nums tabular-nums}
.channel-card .channel-value em{font-family:'Fraunces',serif;font-style:italic;font-weight:300;color:var(--terracotta);font-variant-numeric:lining-nums tabular-nums}
.channel-card .channel-value .channel-value-num{font-style:normal;color:var(--terracotta);font-variant-numeric:lining-nums tabular-nums}
.channel-card.is-primary .channel-value .channel-value-num{color:#e8a78b}

/* ============================================================
   MERCI PAGE — premium thank-you redesign.
   Body class .merci-page.
   Sections: hero (full-bleed video) → personal note → magazine
   essays → pull-quote → dark conversation panel → minimal footer.
   ============================================================ */
.merci-page{background:var(--paper)}
.merci-page .nav{position:fixed}

/* Hero — full viewport, video bg, centered content */
.merci-hero{
  position:relative;min-height:100vh;min-height:100dvh;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:
    linear-gradient(rgba(10,52,50,0.25), rgba(10,52,50,0.55)),
    var(--teal-deep) url('/assets/images/sumba/land-no-text-poster.webp') center / cover no-repeat;
  padding:140px 0 80px;
}
.merci-hero-video,.merci-hero-fallback{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;
}
.merci-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(ellipse 70% 55% at center, rgba(10,52,50,0.62) 0%, rgba(10,52,50,0.32) 45%, rgba(10,52,50,0.12) 75%, rgba(10,52,50,0) 100%),
    linear-gradient(180deg, rgba(10,52,50,0.18) 0%, rgba(10,52,50,0) 30%, rgba(10,52,50,0) 70%, rgba(10,52,50,0.4) 100%);
}
.merci-hero-inner{
  position:relative;z-index:2;
  max-width:1100px;margin:0 auto;padding:0 clamp(24px,5vw,64px);
  text-align:center;color:var(--paper);
}
.merci-chip{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px;
  border:1px solid rgba(244,236,221,0.32);
  border-radius:999px;
  background:rgba(244,236,221,0.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(244,236,221,0.92);
  margin-bottom:clamp(40px,7vw,72px);
}
.merci-chip-dot{
  width:7px;height:7px;border-radius:50%;
  background:#9ed3a3;flex-shrink:0;
  box-shadow:0 0 0 4px rgba(158,211,163,0.22);
  animation:merci-chip-pulse 2.6s var(--ease) infinite;
}
@keyframes merci-chip-pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(158,211,163,0.22)}
  50%{box-shadow:0 0 0 9px rgba(158,211,163,0)}
}
.merci-hero h1{
  font-family:'Fraunces',Georgia,serif;font-weight:300;
  font-size:clamp(96px,16vw,224px);
  line-height:0.92;letter-spacing:-0.04em;
  color:var(--paper);
  margin:0 0 clamp(28px,4vw,48px);
  text-shadow:0 4px 48px rgba(0,0,0,0.55), 0 2px 16px rgba(0,0,0,0.45);
}
.merci-hero h1 em{
  font-style:italic;font-weight:300;
  color:rgba(244,236,221,0.9);
}
.merci-hero-sub{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(20px,2.4vw,30px);
  line-height:1.4;letter-spacing:-0.005em;
  color:rgba(244,236,221,0.96);
  max-width:640px;margin:0 auto;
  text-wrap:balance;
  text-shadow:0 2px 24px rgba(0,0,0,0.5);
}

/* Personal note */
.merci-note{
  background:var(--cream);
  padding:clamp(96px,13vw,160px) 0;
  text-align:center;
}
.merci-note-inner{
  max-width:680px;margin:0 auto;
  padding:0 clamp(24px,5vw,32px);
}
.merci-note-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 clamp(28px,4vw,40px);
}
.merci-note p{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(20px,2.2vw,28px);
  line-height:1.5;letter-spacing:-0.005em;
  color:var(--ink);
  margin:0 0 1.1em;
  text-wrap:balance;
}
.merci-note p:last-of-type{margin-bottom:clamp(40px,5vw,56px)}
.merci-note-signature{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(22px,2.4vw,30px);
  color:var(--teal-deep);
  display:inline-block;
  border-top:1px solid var(--line);
  padding-top:clamp(18px,2.5vw,24px);
}
.merci-note-signature .merci-sig-meta{
  display:block;
  font-family:'JetBrains Mono',monospace;
  font-style:normal;
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--muted);
  margin-top:8px;
}

/* Magazine essay spread */
.merci-essays{
  background:var(--paper);
  padding:clamp(80px,11vw,140px) 0 clamp(40px,6vw,72px);
}
.merci-essays-head{
  max-width:1240px;margin:0 auto clamp(72px,10vw,120px);
  padding:0 clamp(24px,5vw,64px);
  text-align:center;
}
.merci-essays-head .eyebrow{
  display:inline-block;color:var(--teal-deep);
  margin-bottom:20px;
}
.merci-essays-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(40px,5.4vw,76px);
  line-height:1.02;letter-spacing:-0.025em;
  color:var(--ink);margin:0;
  text-wrap:balance;
}
.merci-essays-head h2 em{font-style:italic;color:var(--teal-deep)}
.merci-essay{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(40px,6vw,96px);
  align-items:center;
  max-width:1320px;margin:0 auto;
  padding:clamp(40px,6vw,80px) clamp(24px,5vw,64px);
}
.merci-essay + .merci-essay{
  border-top:1px solid var(--line);
}
.merci-essay-image{
  position:relative;overflow:hidden;
  aspect-ratio:4/5;
  background:var(--cream-deep);
}
.merci-essay-image img{
  width:100%;height:100%;
  object-fit:cover;display:block;
  transition:transform 1.2s var(--ease);
}
.merci-essay:hover .merci-essay-image img{transform:scale(1.03)}
.merci-essay-content{padding:clamp(8px,2vw,32px) 0}
.merci-essay-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 24px;
}
.merci-essay-title{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3.6vw,48px);
  line-height:1.08;letter-spacing:-0.022em;
  color:var(--ink);
  margin:0 0 24px;
  text-wrap:balance;
}
.merci-essay-excerpt{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(17px,1.7vw,21px);
  line-height:1.55;letter-spacing:-0.005em;
  color:var(--ink-soft);
  margin:0 0 32px;
}
.merci-essay-meta{
  display:flex;align-items:center;gap:24px;
  margin-bottom:32px;
}
.merci-essay-meta-item{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--muted);
}
.merci-essay-link{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Instrument Sans',sans-serif;
  font-size:14px;font-weight:500;letter-spacing:0.02em;
  color:var(--teal-deep);text-decoration:none;
  padding-bottom:6px;
  border-bottom:1px solid var(--teal-deep);
  transition:gap 400ms var(--ease),color 400ms var(--ease);
}
.merci-essay-link:hover{gap:14px;color:var(--ink)}
/* Alternate: even essays put image right */
.merci-essay:nth-child(even) .merci-essay-image{order:2}
.merci-essay:nth-child(even) .merci-essay-content{order:1}

/* Pull-quote interlude */
.merci-quote{
  background:var(--cream);
  padding:clamp(96px,14vw,180px) 0;
  text-align:center;
}
.merci-quote-inner{
  max-width:880px;margin:0 auto;
  padding:0 clamp(24px,5vw,32px);
}
.merci-quote-mark{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(80px,12vw,160px);line-height:0.5;
  color:var(--teal-deep);opacity:0.18;
  display:block;margin:0 0 8px;
  user-select:none;
}
.merci-quote p{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3.4vw,46px);
  line-height:1.2;letter-spacing:-0.018em;
  color:var(--ink);
  margin:0;
  text-wrap:balance;
}
.merci-quote p em{font-style:italic;color:var(--teal-deep)}
.merci-quote p .merci-quote-accent{font-style:normal;color:var(--teal-deep);font-variant-numeric:lining-nums}
.merci-quote cite{
  display:block;
  font-family:'JetBrains Mono',monospace;font-style:normal;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--muted);
  margin-top:clamp(28px,4vw,40px);
}

/* Dark conversation panel */
.merci-conversation{
  background:var(--teal-deep);
  color:var(--paper);
  padding:clamp(96px,13vw,160px) 0;
}
.merci-conv-head{
  max-width:880px;margin:0 auto clamp(56px,8vw,96px);
  padding:0 clamp(24px,5vw,64px);
  text-align:center;
}
.merci-conv-head .eyebrow{
  display:inline-block;color:rgba(244,236,221,0.55);
  margin-bottom:20px;
}
.merci-conv-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(40px,5.4vw,76px);
  line-height:1.02;letter-spacing:-0.025em;
  color:var(--paper);margin:0;
}
.merci-conv-head h2 em{font-style:italic;color:rgba(244,236,221,0.78)}
.merci-conv-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:clamp(20px,2.4vw,28px);
  max-width:1320px;margin:0 auto;
  padding:0 clamp(24px,5vw,64px);
}
.merci-conv-card{
  position:relative;
  display:flex;flex-direction:column;
  padding:clamp(32px,4vw,48px);
  background:rgba(244,236,221,0.04);
  border:1px solid rgba(244,236,221,0.12);
  border-radius:8px;
  text-decoration:none;
  color:var(--paper);
  transition:background 400ms var(--ease),border-color 400ms var(--ease),transform 400ms var(--ease);
  overflow:hidden;
  min-height:clamp(380px,42vw,460px);
}
.merci-conv-card:hover{
  background:rgba(244,236,221,0.08);
  border-color:rgba(244,236,221,0.22);
  transform:translateY(-4px);
}
.merci-conv-card.is-primary{
  background:linear-gradient(160deg,#1aa75d 0%,#128443 100%);
  border-color:transparent;
}
.merci-conv-card.is-primary:hover{
  background:linear-gradient(160deg,#1eb867 0%,#15914b 100%);
}
.merci-conv-card-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,236,221,0.7);
  margin-bottom:clamp(28px,4vw,40px);
}
.merci-conv-card.is-primary .merci-conv-card-eyebrow{color:rgba(244,236,221,0.85)}
.merci-conv-card-icon{
  width:18px;height:18px;display:inline-block;
}
.merci-conv-card-icon svg{width:100%;height:100%;display:block}
.merci-conv-card-title{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3.2vw,40px);
  line-height:1.08;letter-spacing:-0.018em;
  color:var(--paper);
  margin:0 0 16px;
  text-wrap:balance;
}
.merci-conv-card-title em{font-style:italic}
.merci-conv-card-body{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(16px,1.6vw,18px);
  line-height:1.5;
  color:rgba(244,236,221,0.78);
  margin:0;
  flex-grow:1;
}
.merci-conv-card.is-primary .merci-conv-card-body{color:rgba(244,236,221,0.92)}
.merci-conv-card-arrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Instrument Sans',sans-serif;
  font-size:13px;font-weight:500;letter-spacing:0.02em;
  color:var(--paper);
  margin-top:clamp(28px,4vw,36px);
  transition:gap 400ms var(--ease);
}
.merci-conv-card:hover .merci-conv-card-arrow{gap:12px}

/* WhatsApp card extras: phone display + meta list to balance with IG grid */
.merci-conv-wa-num{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3.4vw,42px);
  line-height:1;letter-spacing:-0.018em;
  color:var(--paper);
  margin:clamp(28px,3.5vw,36px) 0 clamp(20px,2.5vw,28px);
  font-variant-numeric:lining-nums tabular-nums;
}
.merci-conv-wa-num .num{color:rgba(244,236,221,0.78)}
.merci-conv-wa-meta{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(244,236,221,0.78);
}
.merci-conv-wa-meta li{
  display:flex;align-items:center;gap:10px;
  padding:8px 0;
  border-top:1px solid rgba(244,236,221,0.18);
}
.merci-conv-wa-meta li:last-child{
  border-bottom:1px solid rgba(244,236,221,0.18);
}
.merci-conv-wa-dot{
  width:7px;height:7px;border-radius:50%;
  background:#bff0c5;flex-shrink:0;
  box-shadow:0 0 0 4px rgba(191,240,197,0.18);
  animation:merci-chip-pulse 2.6s var(--ease) infinite;
}

/* Instagram peek inside the secondary card */
.merci-ig-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:6px;margin:clamp(24px,3vw,32px) 0 0;
}
.merci-ig-grid figure{
  margin:0;overflow:hidden;
  aspect-ratio:1/1;
  background:rgba(244,236,221,0.06);
}
.merci-ig-grid img{
  width:100%;height:100%;
  object-fit:cover;display:block;
  transition:transform 600ms var(--ease),opacity 600ms var(--ease);
}
.merci-conv-card:hover .merci-ig-grid img{transform:scale(1.04);opacity:0.94}

/* Minimal footer for merci page */
.merci-page .footer{padding:clamp(40px,6vw,72px) 0}
.merci-page .footer-top{display:none}
.merci-page .footer-bottom{
  border-top:none;padding-top:0;
  display:flex;justify-content:center;gap:clamp(24px,4vw,48px);
  flex-wrap:wrap;text-align:center;
}

/* Mobile */
@media (max-width:900px){
  .merci-hero h1{font-size:clamp(64px,18vw,128px)}
  .merci-essay{grid-template-columns:1fr;gap:32px;padding:clamp(40px,6vw,64px) 24px}
  .merci-essay:nth-child(even) .merci-essay-image{order:0}
  .merci-essay:nth-child(even) .merci-essay-content{order:1}
  .merci-essay-image{aspect-ratio:16/10}
  .merci-conv-grid{grid-template-columns:1fr;gap:12px}
  .merci-conv-card{min-height:auto}
}
.channel-card .channel-meta{font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin:0}
.channel-card .channel-arrow{margin-top:28px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--teal-deep);display:inline-flex;align-items:center;gap:8px}
.channel-card .channel-arrow span{transition:transform 500ms var(--ease)}
.channel-card:hover .channel-arrow span{transform:translateX(4px)}
.channel-card.is-primary{background:var(--teal-deep);border-color:transparent;color:var(--paper)}
.channel-card.is-primary .channel-eyebrow{color:rgba(244,236,221,0.7)}
.channel-card.is-primary .channel-value{color:var(--paper)}
.channel-card.is-primary .channel-value em{color:#e8a78b}
.channel-card.is-primary .channel-meta{color:rgba(244,236,221,0.78)}
.channel-card.is-primary .channel-arrow{color:var(--paper)}
.channel-card.is-primary:hover{background:#082826}
.channel-card.is-static{cursor:default}
.channel-card.is-static:hover{transform:none;border-color:var(--line)}
@media (max-width:980px){.channels-grid{grid-template-columns:1fr;gap:16px}.channel-card{padding:28px 24px}}

/* Brochure form: split layout (copy left, form right) */
.brochure-form{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;margin-top:48px;align-items:start}
.brochure-form .brochure-copy h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(32px,4vw,48px);line-height:1.1;letter-spacing:-0.018em;color:var(--ink);margin:14px 0 20px}
.brochure-form .brochure-copy h2 em{color:var(--terracotta);font-style:italic}
.brochure-form .brochure-copy p{font-size:15px;line-height:1.7;color:var(--ink-soft);margin:0 0 1em}
.brochure-form .brochure-copy p:last-child{margin-bottom:0}
.brochure-form .brochure-copy .copy-meta{margin-top:36px;padding-top:28px;border-top:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);line-height:1.7}
.brochure-form .brochure-copy .copy-meta strong{color:var(--ink);font-weight:500}

.contact-form{padding:40px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.form-row.single{grid-template-columns:1fr}
.form-field{display:flex;flex-direction:column}
.form-field label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.form-field input,.form-field select,.form-field textarea{font-family:'Instrument Sans',sans-serif;font-size:15px;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line-strong);padding:8px 0 12px;outline:none;border-radius:0;transition:border-color 300ms var(--ease)}
.form-field input::placeholder,.form-field textarea::placeholder{color:var(--muted);opacity:0.7}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-bottom-color:var(--teal-deep)}
.form-field textarea{resize:vertical;min-height:90px;line-height:1.55}

.form-fieldset{margin-top:22px;border:none;padding:0}
.form-fieldset legend{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;padding:0}
.form-options{display:flex;flex-wrap:wrap;gap:8px}
.form-option{position:relative}
.form-option input{position:absolute;opacity:0;pointer-events:none}
.form-option label{display:inline-block;padding:9px 16px;font-size:13.5px;color:var(--ink-soft);background:transparent;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;transition:all 300ms var(--ease);font-family:'Instrument Sans',sans-serif;letter-spacing:0;text-transform:none;margin:0}
.form-option input:checked + label{background:var(--teal-deep);color:var(--paper);border-color:var(--teal-deep)}
.form-option label:hover{border-color:var(--ink-soft)}
.form-option input:focus-visible + label{outline:2px solid var(--teal-deep);outline-offset:2px}

.form-consent{margin-top:24px;display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.form-consent input[type=checkbox]{margin-top:3px;accent-color:var(--teal-deep)}

.form-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.form-actions .btn-pill{cursor:pointer;border:none;font-family:inherit}
.form-actions .form-or{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted)}

@media (max-width:980px){.brochure-form{grid-template-columns:1fr;gap:40px}.contact-form{padding:28px 24px}.form-row{grid-template-columns:1fr}}

/* Tiny inline contact bar (under channels) */
.contact-bar{display:flex;flex-wrap:wrap;gap:32px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted)}
.contact-bar a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-strong);padding-bottom:1px}
.contact-bar a:hover{color:var(--teal-deep);border-bottom-color:var(--teal-deep)}

/* ==== Shared form: invalid feedback + success state (used by contact page form and homepage brochure form) ==== */
.form-field input.is-invalid{border-bottom-color:var(--terracotta)}
.form-field .form-error{display:none;font-size:11px;color:var(--terracotta);margin-top:6px;letter-spacing:0.02em}
.form-field input.is-invalid + .form-error{display:block}
.form-fieldset.is-invalid legend{color:var(--terracotta)}
.form-fieldset.is-invalid .form-option label{border-color:rgba(184,92,60,0.55)}
.form-consent.is-invalid{color:var(--terracotta)}
.form-consent.is-invalid input[type="checkbox"]{outline:1px solid var(--terracotta);outline-offset:1px}
.form-message{display:none;font-size:13px;line-height:1.5;margin-top:18px;padding:12px 16px;border-radius:6px}
.form-message.is-error{display:block;color:var(--terracotta);background:rgba(184,92,60,0.08)}
.form-message.is-success{display:block;color:var(--teal-deep);background:rgba(0,82,87,0.08);font-weight:500}
.contact-form.is-submitted .form-row,
.contact-form.is-submitted .form-fieldset,
.contact-form.is-submitted .form-consent,
.contact-form.is-submitted .form-actions{display:none}
.contact-form.is-submitted .form-message{margin-top:0;padding:24px;text-align:center;font-size:15px}

/* ============================================================
   WHATSAPP FLOATING BUTTON (sitewide)
   ============================================================ */
.wa-float{
  position:fixed;
  bottom:24px;right:24px;
  width:56px;height:56px;
  border-radius:999px;
  background:#25D366;
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.15);
  z-index:70;
  transition:transform 320ms cubic-bezier(0.32,0.72,0,1),box-shadow 320ms cubic-bezier(0.32,0.72,0,1);
  text-decoration:none;
}
.wa-float svg{width:28px;height:28px;display:block;fill:currentColor}
.wa-float:hover,.wa-float:focus-visible{
  transform:scale(1.05);
  box-shadow:0 14px 36px rgba(0,0,0,0.22);
  outline:none;
}
.wa-float:focus-visible{box-shadow:0 14px 36px rgba(0,0,0,0.22),0 0 0 3px rgba(37,211,102,0.4)}
@media (max-width:560px){
  .wa-float{
    width:52px;height:52px;
    bottom:16px;right:16px;
  }
  .wa-float svg{width:26px;height:26px}
}

/* ============================================================
   Generic 4-up fact grid — Fraunces 300 number + JetBrains Mono
   uppercase label. Same pattern as the homepage's team-facts but
   reusable across pages.
   ============================================================ */
.fact-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
  margin-top:48px;
}
.fact-cell{
  padding:40px 32px;
  border-right:1px solid var(--line);
}
.fact-cell:last-child{border-right:none}
.fact-num{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(56px,7vw,88px);
  letter-spacing:-0.035em;line-height:0.95;
  color:var(--teal-deep);margin-bottom:20px;
}
.fact-num .unit{
  font-size:0.38em;color:var(--muted);margin-left:4px;
  letter-spacing:0;font-weight:300;
}
.fact-label{
  font-size:11px;text-transform:uppercase;letter-spacing:0.2em;
  color:var(--muted);line-height:1.6;
}
/* Compact modifier — for secondary fact strips (e.g. flight stats) */
.fact-grid.is-compact .fact-cell{padding:24px 24px}
.fact-grid.is-compact .fact-num{
  font-size:clamp(36px,4.4vw,52px);
  margin-bottom:10px;
}
.fact-grid.is-compact .fact-label{font-size:10.5px;letter-spacing:0.18em}

/* ============================================================
   Discover/learn cards — image tile with gradient overlay,
   Fraunces title bottom-left + circular arrow bottom-right.
   Same pattern as homepage. Reusable across pages.
   ============================================================ */
.learn-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(12px,1.2vw,20px);
  margin-top:48px;
}
.learn-card{
  position:relative;display:block;
  aspect-ratio:3/4.4;
  border-radius:8px;overflow:hidden;
  text-decoration:none;color:var(--paper);
  background:var(--teal-deep);
  isolation:isolate;
}
.learn-card-image{position:absolute;inset:0;overflow:hidden}
.learn-card-image img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.4s cubic-bezier(0.32,0.72,0,1);
}
.learn-card:hover .learn-card-image img{transform:scale(1.08)}
.learn-card::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(10,52,50,0) 0%,
    rgba(10,52,50,0.1) 35%,
    rgba(10,52,50,0.55) 65%,
    rgba(10,52,50,0.92) 100%);
  z-index:1;
  transition:background 600ms cubic-bezier(0.32,0.72,0,1);
}
.learn-card:hover::after{
  background:linear-gradient(180deg,
    rgba(10,52,50,0.05) 0%,
    rgba(10,52,50,0.2) 35%,
    rgba(10,52,50,0.7) 65%,
    rgba(10,52,50,0.96) 100%);
}
.learn-card-arrow{
  width:44px;height:44px;border-radius:999px;
  border:1px solid rgba(244,236,221,0.35);
  background:rgba(244,236,221,0.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--paper);
  transition:all 500ms cubic-bezier(0.32,0.72,0,1);
}
.learn-card:hover .learn-card-arrow{
  background:var(--paper);color:var(--teal-deep);
  border-color:var(--paper);
  transform:translate(4px,-4px);
}
.learn-card-overlay{
  position:absolute;
  left:clamp(24px,2.5vw,32px);
  right:clamp(24px,2.5vw,32px);
  bottom:clamp(28px,3vw,40px);
  z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;
}
.learn-card-title{
  font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(26px,2.8vw,38px);
  line-height:1;letter-spacing:-0.02em;
  color:var(--paper);
}
@media (max-width:1100px){
  .learn-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .learn-card{aspect-ratio:4/5}
}
@media (max-width:560px){
  .learn-grid{grid-template-columns:1fr}
  .learn-card{aspect-ratio:16/11}
  .learn-card:hover .learn-card-image img{transform:none}
  .learn-card:hover .learn-card-arrow{transform:none}
}
@media (max-width:900px){
  .fact-grid{grid-template-columns:1fr 1fr}
  .fact-cell{padding:28px 24px;border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
  .fact-cell:nth-child(2n){border-right:none!important}
  .fact-cell:nth-last-child(-n+2){border-bottom:none!important}
  .fact-num{font-size:clamp(40px,8vw,56px)!important;margin-bottom:14px}
}

/* ============================================================
   Image / video break — wide editorial strip used between text
   sections on multi-section pages (our-land, sustainability,
   restaurant). Same pattern as the homepage midstrip but reusable.
   ============================================================ */
.image-break{
  padding:0 0 clamp(40px,5vw,72px);
}
.image-break.is-cream{background:var(--cream)}
.image-break.is-paper{background:var(--paper)}
.image-break-inner{
  max-width:1440px;margin:0 auto;
  padding:0 clamp(24px,5vw,64px);
}
.image-break-figure{
  margin:0;
  aspect-ratio:21/9;
  overflow:hidden;
  background:var(--cream-deep);
  border-radius:8px;
  position:relative;
}
.image-break-figure img,
.image-break-figure video{
  width:100%;height:100%;object-fit:cover;display:block;
}
@media (max-width:560px){
  .image-break-figure{aspect-ratio:16/10}
}
/* image-break with a lead element above the figure (stats, caption, etc.).
   Used on /our-land/ where the land-stats sit just above the aerial video.
   Bottom padding comes from the base .image-break rule. */
.image-break.has-lead .image-break-lead{margin:0 auto clamp(28px,4vw,48px)}
.image-break.has-lead .land-stats{margin-top:0;padding-top:0;border-top:none}

/* ============================================================
   discover-sumba: feature highlight cards (4 image + caption tiles
   at the bottom of the page — non-clickable, descriptive).
   ============================================================ */
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2vw,32px)}
@media (max-width:980px){.feature-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.feature-grid{grid-template-columns:1fr}}
.feature-card{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line)}
.feature-card-img{aspect-ratio:4/3;overflow:hidden;background:var(--cream-deep)}
.feature-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.feature-card-body{padding:clamp(24px,3vw,32px)}
.feature-card-body h3{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(20px,2vw,24px);letter-spacing:-0.012em;line-height:1.2;color:var(--ink);margin:0 0 14px}
.feature-card-body p{font-family:'Instrument Sans',sans-serif;font-size:14.5px;line-height:1.65;color:var(--ink-soft);margin:0}

/* ============================================================
   discover-sumba: fact sheet (How to reach / When to visit)
   ============================================================ */
.fact-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3vw,48px)}
@media (max-width:780px){.fact-sheet-grid{grid-template-columns:1fr}}
.fact-sheet-card{background:var(--paper);padding:clamp(32px,4vw,56px);border:1px solid var(--line)}
.fact-sheet-card h3{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(22px,2.4vw,28px);letter-spacing:-0.012em;color:var(--ink);margin:0 0 14px}
.fact-sheet-card > p{font-family:'Instrument Sans',sans-serif;font-size:16px;line-height:1.65;color:var(--ink-soft);margin:0 0 28px;max-width:none}
.fact-list{margin:0;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:24px}
.fact-list > div{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.fact-list dt{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);margin:0}
.fact-list dd{font-family:'Instrument Sans',sans-serif;font-size:15px;color:var(--ink);margin:0;text-align:right}

/* ============================================================
   Blog index — hero, filter bar, post grid, empty state.
   Replaces the older .featured / .grid-section / .list-section
   pattern. All filter/sort happens client-side via inline script
   on /blog/index.html.
   ============================================================ */
/* (Hero on /blog/ now uses the standard sitewide .hero pattern with
   .hero-bg / .hero-overlay / .hero-inner — no blog-specific overrides
   needed. Intro paragraph below the hero uses .overview / .overview-head.) */

.blog-filter{padding:18px 0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.blog-filter-inner{display:flex;flex-wrap:wrap;gap:24px 32px;justify-content:space-between;align-items:center}
.blog-filter-cats{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.blog-filter-label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.cat-chip{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:1px solid var(--line-strong);padding:9px 16px;border-radius:99px;cursor:pointer;transition:color 200ms var(--ease),background 200ms var(--ease),border-color 200ms var(--ease)}
.cat-chip:hover{color:var(--ink);border-color:var(--ink-soft)}
.cat-chip.is-active{color:var(--paper);background:var(--teal-deep);border-color:var(--teal-deep)}
.cat-chip-count{margin-left:6px;opacity:0.55;font-feature-settings:'tnum'}
.blog-sort{display:flex;align-items:center;gap:10px}
.blog-sort-select{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink);background:transparent;border:1px solid var(--line-strong);padding:9px 36px 9px 16px;border-radius:99px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%231a1f1e' stroke-width='1.3' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.blog-sort-select:hover{border-color:var(--ink-soft)}

.post-grid-section{padding:clamp(64px,8vw,100px) 0 clamp(80px,10vw,120px);background:var(--cream)}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:clamp(24px,2.5vw,40px);row-gap:clamp(48px,5vw,72px)}
@media (max-width:980px){.post-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.post-grid{grid-template-columns:1fr}}

.post-card{display:flex}
.post-card.is-hidden{display:none}
.post-card-link{display:flex;flex-direction:column;width:100%;text-decoration:none;color:inherit}
.post-card-img{aspect-ratio:16/10;overflow:hidden;border-radius:6px;background:var(--cream-deep);margin-bottom:24px}
.post-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 600ms var(--ease)}
.post-card-link:hover .post-card-img img{transform:scale(1.04)}
.post-card-cat{display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:14px}
.post-card-title{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(20px,1.8vw,24px);letter-spacing:-0.014em;line-height:1.22;color:var(--ink);margin:0 0 12px;transition:color 200ms var(--ease)}
.post-card-link:hover .post-card-title{color:var(--teal-deep)}
.post-card-excerpt{font-family:'Instrument Sans',sans-serif;font-size:14.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-card-meta{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);margin-top:auto;padding-top:6px}
.post-card-dot{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--muted);opacity:0.5}

.blog-empty{grid-column:1/-1;text-align:center;padding:clamp(48px,6vw,80px) 24px;font-family:'Fraunces',serif;font-weight:300;color:var(--ink-soft)}
.blog-empty p{font-size:clamp(18px,2vw,22px);line-height:1.4;margin:0 0 24px;max-width:none}
.blog-empty .btn-pill-ghost{display:inline-flex}

/* ============================================================
   Thank-you page — confirmation hero + 2-card "Kabisu Difference"
   block. Tight scope, only used on /thank-you/index.html.
   ============================================================ */
.thanks-hero{
  padding:clamp(120px,18vw,200px) 0 clamp(80px,12vw,140px);
  background:var(--paper);
  text-align:center;
}
.thanks-hero-inner{max-width:760px;margin:0 auto}

.thanks-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  margin:0 0 32px;
}
.thanks-eyebrow-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;
  background:var(--teal-deep);color:var(--paper);
  flex-shrink:0;
}
.thanks-eyebrow-mark svg{width:14px;height:14px;display:block}
.thanks-eyebrow-text{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
}

.thanks-h-primary{margin:0 0 24px}
.thanks-h-primary em{color:inherit;font-style:italic}
.thanks-h-secondary{
  font-family:'Fraunces',serif;font-weight:300;font-style:italic;
  font-size:clamp(20px,2.4vw,28px);line-height:1.35;letter-spacing:-0.012em;
  color:var(--ink-soft);margin:0 0 48px;
}
.thanks-h-secondary em{font-style:italic}

.thanks-wa-cta{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Instrument Sans',sans-serif;font-weight:500;
  font-size:16px;letter-spacing:-0.005em;
  color:#fff;background:#25D366;
  padding:18px 36px;border-radius:99px;
  text-decoration:none;
  margin-bottom:36px;
  transition:background 200ms var(--ease),transform 200ms var(--ease);
}
.thanks-wa-cta:hover{background:#1FB055;transform:translateY(-1px)}
.thanks-wa-icon{width:20px;height:20px;flex-shrink:0;color:#fff}
.thanks-fallback{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(15px,1.4vw,17px);line-height:1.55;
  color:var(--ink-soft);margin:0;
}
.thanks-fallback a{
  color:var(--teal-deep);text-decoration:none;font-style:italic;font-weight:500;
  border-bottom:1px solid rgba(10,52,50,0.35);
  transition:border-color 200ms var(--ease);
  padding-bottom:1px;
}
.thanks-fallback a:hover{border-bottom-color:var(--teal-deep)}

.thanks-difference{
  padding:clamp(80px,12vw,140px) 0;
  background:var(--cream);
}
.thanks-diff-head{margin:0 0 clamp(48px,6vw,72px);max-width:760px}
.thanks-diff-head h2{margin:0}
.thanks-diff-head h2 em{color:var(--teal-deep);font-style:italic}

.thanks-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,3vw,48px)}
@media (max-width:780px){.thanks-cards{grid-template-columns:1fr;gap:clamp(32px,5vw,48px)}}
.thanks-card{display:flex}
.thanks-card-link{
  display:flex;flex-direction:column;width:100%;
  text-decoration:none;color:inherit;
}
.thanks-card-img{
  aspect-ratio:16/9;overflow:hidden;border-radius:6px;
  background:var(--cream-deep);margin-bottom:24px;
}
.thanks-card-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 600ms var(--ease);
}
.thanks-card-link:hover .thanks-card-img img{transform:scale(1.04)}
.thanks-card-body{display:flex;flex-direction:column;gap:14px}
.thanks-card-title{
  font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(22px,2.2vw,28px);letter-spacing:-0.014em;line-height:1.22;
  color:var(--ink);margin:0;
  transition:color 200ms var(--ease);
}
.thanks-card-link:hover .thanks-card-title{color:var(--teal-deep)}
.thanks-card-arrow{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--teal-deep);
  display:inline-flex;align-items:center;gap:6px;
}

/* ============================================================
   Facilities page — numbered editorial sections.
   Extracted from /the-facilities/index.html inline <style>.
   Same pattern as the events page: small mono eyebrow + Fraunces
   h2 in the left column, body content in the right column.
   ============================================================ */
.fac-block{
  padding:clamp(80px,10vw,140px) 0;
  border-top:1px solid var(--line);
}
.fac-block.is-cream{background:var(--cream)}
.fac-block.is-paper{background:var(--paper)}
.fac-block-inner{
  display:grid;grid-template-columns:1fr 1.4fr;
  gap:clamp(40px,6vw,96px);
  align-items:start;
  max-width:1280px;
}
.fac-block-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 24px;
}
.fac-block h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(40px,4.8vw,72px);
  line-height:1;letter-spacing:-0.025em;
  color:var(--ink);
  margin:0;
}
.fac-block-body p{
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
  margin:0 0 1.1em;
  max-width:60ch;
}
.fac-block-body p:last-child{margin-bottom:0}
.fac-block-body strong{color:var(--ink);font-weight:500}
.fac-block-body ul{
  list-style:none;padding:0;margin:24px 0 0;
  display:flex;flex-direction:column;gap:8px;
}
.fac-block-body li{
  font-size:15px;line-height:1.55;
  color:var(--ink-soft);
  padding-left:18px;position:relative;
}
.fac-block-body li::before{
  content:'';position:absolute;left:0;top:0.7em;
  width:8px;height:1px;background:var(--muted);
}
.fac-block-body a.fac-block-link{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:20px;
  font-family:'Instrument Sans',sans-serif;
  font-size:14px;font-weight:500;letter-spacing:0.005em;
  color:var(--teal-deep);
  text-decoration:none;
  border-bottom:1px solid var(--teal-deep);
  padding:6px 0;
  transition:gap 240ms ease;
}
.fac-block-body a.fac-block-link:hover{gap:12px}
.fac-quote{
  background:var(--cream);
  padding:clamp(96px,12vw,160px) 0;
  text-align:center;
}
.fac-quote-inner{
  max-width:760px;margin:0 auto;
  padding:0 clamp(20px,3vw,32px);
}
.fac-quote p{
  font-family:'Fraunces',serif;font-style:normal;font-weight:300;
  font-size:clamp(24px,2.6vw,34px);
  line-height:1.45;letter-spacing:-0.012em;
  color:var(--ink);
  margin:0;
  text-wrap:balance;
}
.fac-quote p + p{margin-top:0.8em}
.fac-quote p em{font-style:italic;font-weight:300}
@media (max-width:900px){
  .fac-block-inner{grid-template-columns:1fr;gap:32px}
}

/* ============================================================
   Restaurant page — numbered editorial sections matching the
   events / facilities pattern, with a contained image inside
   each block body. Extracted from /the-restaurant/ inline <style>.
   ============================================================ */
.rest-preamble{
  background:var(--paper);
  padding:clamp(72px,9vw,120px) 0;
}
.rest-preamble-inner{
  max-width:760px;margin:0 auto;
  padding:0 clamp(20px,3vw,32px);
  text-align:center;
}
.rest-preamble-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 24px;
}
.rest-preamble h2{
  font-family:'Fraunces',Georgia,serif;
  font-optical-sizing:auto;
  font-weight:300;
  font-size:clamp(28px,3.2vw,44px);
  line-height:1.12;letter-spacing:-0.018em;
  color:var(--ink);
  margin:0 0 28px;
  text-wrap:balance;
}
.rest-preamble h2 em{font-style:italic;font-weight:300;color:var(--teal-deep)}
.rest-preamble p{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(20px,2vw,26px);
  line-height:1.5;letter-spacing:-0.005em;
  color:var(--ink);
  margin:0 0 0.9em;
  text-wrap:balance;
}
.rest-preamble p:last-child{margin-bottom:0}
.rest-block{
  padding:clamp(80px,10vw,140px) 0;
  border-top:1px solid var(--line);
}
.rest-block.is-cream{background:var(--cream)}
.rest-block.is-paper{background:var(--paper)}
.rest-block-inner{
  display:grid;grid-template-columns:1fr 1.4fr;
  gap:clamp(40px,6vw,96px);
  align-items:start;
  max-width:1280px;
}
.rest-block-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 24px;
}
.rest-block h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(40px,4.8vw,72px);
  line-height:1;letter-spacing:-0.025em;
  color:var(--ink);
  margin:0;
}
.rest-block-body p{
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
  margin:0 0 1.1em;
  max-width:60ch;
}
.rest-block-body p:last-child{margin-bottom:0}
.rest-block-body strong{color:var(--ink);font-weight:500}
.rest-block-body ul{
  list-style:none;padding:0;margin:24px 0 0;
  display:flex;flex-direction:column;gap:8px;
}
.rest-block-body li{
  font-size:15px;line-height:1.55;
  color:var(--ink-soft);
  padding-left:18px;position:relative;
}
.rest-block-body li::before{
  content:'';position:absolute;left:0;top:0.7em;
  width:8px;height:1px;background:var(--muted);
}
.rest-break{
  background:var(--paper);
  padding:0;
}
.rest-break.is-cream{background:var(--cream)}
.rest-break-inner{
  max-width:1400px;margin:0 auto;
  padding:0 clamp(20px,3vw,32px);
}
.rest-break-figure{
  margin:0;
  aspect-ratio:21/9;
  overflow:hidden;
  background:var(--cream-deep);
  border-radius:8px;
}
.rest-break-figure img{
  width:100%;height:100%;object-fit:cover;display:block;
}
@media (max-width:560px){
  .rest-break-figure{aspect-ratio:16/10}
}
@media (max-width:900px){
  .rest-block-inner{grid-template-columns:1fr;gap:32px}
}

/* ============================================================
   Events page — typography-driven editorial. Three numbered
   sections with mono detail strips. Extracted from
   /events-kabisu-sumba/ inline <style>.
   ============================================================ */
.evt-hero{
  background:var(--paper);
  padding:clamp(140px,18vh,220px) 0 clamp(80px,10vw,140px);
}
.evt-hero-inner{max-width:980px}
.evt-hero-tag{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 32px;
}
.evt-hero h1{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(56px,8.5vw,128px);
  line-height:0.98;letter-spacing:-0.03em;
  color:var(--ink);
  margin:0 0 28px;
}
.evt-hero-lede{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(20px,2vw,26px);
  line-height:1.5;letter-spacing:-0.005em;
  color:var(--ink-soft);
  max-width:740px;margin:0;
}
.evt-block{
  padding:clamp(80px,10vw,140px) 0;
  border-top:1px solid var(--line);
}
.evt-block.is-cream{background:var(--cream)}
.evt-block.is-paper{background:var(--paper)}
.evt-block-inner{
  display:grid;grid-template-columns:1fr 1.4fr;
  gap:clamp(40px,6vw,96px);
  align-items:start;
  max-width:1280px;
}
.evt-block-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--teal-deep);
  margin:0 0 24px;
}
.evt-block h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(40px,4.8vw,72px);
  line-height:1;letter-spacing:-0.025em;
  color:var(--ink);
  margin:0;
}
.evt-block-body p{
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
  margin:0 0 1.1em;
  max-width:60ch;
}
.evt-block-body p:last-child{margin-bottom:0}
.evt-block-body strong{color:var(--ink);font-weight:500}
.evt-block-body ul{
  list-style:none;padding:0;margin:24px 0 0;
  display:flex;flex-direction:column;gap:8px;
}
.evt-block-body li{
  font-size:15px;line-height:1.55;
  color:var(--ink-soft);
  padding-left:18px;position:relative;
}
.evt-block-body li::before{
  content:'';position:absolute;left:0;top:0.7em;
  width:8px;height:1px;background:var(--muted);
}
.evt-detail{
  display:grid;grid-template-columns:1fr 1fr;
  gap:24px 48px;
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.evt-detail-cell{
  display:flex;flex-direction:column;gap:6px;
}
.evt-detail-key{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--muted);
}
.evt-detail-val{
  font-family:'JetBrains Mono',monospace;
  font-size:13px;letter-spacing:0.06em;
  color:var(--ink);
}
.evt-quote{
  background:var(--cream);
  padding:clamp(96px,12vw,160px) 0;
  text-align:center;
}
.evt-quote-inner{
  max-width:760px;margin:0 auto;
  padding:0 clamp(20px,3vw,32px);
}
.evt-quote p{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(24px,2.6vw,34px);
  line-height:1.45;letter-spacing:-0.005em;
  color:var(--ink);
  margin:0;
}
@media (max-width:900px){
  .evt-block-inner{grid-template-columns:1fr;gap:32px}
  .evt-detail{grid-template-columns:1fr;gap:16px}
}

/* ============================================================
   Investment page — full editorial system. Extracted from
   /investment/ inline <style>. Sections: hero, opportunity,
   pillars, pool system, paths, team, roadmap, brochure form.
   All rules are scoped to .invest-hero / .opportunity / .pillars
   / .pool-* / .paths / .invest-team / .invest-roadmap /
   .invest-brochure so they don't leak to other pages.
   ============================================================ */

/* HERO — full-bleed dark image with gradient + overlay */
.invest-hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;
  padding:140px 0 80px;
  overflow:hidden;
  background:var(--teal-deep);
}
.invest-hero .hero-bg{
  position:absolute;inset:0;
  background-image:url('/assets/images/villas/kabisu-day-06-1280.webp');
  background-image:image-set(
    url('/assets/images/villas/kabisu-day-06-800.webp') 1x,
    url('/assets/images/villas/kabisu-day-06-1280.webp') 1.5x,
    url('/assets/images/villas/kabisu-day-06.webp') 2x
  );
  background-size:cover;
  background-position:center;
  z-index:0;
}
.invest-hero .hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(140deg,
    rgba(10,52,50,0.65) 0%,
    rgba(10,52,50,0.35) 45%,
    rgba(10,52,50,0.55) 100%);
  z-index:1;
}
.invest-hero .hero-inner{
  position:relative;z-index:2;
  max-width:1100px;width:100%;
  display:flex;flex-direction:column;align-items:flex-start;
  gap:28px;text-align:left;
}
.invest-hero .hero-top{
  display:flex;justify-content:space-between;width:100%;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(244,236,221,0.78);
}
.invest-hero .hero-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px 8px 14px;
  background:rgba(10,52,50,0.4);
  border:1px solid rgba(244,236,221,0.25);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-radius:999px;
}
.invest-hero .hero-badge-dot{
  width:8px;height:8px;border-radius:50%;
  background:#d4845a;
  position:relative;flex-shrink:0;
}
.invest-hero .hero-badge-dot::before{
  content:'';position:absolute;inset:-4px;
  border-radius:50%;
  background:#d4845a;
  opacity:0.4;
  animation:invest-hero-pulse 2.4s ease-in-out infinite;
}
@keyframes invest-hero-pulse{
  0%,100%{transform:scale(1);opacity:0.4}
  50%{transform:scale(1.6);opacity:0}
}
.invest-hero .hero-badge-text{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(244,236,221,0.95);
  line-height:1;
}
.invest-hero h1.display{
  color:var(--paper);
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(48px,7vw,104px);
  line-height:1.0;letter-spacing:-0.025em;
  margin:0;
  text-shadow:0 2px 24px rgba(0,0,0,0.25);
  max-width:920px;
}
.invest-hero .hero-sub{
  color:rgba(244,236,221,0.92);
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(18px,1.8vw,22px);
  line-height:1.55;
  max-width:620px;
  margin:0;
  text-shadow:0 1px 12px rgba(0,0,0,0.3);
}
.invest-hero .hero-meta{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;
  margin-top:24px;
  border-top:1px solid rgba(244,236,221,0.22);
  border-bottom:1px solid rgba(244,236,221,0.22);
}
.invest-hero .hero-meta-cell{
  padding:24px 28px 24px 0;
  border-right:1px solid rgba(244,236,221,0.18);
}
.invest-hero .hero-meta-cell:last-child{border-right:none}
.invest-hero .hero-meta-cell:not(:first-child){padding-left:28px}
.invest-hero .hero-meta-value{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3vw,42px);
  letter-spacing:-0.02em;line-height:1;
  color:var(--paper);
  margin-bottom:10px;
}
.invest-hero .hero-meta-value .unit{
  font-size:0.5em;color:rgba(244,236,221,0.6);
  margin-left:3px;letter-spacing:0;
}
.invest-hero .hero-meta-label{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(244,236,221,0.7);
  line-height:1.5;
}
@media (max-width:780px){
  .invest-hero{min-height:100vh;min-height:100dvh;padding:100px 0 48px}
  .invest-hero .hero-meta{grid-template-columns:1fr}
  .invest-hero .hero-meta-cell{
    border-right:none;
    border-bottom:1px solid rgba(244,236,221,0.18);
    padding:20px 0!important;
  }
  .invest-hero .hero-meta-cell:last-child{border-bottom:none}
}

/* OPPORTUNITY — cream intro section */
.opportunity{
  background:var(--cream);
  padding:clamp(80px,12vw,140px) 0;
}
.opportunity-head{
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:clamp(40px,6vw,96px);
  align-items:start;
  max-width:1280px;
  margin:0 auto;
}
.opportunity-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,64px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:16px 0 0;
}
.opportunity-body p{
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
  margin:0 0 1.2em;
}
.opportunity-body p:last-child{margin-bottom:0}
.opportunity-body strong{color:var(--ink);font-weight:500}
@media (max-width:900px){
  .opportunity-head{grid-template-columns:1fr;gap:24px}
}

/* PILLARS — 6-up grid on paper */
.pillars{
  background:var(--paper);
  padding:clamp(80px,12vw,140px) 0;
}
.pillars-head{
  margin-bottom:clamp(48px,6vw,72px);
  max-width:780px;
}
.pillars-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,64px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:16px 0 0;
}
.pillars-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
}
.pillar{
  padding:clamp(36px,4vw,56px) clamp(24px,3vw,40px);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:16px;
}
.pillar:nth-child(1),
.pillar:nth-child(2),
.pillar:nth-child(3){
  border-bottom:1px solid var(--line);
}
.pillar:nth-child(3),
.pillar:nth-child(6){
  border-right:none;
}
.pillar-num{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.pillar h3{
  font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(22px,2.2vw,28px);
  line-height:1.15;letter-spacing:-0.015em;
  color:var(--ink);
  margin:0;
}
.pillar p{
  font-size:15px;line-height:1.65;
  color:var(--ink-soft);
  margin:0;
}
@media (max-width:900px){
  .pillars-grid{grid-template-columns:1fr 1fr}
  .pillar{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
  .pillar:nth-child(2n){border-right:none!important}
  .pillar:nth-last-child(-n+2){border-bottom:none!important}
}
@media (max-width:560px){
  .pillars-grid{grid-template-columns:1fr}
  .pillar{border-right:none!important;border-bottom:1px solid var(--line)!important;padding:32px 24px!important}
  .pillar:last-child{border-bottom:none!important}
}

/* POOL — pool system on cream */
.pool-system{
  background:var(--cream);
  padding:clamp(80px,12vw,140px) 0;
}
.pool-head{
  display:grid;grid-template-columns:1fr 1.1fr;
  gap:clamp(40px,6vw,96px);
  align-items:start;
  margin-bottom:clamp(56px,7vw,80px);
}
.pool-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,64px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:16px 0 0;
}
.pool-head .pool-lede{
  max-width:560px;
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
}
.pool-head .pool-lede p{margin:0 0 1.2em}
.pool-head .pool-lede p:last-child{margin-bottom:0}
.pool-head .pool-lede strong{color:var(--ink);font-weight:500}
.pool-features{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
  margin-bottom:clamp(48px,6vw,72px);
}
.pool-feature{
  padding:clamp(36px,4vw,52px) clamp(24px,2.5vw,36px);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:18px;
}
.pool-feature:last-child{border-right:none}
.pool-feature-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;
  color:var(--teal-deep);
  margin-bottom:4px;
}
.pool-feature-icon svg{width:100%;height:100%;display:block}
.pool-feature-num{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.pool-feature h3{
  font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(20px,1.85vw,24px);
  line-height:1.2;letter-spacing:-0.015em;
  color:var(--ink);margin:0;
  min-height:2.4em;
}
@media (max-width:900px){
  .pool-feature h3{min-height:0}
}
.pool-feature p{
  font-size:14.5px;line-height:1.65;
  color:var(--ink-soft);margin:0;
}
@media (max-width:900px){
  .pool-head{grid-template-columns:1fr;gap:24px}
  .pool-features{grid-template-columns:repeat(2,1fr)}
  .pool-feature{
    border-right:1px solid var(--line)!important;
    border-bottom:1px solid var(--line)!important;
  }
  .pool-feature:nth-child(2n){border-right:none!important}
  .pool-feature:nth-last-child(-n+2){border-bottom:none!important}
}
@media (max-width:560px){
  .pool-features{grid-template-columns:1fr}
  .pool-feature{
    border-right:none!important;
    border-bottom:1px solid var(--line)!important;
    padding:32px 0!important;
  }
  .pool-feature:last-child{border-bottom:none!important}
}

/* PATHS — two ownership routes on paper */
.paths{
  background:var(--paper);
  padding:clamp(80px,12vw,140px) 0;
}
.paths-head{
  display:grid;grid-template-columns:1fr 1.1fr;
  gap:clamp(40px,6vw,96px);
  align-items:start;
  margin-bottom:clamp(40px,5vw,56px);
}
.paths-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,64px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:16px 0 0;
}
.paths-head .paths-lede{
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
  margin:0;
}
.path-price .currency-toggle{
  display:inline-flex;align-items:center;
  background:rgba(26,31,30,0.06);
  border-radius:999px;padding:2px;
}
.path-price .currency-toggle button{
  appearance:none;-webkit-appearance:none;
  background:transparent;border:none;cursor:pointer;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--muted);
  padding:5px 11px;border-radius:999px;
  transition:all 300ms cubic-bezier(0.32,0.72,0,1);
  line-height:1;
}
.path-price .currency-toggle button.is-active{
  background:var(--teal-deep);color:var(--paper);
}
.path-price .currency-toggle button:hover:not(.is-active){color:var(--ink)}
.paths-note{
  display:flex;align-items:center;justify-content:center;gap:clamp(20px,2.5vw,40px);
  margin:clamp(48px,6vw,72px) auto 0;
  max-width:980px;
}
.paths-note-text{
  font-family:'Fraunces',serif;font-style:italic;font-weight:300;
  font-size:clamp(20px,2.1vw,26px);
  line-height:1.5;letter-spacing:-0.005em;
  color:var(--ink-soft);
  text-align:center;
  max-width:780px;
}
.paths-note-line{
  display:inline-block;
  white-space:normal;
}
.paths-note-line + .paths-note-line{margin-left:0.4em}
.paths-note-text [data-currency]{display:none;font-style:normal;color:var(--ink);font-weight:400}
.paths-note-text [data-currency].is-active{display:inline}
.paths-note-rule{
  flex:1;height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--line-strong,rgba(0,0,0,0.18)) 50%,transparent 100%);
  min-width:40px;max-width:240px;
}
.paths-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(24px,3vw,40px);
  align-items:stretch;
}
.path-card{
  position:relative;
  display:flex;flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line);
  overflow:hidden;
  transition:transform 360ms cubic-bezier(0.32,0.72,0,1),
             box-shadow 360ms cubic-bezier(0.32,0.72,0,1);
}
.path-card:hover{
  transform:translateY(-4px);
  box-shadow:0 32px 72px -36px rgba(10,52,50,0.22);
}
.path-image{
  aspect-ratio:4/3;
  overflow:hidden;
  background:#f0e6d3;
  position:relative;
}
.path-image img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 800ms cubic-bezier(0.32,0.72,0,1);
}
.path-card:hover .path-image img{transform:scale(1.04)}
.path-body{
  padding:clamp(36px,4.4vw,56px) clamp(32px,4vw,52px) clamp(32px,3.6vw,44px);
  display:flex;flex-direction:column;
  gap:0;
  flex:1;
}
.path-body h3{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3vw,38px);
  line-height:1.05;letter-spacing:-0.02em;
  color:var(--ink);
  margin:0 0 28px;
}
.path-price{
  display:flex;flex-direction:column;gap:6px;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:28px;
}
.path-price-row{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;
}
.path-price-prefix{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--muted);
}
.path-price-value{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(30px,3.2vw,42px);
  letter-spacing:-0.025em;line-height:1.0;
  color:var(--ink);
  margin-top:4px;
}
.path-price-value [data-currency]{display:none}
.path-price-value [data-currency].is-active{display:inline}
.path-price-meta{
  font-size:15px;line-height:1.55;
  color:var(--ink-soft);
  margin-top:10px;
}
.path-copy{
  display:flex;flex-direction:column;gap:14px;
  margin-bottom:36px;
}
.path-copy p{
  font-size:15px;line-height:1.7;
  color:var(--ink-soft);
  margin:0;
}
.path-action{
  display:inline-flex;align-items:center;gap:12px;
  height:52px;padding:0 24px;
  background:var(--teal-deep);
  color:var(--paper);
  text-decoration:none;
  font-family:'Instrument Sans',sans-serif;
  font-size:14px;font-weight:500;letter-spacing:0.01em;
  border-radius:999px;
  width:fit-content;
  margin-top:auto;
  transition:transform 320ms cubic-bezier(0.32,0.72,0,1),
             background 320ms ease;
}
.path-action svg{
  width:18px;height:18px;flex-shrink:0;
}
.path-action:hover{
  transform:translateY(-2px);
  background:var(--ink);
}
@media (max-width:900px){
  .paths-head{grid-template-columns:1fr;gap:24px}
  .paths-grid{grid-template-columns:1fr;gap:24px}
}

/* TEAM — on cream, 6 members in a single row */
.invest-team{
  background:var(--cream);
  padding:clamp(80px,12vw,140px) 0;
}
.invest-team-head{
  margin-bottom:clamp(48px,6vw,72px);
  max-width:780px;
}
.invest-team-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,64px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:16px 0 16px;
}
.invest-team-head p{
  font-size:17px;line-height:1.7;
  color:var(--ink-soft);
  margin:0;
}
.invest-team-head strong{color:var(--ink);font-weight:500}
.team-grid{
  display:grid;grid-template-columns:repeat(6,1fr);
  gap:clamp(16px,1.6vw,24px);
}
.team-member{
  display:flex;flex-direction:column;gap:10px;
}
.team-member-image{
  aspect-ratio:3/4;
  overflow:hidden;
  background:#e7dcc6;
}
.team-member-image img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:contrast(1.06) saturate(1.06) brightness(1.01);
  image-rendering:-webkit-optimize-contrast;
  transition:transform 600ms cubic-bezier(0.32,0.72,0,1),
             filter 380ms ease;
}
.team-member:hover .team-member-image img{
  filter:contrast(1.08) saturate(1.1) brightness(1.02);
  transform:scale(1.02);
}
.team-member h3{
  font-family:'Fraunces',serif;font-weight:400;
  font-size:clamp(16px,1.3vw,18px);
  line-height:1.2;letter-spacing:-0.01em;
  color:var(--ink);
  margin:6px 0 0;
}
.team-member-position{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--teal-deep);
}
.team-member p{
  font-size:13px;line-height:1.55;
  color:var(--ink-soft);
  margin:0;
}
.team-member-socials{
  display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:4px;
  list-style:none;padding:0;
}
.team-member-socials a{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--ink-soft);
  text-decoration:none;
  border-bottom:1px solid var(--line);
  padding-bottom:2px;
  transition:color 220ms ease,border-color 220ms ease;
}
.team-member-socials a:hover{
  color:var(--teal-deep);
  border-color:var(--teal-deep);
}
@media (max-width:1100px){
  .team-grid{grid-template-columns:repeat(3,1fr);gap:32px}
  .team-member h3{font-size:18px}
  .team-member p{font-size:14px}
  .team-member-position{font-size:11px}
}
@media (max-width:640px){
  .team-grid{grid-template-columns:1fr 1fr;gap:24px}
}
@media (max-width:420px){
  .team-grid{grid-template-columns:1fr}
}

/* ROADMAP — dark teal-deep interlude */
.invest-roadmap{
  background:var(--teal-deep);
  padding:clamp(80px,12vw,140px) 0;
  color:var(--paper);
}
.roadmap-head{
  display:grid;grid-template-columns:1fr 1.1fr;
  gap:clamp(40px,6vw,96px);
  align-items:end;
  margin-bottom:clamp(56px,7vw,80px);
}
.roadmap-head .eyebrow{color:rgba(244,236,221,0.55)!important}
.roadmap-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,64px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--paper);
  margin:16px 0 0;
}
.roadmap-head p{
  font-size:17px;line-height:1.7;
  color:rgba(244,236,221,0.78);
  margin:0;
}
.roadmap-head strong{color:var(--paper);font-weight:500}
.invest-roadmap .milestones{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:0;
  border-top:1px solid rgba(244,236,221,0.22);
  border-bottom:1px solid rgba(244,236,221,0.22);
}
.invest-roadmap .milestone{
  padding:clamp(32px,4vw,48px) clamp(20px,2.5vw,28px);
  border-right:1px solid rgba(244,236,221,0.16);
  display:flex;flex-direction:column;gap:12px;
  position:relative;
}
.invest-roadmap .milestone:last-child{border-right:none}
.invest-roadmap .milestone-num{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,236,221,0.5);
}
.invest-roadmap .milestone h3{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.1;letter-spacing:-0.015em;
  color:var(--paper);margin:0;
}
.invest-roadmap .milestone p{
  font-size:14px;line-height:1.5;
  color:rgba(244,236,221,0.78);
  margin:0;
}
.invest-roadmap .milestone.is-current::before{
  content:'';
  position:absolute;left:0;top:0;
  width:3px;height:100%;
  background:var(--terracotta,#b85c3c);
}
@media (max-width:900px){
  .roadmap-head{grid-template-columns:1fr;gap:20px}
  .invest-roadmap .milestones{grid-template-columns:1fr}
  .invest-roadmap .milestone{
    border-right:none;
    border-bottom:1px solid rgba(244,236,221,0.16);
  }
  .invest-roadmap .milestone:last-child{border-bottom:none}
  .invest-roadmap .milestone.is-current::before{width:100%;height:3px;top:auto;bottom:0;left:0}
}

/* BROCHURE FORM — on cream, mirrors contact page treatment */
.invest-brochure{
  background:var(--cream);
  padding:clamp(80px,12vw,140px) 0;
}
.invest-brochure .brochure-form{
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:clamp(40px,5vw,72px);
  align-items:start;
  max-width:1280px;
}
.invest-brochure .brochure-copy h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(36px,4.6vw,60px);
  line-height:1.05;letter-spacing:-0.025em;
  color:var(--ink);
  margin:16px 0 24px;
}
.invest-brochure .brochure-copy p{
  font-size:16px;line-height:1.65;
  color:var(--ink-soft);
  margin:0 0 1em;
}
.invest-brochure .brochure-copy strong{color:var(--ink);font-weight:500}
.invest-brochure .copy-meta{
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid var(--line);
  font-size:14px;line-height:1.7;
  color:var(--ink-soft);
}
.invest-brochure .copy-meta strong{
  font-family:'JetBrains Mono',monospace;
  font-weight:500;font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--teal-deep);
}
@media (max-width:900px){
  .invest-brochure .brochure-form{grid-template-columns:1fr;gap:32px}
}

/* ============================================================
   Hero badge — glass pill with pulsing dot, used on dark image
   heroes (investment, villas) for scarcity / status messaging.
   Originally scoped to .invest-hero, generalized here so any
   .hero can drop it in. Keeps the existing .invest-hero rules
   intact via specificity.
   ============================================================ */
.hero-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px 8px 14px!important;
  background:rgba(10,52,50,0.4)!important;
  border:1px solid rgba(244,236,221,0.18)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-radius:999px!important;
  margin-bottom:24px;
}
.hero-badge-dot{
  width:8px;height:8px;border-radius:50%;
  background:#d4845a!important;
  position:relative;flex-shrink:0;
  box-shadow:none!important;
}
.hero-badge-dot::before{
  content:'';position:absolute;inset:-4px;
  border-radius:50%;
  background:#d4845a;
  opacity:0.4;
  animation:hero-badge-pulse 2.4s ease-in-out infinite;
}
@keyframes hero-badge-pulse{
  0%,100%{transform:scale(1);opacity:0.4}
  50%{transform:scale(1.6);opacity:0}
}
.hero-badge-text{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(244,236,221,0.92);
}

/* Hero meta strip — value + label stat cells under the H1 on dark
   image heroes. Generalized from .invest-hero so any .hero can use it. */
.hero-meta{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;
  margin-top:24px;
  border-top:1px solid rgba(244,236,221,0.22);
  border-bottom:1px solid rgba(244,236,221,0.22);
}
.hero-meta-cell{
  padding:24px 28px 24px 0;
  border-right:1px solid rgba(244,236,221,0.18);
}
.hero-meta-cell:last-child{border-right:none}
.hero-meta-cell:not(:first-child){padding-left:28px}
.hero-meta-value{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(28px,3vw,42px);
  letter-spacing:-0.02em;line-height:1;
  color:var(--paper);
  margin-bottom:10px;
}
.hero-meta-value .unit{
  font-size:0.5em;color:rgba(244,236,221,0.6);
  margin-left:3px;letter-spacing:0;
}
.hero-meta-label{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(244,236,221,0.7);
  line-height:1.5;
}
@media (max-width:560px){
  .hero-meta{grid-template-columns:1fr}
  .hero-meta-cell{
    border-right:none;
    border-bottom:1px solid rgba(244,236,221,0.18);
    padding:20px 0!important;
  }
  .hero-meta-cell:last-child{border-bottom:none}
}

/* ============================================================
   Resort interactive map
   Extracted from the-resort/index.html.
   ============================================================ */
.resort-map { padding: 80px 0 96px; }
.resort-map-head { max-width: 760px; margin: 0 auto 56px; text-align: center; }
.resort-map-head h2 {
  font-size: clamp(36px, 4.4vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 14px 0 20px;
}
.resort-map-head p {
  font-size: clamp(16.5px, 1.5vw, 19px);
  line-height: 1.6;
  color: rgba(26, 31, 30, 0.7);
  max-width: 620px;
  margin: 0 auto;
}

.resort-map-figure {
  position: relative;
  margin: 0;
  width: 100%;
  overflow: hidden;
}
.resort-map-figure img {
  width: 100%;
  height: auto;
  display: block;
}
.resort-map-figure figcaption {
  margin-top: 16px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(26, 31, 30, 0.55);
  text-align: center;
}

/* Hotspot button */
.resort-hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.resort-hotspot-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid #0a3432;
  border-radius: 50%;
  background: rgba(244, 236, 221, 0.85);
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1),
              background-color 220ms cubic-bezier(0.4, 0, 0.2, 1),
              border-color 220ms cubic-bezier(0.4, 0, 0.2, 1);
}
.resort-hotspot-circle::after {
  content: '';
  width: 5px;
  height: 5px;
  background: #005257;
  border-radius: 50%;
  transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1),
              height 220ms cubic-bezier(0.4, 0, 0.2, 1);
}
.resort-hotspot:hover .resort-hotspot-circle,
.resort-hotspot:focus-visible .resort-hotspot-circle,
.resort-hotspot.is-active .resort-hotspot-circle {
  transform: scale(1.18);
  background: #f4ecdd;
  border-color: #005257;
}
.resort-hotspot:hover .resort-hotspot-circle::after,
.resort-hotspot.is-active .resort-hotspot-circle::after {
  width: 7px;
  height: 7px;
}
.resort-hotspot:focus-visible {
  outline: 2px solid #005257;
  outline-offset: 4px;
  border-radius: 50%;
}

/* Pulse animation for first reveal */
@keyframes resortHotspotPulse {
  0%   { transform: scale(1);   opacity: 1; }
  50%  { transform: scale(1.5); opacity: 0.55; }
  100% { transform: scale(1);   opacity: 1; }
}
.resort-hotspot-circle.is-pulsing {
  animation: resortHotspotPulse 1400ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Popover */
.resort-popover {
  position: absolute;
  width: 280px;
  padding: 20px 24px;
  background: #f4ecdd;
  border: 1px solid rgba(26, 31, 30, 0.18);
  z-index: 10;
  transform: translate(-50%, calc(-100% - 28px));
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
  text-align: left;
}
.resort-popover.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.resort-popover-eyebrow {
  display: block;
  margin-bottom: 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #005257;
}
.resort-popover-title {
  margin-bottom: 8px;
  font-family: 'Fraunces', serif;
  font-weight: 300;
  font-size: 22px;
  line-height: 1.15;
  color: #1a1f1e;
}
.resort-popover-body {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(26, 31, 30, 0.7);
}
.resort-popover-close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: none;
  border: none;
  font-family: 'JetBrains Mono', monospace;
  font-size: 22px;
  line-height: 1;
  color: rgba(26, 31, 30, 0.55);
  cursor: pointer;
  padding: 4px;
  display: none;
}

.resort-map-cta { text-align: center; margin-top: 56px; }

/* Mobile: bottom-anchored drawer */
@media (max-width: 720px) {
  .resort-map { padding: 56px 0 72px; }
  .resort-map-head { margin-bottom: 32px; }
  .resort-popover {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    transform: translateY(100%);
    transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 1;
    border: none;
    border-top: 1px solid rgba(26, 31, 30, 0.18);
    padding: 24px 24px 28px;
    z-index: 100;
  }
  .resort-popover.is-visible { transform: translateY(0); }
  .resort-popover-close { display: block; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .resort-hotspot-circle,
  .resort-hotspot-circle::after,
  .resort-popover { transition: none !important; }
  .resort-hotspot-circle.is-pulsing { animation: none !important; }
}

/* ============================================================
   VILLA PAGE — page-specific styles. Extracted from /the-villas/
   inline <style>. Used by both /the-villas/ (EN) and /fr/les-villas/.
   ============================================================ */

/* Hero — direct port of /investment/'s .invest-hero rules,
   re-scoped to .hero so this villa page renders the cluster in
   the same exact way: full viewport, vertically centered, badge
   + h1 + meta-strip stacked left-aligned inside a 1100px column. */
.villa-page .hero{
  position:relative!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  display:flex!important;align-items:center!important;
  padding:140px 0 80px!important;
  overflow:hidden;
  background:var(--teal-deep);
}
.villa-page .hero .hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(140deg,
    rgba(10,52,50,0.65) 0%,
    rgba(10,52,50,0.35) 45%,
    rgba(10,52,50,0.55) 100%
  )!important;
}
.villa-page .hero .hero-inner{
  position:relative;z-index:2;
  max-width:1100px!important;width:100%!important;
  display:flex!important;flex-direction:column!important;
  align-items:flex-start!important;
  gap:28px!important;
  text-align:left!important;
}
.villa-page .hero h1.display{
  color:var(--paper)!important;
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(48px,7vw,104px);
  line-height:1.0;letter-spacing:-0.025em;
  margin:0!important;
  text-shadow:0 2px 24px rgba(0,0,0,0.25);
  max-width:920px;
}
.villa-page .hero h1.display em{color:rgba(244,236,221,0.88);font-style:italic}
.villa-page .hero .hero-meta-value,
.villa-page .hero .hero-meta-value .unit,
.villa-page .hero .hero-meta-label{color:var(--paper)!important}
@media (max-width:780px){
  .villa-page .hero .hero-meta{grid-template-columns:1fr!important}
  .villa-page .hero .hero-meta-cell{
    border-right:none!important;
    border-bottom:1px solid rgba(244,236,221,0.18)!important;
    padding:20px 0!important;
  }
  .villa-page .hero .hero-meta-cell:last-child{border-bottom:none!important}
}

/* Overview: title full-width, paragraph in 2 columns underneath */
.villa-page .overview .overview-head{display:block;max-width:1180px;margin-bottom:80px}
.villa-page .overview .overview-head h2{margin-bottom:40px;max-width:880px}
.villa-page .overview .overview-head p{
  font-size:16px;line-height:1.75;color:var(--ink-soft);
  columns:2;column-gap:48px;max-width:none;
}
@media (max-width:780px){.villa-page .overview .overview-head p{columns:1}}

/* Villa gallery — dark editorial panel, premium minimal */
.villa-gallery{padding:clamp(96px,13vw,160px) 0;background:var(--teal-deep);color:var(--paper)}
.villa-gallery-head{max-width:880px;margin:0 auto clamp(56px,7vw,96px)}
.villa-gallery-head .eyebrow{display:inline-block;margin-bottom:20px;color:rgba(244,236,221,0.55)}
.villa-gallery-head h2{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(40px,5vw,72px);
  line-height:1.02;letter-spacing:-0.025em;
  color:var(--paper);margin:0;
}
.villa-gallery-head p{font-size:16px;line-height:1.6;color:rgba(244,236,221,0.7);max-width:520px;margin:20px 0 0}
.villa-gallery-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.2vw,20px);
  max-width:1480px;margin:0 auto;
}
.villa-gallery-grid figure{margin:0;overflow:hidden;background:rgba(244,236,221,0.04);aspect-ratio:4/3}
.villa-gallery-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:opacity 600ms var(--ease)}
.villa-gallery-grid figure:hover img{opacity:0.92}
@media (max-width:900px){.villa-gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}}
@media (max-width:560px){.villa-gallery-grid{grid-template-columns:1fr}}

/* Price strip after spec grid */
.price-strip{padding:clamp(48px,7vw,72px) 0;background:var(--cream);border-top:1px solid rgba(26,31,30,0.08);border-bottom:1px solid rgba(26,31,30,0.08)}
.price-strip-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(24px,4vw,64px)}
.price-strip-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--teal);margin-bottom:8px;display:block}
.price-strip-num{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-0.03em;color:var(--teal-deep);display:inline-flex;align-items:baseline}
.price-strip-num .prefix{font-size:0.42em;font-weight:400;color:var(--muted);margin-right:0.2em}
.price-strip-num .unit{font-size:0.4em;color:var(--ink-soft);margin-left:0.06em;font-weight:300}
.price-strip-num [data-currency]{display:none}
.price-strip-num [data-currency].is-active{display:inline-flex;align-items:baseline}
.price-strip-meta{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.price-strip-label{font-family:'Fraunces',serif;font-weight:400;font-size:17px;line-height:1.3;color:var(--ink)}
.price-strip-cta{display:inline-flex;align-items:center;gap:10px;color:var(--teal-deep);font-size:14px;font-weight:500;text-decoration:none;padding:10px 0;border-bottom:1px solid var(--teal-deep);transition:all 400ms cubic-bezier(0.32,0.72,0,1);white-space:nowrap}
.price-strip-cta:hover{gap:14px;color:var(--ink);border-color:var(--ink)}
.price-strip-cta svg{transition:transform 400ms cubic-bezier(0.32,0.72,0,1)}
.price-strip-cta:hover svg{transform:translate(2px,-2px)}
@media (max-width:900px){.price-strip-inner{grid-template-columns:1fr;gap:24px}}

/* Villa Listing — image + price card side by side */
.villa-listing{padding:clamp(60px,9vw,100px) 0;background:var(--cream)}
.villa-listing-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(32px,4vw,56px);align-items:stretch}
.villa-listing-image{position:relative;border-radius:8px;overflow:hidden;background:var(--cream-deep);min-height:520px}
.villa-listing-image img{width:100%;height:100%;object-fit:cover;display:block}
.villa-listing-image-caption{position:absolute;left:24px;right:24px;bottom:24px;display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(244,236,221,0.85);pointer-events:none}
.villa-listing-image-caption .num{color:rgba(244,236,221,0.6);margin-right:6px}
.villa-listing-card{background:var(--paper);border:1px solid rgba(26,31,30,0.1);border-radius:8px;padding:clamp(32px,3.5vw,44px);display:flex;flex-direction:column;gap:clamp(20px,2.5vw,28px);box-shadow:0 24px 64px -32px rgba(10,52,50,0.18)}
.villa-listing-card .price-strip-num{font-size:clamp(48px,5.5vw,72px);margin-top:4px}
.villa-listing-card-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:clamp(20px,2.5vw,28px);border-bottom:1px solid rgba(26,31,30,0.1)}
.villa-listing-card-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.villa-listing-card-list li{display:flex;justify-content:space-between;gap:16px;font-size:14px;line-height:1.4}
.villa-listing-card-list li > span:first-child{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.villa-listing-card-list li > span:last-child{color:var(--ink);font-weight:400;text-align:right}
.villa-listing-card-actions{display:flex;flex-direction:column;gap:10px;padding-top:clamp(20px,2.5vw,28px);border-top:1px solid rgba(26,31,30,0.1)}
.villa-listing-card-actions .btn,.villa-listing-card-actions .btn-ghost{width:100%;justify-content:center}
@media (max-width:1100px){.villa-listing-grid{grid-template-columns:1fr;gap:32px}.villa-listing-image{min-height:380px;aspect-ratio:16/10}}
@media (max-width:560px){.villa-listing-image{min-height:auto;aspect-ratio:4/3}.villa-listing-image-caption{flex-direction:column;gap:4px;font-size:10px}}

/* Currency toggle */
.currency-toggle{display:inline-flex;align-items:center;background:rgba(26,31,30,0.06);border-radius:999px;padding:2px}
.currency-toggle button{appearance:none;-webkit-appearance:none;background:transparent;border:none;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);padding:5px 11px;border-radius:999px;transition:all 300ms cubic-bezier(0.32,0.72,0,1);line-height:1}
.currency-toggle button.is-active{background:var(--teal-deep);color:var(--paper)}
.currency-toggle button:hover:not(.is-active){color:var(--ink)}

/* Villa video section */
.villa-video{padding:clamp(56px,8vw,96px) 0;background:var(--paper)}
.villa-page .tour .tour-head{margin-bottom:48px!important}
.villa-page .final.final--tight{padding:clamp(64px,9vw,108px) 0}
.villa-page .final.final--tight h2{margin-bottom:24px}
.villa-page .final.final--tight p{margin-bottom:32px}
.villa-video-head{max-width:780px;margin:0 auto clamp(48px,6vw,72px);text-align:center}
.villa-video-head h2{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(36px,5vw,68px);line-height:1.05;letter-spacing:-0.025em;color:var(--ink);margin:24px 0 0}
.villa-video-head h2 em{color:var(--teal-deep);font-style:italic}
.villa-video-head p{font-size:17px;line-height:1.7;color:var(--ink-soft);margin-top:24px}
.villa-video-frame{position:relative;max-width:1280px;margin:0 auto;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:var(--teal-deep);box-shadow:0 24px 64px rgba(10,52,50,0.12)}
.villa-video-frame iframe,.villa-video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;object-fit:cover;background:var(--teal-deep)}

/* Villa page mobile overrides */
@media (max-width:900px){
  .villa-page .hero .display{font-size:clamp(36px,9vw,52px)!important;line-height:1.05!important}
  .villa-page .hero .display br{display:none}
  .villa-page .hero .display em{display:inline}
  .villa-page .overview-head{flex-direction:column;gap:24px}
  .villa-page .overview-head h2{font-size:clamp(30px,7.5vw,42px)!important}
  .villa-page .specs-grid{grid-template-columns:1fr 1fr!important}
  .villa-page .spec{padding:24px 20px!important}
  .villa-page .price-strip-num{font-size:44px!important}
  .villa-page .tour-head h2{font-size:clamp(30px,7.5vw,42px)!important}
  .villa-page .room{grid-template-columns:1fr!important;gap:24px!important}
  .villa-page .room + .room{margin-top:48px!important}
  .villa-page .room-copy{order:0!important}
  .villa-page .room-image{order:1!important}
  .villa-page .materials h2{font-size:clamp(30px,7.5vw,42px)!important}
  .villa-page .mat-grid{grid-template-columns:1fr 1fr!important}
  .villa-page .villa-video-head h2{font-size:clamp(30px,7.5vw,42px)!important}
  .villa-page .final h2{font-size:clamp(30px,7.5vw,44px)!important}
  .villa-page .cta-group{flex-direction:column;width:100%}
  .villa-page .cta-group .btn,.villa-page .cta-group .btn-ghost{width:100%;justify-content:center}
  .villa-page .container,.villa-page .container-narrow{padding-left:24px;padding-right:24px}
}
@media (max-width:560px){
  .villa-page .hero{padding:80px 0 40px}
  .villa-page .price-strip{padding:40px 0}
  .villa-page .villa-video{padding:64px 0}
  .villa-page .specs-grid{grid-template-columns:1fr 1fr!important}
  .villa-page .spec{padding:20px 16px!important}
  .villa-page .mat-grid{grid-template-columns:1fr!important}
  .villa-page .container,.villa-page .container-narrow{padding-left:20px;padding-right:20px}
}
