/* Contact, legal pages and privacy choices */
.contact-details { margin: 0 0 38px; font-style: normal; font-size: 18px; line-height: 1.7; color: #bbb; }
.contact-details strong { color: #fff; font-weight: 600; }
.contact-details a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
button.contact-button { border: 0; font: inherit; cursor: pointer; }
.footer-links { display: flex; flex-wrap: wrap; gap: 14px 26px; align-items: center; }
.footer-links a, .footer-links button { color: #bbb; font: inherit; letter-spacing: inherit; text-decoration: none; }
.footer-links button { padding: 0; border: 0; background: none; cursor: pointer; }
.footer-links a:hover, .footer-links button:hover { color: #ffae00; }
.privacy-banner { position: fixed; z-index: 2000; right: 24px; bottom: 24px; left: 24px; max-width: 1180px; margin: 0 auto; padding: 26px 30px; background: #fff; color: #111; border: 1px solid #ddd; box-shadow: 0 8px 35px #0003; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px 32px; align-items: center; }
.privacy-banner[hidden] { display: none; }
.privacy-banner h2 { font-size: 20px; line-height: 1.25; margin: 0 0 10px; letter-spacing: -.02em; }
.privacy-banner p { margin: 0; font-size: 14px; line-height: 1.55; color: #444; }
.privacy-banner a { color: #111; text-underline-offset: 3px; }
.privacy-actions { display: flex; gap: 12px; }
.privacy-actions button { min-height: 46px; padding: 12px 17px; border: 1px solid #111; border-radius: 0; background: #fff; color: #111; font: 600 14px Arial, sans-serif; cursor: pointer; white-space: nowrap; }
.privacy-actions button:hover { background: #ffae00; }
.privacy-actions button:focus-visible, .footer-links button:focus-visible, [data-email-reveal]:focus-visible { outline: 3px solid #ffae00; outline-offset: 4px; }
.media-consent-placeholder { display: none; }
.is-media-blocked > iframe { visibility: hidden; }
.is-media-blocked > .media-consent-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; padding: 24px; background: #171717; color: #ddd; text-align: center; z-index: 1; font-size: 15px; }
.media-consent-placeholder p { margin: 0; max-width: 340px; line-height: 1.5; }
.media-consent-placeholder button { border: 1px solid #aaa; background: transparent; color: #fff; font: inherit; padding: 10px 15px; cursor: pointer; }
.media-consent-placeholder button:hover { border-color: #ffae00; color: #ffae00; }
.hero-video.is-media-blocked > .media-consent-placeholder { background: linear-gradient(#0005,#0008), url('images/uploads/20260929-131853-6abb9e9d72cc2938828996-2026-PV-Webvideo-Standbild-Start.jpg') center / cover; }
.hero.is-collapsed .media-consent-placeholder { visibility: hidden; }
.legal-page { background: #faf9f6; color: #222; }
.legal-header { padding: 24px clamp(22px,5vw,70px); border-bottom: 1px solid #ddd; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.legal-header img { width: 200px; max-width: 45vw; height: auto; display: block; }
.legal-header a { color: #222; text-underline-offset: 4px; }
.legal-content { max-width: 880px; margin: 0 auto; padding: 75px 24px 100px; line-height: 1.7; }
.legal-content h1 { font-size: clamp(34px,6vw,58px); letter-spacing: -.04em; line-height: 1.12; margin: 0 0 24px; overflow-wrap: anywhere; }
.legal-content h2 { font-size: 23px; line-height: 1.25; margin-top: 42px; }
.legal-content p, .legal-content li { font-size: 16px; }
.legal-content a { color: #222; text-underline-offset: 4px; }
.legal-content address { font-style: normal; }
.legal-content .contact-button { border: 1px solid #222; margin-top: 14px; }
.legal-date { color: #777; font-size: 13px !important; }
@media (max-width: 900px) {
    .privacy-banner { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .privacy-banner { left: 12px; right: 12px; bottom: 12px; padding: 20px; gap: 18px; max-height: calc(100dvh - 24px); overflow-y: auto; }
    .privacy-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .privacy-actions button { padding: 12px 6px; font-size: 13px; }
    .contact-details { font-size: 17px; }
    .legal-header { font-size: 14px; }
    .legal-content { padding-top: 48px; }
    .footer-links { gap: 18px; }
}

/* Direct, site-wide video consent */
.is-media-blocked > .media-consent-placeholder { gap: 10px; padding: 12px; }
.media-consent-placeholder p { max-width: 410px; }
.media-consent-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; width: 100%; max-width: 410px; }
.media-consent-actions button { flex: 1 1 145px; min-height: 42px; padding: 10px 8px; font-size: 14px; background: rgba(0,0,0,.25); }
.media-consent-placeholder > a { color: #fff; font-size: 12px; text-underline-offset: 3px; }
.media-consent-placeholder button:focus-visible, .media-consent-placeholder > a:focus-visible { outline: 2px solid #ffae00; outline-offset: 3px; }

/* Subtle rounding and matching navigation markers */
.site-menu {
    border-radius: 8px;
    overflow: hidden;
}

.choice {
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 24px;
}

.choice-marker {
    width: 9px;
    height: 12px;
    justify-self: center;
    background: #888;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    transition: transform .2s ease, background-color .2s ease;
}

.choice:hover .choice-marker,
.choice:focus-visible .choice-marker,
.choice.is-active .choice-marker {
    background: #ffae00;
    transform: rotate(90deg);
}

.choice:focus-visible {
    outline: 2px solid #ffae00;
    outline-offset: -2px;
}

.reference-video,
.db-media-carousel-stage,
.db-media-image,
.db-media-empty,
.event-carousel-image,
.training-photo,
#training .training-photo {
    border-radius: 8px;
    overflow: hidden;
}

.privacy-actions button,
.media-consent-placeholder button,
.contact-button,
.medienpro-button {
    border-radius: 6px;
}

@media (max-width: 700px) {
    .choice {
        grid-template-columns: 24px minmax(0, 1fr);
        column-gap: 16px;
    }
}
