/* Global responsive hardening for phone + tablet */
*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{max-width:100%;overflow-x:hidden}
img,video,svg,canvas,iframe{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}
table{max-width:100%}
.container,.wrap,.wrapper,.section-inner,.content-wrap{max-width:100%}

/* Shared fallback for pages that use the non-shared header */
@media (max-width:1120px){
  .site-header:not(.shared-site-header){grid-template-columns:minmax(150px,210px) 1fr auto!important;padding-inline:20px!important}
  .site-header:not(.shared-site-header) .desktop-nav{display:none!important}
  .site-header:not(.shared-site-header) .menu-btn{display:block!important}
  .site-header:not(.shared-site-header) .header-actions{justify-self:end;min-width:0}
  .mobile-menu{max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain}
}

/* Tablet */
@media (max-width:900px){
  :root{--responsive-gutter:22px}
  .container,.wrap,.wrapper,.section-inner,.content-wrap{width:min(100% - 44px,1180px)!important;margin-inline:auto}
  h1{font-size:clamp(2rem,7vw,3.4rem)!important}
  h2{font-size:clamp(1.65rem,5vw,2.6rem)!important}
  .shared-site-header{padding-inline:20px}
  footer#contact .footer-grid{width:min(100% - 44px,1180px);grid-template-columns:repeat(2,minmax(0,1fr))!important}
  footer#contact .footer-brand{grid-column:1/-1!important}
}

/* Phone */
@media (max-width:600px){
  :root{--responsive-gutter:15px}
  body{font-size:15px}
  .container,.wrap,.wrapper,.section-inner,.content-wrap{width:calc(100% - 30px)!important;margin-inline:auto}
  .site-header:not(.shared-site-header){min-height:72px!important;grid-template-columns:minmax(0,1fr) auto!important;padding-inline:14px!important;gap:8px!important}
  .site-header:not(.shared-site-header) .brand{width:min(150px,45vw)!important;height:auto!important;min-width:0}
  .site-header:not(.shared-site-header) .brand-logo{max-height:58px;object-fit:contain}
  .site-header:not(.shared-site-header) .language-trigger{min-width:44px!important;width:auto!important;padding-inline:8px!important}
  .shared-site-header{grid-template-columns:minmax(0,1fr) auto!important;padding-inline:12px!important;gap:8px}
  .shared-site-header .brand{width:min(150px,44vw)!important}
  .shared-site-header .header-actions{gap:6px}
  .shared-site-header .language-trigger{min-width:58px!important}
  .mobile-menu,.shared-mobile-menu{padding-inline:16px!important}
  section{scroll-margin-top:78px}
  button,a{touch-action:manipulation}
  footer#contact .footer-grid{width:calc(100% - 30px);grid-template-columns:1fr!important}
  footer#contact .footer-brand{grid-column:auto!important;justify-content:center!important}
  footer#contact .footer-grid>div{border-left:0!important;padding-inline:0!important;text-align:center}
  footer#contact h4::after{right:50%!important;transform:translateX(50%)}
  footer#contact .footer-grid>div:not(.footer-brand)>a{margin-inline:auto}
  footer#contact .footer-logo{margin-inline:auto;object-position:center!important}
}

/* Very small phones */
@media (max-width:380px){
  .container,.wrap,.wrapper,.section-inner,.content-wrap{width:calc(100% - 22px)!important}
  .shared-site-header .brand,.site-header:not(.shared-site-header) .brand{width:min(132px,42vw)!important}
  .shared-site-header .language-trigger{min-width:52px!important;font-size:10px}
  h1{font-size:clamp(1.8rem,10vw,2.5rem)!important}
}
