:root{
	--red:#d92626; --red-dark:#a81c1c; --black:#161616; --gray:#4a4a4a; --light:#f6f6f6; --white:#fff;
	--font-head:'Barlow Condensed',sans-serif; --font-body:'Inter',sans-serif;
}
*{box-sizing:border-box;}
svg{width:20px;height:20px;flex-shrink:0;}
body{margin:0;font-family:var(--font-body);color:var(--black);line-height:1.65;overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.15;margin:0 0 .5em;}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px;}
.eyebrow{display:inline-block;color:var(--red);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;margin-bottom:.6em;}
.eyebrow.center{display:block;text-align:center;}

/* Top bar */
.top-bar{background:var(--black);color:#ccc;font-size:.82rem;}
.top-bar-inner{display:flex;justify-content:space-between;align-items:center;padding:6px 20px;flex-wrap:wrap;gap:6px;}
.top-bar-phone{color:var(--red);font-weight:600;}

/* Header — fixed logo/menu overflow bug from earlier project: logo never
   wraps, nav collapses to hamburger below a hard breakpoint instead of
   squeezing beside the logo. */
.site-header{background:var(--white);border-bottom:3px solid var(--red);position:sticky;top:0;z-index:999;}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:16px;}
.site-logo{flex-shrink:0;white-space:nowrap;max-width:220px;}
.logo-text{font-family:var(--font-head);font-weight:800;font-size:1.4rem;}
.primary-nav{flex:1;display:flex;justify-content:center;min-width:0;}
.nav-menu{list-style:none;display:flex;gap:22px;margin:0;padding:0;position:relative;}
.nav-menu li{position:relative;}
.nav-menu>li>a{font-weight:600;font-size:.95rem;padding:8px 0;display:block;}
.nav-menu li:hover>a{color:var(--red);}
.nav-menu .sub-menu{display:none;position:absolute;top:100%;left:0;background:var(--white);box-shadow:0 12px 30px rgba(0,0,0,.12);min-width:280px;padding:10px 0;list-style:none;margin:0;border-radius:4px;max-height:70vh;overflow-y:auto;}
.nav-menu li:hover>.sub-menu{display:block;}
.nav-menu .sub-menu a{padding:8px 20px;display:block;font-weight:500;}
.nav-menu .sub-menu a:hover{background:var(--light);color:var(--red);}
.header-cta{flex-shrink:0;white-space:nowrap;}
.mobile-menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;flex-shrink:0;}
.mobile-menu-toggle span{width:26px;height:3px;background:var(--black);border-radius:2px;}
.mobile-menu{display:none;background:var(--white);border-top:1px solid #eee;padding:16px 20px;}
.mobile-menu.open{display:block;}
.mobile-nav-menu{list-style:none;margin:0;padding:0;}
.mobile-nav-menu li{border-bottom:1px solid #eee;}
.mobile-nav-menu a{display:block;padding:12px 0;font-weight:600;}
.mobile-nav-menu .sub-menu{list-style:none;padding-left:14px;margin:0;}

@media(max-width:900px){
	.primary-nav,.header-cta{display:none;}
	.mobile-menu-toggle{display:flex;}
}

/* Buttons */
.btn-cta{background:var(--red);color:var(--white)!important;padding:12px 22px;border-radius:6px;font-weight:700;display:inline-block;transition:transform .2s,background .2s;}
.btn-cta:hover{background:var(--red-dark);transform:translateY(-2px);}
.btn-cta-lg{padding:16px 32px;font-size:1.05rem;}
.btn-outline{border:2px solid var(--black);color:var(--black)!important;padding:11px 22px;border-radius:6px;font-weight:700;display:inline-block;transition:.2s;}
.btn-outline:hover{background:var(--black);color:var(--white)!important;}

/* Hero (home) */
.hero-home{background:linear-gradient(135deg,var(--black),#2a2a2a);color:var(--white);padding:100px 20px;text-align:center;}
.hero-home-inner{max-width:820px;margin:0 auto;}
.hero-home h1{font-size:clamp(2.2rem,5vw,3.6rem);color:var(--white);}
.hero-home .lead{color:#ddd;font-size:1.15rem;max-width:640px;margin:0 auto 30px;}
.hero-cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Generic page hero */
.page-hero{background:var(--black);color:var(--white);padding:70px 20px;text-align:center;}
.page-hero h1{color:var(--white);font-size:clamp(1.8rem,4vw,2.8rem);}
.page-hero .lead{color:#ccc;}

/* Stats bar */
.stats-bar{display:flex;justify-content:center;gap:50px;flex-wrap:wrap;background:var(--red);color:var(--white);padding:36px 20px;text-align:center;}
.stat-num{display:block;font-family:var(--font-head);font-size:2.2rem;font-weight:800;}
.stat-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;}

/* Grids */
.services-grid,.solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:30px 0;}
.service-card,.solution-card{background:var(--light);border-left:4px solid var(--red);padding:22px;border-radius:6px;transition:transform .2s,box-shadow .2s;}
.service-card:hover,.solution-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.1);}
.card-link{color:var(--red);font-weight:600;font-size:.9rem;}
.view-all{margin-top:10px;}

/* Home sections */
.home-services,.home-solutions,.home-reviews{padding:70px 20px;max-width:1180px;margin:0 auto;}
.home-services h2,.home-solutions h2,.home-reviews h2{text-align:center;font-size:2.2rem;}
.section-sub{text-align:center;color:var(--gray);margin-top:-6px;}

/* Brands slider */
.brands-slider{background:var(--black);color:var(--white);padding:50px 0;overflow:hidden;}
.brands-track{display:flex;gap:40px;animation:scrollBrands 25s linear infinite;white-space:nowrap;}
.brand-pill{font-family:var(--font-head);font-size:1.3rem;font-weight:700;letter-spacing:.03em;opacity:.85;}
@keyframes scrollBrands{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* Areas grid */
.areas-grid-section{padding:70px 20px;text-align:center;max-width:1000px;margin:0 auto;}
.areas-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:24px 0;}
.area-pill{background:var(--light);padding:9px 16px;border-radius:30px;font-weight:600;font-size:.9rem;border:1px solid #e2e2e2;transition:.2s;}
.area-pill:hover{background:var(--red);color:var(--white)!important;border-color:var(--red);}
.interstates-note{color:var(--gray);font-size:.9rem;}

/* Reviews */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:24px;}
.review-card{background:var(--light);padding:22px;border-radius:8px;}
.stars{color:#f5a623;font-size:1.1rem;margin-bottom:6px;}
.review-author{display:block;margin-top:10px;font-weight:600;font-size:.85rem;color:var(--gray);}

/* CTA band */
.cta-band{background:linear-gradient(135deg,var(--red),var(--red-dark));color:var(--white);text-align:center;padding:70px 20px;}
.cta-band h2{color:var(--white);font-size:2rem;}

/* Content pages */
.content-page{padding:60px 0;}
.entry-content h2{font-size:1.8rem;margin-top:1.4em;}
.entry-content ul{padding-left:1.2em;}
.entry-content .cta-block{background:var(--light);border-left:4px solid var(--red);padding:26px;border-radius:8px;margin:2em 0;text-align:center;}
.page-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:30px;}
.page-gallery img{border-radius:8px;aspect-ratio:4/3;object-fit:cover;}

/* Solution page hero (inside content) */
.solution-hero{background:var(--black);color:var(--white);padding:60px 30px;border-radius:10px;text-align:center;margin-bottom:20px;}
.solution-hero h1{color:var(--white);font-size:clamp(1.8rem,4vw,2.6rem);}
.solution-hero .lead{color:#ccc;margin-bottom:20px;}
.stats-row{display:flex;gap:30px;flex-wrap:wrap;justify-content:center;background:var(--light);padding:26px;border-radius:8px;}
.stats-row .stat-num{color:var(--red);}
.stats-row .stat-label{color:var(--gray);}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr;}}
.legget-contact-form{display:flex;flex-direction:column;gap:14px;background:var(--light);padding:24px;border-radius:8px;}
.legget-contact-form label{font-weight:600;font-size:.9rem;display:flex;flex-direction:column;gap:6px;}
.legget-contact-form input,.legget-contact-form select,.legget-contact-form textarea{padding:10px;border:1px solid #ccc;border-radius:6px;font-family:var(--font-body);}
.hp-field{position:absolute;left:-9999px;}
.form-success{background:#e6f7ea;border:1px solid #b3e6c0;padding:16px;border-radius:6px;}
.form-error{background:#fdeaea;border:1px solid #f3b3b3;padding:16px;border-radius:6px;}

/* Footer */
.site-footer{background:var(--black);color:#ccc;padding:60px 0 0;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.3fr;gap:30px;}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.footer-col h4{color:var(--white);font-size:1rem;margin-bottom:14px;}
.footer-col ul{list-style:none;margin:0;padding:0;}
.footer-col li{margin-bottom:8px;}
.footer-col a{color:#bbb;}
.footer-col a:hover{color:var(--red);}
.footer-phone{color:var(--red)!important;font-weight:700;font-size:1.1rem;display:inline-block;margin-top:10px;}
.footer-bottom{display:flex;justify-content:space-between;padding:20px;border-top:1px solid #333;margin-top:40px;font-size:.8rem;flex-wrap:wrap;gap:8px;}

/* Trust bar (red strip under header) */
.trust-bar{background:var(--red);color:var(--white);}
.trust-bar-inner{display:flex;justify-content:center;gap:36px;flex-wrap:wrap;padding:8px 20px;font-size:.82rem;font-weight:600;}
@media(max-width:600px){.trust-bar-inner{gap:16px;justify-content:space-between;}}

/* Phone-forward CTA button */
.btn-phone{display:inline-flex;align-items:center;gap:8px;}

/* Icon feature grid */
.icon-features{padding:70px 20px;background:var(--light);}
.icon-features h2.center,.section-sub.center{text-align:center;}
.icon-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:36px;}
.icon-feature-card{background:var(--white);border-radius:10px;padding:28px;text-align:left;box-shadow:0 4px 16px rgba(0,0,0,.05);transition:transform .2s,box-shadow .2s;}
.icon-feature-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.09);}
.icon-feature-icon{font-size:2rem;margin-bottom:12px;}
.icon-feature-card h3{font-size:1.15rem;margin-bottom:.4em;}
.icon-feature-card p{color:var(--gray);font-size:.92rem;margin:0;}

/* Numbered process steps */
.process-steps-section{padding:70px 20px;}
.process-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:36px;}
.process-step{background:var(--light);border-radius:10px;padding:26px;position:relative;border-top:4px solid var(--red);}
.process-num{display:block;font-family:var(--font-head);font-size:2.4rem;font-weight:800;color:var(--red);opacity:.85;}
.process-step h3{margin-top:6px;font-size:1.05rem;}
.process-step p{color:var(--gray);font-size:.9rem;margin:0;}

/* FAQ accordion */
.faq-section{padding:70px 20px;background:var(--light);}
.faq-accordion{max-width:800px;margin:36px auto 0;display:flex;flex-direction:column;gap:10px;}
.faq-item{background:var(--white);border-radius:8px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.04);}
.faq-question{width:100%;text-align:left;background:none;border:0;padding:18px 22px;font-family:var(--font-body);font-weight:700;font-size:1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--black);}
.faq-question:hover{color:var(--red);}
.faq-chevron{transition:transform .25s;font-size:1.3rem;color:var(--red);}
.faq-item.open .faq-chevron{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 22px;}
.faq-item.open .faq-answer{max-height:400px;padding-bottom:18px;}
.faq-answer p{margin:0;color:var(--gray);}

/* Testimonial carousel */
.testimonial-carousel{position:relative;max-width:1000px;margin:36px auto 0;display:flex;align-items:center;gap:14px;}
.carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:6px;}
.carousel-track::-webkit-scrollbar{height:6px;}
.carousel-track::-webkit-scrollbar-thumb{background:#ddd;border-radius:4px;}
.carousel-track .review-card{flex:0 0 300px;scroll-snap-align:start;}
.carousel-arrow{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:1px solid #ddd;background:var(--white);font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;}
.carousel-arrow:hover{background:var(--red);color:var(--white);border-color:var(--red);}

/* ============ Reference-design components ============ */

.center{text-align:center;}
h2.light{color:var(--white);}
.section-head{text-align:center;max-width:720px;margin:0 auto 40px;}
.section-head h2{font-size:2rem;}
.lead-para{font-size:1.1rem;color:var(--gray);max-width:820px;margin:0 auto 40px;}

/* Trust badges under hero CTA */
.trust-badges{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;margin-top:22px;font-size:.82rem;color:#ccc;}
.trust-badges.light{color:#ddd;}
.trust-badges span{display:inline-flex;align-items:center;gap:6px;}
.trust-badges svg{width:16px;height:16px;color:var(--red);}
.page-hero-inner{text-align:center;max-width:760px;margin:0 auto;}
.page-hero .btn-cta svg{width:18px;height:18px;vertical-align:-3px;margin-right:4px;}

/* Icon library sizing */
.why-icon svg,.dark-icon svg{width:30px;height:30px;}

/* Why-choose icon card grid */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin:30px auto;max-width:1100px;}
.why-card{background:var(--white);border:1px solid #eee;border-radius:10px;padding:28px 24px;box-shadow:0 4px 18px rgba(0,0,0,.04);transition:transform .2s,box-shadow .2s;}
.why-card:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(0,0,0,.08);}
.why-icon{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;background:#fdeaea;color:var(--red);border-radius:10px;margin-bottom:14px;}
.why-card h3{font-size:1.15rem;margin-bottom:.4em;}
.why-card p{color:var(--gray);font-size:.92rem;margin:0;}

/* Numbered steps */
.steps-section{padding:70px 20px;max-width:1180px;margin:0 auto;}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:36px;}
.step-card{background:var(--light);border-radius:10px;padding:26px 22px;position:relative;}
.step-num{font-family:var(--font-head);font-size:2.4rem;font-weight:800;color:var(--red);opacity:.35;display:block;margin-bottom:8px;}
.step-card h3{font-size:1.1rem;margin-bottom:.3em;}
.step-card p{color:var(--gray);font-size:.9rem;margin:0;}

/* Dark feature band */
.dark-features{background:linear-gradient(135deg,var(--black),#242424);color:var(--white);padding:70px 20px;border-radius:12px;margin:40px 0;}
.dark-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;max-width:1100px;margin:0 auto;}
.dark-card{background:rgba(255,255,255,.06);border-radius:10px;padding:24px;}
.dark-icon{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;background:rgba(217,38,38,.25);color:#ff6b6b;border-radius:10px;margin-bottom:12px;}
.dark-card h3{color:var(--white);font-size:1.05rem;margin-bottom:.3em;}
.dark-card p{color:#bbb;font-size:.88rem;margin:0;}

/* Services icon grid (used on area/solution pages + home) */
.services-icon-section{padding:70px 20px;max-width:1180px;margin:0 auto;}
.services-icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:30px;}
.service-icon-card{background:var(--white);border:1px solid #eee;border-radius:10px;padding:26px;transition:.2s;}
.service-icon-card:hover{box-shadow:0 12px 26px rgba(0,0,0,.08);transform:translateY(-4px);}
.service-icon-card h3{font-size:1.1rem;margin-bottom:.3em;}
.service-icon-card p{color:var(--gray);font-size:.88rem;margin-bottom:14px;}
.btn-sm{padding:8px 16px;font-size:.85rem;display:inline-flex;align-items:center;gap:6px;}
.btn-sm svg{width:14px;height:14px;}
.btn-outline svg{color:currentColor;}

/* FAQ accordion (pure CSS, <details>/<summary>) */
.faq-section{padding:70px 20px;max-width:820px;margin:0 auto;}
.faq-list{margin-top:30px;}
.faq-item{background:var(--white);border:1px solid #eee;border-radius:8px;padding:18px 22px;margin-bottom:12px;}
.faq-item summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-toggle{color:var(--red);font-size:1.3rem;font-weight:700;flex-shrink:0;margin-left:12px;transition:transform .2s;}
.faq-item[open] .faq-toggle{transform:rotate(45deg);}
.faq-item p{margin:14px 0 0;color:var(--gray);}

/* Solution hero (inside content) polish */
.solution-hero{background:linear-gradient(135deg,var(--black),#242424);}

/* CTA button icon alignment everywhere */
.btn-cta svg{width:17px;height:17px;vertical-align:-3px;margin-right:4px;color:var(--white);}
.btn-cta-white{background:var(--white);color:var(--red)!important;}
.btn-cta-white:hover{background:#f3f3f3;}

/* Trust bar strip under header */
.trust-bar{background:var(--red);color:var(--white);font-size:.82rem;font-weight:600;}
.trust-bar-inner{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;padding:9px 20px;}
.trust-bar-inner span{display:inline-flex;align-items:center;gap:6px;}
.trust-bar-inner svg{width:15px;height:15px;}

/* Reduced motion respect */
@media(prefers-reduced-motion:reduce){.brands-track{animation:none;}}
