/* Shared responsive rules for all five pages. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:where(.container,.hero-grid,.direction-grid,.service-grid,.cms-heading,.cms-features,.support-grid,.support-options,.contact-grid,.services-intro-grid,.estimate-grid,.cms-page-intro,.download-layout,.support-topics,.about-hero-grid,.about-story-card,.about-product-grid,.contact-channel-grid,.location-grid,.contact-topic-grid)>*{min-width:0}
h1,h2,h3,p,address,.text-link,.button,.pill{overflow-wrap:break-word}
.button{max-width:100%;min-height:48px;text-align:center;white-space:normal}
.text-link,.text-button{min-height:44px;align-items:center}
.text-button{padding-block:10px}
.header-phone,.header-email{display:inline-flex;align-items:center}
.feedback-close{width:44px;height:44px}
.feedback-button{right:max(20px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom))}
#feedback-dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
.feedback-channel strong{overflow-wrap:anywhere}
footer{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
@media(min-width:761px) and (max-width:1100px){
 .section{padding-block:72px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service{padding:28px}
 .cms-features,.cms-tool-grid,.support-topics{gap:22px}
 .cms-tool-grid article{padding-left:18px}
 .cms-tool-grid h3,.support-topics h3{font-size:22px;line-height:1.25}
 .split-heading{gap:30px}
 .split-heading>p{max-width:320px}
 .contact-grid{gap:36px}
 .detail-footer{align-items:flex-start;flex-direction:column;gap:20px}
 .detail-footer .button{align-self:flex-start}
 .about-story-card{grid-template-columns:1fr}
 .about-approach{padding:28px}
 .about-experience{padding:28px}
 .contact-channel-card strong{font-size:clamp(25px,3.1vw,34px)}
}
@media(max-width:980px){
 .header-inner{min-height:84px;display:grid;grid-template-columns:104px minmax(0,1fr) auto;column-gap:24px;row-gap:0}
 .brand{grid-column:1;grid-row:1;width:104px}
 .brand img{width:104px;height:76px}
 .menu-toggle{display:flex;grid-column:3;grid-row:1;align-items:center;justify-content:center;gap:12px;min-height:44px;min-width:92px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--navy);font-size:15px;cursor:pointer}
 .header-contacts{grid-column:2;grid-row:1;order:initial;width:auto;flex-direction:column;align-items:flex-end;justify-content:center;gap:0;padding:8px 0}
 .header-phone{font-size:16px;min-height:30px}
 .header-email{font-size:14px;min-height:30px}
 #navigation{grid-column:1/-1;grid-row:2;display:none;order:initial;width:100%;padding:12px 0 18px;border-top:1px solid var(--line);gap:8px}
 #navigation.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #navigation a{display:flex;align-items:center;min-height:48px;padding:12px 16px;border-radius:8px;font-size:16px;background:var(--pale)}
 #navigation a[aria-current="page"]{background:#e8efff}
 .hero-grid,.services-intro-grid,.cms-page-intro,.about-hero-grid{grid-template-columns:1fr;gap:36px}
 .hero-copy h1,.services-intro h1,.cms-page-intro h1,.about-hero h1{font-size:clamp(36px,5.5vw,54px);max-width:780px}
 .hero-copy .lead,.services-intro .lead,.cms-page-intro .lead,.about-hero .lead{max-width:720px}
 .hero-visual{width:100%;max-width:520px;justify-self:center}
 .configuration-panel{max-width:none}
 .cms-principle{max-width:680px}
 .cms-principle p{max-width:none}
 .cms-principle h2 br{display:none}
 .about-experience{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
 .about-experience>div+div{border-top:0;border-left:1px solid #35445c;margin:0;padding:0 0 0 28px}
 .about-product-grid,.location-grid{grid-template-columns:1fr;gap:32px}
 .about-product-preview{width:100%;max-width:620px;justify-self:center}
 .location-copy>p{max-width:660px}
 .contact-page-heading{display:block}
 .contact-page-heading .lead{max-width:640px;margin-top:24px}
 .cms-heading{align-items:flex-start}
 .download-layout{grid-template-columns:1fr;gap:28px}
 .download-copy p{max-width:660px}
 .download-card{width:100%;max-width:650px}
 .estimate-grid{grid-template-columns:1fr;gap:28px}
}
@media(max-width:760px){
 .container{width:calc(100% - 36px)}
 .section{padding-block:52px}
 .section-heading{margin-bottom:28px}
 h2,.cms-heading h2,.contacts h2,.download-copy h2,.estimate-grid h2{font-size:clamp(28px,6.5vw,36px);line-height:1.18}
 .hero-copy h1,.services-intro h1,.cms-page-intro h1,.about-hero h1,.contact-page-heading h1{font-size:clamp(32px,7.7vw,46px);line-height:1.13;letter-spacing:-.035em}
 .lead,.about-grid .lead,.about-story-card .lead{font-size:18px}
 .actions{gap:12px;margin-block:24px}
 .hero-tags{font-size:14px;gap:8px 16px}
 .direction-card h3{font-size:26px}
 .service h3{font-size:23px}
 .service p,.cms-features p,.service-bottom p{font-size:16px}
 .service-grid{grid-template-columns:1fr}
 .direction-card,.service{padding:24px}
 .cms-heading,.split-heading{display:block}
 .cms-intro{max-width:none}
 .split-heading>p{max-width:none}
 .split-heading>p br{display:none}
 .window-bar{font-size:12px;gap:12px;flex-wrap:wrap}
 .support-options{grid-template-columns:1fr;gap:28px}
 .support-options article+article{border-top:1px solid #35465f;padding-top:28px}
 .support-options .small{font-size:14px}
 .service-detail{padding:24px 22px 0}
 .detail-footer{margin-inline:-22px;padding:22px;align-items:stretch}
 .detail-heading h2{font-size:27px}
 .detail-body li{font-size:16px}
 .cms-tool-grid,.support-topics{grid-template-columns:1fr}
 .support-topics article,.estimate-info,.download-card,.about-story-card,.address-card,.contact-topic-grid article{padding:24px}
 .about-experience strong{font-size:56px}
 .about-experience h2{font-size:21px}
 .about-story-card{gap:24px}
 .contact-details{gap:14px}
 .contact-phone{font-size:clamp(24px,6vw,32px)}
 .contact-email{font-size:21px}
 .company-address{font-size:15px}
 .contact-channel-card strong{font-size:clamp(24px,6.1vw,34px)}
 .contact-channel-card{padding:24px}
 .feedback-button{bottom:calc(14px + env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right));min-height:48px}
 .feedback-content{padding:56px 24px 24px}
 .feedback-content h2{font-size:28px;padding-right:0}
 .feedback-channel{min-height:82px}
 .footer-inner{font-size:14px}
 .footer-inner>a{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:540px){
 .header-inner{grid-template-columns:1fr auto;column-gap:16px}
 .brand{grid-column:1;grid-row:1}
 .menu-toggle{grid-column:2;grid-row:1}
 .header-contacts{grid-column:1/-1;grid-row:2;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0 12px;padding:0 0 10px}
 .header-phone,.header-email{min-height:44px;font-size:14px}
 #navigation{grid-row:3}
 #navigation.is-open{grid-template-columns:1fr}
 .actions{flex-direction:column;align-items:stretch}
 .actions .button{width:100%;font-size:15px}
 .about-experience{gap:20px;padding:24px}
 .about-experience>div+div{padding-left:20px}
 .about-experience strong{font-size:48px}
 .about-experience strong span{font-size:26px}
 .about-experience h2{font-size:19px}
 .about-hero .button,.about-product .button,.address-card .button{width:100%}
 .text-link{gap:14px}
}
@media(max-width:380px){
 .container{width:calc(100% - 28px)}
 .header-contacts{align-items:flex-start;flex-direction:column}
 .header-phone,.header-email{font-size:15px}
 .hero-copy h1,.services-intro h1,.cms-page-intro h1,.about-hero h1,.contact-page-heading h1{font-size:32px}
 .visual-directions{padding-inline:16px}
 .visual-directions a{grid-template-columns:40px minmax(0,1fr) 16px;gap:8px}
 .about-experience{grid-template-columns:1fr}
 .about-experience>div+div{border-left:0;border-top:1px solid #35445c;padding:22px 0 0}
 .direction-card,.service,.configuration-panel,.download-card,.address-card,.contact-channel-card,.contact-topic-grid article{padding:22px}
 .contact-channel-card strong{font-size:24px}
 .feedback-content{padding-inline:20px}
 .feedback-channel{padding:14px}
 .feedback-channel strong{font-size:18px}
}
@media(hover:none){.button:hover,.direction-card:hover{transform:none}}
@media(max-height:500px) and (orientation:landscape){.feedback-button{min-height:44px;padding:10px 16px}.feedback-content{padding-top:48px}.feedback-content h2{font-size:25px}.feedback-content p{margin-bottom:16px}}
/* Let tool columns shrink when the page is magnified. */
.cms-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cms-tool-grid article{min-width:0}.cms-tool-grid h3,.cms-tool-grid p{overflow-wrap:anywhere}
@media(max-width:760px){.cms-tool-grid{grid-template-columns:minmax(0,1fr)}}
