/* Mobile-first refinement for the migrated portal. Business content stays in
   the editorial system; this file controls only presentation and ergonomics. */
:root{--tap:46px;--safe-bottom:env(safe-area-inset-bottom,0px)}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{min-width:320px}
button,input,select,textarea{font-size:16px}
button{min-height:var(--tap)}
input,select,textarea{min-height:var(--tap)}
summary{min-height:var(--tap);display:flex;align-items:center}
.card,.hero{overflow-wrap:anywhere}
.notice,.error{line-height:1.5}

@media (max-width:700px){
  header{position:sticky;top:0;padding:11px 14px;z-index:12}
  header h1{font-size:18px}
  header p{max-width:58vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lang button{min-height:40px;padding:7px 10px}
  nav{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:11;border-top:1px solid #bbb;border-bottom:0;box-shadow:0 -6px 20px #0002;padding-bottom:var(--safe-bottom)}
  nav button{flex:0 0 auto;min-height:58px;padding:10px 14px;border-bottom:0}
  nav button.active{border-bottom:0;border-top:4px solid var(--red)}
  main{padding:14px 12px calc(86px + var(--safe-bottom));max-width:100%}
  .hero{padding:18px;border-radius:14px}
  .hero h2{font-size:23px;line-height:1.15}
  .card{padding:16px;border-radius:13px}
  .metrics{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding-bottom:4px}
  .metric{flex:0 0 42%;scroll-snap-align:start;padding:13px}
  .metric strong{font-size:22px}
  .week-board{grid-template-columns:90px repeat(7,minmax(145px,1fr));font-size:14px}
  .purchase{grid-template-columns:38px minmax(0,1fr) auto}
  .links a{display:block;margin:7px 0;text-align:center}
  details>summary{padding:6px 0}
}

@media (max-width:430px){
  .metric{flex-basis:68%}
  .grid{grid-template-columns:1fr}
  .primary,.secondary,.light{width:100%;margin:7px 0 0}
  .lang #enBtn{display:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
