.ds-consent-root,
.ds-consent-iframe-placeholder {
    color: var(--ds-consent-text, #f4f1ed);
    font-family: var(--ds-consent-font, "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif);
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

.ds-consent-root *,
.ds-consent-root *::before,
.ds-consent-root *::after,
.ds-consent-iframe-placeholder *,
.ds-consent-iframe-placeholder *::before,
.ds-consent-iframe-placeholder *::after {
    box-sizing: border-box;
}

.ds-consent-root [hidden],
.ds-consent-iframe-placeholder[hidden] {
    display: none !important;
}

.ds-consent-banner {
    position: fixed;
    z-index: 2147483000;
    right: max(0.75rem, env(safe-area-inset-right));
    bottom: max(0.75rem, env(safe-area-inset-bottom));
    left: max(0.75rem, env(safe-area-inset-left));
    display: grid;
    max-height: calc(100vh - 1.5rem);
    overflow: hidden auto;
    padding: 1.125rem;
    color: var(--ds-consent-text, #f4f1ed);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.055), transparent 38%),
        var(--ds-consent-surface, rgba(22, 28, 31, 0.97));
    border: 1px solid var(--ds-consent-border, rgba(244, 241, 237, 0.16));
    border-radius: var(--ds-consent-radius, 1.25rem);
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.07);
    isolation: isolate;
}

@supports (backdrop-filter: blur(1rem)) {
    .ds-consent-banner {
        background-color: var(--ds-consent-surface-glass, rgba(22, 28, 31, 0.86));
        backdrop-filter: blur(1.25rem) saturate(125%);
    }
}

.ds-consent-banner::before {
    position: absolute;
    z-index: 1;
    top: 0;
    right: 1.25rem;
    left: 1.25rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--ds-consent-accent, #e37556), transparent);
    content: "";
    opacity: 0.8;
}

.ds-consent-banner__glow,
.ds-consent-modal__glow {
    position: absolute;
    z-index: -1;
    width: 14rem;
    height: 14rem;
    pointer-events: none;
    background: var(--ds-consent-accent, #e37556);
    border-radius: 50%;
    filter: blur(6rem);
    opacity: 0.12;
}

.ds-consent-banner__glow { top: -8rem; left: -4rem; }

.ds-consent-banner__main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.875rem;
    align-items: start;
}

.ds-consent-brand-mark {
    display: grid;
    width: 2.875rem;
    height: 2.875rem;
    flex: 0 0 auto;
    place-items: center;
    color: var(--ds-consent-accent, #e37556);
    background: var(--ds-consent-accent-soft, rgba(227, 117, 86, 0.12));
    border: 1px solid var(--ds-consent-accent-border, rgba(227, 117, 86, 0.3));
    border-radius: 0.875rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.ds-consent-brand-mark svg { display: block; width: 1.75rem; height: 1.75rem; }
.ds-consent-brand-mark--small { width: 2.5rem; height: 2.5rem; border-radius: 0.75rem; }
.ds-consent-brand-mark--small svg { width: 1.5rem; height: 1.5rem; }

.ds-consent-title {
    margin: 0;
    color: inherit;
    font: 680 clamp(1.15rem, 2vw, 1.35rem)/1.25 var(--ds-consent-font, "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif);
    letter-spacing: -0.025em;
}

.ds-consent-banner__content > p,
.ds-consent-category p,
.ds-consent-modal__intro,
.ds-consent-iframe-placeholder p { margin: 0; color: var(--ds-consent-muted, #b9b9b4); }

.ds-consent-banner__content > p {
    max-width: 46rem;
    margin-top: 0.35rem;
    font-size: 0.925rem;
    line-height: 1.55;
}

.ds-consent-policy-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-top: 0.7rem; }

.ds-consent-policy-links--modal {
    justify-content: flex-end;
    margin: 0.9rem 0.25rem 0;
}

.ds-consent-policy-links a {
    position: relative;
    color: var(--ds-consent-text, #f4f1ed);
    font: 600 0.68rem/1.2 var(--ds-consent-mono, "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace);
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.ds-consent-policy-links a::after {
    position: absolute;
    right: 0;
    bottom: -0.2rem;
    left: 0;
    height: 1px;
    background: var(--ds-consent-accent, #e37556);
    content: "";
    transform: scaleX(0.25);
    transform-origin: left;
    transition: transform 180ms ease;
}

.ds-consent-policy-links a:hover::after { transform: scaleX(1); }

.ds-consent-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.625rem;
    margin-top: 1rem;
}

.ds-consent-actions .ds-consent-button--ghost { grid-column: 1 / -1; }

.ds-consent-button,
.ds-consent-text-button {
    appearance: none;
    min-height: 2.875rem;
    margin: 0;
    border-radius: 0.75rem;
    cursor: pointer;
    font-family: var(--ds-consent-font, "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif);
    font-size: 0.875rem;
    font-weight: 680;
    line-height: 1.2;
}

.ds-consent-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1rem;
    border: 1px solid transparent;
}

.ds-consent-button--choice {
    color: var(--ds-consent-button-text, #171c1f);
    background: var(--ds-consent-button-bg, #f4f1ed);
    border-color: var(--ds-consent-button-bg, #f4f1ed);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.14);
}

.ds-consent-button--ghost {
    color: var(--ds-consent-text, #f4f1ed);
    background: rgba(255, 255, 255, 0.035);
    border-color: var(--ds-consent-accent-border, rgba(227, 117, 86, 0.55));
}

.ds-consent-button--accent {
    color: var(--ds-consent-accent-text, #171c1f);
    background: var(--ds-consent-accent, #e37556);
    border-color: var(--ds-consent-accent, #e37556);
    box-shadow: 0 0.75rem 1.75rem rgba(227, 117, 86, 0.18);
}

.ds-consent-button:focus-visible,
.ds-consent-text-button:focus-visible,
.ds-consent-close:focus-visible,
.ds-consent-switch input:focus-visible + .ds-consent-switch__track,
.ds-consent-root a:focus-visible { outline: 3px solid var(--ds-consent-focus, #ffc65c); outline-offset: 3px; }

.ds-consent-modal {
    position: fixed;
    z-index: 2147483001;
    inset: 0;
    display: grid;
    place-items: center;
    padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
}

.ds-consent-modal__backdrop { position: absolute; inset: 0; background: rgba(7, 10, 12, 0.72); backdrop-filter: blur(0.5rem); }

.ds-consent-modal__panel {
    position: relative;
    width: min(100%, 46rem);
    max-height: calc(100vh - 1.5rem);
    overflow: hidden auto;
    padding: 1rem;
    color: var(--ds-consent-text, #f4f1ed);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.05), transparent 34%), var(--ds-consent-panel, #1c2326);
    border: 1px solid var(--ds-consent-border, rgba(244, 241, 237, 0.14));
    border-radius: var(--ds-consent-modal-radius, 1.5rem);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.48);
    isolation: isolate;
}

.ds-consent-modal__glow { top: -8rem; right: -6rem; }

.ds-consent-modal__header,
.ds-consent-modal__heading,
.ds-consent-category,
.ds-consent-modal__footer,
.ds-consent-modal__quick-actions { display: flex; }

.ds-consent-modal__header,
.ds-consent-category,
.ds-consent-modal__footer { justify-content: space-between; }

.ds-consent-modal__header { align-items: flex-start; gap: 1rem; padding: 0.25rem 0.25rem 1rem; }
.ds-consent-modal__heading { min-width: 0; gap: 0.75rem; align-items: flex-start; }
.ds-consent-modal__intro { max-width: 33rem; margin-top: 0.3rem; font-size: 0.875rem; }

.ds-consent-close {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    place-items: center;
    padding: 0;
    color: var(--ds-consent-text, #f4f1ed);
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid var(--ds-consent-border, rgba(244, 241, 237, 0.14));
    border-radius: 50%;
    cursor: pointer;
}

.ds-consent-close svg { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; }
.ds-consent-categories { display: grid; gap: 0.625rem; }

.ds-consent-category {
    align-items: center;
    gap: 1rem;
    padding: 0.875rem;
    background: var(--ds-consent-category-bg, rgba(255, 255, 255, 0.038));
    border: 1px solid var(--ds-consent-border, rgba(244, 241, 237, 0.11));
    border-radius: 1rem;
}

.ds-consent-category--required { background: var(--ds-consent-accent-soft, rgba(227, 117, 86, 0.08)); border-color: var(--ds-consent-accent-border, rgba(227, 117, 86, 0.24)); }
.ds-consent-category__copy { min-width: 0; }

.ds-consent-category__copy > label {
    display: inline-block;
    margin-bottom: 0.2rem;
    color: var(--ds-consent-text, #f4f1ed);
    font-size: 0.925rem;
    font-weight: 680;
}

.ds-consent-category p { font-size: 0.8rem; line-height: 1.45; }

.ds-consent-switch {
    position: relative;
    display: block;
    width: 3rem;
    height: 1.75rem;
    flex: 0 0 3rem;
    cursor: pointer;
}

.ds-consent-switch input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }

.ds-consent-switch__track {
    position: absolute;
    inset: 0;
    background: var(--ds-consent-switch-off, #394146);
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 999px;
    box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.18);
    transition: background-color 180ms ease, border-color 180ms ease;
}

.ds-consent-switch__track::after {
    position: absolute;
    top: 0.19rem;
    left: 0.2rem;
    width: 1.22rem;
    height: 1.22rem;
    background: #f4f1ed;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    content: "";
    transition: transform 180ms cubic-bezier(0.2, 0.75, 0.3, 1.2);
}

.ds-consent-switch input:checked + .ds-consent-switch__track { background: var(--ds-consent-accent, #e37556); border-color: var(--ds-consent-accent, #e37556); }
.ds-consent-switch input:checked + .ds-consent-switch__track::after { transform: translateX(1.2rem); }
.ds-consent-switch input:disabled + .ds-consent-switch__track { cursor: not-allowed; opacity: 0.7; }

.ds-consent-modal__footer { align-items: center; gap: 1rem; margin-top: 1rem; padding: 0.25rem; }
.ds-consent-modal__quick-actions { flex-wrap: wrap; gap: 0.25rem; }

.ds-consent-text-button {
    min-height: 2.5rem;
    padding: 0.5rem 0.625rem;
    color: var(--ds-consent-muted, #b9b9b4);
    background: transparent;
    border: 0;
    text-decoration: underline;
    text-decoration-color: rgba(227, 117, 86, 0.45);
    text-underline-offset: 0.25rem;
}

.ds-consent-modal-open { overflow: hidden; }

.ds-consent-launcher {
    position: fixed;
    z-index: 2147482999;
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    padding: 0;
    color: var(--ds-consent-text, #f4f1ed);
    background: var(--ds-consent-surface, rgba(22, 28, 31, 0.96));
    border: 1px solid var(--ds-consent-accent-border, rgba(227, 117, 86, 0.42));
    border-radius: 999px;
    box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    cursor: pointer;
    font-family: var(--ds-consent-font, "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif);
    font-size: 0.78rem;
    font-weight: 680;
    line-height: 1.15;
}

.ds-consent-launcher--right,
.ds-consent-launcher--bottom_right {
    right: max(1rem, env(safe-area-inset-right));
    left: auto;
}

.ds-consent-launcher__icon {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 2.25rem;
    place-items: center;
    color: var(--ds-consent-accent, #e37556);
    background: var(--ds-consent-accent-soft, rgba(227, 117, 86, 0.12));
    border-radius: 50%;
}

.ds-consent-launcher__icon svg {
    width: 1.4rem;
    height: 1.4rem;
}

.ds-consent-launcher:focus-visible {
    outline: 3px solid var(--ds-consent-focus, #ffc65c);
    outline-offset: 3px;
}

.ds-consent-iframe-placeholder {
    position: relative;
    display: grid;
    min-height: 14rem;
    overflow: hidden;
    place-items: center;
    align-content: center;
    gap: 1rem;
    padding: 2rem;
    color: var(--ds-consent-text, #f4f1ed);
    text-align: center;
    background: radial-gradient(circle at 15% 15%, var(--ds-consent-accent-soft, rgba(227, 117, 86, 0.13)), transparent 42%), var(--ds-consent-panel, #1c2326);
    border: 1px solid var(--ds-consent-border, rgba(244, 241, 237, 0.14));
    border-radius: var(--ds-consent-radius, 1.25rem);
}

.ds-consent-iframe-placeholder .ds-consent-button { color: var(--ds-consent-accent-text, #171c1f); background: var(--ds-consent-accent, #e37556); border-color: var(--ds-consent-accent, #e37556); }

@media (max-width: 31.99rem) {
    .ds-consent-banner__main { grid-template-columns: 1fr; }
    .ds-consent-brand-mark { width: 2.5rem; height: 2.5rem; }
    .ds-consent-modal__footer { align-items: stretch; flex-direction: column-reverse; }
    .ds-consent-modal__footer > .ds-consent-button { width: 100%; }
    .ds-consent-modal__quick-actions { justify-content: center; }
}

@media (min-width: 48rem) {
    .ds-consent-banner {
        width: min(72rem, calc(100% - 2rem));
        margin-inline: auto;
        padding: 1.25rem;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 1.75rem;
        align-items: center;
    }

    .ds-consent-banner__main { gap: 1rem; align-items: center; }
    .ds-consent-actions { min-width: 25rem; margin-top: 0; grid-template-columns: 1fr 1fr; }

    .ds-consent-banner--bottom_left,
    .ds-consent-banner--bottom_right {
        width: min(31rem, calc(100% - 2rem));
        margin-inline: 0;
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .ds-consent-banner--bottom_left { right: auto; }
    .ds-consent-banner--bottom_right { left: auto; }
    .ds-consent-banner--bottom_left .ds-consent-actions,
    .ds-consent-banner--bottom_right .ds-consent-actions { min-width: 0; }
    .ds-consent-modal__panel { padding: 1.375rem; }
    .ds-consent-modal__header { padding: 0.25rem 0.25rem 1.25rem; }
    .ds-consent-category { padding: 1rem 1.125rem; }
}

@media (prefers-reduced-motion: no-preference) {
    .ds-consent-banner { animation: ds-consent-enter 420ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
    .ds-consent-modal__backdrop { animation: ds-consent-fade 180ms ease both; }
    .ds-consent-modal__panel { animation: ds-consent-modal-enter 260ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
    .ds-consent-button,
    .ds-consent-close,
    .ds-consent-text-button,
    .ds-consent-launcher { transition: transform 150ms ease, background-color 150ms ease, border-color 150ms ease, color 150ms ease, filter 150ms ease; }
    .ds-consent-button:hover,
    .ds-consent-close:hover,
    .ds-consent-launcher:hover { filter: brightness(1.08); transform: translateY(-1px); }
    .ds-consent-button:active,
    .ds-consent-close:active,
    .ds-consent-launcher:active { transform: translateY(0) scale(0.985); }
}

@keyframes ds-consent-enter {
    from { opacity: 0; transform: translateY(1.5rem) scale(0.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes ds-consent-fade { from { opacity: 0; } to { opacity: 1; } }

@keyframes ds-consent-modal-enter {
    from { opacity: 0; transform: translateY(0.75rem) scale(0.975); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (forced-colors: active) {
    .ds-consent-banner,
    .ds-consent-modal__panel,
    .ds-consent-category,
    .ds-consent-iframe-placeholder { border: 2px solid CanvasText; }
}
