/* MOBILE/TABLET · 0–767px · thumb-friendly app layout */
html,body{width:100%;max-width:100%;overflow-x:clip}
.app{width:100%;max-width:680px;margin-inline:auto;padding-bottom:calc(var(--nav-h) + 30px + env(safe-area-inset-bottom))}
.topbar{min-width:0;padding:14px clamp(12px,4vw,20px);min-height:76px}
.brand{min-width:0;max-width:calc(100% - 58px)}.brand>div:last-child{min-width:0}.brandname{font-size:clamp(19px,5.5vw,25px);white-space:normal;overflow-wrap:anywhere}.brandline{letter-spacing:.17em;font-size:8px}
.page{padding:18px clamp(12px,4vw,22px) 12px;max-width:100%}
.hero{min-height:clamp(410px,66svh,560px);padding:clamp(19px,5vw,29px);border-radius:26px}
.hero h1{font-size:clamp(42px,10.2vw,67px);max-width:100%;overflow-wrap:break-word}
.hero p{max-width:33ch;font-size:12px}
.hero-pill{font-size:9px;white-space:normal}
.primary{width:100%;font-size:13px;line-height:1.35;padding-inline:12px;text-align:center;overflow-wrap:anywhere}
.featuregrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.feature{padding:15px 12px;min-height:139px;max-width:100%}.feature strong{font-size:20px}.feature small{font-size:10px}
.secthead h2,.pagetitle{font-size:clamp(31px,8vw,42px)}
.event{grid-template-columns:65px minmax(0,1fr);gap:11px;padding:11px}.event strong{font-size:22px}.event p{font-size:11px}.datebox{min-height:78px}
.photogrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo{padding:11px}.photo span{font-size:21px;overflow-wrap:anywhere}
.banner{padding:16px;gap:10px}.banner strong{font-size:21px}
.nav{position:fixed;inset:auto 0 0 0;left:0;transform:none;width:100%;max-width:680px;margin-inline:auto;height:calc(var(--nav-h) + env(safe-area-inset-bottom));grid-template-columns:repeat(4,minmax(0,1fr));padding:8px 6px calc(7px + env(safe-area-inset-bottom));border-top:1px solid #d97a3f45;background:#151114f5}
.navbtn{min-width:0;max-width:100%;font-size:clamp(8px,2.3vw,10px);gap:4px;padding:4px 1px}.navbtn svg{width:22px;height:22px}
.chips{max-width:100%;overscroll-behavior-x:contain}.toast{bottom:calc(var(--nav-h) + 18px + env(safe-area-inset-bottom))}
@media(max-width:360px){.page{padding-inline:12px}.hero{min-height:395px;padding:19px 16px}.hero h1{font-size:40px}.feature{padding:13px 10px;min-height:128px}.feature strong{font-size:18px}.feature small{font-size:9px}.event{grid-template-columns:60px minmax(0,1fr);gap:9px}.event strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.hero,.feature{transform:none!important}}

/* v4 · narrow mobile screens: card text stays in its own column */
.event[hidden]{display:none!important}
.event > div:last-child{min-width:0;display:flex;flex-direction:column;gap:7px}
.event .tag{display:block;margin:0;max-width:100%}
.event strong{display:block;line-height:1.12;max-width:100%}
.event p{margin:0}
