
:root{
  color-scheme: light;
  --navy:#17375E;--navy-dk:#0E2540;--sunset:#E4823C;--gold:#8A6408;--sky:#EFF4F9;--sand:#FBF4E9;
  --paper:#FFFFFF;--mist:#F7F4EE;--card:#FFFFFF;--ink:#243242;--ink-2:#5B6C7D;--rule:#E1E8F0;
  --head:#17375E;--band:#10305A;--shadow:0 1px 2px rgba(23,55,94,.05),0 8px 24px rgba(23,55,94,.08);
}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:"Playfair Display",Georgia,serif;font-weight:600;line-height:1.14;text-wrap:balance;margin:0;color:var(--head)}
p{margin:0}
img{max-width:100%}
.wrap{max-width:1140px;margin:0 auto;padding-left:20px;padding-right:20px}
.narrow{max-width:760px;margin-left:auto;margin-right:auto}
.center{text-align:center}
.eyebrow{display:inline-block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gold)}
.eyebrow::after{content:"";display:block;width:40px;height:2px;background:var(--sunset);margin-top:6px}
.center .eyebrow::after{margin-left:auto;margin-right:auto}

.topbar{background:var(--band);color:#DCE7F2}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:4px 20px;align-items:center;justify-content:space-between;padding-block:7px;font-size:13.5px}
.topbar a{color:#F4CE93;text-decoration:none;font-weight:700}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:#FFFFFF;border-bottom:1px solid var(--rule)}
.brand{display:flex;align-items:center;gap:11px;background:none;border:0;padding:0;cursor:pointer;text-align:left}
.masthead-row{display:flex;flex-direction:column;align-items:center;gap:4px;padding-block:12px 8px}
.masthead-row .brand{flex-direction:column;align-items:center;gap:6px;text-align:center}
.masthead-row .mark{width:78px}
.brand-name{font-family:"Cinzel",Georgia,serif;font-size:25px;font-weight:700;letter-spacing:.12em;line-height:1;color:#17375E;display:block}
.brand-sub{font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:#8A6408;font-weight:700;display:block;margin-top:6px}
.navbar{border-top:1px solid var(--rule);background:#FFFFFF}
.navbar .wrap{display:flex;align-items:center;justify-content:center;gap:2px;padding-block:0;position:relative}
nav.main{display:flex;align-items:center;flex-wrap:wrap;justify-content:center}
nav.main a{font:inherit;font-size:14.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:none;border:0;padding:13px 17px;cursor:pointer;position:relative}
nav.main a:hover{color:var(--navy)}
nav.main a[aria-current="page"]{color:var(--navy)}
nav.main a[aria-current="page"]::after{content:"";position:absolute;left:17px;right:17px;bottom:0;height:3px;background:var(--sunset)}
.navbar .tel{position:absolute;right:20px;font-size:14.5px;font-weight:700;color:var(--navy);text-decoration:none;letter-spacing:.03em}
.crumbs{font-size:13px;color:var(--ink-2);padding-block:12px 0}
.crumbs a{font:inherit;background:none;border:0;padding:0;color:var(--ink-2);cursor:pointer}
.crumbs a:hover{color:var(--navy)}
.crumbs .here{color:var(--navy);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;font-size:15.5px;padding:11px 22px;border-radius:4px;border:2px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn-sun{background:var(--sunset);color:#2A1503;border-color:var(--sunset)}
.btn-sun:hover{filter:brightness(1.07)}
.btn-navy{background:#17375E;color:#fff;border-color:#17375E}
.btn-navy:hover{filter:brightness(1.15)}
.btn-ghost{border-color:var(--rule);color:var(--navy);background:var(--card)}
.btn-ghost:hover{border-color:var(--sunset)}
.arrow{font-size:17px;line-height:1}

/* hero: art left, form right, no overlap */
.hero{background:linear-gradient(180deg,#EAF1F8 0%,#F7FAFD 100%)}
.hero .wrap{max-width:1300px;display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:30px;align-items:start;padding-block:30px 32px}
.hero-h1{font-size:clamp(28px,3.4vw,40px);line-height:1.14;color:var(--head)}
.hero-sub{margin-top:13px;font-size:18px;color:var(--ink-2);max-width:56ch}
.hero-sub2{margin-top:9px;font-size:16.5px;color:var(--ink-2);max-width:56ch}
.hero-cta{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.hero-micro{margin-top:10px;font-size:14px;color:var(--ink-2)}
.hero-art{display:block;width:100%;height:auto;margin-top:24px;border-radius:10px;box-shadow:0 12px 32px rgba(16,48,90,.18)}
.hero-form{background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:0 10px 30px rgba(16,48,90,.14);padding:18px 18px 20px}
.hero-form h3{font-size:19px}
.hero-form .fsub{margin:5px 0 12px;font-size:13.5px;color:var(--ink-2)}
.hero-form .field{margin-bottom:10px}
.hero-form .field textarea{min-height:62px}

/* page headers: rounded inset photo band, WCG structure */
.phero{padding:18px 20px 0}
.phero .band-img{position:relative;max-width:1260px;margin:0 auto;border-radius:10px;overflow:hidden;background:var(--sky)}
.phero .band-img img{display:block;width:100%;height:215px;object-fit:cover;object-position:center 46%;filter:saturate(.85)}
.phero .cap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;
  background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.88) 50%,rgba(255,255,255,.76) 100%)}
.phero h1{color:#17375E;font-size:clamp(27px,4vw,40px);text-shadow:0 1px 14px rgba(255,255,255,.85)}
.phero .sub{margin-top:8px;color:#2F4A67;font-size:16px;max-width:60ch;text-shadow:0 1px 12px rgba(255,255,255,.9)}
.phero .eyebrow{color:#8A6408;text-shadow:0 1px 10px rgba(255,255,255,.9)}
.phero .eyebrow::after{margin-left:auto;margin-right:auto}

/* WCG-style article layout with sticky table of contents */
.doc{display:grid;grid-template-columns:250px minmax(0,1fr);gap:40px;align-items:start}
.toc{position:sticky;top:96px;background:#FBF7F1;border:1px solid var(--rule);border-radius:5px;padding:16px 18px}
.toc .toc-h,.toc h4{font-family:"Source Sans 3",sans-serif;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.toc ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:14.5px}
.toc a:not(.btn){color:var(--ink-2);text-decoration:none;display:block;line-height:1.35}
.toc a:hover{color:var(--navy)}
.toc .sub{padding-left:12px;font-size:13.5px}
.article h2{font-size:27px;margin-top:34px;padding-bottom:7px;border-bottom:2px solid var(--sunset);display:inline-block}
.article h2:first-of-type{margin-top:0}
.article h3{font-size:19px;margin-top:22px}
.article p{max-width:60ch;margin-top:11px;color:var(--ink-2);font-size:16.5px}
.article ul.plain{margin:11px 0 0;padding-left:20px;color:var(--ink-2);font-size:16px;line-height:1.75}
.article .lead{font-size:18px;color:var(--ink)}
.steps{list-style:none;counter-reset:st;margin:14px 0 0;padding:0;display:grid;gap:12px}
.steps li{counter-increment:st;position:relative;padding-left:38px;color:var(--ink-2);font-size:16px;line-height:1.6}
.steps li::before{content:counter(st);position:absolute;left:0;top:1px;width:25px;height:25px;border-radius:50%;background:var(--sky);
  color:var(--navy);font-family:"Source Sans 3",sans-serif;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.steps li strong{color:var(--ink)}
.locmap{margin:0 0 26px}
.locmap img{display:block;width:100%;height:auto;border:1px solid var(--rule);border-radius:8px}
.locmap figcaption{margin-top:9px;font-size:14px;color:var(--ink-2);text-align:center}
.svcstrip{background:var(--mist);border-block:1px solid var(--rule)}
.svcstrip .wrap{padding-block:13px;text-align:center;font-family:"Source Sans 3",sans-serif;font-size:13.5px;
  letter-spacing:.01em;text-transform:none;color:var(--navy);font-weight:700}
.pending{margin-top:18px;background:var(--sky);border:1px solid var(--rule);border-radius:6px;padding:16px 18px}
.pending .pending-h,.pending h4{font-family:"Source Sans 3",sans-serif;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin:0 0 8px}
.pending p{margin:0;color:var(--ink-2);font-size:16px}
.callout{margin-top:18px;background:var(--sand);border:1px solid #EADFCB;border-radius:5px;padding:14px 18px;font-size:16px;color:var(--ink-2)}

/* floating discovery-call tab */
.disc{position:fixed;left:0;top:45%;z-index:60;background:var(--navy);color:#fff;writing-mode:vertical-rl;transform:rotate(180deg);
  padding:16px 9px;border-radius:0 5px 5px 0;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;box-shadow:0 6px 18px rgba(16,48,90,.28);border:0;cursor:pointer;font-family:inherit}
.disc:hover{filter:brightness(1.15)}
@media (max-width:900px){.disc{display:none}}

/* geography tiers */
.tiers{display:grid;gap:16px}
.tier{background:var(--card);border:1px solid var(--rule);border-radius:5px;padding:18px 20px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:start}
.tier .lbl{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--gold)}
.tier h3{font-size:19px;margin-top:5px}
.tier p{margin-top:6px;color:var(--ink-2);font-size:15.5px}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.chip{background:#FFFFFF;border:1px solid var(--rule);border-radius:999px;padding:7px 15px;font-size:14.5px;font-weight:600;
  color:var(--navy);cursor:pointer;font-family:inherit;line-height:1.2;transition:border-color .15s,background .15s}
.chip:hover{border-color:var(--sunset);background:#FFF8F1}

section.band{padding-block:46px}
section.mist{background:#FBF7F1}
.section-head{margin-bottom:28px}
.section-head h2{font-size:clamp(25px,3.4vw,34px);margin-top:10px}
.section-head p{margin-top:10px;color:var(--ink-2);font-size:17px}
.section-head.center p{margin-left:auto;margin-right:auto;max-width:60ch}

.icons{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.scard{background:#fff;border:1px solid var(--rule);border-radius:8px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.scard img{display:block;width:100%;height:150px;object-fit:cover}
.scard .body{padding:16px 16px 18px}
.scard h3{font-size:19px}
.scard p{margin-top:7px;color:var(--ink-2);font-size:15px}
.photo{border-radius:8px;overflow:hidden;box-shadow:0 12px 30px rgba(16,48,90,.16);line-height:0}
.photo img{display:block;width:100%;height:auto}
.inline-photo{margin-top:18px;border-radius:8px;overflow:hidden;line-height:0}
.inline-photo img{display:block;width:100%;height:auto}
.icol{text-align:center}
.ring{width:74px;height:74px;margin:0 auto 12px;border-radius:50%;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;background:var(--card)}
.ring svg{width:34px;height:34px;stroke:var(--navy);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.icol h3{font-size:20px}
.icol p{margin-top:7px;color:var(--ink-2);font-size:15.5px}

.strip{background:var(--sand);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.strip .wrap{padding-block:26px}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stat .n{font-family:"Playfair Display",Georgia,serif;font-size:34px;font-weight:600;color:var(--navy);line-height:1;font-variant-numeric:tabular-nums}
.stat .l{margin-top:4px;font-size:14px;color:var(--ink-2)}

.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.quote{background:#FBF7F1;border:1px solid var(--rule);border-radius:6px;padding:20px}
.stars{color:var(--sunset);letter-spacing:.2em;font-size:13px}
.quote p{margin-top:8px;font-size:15.5px;color:var(--ink-2)}
.quote footer{margin-top:10px;font-weight:700;font-size:13.5px;color:var(--navy)}

.pcband{background:var(--sky)}
.pcband .wrap{padding-block:46px}
.pcband .grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center}
.pc-frame{border-radius:5px;overflow:hidden;box-shadow:0 14px 34px rgba(16,48,90,.2);line-height:0;background:#F6EBD5}
.pc-frame img{display:block;width:100%;height:auto}

.table-scroll{overflow-x:auto;border:1px solid var(--rule);background:var(--card);border-radius:5px;box-shadow:var(--shadow)}
.ledger{width:100%;border-collapse:collapse;font-size:15.5px;min-width:460px}
.ledger th,.ledger td{text-align:left;padding:11px 15px;border-bottom:1px solid var(--rule)}
.ledger tbody tr:last-child td{border-bottom:0}
.ledger th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);font-weight:700;background:#F3EFE7}
.ledger td.price{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700;color:var(--navy);text-align:right}

.towns{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.town{background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--sunset);border-radius:5px;padding:16px}
.town h3{font-size:18px}
.town .zip{margin-top:5px;font-size:13px;color:var(--ink-2)}

.bullets{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:16.5px;color:var(--ink-2)}
.bullets li::before{content:"\2713";color:var(--sunset);font-weight:700;margin-right:9px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:start}
.prose p{color:var(--ink-2);font-size:17px}
.prose p+p{margin-top:12px}

.faq{max-width:760px;margin:0 auto;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:14px 0;font-weight:700;font-size:17px;display:flex;justify-content:space-between;gap:16px;align-items:center;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--sunset);font-size:23px;line-height:1;font-weight:400}
.faq details[open] summary{color:var(--navy)}
.faq details[open] summary::after{content:"\2013"}
.faq p{padding:0 0 16px;color:var(--ink-2)}

form.intake{background:var(--card);border:1px solid var(--rule);border-radius:5px;box-shadow:var(--shadow);padding:20px 20px 22px}
form.intake h3{font-size:21px}
form.intake .fsub{margin:5px 0 14px;font-size:14px;color:var(--ink-2)}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}
.field label{font-size:13.5px;font-weight:700}
.field .hint{font-weight:400;color:var(--ink-2)}
.field input,.field select,.field textarea{font:inherit;font-size:15.5px;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:9px 11px;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--sunset);outline-offset:1px;border-color:var(--sunset)}
.field textarea{min-height:74px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.err{color:#B23A2B;font-size:13px}
.form-foot{margin-top:9px;font-size:12.5px;color:#5B6C7D;line-height:1.45}
.sent{background:#fff;border:2px solid var(--sunset);border-radius:5px;box-shadow:var(--shadow);padding:24px 20px}
.sent h3{font-size:22px;color:#17375E}
.sent p{margin-top:9px;color:#5B6C7D}
.sent .ref{margin-top:14px;background:#F7F4EE;padding:8px 13px;display:inline-block;border-radius:4px;font-weight:700;color:#17375E}

.info-card{background:var(--card);border:1px solid var(--rule);border-radius:5px;padding:20px;box-shadow:var(--shadow)}
.info-card dl{margin:0;display:grid;gap:12px}
.info-card dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}
.info-card dd{margin:3px 0 0;font-size:16px}
.info-card a{color:var(--navy);text-decoration:none;font-weight:700}
.info-card a:hover{text-decoration:underline}

.cta-strip{background:var(--sand);border-top:1px solid var(--rule)}
.cta-strip .wrap{padding-block:38px;text-align:center}
.cta-strip h2{font-size:29px}
.cta-strip p{color:var(--ink-2);margin:10px auto 18px;max-width:52ch}

footer.site{background:var(--band);color:#B9CBDE;padding-block:32px 22px;font-size:15px}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px}
footer.site h4{color:#F4CE93;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:10px;font-family:"Source Sans 3",sans-serif}
footer.site .credit{margin-top:6px;font-size:13px;opacity:.85}footer.site .credit a{color:#F4CE93}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
footer.site a.link{font:inherit;background:none;border:0;padding:0;color:#B9CBDE;cursor:pointer;text-align:left}
footer.site a.link:hover,footer.site a:hover{color:#fff}
footer.site a{color:#B9CBDE;text-decoration:none}
.logo-plate{background:#fff;border-radius:5px;padding:12px;max-width:210px;margin-bottom:12px}
.logo-plate img{display:block;width:100%}
.legal{margin-top:24px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:13px;color:#8AA3BC}

:focus-visible{outline:2px solid var(--sunset);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media (max-width:1000px){
  .doc{grid-template-columns:1fr}
  .toc{position:static}
  .tier{grid-template-columns:1fr;gap:6px}
  .hero .wrap{grid-template-columns:1fr}
  .icons{grid-template-columns:1fr 1fr}
  .towns{grid-template-columns:1fr 1fr}
  .pcband .grid,.split{grid-template-columns:1fr;gap:26px}
  .quotes{grid-template-columns:1fr}
  .stat-row{grid-template-columns:1fr 1fr}
  footer.site .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .masthead-row .mark{width:62px}
  .brand-name{font-size:20px}
  .navbar .tel{display:none}
  .navbar .wrap{padding-left:8px;padding-right:8px}
  nav.main a{padding:11px 10px;font-size:13px;letter-spacing:.04em}
  .phero .band-img img{height:165px}
  .phero{padding:12px 14px 0}
  .icons,.towns,.two{grid-template-columns:1fr}
  section.band{padding-block:34px}
  .phero .wm{width:170px;opacity:.1}
  .phero .wrap{padding-block:26px 24px}
}
@media (max-width:430px){
  nav.main a{padding:10px 7px;font-size:11.5px;letter-spacing:.02em}
  .topbar .wrap{font-size:13px;justify-content:center;text-align:center}
  .topbar .sep{display:none}
}
.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}
.toc .toc-h{margin-top:0}

.disc{display:none}
@media (min-width:1400px){.disc{display:block}}
.hero-a{background:#fff}
.ha-banner{height:300px;background:url(/img/fadd316124.jpg) 18% 55%/cover no-repeat}
.hero-a .ha-grid{max-width:1140px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start;padding-block:0 40px}
.hero-a .ha-grid>div:first-child{padding-top:34px}
.hero-a .ha-grid>div:last-child{margin-top:-150px;position:relative}
.hero-a .hero-h1{font-size:clamp(32px,3.6vw,46px);line-height:1.08;max-width:19ch}
.hero-a .hero-form{box-shadow:0 18px 44px rgba(16,48,90,.22)}
@media (max-width:1000px){.hero-a .ha-grid{grid-template-columns:1fr;gap:24px}.hero-a .ha-grid>div:last-child{margin-top:0}.ha-banner{height:200px}}

.creds{background:#fff;border-bottom:1px solid var(--rule)}
.creds-in{max-width:1140px;margin:0 auto;padding:22px 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.creds p{margin:0;font-size:14.5px;line-height:1.45;color:var(--ink-2)}
.creds b{display:block;font-family:"Playfair Display",Georgia,serif;font-size:17px;color:var(--navy);margin-bottom:3px}
.hero-b + .creds{background:var(--sky)}
@media (max-width:860px){.creds-in{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.creds-in{grid-template-columns:1fr}}

a.brand,a.chip,a.disc,nav.main a,.crumbs a,footer.site a.link{text-decoration:none}
a.brand{color:inherit}
a.chip{color:var(--navy);display:inline-block}
nav.main a{display:inline-block}
.qa{margin-top:38px}
.qa h2{margin-bottom:14px}
.qa details{border-top:1px solid var(--rule);padding:4px 0}
.qa details:last-child{border-bottom:1px solid var(--rule)}
.qa summary{cursor:pointer;list-style:none;padding:13px 32px 13px 0;position:relative;font-weight:700;color:var(--navy);font-size:17px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";position:absolute;right:6px;top:9px;font-size:22px;color:var(--sunset);font-weight:400}
.qa details[open] summary::after{content:"\2212"}
.qa-a{padding:0 0 15px;color:var(--ink-2);max-width:68ch}
.faq-band{background:var(--mist)}
.faq-band .qa{margin:0 auto;max-width:820px}
