/* ============================================================
   Highland — Concept 1 (Soft & Rounded) design system
   Loaded AFTER styles.css to re-skin. Palette + fonts locked
   (navy / blue / white / gold · Cormorant Garamond + DM Sans).
   Homepage body sections are scoped under .c1 during staged rollout.
   ============================================================ */
:root{
  --h-navy:#0A1628; --h-navy-2:#13243f; --h-blue:#1B4D89; --h-blue-dk:#143b6b;
  --h-gold:#C9A84C; --h-gold-dk:#9a7d2e; --h-paper:#fff; --h-warm:#F6F4EF;
  --h-ink:#0A1628; --h-mut:#5b6473; --h-line:rgba(10,22,40,.1);
  --h-ease:cubic-bezier(.16,1,.3,1);
}
body{background:var(--h-warm);color:var(--h-ink);font-family:'DM Sans',sans-serif;font-size:18px;line-height:1.7}

/* reveal-on-scroll — fail-safe: if JS doesn't add .in within 100ms (no observer, JS disabled, etc.), all elements become visible via the no-js fallback class on <html> */
.h-reveal{opacity:0;transform:translateY(28px) scale(.99);transition:opacity .8s var(--h-ease),transform .8s var(--h-ease)}
.h-reveal.in{opacity:1;transform:none}
html.no-reveal-js .h-reveal{opacity:1;transform:none}

/* ---------- NAV (global) ---------- */
nav#mainNav{position:sticky;top:0;height:auto;padding:20px 44px;background:rgba(246,244,239,.88);backdrop-filter:blur(12px);border-bottom:1px solid transparent;box-shadow:none;transition:.35s var(--h-ease)}
nav#mainNav.scrolled{background:rgba(246,244,239,.94);border-bottom-color:var(--h-line);box-shadow:0 4px 24px rgba(10,22,40,.07)}
nav#mainNav .nav-logo-top{color:var(--h-navy);font-size:36px;letter-spacing:.02em}
nav#mainNav .nav-logo-sub{color:var(--h-gold-dk);font-size:12px;letter-spacing:.3em}
nav#mainNav .nav-links{gap:40px}
nav#mainNav .nav-links a{color:var(--h-navy);font-size:18px;font-weight:500;letter-spacing:.01em;text-transform:none}
nav#mainNav .nav-links a:hover{color:var(--h-blue)}
nav#mainNav .nav-links a.nav-cta,nav#mainNav .nav-cta{background:var(--h-blue)!important;color:#fff!important;border-radius:100px!important;padding:13px 28px!important;font-size:16px!important;text-transform:none!important;letter-spacing:0!important}
nav#mainNav .nav-cta:hover{background:var(--h-blue-dk)!important}
nav#mainNav .hamburger span{background:var(--h-navy)}
.h-allmodels-wrap{text-align:center;margin-top:44px}
.h-allmodels-btn{display:inline-block;background:transparent;border:1.5px solid var(--h-gold);color:var(--h-gold);border-radius:100px;padding:12px 28px;font-size:15px;font-weight:600;letter-spacing:.01em;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.25s var(--h-ease)}
.h-allmodels-btn:hover{background:var(--h-gold);color:var(--h-navy)}
nav#mainNav .nav-logo{display:flex;align-items:center;cursor:pointer}
nav#mainNav .nav-logo-img{height:50px;width:auto;display:block}
@media(max-width:560px){nav#mainNav .nav-logo-img{height:30px}}

/* Concept 1 nav clearance — SJNC's homes toolbar lives at top:96px (inline style on the element); the mobile override below shrinks it for narrow viewports */
@media(max-width:780px){.homes-toolbar{top:78px}}

/* Above Leaflet's .leaflet-top/.leaflet-bottom containers (z-index 1000)
   so the homes-page map controls don't draw over the fixed nav/toolbar on scroll. */
nav#mainNav{z-index:1100}
.homes-toolbar{z-index:1099}

/* ---------- buttons (global) ---------- */
.h-btn{display:inline-block;padding:15px 30px;border-radius:100px;font-size:15px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;border:none;transition:.25s var(--h-ease);text-decoration:none}
.h-btn-blue{background:var(--h-blue);color:#fff}
.h-btn-blue:hover{background:var(--h-blue-dk);transform:translateY(-2px)}
.h-btn-gold{background:var(--h-gold);color:var(--h-navy)}
.h-btn-gold:hover{background:#dbbd6b;transform:translateY(-2px)}
.h-btn-line{background:transparent;border:1.5px solid var(--h-navy);color:var(--h-navy)}
.h-btn-line:hover{background:var(--h-navy);color:#fff}

/* ============================================================
   HOMEPAGE (.c1)
   ============================================================ */
/* one shared container so every section's left/right edges align */
.c1 .wrapx,.c1 .h-about,.c1 .h-band{width:min(1160px, 100% - 64px);margin-inline:auto}
.c1 .keyb{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--h-gold-dk);margin-bottom:12px}

/* hero — rounded contained card + search */
.c1 .h-hero{padding:0;max-width:none;width:100%;margin:0}
.c1 .h-hero-card{position:relative;width:100%;border-radius:0;overflow:hidden;min-height:78vh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--h-navy)}
.c1 .h-hero-card>img,.c1 .h-hero-card>video.h-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.c1 .h-hero-card::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,22,40,.55),rgba(10,22,40,.32) 42%,rgba(10,22,40,.62))}
.c1 .h-hero-in{position:relative;z-index:2;color:#fff;padding:80px 24px;width:100%;max-width:1000px;margin:0 auto}
.c1 .h-hero-eyebrow{display:inline-block;background:rgba(255,255,255,.14);backdrop-filter:blur(4px);padding:8px 18px;border-radius:100px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-bottom:24px;color:#fff}
.c1 .h-hero h1{font-family:'Cormorant Garamond',serif;font-weight:700;line-height:1.04;font-size:clamp(44px,6.2vw,84px);color:#fff;margin:0;white-space:nowrap}
.c1 .h-hero h1 em{font-style:italic;color:var(--h-gold)}
.c1 .h-hero .h-sub{font-size:clamp(8px,2.6vw,20px);color:rgba(255,255,255,.9);max-width:none;margin:22px auto 30px;font-weight:300;white-space:nowrap}
.c1 .h-search{display:flex;gap:8px;background:#fff;padding:8px;border-radius:100px;max-width:560px;margin:0 auto;box-shadow:0 20px 50px rgba(10,22,40,.3)}
.c1 .h-search input{flex:1;border:none;outline:none;padding:0 22px;font-family:inherit;font-size:16px;color:var(--h-ink);background:transparent}
.c1 .h-search button{background:var(--h-blue);color:#fff;border:none;padding:14px 28px;border-radius:100px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:.25s}
.c1 .h-search button:hover{background:var(--h-blue-dk)}
.c1 .h-hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.h-btn-line-light{background:transparent;border:1.5px solid rgba(255,255,255,.7);color:#fff}
.h-btn-line-light:hover{background:#fff;color:var(--h-navy);border-color:#fff;transform:translateY(-2px)}
.c1 .h-hero-cue{position:absolute;left:50%;bottom:22px;z-index:3;transform:translateX(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:100px;color:rgba(255,255,255,.85);text-decoration:none;animation:h-hero-cue-bounce 1.8s var(--h-ease) infinite}
.c1 .h-hero-cue svg{width:22px;height:22px}
.c1 .h-hero-cue:hover{color:#fff;background:rgba(255,255,255,.1)}
@keyframes h-hero-cue-bounce{0%,100%{transform:translateX(-50%) translateY(0);opacity:.78}50%{transform:translateX(-50%) translateY(6px);opacity:1}}
@media(prefers-reduced-motion:reduce){.c1 .h-hero-cue{animation:none}}

/* generic section */
.c1 .h-sec{padding:60px 0}
.c1 .h-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:38px}
.c1 .h-sec-head h2{font-family:'Cormorant Garamond',serif;font-weight:700;line-height:1.05;font-size:clamp(32px,4.2vw,52px);color:var(--h-navy);margin:0}
.c1 .h-sec-head .h-lk{color:var(--h-blue);font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap}

/* restyle JS-rendered listing cards to Concept 1 (rounded) — homepage AND homes-page bottom grid */
.c1 #featuredListings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
:is(.c1 #featuredListings, #homesCardListFull) .listing-card{background:#fff;border-radius:22px;overflow:hidden;border:none;box-shadow:0 4px 24px rgba(10,22,40,.06);transition:.35s var(--h-ease);margin:0;display:flex;flex-direction:column;height:100%}
:is(.c1 #featuredListings, #homesCardListFull) .listing-card:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(10,22,40,.14)}
:is(.c1 #featuredListings, #homesCardListFull) .listing-img{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:0;margin:0}
:is(.c1 #featuredListings, #homesCardListFull) .listing-img img{transition:.7s var(--h-ease)}
:is(.c1 #featuredListings, #homesCardListFull) .listing-card:hover .listing-img img{transform:scale(1.07)}
:is(.c1 #featuredListings, #homesCardListFull) .listing-badge{top:14px;left:14px;right:auto;border-radius:100px;padding:6px 13px;font-size:11px;letter-spacing:.08em}
:is(.c1 #featuredListings, #homesCardListFull) .listing-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
:is(.c1 #featuredListings, #homesCardListFull) .listing-address{font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:700;color:var(--h-navy);line-height:1.1;margin-bottom:4px}
:is(.c1 #featuredListings, #homesCardListFull) .listing-city{font-size:13px;color:var(--h-mut);margin-bottom:14px}
:is(.c1 #featuredListings, #homesCardListFull) .listing-specs{border-top:1px solid var(--h-line);padding-top:14px;gap:16px}
:is(.c1 #featuredListings, #homesCardListFull) .listing-spec{font-size:13px;color:var(--h-mut)}
:is(.c1 #featuredListings, #homesCardListFull) .listing-price{color:var(--h-blue);margin-top:14px}
:is(.c1 #featuredListings, #homesCardListFull) .listing-model{margin-top:6px;margin-bottom:14px}
:is(.c1 #featuredListings, #homesCardListFull) .notify-btn{margin-top:auto;border-radius:100px;background:var(--h-blue);color:#fff;border:none;width:100%}
/* All listing cards same height across rows; price row reserves consistent space */
:is(.c1 #featuredListings, #homesCardListFull){grid-auto-rows:1fr}
:is(.c1 #featuredListings, #homesCardListFull) .listing-price{min-height:54px;display:flex;align-items:center;font-size:24px!important;font-weight:600;line-height:1.1}

/* about card (rounded, two-col) */
.c1 .h-about{background:#fff;border-radius:28px;overflow:hidden;margin-top:0}
.c1 .h-about-in{display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:center;padding:56px 56px}
.c1 .h-about-img{border-radius:20px;overflow:hidden;aspect-ratio:1/1}
.c1 .h-about-img img{width:100%;height:100%;object-fit:cover;display:block}
.c1 .h-about h2{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:clamp(30px,3.6vw,46px);color:var(--h-navy);margin:10px 0 18px;line-height:1.08}
.c1 .h-about h2 em{font-style:italic;color:var(--h-blue)}
.c1 .h-about p{color:var(--h-mut);margin-bottom:16px}
.c1 .h-stats{display:flex;gap:40px;margin-top:24px}
.c1 .h-stats .n{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:700;color:var(--h-blue);line-height:1}
.c1 .h-stats .n b{color:var(--h-gold)}
.c1 .h-stats .l{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--h-mut);margin-top:4px}

/* communities teaser cards (rounded) */
.c1 .h-comms{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.c1 .h-comm{position:relative;border-radius:24px;overflow:hidden;min-height:300px;display:flex;align-items:flex-end;color:#fff}
.c1 .h-comm img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:.7s var(--h-ease)}
.c1 .h-comm:hover img{transform:scale(1.05)}
.c1 .h-comm::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(10,22,40,.86));z-index:1}
.c1 .h-comm-in{position:relative;z-index:2;padding:30px 32px}
.c1 .h-comm .pill{display:inline-block;background:var(--h-gold);color:var(--h-navy);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:100px;margin-bottom:12px}
.c1 .h-comm h3{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:700;color:#fff;margin:0 0 4px;line-height:1}
.c1 .h-comm .meta{font-size:14px;color:rgba(255,255,255,.85)}

/* sell-land band (rounded navy) */
.c1 .h-band{margin-top:24px;margin-bottom:24px;background:var(--h-navy);color:#fff;border-radius:28px;padding:60px 56px;text-align:center}
.c1 .h-band h2{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:clamp(28px,3.4vw,46px);color:#fff;margin:0 auto 14px;line-height:1.1;white-space:nowrap}
@media(max-width:640px){.c1 .h-band h2{white-space:normal;font-size:clamp(24px,6vw,32px);max-width:18ch}}
.c1 .h-band em{font-style:italic;color:var(--h-gold)}
.c1 .h-band p{color:rgba(255,255,255,.75);margin:0 auto 28px;font-weight:300;white-space:nowrap}
@media(max-width:640px){.c1 .h-band p{white-space:normal;max-width:36ch}}

@media(max-width:880px){
  .c1 #featuredListings{grid-template-columns:1fr}
  .c1 .h-about-in{grid-template-columns:1fr;gap:30px}
  .c1 .h-comms{grid-template-columns:1fr}
  .c1 .h-hero-card{min-height:520px}
}

/* ============================================================
   CHARACTER additions (Vineland + builder cues) — homepage
   ============================================================ */
/* section eyebrow gets a gold rule for character */
.c1 .keyb{display:inline-flex;align-items:center;gap:12px}
.c1 .keyb::before{content:'';width:30px;height:1px;background:var(--h-gold)}
.c1 .h-center{text-align:center}
.c1 .h-center .keyb{justify-content:center}
.c1 .h-center .h-sec-head{flex-direction:column;align-items:center;text-align:center}
.c1 .h-lead{max-width:60ch;margin:14px auto 0;color:var(--h-mut);font-weight:300;font-size:19px}

/* trust bar */
.c1 .h-trust{width:min(1160px,100% - 64px);margin:24px auto 56px;display:flex;flex-wrap:wrap;justify-content:center;gap:0;background:#fff;border:1px solid var(--h-line);border-radius:18px;overflow:hidden}
.c1 .h-trust .item{flex:1 1 200px;display:flex;align-items:center;justify-content:center;gap:12px;padding:22px 24px;border-right:1px solid var(--h-line);text-align:left}
.c1 .h-trust .item:last-child{border-right:none}
.c1 .h-trust svg{width:22px;height:22px;color:var(--h-gold-dk);flex-shrink:0}
.c1 .h-trust b{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:700;color:var(--h-navy);line-height:1.1}

/* floor-plan showcase (Vineland-style spec cards) */
.c1 .h-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.c1 .h-plan{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 24px rgba(10,22,40,.06);transition:.35s var(--h-ease);cursor:pointer;display:flex;flex-direction:column}
.c1 .h-plan:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(10,22,40,.14)}
.c1 .h-plan-img{aspect-ratio:3/2;overflow:hidden}
.c1 .h-plan-img img{width:100%;height:100%;object-fit:cover;transition:.7s var(--h-ease)}
.c1 .h-plan:hover .h-plan-img img{transform:scale(1.07)}
.c1 .h-plan-body{padding:22px 24px 24px;text-align:center;display:flex;flex-direction:column;flex:1}
.c1 .h-plan-name{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:700;color:var(--h-navy);line-height:1}
.c1 .h-plan-sub{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--h-gold-dk);font-weight:600;margin:6px 0 16px}
.c1 .h-plan-specs{border-top:1px solid var(--h-line);text-align:left}
.c1 .h-plan-specs .row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--h-line);font-size:14px}
.c1 .h-plan-specs .row .k{color:var(--h-mut)}
.c1 .h-plan-specs .row .v{color:var(--h-navy);font-weight:600}
.c1 .h-plan-link{margin-top:auto;padding-top:16px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--h-blue)}
.c1 .h-plan-img{position:relative}
.c1 .h-plan-pill{position:absolute;top:12px;left:12px;z-index:1;background:var(--h-gold);color:var(--h-navy);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:100px;box-shadow:0 4px 12px rgba(10,22,40,.18)}
.c1 .h-plan-pill-coming{background:#fff;color:var(--h-navy)}

/* how it works */
.c1 .h-how{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.c1 .h-step{text-align:center;padding:0 12px}
.c1 .h-step .num{font-family:'Cormorant Garamond',serif;font-size:64px;font-weight:700;color:var(--h-gold);line-height:1}
.c1 .h-step h3{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:700;color:var(--h-navy);margin:8px 0 10px;line-height:1.1}
.c1 .h-step p{color:var(--h-mut);font-weight:300;font-size:16px}

@media(max-width:880px){
  .c1 .h-plans{grid-template-columns:1fr 1fr}
  .c1 .h-how{grid-template-columns:1fr;gap:30px}
  .c1 .h-trust{display:grid;grid-template-columns:1fr 1fr}
  .c1 .h-trust .item{flex:none;border-right:1px solid var(--h-line);border-bottom:1px solid var(--h-line)}
  .c1 .h-trust .item:nth-child(2n){border-right:none}
  .c1 .h-trust .item:nth-last-child(-n+2){border-bottom:none}
}
@media(max-width:560px){
  .c1 .h-plans{grid-template-columns:1fr}
  .c1 .h-hero h1{font-size:clamp(24px,7vw,40px)}
  .c1 .h-hero-in{padding:60px 20px}
}

/* models showcase as full-width navy band (distinct from white homes section) */
.c1 .h-plans-band{max-width:none;width:100%;margin:0;background:var(--h-navy);padding:84px 0}
.c1 .h-plans-band .h-sec-head h2{color:#fff}
.c1 .h-plans-band .keyb{color:var(--h-gold)}
.c1 .h-plans-band .keyb::before{background:var(--h-gold)}
.c1 .h-plans-band .h-lead{color:rgba(255,255,255,.72)}

/* ============================================================
   FOOTER (Concept 1) — applied globally to every page
   ============================================================ */
body footer{background:var(--h-navy);color:rgba(255,255,255,.78);padding:80px 0 0;margin-top:0;font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.7}
body footer .footer-main{width:min(1160px,100% - 64px);margin:0 auto;display:grid;grid-template-columns:1.5fr .85fr .85fr .85fr .85fr;gap:48px;padding-bottom:56px;max-width:none}
body footer .footer-brand{background:rgba(255,255,255,.04);border-radius:24px;padding:32px 36px}
body footer .footer-brand h3{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:700;color:#fff;line-height:1.06;margin:0 0 14px;letter-spacing:.01em;white-space:nowrap}
body footer .footer-logo{height:64px;width:auto;max-width:260px;display:block;margin:0 0 16px}
body footer .footer-brand-sub{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--h-gold);font-weight:600;margin-bottom:20px;display:block}
body footer .footer-brand-desc{color:rgba(255,255,255,.7);max-width:42ch;font-size:14px;line-height:1.7;margin:0}
body footer .footer-col h4{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:700;color:#fff;letter-spacing:0;text-transform:none;margin:0 0 18px;display:inline-flex;align-items:center;gap:10px}
body footer .footer-col h4::before{content:'';width:20px;height:1px;background:var(--h-gold)}
body footer .footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px}
body footer .footer-col ul a{color:rgba(255,255,255,.78);text-decoration:none;font-size:15px;font-weight:400;transition:color .2s var(--h-ease)}
body footer .footer-col ul a:hover{color:var(--h-gold)}
body footer .footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:30px 0 40px}
body footer .footer-bottom>*{width:min(1160px,100% - 64px);margin-left:auto;margin-right:auto}
body footer .footer-disclaimer{color:rgba(255,255,255,.55);font-size:12px;line-height:1.7;margin:0 auto 16px;max-width:none}
body footer .footer-copy{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;color:rgba(255,255,255,.55);font-size:13px;margin:0}
body footer .footer-copy .footer-email{color:var(--h-gold);text-decoration:none;font-weight:500}
body footer .footer-copy .footer-email:hover{color:#fff;text-decoration:underline}

@media(max-width:980px){
  body footer .footer-main{grid-template-columns:1fr 1fr;gap:36px}
  body footer .footer-brand{grid-column:1 / -1}
}
@media(max-width:560px){
  body footer{padding-top:56px;margin-top:0}
  body footer .footer-main{grid-template-columns:1fr;gap:30px}
  body footer .footer-brand{padding:24px 26px}
  body footer .footer-brand h3{font-size:30px}
  body footer .footer-copy{flex-direction:column;align-items:flex-start;gap:6px}
}

/* ============================================================
   SJNC formatting parity (2026-06-07)
   County cards + listing images + section subtitle brought in
   line with the SJNC reference. Brand (curves, navy/gold, fonts,
   large hero type) intentionally left untouched.
   ============================================================ */

/* County cards: the section is .h-center, which centers the header
   + lead (intended). Override only the card content back to left,
   matching SJNC's editorial card alignment. */
.counties-grid .county-card { text-align: left; }

/* County "towns" caption: --fs-small is undefined here so it falls
   back to inherited body size (18px). Pin to SJNC's 14px so the
   caption sits below the 26px county name in the hierarchy. */
.counties-grid .county-towns { font-size: 14px; }

/* Section subtitle: match SJNC (was 20px / weight 300 / 560px).
   22px fits Highland's own lead-scale step, so brand stays intact. */
.section-subtitle { font-size: 22px; max-width: 580px; font-weight: 400; }

/* Listing images: SJNC uses a fluid 4/3 ratio; Highland's base
   forces a fixed 220px height. Switch to 4/3 so images scale
   consistently at every width (homepage tiles + county-page cards). */
.listing-img { height: auto; aspect-ratio: 4 / 3; }

/* Belt-and-suspenders anti-seam: a sub-pixel rounding gap can leave a
   1px white line on the right edge of card images inside overflow:hidden
   rounded wrappers. Let the image bleed 1px to the right (clipped) so no
   gap can ever show. Anchored left, so no left-edge shift. Scoped to .c1
   + matched specificity so it beats the base width:100% rules. */
.c1 .h-plan-img, .c1 .listing-img { overflow: hidden; }
.c1 .h-plan-img img,
.c1 .listing-img img { width: calc(100% + 1px); max-width: none; }
:is(.c1 #featuredListings, #homesCardListFull) .listing-img img { width: calc(100% + 1px); max-width: none; }

/* Mobile Contact page: the 1-col contact grid was forced wider than the
   viewport because grid items default to min-width:auto and the long
   unbreakable email (+ the form progress bar) couldn't shrink. Let the
   items shrink and let the email wrap. Fixes ~93px horizontal overflow. */
.contact-grid, .contact-grid > * { min-width: 0; }
.contact-info a { overflow-wrap: anywhere; }

/* ============================================================
   MOBILE AUDIT FIXES (2026-06-08) — CSS only. No content / IDs /
   anchors / JS touched. Addresses: Our Story clip, trust-bar banner,
   hero subhead size, search size, menu cover, logo inset, scroll trim.
   ============================================================ */

/* Root-cause: grid/flex items default to min-width:auto and refuse to
   shrink, blowing their track past the viewport (same bug class already
   fixed above for .contact-grid). Let the homepage grids + their direct
   children shrink so a single column never overflows. */
@media(max-width:880px){
  .c1 .h-about-in, .c1 .h-how, .c1 .h-comms, .c1 .h-plans, .c1 #featuredListings,
  .c1 .h-about-in > *, .c1 .h-how > *, .c1 .h-comms > *{ min-width:0; }
}

/* OUR STORY: the section inherited styles.css `section{padding:100px 40px}`
   and .h-about-in added another 56px (~96px of side padding), crushing the
   content box to ~134px while .h-stats (a no-wrap flex row) forced a 258px
   track that overflowed and was clipped by the card's overflow:hidden.
   Collapse the double padding and let the stats wrap. */
@media(max-width:640px){
  .c1 .h-about{ padding:34px 22px; }
  .c1 .h-about-in{ padding:0; gap:26px; }
  .c1 .h-about-img{ aspect-ratio:16/10; }
  .c1 .h-stats{ flex-wrap:wrap; gap:22px 30px; }
}

/* TRUST BAR -> compact banner. Was a cramped 2x2 of tall boxes where
   "Built Across 8 Counties" broke to 4 lines. One column of thin
   icon+label rows; drop the hard <br> so each label flows on one line. */
@media(max-width:560px){
  .c1 .h-trust{ grid-template-columns:1fr; border-radius:16px; }
  .c1 .h-trust .item{ justify-content:flex-start; gap:14px; padding:14px 20px;
    border-right:none; border-bottom:1px solid var(--h-line); text-align:left; }
  .c1 .h-trust .item:last-child{ border-bottom:none; }
  .c1 .h-trust b{ font-size:18px; line-height:1.15; }
}

/* HERO SUBHEAD: was clamp(8px,2.6vw,20px) + nowrap, rendering ~10px and
   unreadable on phones. Force a readable, wrapping size. */
@media(max-width:640px){
  .c1 .h-hero .h-sub{ white-space:normal; font-size:16px; line-height:1.5;
    max-width:30ch; margin:18px auto 26px; }
}

/* SEARCH: trim the oversized 80px-tall bar. 16px input kept (iOS no-zoom). */
@media(max-width:560px){
  .c1 .h-search{ padding:6px; gap:6px; }
  .c1 .h-search input{ font-size:16px; padding:0 16px; }
  .c1 .h-search button{ padding:12px 18px; font-size:13px; }
}

/* LOGO INSET: nav side padding was 44px, floating the logo away from the
   edge. Tighten on phones (logo + burger stay vertically centered). */
@media(max-width:560px){
  nav#mainNav{ padding:14px 20px; }
}

/* MENU CLOSE: keyboard-only focus ring (kills the boxy outline on tap). */
.mobile-menu-close{ border-radius:8px; }
.mobile-menu-close:focus{ outline:none; }
.mobile-menu-close:focus-visible{ outline:2px solid var(--h-gold); outline-offset:4px; }

/* SCROLL TRIM: tighten oversized vertical rhythm + card gaps on phones. */
@media(max-width:560px){
  .c1 .h-sec{ padding:44px 0; }
  .c1 .h-plans-band{ padding:52px 0; }
  .c1 .h-band{ padding:44px 26px; }
  .c1 #featuredListings{ gap:18px; }
  .c1 .h-hero-card{ min-height:460px; }
}
