/* Multi-location additions; existing event and promotional styles are retained. */
:root { --brand-purple: #7353c8; --brand-ink: #241b36; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:100; background:#241b36; color:#fff; padding:16px; border-radius:12px; }
.skip-link:focus { top:12px; }
:focus-visible { outline:3px solid #6240ba; outline-offset:5px; }
html { scroll-padding-top:130px; }
#main:focus { outline:none; }
.header-row { gap:20px; min-height:106px; }
.brand { padding:10px 0; }
.brand-mark { width:176px; }
.site-nav { flex-wrap:nowrap; gap:3px; }
.site-nav a { padding:12px 14px; font-size:0.92rem; }
.site-nav .nav-cta { background:#241b36; color:#fff; box-shadow:none; margin-left:8px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; font-size:0.86rem; color:var(--muted); }
.breadcrumbs a { text-underline-offset:4px; }
.brand-hero { display:grid; grid-template-columns:1.05fr 0.95fr; align-items:center; gap:64px; padding:24px 0 42px; }
.brand-hero h1 { font-size:clamp(4.8rem,8.7vw,8rem); line-height:0.95; letter-spacing:-0.055em; margin:24px 0 0; }
.treat-word { color:#a92867; }
.brand-hero .hero-copy p { max-width:46ch; }
.hero-poster { background:#7653c5; border:2px solid #5d3e9e; color:#fff; padding:38px 34px; border-radius:130px 130px 32px 32px; transform:rotate(2deg); box-shadow:10px 14px 0 #efc55d; position:relative; text-align:center; }
.hero-poster img { background:#fff; padding:24px 18px; border-radius:22px; width:100%; height:auto; margin:22px 0 32px; }
.poster-title { font-family:'Fredoka',sans-serif; font-size:clamp(2.5rem,4vw,4rem); line-height:1.02; letter-spacing:-0.03em; margin:0 0 30px; }
.poster-dots { display:flex; justify-content:center; gap:8px; }
.poster-dots i { width:13px; height:13px; background:#ffd062; border-radius:50%; }
.poster-dots i:nth-child(2) { background:#ffabd5; }
.poster-dots i:nth-child(3) { background:#66e4e2; }
.poster-stops { display:grid; gap:12px; font-size:0.85rem; }
.poster-stops span { display:flex; gap:12px; justify-content:space-between; border-top:1px solid #bda7e6; padding-top:12px; }
.poster-stops b { color:#ffedb0; }
.section-kicker,.category-number { display:block; text-transform:uppercase; letter-spacing:0.1em; font-size:0.75rem; font-weight:800; color:#665083; margin:0 0 16px; line-height:1.6; }
.category-number { color:#795a95; }
.section-head h2,.mall-feature h2,.tracker-panel h2 { font-size:clamp(2.3rem,4.5vw,3.6rem); }
.card p,.link-card p,.callout p,.mall-feature p,.menu-item p,.location-card p { color:var(--muted); line-height:1.7; }
.card .text-link,.link-card .text-link { margin-top:16px; }
.text-link { display:inline-block; font-weight:800; text-decoration:underline; text-underline-offset:5px; color:#6939a1; padding:8px 0; }
.location-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.location-card { background:#fffdf9; border:1px solid #ded3e5; border-radius:30px; padding:32px; box-shadow:var(--shadow-soft); display:flex; flex-direction:column; align-items:flex-start; }
.location-card--eastridge-mall { background:#f2edfc; border-color:#d5c5e9; }
.location-card-top { display:flex; align-items:center; gap:14px; margin-bottom:24px; width:100%; }
.location-number { font-family:'Fredoka',sans-serif; font-size:2.1rem; color:#816c99; }
.status-badge { display:inline-flex; align-items:center; padding:9px 12px; border-radius:14px; font-size:0.77rem; font-weight:800; line-height:1.5; background:#e6ddf6; color:#54347e; }
.status-badge--open { background:#d9efe6; color:#245b47; }
.status-badge--temporarily-closed { background:#fce9c5; color:#694611; }
.location-card h3 { font-size:2.3rem; line-height:1.05; }
.location-card .location-address { color:var(--text); font-weight:800; margin-bottom:4px; }
.location-card .service-label { font-size:0.88rem; font-weight:700; }
.location-card .button-row { margin-top:auto; padding-top:24px; width:100%; }
.location-card .button,.location-card .button-secondary { font-size:0.88rem; padding:12px 16px; }
.location-hours { width:100%; font-size:0.88rem; line-height:1.5; margin:16px 0 0; }
.location-hours div { display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid var(--line); }
.location-hours dt { font-weight:700; }
.location-hours dd { margin:0; text-align:right; }
.small-note { font-size:0.86rem; line-height:1.6; }
.mall-feature { display:grid; grid-template-columns:1.3fr 0.7fr; gap:44px; padding:44px; border-radius:36px; background:#fae9ce; border:1px solid #e5cfac; }
.mall-feature p { max-width:58ch; }
.mall-feature-note { border-left:1px solid #d8bd93; padding-left:40px; display:flex; flex-direction:column; justify-content:center; }
.big-scoop { font-family:'Fredoka',sans-serif; font-size:clamp(3rem,5vw,5rem); color:#8c3e77; line-height:0.95; transform:rotate(-5deg); }
.mall-feature-note p { margin:26px 0 0; font-weight:700; }
.page-intro { margin-top:20px; }
.page-intro h1 { font-size:clamp(3rem,6.5vw,5.5rem); max-width:15ch; }
.headline-dot { color:#a92867; }
.opening-note { margin:26px 0; padding:22px 26px; border-left:5px solid #7353c8; background:#eee7fa; border-radius:0 20px 20px 0; line-height:1.65; }
.opening-note p { margin:8px 0 0; max-width:75ch; }
.feature-list { padding-left:22px; line-height:1.8; color:var(--muted); }
address { font-style:normal; margin:22px 0 10px; line-height:1.6; }
.menu-categories { display:flex; flex-wrap:wrap; gap:12px; margin:36px 0 0; }
.menu-categories a { padding:12px 18px; background:#fff; border:1px solid var(--line); border-radius:30px; font-weight:800; text-decoration:none; }
.menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.menu-item { padding:28px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.menu-item h3 { font-size:1.6rem; line-height:1.1; }
.menu-item-heading { display:flex; justify-content:space-between; align-items:start; gap:16px; }
.menu-price { font-weight:800; white-space:nowrap; }
.menu-state { display:inline-block; font-size:0.8rem; padding:7px 12px; background:#eee7fa; border-radius:12px; color:#54347e; font-weight:700; }
.menu-item img { max-height:240px; width:100%; object-fit:cover; border-radius:16px; margin-bottom:18px; }
.progress-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.progress-grid figure { margin:0; }
.progress-grid img { border-radius:24px; }
.progress-grid figcaption { margin:12px 0; line-height:1.5; }
.footer-panel { gap:38px; }
.footer-summary { flex:1; min-width:0; }
.footer-links { flex:1; align-content:start; line-height:1.6; gap:12px 20px; }
.footer-locations { display:grid; gap:16px; margin-top:14px; }
.footer-locations a { font-weight:800; text-decoration:none; }
.footer-locations span { display:block; font-weight:600; color:var(--muted); font-size:0.8rem; margin-top:3px; }
@media (max-width:980px) {
 .brand-hero { gap:30px; }
 .hero-poster { padding:30px 24px; }
 .location-card { padding:26px; }
 .location-grid .button-row { flex-direction:column; }
 .location-grid .button-row a { width:100%; }
 .mall-feature { gap:26px; padding:32px; }
 .site-nav a { padding:12px 9px; font-size:0.85rem; }
}
@media (max-width:780px) {
 html { scroll-padding-top:20px; }
 .page { padding-top:20px; }
 .brand-mark { width:150px; }
 .header-row { min-height:92px; padding:12px 0; }
 .site-nav { gap:8px; }
 .site-nav .nav-cta { margin-left:0; }
 .brand-hero,.location-grid,.mall-feature,.menu-grid,.progress-grid { grid-template-columns:1fr; }
 .brand-hero { padding-top:8px; gap:34px; }
 .brand-hero h1 { font-size:clamp(4.7rem,18vw,7rem); }
 .brand-hero .eyebrow { font-size:0.72rem; padding:0 10px; }
 .hero-poster { transform:none; max-width:500px; width:calc(100% - 10px); justify-self:start; border-radius:70px 70px 28px 28px; padding:28px; }
 .hero-poster img { max-width:320px; margin:18px auto 26px; }
 .poster-title { font-size:3rem; }
 .location-card { padding:26px 22px; }
 .location-card-top { gap:12px; }
 .location-card h3 { font-size:2rem; }
 .location-hours { font-size:0.81rem; }
 .location-hours div { flex-wrap:wrap; gap:4px 12px; }
 .mall-feature { padding:28px; }
 .mall-feature-note { border-left:0; border-top:1px solid #d8bd93; padding:30px 0 0; }
 .big-scoop { font-size:3.6rem; }
 .footer-panel { padding:24px; }
 .page-intro h1 { font-size:clamp(2.8rem,12vw,4.5rem); }
 .breadcrumbs { font-size:0.78rem; margin-bottom:20px; }
 .hero-actions a,.button-row a { max-width:100%; }
 .eyebrow { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) { html {scroll-behavior:auto;} *,*::before,*::after {transition:none!important;animation:none!important;} }

.button, .button-secondary { color: #241b36; }
.location-card h2 { font-size: 2.3rem; line-height: 1.05; }
@media (max-width:780px) { .location-card h2 { font-size:2rem; } }
