/* Ad slots */
.ad-slot { margin: 14px 0; }
.ad-slot-inner{
  min-height: 90px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.10);
  background: linear-gradient(180deg, rgba(2,6,23,.04), rgba(2,6,23,.00));
  overflow: hidden;
}
.ad-slot .revive-ad{ min-height: 90px; }

/* Sidebar ad can be taller */
.ad-slot--sidebar .ad-slot-inner{ min-height: 250px; }

/* =========================================================
   AD SLOTS
   ========================================================= */

.ad-slot {
  background-color: var(--pltm-bg-surface-muted);
  border-radius: 0.75rem;
  border: 1px solid var(--pltm-border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  min-height: 90px; /* prevents collapse if/when no creative */
}

.ad-slot__img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 0.5rem;
}

/* Optional: different heights if you want */
.ad-slot--sidebar {
  min-height: 140px;
}

.ad-slot--tall {
  min-height: 260px;
}


/* v3.9.23 reliable Revive iframe sizing */
.vipn-ad-slot-inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vipn-revive-frame {
  max-width: 100%;
  border: 0;
  background: transparent;
}
.ad-slot--leaderboard .vipn-ad-slot-inner,
.vipn-adslot--leaderboard .vipn-ad-slot-inner {
  min-height: 90px;
}
.ad-slot--box .vipn-ad-slot-inner,
.vipn-side-ad .vipn-ad-slot-inner {
  min-height: 250px;
}
.ad-slot--mobile .vipn-ad-slot-inner {
  min-height: 50px;
}


/* v3.9.24 leaderboard ad sizing fix
   Keep 728x90 leaderboard creatives centered without a wide blank card. */
.ad-slot--leaderboard {
  width: min(100%, 728px);
  max-width: 728px;
  min-height: 90px;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.ad-slot--leaderboard .vipn-ad-slot-inner,
.ad-slot--leaderboard .ad-slot-inner {
  width: min(100%, 728px);
  max-width: 728px;
  min-height: 90px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 12px;
  overflow: hidden;
}
.ad-slot--leaderboard iframe,
.ad-slot--leaderboard .vipn-revive-frame {
  width: 728px !important;
  max-width: 100% !important;
  height: 90px !important;
  margin: 0 auto !important;
}


/* v3.9.29 Revive async delivery + full leaderboard creative support
   The template now uses Revive's async <ins> tag instead of a direct iframe. */
.ad-slot,
.vipn-ad-slot {
  box-sizing: border-box;
}

.vipn-ad-slot-inner,
.ad-slot-inner {
  overflow: visible;
}

.vipn-revive-async,
.vipn-revive-async > *,
.vipn-revive-async img,
.vipn-revive-async a,
.vipn-revive-async object,
.vipn-revive-async embed {
  max-width: 100% !important;
}

.vipn-revive-async {
  display: block !important;
  width: 100% !important;
  min-height: 1px;
  margin: 0 auto !important;
  text-align: center !important;
}

.ad-slot--leaderboard {
  width: min(100%, 970px) !important;
  max-width: 970px !important;
  min-height: 90px;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.ad-slot--leaderboard .vipn-ad-slot-inner,
.ad-slot--leaderboard .ad-slot-inner {
  width: 100% !important;
  max-width: 970px !important;
  min-height: 90px;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  overflow: visible !important;
  display: grid !important;
  place-items: center !important;
}

.ad-slot--leaderboard .vipn-revive-async,
.ad-slot--leaderboard .revive-ad {
  width: 100% !important;
  max-width: 970px !important;
  min-height: 90px;
  overflow: visible !important;
}

.ad-slot--leaderboard img {
  display: block !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  border: 0 !important;
}

.ad-slot--box .vipn-revive-async,
.ad-slot--box .revive-ad,
.vipn-side-ad .vipn-revive-async,
.vipn-side-ad .revive-ad {
  max-width: 300px !important;
  min-height: 250px;
}

/* v3.9.45 Platinum Ads Manager native ad rendering */
.vipn-platinum-ad{
  width:100%;
  min-height:inherit;
  display:grid;
  place-items:center;
  text-align:center;
}
.platinum-ad-placeholder{
  width:100%;
  min-height:72px;
  display:grid;
  place-items:center;
  border:1px dashed rgba(51,102,153,.24);
  border-radius:14px;
  color:rgba(15,23,42,.42);
  background:linear-gradient(135deg, rgba(51,102,153,.06), rgba(245,196,0,.05));
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.72rem;
}
.vipn-platinum-ad.has-ad .platinum-ad-placeholder{display:none;}
.platinum-ad-render{width:100%;display:grid;place-items:center;gap:.35rem;}
.platinum-ad-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(100,116,139,.78);font-weight:800;line-height:1;}
.platinum-ad-render img{display:block;max-width:100%!important;height:auto!important;border:0;border-radius:12px;object-fit:contain;margin:0 auto;}
.platinum-ad-render a{display:inline-block;max-width:100%;}
.platinum-ad-render--html iframe,.platinum-ad-render--fallback-html iframe{max-width:100%;}
.ad-slot--leaderboard .platinum-ad-placeholder{min-height:90px;}
.ad-slot--leaderboard .platinum-ad-render img{max-height:none!important;}
.ad-slot--box .platinum-ad-placeholder,.vipn-side-ad .platinum-ad-placeholder{min-height:250px;}
.vipn-ad-slot.is-loading .platinum-ad-placeholder{animation:platinumAdPulse 1.5s ease-in-out infinite;}
@keyframes platinumAdPulse{0%,100%{opacity:.55}50%{opacity:1}}

/* v3.9.47: Platinum native ad fallback polish */
.platinum-house-ad{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.2rem;min-width:min(100%,280px);min-height:84px;padding:18px 20px;border-radius:18px;background:linear-gradient(135deg,#0d6efd,#063f8f);color:#fff!important;text-decoration:none;box-shadow:0 18px 44px rgba(13,110,253,.20);position:relative;overflow:hidden}
.platinum-house-ad:after{content:"";position:absolute;right:-34px;top:-34px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.16)}
.platinum-house-ad span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;opacity:.88}
.platinum-house-ad strong{font-size:1.05rem;line-height:1.15}
.platinum-house-ad em{font-style:normal;font-size:.82rem;opacity:.9}
.platinum-house-ad:hover{transform:translateY(-1px);filter:brightness(1.04)}
.platinum-ad-render--house,.platinum-ad-render--fallback-html{width:100%}
.platinum-ad-render--image img{max-width:100%;height:auto;object-fit:contain}


/* v3.9.65: sitewide Platinum Ads Manager slot placement */
.vipn-native-mid-ad,
.vipn-article-inline-ad,
.vipn-article-top-ad,
.vipn-service-top-ad,
.vipn-service-sponsored,
.election-ad-section,
.vipn-footer-ad{
  width:100%;
  margin:clamp(1rem,2vw,1.5rem) auto;
}
.vipn-native-mid-ad .ad-slot,
.vipn-article-inline-ad .ad-slot,
.vipn-service-sponsored .ad-slot,
.election-ad-section .ad-slot,
.vipn-footer-ad .ad-slot{
  margin:0 auto;
}
.ad-slot--in_article{
  width:min(100%, 728px);
  max-width:728px;
  min-height:90px;
  margin:0 auto;
  padding:0;
  background:transparent;
  border:0;
}
.ad-slot--in_article .vipn-ad-slot-inner,
.ad-slot--in_article .ad-slot-inner{
  min-height:90px;
  width:100%;
  background:rgba(255,255,255,.66);
  border:1px solid rgba(51,102,153,.12);
  border-radius:18px;
  box-shadow:0 14px 34px rgba(15,23,42,.07);
}
.ad-slot--footer{
  width:min(100%, 728px);
  max-width:728px;
  min-height:90px;
  margin:0 auto;
  padding:0;
  background:transparent;
  border:0;
}
.ad-slot--footer .vipn-ad-slot-inner,
.ad-slot--footer .ad-slot-inner{
  min-height:90px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(148,163,184,.18);
  border-radius:18px;
}
.vipn-footer-ad{padding-top:1.25rem;padding-bottom:.25rem;}
.vipn-article-top-ad{margin-bottom:clamp(1rem,2vw,1.5rem);}
.vipn-service-top-ad{margin-bottom:clamp(1rem,2vw,1.5rem);}
.vipn-service-sponsored{margin-top:clamp(1rem,2vw,1.5rem);}
.election-ad-section{margin-top:1.5rem;margin-bottom:1.5rem;}
.ad-slot--mobile{display:none;}
@media (max-width: 767.98px){
  .ad-slot--leaderboard{width:min(100%, 320px);max-width:320px;min-height:100px;}
  .ad-slot--leaderboard .vipn-ad-slot-inner,
  .ad-slot--leaderboard .ad-slot-inner{width:min(100%, 320px);max-width:320px;min-height:100px;}
  .ad-slot--mobile{display:flex;width:min(100%,320px);max-width:320px;margin:0 auto;}
  .ad-slot--mobile .vipn-ad-slot-inner,.ad-slot--mobile .ad-slot-inner{min-height:100px;}
  .vipn-footer-ad{padding-left:1rem;padding-right:1rem;}
}
[data-theme="dark"] .ad-slot--in_article .vipn-ad-slot-inner,
[data-bs-theme="dark"] .ad-slot--in_article .vipn-ad-slot-inner{
  background:rgba(15,23,42,.72);
  border-color:rgba(148,163,184,.18);
}

/* v3.9.67: polished Platinum Ad slots and responsive house ads */
.vipn-ad-slot,
.ad-slot{
  --vipn-ad-zone-w: 300px;
  --vipn-ad-zone-h: 250px;
  width: 100%;
  max-width: var(--vipn-ad-zone-w);
  min-height: var(--vipn-ad-zone-h);
  margin: clamp(14px, 2vw, 22px) auto;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}
.ad-slot--leaderboard,
.ad-zone--leaderboard,
.ad-zone--storm_alert,
.ad-zone--election_results{
  --vipn-ad-zone-w: 950px;
  --vipn-ad-zone-h: 95px;
}
.ad-slot--in_article{
  --vipn-ad-zone-w: 728px;
  --vipn-ad-zone-h: 90px;
}
.ad-slot--footer{
  --vipn-ad-zone-w: 728px;
  --vipn-ad-zone-h: 90px;
}
.ad-slot--mobile,
.ad-zone--mobile{
  --vipn-ad-zone-w: 320px;
  --vipn-ad-zone-h: 100px;
}
.ad-slot--box,
.ad-slot--sidebar,
.ad-zone--sidebar{
  --vipn-ad-zone-w: 300px;
  --vipn-ad-zone-h: 250px;
}
.vipn-ad-slot-inner,
.ad-slot-inner{
  width: 100% !important;
  max-width: var(--vipn-ad-zone-w) !important;
  min-height: var(--vipn-ad-zone-h) !important;
  margin: 0 auto !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 1px solid rgba(51,102,153,.14) !important;
  border-radius: 20px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.92)),
    radial-gradient(circle at 0 0, rgba(245,196,0,.12), transparent 42%),
    radial-gradient(circle at 100% 100%, rgba(51,102,153,.16), transparent 38%) !important;
  box-shadow: 0 14px 34px rgba(15,23,42,.08) !important;
  overflow: hidden !important;
}
.vipn-platinum-ad,
.platinum-ad-render{
  width: 100%;
  max-width: var(--vipn-ad-zone-w);
  min-height: var(--vipn-ad-zone-h);
}
.platinum-ad-render{
  display: grid;
  grid-template-rows: auto 1fr;
  place-items: center;
  padding: 7px;
  gap: 5px;
}
.platinum-ad-label{
  justify-self: start;
  margin-left: 4px;
  font-size: .58rem;
  line-height: 1;
  color: rgba(71,85,105,.72);
  letter-spacing: .12em;
}
.platinum-ad-render a:not(.platinum-house-ad){
  display: grid;
  place-items: center;
  width: 100%;
  max-width: 100%;
}
.platinum-ad-render img{
  width: auto !important;
  max-width: 100% !important;
  max-height: calc(var(--vipn-ad-zone-h) - 26px) !important;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 14px !important;
}
.ad-slot--leaderboard .platinum-ad-render img,
.ad-zone--storm_alert .platinum-ad-render img,
.ad-zone--election_results .platinum-ad-render img,
.ad-slot--footer .platinum-ad-render img,
.ad-slot--in_article .platinum-ad-render img{
  max-height: calc(var(--vipn-ad-zone-h) - 22px) !important;
}
.platinum-ad-placeholder{
  width: 100%;
  min-height: var(--vipn-ad-zone-h);
  border: 1px dashed rgba(51,102,153,.24);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(51,102,153,.07), rgba(245,196,0,.08));
}
.platinum-house-ad{
  width: 100%;
  min-width: 0;
  min-height: calc(var(--vipn-ad-zone-h) - 26px);
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 3px;
  padding: clamp(14px, 2.4vw, 22px);
  border-radius: 16px;
  color: #fff !important;
  text-decoration: none !important;
  background:
    radial-gradient(circle at 92% 12%, rgba(245,196,0,.42), transparent 30%),
    linear-gradient(135deg, #0758bd 0%, #174f91 55%, #0b315e 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 28px rgba(13,70,140,.22);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.platinum-house-ad:before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(255,255,255,.08), transparent 55%);
  z-index:-1;
}
.platinum-house-ad:after{
  content:"";
  position:absolute;
  width: 120px;
  height: 120px;
  right: -42px;
  top: -42px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  z-index:-1;
}
.platinum-house-ad__eyebrow,
.platinum-house-ad span{
  font-size: clamp(.58rem, .9vw, .72rem);
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-weight: 900;
  opacity: .92;
}
.platinum-house-ad strong{
  font-size: clamp(1rem, 1.35vw, 1.45rem);
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -.03em;
}
.platinum-house-ad em{
  max-width: 42ch;
  font-style: normal;
  font-size: clamp(.72rem, .95vw, .92rem);
  line-height: 1.25;
  opacity: .94;
}
.platinum-house-ad b{
  margin-top: 4px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.22);
  font-size: .72rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.platinum-house-ad b:after{content:"→";font-size:.95rem;line-height:0;}
.platinum-house-ad:hover{transform: translateY(-1px); filter: brightness(1.04);}
.ad-slot--leaderboard .platinum-house-ad,
.ad-zone--storm_alert .platinum-house-ad,
.ad-zone--election_results .platinum-house-ad,
.ad-slot--footer .platinum-house-ad,
.ad-slot--in_article .platinum-house-ad{
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "eyebrow cta"
    "title cta"
    "detail cta";
  align-items: center;
  min-height: calc(var(--vipn-ad-zone-h) - 18px);
  padding: 12px 18px;
}
.ad-slot--leaderboard .platinum-house-ad__eyebrow,
.ad-zone--storm_alert .platinum-house-ad__eyebrow,
.ad-zone--election_results .platinum-house-ad__eyebrow,
.ad-slot--footer .platinum-house-ad__eyebrow,
.ad-slot--in_article .platinum-house-ad__eyebrow{grid-area:eyebrow;}
.ad-slot--leaderboard .platinum-house-ad strong,
.ad-zone--storm_alert .platinum-house-ad strong,
.ad-zone--election_results .platinum-house-ad strong,
.ad-slot--footer .platinum-house-ad strong,
.ad-slot--in_article .platinum-house-ad strong{grid-area:title;}
.ad-slot--leaderboard .platinum-house-ad em,
.ad-zone--storm_alert .platinum-house-ad em,
.ad-zone--election_results .platinum-house-ad em,
.ad-slot--footer .platinum-house-ad em,
.ad-slot--in_article .platinum-house-ad em{grid-area:detail;}
.ad-slot--leaderboard .platinum-house-ad b,
.ad-zone--storm_alert .platinum-house-ad b,
.ad-zone--election_results .platinum-house-ad b,
.ad-slot--footer .platinum-house-ad b,
.ad-slot--in_article .platinum-house-ad b{grid-area:cta;margin:0;white-space:nowrap;}
.ad-zone--storm_alert .platinum-house-ad{background:radial-gradient(circle at 94% 12%, rgba(245,196,0,.46), transparent 30%),linear-gradient(135deg,#0f5f91 0%,#0b4979 52%,#063453 100%);}
.ad-zone--election_results .platinum-house-ad{background:radial-gradient(circle at 94% 12%, rgba(245,196,0,.48), transparent 30%),linear-gradient(135deg,#123f8c 0%,#30206f 52%,#11153c 100%);}
@media (max-width: 767.98px){
  .ad-slot--leaderboard,
  .ad-zone--leaderboard,
  .ad-zone--storm_alert,
  .ad-zone--election_results,
  .ad-slot--in_article,
  .ad-slot--footer{
    --vipn-ad-zone-w: 320px;
    --vipn-ad-zone-h: 100px;
  }
  .vipn-ad-slot,
  .ad-slot{max-width:min(100%, var(--vipn-ad-zone-w));}
  .ad-slot--leaderboard .platinum-house-ad,
  .ad-zone--storm_alert .platinum-house-ad,
  .ad-zone--election_results .platinum-house-ad,
  .ad-slot--footer .platinum-house-ad,
  .ad-slot--in_article .platinum-house-ad{
    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:none;
    justify-items:start;
    padding:12px 14px;
  }
  .platinum-house-ad b{display:none;}
  .platinum-house-ad strong{font-size:1.02rem;}
  .platinum-house-ad em{font-size:.72rem;}
}
[data-theme="dark"] .vipn-ad-slot-inner,
[data-bs-theme="dark"] .vipn-ad-slot-inner{
  background: linear-gradient(180deg, rgba(15,23,42,.92), rgba(15,23,42,.82)) !important;
  border-color: rgba(148,163,184,.2) !important;
}
.ad-slot--leaderboard,
.ad-zone--leaderboard,
.ad-zone--storm_alert,
.ad-zone--election_results,
.ad-slot--in_article,
.ad-slot--footer,
.ad-slot--box,
.ad-zone--sidebar,
.ad-slot--mobile{
  width: min(100%, var(--vipn-ad-zone-w)) !important;
  max-width: var(--vipn-ad-zone-w) !important;
  min-height: var(--vipn-ad-zone-h) !important;
}

/* v3.9.69: urgent public ad-slot/house-ad polish.
   Fixes oversized shells, duplicate labels, and text collisions in fallback ads. */
.vipn-ad-slot,
.ad-slot,
.vipn-ad-slot * ,
.ad-slot *{
  box-sizing: border-box;
}

.vipn-ad-slot{
  --vipn-ad-pad: 8px;
  display: block !important;
  line-height: 1.25;
}

.vipn-ad-slot-inner,
.ad-slot-inner{
  padding: var(--vipn-ad-pad) !important;
  border-radius: 18px !important;
}

.vipn-platinum-ad,
.platinum-ad-render{
  min-width: 0;
}

.platinum-ad-render{
  padding: 0 !important;
  gap: 0 !important;
  grid-template-rows: 1fr !important;
}

/* House ads already contain the call-to-action, so avoid a second inner ad label. */
.platinum-ad-render--house > .platinum-ad-label,
.platinum-ad-render--fallback-html > .platinum-ad-label{
  display: none !important;
}

.platinum-house-ad,
.platinum-house-ad:visited{
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
  min-height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
  display: grid !important;
  align-content: center !important;
  justify-content: stretch !important;
  justify-items: start !important;
  gap: 5px !important;
  padding: clamp(14px, 2vw, 20px) !important;
  text-align: left !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  text-wrap: balance;
}

.platinum-house-ad > span,
.platinum-house-ad > strong,
.platinum-house-ad > em,
.platinum-house-ad > b{
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.platinum-house-ad__brand{
  font-size: .58rem !important;
  line-height: 1 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  font-weight: 950 !important;
  opacity: .72 !important;
}

.platinum-house-ad__eyebrow,
.platinum-house-ad span:not(.platinum-house-ad__brand):not(.platinum-house-ad__detail):not(.platinum-house-ad__cta){
  font-size: .64rem !important;
  line-height: 1.05 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
  opacity: .9 !important;
}

.platinum-house-ad__headline,
.platinum-house-ad strong{
  font-size: clamp(1.2rem, 2.1vw, 1.85rem) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
  font-weight: 950 !important;
}

.platinum-house-ad__detail,
.platinum-house-ad em{
  font-size: clamp(.78rem, 1.05vw, .95rem) !important;
  line-height: 1.22 !important;
  opacity: .92 !important;
  font-style: normal !important;
}

.platinum-house-ad__cta,
.platinum-house-ad b{
  width: fit-content !important;
  max-width: 100% !important;
  margin-top: 5px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  padding: 7px 11px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.18) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  font-size: .68rem !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  font-weight: 900 !important;
}

/* Compact/square placements: center and keep the message separated. */
.ad-slot--box .platinum-house-ad,
.ad-slot--sidebar .platinum-house-ad,
.ad-zone--sidebar .platinum-house-ad,
.ad-slot--mobile .platinum-house-ad,
.ad-zone--mobile .platinum-house-ad{
  justify-items: center !important;
  text-align: center !important;
  padding: 18px !important;
}

.ad-slot--box .platinum-house-ad__eyebrow,
.ad-slot--sidebar .platinum-house-ad__eyebrow,
.ad-zone--sidebar .platinum-house-ad__eyebrow,
.ad-slot--mobile .platinum-house-ad__eyebrow,
.ad-zone--mobile .platinum-house-ad__eyebrow{
  max-width: 22ch !important;
}

.ad-slot--box .platinum-house-ad__detail,
.ad-slot--sidebar .platinum-house-ad__detail,
.ad-zone--sidebar .platinum-house-ad__detail{
  max-width: 24ch !important;
}

/* Wide placements: use a clean horizontal ad style. */
.ad-slot--leaderboard .platinum-house-ad,
.ad-zone--leaderboard .platinum-house-ad,
.ad-zone--storm_alert .platinum-house-ad,
.ad-zone--election_results .platinum-house-ad,
.ad-slot--footer .platinum-house-ad,
.ad-slot--in_article .platinum-house-ad{
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "brand cta"
    "headline cta"
    "detail cta" !important;
  column-gap: 18px !important;
  row-gap: 3px !important;
  align-items: center !important;
  padding: 12px 18px !important;
}
.ad-slot--leaderboard .platinum-house-ad__brand,
.ad-zone--leaderboard .platinum-house-ad__brand,
.ad-zone--storm_alert .platinum-house-ad__brand,
.ad-zone--election_results .platinum-house-ad__brand,
.ad-slot--footer .platinum-house-ad__brand,
.ad-slot--in_article .platinum-house-ad__brand{grid-area:brand !important;}
.ad-slot--leaderboard .platinum-house-ad__headline,
.ad-zone--leaderboard .platinum-house-ad__headline,
.ad-zone--storm_alert .platinum-house-ad__headline,
.ad-zone--election_results .platinum-house-ad__headline,
.ad-slot--footer .platinum-house-ad__headline,
.ad-slot--in_article .platinum-house-ad__headline{grid-area:headline !important;}
.ad-slot--leaderboard .platinum-house-ad__detail,
.ad-zone--leaderboard .platinum-house-ad__detail,
.ad-zone--storm_alert .platinum-house-ad__detail,
.ad-zone--election_results .platinum-house-ad__detail,
.ad-slot--footer .platinum-house-ad__detail,
.ad-slot--in_article .platinum-house-ad__detail{grid-area:detail !important;}
.ad-slot--leaderboard .platinum-house-ad__cta,
.ad-zone--leaderboard .platinum-house-ad__cta,
.ad-zone--storm_alert .platinum-house-ad__cta,
.ad-zone--election_results .platinum-house-ad__cta,
.ad-slot--footer .platinum-house-ad__cta,
.ad-slot--in_article .platinum-house-ad__cta{grid-area:cta !important; white-space: nowrap !important;}

@media (max-width: 767.98px){
  .vipn-ad-slot{--vipn-ad-pad: 7px;}
  .platinum-house-ad,
  .ad-slot--leaderboard .platinum-house-ad,
  .ad-zone--leaderboard .platinum-house-ad,
  .ad-zone--storm_alert .platinum-house-ad,
  .ad-zone--election_results .platinum-house-ad,
  .ad-slot--footer .platinum-house-ad,
  .ad-slot--in_article .platinum-house-ad{
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
    justify-items: center !important;
    text-align: center !important;
    padding: 13px 14px !important;
    gap: 4px !important;
  }
  .platinum-house-ad__brand{font-size:.52rem !important;}
  .platinum-house-ad__eyebrow{font-size:.56rem !important;}
  .platinum-house-ad__headline,
  .platinum-house-ad strong{font-size:1.15rem !important;}
  .platinum-house-ad__detail,
  .platinum-house-ad em{font-size:.72rem !important;}
  .platinum-house-ad__cta,
  .platinum-house-ad b{display:none !important;}
}

/* v3.9.71: public ad placement polish for homepage/supporting pages */
.vipn-ad-frame{
  padding: clamp(12px, 1.6vw, 18px);
}
.vipn-ad-frame .ad-slot--leaderboard,
.vipn-ad-frame .ad-zone--leaderboard,
.vipn-ad-leaderboard .ad-slot--leaderboard,
.vipn-ad-leaderboard .ad-zone--leaderboard{
  --vipn-ad-zone-w: 100%;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}
.vipn-ad-frame .vipn-ad-slot-inner,
.vipn-ad-frame .ad-slot-inner,
.vipn-ad-leaderboard .vipn-ad-slot-inner,
.vipn-ad-leaderboard .ad-slot-inner{
  width: 100% !important;
  max-width: 100% !important;
}
.vipn-ad-frame .platinum-house-ad,
.vipn-ad-leaderboard .platinum-house-ad{
  width: 100% !important;
  max-width: 100% !important;
}
.vipn-ad-frame .platinum-house-ad__headline,
.vipn-ad-frame .platinum-house-ad strong,
.vipn-ad-leaderboard .platinum-house-ad__headline,
.vipn-ad-leaderboard .platinum-house-ad strong{
  font-size: clamp(1.15rem, 2.2vw, 2rem) !important;
}
@media (max-width: 767.98px){
  .vipn-ad-frame{padding: 10px;}
  .vipn-ad-frame .ad-slot--leaderboard,
  .vipn-ad-frame .ad-zone--leaderboard,
  .vipn-ad-leaderboard .ad-slot--leaderboard,
  .vipn-ad-leaderboard .ad-zone--leaderboard{
    --vipn-ad-zone-w: 100%;
    --vipn-ad-zone-h: 100px;
  }
}


/* v3.9.75: public ad placement/render polish
   Keeps paid image ads and native house ads from being squeezed by internal labels,
   lets top banners fill the full polished shell, and keeps all creatives contained. */
.vipn-ad-slot,
.ad-slot{
  box-sizing: border-box !important;
}
.vipn-ad-slot *,
.ad-slot *{
  box-sizing: border-box !important;
}

/* The ad container already has aria-label text, so the visual label should not
   consume space inside paid images or fallback house ads. */
.platinum-ad-render > .platinum-ad-label{
  display: none !important;
}

.vipn-ad-slot{
  --vipn-ad-pad: 8px;
}
.vipn-ad-slot-inner,
.ad-slot-inner{
  padding: var(--vipn-ad-pad) !important;
}
.vipn-platinum-ad,
.platinum-ad-render,
.platinum-ad-render > a{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.platinum-ad-render,
.platinum-ad-render > a{
  min-height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
}
.platinum-ad-render img{
  width: auto !important;
  max-width: 100% !important;
  max-height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
  height: auto !important;
  object-fit: contain !important;
}
.platinum-ad-render--html iframe,
.platinum-ad-render--fallback-html iframe,
.platinum-ad-render iframe,
.platinum-ad-render object,
.platinum-ad-render embed{
  max-width: 100% !important;
  max-height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
}

/* Full-width top banner shell used on homepage and any public page top slot. */
.vipn-ad-leaderboard{
  padding: clamp(12px, 2vw, 22px) 0 clamp(16px, 2.4vw, 28px) !important;
}
.vipn-ad-frame,
.vipn-service-top-ad,
.vipn-article-top-ad{
  width: 100% !important;
  max-width: 100% !important;
}
.vipn-ad-frame{
  min-height: 0 !important;
  padding: clamp(10px, 1.5vw, 16px) !important;
  border-radius: 26px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.86), rgba(248,251,255,.72)),
    radial-gradient(circle at 0 0, rgba(245,196,0,.14), transparent 36%),
    radial-gradient(circle at 100% 100%, rgba(51,102,153,.18), transparent 34%) !important;
  border: 1px solid rgba(51,102,153,.14) !important;
  box-shadow: 0 18px 46px rgba(15,23,42,.075) !important;
  overflow: hidden !important;
}
.vipn-ad-frame .ad-slot--leaderboard,
.vipn-ad-frame .ad-zone--leaderboard,
.vipn-ad-leaderboard .ad-slot--leaderboard,
.vipn-ad-leaderboard .ad-zone--leaderboard,
.vipn-article-top-ad .ad-slot--leaderboard,
.vipn-service-top-ad .ad-slot--leaderboard{
  --vipn-ad-zone-w: 100%;
  --vipn-ad-zone-h: 112px;
  width: 100% !important;
  max-width: 100% !important;
  min-height: var(--vipn-ad-zone-h) !important;
  margin: 0 auto !important;
}
.vipn-ad-frame .vipn-ad-slot-inner,
.vipn-ad-frame .ad-slot-inner,
.vipn-ad-leaderboard .vipn-ad-slot-inner,
.vipn-ad-leaderboard .ad-slot-inner,
.vipn-article-top-ad .vipn-ad-slot-inner,
.vipn-article-top-ad .ad-slot-inner,
.vipn-service-top-ad .vipn-ad-slot-inner,
.vipn-service-top-ad .ad-slot-inner{
  width: 100% !important;
  max-width: 100% !important;
  min-height: var(--vipn-ad-zone-h) !important;
  border-radius: 20px !important;
}
.vipn-ad-frame .platinum-house-ad,
.vipn-ad-leaderboard .platinum-house-ad,
.vipn-article-top-ad .platinum-house-ad,
.vipn-service-top-ad .platinum-house-ad{
  width: 100% !important;
  height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
  min-height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
  border-radius: 16px !important;
}
.vipn-ad-frame .platinum-ad-render img,
.vipn-ad-leaderboard .platinum-ad-render img,
.vipn-article-top-ad .platinum-ad-render img,
.vipn-service-top-ad .platinum-ad-render img{
  max-height: calc(var(--vipn-ad-zone-h) - (var(--vipn-ad-pad) * 2)) !important;
}

/* Sidebar and article placements stay compact, centered, and unclipped. */
.vipn-side-ad .ad-slot,
.vipn-side-ad .vipn-ad-slot,
.vipn-article-sidebar .ad-slot,
.vipn-article-sidebar .vipn-ad-slot{
  --vipn-ad-zone-w: 300px;
  --vipn-ad-zone-h: 250px;
  width: min(100%, 300px) !important;
  max-width: 300px !important;
}
.vipn-native-mid-ad .ad-slot--in_article,
.vipn-article-inline-ad .ad-slot--in_article,
.vipn-footer-ad .ad-slot--footer{
  width: min(100%, 728px) !important;
  max-width: 728px !important;
}

[data-theme="dark"] .vipn-ad-frame,
[data-bs-theme="dark"] .vipn-ad-frame{
  background:
    linear-gradient(180deg, rgba(15,23,42,.92), rgba(15,23,42,.78)),
    radial-gradient(circle at 0 0, rgba(245,196,0,.13), transparent 36%),
    radial-gradient(circle at 100% 100%, rgba(51,102,153,.22), transparent 34%) !important;
  border-color: rgba(148,163,184,.20) !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.18) !important;
}

@media (max-width: 767.98px){
  .vipn-ad-slot{--vipn-ad-pad: 7px;}
  .vipn-ad-frame{
    padding: 8px !important;
    border-radius: 20px !important;
  }
  .vipn-ad-frame .ad-slot--leaderboard,
  .vipn-ad-frame .ad-zone--leaderboard,
  .vipn-ad-leaderboard .ad-slot--leaderboard,
  .vipn-ad-leaderboard .ad-zone--leaderboard,
  .vipn-article-top-ad .ad-slot--leaderboard,
  .vipn-service-top-ad .ad-slot--leaderboard{
    --vipn-ad-zone-h: 104px;
  }
  .vipn-ad-frame .platinum-house-ad__headline,
  .vipn-ad-leaderboard .platinum-house-ad__headline,
  .vipn-article-top-ad .platinum-house-ad__headline,
  .vipn-service-top-ad .platinum-house-ad__headline{
    font-size: 1.08rem !important;
  }
  .vipn-ad-frame .platinum-house-ad__detail,
  .vipn-ad-leaderboard .platinum-house-ad__detail,
  .vipn-article-top-ad .platinum-house-ad__detail,
  .vipn-service-top-ad .platinum-house-ad__detail{
    font-size: .72rem !important;
  }
}


/* v3.9.76 ad zone normalization
   - remove decorative borders from public ad areas
   - keep every creative centered
   - make fallback house ads render at the true zone dimensions */

/* Clean public wrappers: no visible border/frame around the centered ad. */
.vipn-ad-frame,
.vipn-side-ad,
.vipn-article-ad-frame,
.vipn-article-top-ad,
.vipn-service-top-ad,
.vipn-native-mid-ad,
.vipn-article-inline-ad,
.vipn-footer-ad {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.vipn-ad-frame,
.vipn-side-ad,
.vipn-article-ad-frame {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Remove inner shell borders/backgrounds so only the ad itself is visible. */
.vipn-ad-slot-inner,
.ad-slot-inner,
.ad-slot--in_article .vipn-ad-slot-inner,
.ad-slot--in_article .ad-slot-inner,
.ad-slot--footer .vipn-ad-slot-inner,
.ad-slot--footer .ad-slot-inner {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Canonical public zone sizes. */
.ad-slot--leaderboard,
.ad-zone--leaderboard,
.ad-slot--footer,
.ad-zone--footer,
.ad-slot--in_article,
.ad-zone--in_article {
  --vipn-zone-w: 728px;
  --vipn-zone-h: 90px;
}

.ad-slot--box,
.ad-slot--sidebar,
.ad-zone--sidebar,
.ad-slot--mobile,
.ad-zone--mobile {
  --vipn-zone-w: 300px;
  --vipn-zone-h: 250px;
}

/* Center every placement and lock it to the real zone size. */
.vipn-ad-frame .vipn-ad-slot,
.vipn-ad-frame .ad-slot,
.vipn-article-top-ad .vipn-ad-slot,
.vipn-article-top-ad .ad-slot,
.vipn-service-top-ad .vipn-ad-slot,
.vipn-service-top-ad .ad-slot,
.vipn-footer-ad .vipn-ad-slot,
.vipn-footer-ad .ad-slot,
.vipn-native-mid-ad .vipn-ad-slot,
.vipn-native-mid-ad .ad-slot,
.vipn-article-inline-ad .vipn-ad-slot,
.vipn-article-inline-ad .ad-slot,
.vipn-side-ad .vipn-ad-slot,
.vipn-side-ad .ad-slot,
.vipn-article-ad-frame .vipn-ad-slot,
.vipn-article-ad-frame .ad-slot {
  margin: 0 auto !important;
}

.ad-slot--leaderboard,
.ad-zone--leaderboard,
.ad-slot--footer,
.ad-zone--footer,
.ad-slot--in_article,
.ad-zone--in_article {
  width: min(100%, var(--vipn-zone-w)) !important;
  max-width: var(--vipn-zone-w) !important;
  min-height: var(--vipn-zone-h) !important;
}

.ad-slot--box,
.ad-slot--sidebar,
.ad-zone--sidebar,
.ad-slot--mobile,
.ad-zone--mobile {
  width: min(100%, var(--vipn-zone-w)) !important;
  max-width: var(--vipn-zone-w) !important;
  min-height: var(--vipn-zone-h) !important;
}

.ad-slot--leaderboard .vipn-ad-slot-inner,
.ad-slot--leaderboard .ad-slot-inner,
.ad-zone--leaderboard .vipn-ad-slot-inner,
.ad-zone--leaderboard .ad-slot-inner,
.ad-slot--footer .vipn-ad-slot-inner,
.ad-slot--footer .ad-slot-inner,
.ad-zone--footer .vipn-ad-slot-inner,
.ad-zone--footer .ad-slot-inner,
.ad-slot--in_article .vipn-ad-slot-inner,
.ad-slot--in_article .ad-slot-inner,
.ad-zone--in_article .vipn-ad-slot-inner,
.ad-zone--in_article .ad-slot-inner,
.ad-slot--box .vipn-ad-slot-inner,
.ad-slot--box .ad-slot-inner,
.ad-slot--sidebar .vipn-ad-slot-inner,
.ad-slot--sidebar .ad-slot-inner,
.ad-zone--sidebar .vipn-ad-slot-inner,
.ad-zone--sidebar .ad-slot-inner,
.ad-slot--mobile .vipn-ad-slot-inner,
.ad-slot--mobile .ad-slot-inner,
.ad-zone--mobile .vipn-ad-slot-inner,
.ad-zone--mobile .ad-slot-inner {
  width: min(100%, var(--vipn-zone-w)) !important;
  max-width: var(--vipn-zone-w) !important;
  min-height: var(--vipn-zone-h) !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.vipn-platinum-ad,
.platinum-ad-render,
.platinum-ad-render > a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.ad-slot--leaderboard .vipn-platinum-ad,
.ad-slot--leaderboard .platinum-ad-render,
.ad-slot--leaderboard .platinum-ad-render > a,
.ad-zone--leaderboard .vipn-platinum-ad,
.ad-zone--leaderboard .platinum-ad-render,
.ad-zone--leaderboard .platinum-ad-render > a,
.ad-slot--footer .vipn-platinum-ad,
.ad-slot--footer .platinum-ad-render,
.ad-slot--footer .platinum-ad-render > a,
.ad-zone--footer .vipn-platinum-ad,
.ad-zone--footer .platinum-ad-render,
.ad-zone--footer .platinum-ad-render > a,
.ad-slot--in_article .vipn-platinum-ad,
.ad-slot--in_article .platinum-ad-render,
.ad-slot--in_article .platinum-ad-render > a,
.ad-zone--in_article .vipn-platinum-ad,
.ad-zone--in_article .platinum-ad-render,
.ad-zone--in_article .platinum-ad-render > a,
.ad-slot--box .vipn-platinum-ad,
.ad-slot--box .platinum-ad-render,
.ad-slot--box .platinum-ad-render > a,
.ad-slot--sidebar .vipn-platinum-ad,
.ad-slot--sidebar .platinum-ad-render,
.ad-slot--sidebar .platinum-ad-render > a,
.ad-zone--sidebar .vipn-platinum-ad,
.ad-zone--sidebar .platinum-ad-render,
.ad-zone--sidebar .platinum-ad-render > a,
.ad-slot--mobile .vipn-platinum-ad,
.ad-slot--mobile .platinum-ad-render,
.ad-slot--mobile .platinum-ad-render > a,
.ad-zone--mobile .vipn-platinum-ad,
.ad-zone--mobile .platinum-ad-render,
.ad-zone--mobile .platinum-ad-render > a {
  width: min(100%, var(--vipn-zone-w)) !important;
  max-width: var(--vipn-zone-w) !important;
  min-height: var(--vipn-zone-h) !important;
  height: var(--vipn-zone-h) !important;
  margin: 0 auto !important;
}

/* Paid creatives stay centered and unclipped. */
.platinum-ad-render img,
.platinum-ad-render iframe,
.platinum-ad-render object,
.platinum-ad-render embed {
  display: block !important;
  margin: 0 auto !important;
}

.ad-slot--leaderboard .platinum-ad-render img,
.ad-zone--leaderboard .platinum-ad-render img,
.ad-slot--footer .platinum-ad-render img,
.ad-zone--footer .platinum-ad-render img,
.ad-slot--in_article .platinum-ad-render img,
.ad-zone--in_article .platinum-ad-render img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 90px !important;
  height: auto !important;
}

.ad-slot--box .platinum-ad-render img,
.ad-slot--sidebar .platinum-ad-render img,
.ad-zone--sidebar .platinum-ad-render img,
.ad-slot--mobile .platinum-ad-render img,
.ad-zone--mobile .platinum-ad-render img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 250px !important;
  height: auto !important;
}

/* House ads must render at the real slot size instead of stretching to the shell. */
.ad-slot--leaderboard .platinum-house-ad,
.ad-zone--leaderboard .platinum-house-ad,
.ad-slot--footer .platinum-house-ad,
.ad-zone--footer .platinum-house-ad,
.ad-slot--in_article .platinum-house-ad,
.ad-zone--in_article .platinum-house-ad {
  width: min(100%, 728px) !important;
  max-width: 728px !important;
  min-height: 90px !important;
  height: 90px !important;
  margin: 0 auto !important;
  border-radius: 14px !important;
}

.ad-slot--box .platinum-house-ad,
.ad-slot--sidebar .platinum-house-ad,
.ad-zone--sidebar .platinum-house-ad,
.ad-slot--mobile .platinum-house-ad,
.ad-zone--mobile .platinum-house-ad {
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  min-height: 250px !important;
  height: 250px !important;
  margin: 0 auto !important;
  border-radius: 14px !important;
}

/* Responsive safety: keep ads centered without overflow on small screens. */
@media (max-width: 767.98px) {
  .ad-slot--leaderboard,
  .ad-zone--leaderboard,
  .ad-slot--footer,
  .ad-zone--footer,
  .ad-slot--in_article,
  .ad-zone--in_article {
    --vipn-zone-w: 320px;
    --vipn-zone-h: 100px;
  }

  .ad-slot--leaderboard .platinum-house-ad,
  .ad-zone--leaderboard .platinum-house-ad,
  .ad-slot--footer .platinum-house-ad,
  .ad-zone--footer .platinum-house-ad,
  .ad-slot--in_article .platinum-house-ad,
  .ad-zone--in_article .platinum-house-ad,
  .ad-slot--leaderboard .platinum-ad-render,
  .ad-zone--leaderboard .platinum-ad-render,
  .ad-slot--footer .platinum-ad-render,
  .ad-zone--footer .platinum-ad-render,
  .ad-slot--in_article .platinum-ad-render,
  .ad-zone--in_article .platinum-ad-render,
  .ad-slot--leaderboard .platinum-ad-render > a,
  .ad-zone--leaderboard .platinum-ad-render > a,
  .ad-slot--footer .platinum-ad-render > a,
  .ad-zone--footer .platinum-ad-render > a,
  .ad-slot--in_article .platinum-ad-render > a,
  .ad-zone--in_article .platinum-ad-render > a {
    width: min(100%, 320px) !important;
    max-width: 320px !important;
    min-height: 100px !important;
    height: 100px !important;
  }

  .ad-slot--leaderboard .platinum-ad-render img,
  .ad-zone--leaderboard .platinum-ad-render img,
  .ad-slot--footer .platinum-ad-render img,
  .ad-zone--footer .platinum-ad-render img,
  .ad-slot--in_article .platinum-ad-render img,
  .ad-zone--in_article .platinum-ad-render img {
    max-height: 100px !important;
  }
}


/* v3.9.89: sidebar/box ad size hotfix
   The public sidebar ad location is a square 300x300 placement. Older rules forced
   box/sidebar ads into a 300x250 container, cropping or shrinking square creatives. */
.vipn-side-ad,
.vipn-article-ad-frame,
.vipn-service-sidebar .vipn-side-ad {
  min-height: 300px !important;
}

.ad-slot--box,
.ad-slot--sidebar,
.ad-zone--sidebar,
.vipn-side-ad .ad-slot,
.vipn-side-ad .vipn-ad-slot,
.vipn-article-ad-frame .ad-slot,
.vipn-article-ad-frame .vipn-ad-slot,
.vipn-article-sidebar .ad-slot,
.vipn-article-sidebar .vipn-ad-slot {
  --vipn-ad-zone-w: 300px !important;
  --vipn-ad-zone-h: 300px !important;
  --vipn-zone-w: 300px !important;
  --vipn-zone-h: 300px !important;
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  min-height: 300px !important;
  height: auto !important;
}

.ad-slot--box .vipn-ad-slot-inner,
.ad-slot--box .ad-slot-inner,
.ad-slot--sidebar .vipn-ad-slot-inner,
.ad-slot--sidebar .ad-slot-inner,
.ad-zone--sidebar .vipn-ad-slot-inner,
.ad-zone--sidebar .ad-slot-inner,
.vipn-side-ad .vipn-ad-slot-inner,
.vipn-side-ad .ad-slot-inner,
.vipn-article-ad-frame .vipn-ad-slot-inner,
.vipn-article-ad-frame .ad-slot-inner,
.vipn-article-sidebar .vipn-ad-slot-inner,
.vipn-article-sidebar .ad-slot-inner {
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  min-height: 300px !important;
  height: 300px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.ad-slot--box .vipn-platinum-ad,
.ad-slot--box .platinum-ad-render,
.ad-slot--box .platinum-ad-render > a,
.ad-slot--sidebar .vipn-platinum-ad,
.ad-slot--sidebar .platinum-ad-render,
.ad-slot--sidebar .platinum-ad-render > a,
.ad-zone--sidebar .vipn-platinum-ad,
.ad-zone--sidebar .platinum-ad-render,
.ad-zone--sidebar .platinum-ad-render > a,
.vipn-side-ad .vipn-platinum-ad,
.vipn-side-ad .platinum-ad-render,
.vipn-side-ad .platinum-ad-render > a,
.vipn-article-ad-frame .vipn-platinum-ad,
.vipn-article-ad-frame .platinum-ad-render,
.vipn-article-ad-frame .platinum-ad-render > a,
.vipn-article-sidebar .vipn-platinum-ad,
.vipn-article-sidebar .platinum-ad-render,
.vipn-article-sidebar .platinum-ad-render > a {
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  min-height: 300px !important;
  height: 300px !important;
  margin: 0 auto !important;
}

.ad-slot--box .platinum-ad-render img,
.ad-slot--sidebar .platinum-ad-render img,
.ad-zone--sidebar .platinum-ad-render img,
.vipn-side-ad .platinum-ad-render img,
.vipn-side-ad img,
.vipn-article-ad-frame .platinum-ad-render img,
.vipn-article-ad-frame img,
.vipn-article-sidebar .platinum-ad-render img {
  display: block !important;
  width: auto !important;
  max-width: 300px !important;
  height: auto !important;
  max-height: 300px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}

.ad-slot--box .platinum-ad-render iframe,
.ad-slot--sidebar .platinum-ad-render iframe,
.ad-zone--sidebar .platinum-ad-render iframe,
.vipn-side-ad iframe,
.vipn-article-ad-frame iframe,
.vipn-article-sidebar iframe {
  width: 300px !important;
  max-width: 100% !important;
  height: 300px !important;
  max-height: 300px !important;
  margin: 0 auto !important;
}

.ad-slot--box .platinum-house-ad,
.ad-slot--sidebar .platinum-house-ad,
.ad-zone--sidebar .platinum-house-ad,
.vipn-side-ad .platinum-house-ad,
.vipn-article-ad-frame .platinum-house-ad,
.vipn-article-sidebar .platinum-house-ad {
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  min-height: 300px !important;
  height: 300px !important;
  margin: 0 auto !important;
}


/* v3.9.90: true public ad zone sizing
   Desktop leaderboard/sponsor positions are 950x95. Sidebar boxes are 300x300.
   This prevents fallback/house ads from rendering as small floating buttons. */
.vipn-ad-leaderboard,
.vipn-article-top-ad,
.vipn-service-top-ad,
.election-ad-section {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.vipn-ad-frame,
.vipn-ad-leaderboard .vipn-ad-frame,
.vipn-article-page-leaderboard .vipn-ad-frame {
  width: min(100%, 1010px) !important;
  max-width: 1010px !important;
  min-height: 95px !important;
  padding: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.ad-slot--leaderboard,
.ad-zone--leaderboard,
.ad-zone--election_results,
.ad-zone--storm_alert {
  --vipn-ad-zone-w: 950px !important;
  --vipn-ad-zone-h: 95px !important;
  --vipn-zone-w: 950px !important;
  --vipn-zone-h: 95px !important;
  width: min(100%, 950px) !important;
  max-width: 950px !important;
  min-height: 95px !important;
  height: 95px !important;
  margin: 0 auto !important;
}

.ad-slot--leaderboard .vipn-ad-slot-inner,
.ad-slot--leaderboard .ad-slot-inner,
.ad-zone--leaderboard .vipn-ad-slot-inner,
.ad-zone--leaderboard .ad-slot-inner,
.ad-zone--election_results .vipn-ad-slot-inner,
.ad-zone--election_results .ad-slot-inner,
.ad-zone--storm_alert .vipn-ad-slot-inner,
.ad-zone--storm_alert .ad-slot-inner {
  width: min(100%, 950px) !important;
  max-width: 950px !important;
  min-height: 95px !important;
  height: 95px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.ad-slot--leaderboard .vipn-platinum-ad,
.ad-slot--leaderboard .platinum-ad-render,
.ad-slot--leaderboard .platinum-ad-render > a,
.ad-zone--leaderboard .vipn-platinum-ad,
.ad-zone--leaderboard .platinum-ad-render,
.ad-zone--leaderboard .platinum-ad-render > a,
.ad-zone--election_results .vipn-platinum-ad,
.ad-zone--election_results .platinum-ad-render,
.ad-zone--election_results .platinum-ad-render > a,
.ad-zone--storm_alert .vipn-platinum-ad,
.ad-zone--storm_alert .platinum-ad-render,
.ad-zone--storm_alert .platinum-ad-render > a {
  width: min(100%, 950px) !important;
  max-width: 950px !important;
  min-height: 95px !important;
  height: 95px !important;
  margin: 0 auto !important;
}

.ad-slot--leaderboard .platinum-house-ad,
.ad-zone--leaderboard .platinum-house-ad,
.ad-zone--election_results .platinum-house-ad,
.ad-zone--storm_alert .platinum-house-ad {
  width: min(100%, 950px) !important;
  max-width: 950px !important;
  min-height: 95px !important;
  height: 95px !important;
  margin: 0 auto !important;
  border-radius: 16px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "brand cta"
    "headline cta"
    "detail cta" !important;
  align-items: center !important;
  column-gap: 18px !important;
  row-gap: 2px !important;
  padding: 13px 20px !important;
  text-align: left !important;
}

.ad-slot--leaderboard .platinum-house-ad__headline,
.ad-slot--leaderboard .platinum-house-ad strong,
.ad-zone--leaderboard .platinum-house-ad__headline,
.ad-zone--leaderboard .platinum-house-ad strong,
.ad-zone--election_results .platinum-house-ad__headline,
.ad-zone--election_results .platinum-house-ad strong,
.ad-zone--storm_alert .platinum-house-ad__headline,
.ad-zone--storm_alert .platinum-house-ad strong {
  font-size: clamp(1.45rem, 2.1vw, 2.35rem) !important;
  line-height: .95 !important;
}

.ad-slot--leaderboard .platinum-ad-render img,
.ad-zone--leaderboard .platinum-ad-render img,
.ad-zone--election_results .platinum-ad-render img,
.ad-zone--storm_alert .platinum-ad-render img,
.ad-slot--leaderboard iframe,
.ad-zone--leaderboard iframe,
.ad-zone--election_results iframe,
.ad-zone--storm_alert iframe {
  display: block !important;
  width: auto !important;
  max-width: 950px !important;
  height: auto !important;
  max-height: 95px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}

/* Footer remains a standard 728x90 banner. */
.ad-slot--footer,
.ad-zone--footer {
  --vipn-ad-zone-w: 728px !important;
  --vipn-ad-zone-h: 90px !important;
  --vipn-zone-w: 728px !important;
  --vipn-zone-h: 90px !important;
  width: min(100%, 728px) !important;
  max-width: 728px !important;
  min-height: 90px !important;
  height: 90px !important;
}

@media (max-width: 767.98px) {
  .ad-slot--leaderboard,
  .ad-zone--leaderboard,
  .ad-zone--election_results,
  .ad-zone--storm_alert,
  .ad-slot--leaderboard .vipn-ad-slot-inner,
  .ad-slot--leaderboard .ad-slot-inner,
  .ad-zone--leaderboard .vipn-ad-slot-inner,
  .ad-zone--leaderboard .ad-slot-inner,
  .ad-zone--election_results .vipn-ad-slot-inner,
  .ad-zone--election_results .ad-slot-inner,
  .ad-zone--storm_alert .vipn-ad-slot-inner,
  .ad-zone--storm_alert .ad-slot-inner,
  .ad-slot--leaderboard .vipn-platinum-ad,
  .ad-slot--leaderboard .platinum-ad-render,
  .ad-slot--leaderboard .platinum-ad-render > a,
  .ad-zone--leaderboard .vipn-platinum-ad,
  .ad-zone--leaderboard .platinum-ad-render,
  .ad-zone--leaderboard .platinum-ad-render > a,
  .ad-zone--election_results .vipn-platinum-ad,
  .ad-zone--election_results .platinum-ad-render,
  .ad-zone--election_results .platinum-ad-render > a,
  .ad-zone--storm_alert .vipn-platinum-ad,
  .ad-zone--storm_alert .platinum-ad-render,
  .ad-zone--storm_alert .platinum-ad-render > a {
    width: min(100%, 320px) !important;
    max-width: 320px !important;
    min-height: 100px !important;
    height: 100px !important;
  }
  .ad-slot--leaderboard .platinum-house-ad,
  .ad-zone--leaderboard .platinum-house-ad,
  .ad-zone--election_results .platinum-house-ad,
  .ad-zone--storm_alert .platinum-house-ad {
    width: min(100%, 320px) !important;
    max-width: 320px !important;
    min-height: 100px !important;
    height: 100px !important;
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
    justify-items: center !important;
    text-align: center !important;
    padding: 10px 14px !important;
  }
}

/* v5.5.2 Admin ad verification banner. Only appears for logged-in CMS users. */
.platinum-ad-admin-preview{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  width:100%;
  margin:0 0 6px;
  padding:5px 9px;
  border:1px solid rgba(245,158,11,.35);
  border-radius:999px;
  background:linear-gradient(135deg,#fff7ed,#fffbeb);
  color:#92400e;
  font-size:11px;
  font-weight:800;
  letter-spacing:.01em;
  line-height:1.2;
  text-align:center;
}
.platinum-ad-admin-preview strong{font-weight:950;color:#78350f}

/* v5.5.3: compact CMS ad preview marker.
   The v5.5.2 verification notice was rendered as a normal row inside the
   ad slot, which squeezed 950x95 creatives. Keep the ad at its real size and
   place a tiny non-counted preview marker on top instead. */
.platinum-ad-render--admin-preview{
  position:relative !important;
}
.platinum-ad-admin-preview{
  position:absolute !important;
  top:5px !important;
  left:5px !important;
  z-index:9 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  width:auto !important;
  max-width:calc(100% - 10px) !important;
  min-width:0 !important;
  margin:0 !important;
  padding:3px 7px !important;
  border:1px solid rgba(245,158,11,.42) !important;
  border-radius:999px !important;
  background:rgba(255,247,237,.92) !important;
  color:#78350f !important;
  box-shadow:0 6px 16px rgba(15,23,42,.12) !important;
  font-size:9px !important;
  font-weight:850 !important;
  letter-spacing:.01em !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
  pointer-events:none !important;
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.platinum-ad-admin-preview strong{
  color:#78350f !important;
  font-weight:950 !important;
}
.platinum-ad-admin-preview__detail{
  display:none !important;
}
.ad-slot--leaderboard .platinum-ad-admin-preview,
.ad-zone--leaderboard .platinum-ad-admin-preview,
.ad-zone--election_results .platinum-ad-admin-preview,
.ad-zone--storm_alert .platinum-ad-admin-preview{
  top:4px !important;
  left:4px !important;
  padding:3px 6px !important;
  font-size:8.5px !important;
  opacity:.9 !important;
}
@media (max-width: 767.98px){
  .platinum-ad-admin-preview{
    top:4px !important;
    left:4px !important;
    padding:3px 6px !important;
    font-size:8px !important;
  }
}

/* v5.8.6.20 generated template ads */
.platinum-ad-render--html .vipn-built-ad{width:100%;height:100%;min-height:90px;background:linear-gradient(135deg,var(--vipn-ad-brand,#0d6efd),#0f172a);color:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden;border-radius:14px}
.platinum-ad-render--html .vipn-built-ad__inner{height:100%;min-height:90px;display:grid;grid-template-rows:auto 1fr auto;gap:8px;padding:14px;position:relative;box-sizing:border-box}
.platinum-ad-render--html .vipn-built-ad__brand{display:flex;align-items:center;gap:9px;min-width:0}.platinum-ad-render--html .vipn-built-ad__logo{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:12px;padding:5px}.platinum-ad-render--html .vipn-built-ad__mark{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--vipn-ad-brand,#0d6efd);display:inline-flex;align-items:center;justify-content:center;font-weight:950}.platinum-ad-render--html .vipn-built-ad__brand strong{display:block;font-weight:950;line-height:1.05;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platinum-ad-render--html .vipn-built-ad__brand span{display:block;color:rgba(255,255,255,.78);font-size:.72rem;margin-top:2px}.platinum-ad-render--html .vipn-built-ad__copy h3{font-weight:950;font-size:clamp(1.05rem,2vw,1.45rem);line-height:1.05;letter-spacing:-.025em;margin:0 0 6px;color:#fff}.platinum-ad-render--html .vipn-built-ad__copy p{color:rgba(255,255,255,.88);font-weight:650;line-height:1.26;margin:0;font-size:.9rem}.platinum-ad-render--html .vipn-built-ad__photo{position:absolute;right:10px;bottom:50px;width:38%;height:34%;border-radius:15px;overflow:hidden;opacity:.28}.platinum-ad-render--html .vipn-built-ad__photo img{width:100%;height:100%;object-fit:cover}.platinum-ad-render--html .vipn-built-ad__foot{display:flex;align-items:center;gap:8px;justify-content:space-between;position:relative;z-index:2}.platinum-ad-render--html .vipn-built-ad__cta{display:inline-flex;padding:.48rem .72rem;border-radius:999px;background:var(--vipn-ad-accent,#f5c400);color:#0f172a;font-weight:950;font-size:.82rem;white-space:nowrap}.platinum-ad-render--html .vipn-built-ad__contact{color:rgba(255,255,255,.82);font-weight:800;font-size:.72rem;text-align:right}.platinum-ad-render--html .vipn-built-ad--promotion{background:linear-gradient(135deg,var(--vipn-ad-accent,#f5c400),var(--vipn-ad-brand,#0d6efd))}.platinum-ad-render--html .vipn-built-ad--property{background:linear-gradient(135deg,#0f766e,var(--vipn-ad-brand,#0d6efd))}.platinum-ad-render--html .vipn-built-ad--job{background:linear-gradient(135deg,#4f46e5,var(--vipn-ad-brand,#0d6efd))}.ad-slot--leaderboard .platinum-ad-render--html .vipn-built-ad__inner{grid-template-columns:auto 1fr auto;grid-template-rows:1fr;align-items:center;min-height:90px}.ad-slot--leaderboard .platinum-ad-render--html .vipn-built-ad__copy p{display:none}.ad-slot--leaderboard .platinum-ad-render--html .vipn-built-ad__foot{justify-content:flex-end}.ad-slot--leaderboard .platinum-ad-render--html .vipn-built-ad__photo{display:none}@media(max-width:640px){.platinum-ad-render--html .vipn-built-ad__contact{display:none}.platinum-ad-render--html .vipn-built-ad__copy h3{font-size:1.05rem}.platinum-ad-render--html .vipn-built-ad__copy p{font-size:.82rem}}

/* v5.8.6.35: Respectful once-per-24h popover ads */
.vipn-popover-ad-reserve[hidden]{display:none!important}
.vipn-popover-ad-reserve{padding:22px 0 8px;background:linear-gradient(180deg,rgba(241,245,249,.68),rgba(241,245,249,0));}
.vipn-popover-ad-reserve .vipn-container{display:flex;flex-direction:column;align-items:center;gap:8px;}
.vipn-popover-ad-reserve__label{font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#64748b;text-align:center;}
.vipn-popover-ad-reserve.is-collapsed-inline .ad-slot--popover{box-shadow:0 14px 38px rgba(15,23,42,.10);}
.ad-slot--popover,.ad-zone--popover{width:min(100%,950px)!important;max-width:950px!important;min-height:120px!important;height:auto!important;margin-inline:auto!important;}
.ad-slot--popover .vipn-ad-slot-inner,.ad-zone--popover .vipn-ad-slot-inner,.ad-slot--popover .ad-slot-inner,.ad-zone--popover .ad-slot-inner,.ad-slot--popover .vipn-platinum-ad,.ad-zone--popover .vipn-platinum-ad,.ad-slot--popover .platinum-ad-render,.ad-zone--popover .platinum-ad-render,.ad-slot--popover .platinum-ad-render>a,.ad-zone--popover .platinum-ad-render>a{width:100%!important;max-width:950px!important;height:auto!important;min-height:120px!important;display:block!important;}
.ad-slot--popover .platinum-ad-render img,.ad-zone--popover .platinum-ad-render img{display:block!important;width:100%!important;max-width:950px!important;height:auto!important;max-height:540px!important;object-fit:contain!important;margin:0 auto!important;border-radius:18px!important;}
.ad-slot--popover .platinum-ad-render--html .vipn-built-ad{min-height:260px;border-radius:18px;}
.ad-slot--popover .platinum-ad-render--html .vipn-built-ad__inner{min-height:260px;padding:22px;}

.vipn-popover-ad-open{overflow:hidden;}
.vipn-popover-ad-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:clamp(16px,3vw,42px);}
.vipn-popover-ad-modal__backdrop{position:absolute;inset:0;background:rgba(2,8,23,.72);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);}
.vipn-popover-ad-modal__dialog{position:relative;z-index:1;width:min(96vw,980px);max-height:90vh;display:flex;flex-direction:column;border-radius:24px;background:#fff;box-shadow:0 30px 90px rgba(2,8,23,.42);overflow:hidden;}
.vipn-popover-ad-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(148,163,184,.22);background:rgba(248,250,252,.96);color:#0f172a;font-size:11px;font-weight:950;letter-spacing:.16em;text-transform:uppercase;}
.vipn-popover-ad-modal__close{appearance:none;border:1px solid rgba(148,163,184,.34);border-radius:999px;background:#fff;color:#0f172a;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:24px;line-height:1;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.10);}
.vipn-popover-ad-modal__close:hover,.vipn-popover-ad-modal__close:focus{background:#0f172a;color:#fff;outline:none;}
.vipn-popover-ad-modal__content{padding:18px;background:#fff;overflow:auto;}
.vipn-popover-ad-modal__content .platinum-ad-label{display:none!important;}
.vipn-popover-ad-modal__content .platinum-ad-render,.vipn-popover-ad-modal__content .platinum-ad-render>a{display:block!important;width:100%!important;max-width:950px!important;margin:0 auto!important;}
.vipn-popover-ad-modal__content .platinum-ad-render img{display:block!important;width:100%!important;height:auto!important;max-height:70vh!important;object-fit:contain!important;margin:0 auto!important;border-radius:16px!important;}
.vipn-popover-ad-modal__content .platinum-ad-render--html .vipn-built-ad{min-height:360px;border-radius:18px;}
.vipn-popover-ad-modal__foot{padding:10px 16px 14px;border-top:1px solid rgba(148,163,184,.20);background:#f8fafc;color:#64748b;font-size:12px;font-weight:650;text-align:center;}
@media(max-width:767.98px){.vipn-popover-ad-modal{align-items:flex-end;padding:12px}.vipn-popover-ad-modal__dialog{width:100%;max-height:88vh;border-radius:22px}.vipn-popover-ad-modal__content{padding:12px}.vipn-popover-ad-modal__content .platinum-ad-render img{max-height:62vh!important}.vipn-popover-ad-modal__foot{font-size:11px}.ad-slot--popover,.ad-zone--popover{width:min(100%,320px)!important;max-width:320px!important}.ad-slot--popover .platinum-ad-render img,.ad-zone--popover .platinum-ad-render img{max-width:320px!important;max-height:360px!important}}
@media(prefers-reduced-motion:no-preference){.vipn-popover-ad-modal__dialog{animation:vipnPopoverIn .22s ease-out both}@keyframes vipnPopoverIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}}

/* v5.8.6.71 AdSense fallback containment */
.platinum-ad-render--adsense{width:100%;min-height:90px;display:block;overflow:hidden;}
.platinum-ad-render--adsense .adsbygoogle{display:block!important;max-width:100%!important;min-height:90px;}
.ad-slot--sidebar .platinum-ad-render--adsense,.ad-zone--sidebar .platinum-ad-render--adsense{min-height:250px;}
.ad-slot--leaderboard .platinum-ad-render--adsense,.ad-zone--leaderboard .platinum-ad-render--adsense{min-height:90px;}
