/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Description: Autumn Hill Manor custom theme built on Astra
Author: Propellex
Template: astra
Version: 1.0.0
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  --ink-900:#211D19; --ink-800:#2E2824; --ink-700:#3E372F; --ink-600:#51483D; --ink-500:#6B6052;
  --green-50:#F7F9E9; --green-100:#ECF1C8; --green-200:#DBE595; --green-300:#C9D75A;
  --green-400:#B8C42A; --green-500:#9FAC1F; --green-600:#7F8A1E; --green-700:#626C1C;
  --green-800:#4A521A; --green-900:#353B16;
  --sand-50:#FAF7F1; --sand-100:#F2ECE0; --sand-200:#E7DDCD; --sand-300:#D7C9B3;
  --sand-400:#BCAC90; --sand-500:#9A8A70; --sand-600:#786A54; --sand-700:#5C5040; --sand-800:#41382C;
  --clay-50:#FBF1EB; --clay-100:#F5DDD0; --clay-200:#E9B79D; --clay-300:#DB9270;
  --clay-400:#CD744F; --clay-500:#B95E3B; --clay-600:#9A4D31; --clay-700:#793D27;
  --gold-300:#D8BE6E; --gold-400:#C6A24A; --gold-500:#A9883A;
  --bg:var(--sand-50); --surface:#FFFFFF; --surface-warm:#F6F1E8;
  --text:var(--ink-800); --text-soft:var(--sand-700); --text-muted:var(--sand-600);
  --brand:var(--green-400); --brand-deep:var(--green-700);
  --accent:var(--clay-400); --accent-deep:var(--clay-600);
  --border:var(--sand-200); --border-soft:var(--sand-100);
  --radius-xs:6px; --radius-sm:10px; --radius-md:14px; --radius-lg:20px; --radius-xl:28px; --radius-pill:999px;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px; --space-32:128px;
  --shadow-xs:0 1px 2px rgba(46,40,36,.06); --shadow-sm:0 2px 8px rgba(46,40,36,.07);
  --shadow-md:0 8px 20px rgba(46,40,36,.09); --shadow-lg:0 16px 36px rgba(46,40,36,.12);
  --shadow-xl:0 28px 60px rgba(46,40,36,.16);
  --font-display:'Newsreader', Georgia, 'Times New Roman', serif;
  --font-sans:'Mulish', system-ui, -apple-system, sans-serif;
  --header-h:84px;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--font-sans); background:var(--bg); color:var(--text);
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection { background:var(--green-200); color:var(--ink-900); }
img { max-width:100%; display:block; }
a { color:inherit; }

/* ============================================================
   HIDE ASTRA'S BUILT-IN HEADER & FOOTER
   ============================================================ */
#masthead,
.ast-site-header-wrap,
.ast-primary-header-bar,
.ast-above-header-wrap,
.ast-below-header-wrap,
.ast-desktop-header,
.ast-site-footer,
#colophon,
.ast-footer-copyright {
  display: none !important;
}

/* ============================================================
   LAYOUT HELPERS
   ============================================================ */
.wrap { max-width:1200px; margin:0 auto; padding:0 clamp(20px,5vw,56px); }
.section { padding:clamp(64px,9vw,112px) 0; }
.center { text-align:center; }

/* ============================================================
   TYPOGRAPHY HELPERS
   ============================================================ */
.eyebrow {
  display:inline-flex; align-items:center; gap:9px;
  font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.15em;
  color:var(--brand-deep); margin-bottom:var(--space-4);
}
.eyebrow::before { content:""; width:24px; height:2px; background:var(--green-400); border-radius:2px; }
.center .eyebrow::after { content:""; width:24px; height:2px; background:var(--green-400); border-radius:2px; }
h1,h2,h3 { font-family:var(--font-display); font-weight:400; color:var(--ink-900); letter-spacing:-.01em; text-wrap:balance; }
.h-display { font-size:clamp(34px,4.6vw,52px); line-height:1.07; letter-spacing:-.018em; }
h2.title { font-size:clamp(27px,3.4vw,40px); line-height:1.1; }
h3.sub { font-size:clamp(21px,2.4vw,28px); line-height:1.2; font-weight:500; }
.lede { font-size:clamp(17px,1.5vw,19px); line-height:1.6; color:var(--text-soft); text-wrap:pretty; }
.em { font-style:italic; color:var(--brand-deep); }
.muted { color:var(--text-muted); }
.section-head { max-width:680px; margin:0 auto var(--space-12); }
.section-head.left { margin-left:0; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-sans); font-weight:800; font-size:16px; line-height:1;
  padding:17px 28px; border-radius:var(--radius-pill); border:2px solid transparent;
  cursor:pointer; text-decoration:none; transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn svg { width:19px; height:19px; }
.btn-primary { background:var(--clay-400); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover { background:var(--clay-500); transform:translateY(-2px); box-shadow:var(--shadow-md); color:#fff; }
.btn-secondary { background:transparent; color:var(--ink-800); border-color:var(--sand-300); }
.btn-secondary:hover { border-color:var(--ink-800); background:var(--surface); transform:translateY(-2px); }
.btn-ghost-light { background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.28); }
.btn-ghost-light:hover { background:rgba(255,255,255,.16); transform:translateY(-2px); }
.btn-green { background:var(--green-400); color:var(--ink-900); box-shadow:var(--shadow-sm); }
.btn-green:hover { background:var(--green-300); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-gold { background:var(--gold-400); color:var(--ink-900); box-shadow:var(--shadow-sm); letter-spacing:.06em; text-transform:uppercase; font-size:15px; }
.btn-gold:hover { background:var(--gold-300); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-lg { padding:20px 34px; font-size:17px; }
.link-arrow { display:inline-flex; align-items:center; gap:7px; font-weight:800; color:var(--accent-deep); text-decoration:none; font-size:15px; }
.link-arrow svg { width:16px; height:16px; transition:transform .15s ease; }
.link-arrow:hover svg { transform:translateX(4px); }

/* ============================================================
   HEADER
   ============================================================ */
.header { position:sticky; top:0; z-index:100; background:var(--ink-800); color:#fff; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); height:var(--header-h); }
.logo { display:flex; align-items:center; flex-shrink:0; text-decoration:none; }
.logo img { height:46px; width:auto; }
.header .wrap { max-width:none; padding:0 clamp(16px,2.5vw,40px); }
.header .btn-primary { padding:13px 22px; font-size:15px; }
.nav { display:flex; align-items:center; gap:0; }
.nav > a {
  color:rgba(255,255,255,.86); text-decoration:none; font-weight:600; font-size:15px; white-space:nowrap;
  padding:9px 10px; border-radius:var(--radius-sm); transition:background .15s ease, color .15s ease;
}
.nav > a:hover { background:rgba(255,255,255,.09); color:#fff; }
.header-actions { display:flex; align-items:center; gap:var(--space-4); flex-shrink:0; }
.phone-link { display:flex; align-items:center; gap:9px; color:#fff; text-decoration:none; font-weight:700; font-size:15px; }
.phone-link svg { width:18px; height:18px; color:var(--green-300); }
.phone-link small { display:block; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--green-300); }
.hamburger { display:none; background:none; border:none; cursor:pointer; padding:8px; color:#fff; }
.hamburger svg { width:30px; height:30px; }

/* Desktop dropdown nav */
.nav-item { position:relative; display:flex; align-items:center; }
.nav-item > a {
  display:inline-flex; align-items:center; gap:5px;
  color:rgba(255,255,255,.86); text-decoration:none; font-weight:600; font-size:15px; white-space:nowrap;
  padding:9px 10px; border-radius:var(--radius-sm); transition:background .15s ease, color .15s ease;
}
.nav-item > a:hover { background:rgba(255,255,255,.09); color:#fff; }
.nav-caret { width:13px; height:13px; opacity:.7; transition:transform .2s ease; }
.nav-item:hover .nav-caret, .nav-item:focus-within .nav-caret { transform:rotate(180deg); }
.nav-item::after { content:""; position:absolute; left:0; right:0; top:100%; height:22px; }
.dropdown {
  position:absolute; top:calc(100% + 18px); left:0; min-width:250px;
  background:#fff; border:1px solid var(--border); border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg); padding:8px; display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease; z-index:120;
}
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown a {
  display:block; padding:11px 14px; border-radius:var(--radius-sm);
  color:var(--ink-700); font-size:15px; font-weight:600; white-space:nowrap; text-decoration:none;
}
.dropdown a:hover { background:var(--surface-warm); color:var(--ink-900); }
.dropdown a.all { color:var(--brand-deep); border-top:1px solid var(--border-soft); margin-top:4px; padding-top:13px; }

/* Mobile drawer */
.drawer { position:fixed; inset:0; z-index:200; display:none; }
.drawer.open { display:block; }
.drawer-scrim { position:absolute; inset:0; background:rgba(33,29,25,.5); backdrop-filter:blur(3px); }
.drawer-panel {
  position:absolute; top:0; right:0; height:100%; width:min(380px,86vw);
  background:var(--sand-50); box-shadow:var(--shadow-xl); padding:var(--space-6);
  overflow-y:auto; display:flex; flex-direction:column; gap:var(--space-2);
}
.drawer-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-4); }
.drawer-head .x { background:none; border:none; cursor:pointer; padding:6px; color:var(--ink-800); }
.drawer-head .x svg { width:28px; height:28px; }
.drawer-panel a.dlink {
  padding:14px 16px; border-radius:var(--radius-md); text-decoration:none;
  color:var(--ink-800); font-weight:700; font-size:18px;
}
.drawer-panel a.dlink:hover { background:var(--surface-warm); }
.drawer-cta { display:flex; flex-direction:column; gap:var(--space-3); margin-top:var(--space-5); }
.dgroup {
  display:flex; align-items:center; justify-content:space-between; width:100%; gap:10px;
  padding:14px 16px; border-radius:var(--radius-md); background:none; border:none; cursor:pointer;
  font-family:var(--font-sans); font-weight:700; font-size:18px; color:var(--ink-800); text-align:left;
}
.dgroup:hover { background:var(--surface-warm); }
.dgroup .caret { width:18px; height:18px; color:var(--text-muted); transition:transform .2s ease; }
.dgroup.open .caret { transform:rotate(180deg); }
.dsub { display:none; flex-direction:column; padding:2px 0 8px 14px; }
.dsub.open { display:flex; }
.dsub a {
  padding:11px 16px; border-radius:var(--radius-md); text-decoration:none;
  color:var(--text-soft); font-weight:600; font-size:16px;
}
.dsub a:hover { background:var(--surface-warm); color:var(--ink-900); }

/* ============================================================
   ICON HELPER
   ============================================================ */
.icon { fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.icon-fill { fill:currentColor; stroke:none; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background:var(--ink-800); color:rgba(250,247,241,.7); padding:var(--space-20) 0 var(--space-8); }
.footer-top {
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:var(--space-10); padding-bottom:var(--space-12);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-brand img { height:54px; margin-bottom:var(--space-5); }
.footer-brand p { font-size:15.5px; line-height:1.65; max-width:34ch; margin-bottom:var(--space-6); }
.footer-contact { display:flex; flex-direction:column; gap:12px; font-size:15px; }
.footer-contact a,
.footer-contact div { display:flex; align-items:flex-start; gap:11px; color:rgba(250,247,241,.82); text-decoration:none; }
.footer-contact svg { width:18px; height:18px; color:var(--green-300); flex-shrink:0; margin-top:3px; }
.footer-contact a:hover { color:#fff; }
.footer-col h4 {
  font-family:var(--font-sans); font-size:13px; font-weight:800; text-transform:uppercase;
  letter-spacing:.13em; color:var(--green-300); margin-bottom:var(--space-5);
}
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col a { color:rgba(250,247,241,.74); text-decoration:none; font-size:15.5px; }
.footer-col a:hover { color:#fff; }
.footer-cta {
  display:grid; grid-template-columns:1fr auto; align-items:center;
  gap:var(--space-6); padding:var(--space-8) 0; border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-cta b { font-family:var(--font-display); font-size:clamp(22px,2.6vw,30px); font-weight:400; color:#fff; }
.footer-cta .tag { font-style:italic; color:var(--green-300); font-size:16px; margin-top:4px; }
.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  gap:var(--space-5); padding-top:var(--space-8); flex-wrap:wrap; font-size:14px;
}
.footer-bottom .legal { display:flex; gap:var(--space-5); }
.footer-bottom a { color:rgba(250,247,241,.6); text-decoration:none; }
.footer-bottom a:hover { color:#fff; }

/* ============================================================
   HERO
   ============================================================ */
.hero { position:relative; overflow:hidden; background:var(--ink-800); isolation:isolate; }
.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; display:block; }
.hero-scrim {
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(96deg, rgba(28,30,24,.92) 0%, rgba(28,30,24,.78) 30%, rgba(28,30,24,.42) 56%, rgba(28,30,24,.12) 80%, rgba(28,30,24,0) 100%);
}
.hero-inner {
  position:relative; z-index:2; display:flex; align-items:center;
  min-height:clamp(540px,74vh,720px); padding:clamp(48px,7vw,92px) 0 clamp(72px,9vw,120px);
}
.hero .wrap.hero-inner { max-width:none; padding-left:clamp(16px,2.5vw,40px); padding-right:clamp(16px,2.5vw,40px); }
.hero-copy { max-width:600px; color:#fff; }
.hero-headline {
  font-family:var(--font-display); font-weight:400; color:#fff;
  font-size:clamp(40px,5.6vw,68px); line-height:1.02; letter-spacing:-.01em;
}
.hero-script {
  display:block; font-family:'Dancing Script', cursive; font-weight:700;
  color:var(--gold-300); font-size:clamp(54px,7.4vw,96px); line-height:.9; letter-spacing:.005em; margin-top:2px;
}
.hero .lede { margin:var(--space-6) 0 0; max-width:46ch; color:rgba(250,247,241,.9); font-size:clamp(17px,1.9vw,21px); line-height:1.65; }
.hero-divider { width:140px; height:2px; background:var(--gold-400); border:none; margin:var(--space-8) 0; opacity:.9; }
.hero-cta { display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center; }

/* ============================================================
   TRUST BAR
   ============================================================ */
.trustbar { background:var(--green-900); color:#fff; }
.trustbar .wrap { display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding:0; max-width:none; }
.trust-item {
  display:flex; align-items:center; gap:16px;
  padding:26px clamp(16px,2.4vw,36px); font-weight:700; font-size:16px; line-height:1.3; position:relative;
}
.trust-item + .trust-item::before { content:""; position:absolute; left:0; top:22%; bottom:22%; width:1px; background:rgba(214,190,110,.28); }
.trust-item .tic { width:42px; height:42px; flex-shrink:0; color:var(--gold-300); }
.trust-item .tic svg { width:42px; height:42px; }
.trust-item b { display:block; font-weight:700; color:#fff; }
.trust-item span { display:block; color:rgba(250,247,241,.72); font-weight:600; font-size:15px; }

/* ============================================================
   WELCOME
   ============================================================ */
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.split.reverse .split-media { order:2; }
.photo { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); background:var(--sand-100); }
.photo img { width:100%; height:100%; object-fit:cover; display:block; }
.split-media .photo { aspect-ratio:5/4.4; }
.welcome-sign { font-family:var(--font-display); font-style:italic; font-size:22px; color:var(--brand-deep); margin-top:var(--space-6); }
.welcome-sign small { display:block; font-family:var(--font-sans); font-style:normal; font-size:14px; font-weight:700; color:var(--text-muted); margin-top:2px; letter-spacing:.02em; }

/* ============================================================
   BACKGROUND VARIANTS
   ============================================================ */
.bg-warm { background:var(--surface-warm); }
.bg-ink  { background:var(--ink-800); color:var(--sand-50); }
.bg-ink h2, .bg-ink h3 { color:#fff; }
.bg-ink .lede  { color:rgba(250,247,241,.78); }
.bg-ink .eyebrow { color:var(--green-300); }
.bg-ink .eyebrow::before { background:var(--green-300); }

/* ============================================================
   SERVICES — card grid
   ============================================================ */
.card-grid { display:grid; gap:var(--space-6); }
.cols-3 { grid-template-columns:repeat(3,1fr); }
.cols-2 { grid-template-columns:repeat(2,1fr); }

.service-card {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xs); transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease;
  display:flex; flex-direction:column; overflow:hidden;
}
.service-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--sand-300); }
.service-card .card-photo { aspect-ratio:16/10; overflow:hidden; background:var(--sand-100); }
.service-card .card-photo img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.service-card:hover .card-photo img { transform:scale(1.05); }
.service-card .card-body { padding:var(--space-6) var(--space-8) var(--space-8); display:flex; flex-direction:column; flex:1; }
.service-card .ic {
  width:48px; height:48px; border-radius:var(--radius-md); background:var(--green-100);
  display:flex; align-items:center; justify-content:center; color:var(--green-700); margin-bottom:var(--space-4);
}
.service-card .ic svg { width:24px; height:24px; }
.service-card h3 { font-size:22px; font-weight:500; margin-bottom:var(--space-3); }
.service-card p { font-size:15.5px; color:var(--text-soft); margin-bottom:var(--space-5); flex:1; }
.service-card .link-arrow { margin-top:auto; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.stars { display:flex; gap:3px; color:var(--clay-400); }
.stars svg { width:20px; height:20px; }

.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.testi {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:var(--space-8); box-shadow:var(--shadow-xs); display:flex; flex-direction:column;
}
.testi .stars { margin-bottom:var(--space-4); }
.testi .stars svg { width:18px; height:18px; }
.testi blockquote { font-size:16.5px; line-height:1.6; color:var(--ink-800); margin:0 0 var(--space-6) 0; padding:0; border:none; flex:1; }
.testi .who { display:flex; align-items:center; gap:13px; }
.testi .avatar {
  width:46px; height:46px; border-radius:var(--radius-pill); background:var(--green-100);
  color:var(--green-700); display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:17px; font-family:var(--font-display); flex-shrink:0;
}
.testi .who b { font-size:16px; color:var(--ink-900); display:block; }
.testi .who small { font-size:13px; color:var(--text-muted); }

/* ============================================================
   WHY GRID
   ============================================================ */
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-8) var(--space-10); }
.why-item { display:flex; flex-direction:column; gap:var(--space-3); }
.why-item .ic { width:56px; height:56px; border-radius:var(--radius-md); background:rgba(184,196,42,.14); display:flex; align-items:center; justify-content:center; color:var(--green-300); }
.why-item .ic svg { width:28px; height:28px; }
.why-item h3 { font-size:20px; font-weight:500; }
.why-item p  { font-size:15px; color:rgba(250,247,241,.74); }

/* ============================================================
   CARE SUPPORT
   ============================================================ */
.care-list { display:flex; flex-direction:column; gap:var(--space-3); margin-top:var(--space-6); }
.care-row  { display:flex; align-items:center; gap:16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:18px 22px; box-shadow:var(--shadow-xs); }
.care-row .ic { width:44px; height:44px; flex-shrink:0; border-radius:var(--radius-sm); background:var(--clay-50); display:flex; align-items:center; justify-content:center; color:var(--clay-500); }
.care-row .ic svg { width:23px; height:23px; }
.care-row b { font-size:16.5px; font-weight:700; color:var(--ink-900); }
.care-row p { font-size:14px; color:var(--text-muted); }

/* ============================================================
   FLOOR PLANS FEATURE
   ============================================================ */
.feature-spec { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-4); margin-top:var(--space-8); }
.spec { display:flex; align-items:center; gap:14px; }
.spec .ic { width:44px; height:44px; flex-shrink:0; border-radius:var(--radius-md); background:var(--green-100); display:flex; align-items:center; justify-content:center; color:var(--green-700); }
.spec .ic svg { width:22px; height:22px; }
.spec b     { font-size:15.5px; font-weight:700; color:var(--ink-900); display:block; line-height:1.2; }
.spec small { font-size:13.5px; color:var(--text-muted); }
.sqft-tag { position:absolute; right:-18px; top:32px; background:var(--green-400); color:var(--ink-900); border-radius:var(--radius-lg); padding:18px 24px; box-shadow:var(--shadow-lg); text-align:center; }
.sqft-tag b     { font-family:var(--font-display); font-size:32px; line-height:1; display:block; }
.sqft-tag small { font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }

/* ============================================================
   AMENITIES
   ============================================================ */
.amenity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }
.amenity {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:24px; display:flex; align-items:center; gap:16px; box-shadow:var(--shadow-xs);
  transition:transform .15s ease, box-shadow .2s ease; text-decoration:none; color:inherit;
}
.amenity:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.amenity .ic { width:50px; height:50px; flex-shrink:0; border-radius:var(--radius-md); background:var(--surface-warm); display:flex; align-items:center; justify-content:center; color:var(--brand-deep); }
.amenity .ic svg { width:26px; height:26px; }
.amenity b     { font-size:16.5px; font-weight:700; color:var(--ink-900); display:block; line-height:1.2; }
.amenity small { font-size:13.5px; color:var(--text-muted); }

/* ============================================================
   GALLERY
   ============================================================ */
.gallery { columns:4; column-gap:var(--space-4); }
.gallery figure { break-inside:avoid; margin:0 0 var(--space-4); position:relative; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); }
.gallery img { width:100%; display:block; transition:transform .5s ease; }
.gallery figure:hover img { transform:scale(1.05); }
.gallery figcaption {
  position:absolute; left:0; right:0; bottom:0; padding:30px 16px 14px; color:#fff;
  font-family:var(--font-display); font-size:17px; font-weight:500; letter-spacing:.005em;
  background:linear-gradient(transparent, rgba(33,29,25,.78));
}

/* ============================================================
   CALCULATOR CTA
   ============================================================ */
.panel { border-radius:var(--radius-xl); padding:clamp(36px,5vw,64px); position:relative; overflow:hidden; }
.calc-panel { background:var(--green-100); border:1px solid var(--green-200); }
.calc-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:var(--space-10); align-items:center; }
.calc-panel h2   { color:var(--green-900); }
.calc-panel .lede { color:var(--green-900); opacity:.82; }
.calc-visual { background:var(--surface); border-radius:var(--radius-lg); padding:var(--space-8); box-shadow:var(--shadow-md); }
.calc-visual .row { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--border-soft); font-size:16px; }
.calc-visual .row:last-of-type { border-bottom:none; }
.calc-visual .row.total { font-family:var(--font-display); font-size:26px; color:var(--ink-900); padding-top:18px; }
.calc-visual .row.total .amt { color:var(--brand-deep); font-weight:600; }
.calc-visual .bar { height:8px; background:var(--sand-100); border-radius:var(--radius-pill); overflow:hidden; margin-top:18px; }
.calc-visual .bar i { display:block; height:100%; width:62%; background:var(--green-400); border-radius:var(--radius-pill); }

/* ============================================================
   LOCATIONS
   ============================================================ */
.loc-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:var(--space-4); }
.loc {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:22px 24px; box-shadow:var(--shadow-xs); transition:transform .15s ease, box-shadow .2s ease;
  text-decoration:none; color:inherit; display:block;
}
.loc:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.loc .pin { color:var(--accent); margin-bottom:10px; }
.loc .pin svg { width:22px; height:22px; }
.loc b     { font-family:var(--font-display); font-size:21px; font-weight:500; color:var(--ink-900); display:block; }
.loc small { font-size:14px; color:var(--text-muted); }

/* ============================================================
   FINAL CTA BANNER
   ============================================================ */
.cta-banner { background:var(--ink-800); color:#fff; text-align:center; }
.cta-banner::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 80% 20%, rgba(184,196,42,.16), transparent 55%); pointer-events:none; }
.cta-banner > .wrap { position:relative; }
.cta-banner h2    { color:#fff; margin-bottom:var(--space-4); }
.cta-banner .lede { color:rgba(250,247,241,.82); max-width:60ch; margin:0 auto var(--space-8); }
.cta-banner .eyebrow { justify-content:center; color:var(--green-300); }
.cta-actions { display:flex; flex-wrap:wrap; gap:var(--space-4); justify-content:center; }

/* ============================================================
   PLACEHOLDER (no image yet)
   ============================================================ */
.ph {
  background-image:repeating-linear-gradient(135deg, var(--sand-100), var(--sand-100) 12px, var(--sand-200) 12px, var(--sand-200) 24px);
  border:1px solid var(--border); border-radius:var(--radius-lg);
  display:flex; align-items:center; justify-content:center; min-height:200px; text-align:center;
}
.ph code {
  font-family:'SF Mono', ui-monospace, monospace; font-size:12.5px; color:var(--sand-700);
  background:rgba(250,247,241,.9); padding:8px 15px; border-radius:var(--radius-pill); letter-spacing:.02em;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
.phone-link .ptext { display:none; }
@media (min-width:1440px) { .phone-link .ptext { display:block; } }
@media (max-width:1320px) {
  .nav { display:none; }
  .hamburger { display:inline-flex; }
}
@media (max-width:520px) { .phone-link { display:none; } }
@media (max-width:1080px) { .gallery { columns:3; } }
@media (max-width:900px) {
  .split, .calc-grid, .split.reverse .split-media { grid-template-columns:1fr; }
  .split.reverse .split-media { order:0; }
  .cols-3, .testi-grid { grid-template-columns:repeat(2,1fr); }
  .why-grid, .amenity-grid { grid-template-columns:repeat(2,1fr); }
  .footer-top { grid-template-columns:1fr 1fr; gap:var(--space-8); }
  .footer-brand { grid-column:1 / -1; }
  .sqft-tag { right:12px; top:12px; }
  .feature-spec { grid-template-columns:1fr; }
  .trustbar .wrap { grid-template-columns:repeat(2,1fr); }
  .trust-item:nth-child(odd)::before { display:none; }
  .gallery { columns:2; }
}
@media (max-width:600px) {
  .cols-3, .cols-2, .testi-grid, .why-grid, .amenity-grid, .feature-spec { grid-template-columns:1fr; }
  .footer-top, .footer-cta, .footer-bottom { grid-template-columns:1fr; }
  .footer-cta { text-align:center; justify-items:center; }
  .hero-cta .btn, .cta-actions .btn { width:100%; }
  .trustbar .wrap { grid-template-columns:1fr; }
  .gallery { columns:1; }
  .calc-grid { grid-template-columns:1fr; }
}
