/* Mobile overrides - preserve design/content/behavior; CSS-first. */
:root{--touch:44px;--pad:16px;--fs-min:14px;--fs-max:18px}
html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}
img,video,canvas,svg{max-width:100%;height:auto}
iframe{max-width:100%}
table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
pre,code{white-space:pre-wrap;word-break:break-word}
body{overflow-x:hidden}
a,button,[role="button"],.btn{min-height:var(--touch);min-width:var(--touch)}
@media (max-width:767px){
  body{font-size:clamp(var(--fs-min),2.8vw,var(--fs-max));line-height:1.5}
  .container,.wrapper,.content,main,header,footer,section{padding-left:var(--pad);padding-right:var(--pad)}
  .row,.grid{display:grid;gap:16px}
  [class*="col-"],.column{width:100%!important;max-width:100%!important;float:none!important}
  .columns,.cards,.features{display:grid;grid-template-columns:1fr!important;gap:16px}
  nav ul{display:flex;flex-wrap:wrap;gap:8px}
  nav a{display:block;padding:10px 12px}
  input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],textarea,select{width:100%!important}
  .image,.media,.figure{width:100%!important}
}
@media (min-width:768px) and (max-width:1023px){
  .columns,.cards,.features,.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
}
iframe,video{aspect-ratio:16/9}
/* Optional site-header tweaks if a header exists */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.site-header .brand img{display:block;height:44px;width:auto}
@media(min-width:768px){.site-header .brand img{height:56px}}
