/* 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}
}


/* R13 phone + tablet refinements */
@media (max-width: 1024px){
  body{width:100%;min-width:0!important}
  main,section,header,footer{max-width:100%;overflow-x:clip}
  .hero,.page-hero{min-height:min(78vh,720px)!important}
  .hero-content,.page-hero-content{max-width:100%!important}
  .desktop-nav{max-width:100%}
}
@media (max-width: 768px){
  :root{--responsive-gutter:18px}
  .container,.wrap,.wrapper,.section-inner,.content-wrap,.shop-shell{width:calc(100% - 36px)!important;max-width:none!important}
  .hero,.page-hero{min-height:560px!important}
  .hero-content{padding-inline:0!important}
  .hero-content h1,.page-hero h1{font-size:clamp(2rem,8vw,3.2rem)!important;line-height:1.25!important}
  .hero-content p,.page-hero p{font-size:clamp(.92rem,3.5vw,1.05rem)!important}
  .museum-shop-cta,.shop-hero-grid,.request-grid,.product-grid,.process-grid{max-width:100%!important}
  input,select,textarea{font-size:16px!important}
}
@media (max-width: 480px){
  .container,.wrap,.wrapper,.section-inner,.content-wrap,.shop-shell{width:calc(100% - 28px)!important}
  .hero,.page-hero{min-height:500px!important}
  .shared-site-header .brand,.site-header:not(.shared-site-header) .brand{max-width:46vw!important}
  .shared-site-header .site-language-toggle{min-width:78px!important;padding-inline:6px!important}
  .shared-site-header .header-actions{gap:5px!important}
  .shared-mobile-menu,.mobile-menu{max-height:calc(100dvh - 76px)!important;overflow:auto!important}
  .museum-shop-cta__content,.request-form-card{padding-inline:20px!important}
  .shop-btn{width:100%!important}
}
