/* Public page geometry. Keep all page shells tied to these two values. */
:root{--site-content-max:1560px;--site-gutter:clamp(16px,3vw,48px)}
body,body.workspace-mode{
 --discovery-max:var(--site-content-max);
 --discovery-gutter:var(--site-gutter);
}
body:not(.admin) .site-header,body:not(.admin) .site-footer{
 box-sizing:border-box;width:100%;max-width:none;margin-inline:0;
 padding-inline:max(var(--site-gutter),calc((100% - var(--site-content-max))/2));
}
body:not(.admin) .home-content,body:not(.admin) .landing-content,
body:not(.admin) .discover-results,body:not(.admin) .workspace-detail,
body:not(.admin) .workspace-extras,body:not(.admin) .town-wrap,
body:not(.admin) .stories-wrap,body:not(.admin) .story-article-wrap,
body:not(.admin) .blog-wrap,body:not(.admin) .article-wrap,
body:not(.admin) .content-wrap,body:not(.admin) .discovery-wrap,
body:not(.admin) .discovery-wrap.narrow,body:not(.admin) .generator-layout,
body:not(.admin) .submit-entry-card{
 box-sizing:border-box;
 width:min(var(--site-content-max),calc(100% - 2 * var(--site-gutter)));
 max-width:none;min-width:0;margin-inline:auto;
}
body:not(.admin) .home-content,body:not(.admin) .landing-content,
body:not(.admin) .discover-results,body:not(.admin) .workspace-detail,
body:not(.admin) .workspace-extras,body:not(.admin) .town-wrap,
body:not(.admin) .stories-wrap,body:not(.admin) .story-article-wrap,
body:not(.admin) .blog-wrap,body:not(.admin) .article-wrap,
body:not(.admin) .content-wrap,body:not(.admin) .discovery-wrap,
body:not(.admin) .generator-layout{padding-inline:0}
body:not(.admin) .story-article,body:not(.admin) .story-article-head,
body:not(.admin) .story-article-grid,body:not(.admin) .story-lead,
body:not(.admin) .story-prose,body:not(.admin) .event-detail-panel,
body:not(.admin) .event-detail-content,
body:not(.admin) .content-wrap>.content-card{
 box-sizing:border-box;width:100%;max-width:100%;min-width:0;
}
body:not(.admin) .event-detail-content{padding:28px 25px}
/* Hero backgrounds remain edge to edge; their content uses the same shell. */
body.landing-mode .home-hero,body.town-page .town-local-hero{
 box-sizing:border-box;width:100%;max-width:none;margin-inline:0;
 padding-inline:var(--site-gutter);
}
body.landing-mode .home-hero-inner,
body.town-page .town-local-hero .town-hero-copy{
 width:100%;max-width:var(--site-content-max);margin-inline:auto;
}
