/* Client review, September 30: compact groups, explicit actions, existing palette. */
.review-pill { display:inline-flex; align-items:center; justify-content:center; gap:28px; min-height:56px; padding:16px 26px; border:1px solid #a5deef; border-radius:999px; background:#a5deef; color:#0b2635; font:500 15px/1.4 var(--font-body); text-align:center; transition:background 180ms,color 180ms; }
.review-pill--light { background:#f6f5ef; border-color:#f6f5ef; }
.review-pill span { font-size:20px; }
.review-pill:focus-visible { outline:2px solid #fff; outline-offset:5px; }
.hero-actions { position:absolute; z-index:5; left:var(--gutter); bottom:clamp(32px,6vh,72px); display:flex; gap:16px; }
.cinematic-hero__scroll { display:none; }
.projects--intro .editorial-head { display:block; }
.projects--intro .editorial-head > p:last-child { max-width:650px; margin:28px 0 0; font-size:15px; line-height:1.65; }
.ocean-presentation { padding-bottom:0; }
.ocean-presentation + .project-preview { margin-top:18px; }
.project-preview__heading { margin-bottom:12px; }
:is(#ocean-look,#azure-miami,#dream-sunrise) .project-story__copy > a { display:flex; min-height:56px; padding:12px 20px; border:1px solid #a5deef; border-radius:999px; background:#a5deef; color:#0b2635; font-weight:500; }
:is(#ocean-look,#azure-miami,#dream-sunrise) .project-story__copy > a i { width:24px; height:24px; background:transparent; color:inherit; }
@media(min-width:761px) {
  :is(#ocean-look,#azure-miami,#dream-sunrise) .project-story--sky { display:grid; grid-template-rows:auto 1fr; padding:36px 3% 0; min-height:760px; }
  :is(#ocean-look,#azure-miami,#dream-sunrise) .project-story__sky-title { position:relative; inset:auto; text-align:center; }
  :is(#ocean-look,#azure-miami,#dream-sunrise) .project-story__sky-title h2 { margin-top:14px; }
  :is(#ocean-look,#azure-miami,#dream-sunrise) .project-story__copy { position:relative; inset:auto; justify-self:end; align-self:center; margin:36px 0; width:clamp(370px,38%,520px); }
}
.land-selection { padding:24px var(--gutter) 32px; scroll-margin-top:110px; }
.brand-journey .legal-intro.company-overview { padding-top:32px; padding-bottom:40px; }
.company-overview > .eyebrow { margin-bottom:24px; }
.land-selection > header { margin-bottom:32px; }
.land-selection h2 { margin-top:18px; font:700 clamp(28px,3.7vw,60px)/1.15 var(--font-display); letter-spacing:-.03em; }
.land-selection__panel { display:grid; grid-template-columns:200px minmax(0,1fr) auto; align-items:center; gap:32px; padding:36px; border:1px solid #315567; border-radius:24px; background:#102633; }
.land-selection__booklets { position:relative; height:200px; }
.land-selection__booklets > div { position:absolute; width:130px; height:178px; overflow:hidden; border:1px solid #b8d8e066; background:#15394a; box-shadow:0 14px 24px #0005; }
.land-selection__booklets > div:first-child { top:3px; left:2px; transform:rotate(-12deg); }
.land-selection__booklets > div:last-child { top:16px; left:55px; transform:rotate(5deg); }
.land-selection__booklets img { width:100%; height:100%; object-fit:cover; }
.land-selection__booklets span { position:absolute; inset:0; padding:14px 10px; background:linear-gradient(#082636d9,transparent 80%); color:#fff; font:500 7px/1.5 var(--font-body); letter-spacing:.05em; }
.land-selection__booklets b { display:block; margin-top:12px; font:700 20px/1.2 var(--font-display); }
.land-selection__copy h3 { max-width:30ch; font:500 clamp(20px,1.8vw,28px)/1.35 var(--font-body); }
.land-selection__copy p { margin-top:14px; max-width:65ch; color:#bdccd4; font-size:14px; line-height:1.65; }
.land-selection__offers { display:flex; gap:28px; margin-top:24px; }
.land-selection__offers > div + div { border-left:1px solid #ffffff26; padding-left:28px; }
.land-selection__offers dt { font-size:22px; }
.land-selection__offers dd { margin-top:6px; color:#bdccd4; font-size:12px; }
.land-selection__actions { display:grid; gap:18px; justify-items:center; }
.land-selection__actions .text-link { font-size:13px; }
.company-overview .legal-story__heading { margin-bottom:32px; }
.company-overview .legal-story__heading h2 { font-size:clamp(36px,5.3vw,80px); }
.company-overview .legal-intro__facts { margin-top:32px; }
.company-overview .legal-intro__facts span { min-height:150px; }
.company-overview .legal-intro__note { max-width:95ch; margin-bottom:40px; }
.company-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.company-steps > article { padding:24px 0; border-top:1px solid #6ba8bd66; background:#000; }
.company-step__number { color:#a5deef; font:500 13px/1.5 var(--font-body); }
.company-step__copy h3 { margin-top:16px; font:700 clamp(20px,2vw,30px)/1.2 var(--font-display); letter-spacing:-.02em; }
.company-step__copy p { margin-top:18px; color:#b8babc; font-size:14px; line-height:1.7; }
.company-step__copy .text-link { margin-top:18px; font-size:13px; }
.location-region { position:relative; z-index:2; padding:64px var(--gutter) 100px; background:#000; scroll-margin-top:110px; }
.location-region > .eyebrow { margin-bottom:32px; }
.location-region__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); }
.location-region__map h2 { max-width:28ch; font:700 clamp(24px,2.4vw,38px)/1.22 var(--font-display); letter-spacing:-.035em; color:#dce4e6; }
.location-region .island-story { width:100%; height:400px; min-height:0; margin:12px 0 0; overflow:visible; }
.location-region .island-map-surface { position:absolute; top:50%; left:50%; width:min(100%,550px); aspect-ratio:1586 / 992; transform:translate(-50%,-50%); }
.location-region .island-story__scene { inset:0; width:100%; height:100%; filter:none; }
.location-region .island-flags { inset:0; display:block; }
/* Schematic eastern Bukit cluster: Dream north, Ocean slightly east,
   Azure south. Only the callout heads fan out; exact coordinates are in
   the geographic popup maps, not this perspective illustration. */
.location-region .island-flag--one { --pin-x:58%; --pin-y:80%; --flag-x:-34px; --flag-y:-30px; --stem:77.82px; --tilt:-25.91deg; }
.location-region .island-flag--two { --pin-x:57%; --pin-y:89%; --flag-x:-26px; --flag-y:30px; --stem:27.86px; --tilt:-68.96deg; }
.location-region .island-flag--three { --pin-x:57%; --pin-y:73%; --flag-x:28px; --flag-y:-44px; --stem:88.54px; --tilt:18.43deg; }
.location-region .island-flag--four { --pin-x:52%; --pin-y:86%; --flag-x:45px; --flag-y:26px; --stem:47.13px; --tilt:72.72deg; }
.location-region .island-flags .island-flag { position:absolute; top:calc(var(--pin-y) + var(--flag-y)); left:calc(var(--pin-x) + var(--flag-x)); right:auto; bottom:auto; display:block; width:44px; height:64px; border:0; border-radius:0; background:transparent; transform:translate(-50%,-100%); }
.location-region .island-flags .island-flag:is(:hover,.is-active) { transform:translate(-50%,-100%); filter:drop-shadow(0 0 9px #64d3f499); }
.location-region .island-flag:focus-visible { outline:2px solid #a5deef; outline-offset:4px; border-radius:8px; }
.location-region .island-flag > span { display:block; top:24px; bottom:auto; left:50%; height:var(--stem); transform:translateX(-50%) rotate(var(--tilt)); transform-origin:50% 0; pointer-events:none; }
.location-region .island-flag::after { display:block; top:calc(100% - var(--flag-y) - 3px); bottom:auto; left:calc(50% - var(--flag-x) - 3px); right:auto; width:6px; height:6px; background:#a5deef; border:1px solid #fff; box-shadow:0 0 0 2px #092f4380; pointer-events:none; }
.location-region .island-flags .island-flag img { position:absolute; top:0; left:50%; width:28px; height:34px; transform:translateX(-50%); }
.location-region .island-flags .island-flag small { display:block; position:absolute; top:8px; left:calc(50% + 18px); right:auto; padding:5px 7px; border:1px solid #aee1f33d; border-radius:99px; background:#062539f2; font-size:7px; }
.location-region .island-flags :is(.island-flag--one,.island-flag--two) small { left:auto; right:calc(50% + 18px); }
/* A dashed region marker distinguishes land offers from property locations. */
.location-region .island-flag--four::after { width:16px; height:10px; margin:-2px 0 0 -5px; border-style:dashed; background:transparent; box-shadow:none; }
.location-region .island-card { z-index:6; width:min(420px,calc(100% - 12px)); height:300px; top:46%; }
.location-region__nusa h3 { margin:0; font:700 clamp(27px,3vw,46px)/1.15 var(--font-display); letter-spacing:-.025em; }
.location-region__nusa h3 em { color:#9eafb7; font-style:normal; }
.location-region__nusa > p { margin-top:24px; max-width:56ch; font-size:15px; line-height:1.65; color:#b8c3c9; }
.location-region .location__tags { margin-top:22px; flex-wrap:wrap; }
.location-region .location__tags span { padding:8px 12px; font-size:9px; }
.location-region__photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:28px; }
.location-region__photos figure { margin:0; min-width:0; }
.location-region__photos img { display:block; width:100%; height:auto; aspect-ratio:1.35; object-fit:cover; border-radius:10px; }
.location-region__photos figcaption { margin-top:10px; color:#bdc7cc; font-size:11px; line-height:1.5; }
@media(hover:hover) {
  .review-pill:hover, :is(#ocean-look,#azure-miami,#dream-sunrise) .project-story__copy > a:hover { background:#c9edf7; color:#0b2635; }
}
@media(max-width:1100px) {
  .land-selection__panel { grid-template-columns:160px 1fr; gap:24px; padding:28px; }
  .land-selection__booklets { transform:scale(.85); transform-origin:left center; }
  .land-selection__actions { grid-column:2; display:flex; flex-wrap:wrap; justify-content:flex-start; }
}
@media(max-width:900px) {
  .location-region .island-card { top:12px; left:12px; right:12px; width:calc(100% - 24px); }
}
@media(max-width:760px) {
  .hero-actions { right:18px; left:18px; bottom:max(28px,env(safe-area-inset-bottom)); gap:10px; }
  .hero-actions .review-pill { flex:1; min-width:0; padding:14px 12px; gap:10px; font-size:13px; }
  .projects--intro .editorial-head > p:last-child { font-size:14px; margin-top:22px; }
  .ocean-presentation + .project-preview { margin-top:14px; }
  .land-selection { padding-top:12px; }
  .land-selection__panel { display:flex; flex-direction:column; align-items:stretch; padding:24px; gap:20px; }
  .land-selection__booklets { width:190px; height:178px; align-self:center; transform:scale(.9); }
  .land-selection__copy h3 { font-size:23px; }
  .land-selection__offers { gap:16px; }
  .land-selection__offers > div + div { padding-left:16px; }
  .land-selection__offers dt { font-size:20px; }
  .land-selection__offers dd { font-size:11px; }
  .land-selection__actions { display:grid; justify-items:stretch; text-align:center; }
  .land-selection__actions .review-pill { width:100%; }
  .land-selection__actions .text-link { justify-content:center; }
  .company-steps { grid-template-columns:1fr; gap:4px; }
  .company-step__copy h3 { font-size:24px; }
  .company-overview .legal-intro__facts span { min-height:126px; }
  .location-region { padding-top:32px; padding-bottom:64px; }
  .location-region__grid { grid-template-columns:1fr; gap:32px; }
  .location-region__map h2 { max-width:32ch; font-size:24px; }
  .location-region .island-story { height:340px; }
  .location-region .island-map-surface { max-width:468px; }
  .location-region__photos { gap:8px; }
  .location-region__photos figcaption { font-size:10px; }
}
