/* PHASE 12 — Global Responsive System
 * Presentation-only layer. Loaded after the shared shell and before page/theme overrides.
 */
:root{--responsive-gutter:clamp(14px,3vw,32px);--responsive-max:1440px}
html{overflow-x:hidden;-webkit-text-size-adjust:100%}
body{min-width:320px;overflow-x:hidden}
img,video,canvas,svg{max-width:100%;height:auto}
iframe{max-width:100%;border:0}
button,input,select,textarea{font:inherit;max-width:100%}
input,select,textarea{min-width:0}
button,a{touch-action:manipulation}
.site-shell,.section,.container,.content-wrap,.page-wrap,.page-container{max-width:var(--responsive-max)}
/* Prevent common legacy fixed-width layouts from creating horizontal scroll. */
.table-responsive,.responsive-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{max-width:100%}
pre,code{overflow-x:auto;max-width:100%}
/* Tablet: preserve desktop hierarchy while reducing density. */
@media (max-width:1100px){
  .site-shell{width:min(100% - 40px,var(--responsive-max))}
  .site-header-inner{gap:18px}
  .site-nav{gap:16px}
  .site-actions{gap:7px}
  .site-footer-main{gap:24px}
  .grid-4,.cards-4,.four-col{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .grid-3,.cards-3,.three-col{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
/* Tablet portrait / large phones. */
@media (max-width:780px){
  .site-shell{width:min(100% - 28px,var(--responsive-max))}
  .site-utility-inner{gap:8px}
  .site-utility-links{gap:10px}
  .site-header-inner{min-height:68px;gap:10px}
  .site-brand{min-width:0}
  .site-brand-copy{min-width:0}
  .site-brand-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42vw}
  .site-actions{margin-left:auto}
  .site-newsletter{margin-top:20px}
  .site-footer-main{grid-template-columns:1fr 1fr!important}
  .modal,.dialog,.drawer,.offcanvas{max-width:calc(100vw - 28px)}
  .form-row,.filter-row,.toolbar-row{grid-template-columns:1fr!important}
  .split-layout,.two-column,.detail-layout,.checkout-layout{grid-template-columns:1fr!important}
  .hero-grid,.hero-layout{grid-template-columns:1fr!important}
  .wide-card{grid-column:auto!important}
}
@media (max-width:520px){
  .site-shell{width:calc(100% - 20px)}
  .site-utility-bar{font-size:9px}
  .site-header-inner{min-height:62px}
  .site-brand-orb{width:36px;height:36px}
  .site-brand-copy b{font-size:14px;max-width:48vw}
  .site-brand-copy small{font-size:6px;letter-spacing:1.7px}
  .site-register{padding:0 10px!important}
  .site-newsletter{padding:15px!important;gap:12px}
  .site-newsletter-icon{width:54px;height:54px;flex:0 0 54px}
  .site-newsletter-copy h3{font-size:13px}
  .site-newsletter-copy p{font-size:9px}
  .site-newsletter-form{height:44px}
  .site-newsletter-form button{width:105px;font-size:9px}
  .site-footer-main{grid-template-columns:1fr!important;padding-top:34px!important}
  .site-footer-brand{grid-column:auto!important}
  .site-footer-bottom-inner{gap:10px}
  .site-copy{white-space:normal!important;font-size:8px}
  .grid-4,.grid-3,.grid-2,.cards-4,.cards-3,.cards-2,.four-col,.three-col,.two-col{grid-template-columns:1fr!important}
  .stack-mobile{display:flex!important;flex-direction:column!important;align-items:stretch!important}
  .hide-mobile{display:none!important}
  .show-mobile{display:block!important}
}
/* Touch targets: only applies to common controls, not typography links. */
@media (pointer:coarse){
  button,.site-menu-toggle,.site-login,.site-register,input[type=submit],input[type=button],.btn,.button{min-height:40px}
  select{min-height:40px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
