/* Native advertising blocks; all layout spacing follows the Dose 8px scale. */
.dose-advertising {
  --dose-media-navy: var(--wp--preset--color--dose-navy, #080e40);
  --dose-media-blue: var(--wp--preset--color--dose-blue, #085dff);
  --dose-media-pale: var(--wp--preset--color--dose-pale-blue, #eef5ff);
  color: var(--dose-media-navy);
  background: #fff;
  font-size: 18px;
  line-height: 1.6;
  isolation: isolate;
}
.dose-advertising :where(.wp-block-group, .wp-block-buttons) { box-sizing: border-box; }
.dose-advertising :where(h1, h2, h3) { text-wrap: balance; line-height: 1.2; }
.dose-advertising :where(h1) { font-size: clamp(40px, 4.7vw, 68px); }
.dose-advertising :where(h2) { font-size: clamp(30px, 3vw, 42px); }
.dose-advertising :where(h3) { font-size: 24px; }
.dose-advertising :where(p) { text-wrap: pretty; }
.dose-advertising .wp-block-image { display: block; }
.dose-advertising .dose-media-container { max-width: 1264px; margin-inline: auto; padding-inline: 32px; }
.dose-advertising :where(.dose-media-hero, .dose-media-why, .dose-media-audience, .dose-media-partners, .dose-media-contact) { padding-block: 48px; }
.dose-advertising :where(.dose-media-hero-copy, .dose-media-container, .dose-media-audience-copy, .dose-media-contact-copy) > :where(* + *) { margin-top: 24px; }
.dose-advertising .dose-media-eyebrow { color: var(--dose-media-blue); font-size: 13px; font-weight: 700; letter-spacing: .15em; line-height: 1.5; }
.dose-advertising :where(.dose-media-hero, .dose-media-contact) { color: #fff; background: var(--dose-media-navy); }
.dose-advertising .dose-media-hero { overflow: clip; }
.dose-advertising :where(.dose-media-hero, .dose-media-contact) .dose-media-eyebrow { color: #8bb3ff; }
.dose-advertising .dose-media-accent { color: #6ca0ff; }
.dose-advertising .dose-media-lead { max-width: 36ch; color: #c3cce7; font-size: 22px; }
.dose-advertising .dose-media-hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: center; }
.dose-advertising .dose-media-hero-grid > * { margin-top: 0; min-width: 0; }
.dose-advertising .dose-media-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.dose-advertising .wp-block-button__link { background: var(--dose-media-blue); color: #fff; padding: 16px 24px; border: 1px solid transparent; border-radius: 6px; font: inherit; font-weight: 700; line-height: 1.3; transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.dose-advertising .is-style-outline .wp-block-button__link { color: #fff; background: transparent; border-color: #7481a9; }
.dose-advertising :where(a, summary):focus-visible { outline: 3px solid #8bb3ff; outline-offset: 4px; border-radius: 4px; }
.dose-advertising .wp-block-button__link:focus-visible { background: #004bd4; }
.dose-advertising .wp-block-button__link:active { transform: translateY(1px); }
@media (hover: hover) {
  .dose-advertising .wp-block-button__link:hover { background: #004bd4; transform: translateY(-2px); box-shadow: 0 8px 24px #0003; }
  .dose-advertising .is-style-outline .wp-block-button__link:hover { background: #ffffff12; }
  .dose-advertising .dose-media-partner-grid a:hover img { transform: translateY(-2px); }
}
.dose-advertising .dose-media-orbit { position: relative; container-type: inline-size; width: 100%; max-width: 520px; aspect-ratio: 1; margin: 0 auto; }
.dose-advertising .dose-media-orbit-art { width: 100%; height: 100%; }
.dose-advertising .dose-media-orbit-art img { display: block; width: 100%; height: 100%; }
.dose-advertising .dose-media-universe { width: 100%; max-width: 520px; margin-inline: auto; }
.dose-advertising .dose-media-orbit-metric { position: absolute; inset: 39%; border-radius: 50%; background: var(--dose-media-blue); display: flex; flex-direction: column; justify-content: center; text-align: center; padding: 0; box-shadow: 0 0 64px #085dff50; }
.dose-advertising .dose-media-orbit-number { font-size: clamp(13px, 4.8cqw, 25px); font-weight: 700; line-height: 1; white-space: nowrap; }
.dose-advertising .dose-media-orbit-label { font-size: clamp(8px, 2.2cqw, 11px); line-height: 1.3; margin-top: 8px; white-space: nowrap; }
.dose-advertising .dose-media-orbit-note { margin-top: 16px; color: #c3cce7; font-size: 13px; text-align: center; }
.dose-advertising .dose-media-planet-track { position: absolute; inset: var(--dose-media-inset); aspect-ratio: 1; border-radius: 50%; margin: 0; transform: rotate(var(--dose-media-phase)); pointer-events: none; }
.dose-advertising .dose-media-planet-track::before { content: ""; position: absolute; inset: 0; aspect-ratio: 1; box-sizing: border-box; border: 2px solid #658dff80; border-radius: 50%; }
.dose-advertising .dose-media-planet-reach { --dose-media-phase: 0deg; --dose-media-inset: 6%; --dose-media-size: 18cqw; --dose-media-speed: cubic-bezier(.31, .33, .64, .67); --dose-media-tint: #285fd0; }
.dose-advertising .dose-media-planet-web { --dose-media-phase: 72deg; --dose-media-inset: 12.5%; --dose-media-size: 16cqw; --dose-media-speed: cubic-bezier(.35, .33, .69, .67); --dose-media-tint: #176e98; }
.dose-advertising .dose-media-planet-visitors { --dose-media-phase: 144deg; --dose-media-inset: 19%; --dose-media-size: 14cqw; --dose-media-speed: cubic-bezier(.32, .33, .65, .67); --dose-media-tint: #6a4cbd; }
.dose-advertising .dose-media-planet-facebook { --dose-media-phase: 216deg; --dose-media-inset: 25.5%; --dose-media-size: 12cqw; --dose-media-speed: cubic-bezier(.34, .33, .68, .67); --dose-media-tint: #355bb0; }
.dose-advertising .dose-media-planet-youtube { --dose-media-phase: 288deg; --dose-media-inset: 32%; --dose-media-size: 10cqw; --dose-media-speed: cubic-bezier(.333, .35, .667, .65); --dose-media-tint: #98436e; }
.dose-advertising .dose-media-planet { position: absolute; top: 0; left: 50%; width: var(--dose-media-size); height: var(--dose-media-size); margin: 0; padding: 0; border: 1px solid #658dff; border-radius: 50%; background: radial-gradient(circle at 30% 20%, var(--dose-media-tint), #101d59 85%); box-shadow: 0 0 24px #085dff40; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; transform: translate(-50%, -50%) rotate(calc(-1 * var(--dose-media-phase))); }
.dose-advertising .dose-media-planet-number { font-size: clamp(10px, calc(var(--dose-media-size) * .22), 22px); font-weight: 700; line-height: 1.2; white-space: nowrap; }
.dose-advertising .dose-media-planet-label { margin-top: 8px; font-size: clamp(9px, 2cqw, 11px); line-height: 1.2; white-space: nowrap; }
.dose-advertising :is(.dose-media-stat-number, .dose-media-orbit-number, .dose-media-planet-number) { font-variant-numeric: tabular-nums; }
.dose-advertising .dose-media-motion-controls { display: none; justify-content: center; margin-top: 16px; }
.dose-advertising.dose-media-motion .dose-media-motion-controls { display: flex; }
.dose-advertising .dose-media-motion-toggle .wp-block-button__link { min-height: 48px; padding: 8px 16px; background: transparent; border-color: #7481a9; font-size: 14px; cursor: pointer; }
.dose-advertising .dose-media-proof { padding-block: 32px; border-bottom: 1px solid #dbe3f2; }
.dose-advertising .dose-media-proof-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.dose-advertising .dose-media-proof-grid > * { margin: 0; border-left: 2px solid #dbe3f2; padding-left: 24px; }
.dose-advertising .dose-media-stat-number { color: var(--dose-media-blue); font-size: clamp(32px, 3vw, 44px); font-weight: 700; line-height: 1.2; }
.dose-advertising .dose-media-stat-label { font-size: 15px; color: #53617b; margin-top: 8px; }
.dose-advertising .dose-media-intro { max-width: 82ch; color: #53617b; }
.dose-advertising .dose-media-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 40px; }
.dose-advertising .dose-media-benefit > * + * { margin-top: 16px; }
.dose-advertising .dose-media-benefit p { color: #53617b; }
.dose-advertising .dose-media-benefit-icon img { width: 48px; height: 48px; object-fit: contain; }
.dose-advertising .dose-media-audience { background: var(--dose-media-pale); scroll-margin-top: 32px; }
.dose-advertising .dose-media-audience-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 48px; align-items: center; }
.dose-advertising .dose-media-audience-grid > * { margin-top: 0; min-width: 0; }
.dose-advertising .dose-media-muted { color: #53617b; }
.dose-advertising .dose-media-demographics { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.dose-advertising .dose-media-demographic { position: relative; --dose-media-share: 82%; }
.dose-advertising .dose-media-women { --dose-media-share: 16%; }
.dose-advertising .dose-media-demographic::before { content: ""; position: absolute; bottom: 0; width: 100%; height: 6px; border-radius: 3px; background: #cddcf4; }
.dose-advertising .dose-media-demographic::after { content: ""; display: block; position: relative; width: var(--dose-media-share); height: 6px; border-radius: 3px; margin-top: 8px; background: var(--dose-media-blue); transform-origin: left; }
.dose-advertising .wp-block-details { font-size: 15px; }
.dose-advertising .wp-block-details summary { cursor: pointer; padding-block: 8px; color: #0032af; font-weight: 700; }
.dose-advertising .wp-block-details > :not(summary) { margin-top: 16px; }
.dose-advertising .dose-media-chart-mobile { display: none; }
.dose-advertising .dose-media-video .wp-block-embed { margin: 0; border-radius: 8px; overflow: hidden; background: var(--dose-media-navy); }
.dose-advertising .dose-media-video .wp-block-embed__wrapper:has(.embed-responsive)::before { display: none; }
.dose-advertising .dose-media-video iframe { width: 100%; border: 0; }
.dose-advertising .dose-media-video-caption { color: #53617b; font-size: 15px; margin-top: 16px; }
.dose-advertising .dose-media-partner-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; gap: 32px; margin-top: 40px; }
.dose-advertising .dose-media-partner-grid a { display: flex; min-height: 80px; align-items: center; justify-content: center; }
.dose-advertising .dose-media-partner-grid img { width: auto; max-width: 100%; max-height: 64px; object-fit: contain; transition: transform 180ms ease; }
.dose-advertising .dose-media-contact-grid { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 48px; }
.dose-advertising .dose-media-contact-grid > * { margin-top: 0; }
.dose-advertising .dose-media-contact-copy > p:not(.dose-media-eyebrow) { color: #c3cce7; }
.dose-advertising .dose-media-email a { color: #fff; text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.dose-advertising .dose-media-mobile-contact { display: none; }
.wp-block-post-content:has(> .dose-advertising) { margin-block-start: 0; }
/* Final data remains visible without JS. Orbit pauses offscreen and by user control. */
.dose-advertising.dose-media-motion .dose-media-orbit-art { animation: dose-media-orbit 4.8s cubic-bezier(.22, 1, .36, 1) both; animation-play-state: paused; }
.dose-advertising.dose-media-motion[data-hero-visible="true"] .dose-media-orbit-art { animation-play-state: running; }
.dose-advertising.dose-media-motion .dose-media-seen > .dose-media-container { animation: dose-media-enter 700ms cubic-bezier(.22, 1, .36, 1) both; }
.dose-advertising.dose-media-motion .dose-media-planet-track { animation: dose-media-planet-orbit 64s var(--dose-media-speed) infinite; animation-play-state: paused; }
.dose-advertising.dose-media-motion .dose-media-planet { animation: dose-media-planet-label 64s var(--dose-media-speed) infinite; animation-play-state: paused; }
/* Bounded speed variation keeps phases separated; counter-rotation keeps labels upright. */
.dose-advertising.dose-media-motion[data-hero-visible="true"] :is(.dose-media-planet-track, .dose-media-planet) { animation-play-state: running; }
.dose-advertising.dose-media-motion .dose-media-demographic.dose-media-seen::after { animation: dose-media-progress 1.4s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes dose-media-orbit { from { transform: rotate(-24deg) scale(.94); opacity: .4; } to { transform: rotate(0) scale(1); opacity: 1; } }
@keyframes dose-media-enter { from { transform: translateY(8px); opacity: .4; } to { transform: translateY(0); opacity: 1; } }
@keyframes dose-media-planet-orbit { from { transform: rotate(var(--dose-media-phase)); } to { transform: rotate(calc(var(--dose-media-phase) + 360deg)); } }
@keyframes dose-media-planet-label { from { transform: translate(-50%, -50%) rotate(calc(-1 * var(--dose-media-phase))); } to { transform: translate(-50%, -50%) rotate(calc(-1 * var(--dose-media-phase) - 360deg)); } }
@keyframes dose-media-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 991px) {
  .dose-advertising .dose-media-container { padding-inline: 24px; }
  .dose-advertising :is(.dose-media-hero-grid, .dose-media-audience-grid, .dose-media-contact-grid) { gap: 32px; }
  .dose-advertising .dose-media-hero-grid { grid-template-columns: 1fr; }
  .dose-advertising .dose-media-benefits { gap: 24px; }
}
@media (max-width: 767px) {
  .dose-advertising { font-size: 16px; }
  .dose-advertising .dose-media-container { padding-inline: 16px; }
  .dose-advertising :where(.dose-media-hero, .dose-media-why, .dose-media-audience, .dose-media-partners, .dose-media-contact) { padding-block: 32px; }
  .dose-advertising :is(.dose-media-hero-grid, .dose-media-audience-grid, .dose-media-contact-grid, .dose-media-benefits) { grid-template-columns: 1fr; gap: 32px; }
  .dose-advertising .dose-media-hero h1 { font-size: clamp(36px, 9.2vw, 56px); }
  .dose-advertising .dose-media-lead { font-size: 18px; }
  .dose-advertising .dose-media-actions { gap: 16px; }
  .dose-advertising .wp-block-button__link { padding: 16px; font-size: 16px; }
  .dose-advertising .dose-media-orbit { max-width: 336px; }
  .dose-advertising .dose-media-proof-grid { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .dose-advertising .dose-media-proof-grid > * { padding-left: 16px; }
  .dose-advertising .dose-media-stat-number { font-size: clamp(22px, 6.5vw, 30px); white-space: nowrap; }
  .dose-advertising .dose-media-stat-label { font-size: 13px; }
  .dose-advertising :where(.dose-media-benefits, .dose-media-partner-grid) { margin-top: 32px; }
  .dose-advertising .dose-media-benefit { display: grid; grid-template-columns: 48px 1fr; column-gap: 16px; row-gap: 8px; }
  .dose-advertising .dose-media-benefit > * { margin: 0; }
  .dose-advertising .dose-media-benefit-icon { grid-row: span 2; }
  .dose-advertising .dose-media-benefit h3 { font-size: 22px; }
  .dose-advertising .dose-media-partner-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .dose-advertising .dose-media-chart-desktop { display: none; }
  .dose-advertising .dose-media-chart-mobile { display: block; }
  .dose-advertising .dose-media-mobile-contact { display: flex; position: fixed; inset-inline: 0; bottom: 0; z-index: 10; margin: 0; padding: 8px 16px; padding-bottom: max(8px, env(safe-area-inset-bottom)); background: var(--dose-media-navy); box-shadow: 0 -4px 24px #0002; justify-content: center; }
  .dose-advertising .dose-media-mobile-contact .wp-block-button { width: 100%; }
  .dose-advertising .dose-media-mobile-contact .wp-block-button__link { width: 100%; text-align: center; display: block; padding-block: 8px; min-height: 48px; box-sizing: border-box; }
  body:has(.dose-advertising) { scroll-padding-bottom: 48px; }
  body:has(.dose-advertising):not(.wp-admin)::after { content: ""; display: block; height: calc(56px + max(8px, env(safe-area-inset-bottom))); }
  .editor-styles-wrapper .dose-advertising .dose-media-mobile-contact { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  .dose-advertising.dose-media-motion .dose-media-orbit-art,
  .dose-advertising.dose-media-motion .dose-media-seen > .dose-media-container,
  .dose-advertising.dose-media-motion .dose-media-planet-track,
  .dose-advertising.dose-media-motion .dose-media-planet,
  .dose-advertising.dose-media-motion .dose-media-demographic.dose-media-seen::after { animation: none; }
  .dose-advertising.dose-media-motion .dose-media-motion-controls { display: none; }
  .dose-advertising :where(.wp-block-button__link, .dose-media-partner-grid img) { transition: background-color 180ms ease; transform: none !important; }
}
.editor-styles-wrapper .dose-advertising :where(.dose-media-orbit-art, .dose-media-seen > .dose-media-container) { animation: none; }
