
:root {
  --forest: #173a2b;
  --forest-2: #244a38;
  --cream: #f5f1e7;
  --paper: #fbfaf6;
  --gold: #b69456;
  --ink: #1b211c;
  --muted: #6d746d;
  --line: rgba(23,58,43,.18);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, Arial, sans-serif;
  font-weight: 300;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.site-header {
  position: fixed;
  z-index: 20;
  top: 0; left: 0; right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 5vw;
  color: white;
  transition: .3s ease;
}
.site-header.scrolled {
  color: var(--forest);
  background: rgba(251,250,246,.94);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 var(--line);
}
.brand { display: inline-flex; flex-direction: column; line-height: .9; }
.brand-main {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  letter-spacing: .08em;
  font-weight: 600;
}
.brand-sub {
  margin-top: 7px;
  font-size: 10px;
  letter-spacing: .42em;
  color: var(--gold);
  text-align: center;
  font-weight: 600;
}
.nav { display: flex; align-items: center; gap: 30px; font-size: 13px; font-weight: 500; }
.nav-cta { border: 1px solid currentColor; padding: 12px 17px; }
.menu-toggle { display:none; background:none; border:0; color:inherit; font:inherit; }
.hero {
  min-height: 95vh;
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background:
    linear-gradient(120deg, rgba(14,41,29,.22), rgba(14,41,29,.72)),
    radial-gradient(circle at 75% 28%, rgba(184,159,104,.35), transparent 25%),
    linear-gradient(160deg, #7b927d 0%, #2f5943 45%, #173a2b 100%);
}
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  z-index: 0;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(110deg, rgba(10,34,24,.72) 0%, rgba(16,48,34,.48) 48%, rgba(10,31,23,.34) 100%);
}
.hero:before {
  content:"";
  position:absolute; inset:0;
  opacity:.18;
  z-index: 1;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(112deg, transparent 0 60px, rgba(255,255,255,.035) 61px 62px),
    repeating-linear-gradient(18deg, transparent 0 90px, rgba(255,255,255,.025) 91px 92px);
}
.hero-content {
  position: relative;
  z-index: 2;
  color: white;
  max-width: 820px;
  margin: 0 6vw 10vh;
}
.eyebrow,.section-kicker {
  font-size: 11px;
  letter-spacing: .28em;
  font-weight: 600;
  text-transform: uppercase;
}
.hero h1, h2, h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
}
.hero h1 { font-size: clamp(62px, 10vw, 150px); line-height:.78; margin: 18px 0 32px; }
.hero-sub { max-width: 590px; font-size: 19px; line-height: 1.65; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:36px; }
.button { display:inline-block; padding:15px 22px; text-transform:uppercase; font-size:11px; letter-spacing:.16em; font-weight:600; border:0; cursor:pointer; }
.button-light { background:white; color:var(--forest); }
.button-dark { background:var(--forest); color:white; }
.text-link { font-size:12px; text-transform:uppercase; letter-spacing:.16em; font-weight:600; }
.section { padding: 110px 7vw; }
.intro { background: var(--cream); }
.intro-grid { display:grid; grid-template-columns: 1.15fr .85fr; gap:9vw; align-items:start; }
.intro h2,.split-heading h2,.coming-soon h2,.location-section h2,.contact h2 {
  font-size: clamp(45px, 6vw, 86px);
  line-height: .98;
  margin: 18px 0 0;
  color: var(--forest);
}
.intro-copy { padding-top: 20px; line-height:1.8; color:#4e574f; font-size:16px; }
.feature-band {
  display:grid; grid-template-columns:repeat(3,1fr);
  background:var(--forest); color:white;
  padding: 34px 7vw;
}
.feature-band div { padding: 12px 28px; border-right:1px solid rgba(255,255,255,.16); }
.feature-band div:first-child { padding-left:0; }
.feature-band div:last-child { border-right:0; }
.feature-band span { display:block; color:#d6c193; font-size:11px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:10px; }
.feature-band strong { font-family:"Cormorant Garamond",Georgia,serif; font-size:21px; font-weight:500; }
.site-plan-section { background:white; }
.split-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:8vw; align-items:end; margin-bottom:54px; }
.split-heading p:last-child { color:var(--muted); line-height:1.7; max-width:600px; }
.plan-frame {
  border:1px solid var(--line);
  background:#fff;
  padding: 18px;
  box-shadow: 0 22px 70px rgba(34,55,43,.08);
}
.plan-frame img { width:100%; }
.plan-notes { display:flex; align-items:center; gap:26px; margin-top:20px; font-size:12px; color:#596059; }
.swatch { display:inline-block; width:15px; height:15px; margin-right:8px; vertical-align:middle; border:1px solid #777; }
.swatch.gold { background:#eadba4; }
.swatch.outline { background:white; }
.fine-print { margin-left:auto; font-size:11px; }
.coming-soon { background:var(--cream); }
.coming-card { background:white; padding:48px; border:1px solid rgba(23,58,43,.09); }
.coming-card.large { min-height:460px; display:flex; flex-direction:column; justify-content:flex-end; background:
  linear-gradient(135deg, rgba(23,58,43,.02), rgba(182,148,86,.12)), white; }
.coming-card.large p:not(.section-kicker) { max-width:650px; line-height:1.8; color:var(--muted); }
.coming-pill { align-self:flex-start; border:1px solid var(--gold); color:var(--forest); padding:10px 13px; margin-top:24px; font-size:10px; letter-spacing:.17em; font-weight:600; }
.future-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px; }
.coming-card h3 { font-size:34px; color:var(--forest); margin:12px 0 16px; }
.coming-card p { color:var(--muted); line-height:1.7; }
.coming-card > span { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.location-section { display:grid; grid-template-columns:1fr 1fr; min-height:650px; background:white; }
.location-copy { align-self:center; }
.location-copy > p:last-child { max-width:560px; line-height:1.85; color:var(--muted); }
.location-art {
  position:relative; overflow:hidden; background:var(--forest); color:white;
  display:grid; place-items:center; text-align:center; letter-spacing:.15em; line-height:1.7; font-weight:500;
}
.rings { position:absolute; width:520px; height:520px; border:1px solid rgba(255,255,255,.24); border-radius:50%; }
.rings:before,.rings:after { content:""; position:absolute; inset:55px; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.rings:after { inset:110px; }
.location-art span { z-index:2; }
.contact { background:#ede7da; display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; }
.contact-copy p:last-child { color:var(--muted); line-height:1.8; max-width:480px; }
.interest-form { background:white; padding:44px; box-shadow:0 25px 70px rgba(35,44,37,.08); }
label { display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:#555f56; margin-bottom:22px; }
input,select {
  width:100%; border:0; border-bottom:1px solid #b9beb8; padding:11px 0 13px;
  font:inherit; font-size:15px; background:transparent; outline:none; border-radius:0;
}
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.form-status { color:var(--forest); font-size:12px; line-height:1.5; }
footer { background:#102a20; color:white; padding:60px 7vw; display:grid; grid-template-columns:1fr auto; gap:22px; align-items:end; }
.footer-brand { grid-row:span 2; }
.footer-small { max-width:550px; color:rgba(255,255,255,.55); font-size:10px; line-height:1.6; text-align:right; }
.reveal { opacity:0; transform:translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 850px) {
  .site-header { padding:16px 5vw; }
  .menu-toggle { display:block; z-index:25; }
  .nav {
    position:fixed; inset:0; background:var(--forest); color:white; flex-direction:column;
    justify-content:center; transform:translateY(-100%); transition:.35s ease;
  }
  .nav.open { transform:none; }
  .brand-main { font-size:21px; }
  .hero { min-height:86vh; }
  .hero-content { margin:0 6vw 8vh; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
  .intro-grid,.split-heading,.contact,.location-section { grid-template-columns:1fr; }
  .feature-band,.future-grid { grid-template-columns:1fr; }
  .feature-band div { padding:20px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .feature-band div:last-child { border-bottom:0; }
  .section { padding:78px 6vw; }
  .plan-frame { padding:7px; overflow-x:auto; }
  .plan-frame img { min-width:780px; }
  .plan-notes { flex-wrap:wrap; }
  .fine-print { width:100%; margin-left:0; }
  .future-grid .coming-card { padding:34px; }
  .location-art { min-height:430px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  footer { grid-template-columns:1fr; }
  .footer-small { text-align:left; }
}

/* Edinburgh setting photography */
.edinburgh-setting {
  background: #f8f5ee;
  border-top: 1px solid rgba(23,58,43,.08);
  border-bottom: 1px solid rgba(23,58,43,.08);
}
.setting-heading {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 8vw;
  align-items: end;
  margin-bottom: 52px;
}
.setting-heading h2 {
  font-size: clamp(45px, 6vw, 82px);
  line-height: .98;
  margin: 18px 0 0;
  color: var(--forest);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
}
.setting-heading > p:last-child {
  color: var(--muted);
  line-height: 1.8;
  max-width: 590px;
}
.setting-gallery {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 18px;
}
.setting-gallery-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 18px;
}
.setting-image {
  margin: 0;
  overflow: hidden;
  background: #e8e3d7;
  min-height: 0;
}
.setting-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s ease;
}
.setting-image:hover img { transform: scale(1.025); }
.setting-image-feature { min-height: 560px; }
.setting-gallery-side .setting-image { min-height: 271px; }
.setting-image-wide {
  grid-column: 1 / -1;
  height: clamp(300px, 36vw, 520px);
  margin-top: 0;
}
.setting-image-wide img { object-position: center 44%; }
.setting-caption {
  margin: 18px 0 0;
  max-width: 880px;
  color: #7a817b;
  font-size: 11px;
  line-height: 1.65;
}

@media (max-width: 850px) {
  .setting-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 36px; }
  .setting-gallery { grid-template-columns: 1fr; }
  .setting-gallery-side { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .setting-image-feature { min-height: 390px; }
  .setting-gallery-side .setting-image { min-height: 220px; }
  .setting-image-wide { grid-column: auto; height: 330px; }
}

@media (max-width: 560px) {
  .setting-gallery-side { grid-template-columns: 1fr; }
  .setting-image-feature,
  .setting-gallery-side .setting-image,
  .setting-image-wide { min-height: 0; height: 300px; }
}


/* Edinburgh editorial mockup presentation */
.setting-heading-centered {
  display:block;
  max-width:1100px;
  margin:0 auto 42px;
  text-align:center;
}
.setting-heading-centered .section-kicker { letter-spacing:.36em; }
.setting-heading-centered h2 {
  font-size:clamp(52px,7vw,94px);
  line-height:.94;
  margin:14px 0 18px;
  text-transform:uppercase;
}
.setting-heading-centered > p:last-child {
  max-width:980px;
  margin:0 auto;
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:clamp(20px,2vw,28px);
  line-height:1.2;
  color:#38463f;
}
.setting-mockup {
  margin:0;
  overflow:hidden;
  border-radius:14px;
  box-shadow:0 18px 50px rgba(23,58,43,.10);
  background:#f5f1e7;
}
.setting-mockup img { display:block; width:100%; height:auto; }
.setting-caption-centered {
  max-width:900px;
  margin:18px auto 0;
  text-align:center;
}
@media (max-width:700px) {
  .setting-heading-centered { margin-bottom:28px; }
  .setting-mockup { border-radius:8px; }
}


/* Readability upgrade — larger supporting text for easier reading */
body {
  font-size: 18px;
  line-height: 1.7;
}

p,
li,
label,
input,
select,
textarea,
button {
  font-size: 1.05rem;
}

.eyebrow,
.kicker,
.section-kicker,
.hero-eyebrow {
  font-size: 0.9rem;
  letter-spacing: 0.18em;
}

.hero p,
.hero-copy,
.intro p,
.section-copy,
.location-copy,
.gallery-copy,
.vip-copy {
  font-size: 1.15rem;
  line-height: 1.75;
}

nav a,
.nav a,
.site-nav a {
  font-size: 0.98rem;
}

small,
.small,
.disclaimer,
.gallery-disclaimer,
.site-plan-note {
  font-size: 0.92rem;
  line-height: 1.65;
}

input,
select,
textarea {
  min-height: 48px;
}

@media (max-width: 700px) {
  body {
    font-size: 17px;
  }

  .hero p,
  .hero-copy,
  .intro p,
  .section-copy,
  .location-copy,
  .gallery-copy,
  .vip-copy {
    font-size: 1.08rem;
  }

  small,
  .small,
  .disclaimer,
  .gallery-disclaimer,
  .site-plan-note {
    font-size: 0.9rem;
  }
}


/* Footer brand lockup — tighten THE WOODLANDS / AT EDINBURGH spacing */
.footer-brand,
.site-footer .brand,
footer .brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.08rem;
  line-height: 1;
}

.footer-brand .brand-sub,
.site-footer .brand .brand-sub,
footer .brand .brand-sub,
.footer-brand small,
.site-footer .brand small,
footer .brand small {
  margin-top: 0.18rem;
  line-height: 1.1;
}


/* Site-wide readability pass
   Keeps display headings elegant while making all supporting copy easier to read. */
html {
  font-size: 18px;
}

body {
  font-size: 18px;
  line-height: 1.7;
}

p,
li,
label,
input,
select,
textarea,
button,
.card p,
.future-grid p,
.coming-card p,
.split-heading > p,
.plan-notes,
.location-section p,
.vip-section p,
.setting-caption,
.fine-print,
footer p,
footer a {
  font-size: 1rem !important;
  line-height: 1.7 !important;
}

.hero-copy,
.intro-copy,
.section-copy,
.setting-copy,
.location-copy,
.vip-copy {
  font-size: 1.1rem !important;
  line-height: 1.75 !important;
}

.section-kicker,
.eyebrow,
.kicker,
.coming-pill,
.future-grid span,
.plan-notes span,
nav a,
.site-nav a {
  font-size: 0.88rem !important;
  line-height: 1.4 !important;
}

.fine-print,
.setting-caption,
.disclaimer,
.site-plan-note,
small {
  font-size: 0.88rem !important;
  line-height: 1.6 !important;
}

/* Improve legibility of lighter supporting copy without changing brand colors. */
.card p,
.future-grid p,
.coming-card p,
.split-heading > p,
.location-section p,
.vip-section p,
.setting-caption,
.fine-print {
  opacity: 0.92;
}

input,
select,
textarea {
  min-height: 50px;
}

@media (max-width: 900px) {
  html, body {
    font-size: 17px;
  }
}

@media (max-width: 600px) {
  html, body {
    font-size: 17px;
  }

  p,
  li,
  label,
  .card p,
  .future-grid p,
  .coming-card p,
  .split-heading > p,
  .location-section p,
  .vip-section p {
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }

  .section-kicker,
  .eyebrow,
  .kicker,
  .coming-pill,
  .future-grid span,
  .plan-notes span,
  nav a,
  .site-nav a {
    font-size: 0.84rem !important;
  }
}


/* Approved illustrated location map */
.location-map {
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  overflow: hidden;
  min-height: 520px;
  background: #f5f1e7;
}

.location-map img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (max-width: 900px) {
  .location-map,
  .location-map img {
    min-height: 390px;
  }
}

@media (max-width: 600px) {
  .location-map,
  .location-map img {
    min-height: 300px;
  }
}

/* Anti-spam honeypot for VIP form */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
