/* L7: semantic refinements of the existing light cards and blue identity. */
:root { --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px; --space-9:36px; --radius-overlay:18px; --radius-element:var(--aq-radius-el); }
:root { --aq-ease-out:cubic-bezier(.33,1,.68,1); --aq-ease-enter:cubic-bezier(.16,1,.3,1); --aq-ease-emphasized:cubic-bezier(.2,0,0,1); --aq-dur-xs:120ms; --aq-dur-sm:200ms; --aq-dur-md:280ms; --aq-dur-lg:400ms; --aq-dur-xl:600ms; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.school-filter-dialog { width:min(600px,calc(100% - 24px)); max-height:85dvh; overflow:auto; padding:24px; border:1px solid var(--aq-border); border-radius:24px; background:var(--aq-surface); }
.school-filter-dialog::backdrop { background:color-mix(in srgb,var(--aq-fg) 35%,transparent); }
.school-extra-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:16px 0; }
body.aq-page { font-size:16px; line-height:1.5; }
body .aq-btn, body .hero-submit, body .home-brand-feature .aq-btn { font-size:16px; line-height:24px; border-radius:var(--radius-element); }
body .aq-btn-primary, body .hero-submit, body .home-brand-feature .aq-btn { background:var(--aq-accent-strong); color:var(--aq-fg-on-accent); }
body input, body select, body .hero-search .hero-input { font-size:16px; min-height:48px; }
body .aq-btn, body button.aq-chip { transition:transform var(--spring-snappy-duration) var(--spring-snappy), opacity 120ms; }
body .aq-btn:active, body button.aq-chip:active { transform:scale(.97); }
body .hero-sub, body .place-note, body .site-notice, body .data-status, body .panel-note, body .address-line { font-size:16px; line-height:24px; color:var(--aq-fg-secondary); }
body .site-footer .container { display:grid; gap:16px; padding-block:24px; }
body .site-footer a { display:inline-block; min-height:44px; padding:8px; line-height:24px; vertical-align:middle; overflow-wrap:anywhere; }
body .site-footer nav { display:flex; flex-wrap:wrap; align-items:center; gap:0 4px; }
body .site-footer .data-status { order:1; margin:0; line-height:28px; }
body .site-footer .data-status a { min-height:44px; padding:8px; margin:0; }
body .hero-chip { min-height:48px; display:inline-flex; align-items:center; font-size:15px; }
body .directory-list { display:grid; gap:8px; margin-block:24px; }
body .entity-row { display:flex; flex-direction:column; gap:8px; padding:16px; min-height:80px; text-decoration:none; }
body .branch-card h3 a { display:flex; align-items:center; min-height:48px; font-size:17px; line-height:24px; }
body .branch-card button { background:var(--aq-surface-sunken); border:1px solid var(--aq-border); border-radius:14px; padding:8px 16px; font-size:16px; }
body .branch-list { gap:8px; }
body .crumbs, body .place-crumbs { gap:8px; padding-top:8px; }
body .crumbs a, body .place-crumbs a { min-height:48px; display:inline-flex; align-items:center; }
body .context-back { display:inline-flex; align-items:center; justify-content:center; min-width:48px; height:48px; border:0; background:transparent; font-size:24px; }
body .aq-tabs { position:relative; overflow:hidden; }
body .aq-tab { font-size:16px; line-height:24px; color:var(--aq-fg-secondary); border-bottom-color:transparent!important; }
body .aq-tab-label { position:relative; display:inline-block; }
body .tab-indicator { position:absolute; bottom:0; left:0; height:3px; width:1px; background:var(--aq-accent-strong); transform-origin:left; pointer-events:none; transition:transform var(--spring-glide-duration) var(--spring-glide); }
body .academy-panels { scroll-margin-top:116px; min-height:280px; }
body .academy-panel:not([hidden]) { animation:panel-in 160ms var(--aq-ease-out); }
@keyframes panel-in { from { opacity:0; } to { opacity:1; } }
body .route-notice { padding:24px; }
body .route-notice .page-title { font-size:24px; line-height:32px; }
body .card-action { display:flex; flex-wrap:wrap; gap:8px; }
body.policy-page { display:block; padding:24px 20px; max-width:900px; margin:auto; }
body.policy-page > a:first-child { display:inline-flex; min-height:48px; align-items:center; margin-bottom:24px; }
body.policy-page h1 { font-size:28px; line-height:36px; margin-bottom:24px; }
body.policy-page h2 { font-size:24px; line-height:32px; margin:32px 0 16px; }
body.policy-page p { margin:12px 0; }
@media (max-width:767px), (pointer:coarse) and (max-height:500px) {
 body.aq-page .topbar { padding-top:env(safe-area-inset-top); border-bottom:0; }
 body .aq-tab.active { color:var(--aq-accent-strong); }
 body.aq-page .topbar-inner { height:56px; min-height:56px; padding-block:0; flex-wrap:nowrap; padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); }
 body .logo { flex-wrap:nowrap; font-size:20px; line-height:28px; }
 body .wordmark-en { display:none; }
 body .topbar-search, body .site-nav, body .menu-button { display:none!important; }
 body.aq-page { padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
 body .bottom-tabs { display:flex; position:fixed; inset:auto 0 0; height:calc(64px + env(safe-area-inset-bottom)); padding:4px 12px calc(4px + env(safe-area-inset-bottom)); z-index:600; background:var(--aq-surface); border-top:1px solid var(--aq-border); }
 body .bottom-tabs a { flex:1; min-height:48px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:13px; line-height:18px; color:var(--aq-fg-secondary); text-decoration:none; }
 body .bottom-tabs svg { width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.8; }
 body .bottom-tabs a[aria-current] { color:var(--aq-accent-strong); font-weight:700; }
 body.keyboard-open .bottom-tabs { display:none; }
 body .home-brand-feature h2 { font-size:20px; line-height:28px; }
 body .academy-head { min-height:180px; padding:20px 116px 20px 20px; background-size:96px; background-position:right 12px center; }
 body .academy-head h1 { font-size:20px; line-height:28px; }
 body .academy-chips { margin-top:8px; }
 body .academy-actions { margin-top:8px; }
 body .academy-stats { display:flex; flex-wrap:wrap; gap:16px; padding:12px 16px; margin:8px 0; }
 body .academy-stats .aq-stat { padding:0; background:transparent; box-shadow:none; }
 body .academy-stats .aq-stat-value { font-size:20px; line-height:28px; }
 body .academy-stats .missing-stats { flex:1; font-size:16px; align-self:center; }
 body .academy-tabbar { position:sticky; top:calc(56px + env(safe-area-inset-top)); z-index:4; background:var(--aq-surface); margin-top:4px; }
 body .academy-tabbar .aq-tabs { overflow-x:auto; scrollbar-width:none; }
 body .academy-tabbar .aq-tab { flex:0 0 auto; padding-inline:14px; min-width:max-content; }
 body .kv { grid-template-columns:minmax(0,1fr); row-gap:4px; }
 body .kv dd { margin-bottom:12px; }
 body .kv dt { font-size:15px; }
 body .detail-field { grid-template-columns:1fr; gap:4px; }
 body .place-filters { gap:8px; }
 body .place-filter { min-height:48px; font-size:16px; }
 body .place-stats { gap:8px; }
 body .place-stats { display:flex; flex-wrap:wrap; }
 body .place-stats .aq-stat { flex:1; padding:12px 8px; min-width:64px; }
 body .place-stats .aq-stat-value { font-size:20px; line-height:28px; }
 body .place-stats .aq-stat-label { font-size:13px; line-height:18px; }
 body .place-map-card .map-controls button:nth-child(4) { display:none; }
}
@media (hover:none) { body .aq-btn:hover, body .aq-pressable:hover, body .result-card:hover { transform:none; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } body .aq-btn:active, body button.aq-chip:active { transform:none; } }
