/* One side-padding and content width for every inner page (same values as the homepage and the global header). */
body:not(.home){--ofh-gutter:clamp(20px,4.2vw,68px);--ofh-shell-width:1600px;}
body:not(.home) :not(.ofh-footer)>.ofh-container{box-sizing:border-box;width:100%;max-width:var(--ofh-shell-width);margin-inline:auto;padding-inline:var(--ofh-gutter);}
body:not(.home) .ofh-header__inner{box-sizing:border-box;max-width:var(--ofh-shell-width);margin-inline:auto;}
/* Voucher Check page: same edges as the rest of the site. */
body:has(.ofhv-shell) .ofhv-shell{box-sizing:border-box;width:100%;max-width:none;margin:0;padding-inline:0;}

/* v21: header normal-flow rules for Contact + Voucher pages (listing-ui.css is not enqueued there) */
body:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .ofh-header__inner{max-width:1600px;padding:18px var(--ofh-gutter);gap:22px;min-height:96px}
body:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .ofh-header:not(.is-scroll-header):not(.is-drawer-open){position:relative;top:auto;left:auto;right:auto;z-index:950;background:#fff;border-bottom:1px solid #e4ebf2;box-shadow:none}
body:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .ofh-header.is-scroll-header.is-over-dark{background:#fff}
body.admin-bar:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .ofh-header:not(.is-scroll-header):not(.is-drawer-open){top:auto!important}
body:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .ofh-footer{margin:0;padding:0;border-radius:0}
body:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .ofh-footer>.ofh-container{max-width:1600px;padding:42px clamp(24px,4.3vw,69px) 30px}
/* v22: remove the old overlay-header top offset (header-global.css:85) on pages whose header is now in normal flow */
body:has(.ofh-housing-page,.ofhv-shell,.ofhc-page,.ofh-start) .site.grid-container{padding-top:0!important;}
/* v23: GeneratePress .inside-article top padding (22px) created a gap under the normal-flow header on the Voucher page */
body:has(.ofhv-shell) .inside-article,body:has(.ofhv-shell) .entry-content{padding-top:0!important;margin-top:0!important;}
/* v25: Voucher hero is full-bleed and sits flush under the header (no gap) */
body:has(.ofhv-shell) .site-content,body:has(.ofhv-shell) .content-area,body:has(.ofhv-shell) .site-main,body:has(.ofhv-shell) article.page{margin-top:0!important;padding-top:0!important;}
body:has(.ofhv-shell) .ofh-header{margin-bottom:0!important;}
body:has(.ofhv-shell) .ofh-header-spacer{height:0!important;}
/* v26: Get Started page (ofh-leads) — header in normal flow so it no longer overlaps the banner/breadcrumb */
body:has(.ofh-start) .ofh-start__banner{padding-top:34px;}
/* v28: GeneratePress .inside-article has 22px side padding — it made the Voucher banner narrower than the screen. Banner must be edge to edge. */
body:has(.ofhv-shell) .inside-article,body:has(.ofhv-shell) .entry-content,body:has(.ofhv-shell) .site-content{padding:0!important;margin:0!important;max-width:none!important;}
/* v29: Listing pages (/housing/ + every city page) — banner is full width, edge to edge, flush under the header */
main.ofh-housing-page .ofh-city-wrap{padding:0!important;}
main.ofh-housing-page .ofh-city-wrap>.ofh-container{max-width:none!important;width:100%;padding:0!important;margin:0;}
main.ofh-housing-page .ofh-city-hero{border-radius:0;width:100%;height:clamp(230px,calc(min(100vw,1920px)/4.6),400px);padding-left:max(var(--ofh-gutter,48px),calc((100% - 1600px)/2 + var(--ofh-gutter,48px)));padding-right:var(--ofh-gutter,48px);}
main.ofh-housing-page .ofh-city-wrap .ofh-crumbs{box-sizing:border-box;max-width:1600px;margin:0 auto;padding:14px var(--ofh-gutter,48px) 0;}
main.ofh-housing-page .ofh-city-wrap+.ofh-container,main.ofh-housing-page .ofh-city-wrap~.ofh-housing-topsearch{margin-top:14px;}
@media(max-width:640px){main.ofh-housing-page .ofh-city-hero{height:auto;min-height:230px;padding-block:28px;}}
