/* BrightDwell Inc. — site styles */
:root{
  --ink:#17211F; --paper:#FBF7F1; --white:#FFFFFF;
  --teal:#0F5C52; --teal-d:#0B4740; --teal-dd:#083732; --hero:#0C3D37;
  --amber:#F2B23E; --amber-d:#E09B1E; --brown:#8A5A16;
  --sand:#F3EDE4; --mint:#EEF4F1; --mint-2:#DCEAE6; --peach:#F6E7D5;
  --line:rgba(23,33,31,.10); --muted:rgba(23,33,31,.72); --muted-2:rgba(23,33,31,.60);
  --r-s:14px; --r-m:20px; --r-l:24px; --r-xl:28px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Public Sans",system-ui,-apple-system,sans-serif;text-wrap:pretty}
img{max-width:100%;display:block}
p{margin:0}
h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;letter-spacing:-.025em;margin:0}
a{color:var(--teal);text-underline-offset:3px;transition:color .12s ease,background .12s ease,box-shadow .12s ease}
a:hover{color:var(--teal-d);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
a:active{color:var(--teal-dd)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
::selection{background:rgba(15,92,82,.18)}

.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,48px)}
.wrap-narrow{max-width:880px}
.section{padding:0 0 clamp(56px,8vw,104px)}
.band{background:var(--sand);padding:clamp(56px,8vw,104px) 0;margin-bottom:clamp(56px,8vw,104px)}
.band-mint{background:var(--mint-2)}
.center{text-align:center}
.mx-auto{margin-left:auto;margin-right:auto}

.display{font-size:clamp(32px,4vw,52px);line-height:1.05;letter-spacing:-.03em}
.h1{font-size:clamp(32px,4.4vw,54px);line-height:1.06;letter-spacing:-.03em}
.h2{font-size:clamp(26px,3.4vw,40px);line-height:1.12}
.h3{font-size:20px;line-height:1.28;font-weight:600}
.h4{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:600;font-size:18px;line-height:1.35;letter-spacing:-.015em;margin:0}
.lede{font-size:17px;line-height:1.65}
.body{font-size:15px;line-height:1.7;color:var(--muted)}
.small{font-size:13.5px;line-height:1.6;color:var(--muted-2)}
.kicker{display:block;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.kicker-brown{color:var(--brown)}
.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}
.mt-28{margin-top:28px}.mt-32{margin-top:32px}.mt-48{margin-top:clamp(32px,4vw,48px)}
.measure{max-width:52ch}.measure-s{max-width:44ch}.measure-l{max-width:70ch}

/* buttons */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border:0;cursor:pointer;
  font-family:inherit;font-size:15px;font-weight:600;padding:13px 24px;border-radius:999px;text-decoration:none;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .1s ease}
.pill:hover{text-decoration:none}
.pill:active{transform:translateY(1px)}
.pill-solid{background:var(--teal);color:var(--paper)}
.pill-solid:hover{background:var(--teal-d);color:var(--paper);box-shadow:0 0 0 4px rgba(15,92,82,.18)}
.pill-solid:active{background:var(--teal-dd)}
.pill-amber{background:var(--amber);color:var(--ink)}
.pill-amber:hover{background:var(--amber-d);color:var(--ink);box-shadow:0 0 0 4px rgba(242,178,62,.25)}
.pill-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(23,33,31,.25)}
.pill-line:hover{background:rgba(15,92,82,.07);color:var(--teal);box-shadow:inset 0 0 0 1.5px rgba(15,92,82,.45),0 0 0 4px rgba(15,92,82,.10)}
.pill-ghost{background:var(--white);color:var(--teal);box-shadow:0 1px 2px rgba(23,33,31,.08)}
.pill-ghost:hover{background:var(--mint);color:var(--teal-d);box-shadow:0 0 0 4px rgba(15,92,82,.14)}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* header */
.site-header{position:sticky;top:0;z-index:30;background:rgba(251,247,241,.94);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.site-header .inner{max-width:1200px;margin:0 auto;padding:14px clamp(16px,4vw,48px);display:flex;align-items:center;gap:clamp(12px,3vw,36px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:20px;letter-spacing:-.02em}
.brand:hover{color:var(--ink);text-decoration:none}
.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--teal);display:inline-block;position:relative;flex:0 0 auto}
.brand-mark::after{content:"";position:absolute;inset:9px;border-radius:3px;background:var(--amber)}
.navlinks{display:flex;gap:clamp(10px,2vw,26px);align-items:center;margin-left:auto;font-size:15px;font-weight:500}
.navlinks a{color:var(--ink);text-decoration:none;padding:4px 2px}
.navlinks a:hover{color:var(--teal);background:rgba(15,92,82,.09);border-radius:999px;box-shadow:0 0 0 6px rgba(15,92,82,.09);text-decoration:none}
.navlinks a.active{color:var(--teal)}
.burger{display:none;background:transparent;border:0;cursor:pointer;padding:10px;border-radius:12px;margin-left:auto}
.burger:hover{background:rgba(15,92,82,.10)}
.burger:active{background:rgba(15,92,82,.18)}
.burger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px}
.burger span+span{margin-top:6px}
@media (max-width:900px){.navlinks,.hdr-cta{display:none}.burger{display:block}}

/* fullscreen menu */
.overlay{position:fixed;inset:0;z-index:60;background:var(--hero);display:none;flex-direction:column;padding:clamp(16px,4vw,48px);overflow-y:auto}
.overlay.open{display:flex}
body.menu-open{overflow:hidden}
.overlay-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.overlay-brand{display:flex;align-items:center;gap:10px;color:var(--paper);font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:20px;letter-spacing:-.02em}
.overlay-brand span.m{width:30px;height:30px;border-radius:9px;background:var(--amber);display:inline-block}
.overlay-close{background:transparent;border:0;cursor:pointer;color:var(--paper);font-size:34px;line-height:1;padding:6px 12px;border-radius:12px}
.overlay-close:hover{background:rgba(251,247,241,.12)}
.overlay nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:clamp(10px,2.2vh,22px);padding:clamp(24px,6vh,64px) 0}
.ovlink{color:var(--paper);text-decoration:none;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:600;
  font-size:clamp(24px,6vw,38px);line-height:1.25;letter-spacing:-.02em}
.ovlink:hover{color:var(--amber);text-decoration:none}
.overlay-foot{display:flex;flex-direction:column;gap:14px}
.overlay-foot p{font-size:14px;line-height:1.7;color:rgba(251,247,241,.6)}
.overlay-foot a{color:var(--paper)}
.overlay-foot a:hover{color:var(--amber)}

/* hero */
.hero{border-radius:var(--r-xl);overflow:hidden;background:var(--hero);display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-top:clamp(16px,3vw,32px)}
.hero-copy{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center}
.hero-copy h1{color:var(--paper);max-width:20ch}
.hero-copy p{color:rgba(251,247,241,.85);margin-top:20px;max-width:44ch;font-size:17px;line-height:1.6}
.hero-img{background:var(--mint);min-height:clamp(280px,32vw,440px)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.page-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(40px,6vw,80px) 0 clamp(32px,5vw,56px)}
.page-head-img{border-radius:var(--r-xl);overflow:hidden;background:var(--mint);aspect-ratio:4/3}
.page-head-img img{width:100%;height:100%;object-fit:cover}

.chips{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.chip{display:inline-flex;align-items:center;padding:8px 16px;border-radius:999px;background:var(--white);
  box-shadow:0 1px 2px rgba(23,33,31,.07);font-size:14px;font-weight:500;white-space:nowrap}

/* grids, cards, tiles */
.grid{display:grid;gap:clamp(20px,3vw,28px)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(28px,5vw,72px);align-items:center}
.card{background:var(--white);border-radius:var(--r-l);padding:14px;box-shadow:0 1px 2px rgba(23,33,31,.06);transition:box-shadow .15s ease}
.card:hover{box-shadow:0 8px 24px rgba(23,33,31,.10)}
.card-media{border-radius:16px;overflow:hidden;aspect-ratio:16/10;background:var(--mint)}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-body{padding:20px 12px 12px}
.card-plain{background:var(--white);border-radius:var(--r-l);padding:clamp(24px,3vw,32px);transition:box-shadow .15s ease}
.card-plain:hover{box-shadow:0 8px 24px rgba(23,33,31,.10)}
.tile{background:var(--mint);border-radius:var(--r-m);padding:24px}
.panel{background:var(--white);border-radius:var(--r-l);padding:clamp(24px,4vw,40px)}
.panel-peach{background:var(--peach);border-radius:var(--r-xl);padding:clamp(28px,5vw,56px)}
.feature-img{border-radius:var(--r-l);overflow:hidden;background:var(--mint);min-height:340px}
.feature-img img{width:100%;height:100%;object-fit:cover}
.stack{display:grid;gap:16px;align-content:start}

/* lists */
.checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px clamp(20px,4vw,48px);font-size:15px;line-height:1.5}
.checklist li{display:flex;gap:10px;align-items:baseline}
.checklist li::before{content:"\2713";color:var(--teal);font-weight:600}
.townlist{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px clamp(16px,3vw,40px);font-size:15px;line-height:1.6;color:var(--muted)}
.steps{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:24px}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:0 16px}
.step-num{width:30px;height:30px;border-radius:999px;background:var(--teal);color:var(--paper);font-size:14px;font-weight:600;display:grid;place-items:center}
.bullets{margin:12px 0 0;padding-left:22px}
.bullets li{margin:6px 0 0;font-size:15.5px;line-height:1.75}

/* quotes */
.quote{margin:0;background:var(--paper);border-radius:var(--r-l);padding:clamp(24px,3vw,32px)}
.quote .mark{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:40px;line-height:.6;color:var(--teal);display:block}
.quote blockquote{font-size:16px;line-height:1.7;margin:16px 0 0}
.quote figcaption{font-size:14px;margin:20px 0 0;color:var(--muted-2)}

/* faq */
.faq{border-bottom:1px solid var(--line);padding:18px 0}
.faq:last-child{border-bottom:0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;
  font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:600;font-size:17px;line-height:1.4;transition:color .12s ease}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--teal)}
.faq summary .m{flex:0 0 auto;width:22px;height:22px;position:relative}
.faq summary .m::before,.faq summary .m::after{content:"";position:absolute;background:var(--teal);border-radius:2px}
.faq summary .m::before{inset:10px 2px auto 2px;height:2px}
.faq summary .m::after{inset:2px 10px 2px auto;width:2px}
.faq[open] summary .m::after{display:none}
.faq p{font-size:15px;line-height:1.7;margin:12px 0 0;max-width:58ch;color:var(--muted)}

/* tables */
.tablewrap{overflow-x:auto;background:var(--white);border-radius:var(--r-l);margin-top:28px}
table.tbl{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6}
table.tbl th,table.tbl td{text-align:left;padding:16px 20px;vertical-align:top}
table.tbl thead th{background:var(--mint);font-weight:600}
table.tbl tbody tr{border-top:1px solid rgba(23,33,31,.08)}
table.tbl tbody th{font-weight:600}
table.tbl td{color:var(--muted)}

/* cta band */
.cta{background:var(--teal);border-radius:var(--r-xl);padding:clamp(32px,5vw,64px);display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between}
.cta h2{color:var(--paper);max-width:22ch;font-size:clamp(24px,3vw,36px);line-height:1.15}

/* forms */
.form{background:var(--white);border-radius:var(--r-xl);padding:clamp(24px,4vw,40px);display:grid;gap:20px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.field{display:grid;gap:7px}
.field>span{font-size:14px;font-weight:600}
.ctl{font-family:inherit;font-size:15px;color:var(--ink);background:var(--white);border:1.5px solid rgba(23,33,31,.16);
  border-radius:var(--r-s);padding:12px 14px;width:100%}
.ctl:hover{border-color:rgba(15,92,82,.4)}
.ctl:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,92,82,.15)}
textarea.ctl{min-height:128px;resize:vertical}
.form-note{font-size:15px;font-weight:600;color:var(--teal)}
.form-error{font-size:15px;font-weight:600;color:#9B1C2E}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.aside-card{background:var(--mint);border-radius:var(--r-l);padding:clamp(24px,3vw,32px)}
.aside-card.peach{background:var(--peach)}

/* legal documents */
.doc h2{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:600;font-size:21px;line-height:1.3;letter-spacing:-.015em;margin:44px 0 0}
.doc p{font-size:15.5px;line-height:1.75;margin:12px 0 0}
.doc ul,.doc ol{margin:12px 0 0;padding-left:22px}
.doc li{font-size:15.5px;line-height:1.75;margin:6px 0 0}
.doc .lede{font-size:17px;margin-top:18px}
.doc table{width:100%;border-collapse:collapse;margin:16px 0 0;font-size:15px}
.doc th,.doc td{text-align:left;padding:12px 14px;border-top:1px solid rgba(23,33,31,.12);vertical-align:top;line-height:1.6}
.doc thead th{background:var(--mint);border-top:0;font-weight:600}

/* 404 */
.err-num{display:block;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:clamp(64px,14vw,140px);line-height:.9;letter-spacing:-.04em;color:var(--teal)}
.card-link{display:block;text-decoration:none;color:var(--ink);background:var(--white);border-radius:var(--r-m);padding:22px;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
.card-link:hover{background:var(--mint);color:var(--ink);text-decoration:none;transform:translateY(-2px);box-shadow:0 8px 24px rgba(23,33,31,.10)}

/* footer */
.site-footer{background:var(--ink);color:rgba(251,247,241,.78)}
.site-footer .inner{max-width:1200px;margin:0 auto;padding:clamp(40px,6vw,72px) clamp(16px,4vw,48px)}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px clamp(24px,4vw,64px);font-size:15px;line-height:1.9}
.foot-brand{display:flex;align-items:center;gap:10px;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:19px;color:var(--paper)}
.foot-brand span.m{width:26px;height:26px;border-radius:8px;background:var(--amber);display:inline-block}
.foot-head{display:block;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(251,247,241,.5);margin-bottom:8px}
.site-footer a{color:var(--paper);text-decoration:none}
.site-footer a:hover{color:var(--amber);text-decoration:underline;text-decoration-thickness:1.5px}
.site-footer a:active{color:var(--amber-d)}
.foot-col a{display:block}
.foot-bottom{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:baseline;justify-content:space-between;margin:clamp(32px,4vw,48px) 0 0}
.foot-bottom p{font-size:13px;line-height:1.7;color:rgba(251,247,241,.55);max-width:70ch}
.foot-legal{display:flex;gap:24px;flex-wrap:wrap;font-size:13px}
.foot-legal a{color:rgba(251,247,241,.78)}

@media (max-width:560px){.pill{width:100%}.cta{flex-direction:column;align-items:flex-start}}

/* accessibility: skip link */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--teal);color:var(--paper);padding:12px 20px;border-radius:0 0 12px 0;font-weight:600;text-decoration:none}
.skip:focus{left:0;color:var(--paper)}
