@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Extralight.otf") format("opentype");
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Light.otf") format("opentype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Regular.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Medium.otf") format("opentype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Semibold.otf") format("opentype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Bold.otf") format("opentype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Extrabold.otf") format("opentype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvena";
    src: url("../fonts/Helvena-Black.otf") format("opentype");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Swarsh Daisy";
    src: url("../fonts/Swarsh Daisy-Regular.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Swarsh Daisy";
    src: url("../fonts/Swarsh Daisy-Italic.otf") format("opentype");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    --dp-color-base: #000000;
    --dp-color-surface: #f8f8f8;
    --dp-color-brand: #d8f800;
    --dp-color-accent: #303890;
    --dp-color-accent-pink: #e00088;
    --dp-color-muted: #b5b5b5;
    --dp-color-border: rgba(248, 248, 248, 0.16);
    --dp-color-border-strong: rgba(248, 248, 248, 0.3);
    --dp-color-success: #3ddc97;
    --dp-color-error: #ff5a5f;
    --dp-font-primary: "Helvena", Helvetica, Arial, sans-serif;
    --dp-font-accent: "Swarsh Daisy", "Times New Roman", serif;
    --dp-content-width: min(100% - 2rem, 72rem);
    --dp-layout-wide: 90rem;
    --dp-site-gutter: clamp(1.25rem, 4vw, 3rem);
    --dp-wide-width: min(100%, var(--dp-layout-wide));
    --dp-header-height: 5.5rem;
    --dp-header-height-fallback: 5.5rem;
    --dp-dropdown-gap: 0.9rem;
    --dp-dropdown-bridge: calc(var(--dp-dropdown-gap) + 0.4rem);
    /* Section rhythm — shared across homepage blocks. */
    --dp-section-space-y: clamp(4rem, 10vw, 7rem);
    --dp-section-space-y-lg: clamp(5rem, 12vw, 8.5rem);
    --dp-section-space-y-sm: clamp(2.75rem, 7vw, 4.5rem);
    --dp-section-inner-space-y: clamp(1.25rem, 2.5vw, 2rem);
    --dp-section-inner-space-y-sm: clamp(0.75rem, 2vw, 1.25rem);
    --dp-section-title-gap: clamp(1.5rem, 3.5vw, 2.25rem);
    --dp-section-title-gap-lg: clamp(1.75rem, 4.5vw, 3rem);
    /* Single rhythm between back-to-back sections with the same background. */
    --dp-section-adjacent-gap: clamp(2rem, 5.5vw, 3.5rem);
    /* Shared edge when the next section changes colour (colour already separates). */
    --dp-section-contrast-edge: clamp(2rem, 5vw, 3.75rem);
    --dp-radius-button: 999px;
    --dp-radius-pill: 999px;
    --dp-radius-card: 1.75rem;
    --dp-button-font-size: 1rem;
    --dp-button-line-height: 2.75rem;
    --dp-button-font-weight: 500;
    --dp-button-padding-x: 1.25rem;
    --dp-radius-input: 1rem;
    --dp-shadow-soft: 0 18px 45px rgba(0, 0, 0, 0.16);
    --dp-transition: 180ms ease;
    --dp-button-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --dp-button-sweep-duration: 0.45s;
    --dp-button-hover-border: var(--dp-color-brand);
    --dp-button-hover-color: var(--dp-color-brand);
    /* Swarsh Daisy renders smaller than Helvena at 1em — scale + align optically. */
    --dp-accent-font-size: 1.14em;
    --dp-accent-vertical-align: 0.015em;
    --dp-accent-side-padding: 0.03em;
    --dp-accent-letter-spacing: 0.015em;
    --dp-accent-line-height: 0.92;
}

@media (max-width: 767px) {
    :root {
        --dp-section-space-y: clamp(4rem, 14vw, 5.5rem);
        --dp-section-space-y-lg: clamp(4.5rem, 16vw, 7rem);
        --dp-section-space-y-sm: clamp(2.5rem, 9vw, 3.5rem);
        --dp-section-inner-space-y: clamp(1rem, 3vw, 1.25rem);
        --dp-section-inner-space-y-sm: clamp(0.65rem, 2.5vw, 0.85rem);
        --dp-section-title-gap: clamp(1.25rem, 4.5vw, 1.75rem);
        --dp-section-title-gap-lg: clamp(1.5rem, 5.5vw, 2.25rem);
        --dp-section-adjacent-gap: clamp(2.5rem, 10vw, 3.5rem);
        --dp-section-contrast-edge: clamp(2rem, 7vw, 2.75rem);
    }
}

html {
    scroll-behavior: smooth;
    overflow-x: clip;
}

body {
    margin: 0;
    overflow-x: clip;
    background: var(--dp-color-base);
    color: var(--dp-color-surface);
    font-family: var(--dp-font-primary);
    font-size: 1rem;
    line-height: 1.5;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

img,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

.dp-news-grid__media-frame img {
	height: 100%;
	max-width: none;
}

a:where(:not(.dp-button):not(.wp-block-button__link)) {
    color: var(--dp-color-brand);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.15em;
    transition:
        color var(--dp-transition),
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        opacity var(--dp-transition);
}

a:where(:not(.dp-button):not(.wp-block-button__link)):hover,
a:where(:not(.dp-button):not(.wp-block-button__link)):focus-visible {
    color: var(--dp-color-surface);
}

/* Admin-only “Edit in Dashboard” links (category list, shortlist, judges, …). */
.dp-dashboard-edit-link {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 28%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--dp-color-surface) 6%, transparent);
    color: var(--dp-color-surface);
    font-family: var(--dp-font-primary);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition:
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        color var(--dp-transition);
}

.dp-dashboard-edit-link:hover,
.dp-dashboard-edit-link:focus-visible {
    border-color: var(--dp-color-brand);
    background: color-mix(in srgb, var(--dp-color-brand) 14%, transparent);
    color: var(--dp-color-brand);
    outline: none;
}

.dp-dashboard-edit-link:focus-visible {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dp-color-brand) 35%, transparent);
}

a:focus-visible {
    outline: 2px solid var(--dp-color-brand);
    outline-offset: 3px;
}

p,
ul,
ol {
    margin-block: 0;
}

:is(p, ul, ol) + :is(p, ul, ol) {
    margin-block-start: 1em;
}

ul,
ol {
    padding-inline-start: 1.2rem;
}

li + li {
    margin-top: 0.5rem;
}

small,
.has-small-font-size,
.dp-small-text {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    line-height: 1.4;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
    margin: 0 0 1.25rem;
    font-family: var(--dp-font-primary);
    font-weight: 700;
    line-height: 0.95;
    color: var(--dp-color-surface);
    text-wrap: balance;
}

h1 {
    font-size: clamp(3rem, 5vw, 5.5rem);
    letter-spacing: -0.04em;
}

h2 {
    font-size: clamp(2.25rem, 4vw, 4rem);
    letter-spacing: -0.03em;
}

h3 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    letter-spacing: -0.02em;
}

h4 {
    font-size: 1.375rem;
}

h5,
h6 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.dp-accent-text,
.has-dp-accent-font {
    font-family: var(--dp-font-accent);
    font-weight: 400;
    font-style: normal;
}

/* Inline Swarsh Daisy in Helvena text (RichText italic, legacy accent spans). */
[class*='__heading'] em,
[class*='__heading'] i,
[class*='__title'] em,
[class*='__title'] i,
[class*='__heading-accent'],
.dp-hero__heading-accent,
.dp-award-categories__description em,
.dp-award-categories__description i {
    display: inline;
    font-family: var(--dp-font-accent);
    font-style: italic;
    font-weight: 400;
    font-size: var(--dp-accent-font-size);
    line-height: var(--dp-accent-line-height);
    letter-spacing: var(--dp-accent-letter-spacing);
    vertical-align: var(--dp-accent-vertical-align);
    padding-inline: var(--dp-accent-side-padding);
}

.dp-hero__heading em,
.dp-benefits__heading em,
.dp-award-categories__heading em,
.dp-carousel__heading em,
.dp-logo-grid__heading em {
    --dp-accent-font-size: 1.2em;
    --dp-accent-vertical-align: 0.01em;
    --dp-accent-letter-spacing: 0.02em;
    --dp-accent-line-height: 0.9;
}

button,
input,
select,
textarea {
    font: inherit;
}

.dp-button,
a.dp-button,
.wp-block-button .wp-block-button__link,
a.wp-element-button {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: var(--dp-button-line-height);
    padding: 0 var(--dp-button-padding-x);
    border: 1px solid var(--dp-button-rest-border, transparent);
    border-radius: var(--dp-radius-button);
    background: var(--dp-button-rest-bg, transparent);
    color: var(--dp-button-rest-color, inherit);
    font-family: var(--dp-font-primary);
    font-size: var(--dp-button-font-size);
    font-weight: var(--dp-button-font-weight);
    line-height: var(--dp-button-line-height);
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    position: relative;
    z-index: 0;
    overflow: visible;
    isolation: isolate;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        color var(--dp-button-sweep-duration) var(--dp-button-ease),
        transform 120ms var(--dp-button-ease);
}

.dp-button::after,
.wp-block-button .wp-block-button__link::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    border: 1px solid var(--dp-button-hover-border, var(--dp-color-brand));
    clip-path: inset(0 100% 0 0 round var(--dp-radius-button));
    pointer-events: none;
    z-index: -1;
    transition: clip-path var(--dp-button-sweep-duration) var(--dp-button-ease);
}

.dp-button:not([aria-disabled="true"]):not(.is-disabled):hover,
.dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
.wp-block-button .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:focus-visible {
    background: transparent;
    border-color: var(--dp-button-sweep-from, var(--dp-button-rest-border, transparent));
    color: var(--dp-button-hover-color, var(--dp-color-brand));
}

.dp-button:not([aria-disabled="true"]):not(.is-disabled):hover::after,
.dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible::after,
.wp-block-button .wp-block-button__link:hover::after,
.wp-block-button .wp-block-button__link:focus-visible::after {
    clip-path: inset(0 0 0 0 round var(--dp-radius-button));
}

.dp-button:not([aria-disabled="true"]):not(.is-disabled):active,
.wp-block-button .wp-block-button__link:active {
    transform: scale(0.99);
}

.dp-button:focus-visible,
.wp-block-button .wp-block-button__link:focus-visible {
    outline: 2px solid var(--dp-color-brand);
    outline-offset: 3px;
}

.dp-button[aria-disabled="true"],
.dp-button.is-disabled {
    cursor: not-allowed;
}

.dp-button--primary,
.is-style-dp-primary .wp-block-button__link,
.is-style-dp-primary.wp-block-button .wp-block-button__link {
    --dp-button-rest-bg: var(--dp-color-brand);
    --dp-button-rest-border: var(--dp-color-brand);
    /* Label on brand fill: always dark (base token may match brand in Site Settings). */
    --dp-button-rest-color: #000;
    --dp-button-sweep-from: var(--dp-color-brand);
    --dp-button-hover-border: var(--dp-color-brand);
    --dp-button-hover-color: var(--dp-color-brand);
    color: #000;
}

.dp-button--white,
.dp-button--secondary,
.is-style-dp-white .wp-block-button__link,
.is-style-dp-white.wp-block-button .wp-block-button__link,
.is-style-dp-secondary .wp-block-button__link,
.is-style-dp-secondary.wp-block-button .wp-block-button__link {
    --dp-button-rest-bg: #ffffff;
    --dp-button-rest-border: #ffffff;
    --dp-button-rest-color: var(--dp-color-base);
    --dp-button-sweep-from: #ffffff;
}

@media (max-width: 959px) {
    .dp-button--white,
    .dp-button--secondary,
    .is-style-dp-white .wp-block-button__link,
    .is-style-dp-white.wp-block-button .wp-block-button__link,
    .is-style-dp-secondary .wp-block-button__link,
    .is-style-dp-secondary.wp-block-button .wp-block-button__link {
        --dp-button-rest-bg: transparent;
        --dp-button-rest-border: #ffffff;
        --dp-button-rest-color: #ffffff;
        --dp-button-sweep-from: #ffffff;
    }
}

.dp-button--accent,
.is-style-dp-accent .wp-block-button__link {
    --dp-button-rest-bg: var(--dp-color-accent);
    --dp-button-rest-border: var(--dp-color-accent);
    --dp-button-rest-color: var(--dp-color-surface);
    --dp-button-sweep-from: var(--dp-color-accent);
}

.dp-button--on-color {
    --dp-button-rest-bg: var(--dp-color-base);
    --dp-button-rest-border: var(--dp-color-base);
    --dp-button-rest-color: var(--dp-button-on-color-text, var(--dp-color-brand));
    --dp-button-sweep-from: color-mix(in srgb, var(--dp-color-base) 35%, transparent);
    --dp-button-hover-border: var(--dp-color-base);
    --dp-button-hover-color: var(--dp-color-base);
    text-decoration: none;
}

.dp-button--outline {
    --dp-button-rest-bg: transparent;
}

/* Linked buttons must not inherit global anchor colour/underline rules. */
a.dp-button,
a.dp-button:any-link,
a.dp-button:is(:hover, :focus, :focus-visible, :active, :visited),
.wp-block-button .wp-block-button__link,
.wp-block-button .wp-block-button__link:any-link,
.wp-block-button .wp-block-button__link:is(:hover, :focus, :focus-visible, :active, :visited) {
    text-decoration: none;
    text-decoration-line: none;
    text-decoration-thickness: initial;
    text-underline-offset: initial;
}

/* Same-page #anchor CTAs are :visited immediately — set rest colours on :any-link, not a generic :visited rule. */
a.dp-button--primary:any-link,
.is-style-dp-primary .wp-block-button__link:any-link {
    color: #000;
    -webkit-text-fill-color: #000;
}

a.dp-button--primary:not([aria-disabled="true"]):not(.is-disabled):hover,
a.dp-button--primary:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
a.dp-button--primary:not([aria-disabled="true"]):not(.is-disabled):active,
.is-style-dp-primary .wp-block-button__link:hover,
.is-style-dp-primary .wp-block-button__link:focus-visible,
.is-style-dp-primary .wp-block-button__link:active {
    color: var(--dp-button-hover-color, var(--dp-color-brand));
    -webkit-text-fill-color: var(--dp-button-hover-color, var(--dp-color-brand));
}

a.dp-button--white:any-link,
a.dp-button--secondary:any-link,
.is-style-dp-white .wp-block-button__link:any-link,
.is-style-dp-secondary .wp-block-button__link:any-link {
    color: var(--dp-button-rest-color, var(--dp-color-base, #000));
}

a.dp-button--white:not([aria-disabled="true"]):not(.is-disabled):hover,
a.dp-button--white:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
a.dp-button--secondary:not([aria-disabled="true"]):not(.is-disabled):hover,
a.dp-button--secondary:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
.is-style-dp-white .wp-block-button__link:hover,
.is-style-dp-white .wp-block-button__link:focus-visible,
.is-style-dp-secondary .wp-block-button__link:hover,
.is-style-dp-secondary .wp-block-button__link:focus-visible {
    color: var(--dp-button-hover-color, var(--dp-color-brand));
}

a.dp-button--on-color:any-link {
    color: var(--dp-button-rest-color, var(--dp-color-brand, #d8f800));
}

a.dp-button--on-color:not([aria-disabled="true"]):not(.is-disabled):hover,
a.dp-button--on-color:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
a.dp-button--on-color:not([aria-disabled="true"]):not(.is-disabled):active {
    color: var(--dp-button-hover-color, var(--dp-color-base, #000));
}

a.dp-button--outline:any-link,
a.dp-button--default:any-link {
    color: var(--dp-button-rest-color, var(--dp-color-surface, #f8f8f8));
}

a.dp-button--outline:not([aria-disabled="true"]):not(.is-disabled):hover,
a.dp-button--outline:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
a.dp-button--default:not([aria-disabled="true"]):not(.is-disabled):hover,
a.dp-button--default:not([aria-disabled="true"]):not(.is-disabled):focus-visible {
    color: var(--dp-button-hover-color, var(--dp-color-brand, #d8f800));
}

@media (prefers-reduced-motion: reduce) {
    .dp-button::after,
    .wp-block-button .wp-block-button__link::after {
        display: none;
    }

    .dp-button,
    .wp-block-button .wp-block-button__link {
        transition:
            color var(--dp-transition),
            background-color var(--dp-transition),
            border-color var(--dp-transition);
    }

    .dp-button:not([aria-disabled="true"]):not(.is-disabled):hover,
    .dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible,
    .wp-block-button .wp-block-button__link:hover,
    .wp-block-button .wp-block-button__link:focus-visible {
        background: transparent;
        border-color: var(--dp-button-hover-border, var(--dp-color-brand));
        color: var(--dp-button-hover-color, var(--dp-color-brand));
    }

    .dp-button:not([aria-disabled="true"]):not(.is-disabled):hover::after,
    .dp-button:not([aria-disabled="true"]):not(.is-disabled):focus-visible::after,
    .wp-block-button .wp-block-button__link:hover::after,
    .wp-block-button .wp-block-button__link:focus-visible::after {
        clip-path: inset(0 0 0 0 round var(--dp-radius-button));
        transition: none;
    }

    .dp-button:not([aria-disabled="true"]):not(.is-disabled):active,
    .wp-block-button .wp-block-button__link:active {
        transform: none;
    }
}

label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.95rem;
    font-weight: 700;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(
        [type="button"]
    ):not([type="reset"]),
select,
textarea {
    width: 100%;
    padding: 0.95rem 1rem;
    border: 1px solid var(--dp-color-border-strong);
    border-radius: var(--dp-radius-input);
    background: rgba(248, 248, 248, 0.04);
    color: var(--dp-color-surface);
    transition:
        border-color var(--dp-transition),
        background-color var(--dp-transition),
        box-shadow var(--dp-transition);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(
        [type="button"]
    ):not([type="reset"]):hover,
select:hover,
textarea:hover {
    border-color: rgba(216, 248, 0, 0.55);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(
        [type="button"]
    ):not([type="reset"]):focus,
select:focus,
textarea:focus {
    border-color: var(--dp-color-brand);
    background: rgba(248, 248, 248, 0.08);
    box-shadow: 0 0 0 3px rgba(216, 248, 0, 0.18);
    outline: none;
}

input::placeholder,
textarea::placeholder {
    color: var(--dp-color-muted);
}

textarea {
    min-height: 9rem;
    resize: vertical;
}

input[type="checkbox"],
input[type="radio"] {
    width: 1.125rem;
    height: 1.125rem;
    accent-color: var(--dp-color-brand);
}

input[aria-invalid="true"],
textarea[aria-invalid="true"],
select[aria-invalid="true"],
.gfield_error input,
.gfield_error select,
.gfield_error textarea,
.wpcf7-not-valid {
    border-color: var(--dp-color-error) !important;
    box-shadow: 0 0 0 3px rgba(255, 90, 95, 0.16);
}

.is-valid,
input[data-valid="true"],
textarea[data-valid="true"],
select[data-valid="true"] {
    border-color: var(--dp-color-success);
}

.dp-site {
    min-height: 100vh;
}

.dp-container {
    width: var(--dp-wide-width);
    margin-inline: auto;
    padding-inline: var(--dp-site-gutter);
    box-sizing: border-box;
}

.dp-site-main {
    min-height: 50vh;
}

.dp-site-main > .wp-block-dp-hero,
.dp-site-main > .dp-hero,
.dp-site-main > .wp-block-dp-key-dates,
.dp-site-main > .dp-key-dates,
.dp-site-main > .wp-block-dp-benefits,
.dp-site-main > .dp-benefits,
.dp-site-main > .wp-block-dp-award-categories,
.dp-site-main > .dp-award-categories,
.dp-site-main > .wp-block-dp-carousel,
.dp-site-main > .dp-carousel,
.dp-site-main > .wp-block-dp-logo-grid,
.dp-site-main > .dp-logo-grid,
.dp-site-main > .wp-block-dp-shortlist,
.dp-site-main > .dp-shortlist,
.dp-site-main > .wp-block-dp-results-hub,
.dp-site-main > .dp-results-hub,
.dp-site-main > .wp-block-dp-faq,
.dp-site-main > .dp-faq,
.dp-site-main > .wp-block-dp-newsletter,
.dp-site-main > .dp-newsletter,
.dp-site-main > .wp-block-dp-news-grid,
.dp-site-main > .dp-news-grid,
.dp-site-main > .dp-404,
.dp-site-main > .wp-block-dp-site-footer,
.dp-site-main > .dp-site-footer {
    margin-block: 0;
}

/*
 * When neighbouring sections change background, colour already separates them —
 * use the pre-double edge padding instead of stacking two full section pads.
 */
.dp-site-main
    > [data-dp-section-bg="black"]:has(+ [data-dp-section-bg="primary"]),
.dp-site-main
    > [data-dp-section-bg="black"]:has(+ [data-dp-section-bg="accent"]),
.dp-site-main
    > [data-dp-section-bg="primary"]:has(+ [data-dp-section-bg="black"]),
.dp-site-main
    > [data-dp-section-bg="primary"]:has(+ [data-dp-section-bg="accent"]),
.dp-site-main
    > [data-dp-section-bg="accent"]:has(+ [data-dp-section-bg="black"]),
.dp-site-main
    > [data-dp-section-bg="accent"]:has(+ [data-dp-section-bg="primary"]) {
    padding-block-end: var(--dp-section-contrast-edge);
}

.dp-site-main > [data-dp-section-bg="black"] + [data-dp-section-bg="primary"],
.dp-site-main > [data-dp-section-bg="black"] + [data-dp-section-bg="accent"],
.dp-site-main > [data-dp-section-bg="primary"] + [data-dp-section-bg="black"],
.dp-site-main > [data-dp-section-bg="primary"] + [data-dp-section-bg="accent"],
.dp-site-main > [data-dp-section-bg="accent"] + [data-dp-section-bg="black"],
.dp-site-main > [data-dp-section-bg="accent"] + [data-dp-section-bg="primary"] {
    padding-block-start: var(--dp-section-contrast-edge);
}

@media (prefers-reduced-motion: no-preference) {
    body.is-scroll-reveal-ready [data-dp-reveal-item]:not(.is-revealed),
    body.is-scroll-reveal-ready [data-dp-reveal-intro]:not(.is-revealed) > *,
    /*
     * Headings/paragraphs with data-dp-reveal-intro on the element itself —
     * hide the whole line, not just element children (e.g. <em> accent words).
     */
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed):is(h1, h2, h3, h4, h5, h6, p) {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__heading,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__description,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__group-title,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro]:not(.is-revealed)
        .dp-category-list__group-description {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    body.is-scroll-reveal-ready [data-dp-reveal-item],
    body.is-scroll-reveal-ready [data-dp-reveal-intro]:is(h1, h2, h3, h4, h5, h6, p),
    body.is-scroll-reveal-ready [data-dp-reveal-intro] > *,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__heading,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__description,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__group-title,
    body.is-scroll-reveal-ready [data-dp-reveal-intro] .dp-category-list__group-description {
        transition:
            opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }

    body.is-scroll-reveal-ready [data-dp-reveal-item].is-revealed,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed:is(h1, h2, h3, h4, h5, h6, p),
    body.is-scroll-reveal-ready [data-dp-reveal-intro].is-revealed > *,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__heading,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__description,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-title,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-description {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        > .dp-content-split__content,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__description,
    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-description {
        transition-delay: 0.12s;
    }

    body.is-scroll-reveal-ready
        [data-dp-reveal-intro].is-revealed
        .dp-category-list__group-title {
        transition-delay: 0.04s;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-dp-reveal-item],
    [data-dp-reveal-intro],
    [data-dp-reveal-intro] > * {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .home .dp-reveal:not(.is-revealed) {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    .home .dp-reveal {
        transition:
            opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .home .dp-reveal.is-revealed {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .home .dp-reveal.dp-reveal--same-bg {
        opacity: 1;
        transform: none;
    }

    .home .dp-benefits.dp-reveal--same-bg,
    .home .dp-award-categories.dp-reveal--same-bg,
    .home .dp-carousel.dp-reveal--same-bg,
    .home .dp-logo-grid.dp-reveal--same-bg,
    .home .dp-key-dates.dp-reveal--same-bg {
        padding-block-start: 0;
    }

    .home :is(
            .dp-benefits,
            .dp-award-categories,
            .dp-carousel,
            .dp-logo-grid,
            .dp-key-dates,
            .wp-block-dp-benefits,
            .wp-block-dp-award-categories,
            .wp-block-dp-carousel,
            .wp-block-dp-logo-grid,
            .wp-block-dp-key-dates
        ):has(
            + :is(
                    .dp-benefits,
                    .dp-award-categories,
                    .dp-carousel,
                    .dp-logo-grid,
                    .dp-key-dates,
                    .wp-block-dp-benefits,
                    .wp-block-dp-award-categories,
                    .wp-block-dp-carousel,
                    .wp-block-dp-logo-grid,
                    .wp-block-dp-key-dates
                ).dp-reveal--same-bg
        ) {
        padding-block-end: var(--dp-section-adjacent-gap);
    }

    .home .dp-reveal.dp-reveal--same-bg:not(.dp-reveal--stagger):not(.is-revealed) [class*="__inner"] > * {
        opacity: 0;
        transform: translate3d(0, 1.25rem, 0);
    }

    .home .dp-reveal.dp-reveal--same-bg:not(.dp-reveal--stagger) [class*="__inner"] > * {
        transition:
            opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .home .dp-reveal.dp-reveal--same-bg:not(.dp-reveal--stagger).is-revealed [class*="__inner"] > * {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .home .dp-reveal.dp-reveal--same-bg.is-revealed [class*="__heading"] {
        transition-delay: 0.06s;
    }
}

.dp-entry-shell {
    width: var(--dp-content-width);
    margin-inline: auto;
    padding: 4rem 0 5rem;
}

.dp-post-card + .dp-post-card {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--dp-color-border);
}

.dp-single-post {
    background: var(--dp-color-base, #000);
    color: var(--dp-color-surface, #f8f8f8);
    padding-block: var(--dp-section-space-y-sm, clamp(2.75rem, 6.5vw, 4.5rem))
        var(--dp-section-space-y, clamp(4rem, 10vw, 7rem));
}

.dp-single-post__inner {
    width: min(100%, var(--dp-layout-wide, 90rem));
    margin-inline: auto;
    padding-inline: var(--dp-site-gutter, clamp(1.25rem, 4vw, 3rem));
    box-sizing: border-box;
}

.dp-single-post__header {
    margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

.dp-single-post__back {
    margin: 0 0 1rem;
}

.dp-single-post__back--footer {
    margin: 0;
}

.dp-single-post__back-link {
    align-items: center;
    color: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 78%, transparent);
    display: inline-flex;
    font-family: var(--dp-font-primary);
    font-size: 0.875rem;
    font-weight: 600;
    gap: 0.45rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--dp-transition);
}

.dp-single-post__back-link::before {
    border-bottom: 2px solid;
    border-left: 2px solid;
    content: "";
    display: inline-block;
    height: 0.45rem;
    transform: rotate(45deg);
    width: 0.45rem;
}

.dp-single-post__back-link:hover,
.dp-single-post__back-link:focus-visible {
    color: var(--dp-color-brand, #d8f800);
    outline: none;
}

.dp-single-post__label {
    color: var(--dp-color-brand, #d8f800);
    font-family: var(--dp-font-primary);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
}

.dp-single-post__title {
    font-family: var(--dp-font-primary);
    font-size: clamp(2rem, 5vw, 3.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 0 0 0.85rem;
    max-width: none;
    text-wrap: balance;
}

.dp-single-post__title em,
.dp-single-post__title i {
    color: var(--dp-color-brand, #d8f800);
    font-family: var(--dp-font-accent);
    font-style: italic;
    font-weight: 400;
}

.dp-single-post__meta {
    color: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 68%, transparent);
    font-family: var(--dp-font-primary);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin: 0;
    text-transform: uppercase;
}

.dp-single-post__featured {
    margin: 0 0 clamp(2rem, 5vw, 3rem);
}

.dp-single-post__featured-frame {
    aspect-ratio: 16 / 9;
    background: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 4%, transparent);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 10%, transparent);
    border-radius: clamp(0.85rem, 1.5vw, 1.25rem);
    overflow: hidden;
}

.dp-single-post__featured-frame img {
    border-radius: clamp(0.75rem, 1.2vw, 1rem);
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.dp-single-post__body {
    margin-bottom: clamp(2rem, 5vw, 3rem);
}

.dp-single-post__content {
    color: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 86%, transparent);
    font-family: var(--dp-font-primary);
    font-size: clamp(1rem, 1.6vw, 1.125rem);
    line-height: 1.7;
    max-width: none;
}

.dp-single-post__content > :first-child {
    margin-top: 0;
}

.dp-single-post__content > :last-child {
    margin-bottom: 0;
}

.dp-single-post__content > * + * {
    margin-top: 1.25rem;
}

.dp-single-post__content h2,
.dp-single-post__content .wp-block-heading.has-large-font-size,
.dp-single-post__content h2.wp-block-heading {
    font-size: clamp(1.65rem, 3.5vw, 2.25rem);
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin: 2rem 0 0.85rem;
}

.dp-single-post__content h3,
.dp-single-post__content h3.wp-block-heading {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    letter-spacing: -0.01em;
    line-height: 1.15;
    margin: 1.75rem 0 0.75rem;
}

.dp-single-post__content h4,
.dp-single-post__content h5,
.dp-single-post__content h6,
.dp-single-post__content h4.wp-block-heading,
.dp-single-post__content h5.wp-block-heading,
.dp-single-post__content h6.wp-block-heading {
    font-size: 1.125rem;
    letter-spacing: 0.02em;
    line-height: 1.25;
    margin: 1.5rem 0 0.65rem;
    text-transform: none;
}

.dp-single-post__content p {
    margin-block: 0 1em;
}

.dp-single-post__content p:last-child {
    margin-block-end: 0;
}

.dp-single-post__content p br {
    content: "";
    display: block;
    margin-top: 1em;
}

.dp-single-post__content ul,
.dp-single-post__content ol {
    margin: 0;
    padding-inline-start: 1.35rem;
}

.dp-single-post__content li + li {
    margin-top: 0.65rem;
}

.dp-single-post__content blockquote,
.dp-single-post__content .wp-block-quote {
    border-left: 3px solid var(--dp-color-brand, #d8f800);
    color: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 92%, transparent);
    font-family: var(--dp-font-accent);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-style: italic;
    line-height: 1.45;
    margin: 1.75rem 0;
    padding: 0.15rem 0 0.15rem 1.25rem;
}

.dp-single-post__content blockquote cite,
.dp-single-post__content .wp-block-quote cite {
    display: block;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-top: 0.85rem;
    text-transform: uppercase;
}

.dp-single-post__content .wp-block-image,
.dp-single-post__content figure.wp-block-image {
    margin: 2rem 0;
}

.dp-single-post__content .wp-block-image img,
.dp-single-post__content figure img {
    border-radius: clamp(0.75rem, 1.2vw, 1rem);
    display: block;
    height: auto;
    max-width: 100%;
}

.dp-single-post__content .wp-block-image figcaption,
.dp-single-post__content figure figcaption {
    color: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 62%, transparent);
    font-size: 0.875rem;
    line-height: 1.45;
    margin-top: 0.65rem;
    text-align: center;
}

.dp-single-post__content .wp-block-separator,
.dp-single-post__content hr {
    border: 0;
    border-top: 1px solid color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 14%, transparent);
    margin: 2.25rem 0;
}

.dp-single-post__content .wp-block-buttons {
    margin: 1.75rem 0 0;
}

.dp-single-post__content a {
    color: var(--dp-color-brand, #d8f800);
    text-underline-offset: 0.15em;
}

.dp-single-post__content a:hover,
.dp-single-post__content a:focus-visible {
    text-decoration: underline;
}

.dp-single-post__footer {
    border-top: 1px solid color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 12%, transparent);
    padding-top: clamp(1.5rem, 3vw, 2rem);
}

@media (min-width: 960px) {
    .dp-single-post__header .dp-single-post__inner {
        display: grid;
        gap: 0.85rem clamp(1.5rem, 4vw, 3rem);
        grid-template-columns: minmax(0, 1fr) minmax(0, 16rem);
        grid-template-areas:
            "back back"
            "label label"
            "title meta";
    }

    .dp-single-post__header .dp-single-post__back {
        grid-area: back;
    }

    .dp-single-post__header .dp-single-post__label {
        grid-area: label;
    }

    .dp-single-post__header .dp-single-post__title {
        grid-area: title;
        margin-bottom: 0;
    }

    .dp-single-post__header .dp-single-post__meta {
        align-self: end;
        grid-area: meta;
        justify-self: end;
        text-align: right;
    }
}

.alignwide {
    width: min(100% - 2rem, 90rem);
    margin-left: auto;
    margin-right: auto;
}

.alignfull {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

@property --dp-countdown-banner-height {
    syntax: "<length>";
    inherits: true;
    initial-value: 0px;
}

.dp-countdown-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1002;
    background: var(--dp-color-brand, #d8f800);
    color: var(--dp-color-base, #000);
    border-bottom: 1px solid rgb(0 0 0 / 0.12);
    overflow: hidden;
    box-sizing: border-box;
}

.dp-countdown-banner.is-collapsing {
    height: var(--dp-countdown-banner-height, 0px);
    min-height: 0;
    border-bottom-color: transparent;
    pointer-events: none;
}

.dp-countdown-banner[hidden] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    border-bottom-width: 0;
}

html.is-countdown-hidden {
    --dp-countdown-banner-height: 0px;
}

html:has(body.has-countdown-banner):not(.is-countdown-hidden) {
    --dp-countdown-banner-height: 2.625rem;
}

.has-countdown-banner .dp-site-header {
    top: calc(var(--dp-countdown-banner-height, 0px) - 1px);
}

html.is-countdown-hidden .has-countdown-banner .dp-site-header {
    top: 0;
}

/* Logged-in wp-admin bar sits above fixed countdown/header. */
body.admin-bar {
    --dp-admin-bar-height: var(--wp-admin--admin-bar--height, 32px);
}

/*
 * ≤600px: WP sets #wpadminbar to position:absolute so it scrolls away.
 * Keep sticky/fixed chrome at top:0 once scrolled — matching core's
 * --wp-admin--admin-bar--position-offset behaviour.
 */
@media screen and (max-width: 600px) {
    body.admin-bar {
        --dp-admin-bar-height: 0px;
    }
}

body.admin-bar .dp-countdown-banner {
    top: var(--dp-admin-bar-height);
}

body.admin-bar.has-countdown-banner .dp-site-header {
    top: calc(var(--dp-admin-bar-height) + var(--dp-countdown-banner-height, 0px) - 1px);
}

html.is-countdown-hidden body.admin-bar.has-countdown-banner .dp-site-header {
    top: calc(var(--dp-admin-bar-height) - 1px);
}

body.admin-bar:not(.has-countdown-banner) .dp-site-header {
    top: var(--dp-admin-bar-height);
}

@media (prefers-reduced-motion: reduce) {
    .dp-countdown-banner.is-collapsing {
        transition: none;
    }
}

.dp-countdown-banner__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(0.65rem, 2vw, 1.25rem);
    min-height: 1.75rem;
    padding-block: 0.3rem;
    text-align: center;
}

.dp-countdown-banner__text {
    margin: 0;
    flex: 0 1 auto;
    min-width: 0;
    font-family: var(--dp-font-primary);
    font-size: clamp(0.62rem, 1.2vw, 0.72rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.dp-countdown-banner__timer {
    display: flex;
    align-items: stretch;
    flex-shrink: 0;
    gap: 0;
    padding: 0.22rem 0.38rem;
    border-radius: 999px;
    background: rgb(0 0 0 / 0.06);
}

.dp-countdown-banner__unit {
    display: grid;
    gap: 0.05rem;
    min-width: 2.25rem;
    padding-inline: 0.45rem;
    border-inline-start: 1px solid rgb(0 0 0 / 0.18);
    line-height: 1;
    text-align: center;
}

.dp-countdown-banner__unit:first-child {
    border-inline-start: 0;
    padding-inline-start: 0;
}

.dp-countdown-banner__value {
    font-family: var(--dp-font-primary);
    font-size: clamp(0.82rem, 1.5vw, 0.95rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.dp-countdown-banner__label {
    font-family: var(--dp-font-primary);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.72;
}

@media (max-width: 640px) {
    .dp-countdown-banner__inner {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 0.65rem;
    }

    .dp-countdown-banner__text {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 0.58rem;
        letter-spacing: 0.04em;
    }

    .dp-countdown-banner__timer {
        justify-content: center;
        padding: 0.16rem 0.3rem;
    }

    .dp-countdown-banner__unit {
        min-width: 1.85rem;
        padding-inline: 0.28rem;
    }

    .dp-countdown-banner__value {
        font-size: 0.78rem;
    }

    .dp-countdown-banner__label {
        font-size: 0.5rem;
    }

    .dp-countdown-banner__unit:first-child {
        padding-inline-start: 0.2rem;
        border-inline-start: 0;
    }
}

@media (max-width: 420px) {
    .dp-countdown-banner__unit:last-child {
        display: none;
    }
}

.dp-site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    isolation: isolate;
    overflow: visible;
    background: transparent;
    box-shadow: none;
    --dp-header-fade-height: 6rem;
    --dp-header-overlay-height: calc(100% + var(--dp-header-fade-height));
    --dp-header-solid-strength: 0;
    --dp-header-fade-mask: linear-gradient(
        to bottom,
        #000 0,
        #000 calc(100% - var(--dp-header-fade-height)),
        rgb(0 0 0 / 0.85) calc(100% - var(--dp-header-fade-height) + 1rem),
        rgb(0 0 0 / 0.5) calc(100% - var(--dp-header-fade-height) + 2.5rem),
        rgb(0 0 0 / 0.15) calc(100% - var(--dp-header-fade-height) + 4.25rem),
        transparent 100%
    );
}

.dp-site-header::before,
.dp-site-header::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: var(--dp-header-overlay-height);
    z-index: 0;
    pointer-events: none;
    -webkit-mask-image: var(--dp-header-fade-mask);
    mask-image: var(--dp-header-fade-mask);
}

.dp-site-header::before {
    opacity: 0;
    background: rgba(0, 0, 0, 0.52);
    backdrop-filter: blur(14px) saturate(120%);
    -webkit-backdrop-filter: blur(14px) saturate(120%);
    transition: opacity 0.12s ease;
}

.dp-site-header::after {
    opacity: var(--dp-header-solid-strength);
    background: var(--dp-color-base, #000);
}

.dp-site-header.is-scrolled::before {
    opacity: 1;
}

.dp-site-header__inner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    min-height: var(--dp-header-height);
    padding-block: 1rem;
    /* Own gutter — not .dp-container — so the bar is viewport-wide with edge breathing room. */
    padding-inline: clamp(1.25rem, 4vw, 2rem);
}

.dp-site-header__branding {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2.8vw, 2rem);
    min-width: 0;
    --dp-header-award-logo-height: clamp(2.5rem, 5vw, 4rem);
    --dp-header-sponsor-logo-height: clamp(1.75rem, 3.5vw, 2.65rem);
    --dp-header-sponsor-logo-gap: clamp(0.85rem, 2vw, 1.5rem);
}

.dp-site-header__award-logo {
    max-height: var(--dp-header-award-logo-height);
    width: auto;
}

.dp-site-header__supporting-logos {
    display: flex;
    align-items: center;
    gap: var(--dp-header-sponsor-logo-gap);
    flex-wrap: wrap;
    min-width: 0;
}

.dp-site-header__supporting-logos[data-logo-count="2"] {
    --dp-header-sponsor-logo-height: clamp(1.65rem, 3.2vw, 2.45rem);
}

.dp-site-header__supporting-logos[data-logo-count="3"] {
    --dp-header-sponsor-logo-height: clamp(1.45rem, 2.8vw, 2.15rem);
    --dp-header-sponsor-logo-gap: clamp(0.7rem, 1.6vw, 1.15rem);
}

.dp-site-header__supporting-logos[data-logo-count="4"] {
    --dp-header-sponsor-logo-height: clamp(1.25rem, 2.4vw, 1.85rem);
    --dp-header-sponsor-logo-gap: clamp(0.6rem, 1.3vw, 0.9rem);
}

.dp-site-header__branding:has(.dp-site-header__supporting-logos[data-logo-count="3"]) {
    --dp-header-award-logo-height: clamp(2.35rem, 4.6vw, 3.5rem);
}

.dp-site-header__branding:has(.dp-site-header__supporting-logos[data-logo-count="4"]) {
    --dp-header-award-logo-height: clamp(2.1rem, 4vw, 3rem);
}

.dp-site-header__supporting-logo-link {
    flex-shrink: 0;
}

.dp-site-header__supporting-logo {
    max-height: var(--dp-header-sponsor-logo-height);
    width: auto;
    max-width: min(7.5rem, 18vw);
    object-fit: contain;
    opacity: 0.9;
}

/* Match the awards site logo height (not the smaller sponsor scale). */
.dp-site-header__supporting-logo--dp-event {
    max-height: var(--dp-header-award-logo-height);
    max-width: none;
    height: var(--dp-header-award-logo-height);
    opacity: 1;
}

.dp-site-header__award-link {
    text-decoration: none;
}

.dp-site-header__ctas {
    display: flex;
    align-items: center;
    gap: clamp(0.4rem, 1vw, 0.55rem);
    flex-shrink: 1;
    min-width: 0;
}

.dp-site-header__cta {
    --dp-button-font-size: clamp(0.78rem, 1.5vw, 0.875rem);
    min-height: clamp(2.15rem, 4.5vw, 2.45rem);
    padding-inline: clamp(0.75rem, 1.8vw, 1.05rem);
    white-space: nowrap;
}

.dp-site-header__ctas--mobile {
    display: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 0.55rem;
    width: 100%;
    margin-block: 1.5rem 0;
    padding-top: 1.5rem;
    border-top: 1px solid var(--dp-color-border);
}

/* Menu items already draw a bottom rule — drop it on the last item when CTAs follow. */
.dp-site-header__navigation:has(+ .dp-site-header__ctas--mobile) .dp-site-header__menu > li:last-child,
.dp-site-header__navigation:has(+ .dp-site-header__profile-nav) .dp-site-header__menu > li:last-child {
    border-bottom: 0;
}

.dp-site-header__ctas--mobile .dp-site-header__cta {
    width: 100%;
    min-width: 0;
    flex: 0 0 auto;
    justify-content: center;
    min-height: 2.75rem;
    padding-inline: 0.75rem;
    font-size: clamp(0.8rem, 3.2vw, 0.9rem);
    white-space: nowrap;
}

.dp-site-header__ctas--mobile .dp-site-header__cta:only-child {
    grid-column: 1 / -1;
}

.dp-site-header__utilities {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-left: auto;
    flex-shrink: 0;
}

.dp-site-header__account {
    position: relative;
}

.dp-profile-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    max-width: min(100%, 16rem);
    min-height: 2.85rem;
    padding: 0.3rem 0.85rem 0.3rem 0.3rem;
    border: 1px solid var(--dp-color-border-strong);
    border-radius: var(--dp-radius-pill);
    background: rgb(0 0 0 / 0.38);
    backdrop-filter: blur(10px) saturate(120%);
    -webkit-backdrop-filter: blur(10px) saturate(120%);
    color: var(--dp-color-surface);
    font: inherit;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease;
}

.dp-profile-pill:hover,
.dp-profile-pill:focus-visible,
.dp-site-header__account.is-open .dp-profile-pill {
    border-color: var(--dp-color-brand);
    background: rgb(0 0 0 / 0.58);
    outline: none;
    box-shadow: 0 0 0 1px rgb(216 248 0 / 0.18);
}

.dp-profile-pill--guest {
    padding-inline: 0.95rem 0.85rem;
}

.dp-profile-pill__icon,
.dp-profile-pill__avatar,
.dp-profile-menu__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 999px;
}

.dp-profile-pill__icon {
    width: 2.15rem;
    height: 2.15rem;
    background: rgb(248 248 248 / 0.08);
}

.dp-profile-pill__icon svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: currentColor;
}

.dp-profile-pill__avatar,
.dp-profile-menu__avatar {
    width: 2.15rem;
    height: 2.15rem;
    background: var(--dp-color-accent, #303890);
}

.dp-profile-pill__avatar img,
.dp-profile-menu__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dp-profile-pill__initials,
.dp-profile-menu__initials {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dp-profile-pill__copy {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.dp-profile-pill__name,
.dp-profile-menu__name {
    font-size: 0.88rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dp-profile-pill__meta,
.dp-profile-pill__role,
.dp-profile-menu__email,
.dp-profile-menu__link-description {
    font-size: 0.72rem;
    color: var(--dp-color-muted);
}

.dp-profile-pill__role,
.dp-profile-menu__badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.12rem 0.5rem;
    border-radius: var(--dp-radius-pill);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dp-profile-pill__role--administrator,
.dp-profile-menu__badge.dp-profile-pill__role--administrator,
.dp-profile-pill__role--eventmanager,
.dp-profile-menu__badge.dp-profile-pill__role--eventmanager {
    color: var(--dp-color-base);
    background: var(--dp-color-brand);
}

.dp-profile-pill__role--judge,
.dp-profile-menu__badge.dp-profile-pill__role--judge,
.dp-profile-pill__role--head-judge,
.dp-profile-menu__badge.dp-profile-pill__role--head-judge {
    color: var(--dp-color-surface);
    background: var(--dp-color-accent, #303890);
}

.dp-profile-pill__role--entrant,
.dp-profile-menu__badge.dp-profile-pill__role--entrant,
.dp-profile-pill__role--user,
.dp-profile-menu__badge.dp-profile-pill__role--user {
    color: var(--dp-color-surface);
    background: rgb(248 248 248 / 0.14);
}

.dp-profile-pill__chevron {
    width: 0.45rem;
    height: 0.45rem;
    margin-inline-start: 0.1rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.dp-site-header__account.is-open .dp-profile-pill__chevron {
    transform: scaleY(-1) rotate(45deg);
}

.dp-profile-backdrop {
    position: fixed;
    inset: 0;
    z-index: 24;
    border: 0;
    background: rgb(0 0 0 / 0.12);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.dp-site-header__account.is-open .dp-profile-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.dp-profile-menu {
    --dp-profile-menu-radius: 1.35rem;

    position: absolute;
    top: calc(100% + var(--dp-dropdown-gap, 0.9rem));
    right: 0;
    left: auto;
    z-index: 30;
    width: min(20rem, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid rgb(248 248 248 / 0.14);
    border-radius: var(--dp-profile-menu-radius);
    background: rgb(6 6 6 / 0.98);
    box-shadow:
        0 24px 48px rgb(0 0 0 / 0.45),
        0 0 0 1px rgb(255 255 255 / 0.04) inset;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(0.94) translate3d(0, -0.45rem, 0);
    transform-origin: calc(100% - 1.35rem) 0;
    transition:
        opacity 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.34s cubic-bezier(0.34, 1.25, 0.64, 1),
        visibility 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.dp-site-header__account.is-open .dp-profile-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1) translate3d(0, 0, 0);
}

.dp-site-header__account.is-closing .dp-profile-menu,
.dp-site-header__account.is-closing .dp-profile-backdrop {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.dp-site-header__account.is-closing .dp-profile-menu {
    transform: scale(0.96) translate3d(0, -0.3rem, 0);
    transition-duration: 0.22s;
}

.dp-site-header__account.is-closing .dp-profile-backdrop {
    transition-duration: 0.22s;
}

.dp-profile-menu__header,
.dp-profile-menu__nav,
.dp-profile-menu__profile,
.dp-profile-menu__footer {
    opacity: 0;
    transform: translate3d(0, 0.45rem, 0);
    transition:
        opacity 0.26s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.dp-site-header__account.is-open .dp-profile-menu__header {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.05s;
}

.dp-site-header__account.is-open .dp-profile-menu__nav {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.1s;
}

.dp-site-header__account.is-open .dp-profile-menu__profile {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.14s;
}

.dp-site-header__account.is-open .dp-profile-menu__footer {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.18s;
}

.dp-site-header__account.is-closing .dp-profile-menu__header,
.dp-site-header__account.is-closing .dp-profile-menu__nav,
.dp-site-header__account.is-closing .dp-profile-menu__profile,
.dp-site-header__account.is-closing .dp-profile-menu__footer {
    opacity: 0;
    transform: translate3d(0, 0.25rem, 0);
    transition-delay: 0s;
    transition-duration: 0.16s;
}

.dp-profile-menu__header {
    display: grid;
    gap: 0.75rem;
    padding: 1rem 1rem 0.875rem;
    border-bottom: 1px solid var(--dp-color-border);
}

.dp-profile-menu__identity {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}

.dp-profile-menu__avatar {
    width: 2.5rem;
    height: 2.5rem;
}

.dp-profile-menu__identity-copy {
    flex: 1;
    min-width: 0;
}

.dp-profile-menu__name {
    margin: 0;
}

.dp-profile-menu__email {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--dp-color-muted);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.dp-profile-menu__badge {
    width: fit-content;
}

.dp-profile-menu__eyebrow {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dp-color-brand);
}

.dp-profile-menu__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
}

.dp-profile-menu__nav {
    padding-block: 0.15rem;
}

.dp-profile-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dp-profile-menu__list li + li {
    margin-top: 0;
}

.dp-profile-menu__link {
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid transparent;
    border-bottom: 1px solid var(--dp-color-border);
    color: var(--dp-color-surface);
    text-decoration: none;
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.dp-profile-menu__list li:first-child .dp-profile-menu__link {
    border-top-color: transparent;
}

.dp-profile-menu__list li:last-child .dp-profile-menu__link {
    border-bottom-color: transparent;
}

.dp-profile-menu__link:hover,
.dp-profile-menu__link:focus-visible {
    background: rgb(248 248 248 / 0.06);
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-menu__link-label {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
}

.dp-profile-menu__link-description {
    line-height: 1.35;
}

.dp-profile-menu__profile {
    padding: 0.35rem 1rem 0.15rem;
    border-top: 1px solid var(--dp-color-border);
}

.dp-profile-menu__profile-link {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    color: var(--dp-color-surface);
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dp-profile-menu__profile-link:hover,
.dp-profile-menu__profile-link:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-menu__footer {
    padding: 0.75rem 1rem 1rem;
}

.dp-profile-menu__logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid rgb(248 248 248 / 0.28);
    border-radius: var(--dp-radius-pill);
    background: transparent;
    color: var(--dp-color-surface);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.dp-profile-menu__logout:hover,
.dp-profile-menu__logout:focus-visible {
    border-color: var(--dp-color-brand);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    outline: none;
    transform: translateY(-1px);
}

/* Mobile nav account section (shown inside header panel below 960px). */
.dp-site-header__profile-nav {
    display: none;
}

.dp-profile-nav__header {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.dp-profile-nav__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dp-color-brand);
}

.dp-profile-nav__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--dp-color-surface);
}

.dp-profile-nav__identity {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "avatar copy"
        "badge badge";
    gap: 0.65rem 0.85rem;
    align-items: center;
    margin-bottom: 0.85rem;
}

.dp-profile-nav__avatar {
    grid-area: avatar;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    overflow: hidden;
    border-radius: 999px;
    background: var(--dp-color-accent, #303890);
}

.dp-profile-nav__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dp-profile-nav__initials {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--dp-color-surface);
}

.dp-profile-nav__identity-copy {
    grid-area: copy;
    min-width: 0;
}

.dp-profile-nav__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--dp-color-surface);
}

.dp-profile-nav__email {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--dp-color-muted);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.dp-profile-nav__badge {
    grid-area: badge;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.12rem 0.5rem;
    border-radius: var(--dp-radius-pill);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dp-profile-nav__badge.dp-profile-pill__role--administrator,
.dp-profile-nav__badge.dp-profile-pill__role--eventmanager {
    color: var(--dp-color-base);
    background: var(--dp-color-brand);
}

.dp-profile-nav__badge.dp-profile-pill__role--judge,
.dp-profile-nav__badge.dp-profile-pill__role--head-judge {
    color: var(--dp-color-surface);
    background: var(--dp-color-accent, #303890);
}

.dp-profile-nav__badge.dp-profile-pill__role--entrant,
.dp-profile-nav__badge.dp-profile-pill__role--user {
    color: var(--dp-color-surface);
    background: rgb(248 248 248 / 0.14);
}

.dp-profile-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dp-profile-nav__link {
    display: block;
    padding-block: 0.55rem;
    color: var(--dp-color-surface);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dp-profile-nav__link:hover,
.dp-profile-nav__link:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-nav__actions {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--dp-color-border);
}

.dp-profile-nav__link--secondary {
    padding-block: 0.35rem;
}

.dp-profile-nav__logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid rgb(248 248 248 / 0.28);
    border-radius: var(--dp-radius-pill);
    background: transparent;
    color: var(--dp-color-surface);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease;
}

.dp-profile-nav__logout:hover,
.dp-profile-nav__logout:focus-visible {
    border-color: var(--dp-color-brand);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    outline: none;
}

.dp-profile-nav--compact {
    width: 100%;
}

.dp-profile-nav__toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 0;
    border: 0;
    background: transparent;
    color: var(--dp-color-surface);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: color 0.2s ease;
}

.dp-profile-nav__toggle:hover,
.dp-profile-nav__toggle:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-profile-nav__toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    background: rgb(248 248 248 / 0.08);
}

.dp-profile-nav__toggle-icon svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: currentColor;
}

.dp-profile-nav--compact .dp-profile-nav__avatar {
    width: 2.35rem;
    height: 2.35rem;
}

.dp-profile-nav__toggle-copy {
    display: grid;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.dp-profile-nav__toggle-label {
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: inherit;
}

.dp-profile-nav__toggle-meta {
    font-size: 0.78rem;
    line-height: 1.3;
    color: var(--dp-color-muted);
}

.dp-profile-nav__toggle-chevron {
    width: 0.5rem;
    height: 0.5rem;
    margin-inline-start: 0.15rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    /* Closed → down. */
    transform: rotate(45deg);
    transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
    flex-shrink: 0;
}

.dp-profile-nav.is-open .dp-profile-nav__toggle-chevron {
    /* Open → up (flip after rotate). */
    transform: scaleY(-1) rotate(45deg);
}

.dp-profile-nav__dropdown {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    transition:
        max-height 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.28s ease;
}

.dp-profile-nav.is-open .dp-profile-nav__dropdown {
    max-height: 24rem;
    opacity: 1;
    pointer-events: auto;
}

.dp-profile-nav--compact .dp-profile-nav__actions {
    margin-top: 0.35rem;
    padding-top: 0.65rem;
}

.dp-profile-nav--compact .dp-profile-nav__badge {
    grid-area: auto;
    width: fit-content;
}

@media (min-width: 960px) {
    .dp-site-header__profile-nav {
        display: none !important;
    }
}

.dp-site-header__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 0.28rem;
    width: 3rem;
    height: 3rem;
    min-height: 3rem;
    padding: 0.65rem;
    background: transparent;
    border: 1px solid var(--dp-color-border-strong);
    border-radius: 999px;
    color: var(--dp-color-surface);
    box-shadow: none;
    font: inherit;
    line-height: 1;
    flex-shrink: 0;
}

.dp-site-header__toggle-line {
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition:
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.2s ease;
    transform-origin: center;
}

.dp-site-header__toggle[aria-expanded="true"] .dp-site-header__toggle-line:nth-child(2) {
    transform: translateY(0.42rem) rotate(45deg);
}

.dp-site-header__toggle[aria-expanded="true"] .dp-site-header__toggle-line:nth-child(3) {
    opacity: 0;
    transform: scaleX(0);
}

.dp-site-header__toggle[aria-expanded="true"] .dp-site-header__toggle-line:nth-child(4) {
    transform: translateY(-0.42rem) rotate(-45deg);
}

.dp-site-header.is-nav-open .dp-site-header__toggle {
    position: relative;
    z-index: 2;
    border-color: var(--dp-color-brand);
    background: rgb(0 0 0 / 0.88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dp-site-header__panel {
    display: flex;
    align-items: center;
    gap: 1rem;
}

@media (min-width: 960px) {
    .dp-site-header__menu > li.menu-item-has-children > .dp-site-header__menu-anchor > .dp-site-header__menu-row {
        display: inline-flex;
    }
}

.dp-site-header__submenu-toggle {
    display: none;
}

.dp-site-header__menu .sub-menu {
    display: none;
}

@media (min-width: 960px) {
    .dp-site-header__ctas--desktop {
        display: flex;
    }

    .dp-site-header__ctas--mobile {
        display: none;
    }

    .dp-site-header__panel-offset,
    .dp-site-header__panel-scroll > .dp-site-header__ctas--mobile,
    .dp-site-header__panel-scroll > .dp-site-header__profile-nav {
        display: none !important;
    }

    .dp-site-header__toggle {
        display: none !important;
    }

    .dp-site-header__inner {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: clamp(1rem, 2vw, 1.5rem);
    }

    .dp-site-header__branding {
        position: relative;
        z-index: 2;
        flex: 0 1 auto;
        min-width: 0;
    }

    .dp-site-header__panel {
        position: absolute;
        top: 50%;
        left: 50%;
        z-index: 1;
        width: max-content;
        max-width: min(100% - 2rem, 40rem);
        margin: 0;
        pointer-events: none;
        transform: translate(-50%, -50%);
        overflow: visible;
    }

    .dp-site-header.is-scrolled .dp-site-header__panel,
    .dp-site-header__panel:focus-within {
        pointer-events: auto;
    }

    .dp-site-header__utilities {
        position: relative;
        z-index: 2;
        flex: 0 0 auto;
        margin-left: auto;
        gap: clamp(0.75rem, 1.25vw, 1rem);
    }

    .dp-site-header__panel-reveal,
    .dp-site-header__panel-inner,
    .dp-site-header__panel-scroll {
        display: contents;
    }

    .dp-site-header__navigation {
        position: relative;
        overflow: visible;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity 0.45s ease,
            visibility 0.45s ease;
    }

    .dp-site-header.is-scrolled .dp-site-header__navigation,
    .dp-site-header__navigation:focus-within {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .dp-site-header__menu {
        justify-content: center;
        gap: clamp(1.15rem, 1.8vw, 1.85rem);
    }

    .dp-site-header__menu > li {
        font-size: 0.9375rem;
    }

    .dp-site-header__menu a {
        padding: 0.35rem 0.2rem;
        font-size: 0.9375rem;
        font-weight: 700;
        letter-spacing: 0.01em;
        white-space: nowrap;
    }

    .dp-site-header__ctas--desktop {
        gap: 0.65rem;
    }

    .dp-site-header__cta {
        min-height: 2.4rem;
        padding-inline: clamp(0.95rem, 1.6vw, 1.15rem);
    }

}

/*
 * Overflow fallback — too many top-level links for the inline bar.
 * Same full-screen drawer + circle reveal as mobile (not a separate dropdown).
 */
@media (min-width: 960px) {
    html.dp-nav-open:has(.dp-site-header--force-mobile) {
        overflow: hidden;
        overscroll-behavior: none;
    }

    body.dp-nav-open:has(.dp-site-header--force-mobile) {
        overscroll-behavior: none;
        touch-action: none;
    }

    body.dp-nav-open:has(.dp-site-header--force-mobile) .dp-countdown-banner {
        z-index: 1100;
        pointer-events: none;
    }

    .dp-site-header--force-mobile .dp-site-header__toggle {
        display: inline-flex !important;
    }

    /* Desktop compact: hamburger for links only — keep CTAs + login in the bar. */
    .dp-site-header--force-mobile .dp-site-header__ctas--desktop {
        display: flex !important;
    }

    .dp-site-header--force-mobile .dp-site-header__utilities .dp-site-header__account,
    .dp-site-header--force-mobile .dp-profile--header-dropdown {
        display: block;
    }

    .dp-site-header--force-mobile .dp-site-header__utilities .dp-site-header__account {
        position: relative;
        z-index: 5;
    }

    .dp-site-header--force-mobile .dp-site-header__ctas--mobile,
    .dp-site-header--force-mobile .dp-site-header__panel-offset,
    .dp-site-header--force-mobile .dp-site-header__panel-scroll > .dp-site-header__profile-nav,
    .dp-site-header--force-mobile .dp-site-header__panel-scroll > .dp-site-header__ctas--mobile,
    .dp-site-header--force-mobile .dp-site-header__profile-nav {
        display: none !important;
    }

    .dp-site-header--force-mobile .dp-site-header__panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1;
        display: block;
        width: auto;
        max-width: none;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        transform: none;
        opacity: 1;
        visibility: hidden;
        pointer-events: none;
        overflow: visible;
    }

    body.admin-bar .dp-site-header--force-mobile .dp-site-header__panel {
        top: var(--dp-admin-bar-height, 32px);
    }

    .has-countdown-banner .dp-site-header--force-mobile .dp-site-header__panel {
        top: 0;
    }

    body.admin-bar.has-countdown-banner .dp-site-header--force-mobile .dp-site-header__panel {
        top: var(--dp-admin-bar-height, 32px);
    }

    .dp-site-header--force-mobile.is-nav-open .dp-site-header__panel,
    body.admin-bar .dp-site-header--force-mobile.is-nav-open .dp-site-header__panel {
        position: fixed;
        z-index: 1;
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-open,
    .dp-site-header--force-mobile .dp-site-header__panel.is-closing {
        visibility: visible;
        pointer-events: auto;
    }

    .dp-site-header--force-mobile .dp-site-header__panel-reveal,
    .dp-site-header--force-mobile .dp-site-header__panel-inner,
    .dp-site-header--force-mobile .dp-site-header__panel-scroll {
        display: block;
        clip-path: none;
        -webkit-clip-path: none;
        background: transparent;
        opacity: 1;
        transform: none;
    }

    .dp-site-header--force-mobile .dp-site-header__panel-reveal {
        display: block;
        position: absolute;
        inset: 0;
        background: var(--dp-color-base, #000);
        opacity: 1;
        -webkit-clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        transition:
            -webkit-clip-path 0.58s cubic-bezier(0.4, 0, 0.2, 1),
            clip-path 0.58s cubic-bezier(0.4, 0, 0.2, 1);
        will-change: clip-path;
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-open .dp-site-header__panel-reveal {
        -webkit-clip-path: circle(var(--dp-nav-r, 150vmax) at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        clip-path: circle(var(--dp-nav-r, 150vmax) at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-closing .dp-site-header__panel-reveal {
        -webkit-clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        transition-duration: 0.48s;
        transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1);
    }

    .dp-site-header--force-mobile .dp-site-header__panel-inner {
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 1;
        height: 100%;
        opacity: 0;
        transform: translateY(1.25rem);
        transition:
            opacity 0.34s ease 0.14s,
            transform 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.14s;
        pointer-events: none;
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-open .dp-site-header__panel-inner,
    .dp-site-header--force-mobile .dp-site-header__panel.is-closing .dp-site-header__panel-inner {
        pointer-events: auto;
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-open .dp-site-header__panel-inner {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-closing .dp-site-header__panel-inner {
        opacity: 0;
        transform: translateY(0.75rem);
        transition-delay: 0s;
        transition-duration: 0.22s;
    }

    .dp-site-header--force-mobile .dp-site-header__panel-scroll {
        --dp-nav-link-size: clamp(1.35rem, 2.4vw, 2.25rem);
        --dp-nav-link-pad-block: clamp(0.7rem, 1.6vh, 1.05rem);
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        padding:
            calc(
                var(--dp-countdown-banner-height, 0px) + var(--dp-header-height, 5.5rem) +
                    env(safe-area-inset-top, 0px) + 1.5rem
            )
            var(--dp-site-gutter, clamp(1.25rem, 4vw, 3rem))
            max(2.5rem, calc(1.5rem + env(safe-area-inset-bottom, 0px)));
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-gutter: stable;
    }

    .dp-site-header--force-mobile .dp-site-header__navigation {
        flex: 0 0 auto;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        padding-top: 0;
        width: 100%;
    }

    .dp-site-header--force-mobile .dp-site-header__menu,
    .dp-site-header--force-mobile .dp-site-header__menu > li {
        font-size: inherit;
        line-height: inherit;
    }

    .dp-site-header--force-mobile .dp-site-header__menu {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        opacity: 1;
        visibility: visible;
    }

    .dp-site-header--force-mobile .dp-site-header__menu > li.menu-item-has-children > .dp-site-header__menu-anchor > .dp-site-header__menu-row {
        display: flex !important;
        justify-content: flex-start;
        width: 100%;
    }

    .dp-site-header--force-mobile .dp-site-header__menu > li {
        flex: 1 1 auto;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        border-bottom: 1px solid var(--dp-color-border);
        opacity: 1;
        transform: none;
    }

    .dp-site-header--force-mobile .dp-site-header__menu > li > .dp-site-header__menu-anchor {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .dp-site-header--force-mobile .dp-site-header__menu-row {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        width: 100%;
    }

    .dp-site-header--force-mobile .dp-site-header__menu > li > a,
    .dp-site-header--force-mobile .dp-site-header__menu-row > a,
    .dp-site-header--force-mobile .dp-site-header__menu-row > .dp-site-header__menu-trigger {
        flex: 1 1 auto;
        min-width: 0;
        min-height: 2.75rem;
        padding: var(--dp-nav-link-pad-block, 0.95rem) 0;
        font-size: var(--dp-nav-link-size, 1.5rem);
        font-weight: 400;
        line-height: 1.15;
        letter-spacing: -0.02em;
        white-space: normal;
        word-break: break-word;
        color: var(--dp-color-surface, #f8f8f8);
    }

    .dp-site-header--force-mobile .dp-site-header__menu .sub-menu a {
        display: block;
        min-height: 2.75rem;
        padding: 0.45rem 0 0.45rem 0.35rem;
        font-size: clamp(1rem, 1.4vw, 1.15rem);
        font-weight: 700;
        line-height: 1.25;
        white-space: normal;
        color: var(--dp-color-muted);
    }

    .dp-site-header--force-mobile .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__menu > li {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-open .dp-site-header__menu > li {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .dp-site-header--force-mobile .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(n + 7) {
        animation-delay: 0.48s;
    }

    .dp-site-header--force-mobile .dp-site-header__submenu-toggle {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2.75rem;
        height: 2.75rem;
        padding: 0;
        border: 1px solid var(--dp-color-border-strong);
        border-radius: 999px;
        background: transparent;
        color: var(--dp-color-surface);
    }

    .dp-site-header--force-mobile .dp-site-header__mega-toggle-icon {
        display: none !important;
    }

    .dp-site-header--force-mobile .dp-site-header__menu > li.menu-item-has-children {
        flex: 1 1 auto;
        width: 100%;
        display: flex;
        align-items: stretch;
    }

    .dp-site-header--force-mobile .dp-site-header__menu > li.menu-item-has-children > .dp-site-header__menu-anchor {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
    }

    .dp-site-header--force-mobile .dp-site-header__menu .sub-menu::before,
    .dp-site-header--force-mobile .dp-site-header__menu .dp-mega-menu::before {
        display: none !important;
    }

    .dp-site-header--force-mobile .dp-site-header__menu .sub-menu,
    .dp-site-header--force-mobile .dp-site-header__menu .dp-mega-menu {
        display: block;
        position: static !important;
        inset: auto !important;
        z-index: auto;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0;
        padding: 0 0 0.45rem;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        transform: none !important;
        visibility: visible;
        pointer-events: auto;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
    }

    .dp-site-header--force-mobile .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .sub-menu,
    .dp-site-header--force-mobile .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-mega-menu {
        max-height: 80rem;
        opacity: 1;
    }

    .dp-site-header--force-mobile .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .sub-menu[hidden],
    .dp-site-header--force-mobile .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-mega-menu[hidden] {
        display: block !important;
    }

    .dp-site-header--force-mobile.is-nav-open {
        z-index: 1200;
        overflow: visible;
    }

    .dp-site-header--force-mobile.is-nav-open::before,
    .dp-site-header--force-mobile.is-nav-open::after {
        display: none;
    }

    .dp-site-header--force-mobile.is-nav-open .dp-site-header__inner {
        position: relative;
        z-index: 2;
        background: transparent;
    }

    .dp-site-header--force-mobile.is-nav-open .dp-site-header__branding,
    .dp-site-header--force-mobile.is-nav-open .dp-site-header__utilities {
        position: relative;
        z-index: 3;
    }

    .dp-site-header--force-mobile.is-nav-open .dp-site-header__toggle {
        position: relative;
        z-index: 4;
    }

}

@media (min-width: 960px) {
    body:has(.dp-site-header--force-mobile) .is-mega-portaled {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
        transform: none !important;
    }
}

.dp-site-header__navigation {
    min-width: 0;
}

.dp-site-header__menu,
.dp-site-footer__menu {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.85rem 1.25rem;
    padding: 0;
    margin: 0;
    font-size: 0;
    line-height: 0;
}

.dp-site-header__menu > li,
.dp-site-footer__menu > li {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.2;
}

.dp-site-header__menu > li.menu-item-has-children {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.dp-site-header__menu a,
.dp-site-footer__menu a {
    display: block;
    color: var(--dp-color-surface);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.dp-site-header__menu a:hover,
.dp-site-header__menu a:focus-visible,
.dp-site-header__menu a.dp-site-header__menu-trigger:hover,
.dp-site-header__menu a.dp-site-header__menu-trigger:focus-visible,
.dp-site-footer__menu a:hover,
.dp-site-footer__menu a:focus-visible {
    color: var(--dp-color-brand);
}

@media (prefers-reduced-motion: reduce) {
    .dp-site-header::before,
    .dp-site-header::after,
    .dp-site-header__navigation,
    .dp-profile-pill,
    .dp-profile-menu,
    .dp-profile-backdrop,
    .dp-profile-menu__header,
    .dp-profile-menu__nav,
    .dp-profile-menu__profile,
    .dp-profile-menu__footer,
    .dp-profile-pill__chevron,
    .dp-site-header__toggle-line,
    .dp-site-header__panel-reveal,
    .dp-site-header__panel-inner,
    .dp-site-header__panel-scroll .dp-site-header__menu > li {
        transition: none;
        animation: none;
    }

    @media (min-width: 960px) {
        .dp-site-header__panel {
            pointer-events: auto;
        }

        .dp-site-header__navigation {
            opacity: 1;
            pointer-events: auto;
        }
    }

    .dp-profile-menu__header,
    .dp-profile-menu__nav,
    .dp-profile-menu__profile,
    .dp-profile-menu__footer {
        opacity: 1;
        transform: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-reveal {
        clip-path: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-inner {
        opacity: 1;
        transform: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li,
    .dp-site-header__panel.is-open .dp-site-header__profile-nav,
    .dp-site-header__panel.is-open .dp-site-header__ctas--mobile {
        opacity: 1;
        transform: none;
        animation: none;
    }
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    clip: auto !important;
    clip-path: none;
    height: auto;
    margin: 0;
    overflow: visible;
    position: fixed !important;
    top: 1rem;
    left: 1rem;
    width: auto;
    padding: 0.75rem 1rem;
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    border-radius: var(--dp-radius-pill);
    z-index: 10000;
}

@media (max-width: 959px) {
    /*
     * Mobile nav contract
     * -------------------
     * 1. Sticky header keeps its normal `top` (admin-bar + countdown). Never
     *    change `top` on open/close — that jumps the logo.
     * 2. Fixed panel paints from admin-bar/viewport top and covers the countdown
     *    via stacking + circle clip-path (header z > countdown z). Do not paint
     *    a solid chrome overlay over the countdown — that snaps it away.
     * 3. Scroll lock on html only (not body) to avoid sticky containing-block jump.
     * 4. Menu scroll fade is an overlay on __inner (z above panel, below logo).
     */
    html.dp-nav-open {
        overflow: hidden;
        overscroll-behavior: none;
    }

    body.dp-nav-open {
        overscroll-behavior: none;
        touch-action: none;
    }

    .dp-site-header.is-nav-open {
        z-index: 1200;
        overflow: visible;
    }

    /* Under the open header stacking context; stays visible for circle uncover. */
    body.dp-nav-open .dp-countdown-banner {
        z-index: 1100;
        pointer-events: none;
    }

    /* Page scroll fade sits under the opaque panel — disable while nav owns the chrome. */
    .dp-site-header.is-nav-open::before,
    .dp-site-header.is-nav-open::after {
        display: none;
    }

    .dp-site-header.is-nav-open .dp-site-header__inner {
        position: relative;
        z-index: 2;
        background: transparent;
    }

    /*
     * Soft edge under the logo bar only — must NOT extend into the countdown
     * strip (that made the banner vanish instantly instead of being consumed
     * by the circle). Keep the fade short so the first menu item stays crisp.
     */
    .dp-site-header.is-nav-open .dp-site-header__inner::before {
        content: "";
        position: absolute;
        top: 100%;
        left: 50%;
        z-index: 2;
        width: 100vw;
        margin-left: -50vw;
        height: 1.5rem;
        pointer-events: none;
        opacity: 1;
        background: linear-gradient(
            to bottom,
            var(--dp-color-base, #000) 0%,
            rgb(0 0 0 / 0.4) 55%,
            transparent 100%
        );
        -webkit-mask-image: none;
        mask-image: none;
    }

    .dp-site-header.is-nav-open .dp-site-header__panel-reveal {
        background: var(--dp-color-base, #000);
    }

    .dp-site-header.is-nav-open .dp-site-header__branding,
    .dp-site-header.is-nav-open .dp-site-header__utilities {
        position: relative;
        z-index: 3;
    }

    .dp-site-header__inner {
        position: relative;
        z-index: 2;
        flex-wrap: nowrap;
        min-height: var(--dp-header-height, 5.5rem);
        padding-block: 0.75rem;
    }

    .dp-site-header__award-logo {
        max-height: clamp(2rem, 7.5vw, 2.65rem);
    }

    .dp-site-header__branding {
        flex: 1 1 auto;
        min-width: 0;
        position: relative;
        z-index: 1202;
    }

    .dp-site-header__supporting-logos {
        display: flex;
        flex-wrap: nowrap;
        gap: clamp(0.45rem, 2vw, 0.75rem);
        max-width: min(52vw, 16rem);
        overflow-x: auto;
        scrollbar-width: none;
        --dp-header-sponsor-logo-height: clamp(1.15rem, 3.8vw, 1.65rem);
    }

    .dp-site-header__supporting-logos::-webkit-scrollbar {
        display: none;
    }

    .dp-site-header__supporting-logo--dp-event {
        max-height: clamp(1.65rem, 5vw, 2.15rem);
        height: clamp(1.65rem, 5vw, 2.15rem);
    }

    .dp-site-header__ctas--desktop,
    .dp-site-header__utilities .dp-site-header__account {
        display: none;
    }

    .dp-site-header__ctas--mobile {
        display: grid;
    }

    .dp-site-header__utilities {
        position: relative;
        z-index: 1203;
        margin-left: auto;
        flex-shrink: 0;
        gap: 0;
    }

    .dp-site-header__toggle {
        display: inline-flex;
        position: relative;
        z-index: 1;
    }

    .dp-profile--header-dropdown {
        display: none;
    }

    .dp-site-header__panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1;
        display: block;
        width: auto;
        margin: 0;
        padding: 0;
        border: 0;
        visibility: hidden;
        pointer-events: none;
    }

    body.admin-bar .dp-site-header__panel {
        top: var(--dp-admin-bar-height, 32px);
    }

    /* Cover countdown under the overlay while chrome stays sticky above. */
    .has-countdown-banner .dp-site-header__panel {
        top: 0;
    }

    body.admin-bar.has-countdown-banner .dp-site-header__panel {
        top: var(--dp-admin-bar-height, 32px);
    }

    .dp-site-header.is-nav-open .dp-site-header__panel,
    body.admin-bar .dp-site-header.is-nav-open .dp-site-header__panel {
        position: fixed;
        z-index: 1;
    }

    .dp-site-header.is-nav-open .dp-site-header__branding,
    .dp-site-header.is-nav-open .dp-site-header__utilities {
        position: relative;
        z-index: 3;
    }

    .dp-site-header.is-nav-open .dp-site-header__toggle {
        position: relative;
        z-index: 4;
    }

    .dp-site-header__panel.is-open,
    .dp-site-header__panel.is-closing {
        visibility: visible;
        pointer-events: auto;
    }

    /* Circle reveal from the toggle — expands over countdown/hero without layout jump. */
    .dp-site-header__panel-reveal {
        display: block;
        position: absolute;
        inset: 0;
        background: var(--dp-color-base, #000);
        opacity: 1;
        -webkit-clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        transition:
            -webkit-clip-path 0.58s cubic-bezier(0.4, 0, 0.2, 1),
            clip-path 0.58s cubic-bezier(0.4, 0, 0.2, 1);
        will-change: clip-path;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-reveal {
        -webkit-clip-path: circle(var(--dp-nav-r, 150vmax) at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        clip-path: circle(var(--dp-nav-r, 150vmax) at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
    }

    .dp-site-header__panel.is-closing .dp-site-header__panel-reveal {
        -webkit-clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        clip-path: circle(0 at var(--dp-nav-x, calc(100% - 2rem)) var(--dp-nav-y, 2rem));
        transition-duration: 0.48s;
        transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1);
    }

    @supports not (clip-path: circle(1px at 50% 50%)) {
        .dp-site-header__panel-reveal {
            -webkit-clip-path: none;
            clip-path: none;
            opacity: 0;
            transition: opacity 0.28s ease;
        }

        .dp-site-header__panel.is-open .dp-site-header__panel-reveal {
            opacity: 1;
        }

        .dp-site-header__panel.is-closing .dp-site-header__panel-reveal {
            opacity: 0;
        }
    }

    .dp-site-header__panel-inner {
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 1;
        height: 100%;
        opacity: 0;
        transform: translateY(1.25rem);
        transition:
            opacity 0.34s ease 0.14s,
            transform 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.14s;
        pointer-events: none;
    }

    .dp-site-header__panel-offset {
        display: none;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-inner,
    .dp-site-header__panel.is-closing .dp-site-header__panel-inner {
        pointer-events: auto;
    }

    .dp-site-header__panel.is-open .dp-site-header__panel-inner {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    .dp-site-header__panel.is-closing .dp-site-header__panel-inner {
        opacity: 0;
        transform: translateY(0.75rem);
        transition-delay: 0s;
        transition-duration: 0.22s;
    }

    .dp-site-header__panel-scroll {
        --dp-nav-link-size: clamp(1.25rem, 5.5vw + 0.35rem, 2rem);
        --dp-nav-link-pad-block: clamp(0.7rem, 1.6vh, 0.95rem);
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        padding:
            calc(
                var(--dp-countdown-banner-height, 0px) + var(--dp-header-height, 5.5rem) +
                    env(safe-area-inset-top, 0px) + 1.5rem
            )
            var(--dp-site-gutter, clamp(1.25rem, 4vw, 3rem))
            max(2.5rem, calc(1.5rem + env(safe-area-inset-bottom, 0px)));
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-gutter: stable;
    }

    /* 8+ top-level items: slightly denser, still ≥~44px tap targets; list scrolls. */
    .dp-site-header__panel.is-nav-dense .dp-site-header__panel-scroll {
        --dp-nav-link-size: clamp(1.15rem, 4.2vw + 0.4rem, 1.65rem);
        --dp-nav-link-pad-block: clamp(0.55rem, 1.25vh, 0.8rem);
    }

    /* 12+: compact for long menus / short viewports — scroll is the overflow strategy. */
    .dp-site-header__panel.is-nav-compact .dp-site-header__panel-scroll {
        --dp-nav-link-size: clamp(1.05rem, 3.6vw + 0.35rem, 1.4rem);
        --dp-nav-link-pad-block: clamp(0.5rem, 1.1vh, 0.7rem);
    }

    @media (max-height: 700px) {
        .dp-site-header__panel-scroll {
            --dp-nav-link-size: clamp(1.1rem, 3.8vw + 0.4rem, 1.55rem);
            --dp-nav-link-pad-block: clamp(0.5rem, 1.15vh, 0.75rem);
        }
    }

    .dp-site-header__navigation {
        flex: 0 0 auto;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        padding-top: 0;
        width: 100%;
    }

    .dp-site-header__menu {
        font-size: inherit;
        line-height: inherit;
        opacity: 1;
        visibility: visible;
    }

    .dp-site-header__menu > li {
        font-size: inherit;
        line-height: inherit;
    }

    .dp-site-header__menu,
    .dp-site-footer__menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        font-size: inherit;
        line-height: inherit;
    }

    .dp-site-header__menu > li,
    .dp-site-footer__menu > li {
        flex-direction: column;
        align-items: stretch;
        border-bottom: 1px solid var(--dp-color-border);
    }

    .dp-site-header__menu > li:first-child {
        border-top: 0;
    }

    .dp-site-header__menu > li {
        opacity: 1;
        transform: none;
    }

    .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__menu > li {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(1) {
        animation-delay: 0.18s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(2) {
        animation-delay: 0.24s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(3) {
        animation-delay: 0.3s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(4) {
        animation-delay: 0.36s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(5) {
        animation-delay: 0.42s;
    }

    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(6) {
        animation-delay: 0.48s;
    }

    /* Cap stagger so item 10+ appear with the last wave, not delayed forever. */
    .dp-site-header__panel.is-open .dp-site-header__menu > li:nth-child(n + 7) {
        animation-delay: 0.48s;
    }

    .dp-site-header__panel.is-closing .dp-site-header__menu > li {
        animation: none;
        opacity: 0;
        transform: translate3d(0, 0.35rem, 0);
        transition:
            opacity 0.18s ease,
            transform 0.18s ease;
    }

    .dp-site-header__menu > li.menu-item-has-children {
        flex: 1 1 auto;
        width: 100%;
        align-items: stretch;
    }

    .dp-site-header__menu > li > .dp-site-header__menu-anchor {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .dp-site-header__menu-row {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        width: 100%;
    }

    .dp-site-header__menu > li > a,
    .dp-site-header__menu-row > a,
    .dp-site-header__menu-row > .dp-site-header__menu-trigger {
        flex: 1 1 auto;
        min-width: 0;
        min-height: 2.75rem;
        padding: var(--dp-nav-link-pad-block, 0.95rem) 0;
        font-size: var(--dp-nav-link-size, clamp(1.35rem, 6vw, 2rem));
        font-weight: 400;
        line-height: 1.15;
        letter-spacing: -0.02em;
        color: #f8f8f8;
        color: var(--dp-color-surface, #f8f8f8);
        word-break: break-word;
    }

    .dp-site-header__submenu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2.75rem;
        height: 2.75rem;
        padding: 0;
        border: 1px solid var(--dp-color-border-strong);
        border-radius: 999px;
        background: transparent;
        color: var(--dp-color-surface);
        cursor: pointer;
        transition:
            border-color 0.2s ease,
            background-color 0.2s ease,
            transform 0.2s ease;
    }

    .dp-site-header__submenu-toggle:hover,
    .dp-site-header__submenu-toggle:focus-visible {
        border-color: var(--dp-color-brand);
        background: rgb(216 248 0 / 0.08);
        outline: none;
    }

    .dp-site-header__submenu-toggle-icon {
        width: 0.55rem;
        height: 0.55rem;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        /* Closed → down. */
        transform: rotate(45deg);
        transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-site-header__menu-row .dp-site-header__submenu-toggle-icon,
    .menu-item.is-submenu-open > .dp-site-header__submenu-toggle .dp-site-header__submenu-toggle-icon {
        /* Open → up (flip after rotate). */
        transform: scaleY(-1) rotate(45deg);
    }

    .dp-site-header__menu .sub-menu,
    .dp-site-header__menu .dp-mega-menu {
        display: block;
        list-style: none;
        margin: 0;
        padding: 0 0 0.45rem;
        width: 100%;
        max-width: none;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transform: none !important;
        transition:
            max-height 0.36s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.24s ease;
    }

    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .sub-menu,
    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-mega-menu {
        max-height: 80rem;
        opacity: 1;
    }

    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .sub-menu[hidden],
    .dp-site-header__menu .menu-item.is-submenu-open > .dp-site-header__menu-anchor > .dp-mega-menu[hidden] {
        display: block !important;
    }

    .dp-site-header__menu .sub-menu > li {
        border-bottom: 0;
    }

    .dp-site-header__menu .sub-menu a {
        display: block;
        min-height: 2.75rem;
        padding: 0.45rem 0 0.45rem 0.35rem;
        font-size: clamp(0.95rem, 3.4vw, 1.1rem);
        font-weight: 700;
        line-height: 1.25;
        color: var(--dp-color-muted);
    }

    .dp-site-header__menu .sub-menu a:hover,
    .dp-site-header__menu .sub-menu a:focus-visible {
        color: var(--dp-color-brand);
    }

    .dp-site-header__profile-nav {
        display: block;
        width: 100%;
        margin-top: auto;
        padding-top: 1.25rem;
        padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
        opacity: 1;
        border-top: 1px solid var(--dp-color-border);
    }

    .dp-site-header__navigation + .dp-site-header__ctas--mobile {
        margin-top: 0.25rem;
    }

    .dp-site-header__ctas--mobile {
        margin-block: 1.25rem 0.35rem;
        padding-top: 1.25rem;
    }

    .dp-site-header__ctas--mobile .dp-site-header__cta {
        border-radius: 999px;
    }

    .dp-site-header__ctas--mobile + .dp-site-header__profile-nav {
        margin-top: auto;
        padding-top: 1.5rem;
        border-top: 1px solid var(--dp-color-border);
    }

    .dp-site-header__navigation + .dp-site-header__profile-nav {
        margin-top: auto;
        padding-top: 1.5rem;
        border-top: 1px solid var(--dp-color-border);
    }

    .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__profile-nav,
    .dp-site-header__panel:not(.is-open):not(.is-closing) .dp-site-header__ctas--mobile {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    .dp-site-header__panel.is-open .dp-site-header__profile-nav {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.34s both;
    }

    .dp-site-header__panel.is-open .dp-site-header__ctas--mobile {
        animation: dp-nav-item-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
    }

    .dp-site-header__menu .sub-menu .sub-menu {
        padding-left: 0.75rem;
        max-height: none;
        opacity: 1;
    }

    .dp-site-header__panel.is-closing .dp-site-header__profile-nav,
    .dp-site-header__panel.is-closing .dp-site-header__ctas--mobile {
        animation: none;
        opacity: 0;
        transform: translate3d(0, 0.35rem, 0);
        transition:
            opacity 0.18s ease,
            transform 0.18s ease;
    }

    .dp-profile-nav__link {
        padding-block: 0.65rem;
        font-size: 1rem;
    }
}

@keyframes dp-nav-item-in {
    from {
        opacity: 0;
        transform: translate3d(0, 0.75rem, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 639px) {
    :root {
        --dp-header-height: 4.75rem;
    }

    h1 {
        font-size: clamp(2.5rem, 12vw, 4rem);
    }
}

/* ==========================================================================
   Auth pages (login, register, password flows)
   ========================================================================== */

.dp-auth-page .dp-site-main {
    min-height: auto;
}

.dp-auth-shell {
    --dp-auth-field-gap: clamp(0.45rem, 0.85vw, 0.65rem);
    --dp-auth-block-gap: clamp(0.65rem, 1.2vw, 0.9rem);
    --dp-auth-field-padding: clamp(0.6rem, 1vw, 0.75rem);
    --dp-auth-field-size: clamp(0.8125rem, 1.25vw, 0.9375rem);
    --dp-auth-section-size: clamp(1.05rem, 1.6vw, 1.25rem);
    --dp-auth-copy-size: clamp(1rem, 1.6vw, 1.125rem);
}

.dp-auth-shell .dp-content-split__heading {
    font-size: clamp(2rem, 4vw, 3rem);
    font-family: var(--dp-font-primary);
    font-weight: 700;
    font-style: normal;
}

.dp-auth-shell .dp-content-split__body {
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-copy-size);
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
}

.dp-auth-shell__body {
    display: grid;
    gap: var(--dp-auth-block-gap);
    min-width: 0;
}

.dp-auth-shell .dp-content-split__content {
    min-width: 0;
}

.dp-auth-shell--no-image .dp-content-split__media {
    display: none;
}

/* Stacked login/register images share one fixed frame — no layout jump on tab change. */
.dp-auth-shell .dp-content-split__media-frame {
    position: relative;
    overflow: hidden;
}

.dp-auth-shell__image-slot {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.28s ease,
        visibility 0.28s ease;
    pointer-events: none;
}

.dp-auth-shell__image-slot.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.dp-auth-shell__image-slot .dp-content-split__image,
.dp-auth-shell__image-slot .dp-auth-shell__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 767px) {
    .dp-auth-shell .dp-content-split__media {
        display: none !important;
    }

    .dp-auth-shell .dp-content-split__layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 768px) {
    .dp-auth-shell--no-image .dp-content-split__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .dp-auth-shell--no-image .dp-content-split__content {
        max-width: min(100%, 42rem);
    }

    /* Keep form + media columns stable across Sign in / Create account. */
    .dp-auth-shell .dp-content-split__layout {
        align-items: start;
    }

    .dp-auth-shell .dp-content-split__content {
        justify-content: flex-start;
    }

    .dp-auth-shell .dp-content-split__media {
        position: sticky;
        top: calc(
            var(--dp-header-height, 5.5rem) + var(--dp-countdown-banner-height, 0px)
        );
        align-self: start;
        width: 100%;
    }

    .dp-auth-shell .dp-content-split__media-frame {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: min(68vh, 36rem);
        aspect-ratio: 4 / 5;
    }

    .dp-auth-portal__panels {
        min-height: 18rem;
    }

    .dp-auth-shell.dp-content-split--image-right .dp-content-split__layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.42fr);
    }

    .dp-auth-shell:not(.dp-content-split--image-right) .dp-content-split__layout {
        grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
    }
}

/* Registration wizard */
.dp-auth-register-wizard {
    display: grid;
    gap: clamp(1rem, 2vw, 1.35rem);
    width: 100%;
}

.dp-auth-register-wizard__chrome {
    display: grid;
    gap: 0.65rem;
}

.dp-auth-register-wizard__step-label {
    margin: 0;
    font-family: var(--dp-font-accent);
    font-size: clamp(0.9375rem, 1.4vw, 1.0625rem);
    font-style: italic;
    line-height: 1.35;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.dp-auth-register-wizard__track {
    height: 0.2rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--dp-color-surface) 12%, transparent);
    overflow: hidden;
}

.dp-auth-register-wizard__track-fill {
    display: block;
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: var(--dp-color-brand);
    transition: width 0.35s ease;
}

.dp-auth-register-wizard__steps {
    display: grid;
    gap: var(--dp-auth-block-gap);
}

.dp-auth-register-wizard__step {
    display: grid;
    gap: var(--dp-auth-field-gap);
}

.dp-auth-register-wizard__step[hidden],
.dp-auth-register-wizard__back[hidden],
.dp-auth-register-wizard__next[hidden] {
    display: none !important;
}

.dp-auth-register-wizard__step-title {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-section-size);
    font-weight: 700;
    font-style: normal;
    line-height: 1.2;
    color: var(--dp-color-surface);
}

.dp-auth-register-wizard__step-notice {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.4;
    color: color-mix(in srgb, var(--dp-color-error) 76%, var(--dp-color-surface));
}

.dp-auth-register-wizard__step-notice[hidden] {
    display: none !important;
}

.dp-auth-register-wizard__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.dp-auth-register-wizard__back {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0.35rem 0;
    font-family: var(--dp-font-primary);
    font-size: 0.875rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--dp-color-surface) 78%, transparent);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.dp-auth-register-wizard__back:hover,
.dp-auth-register-wizard__back:focus-visible {
    color: var(--dp-color-brand);
    outline: none;
}

.dp-auth-register-wizard__next {
    margin-left: auto;
}

@media (min-width: 768px) {
    .dp-auth-register-wizard__step {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(0.65rem, 1.2vw, 0.85rem);
    }

    .dp-auth-register-wizard__step-title,
    .dp-auth-register-wizard__step-notice,
    .dp-auth-register-wizard__step > p,
    .dp-auth-register-wizard__step > label,
    .dp-auth-register-wizard__step > .other-box,
    .dp-auth-register-wizard__step > .contact-form__bottom,
    .dp-auth-register-wizard__step > .cf-turnstile,
    .dp-auth-register-wizard__step > input[type="file"],
    .dp-auth-register-wizard__step > select[name="how_hear"],
    .dp-auth-register-wizard__step > select[name="country"],
    .dp-auth-register-wizard__step > select[name="company_type"],
    .dp-auth-register-wizard__step > select.us_state_select_control,
    .dp-auth-register-wizard__step > input.state_text_input,
    .dp-auth-register-wizard__step > .dp-auth-field:has(> input[type="file"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select[name="how_hear"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select[name="country"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select[name="company_type"]),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> select.us_state_select_control),
    .dp-auth-register-wizard__step > .dp-auth-field:has(> input.state_text_input),
    .dp-auth-register-wizard__step > .dp-auth-field-row {
        grid-column: 1 / -1;
    }

    .dp-auth-register-wizard__step > .dp-auth-field:has(> input[name="job_title"]) {
        grid-column: auto;
    }

    .dp-auth-register-wizard__step > .dp-auth-field-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(0.65rem, 1.2vw, 0.85rem);
    }
}

.dp-auth-shell .dp-auth-field {
    position: relative;
    min-width: 0;
}

.dp-auth-field--url input {
    padding-right: 2.85rem;
}

.dp-auth-field--url .dp-auth-field-hint {
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    max-width: 42%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--dp-font-primary);
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--dp-color-surface) 40%, transparent);
    pointer-events: none;
    transition: opacity var(--dp-transition);
}

.dp-auth-field--url.has-value .dp-auth-field-hint,
.dp-auth-field--url:focus-within .dp-auth-field-hint {
    opacity: 0;
}

.dp-auth-field-row {
    display: grid;
    gap: var(--dp-auth-field-gap);
    min-width: 0;
}

/* Combined portal */
.dp-auth-shell:has(.dp-auth-portal) .dp-content-split__heading {
    margin-bottom: clamp(0.65rem, 1.35vw, 0.9rem);
}

.dp-auth-portal {
    display: grid;
    gap: clamp(0.75rem, 1.35vw, 1rem);
    min-width: 0;
}

.dp-auth-portal__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    width: 100%;
}

.dp-auth-portal__tab {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 22%, transparent);
    border-radius: 999px;
    background: transparent;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
    padding: 0.62rem 1rem;
    font-family: var(--dp-font-primary);
    font-size: clamp(0.8125rem, 1.2vw, 0.875rem);
    font-style: normal;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition:
        background-color var(--dp-transition),
        border-color var(--dp-transition),
        color var(--dp-transition);
}

.dp-auth-portal__tab:hover,
.dp-auth-portal__tab:focus-visible {
    border-color: color-mix(in srgb, var(--dp-color-brand) 55%, transparent);
    color: var(--dp-color-surface);
}

.dp-auth-portal__tab.is-active {
    background: var(--dp-color-brand);
    border-color: var(--dp-color-brand);
    color: var(--dp-color-base);
}

.dp-auth-portal__panels,
.dp-auth-portal__panel,
.dp-auth-portal__panel-body,
.dp-auth-shell .widecolumn,
#password-lost-form,
#password-reset-form {
    min-width: 0;
}

.dp-auth-portal__lede {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-copy-size);
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 82%, transparent);
}

.dp-auth-portal__lede[hidden] {
    display: none;
}

.dp-auth-portal__panel-body {
    display: grid;
    gap: var(--dp-auth-block-gap);
}

.dp-auth-forgot-intro {
    display: grid;
    gap: calc(var(--dp-auth-field-gap) * 0.75);
}

.dp-auth-shell__body > p,
.dp-auth-shell__body .login-form > p,
.dp-auth-forgot-intro p,
#password-lost-form > p,
#password-reset-form .description {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-copy-size);
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.dp-auth-shell__body > p a,
.dp-auth-shell__body .login-form a,
.dp-auth-forgot-intro a,
.dp-auth-login-hint a,
.dp-auth-forgot-link,
.dp-auth-alert__action {
    color: var(--dp-color-brand);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.dp-auth-shell__body > p a:hover,
.dp-auth-shell__body > p a:focus-visible,
.dp-auth-shell__body .login-form a:hover,
.dp-auth-shell__body .login-form a:focus-visible,
.dp-auth-forgot-intro a:hover,
.dp-auth-forgot-intro a:focus-visible,
.dp-auth-login-hint a:hover,
.dp-auth-login-hint a:focus-visible,
.dp-auth-forgot-link:hover,
.dp-auth-forgot-link:focus-visible,
.dp-auth-alert__action:hover,
.dp-auth-alert__action:focus-visible {
    color: color-mix(in srgb, var(--dp-color-brand) 82%, #fff);
}

.dp-auth-shell__body > h2,
.dp-auth-shell .contact-form > h2,
#password-reset-form h3 {
    margin: calc(var(--dp-auth-field-gap) * 0.5) 0 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-section-size);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--dp-color-surface);
}

.dp-auth-shell__body > h2:first-child,
.dp-auth-shell .contact-form > h2:first-child,
#password-reset-form h3:first-child {
    margin-top: 0;
}

.dp-auth-alert,
.fe-alert,
.error-alert,
.newsletter-alert {
    padding: 0.7rem 0.85rem;
    border-radius: var(--dp-radius-input);
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-copy-size);
    line-height: 1.45;
}

.dp-auth-alert--success,
.fe-alert:not(.error-alert) {
    background: color-mix(in srgb, var(--dp-color-brand) 18%, transparent);
    color: var(--dp-color-surface);
    border: 1px solid color-mix(in srgb, var(--dp-color-brand) 45%, transparent);
}

.dp-auth-alert--error,
.error-alert,
.newsletter-alert,
.fe-alert.error-alert {
    background: color-mix(in srgb, var(--dp-color-error) 16%, transparent);
    color: var(--dp-color-surface);
    border: 1px solid color-mix(in srgb, var(--dp-color-error) 45%, transparent);
}

.dp-auth-alert p,
.fe-alert p,
.error-alert p,
.newsletter-alert p {
    margin: 0;
}

.dp-auth-alert__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 0.85rem;
    margin-top: 0.55rem;
}

.dp-auth-alert__action {
    font-size: 0.8125rem;
    font-weight: 600;
}

.dp-auth-login-hint {
    padding: 0.65rem 0.75rem;
    border-radius: var(--dp-radius-input);
    background: color-mix(in srgb, var(--dp-color-accent) 24%, transparent);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 18%, transparent);
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--dp-color-surface);
}

.login-form,
.contact-form,
#password-lost-form .login-form,
#password-reset-form,
#resetpassform {
    display: grid;
    gap: var(--dp-auth-field-gap);
}

.login-form label,
#password-lost-form label,
#password-reset-form label,
#resetpassform label,
.form-group label {
    display: block;
    margin-bottom: 0.25rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.login-form form,
.contact-form,
#password-lost-form .login-form form,
#resetpassform {
    display: grid;
    gap: var(--dp-auth-field-gap);
}

.dp-auth-shell .login-form .input,
.dp-auth-shell .border-input,
.dp-auth-shell .form-control,
.dp-auth-shell .login-form input[type="text"],
.dp-auth-shell .login-form input[type="email"],
.dp-auth-shell .login-form input[type="password"],
.dp-auth-shell .login-form input[type="tel"],
.dp-auth-shell .login-form input[type="url"],
.dp-auth-shell .login-form input[type="file"],
.dp-auth-shell .login-form select,
.dp-auth-shell .login-form textarea,
.dp-auth-shell .contact-form input,
.dp-auth-shell .contact-form select,
.dp-auth-shell .contact-form textarea,
.dp-auth-shell #password-lost-form input,
.dp-auth-shell #password-reset-form input,
.dp-auth-shell #resetpassform input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: var(--dp-auth-field-padding);
    font-size: var(--dp-auth-field-size);
}

.dp-auth-shell .contact-form textarea {
    min-height: 5.5rem;
}

/* Parsley — screen-reader only; visual feedback is field border + step notice */
.dp-auth-shell .dp-auth-field .parsley-errors-list {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.dp-auth-shell .dp-auth-field .parsley-errors-list li {
    margin: 0;
    padding: 0;
}

.dp-auth-shell .dp-auth-field .parsley-errors-list:empty {
    display: none;
}

.dp-auth-shell .contact-form input.parsley-error,
.dp-auth-shell .contact-form select.parsley-error,
.dp-auth-shell .contact-form textarea.parsley-error,
.dp-auth-shell .contact-form input.dp-auth-input-error,
.dp-auth-shell .contact-form select.dp-auth-input-error,
.dp-auth-shell .contact-form textarea.dp-auth-input-error,
.dp-auth-shell .border-input.parsley-error,
.dp-auth-shell .border-input.dp-auth-input-error {
    border-color: color-mix(in srgb, var(--dp-color-error) 72%, transparent) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dp-color-error) 14%, transparent);
}

.dp-auth-shell .contact-form input.parsley-success:not(.dp-auth-input-error),
.dp-auth-shell .contact-form select.parsley-success:not(.dp-auth-input-error),
.dp-auth-shell .contact-form textarea.parsley-success:not(.dp-auth-input-error) {
    border-color: inherit;
    box-shadow: none;
}

.dp-auth-login-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    margin-block: 0.15rem 0.35rem;
}

.dp-auth-login-forgot,
.dp-auth-login-meta .login-forgot {
    margin: 0;
}

.dp-auth-login-meta .login-remember {
    margin: 0;
}

.dp-auth-login-meta .login-remember label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.dp-auth-login-meta .login-remember input {
    width: auto;
}

.dp-auth-forgot-link {
    display: inline-block;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
}

.dp-auth-forgot-title {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    color: var(--dp-color-surface);
}

.dp-auth-forgot-lede {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: var(--dp-auth-copy-size, 1.0625rem);
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 86%, transparent);
}

/* Plugin lost-password shortcode already includes helper copy — hide the duplicate. */
.dp-auth-portal__panel[data-dp-auth-panel="forgot"] #password-lost-form > p:first-of-type {
    display: none;
}

.dp-auth-portal__tabs[hidden] {
    display: none;
}

.login-form .button-primary,
.contact-form__submit-button,
#password-lost-form .button-primary,
#resetpassform .fe-button,
#resetpass-button,
.resetpass-submit .button,
.resetpass-submit input[type="submit"] {
    justify-self: start;
    min-height: calc(var(--dp-button-line-height) - 0.35rem);
    padding: 0 calc(var(--dp-button-padding-x) - 0.15rem);
    border: 1px solid transparent;
    border-radius: var(--dp-radius-button);
    background: var(--dp-color-brand);
    color: var(--dp-color-base);
    font-family: var(--dp-font-primary);
    font-size: clamp(0.875rem, 1.2vw, var(--dp-button-font-size));
    font-weight: var(--dp-button-font-weight);
    line-height: 1.2;
    cursor: pointer;
    transition:
        background-color var(--dp-transition),
        color var(--dp-transition),
        border-color var(--dp-transition),
        transform 120ms var(--dp-button-ease);
}

.login-form .button-primary:hover,
.login-form .button-primary:focus-visible,
.contact-form__submit-button:hover,
.contact-form__submit-button:focus-visible,
#password-lost-form .button-primary:hover,
#password-lost-form .button-primary:focus-visible,
#resetpassform .fe-button:hover,
#resetpassform .fe-button:focus-visible,
#resetpass-button:hover,
#resetpass-button:focus-visible {
    background: color-mix(in srgb, var(--dp-color-brand) 88%, #fff);
    color: var(--dp-color-base);
}

.contact-form__bottom {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.dp-auth-register-step-footer {
    gap: 1rem;
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--dp-color-surface) 16%, transparent);
}

.dp-auth-register-requirements {
    padding: 0.85rem 1rem;
    border-radius: var(--dp-radius-input);
    background: color-mix(in srgb, var(--dp-color-surface) 5%, transparent);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 14%, transparent);
}

.dp-auth-register-requirements__title {
    display: block;
    margin-bottom: 0.45rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--dp-color-surface);
}

.dp-auth-register-requirements__list {
    margin: 0;
    padding-left: 1.15rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 82%, transparent);
}

.dp-auth-register-requirements__list li + li {
    margin-top: 0.2rem;
}

.dp-auth-register-consent {
    display: grid;
    grid-template-columns: 1.125rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0.35rem 0.75rem;
    align-items: start;
    padding: 0.9rem 1rem;
    border-radius: var(--dp-radius-input);
    border: 1px solid color-mix(in srgb, var(--dp-color-surface) 18%, transparent);
    background: color-mix(in srgb, var(--dp-color-surface) 4%, transparent);
    cursor: pointer;
}

.dp-auth-register-consent input[type="checkbox"] {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 1.125rem;
    height: 1.125rem;
    margin: 0.15rem 0 0;
    accent-color: var(--dp-color-brand);
}

.dp-auth-register-consent__title {
    grid-column: 2;
    grid-row: 1;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--dp-color-surface);
}

.dp-auth-register-consent__body {
    grid-column: 2;
    grid-row: 2;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.55;
    color: color-mix(in srgb, var(--dp-color-surface) 84%, transparent);
}

.dp-auth-register-consent__body a {
    color: var(--dp-color-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.dp-auth-register-consent__body a:hover,
.dp-auth-register-consent__body a:focus-visible {
    color: var(--dp-color-surface);
}

.dp-auth-register-step-footer .contact-form__submit-button {
    width: 100%;
    max-width: 100%;
}

.dp-auth-register-step-footer .cf-turnstile {
    justify-self: start;
}

.contact-form__checkbox-label {
    display: block;
    position: relative;
    padding-inline-start: 1.9rem;
    font-family: var(--dp-font-primary);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: color-mix(in srgb, var(--dp-color-surface) 88%, transparent);
}

.contact-form__checkbox-label input[type="checkbox"] {
    position: absolute;
    inset-inline-start: 0;
    top: 0.2rem;
    width: 1.125rem;
    height: 1.125rem;
    margin: 0;
}

.contact-form__checkbox-label a {
    display: inline !important;
    color: var(--dp-color-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

#password-lost-form.widecolumn,
#password-reset-form.widecolumn {
    width: 100%;
    max-width: none;
    margin: 0;
}

#password-reset-form .row,
#password-lost-form .row,
#password-reset-form .form-group,
#password-lost-form .form-group {
    margin: 0;
}

@media (min-width: 768px) {
    .dp-auth-shell .contact-form {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: clamp(0.65rem, 1.2vw, 0.85rem);
        row-gap: var(--dp-auth-field-gap);
    }

    .dp-auth-shell .contact-form.dp-auth-register-wizard {
        grid-template-columns: minmax(0, 1fr);
    }

    .dp-auth-shell .contact-form > h2,
    .dp-auth-shell .contact-form > p,
    .dp-auth-shell .contact-form > label,
    .dp-auth-shell .contact-form > .other-box,
    .dp-auth-shell .contact-form > .contact-form__bottom,
    .dp-auth-shell .contact-form > .cf-turnstile,
    .dp-auth-shell .contact-form > script {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767px) {
    .dp-auth-portal__tabs {
        gap: 0.45rem;
    }

    .dp-auth-portal__tab {
        padding-inline: 0.75rem;
    }
}

/* -------------------------------------------------------------------------
   404 — full-viewport stage with homepage video mosaic atmosphere
   ------------------------------------------------------------------------- */

.dp-404 {
    margin: 0;
    color: var(--dp-color-surface, #f8f8f8);
}

.dp-404__stage {
    position: relative;
    isolation: isolate;
    display: grid;
    align-items: center;
    min-height: calc(
        100svh - var(--dp-header-height, var(--dp-header-height-fallback, 5.5rem)) -
            var(--dp-countdown-banner-height, 0px)
    );
    overflow: hidden;
    background: var(--dp-color-base, #000);
}

.dp-404__media,
.dp-404__fallback {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.dp-404__media {
    /* Keep column hover (speed-up) like the homepage hero. */
    pointer-events: auto;
    opacity: 0.62;
    filter: saturate(0.9) contrast(1.05);
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        #000 8%,
        #000 88%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        #000 8%,
        #000 88%,
        transparent 100%
    );
}

.dp-404__media .dp-hero-media {
    height: 100%;
    min-height: 100%;
    -webkit-mask-image: none;
    mask-image: none;
}

/* Atmosphere only — don’t follow video card links from the 404 stage. */
.dp-404__media a {
    pointer-events: none;
}

.dp-404__fallback {
    pointer-events: none;
    background:
        radial-gradient(
            ellipse 70% 55% at 70% 40%,
            color-mix(in srgb, var(--dp-color-brand, #d8f800) 14%, transparent) 0%,
            transparent 62%
        ),
        radial-gradient(
            ellipse 55% 45% at 20% 80%,
            rgb(255 255 255 / 0.06) 0%,
            transparent 58%
        ),
        var(--dp-color-base, #000);
}

.dp-404__veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse 70% 55% at 50% 45%,
            rgb(0 0 0 / 0.35) 0%,
            rgb(0 0 0 / 0.55) 55%,
            rgb(0 0 0 / 0.72) 100%
        ),
        linear-gradient(
            to bottom,
            rgb(0 0 0 / 0.35) 0%,
            rgb(0 0 0 / 0.2) 40%,
            rgb(0 0 0 / 0.45) 100%
        );
}

.dp-404__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: clamp(1rem, 2.5vw, 1.5rem);
    max-width: 42rem;
    margin-inline: auto;
    padding-block: clamp(3rem, 10vh, 6rem);
    box-sizing: border-box;
    /* Let mosaic hover pass through copy; keep CTAs clickable. */
    pointer-events: none;
}

.dp-404__code {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: clamp(4.5rem, 14vw, 9rem);
    font-weight: 700;
    line-height: 0.85;
    letter-spacing: -0.06em;
    color: var(--dp-color-brand, #d8f800);
}

.dp-404__title {
    margin: 0;
    font-family: var(--dp-font-primary);
    font-size: clamp(2rem, 5.5vw, 3.5rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.03em;
    text-wrap: balance;
    color: inherit;
}

.dp-404__title em {
    color: var(--dp-color-brand, #d8f800);
    font-family: var(--dp-font-accent);
    font-style: italic;
    font-weight: 400;
}

.dp-404__text {
    margin: 0;
    max-width: 32rem;
    font-family: var(--dp-font-accent);
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    font-style: italic;
    line-height: 1.45;
    color: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 82%, transparent);
}

.dp-404__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    margin-top: 0.35rem;
    pointer-events: auto;
}

.dp-404 .dp-404__cta-outline {
    --dp-button-rest-bg: transparent;
    --dp-button-rest-border: var(--dp-color-surface, #f8f8f8);
    --dp-button-rest-color: var(--dp-color-surface, #f8f8f8);
    --dp-button-sweep-from: var(--dp-color-surface, #f8f8f8);
    --dp-button-hover-border: var(--dp-color-brand);
    --dp-button-hover-color: var(--dp-color-brand);
}

@media (max-width: 767px) {
    .dp-404__content {
        max-width: none;
        padding-block: clamp(2.5rem, 8vh, 4rem);
    }

    .dp-404__actions {
        width: 100%;
        justify-content: center;
    }

    .dp-404__actions .dp-button {
        flex: 1 1 auto;
        justify-content: center;
    }

    .dp-404__media {
        opacity: 0.5;
    }

    .dp-404__veil {
        background:
            radial-gradient(
                ellipse 80% 60% at 50% 48%,
                rgb(0 0 0 / 0.3) 0%,
                rgb(0 0 0 / 0.55) 100%
            );
    }
}

@media (prefers-reduced-motion: reduce) {
    .dp-404__media .dp-hero-media__track {
        animation: none !important;
        transform: none !important;
    }
}

/* Hide legacy Virago/snippet WhatsApp bar when the theme CTA is active. */
.floating-whatsapp-cta:not(.dp-floating-whatsapp-cta) {
	display: none !important;
}

/* Floating support — WhatsApp docked beside HubSpot chat (bottom-left). */
:root {
	--dp-hubspot-chat-size: 3.5rem;
	--dp-floating-support-inset: clamp(1rem, 2.5vw, 1.5rem);
	--dp-floating-support-gap: 0.75rem;
}

.dp-floating-whatsapp-cta {
	position: fixed;
	bottom: max(var(--dp-floating-support-inset), env(safe-area-inset-bottom, 0px));
	left: max(var(--dp-floating-support-inset), env(safe-area-inset-left, 0px));
	z-index: 999998;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--dp-hubspot-chat-size);
	height: var(--dp-hubspot-chat-size);
	border-radius: 999px;
	background: #25d366;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 0.35rem 1rem rgb(0 0 0 / 0.22);
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

body.dp-has-hubspot-chat .dp-floating-whatsapp-cta {
	left: calc(
		max(var(--dp-floating-support-inset), env(safe-area-inset-left, 0px)) +
			var(--dp-hubspot-chat-size) + var(--dp-floating-support-gap)
	);
}

.dp-floating-whatsapp-cta:hover,
.dp-floating-whatsapp-cta:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 0.5rem 1.25rem rgb(0 0 0 / 0.28);
	color: #fff;
}

.dp-floating-whatsapp-cta__icon {
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
}

.dp-floating-whatsapp-cta__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

body.admin-bar .dp-floating-whatsapp-cta {
	bottom: calc(
		max(var(--dp-floating-support-inset), env(safe-area-inset-bottom, 0px)) +
			var(--wp-admin--admin-bar--height, 32px)
	);
}

@media (max-width: 782px) {
	:root {
		--dp-hubspot-chat-size: 3.25rem;
		--dp-floating-support-gap: 0.625rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dp-floating-whatsapp-cta {
		transition: none;
	}
}

/* Privacy Policy and Terms: never wait on scroll-reveal. */
.dp-prose-inner-page [data-dp-reveal-intro] > *,
.dp-prose-inner-page [data-dp-reveal-intro]:is(h1, h2, h3, h4, h5, h6, p) {
    opacity: 1;
    transform: none;
}

/* Terms, privacy, and other long-form legal pages. */
.dp-legal-page {
    background: var(--dp-color-base, #000);
    color: var(--dp-color-surface, #f8f8f8);
    padding-block: var(--dp-section-space-y-sm, clamp(2.75rem, 6.5vw, 4.5rem))
        var(--dp-section-space-y, clamp(4rem, 10vw, 7rem));
}

.dp-legal-page__inner {
    box-sizing: border-box;
    margin-inline: auto;
    max-width: min(100%, var(--dp-layout-wide, 90rem));
    padding-inline: var(--dp-site-gutter, clamp(1.25rem, 4vw, 3rem));
    width: 100%;
}

.dp-legal-page__content {
    margin-inline: auto;
    max-width: 52rem;
    overflow-wrap: anywhere;
}

.dp-legal-page__content > :first-child {
    margin-top: 0;
}

.dp-legal-page__content h1,
.dp-legal-page__content h1.wp-block-heading {
    font-family: var(--dp-font-primary);
    font-size: clamp(2rem, 5vw, 3.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 0 0 1.25rem;
    text-wrap: balance;
}

.dp-legal-page__content table {
    border-collapse: collapse;
    display: block;
    margin: 1.5rem 0;
    max-width: 100%;
    overflow-x: auto;
    width: 100%;
}

.dp-legal-page__content th,
.dp-legal-page__content td {
    border: 1px solid color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 18%, transparent);
    padding: 0.65rem 0.85rem;
    text-align: left;
    vertical-align: top;
}

.dp-legal-page__content th {
    background: color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 6%, transparent);
    font-weight: 600;
}

.dp-legal-page__content img,
.dp-legal-page__content iframe,
.dp-legal-page__content video,
.dp-legal-page__content embed,
.dp-legal-page__content object {
    display: block;
    height: auto;
    max-width: 100%;
}

.dp-legal-page__content pre {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
}

.dp-legal-page__page-links {
    border-top: 1px solid color-mix(in srgb, var(--dp-color-surface, #f8f8f8) 12%, transparent);
    font-size: 0.875rem;
    margin-top: 2rem;
    padding-top: 1.25rem;
}

.dp-legal-page__page-links-label {
    font-weight: 600;
    margin-inline-end: 0.5rem;
}

/* reCAPTCHA v3 badge — hidden sitewide; registration/download forms include privacy/terms links. */
.grecaptcha-badge {
    visibility: hidden !important;
}
