/* Brand system carried over from the Rent vs. Buy calculator:
   Manrope, teal accent, frosted glass panels over a soft color field, signature lockup. */
:root{
  --bg:#F4F6F9; --surface:#FFFFFF; --ink:#0E1726; --muted:#586374;
  --accent:#0B5F6A; --accent-ink:#FFFFFF; --accent-soft:#E3F1F0; --focus:#2F6FEB;
  --principal:#137A5F; --gold:#A6720A;
  --line:rgba(14,23,38,.09);
  --r-xl:28px; --r-lg:22px; --r-md:14px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --glass-panel:rgba(255,255,255,.4);
  --blur:blur(30px) saturate(190%);
  --sheen:linear-gradient(135deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.12) 42%, rgba(255,255,255,0) 60%, rgba(255,255,255,.22) 100%);
  --glass-hi:inset 0 1px 0 rgba(255,255,255,1), inset 1px 0 0 rgba(255,255,255,.55), inset 0 -1px 0 rgba(255,255,255,.25);
  --glass-shadow:0 1px 1px rgba(14,23,38,.03), 0 18px 44px -20px rgba(22,40,70,.34);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);background:var(--bg);
  font-family:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:1rem;line-height:1.55;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:-10vmax;z-index:-1;pointer-events:none;
  background:
    radial-gradient(36vmax 30vmax at 16% 20%, rgba(96,205,190,.72), transparent 70%),
    radial-gradient(40vmax 32vmax at 88% 16%, rgba(140,155,255,.68), transparent 70%),
    radial-gradient(32vmax 28vmax at 64% 58%, rgba(255,178,150,.52), transparent 70%),
    radial-gradient(38vmax 34vmax at 20% 82%, rgba(125,185,255,.6), transparent 70%),
    radial-gradient(30vmax 26vmax at 90% 90%, rgba(190,160,255,.45), transparent 70%),
    var(--bg);
}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:999px;z-index:50;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
a{color:var(--accent)}
[hidden]{display:none!important}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
@media (max-width:480px){ .wrap{padding:0 16px} }

/* ---------- Glass primitives ---------- */
.panel{
  background:var(--sheen), var(--glass-panel);
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  border:1px solid rgba(255,255,255,.72);border-radius:var(--r-xl);padding:28px;
  box-shadow:var(--glass-hi), var(--glass-shadow);
}
@media (max-width:480px){ .panel{padding:20px;border-radius:var(--r-lg)} }
.btn{font:inherit;font-weight:700;font-size:.9375rem;min-height:50px;padding:0 22px;border-radius:999px;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.4));border:1.5px solid rgba(255,255,255,.9);
  box-shadow:inset 0 1px 0 #fff, 0 2px 8px -4px rgba(22,40,70,.2);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);
  transition:transform .1s var(--ease), border-color .15s var(--ease)}
.btn:hover{border-color:rgba(14,23,38,.2)}
.btn:active{transform:scale(.98)}
.btn.primary{color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 80%, black);
  background:linear-gradient(180deg, color-mix(in srgb,var(--accent) 78%, white), var(--accent) 55%, color-mix(in srgb,var(--accent) 85%, black));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), inset 0 -1px 0 rgba(0,0,0,.15), 0 8px 22px -10px color-mix(in srgb,var(--accent) 80%, transparent)}
.btn svg{width:18px;height:18px;flex:none}
.eyebrow{display:inline-block;font-size:.75rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
h2{font-size:clamp(1.6rem,4vw,2.25rem);line-height:1.1;margin:0 0 10px;font-weight:750;letter-spacing:-0.03em;text-wrap:balance}
h3{font-size:1.125rem;margin:0 0 6px;font-weight:750;letter-spacing:-0.015em}
.lede{color:var(--muted);font-size:1.0625rem;margin:0;max-width:60ch;text-wrap:pretty}
section{margin-top:28px}
.sec-head{margin:0 0 20px;padding:0 4px}

/* ---------- Top announcement ---------- */
.announce{display:block;text-align:center;font-size:.8125rem;font-weight:650;color:var(--ink);padding:10px 16px;text-decoration:none;
  background:linear-gradient(90deg, rgba(200,236,231,.7), rgba(255,255,255,.55), rgba(226,230,255,.7));border-bottom:1px solid rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 -1px 0 rgba(255,255,255,.8), 0 6px 18px -14px rgba(22,40,70,.4)}
.announce b{font-weight:800;color:var(--accent)}
.announce .lm{color:var(--accent);font-weight:800;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--accent) 40%, transparent);white-space:nowrap}
.announce:hover .lm{text-decoration-color:var(--accent)}
.announce sup{font-size:.7em;color:var(--gold);font-weight:800;line-height:0}
@media (max-width:600px){ .announce{font-size:.75rem;padding:9px 14px;line-height:1.45} }

/* ---------- Connecticut backdrop + motion ---------- */
/* Soft bokeh orbs: depth and slow motion behind the glass, no detail to fight the content */
.orbs{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.orb{position:absolute;border-radius:50%;will-change:transform;
  background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.75), var(--c) 45%, transparent 72%);
  filter:blur(2px);opacity:.55;animation:orb var(--t,28s) ease-in-out infinite alternate}
.orb.o1{--c:rgba(96,205,190,.55);width:34vmax;height:34vmax;left:-10vmax;top:6vh;--t:30s}
.orb.o2{--c:rgba(140,155,255,.5);width:26vmax;height:26vmax;right:-6vmax;top:12vh;--t:36s;animation-delay:-9s}
.orb.o3{--c:rgba(255,190,150,.5);width:22vmax;height:22vmax;right:18vw;top:58vh;--t:32s;animation-delay:-17s}
.orb.o4{--c:rgba(125,185,255,.5);width:30vmax;height:30vmax;left:8vw;bottom:-12vmax;--t:40s;animation-delay:-5s}
.orb.o5{--c:rgba(255,214,107,.42);width:12vmax;height:12vmax;left:46vw;top:22vh;--t:24s;animation-delay:-13s;opacity:.5}
@keyframes orb{from{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(3vw,-2.5vh,0) scale(1.06)}to{transform:translate3d(-2.5vw,3vh,0) scale(.96)}}
body::before{animation:blobs 36s ease-in-out infinite alternate;will-change:transform}
@keyframes blobs{from{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-2vw,1.5vh,0) scale(1.04) rotate(1deg)}to{transform:translate3d(1.5vw,-1vh,0) scale(1.02) rotate(-1deg)}}
/* Content starts hidden only when JS is running (html.js, set in each page head), so crawlers and no-JS visitors always see it. */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease), transform .7s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
@media (max-width:600px){ .orb{opacity:.45} .orb.o1{width:60vmax;height:60vmax} .orb.o4{width:50vmax;height:50vmax} }
@media (prefers-reduced-motion: reduce){ .js .reveal{opacity:1;transform:none} .orb, body::before{animation:none} }
@media (prefers-reduced-transparency: reduce){ .orbs{display:none} }

/* ---------- Photo band ---------- */
.band{position:relative;overflow:hidden;border-radius:var(--r-xl);min-height:clamp(300px,38vw,460px);display:flex;align-items:flex-end;isolation:isolate;
  border:1px solid rgba(255,255,255,.7);box-shadow:var(--glass-hi), var(--glass-shadow)}
.band img{position:absolute;inset:-14% 0;width:100%;height:128%;object-fit:cover;object-position:50% 45%;z-index:-2;will-change:transform}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg, rgba(14,23,38,0) 30%, rgba(14,23,38,.55) 75%, rgba(14,23,38,.72) 100%)}
.band-in{padding:28px 32px;color:#fff;max-width:60ch;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.band .eyebrow{color:#CFEBE8}
.band h2{color:#fff;margin-bottom:8px}
.band p{margin:0;font-size:1.0625rem;font-weight:550;line-height:1.5;color:rgba(255,255,255,.92);text-wrap:pretty}
.band .credit{position:absolute;right:14px;bottom:10px;font-size:.6875rem;color:rgba(255,255,255,.7);font-weight:600}
.band .credit a{color:inherit}
.band-in p a{color:#fff;text-underline-offset:3px}
@media (max-width:480px){ .band{border-radius:var(--r-lg);min-height:440px;flex-direction:column;justify-content:flex-end;align-items:stretch} .band-in{padding:20px 20px 8px} .band p{font-size:.9375rem} .band .credit{position:static;display:block;padding:0 20px 12px;text-align:left} }
@media (prefers-reduced-motion: reduce){ .band img{inset:0;height:100%} }

/* ---------- Service standard ---------- */
.sla{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin:0;padding:0}
@media (min-width:640px){ .sla{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1080px){ .sla{grid-template-columns:repeat(3,minmax(0,1fr))} }
.sla li{list-style:none;display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:var(--r-lg);
  background:var(--sheen), linear-gradient(160deg, rgba(255,255,255,.7), rgba(255,255,255,.35));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 6px 16px -10px rgba(22,40,70,.25);transition:transform .2s var(--ease)}
.sla li:hover{transform:translateY(-2px)}
.sla .ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.sla .ic svg{width:20px;height:20px}
.sla li > div{flex:1;min-width:0}
.sla b{display:block;font-weight:800;letter-spacing:-0.01em;line-height:1.3}
.sla p{margin:4px 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}

/* ---------- Header / brand lockup ---------- */
header.top{padding-top:24px}
.brandbar{display:flex;align-items:center;gap:14px 24px;flex-wrap:nowrap}
.brand-lockup{display:inline-flex;align-items:center;gap:12px;--sig-w:150px;text-decoration:none;color:inherit}
.sig{display:block;height:auto;width:var(--sig-w);max-width:45vw}
.head-mini{flex:none;width:calc(var(--sig-w) * 0.4);height:calc(var(--sig-w) * 0.4);border-radius:50%;object-fit:cover;
  border:2px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(14,23,38,.08), 0 6px 16px -8px rgba(14,23,38,.5)}
.lockup-team{font-weight:750;font-size:calc(var(--sig-w) * .1);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);white-space:nowrap;margin-left:4px;padding-top:4px}
.head-right{margin-left:auto;display:flex;align-items:center;gap:20px}
.head-contact{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.875rem;font-weight:650}
.head-contact a{color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--line);padding:2px 0}
.head-contact a:hover{border-color:var(--accent)}
.head-contact .cot{color:var(--muted);margin-right:2px}
nav.site{margin-top:18px}
.nav-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
nav.site .nav-row > ul{list-style:none;margin:0;padding:4px;display:inline-flex;gap:4px;border-radius:var(--r-md);
  background:rgba(222,230,241,.55);border:1px solid rgba(14,23,38,.08);box-shadow:inset 0 1px 2px rgba(14,23,38,.08)}
nav.site .nav-row a{display:flex;align-items:center;min-height:40px;padding:0 16px;border-radius:11px;font-weight:650;font-size:.875rem;color:var(--muted);text-decoration:none}
nav.site .nav-row a:hover, nav.site .nav-btn:hover, nav.site .nav-btn[aria-expanded="true"]{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.78));color:var(--ink);box-shadow:inset 0 1px 0 #fff, 0 2px 10px -3px rgba(22,40,70,.22)}
nav.site .nav-btn{display:flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:11px;font:inherit;font-weight:650;font-size:.875rem;color:var(--muted);background:transparent;border:0;cursor:pointer}
nav.site .nav-btn .chev{width:14px;height:14px;color:var(--muted);transition:transform .2s var(--ease)}
nav.site .nav-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.starry{font-weight:800;white-space:nowrap;background:linear-gradient(90deg, var(--accent), #A6720A 60%, #C98A0E);-webkit-background-clip:text;background-clip:text;color:transparent}
.spk-inline{display:inline-block;width:13px;height:13px;vertical-align:-1px;margin:0 3px;filter:drop-shadow(0 0 4px rgba(255,190,70,.9));animation:twinkle 2.8s ease-in-out infinite}
.spk-inline.s-b{animation-delay:1.3s}
.spk-inline svg{display:block;width:100%;height:100%}
.starry .spk-inline{width:13px;height:13px}
.eyebrow .starry{font-size:1.05em;letter-spacing:.14em}
.eyebrow .spk-inline{width:15px;height:15px;vertical-align:-2px}

/* First-time homebuyer pill + flyout (from the calculators) */
.fthb-btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:6px 14px 6px 6px;border-radius:999px;font:inherit;font-weight:750;font-size:.9375rem;color:var(--accent);cursor:pointer;white-space:nowrap;
  background:var(--sheen), linear-gradient(135deg, rgba(200,236,231,.6), rgba(255,255,255,.35));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 6px 18px -10px rgba(22,40,70,.3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.fthb-icon{flex:none;width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink)}
.fthb-icon svg{width:18px;height:18px}
.fthb-btn .chev{width:16px;height:16px;transition:transform .2s var(--ease)}
.fthb-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.flyout{max-width:640px;margin:12px 0 0;padding:16px;border-radius:var(--r-lg);background:var(--sheen), linear-gradient(135deg, rgba(200,236,231,.6), rgba(255,255,255,.35));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 10px 28px -14px rgba(22,40,70,.3);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:drop .25s var(--ease)}
.flyout p{margin:0 0 12px;font-weight:600;line-height:1.45;font-size:.9375rem;color:var(--ink)}
.fthb-actions{display:grid;gap:8px}
@media (min-width:601px){ .fthb-actions{grid-template-columns:1.35fr 1fr 1fr} .fthb-actions .btn{padding:0 12px;font-size:.875rem;white-space:nowrap} }
.fthb-actions .btn{min-height:46px}
@keyframes drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* Calculators flyout */
.flyout.calc{max-width:820px;background:var(--sheen), radial-gradient(120% 160% at 50% 0%, rgba(255,236,190,.55), transparent 65%), linear-gradient(160deg, rgba(214,238,235,.6), rgba(226,230,255,.5));box-shadow:inset 0 1px 0 #fff, 0 0 0 1px rgba(242,182,60,.22), 0 0 26px -6px rgba(255,200,100,.5), 0 10px 28px -14px rgba(22,40,70,.3)}
.flyout.calc{padding:10px;max-width:none;width:max-content}
.calc-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.calc-list a{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 16px 0 8px;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:750;font-size:.9375rem;white-space:nowrap;
  background:linear-gradient(160deg, rgba(255,255,255,.8), rgba(255,255,255,.45));border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff}
.calc-list a:hover{border-color:var(--accent);color:var(--accent)}
.calc-list .ic{flex:none;width:30px;height:30px;border-radius:999px;display:grid;place-items:center;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.calc-list .ic svg{width:16px;height:16px}
@media (max-width:600px){ .flyout.calc{width:auto} .calc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))} .calc-list a{white-space:normal;font-size:.875rem;padding-right:10px} }
@media (max-width:600px){
  .nav-row{gap:8px}
  .fthb-btn{width:100%;justify-content:center;font-size:.875rem;gap:6px;padding:5px 10px 5px 5px;min-height:44px}
  .fthb-btn .fthb-icon{width:30px;height:30px}
  .flyout{max-width:none}
}
@media (max-width:860px){ .head-contact{display:none} }
@media (max-width:600px){
  .brand-lockup{--sig-w:104px;gap:9px}
  .lockup-team{font-size:.6875rem;letter-spacing:.12em}
  .head-right{display:none}
  .hero > *, .duo > *{min-width:0}
  nav.site{margin-top:14px}
  nav.site .nav-row > ul{display:flex;flex-wrap:wrap;width:100%}
  nav.site .nav-row > ul > li{flex:1 1 auto}
  nav.site .nav-row a{justify-content:center;padding:0 10px;white-space:nowrap;min-height:38px;font-size:.8125rem}
}

/* ---------- Hero ---------- */
.hero{margin-top:22px;display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:960px){ .hero{grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);align-items:stretch} }
.hero-main{padding:40px;display:flex;flex-direction:column;justify-content:center;
  background:var(--sheen), radial-gradient(120% 140% at 0% 0%, rgba(200,238,232,.55), transparent 60%), radial-gradient(120% 140% at 100% 0%, rgba(214,222,255,.55), transparent 60%), var(--glass-panel)}
@media (max-width:480px){ .hero-main{padding:24px 20px} }
.hero h1{font-size:clamp(2.4rem,7vw,4.25rem);line-height:1;margin:0 0 18px;font-weight:300;letter-spacing:-0.05em;text-wrap:balance}
.hero h1 b{font-weight:750;letter-spacing:-0.04em;display:block}
.hero .lede{font-size:1.125rem;color:var(--ink);opacity:.85;font-weight:550;max-width:46ch}
.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
@media (max-width:480px){ .hero-ctas .btn{flex:1 1 100%} }
.trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin:26px 0 0;padding:18px 0 0;border-top:1px solid var(--line);font-size:.875rem;font-weight:650;color:var(--muted)}
.trust span{display:inline-flex;align-items:center;gap:8px}
.trust svg{width:16px;height:16px;color:var(--principal)}

.card-id{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;
  background:var(--sheen), linear-gradient(160deg, rgba(200,236,231,.5), rgba(255,255,255,.3) 70%)}
.headshot{width:148px;height:148px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.95);
  box-shadow:0 0 0 1px rgba(14,23,38,.08), 0 16px 34px -14px rgba(14,23,38,.5)}
.card-id .sig{--sig-w:180px;margin:14px 0 0}
.card-id .team{font-weight:750;font-size:.875rem;letter-spacing:.16em;text-transform:uppercase;margin-top:2px}
.card-id .role{color:var(--muted);font-size:.875rem;font-weight:600;margin:6px 0 0}
.rating{margin-top:22px;width:100%;display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 16px;border-radius:var(--r-md);
  background:linear-gradient(160deg, rgba(255,255,255,.55), rgba(255,255,255,.25));border:1px solid rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);text-decoration:none;color:inherit}
.rating .num{font-size:2.25rem;font-weight:300;letter-spacing:-0.04em;line-height:1}
.rating .stars{display:flex;gap:2px;color:#E09A12}
.rating .stars svg{width:16px;height:16px}
.rating .cnt{font-size:.8125rem;color:var(--muted);font-weight:650;text-align:left}

/* ---------- Photo card extras ---------- */
.card-id .intro{margin:14px 0 0;font-size:.9375rem;line-height:1.5;color:var(--ink);opacity:.85;font-weight:550;max-width:34ch;text-wrap:pretty}
.facts{list-style:none;margin:16px 0 0;padding:0;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.facts li{padding:10px 8px;border-radius:var(--r-md);background:linear-gradient(160deg, rgba(255,255,255,.55), rgba(255,255,255,.25));border:1px solid rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);display:flex;flex-direction:column;gap:2px;min-width:0}
.facts b{font-size:1.0625rem;font-weight:800;letter-spacing:-0.02em;line-height:1.1}
.facts span{font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:12px}
.card-actions .btn{min-height:46px;padding:0 10px;font-size:.875rem}
.card-id .where{margin:12px 0 0;font-size:.8125rem;color:var(--muted);font-weight:600;line-height:1.5}
@media (max-width:480px){
  .badge{flex-direction:column;gap:8px;text-align:center}
  .badge img{height:22px}
  .facts span{font-size:.625rem;letter-spacing:.04em}
  .card-actions .btn{padding:0 6px;font-size:.8125rem}
}

/* ---------- Recognition ---------- */
.trust .aw{color:var(--ink)}
.trust .aw b{font-weight:800}
.trust .aw svg{color:var(--gold);flex:none}
.trust .aw .src{color:var(--muted);font-weight:600}
.trust .aw .src::before{content:"· ";margin:0 4px}
@media (max-width:600px){
  .trust{flex-direction:column;gap:10px}
  .trust .aw{display:grid;grid-template-columns:16px 1fr;column-gap:8px;align-items:start}
  .trust .aw svg{margin-top:3px}
  .trust .aw .src{grid-column:2}
  .trust .aw .src::before{content:none}
}
.awards{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:640px){ .awards{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1080px){ .awards{grid-template-columns:repeat(4,minmax(0,1fr))} }
.award{display:flex;flex-direction:column;padding:22px;border-radius:var(--r-lg);
  background:var(--sheen), linear-gradient(160deg, rgba(255,255,255,.7), rgba(255,255,255,.35));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 6px 16px -10px rgba(22,40,70,.25)}
.award .rank{font-size:clamp(2.6rem,6vw,3.4rem);font-weight:300;letter-spacing:-0.05em;line-height:.95;color:var(--ink)}
.award .rank b{font-weight:750}
.award .what{margin:10px 0 0;font-weight:750;letter-spacing:-0.01em;line-height:1.3}
.award .src{margin:6px 0 0;font-size:.8125rem;color:var(--muted);font-weight:650}
.award .logo{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:center;min-height:52px}
.award .logo img{height:auto;width:auto;max-width:100%}
.award .logo img.sg{max-height:30px}
.award .logo img.wg{max-height:64px}
.award .logo img.chfa{max-height:44px}
.award .what sup, .trust sup, .badge sup{font-size:.7em;color:var(--gold);font-weight:800;line-height:0}
@media (max-width:639px){
  .award{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"rank logo" "what logo" "src logo";column-gap:16px;align-items:center;padding:18px}
  .award .rank{grid-area:rank;font-size:2.6rem}
  .award .what{grid-area:what;margin-top:6px}
  .award .src{grid-area:src;margin-top:4px}
  .award .logo{grid-area:logo;margin:0;padding:0;min-height:0;justify-content:flex-end;width:118px}
  .award .logo img.wg{max-height:70px}
  .award .logo img.sg{max-height:26px}
  .award .logo img.chfa{max-height:40px}
  .paths .path{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:14px}
  .paths .path .ic{margin:0}
  .paths .path h3{flex:1;min-width:0;margin:0}
  .paths .path p{flex-basis:100%}
  .paths .path .go{padding-top:6px}
}
.award.scotsman{background:var(--sheen), radial-gradient(120% 160% at 50% 0%, rgba(255,236,190,.75), transparent 65%), linear-gradient(160deg, rgba(214,238,235,.6), rgba(226,230,255,.5));
  box-shadow:inset 0 1px 0 #fff, 0 0 0 1px rgba(242,182,60,.25), 0 0 26px -6px rgba(255,200,100,.6), 0 8px 20px -12px rgba(22,40,70,.3)}
.src-mark{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
  background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff}
.src-mark i{width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:#fff;font-style:normal;font-weight:800;font-size:.75rem;letter-spacing:0}
.src-mark.gold i{background:linear-gradient(160deg,#E09A12,#A6720A)}
.badge{text-decoration:none;color:inherit;margin-top:12px;width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;border-radius:var(--r-md);text-align:left;
  background:var(--sheen), radial-gradient(120% 160% at 50% 0%, rgba(255,236,190,.7), transparent 65%), rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 0 0 1px rgba(242,182,60,.22)}
.badge img{height:26px;width:auto;flex:none}
.badge .bt{font-size:.8125rem;line-height:1.35;font-weight:650;color:var(--muted);min-width:0}
.badge .bt b{display:block;color:var(--ink);font-weight:800;font-size:.875rem}

/* ---------- Quick paths ---------- */
.paths{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:760px){ .paths{grid-template-columns:repeat(3,minmax(0,1fr))} }
.path{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:var(--r-lg);text-decoration:none;color:var(--ink);
  background:linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.3));border:1px solid rgba(255,255,255,.8);
  box-shadow:inset 0 1px 0 #fff, 0 10px 26px -18px rgba(22,40,70,.4);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .2s var(--ease), box-shadow .2s var(--ease)}
.path:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff, 0 18px 34px -18px rgba(22,40,70,.45)}
.path .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);margin-bottom:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.path .ic svg{width:20px;height:20px}
.path p{margin:0;color:var(--muted);font-size:.9375rem}
.path .go{margin-top:auto;padding-top:12px;font-weight:750;font-size:.875rem;color:var(--accent);display:inline-flex;align-items:center;gap:6px}
.path .go svg{width:14px;height:14px;transition:transform .2s var(--ease)}
.path:hover .go svg{transform:translateX(3px)}

/* ---------- Tools ---------- */
.tools{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:640px){ .tools{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1080px){ .tools{grid-template-columns:repeat(4,minmax(0,1fr))} }
.tool{position:relative;display:flex;flex-direction:column;padding:22px;border-radius:var(--r-lg);text-decoration:none;color:var(--ink);
  background:linear-gradient(160deg, rgba(255,255,255,.7), rgba(255,255,255,.35));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 6px 16px -10px rgba(22,40,70,.25);transition:transform .2s var(--ease)}
.tool:hover{transform:translateY(-2px)}
.tool .ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff;margin-bottom:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.tool .ic svg{width:18px;height:18px}
.tool p{margin:0 0 14px;color:var(--muted);font-size:.875rem}
.tool .go{margin-top:auto;font-weight:750;font-size:.875rem;color:var(--accent)}
.tool.feature{background:var(--sheen), radial-gradient(120% 160% at 50% 0%, rgba(255,236,190,.75), transparent 65%), linear-gradient(160deg, rgba(214,238,235,.6), rgba(226,230,255,.5));
  box-shadow:inset 0 1px 0 #fff, 0 0 0 1px rgba(242,182,60,.25), 0 0 26px -6px rgba(255,200,100,.6), 0 8px 20px -12px rgba(22,40,70,.3)}
.tool .tag{position:absolute;top:18px;right:18px;font-size:.6875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  background:linear-gradient(90deg, var(--accent), var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.spk{position:absolute;pointer-events:none;z-index:2;filter:drop-shadow(0 0 4px rgba(255,255,255,.95)) drop-shadow(0 0 10px rgba(255,190,70,.9));animation:twinkle 3.2s ease-in-out infinite}
.spk svg{display:block;width:100%;height:100%}
.spk.b1{width:22px;height:22px;top:-10px;left:16px}
.spk.b2{width:12px;height:12px;top:-5px;right:30%;animation-delay:1.1s;animation-duration:2.6s}
.spk.b3{width:18px;height:18px;bottom:-9px;right:14px;animation-delay:1.9s}
@keyframes twinkle{0%,100%{opacity:.6;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(16deg)}}

/* ---------- About + reviews ---------- */
.duo{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:960px){ .duo{grid-template-columns:repeat(2,minmax(0,1fr))} }
.quote{margin:18px 0 0;padding:20px;border-radius:var(--r-md);background:linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.3));border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 #fff}
.quote p{margin:0;font-size:1.0625rem;font-weight:550;line-height:1.5}
.quote footer{margin-top:12px;font-size:.8125rem;color:var(--muted);font-weight:650}
.quote footer b{color:var(--ink);font-weight:800}
.big{display:flex;align-items:baseline;gap:12px;margin:8px 0 0}
.big .num{font-size:clamp(3.2rem,10vw,4.75rem);font-weight:300;letter-spacing:-0.05em;line-height:.95}
.big .of{color:var(--muted);font-weight:650}
.link-row{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.checks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.checks li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);
  background:linear-gradient(160deg, rgba(255,255,255,.55), rgba(255,255,255,.25));border:1px solid rgba(255,255,255,.75);font-weight:550}
.checks svg{flex:none;width:20px;height:20px;color:var(--principal);margin-top:2px}

/* ---------- Impact + blog ---------- */
.impact{background:var(--sheen), linear-gradient(160deg, rgba(255,240,205,.7), rgba(255,255,255,.35));border-color:rgba(214,160,40,.3)}
.impact .big .num{background:linear-gradient(90deg, var(--accent), var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:400}
.posts{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.posts a{display:block;padding:16px 18px;border-radius:var(--r-md);text-decoration:none;color:var(--ink);
  background:linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.3));border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 #fff}
.posts a:hover{border-color:var(--accent)}
.posts .cat{display:block;font-size:.75rem;font-weight:750;color:var(--accent);letter-spacing:.04em;margin-bottom:4px}
.posts .ttl{font-weight:750;letter-spacing:-0.01em;line-height:1.35}
.posts time{display:block;font-size:.8125rem;color:var(--muted);margin-top:4px;font-weight:600}

/* ---------- Contact ---------- */
.contact{background:var(--sheen), linear-gradient(160deg, rgba(200,236,231,.5), rgba(255,255,255,.3) 70%)}
.contact-brand{display:flex;align-items:center;gap:18px;margin:0 0 20px}
.contact-brand .headshot{width:96px;height:96px;border-width:3px}
.contact-sigrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.contact-sig{width:150px;margin-left:-4px}
.contact-team{font-weight:750;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.contact-role{font-size:.8125rem;color:var(--muted);font-weight:600}
.contact-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}
@media (min-width:720px){ .contact-actions{grid-template-columns:repeat(4,minmax(0,1fr))} }
.contact .addr{margin:16px 0 0;font-size:.875rem;color:var(--muted);font-weight:600}
@media (max-width:480px){ .contact-brand{gap:14px} .contact-brand .headshot{width:76px;height:76px} .contact-sig{width:120px} .contact-team{font-size:.8125rem;letter-spacing:.12em} }

/* ---------- Mobile sticky bar ---------- */
.bar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20;display:flex;gap:8px;padding:8px;border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.42));border:1px solid rgba(255,255,255,.85);
  box-shadow:inset 0 1px 0 #fff, 0 16px 40px -14px rgba(22,40,70,.35);-webkit-backdrop-filter:blur(30px) saturate(200%);backdrop-filter:blur(30px) saturate(200%)}
.bar .btn{flex:1;min-height:48px;padding:0 12px;font-size:.875rem}
@media (min-width:760px){ .bar{display:none} }
@media (max-width:759px){ body{padding-bottom:calc(84px + env(safe-area-inset-bottom))} }

/* ---------- Legal footer ---------- */
footer.legal{margin-top:40px;padding-bottom:48px;color:var(--muted);font-size:.75rem;line-height:1.6}
.legal-inner{display:flex;gap:20px;align-items:flex-start;padding-top:24px;border-top:1px solid var(--line)}
.legal-text{min-width:0;max-width:118ch}
.legal-text p{margin:0 0 8px}
.legal-id{color:var(--ink);font-size:.8125rem;font-weight:600}
.legal-id strong{font-weight:800}
.legal .sep{color:rgba(14,23,38,.2);margin:0 4px}
.legal a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.eho{flex:none;width:56px;height:auto;color:var(--ink);opacity:.85}
@media (max-width:600px){ .legal-inner{flex-direction:column;gap:14px} .eho{width:48px} }

@media (prefers-reduced-motion: reduce){ *{transition:none!important;animation:none!important;scroll-behavior:auto!important} }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ .panel{background:var(--surface)} }
@media (prefers-reduced-transparency: reduce){
  body::before{display:none}
  .panel, .bar{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* ---------- Movement Mortgage logo placements ---------- */
.mv-logo{display:block;height:26px;width:auto;color:var(--ink)}
.mv-row{display:flex;align-items:center;gap:14px;margin:16px 0 0;padding:14px 16px;border-radius:var(--r-md);background:linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.3));border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 #fff}
.mv-row .mv-logo{flex:none;height:30px}
.mv-row p{margin:0;font-size:.9375rem;color:var(--muted);font-weight:600;line-height:1.4}
.card-id .mv-logo{height:20px;margin:10px auto 0;opacity:.85}
.legal-marks{display:flex;flex-direction:column;align-items:center;gap:14px;flex:none}
.legal-marks .mv-logo{height:22px;opacity:.85}
.impact-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.impact-head .mv-logo{height:30px}
.sla-page .sla li{align-items:flex-start}
.sla .means{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:.875rem;color:var(--ink);font-weight:600}
.sla .means b{display:inline;font-weight:800;color:var(--accent)}
.realtor-btn{color:var(--ink);text-decoration:none;background:var(--sheen), linear-gradient(135deg, rgba(255,236,190,.6), rgba(255,255,255,.35))}
.realtor-btn .fthb-icon{background:var(--gold)}
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin-top:18px}
.stat-grid li{list-style:none;padding:14px;border-radius:var(--r-md);background:linear-gradient(160deg, rgba(255,255,255,.6), rgba(255,255,255,.28));border:1px solid rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);text-align:left}
.stat-grid b{display:block;font-size:1.6rem;font-weight:300;letter-spacing:-0.04em;line-height:1}
.stat-grid b strong{font-weight:750}
.stat-grid span{display:block;margin-top:6px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.25}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:step}
@media (min-width:760px){ .steps{grid-template-columns:repeat(3,minmax(0,1fr))} }
.steps li{counter-increment:step;padding:20px;border-radius:var(--r-lg);background:var(--sheen), linear-gradient(160deg, rgba(255,255,255,.7), rgba(255,255,255,.35));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 0 #fff, 0 6px 16px -10px rgba(22,40,70,.25)}
.steps li::before{content:counter(step);display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:var(--accent);color:#fff;font-weight:800;margin-bottom:12px}
.steps b{display:block;font-weight:800;margin-bottom:4px}
.steps p{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.5}
.lockup-mv{display:block;height:calc(var(--sig-w) * .21);width:auto;margin-left:12px;padding-left:12px;border-left:1px solid var(--line);color:var(--ink);opacity:.9;flex:none}
@media (max-width:600px){ .lockup-mv{height:20px;margin-left:8px;padding-left:8px} }
@media (max-width:360px){ .lockup-mv{display:none} }

/* ---------- Round of layout refinements ---------- */
/* flyouts span the full nav width */
.flyout, .flyout.calc{max-width:none;width:auto}
.calc-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.calc-list a{justify-content:flex-start;width:100%;min-height:52px}
@media (max-width:760px){ .calc-list{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* hero: fuller left panel */
.hero-main{justify-content:space-between;gap:0}
.hero h1{font-size:clamp(2.6rem,5.6vw,5rem);text-wrap:wrap;max-width:none}
.hero .lede{font-size:1.25rem;max-width:56ch}
.trust{font-size:.9375rem}
.hero-mv{display:flex;align-items:center;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:.8125rem;font-weight:650;color:var(--muted)}
.hero-mv .mv-logo{height:32px}
.card-id .intro{max-width:none;font-size:1rem;font-weight:700;opacity:1}

/* quick paths: larger type */
.path h3{font-size:1.3125rem}
.path p{font-size:1.0625rem}
.path .go{font-size:.9375rem}

/* recognition tiles: centered, logos share one centerline */
@media (min-width:640px){
  .award{align-items:center;text-align:center}
  .award .logo{min-height:76px;height:76px;align-items:center}
}

/* service tiles: bigger headers, body anchored to the bottom so tiles read full */
.sla li{align-items:stretch}
.sla .ic{align-self:flex-start}
.sla li > div{display:flex;flex-direction:column}
.sla b{font-size:1.1875rem;line-height:1.25}
.sla p{font-size:.975rem;margin-top:6px}

/* contact: no mid-sentence wrap */
.contact .lede{max-width:none}

/* footer: logo | licensing | EHO on one line, disclaimers full width below */
.legal-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px}
.legal-mv{height:44px!important;opacity:.9}
.legal-ids p{margin:0 0 6px}
.legal-ids p:last-child{margin:0}
.legal-inner .eho{width:60px}
.legal-text{max-width:none;margin-top:18px}
@media (max-width:760px){ .legal-inner{grid-template-columns:1fr auto;gap:14px} .legal-ids{grid-column:1 / -1;grid-row:2} .legal-mv{height:36px!important} }
@media (max-width:440px){ .lockup-mv{display:none} }

/* first-time homebuyer flyout: buttons on the left two-thirds, housing agencies on the right third */
#fthb-panel{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:22px;align-items:center}
#fthb-panel[hidden]{display:none!important}
.fthb-main > p{margin:0 0 12px}
#fthb-panel .fthb-actions{grid-template-columns:1.35fr 1fr 1fr}
.hfa{padding-left:22px;border-left:1px solid rgba(14,23,38,.1)}
.hfa > p{margin:0 0 10px;font-size:.875rem;font-weight:700;line-height:1.4}
.hfa-logos{display:flex;align-items:center;justify-content:space-between;gap:14px}
.hfa-logos a{display:flex;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.9);transition:transform .15s var(--ease)}
.hfa-logos a:hover{transform:translateY(-1px)}
.hfa-logos img{height:36px;width:auto;max-width:100%}
@media (max-width:860px){ #fthb-panel{grid-template-columns:1fr} .hfa{padding-left:0;border-left:0;padding-top:14px;border-top:1px solid rgba(14,23,38,.1)} }
@media (max-width:600px){ #fthb-panel .fthb-actions{grid-template-columns:1fr} .hfa-logos{justify-content:flex-start} .hfa-logos img{height:30px} }
/* single-line service headers sit on the icon's baseline in the 3-column layout */
@media (min-width:1080px){ .sla li.one b{padding-top:16px} }

/* mobile audit fixes */
@media (max-width:600px){
  nav.site .nav-row a, nav.site .nav-btn{min-height:44px}
  .fthb-btn{min-height:46px}
  .facts span{font-size:.72rem}
}

/* nav row spans the full header width: menu pill grows, buttons sit flush right */
@media (min-width:861px){
  nav.site .nav-row{flex-wrap:nowrap}
  nav.site .nav-row > ul{flex:1 1 auto;display:flex;justify-content:space-between}
  nav.site .nav-row > .fthb-btn{flex:none}
}
