/* Shared alignment corrections; loaded after the retained page styles. */
:root{
  --sx-gutter:20px;
  --sx-left:max(var(--sx-gutter),env(safe-area-inset-left,0px));
  --sx-right:max(var(--sx-gutter),env(safe-area-inset-right,0px));
}
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%}
.wrap,.store-wrap,.cta-band{
  width:min(1200px,calc(100% - var(--sx-left) - var(--sx-right)))!important;
  margin-left:auto!important;margin-right:auto!important;
}
.wrap,.store-wrap{padding-inline:0!important}
/* Full-width nested wrappers must not add another set of page gutters. */
.wrap .wrap,.wrap .cta-band,.store-wrap .store-wrap{width:100%!important}
.nav-inner{min-width:0}
.nav-logo{flex-shrink:0}
.nav-links{gap:clamp(16px,2.4vw,32px)}
.nav-links a{white-space:nowrap}
.mobile-drawer{z-index:1100;max-height:100dvh}
.menu-open .fab-wrap,.menu-open .sticky-mobile-cta{visibility:hidden}
.breadcrumb,.footer-bottom,.footer-mini{flex-wrap:wrap}
.hero-inner>*,.header-grid>*,.services-grid>*,.why-grid>*,
.booking-layout>*,.contact-layout>*,.contact-grid>*,.faq-layout>*,
.prose-layout>*,.footer-grid>*,.form-row>*,.device-grid>*{min-width:0}
.summary-value,.nap-text,.contact-card-value,.contact-card-desc,
.footer-col a,.footer-copy,.prose-body,.service-details,.handoff-fallback{
  min-width:0;overflow-wrap:anywhere;
}
.summary-row{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:start;gap:12px}
.summary-label{min-width:0}
.breadcrumb{row-gap:5px}
.breadcrumb>span:last-child{min-width:0;overflow-wrap:anywhere}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.step-ind{min-width:0}
.step-nav>*{min-width:0}
.step-nav button,.submit-btn,.form-submit-btn,.location-btn{white-space:normal}
.submit-btn,.form-submit-btn{background:#137b3b}
.submit-btn:hover,.form-submit-btn:hover{background:#106531}
.search-box input{min-width:0}
button,input,select,textarea,a{touch-action:manipulation}
button svg,.btn svg,.button svg,.location-btn svg{flex-shrink:0}
main img,main iframe{max-width:100%}
h1,h2,h3{text-wrap:balance}
section[id],article[id],div[id],h2[id],h3[id]{scroll-margin-top:100px}
/* Use the menu until there is room for the logo, five links and repair CTA. */
@media(max-width:1023px){
  nav.site-nav .nav-links,nav.site-nav .nav-cta{display:none!important}
  nav.site-nav .hamburger{display:flex!important}
}
@media(min-width:1024px){
  nav.site-nav .nav-links{display:flex}
  nav.site-nav .hamburger{display:none!important}
}
@media(min-width:900px){
  .booking-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}
  .contact-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}
  .faq-layout{grid-template-columns:240px minmax(0,1fr)}
  .prose-layout{grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:767px){
  :root{--sx-gutter:16px}
  .wrap .cta-band{width:100%!important}
  .mobile-drawer{padding-top:24px!important}
  .drawer-close{margin-bottom:12px}
  .hero-actions{flex-wrap:wrap}
  .hero-actions .btn{white-space:normal;max-width:100%}
  .process-step{display:grid!important;grid-template-columns:36px minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:start}
  .process-step .step-num{grid-column:1;grid-row:1 / span 2;margin:0;color:#1557ff}
  .process-step :is(h3,h4),.process-step p{grid-column:2;margin:0}
  /* Reset the explicit column inherited from the original two-column timeline. */
  .tl-step .tl-card{grid-column:1;grid-row:auto;min-width:0}
  .tl-detail-chips{flex-wrap:wrap}
  .contact-form-card{padding:24px 18px}
  .form-card{padding:24px 18px}
  .summary-card{padding:16px 14px}
  .summary-row{grid-template-columns:76px minmax(0,1fr);gap:10px}
  input:not([type=radio]):not([type=checkbox]),select,textarea{font-size:16px!important}
  .step-nav{flex-wrap:wrap}
  .step-nav .btn-next{flex-basis:150px}
  .submit-btn{font-size:15px;padding-inline:14px}
  /* Accordion content has its own inner padding; avoid a second card inset. */
  .faq-group .faq-item{padding:0}
  .footer-mini{align-items:flex-start}
  .footer-links{min-width:0;gap:12px 20px}
  .fab-wrap{right:var(--sx-right)!important;bottom:calc(82px + env(safe-area-inset-bottom,0px))!important}
  body:has(.sticky-mobile-cta) footer{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))!important}
}
@media(max-width:479px){
  .form-row{grid-template-columns:minmax(0,1fr)}
  .device-grid{gap:6px}
  .device-name{font-size:12px}
  .step-nav{gap:8px}
  .step-nav .btn-back{padding-inline:14px}
  .search-box{flex-wrap:wrap}
  .search-box input{flex-basis:150px}
  .search-box button{flex-grow:1;min-height:44px}
}

/* Shop: keep long names/specifications and cart controls inside their columns. */
.store-hero>*,.catalogue-toolbar>*,.catalogue-layout>*,.store-filters>*,
.product-detail>*,.product-detail-sections>*,.specs>div>*,.cart-header>*{min-width:0}
.catalogue-layout{grid-template-columns:185px minmax(0,1fr)}
.product-detail{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.product-detail-sections{grid-template-columns:repeat(2,minmax(0,1fr))}
.product-card h2,.product-information h1,.compatibility,.product-topline,
.product-detail-sections p,.product-detail-sections li,.specs,.cart-line h3,
.cart-line p,.store-toast{overflow-wrap:anywhere}
.product-topline{flex-wrap:wrap}
.specs>div{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.product-card .button{max-width:100%}
.product-price,.detail-price,.cart-total{font-variant-numeric:tabular-nums}
.store-nav-inner{height:auto;min-height:80px}
.cart-open{flex-shrink:0}
.store-filters button,.cart-line-controls button{min-height:44px}
.cart-line-controls{flex-wrap:wrap}
.cart-line-controls label{display:flex;align-items:center;gap:8px}
.cart-line-controls input{font-size:16px}
dialog{overflow-y:auto;overscroll-behavior:contain}
dialog .handoff-fallback{overflow-wrap:anywhere}
.cart-header h2{overflow-wrap:anywhere}
.product-thumbnails button{min-width:44px;min-height:44px}
.product-thumbnails [aria-pressed=true]{border-color:#1557ff;outline:2px solid #1557ff;outline-offset:2px}
.button-outline:hover{border-color:#1557ff;background:#eef3ff}
.store-nav-links a:hover,.whatsapp-side:hover{text-decoration:underline}
@media(max-width:1050px){.catalogue-layout{grid-template-columns:160px minmax(0,1fr)}}
@media(max-width:767px){
  .catalogue-layout,.product-detail,.product-detail-sections{grid-template-columns:minmax(0,1fr)}
  .store-nav-inner{min-height:94px}
  .store-nav-links a{min-height:44px;display:flex;align-items:center}
  .store-assist{padding:24px}
  .store-assist .button{max-width:100%}
  .store-hero h1{font-size:clamp(36px,10vw,47px)}
  .store-hero-note{min-width:0}
}
