/* Shared readability, responsive navigation and photo updates. */
:root{--muted:#545d65}
html{scroll-padding-top:140px}
body{font-size:16px;line-height:1.65}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #177cb5;outline-offset:4px}
section[id]{scroll-margin-top:140px}
p{max-width:75ch}
h1,h2,h3{text-wrap:balance}
h2,h3{line-height:1.14!important}
.btn{min-height:48px;font-weight:700;line-height:1.3;text-align:center}
.ghost:hover{background:#fff;color:#111417}
.nav{flex-wrap:nowrap!important;gap:16px}
.menu-toggle{display:none}
#site-nav a{display:flex;align-items:center;min-height:44px}
.header-phone-primary{min-height:44px}
.header-phone-secondary{min-height:36px}









.hero-photo{display:block;min-width:0}
.hero-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;border-radius:18px;box-shadow:0 20px 60px #0005}
.emergency-callout{font-size:12px;line-height:1.5;max-width:100%;border-radius:12px}
.trustitem{min-width:0;padding:22px 16px}
.trustitem b{font-size:19px;line-height:1.3}
.service .pad{padding:24px}
.service p,.who p{font-size:15px;line-height:1.7}
.service a{min-height:44px;display:inline-flex;align-items:center;line-height:1.4}
.service img{aspect-ratio:16/10}
.carpet-feature-grid{gap:40px;align-items:start}
.carpet-main-photo{height:500px!important;object-fit:cover;object-position:center 60%!important}
.carpet-photo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.carpet-photo-strip img{height:auto!important;aspect-ratio:4/3;object-fit:cover;border-radius:10px;box-shadow:none}
.carpet-feature h2{font-size:clamp(34px,4vw,52px)}
summary{padding-right:58px;line-height:1.5}
summary:after{top:16px}
summary::-webkit-details-marker{display:none}
.footer-links a{min-height:44px;display:flex;align-items:center}
.iconlinks a{width:44px;height:44px}
.form-grid{min-width:0}
.form-grid>*{min-width:0}
.form-grid input,.form-grid select,.form-grid textarea{font-size:16px}
.mobile-actions{display:none}
@media(max-width:1200px){
 .nav{display:grid!important;grid-template-columns:1fr auto auto;gap:12px!important;min-height:96px!important}
 .nav .brand{justify-content:flex-start!important;min-width:0}
 .brand-title{display:none}
 .brand img{width:122px!important;height:78px!important}
 .header-phones{grid-column:2;grid-row:1;width:auto;flex-direction:column;gap:4px}
 .header-phone-primary,.header-phone-secondary{padding:8px 12px;font-size:13px}
 .menu-toggle{grid-column:3;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:48px;min-height:48px;border:1px solid #ffffff80;border-radius:8px;background:transparent;color:#fff;cursor:pointer;padding:7px}
 .menu-lines{width:22px;height:14px;border-block:2px solid currentColor;position:relative}
 .menu-lines:after{content:'';position:absolute;top:4px;left:0;right:0;border-top:2px solid currentColor}
 .menu-label{font-size:10px;line-height:1}
 #site-nav{grid-column:1/-1;display:none!important;white-space:normal;gap:4px!important;padding:12px 0;border-top:1px solid #ffffff40;width:100%}
 #site-nav.is-open{display:grid!important;grid-template-columns:1fr 1fr}
 #site-nav a{font-size:14px!important;padding:7px 12px;border-radius:6px;background:#ffffff0c}
}
@media(max-width:900px){
 html{scroll-padding-top:115px}
 section[id]{scroll-margin-top:115px}
 section{padding:56px 0}


 .hero-photo{order:-1}
 .hero-photo img{border-radius:0;aspect-ratio:4/3;max-height:430px;object-fit:cover;box-shadow:none}




 .head h2,.why h2,.contact-layout h2,.cta h2{font-size:clamp(32px,5.8vw,44px)}
 .head{margin-bottom:26px}
 .whygrid,.carpet-feature-grid,.contact-layout{gap:28px}
 .whyphoto img{height:auto;max-height:480px;object-fit:cover;aspect-ratio:4/3}
 .carpet-main-photo{height:auto!important;aspect-ratio:4/3;object-position:center 65%!important}
 .carpet-photos{max-width:680px;width:100%;margin-inline:auto}
 .map-frame,.map-frame iframe{min-height:380px}
 .map-badge{top:72px;font-size:12px}
 .footer-grid{gap:34px}
}
@media(max-width:600px){
 body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
 .socialbar{padding:8px 0;font-size:11px}
 .socialbar .wrap{display:flex;flex-direction:column;gap:8px}
 .socialbar .iconlinks{gap:12px}
 .socialbar .iconlinks a{width:36px;height:36px}
 .nav{min-height:88px!important;grid-template-columns:1fr auto 44px;gap:8px!important;padding:7px 0!important}
 .brand img{width:100px!important;height:68px!important}
 .header-phone-primary{font-size:12px;min-height:40px;padding:8px 9px}
 .header-phone-secondary{font-size:11px;min-height:30px;padding:5px 8px}
 .menu-toggle{min-width:44px;min-height:48px}






 .emergency-callout{padding:10px 12px;font-size:11px;align-items:center}
 .trustgrid{grid-template-columns:1fr 1fr}
 .trustitem.experience{grid-column:1/-1;justify-content:center}
 .trustitem{padding:18px 12px;border-right:1px solid #e7e2db}
 .trustitem b{font-size:17px}
 .trustitem span{font-size:9px;letter-spacing:.06em}
 .services,.whogrid{grid-template-columns:1fr;gap:16px}
 .head h2,.why h2,.carpet-feature h2,.contact-layout h2,.cta h2{font-size:32px;letter-spacing:-.025em}
 .service img{height:auto;aspect-ratio:16/10}
 .who{padding:22px}
 .carpet-main-photo{aspect-ratio:1/1}
 .gallerygrid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:8px}
 .gallerygrid img{border-radius:10px}
 .gallerygrid img:first-child{grid-row:span 2}
 summary{font-size:16px;padding:16px 48px 16px 18px}
 details .answer{padding:0 18px 18px;font-size:15px}
 .reviewbox,.localbox,.contact-form{padding:22px}
 .profiletabs a{min-height:44px}
 .footer-main{padding:40px 0 22px}
 .footer-grid{gap:28px}
 .footer-links{gap:0 14px}
 .mobile-actions{position:fixed;z-index:40;bottom:0;left:0;right:0;display:grid;grid-template-columns:1.25fr 1fr;gap:10px;padding:10px 4% calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #ddd8d1;box-shadow:0 -3px 18px #0001}
 .mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:8px;background:#8a0c00;color:#fff;font-size:13px;font-weight:700;text-align:center;padding:8px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:900px){
 .service-hero{min-height:0}
 .service-hero .content{padding:52px 0}
 .service-hero h1{font-size:clamp(36px,7vw,58px);line-height:1.08}
 .service-hero p{font-size:17px;line-height:1.65}
}
@media(max-width:600px){.service-hero .actions{display:grid;grid-template-columns:1fr}.service-hero .actions .btn{width:100%}}
/* Restore the photograph behind the complete hero copy. */










/* The footer now matches the supplied logo's red instead of using a floating panel. */
.footer-main{background:rgb(138,12,0);border-top:1px solid #ffffff26}
.footer-brand{padding:0;position:static;z-index:auto}
.footer-brand:before{display:none}
.footer-logo-lockup{display:flex;align-items:center;gap:16px;margin:0 0 22px;max-width:100%}
.footer-brand .footer-logo-lockup img{width:82px!important;height:80px!important;max-height:80px!important;object-fit:contain!important;flex:0 0 82px;margin:0;border-radius:0;background:rgb(138,12,0)!important}
.footer-logo-lockup>span{font-size:20px;font-weight:750;color:#fff;line-height:1.2;letter-spacing:-.02em}
.footer-logo-lockup small{display:block;font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;margin-top:9px;color:#f2cfcb}
.footer-brand p,.footer-contact,.footer-links a{color:#f1d9d6}
.footer-bottom{color:#efd1ce;border-top-color:#ffffff30}
@media(max-width:900px){




 .service-area-panels{grid-template-columns:1fr}
 .local-service-areas .head>p{max-width:680px;margin-top:18px}
 .service-town-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){





 .service-area-panel{padding:24px 20px}
 .service-town-list{grid-template-columns:1fr 1fr;gap:0 16px}
 .service-area-help{flex-direction:column;align-items:stretch}
 .service-area-help .btn{width:100%}
 .footer-logo-lockup{gap:14px}
 .footer-logo-lockup>span{font-size:20px}
}
.footer-grid,.footer-bottom{width:100%}

/* Match Cape Stump Grinding's comma-separated local service area layout. */
.local-service-areas{background:#fff}
.msr-local-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:54px;align-items:center;padding-bottom:54px}
.msr-local-photo-wrap{position:relative;max-width:460px}
.msr-local-photo-wrap img{display:block;width:100%;height:500px;object-fit:cover;object-position:center;border-radius:18px;box-shadow:0 22px 50px rgba(17,20,23,.14)}
.msr-local-badge{position:absolute;left:20px;bottom:20px;max-width:calc(100% - 40px);background:rgba(138,12,0,.95);color:#fff;padding:12px 16px;border-radius:10px;font-size:13px;font-weight:800}
.msr-local-copy{text-align:left;min-width:0}
.msr-local-copy>.eyebrow{margin:0 0 10px;color:#8a0c00}
.msr-local-copy h2{font-size:clamp(32px,3.8vw,48px);line-height:1.14;letter-spacing:-.035em;margin:0 0 18px}
.msr-local-copy .local-intro{font-size:17px;line-height:1.72;max-width:720px;margin:0 0 18px}
.msr-local-copy .service-area-copy{margin:18px 0 0;max-width:760px;line-height:1.7;color:#515b62;font-size:16px}
.msr-local-copy .service-area-copy strong{color:#8a0c00}
@media(max-width:850px){
 .msr-local-layout{grid-template-columns:1fr;gap:34px}
 .msr-local-photo-wrap{max-width:560px;margin:0 auto;width:100%}
 .msr-local-photo-wrap img{height:auto;aspect-ratio:4/3}
 .msr-local-copy{text-align:center}
 .msr-local-copy .service-area-copy,.msr-local-copy .local-intro{margin-left:auto;margin-right:auto}
}
@media(max-width:760px){.msr-local-copy .service-area-copy{font-size:15.2px}}

/* Keep the entire box truck visible in the local service area photo. */
.msr-local-photo-wrap img{height:auto;aspect-ratio:4/3;object-fit:cover}

/* Keep the experience badge within its own grid column at every width. */
.trustitem.experience{flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px 12px;min-width:0}
.trustitem.experience .years-ribbon-badge{display:block;flex:0 1 auto;width:128px;max-width:100%;height:auto;max-height:86px;object-fit:contain}
.trustitem.experience .seal-caption{display:block;flex:0 1 auto;width:100%;max-width:none;font-size:9px;line-height:1.5;letter-spacing:.07em;text-align:center;overflow-wrap:anywhere}
.trustitem:not(.experience){display:flex;flex-direction:column;justify-content:center}

/* Original uploaded ZIP's hero composition: full-bleed photo and centered copy. */
.home-page .hero{padding:84px 0}
.home-page .hero h1{text-wrap:wrap}
.home-page .hero .btn{font-weight:900}
.home-page .hero .emergency-callout{font-size:14px;line-height:1.55;padding:11px 16px;border-radius:999px}
