/* The homepage keeps its supplied CSS. Only shared navigation and the agreed action strip are added. */
:root{--blue:#002e9a;--navy:#092242;--cream:#fbf7ee;--font:Inter,Arial,sans-serif;--heading:Oswald,'Arial Narrow',Arial,sans-serif}
[hidden]{display:none!important}
.review-bar{background:#061c34;color:#dce7f4;min-height:32px;font-size:11px}.review-bar .container{display:flex;gap:22px;align-items:center;min-height:32px}.review-bar button{margin-left:auto;border:0;color:white;background:none;padding:5px 0;font:600 11px var(--font)}.review-bar a{font-weight:600}.review-muted{opacity:.7}
/* Shared header: equal side columns keep the logo on the page centerline. */
.site-header{--header-logo-width:240px;position:absolute;top:32px;left:0;right:0;z-index:40;padding:20px 0;color:white}
.header-inner{width:min(1240px,calc(100% - 64px));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) var(--header-logo-width) minmax(0,1fr);align-items:center;column-gap:40px;padding-bottom:18px;border-bottom:1px solid #e1e7ee61}
.site-header nav{display:flex;align-items:center;gap:28px;font:600 16px/1.3 var(--heading);text-transform:uppercase;min-width:0}
.nav-left{justify-content:flex-start}
.header-right{position:relative;display:flex;align-items:center;justify-content:stretch;justify-self:end;min-width:0;width:max-content}
.header-right>nav{flex:1;justify-content:flex-end}
.site-header nav a{display:block;white-space:nowrap;padding:10px 0;text-align:center;text-shadow:0 1px 3px #0007}
.site-header nav a:hover,.header-contact a:hover{color:#ff9e9e}
.brand{display:block;width:240px}
.site-header .brand{width:var(--header-logo-width);justify-self:center}
.site-logo{display:block;position:relative;aspect-ratio:1433/762;overflow:hidden}
.site-logo img{position:absolute;left:-.558%;top:-22.178%;width:101.047%;max-width:none}
.header-contact{position:absolute;left:0;right:0;bottom:calc(100% + 10px);display:flex;justify-content:center;align-items:center;margin:0;font-size:16px;font-weight:800;line-height:1.3}
.header-contact a{white-space:nowrap;color:#ff5d5d;text-align:center;text-shadow:0 1px 3px #092242}
.site-header.is-sticky{--header-logo-width:150px;position:fixed;top:0;padding:9px 0;background:rgba(0,46,154,.9);box-shadow:0 3px 12px #0002}
.site-header.is-sticky .header-inner{grid-template-columns:minmax(0,1fr) var(--header-logo-width) minmax(0,1fr);padding-bottom:12px;border-bottom:0}
.site-header.is-sticky .brand{width:var(--header-logo-width)}
.site-header.is-sticky .header-contact{display:flex;font-size:14px;bottom:calc(100% + 5px)}
.site-header.is-sticky .header-contact a{color:white}
.mobile-toggle{display:none}

.design-notes{position:fixed;top:32px;left:0;right:0;z-index:80;background:#fff4d7;box-shadow:0 8px 22px #0003;padding:22px 0;border-bottom:2px solid #b98000;font-size:14px}.design-notes p{margin:8px 0 0}
.service-icon{display:block;flex:0 0 auto;width:34px;height:34px;color:#69747d}
.services__grid .service-icon{margin-bottom:14px}
.mega-heading .eyebrow{font-weight:800;letter-spacing:2px;line-height:1.6;text-transform:uppercase}
@media(min-width:1051px){#mobile-nav{display:none!important}}
@media(max-width:1150px){.site-header{--header-logo-width:195px}.header-inner{column-gap:26px}.site-header nav{gap:20px;font-size:14px}.header-contact{font-size:14px}}
@media(max-width:1050px){.header-inner{width:calc(100% - 44px)}.header-inner,.site-header.is-sticky .header-inner{display:flex;justify-content:space-between}.site-header{--header-logo-width:210px}.site-header .nav-left,.header-right{display:none}.mobile-toggle{display:block;background:transparent;color:white;border:1px solid #ffffff80;padding:10px 17px;font-weight:700;font-size:13px}.mobile-toggle span{margin-left:13px}#mobile-nav{position:absolute;top:100%;left:0;right:0;display:flex;align-items:stretch;flex-direction:column;gap:0;background:var(--navy);padding:18px 28px;max-height:65vh;overflow:auto}#mobile-nav a{padding:13px 0}.site-header.is-sticky .brand{width:150px}}
@media(max-width:800px){.review-bar .container{gap:15px}.review-muted{display:none}}
@media(max-width:560px){.header-inner{width:calc(100% - 36px)}.site-header{padding-top:18px;--header-logo-width:180px}.review-bar,.review-bar button,.review-bar a{font-size:10px}.review-bar .container{gap:13px}}
/* Shared click-to-open service mega menu. */
.service-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;flex-shrink:0}
.site-header nav .service-menu-toggle{position:absolute;top:100%;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;width:44px;height:32px;border:0;padding:6px;background:none;color:inherit;cursor:pointer}
.service-menu-toggle svg{flex-shrink:0;transition:transform .2s ease}
.service-menu-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.site-header nav .service-menu-toggle:is(:hover,:focus-visible){background:#ffffff18;color:white}
.site-header.mega-open{background:#092242}
.mega-panel{position:absolute;top:100%;left:0;right:0;background-color:var(--blue);background-image:linear-gradient(#ffffff0e 1px,transparent 1px),linear-gradient(90deg,#ffffff0e 1px,transparent 1px);background-size:24px 24px;color:white;box-shadow:0 18px 32px #061b3140;border-top:1px solid #ffffff30;max-height:calc(100dvh - 175px);overflow:auto;overscroll-behavior:contain}
.mega-panel>.container{padding-block:24px 28px}
.mega-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid #ffffff40;padding-bottom:20px;margin-bottom:18px}
.mega-heading .eyebrow{color:#dbe5f8;margin:0 0 5px;font-size:11px}
.mega-overview{font:600 23px/1.4 var(--heading);text-decoration:underline;text-underline-offset:5px}
.mega-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid #ffffff65;background:transparent;color:white;font:300 34px/1 var(--font)}
.site-header .mega-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 22px;font:500 14px/1.45 var(--font);text-transform:none}
.site-header .mega-links a{display:flex;align-items:center;gap:12px;padding:12px 9px;text-align:left;white-space:normal;text-shadow:none;transition:background .2s ease,transform .2s ease;min-height:54px;border:1px solid transparent}
.mega-links .service-icon{width:28px;height:28px;color:#d9e4fa}
.mega-link-arrow{margin-left:auto;opacity:.6;font-size:17px}
.site-header .mega-links a:is(:hover,:focus-visible){background:#ffffff18;border-color:#ffffff30;color:white;transform:translateX(4px)}
.mega-back{display:none}
.site-header.is-sticky .mega-panel{max-height:calc(100dvh - 110px)}
/* Three icon actions immediately below each banner. */
.banner-actions{background:#fffefa;border-bottom:1px solid #dfe3e8;color:#485464;font-family:var(--font)}
.banner-actions>.container,.home-content .banner-actions>.container{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding-block:0}
.banner-actions a{display:flex;align-items:center;gap:18px;min-height:105px;padding:24px 28px;border-right:1px solid #e1e5e9;font:500 15px/1.45 var(--font);transition:background .2s ease,color .2s ease}
.banner-actions a:first-child{border-left:1px solid #e1e5e9}
.banner-actions img{width:30px;height:30px;flex-shrink:0;transition:transform .2s ease}
.banner-action-arrow{margin-left:auto;color:#697b91;transition:transform .2s ease}
.banner-actions a:is(:hover,:focus-visible){background:#edf2fa;color:var(--blue)}
.banner-actions a:is(:hover,:focus-visible) img{transform:translateY(-3px)}
.banner-actions a:is(:hover,:focus-visible) .banner-action-arrow{transform:translate(3px,-3px)}
#estimate-form{scroll-margin-top:135px}
@media(max-width:1150px){.site-header .mega-links{gap:8px 14px}}
@media(max-width:1050px){#mobile-nav .service-nav-item{align-self:flex-start;margin-bottom:38px}.site-header #mobile-nav .service-menu-toggle{width:44px;height:44px;padding:10px;justify-content:center}.mega-panel{max-height:calc(100dvh - 160px)}.site-header .mega-links{grid-template-columns:repeat(3,minmax(0,1fr))}.mega-back{display:block;margin-top:20px;padding:10px 0;color:white;background:none;border:0;font:500 14px var(--font);text-decoration:underline;text-underline-offset:4px}.banner-actions a{padding:22px 18px;gap:12px;font-size:14px}}
@media(max-width:650px){.site-header .mega-links{grid-template-columns:repeat(2,minmax(0,1fr));font-size:13px;gap:5px 10px}.mega-panel>.container{padding-block:18px}.mega-heading{gap:15px;padding-bottom:16px}.mega-overview{font-size:20px}.mega-links .service-icon{width:25px;height:25px}.site-header .mega-links a{gap:9px;padding:11px 4px}.mega-link-arrow{display:none}.banner-actions a{padding:18px 10px;gap:8px;min-height:95px;font-size:12px;flex-direction:column;text-align:center}.banner-actions img{width:26px;height:26px}.banner-action-arrow{display:none}.banner-actions>.container,.home-content .banner-actions>.container{width:100%}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Match the approved interior H3 accent in the homepage service panel. */
.home-page #services .service-item h3{color:#003ECC}
/* Follow the supplied homepage body's gutters at every breakpoint. */
.home-page .header-inner{width:min(1240px,calc(100% - 48px))}
@media(max-width:520px){.home-page .header-inner{width:calc(100% - 36px)}}
/* Balanced link spacing brings both groups closer to the centered logo. */
.site-header .nav-left,.site-header .header-right>nav{gap:28px}
@media(min-width:1280px){.site-header .nav-left,.site-header .header-right>nav{gap:40px}}
@media(min-width:1051px){.nav-left>a,.service-parent-link,.header-right>nav>a{letter-spacing:.2px}}
@media(min-width:1051px) and (max-width:1150px){.site-header .nav-left,.site-header .header-right>nav{gap:20px}}
/* Preserve the two authored headline lines without edge-to-edge overflow. */
.home-page .hero__content{width:min(1240px,calc(100% - 48px))}
.home-page .hero h1{max-width:100%;font-size:clamp(14px,4.3vw,64px);line-height:1.15}
.home-page .hero h1 span{display:block;white-space:nowrap}
@media(max-width:520px){.home-page .hero__content{width:calc(100% - 36px)}}
/* Existing customer quotes get a clear hierarchy and warm gold rating stars. */
.home-page .testimonials{min-height:0;padding:88px 0 96px;background:#f3f5f7;border-block:1px solid #e2e6eb}
.home-page .testimonials__inner{width:min(1240px,calc(100% - 48px))}
.home-page .testimonials__eyebrow{margin:0 0 12px;color:#647181;font:700 11px/1.5 Inter,Arial,sans-serif;letter-spacing:2px;text-transform:uppercase}
.home-page .testimonials h2{color:#111111;margin:0 0 14px}
.home-page .testimonials__intro{margin:0 0 36px;color:#59626e;font-size:16px;line-height:1.7}
.home-page .testimonials__grid{width:100%;gap:24px;align-items:stretch}
.home-page .testimonial-card{position:relative;display:flex;flex-direction:column;padding:30px 28px 26px;background:#fff;border:1px solid #dce2e9;border-top:3px solid #092242;border-radius:3px;box-shadow:0 7px 22px #09224208;transition:transform .2s ease,box-shadow .2s ease}
.home-page .testimonial-card__stars{display:inline-flex;align-self:flex-start;margin:0 0 18px;padding:8px 10px;background:#fff6df;border:1px solid #eed8a6;border-radius:3px;color:#b7790c;font-size:23px;line-height:1;letter-spacing:2px;white-space:nowrap}
.home-page .testimonial-card__topic{margin:0 0 18px;color:#092242;font:700 18px/1.4 Inter,Arial,sans-serif}
.home-page .testimonial-card blockquote{display:flex;flex-direction:column;flex:1;margin:0}
.home-page .testimonial-card blockquote p{margin:0 0 28px;color:#424b56;font-size:15px;font-style:normal;line-height:1.8}
.home-page .testimonial-card__author{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:20px;border-top:1px solid #e7eaee}
.home-page .testimonial-card__initials{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#edf1f6;color:#092242;font:700 12px/1 Inter,Arial,sans-serif;letter-spacing:.6px}
.home-page .testimonial-card cite{color:#092242;font:700 14px/1.4 Inter,Arial,sans-serif}
@media(hover:hover){.home-page .testimonial-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #09224212}}
@media(max-width:1050px) and (min-width:801px){.home-page .testimonials__grid{gap:16px}.home-page .testimonial-card{padding:24px 20px}.home-page .testimonial-card__topic{font-size:17px}}
@media(max-width:800px){.home-page .testimonials{padding:64px 0 72px}.home-page .testimonials__grid{grid-template-columns:1fr;gap:22px}.home-page .testimonial-card{padding:28px}.home-page .testimonials__intro{margin-bottom:28px}}
@media(max-width:520px){.home-page .testimonials__inner{width:calc(100% - 36px)}.home-page .testimonial-card{padding:25px 23px}}
@media(prefers-reduced-motion:reduce){.home-page .testimonial-card:hover{transform:none}}
/* Full poster artwork: landscape on desktop, portrait on tablets and phones. */
.home-page .promo-flyer__picture{display:block;width:min(100%,1672px)}
.home-page .promo-flyer .promo-flyer__picture img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
/* A readable phone headline takes priority over forcing long desktop lines to fit. */
@media(max-width:800px){
 .home-page .hero h1{font-size:clamp(30px,6.8vw,48px);line-height:1.12}
 .home-page .hero h1 span{white-space:normal;text-wrap:balance}
 .home-page .hero h1 span+span{margin-top:12px}
 .home-page .hero__intro{font-size:17px;line-height:1.55}
}
/* Original full-color badges flank the homepage contact button. */
.home-page .hero__actions{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:32px;width:100%;margin-inline:auto}
.home-page .hero__badge{display:block;justify-self:center;width:clamp(150px,16vw,220px);height:220px;object-fit:contain;filter:none;opacity:1;visibility:visible}
.home-page .hero__badge--discount img{display:block;width:100%;height:100%;object-fit:contain;filter:none;opacity:1;visibility:visible}
.home-page .hero__contact-offers>.button{align-self:start;margin:0}
@media(max-width:800px){
 .home-page .hero__actions{grid-template-columns:minmax(0,1fr) minmax(110px,1.3fr) minmax(0,1fr);gap:12px}
 .home-page .hero__badge{width:100%;max-width:140px;height:140px}
 .home-page .hero__contact-offers>.button{min-width:0;width:100%;min-height:52px;padding:12px 8px;font-size:clamp(12px,2.5vw,18px)}
}
@media(max-width:420px){.home-page .hero__badge{height:104px}.home-page .hero__actions{gap:8px}}

/* Keep the senior ribbon separate from the inclusive 20% badge. */
.home-page .hero__contact-offers{display:flex;flex-direction:column;align-items:center;gap:44px;min-width:0;width:300px;max-width:100%}
.home-page .hero__contact-offers>.button{width:100%;min-width:0}
.home-page .hero__senior-ribbon{display:block;width:100%;max-width:280px;line-height:0}
.home-page .hero__senior-ribbon img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:800px){.home-page .hero__contact-offers{width:100%;gap:28px}.home-page .hero__senior-ribbon{width:100%}}
