/* Native ad breaks: standard slots drawn in server HTML. CSS picks the size by
   available space; boot.js offers the box to Raptive at that size (Nov 13).
   The blue fill and captions are LOCAL/DEV only (html[data-fs-dev-ads="on"]). */
.fs-shared-ad{container-type:inline-size;box-sizing:border-box;min-width:0;width:100%;margin:0;padding:12px 0;grid-column:1/-1}
.fs-shared-ad-host{display:contents}
.fs-shared-ad-creative{display:none;position:relative;box-sizing:border-box;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;margin-inline:auto;height:var(--fs-native-ad-height,100px);font:500 12px/1.4 system-ui,sans-serif;letter-spacing:0;text-transform:none;text-align:center}
html[data-fs-dev-ads="on"] .fs-shared-ad-creative{outline:1px solid var(--fs-ad-layout-border,#168ec4);outline-offset:-1px;background:linear-gradient(135deg,var(--fs-ad-layout-bg,#e1f3ff),color-mix(in srgb,var(--fs-ad-layout-bg,#e1f3ff) 85%,#168ec4));color:var(--fs-ad-layout-ink,#15567d)}
/* Captions are dev decoration; production draws only the reserved box. */
html:not([data-fs-dev-ads=on]) .fs-shared-ad-creative>:not(.fs-ad-target){display:none}
/* The offered target fills the box. Once Raptive puts an ad in it the box
   keeps its reserved height and grows to the ad (Google's fluid size is in
   every Raptive slot); nothing is clipped, scaled or hidden. */
:is(.fs-shared-ad-creative,.fs-content-ad-creative)>.fs-ad-target{position:absolute;inset:0}
:is(.fs-shared-ad-creative,.fs-content-ad-creative):has(>.fs-ad-target>*){height:auto;min-height:var(--fs-native-ad-height,90px);padding:0;gap:0}
:is(.fs-shared-ad-creative,.fs-content-ad-creative):has(>.fs-ad-target>*)>.fs-ad-target{position:relative;inset:auto;width:100%}
:is(.fs-shared-ad-creative,.fs-content-ad-creative):has(>.fs-ad-target>*)>:not(.fs-ad-target){display:none}
/* Raptive gives Content containers a 250 px minimum; cap it at the creative in the short boxes. */
:is(.fs-shared-ad-creative,.fs-content-ad-creative):not([data-fs-ad-format=medium-rectangle])>.fs-ad-target>.adthrive-ad{min-height:0!important;margin-top:0!important;margin-bottom:0!important}
/* Dev read-out: LIVE once the box is offered, AD BOX PLACED once Raptive answered. */
html[data-fs-dev-ads="on"] :is(.fs-shared-ad-creative,.fs-content-ad-creative):has(>.fs-ad-target[data-fs-ad-target])>:first-child::before{content:'\25CF  LIVE \B7  '}
html[data-fs-dev-ads="on"] :is(.fs-shared-ad-creative,.fs-content-ad-creative):has(>.fs-ad-target>*):not(:has(iframe))::after{content:'\25CF  LIVE \B7  AD BOX PLACED';font-size:10px;font-weight:700;letter-spacing:.12em}
/* A page that may not load ads (Premium, odds) never shows a slot box. */
html.fs-ads-off body :is(.fs-shared-ad,.fs-content-ad){display:none!important}
.fs-shared-ad-label{font-size:10px;font-weight:700;letter-spacing:.12em}
.fs-shared-ad-creative small{font-size:10px;opacity:.8;overflow-wrap:anywhere}
@container(min-width:300px){
  .fs-shared-ad-creative{display:flex;width:300px;--fs-native-ad-height:100px}
  .fs-shared-ad-dimensions:after{content:'rail-banner \b7  300\d7 100 px'}
  [data-ad-shape=rectangle]>.fs-shared-ad-creative{width:300px;--fs-native-ad-height:250px}
  [data-ad-shape=rectangle] .fs-shared-ad-dimensions:after{content:'medium-rectangle \b7  300\d7 250 px'}
}
@container(min-width:320px){
  [data-ad-shape=banner]>.fs-shared-ad-creative{width:320px}
  [data-ad-shape=banner] .fs-shared-ad-dimensions:after{content:'rail-banner \b7  320\d7 100 px'}
}
@container(min-width:728px){
  [data-ad-shape]>.fs-shared-ad-creative{width:728px;--fs-native-ad-height:90px}
  [data-ad-shape] .fs-shared-ad-dimensions:after{content:'leaderboard \b7  728\d7 90 px'}
}
.cb-bottom .fs-shared-ad{padding-block:24px}
@media(min-width:768px){.fs-shared-ad{padding-block:24px}}
html[data-fs-membership=premium] .fs-shared-ad,html:has([data-premium=true][data-status=premium]) .fs-shared-ad,body:has([data-college-odds]) .fs-shared-ad,body:has(.saved-league-setup) .fs-shared-ad{display:none}
html:is([data-fs-page-theme=dark],[data-fs-theme=dark],[data-index-tone=dark]) .fs-shared-ad,body[data-setup-document] .fs-shared-ad,.game-viewer-shell .fs-shared-ad{--fs-ad-layout-bg:#102e46;--fs-ad-layout-border:#359ac7;--fs-ad-layout-ink:#a9dfff}
html:is([data-fs-theme=light],[data-index-tone=light]) .fs-shared-ad{--fs-ad-layout-bg:#e1f3ff;--fs-ad-layout-border:#168ec4;--fs-ad-layout-ink:#15567d}
/* Also suppress the retired placement in cached standalone documents. */
.fs-common-footer .fs-shared-ad{display:none}
/* Only a visible ad break replaces normal content spacing. Hidden reservations
   stay in the DOM for the dev toggle and premium accounts. */
:where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) .cb-bottom:has(>[data-shared-ad=article-before],>.fs-shared-ad-host>[data-shared-ad=article-before]){padding-top:0}
:where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) .cb-bottom:has([data-shared-ad=article-after]) .guide-content>:is(.index-guide,.questions):last-child{padding-bottom:0}
:where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) .cb-bottom .fs-shared-ad + :is(.cb-college,.cb-fanspeak,.cb-simulators){margin-top:0;padding-top:0;border-top:0}
:where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) .cb-bottom .fs-shared-ad-host:has([data-shared-ad=article-after]) + .cb-discovery > :is(.cb-college,.cb-fanspeak){margin-top:0;padding-top:0;border-top:0}
/* Retain the production slots; native previews replace only their dev boundaries. */
.simulator-lower:has([data-shared-ad=article-before])>[data-sim-ad-break=simulator-before-guide],.cb-bottom:has([data-shared-ad=article-after])>[data-sim-ad-break=simulator-after-guide],body[data-setup-document]:has([data-shared-ad=article-before]) [data-sim-ad-break$="-setup-under-form"]{display:none}
/* Ads are siblings of comparison cards, never children of those cards. */
:where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) [data-matchup-lab] .cl-signal-pair:has([data-shared-ad]){row-gap:0}
[data-matchup-lab] .cl-signal-pair>[data-shared-ad],
[data-matchup-lab] .cl-signal-pair>.fs-shared-ad-host>.fs-shared-ad{grid-column:auto}
:where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) [data-matchup-lab] .fs-shared-ad-host:has([data-shared-ad=college-compare-before-matchups])+.cs-setup-matchups{margin-top:0}
@media(min-width:768px){
  [data-matchup-lab] :is([data-shared-ad=college-compare-season-stats],[data-shared-ad=college-compare-draft-outlook]){display:none}
  [data-matchup-lab] .cl-signal-pair:has([data-shared-ad])>.cl-season-card{grid-column:1;grid-row:1}
  [data-matchup-lab] .cl-signal-pair:has([data-shared-ad])>.cl-draft-card{grid-column:2;grid-row:1}
}
@media(max-width:767px){
  :where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) [data-matchup-lab] .cl-workbench:has(>.cl-signal-pair [data-shared-ad]){gap:0}
  :where(html:not([data-fs-dev-ads=off]):not([data-fs-membership=premium]):not(:has([data-premium=true][data-status=premium]))) [data-matchup-lab] .cl-workbench:has(>.cl-signal-pair [data-shared-ad])>.cl-frame-summary{margin-bottom:0}
  [data-matchup-lab] .cl-signal-pair:has([data-shared-ad])+.cl-production{padding-top:12px}
}
