/* Shared page geometry. Keep content on the same center line at every width. */
:root{--page-width:1200px;--page-gutter:clamp(18px,4vw,56px);--card-gap:24px}
.wrap{width:calc(100% - var(--page-gutter)*2);max-width:var(--page-width);margin-inline:auto}
main,section,article,header,footer{min-width:0}
.section-head,.section-head>div,.catalog-heading{width:100%;text-align:center}
.section-title,.section-tagline{margin-inline:auto}
.story-copy{text-align:center}
.story-copy p{margin-inline:auto;max-width:440px}
.story,.corporate-feature,.catering-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.story-image,.corporate-photo,.catering-hero-photo{width:100%;max-width:100%;margin-inline:auto}
.location-controls{flex-direction:column;align-items:center;gap:20px}
.location-controls .tabs{justify-content:center;margin:0}
.location-controls .search{width:min(100%,480px)}
.location-controls .search input{width:100%;min-width:0}
.location-count,#locations>.fine{text-align:center;margin-inline:auto}
/* Flex wrapping centers the last row, including filtered results. */
.event-grid,.flavor-grid,.location-grid,.catalog-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--card-gap);align-items:stretch}
.event-grid>.event-card,.flavor-grid>.flavor-card,.location-grid>.location-card,.catalog-grid>.catalog-card{width:calc((100% - var(--card-gap)*2)/3);min-width:0;flex:0 0 auto}
.event-card,.location-card,.catalog-card{display:flex;flex-direction:column;text-align:center}
#markets .event-card h3{min-height:2.6em;display:flex;align-items:center;justify-content:center}
#markets .event-card p:not(.event-address){min-height:3.3em}
.location-card h3{font-size:24px;min-height:2.6em;display:flex;align-items:center;justify-content:center}
.location-card .eyebrow{justify-content:center;min-height:3em}
.location-card .vegan-badge{align-self:center}
.location-actions{justify-content:center}
.flavor-card{display:flex;flex-direction:column;text-align:center}
.flavor-card .flavor-img{flex:none;width:100%}
.flavor-card>a{align-self:center;margin-top:auto}
.catalog-card-body{display:flex;flex:1;flex-direction:column}
.catalog-card h3{min-height:2.6em;display:flex;justify-content:center;align-items:center}
.catalog-builder{margin-top:auto}
.catalog-card .catalog-result:empty{display:none}
.intake-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:center}
.intake-copy{text-align:center}
.contact-note{max-width:400px}
.program-card{display:flex;flex-direction:column}
.program-card ul{max-width:450px;margin-inline:auto}
.catalog-page footer{justify-content:center;text-align:center}
.wrap.catering-order-inner{max-width:1000px}
.wrap.catering-answers,.wrap.fundraiser-faq{max-width:800px}
footer .footer-logo{margin-inline:auto}
footer>div{text-align:center}
body footer a,body footer button{text-align:center;margin-inline:auto}
.footer-bottom{justify-content:center;text-align:center;gap:24px}
@media(min-width:1101px){
 body header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:24px;height:auto;min-height:116px;padding:10px max(var(--page-gutter),calc((100% - var(--page-width))/2))}
 body header>.brand{justify-self:start}
 body header>nav{justify-self:center;max-width:600px}
 body header>.btn{justify-self:end;font-size:26px;max-width:260px;padding-inline:22px}
 body header>.btn.pickup-cta{font-size:24px;white-space:nowrap;gap:10px;max-width:100%}
}
@media(min-width:761px){
 footer:not(.fundraiser-footer):not(.catering-footer){grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
 .fundraiser-footer>div:first-child,.catering-footer>div:first-child{grid-column:auto}
 .story-image{height:480px;border-radius:100px 100px 18px 18px}
 .occasion.fund{text-align:center}
 .mercantile-menu .mercantile-showcase{grid-template-columns:1fr;max-width:900px;margin-inline:auto}
 .mercantile-menu .mercantile-photos{width:220px;margin-inline:auto}
 .catalog-checkout{max-width:900px}
}
@media(min-width:761px) and (max-width:1100px){
 body header{height:auto;min-height:116px;display:grid;grid-template-columns:1fr 1fr;padding:12px var(--page-gutter);gap:10px 20px}
 body header>.brand{grid-column:1;grid-row:1;justify-self:start}
 body header>.btn{grid-column:2;grid-row:1;justify-self:end}
 body header>nav{grid-column:1/-1;grid-row:2;justify-content:center;justify-self:center;max-width:100%;padding-bottom:8px}
 .event-grid>.event-card,.flavor-grid>.flavor-card,.location-grid>.location-card,.catalog-grid>.catalog-card{width:calc((100% - var(--card-gap))/2)}
 .story,.corporate-feature,.catering-hero-grid,.intake-layout{gap:30px}
}
@media(max-width:760px){
 .event-grid>.event-card,.flavor-grid>.flavor-card,.location-grid>.location-card,.catalog-grid>.catalog-card{width:100%}
 .story,.corporate-feature,.catering-hero-grid,.intake-layout{grid-template-columns:minmax(0,1fr);gap:30px}
 #markets .event-card h3,#markets .event-card p:not(.event-address),.location-card h3,.catalog-card h3{min-height:0}
 .location-controls .tabs{width:100%}
 .location-card .eyebrow{min-height:0}
 .footer-bottom{display:block}
}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .roll-mask-ready .reveal-stage{height:calc(100svh - 180px);min-height:560px}
}
