/* Dunn Drywall. Tokens come from the approved design (Archivo + Barlow, royal blue + ink). */
@font-face{font-family:Archivo;font-style:normal;font-weight:500 900;font-display:swap;src:url(/assets/fonts/archivo-latin.woff2) format("woff2")}
@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/barlow-400.woff2) format("woff2")}
@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/barlow-500.woff2) format("woff2")}
@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-600.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400.woff2) format("woff2")}

:root{
  --ink:#14162b;--body:#4a4d66;--muted:#585c78;--brand:#2b37a3;--brand-dark:#1c2577;--brand-light:#5a67e0;
  --line:#e6e7ef;--line-2:#c9cbe0;--alt:#f1f2f6;--paper:#faf9f5;--tint:#e7e9f7;--dark:#14162b;--dark-line:#2c2f52;--dark-text:#b4b7cf;
  --focus:#1a5fb4;--radius:6px;--radius-lg:10px;--wrap:75rem;
  --font-body:Barlow,system-ui,-apple-system,"Segoe UI",sans-serif;--font-head:Archivo,system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;font:400 1.0625rem/1.6 var(--font-body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--font-head);margin:0;line-height:1.1;color:var(--ink);text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand-dark)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:1.5rem}
.narrow{max-width:46rem}
.mono{font-family:var(--font-mono);font-size:.75rem;color:var(--brand)}
.eyebrow{font-family:var(--font-head);font-weight:700;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin:0 0 .75rem}
.skip-link{position:absolute;left:-999px;top:0}.skip-link:focus{left:1rem;top:1rem;z-index:50;background:#fff;padding:.5rem 1rem;border-radius:var(--radius)}

/* Top bar + header */
.topbar{background:var(--brand-dark);color:var(--tint);font-size:.875rem}
.topbar a{color:#fff}
.topbar__inner{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;justify-content:space-between;padding-block:.5rem}
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding-block:.75rem}
.brand{display:flex;flex-shrink:0}
.brand img{height:clamp(48px,8vw,64px);width:auto}
.nav-toggle{display:none;font:700 .9375rem var(--font-head);background:var(--ink);color:#fff;border:0;border-radius:var(--radius);padding:.7rem 1rem;cursor:pointer}
.nav{display:flex;align-items:center;gap:1.25rem;flex:1;justify-content:flex-end;min-width:0}
.nav__list{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;list-style:none;margin:0;padding:0;justify-content:center;font-family:var(--font-head);font-weight:600;font-size:.9375rem}
.nav__item{position:relative}
.nav__link,.nav__toggle-sub{font:inherit;background:none;border:0;color:var(--ink);cursor:pointer;padding:.5rem 0;display:inline-flex;align-items:center;gap:.4rem}
.nav__link:hover,.nav__toggle-sub:hover{color:var(--brand)}
.nav__toggle-sub::after{content:"";border:.3rem solid transparent;border-top-color:var(--brand);border-bottom:0}
.nav__sub{display:none;position:absolute;left:-.75rem;top:100%;min-width:16rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 16px 36px rgba(20,22,43,.1);list-style:none;margin:0;padding:.5rem;z-index:5}
.nav__toggle-sub[aria-expanded="true"]+.nav__sub,.nav__item--has-sub:hover .nav__sub,.nav__item--has-sub:focus-within .nav__sub{display:block}
.nav__sublink{display:block;padding:.55rem .75rem;border-radius:var(--radius);color:var(--ink);font-weight:600}
.nav__sublink:hover{background:var(--alt);color:var(--brand)}
[aria-current="page"]{color:var(--brand)}
.nav__cta{white-space:nowrap}
@media (max-width:60rem){
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:1rem 1.5rem 1.5rem;border-bottom:1px solid var(--line);gap:1rem;box-shadow:0 16px 24px rgba(20,22,43,.08)}
  .nav.is-open{display:flex}
  .nav__list{flex-direction:column;align-items:stretch;justify-content:flex-start}
  .nav__sub{position:static;border:0;box-shadow:none;padding:0 0 0 1rem}
  .nav__item--has-sub:hover .nav__sub{display:none}
  .nav__toggle-sub[aria-expanded="true"]+.nav__sub{display:block}
  .nav__cta{text-align:center}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.95rem 1.6rem;border-radius:var(--radius);font:700 1.0625rem var(--font-head);border:2px solid transparent;cursor:pointer;text-align:center}
.btn--primary{background:var(--brand);color:#fff}.btn--primary:hover{background:var(--brand-dark);color:#fff}
.btn--light{background:#fff;color:var(--brand-dark)}.btn--light:hover{background:var(--tint);color:var(--brand-dark)}
.btn--outline-light{border-color:#fff;color:#fff}.btn--outline-light:hover{background:#fff;color:var(--brand-dark)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}

/* Hero (home) */
.hero{position:relative;color:#fff;background:var(--brand-dark);overflow:hidden}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:75% center}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,15,48,.92) 0%,rgba(12,15,48,.8) 38%,rgba(12,15,48,.45) 68%,rgba(12,15,48,.25) 100%),linear-gradient(0deg,rgba(12,15,48,.35),rgba(12,15,48,0) 40%)}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(5rem,12vw,9.5rem) clamp(5.5rem,13vw,10rem);display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}
.hero .eyebrow{color:#c8ccef;margin:0}
.hero h1{color:#fff;font-weight:900;font-size:clamp(2.4rem,5.2vw,4.25rem);letter-spacing:-.02em;line-height:1.04;max-width:51rem}
.hero__lead{font-size:1.3125rem;line-height:1.55;color:#e1e4f7;max-width:37.5rem;margin:0}
.hero .btn-row{margin-top:.5rem}
.badges{display:flex;align-items:center;gap:1.75rem;flex-wrap:wrap}
.badges img{height:3rem;width:auto;max-width:100%}
.badges--hero img{height:3.25rem}
.badges--trust img{height:2.9rem}
.badges--trust{gap:2rem}
.badges__text{font:700 1.125rem var(--font-head);color:var(--ink)}
.badges--hero{margin-top:.5rem}

/* Page hero (inner pages) */
.page-hero{position:relative;background:var(--brand-dark);color:#fff;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,24,80,.94) 0%,rgba(20,24,80,.8) 45%,rgba(20,24,80,.35) 100%)}
.page-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero .wrap{position:relative;z-index:2;padding-block:clamp(3rem,7vw,5.5rem);display:grid;gap:2.5rem;grid-template-columns:1.15fr .85fr;align-items:center}
.page-hero--plain .wrap{grid-template-columns:1fr}
.page-hero h1{color:#fff;font-weight:900;font-size:clamp(2.1rem,4.4vw,3.5rem);letter-spacing:-.015em;line-height:1.06;margin-bottom:1rem}
.page-hero p{color:#e1e4f7;font-size:1.1875rem;line-height:1.55}
.page-hero .eyebrow{color:#c8ccef}
.page-hero__img{border-radius:var(--radius-lg);aspect-ratio:5/4;object-fit:cover;width:100%;box-shadow:0 24px 60px rgba(10,14,60,.3)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0 0 1.25rem;font-size:.9375rem;color:#c8ccef}
.breadcrumbs li+li::before{content:"/";margin-right:.4rem}
.breadcrumbs a{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media (max-width:56rem){.page-hero .wrap{grid-template-columns:1fr}.page-hero__img{aspect-ratio:16/9}}

/* Trust bar */
.trust-bar{background:var(--dark);color:#fff;border-top:1px solid var(--dark-line)}
.trust-bar__grid{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.trust-bar__item{padding:2.75rem 2rem 3rem;border-right:1px solid var(--dark-line);display:flex;flex-direction:column;gap:.875rem}
.trust-bar__item:last-child{border-right:0}
.trust-bar__rule{width:2rem;height:4px;background:var(--brand-light)}
.trust-bar__item h2{color:#fff;font-weight:800;font-size:1.0625rem;letter-spacing:.14em;text-transform:uppercase}
.trust-bar__item p{margin:0;font-size:1rem;line-height:1.6;color:var(--dark-text)}

/* Sections */
.section{padding-block:clamp(4rem,9vw,6rem)}
.section--alt{background:var(--alt)}
.section--paper{background:var(--paper)}
.section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:3rem}
.section__head h2,.section h2{font-weight:800;font-size:clamp(2rem,3.6vw,2.875rem);letter-spacing:-.015em;line-height:1.08}
.section__head .eyebrow{margin-bottom:.75rem}
.link-arrow{font:700 1rem var(--font-head)}
.prose p{color:var(--body);font-size:1.125rem;line-height:1.7}
.prose a{text-decoration:underline;text-underline-offset:3px}

/* Service cards */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16.25rem),1fr));gap:1.25rem}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;color:var(--ink);transition:transform .2s,box-shadow .2s}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(20,22,43,.08);color:var(--ink)}
.svc-card__img{aspect-ratio:4/3;width:100%;object-fit:cover;background:#e2e5f2}
.svc-card__body{padding:1.5rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.svc-card h3{font-weight:800;font-size:1.375rem}
.svc-card p{margin:0;font-size:1rem;line-height:1.55;color:var(--body)}

/* "What's included" feature grid */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1.25rem;list-style:none;margin:0;padding:0}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.75rem;display:flex;flex-direction:column;gap:.6rem}
.feature h3{font-weight:800;font-size:1.25rem}
.feature p{margin:0;color:var(--body);font-size:1rem;line-height:1.55}

/* Steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:2rem}
.step{display:flex;gap:1rem;align-items:flex-start}
.step__n{flex:none;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--brand);color:#fff;font:800 1.25rem var(--font-head);display:grid;place-items:center}
.step h3{font-weight:800;font-size:1.25rem;margin-bottom:.4rem}
.step p{margin:0;color:var(--body);font-size:1rem;line-height:1.55}

/* Reviews */
.review-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}
.review-grid--1{grid-template-columns:minmax(0,46rem)}
.review-grid--list{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.review-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.75rem;display:flex;flex-direction:column;gap:.75rem}
.review-card__head{display:flex;gap:.875rem;align-items:center}
.review-card__initial{flex:none;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--brand);color:#fff;font:800 1.125rem var(--font-head);display:grid;place-items:center}
.review-card__name{margin:0;font:700 1.0625rem var(--font-head);line-height:1.25}
.review-card__city{display:block;font:500 .875rem var(--font-body);color:var(--muted)}
.review-card__src{margin:0;font-size:.875rem;color:var(--muted)}
.review-card__stars{margin:0;color:#e0a100;letter-spacing:.15em;font-size:1.125rem}
.review-card blockquote{margin:0}
.review-card blockquote p{font-size:1rem;line-height:1.65;color:var(--body);margin:0 0 .75em}
.review-card blockquote p:last-child{margin-bottom:0}

/* Other services */
.other-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.25rem}
.other-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;color:var(--ink);transition:box-shadow .2s}
.other-card:hover{box-shadow:0 12px 28px rgba(20,22,43,.08);color:var(--brand)}
.other-card__img{aspect-ratio:16/9;width:100%;object-fit:cover}
.other-card__label{display:block;padding:1rem 1.25rem;font:800 1.125rem var(--font-head)}

/* CTA band */
.cta-band{background:var(--brand);color:#fff}
.cta-band__inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;padding-block:clamp(3rem,6vw,4.5rem)}
.cta-band h2{color:#fff;font-weight:800;font-size:clamp(1.75rem,3.2vw,2.5rem);margin-bottom:.5rem}
.cta-band p{margin:0;color:#e1e4f7;font-size:1.125rem}
.cta-band__actions{display:flex;gap:.75rem;flex-wrap:wrap}

/* About / contact / area layouts */
.split{display:grid;gap:3rem;grid-template-columns:.9fr 1.1fr;align-items:start}
.split--contact{grid-template-columns:1.1fr .9fr}
@media (max-width:56rem){.split,.split--contact{grid-template-columns:1fr}}
.portrait{border-radius:var(--radius-lg);width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%}
.facts{display:grid;gap:.5rem;margin:1.25rem 0 0;padding:1.25rem 1.5rem;background:var(--alt);border-radius:var(--radius-lg)}
.facts div{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:600}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.contact-list li{display:grid;gap:.15rem}
.contact-list strong{font:700 .8125rem var(--font-head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.contact-list a{font-weight:600}
.area-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13.5rem),1fr));gap:1rem}
.area-grid li{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.2rem}
.area-grid strong{font:800 1.1875rem var(--font-head)}
.area-grid span{font-size:.9375rem;color:var(--muted)}
.family-photo{margin:0}

/* Forms */
.lead-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.5rem,4vw,2.25rem);box-shadow:0 8px 24px rgba(20,22,43,.06)}
.lead-form__title{font-weight:800;font-size:1.75rem;margin-bottom:.5rem}
.lead-form__intro{color:var(--body)}
.lead-form__grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
.field--wide{grid-column:1/-1}
@media (max-width:40rem){.lead-form__grid{grid-template-columns:1fr}}
.field label{display:block;font-weight:600;font-size:.875rem;margin-bottom:.35rem}
.req{font-weight:400;color:var(--muted);font-size:.85em}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;padding:.8rem .85rem;border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;color:var(--ink)}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brand);border-color:var(--brand)}
[aria-invalid="true"]{border-color:#b3261e!important;box-shadow:0 0 0 1px #b3261e}
.lead-form__alert{background:#fdecea;color:#7a1c16;padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem}
.lead-form__privacy{font-size:.875rem;color:var(--muted);margin:1rem 0}
.lead-form__submit{width:100%;font-size:1.0625rem;padding:1rem}
.lead-form__submit[disabled]{opacity:.7;cursor:wait}
.hp-field{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

/* Footer */
.site-footer{background:var(--dark);color:var(--dark-text);padding-block:3.5rem 1.5rem}
.site-footer a{color:#fff}
.site-footer a:hover{color:var(--tint)}
.footer__grid{display:grid;gap:2.5rem;grid-template-columns:1.4fr 1fr 1fr 1.2fr}
@media (max-width:56rem){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:34rem){.footer__grid{grid-template-columns:1fr}}
.footer__brand img{background:#fff;border-radius:var(--radius);padding:.35rem .5rem;height:56px;width:auto;margin-bottom:1rem}
.footer__lic{font-weight:600;color:#fff}
.footer__heading{font:800 .8125rem var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:1rem}
.footer__col ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.footer__bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--dark-line);font-size:.875rem}
.footer__bottom p{margin:0}

/* Misc */
.toc,.sources{display:none}
.center{text-align:center}
.stack>*+*{margin-top:1.25rem}

/* Reveal (opt-in from layout, off when reduced motion) */
.js-reveal [data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.js-reveal [data-reveal].is-in{opacity:1;transform:none}

/* Links inside running text must not rely on colour alone (WCAG 1.4.1) */
.topbar a,.site-footer p a,.site-footer li a,.footer__bottom a,.review-card__src a,.contact-list a,.prose p a,.narrow p a{text-decoration:underline;text-underline-offset:3px}
.page-hero [aria-current="page"],.page-hero .breadcrumbs li:last-child{color:#fff}
