/* Host adaptations keep the existing navigation and content below the campaign. */
body[data-campaign-home] > .masthead { max-width:none; height:76px; padding:12px clamp(20px,5vw,88px); margin:0; border:0; }
body[data-campaign-home] > .masthead .wordmark { font-size:25px; letter-spacing:-1px; }
body[data-campaign-home] main { max-width:none; padding:0 clamp(20px,5vw,88px); }
body[data-campaign-home] .property-grid { gap:24px; }
body[data-campaign-home] .hero-actions { padding-block:32px; }
body[data-campaign-home] [data-press-record] { margin-block:0 24px; border-radius:6px; }
@media(max-width:600px) {
 body[data-campaign-home] > .masthead { height:110px; padding:10px 20px; flex-wrap:wrap; }
 body[data-campaign-home] > .masthead .wordmark { font-size:20px; letter-spacing:-.8px; }
 body[data-campaign-home] .masthead-nav { gap:12px; }
 body[data-campaign-home] main { padding-inline:20px; }
}

/* Existing legacy shells keep their content widths; only the campaign breaks out. */
html:has(body > #bs-campaign-banner[data-campaign-banner]) { overflow-x: clip; }
body:has(> #bs-campaign-banner[data-campaign-banner]) { margin-top: 0; padding-top: 0; }
body:has(> #bs-campaign-banner[data-campaign-banner]) > #bs-campaign-banner[data-campaign-banner] {
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
}
/* These two existing experiences lock the whole body instead of their app. */
body:has(> #bs-campaign-banner):has(> .app > #stage),
body.gate-locked:has(> #bs-campaign-banner):has(#essayShell[hidden]) {
  height: auto;
  overflow-y: auto;
}
/* The hidden essay remains hidden; its existing judgment gate is still required. */
body:has(> #bs-campaign-banner):has(> .stage > .screen) {
  height: auto;
  display: block;
}
body:has(> #bs-campaign-banner) > .stage:has(> .screen) { margin-inline: auto; }
/* Fixed headers become sticky within the original content after the campaign. */
body:has(> #bs-campaign-banner) > :is(.article-nav, .career-nav),
body:has(> #bs-campaign-banner) > .page > .nav {
  position: sticky;
  top: 0;
}
/* The Blacklisted experience keeps its header inside its existing app. */
body:has(> #bs-campaign-banner) > .app > .topline { position: absolute; }
