/* Locally hosted type keeps the visual hierarchy stable without third-party requests. */
@font-face{font-family:DM Sans;src:url('../fonts/dm-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('../fonts/dm-sans-latin-700-normal.woff2') format('woff2');font-weight:700 900;font-display:swap}
@font-face{font-family:Barlow Condensed;src:url('../fonts/barlow-condensed-latin-800-normal.woff2') format('woff2');font-weight:800;font-display:swap}
/* Shared palette and layout retain existing routes while applying the approved direction. */
:root{--red:#871313;--charcoal:#20262e;--green:#123e30;--cream:#f2eee6;--ink:#10181c;--color-primary:#871313;--color-primary-dark:#650e0e}
html{font-family:DM Sans,Arial,sans-serif;scroll-padding-top:7rem}
body{background:#fff!important;color:var(--ink);font-size:16px;line-height:1.55}
.site-wrap{max-width:1280px;margin-inline:auto;padding-inline:32px}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:#fff;padding:12px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #bf8b24;outline-offset:4px}
.emergency-strip{background:var(--cream);text-align:center;min-height:40px;padding:7px 20px;font-size:15px;font-weight:700;display:flex;gap:22px;justify-content:center;align-items:center}
.emergency-strip a{color:var(--red);font-size:20px;white-space:nowrap}
.icon{width:24px;height:24px;display:inline-block;vertical-align:middle;flex-shrink:0}
.site-header{background:#fff;position:relative;z-index:40;border-bottom:1px solid #ecebe7}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:94px}
.brand-image{width:178px;height:78px;object-fit:contain}
.desktop-nav{display:flex;gap:40px;align-items:center;font-weight:700;color:var(--green)}
.desktop-nav a:hover,.desktop-nav summary:hover{color:var(--red)}
.service-menu{position:relative}
.service-menu summary{list-style:none;cursor:pointer;min-height:48px;display:flex;align-items:center}
.service-menu ul{position:absolute;top:100%;left:-20px;min-width:250px;background:white;border:1px solid #ddd;padding:12px;box-shadow:0 8px 18px #0001}
.service-menu li a{display:block;padding:10px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--red);color:#fff;min-height:52px;padding:12px 28px;border-radius:6px;font-weight:700;border:2px solid var(--red);text-decoration:none}
.button:hover{background:#650e0e;color:#fff}
.button .icon{filter:brightness(0) invert(1);width:22px;height:22px}
.button-outline{background:#fff;color:var(--red)}
.button-outline:hover{background:#f8eeee;color:var(--red)}
.menu-open{display:none}
.mobile-menu{max-width:420px;width:calc(100% - 32px);padding:28px;border:1px solid #ddd;border-radius:8px}
.mobile-menu::backdrop{background:#102219aa}
.mobile-menu nav{display:flex;flex-direction:column;gap:6px;margin:20px 0}
.mobile-menu nav a{padding:10px 0;min-height:48px;border-bottom:1px solid #eee;font-weight:700}
.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.menu-close{padding:10px;font-weight:700;color:var(--red)}
/* Approved homepage: centered hometown hero through the green trust banner. */
.revision-hero{text-align:center;background:white}
.hero-copy{padding:16px 24px 0;position:relative;z-index:1}
.eyebrow{color:var(--green);font-size:14px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.hero-copy h1{font-size:clamp(36px,4.2vw,58px);font-weight:800;line-height:1.03;letter-spacing:-.045em;color:#082e22;margin:8px auto 10px;max-width:1060px}
.hero-copy p{font-size:20px;margin:0 auto 10px;max-width:900px}
.hero-buttons{display:flex;justify-content:center;gap:18px}
.hero-photo{display:block;width:100%;height:310px;object-fit:cover;object-position:center 54%;margin-top:0}
.trust-band{background:var(--green);color:white}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);padding-block:16px}
.trust-item{display:flex;gap:20px;align-items:center;justify-content:center;padding-inline:24px;border-right:1px solid #ffffff55}
.trust-item:last-child{border:0}
.trust-item .icon{width:48px;height:48px;filter:brightness(0) invert(1);opacity:.88}
.trust-item strong{font-size:19px;display:block}
.trust-item small{font-size:14px;display:block}
/* Approved industrial lower sections use photographs and flat columns instead of nested cards. */
.service-overview{padding-block:22px 26px}
.section-kicker{color:#5c6368;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.display-heading{font-family:Barlow Condensed,Arial,sans-serif;font-weight:800;text-transform:uppercase;line-height:1.02;letter-spacing:-.02em}
.service-overview h2{font-size:42px;margin:0 0 14px}
.service-overview h2 span,.value-band h2 span{color:var(--red)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.service-link{display:block;border-right:1px solid #ddd;padding-right:12px}
.service-link:last-child{border:0;padding-right:0}
.service-link>img{width:100%;height:115px;object-fit:cover}
.service-link .service-label{display:flex;align-items:center;justify-content:space-between;font-size:24px;padding-top:8px;gap:10px}
.service-link:hover .service-label{color:var(--red)}
.value-band{background:#f1eeeb;padding-block:24px}
.value-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);align-items:start;gap:26px}
.value-band h2{font-size:31px;margin:0}
.value-item{display:flex;align-items:flex-start;gap:16px;border-left:1px solid #ccc;padding-left:24px}
.value-item .icon{width:42px;height:42px}
.value-item h3{font-family:Barlow Condensed,Arial,sans-serif;font-size:19px;text-transform:uppercase;font-weight:800;margin:0 0 3px}
.value-item p{font-size:14px;line-height:1.35;margin:0}
/* Harmonize the retained detailed content and all service pages without changing facts or reviews. */
main>section:not(.revision-hero):not(.service-overview):not(.value-band){padding-block:64px}
main>section:not(.revision-hero) h2{font-family:Barlow Condensed,Arial,sans-serif;font-weight:800;letter-spacing:-.015em}
main>section:not(.revision-hero) h2:not(.display-heading){font-size:38px;line-height:1.1}
main .rounded-2xl,main .rounded-3xl{border-radius:8px}
main .shadow-sm,main .shadow-2xl{box-shadow:none}
main .card-hover:hover{transform:none;box-shadow:none;border-color:#bda8a0}
main blockquote{font-style:normal;font-size:16px;line-height:1.7}
main [class*='bg-gradient-']{background-image:none}
main .bg-slate-900,footer.bg-slate-950{background-color:var(--charcoal)}
main .bg-slate-50,main .bg-slate-100{background-color:#f4f2ee}
main .text-slate-600,main .text-slate-500{color:#51595d}
main .text-transparent{color:var(--red)}
main input,main select,main textarea{font-size:16px;min-height:48px}
main label{font-size:14px!important;letter-spacing:0!important;text-transform:none!important}
.subpage main>section:first-child{background:var(--cream);color:var(--green)}
.subpage main>section:first-child h1{font-size:clamp(36px,4vw,56px);line-height:1.1;letter-spacing:-.025em}
.subpage main>section:first-child .text-slate-300{color:#485c54}
.subpage main>section:first-child [class*='bg-slate-']{background:#fff;color:var(--green)}
.subpage main>section:first-child a.bg-brand-red{color:#fff}
.form-notice{padding:16px;background:#fff4dc;color:#47320b;border:1px solid #b98c33;border-radius:6px}
.form-notice a{text-decoration:underline;font-weight:700}
.mobile-cta-bar{background:var(--green)}
footer{background:var(--charcoal)!important;color:#f8fafc}
footer .text-slate-400,footer .text-slate-500,footer .text-slate-600{color:#d5dbe3}
/* Responsive layout preserves tap targets, typography, and the same content order. */
@media(max-width:1000px){.desktop-nav{gap:22px}.header-row{gap:16px}.header-estimate{padding-inline:18px}.value-grid{grid-template-columns:repeat(3,1fr)}.value-grid>h2{grid-column:1/-1}.value-item:first-of-type{border:0;padding-left:0}}
@media(max-width:760px){body{padding-bottom:90px}.site-wrap{padding-inline:20px}.emergency-strip{font-size:12px;gap:8px;flex-wrap:wrap;padding:7px 10px}.emergency-strip a{font-size:15px}.header-row{min-height:80px}.brand-image{width:150px;height:65px}.desktop-nav,.header-estimate{display:none}.menu-open{display:block;padding:12px;color:var(--green);border:1px solid #cfd7d1;border-radius:5px;font-weight:700;min-height:48px}.hero-copy{padding:30px 18px 12px}.hero-copy h1{font-size:38px}.hero-copy p{font-size:17px;line-height:1.4}.eyebrow{font-size:11px;letter-spacing:.15em}.hero-buttons{gap:10px;flex-wrap:wrap}.hero-buttons .button{padding:11px 18px;font-size:14px}.hero-photo{height:220px;object-position:35% center}.trust-grid{padding-block:0;grid-template-columns:1fr}.trust-item{justify-content:flex-start;border-right:0;border-bottom:1px solid #ffffff33;padding:13px 4px;gap:18px}.trust-item .icon{width:32px;height:32px}.trust-item strong{font-size:16px}.trust-item small{font-size:13px}.service-grid{grid-template-columns:repeat(2,1fr);gap:20px 16px}.service-overview h2{font-size:35px}.service-link>img{height:125px}.service-link{border:0;padding:0}.service-label{font-size:22px!important}.value-grid{grid-template-columns:1fr;gap:22px}.value-item{border:0;padding:0}.value-band h2{font-size:32px}.value-item h3{font-size:23px}.value-item p{font-size:16px}.value-band{padding-block:30px}.subpage main>section:first-child h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Service-page badges and breadcrumbs remain readable on the lighter hero surface. */
.subpage main>section:first-child .text-amber-200,.subpage main>section:first-child .text-amber-300,.subpage main>section:first-child .text-amber-400{color:#871313}
.subpage main>section:first-child .text-slate-400,.subpage main>section:first-child .text-slate-500{color:#46594f}
footer .flex.gap-6{flex-wrap:wrap;justify-content:center}
/* The approved mascot crop retains the cap at desktop and keeps the subject visible on phones. */
.hero-photo{object-position:center top}
@media(max-width:760px){.hero-photo{object-position:left center}}

/* Keep mascot-card copy bright and readable, overriding the pale hero styles only here. */
.subpage main>section:first-child .mascot-card{background:var(--charcoal);color:#fff}
.subpage main>section:first-child .mascot-card h3{color:#fff}
.subpage main>section:first-child .mascot-card p,
.subpage main>section:first-child .mascot-card .text-slate-400{color:#eef1f5;font-size:16px;line-height:1.65}

/* Keep card text steady while decorative bullets flash on a 1.4-second cycle. */
.card-bullet{display:inline-block;color:#ff152b;font-size:48px;line-height:1;animation:card-bullet-pulse 1.4s ease-in-out infinite!important}
@keyframes card-bullet-pulse{0%,100%{opacity:1}50%{opacity:.35}}


/* Bare vivid-red bullets keep layout spacing without a background or border. */
.card-bullet-marker{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:32px;background:none;border:0}
.warning-flash{display:inline-block;animation:card-bullet-pulse .7s ease-in-out infinite!important}
/* Scroll fades remain reversible; focused content is always fully visible. */
.scroll-fade{opacity:.18;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}
.scroll-fade.is-visible,.scroll-fade:focus-within{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.scroll-fade{opacity:1;transform:none}}

/* Neutral light text maintains strong contrast inside the charcoal information cards. */
main .bg-slate-900 .text-slate-300,main .bg-slate-900 .text-slate-400{color:#d5dbe3}
