@font-face {
    font-family: "Figtree";
    src: url("../fonts/figtree-v2-variable.woff2") format("woff2");
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
}

:root {
    --color-ink: #111014;
    --color-stage: #08090c;
    --color-paper: #fffdf7;
    --color-surface: #f3f0e8;
    --color-line: #d8d3c8;
    --color-signal: #ffd400;
    --color-signal-hover: #e8bd00;
    --color-pop: #bd005f;
    --color-electric: #2457d6;
    --color-success: #176b45;
    --color-error: #a61b29;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-24: 6rem;
    --space-32: 8rem;
    --content-width: 76rem;
    --prose-width: 46rem;
    --header-height: 4.5rem;
    --radius-control: 0.5rem;
    --radius-card: 1rem;
    --radius-image: 1.25rem;
    --shadow-card: 0 1rem 3rem rgb(8 9 12 / 0.12);
}

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

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + 1rem);
}

body {
    margin: 0;
    overflow-wrap: break-word;
    background: var(--color-paper);
    color: var(--color-ink);
    font-family: "Figtree", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
    line-height: 1.65;
    text-rendering: optimizeLegibility;
}

body.has-open-navigation {
    overflow: hidden;
}

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

img {
    height: auto;
}

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

button,
summary,
a {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: var(--color-pop);
    text-decoration-thickness: 0.11em;
    text-underline-offset: 0.18em;
}

a:hover {
    color: var(--color-ink);
}

:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--color-electric);
    outline-offset: 4px;
}

h1,
h2,
h3,
h4 {
    margin-block: 0 0.6em;
    font-weight: 700;
    line-height: 1.08;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2.5rem, 1.7rem + 4vw, 6.5rem);
    letter-spacing: -0.045em;
}

h2 {
    font-size: clamp(2.1rem, 1.55rem + 2.2vw, 4rem);
    letter-spacing: -0.035em;
}

h3 {
    font-size: clamp(1.45rem, 1.2rem + 1vw, 2.25rem);
}

h4 {
    font-size: clamp(1.15rem, 1.08rem + 0.35vw, 1.4rem);
}

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

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
    position: fixed !important;
    z-index: 100000;
    top: 0.5rem;
    left: 0.5rem;
    width: auto;
    height: auto;
    clip: auto;
    padding: 0.75rem 1rem;
    background: var(--color-paper);
    color: var(--color-ink);
    font-weight: 700;
    white-space: normal;
}

.site-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    min-height: var(--header-height);
    border-bottom: 1px solid rgb(255 255 255 / 0.16);
    background: rgb(8 9 12 / 0.96);
    color: var(--color-paper);
}

.site-header__inner {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: var(--space-3);
    width: min(100% - 1.5rem, var(--content-width));
    min-height: var(--header-height);
    margin-inline: auto;
}

.site-brand {
    display: inline-flex;
    flex: 0 0 6.25rem;
    align-items: center;
    justify-content: flex-start;
    width: 6.25rem;
    max-width: 6.25rem;
    min-height: 2.75rem;
    line-height: 1;
    text-decoration: none;
}

.site-brand:hover {
    color: var(--color-paper);
}

.site-brand__logo {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0;
    object-fit: contain;
    object-position: left center;
}

.site-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-self: end;
    gap: 0.5rem;
    min-width: 3rem;
    min-height: 3rem;
    padding: 0.5rem;
    border: 0;
    border-radius: var(--radius-control);
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.site-nav-toggle__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.site-nav-toggle__icon,
.site-nav-toggle__icon::before,
.site-nav-toggle__icon::after {
    width: 1.65rem;
    height: 2px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
}

.site-nav-toggle__icon {
    position: relative;
}

.site-nav-toggle__icon::before,
.site-nav-toggle__icon::after {
    position: absolute;
    left: 0;
    content: "";
}

.site-nav-toggle__icon::before {
    transform: translateY(-0.45rem);
}

.site-nav-toggle__icon::after {
    transform: translateY(0.45rem);
}

.site-nav-toggle[aria-expanded="true"] .site-nav-toggle__icon {
    background: transparent;
}

.site-nav-toggle[aria-expanded="true"] .site-nav-toggle__icon::before {
    transform: rotate(45deg);
}

.site-nav-toggle[aria-expanded="true"] .site-nav-toggle__icon::after {
    transform: rotate(-45deg);
}

.site-navigation {
    position: fixed;
    inset: var(--header-height) 0 0;
    visibility: hidden;
    overflow-y: auto;
    padding: 1.5rem;
    background: var(--color-stage);
    opacity: 0;
    transform: translateY(-0.5rem);
    transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
}

.site-nav-toggle[aria-expanded="true"] + .site-navigation {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition-delay: 0s;
}

.site-navigation ul,
.site-footer ul {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-navigation a {
    display: block;
    padding: 0.7rem;
    color: var(--color-paper);
    font-size: clamp(1.2rem, 5vw, 2rem);
    font-weight: 700;
    text-decoration: none;
}

.site-navigation__primary a {
    font-size: clamp(1.25rem, 5vw, 2.05rem);
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.site-navigation a:hover {
    color: var(--color-signal);
}

.site-header__social {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid rgb(255 255 255 / 0.2);
}

.site-header__social-list,
.site-navigation .site-header__social-list {
    display: flex;
    flex-flow: row wrap;
    gap: var(--space-2);
}

.site-header__social a,
.site-navigation .site-header__social a {
    display: grid;
    width: 3rem;
    min-height: 3rem;
    padding: 0;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 0.25);
    border-radius: 50%;
    color: var(--color-paper);
}

.site-header__social a:hover {
    border-color: var(--color-signal);
    color: var(--color-signal);
}

.social-icon {
    width: 1.25rem;
    height: 1.25rem;
    fill: currentColor;
}

.social-icon__cutout {
    fill: var(--color-stage);
}

.site-main {
    min-height: 70vh;
}

.site-main > .wp-block-group,
.drpop-section {
    scroll-margin-top: calc(var(--header-height) + 1rem);
}

.drpop-section,
.drpop-page {
    padding-block: clamp(var(--space-16), 6vw, var(--space-24));
}

.drpop-section__inner,
.drpop-page,
.drpop-page__header,
.drpop-prose {
    width: min(100% - 2rem, var(--content-width));
    margin-inline: auto;
}

.drpop-prose,
.drpop-page .drpop-prose {
    max-width: var(--prose-width);
}

.drpop-page__header {
    max-width: var(--prose-width);
    margin-bottom: var(--space-12);
}

.drpop-eyebrow {
    margin-bottom: 0.65rem;
    color: var(--color-pop);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.drpop-hero.wp-block-group {
    --hero-keyword-light: linear-gradient(transparent, transparent);
    --hero-available-height: calc(100vh - var(--header-height) - 1px);
    --hero-content-inline-start: clamp(1rem, calc(10vw - 1rem), 3rem);
    --hero-keyword-width: clamp(10.65rem, 45.45vw, 17.2rem);
    --hero-keyword-safe-edge: calc(var(--hero-content-inline-start) + var(--hero-keyword-width) + clamp(0.5rem, 2vw, 0.75rem));
    --hero-portrait-bottom: -1.375rem;
    --hero-portrait-crop: 1.375rem;
    --hero-portrait-desired-height: clamp(43.125rem, calc(12vw + 40.2rem), 45rem);
    --hero-portrait-desired-width: clamp(28.75rem, calc(8vw + 26.8rem), 30rem);
    --hero-portrait-top-inset: 1.875rem;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: var(--hero-available-height);
    overflow: visible;
    background: #b7b3ac;
    color: var(--color-ink);
    isolation: isolate;
}

@supports (height: 100svh) {
    .drpop-hero.wp-block-group {
        /* Keep the composition stable while mobile browser chrome changes. */
        --hero-available-height: calc(100svh - var(--header-height) - 1px);
    }
}

.drpop-hero::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    background:
            var(--hero-keyword-light),
            radial-gradient(ellipse 105% 115% at 47% 32%, transparent 46%, rgb(54 61 57 / 0.14) 78%, rgb(42 50 46 / 0.34) 100%),
            radial-gradient(ellipse 72% 74% at 47% 27%, rgb(240 237 232 / 0.98) 0%, rgb(225 220 214 / 0.9) 34%, rgb(198 195 188 / 0.35) 62%, transparent 80%),
            linear-gradient(180deg, transparent 0%, rgb(125 130 126 / 0.08) 52%, rgb(82 91 87 / 0.38) 72%, rgb(62 72 68 / 0.78) 100%),
            linear-gradient(90deg, rgb(70 73 69 / 0.3) 0%, rgb(70 73 69 / 0.08) 18%, transparent 35%, transparent 68%, rgb(55 63 59 / 0.12) 82%, rgb(48 57 53 / 0.38) 100%),
            #b7b3ac;
    content: "";
    pointer-events: none;
}

.drpop-hero__media {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: hidden;
    margin: 0;
    clip-path: polygon(
            0 0,
            100% 0,
            100% 100%,
            0 100%,
            0 16.75rem,
            var(--hero-keyword-safe-edge) 16.75rem,
            var(--hero-keyword-safe-edge) 9.5rem,
            0 9.5rem
    );
    pointer-events: none;
}

.drpop-hero__image {
    position: absolute;
    right: auto;
    bottom: var(--hero-portrait-bottom);
    left: calc(82% + 11.5rem - var(--hero-portrait-desired-width));
    display: block;
    width: auto;
    max-width: none;
    /* The intrinsic ratio turns this height ceiling into both portrait dimensions. */
    height: clamp(
            12rem,
            calc(var(--hero-available-height) + var(--hero-portrait-crop) - var(--hero-portrait-top-inset)),
            var(--hero-portrait-desired-height)
    );
}

.drpop-hero__content {
    position: relative;
    z-index: 2;
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    width: 100%;
    margin: 0;
    padding-bottom: var(--space-6);
    padding-top: clamp(5.5rem, 11vh, 5.75rem);
    padding-top: clamp(5.5rem, 11svh, 5.75rem);
    padding-inline: var(--hero-content-inline-start) 1rem;
}

.drpop-hero__brand {
    width: clamp(11.75rem, calc(16.25vw + 8.5rem), 15rem);
    margin: 0 0 clamp(1rem, calc(2.9rem - 5vw), 1.75rem);
}

.drpop-hero__brand img {
    width: 100%;
}

.drpop-hero__keywords {
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(1.9rem, 8.1vw, 3.0625rem);
    font-weight: 800;
    line-height: 0.98;
    letter-spacing: -0.055em;
    text-wrap: nowrap;
}

.drpop-hero__keywords span {
    display: block;
}

.drpop-actions,
.wp-block-buttons.drpop-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: var(--space-8);
}

.drpop-hero .drpop-actions .wp-block-button,
.drpop-hero .drpop-actions .wp-block-button__link {
    width: auto;
}

.drpop-hero .drpop-actions .wp-block-button {
    max-width: 30rem;
}

.drpop-hero .drpop-actions .wp-block-button__link {
    min-height: clamp(2.75rem, calc(3.2vw + 1.97rem), 3.25rem);
    padding: 0.5rem clamp(1.35rem, calc(2vw + 0.75rem), 3.25rem);
    font-size: clamp(0.75rem, calc(1.4vw + 0.41rem), 0.96875rem);
}

.drpop-hero .drpop-actions {
    justify-content: flex-start;
    margin: 1rem 0 0;
}

.drpop-button,
.wp-element-button,
.wp-block-button__link {
    display: inline-flex;
    column-gap: 0.45em;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: 0.72rem 1.15rem;
    border: 2px solid transparent;
    border-radius: var(--radius-control);
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.drpop-button:hover,
.wp-element-button:hover,
.wp-block-button__link:hover {
    transform: translateY(-2px);
}

.drpop-button--primary,
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--color-signal);
    color: var(--color-ink);
}

.drpop-button--primary:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
    background: var(--color-signal-hover);
    color: var(--color-ink);
}

.drpop-button--secondary,
.wp-block-button.is-style-outline .wp-block-button__link {
    border-color: currentColor;
    background: transparent;
    color: inherit;
}

.drpop-section--surface {
    background: var(--color-surface);
}

.drpop-section--dark {
    background: var(--color-stage);
    color: var(--color-paper);
}

.drpop-section--dark :where(h2, h3, h4) {
    color: inherit;
}

:is(.drpop-hero, .drpop-section--dark, .drpop-question) a:not(.drpop-button):not(.wp-element-button):not(.wp-block-button__link) {
    color: var(--color-paper);
}

:is(.drpop-hero, .drpop-section--dark, .drpop-question) a:not(.drpop-button):not(.wp-element-button):not(.wp-block-button__link):hover {
    color: var(--color-signal);
}

.drpop-copy-intro {
    max-width: var(--prose-width);
    font-size: clamp(1.1rem, 1rem + 0.35vw, 1.3rem);
}

.drpop-split,
.wp-block-columns.drpop-split {
    display: grid;
    gap: clamp(var(--space-8), 5vw, var(--space-16));
    align-items: center;
}

.drpop-split .wp-block-column {
    min-width: 0;
}

.drpop-split img,
.drpop-feature-image img {
    width: 100%;
    border-radius: var(--radius-image);
}

#veranstalter .drpop-feature-image {
    margin: 0;
}

#veranstalter .drpop-feature-image img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
    filter: brightness(1.1) saturate(1.04);
}

.drpop-radio {
    width: min(100% - 2rem, var(--content-width));
    margin: 0 auto;
}

.drpop-radio > h2 {
    margin-bottom: var(--space-8);
}

.drpop-radio__grid {
    gap: var(--space-4);
}

.drpop-radio-card {
    position: relative;
    overflow: hidden;
    border-color: var(--color-line);
    background: var(--color-paper);
}

.drpop-radio-card::after {
    position: absolute;
    inset: auto -2rem -3rem auto;
    width: 8rem;
    aspect-ratio: 1;
    border: 1.25rem double var(--color-signal);
    border-radius: 50%;
    content: "";
    opacity: 0.65;
}

.drpop-radio-card > * {
    position: relative;
    z-index: 1;
}

.drpop-radio-card__date span {
    color: var(--color-pop);
    font-size: clamp(2.25rem, 8vw, 4rem);
}

.drpop-events {
    position: relative;
    border-top: 0.5rem solid var(--color-signal);
    background: var(--color-surface);
}

.drpop-events .drpop-section__inner > h2 {
    max-width: 14ch;
    margin-bottom: var(--space-6);
    font-size: clamp(2.75rem, 1.75rem + 4.5vw, 6.5rem);
}

.drpop-event-controls {
    margin-bottom: var(--space-4);
}

.drpop-event-controls > summary {
    width: fit-content;
    min-height: 3.25rem;
    padding: 0.7rem 1.1rem;
    border: 2px solid var(--color-signal);
    border-radius: var(--radius-control);
    background: var(--color-signal);
    color: var(--color-ink);
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.drpop-event-controls > summary:hover {
    border-color: var(--color-signal-hover);
    background: var(--color-signal-hover);
    transform: translateY(-2px);
}

.drpop-event-controls__panel {
    margin-top: var(--space-3);
    padding: clamp(var(--space-4), 3vw, var(--space-6));
    border: 2px solid var(--color-pop);
    border-radius: 1rem;
    background: var(--color-paper);
    box-shadow: var(--shadow-card);
}

.drpop-event-view-switch {
    margin-bottom: var(--space-4);
}

.drpop-event-view-switch__item {
    border-color: var(--color-signal);
    background: var(--color-signal);
    color: var(--color-ink);
}

.drpop-event-view-switch__item[aria-current="page"] {
    border-color: var(--color-signal-hover);
    background: var(--color-signal-hover);
    color: var(--color-ink);
}

.drpop-event-view-switch__item[href]:not([aria-current="page"]):hover {
    border-color: var(--color-signal-hover);
    background: var(--color-signal-hover);
    color: var(--color-ink);
}

.drpop-event-filters {
    gap: var(--space-4);
    padding: 0;
}

.drpop-event-date-filter input[type="date"] {
    border-color: var(--color-line);
}

.drpop-event-city-filter > summary {
    border-color: var(--color-line);
    background: #fff;
}

.drpop-event-city-filter-field__label {
    color: var(--color-pop);
    font-size: 1.05rem;
}

.drpop-event-filter-notice {
    color: #4d4951;
}

.drpop-event-city-filter__panel {
    border-color: var(--color-line);
    box-shadow: var(--shadow-card);
}

.drpop-event-city-filter fieldset label:hover {
    background: var(--color-surface);
}

.drpop-event-city-filter fieldset label:has(input:checked) {
    background: color-mix(in srgb, var(--color-signal) 28%, var(--color-paper));
}

.drpop-event-city-filter small {
    color: #4d4951;
}

.drpop-event-results {
    margin: var(--space-2) 0 var(--space-4);
    color: #4d4951;
}

.drpop-events .drpop-button {
    border-color: var(--color-signal);
    background: var(--color-signal);
    color: var(--color-ink);
}

.drpop-events .drpop-button:hover {
    border-color: var(--color-signal-hover);
    background: var(--color-signal-hover);
    color: var(--color-ink);
}

.drpop-events .drpop-button--sold-out {
    border-color: var(--color-pop);
    background: var(--color-pop);
    color: var(--color-paper);
}

.drpop-events .drpop-button--sold-out:hover {
    border-color: color-mix(in srgb, var(--color-pop) 84%, var(--color-ink));
    background: color-mix(in srgb, var(--color-pop) 84%, var(--color-ink));
    color: var(--color-paper);
}

.drpop-event-list {
    gap: var(--space-4);
}

.drpop-event-list__year {
    color: var(--color-pop);
}

.drpop-event-card {
    border-color: var(--color-line);
    background: var(--color-paper);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.drpop-event-card:hover {
    box-shadow: var(--shadow-card);
    transform: translateY(-2px);
}

.drpop-event-card__date {
    color: var(--color-pop);
    font-weight: 700;
}

.drpop-event-card__content h4 {
    margin-bottom: 0.3rem;
    font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.8rem);
}

.drpop-event-card__title {
    font-weight: 700;
}

.drpop-event-card__meta {
    margin-bottom: 0;
    color: #4d4951;
    font-size: 0.95rem;
}

.drpop-event-card > .drpop-button--primary {
    min-height: 3.5rem;
    padding-inline: 1.4rem;
    font-size: 1.05rem;
}

.drpop-event-list--past {
    opacity: 0.88;
}

.drpop-event-pagination .drpop-button {
    min-width: min(100%, 17rem);
}

.drpop-event-pagination__count {
    font-weight: 400;
}

.drpop-media-gallery.wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.drpop-media-gallery .wp-block-image {
    width: 100% !important;
    margin: 0 !important;
}

.drpop-media-gallery img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 0.75rem;
    object-fit: cover;
}

.drpop-media-gallery .wp-block-image:first-child {
    grid-column: 1 / -1;
}

.drpop-media-gallery .wp-block-image:first-child img {
    aspect-ratio: 16 / 9;
}

.drpop-reference-list {
    padding-left: 1.25rem;
    columns: 1;
}

.drpop-reference-list li {
    break-inside: avoid;
    margin-bottom: 0.5rem;
}

.drpop-books .drpop-section__inner {
    display: grid;
    gap: clamp(var(--space-16), 7vw, var(--space-24));
}

.drpop-book {
    min-width: 0;
}

.drpop-book--secondary {
    padding: clamp(1.25rem, 4vw, 2.75rem);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-card);
    background: var(--color-surface);
}

.drpop-book--secondary .drpop-split {
    gap: clamp(var(--space-6), 4vw, var(--space-12));
}

.drpop-book__subtitle {
    max-width: 42rem;
    margin-top: var(--space-2);
    font-size: clamp(1.05rem, 1rem + 0.25vw, 1.2rem);
    font-weight: 650;
    line-height: 1.45;
}

.drpop-book-cover img {
    width: min(100%, clamp(18rem, 32vw, 24rem));
    margin-inline: auto;
    border-radius: 0;
    filter: drop-shadow(0 1rem 1.25rem rgb(8 9 12 / 0.2));
}

.drpop-book-cover--secondary img {
    width: min(100%, 12rem);
}

.drpop-question {
    background: var(--color-stage);
    color: var(--color-paper);
}

.drpop-question .drpop-eyebrow {
    font-size: 1.25rem;
}

.drpop-question :where(h2, label) {
    color: var(--color-paper);
}

.drpop-question__inner {
    display: grid;
    gap: var(--space-4);
}

.drpop-question .drpop-form {
    margin-top: var(--space-6);
    padding: clamp(1rem, 4vw, 2rem);
    border: 1px solid rgb(255 255 255 / 0.24);
    border-radius: var(--radius-card);
    background: rgb(255 255 255 / 0.08);
}

.drpop-question .drpop-form__help {
    color: #dedbe2;
}

.drpop-question .drpop-form__status.is-success {
    color: var(--color-signal);
}

.drpop-question .drpop-form__status.is-error {
    color: #ff9ba6;
}

.drpop-newsletter .drpop-form__status.is-success,
.drpop-newsletter .drpop-form__status.is-error {
    padding-inline-start: 0.75rem;
    border-inline-start: 0.25rem solid var(--color-signal);
    color: #fff;
}

.drpop-shop-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-image);
    background: transparent;
}

.drpop-shop-card img {
    display: block;
    width: 100%;
}

.drpop-shop-card__action {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 1rem;
    left: 0;
    display: flex;
    justify-content: center;
    margin: 0;
    padding-inline: 1rem;
}

.drpop-newsletter {
    position: relative;
    overflow: hidden;
    background: var(--color-pop);
    color: #fff;
}

.drpop-newsletter::after {
    position: absolute;
    inset: -8rem -8rem auto auto;
    width: 20rem;
    aspect-ratio: 1;
    border: 2rem double rgb(255 212 0 / 0.75);
    border-radius: 50%;
    content: "";
}

.drpop-newsletter__inner {
    position: relative;
    z-index: 1;
}

.drpop-newsletter .drpop-eyebrow,
.drpop-newsletter :where(h2, label) {
    color: #fff;
}

.drpop-newsletter .drpop-form {
    margin-top: var(--space-8);
}

.drpop-contact-grid {
    display: grid;
    gap: var(--space-8);
}

.drpop-contact-card {
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-card);
    background: var(--color-paper);
}

.drpop-legal-action {
    min-height: 65vh;
}

.site-footer {
    padding-block: var(--space-12);
    border-top: 0.35rem solid var(--color-signal);
    background: var(--color-stage);
    color: var(--color-paper);
}

.site-footer__inner {
    display: grid;
    gap: var(--space-8);
    width: min(100% - 2rem, var(--content-width));
    margin-inline: auto;
}

.site-footer__brand {
    margin: 0;
    color: var(--color-signal);
    font-size: 1.5rem;
    font-weight: 700;
}

.site-footer a {
    display: inline-block;
    min-height: 2.75rem;
    padding-block: 0.45rem;
    color: var(--color-paper);
}

.site-footer a:hover {
    color: var(--color-signal);
}

.site-footer__social-list {
    gap: var(--space-1);
}

.site-footer__social a {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: fit-content;
    min-height: 3rem;
    padding-block: 0.25rem;
}

.site-footer__social-icon {
    display: grid;
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 0.3);
    border-radius: 50%;
}

.site-footer__social a:hover .site-footer__social-icon {
    border-color: currentColor;
}

.site-footer__copy {
    margin: 0;
    color: #bbb7c0;
    font-size: 0.875rem;
}

.drpop-notice {
    padding: 0.85rem 1rem;
    border: 2px solid currentColor;
    border-radius: var(--radius-control);
    font-weight: 700;
}

.drpop-notice--success {
    color: var(--color-success);
}

.drpop-notice--error {
    color: var(--color-error);
}

@media (max-width: 63.99rem) {
    .drpop-hero.wp-block-group {
        --hero-keyword-light: radial-gradient(ellipse 80% 32% at 15% 80%, rgb(239 235 230 / 0.46) 0%, rgb(232 230 224 / 0.24) 42%, transparent 74%);
    }

    .drpop-question__inner > .drpop-form {
        width: 100%;
        margin-inline: auto;
    }
}

@media (max-width: 39.99rem) {
    .drpop-hero__media {
        padding-bottom: env(safe-area-inset-bottom);
    }
}

@media (min-width: 40rem) {
    .drpop-hero.wp-block-group {
        --hero-portrait-bottom: calc(5.75rem - 18vw);
        --hero-portrait-crop: calc(18vw - 5.75rem);
        --hero-portrait-desired-height: clamp(45rem, calc(7.8125vw + 41.875rem), 46.875rem);
    }

    .drpop-hero__content {
        padding-top: clamp(5.5rem, calc(4.4vw + 3.8rem), 6.625rem);
        padding-inline-start: clamp(2.75rem, calc(18.5vw - 5.7rem), 16.8125rem);
    }

    .drpop-hero__brand {
        width: clamp(15rem, calc(22vw + 6.25rem), 22.875rem);
        margin-bottom: clamp(1rem, calc(3.125vw - 0.25rem), 1.75rem);
    }

    .drpop-hero__keywords {
        font-size: clamp(3.0625rem, calc(4.385vw + 1.309rem), 4.5rem);
        line-height: clamp(0.92em, calc(1.294em - 2.405vw), 0.98em);
    }

    .drpop-hero .drpop-actions .wp-block-button__link {
        min-height: clamp(3.25rem, calc(1.375vw + 2.7rem), 3.9375rem);
        font-size: clamp(0.96875rem, calc(0.91vw + 0.61rem), 1.25rem);
    }

    .drpop-hero .drpop-actions {
        margin-top: clamp(0.875rem, calc(5.75vw - 1.425rem), 2.25rem);
    }

    .drpop-hero__media {
        padding-bottom: 0;
        clip-path: none;
    }

    .drpop-hero__image {
        right: calc(26.04vw - 14.8rem);
        left: auto;
    }

    .drpop-section:not(.drpop-events) > .drpop-section__inner > :is(.drpop-eyebrow, h2, p),
    .drpop-radio > h2,
    .drpop-copy-intro,
    .drpop-split > .wp-block-column:first-child {
        text-align: center;
    }

    .drpop-copy-intro {
        margin-inline: auto;
    }

    .drpop-newsletter .drpop-form {
        width: 100%;
        margin-inline: auto;
    }

    .drpop-split > .wp-block-column:first-child .wp-block-buttons {
        justify-content: center;
    }

    .drpop-split,
    .wp-block-columns.drpop-split,
    .drpop-contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #veranstalter .drpop-split {
        grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
        gap: clamp(var(--space-8), 4vw, var(--space-16));
        align-items: stretch;
    }

    /*
     * Veranstalter:
     * Die linke Textspalte bestimmt allein die Höhe des Grids.
     * Das Bühnenfoto wird innerhalb der rechten Spalte absolut zwischen
     * Headline-Oberkante und Unterkante des linken Inhalts aufgespannt.
     * So kann das intrinsische Seitenverhältnis des Bildes die Grid-Höhe
     * nicht mehr künstlich vergrößern.
     */
    #veranstalter .drpop-split > .wp-block-column:last-child {
        position: relative;
        min-height: 0;
    }

    #veranstalter .drpop-feature-image {
        position: absolute;
        inset: 3rem 0 0;
        width: 100%;
        height: auto;
        margin: 0;
    }

    #veranstalter .drpop-feature-image img {
        width: 100%;
        height: 100%;
        aspect-ratio: auto;
        object-fit: cover;
        object-position: center;
    }

    .drpop-book--featured .drpop-split {
        grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
    }

    .drpop-book--secondary .drpop-split {
        grid-template-columns: minmax(0, 1.4fr) minmax(10rem, 0.6fr);
    }

    .drpop-media-gallery.wp-block-gallery {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .drpop-media-gallery .wp-block-image {
        grid-column: span 4;
    }

    .drpop-media-gallery .wp-block-image:first-child {
        grid-column: span 8;
        grid-row: span 2;
    }

    .drpop-media-gallery .wp-block-image:first-child img {
        aspect-ratio: auto;
    }

    .drpop-reference-list {
        columns: 2;
        column-gap: 2rem;
    }

    .site-footer__inner {
        grid-template-columns: 1.2fr 1fr 1fr;
    }

    .site-footer__copy {
        grid-column: 1 / -1;
    }
}

@media (min-width: 64rem) {
    .drpop-hero.wp-block-group {
        --hero-portrait-bottom: calc(17.58vw - 17rem);
        --hero-portrait-crop: calc(17rem - 17.58vw);
        --hero-portrait-desired-height: clamp(46.875rem, calc(11.71875vw + 39.375rem), 48.75rem);
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.has-open-navigation {
        overflow: visible;
    }

    .site-header {
        backdrop-filter: blur(14px);
    }

    .site-nav-toggle {
        display: none;
    }

    .site-navigation {
        position: static;
        grid-column: 2;
        grid-row: 1;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: var(--space-2);
        visibility: visible;
        overflow: visible;
        padding: 0;
        background: transparent;
        opacity: 1;
        transform: none;
        transition: none;
    }

    .site-navigation__primary ul {
        flex-direction: row;
        justify-content: flex-end;
        gap: 0;
    }

    .site-navigation a {
        padding: 0.75rem clamp(0.32rem, 0.6vw, 0.5rem);
        font-size: 0.84rem;
    }

    .site-header__social {
        flex: none;
        margin: 0;
        padding: 0 0 0 var(--space-2);
        border-top: 0;
        border-left: 1px solid rgb(255 255 255 / 0.2);
    }

    .site-header__social-list,
    .site-navigation .site-header__social-list {
        flex-wrap: nowrap;
        gap: var(--space-1);
    }

    .site-header__social a,
    .site-navigation .site-header__social a {
        width: 2.5rem;
        min-height: 2.5rem;
        padding: 0;
        font-size: inherit;
    }

    .drpop-hero__content {
        padding-top: calc(13.3vw - 1.875rem);
    }

    .drpop-hero .drpop-actions {
        margin-top: clamp(2.25rem, calc(2.25vw + 0.8rem), 2.75rem);
    }

    .drpop-question__inner {
        grid-template-columns: minmax(0, 0.8fr) minmax(24rem, 1.2fr);
        column-gap: var(--space-16);
        align-items: start;
    }

    .drpop-question__inner > .drpop-eyebrow,
    .drpop-question__inner > h2,
    .drpop-question__inner > p,
    .drpop-question__inner > .drpop-notice {
        grid-column: 1;
    }

    .drpop-question__inner > .drpop-form {
        grid-column: 2;
        grid-row: 1 / span 5;
        margin-top: 0;
    }
}

@media (min-width: 64rem) and (max-width: 79.99rem) {
    .drpop-hero__image {
        right: calc(41.1vw - 24.4rem);
    }
}

@media (min-width: 80rem) {
    .site-navigation a {
        font-size: 1rem;
    }

    .drpop-hero.wp-block-group {
        --hero-portrait-bottom: calc(3.75rem - 8.33vw);
        --hero-portrait-crop: calc(8.33vw - 3.75rem);
        --hero-portrait-desired-height: clamp(48.75rem, calc(49.05vw + 8.4rem), 67.5rem);
    }

    .drpop-hero__content {
        padding-top: calc(6.72vw + 3.375rem);
        padding-inline-start: clamp(3rem, calc(18.5vw - 5.4rem), 16.8125rem);
    }

    .drpop-hero__brand {
        width: clamp(22.875rem, calc(39vw - 12.5rem), 34.5rem);
        margin-bottom: clamp(1.75rem, 1.875vw, 2.25rem);
    }

    .drpop-hero__keywords {
        font-size: clamp(4.5rem, calc(3.333vw + 1.5rem), 5.5rem);
    }

    .drpop-hero .drpop-actions {
        margin-top: clamp(2.625rem, calc(5vw - 1.5rem), 4.6875rem);
    }

    .drpop-hero .drpop-actions .wp-block-button__link {
        min-height: clamp(3.875rem, calc(5.2vw - 0.75rem), 5.5rem);
        font-size: clamp(1.25rem, calc(1.667vw - 0.25rem), 1.75rem);
    }

    .drpop-hero__image {
        right: calc(9vw + 1.25rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media (forced-colors: active) {
    .drpop-button,
    .wp-block-button__link,
    .drpop-event-card,
    .drpop-radio-card,
    .drpop-form input,
    .drpop-form textarea {
        border: 2px solid ButtonText;
    }
}

.site-header :where(a, button):focus-visible,
.drpop-section--dark :where(a, button, input, select, textarea, summary):focus-visible,
.drpop-question :where(a, button, input, select, textarea, summary):focus-visible {
    outline-color: var(--color-signal);
}

@media print {
    .site-header,
    .site-footer,
    .drpop-question,
    .drpop-newsletter,
    .drpop-event-archive {
        display: none;
    }

    body {
        background: #fff;
        color: #000;
    }

    a {
        color: inherit;
    }
}

/* ==========================================================================
   DR. POP HERO – mobile rollback + reference-based fix
   Removes the artificial clipped safe-zone and keeps the portrait free.
   ========================================================================== */

@media (max-width: 39.99rem) {
    .drpop-hero.wp-block-group {
        --hero-keyword-light: linear-gradient(transparent, transparent);
        --hero-portrait-bottom: -1.25rem;
    }

    .drpop-hero__media {
        inset: 0;
        margin: 0;
        overflow: hidden;
        clip-path: none;
        padding-bottom: env(safe-area-inset-bottom);
    }

    .drpop-hero__content {
        max-width: clamp(15.5rem, 68vw, 18.5rem);
        padding-top: clamp(4.75rem, 7.5svh, 5.75rem);
        padding-inline: 1.25rem 1rem;
        padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
    }

    .drpop-hero__brand {
        width: clamp(12rem, 47vw, 14rem);
        margin-bottom: 1.25rem;
    }

    .drpop-hero__keywords {
        font-size: clamp(2.15rem, 10.2vw, 3rem);
        line-height: 0.94;
        letter-spacing: -0.055em;
        text-wrap: balance;
    }

    .drpop-hero .drpop-actions {
        margin-top: 1.25rem;
    }

    .drpop-hero .drpop-actions .wp-block-button__link {
        min-height: 3.5rem;
        padding: 0.75rem 1.5rem;
        font-size: clamp(1rem, 4.4vw, 1.125rem);
        font-weight: 700;
    }

    .drpop-hero__image {
        left: auto;
        right: clamp(-5.75rem, -18vw, -2.75rem);
        bottom: var(--hero-portrait-bottom);
        height: clamp(
                34.5rem,
                calc(var(--hero-available-height) + 1.75rem),
                41rem
        );
        max-width: none;
    }
}
