*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);color:var(--color-contrast);background:var(--color-base);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:var(--font-heading);margin:0}
p{margin:0}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit}
.bpa-lead-form{display:grid;gap:14px}
.bpa-field{display:grid;gap:6px}
.bpa-label{font-size:13px;font-weight:600}
.bpa-input{width:100%;padding:12px 14px;border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);font:inherit;background:var(--color-white);color:var(--color-gray-900)}
.bpa-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;cursor:pointer}
.bpa-consent input{margin-top:2px}
.bpa-fineprint{font-size:12px;line-height:1.5;opacity:.7;margin:0}
.bpa-fineprint a{text-decoration:underline}
.bpa-submit{cursor:pointer;padding:14px 22px;border:0;border-radius:var(--radius-btn);background:var(--color-accent);color:var(--color-white);font:600 15px/1.2 var(--font-body)}
.bpa-submit:hover{background:var(--color-accent-hover)}
.bpa-map iframe{width:100%;min-height:320px;border:0}
.bpa-video{position:relative;aspect-ratio:16/9}
.bpa-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.bpa-review-funnel .review-funnel__step{display:none}
.bpa-review-funnel .review-funnel__step.is-active{display:block}
.bpa-review-funnel .review-funnel__stars{display:flex;gap:6px;justify-content:center;margin:20px 0}
.bpa-review-funnel .review-funnel__star{background:none;border:0;padding:2px;cursor:pointer;color:var(--color-gray-300)}
.bpa-review-funnel .review-funnel__star.is-hover,.bpa-review-funnel .review-funnel__star:hover{color:var(--color-stars)}
.bpa-review-funnel .review-funnel__star svg{fill:currentColor;stroke:none}
.bpa-review-funnel .review-funnel__icon svg{color:var(--color-accent)}

/* ---- canvas-owned surfaces below this line: chrome fallback, blog,
   article. The block ABOVE is CANVAS_BASE_CSS from
   src/lib/site-builder/bespoke/specimen.ts, kept byte-identical by the
   engine demo — edit it THERE, then re-seed this file. ---- */
.bp-header--fallback{display:flex;align-items:center;min-height:64px;padding:0 24px;background:var(--color-primary);color:var(--color-primary-contrast)}
.bp-header--fallback a{font:600 18px/1 var(--font-heading);text-decoration:none}
.bp-footer--fallback{padding:40px 24px;background:var(--color-gray-900);color:var(--color-gray-300);font-size:14px}
.bp-footer--fallback ul{list-style:none;display:flex;gap:18px;margin:10px 0 0;padding:0}
.bp-footer--fallback a{text-decoration:underline}
.bp-blog{padding:72px 24px}
.bp-blog__inner{max-width:760px;margin:0 auto}
.bp-blog__title{font:700 clamp(30px,4.5vw,44px)/1.15 var(--font-heading);margin-bottom:40px}
.bp-blog__card{padding:28px 0;border-bottom:1px solid var(--color-gray-200)}
.bp-blog__date{font-size:13px;color:var(--color-muted)}
.bp-blog__card-title{font:600 24px/1.3 var(--font-heading);margin:6px 0 10px}
.bp-blog__card-title a{text-decoration:none}
.bp-blog__card-title a:hover{color:var(--color-accent)}
.bp-blog__excerpt{color:var(--color-muted);line-height:1.6;margin-bottom:12px}
.bp-blog__more{font-weight:600;color:var(--color-accent);text-decoration:none}
.bp-blog__empty{color:var(--color-muted)}
.bp-article{padding:72px 24px;max-width:760px;margin:0 auto}
.bp-article__date{font-size:13px;color:var(--color-muted)}
.bp-article__title{font:700 clamp(30px,4.5vw,44px)/1.15 var(--font-heading);margin:8px 0 36px}
.bp-article__body{line-height:1.7;font-size:17px}
.bp-article__body p{margin:0 0 1.25em}
.bp-article__body h2{font:600 28px/1.3 var(--font-heading);margin:1.6em 0 .6em}
.bp-article__body h3{font:600 22px/1.35 var(--font-heading);margin:1.4em 0 .5em}
.bp-article__body ul,.bp-article__body ol{margin:0 0 1.25em;padding-left:1.4em}
.bp-article__body li{margin-bottom:.4em}
.bp-article__body a{color:var(--color-accent)}
.bp-article__body img{border-radius:var(--radius-md);margin:1.5em 0}
.bp-404{display:flex;align-items:center;min-height:60vh;padding:96px 24px;background:var(--color-base);color:var(--color-contrast)}
.bp-404__inner{width:100%;max-width:640px;margin:0 auto}
.bp-404__eyebrow{margin-bottom:16px;font:600 13px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}
.bp-404__title{margin-bottom:16px;font:700 clamp(32px,5vw,52px)/1.1 var(--font-heading)}
.bp-404__lead{margin-bottom:28px;font-size:17px;line-height:1.6;color:var(--color-muted)}
.bp-404__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.bp-404__btn{display:inline-block;padding:14px 22px;border-radius:var(--radius-btn);background:var(--color-primary);color:var(--color-primary-contrast);font:600 15px/1.2 var(--font-body);text-decoration:none}
.bp-404__btn:hover{background:var(--color-primary-dark)}
.bp-404__link{font:600 15px/1.2 var(--font-body);color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}
