/* Kaplan Romano Ventures. A clean marketplace look in the spirit of Thumbtack: white and soft-gray
   sections, a rounded geometric sans (Figtree), pill buttons, rounded photo cards and one search-style
   card in the hero. Brand: navy #0E1E32 as the primary colour, gold #CDAE6E as the accent.
   Previous editorial design is backed up in _backup-design-20261022/. */
:root{
  --bg:#FFFFFF;--soft:#F5F6F7;--soft-2:#EEF0F2;--ink:#22262B;--muted:#5D646B;--line:#E3E6E9;--line-2:#D3D8DC;
  --navy:#0E1E32;--navy-2:#1B3350;--gold:#CDAE6E;--gold-d:#8A6A2C;--gold-soft:#F8F1E2;--on-navy:#E9EDF3;--on-navy-muted:#A9B3C2;
  --ok:#1F7A4D;--err:#B42318;
  --font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1200px;--tab-h:62px;--r:12px;--r-lg:20px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 6px 20px rgba(16,24,40,.07);
  --shadow-lg:0 2px 4px rgba(16,24,40,.06),0 18px 40px rgba(16,24,40,.12);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased;padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}
@media (min-width:1140px){body{padding-bottom:0}}
img{max-width:100%;height:auto;display:block}
svg{width:1.1em;height:1.1em;fill:currentColor;flex:none}
a{color:var(--navy);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--gold-d)}
h1,h2,h3{font-family:var(--font);text-wrap:balance;margin:0 0 .45em;color:inherit;letter-spacing:-.015em}
h1{font-weight:800;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.05}
h2{font-weight:700;font-size:clamp(1.6rem,3.2vw,2.35rem);line-height:1.12}
h3{font-weight:700;font-size:1.2rem;line-height:1.25}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wrap{width:min(100% - 2rem,var(--wrap));margin-inline:auto}
@media (min-width:700px){.wrap{width:min(100% - 4rem,var(--wrap))}}
.narrow{max-width:820px}
.label{font:600 .8rem/1.3 var(--font);letter-spacing:.02em;color:var(--muted)}
.lead{font-size:1.2rem;line-height:1.55}
.note{font-size:.92rem;color:var(--muted)}
.go{display:inline-flex;align-items:center;gap:.35em;font:600 .98rem/1.3 var(--font);color:var(--navy);text-decoration:none}
a.go:hover,a:hover .go{color:var(--gold-d)}
.arr{display:inline-block;transition:transform .25s var(--ease)}
a:hover .arr,.btn:hover .arr,a.go:hover::after{transform:translateX(4px)}
.skip{position:absolute;left:8px;top:-60px;background:#fff;color:var(--navy);padding:.6em 1em;z-index:100;font-weight:700;border-radius:8px}
.skip:focus{top:8px}

/* tags (pills) */
.tag{display:inline-flex;align-items:center;gap:.4em;font:700 .8rem/1 var(--font);color:var(--gold-d);background:var(--gold-soft);padding:.55em .9em;border-radius:999px;margin-bottom:.9rem}
.tag-glass{color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px)}
.sheet{display:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:50px;padding:.8em 1.4em;border-radius:999px;border:1.5px solid transparent;font:700 1rem/1.1 var(--font);text-decoration:none;cursor:pointer;text-align:center;white-space:nowrap;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease),box-shadow .2s}
.btn:active{transform:scale(.98)}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:#D9BD82;color:var(--navy);box-shadow:0 6px 16px rgba(205,174,110,.35)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-2);color:#fff;box-shadow:0 6px 18px rgba(14,30,50,.25)}
.btn-ghost{background:#fff;border-color:var(--line-2);color:var(--navy)}
.btn-ghost:hover{border-color:var(--navy);color:var(--navy)}
.btn-outline{background:transparent;border-color:var(--line-2);color:var(--navy)}
.btn-outline:hover{border-color:var(--navy);color:var(--navy)}
.btn-sm{min-height:42px;padding:.55em 1.1em;font-size:.95rem}
.btn-lg{min-height:56px;font-size:1.05rem;padding:.9em 1.7em}
.btn-block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}

/* header */
.bar{background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);color:var(--ink);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px)}
.bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);min-width:0}
.mark img{height:30px;width:auto}
.mark span{font:600 .98rem/1 "Cinzel",Georgia,serif;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.mark small{display:block;font:700 .55rem/1 var(--font);letter-spacing:.34em;color:var(--gold-d);margin-top:5px}
.nav,.bar-cta{display:none}
.menu-btn{background:#fff;border:1px solid var(--line);color:var(--navy);border-radius:999px;width:44px;height:44px;display:grid;place-items:center;cursor:pointer}
.menu-btn svg{width:22px;height:22px}
@media (min-width:1140px){.nav,.bar-cta{display:flex;align-items:center;gap:.9rem}.menu-btn{display:none}}
.nav ul{list-style:none;margin:0;padding:0}
.nav>ul{display:flex;align-items:center;gap:.1rem}
.nav>ul>li{position:relative;display:flex;align-items:center}
.nav>ul>li>a{display:block;padding:.6em .7em;font:600 .95rem/1 var(--font);color:var(--ink);text-decoration:none;border-radius:999px;white-space:nowrap;transition:background .2s}
.nav>ul>li>a:hover,.nav>ul>li>a[aria-current]{background:var(--soft);color:var(--navy)}
.sub-toggle{background:none;border:0;padding:.3em .1em;margin-left:-.45em;color:var(--muted);cursor:pointer;display:flex}
.sub-toggle svg{width:1rem;height:1rem;transition:transform .2s}
.sub{position:absolute;top:calc(100% + 8px);left:-.5rem;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:1.1rem 1.2rem;min-width:270px;display:none;gap:1.6rem;z-index:10}
.sub::before{content:"";position:absolute;inset:-10px 0 auto 0;height:10px}
.sub-wide{min-width:560px;grid-template-columns:1fr 1fr}
.has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{display:grid;animation:pop .18s var(--ease)}
.has-sub.open .sub-toggle svg{transform:rotate(180deg)}
.sub .label{margin:0 0 .4rem;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.sub a{display:block;padding:.4em .55em;margin:0 -.55em;color:var(--ink);text-decoration:none;font-size:.98rem;line-height:1.3;border-radius:8px}
.sub a:hover{background:var(--soft);color:var(--navy)}
.bar-phone{display:inline-flex;align-items:center;gap:.4em;color:var(--navy);text-decoration:none;font:700 1rem/1 var(--font);white-space:nowrap}
.bar-phone svg{color:var(--gold-d)}
.bar .btn-gold{background:var(--navy);color:#fff}
.bar .btn-gold:hover{background:var(--navy-2);color:#fff}
@media (max-width:420px){.mark span{font-size:.84rem}.mark img{height:25px}}

/* mobile menu */
.menu{border:0;padding:0;margin:0;width:100%;max-width:100%;height:100%;max-height:100%;background:#fff;color:var(--ink)}
.menu::backdrop{background:rgba(14,30,50,.45)}
.menu[open]{animation:slidein .25s var(--ease)}
.menu-head{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.menu-close{background:var(--soft);border:0;color:var(--navy);border-radius:999px;width:44px;height:44px;display:grid;place-items:center;cursor:pointer}
.menu-close svg{width:22px;height:22px}
.menu nav{padding:.4rem 1rem}
.menu summary,.menu-link{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;font:700 1.2rem/1 var(--font);color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);cursor:pointer;list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu details[open] summary svg{transform:rotate(180deg)}
.menu details ul{list-style:none;margin:0;padding:.3rem 0 .8rem}
.menu details a{display:block;padding:.6rem .25rem;color:var(--ink);text-decoration:none}
.menu-cta{padding:1rem;display:grid;gap:.6rem}

/* mobile tab bar */
.tabbar{position:fixed;inset:auto 0 0 0;z-index:60;display:grid;grid-template-columns:1.3fr repeat(4,1fr);background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(16,24,40,.06);padding-bottom:env(safe-area-inset-bottom)}
@media (min-width:1140px){.tabbar{display:none}}
.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--tab-h);font:600 .7rem/1 var(--font);color:var(--muted);text-decoration:none;background:none;border:0;cursor:pointer}
.tab svg{width:22px;height:22px;color:var(--navy)}
.tab-main{background:var(--navy);color:#fff;margin:7px 6px;height:auto;border-radius:14px}
.tab-main svg{color:var(--gold)}

/* home hero: full photo, headline, and a search card */
.hero{position:relative;color:#fff;overflow:hidden;min-height:clamp(560px,78vh,720px);display:flex;align-items:flex-end;padding-block:clamp(48px,8vw,96px) clamp(36px,5vw,56px)}
.hero-bg{position:absolute;inset:0;margin:0;background:var(--navy)}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,30,50,.86) 0%,rgba(14,30,50,.55) 45%,rgba(14,30,50,.12) 100%),linear-gradient(0deg,rgba(14,30,50,.55) 0%,rgba(14,30,50,0) 45%)}
.hero-bg figcaption{position:absolute;right:16px;bottom:12px;z-index:1;font:600 .72rem/1.3 var(--font);color:rgba(255,255,255,.8);background:rgba(14,30,50,.45);padding:.35em .7em;border-radius:999px}
.hero-in{position:relative;z-index:1;display:grid;gap:1.4rem;max-width:var(--wrap)}
.hero-copy{max-width:640px}
.hero h1{color:#fff;font-size:clamp(2.3rem,5.6vw,3.9rem);line-height:1.02;margin:0 0 .35em}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-copy p{font-size:clamp(1.05rem,1.6vw,1.22rem);line-height:1.5;color:rgba(255,255,255,.88);max-width:46ch;margin:0}
.search{position:relative;background:#fff;color:var(--ink);border-radius:var(--r-lg);padding:14px;max-width:640px;box-shadow:0 20px 50px rgba(0,0,0,.28);display:grid;gap:10px;isolation:isolate}
.search::before{content:"";position:absolute;inset:-2px;border-radius:calc(var(--r-lg) + 2px);background:conic-gradient(from var(--a,0deg),var(--gold),#fff 25%,var(--gold) 50%,#fff 75%,var(--gold));z-index:-1;opacity:.9}
.search::after{content:"";position:absolute;inset:0;border-radius:var(--r-lg);background:#fff;z-index:-1}
.goal{display:flex;flex-wrap:wrap;gap:6px}
.goal label,.goal a{display:inline-flex;align-items:center;cursor:pointer;text-decoration:none}
.goal input{position:absolute;opacity:0;pointer-events:none}
.goal span,.goal a{font:600 .9rem/1 var(--font);color:var(--muted);padding:.6em .95em;border-radius:999px;border:1px solid var(--line);background:#fff;transition:all .2s}
.goal input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.goal input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.goal a:hover,.goal label:hover span{border-color:var(--navy);color:var(--navy)}
.goal input:checked+span:hover{color:#fff}
.search-field{display:flex;align-items:center;gap:.6rem;padding:0 .9rem;border:1px solid var(--line);border-radius:14px;background:var(--soft);transition:border-color .2s,background .2s}
.search-field svg{color:var(--muted);width:20px;height:20px}
.search-field:focus-within{border-color:var(--navy);background:#fff}
.search input{border:0;background:transparent;font:500 1.05rem/1.3 var(--font);color:var(--ink);padding:.95em 0;width:100%;min-width:0;min-height:0}
.search input:focus{outline:none}
.search-row{display:grid;grid-template-columns:130px 1fr;gap:10px}
.search-zip{display:flex;align-items:center;padding:0 1rem;border:1px solid var(--line);border-radius:999px;transition:border-color .2s}
.search-zip:focus-within{border-color:var(--navy)}
.search-row .btn{min-height:54px;font-size:1.02rem}
@media (max-width:480px){.search-row{grid-template-columns:1fr}.search-zip{min-height:50px}}
.hero-trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
.hero-trust li{display:flex;align-items:center;gap:.45rem;font:600 .95rem/1.3 var(--font);color:rgba(255,255,255,.92)}
.hero-trust svg{color:var(--gold)}
@media (max-width:700px){
  .hero{display:block;min-height:0;padding:0 0 28px;background:var(--soft);color:var(--ink)}
  .hero-bg{position:relative;height:260px}
  .hero-bg::after{background:linear-gradient(0deg,rgba(14,30,50,.35),rgba(14,30,50,0) 60%)}
  .hero-in{margin-top:-56px}
  .hero-copy{order:2}.search{order:1}.hero-trust{order:3}
  .hero h1{color:var(--ink);font-size:2.2rem}
  .hero h1 em{color:var(--gold-d)}
  .hero-copy p{color:var(--muted)}
  .tag-glass{display:none}
  .hero-trust li{color:var(--ink)}
  .hero-trust svg{color:var(--gold-d)}
}

/* inner page hero */
.page-hero{position:relative;overflow:hidden;background:var(--soft);color:var(--ink);padding:1.2rem 0 clamp(2.2rem,5vw,3.4rem);border-bottom:1px solid var(--line)}
.page-hero>.wrap{position:relative;z-index:1}
.page-hero::before{content:"";position:absolute;inset:-30% -4% -30% auto;width:min(48%,600px);background:url(/projects/7103-ryan-dr/img/floor-plan.png) center/contain no-repeat;mix-blend-mode:multiply;opacity:.05;pointer-events:none;transform:rotate(-4deg)}
.page-hero h1{max-width:22ch}
.page-hero .label{display:inline-flex;font:700 .8rem/1 var(--font);color:var(--gold-d);background:var(--gold-soft);padding:.55em .9em;border-radius:999px;margin:0 0 1rem}
.page-hero .lead{color:var(--muted);max-width:44em;margin-bottom:0}
.page-hero .btn-ghost{background:#fff}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.2rem .5rem;padding:0;margin:0 0 1.2rem;font:500 .85rem/1.4 var(--font);color:var(--muted)}
.crumbs li+li::before{content:"›";margin-right:.5rem;opacity:.6}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--navy);text-decoration:underline}
.answer{margin-top:1.5rem;max-width:50em;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.25rem;box-shadow:var(--shadow)}
.answer .label{background:none;padding:0;margin:0 0 .35rem;color:var(--gold-d);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.answer p:last-child{margin:0;font-size:1.1rem;line-height:1.55}
.page-hero.has-photo{display:flex;flex-direction:column;padding-bottom:0}
.page-hero.has-photo::before{display:none}
.hero-side{order:2;margin:1.6rem 1rem 1.4rem;position:relative;overflow:hidden;aspect-ratio:16/9;border-radius:var(--r-lg)}
.hero-side img{width:100%;height:100%;object-fit:cover}
@media (min-width:1000px){
  .page-hero.has-photo{display:block;padding-bottom:clamp(2.4rem,5vw,3.4rem);min-height:430px}
  .page-hero.has-photo .wrap>*:not(.crumbs){max-width:min(54%,640px)}
  .hero-side{position:absolute;top:28px;bottom:28px;right:max(2rem,calc((100vw - var(--wrap)) / 2));width:min(40%,500px);margin:0;aspect-ratio:auto;box-shadow:var(--shadow-lg)}
}

/* sections */
.sec{padding-block:clamp(56px,8vw,96px)}
.sec-tint{background:var(--soft)}
.sec-navy{background:var(--navy);color:var(--on-navy)}
.sec-navy h2{color:#fff}
.sec-navy .tag{background:rgba(205,174,110,.15);color:var(--gold)}
.sec-navy .steps,.sec-navy .steps li{border-color:rgba(255,255,255,.14)}
.sec-navy .steps li::before{background:rgba(205,174,110,.18);color:var(--gold)}
.sec-navy .ticks svg{color:var(--gold)}
.sec-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(16px,4vw,64px);align-items:end;margin-bottom:clamp(24px,4vw,44px)}
.sec-head h2{margin:0}
.sec-head>p{margin:0;color:var(--muted);max-width:56ch}
@media (max-width:820px){.sec-head{grid-template-columns:1fr}}
.sec-title{margin-bottom:1.4rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.split-img{margin:0}
.split-img img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-lg)}
.split-img figcaption{padding-top:10px;font-size:.85rem;color:var(--on-navy-muted)}

/* who cards */
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.who-card{display:flex;flex-direction:column;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 14px 22px;text-decoration:none;color:inherit;box-shadow:var(--shadow)}
.who-card h3{font-size:1.35rem;margin:0 8px}
.who-card p{margin:0 8px;flex:1;color:var(--muted)}
.who-card .go,.who-card .num{margin:0 8px}
.num{font:700 .78rem/1.4 var(--font);color:var(--gold-d);text-transform:uppercase;letter-spacing:.06em}
.who-img{margin:0 0 .6rem;overflow:hidden;aspect-ratio:3/2;background:var(--soft);border-radius:14px}
.who-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.who-card:hover .who-img img{transform:scale(1.05)}
@media (max-width:860px){.who{grid-template-columns:1fr}}

/* photo tiles (what we do) */
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:1000px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.tiles{grid-template-columns:1fr}}
.tile{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow)}
.tile figure{margin:0;aspect-ratio:16/10;overflow:hidden;background:var(--soft)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.tile:hover img{transform:scale(1.05)}
.tile-t{padding:1.1rem 1.25rem 1.3rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.tile-t h3{margin:0;font-size:1.25rem}
.tile-t p{margin:0;color:var(--muted);font-size:1rem;flex:1}

/* service list (legacy rows) */
.svc{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.svc li{display:grid;grid-template-columns:60px minmax(0,4fr) minmax(0,6fr);gap:16px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;align-items:center}
.svc h3{margin:0}.svc h3 a{color:inherit;text-decoration:none}.svc p{margin:0;color:var(--muted)}
.svc .for{display:none}
.svc .num{display:flex;flex-direction:column;gap:.5rem}

/* steps and ticks */
.steps{list-style:none;margin:0 0 1.4rem;padding:0;counter-reset:s;display:grid;gap:12px}
.steps li{counter-increment:s;display:grid;grid-template-columns:38px 1fr;gap:14px;align-items:start;font-size:1.02rem}
.steps li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold-soft);color:var(--gold-d);font:800 .95rem/1 var(--font)}
.steps b{font-weight:700}
.ticks{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.6rem}
.ticks li{display:flex;gap:.6rem;align-items:flex-start}
.ticks svg{flex:none;width:22px;height:22px;padding:3px;border-radius:50%;background:var(--gold-soft);color:var(--gold-d);margin-top:.1em}
.prose .ticks li::before{content:none}

/* cards */
.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:.4rem;height:100%;padding:1.3rem 1.25rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);text-decoration:none;color:inherit;box-shadow:var(--shadow)}
.card h3{margin:0;font-size:1.12rem}
.card p{margin:0;color:var(--muted);font-size:.98rem;flex:1}
.card .label{color:var(--gold-d);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.ico{width:46px;height:46px;padding:10px;border-radius:14px;background:var(--gold-soft);color:var(--gold-d);fill:none;stroke-width:1.5;margin-bottom:.35rem}

/* areas */
.areas{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.areas a{display:flex;gap:.6rem;align-items:center;padding:.8rem .9rem;background:#fff;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);font:700 1rem/1.2 var(--font)}
.areas a:hover{border-color:var(--navy)}
.areas svg{color:var(--gold-d);width:20px;height:20px}
.areas small{display:block;font:500 .8rem/1.3 var(--font);color:var(--muted);margin-top:.15rem}
.areas-zip{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.county-block{padding:1.6rem;margin-bottom:16px;background:var(--soft);border-radius:var(--r-lg)}
.county-block h2{font-size:1.5rem}
.county-block h2 a{color:inherit;text-decoration:none}
.county-block h2 a:hover{color:var(--gold-d)}
.county-block>p{max-width:62ch;color:var(--muted)}
.band-img{margin:0 0 1.6rem;overflow:hidden;aspect-ratio:21/7;background:var(--soft);border-radius:var(--r-lg)}
.band-img img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
@media (max-width:700px){.band-img{aspect-ratio:16/9}}

/* project */
.proj{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:inherit;margin-bottom:1rem;box-shadow:var(--shadow)}
.proj img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;transition:transform 1s var(--ease)}
.proj:hover img{transform:scale(1.03)}
.proj>img{overflow:hidden}
.proj .t{padding:clamp(20px,3vw,34px);display:flex;flex-direction:column;justify-content:space-between;gap:20px;background:#fff;position:relative}
.proj .label{color:var(--gold-d)}
.proj h3{font-weight:800;font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.05;margin:10px 0 8px}
.proj p{margin:0;color:var(--muted)}
.proj dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
.proj dl div{background:var(--soft);border-radius:12px;padding:.7rem .8rem}
.proj dt{font:600 .75rem/1.2 var(--font);color:var(--muted)}
.proj dd{margin:4px 0 0;font:800 1.2rem/1 var(--font);color:var(--navy)}
@media (max-width:820px){.proj{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,64px);align-items:center}
.about figure{margin:0}
.about figure img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:50% 25%;border-radius:var(--r-lg)}
.about figcaption{padding-top:10px;font-size:.88rem;color:var(--muted)}
@media (max-width:820px){.about{grid-template-columns:1fr}}
.founders{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.founders li{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem}
.founders h3{margin:0 0 .2rem;font-size:1.4rem}

/* article + sidebar */
.with-sidebar{display:grid;gap:2.5rem;padding-block:clamp(32px,5vw,56px)}
@media (min-width:1000px){.with-sidebar{grid-template-columns:minmax(0,1fr) 380px;gap:3.5rem;align-items:start}.sidebar{position:sticky;top:88px}}
.offer-layout{align-items:start}
.prose{min-width:0}
.prose h2{margin-top:2.2rem}
.prose>h2:first-child,.prose>.byline+h2{margin-top:0}
.prose h3{margin-top:1.5rem}
.prose ul:not([class]),.prose ol:not([class]){padding-left:1.2rem}
.prose li{margin-bottom:.35rem}
.byline{margin-bottom:1.4rem}
.related{margin-top:2.6rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.related h2{margin-top:0}

/* tables */
.info{width:100%;border-collapse:separate;border-spacing:0;margin:0 0 1.2rem;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;font-size:1rem}
.info th,.info td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.info tr:last-child th,.info tr:last-child td{border-bottom:0}
.info th{font:600 .9rem/1.4 var(--font);color:var(--muted);width:42%;background:var(--soft)}
.table-scroll{overflow-x:auto;margin:0 0 1.2rem;border:1px solid var(--line);border-radius:16px;background:#fff}
.compare{width:100%;min-width:620px;border-collapse:collapse;font-size:1rem}
.compare th,.compare td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.compare tr:last-child th,.compare tr:last-child td{border-bottom:0}
.compare thead th{font:700 1rem/1.2 var(--font);background:var(--soft);color:var(--ink)}
.compare thead th:nth-child(2){background:var(--navy);color:#fff}
.compare tbody th{font:600 .9rem/1.4 var(--font);color:var(--muted);width:22%}
.compare td:nth-child(2){background:#FBF8F1;font-weight:600}

/* census bars and map */
.bars{display:grid;gap:.5rem;margin:0 0 .8rem}
.bars div{display:grid;grid-template-columns:120px 1fr 44px;gap:.7rem;align-items:center;font-size:.92rem}
.bars span{font:500 .85rem/1.2 var(--font);color:var(--muted)}
.bars b{display:block;height:10px;background:var(--soft-2);position:relative;border-radius:999px;overflow:hidden}
.bars b::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:linear-gradient(90deg,var(--gold),var(--gold-d));border-radius:999px}
.bars em{font:800 .92rem/1 var(--font);font-style:normal;text-align:right}
.map{margin:1.4rem 0}
.map iframe{width:100%;aspect-ratio:16/9;border:1px solid var(--line);border-radius:16px;display:block;background:var(--soft)}
.map figcaption{padding-top:8px;font-size:.85rem;color:var(--muted)}

/* FAQ */
.faq{margin:2.4rem 0}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:0 1.1rem;transition:box-shadow .2s,border-color .2s}
.faq details[open]{box-shadow:var(--shadow);border-color:var(--line-2)}
.faq summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 0;font:700 1.05rem/1.35 var(--font);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{transition:transform .25s var(--ease);color:var(--muted);width:22px;height:22px;flex:none}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq-a p{margin:0 0 1.1rem;max-width:68ch;color:var(--muted)}

/* forms */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.2rem,3vw,1.6rem);box-shadow:var(--shadow-lg)}
.form-h{font:800 1.45rem/1.15 var(--font);margin:0 0 .35rem}
.form-sub{color:var(--muted);font-size:.98rem;margin-bottom:1.1rem}
.lead-form{display:grid;gap:.85rem}
.field{display:grid;gap:.35rem;min-width:0;margin:0;border:0;padding:0}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
@media (max-width:420px){.field-row{grid-template-columns:1fr}}
.field label,.field legend{font:600 .88rem/1.2 var(--font);color:var(--ink);padding:0}
.opt{font-weight:400;color:var(--muted)}
input,select,textarea{font:500 1rem/1.35 var(--font);color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:.75em .85em;width:100%;min-height:48px;transition:border-color .2s,box-shadow .2s}
input:hover,select:hover,textarea:hover{border-color:#B8BFC6}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(14,30,50,.12)}
textarea{resize:vertical;min-height:84px}
input[aria-invalid="true"]{border-color:var(--err);box-shadow:0 0 0 3px rgba(180,35,24,.1)}
.checks{display:flex;flex-wrap:wrap;gap:.45rem}
.checks legend{margin-bottom:.45rem;width:100%}
.checks label{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem;border:1px solid var(--line-2);border-radius:999px;font:500 .95rem/1.2 var(--font);color:var(--ink);cursor:pointer;transition:all .2s}
.checks label:has(input:checked){background:var(--navy);border-color:var(--navy);color:#fff}
.checks input{width:auto;min-height:0;accent-color:var(--gold)}
.lead-form .btn{border-radius:999px;background:var(--navy);color:#fff}
.lead-form .btn:hover{background:var(--navy-2);color:#fff}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{color:var(--err);font-size:.95rem;margin:0}
.form-note{font-size:.86rem;color:var(--muted);margin:0}
.form-done{padding:.4rem 0;animation:pop .35s var(--ease)}
.form-done-h{display:flex;gap:.5rem;align-items:center;font:800 1.3rem/1.2 var(--font);color:var(--ok)}
.side-trust{margin-top:1rem;padding:1.2rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--soft)}
.side-trust .ticks{margin:0;font-size:.98rem}
.side-trust .label{margin:0 0 .5rem}

/* CTA band: a rounded navy card */
.cta-band{padding-block:clamp(32px,5vw,56px)}
.cta-band>.wrap{position:relative;overflow:hidden;background:var(--navy);color:var(--on-navy);border-radius:28px;padding:clamp(28px,5vw,52px);display:flex;flex-wrap:wrap;gap:1.4rem 3rem;align-items:center;justify-content:space-between}
.cta-band h2{color:#fff;margin:.2rem 0 .3rem}
.cta-band p{margin:0}
.cta-band .label{color:var(--gold)}
.cta-band .btn-row{margin:0;position:relative;z-index:1}
.cta-band .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.cta-band .btn-ghost:hover{background:#fff;color:var(--navy)}
.cta-band .wrap>div{position:relative;z-index:1}
.cta-art{position:absolute;right:-30px;bottom:-24px;width:min(560px,60%);color:var(--gold);opacity:.12;pointer-events:none;z-index:0}
.cta-art svg{width:100%;height:auto}

/* before / after slider */
.ba{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;user-select:none;touch-action:pan-y;box-shadow:var(--shadow);
  background-image:linear-gradient(var(--soft) 1px,transparent 1px),linear-gradient(90deg,var(--soft) 1px,transparent 1px);background-size:24px 24px}
.ba-layer{display:block}
.ba-layer svg,.ba-layer img{display:block;width:100%;height:auto}
.ba-layer .elev{padding:clamp(12px,3vw,32px) clamp(8px,2vw,24px) 4px}
.ba-after{color:var(--navy)}
.ba-before{position:absolute;inset:0;color:#9AA1A8;background:inherit;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:var(--navy);pointer-events:none}
.ba-line span{position:absolute;top:50%;left:50%;width:42px;height:42px;margin:-21px 0 0 -21px;border-radius:50%;background:#fff;border:2px solid var(--navy);box-shadow:var(--shadow-lg)}
.ba-line span::before,.ba-line span::after{content:"";position:absolute;top:50%;border:6px solid transparent;margin-top:-6px}
.ba-line span::before{left:4px;border-right-color:var(--navy)}
.ba-line span::after{right:4px;border-left-color:var(--navy)}
.ba input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;min-height:0;border:0}
.ba-tag{position:absolute;top:12px;font:700 .78rem/1 var(--font);padding:.5em .8em;border-radius:999px;pointer-events:none}
.ba-tag-b{left:12px;background:#fff;color:var(--muted);border:1px solid var(--line)}
.ba-tag-a{right:12px;background:var(--navy);color:#fff}
.ba-note{margin-top:.8rem}
.ba-fig{margin:0 0 2rem}
.ba-fig figcaption{padding-top:.6rem}
.sec-plan{background:var(--bg)}

/* project page (7103 Ryan Drive) */
.proj-hero{min-height:clamp(520px,74vh,700px)}
.proj-hero .hero-bg img{object-position:50% 62%}
.proj-hero h1{font-size:clamp(2.6rem,7vw,4.8rem)}
.btn-glass{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.45);backdrop-filter:blur(6px)}
.btn-glass:hover{background:#fff;color:var(--navy)}
@media (max-width:700px){.proj-hero .btn-glass{background:#fff;color:var(--navy);border-color:var(--line-2)}.proj-hero .hero-in{margin-top:0;padding-top:24px}}
.stats{list-style:none;margin:-44px 0 0;padding:0;position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.stats li{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;min-width:0}
.stats span{font:600 .82rem/1.3 var(--font);color:var(--muted)}
.stats b{font:800 clamp(1.5rem,3vw,2rem)/1.1 var(--font);color:var(--navy);font-variant-numeric:tabular-nums}
.stats small{font-size:.82rem;color:var(--muted)}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,1fr);margin-top:20px}.stats li:last-child{grid-column:1/-1}}
.proj-feats{margin-top:clamp(28px,4vw,44px)}
.pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.pills button,.chips button{font:600 .92rem/1 var(--font);background:#fff;color:var(--ink);border:1px solid var(--line-2);padding:.65em 1.05em;border-radius:999px;cursor:pointer;transition:all .2s}
.pills button:hover,.chips button:hover{border-color:var(--navy)}
.pills button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
@media (max-width:820px){.pills{justify-content:flex-start}}
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.shot{grid-column:span 4;position:relative;margin:0;cursor:zoom-in;background:var(--soft-2);overflow:hidden;border-radius:16px}
.shot.wide{grid-column:span 8}
.shot.flat{grid-column:span 4}
.shot img{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .8s var(--ease)}
.shot:hover img{transform:scale(1.04)}
.shot figcaption{position:absolute;left:10px;bottom:10px;font:700 .85rem/1 var(--font);background:rgba(255,255,255,.92);color:var(--navy);padding:.5em .75em;border-radius:999px}
@media (max-width:820px){.shot,.shot.wide,.shot.flat{grid-column:span 6}}
@media (max-width:520px){.shot,.shot.wide,.shot.flat{grid-column:span 12}}
.opts{display:grid;gap:clamp(20px,3vw,28px)}
.dopt{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(20px,4vw,48px);align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(16px,2.5vw,24px);box-shadow:var(--shadow)}
.dopt .label{color:var(--gold-d);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}
.dopt h3{font-size:1.5rem;margin:.3rem 0 .5rem}
.dopt p{margin:0 0 16px;color:var(--muted);max-width:46ch}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border-radius:14px;padding:.7em .9em;line-height:1.2}
.chips button small{font:500 .78rem/1.2 var(--font);color:var(--muted)}
.chips button[aria-pressed="true"]{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--soft)}
.dopt figure{margin:0;border-radius:16px;overflow:hidden;background:var(--soft-2)}
.dopt figure img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:opacity .25s ease}
.dopt figcaption{padding:10px 12px;font-size:.85rem;color:var(--muted);background:#fff}
@media (max-width:820px){.dopt{grid-template-columns:1fr}}
.plan{align-items:start}
.rooms{list-style:none;padding:0;margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.rooms li{display:flex;justify-content:space-between;gap:12px;padding:.75rem 1rem;border-bottom:1px solid var(--line);font-weight:600}
.rooms li:last-child{border-bottom:0}
.rooms li span:last-child{font-weight:400;font-size:.9rem;color:var(--muted);text-align:right}
.plan-sheet{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(10px,2vw,22px);box-shadow:var(--shadow)}
.plan-sheet img{display:block;width:100%;height:auto}
.disclaimer{font-size:.88rem;color:var(--muted);background:var(--soft);border-radius:16px;padding:1.1rem 1.25rem;margin:0 0 clamp(24px,4vw,40px)}
.lb{position:fixed;inset:0;z-index:80;background:rgba(10,14,20,.94);display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 56px) 16px calc(env(safe-area-inset-bottom,0px) + 64px);animation:fade .2s ease}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.lb .cap{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);text-align:center;color:#eee;font:500 .95rem/1.3 var(--font)}
.lb button{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;font:400 2rem/1 var(--font);cursor:pointer;width:48px;height:48px;border-radius:999px;display:grid;place-items:center}
.lb button:hover{background:rgba(255,255,255,.25)}
.lb .x{top:calc(env(safe-area-inset-top,0px) + 10px);right:10px;font-size:1.8rem}
.lb .p{left:10px;top:50%;transform:translateY(-50%)}
.lb .nx{right:10px;top:50%;transform:translateY(-50%)}

/* footer */
.foot{background:var(--navy);color:var(--on-navy);padding-block:clamp(48px,7vw,80px) 36px;margin-top:clamp(24px,4vw,40px)}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2rem}
@media (max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-logo{width:min(220px,70vw);height:auto;margin-bottom:12px}
.foot p{font-size:.95rem;color:var(--on-navy-muted)}
.foot .label{color:#fff;font-size:.9rem;margin-bottom:.7rem}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:.45rem}
.foot a{color:var(--on-navy-muted);text-decoration:none;font-size:.97rem}
.foot a:hover{color:var(--gold)}
.foot-legal{margin:2.4rem 0 1.2rem;font-size:.85rem!important;max-width:100ch}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--on-navy-muted);border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem;font-size:.85rem}

/* ---------- motion: Thumbtack-style, subtle; off for reduced motion ---------- */
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes slidein{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes zoomout{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes spin{to{--a:360deg}}
@media (prefers-reduced-motion:no-preference){
  .hero-bg img{animation:zoomout 18s ease-out both}
  .hero-copy>*{animation:rise .8s var(--ease) both}
  .hero-copy h1{animation-delay:.08s}.hero-copy p{animation-delay:.16s}
  .search{animation:rise .9s .22s var(--ease) both}
  .search::before{animation:spin 6s linear infinite}
  .hero-trust li{animation:rise .7s var(--ease) both}
  .hero-trust li:nth-child(1){animation-delay:.36s}.hero-trust li:nth-child(2){animation-delay:.44s}.hero-trust li:nth-child(3){animation-delay:.52s}
  .page-hero .wrap>*{animation:rise .8s var(--ease) both}
  .page-hero .wrap>h1{animation-delay:.06s}.page-hero .wrap>.lead,.page-hero .wrap>.answer{animation-delay:.14s}.page-hero .wrap>.btn-row{animation-delay:.22s}
  .hero-side{animation:pop .9s .15s var(--ease) both}
  .hero-side img{animation:zoomout 20s ease-out both}
  .js .rv{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease),transform .55s var(--ease);transition-delay:var(--d,0s)}
  .js .rv.in{opacity:1;transform:none}
  .js .bars.rv b::after{width:0;transition:width 1.1s var(--ease) .2s}
  .js .bars.rv.in b::after{width:var(--w)}
  .card,.tile,.who-card,.proj,.areas a{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .2s}
  .card:hover,.tile:hover,.who-card:hover,.proj:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
  .areas a:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
  .ico{transition:transform .3s var(--ease)}
  .card:hover .ico{transform:scale(1.08) rotate(-3deg)}
  .bar{transition:box-shadow .3s ease}
  .bar.scrolled{box-shadow:0 8px 24px rgba(16,24,40,.08)}
  .ba-line span{transition:transform .25s var(--ease)}
  .ba:hover .ba-line span{transform:scale(1.1)}
}
