/* =========================================
   BASE — document defaults shared by every page
========================================= */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: #fff; }
body.ds-page { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; display: block; }
[hidden] { display: none !important; }

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 1000;
  background: var(--ds-navy-dark); color: #fff !important; padding: 12px 18px; border-radius: 8px;
  font-weight: 600; transition: top .2s;
}
.skip-link:focus { top: 12px; outline: 3px solid var(--ds-gold); }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Inline links inside body copy */
.ds-rich a { color: var(--ds-navy); font-weight: 600; border-bottom: 1px solid var(--ds-border); transition: var(--ds-ease); }
.ds-rich a:hover, .ds-rich a:focus-visible { color: var(--ds-gold); border-bottom-color: var(--ds-gold); }
.ds-rich a:focus-visible { outline: 3px solid var(--ds-gold); outline-offset: 2px; }
.ds-rich strong { color: var(--ds-navy-dark); font-weight: 700; }
.ds-section--navy .ds-rich strong, .ds-hero .ds-rich strong, .hm-hero .ds-rich strong { color: #fff; }
.ds-hero .ds-rich a { color: var(--ds-border); border-bottom-color: rgba(227,205,175,.5); }

/* Serif accent used in the home hero ("Your Journey.") */
.ds-accent { font-family: 'Playfair Display', var(--ds-font-t); font-style: italic; color: var(--ds-border); }



/* =========================================
   SMG DESIGN SYSTEM
   Ported from the original site's inline geo-page stylesheet (prefix renamed to ds-).
   Brand palette + type from the Smith Mortgage Group brand guide.
========================================= */
.ds-page, .ds-page *, .ds-page *::before, .ds-page *::after { box-sizing: border-box; }
.ds-page {
  --ds-navy:#1C355E; --ds-navy-dark:#08162B; --ds-navy-light:#53618C;
  --ds-gold:#977F52; --ds-gold-light:#B19F7D; --ds-cream:#F2EDE7; --ds-white:#ffffff;
  --ds-text:#08162B; --ds-muted:#53618C; --ds-border:#E3CDAF;
  --ds-font-t:'Libertarian', Georgia, serif;
  --ds-font-d:'Campton', 'Libre Franklin', sans-serif;
  --ds-font-b:'Libre Franklin', system-ui, sans-serif;
  --ds-radius-sm:8px; --ds-radius-md:14px; --ds-radius-lg:22px; --ds-radius-xl:32px; --ds-radius-btn:10px;
  --ds-shadow-sm:0 2px 8px rgba(28,53,94,.08); --ds-shadow-md:0 6px 24px rgba(28,53,94,.12);
  --ds-shadow-lg:0 16px 48px rgba(28,53,94,.18); --ds-shadow-xl:0 24px 72px rgba(28,53,94,.22);
  --ds-ease:0.3s cubic-bezier(0.4,0,0.2,1);
  font-family:var(--ds-font-b); color:var(--ds-text); background:var(--ds-white); line-height:1.6;
}
/* zero-specificity resets (:where) so component classes always win */
:where(.ds-page) :where(h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd){margin:0;padding:0;}
:where(.ds-page) :where(ul.ds-list,ul.ds-chips,ul.ds-metrogrid){list-style:none;}
:where(.ds-page) :where(a){color:inherit;text-decoration:none;}
:where(.ds-page) :where(img){max-width:100%;height:auto;display:block;}
.ds-container{max-width:1200px;margin:0 auto;padding:0 24px;}
.ds-narrow{max-width:820px;margin:0 auto;padding:0 24px;}
.ds-section{padding:84px 0;} .ds-section--tight{padding:56px 0;}
.ds-section--cream{background:var(--ds-cream);} .ds-section--navy{background:var(--ds-navy);}
.ds-center{text-align:center;}
/* type */
.ds-label{display:inline-flex;align-items:center;gap:8px;font-family:var(--ds-font-d);font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--ds-navy);margin-bottom:16px;}
.ds-label::before{content:'';display:block;width:24px;height:2px;background:var(--ds-gold);border-radius:2px;}
.ds-label--light{color:var(--ds-gold-light);} .ds-label--light::before{background:var(--ds-gold-light);}
.ds-h1{font-family:var(--ds-font-t);font-weight:400;font-size:clamp(36px,4.8vw,58px);line-height:1.08;letter-spacing:-.015em;color:var(--ds-white);margin-bottom:18px;}
.ds-h2{font-family:var(--ds-font-t);font-weight:400;font-size:clamp(29px,3.8vw,44px);line-height:1.15;letter-spacing:-.01em;color:var(--ds-text);margin-bottom:18px;}
.ds-h2--white{color:var(--ds-white);}
.ds-h3{font-family:var(--ds-font-t);font-weight:400;font-size:clamp(20px,2.4vw,25px);line-height:1.25;color:var(--ds-text);margin-bottom:12px;}
.ds-lede{font-size:17px;color:var(--ds-muted);line-height:1.75;} .ds-lede--white{color:rgba(242,237,231,.86);}
.ds-body{font-size:16px;color:var(--ds-text);line-height:1.75;margin-bottom:18px;} .ds-body--muted{color:var(--ds-muted);}
.ds-link{color:var(--ds-navy)!important;font-weight:600;border-bottom:1px solid var(--ds-border);transition:var(--ds-ease);}
.ds-link:hover,.ds-link:focus-visible{color:var(--ds-gold)!important;border-bottom-color:var(--ds-gold);}
.ds-link:focus-visible{outline:3px solid var(--ds-gold);outline-offset:3px;}
.ds-section-head{max-width:760px;margin-bottom:46px;}
.ds-section-head--center{margin-left:auto;margin-right:auto;text-align:center;}
.ds-section-head--center .ds-label{justify-content:center;}
/* buttons */
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;border-radius:var(--ds-radius-btn);font-family:var(--ds-font-d);font-size:14.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;line-height:1.2;transition:var(--ds-ease);cursor:pointer;border:2px solid transparent;text-decoration:none!important;}
.ds-btn svg{width:17px;height:17px;flex-shrink:0;fill:none!important;}
.ds-btn--primary,.ds-btn--primary:link,.ds-btn--primary:visited{background-color:var(--ds-gold)!important;color:var(--ds-navy-dark)!important;border-color:var(--ds-gold)!important;box-shadow:0 4px 18px rgba(151,127,82,.32);}
.ds-btn--primary svg{stroke:var(--ds-navy-dark)!important;fill:none!important;}
.ds-btn--primary:hover,.ds-btn--primary:focus-visible,.ds-btn--primary:active{background-color:var(--ds-navy-dark)!important;color:var(--ds-white)!important;border-color:var(--ds-navy-dark)!important;transform:translateY(-2px);box-shadow:0 10px 24px rgba(8,22,43,.28);}
.ds-btn--primary:hover svg,.ds-btn--primary:focus-visible svg,.ds-btn--primary:active svg{stroke:var(--ds-white)!important;fill:none!important;}
.ds-btn--navy,.ds-btn--navy:link,.ds-btn--navy:visited{background-color:var(--ds-navy)!important;color:var(--ds-white)!important;border-color:var(--ds-navy)!important;box-shadow:var(--ds-shadow-md);}
.ds-btn--navy svg{stroke:var(--ds-white)!important;fill:none!important;}
.ds-btn--navy:hover,.ds-btn--navy:focus-visible,.ds-btn--navy:active{background-color:var(--ds-gold)!important;color:var(--ds-navy-dark)!important;border-color:var(--ds-gold)!important;transform:translateY(-2px);box-shadow:var(--ds-shadow-lg);}
.ds-btn--navy:hover svg,.ds-btn--navy:focus-visible svg,.ds-btn--navy:active svg{stroke:var(--ds-navy-dark)!important;fill:none!important;}
.ds-btn--outline,.ds-btn--outline:link,.ds-btn--outline:visited{background-color:transparent!important;color:var(--ds-navy)!important;border-color:var(--ds-border)!important;}
.ds-btn--outline svg{stroke:var(--ds-navy)!important;fill:none!important;}
.ds-btn--outline:hover,.ds-btn--outline:focus-visible,.ds-btn--outline:active{background-color:var(--ds-navy)!important;color:var(--ds-white)!important;border-color:var(--ds-navy)!important;}
.ds-btn--outline:hover svg,.ds-btn--outline:focus-visible svg,.ds-btn--outline:active svg{stroke:var(--ds-white)!important;fill:none!important;}
.ds-btn--outline-white,.ds-btn--outline-white:link,.ds-btn--outline-white:visited{background-color:transparent!important;color:var(--ds-white)!important;border-color:rgba(227,205,175,.60)!important;}
.ds-btn--outline-white svg{stroke:var(--ds-white)!important;fill:none!important;}
.ds-btn--outline-white:hover,.ds-btn--outline-white:focus-visible,.ds-btn--outline-white:active{background-color:var(--ds-cream)!important;color:var(--ds-navy-dark)!important;border-color:var(--ds-cream)!important;}
.ds-btn--outline-white:hover svg,.ds-btn--outline-white:focus-visible svg,.ds-btn--outline-white:active svg{stroke:var(--ds-navy-dark)!important;fill:none!important;}
.ds-btn:focus-visible,.ds-acc-item>summary:focus-visible{outline:3px solid var(--ds-gold)!important;outline-offset:3px;}
.ds-btn--outline-white:focus-visible{outline-color:var(--ds-border)!important;}
.ds-actions{display:flex;gap:14px;flex-wrap:wrap;}
/* hero (shared) */
.ds-hero{position:relative;background-color:var(--ds-navy-dark);overflow:hidden;}
.ds-hero__media{position:absolute;inset:0;z-index:0;} .ds-hero__media img{width:100%;height:100%;object-fit:cover;}
.ds-hero__overlay{position:absolute;inset:0;z-index:1;pointer-events:none;}
.ds-hero__inner{position:relative;z-index:2;padding:88px 0 84px;}
.ds-hero__grid{display:grid;grid-template-columns:1fr 452px;gap:52px;align-items:center;}
.ds-hero__copy{max-width:640px;}
.ds-hero__lede{font-size:18px;color:rgba(242,237,231,.90);line-height:1.7;margin-bottom:28px;max-width:600px;}
.ds-hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px;}
.ds-hero__stats{display:flex;gap:38px;border-top:1px solid rgba(227,205,175,.28);padding-top:26px;flex-wrap:wrap;}
.ds-hero__stat-value{font-family:var(--ds-font-t);font-weight:400;font-size:32px;color:var(--ds-border);line-height:1;margin-bottom:6px;}
.ds-hero__stat-label{font-family:var(--ds-font-d);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(242,237,231,.78);font-weight:500;}
/* hero form card (contact form IN the banner) */
.ds-hero__form{background:var(--ds-white);border-radius:var(--ds-radius-xl);padding:30px 28px;box-shadow:var(--ds-shadow-xl);border:1px solid var(--ds-border);}
.ds-hero__form-title{font-family:var(--ds-font-t);font-weight:400;font-size:24px;line-height:1.22;color:var(--ds-navy);margin-bottom:6px;}
.ds-hero__form-sub{font-size:13.5px;color:var(--ds-muted);margin-bottom:20px;}
/* breadcrumb (metro pages) */
.ds-crumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-family:var(--ds-font-d);font-size:12.5px;letter-spacing:.04em;color:rgba(242,237,231,.72);margin-bottom:18px;}
.ds-crumb a{color:var(--ds-gold-light)!important;border-bottom:1px solid transparent;}
.ds-crumb a:hover,.ds-crumb a:focus-visible{border-bottom-color:var(--ds-gold-light);}
.ds-crumb a:focus-visible{outline:2px solid var(--ds-border);outline-offset:2px;}
.ds-crumb span[aria-hidden]{opacity:.5;}
/* chips */
.ds-chips{display:flex;flex-wrap:wrap;gap:10px;}
.ds-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:50px;font-family:var(--ds-font-d);font-size:13px;font-weight:600;background:var(--ds-cream);color:var(--ds-navy);}
.ds-chip svg{width:14px;height:14px;stroke:var(--ds-gold)!important;fill:none!important;}
/* grids + cards */
.ds-grid{display:grid;gap:22px;} .ds-grid--2{grid-template-columns:repeat(2,1fr);} .ds-grid--3{grid-template-columns:repeat(3,1fr);} .ds-grid--4{grid-template-columns:repeat(4,1fr);}
.ds-card{position:relative;background:var(--ds-white);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);padding:30px 26px;box-shadow:var(--ds-shadow-sm);transition:var(--ds-ease);display:flex;flex-direction:column;}
.ds-card:hover{transform:translateY(-4px);box-shadow:var(--ds-shadow-md);border-color:var(--ds-navy);}
.ds-card--cream{background:var(--ds-cream);border-color:var(--ds-border);}
.ds-card__icon{width:52px;height:52px;background:var(--ds-cream);border-radius:var(--ds-radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.ds-card__icon svg{width:26px;height:26px;stroke:var(--ds-navy)!important;fill:none!important;}
.ds-card__title{font-family:var(--ds-font-t);font-weight:400;font-size:21px;line-height:1.28;color:var(--ds-text);margin-bottom:10px;}
.ds-card__desc{font-size:14.5px;color:var(--ds-muted);line-height:1.65;}
.ds-card__foot{margin-top:auto;padding-top:16px;}
/* metro cards (state hub -> its metros): link cards, gold left accent */
.ds-metrogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ds-metro{display:flex;flex-direction:column;background:var(--ds-white);border:1px solid var(--ds-border);border-left:4px solid var(--ds-gold);border-radius:var(--ds-radius-md);padding:26px 24px;transition:var(--ds-ease);}
.ds-metro:hover,.ds-metro:focus-visible{transform:translateY(-4px);box-shadow:var(--ds-shadow-md);border-color:var(--ds-navy);border-left-color:var(--ds-gold);}
.ds-metro:focus-visible{outline:3px solid var(--ds-gold);outline-offset:3px;}
.ds-metro__name{font-family:var(--ds-font-t);font-weight:400;font-size:22px;color:var(--ds-navy);margin-bottom:8px;display:flex;align-items:center;gap:9px;}
.ds-metro__name svg{width:16px;height:16px;stroke:var(--ds-gold)!important;fill:none!important;flex-shrink:0;}
.ds-metro__desc{font-size:14px;color:var(--ds-muted);line-height:1.6;margin-bottom:14px;}
.ds-metro__cta{margin-top:auto;font-family:var(--ds-font-d);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ds-navy);}
/* split */
.ds-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.ds-split--reverse .ds-split__media{order:2;}
.ds-split__media{border-radius:var(--ds-radius-lg);overflow:hidden;box-shadow:var(--ds-shadow-lg);}
.ds-split__media img{width:100%;height:100%;object-fit:cover;}
.ds-split__body{min-width:0;}
/* check list */
.ds-list{display:flex;flex-direction:column;gap:14px;margin:22px 0;}
.ds-list li{position:relative;padding-left:34px;font-size:15.5px;color:var(--ds-text);line-height:1.6;}
.ds-list li::before{content:'';position:absolute;left:0;top:2px;width:22px;height:22px;border-radius:50%;background:var(--ds-cream);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231C355E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;}
.ds-list--2col{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px;}
/* snapshot panel (metro) */
.ds-snapshot{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--ds-white);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);overflow:hidden;box-shadow:var(--ds-shadow-sm);}
.ds-snapshot__cell{padding:24px 22px;border-right:1px solid var(--ds-border);}
.ds-snapshot__cell:last-child{border-right:none;}
.ds-snapshot__k{font-family:var(--ds-font-d);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ds-muted);margin-bottom:8px;}
.ds-snapshot__v{font-size:15px;color:var(--ds-navy);font-weight:600;line-height:1.4;}
/* steps */
.ds-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.ds-step__num{width:58px;height:58px;border-radius:50%;background:var(--ds-navy);color:var(--ds-white);font-family:var(--ds-font-t);font-weight:400;font-size:25px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 6px 20px rgba(28,53,94,.25);}
.ds-step__title{font-family:var(--ds-font-t);font-weight:400;font-size:19px;color:var(--ds-text);margin-bottom:8px;}
.ds-step__desc{font-size:14.5px;color:var(--ds-muted);line-height:1.65;}
/* accordion */
.ds-acc{display:flex;flex-direction:column;}
.ds-acc-item{border-bottom:1px solid var(--ds-border);} .ds-acc-item:first-child{border-top:1px solid var(--ds-border);}
.ds-acc-item>summary{list-style:none;cursor:pointer;padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--ds-font-d);font-size:16.5px;font-weight:600;color:var(--ds-text);transition:color var(--ds-ease);}
.ds-acc-item>summary::-webkit-details-marker{display:none;}
.ds-acc-item>summary:hover,.ds-acc-item>summary:focus-visible{color:var(--ds-navy);}
.ds-acc-icon{width:28px;height:28px;border-radius:50%;background:var(--ds-cream);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:var(--ds-ease);}
.ds-acc-icon svg{width:14px;height:14px;stroke:var(--ds-navy)!important;fill:none!important;transition:var(--ds-ease);}
.ds-acc-item[open] .ds-acc-icon{background:var(--ds-navy);transform:rotate(45deg);}
.ds-acc-item[open] .ds-acc-icon svg{stroke:var(--ds-white)!important;}
.ds-acc-body{padding:0 0 22px;font-size:15px;color:var(--ds-muted);line-height:1.7;}
.ds-acc-body p{margin-bottom:12px;} .ds-acc-body p:last-child{margin-bottom:0;}
/* callout */
.ds-callout{background:var(--ds-cream);border-left:4px solid var(--ds-gold);border-radius:0 var(--ds-radius-md) var(--ds-radius-md) 0;padding:24px 26px;}
.ds-callout p:last-child{margin-bottom:0;}
/* CTA band */
.ds-cta{background:linear-gradient(135deg,var(--ds-navy-dark) 0%,var(--ds-navy) 60%,var(--ds-navy-light) 100%);position:relative;overflow:hidden;}
.ds-cta__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center;}
.ds-cta__phone{display:flex;align-items:center;gap:14px;color:rgba(242,237,231,.78);font-size:14px;}
.ds-cta__phone strong{display:block;color:var(--ds-white);font-size:20px;font-weight:700;}
.ds-cta__phone strong a{color:var(--ds-white)!important;text-decoration:none!important;border-bottom:1px solid rgba(227,205,175,.5);}
.ds-cta__phone strong a:hover,.ds-cta__phone strong a:focus-visible{color:var(--ds-gold-light)!important;border-bottom-color:var(--ds-gold-light);}
.ds-cta__phone strong a:focus-visible{outline:3px solid var(--ds-border);outline-offset:3px;}
.ds-cta__phone-icon{width:44px;height:44px;border-radius:50%;background:rgba(151,127,82,.24);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ds-cta__phone-icon svg{width:20px;height:20px;stroke:var(--ds-gold-light)!important;fill:none!important;}
/* contact info cards (tail — no 2nd form) */
.ds-contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.ds-cc{display:flex;align-items:flex-start;gap:14px;padding:22px;background:var(--ds-white);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);}
.ds-cc__icon{width:44px;height:44px;background:var(--ds-navy);border-radius:var(--ds-radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ds-cc__icon svg{width:22px;height:22px;stroke:var(--ds-white)!important;fill:none!important;}
.ds-cc__label{font-family:var(--ds-font-d);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--ds-muted);margin-bottom:4px;}
.ds-cc__value{font-size:15px;font-weight:700;color:var(--ds-navy);word-break:break-word;}
.ds-cc__value a{color:var(--ds-navy)!important;text-decoration:none!important;border-bottom:1px solid var(--ds-border);}
.ds-cc__value a:hover,.ds-cc__value a:focus-visible{color:var(--ds-gold)!important;border-bottom-color:var(--ds-gold);}
.ds-cc__value a:focus-visible{outline:3px solid var(--ds-gold);outline-offset:3px;}
/* form wrap (used inside hero form card) */
.ds-hero__form label{font-family:var(--ds-font-d)!important;font-size:12.5px!important;font-weight:600!important;letter-spacing:.04em;color:var(--ds-muted)!important;}
.ds-hero__form input[type="text"],.ds-hero__form input[type="email"],.ds-hero__form input[type="tel"],.ds-hero__form input[type="number"],.ds-hero__form select,.ds-hero__form textarea{font-family:var(--ds-font-b)!important;font-size:15px!important;color:var(--ds-text)!important;background-color:var(--ds-white)!important;border:2px solid var(--ds-border)!important;border-radius:var(--ds-radius-sm)!important;padding:12px 16px!important;}
.ds-hero__form input:focus,.ds-hero__form select:focus,.ds-hero__form textarea:focus{border-color:var(--ds-navy)!important;box-shadow:0 0 0 3px rgba(28,53,94,.14)!important;outline:none!important;}
.ds-hero__form button[type="submit"],.ds-hero__form input[type="submit"]{background-color:var(--ds-gold)!important;color:var(--ds-navy-dark)!important;border:2px solid var(--ds-gold)!important;border-radius:var(--ds-radius-btn)!important;font-family:var(--ds-font-d)!important;font-size:14.5px!important;font-weight:600!important;letter-spacing:.09em!important;text-transform:uppercase!important;padding:15px 30px!important;cursor:pointer;}
.ds-hero__form button[type="submit"] svg,.ds-hero__form input[type="submit"] svg{stroke:var(--ds-navy-dark)!important;fill:none!important;}
.ds-hero__form button[type="submit"]:hover,.ds-hero__form button[type="submit"]:focus-visible,.ds-hero__form input[type="submit"]:hover,.ds-hero__form input[type="submit"]:focus-visible{background-color:var(--ds-navy-dark)!important;color:var(--ds-white)!important;border-color:var(--ds-navy-dark)!important;}
.ds-hero__form button[type="submit"]:hover svg,.ds-hero__form input[type="submit"]:hover svg{stroke:var(--ds-white)!important;fill:none!important;}
/* related */
.ds-related{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.ds-related__item{display:block;background:var(--ds-white);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);padding:22px;transition:var(--ds-ease);}
.ds-related__item:hover,.ds-related__item:focus-visible{border-color:var(--ds-navy);box-shadow:var(--ds-shadow-md);transform:translateY(-3px);}
.ds-related__item:focus-visible{outline:3px solid var(--ds-gold);outline-offset:3px;}
.ds-related__title{font-family:var(--ds-font-d);font-weight:700;font-size:15px;color:var(--ds-navy);margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.ds-related__title svg{width:15px;height:15px;stroke:var(--ds-gold)!important;fill:none!important;}
.ds-related__desc{font-size:13.5px;color:var(--ds-muted);line-height:1.55;}
/* disclosure */
.ds-disclosure{max-width:960px;margin:0 auto;padding:24px 26px;border-left:4px solid var(--ds-gold);background:var(--ds-cream);color:var(--ds-navy-dark);border-radius:0 var(--ds-radius-md) var(--ds-radius-md) 0;line-height:1.65;font-size:13.5px;}
.ds-disclosure a{color:var(--ds-navy)!important;text-decoration:underline;}
/* responsive */
@media (max-width:1000px){
  .ds-hero__grid{grid-template-columns:1fr;gap:36px;}
  .ds-hero__form{max-width:520px;}
}
@media (max-width:980px){
  .ds-section{padding:64px 0;} .ds-hero__inner{padding:64px 0 56px;}
  .ds-grid--3,.ds-grid--4{grid-template-columns:repeat(2,1fr);}
  .ds-metrogrid{grid-template-columns:repeat(2,1fr);}
  .ds-steps{grid-template-columns:repeat(2,1fr);}
  .ds-split{grid-template-columns:1fr;gap:36px;} .ds-split--reverse .ds-split__media{order:0;}
  .ds-snapshot{grid-template-columns:repeat(2,1fr);}
  .ds-snapshot__cell:nth-child(2){border-right:none;}
  .ds-snapshot__cell{border-bottom:1px solid var(--ds-border);}
  .ds-contact-cards{grid-template-columns:1fr;}
  .ds-cta__inner{grid-template-columns:1fr;gap:26px;}
  .ds-related{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .ds-container,.ds-narrow{padding:0 16px;}
  .ds-section{padding:48px 0;}
  .ds-grid--2,.ds-grid--3,.ds-grid--4{grid-template-columns:1fr;}
  .ds-metrogrid{grid-template-columns:1fr;}
  .ds-steps{grid-template-columns:1fr;}
  .ds-snapshot{grid-template-columns:1fr;} .ds-snapshot__cell{border-right:none;}
  .ds-list--2col{grid-template-columns:1fr;}
  .ds-hero__stats{gap:22px;}
  .ds-hero__actions .ds-btn,.ds-actions .ds-btn{width:100%;}
}
@media (prefers-reduced-motion:reduce){
  .ds-page *,.ds-page *::before,.ds-page *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;}
  .ds-card:hover,.ds-metro:hover,.ds-related__item:hover,.ds-btn:hover{transform:none!important;}
}


/* =========================================
   COMPONENTS ADDED IN THE REBUILD
   (same tokens as the ported design system)
========================================= */

/* ---- Home hero (ported from the original home-page block) ---- */
.hm-hero { position: relative; min-height: 88vh; display: flex; align-items: center; overflow: hidden; background-color: var(--ds-navy-dark); }
.hm-hero__media { position: absolute; inset: 0; z-index: 0; }
.hm-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center right; }
.hm-hero__overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(100deg, rgba(8,22,43,.95) 0%, rgba(8,22,43,.88) 34%, rgba(28,53,94,.62) 60%, rgba(28,53,94,.30) 100%); }
.hm-hero__grid-lines { position: absolute; inset: 0; z-index: 1; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size: 80px 80px; }
.hm-hero__inner { position: relative; z-index: 2; width: 100%; padding: 80px 0; }
.hm-hero__content { display: grid; grid-template-columns: 1fr 420px; gap: 60px; align-items: center; }
.hm-hero__heading { font-family: var(--ds-font-t); font-weight: 400; font-size: clamp(40px, 5.5vw, 68px); line-height: 1.08; color: #fff; margin: 0 0 24px; letter-spacing: -.015em; text-shadow: 0 2px 24px rgba(8,22,43,.45); }
.hm-hero__heading span { display: block; }
.hm-card { background: #fff; border-radius: var(--ds-radius-xl); padding: 34px 30px; box-shadow: var(--ds-shadow-xl); position: relative; }
.hm-card::before { content: ''; position: absolute; top: -1px; left: -1px; right: -1px; height: 4px; background: linear-gradient(90deg, var(--ds-gold), var(--ds-border)); border-radius: var(--ds-radius-xl) var(--ds-radius-xl) 0 0; }
.hm-card__title { font-family: var(--ds-font-t); font-weight: 400; font-size: 24px; line-height: 1.22; color: var(--ds-navy); margin: 0 0 6px; }
.hm-card__q { font-size: 13.5px; color: var(--ds-muted); margin: 0 0 12px; border: 0; padding: 0; }
.hm-intent { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; border: 0; padding: 0; }
.hm-intent label { position: relative; cursor: pointer; }
.hm-intent input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.hm-intent span { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 10px; border-radius: var(--ds-radius-md); border: 2px solid var(--ds-border); background: var(--ds-cream); color: var(--ds-muted); font-family: var(--ds-font-d); font-size: 12.5px; font-weight: 600; text-align: center; transition: var(--ds-ease); }
.hm-intent svg { width: 24px; height: 24px; stroke: currentColor; fill: none; }
.hm-intent input:checked + span, .hm-intent label:hover span { border-color: var(--ds-navy); color: var(--ds-navy); background: #fff; }
.hm-intent input:focus-visible + span { outline: 3px solid var(--ds-gold); outline-offset: 2px; }
.hm-trust { background: var(--ds-navy-dark); padding: 22px 0; }
.hm-trust__inner { display: flex; align-items: center; justify-content: center; gap: 16px 40px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.hm-trust__item { display: flex; align-items: center; gap: 12px; color: rgba(242,237,231,.86); font-size: 14px; font-weight: 500; }
.hm-trust__icon { width: 36px; height: 36px; background: rgba(151,127,82,.20); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hm-trust__icon svg { width: 18px; height: 18px; stroke: var(--ds-gold-light); fill: none; }
@media (max-width: 1000px) { .hm-hero__content { grid-template-columns: 1fr; gap: 40px; } .hm-card { max-width: 520px; } .hm-hero { min-height: 0; } }

/* ---- Generic form fields (calculators, quick form, prequal) ---- */
.fm-row { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.fm-row--3 { grid-template-columns: repeat(3, 1fr); }
.fm-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; min-width: 0; }
.fm-field label, .fm-legend { font-family: var(--ds-font-d); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ds-muted); }
.fm-field input, .fm-field select, .fm-field textarea {
  width: 100%; font-family: var(--ds-font-b); font-size: 16px; color: var(--ds-text); background: #fff;
  border: 2px solid var(--ds-border); border-radius: var(--ds-radius-sm); padding: 12px 14px; transition: var(--ds-ease);
}
.fm-field input:focus, .fm-field select:focus, .fm-field textarea:focus { border-color: var(--ds-navy); box-shadow: 0 0 0 3px rgba(28,53,94,.14); outline: none; }
.fm-hint { font-size: 12.5px; color: var(--ds-muted); }
.fm-error { color: #9b2c2c; font-size: 14px; font-weight: 600; min-height: 1em; margin: 0 0 10px; }
.fm-submit { width: 100%; }
.fm-note { font-size: 12.5px; color: var(--ds-muted); text-align: center; margin-top: 12px; }
form:tool-form-active { outline: 3px dashed var(--ds-gold); outline-offset: 6px; }
@media (max-width: 560px) { .fm-row, .fm-row--3 { grid-template-columns: 1fr; gap: 0; } }

/* ---- Calculator / tool panel ---- */
.tl { display: grid; grid-template-columns: 1.05fr .95fr; gap: 28px; align-items: start; }
.tl__panel { background: #fff; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); padding: 30px 28px; box-shadow: var(--ds-shadow-sm); }
.tl__results { background: linear-gradient(150deg, var(--ds-navy-dark) 0%, var(--ds-navy) 100%); color: #fff; border-radius: var(--ds-radius-lg); padding: 30px 28px; box-shadow: var(--ds-shadow-lg); position: sticky; top: 110px; }
.tl__results h3 { font-family: var(--ds-font-t); font-weight: 400; font-size: 22px; margin: 0 0 18px; color: #fff; }
.tl__big { font-family: var(--ds-font-t); font-size: clamp(36px, 5vw, 50px); line-height: 1; color: var(--ds-border); margin: 0 0 6px; }
.tl__big-label { font-family: var(--ds-font-d); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(242,237,231,.75); margin: 0 0 22px; }
.tl__rows { list-style: none; margin: 0 0 18px; padding: 0; }
.tl__rows li { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 14.5px; color: rgba(242,237,231,.88); }
.tl__rows li strong { color: #fff; font-weight: 700; }
.tl__disclaimer { font-size: 12px; color: rgba(242,237,231,.62); line-height: 1.6; margin: 14px 0 0; }
.tl__results .ds-btn { width: 100%; margin-top: 10px; }
.tl__bar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; margin: 0 0 18px; background: rgba(255,255,255,.1); }
.tl__bar span { display: block; height: 100%; }
.tl-compare { overflow-x: auto; }
.tl-compare table { min-width: 640px; }
.tl-compare input, .tl-compare select { width: 100%; font-size: 15px; padding: 9px 10px; border: 2px solid var(--ds-border); border-radius: 8px; font-family: var(--ds-font-b); }
.tl-compare input:focus, .tl-compare select:focus { border-color: var(--ds-navy); outline: none; box-shadow: 0 0 0 3px rgba(28,53,94,.14); }
.tl-out { font-weight: 700; color: var(--ds-navy); }
.tl-reco { display: grid; gap: 14px; }
.tl-reco__item { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 16px; }
.tl-reco__item h4 { margin: 0 0 6px; font-family: var(--ds-font-d); font-size: 16px; color: #fff; }
.tl-reco__item p { margin: 0 0 8px; font-size: 14px; color: rgba(242,237,231,.85); }
.tl-reco__item a { color: var(--ds-border); font-weight: 600; border-bottom: 1px solid rgba(227,205,175,.5); font-size: 13.5px; }
@media (max-width: 980px) { .tl { grid-template-columns: 1fr; } .tl__results { position: static; } }

/* ---- Tables ---- */
.ds-table-wrap { overflow-x: auto; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); background: #fff; box-shadow: var(--ds-shadow-sm); }
.ds-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ds-table th, .ds-table td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--ds-border); vertical-align: top; line-height: 1.55; }
.ds-table thead th { background: var(--ds-navy); color: #fff; font-family: var(--ds-font-d); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; }
.ds-table tbody tr:nth-child(even) td { background: #FBF9F6; }
.ds-table tbody th { color: var(--ds-navy); font-weight: 700; }
.ds-table tr:last-child td, .ds-table tr:last-child th { border-bottom: 0; }

/* ---- Quotes (client stories) ---- */
.ds-quote { margin: 0; background: #fff; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); padding: 30px 28px 26px; box-shadow: var(--ds-shadow-sm); display: flex; flex-direction: column; height: 100%; }
.ds-quote::before { content: '\201C'; display: block; font-family: var(--ds-font-t); font-size: 60px; line-height: 1; height: 34px; color: var(--ds-gold); margin-bottom: 12px; }
.ds-quote blockquote { margin: 0; flex: 1 1 auto; }
.ds-quote blockquote p { font-size: 15.5px; line-height: 1.75; color: var(--ds-text); }
.ds-quote figcaption { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--ds-border); font-family: var(--ds-font-d); font-weight: 700; color: var(--ds-navy); font-size: 15px; line-height: 1.4; }
.ds-quote figcaption span { display: block; margin-top: 4px; min-height: 3em; font-weight: 500; color: var(--ds-muted); font-size: 13px; line-height: 1.5; }
.ds-quotes-note { text-align: center; margin-top: 28px; font-size: 14px; color: var(--ds-muted); }

/* ---- Glossary ---- */
.gl-index { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 34px; list-style: none; padding: 0; }
.gl-index a { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--ds-border); font-weight: 700; color: var(--ds-navy); }
.gl-index a:hover, .gl-index a:focus-visible { background: var(--ds-navy); color: #fff; }
.gl-letter { font-family: var(--ds-font-t); font-size: 30px; color: var(--ds-gold); margin: 34px 0 12px; border-bottom: 1px solid var(--ds-border); padding-bottom: 6px; scroll-margin-top: 110px; }
.gl-list { margin: 0; }
.gl-list dt { font-family: var(--ds-font-d); font-weight: 700; color: var(--ds-navy); font-size: 17px; margin-top: 18px; scroll-margin-top: 110px; }
.gl-list dd { margin: 4px 0 0; color: var(--ds-muted); font-size: 15.5px; line-height: 1.7; }
.gl-search { max-width: 420px; margin-bottom: 18px; }

/* ---- Prose block ---- */
.ds-prose p { font-size: 16.5px; line-height: 1.8; color: var(--ds-text); margin: 0 0 18px; }
.ds-prose .ds-list { margin-top: 6px; }

/* ---- Light page hero breadcrumb ---- */
.ds-hero--page .ds-hero__inner { padding: 76px 0 72px; }
.ds-hero--page .ds-hero__grid { grid-template-columns: 1fr; }
.ds-hero--page .ds-hero__copy { max-width: 780px; }

/* ---- State directory (areas we serve) ---- */
.dir { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dir__state { background: #fff; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-md); padding: 20px 22px; }
.dir__state h3 { margin: 0 0 10px; font-family: var(--ds-font-t); font-weight: 400; font-size: 21px; }
.dir__state h3 a { color: var(--ds-navy); }
.dir__state h3 a:hover, .dir__state h3 a:focus-visible { color: var(--ds-gold); }
.dir__state ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.dir__state li a { font-size: 14px; color: var(--ds-muted); border-bottom: 1px solid transparent; }
.dir__state li a:hover, .dir__state li a:focus-visible { color: var(--ds-navy); border-bottom-color: var(--ds-border); }
.dir-filter { max-width: 420px; margin: 0 auto 30px; }
@media (max-width: 980px) { .dir { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dir { grid-template-columns: 1fr; } }

/* ---- Prequal multi-step ---- */
.pq { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-xl); box-shadow: var(--ds-shadow-lg); padding: 34px 32px; scroll-margin-top: 110px; }
.pq__progress { height: 6px; background: var(--ds-cream); border-radius: 3px; overflow: hidden; margin-bottom: 10px; }
.pq__progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--ds-gold), var(--ds-border)); width: 33%; transition: width .3s; }
.pq__steplabel { font-family: var(--ds-font-d); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-muted); margin: 0 0 18px; }
.pq__step { border: 0; padding: 0; margin: 0; min-width: 0; }
.pq__step legend { font-family: var(--ds-font-t); font-size: 25px; color: var(--ds-navy); margin-bottom: 18px; padding: 0; }
.pq__options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 18px; }
.pq__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; }
.js .pq__step:not(.is-active) { display: none; }
@media (max-width: 560px) { .pq { padding: 26px 18px; } .pq__options { grid-template-columns: 1fr; } .pq__nav { flex-direction: column-reverse; } .pq__nav .ds-btn { width: 100%; } }

/* ---- Embedded lead form shell ---- */
.lf { min-height: 260px; }
.lf__fallback { font-size: 14.5px; color: var(--ds-muted); line-height: 1.7; }
.lf__fallback a { color: var(--ds-navy); font-weight: 700; border-bottom: 1px solid var(--ds-border); }

/* ---- 404 ---- */
.nf { text-align: center; padding: 100px 0; }
.nf__code { font-family: var(--ds-font-t); font-size: 96px; color: var(--ds-border); line-height: 1; margin: 0 0 10px; }

/* ---- Card links ---- */
a.ds-card { color: inherit; }
a.ds-card:focus-visible { outline: 3px solid var(--ds-gold); outline-offset: 3px; }
.ds-card__more { margin-top: auto; padding-top: 14px; font-family: var(--ds-font-d); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ds-navy); }

/* picture wrappers fill their media boxes */
.ds-hero__media picture, .hm-hero__media picture, .ds-split__media picture { display: block; width: 100%; height: 100%; }
.ds-crumb li { display: inline-flex; gap: 8px; align-items: center; }
.ds-hero .ds-label { margin-bottom: 14px; }

/* =========================================
   HEADER — top bar + sticky main bar + dropdown nav
   (The original header styles came from the site builder's theme CDN,
   which was not reachable during the audit; this is rebuilt from the
   rendered structure, menu and brand tokens.)
========================================= */
.hd-topbar { background: #14294A; color: rgba(242,237,231,.9); font-family: var(--ds-font-d); font-size: 13px; }
.hd-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.hd-topbar__tag { letter-spacing: .02em; }
.hd-topbar__links { display: flex; gap: 22px; align-items: center; }
.hd-topbar a { color: rgba(242,237,231,.9); display: inline-flex; align-items: center; gap: 7px; }
.hd-topbar a:hover, .hd-topbar a:focus-visible { color: var(--ds-border); }
.hd-topbar svg { width: 14px; height: 14px; stroke: var(--ds-gold-light); fill: none; }

.hd { position: sticky; top: 0; z-index: 80; background: #fff; border-bottom: 1px solid var(--ds-border); box-shadow: 0 2px 14px rgba(28,53,94,.06); }
.hd__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 84px; }
.hd__brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.hd__brand img { width: 62px; height: 64px; }
.hd__brand-text { font-family: var(--ds-font-t); font-size: 19px; line-height: 1.1; color: var(--ds-navy); }
.hd__brand-text small { display: block; font-family: var(--ds-font-d); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #75603B; margin-top: 4px; }

.nav { display: flex; align-items: center; }
.nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.nav__item { position: relative; }
.nav__link, .nav__toggle {
  display: inline-flex; align-items: center; gap: 5px; padding: 10px 11px; border-radius: 8px;
  font-family: var(--ds-font-d); font-size: 14px; font-weight: 600; color: var(--ds-navy-dark);
  background: none; border: 0; cursor: pointer; white-space: nowrap; transition: var(--ds-ease);
}
.nav__toggle svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 3; transition: transform var(--ds-ease); }
.nav__link:hover, .nav__toggle:hover, .nav__link:focus-visible, .nav__toggle:focus-visible,
.nav__link[aria-current="page"], .nav__item--active > .nav__toggle { color: var(--ds-gold); background: var(--ds-cream); }
.nav__link:focus-visible, .nav__toggle:focus-visible { outline: 3px solid var(--ds-gold); outline-offset: 2px; }
.nav__sub {
  list-style: none; margin: 0; padding: 10px; position: absolute; left: 0; top: calc(100% + 6px); min-width: 260px;
  background: #fff; border: 1px solid var(--ds-border); border-radius: 14px; box-shadow: var(--ds-shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: var(--ds-ease); z-index: 90;
}
.nav__sub::before { content: ''; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.nav__sub a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 14px; color: var(--ds-navy); font-weight: 500; }
.nav__sub a:hover, .nav__sub a:focus-visible, .nav__sub a[aria-current="page"] { background: var(--ds-cream); color: var(--ds-gold); }
.nav__sub a:focus-visible { outline: 2px solid var(--ds-gold); }
.nav__item--parent:hover > .nav__sub, .nav__item--parent:focus-within > .nav__sub, .nav__toggle[aria-expanded="true"] + .nav__sub { opacity: 1; visibility: visible; transform: translateY(0); }
.nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav__cta { margin-left: 10px; padding: 12px 20px !important; font-size: 13px !important; }

.hd__burger { display: none; width: 46px; height: 46px; border-radius: 10px; border: 2px solid var(--ds-border); background: #fff; cursor: pointer; align-items: center; justify-content: center; }
.hd__burger svg { width: 22px; height: 22px; stroke: var(--ds-navy); fill: none; }
.hd__burger:focus-visible { outline: 3px solid var(--ds-gold); outline-offset: 2px; }

@media (max-width: 1180px) {
  .nav__link, .nav__toggle { padding: 10px 8px; font-size: 13.5px; }
}
@media (max-width: 1080px) {
  .hd__burger { display: inline-flex; }
  .hd__inner { min-height: 72px; }
  .hd__brand img { width: 52px; height: 54px; }
  .nav { position: fixed; inset: 112px 0 0 0; background: #fff; display: block; overflow-y: auto; padding: 12px 20px 40px; transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility .3s; border-top: 1px solid var(--ds-border); }
  .nav.is-open { transform: translateX(0); visibility: visible; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { border-bottom: 1px solid var(--ds-cream); }
  .nav__link, .nav__toggle { width: 100%; justify-content: space-between; padding: 15px 4px; font-size: 16px; border-radius: 0; }
  .nav__sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 10px 10px; min-width: 0; display: none; }
  .nav__item--parent:hover > .nav__sub, .nav__item--parent:focus-within > .nav__sub { display: none; }
  .nav__toggle[aria-expanded="true"] + .nav__sub { display: block; }
  .nav__cta { margin: 18px 0 0; width: 100%; }
  .nav__item--cta { border-bottom: 0; }
}
@media (max-width: 640px) {
  .hd-topbar__tag { display: none; }
  .hd-topbar__inner { justify-content: center; }
  .hd__brand-text { font-size: 16px; }
  .nav { inset: 112px 0 0 0; }
}
@media (max-width: 380px) { .hd__brand-text small { display: none; } }


/* =========================================================
   SMITH MORTGAGE GROUP — SITE FOOTER
   Section-only block: <style> + <footer> + <script>.
   All CSS scoped under .ft-footer.
   Contact data via shortcodes: 931-205-9873 sterling.smith@fcmhomeloans.com 605 Delray Street Shelbyville, TN 37160
========================================================= */
.ft-footer {
    /* Fonts */
    --ft-font-d: 'Campton Medium', 'Libre Franklin', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --ft-font-b: 'Libre Franklin', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    /* Brand palette */
    --ft-navy:       #1C355E;
    --ft-navy-dark:  #08162B;
    --ft-navy-light: #60728E;
    --ft-gold:       #977F52;
    --ft-gold-light: #B19F7D;
    --ft-cream:      #F2EDE7;
    --ft-tan:        #E3CDAF;
    --ft-white:      #ffffff;
    --ft-line:       rgba(255,255,255,.12);
    --ft-dim:        rgba(255,255,255,.62);
    --ft-ease:       0.3s cubic-bezier(0.4,0,0.2,1);

    position: relative;
    background-color: var(--ft-navy-dark);
    background-image: linear-gradient(160deg, #08162B 0%, #0D2140 55%, #142C4F 100%);
    color: var(--ft-white);
    font-family: var(--ft-font-b);
    font-size: 15px;
    line-height: 1.6;
    overflow: hidden;
}

/* Scoped reset */
.ft-footer, .ft-footer *, .ft-footer *::before, .ft-footer *::after { box-sizing: border-box; }
.ft-footer h2, .ft-footer h3, .ft-footer p, .ft-footer ul, .ft-footer li { margin: 0; padding: 0; }
.ft-footer ul { list-style: none; }
.ft-footer a { text-decoration: none; }
.ft-footer button { font-family: var(--ft-font-b); cursor: pointer; }
.ft-footer img { max-width: 100%; height: auto; display: block; }

/* Decorative gold hairline + soft glow */
.ft-footer::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--ft-navy) 0%, var(--ft-gold) 50%, var(--ft-navy) 100%);
}
.ft-footer::after {
    content: '';
    position: absolute; pointer-events: none;
    width: 620px; height: 620px; right: -220px; top: -260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(151,127,82,.14) 0%, transparent 65%);
}

.ft-container { position: relative; z-index: 2; max-width: 1200px; margin: 0 auto; padding: 0 24px; width: 100%; }

/* ---------- Top grid ---------- */
.ft-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.35fr; gap: 48px; padding: 68px 0 52px; }

/* ---------- Brand column ---------- */
.ft-logo-chip {
    display: inline-block;
    background: var(--ft-white);
    padding: 14px 20px;
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(0,0,0,.28);
    margin-bottom: 22px;
}
.ft-logo-chip img { width: 210px; }
.ft-brand-text { color: var(--ft-dim); font-size: 15px; line-height: 1.75; margin-bottom: 24px; max-width: 380px; }
.ft-brand-text strong { color: var(--ft-white); font-weight: 600; }

.ft-nmls { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.ft-nmls-chip {
    display: inline-flex; align-items: center; gap: 7px;
    background: rgba(255,255,255,.06);
    border: 1px solid var(--ft-line);
    border-radius: 50px;
    padding: 7px 14px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255,255,255,.8);
    letter-spacing: .3px;
}
.ft-nmls-chip span { color: var(--ft-gold-light); }

/* ---------- Social buttons ---------- */
.ft-social-label { font-size: 12px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--ft-gold-light); margin-bottom: 12px; }
.ft-social { display: flex; flex-wrap: wrap; gap: 10px; }

.ft-social-btn {
    display: inline-flex; align-items: center; gap: 9px;
    padding: 11px 18px;
    border-radius: 50px;
    font-family: var(--ft-font-b);
    font-size: 13px; font-weight: 600; line-height: 1.2;
    transition: var(--ft-ease);
    text-decoration: none !important;
    background-color: rgba(255,255,255,.07) !important;
    background-image: none !important;
    color: var(--ft-white) !important;
    border: 2px solid var(--ft-line) !important;
}
.ft-social-btn svg { width: 16px; height: 16px; flex-shrink: 0; fill: none !important; stroke: var(--ft-gold-light) !important; transition: stroke var(--ft-ease); }
.ft-social-btn:hover,
.ft-social-btn:focus-visible {
    background-color: var(--ft-gold) !important;
    background-image: none !important;
    color: var(--ft-navy-dark) !important;
    border-color: var(--ft-gold) !important;
    transform: translateY(-2px);
}
.ft-social-btn:hover svg,
.ft-social-btn:focus-visible svg { stroke: var(--ft-navy-dark) !important; }

/* ---------- Link columns ---------- */
.ft-col-title {
    font-family: var(--ft-font-d);
    font-size: 16px; font-weight: 500;
    color: var(--ft-white);
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ft-line);
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%;
    background-color: transparent !important;
    border-left: none !important; border-right: none !important; border-top: none !important;
    text-align: left;
}
.ft-col-title .ft-col-chevron { display: none; width: 16px; height: 16px; flex-shrink: 0; fill: none !important; stroke: var(--ft-gold-light) !important; transition: transform var(--ft-ease); }

.ft-links { display: flex; flex-direction: column; gap: 11px; }
.ft-links a {
    color: var(--ft-dim) !important;
    font-size: 14.5px;
    display: inline-flex; align-items: center; gap: 8px;
    transition: color var(--ft-ease), gap var(--ft-ease), transform var(--ft-ease);
    text-decoration: none !important;
    width: fit-content;
}
.ft-links a::before {
    content: '';
    width: 0; height: 1.5px;
    background: var(--ft-gold);
    transition: width var(--ft-ease);
    flex-shrink: 0;
}
.ft-links a:hover,
.ft-links a:focus-visible { color: var(--ft-white) !important; }
.ft-links a:hover::before,
.ft-links a:focus-visible::before { width: 14px; }

/* ---------- Contact column ---------- */
.ft-contact-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; }
.ft-contact-item { display: flex; align-items: flex-start; gap: 13px; }
.ft-contact-icon {
    width: 40px; height: 40px; flex-shrink: 0;
    border-radius: 11px;
    background: rgba(151,127,82,.18);
    border: 1px solid rgba(151,127,82,.28);
    display: flex; align-items: center; justify-content: center;
}
.ft-contact-icon svg { width: 18px; height: 18px; fill: none !important; stroke: var(--ft-gold-light) !important; }
.ft-contact-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ft-gold-light); margin-bottom: 3px; }
.ft-contact-value { font-size: 15px; font-weight: 600; color: var(--ft-white); word-break: break-word; line-height: 1.45; }
.ft-contact-value a { color: var(--ft-white) !important; text-decoration: none !important; transition: color var(--ft-ease); }
.ft-contact-value a:hover { color: var(--ft-gold-light) !important; }

/* Footer CTA button */
.ft-cta-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%;
    padding: 15px 26px;
    border-radius: 50px;
    font-family: var(--ft-font-b);
    font-size: 15px; font-weight: 700; line-height: 1.2;
    transition: var(--ft-ease);
    text-decoration: none !important;
    background-color: var(--ft-gold) !important;
    background-image: none !important;
    color: var(--ft-navy-dark) !important;
    border: 2px solid var(--ft-gold) !important;
    box-shadow: 0 6px 20px rgba(151,127,82,.32);
}
.ft-cta-btn svg { width: 17px; height: 17px; flex-shrink: 0; fill: none !important; stroke: var(--ft-navy-dark) !important; transition: stroke var(--ft-ease); }
.ft-cta-btn:hover,
.ft-cta-btn:focus-visible {
    background-color: var(--ft-gold-light) !important;
    background-image: none !important;
    color: var(--ft-navy-dark) !important;
    border-color: var(--ft-gold-light) !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(151,127,82,.42);
}
.ft-cta-btn:hover svg,
.ft-cta-btn:focus-visible svg { stroke: var(--ft-navy-dark) !important; }

.ft-hours { margin-top: 16px; font-size: 13px; color: var(--ft-dim); line-height: 1.7; }
.ft-hours strong { color: var(--ft-white); font-weight: 600; display: block; margin-bottom: 3px; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }

/* ---------- Coverage strip ---------- */
.ft-coverage {
    display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
    padding: 22px 28px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--ft-line);
    border-radius: 18px;
    margin-bottom: 44px;
}
.ft-coverage-text { display: flex; align-items: center; gap: 16px; }
.ft-coverage-num { font-family: var(--ft-font-d); font-size: 40px; line-height: 1; color: var(--ft-gold-light); }
.ft-coverage-copy { font-size: 14px; color: var(--ft-dim); line-height: 1.5; }
.ft-coverage-copy strong { display: block; color: var(--ft-white); font-size: 16px; font-weight: 600; margin-bottom: 2px; }

.ft-coverage-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    padding: 12px 26px;
    border-radius: 50px;
    font-family: var(--ft-font-b);
    font-size: 14px; font-weight: 700; line-height: 1.2;
    transition: var(--ft-ease);
    text-decoration: none !important;
    background-color: transparent !important;
    background-image: none !important;
    color: var(--ft-white) !important;
    border: 2px solid rgba(255,255,255,.5) !important;
}
.ft-coverage-btn svg { width: 15px; height: 15px; flex-shrink: 0; fill: none !important; stroke: var(--ft-white) !important; transition: stroke var(--ft-ease); }
.ft-coverage-btn:hover,
.ft-coverage-btn:focus-visible {
    background-color: var(--ft-white) !important;
    background-image: none !important;
    color: var(--ft-navy-dark) !important;
    border-color: var(--ft-white) !important;
}
.ft-coverage-btn:hover svg,
.ft-coverage-btn:focus-visible svg { stroke: var(--ft-navy-dark) !important; }

/* ---------- Legal / disclosure ---------- */
.ft-legal { border-top: 1px solid var(--ft-line); padding: 32px 0 28px; }
.ft-legal-top { display: flex; align-items: flex-start; gap: 22px; margin-bottom: 22px; flex-wrap: wrap; }
.ft-ehl { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.ft-ehl-mark { width: 46px; height: 46px; border: 2px solid rgba(255,255,255,.45); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ft-ehl-mark svg { width: 26px; height: 26px; fill: none !important; stroke: var(--ft-white) !important; }
.ft-ehl-text { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,.7); line-height: 1.4; max-width: 110px; }
.ft-disclosure { font-size: 12.5px; color: rgba(255,255,255,.5); line-height: 1.75; flex: 1; min-width: 260px; }
.ft-disclosure a { color: rgba(255,255,255,.75) !important; text-decoration: underline !important; }
.ft-disclosure a:hover { color: var(--ft-gold-light) !important; }

/* ---------- Bottom bar ---------- */
.ft-bottom {
    border-top: 1px solid var(--ft-line);
    padding: 22px 0 28px;
    display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
}
.ft-copy { font-size: 13px; color: rgba(255,255,255,.5); }
.ft-copy strong { color: rgba(255,255,255,.8); font-weight: 600; }
.ft-legal-links { display: flex; align-items: center; gap: 10px 22px; flex-wrap: wrap; }
.ft-legal-links a { font-size: 13px; color: rgba(255,255,255,.55) !important; text-decoration: none !important; transition: color var(--ft-ease); }
.ft-legal-links a:hover, .ft-legal-links a:focus-visible { color: var(--ft-gold-light) !important; }

/* ---------- Back to top ---------- */
.ft-top-btn {
    position: fixed; right: 24px; bottom: 24px; z-index: 90;
    width: 50px; height: 50px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    transition: var(--ft-ease);
    background-color: var(--ft-navy) !important;
    background-image: none !important;
    color: var(--ft-white) !important;
    border: 2px solid var(--ft-gold) !important;
    box-shadow: 0 8px 26px rgba(8,22,43,.4);
    opacity: 0; visibility: hidden; transform: translateY(14px);
}
.ft-top-btn svg { width: 20px; height: 20px; fill: none !important; stroke: var(--ft-white) !important; transition: stroke var(--ft-ease); }
.ft-top-btn.ft-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.ft-top-btn:hover,
.ft-top-btn:focus-visible {
    background-color: var(--ft-gold) !important;
    background-image: none !important;
    color: var(--ft-navy-dark) !important;
    border-color: var(--ft-gold) !important;
    transform: translateY(-3px);
}
.ft-top-btn:hover svg,
.ft-top-btn:focus-visible svg { stroke: var(--ft-navy-dark) !important; }

/* ---------- Focus rings ---------- */
.ft-footer a:focus-visible,
.ft-footer button:focus-visible,
.ft-top-btn:focus-visible {
    outline: 3px solid var(--ft-gold) !important;
    outline-offset: 3px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
    .ft-top { grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
    .ft-contact-col { grid-column: 1 / -1; border-top: 1px solid var(--ft-line); padding-top: 36px; }
    .ft-contact-list { flex-direction: row; flex-wrap: wrap; gap: 24px 40px; }
    .ft-contact-item { min-width: 220px; }
    .ft-cta-btn { width: auto; }
}
@media (max-width: 860px) {
    .ft-top { grid-template-columns: 1fr 1fr; gap: 36px; padding: 56px 0 44px; }
    .ft-brand-col { grid-column: 1 / -1; }
    .ft-coverage { flex-direction: column; align-items: flex-start; }
    .ft-coverage-btn { width: 100%; }
}
@media (max-width: 600px) {
    .ft-container { padding: 0 18px; }
    .ft-top { grid-template-columns: 1fr; gap: 0; padding: 48px 0 36px; }
    .ft-brand-col { margin-bottom: 34px; }
    .ft-logo-chip img { width: 180px; }

    /* Collapsible link columns on mobile */
    .ft-link-col { border-bottom: 1px solid var(--ft-line); }
    .ft-col-title { margin-bottom: 0; padding: 18px 0; border-bottom: none; cursor: pointer; font-size: 15px; }
    .ft-col-title .ft-col-chevron { display: block; }
    .ft-link-col.ft-open .ft-col-title .ft-col-chevron { transform: rotate(180deg); }
    .ft-links { max-height: 0; overflow: hidden; transition: max-height .38s cubic-bezier(0.4,0,0.2,1); gap: 0; }
    .ft-links a { padding: 9px 0; }
    .ft-link-col.ft-open .ft-links { padding-bottom: 12px; }

    .ft-contact-col { border-top: none; padding-top: 34px; }
    .ft-contact-list { flex-direction: column; gap: 18px; }
    .ft-cta-btn { width: 100%; }
    .ft-coverage { padding: 20px; margin-bottom: 34px; }
    .ft-coverage-num { font-size: 34px; }
    .ft-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
    .ft-legal-links { gap: 8px 18px; }
    .ft-top-btn { right: 16px; bottom: 16px; width: 46px; height: 46px; }
}
@media (min-width: 601px) {
    .ft-links { max-height: none !important; }
}
@media (prefers-reduced-motion: reduce) {
    .ft-footer *, .ft-footer *::before, .ft-footer *::after,
    .ft-top-btn { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media print { .ft-footer, .ft-top-btn { display: none; } }
