:root{
  --ink:#172b2d;
  --ink-2:#213b3d;
  --deep:#0b2327;
  --deep-2:#102f33;
  --sea:#315f62;
  --sea-soft:#dcebea;
  --ivory:#f8f5ee;
  --ivory-2:#efe9df;
  --paper:#fffdf9;
  --gold:#b9985d;
  --gold-light:#d8c39a;
  --white:#ffffff;
  --muted:#6e7d7d;
  --line:rgba(23,43,45,.12);
  --line-dark:rgba(255,255,255,.16);
  --shadow:0 24px 60px rgba(13,35,38,.10);
  --shadow-soft:0 14px 36px rgba(13,35,38,.07);
  --serif:"Bodoni 72","Didot","Baskerville","Times New Roman",serif;
  --sans:"Avenir Next","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.68;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1240px,90vw);margin:auto}

/* Slim luxury utility bar */
.topbar{background:var(--deep);color:rgba(255,255,255,.76);font-size:.69rem;letter-spacing:.11em;text-transform:uppercase;padding:.62rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.topbar .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* Header */
header{position:sticky;top:0;z-index:50;background:rgba(248,245,238,.95);backdrop-filter:blur(18px);border-bottom:1px solid rgba(23,43,45,.09);box-shadow:0 8px 26px rgba(11,35,39,.035)}
nav{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand{position:relative;text-decoration:none;font-family:var(--serif);font-size:1.48rem;font-weight:500;letter-spacing:.015em;color:var(--deep);padding-left:1.05rem}
.brand:before{content:"";position:absolute;left:0;top:.15rem;bottom:.15rem;width:1px;background:var(--gold)}
.brand small{display:block;margin-top:.18rem;font-family:var(--sans);font-size:.56rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.navlinks{display:flex;gap:1.42rem;align-items:center;font-size:.75rem;font-weight:600;letter-spacing:.06em}
.navlinks>a:not(.btn){position:relative;text-decoration:none;padding:.5rem 0}
.navlinks>a:not(.btn):after{content:"";position:absolute;left:0;right:100%;bottom:.18rem;height:1px;background:var(--gold);transition:right .25s ease}
.navlinks>a:not(.btn):hover:after{right:0}

/* Buttons: explicit contrast rules */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.78rem 1.32rem;border-radius:2px;text-decoration:none;font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);background:var(--paper);transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(11,35,39,.09)}
.btn.primary{background:var(--deep);border-color:var(--deep);color:#fff}
.btn.primary:hover{background:var(--ink-2);border-color:var(--ink-2)}
.btn.secondary{background:transparent;color:var(--ink);border-color:rgba(23,43,45,.35)}

/* Hero */
.hero{position:relative;min-height:82vh;display:grid;align-items:end;color:#fff;background:url('../images/hero-private-island-bahamas.jpg') center/cover;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,24,27,.90) 0%,rgba(5,24,27,.72) 36%,rgba(5,24,27,.18) 75%),linear-gradient(0deg,rgba(5,24,27,.42),transparent 48%)}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;border:1px solid rgba(255,255,255,.10);pointer-events:none}
.hero .wrap{padding:10.5rem 0 6.2rem}
.eyebrow{display:flex;align-items:center;gap:.75rem;font-size:.67rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.eyebrow:before{content:"";width:34px;height:1px;background:currentColor;flex:0 0 34px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.02;margin:.34em 0;color:inherit}
.hero h1{font-size:clamp(3.9rem,7.7vw,7.4rem);max-width:950px;letter-spacing:-.035em;text-wrap:balance}
.hero p{font-family:var(--sans);font-size:1.05rem;line-height:1.8;max-width:680px;color:rgba(255,255,255,.86)}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.9rem}
.hero .btn.primary{background:var(--gold);border-color:var(--gold);color:var(--deep)}
.hero .btn.primary:hover{background:var(--gold-light);border-color:var(--gold-light)}
.hero .btn.secondary{color:#fff;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.55)}
.hero .btn.secondary:hover{background:#fff;color:var(--deep);border-color:#fff}

/* General sections */
section{padding:6.4rem 0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:4rem;margin-bottom:2.8rem}
.section-head h2{font-size:clamp(2.7rem,4.6vw,4.7rem);max-width:820px;letter-spacing:-.025em}
.lead{font-size:1rem;line-height:1.85;color:var(--muted);max-width:660px}
.section-head>.lead{max-width:440px}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:-2.35rem;position:relative;z-index:3;background:rgba(185,152,93,.28);border:1px solid rgba(185,152,93,.32);box-shadow:var(--shadow)}
.stat{background:rgba(255,253,249,.98);border-radius:0;padding:1.75rem 1.55rem;box-shadow:none}
.stat strong{display:block;font-family:var(--serif);font-size:2.35rem;font-weight:500;color:var(--deep);letter-spacing:-.025em}
.stat span,.stat small{color:var(--muted)}

/* Editorial cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.45rem}
.card{background:var(--paper);border:1px solid rgba(23,43,45,.09);border-radius:0;overflow:hidden;box-shadow:none;transition:transform .28s ease,box-shadow .28s ease}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft)}
.card img{height:285px;width:100%;object-fit:cover;transition:transform .6s ease}
.card:hover img{transform:scale(1.025)}
.card-body{padding:1.65rem 1.6rem 1.8rem}
.card h3{font-size:2rem;letter-spacing:-.015em}
.tag{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.45rem}
.price{font-size:1.06rem;font-weight:700;color:var(--deep);letter-spacing:.02em}
.card p{color:var(--muted);font-size:.93rem}
.card a.more{display:inline-block;margin-top:.3rem;text-decoration:none;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--sea);border-bottom:1px solid rgba(49,95,98,.35);padding-bottom:.18rem}
.card a.more:hover{color:var(--deep);border-color:var(--gold)}

/* Split content */
.split{display:grid;grid-template-columns:1.08fr .92fr;gap:5rem;align-items:center}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:0;padding:2.45rem;box-shadow:var(--shadow-soft)}
.panel h3{font-size:2.15rem}

/* Dark premium section */
.dark{position:relative;background:var(--deep);color:#fff;overflow:hidden}
.dark:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(185,152,93,.16);border-radius:50%;right:-240px;top:-260px;pointer-events:none}
.dark .lead,.dark p{color:rgba(255,255,255,.7)}
.dark .btn:not(.primary){color:#fff;background:transparent;border-color:rgba(255,255,255,.42)}
.dark .btn:not(.primary):hover{color:var(--deep);background:#fff;border-color:#fff}
.dark .panel{color:var(--ink);background:#f7f3ea;border-color:rgba(185,152,93,.25)}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(23,43,45,.14);border:1px solid var(--line)}
.step{background:var(--paper);padding:2rem 1.55rem;border:0;border-radius:0;min-height:230px}
.step span{display:block;font-family:var(--serif);font-size:2.35rem;color:var(--gold);margin-bottom:1.5rem}
.step h3{font-size:1.7rem}
.step p{font-size:.9rem;color:var(--muted)}

/* FAQ */
.faq details{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:1.45rem .15rem;margin:0}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{font-family:var(--serif);font-size:1.45rem;font-weight:500;cursor:pointer;list-style:none;padding-right:2rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:.2rem;top:0;font-family:var(--sans);font-weight:300;color:var(--gold)}
.faq details[open] summary:after{content:"–"}
.faq details p{max-width:900px;color:var(--muted);margin-top:1rem}

/* CTA */
.cta{position:relative;background:linear-gradient(120deg,var(--deep),#183d40);color:#fff;border-radius:0;padding:4rem 4.3rem;overflow:hidden;border:1px solid rgba(185,152,93,.24)}
.cta:after{content:"";position:absolute;right:-80px;bottom:-150px;width:360px;height:360px;border:1px solid rgba(185,152,93,.22);border-radius:50%;pointer-events:none}
.cta h2{font-size:clamp(3rem,5vw,5rem);max-width:900px;letter-spacing:-.03em}
.cta p{max-width:780px;color:rgba(255,255,255,.72)}
.cta .btn,.cta .btn.secondary{color:var(--deep)!important;background:var(--gold)!important;border-color:var(--gold)!important}
.cta .btn:hover,.cta .btn.secondary:hover{background:var(--gold-light)!important;border-color:var(--gold-light)!important}
.cta .btn[style*="color:white"]{color:#fff!important;background:transparent!important;border-color:rgba(255,255,255,.55)!important}
.cta .btn[style*="color:white"]:hover{color:var(--deep)!important;background:#fff!important;border-color:#fff!important}

/* Footer */
footer{background:#071a1d;color:rgba(255,255,255,.67);padding:4.2rem 0 2.4rem;border-top:1px solid rgba(185,152,93,.24)}
footer .brand{color:#fff}
.footgrid{display:grid;grid-template-columns:1.65fr 1fr 1fr;gap:4rem}
.footer-links strong{display:block;color:var(--gold-light);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.85rem}
.footer-links a{display:block;color:rgba(255,255,255,.72);text-decoration:none;margin:.5rem 0;font-size:.88rem}
.footer-links a:hover{color:#fff}
.fine{font-size:.72rem;line-height:1.7;color:rgba(255,255,255,.42);margin-top:3rem;padding-top:1.7rem;border-top:1px solid rgba(255,255,255,.08)}

/* Inner page heroes */
.page-hero{position:relative;padding:8.5rem 0 5.5rem;background:linear-gradient(135deg,var(--deep),#173f42);color:#fff;overflow:hidden}
.page-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(185,152,93,.18);border-radius:50%;right:-180px;top:-290px}
.page-hero h1{font-size:clamp(3.6rem,6.2vw,6.2rem);max-width:980px;letter-spacing:-.035em}
.breadcrumbs{font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:1.8rem;color:rgba(255,255,255,.62)}
.breadcrumbs a{color:rgba(255,255,255,.82);text-decoration:none}

/* Tables */
.table-wrap{overflow:auto;border-radius:0;box-shadow:var(--shadow-soft);border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;background:var(--paper)}
th,td{text-align:left;padding:1.1rem 1.15rem;border-bottom:1px solid rgba(23,43,45,.08);vertical-align:top}
th{background:#e8e2d8;color:var(--deep);font-size:.64rem;text-transform:uppercase;letter-spacing:.13em}
td{font-size:.9rem}
.notice{border-left:2px solid var(--gold);background:#f2ede4;padding:1.2rem 1.35rem;border-radius:0}
.source-note{font-size:.76rem;color:var(--muted)}

/* Image bands */
.image-band{min-height:470px;border-radius:0;background:url('../images/private-island-lagoon.jpg') center/cover;box-shadow:var(--shadow-soft);outline:1px solid rgba(185,152,93,.16);outline-offset:-10px}
.two-col-list{columns:2;column-gap:2.5rem}
.two-col-list li{margin-bottom:.65rem}
.marketbar{display:flex;height:5px;border-radius:0;overflow:hidden;background:rgba(255,255,255,.12);margin:1.5rem 0 1rem}
.marketbar i:nth-child(1){width:15%;background:var(--gold-light)}
.marketbar i:nth-child(2){width:55%;background:#799fa0}
.marketbar i:nth-child(3){width:30%;background:#2f6266}

/* Regional visual grid */
.region-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}
.region-card{position:relative;min-height:470px;border-radius:0;overflow:hidden;color:#fff;display:flex;align-items:flex-end;background:var(--deep);text-decoration:none;box-shadow:var(--shadow-soft)}
.region-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.region-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,20,23,.02) 32%,rgba(3,20,23,.84) 100%)}
.region-card:before{content:"";position:absolute;z-index:2;inset:14px;border:1px solid rgba(255,255,255,.18);pointer-events:none}
.region-card:hover img{transform:scale(1.035)}
.region-card-content{position:relative;z-index:3;padding:2.2rem 2.25rem}
.region-card h3{font-size:2.45rem;letter-spacing:-.02em}
.region-card p{max-width:520px;color:rgba(255,255,255,.76);font-size:.91rem}
.region-links{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}
.region-links .btn{padding:.68rem .95rem;color:#fff;background:rgba(7,26,29,.35);border-color:rgba(255,255,255,.48)}
.region-links .btn:hover{background:#fff;color:var(--deep);border-color:#fff}

/* Region hero */
.region-hero{min-height:67vh;display:flex;align-items:flex-end;color:#fff;background-position:center;background-size:cover;position:relative;isolation:isolate}
.region-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,22,25,.9),rgba(3,22,25,.5) 50%,rgba(3,22,25,.12)),linear-gradient(0deg,rgba(3,22,25,.48),transparent 54%)}
.region-hero .wrap{position:relative;z-index:2;padding:9rem 0 5.3rem}
.region-hero .wrap:after{content:"";position:absolute;left:0;bottom:3.8rem;width:70px;height:1px;background:var(--gold)}
.region-hero h1{font-size:clamp(3.8rem,6.6vw,6.6rem);max-width:980px;letter-spacing:-.035em}
.region-hero p{max-width:720px;color:rgba(255,255,255,.8)}

.seo-links{display:flex;flex-wrap:wrap;gap:.6rem}
.seo-links a{padding:.62rem .9rem;background:transparent;border:1px solid rgba(49,95,98,.24);border-radius:0;text-decoration:none;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--sea)}
.seo-links a:hover{background:var(--deep);border-color:var(--deep);color:#fff}

.mobile-toggle{display:none}

/* Preserve inline white-button intent without white-on-white text */
a.btn[style*="background:white"],a.btn[style*="background: white"]{color:var(--deep)!important}
a.btn[style*="border-color:#8dd9d3"],a.btn[style*="border-color: #8dd9d3"]{color:#fff!important;background:transparent!important}

@media(max-width:980px){
  .navlinks{display:none}
  nav{min-height:78px}
  .stats,.cards,.steps{grid-template-columns:1fr 1fr}
  .split,.footgrid{grid-template-columns:1fr;gap:2.7rem}
  .hero{min-height:72vh}
  .hero .wrap{padding:8rem 0 5rem}
  .section-head{display:block}
  .section-head>.lead{margin-top:1.2rem;max-width:720px}
  .region-card{min-height:410px}
}
@media(max-width:720px){
  .wrap{width:min(92vw,640px)}
  .topbar .wrap{display:block}
  .topbar span{display:block;margin:.12rem 0}
  .brand{font-size:1.3rem}
  .stats,.cards,.steps,.region-grid{grid-template-columns:1fr}
  .stats{margin-top:0}
  .hero h1{font-size:clamp(3.15rem,16vw,4.8rem)}
  .hero .wrap{padding:6.8rem 0 4.5rem}
  section{padding:4.4rem 0}
  .section-head h2{font-size:clamp(2.6rem,11vw,3.7rem)}
  .region-card{min-height:390px}
  .region-card-content{padding:1.6rem}
  .region-card h3{font-size:2.05rem}
  .cta{padding:2.6rem 1.6rem}
  .two-col-list{columns:1}
  .page-hero{padding:6.5rem 0 4.3rem}
  .page-hero h1,.region-hero h1{font-size:clamp(3.1rem,14vw,4.6rem)}
  .region-hero{min-height:58vh}
  .region-hero .wrap{padding:7rem 0 4.5rem}
  .image-band{min-height:360px}
}

/* BHHS Bahamas logo in white navigation strip */
.header-logo{padding-left:0;display:flex;align-items:center;flex:0 0 auto}
.header-logo:before{display:none}
.header-logo img{display:block;width:300px;max-width:27vw;height:auto;object-fit:contain}
@media(max-width:980px){.header-logo img{width:245px;max-width:48vw}}
@media(max-width:640px){.header-logo img{width:205px;max-width:60vw}}
