/* Shared semantic replacements for decorative dot badges.
 * Explicit component allowlist: do not target generic circles, controls, charts,
 * browser chrome, map pins, client logos or the approved auth-logo animation.
 * CSS masks retain dynamic text, status classes, translations and Vue bindings.
 */
:root {
    --aion-mark-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m5%2012%204%204L19%206%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-calendar: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M16%203v4M8%203v4M3%2011h18m-14%205%203%203%206-6%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-clock: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-users: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2m20%200v-2a4%204%200%200%200-3-3.9M16%203.1a4%204%200%200%201%200%207.8%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-headset: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2014v-3a9%209%200%200%201%2018%200v6a4%204%200%200%201-4%204h-3%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2211%22%20width%3D%224%22%20height%3D%227%22%20rx%3D%222%22%2F%3E%3Crect%20x%3D%2217%22%20y%3D%2211%22%20width%3D%224%22%20height%3D%227%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-link: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2013a5%205%200%200%200%207.1%200l3-3a5%205%200%200%200-7.1-7.1l-1.7%201.7M14%2011a5%205%200%200%200-7.1%200l-3%203a5%205%200%200%200%207.1%207.1l1.7-1.7%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-grid: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-shield: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%203%208%203v6c0%205-8%209-8%209s-8-4-8-9V6l8-3Zm-4%209%203%203%205-6%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-tag: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013%2011%2022%202%2013V3h10l8%208a1.4%201.4%200%200%201%200%202Z%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%228%22%20r%3D%221%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-box: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%207%209-5%209%205v10l-9%205-9-5V7Zm0%200%209%205%209-5m-9%205v10M7.5%204.5l9%205%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-activity: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2012h4l3-8%204%2016%203-8h4%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-close: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%206%2012%2012M18%206%206%2018%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-book: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205c-3-2-6-2-10-1v15c4-1%207-1%2010%201%203-2%206-2%2010-1V4c-4-1-7-1-10%201Zm0%200v15%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-bell: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%208a6%206%200%200%200-12%200c0%207-3%207-3%209h18c0-2-3-2-3-9M10%2021h4%22%2F%3E%3C%2Fsvg%3E");
    --aion-mark-message: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015a3%203%200%200%201-3%203H8l-5%203V6a3%203%200%200%201%203-3h12a3%203%200%200%201%203%203v9Z%22%2F%3E%3C%2Fsvg%3E");
}

html body .business-mega__benefits i,
html body .status-dot,
html body .hero__proof span::before,
html body .integration-section__points li::before,
html body .business-audience-story__benefits li::before,
html body .platform-availability__note i,
html body.inner-hero-page .hero-status__note i,
html body.homepage-prototype .product-stage__live i,
html body.homepage-prototype .product-stage__flow-calendar .is-active::before,
html body.homepage-prototype .product-stage__flow-steps .is-active::before,
html body.homepage-prototype .product-stage__included-kicker i,
html body.homepage-prototype .scene-product__meta span i,
html body .stock::before,
html body .clarity-availability i,
html body .market-availability i,
html body .aion-site-online-dot,
html body #app .aion-admin-subscription-state i,
html body .global-footer__schedule-head i,
html body .hero-stage__badge .status-dot,
html body .platform-mega__promise-mark,
html body .hero-status__note i,
html body .floating-card--online .status-dot,
html body #app .aion-ui-dot,
html body .hero-proof__item .status-dot,
html body .platform-mega__core-live i,
html body #app .aion-panel-shell.aion-panel-shell--company .aion-embed-preview-browser__status::before,
html body.homepage-prototype .product-outcome__header > span i,
html body .integration-carousel__status i,
html body .eyebrow__pulse,
html body.homepage-prototype .product-stage__eyebrow i,
html body .market-section-nav-title::before,
html body .client-story__kicker > span,
html body.discovery-page .discovery-card__category::before,
html body .onboarding-kicker i,
html body .guide-visual__bar i,
html body.homepage-prototype .product-stage__photo-story > span i,
html body.aioness-auth-brand .aion-register-benefit::before,
html body.aioness-auth-brand .aion-user-register__feature::after {
    display: inline-block;
    width: 14px !important;
    height: 14px !important;
    min-width: 14px;
    flex: 0 0 14px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: currentColor !important;
    box-shadow: none !important;
    animation: none !important;
    -webkit-mask: var(--aion-semantic-mark) center / contain no-repeat;
    mask: var(--aion-semantic-mark) center / contain no-repeat;
    vertical-align: -.12em;
}

html body .business-mega__benefits i,
html body .status-dot,
html body .hero__proof span::before,
html body .integration-section__points li::before,
html body .business-audience-story__benefits li::before,
html body .platform-availability__note i,
html body.inner-hero-page .hero-status__note i,
html body.homepage-prototype .product-stage__live i,
html body.homepage-prototype .product-stage__flow-calendar .is-active::before,
html body.homepage-prototype .product-stage__flow-steps .is-active::before,
html body.homepage-prototype .product-stage__included-kicker i,
html body.homepage-prototype .scene-product__meta span i,
html body .stock::before,
html body .clarity-availability i,
html body .market-availability i,
html body .aion-site-online-dot,
html body #app .aion-admin-subscription-state i { --aion-semantic-mark: var(--aion-mark-check); }

html body .global-footer__schedule-head i,
html body .hero-stage__badge .status-dot,
html body .platform-mega__promise-mark,
html body .hero-status__note i { --aion-semantic-mark: var(--aion-mark-calendar); }

html body .floating-card--online .status-dot,
html body #app .aion-ui-dot,
html body .hero-proof__item .status-dot { --aion-semantic-mark: var(--aion-mark-clock); }

html body .platform-mega__core-live i,
html body #app .aion-panel-shell.aion-panel-shell--company .aion-embed-preview-browser__status::before,
html body.homepage-prototype .product-outcome__header > span i { --aion-semantic-mark: var(--aion-mark-activity); }

html body .integration-carousel__status i { --aion-semantic-mark: var(--aion-mark-link); }

html body .eyebrow__pulse,
html body.homepage-prototype .product-stage__eyebrow i,
html body .market-section-nav-title::before { --aion-semantic-mark: var(--aion-mark-grid); }

html body .client-story__kicker > span { --aion-semantic-mark: var(--aion-mark-users); }

html body.discovery-page .discovery-card__category::before { --aion-semantic-mark: var(--aion-mark-tag); }

html body .onboarding-kicker i,
html body .guide-visual__bar i { --aion-semantic-mark: var(--aion-mark-book); }

html body.homepage-prototype .product-stage__photo-story > span i,
html body.aioness-auth-brand .aion-register-benefit::before,
html body.aioness-auth-brand .aion-user-register__feature::after { --aion-semantic-mark: var(--aion-mark-shield); }

/* Distinguish unavailable, waiting and stopped states without changing logic. */
html body .stock.is-empty::before,
html body .booking-status.is-offline .status-dot,
html body .booking-status[data-booking-status="offline"] .status-dot,
html body .clarity-availability.is-empty i,
html body .aion-site-online--offline .aion-site-online-dot,
html body .aion-site-online[data-booking-status="offline"] .aion-site-online-dot,
html body #app .aion-admin-subscription-state[data-tone="danger"] i { --aion-semantic-mark: var(--aion-mark-close); }
html body #app .aion-admin-subscription-state[data-tone="neutral"] i { --aion-semantic-mark: var(--aion-mark-close); }
html body #app .aion-admin-subscription-state[data-tone="warning"] i,
html body .clarity-availability.is-by-arrangement i { --aion-semantic-mark: var(--aion-mark-clock); }
html body .clarity-service-availability:not(.clarity-product-availability-card):not(.clarity-event-availability-card) .clarity-availability:not(.is-by-arrangement) i { --aion-semantic-mark: var(--aion-mark-calendar); }

/* Explicit SVGs are used where one component has differently worded benefits. */
html body .aion-marker-icon { width: 14px; height: 14px; flex: 0 0 14px; color: inherit; fill: none; stroke: currentColor; stroke-width: 1.8; }
html body .business-mega__benefits .aion-marker-icon { color: #008510; }
html[data-theme="dark"] body .business-mega__benefits .aion-marker-icon,
html body .global-footer__assurances .aion-marker-icon { color: #72e781; }
html body .global-footer__assurances span::before,
html body .platform-mega__promise-mark::after,
html body .status-dot::after,
html body .aion-site-online-dot::after { content: none; }
html body .platform-mega__promise-mark { width: 20px !important; height: 20px !important; flex-basis: 20px !important; color: #008510; }
html body .business-audience-story__benefits li { padding-left: 23px; }
html body .business-audience-story__benefits li::before { top: .28em; }
html body .integration-section__points li::before { margin-top: 3px; }
html body .editorial-frame--product figcaption .status-dot { flex-basis: 14px !important; }
