/* Mobile layout: original desktop composition is retained above 640px. */
@media(max-width:1150px){
 .site-header .menu-toggle{width:auto;height:auto;min-width:80px;min-height:44px;flex-shrink:0;justify-content:center}
}
@media(max-width:640px){
 html{scroll-padding-top:124px;-webkit-text-size-adjust:100%}
 body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 .wrap,.planner-wrap{width:calc(100% - 36px);max-width:100%;min-width:0}
 .masthead-inner{min-height:62px;gap:16px}
 .masthead-identity,.masthead-end{min-width:0}
 .brand-masthead .identity-brand{width:116px}
 .masthead-partner img{width:35px}
 .masthead-partner span{font-size:12px}
 .site-header .header-inner{min-height:52px;gap:12px}
 .site-header .header-call{gap:9px;min-height:44px;padding:5px 0}
 .site-header .header-call small{font-size:10px;letter-spacing:.4px;margin-bottom:2px}
 .site-header .header-call strong{font-size:16px}
 .site-header .menu-toggle{padding:8px 0 8px 12px;font-size:14px;gap:9px;min-width:78px}
 .site-header .menu-toggle svg{width:22px;height:22px}
 .mobile-nav.open{padding:16px 18px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain}
 .mobile-primary-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .mobile-nav .mobile-primary-links a{font-size:15px;padding:17px 13px;overflow-wrap:anywhere}
 body.menu-open .mobile-actions{display:none}
 .hero{min-width:0;min-height:0}
 .hero-media{position:relative;inset:auto;width:100%;aspect-ratio:1032/512;z-index:0}
 .hero video{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:none}
 .hero-content{max-width:none;padding:25px 0 30px}
 .hero .eyebrow{font-size:11px;letter-spacing:1px;line-height:1.5;margin-bottom:13px;display:block;overflow-wrap:anywhere}
 .hero .eyebrow:before{display:none}
 .hero h1{font-size:clamp(30px,8.2vw,36px);line-height:1.12;letter-spacing:-.9px;margin-bottom:18px;text-wrap:balance}
 .hero h1 em{white-space:normal}
 .hero .lead{font-size:16px;line-height:1.6;max-width:none}
 .hero .actions{display:grid;grid-template-columns:minmax(0,1fr);margin-top:23px;gap:10px}
 .hero .actions .button{font-size:15px;min-height:48px;padding:13px 18px;justify-content:space-between}
 .hero .actions .button[href^="tel:"]{display:none}
 .hero-note{display:none}
 .video-toggle{top:calc(100vw * 512 / 1032 - 53px);right:12px;bottom:auto;width:42px;height:42px}
 .proof-inner{grid-template-columns:repeat(2,minmax(0,1fr));padding-block:20px;gap:17px 12px}
 .proof-item{gap:9px;min-width:0}
 .proof-item b{font-size:12px;line-height:1.4}
 .proof-item svg{width:21px;height:21px}
 .section{padding-block:40px}
 .section-head{margin-bottom:25px}
 .section h2,.home-entry h2,.split-copy h2,.process h2,.customer-reviews h2,.coverage h2,.vakt-feature h2{font-size:32px;line-height:1.15;letter-spacing:-.8px;overflow-wrap:break-word}
 .section-head>p,.split-copy .lead,.about p+p,.coverage .lead,.contact-intro>p:not(.eyebrow){font-size:16px;line-height:1.65}
 .split,.contact-grid,.faq-layout,.sub-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .split>*,.contact-grid>*,.footer-grid>*,.catalog-entry-title>*,.home-entry-card>*{min-width:0}
 .home-entry-card{padding:21px 18px;gap:0 13px}
 .home-entry-card p,.service-directory-card p,.feature-list span,.process-list p,.faq-list details p{font-size:15px;line-height:1.65}
 .bath-section .editorial-image>img,.about-image{height:auto;aspect-ratio:4/3;object-fit:cover}
 .image-caption{left:12px;right:12px;bottom:12px;gap:12px;flex-wrap:wrap;font-size:12px}
 .credentials{flex-wrap:wrap;gap:16px}
 .credentials small{font-size:12px}
 .process-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px}
 .catalog-entry{padding:20px}
 .catalog-entry-title{gap:14px;min-width:0}
 .catalog-entry h3{font-size:20px}
 .product-card,.small-product{grid-template-columns:80px minmax(0,1fr);gap:16px;padding:18px}
 .product-card img,.small-product img{width:80px;height:130px}
 .product-card .small,.product-note,.small-product .eyebrow{font-size:12px}
 .product-card h3,.small-product h3{font-size:18px;overflow-wrap:break-word}
 .review-card{padding:24px}
 .review-card blockquote{font-size:19px;line-height:1.5}
 .area-grid span{font-size:14px}
 .faq-list summary{font-size:16px;line-height:1.5}
 .contact-form{padding:23px 18px}
 .contact-form>p,.form-note{font-size:13px;line-height:1.6}
 .form-submit{font-size:14px}
 .footer-links a{overflow-wrap:anywhere}
 .footer-grid>div:nth-child(2) .footer-links{grid-template-columns:repeat(2,minmax(0,1fr));font-size:14px}
 .footer-grid p,.footer-links{font-size:14px}
 .footer-bottom{font-size:12px}
 .mobile-actions{gap:9px;padding:9px 14px calc(9px + env(safe-area-inset-bottom));grid-template-columns:1fr 1.15fr}
 .mobile-actions a{min-height:46px;font-size:14px;padding:11px 6px;gap:7px}
 .sub-hero h1{font-size:clamp(30px,8.7vw,38px);overflow-wrap:break-word;line-height:1.13}
 .breadcrumb{font-size:12px;overflow-wrap:anywhere}
 .article p,.article li{font-size:16px;line-height:1.7}
 .service-gallery{grid-template-columns:minmax(0,1fr)}
 .service-gallery img{height:auto;max-height:340px;object-fit:cover}
 .full-product-offer{grid-template-columns:80px minmax(0,1fr)}
 .full-product-offer>img{width:80px}
 .full-product-offer .button{white-space:normal}
 .partner-card{padding-inline:10px}
 .partners-controls{flex-wrap:wrap;row-gap:2px}
 .partners-all,.partners-pause{font-size:14px}
 .partners-pause{padding-left:0}
 .partners-hero h1{font-size:34px;overflow-wrap:break-word}
}
@media(max-width:360px){
 .masthead-partner{gap:6px}
 .masthead-partner span{font-size:11px}
 .hero h1{font-size:30px}
 .process-list{grid-template-columns:minmax(0,1fr)}
 .mobile-actions a{font-size:13px}
 .mobile-actions svg{width:15px;height:15px}
 .catalog-page .shop-categories{grid-template-columns:minmax(0,1fr)}
 .catalog-page .catalog-grid{grid-template-columns:minmax(0,1fr)}
 .catalog-page .catalog-card h3{min-height:0;font-size:16px}
 .planner-page .planner-handoff-actions .button{min-width:0}
}

/* Compact header: one brand/menu row on mobile, no duplicate call block. */
@media(max-width:1150px){
 .site-header .header-inner{display:none}
 .masthead-end .menu-toggle{color:white;background:transparent;min-height:44px;min-width:70px;padding:8px 0 8px 10px}
}
@media(max-width:640px){
 .masthead-inner{min-height:70px;gap:12px}
 .masthead-end{gap:16px}
 .masthead-partner span{display:none}
 .masthead-end .menu-toggle{min-width:68px;padding-left:4px;gap:8px}
 html{scroll-padding-top:88px}
}

/* Mobile title above the vehicle, within the same dark video stage. */
@media(max-width:640px){
 .hero{--hero-film-height:calc(100vw * 512 / 1032);display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}
 .hero>.wrap,.hero-content{display:contents}
 .hero-media{grid-column:1;grid-row:1;position:relative;inset:auto;width:100%;aspect-ratio:auto;min-height:calc(var(--hero-film-height) + 5.5rem);z-index:0;align-self:stretch;background:#102f43}
 .hero video{position:absolute;left:0;bottom:0;width:100%;height:var(--hero-film-height);object-fit:contain;object-position:center;filter:none}
 .hero-media::after{content:"";position:absolute;inset:auto 0 0;height:var(--hero-film-height);pointer-events:none;background:linear-gradient(180deg,#102f43 0%,rgba(16,47,67,.7) 12%,rgba(16,47,67,0) 32%)}
 .hero-heading{grid-column:1;grid-row:1;position:relative;align-self:start;z-index:1;min-width:0;padding:20px 18px calc(var(--hero-film-height) - 1.25rem);pointer-events:none}
 .hero .hero-heading .eyebrow{font-size:12px;line-height:1.35;letter-spacing:.65px;font-weight:600;color:#d7e7f0;max-width:36em;margin:0 0 10px;text-shadow:none}
 .hero .hero-heading h1{font-size:clamp(1.5rem,6.3vw,2.15rem);line-height:1.12;letter-spacing:-.55px;color:#fff;margin:0;text-wrap:initial;text-shadow:none}
 .hero .hero-heading h1 em{color:#d1e5ef;white-space:normal}
 .hero .lead{grid-column:1;grid-row:2;margin:0;padding:22px 18px 0;max-width:none}
 .hero .actions{grid-column:1;grid-row:3;margin:21px 18px 28px}
 .hero .video-toggle{grid-column:1;grid-row:1;position:relative;align-self:end;justify-self:end;inset:auto;margin:12px;min-width:44px;min-height:44px;width:44px;height:44px;z-index:2}
}
@media(max-width:360px){.hero-heading{padding-top:17px}.hero .hero-heading .eyebrow{max-width:25em;margin-bottom:8px}}

/* Keep a real frame underneath the video during loading, seeking and mobile interruptions. */
.hero .hero-video-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:none;pointer-events:none}
.hero video{position:relative;z-index:1}
.hero video.hero-video-fallback{opacity:0}
.hero .hero-media::after{z-index:2}
.hero-play-toggle{position:absolute;right:16px;bottom:16px;z-index:3;min-height:44px;min-width:64px;padding:8px 14px;border:1px solid #ffffff80;border-radius:4px;background:#102f43d9;color:#fff;font-size:14px;font-weight:700}
@media(max-width:640px){
 .hero video,.hero .hero-video-poster{position:absolute;left:0;top:auto;bottom:0;width:100%;height:var(--hero-film-height);object-fit:contain;object-position:center;filter:none}
 .hero-play-toggle{grid-column:1;grid-row:1;position:relative;align-self:end;justify-self:end;inset:auto;margin:12px}
}

@media(max-width:760px){.site-footer .footer-grid>div:last-child{border-top:1px solid #ffffff26;padding-top:26px}.site-footer .footer-grid>div:last-child .footer-links{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:6px}.site-footer .footer-grid>div:last-child .footer-links a{display:flex;align-items:center;min-height:44px;padding:10px 0;line-height:1.5}.site-footer .footer-grid>div:last-child h3{font-size:17px;margin-bottom:16px}}
