@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap");

:root {
  --forest-950: #10241d;
  --forest-900: #173229;
  --forest-800: #23483b;
  --sage: #667469;
  --cream: #f3eee4;
  --paper: #fbf8f1;
  --gold: #b89a57;
  --gold-soft: #d7c391;
  --ink: #18221d;
  --muted: #68716b;
  --line: #d9d0bd;
  --white: #fff;
  --shadow: 0 24px 60px rgba(16, 36, 29, 0.12);
  --radius: 6px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "DM Sans", sans-serif;
  line-height: 1.65;
}
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, .button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.narrow { width: min(calc(100% - 40px), 820px); margin-inline: auto; }
.eyebrow {
  color: var(--gold);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
h1, h2, h3 {
  font-family: "Newsreader", Georgia, serif;
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.025em;
}
h1 { margin: .2em 0; font-size: clamp(3rem, 7vw, 6.7rem); }
h2 { margin: 0 0 .35em; font-size: clamp(2.2rem, 4vw, 4.2rem); }
h3 { margin: 0 0 .45em; font-size: clamp(1.35rem, 2vw, 1.8rem); }
p { margin: 0 0 1rem; }
.lead { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--muted); }
.section { padding: clamp(70px, 9vw, 125px) 0; }
.section--paper { background: var(--paper); }
.section--dark { background: var(--forest-950); color: var(--white); }
.section--gold { background: #d6c391; }
.section-heading { max-width: 760px; margin-bottom: 42px; }
.section-heading p { max-width: 680px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(28px,5vw,72px); align-items: center; }
.grid-3 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.grid-4 { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.stack { display: grid; gap: 18px; }
.card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px;
}
.card--dark { color: white; background: var(--forest-900); border-color: #ffffff1c; }
.card p:last-child { margin-bottom: 0; }
.rule { width: 64px; height: 2px; margin: 22px 0; background: var(--gold); }
.fineprint { color: var(--muted); font-size: .78rem; line-height: 1.5; }
.text-link { color: var(--forest-800); font-weight: 700; text-underline-offset: 4px; }

.site-header {
  position: absolute;
  z-index: 30;
  top: 0;
  left: 0;
  width: 100%;
  color: white;
  border-bottom: 1px solid #ffffff38;
}
.site-header--solid { position: relative; background: var(--forest-950); }
.nav { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { text-decoration: none; display: grid; line-height: 1; }
.brand strong { font-family: "Newsreader",serif; font-size: 1.45rem; letter-spacing: .05em; }
.brand span { margin-top: 7px; color: var(--gold-soft); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; gap: 22px; }
.nav-links a { font-size: .78rem; font-weight: 600; letter-spacing: .05em; text-decoration: none; }
.menu-toggle { display: none; padding: 10px; color: white; background: transparent; border: 1px solid #ffffff55; }

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s, background .2s;
}
.button:hover { transform: translateY(-2px); }
.button--gold { color: var(--forest-950); background: var(--gold-soft); }
.button--dark { color: white; background: var(--forest-900); }
.button--outline { color: inherit; border-color: currentColor; background: transparent; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

.hero {
  position: relative;
  min-height: min(900px,100vh);
  display: flex;
  align-items: flex-end;
  color: white;
  background: var(--forest-950);
  overflow: hidden;
}
.hero::before {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(9,29,23,.92) 0%, rgba(9,29,23,.67) 49%, rgba(9,29,23,.2) 100%),
    url("../images/project-ocean-view.jpg") center 48%/cover no-repeat;
}
.hero-content { position: relative; z-index: 1; padding-top: 180px; padding-bottom: 105px; }
.hero-copy { max-width: 850px; }
.hero-copy .lead { max-width: 650px; color: #eef0ec; }
.hero-destination { margin: 8px 0 0; color: var(--gold-soft); font-family: "Newsreader",serif; font-size: clamp(1.2rem,2vw,1.7rem); }
.hero-note { margin-top: 18px; color: #d2d9d4; font-size: .76rem; }
.hero-highlights { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); max-width:920px; margin-top:30px; border-block:1px solid #ffffff55; }
.hero-highlight { min-height:92px; padding:16px 12px; border-right:1px solid #ffffff35; text-align:center; }
.hero-highlight:last-child { border-right:0; }
.hero-highlight b { display:block; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:1rem; line-height:1.1; }
.hero-highlight span { display:block; margin-top:7px; color:#dce4df; font-size:.65rem; line-height:1.35; }
.facts-bar { position: relative; z-index: 1; background: var(--forest-900); color: white; }
.facts { display: grid; grid-template-columns: repeat(6,1fr); }
.fact { padding: 24px 18px; border-right: 1px solid #ffffff26; }
.fact:last-child { border-right: 0; }
.fact small { display: block; color: var(--gold-soft); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.fact strong { display: block; margin-top: 5px; font-size: .9rem; }

.image-frame { position: relative; overflow: hidden; min-height: 480px; box-shadow: var(--shadow); }
.image-frame img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.image-caption { position: absolute; right: 14px; bottom: 10px; color: white; font-size: .67rem; text-shadow: 0 1px 4px #000; }
.full-bleed { position: relative; min-height: 720px; display: grid; align-items: end; color: white; overflow: hidden; }
.full-bleed > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.full-bleed::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg,rgba(8,25,20,.92),rgba(8,25,20,.05) 72%); }
.full-bleed-content { position: relative; z-index: 1; padding-bottom: clamp(45px,7vw,90px); }
.full-bleed-content h2 { max-width: 760px; }
.full-bleed-content p { max-width: 620px; color: #e4ebe7; }
.masterplan-stage { display: grid; grid-template-columns: 1.35fr .65fr; gap: 22px; align-items: stretch; }
.masterplan-map { position: relative; min-height: 620px; background: var(--forest-950); overflow: hidden; }
.masterplan-map img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.masterplan-feature { position:relative; left:50%; width:min(calc(100vw - 40px),1440px); margin:0 0 26px; overflow:hidden; background:var(--forest-950); box-shadow:var(--shadow); transform:translateX(-50%); }
.masterplan-feature img { width:100%; height:auto; }
.masterplan-disclaimer { margin-top:24px; padding-top:16px; border-top:1px solid var(--line); }
.masterplan-note { padding: clamp(30px,5vw,65px); background: var(--forest-900); color: white; display: flex; flex-direction: column; justify-content: center; }
.masterplan-note .stat { padding: 16px 0; border-bottom: 1px solid #ffffff26; }
.masterplan-note .stat strong { display: block; color: var(--gold-soft); font-family: "Newsreader",serif; font-size: 2rem; }
.plot-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; margin-top: 24px; background: var(--line); border: 1px solid var(--line); }
.plot-card { min-height: 260px; padding: 24px 20px; background: var(--paper); }
.plot-card strong { display: block; margin-bottom: 10px; color: var(--forest-900); font-family: "Newsreader",serif; font-size: 1.55rem; }
.plot-card span { display: block; margin-bottom: 9px; color: var(--gold); font-size: .65rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.plot-card p { font-size: .84rem; color: var(--muted); }
.masterplan-explainer { display:grid; grid-template-columns:.65fr 1.35fr; gap:28px; margin-bottom:28px; }
.masterplan-points { columns:2; column-gap:28px; padding:24px; background:var(--paper); border:1px solid var(--line); }
.masterplan-points span { display:block; break-inside:avoid; padding:9px 0 9px 22px; position:relative; font-size:.84rem; }
.masterplan-points span::before { position:absolute; left:0; color:var(--gold); content:"◎"; }
.site-plan-wrap { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(28px,5vw,70px); align-items: center; }
.site-plan-image { padding: 18px; background: white; box-shadow: var(--shadow); }
.site-plan-image img { width: 100%; }
.view-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.view-card { position: relative; min-height: 400px; margin: 0; overflow: hidden; color: white; background:var(--forest-950); }
.view-card img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.view-card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(transparent 30%,rgba(8,25,20,.94)); }
.view-card figcaption { position: absolute; z-index: 1; left: 24px; right: 24px; bottom: 23px; display:grid; grid-template-columns:1fr auto; gap:28px; align-items:end; }
.view-card strong { display: block; font-family: "Newsreader",serif; font-size: 2rem; }
.view-card span { font-size: .78rem; color: #e5ebe7; }
.outlook-heading { max-width:820px; margin-bottom:30px; }
.outlook-heading h2 { font-size:clamp(2rem,3.25vw,3.5rem); }
.outlook-heading .lead { max-width:760px; margin-top:12px; }
.view-best-for { min-width:205px; padding:16px 18px; border:1px solid #ffffff42; background:#10241dd9; backdrop-filter:blur(5px); }
.view-best-for b { display:block; margin-bottom:7px; color:var(--gold-soft); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; }
.view-best-for ul { margin:0; padding:0; list-style:none; }
.view-best-for li { position:relative; padding:3px 0 3px 14px; color:#edf2ef; font-size:.7rem; line-height:1.35; }
.view-best-for li::before { position:absolute; left:0; color:var(--gold-soft); content:"◆"; font-size:.45rem; }
.outlook-cta { margin-top:18px; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#e9e1d2; border-left:3px solid var(--gold); }
.outlook-cta p { margin:0; color:var(--forest-900); font-family:"Newsreader",serif; font-size:1.2rem; }
.view-guide { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:20px; }
.view-guide-card { display:grid; grid-template-columns:1fr .8fr; overflow:hidden; background:var(--paper); border:1px solid var(--line); }
.view-guide-copy { padding:24px; }
.view-guide-card img { width:100%; height:100%; object-fit:cover; }
.view-guide-card ul { margin:12px 0; padding-left:18px; font-size:.8rem; color:var(--muted); }
.buyer-advice { margin-top:16px; padding:18px 22px; border-left:3px solid var(--gold); background:#e9e1d2; }
.media-mosaic { display: grid; grid-template-columns: 1.25fr .75fr .75fr; grid-template-rows: 330px 330px; gap: 12px; }
.media-tile { position: relative; overflow: hidden; color: white; }
.media-tile:first-child { grid-row: 1 / 3; }
.media-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.media-tile:hover img { transform: scale(1.025); }
.media-tile::after { position: absolute; inset: 0; content: ""; background: linear-gradient(transparent 50%,#0b211bc7); }
.media-tile span { position: absolute; z-index: 1; left: 20px; bottom: 17px; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.layout-showcase { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.layout-feature { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 360px; background: var(--paper); }
.layout-feature-image { position: relative; background: white; overflow: hidden; }
.layout-feature-image img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.layout-feature-body { padding: 30px; display: flex; flex-direction: column; justify-content: center; }
.layout-feature-body .button { align-self: flex-start; }
.layout-category { margin-bottom:32px; }
.layout-category-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:12px; padding-bottom:9px; border-bottom:1px solid var(--gold); }
.layout-category-head h3 { margin:0; font-size:1.65rem; }
.layout-compact-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.layout-compact { padding:0; overflow:hidden; background:var(--paper); border:1px solid var(--line); }
.layout-compact img { width:100%; aspect-ratio:1/1.04; object-fit:cover; object-position:top; background:white; border-bottom:1px solid var(--line); }
.layout-compact-body { padding:16px; }
.layout-compact-body h4 { margin:0 0 5px; font-family:"Newsreader",serif; font-size:1.3rem; }
.layout-compact-body p { min-height:50px; color:var(--muted); font-size:.75rem; line-height:1.45; }
.layout-compact .button { width:100%; min-height:39px; padding:8px; font-size:.66rem; }
.dual-key-note { padding:15px 20px; margin-top:12px; color:white; background:var(--forest-900); text-align:center; font-size:.8rem; }
.facility-run { display: grid; grid-template-columns: 1.25fr .75fr; gap: 14px; }
.facility-main { position: relative; min-height: 670px; overflow: hidden; }
.facility-main img,.facility-side img { width: 100%; height: 100%; object-fit: cover; }
.facility-side { display: grid; grid-template-rows: repeat(2,minmax(0,1fr)); gap: 14px; }
.facility-side figure,.facility-main { margin: 0; position: relative; min-height: 0; overflow: hidden; }
.photo-label { position: absolute; left: 16px; bottom: 14px; z-index: 2; padding: 8px 11px; color: white; background: #10241dc9; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.feature-list { list-style: none; padding: 0; margin: 25px 0 0; display: grid; gap: 14px; }
.feature-list li { position: relative; padding-left: 25px; }
.feature-list li::before { position: absolute; left: 0; color: var(--gold); content: "◆"; font-size: .7rem; }
.benefit-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.benefit-card { min-height:205px; padding:23px 17px; text-align:center; background:var(--paper); border:1px solid var(--line); }
.benefit-icon { width:52px; height:52px; margin:0 auto 17px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--forest-900); font-family:"Newsreader",serif; font-size:1.3rem; }
.benefit-card h3 { font-size:1.2rem; }
.benefit-card p { color:var(--muted); font-size:.78rem; line-height:1.5; }
.compact-lead { display:grid; grid-template-columns:1.2fr auto; gap:28px; align-items:center; padding:27px 32px; color:white; background:var(--forest-900); }
.compact-lead p { margin:0; color:#dce4df; }

.layout-strip { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.layout-mini { min-height: 180px; padding: 24px; background: var(--paper); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.layout-mini strong { display: block; margin-bottom: 6px; font-family: "Newsreader",serif; font-size: 1.6rem; }
.layout-mini span { color: var(--muted); font-size: .85rem; }

.managed-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: start; }
.service-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.service { padding: 18px; border-top: 1px solid #ffffff32; }
.service strong { display: block; color: var(--gold-soft); font-size: .85rem; }
.split-number { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--gold-soft); }
.split-number strong { font-family: "Newsreader",serif; font-size: clamp(3.5rem,8vw,7rem); }

.estimate-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: 20px; }
.estimate { padding: 34px; background: var(--forest-900); color: white; border-left: 3px solid var(--gold); }
.estimate-label { color: var(--gold-soft); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.estimate-value { display: block; margin: 12px 0 5px; font-family: "Newsreader",serif; font-size: clamp(3.2rem,7vw,6rem); line-height: .9; }
.estimate-assumptions { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin-top: 20px; }
.estimate-assumptions span { padding: 12px; background: #ffffff0d; font-size: .78rem; }
.roi-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(24px,5vw,70px); align-items: end; margin-bottom: 36px; }
.roi-source { padding: 18px 20px; border-left: 2px solid var(--gold); background: #e9e1d2; color: var(--muted); font-size: .8rem; }
.roi-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.roi-card { overflow: hidden; background: var(--forest-950); color: white; box-shadow: var(--shadow); }
.roi-card-head { padding: 30px; display: flex; justify-content: space-between; gap: 20px; align-items: flex-end; border-bottom: 1px solid #ffffff24; }
.roi-card-head h3 { margin: 5px 0 0; font-size: 2.25rem; }
.roi-result { text-align: right; }
.roi-result strong { display: block; color: var(--gold-soft); font-family: "Newsreader",serif; font-size: clamp(3.6rem,7vw,6rem); line-height: .78; }
.roi-result span { color: #bdc8c1; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.roi-flow { padding: 0 30px; }
.roi-row { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 16px 0; border-bottom: 1px solid #ffffff1f; }
.roi-row span { color: #b8c4bd; font-size: .82rem; }
.roi-row b { color: white; }
.roi-row--owner { margin-inline: -30px; padding-inline: 30px; background: #ffffff0a; }
.roi-row--annual b { color: var(--gold-soft); font-size: 1.1rem; }
.roi-equation { padding: 22px 30px 28px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: center; background: var(--forest-900); }
.roi-equation div { text-align: center; }
.roi-equation small { display: block; color: #aebbb3; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.roi-equation strong { font-family: "Newsreader",serif; font-size: 1.35rem; }
.roi-equation em { color: var(--gold-soft); font-style: normal; font-size: 1.4rem; }
.roi-disclaimer { margin-top: 18px; padding: 18px 20px; border: 1px solid var(--line); background: var(--paper); color: var(--muted); font-size: .78rem; }
.roi-owner-focus { padding:18px 30px; display:grid; grid-template-columns:minmax(90px,.42fr) minmax(0,1fr); gap:18px; align-items:end; background:#0a1e18; border-bottom:1px solid #ffffff22; }
.roi-owner-focus span { color:#aebbb3; font-size:.7rem; letter-spacing:.12em; line-height:1.45; text-transform:uppercase; }
.roi-owner-focus strong { min-width:0; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:clamp(2.2rem,3.2vw,3.4rem); line-height:.85; text-align:right; white-space:nowrap; }
.roi-owner-focus strong small { margin-left:.12em; font-family:"DM Sans",sans-serif; font-size:.31em; font-weight:600; letter-spacing:.02em; }
.model-note { margin-top:22px; padding:28px; background:var(--forest-900); color:white; }
.model-note h3 { color:var(--gold-soft); }
.model-drivers { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.model-drivers span { padding:7px 11px; border:1px solid #ffffff2d; font-size:.72rem; }

.income-section { background:linear-gradient(145deg,#0c211a,#173229 58%,#10241d); }
.hospitality-heading { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(30px,6vw,80px); align-items:end; margin-bottom:32px; }
.hospitality-heading .lead { color:#d5dfd9; }
.hospitality-profile { display:grid; grid-template-columns:.85fr 1.15fr; border:1px solid #ffffff25; background:#10271f; }
.hospitality-intro,.hospitality-services { padding:clamp(28px,4vw,48px); }
.hospitality-intro { border-right:1px solid #ffffff25; }
.hospitality-wordmark { display:block; margin-bottom:28px; color:var(--gold-soft); font-size:clamp(2.8rem,5vw,5rem); font-weight:500; letter-spacing:-.08em; line-height:.8; }
.hospitality-intro h3,.hospitality-services h3 { color:white; font-size:clamp(1.5rem,2.4vw,2.2rem); }
.hospitality-intro p { color:#cbd7d0; }
.hospitality-intro .fineprint { margin-top:28px; padding-top:20px; color:#aebbb3; border-top:1px solid #ffffff20; }
.hospitality-services ul { display:grid; grid-template-columns:repeat(2,1fr); gap:0 28px; margin:18px 0 30px; padding:0; list-style:none; }
.hospitality-services li { position:relative; padding:12px 0 12px 22px; color:#e8eeea; border-bottom:1px solid #ffffff18; font-size:.8rem; }
.hospitality-services li::before { position:absolute; left:0; color:var(--gold-soft); content:"◆"; font-size:.55rem; }
.income-heading { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,6vw,80px); align-items:end; margin-bottom:34px; }
.income-heading .lead { color:#d5dfd9; }
.income-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.income-card { overflow:hidden; background:#173229; border:1px solid #ffffff24; box-shadow:0 22px 55px #06110d66; }
.income-card-head { display:flex; justify-content:space-between; align-items:end; gap:20px; padding:28px 30px; border-bottom:1px solid #ffffff24; }
.income-card-head h3 { margin:5px 0 0; font-size:2.2rem; }
.income-roi { text-align:right; }
.income-roi strong { display:block; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:clamp(3.2rem,5vw,5rem); line-height:.78; }
.income-roi span,.income-primary > span,.income-secondary span { color:#b8c4bd; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
.income-primary { padding:30px; background:#0a1e18; }
.income-primary > span { display:block; margin-bottom:12px; }
.income-primary strong { display:block; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:clamp(3rem,4.4vw,4.65rem); line-height:.88; white-space:nowrap; }
.income-primary small { margin-left:.13em; font-family:"DM Sans",sans-serif; font-size:.25em; font-weight:600; }
.income-secondary { padding:21px 30px; border-bottom:1px solid #ffffff20; }
.income-secondary span { display:block; margin-bottom:5px; }
.income-secondary strong { font-family:"Newsreader",serif; font-size:1.75rem; }
.income-assumptions { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#ffffff20; }
.income-assumptions span { padding:15px 13px; background:#173229; color:#d9e1dc; font-size:.72rem; line-height:1.4; }
.income-assumptions b { display:block; color:var(--gold-soft); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; }
.income-toggle { width:100%; padding:16px 30px; display:flex; justify-content:space-between; color:white; background:#21463a; border:0; border-top:1px solid #ffffff20; text-align:left; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.income-toggle::after { content:"+"; color:var(--gold-soft); font-size:1.2rem; line-height:1; }
.income-toggle[aria-expanded="true"]::after { content:"−"; }
.income-calculation { padding:8px 30px 24px; background:#0d271f; }
.income-calculation div { display:grid; grid-template-columns:1fr auto; gap:18px; padding:12px 0; border-bottom:1px solid #ffffff17; }
.income-calculation span { color:#b9c5be; font-size:.76rem; }
.income-calculation b { font-size:.8rem; text-align:right; }
.income-basis { margin:18px 0 0; color:#bec9c2; font-size:.76rem; text-align:center; }
.income-comparison { margin-top:30px; display:grid; grid-template-columns:1.25fr repeat(4,.72fr); gap:1px; background:#ffffff25; border:1px solid #ffffff25; }
.income-comparison > div { padding:24px 18px; background:#173229; }
.income-comparison-intro { background:#0a1e18!important; }
.income-comparison h3 { margin-top:5px; font-size:1.7rem; }
.income-comparison div > span { display:block; color:#aebbb3; font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; }
.income-comparison div > strong { display:block; margin-top:8px; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:1.35rem; line-height:1.05; }
.income-comparison > p { grid-column:1/-1; margin:0; padding:16px 20px; color:#d2dbd6; background:#0a1e18; font-size:.78rem; }
.income-disclaimer { margin-top:20px; padding:22px 24px; color:#c5d0ca; background:#ffffff0b; border:1px solid #ffffff26; font-size:.74rem; line-height:1.55; }
.income-disclaimer b { display:block; margin-bottom:8px; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:1.2rem; }
.income-disclaimer p { margin:0 0 5px; }
.income-cta { margin-top:24px; padding:27px 30px; display:grid; grid-template-columns:1fr auto; gap:28px; align-items:center; color:var(--ink); background:var(--gold-soft); }
.income-cta h3 { margin:4px 0 6px; font-size:2rem; }
.income-cta p { margin:0; max-width:680px; }
.income-cta .eyebrow { color:#5e4d24; }
.income-cta .button-row { margin:0; justify-content:flex-end; }
.income-cta .button--outline { color:var(--forest-950); }

.considerations { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.consideration { background: var(--paper); padding: 24px; }
.consideration b { display: block; margin-bottom: 6px; }

.faq-list { border-top: 1px solid var(--line); }
.faq-columns { display:grid; grid-template-columns:repeat(2,1fr); gap:0 38px; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; padding: 22px 0; display: flex; justify-content: space-between; gap: 20px; color: inherit; background: transparent; border: 0; text-align: left; font-weight: 700; }
.faq-question::after { content: "+"; color: var(--gold); font-size: 1.5rem; font-weight: 400; }
.faq-question[aria-expanded="true"]::after { content: "−"; }
.faq-answer { max-width: 760px; padding: 0 0 22px; color: var(--muted); }

.guide-card { position: relative; min-height: 280px; padding: 28px; display: flex; flex-direction: column; justify-content: flex-end; color: white; overflow: hidden; }
.guide-card::before { position: absolute; inset: 0; content: ""; background: linear-gradient(transparent,#10241de8); }
.guide-card > * { position: relative; z-index: 1; }
.guide-card h3 { font-size: 1.8rem; }
.guide-link-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.guide-link { min-height:165px; padding:21px; display:flex; flex-direction:column; justify-content:space-between; background:var(--paper); border:1px solid var(--line); text-decoration:none; }
.guide-link span { color:var(--gold); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
.guide-link strong { font-family:"Newsreader",serif; font-size:1.2rem; line-height:1.15; }
.guide-link b { align-self:end; font-size:1.15rem; }
.guide-premium-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.guide-card-premium { min-height:330px; display:flex; flex-direction:column; overflow:hidden; color:inherit; background:var(--paper); border:1px solid var(--line); text-decoration:none; transition:transform .22s,box-shadow .22s; }
.guide-card-premium:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.guide-card-premium > img { width:100%; height:145px; object-fit:cover; background:white; border-bottom:1px solid var(--line); }
.guide-card-premium > div:last-child { min-height:184px; padding:21px; display:flex; flex-direction:column; flex:1; }
.guide-card-premium span { color:var(--gold); font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.guide-card-premium h3 { margin:7px 0 8px; font-size:1.45rem; }
.guide-card-premium p { color:var(--muted); font-size:.78rem; line-height:1.5; }
.guide-card-premium b { margin-top:auto; color:var(--forest-800); font-size:.73rem; }
.guide-card-premium--icon { padding-top:22px; color:white; background:var(--forest-900); border-color:#ffffff20; }
.guide-card-premium--icon > div:last-child { min-height:0; padding-top:10px; }
.guide-card-premium--icon p { color:#d7e0db; }
.guide-card-premium--icon b { color:var(--gold-soft); }
.guide-premium-icon { width:58px; height:58px; margin-left:21px; display:grid; place-items:center; border:1px solid var(--gold-soft); border-radius:50%; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:1.7rem; }

.lead-panel { display: grid; grid-template-columns: .8fr 1.2fr; background: var(--forest-950); color: white; }
.lead-copy { padding: clamp(34px,5vw,70px); }
.lead-form { padding: clamp(34px,5vw,70px); background: var(--paper); color: var(--ink); }
.closingpilot-form { display:block; width:100%; min-height:760px; border:0; background:white; }
.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.field { display: grid; gap: 6px; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .75rem; font-weight: 700; }
.field input, .field select, .field textarea {
  width: 100%;
  padding: 13px 14px;
  color: var(--ink);
  background: white;
  border: 1px solid var(--line);
  border-radius: 2px;
}
.field textarea { min-height: 100px; resize: vertical; }
.check { display: flex; gap: 9px; align-items: flex-start; font-size: .73rem; color: var(--muted); }
.form-status { margin-top: 14px; padding: 12px; color: #1c563f; background: #e3f1e9; font-size: .82rem; }
.iframe-marker { padding: 10px; border: 1px dashed var(--gold); font-size: .7rem; color: var(--muted); }

.page-hero { position: relative; min-height: 530px; display: flex; align-items: flex-end; color: white; background: var(--forest-950); overflow: hidden; }
.page-hero::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,#0d261fdc,#0d261f70),var(--hero-image) center/cover no-repeat; }
.page-hero .container { position: relative; z-index: 1; padding-top: 130px; padding-bottom: 70px; }
.page-hero h1 { max-width: 900px; font-size: clamp(2.8rem,6vw,5.5rem); }
.breadcrumbs { margin-bottom: 18px; font-size: .72rem; color: var(--gold-soft); }
.breadcrumbs a { text-underline-offset: 3px; }
.content-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }

.layout-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.layout-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.layout-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: top; background: white; border-bottom: 1px solid var(--line); }
.layout-card-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.layout-card .button { margin-top: auto; align-self: flex-start; }

.steps { counter-reset: step; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.step { counter-increment: step; padding: 24px; border-top: 1px solid var(--gold); }
.step::before { content: "0" counter(step); display: block; color: var(--gold); font-family: "Newsreader",serif; font-size: 1.7rem; }

.modal {
  position: fixed;
  z-index: 100;
  inset: 0;
  padding: 30px;
  display: grid;
  place-items: center;
  background: #07130fd9;
}
.modal[hidden] { display: none; }
.modal-dialog { position:relative; width:min(1100px,100%); height:min(920px,calc(100dvh - 40px)); padding:28px 20px 18px; display:grid; grid-template-rows:auto minmax(0,1fr); gap:12px; background:white; overflow:hidden; }
.modal-dialog h2 { margin:0; padding-right:46px; font-size:clamp(1.65rem,3vw,2.6rem); }
.modal-dialog img { width:100%; height:100%; min-height:0; object-fit:contain; object-position:center; }
.modal-close { position: absolute; top: 8px; right: 10px; width: 38px; height: 38px; color: white; background: var(--forest-900); border: 0; font-size: 1.5rem; }

.search-strip { padding: 26px 0; color: var(--muted); background: #e9e1d2; font-size: .76rem; }
.search-strip strong { color: var(--ink); }

/* Jesselton Docklands destination guide */
.jd-page .jd-hero .lead { max-width:780px; color:#e3e9e5; }
.jd-page .section-heading--center { max-width:880px; }
.jd-value-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.jd-value-card { min-height:245px; padding:28px 24px; background:white; border:1px solid var(--line); border-top:3px solid var(--gold); }
.jd-value-card > span,.jd-check-grid article > span { color:var(--gold); font-family:"Newsreader",serif; font-size:1.35rem; }
.jd-value-card h3 { margin-top:28px; font-size:1.45rem; }
.jd-value-card p { margin:0; color:var(--muted); font-size:.82rem; }
.jd-location-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(28px,5vw,62px); align-items:start; }
.jd-location-map { margin:0; padding:14px; background:white; box-shadow:var(--shadow); }
.jd-location-map img { width:100%; }
.jd-location-content { display:grid; gap:24px; }
.jd-destination-list { columns:2; column-gap:30px; margin:18px 0 0; padding:0; list-style:none; }
.jd-destination-list li { position:relative; break-inside:avoid; padding:9px 0 9px 18px; border-bottom:1px solid var(--line); font-size:.78rem; }
.jd-destination-list li::before { position:absolute; left:0; color:var(--gold); content:"◆"; font-size:.48rem; }
.jd-location-callout { padding:28px; color:white; background:var(--forest-900); }
.jd-location-callout h3 { color:var(--gold-soft); }
.jd-location-callout ul { margin:0; padding:0; list-style:none; }
.jd-location-callout li { position:relative; padding:7px 0 7px 22px; font-size:.78rem; }
.jd-location-callout li::before { position:absolute; left:0; color:var(--gold-soft); content:"✓"; }
.jd-seo-copy { max-width:950px; margin:32px auto 0; color:var(--muted); text-align:center; font-size:.84rem; }
.jd-seo-copy a { color:var(--forest-800); font-weight:700; }
.jd-lifestyle-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.jd-lifestyle-grid article { overflow:hidden; background:white; border:1px solid var(--line); }
.jd-lifestyle-grid img { width:100%; aspect-ratio:1.5/1; object-fit:cover; }
.jd-lifestyle-grid article > div { padding:24px; }
.jd-lifestyle-grid h3 { font-size:1.45rem; }
.jd-lifestyle-grid p { margin:0; color:var(--muted); font-size:.8rem; }
.jd-role-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(38px,7vw,90px); align-items:center; }
.jd-role-grid .button { margin-top:14px; }
.jd-role-masterplan { margin:0; padding:12px; background:white; border:1px solid var(--line); box-shadow:var(--shadow); }
.jd-role-masterplan img { display:block; width:100%; height:auto; object-fit:contain; object-position:center; }
.jd-role-masterplan figcaption { padding:10px 4px 2px; color:var(--muted); font-size:.68rem; text-align:center; }
.jd-hierarchy { padding:34px; display:grid; gap:8px; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow); }
.jd-hierarchy > strong { margin-bottom:12px; padding:18px 20px; color:white; background:var(--forest-950); font-family:"Newsreader",serif; font-size:1.8rem; }
.jd-hierarchy > span { position:relative; margin-left:24px; padding:13px 18px 13px 34px; background:white; border:1px solid var(--line); font-family:"Newsreader",serif; font-size:1.2rem; }
.jd-hierarchy > span::before { position:absolute; left:-16px; top:-10px; width:26px; height:34px; border-left:1px solid var(--gold); border-bottom:1px solid var(--gold); content:""; }
.jd-hierarchy small { float:right; margin-top:4px; color:var(--muted); font-family:"DM Sans",sans-serif; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; }
.jd-hierarchy .is-current { color:white; background:var(--forest-800); border-color:var(--gold); }
.jd-hierarchy .is-current small { color:var(--gold-soft); }
.jd-precinct-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:#ffffff2a; border:1px solid #ffffff2a; }
.jd-precinct-grid article { min-height:315px; padding:28px 22px; background:var(--forest-900); }
.jd-precinct-grid article > span,.jd-design-practices article > span { color:var(--gold-soft); font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.jd-precinct-grid h3 { margin-top:30px; color:white; font-size:1.7rem; }
.jd-precinct-grid p { color:#cbd7d0; font-size:.77rem; }
.jd-precinct-grid .is-bedrock { background:#23483b; box-shadow:inset 0 3px var(--gold-soft); }
.jd-masterplan-note { max-width:980px; margin:24px 0 0; color:#aebbb3; font-size:.75rem; }
.jd-design-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(38px,7vw,90px); align-items:center; }
.jd-design-practices { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.jd-design-practices article { min-height:245px; padding:30px; background:white; border:1px solid var(--line); }
.jd-design-practices h3 { margin-top:34px; font-size:1.8rem; }
.jd-design-practices p { color:var(--muted); font-size:.8rem; }
.jd-masterplan-video { width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--forest-950); }
.jd-masterplan-video iframe { display:block; width:100%; height:100%; border:0; }
.jd-check-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.jd-check-grid article { min-height:230px; padding:24px 20px; background:white; border:1px solid var(--line); }
.jd-check-grid h3 { margin-top:24px; font-size:1.3rem; }
.jd-check-grid p { margin:0; color:var(--muted); font-size:.76rem; }
.jd-final-cta { display:grid; grid-template-columns:1.15fr .85fr; gap:50px; align-items:center; }
.jd-final-cta h2 { max-width:750px; }
.jd-final-cta p { max-width:700px; }
.jd-final-cta .button-row { justify-content:flex-end; margin-top:0; }

@media (max-width: 1100px) {
  .jd-value-grid,.jd-check-grid { grid-template-columns:repeat(2,1fr); }
  .jd-precinct-grid { grid-template-columns:repeat(2,1fr); }
  .jd-precinct-grid article:last-child { grid-column:1 / -1; }
}

@media (max-width: 760px) {
  .jd-value-grid,.jd-location-grid,.jd-lifestyle-grid,.jd-role-grid,.jd-design-grid,.jd-design-practices,.jd-check-grid,.jd-final-cta { grid-template-columns:1fr; }
  .jd-value-card,.jd-check-grid article,.jd-design-practices article { min-height:0; }
  .jd-destination-list { columns:1; }
  .jd-precinct-grid { grid-template-columns:1fr; }
  .jd-precinct-grid article,.jd-precinct-grid article:last-child { min-height:0; grid-column:auto; }
  .jd-hierarchy { padding:20px; }
  .jd-hierarchy > span { margin-left:14px; }
  .jd-hierarchy small { float:none; display:block; }
  .jd-final-cta .button-row { justify-content:flex-start; }
}

.site-footer { padding: 56px 0 26px; color: #dbe2dd; background: var(--forest-950); }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(2,.7fr); gap: 40px; }
.footer-grid h3 { color: white; font-size: 1.25rem; }
.footer-grid a { display: block; margin: 8px 0; color: #dbe2dd; text-decoration: none; font-size: .85rem; }
.footer-bottom { margin-top: 40px; padding-top: 22px; border-top: 1px solid #ffffff24; color: #acb8b1; font-size: .7rem; }
.mobile-cta { display: none; }
.floating-whatsapp { position:fixed; z-index:60; right:20px; bottom:22px; display:flex; align-items:center; gap:9px; padding:12px 16px; color:white; background:#18a957; border-radius:999px; box-shadow:0 12px 28px #0003; text-decoration:none; font-size:.76rem; font-weight:700; }
.floating-whatsapp::before { content:"◉"; font-size:1.12rem; }

/* Keep the information-rich homepage comfortable to scan without changing inner pages. */
.home-page .section { padding: clamp(54px,6vw,82px) 0; }
.home-page .section-heading { margin-bottom:30px; }
.home-page .hero { min-height:min(790px,92vh); }
.home-page .hero-content { padding-top:145px; padding-bottom:72px; }
.home-page .full-bleed { min-height:560px; }
.home-page .full-bleed-content { padding-bottom:58px; }
.home-page .plot-card { min-height:220px; }
.home-page .view-card { min-height:400px; }
.home-page .media-mosaic { grid-template-rows:270px 270px; }
.home-page .layout-category { margin-bottom:24px; }
.home-page .layout-compact img { aspect-ratio:4/3; }
.home-page .facility-main { min-height:520px; }
.home-page .benefit-card { min-height:185px; }
.home-page .guide-link { min-height:145px; }

/* Storytelling homepage */
.nav-links--compact { gap:14px; }
.nav-links--compact a { font-size:.66rem; }
.hero--story { min-height:min(820px,94vh); }
.hero--story::before { background:linear-gradient(90deg,rgba(7,27,24,.9),rgba(7,27,24,.52) 55%,rgba(7,27,24,.1)),url("../images/project-ocean-view.jpg") center 48%/cover no-repeat; }
.hero--story .hero-highlights { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:800px; }
.hero--story .hero-highlight { display:grid; place-items:center; min-height:74px; }
.hero--story .hero-highlight b { font-family:"DM Sans",sans-serif; font-size:.76rem; line-height:1.35; }
.hero--story .hero-highlight--price { background:#d7c39118; box-shadow:inset 0 2px var(--gold-soft); }
.hero--story .hero-highlight--price b { color:#f1d994; }
.cta-urgency { max-width:680px; margin:14px 0 0; color:#d9e2dd; font-size:.7rem; }
.hero-main-headline { max-width:760px; margin:.1em 0; color:white; font-family:"Newsreader",serif; font-size:clamp(2.4rem,5.4vw,5.4rem); font-weight:500; line-height:.95; letter-spacing:-.03em; }
.section-heading--center { margin-inline:auto; text-align:center; }
.home-page .benefit-grid { grid-template-columns:repeat(4,1fr); }
.home-page .benefit-card { min-height:190px; padding:24px 18px; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.home-page .benefit-card:hover { transform:translateY(-3px); border-color:var(--gold-soft); box-shadow:0 16px 34px rgba(16,36,29,.09); }
.home-page .benefit-icon { width:48px; height:48px; margin-bottom:15px; font-size:1.45rem; }
.home-page .benefit-card h3 { font-size:1.05rem; }
.home-page .benefit-card p { font-size:.76rem; line-height:1.45; }
.price-cta-banner { margin-bottom:32px; padding:20px 26px; }
.price-cta-banner strong { display:block; color:white; font-family:"Newsreader",serif; font-size:1.35rem; font-weight:500; }
.price-cta-banner p { margin-top:4px; font-size:.68rem; }
.lead-copy .cta-urgency { margin:18px 0 24px; color:#b8c5be; }
.receive-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin:22px 0 0; padding:18px 0; border-block:1px solid #ffffff22; }
.receive-list span { position:relative; padding-left:18px; color:#e4ebe7; font-size:.76rem; }
.receive-list span::before { position:absolute; left:0; color:var(--gold-soft); content:"✓"; }
.story-heading { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px,6vw,80px); align-items:end; margin-bottom:32px; }
.masterplan-heading { grid-template-columns:1.25fr .75fr; align-items:center; margin-bottom:24px; }
.masterplan-heading h2 { max-width:720px; margin-bottom:0; font-size:clamp(2.6rem,3.8vw,4.4rem); line-height:.98; }
.masterplan-heading h2 span { display:block; color:var(--forest-800); font-size:.78em; line-height:1.04; }
.masterplan-heading .lead { margin:28px 0 0; padding-left:24px; border-left:2px solid var(--gold); }
.section-actions { margin-top:24px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.section-actions .fineprint { max-width:780px; margin:0; }
.plot-grid--compact .plot-card { min-height:185px; padding:20px 17px; }
.plot-grid--compact .plot-card p { font-size:.76rem; }
.location-visual-grid { height:clamp(550px,45vw,680px); display:grid; grid-template-columns:minmax(0,1.48fr) minmax(360px,.52fr); align-items:stretch; }
.location-birdeye { position:relative; min-height:0; margin:0; overflow:hidden; background:var(--forest-950); }
.location-birdeye img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.location-birdeye figcaption { position:absolute; z-index:1; left:16px; bottom:14px; max-width:42%; padding:7px 10px; color:#eef3ef; background:#10241db8; font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; }
.location-highlight-panel { min-width:0; padding:clamp(28px,3vw,44px) clamp(26px,2.5vw,38px); display:flex; flex-direction:column; justify-content:center; color:white; background:var(--forest-900); overflow:hidden; }
.location-highlight-panel h2 { max-width:100%; margin:12px 0 14px; color:white; font-size:clamp(2rem,2.7vw,3.15rem); line-height:.98; overflow-wrap:anywhere; }
.location-highlight-intro { margin:0 0 22px; color:#d8e1dc; font-size:.82rem; line-height:1.55; }
.location-highlight-panel h3 { margin:0 0 10px; padding-top:18px; color:var(--gold-soft); border-top:1px solid #ffffff25; font-size:clamp(1.2rem,1.7vw,1.55rem); }
.location-highlight-panel ul { margin:0; padding:0; list-style:none; }
.location-highlight-panel li { position:relative; padding:10px 0 10px 20px; border-bottom:1px solid #ffffff22; font-size:.74rem; line-height:1.35; }
.location-highlight-panel li::before { position:absolute; left:0; color:var(--gold-soft); content:"◆"; font-size:.5rem; }
.location-reference { display:grid; grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr); gap:28px; align-items:start; margin-top:28px; }
.location-map { width:100%; max-width:460px; margin:0; justify-self:end; padding:12px; background:white; border:1px solid var(--line); box-shadow:var(--shadow); }
.location-map img { width:100%; height:auto; object-fit:contain; }
.location-map figcaption { padding:8px 3px 0; color:var(--muted); font-size:.66rem; }
.nearby-panel { padding:clamp(26px,4vw,46px); background:var(--paper); border:1px solid var(--line); }
.nearby-panel h3 { font-size:clamp(1.8rem,3vw,3rem); }
.nearby-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; padding:0; margin:20px 0 0; list-style:none; }
.nearby-list li { padding:10px 0 10px 22px; position:relative; border-bottom:1px solid var(--line); font-size:.84rem; line-height:1.4; }
.nearby-list li::before { position:absolute; left:0; color:var(--gold); content:"●"; font-size:.55rem; }
.location-seo { max-width:980px; margin:30px auto 0; color:var(--muted); text-align:center; font-size:.82rem; }
.lifestyle-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.lifestyle-card { overflow:hidden; background:var(--paper); border:1px solid var(--line); }
.lifestyle-card img { width:100%; height:190px; object-fit:cover; }
.lifestyle-card div { padding:17px; text-align:center; }
.lifestyle-card h3 { font-size:1.3rem; }
.lifestyle-card p { margin:0; color:var(--muted); font-size:.74rem; line-height:1.45; }
.layout-overview-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.layout-overview-card { width:100%; overflow:hidden; display:flex; flex-direction:column; padding:0; color:inherit; background:white; border:1px solid var(--line); text-align:left; text-decoration:none; transition:transform .2s,box-shadow .2s; }
.layout-overview-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.layout-overview-card img { width:100%; aspect-ratio:1.35/1; object-fit:cover; object-position:top; border-bottom:1px solid var(--line); }
.layout-overview-card div { padding:20px; display:flex; flex-direction:column; flex:1; }
.layout-overview-card span { color:var(--gold); font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.layout-overview-card h3 { margin-top:7px; }
.layout-overview-card p { color:var(--muted); font-size:.77rem; }
.layout-overview-card b { margin-top:auto; color:var(--forest-800); font-size:.7rem; text-transform:uppercase; }
.layout-overview-footer { margin-top:22px; text-align:right; }
.layout-overview-footer a { color:var(--forest-800); font-family:"Newsreader",serif; font-size:1.3rem; font-weight:500; text-underline-offset:5px; }
.buyer-advice--row { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; }
.buyer-advice--row span { font-size:.76rem; }
.buyer-advice--row a { margin-left:auto; font-size:.75rem; font-weight:700; }
.architecture-copy { max-width:880px; color:var(--muted); }
.architecture-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:12px; height:650px; }
.architecture-main,.architecture-support figure { position:relative; margin:0; overflow:hidden; }
.architecture-main img,.architecture-support img { width:100%; height:100%; object-fit:cover; }
.architecture-support { display:grid; grid-template-rows:repeat(3,1fr); gap:12px; }
.architecture-main figcaption,.architecture-support figcaption { position:absolute; left:15px; bottom:13px; padding:7px 10px; color:white; background:#10241dcc; font-size:.7rem; text-transform:uppercase; }
.income-summary { display:grid; grid-template-columns:1fr 1fr .8fr; border:1px solid #ffffff25; }
.income-summary > article,.income-summary > aside { padding:30px; border-right:1px solid #ffffff25; }
.income-summary > *:last-child { border-right:0; }
.income-summary article > span,.income-summary aside > span { color:var(--gold-soft); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; }
.income-summary article > strong { display:block; margin:17px 0 2px; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:clamp(2.5rem,4vw,4rem); line-height:.85; white-space:nowrap; }
.income-summary article > strong small { font-family:"DM Sans",sans-serif; font-size:.25em; }
.income-summary article p,.income-summary article em { display:block; color:#bdc8c1; font-size:.68rem; font-style:normal; }
.income-summary article > b { display:block; margin-top:22px; font-family:"Newsreader",serif; font-size:1.7rem; }
.income-summary article > i { display:block; margin-top:20px; color:var(--gold-soft); font-family:"Newsreader",serif; font-size:1.35rem; font-style:normal; }
.income-summary aside { text-align:center; background:#173229; }
.income-summary aside h3 { margin:20px 0; color:var(--gold-soft); font-size:3.2rem; }
.income-summary aside > div { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-bottom:25px; background:#ffffff25; }
.income-summary aside > div b { padding:14px 8px; background:#173229; color:#bdc8c1; font-size:.67rem; }
.income-summary aside > div strong { color:var(--gold-soft); font-size:1.4rem; }
.facility-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.facility-feature-card { position:relative; min-height:430px; overflow:hidden; color:white; }
.facility-feature-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.facility-feature-card::after { position:absolute; inset:0; content:""; background:linear-gradient(transparent 42%,rgba(7,28,22,.95)); }
.facility-feature-card div { position:absolute; z-index:1; left:24px; right:24px; bottom:20px; }
.facility-feature-card h3 { color:var(--gold-soft); font-size:1.65rem; }
.facility-feature-card p { margin:0; font-size:.8rem; }
.facility-list-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:14px; background:var(--line); border:1px solid var(--line); }
.facility-list-grid span { padding:18px; background:var(--paper); text-align:center; font-size:.76rem; font-weight:700; }

@media (max-width: 1100px) {
  .nav-links { display:none; position:absolute; top:82px; left:20px; right:20px; padding:20px; flex-direction:column; align-items:stretch; background:var(--forest-950); box-shadow:var(--shadow); }
  .nav-links.is-open { display:flex; }
  .menu-toggle { display:inline-block; }
  .story-heading,.location-reference { grid-template-columns:1fr; }
  .location-visual-grid { height:auto; grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr); }
  .location-birdeye { min-height:520px; }
  .masterplan-heading .lead { margin-top:0; }
  .lifestyle-grid,.layout-overview-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 980px) {
  .nav-links { display: none; position: absolute; top: 82px; left: 20px; right: 20px; padding: 20px; flex-direction: column; align-items: stretch; background: var(--forest-950); box-shadow: var(--shadow); }
  .nav-links.is-open { display: flex; }
  .menu-toggle { display: inline-block; }
  .facts { grid-template-columns: repeat(3,1fr); }
  .fact:nth-child(3) { border-right: 0; }
  .grid-4, .layout-strip { grid-template-columns: repeat(2,1fr); }
  .benefit-grid { grid-template-columns:repeat(3,1fr); }
  .home-page .benefit-grid { grid-template-columns:repeat(4,1fr); }
  .layout-compact-grid { grid-template-columns:repeat(2,1fr); }
  .guide-link-grid { grid-template-columns:repeat(3,1fr); }
  .guide-premium-grid { grid-template-columns:repeat(2,1fr); }
  .layout-grid { grid-template-columns: repeat(2,1fr); }
  .steps { grid-template-columns: repeat(2,1fr); }
  .managed-grid, .estimate-wrap, .lead-panel { grid-template-columns: 1fr; }
  .income-heading { grid-template-columns:1fr; }
  .income-comparison { grid-template-columns:repeat(2,1fr); }
  .income-comparison-intro { grid-column:1/-1; }
  .income-cta { grid-template-columns:1fr; }
  .income-cta .button-row { justify-content:flex-start; }
  .nav-links--compact { gap:12px; }
  .story-heading,.location-visual-grid,.location-reference { grid-template-columns:1fr; }
  .location-visual-grid { height:auto; }
  .lifestyle-grid { grid-template-columns:repeat(2,1fr); }
  .layout-overview-grid { grid-template-columns:repeat(2,1fr); }
  .income-summary { grid-template-columns:1fr 1fr; }
  .income-summary > aside { grid-column:1/-1; }
}

@media (max-width: 700px) {
  .container, .narrow { width: min(calc(100% - 28px), var(--max)); }
  .section { padding: 68px 0; }
  .grid-2, .grid-3, .grid-4, .layout-grid, .steps, .form-grid, .footer-grid { grid-template-columns: 1fr; }
  .hero-highlights { grid-template-columns:1fr 1fr; }
  .hero-highlight { border-bottom:1px solid #ffffff35; }
  .benefit-grid,.masterplan-explainer,.view-guide,.faq-columns,.guide-link-grid { grid-template-columns:1fr; }
  .home-page .benefit-grid { grid-template-columns:repeat(2,1fr); }
  .receive-list { grid-template-columns:1fr; }
  .guide-premium-grid { grid-template-columns:1fr; }
  .compact-lead { grid-template-columns:1fr; padding:24px; }
  .masterplan-points { columns:1; }
  .layout-compact-grid { grid-template-columns:1fr 1fr; }
  .view-guide-card { grid-template-columns:1fr; }
  .view-guide-card img { min-height:220px; }
  .hero { min-height: 760px; }
  .hero::before { background: linear-gradient(0deg,rgba(9,29,23,.96),rgba(9,29,23,.22)),url("../images/project-ocean-view.jpg") 56% center/cover no-repeat; }
  .hero-content { padding-top: 140px; padding-bottom: 60px; }
  h1 { font-size: clamp(2.8rem,14vw,4.5rem); }
  .button-row, .button { width: 100%; }
  .facts { grid-template-columns: repeat(2,1fr); }
  .fact:nth-child(2n) { border-right: 0; }
  .layout-strip, .service-grid, .estimate-assumptions, .considerations { grid-template-columns: 1fr; }
  .image-frame { min-height: 350px; }
  .field--full { grid-column: auto; }
  .modal { padding: 10px; }
  .modal-dialog { height:calc(100dvh - 20px); padding:20px 10px 10px; }
  .mobile-cta { position: fixed; z-index: 50; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr 1fr; padding: 8px; gap: 8px; background: var(--forest-950); box-shadow: 0 -8px 30px #0003; }
  .mobile-cta .button { min-height: 42px; padding: 9px; font-size: .68rem; }
  .mobile-cta .button--outline { color:white; }
  .site-footer { padding-bottom: 90px; }
  .full-bleed { min-height: 620px; }
  .masterplan-stage,.site-plan-wrap,.facility-run { grid-template-columns: 1fr; }
  .plot-grid { grid-template-columns: 1fr; }
  .masterplan-map { min-height: 410px; }
  .masterplan-feature { width:min(calc(100vw - 28px),1440px); }
  .media-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 330px 230px 230px; }
  .media-tile:first-child { grid-column: 1 / -1; grid-row: auto; }
  .layout-showcase { grid-template-columns: 1fr; }
  .layout-feature { grid-template-columns: 1fr; }
  .layout-feature-image { min-height: 280px; }
  .facility-main { min-height: 480px; }
  .facility-side { grid-template-columns: 1fr 1fr; grid-template-rows: 260px; }
  .view-pair { grid-template-columns: 1fr; }
  .view-card { min-height: 500px; }
  .view-card figcaption { grid-template-columns:1fr; gap:14px; }
  .view-best-for { min-width:0; }
  .outlook-cta { align-items:stretch; flex-direction:column; }
  .masterplan-heading { gap:18px; margin-bottom:22px; }
  .masterplan-heading h2 { font-size:clamp(2.45rem,11vw,3.5rem); }
  .masterplan-heading .lead { margin:0; padding-left:16px; }
  .roi-intro,.roi-grid { grid-template-columns: 1fr; }
  .roi-card-head { align-items: flex-start; flex-direction: column; }
  .roi-result { text-align: left; }
  .income-grid,.income-comparison { grid-template-columns:1fr; }
  .income-card-head { align-items:flex-start; }
  .income-primary strong { font-size:clamp(2.7rem,13vw,4rem); }
  .income-assumptions { grid-template-columns:1fr; }
  .income-comparison-intro { grid-column:auto; }
  .income-comparison > p { grid-column:auto; }
  .income-cta .button-row,.income-cta .button { width:100%; }
  .section-actions,.buyer-advice--row { align-items:flex-start; flex-direction:column; }
  .buyer-advice--row a { margin-left:0; }
  .lifestyle-grid,.layout-overview-grid,.income-summary,.facility-feature-grid,.facility-list-grid { grid-template-columns:1fr; }
  .location-birdeye { min-height:430px; }
  .nearby-list { grid-template-columns:1fr; }
  .architecture-grid { height:auto; grid-template-columns:1fr; }
  .architecture-main { min-height:380px; }
  .architecture-support { grid-template-rows:repeat(3,230px); }
  .income-summary > article,.income-summary > aside { border-right:0; border-bottom:1px solid #ffffff25; }
  .income-summary > aside { grid-column:auto; }
  .hospitality-heading,.hospitality-profile { grid-template-columns:1fr; }
  .hospitality-intro { border-right:0; border-bottom:1px solid #ffffff25; }
  .hospitality-services ul { grid-template-columns:1fr; }
  .facility-feature-card { min-height:390px; }
  .home-page .hero { min-height:760px; }
  .home-page .full-bleed { min-height:620px; }
  .home-page .media-mosaic { grid-template-rows:330px 230px 230px; }
  .home-page .facility-main { min-height:480px; }
  .home-page .view-card { min-height:500px; }
  .floating-whatsapp { display:none; }
}
