/* ============================================================================
   JK REALTY GROUP — SHARED SITE DESIGN SYSTEM (jk-site.css)
   One premium component library linked by every rebuilt page.
   Section A: tokens + base  ·  Section B: universal chrome (nav/footer/mobile)
   Section C: PREMIUM REBUILD COMPONENTS (appended at end of file)
   ============================================================================ */
:root{
  --black:#090909;--white:#f5f5f3;--off-white:#eceae5;
  --red:#c0392b;--red-dark:#a93226;
  --gray-1:#e0dedd;--gray-2:#b8b5b2;--gray-3:#7e7b78;--gray-4:#3e3c3a;--gray-5:#1e1d1c;
  --nav-h:80px;
  --fs-xs:13px;--fs-sm:15px;--fs-base:17px;--fs-md:18px;--fs-lg:19px;--fs-xl:20px;
  --fs-label-xs:11px;--fs-label-sm:12px;--fs-label-md:13px;
  --sp-section:120px;        /* generous vertical rhythm for rebuilt sections */
  --maxw:1280px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-padding-top:var(--nav-h);scroll-behavior:smooth;}
body{background:var(--black);color:var(--white);font-family:'Montserrat',sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:rgba(9,9,9,0.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,0.06);z-index:1000;}

.nav-logo-wrap small{display:block;font-family:'Montserrat',sans-serif;font-size:7px;letter-spacing:0.45em;color:var(--gray-3);margin-top:3px;}

.nav-links a{font-size:9.5px;letter-spacing:0.28em;text-transform:uppercase;color:var(--gray-2);transition:color 0.3s;}
.nav-links a:hover{color:var(--white);}

.nav-cta-btn:hover{background:var(--white);color:var(--black);}
.page-hero{position:relative;height:68vh;min-height:480px;display:flex;align-items:flex-end;overflow:hidden;padding-top:var(--nav-h);}
.page-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(0.35) grayscale(20%);transform:scale(1.04);transition:transform 12s ease;}
.page-hero:hover .page-hero-bg{transform:scale(1.08);}
.page-hero-vignette{position:absolute;inset:0;background:linear-gradient(to top,rgba(9,9,9,0.98) 0%,rgba(9,9,9,0.1) 100%);}
.page-hero-content{position:relative;z-index:2;padding:0 60px 72px;max-width:860px;}
.page-eyebrow{font-size:9.5px;letter-spacing:0.45em;text-transform:uppercase;color:var(--red);margin-bottom:20px;}
.page-title{font-family:'Cormorant Garamond',serif;font-size:clamp(42px,6vw,82px);font-weight:300;line-height:1.0;margin-bottom:24px;}
.page-title em{font-style:italic;color:var(--gray-3);}
.page-subtitle{font-size:18px;line-height:1.8;color:var(--gray-2);max-width:600px;}
.breadcrumb{padding:16px 60px;background:var(--gray-5);border-bottom:1px solid rgba(255,255,255,0.06);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gray-3);}
.breadcrumb a{color:var(--gray-3);transition:color 0.2s;}.breadcrumb a:hover{color:var(--white);}
.breadcrumb-sep{margin:0 10px;color:var(--gray-4);}
.content-section{padding:80px 60px;}
/* Uniform 1320px content frame on full-width sections (caps ultrawide stretch).
   Zero-priority on purpose: any later, more specific max-width (e.g. .faq-list) wins. */
.content-section>:where(*),.faq-section>:where(*),.related-section>:where(*),.cta-band>:where(*){max-width:1320px;margin-left:auto;margin-right:auto;}
.content-section.dark{background:var(--black);}
.content-section.light{background:var(--off-white);}
.content-section.mid{background:var(--gray-5);}
.section-rule{width:44px;height:1px;background:var(--red);margin-bottom:18px;}
.section-rule.dark-rule{background:var(--gray-4);}
.section-eyebrow{font-size:11px;letter-spacing:0.45em;text-transform:uppercase;color:var(--red);margin-bottom:18px;}
.section-eyebrow.on-light{color:var(--gray-4);}
.section-heading{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,3.5vw,56px);font-weight:300;line-height:1.05;margin-bottom:48px;}
.section-heading em{font-style:italic;color:var(--gray-3);}
.section-heading.on-light{color:var(--black);}
.section-heading.on-light em{color:var(--gray-4);}
.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.content-body h3{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:400;margin-bottom:16px;color:var(--white);}
.content-body.on-light h3{color:var(--black);}
.content-body p{font-size:18px;line-height:1.9;color:var(--gray-2);margin-bottom:20px;}
.content-body.on-light p{color:var(--gray-4);}
.content-body ul{padding-left:0;list-style:none;margin-bottom:28px;}
.content-body ul li{font-size:18px;line-height:1.8;color:var(--gray-2);padding:7px 0;border-bottom:1px solid rgba(255,255,255,0.06);padding-left:16px;position:relative;}
.content-body.on-light ul li{color:var(--gray-4);border-bottom-color:rgba(0,0,0,0.07);}
.content-body ul li::before{content:'\2014';position:absolute;left:0;color:var(--red);font-size:10px;top:9px;}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-bottom:64px;}
.stat-block{background:var(--gray-5);padding:32px 24px;text-align:center;}
.sb-num{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:var(--white);line-height:1;}
.sb-num sup{font-size:24px;}
.sb-lbl{font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--gray-3);margin-top:8px;}
.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:40px;}
.svc-card{padding:36px 28px;border:1px solid rgba(255,255,255,0.04);transition:all 0.3s;position:relative;overflow:hidden;}
.svc-card.dark-card{background:var(--gray-5);}
.svc-card.light-card{background:var(--white);border-color:rgba(0,0,0,0.08);}
.svc-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform 0.4s;}
.svc-card:hover::before{transform:scaleX(1);}
.svc-card.dark-card:hover{background:rgba(255,255,255,0.04);}
.svc-card.light-card:hover{background:#f0ede8;}
.svc-num{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:rgba(255,255,255,0.06);line-height:1;margin-bottom:12px;}
.svc-card.light-card .svc-num{color:rgba(0,0,0,0.06);}
.svc-title{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:400;margin-bottom:12px;color:var(--white);}
.svc-card.light-card .svc-title{color:var(--black);}
.svc-desc{font-size:17px;line-height:1.8;color:var(--gray-3);}
.svc-card.light-card .svc-desc{color:var(--gray-4);}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:40px;}
.process-step{padding:36px 28px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.05);}
.ps-num{font-family:'Cormorant Garamond',serif;font-size:64px;font-weight:300;color:rgba(192,57,43,0.15);line-height:1;margin-bottom:12px;}
.ps-title{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:400;margin-bottom:10px;color:var(--white);}
.ps-desc{font-size:17px;line-height:1.8;color:var(--gray-3);}
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:40px;}
.area-card{padding:28px;background:var(--gray-5);border:1px solid rgba(255,255,255,0.04);}
.area-county{font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--red);margin-bottom:8px;}
.area-name{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:400;color:var(--white);margin-bottom:10px;}
.area-towns{font-size:16px;line-height:1.8;color:var(--gray-3);}
.faq-section{padding:80px 60px;background:var(--black);}
.faq-list{margin-top:48px;max-width:1100px;}
.faq-item{border-bottom:1px solid rgba(255,255,255,0.10);padding:30px 0;cursor:pointer;}
.faq-q{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:400;color:var(--white);display:flex;justify-content:space-between;align-items:center;gap:24px;line-height:1.35;}
.faq-icon{font-size:28px;color:var(--red);flex-shrink:0;transition:transform 0.3s;font-family:'Montserrat',sans-serif;font-weight:300;}
.faq-a{font-size:18px;line-height:1.85;color:var(--gray-2);margin-top:18px;display:none;max-width:920px;}
.faq-item.open .faq-a{display:block;}
.faq-item.open .faq-icon{transform:rotate(45deg);}
.related-section{padding:80px 60px;background:var(--gray-5);}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:40px;}
.related-card{padding:36px 28px;background:var(--black);border:1px solid rgba(255,255,255,0.04);transition:border-color 0.3s;}
.related-card:hover{border-color:rgba(192,57,43,0.4);}
.rc-label{font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--red);margin-bottom:10px;}
.rc-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;color:var(--white);margin-bottom:10px;}
.rc-desc{font-size:17px;line-height:1.8;color:var(--gray-3);margin-bottom:20px;}
.rc-link{font-size:10px;letter-spacing:0.25em;text-transform:uppercase;color:var(--red);}
.cta-band{padding:80px 60px;background:var(--white);text-align:center;}
.cta-band-title{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,4.5vw,64px);font-weight:300;color:var(--black);line-height:1.05;margin-bottom:20px;}
.cta-band-title em{font-style:italic;color:var(--gray-4);}
.cta-band-sub{font-size:19px;color:var(--gray-4);max-width:520px;margin:0 auto 40px;line-height:1.8;}
.cta-band-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.btn-dark{padding:14px 36px;background:var(--black);color:var(--white);font-size:10px;letter-spacing:0.3em;text-transform:uppercase;transition:all 0.3s;}
.btn-dark:hover{background:var(--red);}
.btn-outline-dark{padding:14px 36px;border:1px solid var(--black);color:var(--black);font-size:10px;letter-spacing:0.3em;text-transform:uppercase;transition:all 0.3s;}
.btn-outline-dark:hover{background:var(--black);color:var(--white);}
.contact-section{display:grid;grid-template-columns:1fr 1fr;}
.contact-img-col{position:relative;min-height:600px;overflow:hidden;}
.contact-img-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(100%) brightness(0.3);transform:scale(1.04);transition:transform 10s ease;}
.contact-img-col:hover .contact-img-bg{transform:scale(1.09);}
.contact-img-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(9,9,9,0.7),transparent);}
.contact-form-col{padding:80px 60px;background:var(--gray-5);}
.contact-heading{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,3.5vw,52px);font-weight:300;line-height:1.05;margin-bottom:16px;}
.contact-heading em{font-style:italic;color:var(--gray-3);}
.contact-sub{font-size:18px;color:var(--gray-3);margin-bottom:36px;line-height:1.8;}
.contact-info-row{margin-bottom:36px;display:flex;flex-direction:column;gap:12px;}
.ci-label{display:block;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--red);margin-bottom:3px;}
.ci-val{font-size:17px;color:var(--gray-2);line-height:1.7;}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cf-group{margin-bottom:16px;}
.cf-label{display:block;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--gray-3);margin-bottom:8px;}
.cf-input,.cf-select,.cf-textarea{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:var(--white);padding:14px 14px;font-family:'Montserrat',sans-serif;font-size:16px;outline:none;transition:border-color 0.3s;}
.cf-input:focus,.cf-select:focus,.cf-textarea:focus{border-color:rgba(192,57,43,0.6);}
.cf-select option{background:var(--black);}
.cf-textarea{resize:vertical;}
.cf-submit{width:100%;padding:14px;background:var(--red);color:var(--white);border:none;font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:0.35em;text-transform:uppercase;cursor:pointer;transition:all 0.3s;margin-top:8px;}
.cf-submit:hover{background:#a93226;}
footer{background:var(--black);border-top:1px solid rgba(255,255,255,0.06);padding:72px 60px 36px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:60px;}
.footer-brand{font-family:'Cormorant Garamond',serif;font-size:18px;letter-spacing:0.2em;text-transform:uppercase;color:var(--white);margin-bottom:16px;}
.footer-tagline{font-size:15px;color:var(--gray-3);line-height:1.8;margin-bottom:24px;}
.footer-social{display:inline-block;width:34px;height:34px;border:1px solid rgba(255,255,255,0.12);text-align:center;line-height:32px;font-size:12px;color:var(--gray-3);margin-right:6px;transition:all 0.3s;}
.footer-social:hover{border-color:var(--red);color:var(--red);}
.footer-col-title{font-size:11px;letter-spacing:0.35em;text-transform:uppercase;color:var(--red);margin-bottom:20px;}
.footer-col ul{list-style:none;}
.footer-col ul li{margin-bottom:10px;}
.footer-col ul li a{font-size:15px;color:var(--gray-3);transition:color 0.3s;}
.footer-col ul li a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.06);padding-top:28px;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;}
.footer-copy{font-size:14px;color:var(--gray-4);}
.footer-legal{font-size:12px;color:var(--gray-4);max-width:680px;line-height:1.7;}
@media(max-width:900px){.content-grid{grid-template-columns:minmax(0,1fr);gap:48px;}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr));}.svc-cards,.process-grid,.area-grid,.related-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.contact-section{grid-template-columns:minmax(0,1fr);}.contact-img-col{min-height:300px;}.page-hero-content,.breadcrumb,.content-section,.faq-section,.related-section,.cta-band,.contact-form-col{padding-left:24px;padding-right:24px;}.nav-links{grid-template-columns:1fr 1fr;}.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}[style*="32px 1fr 1fr 1fr 1fr"]{grid-template-columns:1fr!important;gap:16px!important;}[style*="padding:28px 60px"]{padding:20px 20px!important;}}
@media(max-width:600px){.svc-cards,.process-grid,.area-grid,.related-grid{grid-template-columns:minmax(0,1fr);}.stats-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.cf-row{grid-template-columns:minmax(0,1fr);}}

/* ── HERO CTA BUTTONS ── */
.hero-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px;}
.hero-btn-primary{display:inline-flex;align-items:center;gap:10px;padding:15px 32px;background:var(--red);color:var(--white);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:0.32em;text-transform:uppercase;font-weight:500;transition:all 0.3s;border:none;cursor:pointer;}
.hero-btn-primary:hover{background:#a93226;}
.hero-btn-secondary{display:inline-flex;align-items:center;gap:10px;padding:15px 32px;background:transparent;color:var(--white);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:0.32em;text-transform:uppercase;font-weight:400;border:1px solid rgba(255,255,255,0.3);transition:all 0.3s;}
.hero-btn-secondary:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.6);}

/* ── INLINE CTA STRIP ── */
.cta-strip{padding:40px 60px;background:var(--red);display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.cta-strip-text{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,3vw,34px);font-weight:300;color:var(--white);line-height:1.2;}
.cta-strip-text em{font-style:italic;opacity:0.8;}
.cta-strip-btns{display:flex;gap:12px;flex-wrap:wrap;flex-shrink:0;}
.cta-strip-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;font-family:'Montserrat',sans-serif;font-size:9.5px;letter-spacing:0.28em;text-transform:uppercase;font-weight:500;transition:all 0.3s;white-space:nowrap;}
.cta-strip-btn.white{background:var(--white);color:var(--red);}
.cta-strip-btn.white:hover{background:var(--black);color:var(--white);}
.cta-strip-btn.outline{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.5);}
.cta-strip-btn.outline:hover{background:rgba(255,255,255,0.12);}

/* ── AFTER-STATS CTA ── */
.stats-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px;padding-top:40px;border-top:1px solid rgba(255,255,255,0.08);}
.stats-cta-btn{display:inline-flex;align-items:center;gap:9px;padding:13px 28px;font-family:'Montserrat',sans-serif;font-size:9.5px;letter-spacing:0.28em;text-transform:uppercase;font-weight:500;transition:all 0.3s;}
.stats-cta-btn.red{background:var(--red);color:var(--white);}
.stats-cta-btn.red:hover{background:#a93226;}
.stats-cta-btn.border{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.2);}
.stats-cta-btn.border:hover{border-color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.04);}

/* ── FLOATING MOBILE BOTTOM BAR ── */
#mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:999;background:var(--black);border-top:1px solid rgba(192,57,43,0.4);padding:0;}
.mcb-inner{display:grid;grid-template-columns:repeat(3,1fr);}
.mcb-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 6px;font-family:'Montserrat',sans-serif;font-size:8px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gray-2);gap:4px;transition:all 0.25s;border-right:1px solid rgba(255,255,255,0.06);}
.mcb-btn:last-child{border-right:none;}
.mcb-btn:hover,.mcb-btn:active{background:rgba(192,57,43,0.12);color:var(--white);}
.mcb-btn.call{color:var(--red);}
.mcb-icon{font-size:17px;line-height:1;}

/* ── FLOATING SCROLL CTA (desktop) ── */
#scroll-cta{position:fixed;right:24px;bottom:40px;z-index:998;display:flex;flex-direction:column;gap:8px;opacity:0;pointer-events:none;transition:opacity 0.4s;}
#scroll-cta.visible{opacity:1;pointer-events:all;}
.scta-btn{display:flex;align-items:center;gap:10px;padding:12px 18px;font-family:'Montserrat',sans-serif;font-size:9px;letter-spacing:0.25em;text-transform:uppercase;font-weight:500;transition:all 0.3s;box-shadow:0 4px 24px rgba(0,0,0,0.5);white-space:nowrap;}
.scta-btn.call{background:var(--red);color:var(--white);}
.scta-btn.call:hover{background:#a93226;}
.scta-btn.text{background:var(--gray-5);color:var(--white);border:1px solid rgba(255,255,255,0.1);}
.scta-btn.text:hover{background:rgba(255,255,255,0.08);}
.scta-btn.email{background:var(--gray-5);color:var(--white);border:1px solid rgba(255,255,255,0.1);}
.scta-btn.email:hover{background:rgba(255,255,255,0.08);}

/* ── INLINE MULTI-CHANNEL CTA ── */
.contact-channels{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:40px;}
.channel-card{padding:28px 20px;background:var(--gray-5);border:1px solid rgba(255,255,255,0.04);text-align:center;transition:all 0.3s;display:flex;flex-direction:column;align-items:center;gap:12px;}
.channel-card:hover{background:rgba(255,255,255,0.04);border-color:rgba(192,57,43,0.3);}
.channel-icon{font-size:22px;line-height:1;}
.channel-label{font-size:8.5px;letter-spacing:0.35em;text-transform:uppercase;color:var(--red);}
.channel-value{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:400;color:var(--white);line-height:1.2;}
.channel-sub{font-size:10px;color:var(--gray-3);line-height:1.6;}
.channel-action{display:inline-block;padding:8px 18px;background:var(--red);color:var(--white);font-size:8.5px;letter-spacing:0.25em;text-transform:uppercase;margin-top:4px;transition:all 0.3s;}
.channel-action:hover{background:#a93226;}

@media(max-width:900px){
  #mobile-cta-bar{display:block;}
  body{padding-bottom:58px;}
  #scroll-cta{display:none!important;}
  .cta-strip{padding:32px 24px;flex-direction:column;align-items:flex-start;}
  .contact-channels{grid-template-columns:repeat(2,1fr);}
  .stats-cta{flex-direction:column;}
  .hero-cta-row{flex-direction:column;}
  .hero-btn-primary,.hero-btn-secondary{justify-content:center;}
}
@media(max-width:600px){.contact-channels{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}


/* ── MOBILE HAMBURGER ── */


#page-mobile-nav{position:fixed;inset:0;background:var(--black);z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;transform:translateX(100%);transition:transform 0.5s cubic-bezier(0.77,0,0.175,1);}
#page-mobile-nav.open{transform:translateX(0);}
#page-mobile-nav a{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,7vw,42px);font-weight:300;color:var(--white);letter-spacing:0.08em;transition:color 0.3s;}
#page-mobile-nav a:hover{color:var(--red);}
.pmn-close{position:absolute;top:24px;right:28px;font-size:22px;color:var(--white);background:none;border:none;cursor:pointer;}
@media(max-width:900px){.nav-links,}


/* ═══ UNIVERSAL NAV ═══ */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  background:rgba(9,9,9,0.97);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,0.07);
  padding:0 60px;height:70px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  transition:background 0.3s;
  overflow:visible;
}
#nav.scrolled{background:rgba(9,9,9,0.99);}
.nav-logo-wrap{
  font-family:'Cormorant Garamond',serif;
  font-size:15px;font-weight:400;letter-spacing:0.22em;
  text-transform:uppercase;color:var(--white);
  line-height:1.2;text-align:center;
  text-decoration:none;flex-shrink:0;
}
.nav-logo-wrap small{display:block;font-size:8px;letter-spacing:0.18em;color:var(--gray-3);}
.nav-links{
  display:flex;gap:32px;list-style:none;
  flex:1;justify-content:center;
}
.nav-links>li{position:relative;}
.nav-links>li>a{
  font-size:10px;letter-spacing:0.28em;text-transform:uppercase;
  color:var(--gray-2);font-weight:400;
  transition:color 0.25s;
  padding:8px 0;display:flex;align-items:center;gap:4px;
  white-space:nowrap;
}
.nav-links>li>a:hover{color:var(--white);}
/* Dropdown */
.nav-dropdown{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  background:rgba(7,7,7,0.99);border:1px solid rgba(255,255,255,0.08);
  min-width:210px;padding:8px 0 12px;
  opacity:0;visibility:hidden;
  transition:opacity 0.2s ease 0.12s,visibility 0.2s ease 0.12s ease,visibility 0.2s ease;
  pointer-events:none;z-index:600;
}
.nav-links>li:hover .nav-dropdown,
.nav-links>li:focus-within .nav-dropdown{
  opacity:1;visibility:visible;pointer-events:all;
}
.nav-dropdown a{
  display:block;padding:10px 22px;
  font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--gray-3);transition:color 0.2s,padding-left 0.2s;
}
.nav-dropdown a:hover{color:var(--white);padding-left:28px;}
/* CTA button */
.nav-cta-btn{
  font-size:9px;letter-spacing:0.3em;text-transform:uppercase;font-weight:500;
  border:1px solid rgba(255,255,255,0.25);padding:10px 22px;
  color:var(--white);transition:all 0.25s;white-space:nowrap;flex-shrink:0;
  text-decoration:none;
}
.nav-cta-btn:hover{background:var(--white);color:var(--black);}
/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;min-width:44px;min-height:44px;align-items:center;justify-content:center;background:none;border:none;-webkit-appearance:none;appearance:none;}
.hamburger span{display:block;width:24px;height:2px;background:var(--white);transition:all 0.3s;}
/* Body offset for fixed nav */
body{padding-top:70px;}
/* Mobile nav */
#mobile-nav{
  position:fixed;inset:0;background:var(--black);z-index:700;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
  transform:translateX(100%);transition:transform 0.5s cubic-bezier(0.77,0,0.175,1);
}
#mobile-nav.open{transform:translateX(0);}
#mobile-nav a{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(26px,7vw,40px);font-weight:300;
  color:var(--white);letter-spacing:0.08em;transition:color 0.2s;
}
#mobile-nav a:hover{color:var(--red);}
.mn-close{
  position:absolute;top:24px;right:28px;
  font-size:22px;color:var(--white);
  background:none;border:none;cursor:pointer;
}
.mn-areas-btn{color:var(--white);}.mn-areas-btn:hover{color:var(--red)!important;}
/* Mobile areas panel */
#mn-areas{
  position:fixed;inset:0;background:var(--black);z-index:800;
  overflow-y:auto;padding:80px 28px 48px;
  display:none;
}
#mn-areas.open{display:block;}
.mn-areas-back{
  position:fixed;top:24px;left:28px;
  font-size:9px;letter-spacing:0.25em;text-transform:uppercase;
  color:var(--red);background:none;border:none;cursor:pointer;
}
.mn-county{margin-bottom:28px;}
.mn-county-name{
  font-size:9px;letter-spacing:0.35em;text-transform:uppercase;
  color:var(--red);margin-bottom:10px;
  padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.08);
  display:flex;justify-content:space-between;align-items:center;
}
.mn-county-name a{color:var(--red);font-size:9px;letter-spacing:0.2em;}
.mn-towns{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;}
.mn-town{font-size:18px;color:var(--gray-2);padding:5px 0;display:block;}
.mn-town:hover{color:var(--white);}
@media(max-width:1280px){
  #nav{padding:0 40px;}
  .nav-links{gap:22px;}
}
@media(max-width:1100px){
  #nav{padding:0 32px;}
  .nav-links{gap:16px;}
  .nav-links>li>a{font-size:9px;letter-spacing:0.2em;}
  .nav-cta-btn{font-size:8px;letter-spacing:0.2em;padding:9px 16px;}
}
@media(max-width:1000px){
  #nav{padding:0 20px;}
  .nav-links{gap:12px;}
  .nav-links>li>a{font-size:8.5px;letter-spacing:0.15em;}
  .nav-logo-wrap{font-size:13px;letter-spacing:0.15em;}
  .nav-logo-wrap small{font-size:7px;}
  .nav-cta-btn{padding:8px 12px;font-size:8px;letter-spacing:0.15em;}
}
@media(max-width:900px){
  #nav{padding:0 20px;}
  .nav-links,.nav-cta-btn{display:none!important;}
  .hamburger{display:flex!important;}
}

/* ── AREAS MEGA DROPDOWN ── */

.areas-mega-inner{
  display:grid;
  grid-template-columns:220px 1fr;
  min-height:320px;
}
.areas-counties{
  border-right:1px solid rgba(255,255,255,0.07);
  padding:12px 0;
  overflow-y:auto;
  max-height:420px;
}
.areas-county-item{
  display:block;
  padding:11px 20px;
  font-size:10px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--gray-2);
  cursor:pointer;
  transition:all 0.15s;
  border-left:2px solid transparent;
  text-decoration:none;
}
.areas-county-item:hover,
.areas-county-item.active{
  color:var(--white);
  background:rgba(255,255,255,0.04);
  border-left-color:var(--red);
}
.areas-county-item .county-tx{
  display:block;
  font-size:8px;
  letter-spacing:0.1em;
  color:var(--gray-3);
  margin-top:2px;
  text-transform:none;
}
.areas-towns-header{
  font-size:9px;
  letter-spacing:0.35em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,0.07);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.areas-towns-header a{
  color:var(--red);
  font-size:9px;
  letter-spacing:0.2em;
}
.areas-towns-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
}
.areas-town-link{
  display:block;
  padding:9px 10px;
  font-size:12px;
  color:var(--gray-2);
  transition:color 0.15s, background 0.15s;
}
.areas-town-link:hover{
  color:var(--white);
  background:rgba(255,255,255,0.04);
}
.areas-town-link .town-tx{
  display:block;
  font-size:9px;
  color:var(--gray-4);
  margin-top:1px;
}
.areas-view-all{
  display:block;
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,0.07);
  font-size:9px;
  letter-spacing:0.25em;
  text-transform:uppercase;
  color:var(--red);
}


/* ── DROPDOWN HOVER BRIDGE (prevents disappearing too fast) ── */
.nav-links>li::before {
  content: '';
  position: absolute;
  top: 100%;
  left: -20px;
  right: -20px;
  height: 12px;
  background: transparent;
}
.nav-links>li>.nav-dropdown,
.nav-links>li>
.nav-links>li:hover>.nav-dropdown,
.nav-links>li>.nav-dropdown,
.nav-links>li>


/* ── MODERN UI ENHANCEMENTS ── */
:root {
  --glow-red: rgba(192,57,43,0.15);
  --glow-white: rgba(255,255,255,0.06);
  --border-subtle: rgba(255,255,255,0.07);
  --border-accent: rgba(192,57,43,0.35);
  --glass: rgba(255,255,255,0.03);
  --glass-hover: rgba(255,255,255,0.055);
}

/* Glass morphism for nav */
#nav {
  background: rgba(9,9,9,0.85) !important;
  backdrop-filter: blur(24px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
#nav.scrolled {
  background: rgba(9,9,9,0.96) !important;
}

/* Nav link hover - subtle underline animation */
.nav-links>li>a {
  position: relative;
}
.nav-links>li>a::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.nav-links>li>a:hover::after {
  transform: scaleX(1);
}

/* CTA button - refined */
.nav-cta-btn {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(192,57,43,0.5) !important;
  letter-spacing: 0.25em;
}
.nav-cta-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red);
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}
.nav-cta-btn:hover::before { transform: translateX(0); }
.nav-cta-btn span, .nav-cta-btn { position: relative; z-index: 1; }

/* Dropdown - cleaner glass */
.nav-dropdown {
  background: rgba(9,9,9,0.97) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04);
}
.nav-dropdown a {
  transition: color 0.2s, background 0.2s, padding-left 0.25s !important;
}
.nav-dropdown a:hover {
  background: var(--glow-white) !important;
  color: var(--white) !important;
}

/* Areas mega - improved */

.areas-county-item {
  cursor: pointer;
  transition: all 0.18s ease !important;
  border-left: 2px solid transparent;
}
.areas-county-item:hover, .areas-county-item.active {
  color: var(--white) !important;
  background: var(--glow-white) !important;
  border-left-color: var(--red) !important;
  padding-left: 24px;
}
.areas-town-link {
  transition: all 0.18s ease !important;
  border-radius: 2px;
}
.areas-town-link:hover {
  color: var(--white) !important;
  background: var(--glow-white) !important;
  padding-left: 14px;
}

/* Cards - glass hover effect */
.listing-card, .county-card, .related-card, .rel-card, .service-card, .svc-card {
  transition: all 0.3s ease !important;
  position: relative;
  overflow: hidden;
}
.listing-card::before, .county-card::before, .related-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(192,57,43,0.04) 0%, transparent 70%);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.listing-card:hover::before, .county-card:hover::before, .related-card:hover::before {
  opacity: 1;
}

/* Stat blocks - accent glow */
.stat-block, .sb, .stat-item {
  transition: border-color 0.3s, box-shadow 0.3s !important;
}
.stat-block:hover, .sb:hover, .stat-item:hover {
  border-color: var(--border-accent) !important;
  box-shadow: 0 0 20px var(--glow-red), inset 0 0 20px rgba(192,57,43,0.03);
}

/* Section rules - animated */
.section-rule, .rule {
  position: relative;
  overflow: hidden;
}
.section-rule::after, .rule::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  transform: translateX(-100%);
  animation: ruleShimmer 3s ease 1s forwards;
}
@keyframes ruleShimmer {
  to { transform: translateX(200%); }
}

/* FAQ items - refined */
.faq-item {
  transition: padding 0.2s ease;
}
.faq-item.open {
  padding-left: 12px;
  border-left: 2px solid var(--red);
}
.faq-item.open .faq-q {
  color: var(--white) !important;
}

/* CTA buttons - refined */
.cta-btn.primary, .btn-w {
  position: relative;
  overflow: hidden;
  letter-spacing: 0.28em;
  transition: all 0.3s ease !important;
}
.cta-btn.outline, .btn-o {
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease !important;
}
.cta-btn.outline:hover, .btn-o:hover {
  background: rgba(255,255,255,0.08) !important;
  border-color: rgba(255,255,255,0.5) !important;
}

/* Map circles - pulse effect for large markets */
.leaflet-interactive {
  transition: opacity 0.2s !important;
}

/* Footer - refined glass */
footer {
  border-top: 1px solid rgba(255,255,255,0.05);
  position: relative;
}
footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 60px;
  right: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--red), transparent);
  opacity: 0.3;
}

/* Input focus - red glow */
input:focus, select:focus, textarea:focus {
  border-color: rgba(192,57,43,0.6) !important;
  box-shadow: 0 0 0 2px rgba(192,57,43,0.1) !important;
  outline:2px solid var(--red);outline-offset:-2px;
}

/* Scrollbar - styled */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: var(--black); }
::-webkit-scrollbar-thumb { background: rgba(192,57,43,0.4); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--red); }

/* Map sidebar scrollbar */
.map-city-list::-webkit-scrollbar { width: 3px; }
.map-city-list::-webkit-scrollbar-thumb { background: rgba(192,57,43,0.3); }
.areas-counties::-webkit-scrollbar { width: 3px; }
.areas-counties::-webkit-scrollbar-thumb { background: rgba(192,57,43,0.3); }

/* County page sections - ensure rv works with low threshold */
.rv { opacity: 0; transform: translateY(20px); transition: opacity 0.7s ease, transform 0.7s ease; }
.rv.in { opacity: 1 !important; transform: translateY(0) !important; }

/* County areas-county-item cursor fix */
div.areas-county-item { cursor: pointer !important; }


/* ── Mobile footer disclaimer, legible floor (2026-07-05: license and Fair
      Housing disclosures were 7.5px, below any reasonable reading size;
      raised to match the index footer treatment) ── */
@media(max-width:768px){
  .footer-legal, .fc-lg, p.footer-legal{
    font-size:12px !important;
    line-height:1.6 !important;
    letter-spacing:0 !important;
  }
  .footer-copy{font-size:11px !important;}
  .fc-py{font-size:11px !important;}
  .fb svg{width:20px !important;height:20px !important;}
}


/* ── Areas dropdown - CSS hover, no JS needed for open/close ── */



.areas-counties {
  border-right: 1px solid rgba(255,255,255,0.06);
  padding: 12px 0;
}
.areas-county-item {
  display: block;
  padding: 11px 20px;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gray-2);
  cursor: pointer;
  transition: all 0.12s;
  border-left: 2px solid transparent;
  text-decoration: none;
  white-space: nowrap;
}
.areas-county-item:hover,
.areas-county-item.active {
  color: var(--white);
  background: rgba(255,255,255,0.04);
  border-left-color: var(--red);
}
.areas-towns-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.areas-towns-header span {
  font-size: 9px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--red);
}
.areas-towns-header a {
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gray-3);
  text-decoration: none;
  transition: color 0.2s;
}
.areas-towns-header a:hover { color: var(--red); }
.areas-towns-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}
.areas-town-link {
  display: block;
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--gray-2);
  text-decoration: none;
  transition: color 0.15s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.areas-town-link:hover { color: var(--white); }
.areas-view-all {
  display: block;
  padding: 12px 24px;
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--red);
  text-decoration: none;
  border-top: 1px solid rgba(255,255,255,0.06);
  margin-top: 8px;
}
.areas-view-all:hover { color: var(--white); }


/* ── Areas mega dropdown - single authoritative definition ── */
.areas-mega {
  display: none;
  position: fixed;
  top: 70px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(7,7,7,0.99);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.09);
  border-top: none;
  min-width: 760px;
  max-width: 980px;
  z-index: 9999;
  pointer-events: all;
  box-shadow: 0 24px 80px rgba(0,0,0,0.7);
}
#areas-nav-li:hover > .areas-mega,
.areas-mega:hover {
  display: block !important;
}

.areas-towns-panel { display: none; padding: 20px 24px; }
.areas-towns-panel.active { display: block; }

/* ============================================================================
   SECTION C — PREMIUM REBUILD COMPONENTS  (homepage-caliber, premium-restrained)
   Appended overrides + new components. Universal chrome above is untouched.
   ============================================================================ */

/* --- refined section header rhythm --- */
.content-section{padding:var(--sp-section) 60px;}
.section-rule{width:48px;margin-bottom:20px;}
.section-eyebrow{font-size:var(--fs-label-sm);}
.section-heading{font-size:clamp(34px,4vw,58px);line-height:1.08;}
.page-subtitle{font-size:var(--fs-md);}
.content-body p{font-size:var(--fs-md);}
.content-body ul li{font-size:var(--fs-md);}
.svc-desc,.ps-desc{font-size:var(--fs-base);}
.svc-card.light-card:hover{background:var(--off-white);}

/* --- pill button system --- */
.btn-pill{display:inline-flex;align-items:center;gap:10px;border-radius:100px;padding:16px 36px;
  font-family:'Montserrat',sans-serif;font-size:var(--fs-xs);letter-spacing:0.28em;text-transform:uppercase;
  font-weight:500;transition:all 0.3s;cursor:pointer;border:1px solid transparent;}
.btn-pill.solid{background:var(--red);color:#fff;}
.btn-pill.solid:hover{background:var(--red-dark);}
.btn-pill.ghost{border-color:rgba(255,255,255,0.4);color:#fff;}
.btn-pill.ghost:hover{background:rgba(255,255,255,0.1);border-color:#fff;}
.btn-pill.dark{background:var(--black);color:#fff;}
.btn-pill.dark:hover{background:var(--red);}
.btn-pill.dark-ghost{border-color:rgba(9,9,9,0.3);color:var(--black);}
.btn-pill.dark-ghost:hover{background:var(--black);color:#fff;}

/* --- CINEMATIC HERO (full-bleed photo + Ken Burns zoom, pure CSS) --- */
.cine-hero{position:relative;min-height:90vh;display:flex;align-items:flex-end;overflow:hidden;}
.cine-hero-media{position:absolute;inset:0;overflow:hidden;}
.cine-hero-img{position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.02);animation:kenburns 24s ease-in-out infinite alternate;will-change:transform;}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.14)}}
@media (prefers-reduced-motion:reduce){.cine-hero-img{animation:none;}}
.cine-hero-scrim{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(9,9,9,0.97) 0%,rgba(9,9,9,0.55) 38%,rgba(9,9,9,0.12) 75%,rgba(9,9,9,0.35) 100%);}
.cine-hero-inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;
  padding:0 60px calc(var(--nav-h) - 8px);}
.cine-eyebrow{font-size:var(--fs-label-sm);letter-spacing:0.42em;text-transform:uppercase;color:var(--red);margin-bottom:20px;font-weight:500;}
.cine-title{font-family:'Cormorant Garamond',serif;font-size:clamp(48px,8vw,104px);font-weight:300;line-height:0.98;color:#fff;}
.cine-title em{font-style:italic;color:var(--gray-2);display:block;}
.cine-sub{font-size:var(--fs-lg);line-height:1.7;color:rgba(245,245,243,0.82);max-width:600px;margin-top:26px;}
.cine-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px;}

/* --- frosted-glass stat bar --- */
.cine-stats{display:flex;flex-wrap:wrap;margin-top:52px;border:1px solid rgba(255,255,255,0.16);
  border-radius:14px;background:rgba(255,255,255,0.05);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  overflow:hidden;max-width:780px;}
.cine-stat{flex:1;min-width:150px;padding:24px 28px;border-right:1px solid rgba(255,255,255,0.12);}
.cine-stat:last-child{border-right:none;}
.cine-stat-n{font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:300;color:#fff;line-height:1;}
.cine-stat-l{font-size:var(--fs-label-xs);letter-spacing:0.26em;text-transform:uppercase;color:var(--gray-2);margin-top:9px;}

/* --- full-bleed image-feature band --- */
.feature-band{position:relative;min-height:60vh;display:flex;align-items:center;overflow:hidden;}
.feature-band-img{position:absolute;inset:0;background-size:cover;background-position:center;
  filter:brightness(0.5) grayscale(12%);transform:scale(1.04);transition:transform 12s ease;}
.feature-band:hover .feature-band-img{transform:scale(1.1);}
.feature-band-scrim{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(9,9,9,0.92) 0%,rgba(9,9,9,0.6) 48%,rgba(9,9,9,0.2) 100%);}
.feature-band-inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:64px 60px;}
.feature-band-text{max-width:580px;}
.feature-band .section-heading{color:#fff;}
.feature-band-body{font-size:var(--fs-md);line-height:1.85;color:rgba(245,245,243,0.8);margin-top:8px;}

/* --- premium white CTA banner with dot pattern --- */
.cta-band{padding:var(--sp-section) 60px;background:var(--off-white);text-align:center;position:relative;overflow:hidden;}
.cta-band::before{content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(9,9,9,0.05) 1px,transparent 1px);background-size:26px 26px;opacity:0.7;}
.cta-band>*{position:relative;z-index:1;}
.cta-band-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:8px;}

/* --- underline contact form (homepage treatment) --- */
.cf-input,.cf-select,.cf-textarea{background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,0.18);
  border-radius:0;padding:14px 0;min-height:44px;font-size:var(--fs-md);font-weight:300;letter-spacing:0.03em;
  -webkit-appearance:none;appearance:none;}
.cf-input::placeholder,.cf-textarea::placeholder{color:rgba(245,245,243,0.5);}
.cf-input:focus,.cf-select:focus,.cf-textarea:focus{border-bottom-color:var(--red);outline:2px solid var(--red);outline-offset:-2px;}
.cf-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(245,245,243,0.35)'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0 center;padding-right:20px;}
.cf-select option{background:var(--gray-5);color:#fff;}
.cf-submit{width:auto;align-self:flex-start;background:#fff;color:var(--black);padding:16px 42px;border:none;
  font-size:var(--fs-label-md);letter-spacing:0.35em;text-transform:uppercase;font-weight:500;cursor:pointer;transition:all 0.3s;border-radius:100px;}
.cf-submit:hover{background:var(--red);color:#fff;}

/* --- pure-CSS scroll reveal (no JS); hidden state only where supported + motion allowed --- */
@keyframes vrIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    .reveal{animation:vrIn linear both;animation-timeline:view();animation-range:entry 0% entry 38%;}
  }
}

/* --- responsive for rebuild components --- */
@media(max-width:900px){
  .content-section{padding:52px 24px;}
  .cine-hero{min-height:78vh;}
  .cine-hero-inner{padding:0 24px calc(var(--nav-h) - 8px);}
  .cine-stats{margin-top:36px;}
  .cine-stat{min-width:50%;border-bottom:1px solid rgba(255,255,255,0.12);}
  .feature-band{min-height:auto;}
  .feature-band-inner{padding:64px 24px;}
  .feature-band-scrim{background:linear-gradient(to top,rgba(9,9,9,0.92),rgba(9,9,9,0.5));}
  .cta-band{padding:52px 24px;}
}

/* nav height token + full-bleed hero offset (rebuilt pages lead with .cine-hero) */
#nav{height:var(--nav-h);}
body{padding-top:0;}

/* ============================================================================
   SECTION D — EDITORIAL LAYOUTS (replace identical card grids; impeccable laws)
   ============================================================================ */

/* generous, varied section rhythm */
.content-section{padding:80px 60px;}
.content-section .section-heading{margin-bottom:12px;}
.section-lead{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.4vw,30px);font-weight:300;line-height:1.45;color:var(--gray-2);max-width:30ch;}
.content-section.light .section-lead{color:var(--gray-4);}

/* --- two-column editorial intro (lead + prose), asymmetric --- */
.edi-split{display:grid;grid-template-columns:0.85fr 1.15fr;gap:80px;align-items:start;margin-top:56px;}
.edi-prose p{font-size:var(--fs-md);line-height:1.95;color:var(--gray-2);margin-bottom:22px;}
.content-section.light .edi-prose p{color:var(--gray-4);}
.edi-checks{list-style:none;margin-top:8px;}
.edi-checks li{font-size:var(--fs-base);line-height:1.6;color:var(--gray-2);padding:16px 0 16px 30px;border-top:1px solid rgba(255,255,255,0.09);position:relative;}
.content-section.light .edi-checks li{color:var(--gray-4);border-top-color:rgba(9,9,9,0.1);}
.edi-checks li:first-child{border-top:none;}
.edi-checks li::before{content:'';position:absolute;left:0;top:23px;width:14px;height:1px;background:var(--red);}
@media(max-width:900px){.edi-split{grid-template-columns:1fr;gap:40px;}}

/* --- numbered editorial index (replaces svc-cards) --- */
.edi-index{display:grid;grid-template-columns:1fr 1fr;column-gap:72px;margin-top:56px;}
.edi-item{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;padding:34px 0;border-top:1px solid rgba(0,0,0,0.12);}
.content-section.dark .edi-item,.content-section.mid .edi-item{border-top-color:rgba(255,255,255,0.1);}
.edi-num{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:300;color:var(--red);line-height:1;font-style:italic;}
.edi-title{font-family:'Cormorant Garamond',serif;font-size:27px;font-weight:400;line-height:1.12;margin-bottom:11px;color:var(--black);}
.content-section.dark .edi-title,.content-section.mid .edi-title{color:var(--white);}
.edi-desc{font-size:var(--fs-base);line-height:1.75;color:var(--gray-4);}
.content-section.dark .edi-desc,.content-section.mid .edi-desc{color:var(--gray-3);}
@media(max-width:900px){.edi-index{grid-template-columns:1fr;column-gap:0;}}

/* --- editorial market list (replaces area-cards) --- */
.mkt-list{margin-top:56px;border-top:1px solid rgba(255,255,255,0.12);}
.mkt-row{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;padding:34px 0;border-bottom:1px solid rgba(255,255,255,0.12);align-items:baseline;transition:padding-left 0.35s cubic-bezier(0.22,1,0.36,1);}
.mkt-row:hover{padding-left:14px;}
.mkt-county{display:block;font-size:var(--fs-label-xs);letter-spacing:0.3em;text-transform:uppercase;color:var(--red);margin-bottom:12px;}
.mkt-name{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,2.6vw,34px);font-weight:300;color:var(--white);line-height:1.08;}
.mkt-desc{font-size:var(--fs-base);line-height:1.85;color:var(--gray-3);}
@media(max-width:900px){.mkt-row{grid-template-columns:1fr;gap:12px;padding:26px 0;}.mkt-row:hover{padding-left:0;}}

/* --- related: refined inline links, not boxed cards --- */
.rel-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid rgba(255,255,255,0.12);}
.rel-link{display:block;padding:38px 36px 38px 0;border-right:1px solid rgba(255,255,255,0.08);transition:background 0.3s;}
.rel-link:last-child{border-right:none;}
.rel-link:hover{background:rgba(255,255,255,0.02);padding-left:18px;}
.rel-cat{font-size:var(--fs-label-xs);letter-spacing:0.3em;text-transform:uppercase;color:var(--red);}
.rel-h{font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:400;color:var(--white);margin:12px 0 10px;}
.rel-p{font-size:var(--fs-sm);line-height:1.7;color:var(--gray-3);margin-bottom:16px;}
.rel-go{font-size:var(--fs-label-xs);letter-spacing:0.25em;text-transform:uppercase;color:var(--gray-2);transition:color 0.3s;}
.rel-link:hover .rel-go{color:var(--red);}
@media(max-width:900px){.rel-row{grid-template-columns:1fr;}.rel-link{border-right:none;border-bottom:1px solid rgba(255,255,255,0.08);padding:30px 0;}.rel-link:hover{padding-left:14px;}}

/* FAQ refinements */
.faq-section{padding:80px 60px;}
@media(max-width:900px){.faq-section{padding:52px 24px;}}

/* ============================================================================
   SECTION E — HOMEPAGE ALIGNMENT: black + off-white ONLY (no grey backgrounds)
   ============================================================================ */
/* kill every grey section/panel background -> black (homepage uses black or light only) */
.breadcrumb{background:var(--black);}
.content-section.mid{background:var(--black);}
.related-section{background:var(--black);padding:80px 60px;}
.contact-form-col{background:var(--black);}
.faq-section{background:var(--black);}

/* red section rule everywhere, including on light sections (homepage convention) */
.section-rule,.section-rule.dark-rule{background:var(--red);}

/* contact photo: full colour, gently dimmed (not a grey panel) */
.contact-img-bg{filter:brightness(0.62);}

/* homepage section rhythm */
.content-section{padding:80px 60px;}
@media(max-width:900px){.content-section,.related-section{padding:52px 24px;}}

/* FAQ on off-white so sections alternate (light) instead of stacking dark */
.faq-section.light{background:var(--off-white);}
.faq-section.light .section-heading{color:var(--black);}
.faq-section.light .section-heading em{color:var(--gray-4);}
.faq-section.light .faq-q{color:var(--black);}
.faq-section.light .faq-a{color:var(--gray-4);}
.faq-section.light .faq-item{border-bottom-color:rgba(9,9,9,0.12);}

/* ============================================================================
   SECTION F — OPTION C "BOLD STATEMENT" (light paper + black + red, lean)
   Canonical rebuild system. Uses c-* classes (no collision with legacy rules).
   The universal dark nav/footer chrome above is reused over this light body.
   ============================================================================ */
:root{--paper:#f5f3ef;--ink:#14110f;--mut:#7c7368;}
body{background:var(--paper);color:var(--ink);padding-top:var(--nav-h);}

/* hero */
.c-hero{max-width:1440px;margin:0 auto;padding:84px 60px 0;}
.c-kic{font-size:11px;letter-spacing:0.42em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:24px;}
.c-mega{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(60px,12vw,176px);line-height:0.86;letter-spacing:-0.02em;color:var(--ink);}
.c-mega em{font-style:normal;color:var(--red);}
.c-hrow{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;margin-top:38px;}
.c-hrow p{font-size:18px;line-height:1.6;color:var(--mut);max-width:42ch;}
.c-btn{display:inline-block;font-size:11px;letter-spacing:0.28em;text-transform:uppercase;font-weight:600;background:var(--ink);color:var(--paper);padding:18px 44px;transition:background .3s;border-radius:100px;}
.c-btn:hover{background:var(--red);}
.c-hphoto{height:60vh;min-height:440px;margin-top:56px;background-size:cover;background-position:center;}

/* meta bar */
.c-meta{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid rgba(20,17,15,0.14);max-width:1440px;margin:0 auto;padding:0 12px;}
.c-meta>div{padding:34px 48px;border-right:1px solid rgba(20,17,15,0.14);}
.c-meta>div:last-child{border-right:none;}
.c-meta b{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:34px;display:block;color:var(--ink);}
.c-meta span{font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:var(--mut);}

/* services: sticky rail + big numbered list */
.c-svc{display:grid;grid-template-columns:0.4fr 1fr;gap:48px;max-width:1440px;margin:0 auto;padding:80px 60px;}
.c-rail{position:sticky;top:calc(var(--nav-h) + 16px);align-self:start;}
.c-rail .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;}
.c-rail h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(34px,3.6vw,56px);line-height:1.02;margin-top:14px;color:var(--ink);}
.c-list{border-top:1px solid rgba(20,17,15,0.16);}
.c-item{display:grid;grid-template-columns:auto 1fr;gap:30px;padding:38px 0;border-bottom:1px solid rgba(20,17,15,0.16);align-items:baseline;}
.c-item .n{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:32px;color:var(--red);line-height:1;}
.c-item h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(26px,2.8vw,38px);line-height:1.05;color:var(--ink);}
.c-item p{font-size:14px;line-height:1.6;color:var(--mut);margin-top:8px;max-width:54ch;}

/* red statement block */
.c-statement{background:var(--red);color:#fff;padding:80px 60px;text-align:center;}
.c-statement h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(28px,4vw,58px);line-height:1.28;max-width:none;margin:0 auto;text-wrap:balance;}
.c-statement h2 .ln{display:block;}

/* markets: oversized type list */
.c-mk{max-width:1440px;margin:0 auto;padding:80px 60px;}
.c-mk .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:40px;}
.c-mk a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:26px 0;border-top:1px solid rgba(20,17,15,0.16);transition:padding-left .3s;color:var(--ink);}
.c-mk a:last-child{border-bottom:1px solid rgba(20,17,15,0.16);}
.c-mk a:hover{padding-left:16px;}
.c-mk .nm{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(28px,4vw,56px);line-height:1.04;}
.c-mk .co{font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:var(--mut);white-space:nowrap;}

/* faq (light, accordion) */
.c-faq{max-width:1100px;margin:0 auto;padding:30px 60px 80px;}
.c-faq .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:10px;}
.c-faq h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(32px,3.4vw,52px);margin-bottom:32px;color:var(--ink);}
.c-faq .item{border-top:1px solid rgba(20,17,15,0.14);padding:24px 0;cursor:pointer;}
.c-faq .item:last-child{border-bottom:1px solid rgba(20,17,15,0.14);}
.c-faq .q{display:flex;justify-content:space-between;gap:20px;align-items:center;font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--ink);}
.c-faq .ic{color:var(--red);font-size:24px;flex-shrink:0;transition:transform .3s;}
.c-faq .a{font-size:15px;line-height:1.8;color:var(--mut);margin-top:14px;display:none;max-width:84ch;}
.c-faq .item.open .a{display:block;}
.c-faq .item.open .ic{transform:rotate(45deg);}

/* contact (dark anchor) + form */
/* light split contact: John & Justin photo + form (no grey) */
.c-contact{background:var(--paper);color:var(--ink);padding:0;border-top:1px solid rgba(20,17,15,0.12);}
.c-contact-in{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:0.82fr 1.18fr;gap:0;align-items:stretch;}
.c-contact-photo{background:url('/jk-team.jpg') center 18%/cover no-repeat;min-height:560px;}
.c-contact-body{padding:80px 60px;}
.c-contact .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;}
.c-contact h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(36px,4vw,58px);line-height:1.02;margin:14px 0 18px;color:var(--ink);}
.c-contact .sub{font-size:15px;color:var(--mut);line-height:1.7;margin-bottom:26px;max-width:46ch;}
.c-nap{display:flex;gap:40px;flex-wrap:wrap;margin-bottom:30px;}
.c-nap .l{font-size:10px;letter-spacing:0.28em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:4px;}
.c-nap .v{font-size:15px;color:var(--ink);}
.c-nap .v a{color:var(--ink);}
.c-form{display:flex;flex-direction:column;gap:18px;max-width:580px;}
.c-form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.c-form label{font-size:10px;letter-spacing:0.28em;text-transform:uppercase;color:var(--mut);display:block;margin-bottom:8px;}
.c-form input,.c-form select,.c-form textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(20,17,15,0.22);color:var(--ink);padding:12px 0;min-height:44px;font-family:'Montserrat',sans-serif;font-size:16px;font-weight:300;outline:none;transition:border-color .3s;-webkit-appearance:none;appearance:none;}
.c-form input::placeholder,.c-form textarea::placeholder{color:rgba(20,17,15,0.4);}
.c-form input:focus,.c-form select:focus,.c-form textarea:focus{border-bottom-color:var(--red);}
.c-form select option{background:#fff;color:var(--ink);}
.c-form button{margin-top:8px;align-self:flex-start;background:var(--red);color:#fff;border:none;padding:16px 44px;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;font-weight:600;border-radius:100px;cursor:pointer;transition:background .3s;}
.c-form button:hover{background:var(--red-dark);}

/* pure-CSS reveal for C (reuses vrIn keyframe defined earlier) */
@supports (animation-timeline: view()){@media (prefers-reduced-motion:no-preference){.c-rev{animation:vrIn linear both;animation-timeline:view();animation-range:entry 0% entry 36%;}}}

/* responsive */
@media(max-width:900px){
  .c-hero{padding:52px 24px 0;}
  .c-meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .c-meta>div{padding:24px;}
  .c-svc{grid-template-columns:1fr;gap:22px;padding:52px 24px;}
  .c-rail{position:static;}
  .c-item{grid-template-columns:auto 1fr;gap:18px;padding:28px 0;}
  .c-statement{padding:52px 24px;}
  .c-mk{padding:52px 24px;}
  .c-faq{padding:20px 22px 72px;}
  .c-contact-in{grid-template-columns:1fr;gap:0;}
  .c-contact-photo{min-height:320px;}
  .c-contact-body{padding:52px 24px;}
  .c-form .row{grid-template-columns:1fr;}
  .c-hphoto{height:42vh;min-height:300px;}
}

/* ============================================================================
   SECTION G — RICHER CONTENT for Option C (town/area facts + overview)
   ============================================================================ */
/* town/area overview: asymmetric editorial intro */
.c-about{max-width:1440px;margin:0 auto;padding:80px 60px 0;display:grid;grid-template-columns:0.8fr 1.2fr;gap:72px;align-items:start;}
.c-about .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;}
.c-about h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(30px,3.2vw,50px);line-height:1.05;margin-top:14px;color:var(--ink);}
.c-about .body p{font-size:var(--fs-md);line-height:1.9;color:var(--mut);margin-bottom:18px;}
@media(max-width:900px){.c-about{grid-template-columns:1fr;gap:24px;padding:64px 22px 0;}}

/* "at a glance" facts grid (scannable info, not prose) */
.c-facts{max-width:1440px;margin:0 auto;padding:56px 60px 80px;}
.c-facts .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:34px;}
.c-facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 56px;border-top:1px solid rgba(20,17,15,0.18);}
.c-fact{padding:28px 0;border-bottom:1px solid rgba(20,17,15,0.14);}
.c-fact .l{font-size:var(--fs-label-xs);letter-spacing:0.26em;text-transform:uppercase;color:var(--red);margin-bottom:9px;}
.c-fact .v{font-family:'Cormorant Garamond',serif;font-size:23px;line-height:1.2;color:var(--ink);margin-bottom:7px;}
.c-fact .d{font-size:13px;line-height:1.65;color:var(--mut);}
@media(max-width:900px){.c-facts{padding:48px 22px 64px;}.c-facts-grid{grid-template-columns:1fr 1fr;gap:0 28px;}}
@media(max-width:600px){.c-facts-grid{grid-template-columns:1fr;}}

/* ============================================================================
   SECTION H — TOWN/COUNTY FOOTER (.fg/.fc markup; restore original look)
   ============================================================================ */
footer:has(.fg){padding:0;background:var(--black);}
footer .fg{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px;max-width:1400px;margin:0 auto;padding:60px 60px 40px;border-bottom:1px solid rgba(255,255,255,0.06);}
footer .ft{font-size:14px;color:var(--gray-3);line-height:1.8;max-width:260px;margin-top:8px;}
footer .fc-t{font-size:9px;letter-spacing:0.38em;text-transform:uppercase;color:var(--red);margin-bottom:16px;}
footer .fc ul{list-style:none;}
footer .fc ul li{margin-bottom:8px;}
footer .fc ul li a{font-size:14px;color:var(--gray-3);transition:color .3s;}
footer .fc ul li a:hover{color:var(--white);}
footer .fb{max-width:1400px;margin:0 auto;padding:22px 60px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
footer .fc-py{font-size:11px;color:var(--gray-4);}
footer .fc-lg{font-size:10px;color:var(--gray-4);line-height:1.7;max-width:720px;}
@media(max-width:900px){footer .fg{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding:44px 22px;}footer .fb{padding:20px 22px;}}
@media(max-width:600px){footer .fg{grid-template-columns:minmax(0,1fr);}}

/* ============================================================================
   SECTION I — CANDIDATE MID-PAGE BANDS (alternatives to the red statement)
   ============================================================================ */
/* A — Market Snapshot (data band, light) */
.c-snapshot{max-width:1440px;margin:0 auto;padding:80px 60px;}
.c-snapshot .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:30px;}
.c-snapshot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 48px;border-top:1px solid rgba(20,17,15,0.18);}
.c-snapshot-grid>div{padding:30px 0;border-bottom:1px solid rgba(20,17,15,0.14);}
.c-snapshot-grid b{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;display:block;color:var(--ink);line-height:1.1;}
.c-snapshot-grid span{font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:var(--mut);margin-top:9px;display:block;}
@media(max-width:760px){.c-snapshot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 28px;}}

/* B — Browse Homes photo CTA (full-bleed image, no red block) */
.c-photocta{position:relative;min-height:46vh;display:flex;align-items:center;overflow:hidden;}
.c-photocta-img{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(0.5);transform:scale(1.04);transition:transform 12s ease;}
.c-photocta:hover .c-photocta-img{transform:scale(1.1);}
.c-photocta-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,9,9,0.86),rgba(9,9,9,0.3));}
.c-photocta-in{position:relative;z-index:2;max-width:1440px;margin:0 auto;padding:56px 60px;width:100%;}
.c-photocta .e{font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:#fff;opacity:0.8;font-weight:600;margin-bottom:16px;}
.c-photocta h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(30px,4vw,54px);color:#fff;max-width:20ch;line-height:1.05;margin-bottom:26px;}

/* C — Quiet brand line (light, no red block) */
.c-quote{max-width:1100px;margin:0 auto;padding:80px 60px;text-align:center;}
.c-quote .section-rule{margin:0 auto 22px;}
.c-quote h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(30px,4vw,54px);color:var(--ink);line-height:1.18;}
.c-quote h2 em{font-style:italic;color:var(--red);}
@media(max-width:760px){.c-snapshot,.c-quote{padding:52px 24px;}.c-photocta-in{padding:48px 24px;}}

/* areas directory */
.c-area{max-width:1440px;margin:0 auto;padding:80px 60px;border-top:1px solid rgba(20,17,15,0.12);}
.c-area:first-of-type{border-top:none;}
.c-area-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:28px;}
.c-area-head .co{font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:8px;}
.c-area-head h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(28px,3vw,44px);color:var(--ink);line-height:1.05;}
.c-area-all{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--red);white-space:nowrap;}
.c-area-towns{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 28px;}
.c-area-towns a{font-size:15px;color:var(--gray-4);padding:6px 0;border-bottom:1px solid transparent;transition:color .2s;}
.c-area-towns a:hover{color:var(--red);}
@media(max-width:900px){.c-area{padding:48px 22px;}.c-area-towns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
@media(max-width:560px){.c-area-towns{grid-template-columns:1fr;}}

/* ============================================================================
   SECTION J — CANONICAL FOOTER support (match homepage footer on every page)
   ============================================================================ */
:root{--gray-link-dark:#9a938b;}
.footer-socials{display:flex;gap:10px;flex-wrap:wrap;}
.footer-social{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,0.14);color:var(--gray-3);font-size:12px;letter-spacing:0;line-height:1;transition:all 0.3s;}
.footer-social:hover{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-2px);}
.footer-cross-site a:hover{color:var(--red)!important;}

/* WCAG 2.1 AA contrast (2026-06-27): red labels on dark -> brighter; muted footer/nav/contact text -> readable. Buttons keep --red. */
.page-eyebrow,.section-eyebrow,.area-county,.rc-label,.rc-link,.ci-label,.footer-col-title{color:#e35c50!important;}
.footer-copy,.footer-legal{color:#cfcdc8!important;}
.nav-logo-wrap small{color:#b8b5b2!important;}
.c-hrow p,.c-meta span{color:#5a534c!important;}

/* ============================================================================
   SECTION K — 2026-07-05 MOBILE REMEDIATION (design-only overlay)
   Source: mobile audit at 320/360/375/390/414. CSS values only; zero content,
   structure, IDs, hrefs, or JS hooks touched. Rollback: delete Section K.
   ============================================================================ */

/* K1 ── Nav logo compressibility (hamburger was pushed off-screen at 320px
        because .nav-logo-wrap{flex-shrink:0} + the letter-spaced tagline set a
        fixed min width). Logo may now shrink; both lines truncate with an
        ellipsis instead of pushing the menu button out. */
@media(max-width:1080px){
  .hamburger{flex-shrink:0;}
  .nav-logo-wrap{flex-shrink:1;min-width:0;overflow:hidden;}
  .nav-logo-wrap,
  .nav-logo-wrap small{white-space:nowrap;text-overflow:ellipsis;}
  .nav-logo-wrap small{overflow:hidden;max-width:100%;}
}
@media(max-width:600px){
  #nav{padding:0 16px;gap:16px;}
  .nav-logo-wrap{font-size:13px;letter-spacing:0.14em;}
  .nav-logo-wrap small{font-size:7px;letter-spacing:0.1em;}
}

/* K2 ── Interior mega H1: same clamp above 500px viewports; the 60px floor
        gave "New Construction" no breathing room at 320-390. */
.c-mega{font-size:clamp(44px,12vw,176px);}

/* K3 ── Muted text contrast on dark surfaces (gray-3 on near-black is 4.06:1,
        below AA 4.5:1 at body sizes; gray-2 is 9.76:1). Light c-template
        labels: --mut on --paper is 4.1:1; darkened within the same family. */
.svc-desc,.ps-desc,.area-towns,.rc-desc,.sb-lbl,
.contact-sub,.cf-label,.channel-sub,
.footer-tagline,.footer-col ul li a,
footer .ft,footer .fc ul li a,
.breadcrumb,.breadcrumb a{color:var(--gray-2);}
.c-mk .co,.c-snapshot-grid span{color:#5f574c;}

/* K4 ── Micro-label legibility floor (8-10px labels raised; tracking eased
        so nothing gains width it cannot afford). */
.breadcrumb{font-size:11px;letter-spacing:0.16em;}
.mn-county-name a{font-size:11px;}
.channel-label{font-size:10px;letter-spacing:0.25em;}
.channel-sub{font-size:11px;}
footer .fc-t{font-size:10.5px;letter-spacing:0.3em;}
.cf-submit{font-size:12px;letter-spacing:0.24em;}
.scta-btn{font-size:10.5px;letter-spacing:0.18em;}

/* K5 ── Tap targets to a 44px-class hit area on touch widths (padding plus
        negative margin keeps the visual rhythm; no redesign). */
@media(max-width:768px){
  .mcb-btn{font-size:11px;letter-spacing:0.14em;min-height:56px;}
  .mn-county-name a{display:inline-block;padding:13px 10px;margin:-10px -10px -13px 0;}
  .footer-col ul li a,
  footer .fc ul li a{display:inline-block;padding:10px 0;margin:-4px 0;}
  .channel-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;font-size:10px;}
  .footer-social{width:42px;height:42px;line-height:40px;}
}

/* K6 ── Latent overflow guards: the footer brand column's letter-spaced
        small-caps line has a min-content wider than a 390px viewport while
        the webfont loads (measured scrollWidth 521). Let long tokens break
        instead of widening the grid. Market-row eyebrows lose their nowrap
        below 480px (they clipped at 320). */
.footer-brand,.footer-tagline,footer .ft{overflow-wrap:anywhere;}
@media(max-width:480px){
  .c-mk .co{white-space:normal;}
}

/* K7 ── Post-sweep additions (2026-07-05 audit): long mailto links wrap
        instead of widening the page; footer tagline reading floor; the
        fixed-width footer logo pair (174px + 140px + divider) overflowed
        every viewport under 400px, so it scales down there. */
a[href^="mailto:"]{overflow-wrap:anywhere;}
@media(max-width:768px){
  .footer-tagline{font-size:13px;}
}
@media(max-width:400px){
  footer img[src*="-logo"]{height:24px!important;}
}

/* Uniform CTA spec: pill shape, one size, one type treatment (colors stay per-button).
   Appended last so it wins over the per-template definitions above. */
.c-btn,.btn-pill,.btn-dark,.btn-outline-dark,.cf-submit{
  border-radius:100px;
  padding:16px 40px;
  font-size:12px;
  letter-spacing:0.3em;
  line-height:1.25;
}

/* c-meta cells: keep min-content from widening the stat band at 320px. */
.c-meta>div{min-width:0;}
