.subpage-main { overflow: clip; }
.detail-back-link { display: flex; align-items: center; gap: 0.55rem; padding-block-start: var(--trail-space-before); color: var(--color-text-muted); font-size: 0.8125rem; }
.detail-back-link a { display: inline-flex; align-items: center; gap: 0.45rem; min-block-size: 2.75rem; }
.detail-back-link a:hover { color: var(--color-primary); }
.detail-back-link .icon { inline-size: 0.9rem; transform: rotate(180deg); }
/* Gemeinsame Breadcrumb der öffentlichen Seiten (js/components/breadcrumb.js) */
.site-breadcrumb { padding-block-start: var(--trail-space-before); color: var(--color-text-muted); font-size: 0.8125rem; line-height: 1.4; }
.site-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; }
.site-breadcrumb li { display: flex; align-items: center; min-inline-size: 0; }
.site-breadcrumb a, .site-breadcrumb [aria-current] { display: inline-flex; align-items: center; min-block-size: 2.75rem; overflow-wrap: anywhere; }
.site-breadcrumb a { transition: color var(--transition); }
.site-breadcrumb a:hover { color: var(--color-primary); }
.site-breadcrumb [aria-current] { color: var(--color-text); }
.site-breadcrumb__separator { margin-inline: 0.55rem; color: var(--color-border-dark); opacity: 0.45; }
.site-breadcrumb + :is(.page-hero, .detail-hero, .article-header, .event-detail-header, .job-detail-header, .clubhouse-rental-flow, .legal-hero) { padding-block-start: var(--trail-space-after); }
.site-breadcrumb + .clubhouse-rental-flow > :first-child { margin-block-start: 0; }
.page-hero { padding-block: clamp(3.75rem, 7vw, 7rem) clamp(3.5rem, 6vw, 6rem); }
.page-hero .eyebrow { margin-block-end: 1.25rem; }
.page-hero h1 { max-inline-size: 12ch; font-size: clamp(3.6rem, 7vw, 7rem); line-height: 0.94; }
.page-hero__lead { max-inline-size: 43rem; margin-block-start: 1.75rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.65; }
.page-hero__aside { align-self: end; max-inline-size: 28rem; padding-block: 1.25rem; border-block: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 0.9375rem; }
.page-hero--with-aside { display: grid; grid-template-columns: 1.4fr 0.6fr; align-items: end; gap: clamp(3rem, 8vw, 8rem); }
.page-section { padding-block: var(--section-space); }
.page-section--soft { background: var(--color-surface-soft); }
.page-section__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-block-end: 2.5rem; }
.page-section__heading .eyebrow { margin-block-end: 1rem; }
.page-section__heading p:last-child { max-inline-size: 32rem; color: var(--color-text-muted); }
.page-section__heading h2 { max-inline-size: 15ch; }
.card-label { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.card-label::before { content: ""; inline-size: 0.35rem; block-size: 0.35rem; border-radius: 50%; background: var(--color-accent); }
.page-note { padding: 1rem 1.25rem; border-inline-start: 3px solid var(--color-accent); background: var(--color-surface); color: var(--color-text-muted); font-size: 0.875rem; }

.sport-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.sport-overview-card { min-inline-size: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); transition: transform var(--transition), box-shadow var(--transition); }
.sport-overview-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.sport-overview-card > a { display: grid; grid-template-columns: minmax(13rem, 0.82fr) minmax(0, 1.18fr); block-size: 100%; }
.sport-overview-card .card-media { block-size: 100%; min-block-size: 18rem; aspect-ratio: auto; }
.sport-overview-card__body { display: flex; flex-direction: column; padding: clamp(1.5rem, 2.5vw, 2.2rem); }
.sport-overview-card__meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; }
.sport-overview-card__meta .icon { inline-size: 1rem; block-size: 1rem; }
.sport-overview-card h3 { margin-block-start: 1.25rem; font-size: clamp(1.65rem, 2.4vw, 2.25rem); hyphens: auto; overflow-wrap: break-word; }
.sport-overview-card__description { margin-block-start: 0.9rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.sport-overview-card__audience { margin-block-start: 1.25rem; padding-block-start: 1rem; border-block-start: 1px solid var(--color-border); font-size: 0.8125rem; }
.sport-overview-card__audience span { display: block; margin-block-end: 0.25rem; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.sport-overview-card .text-link { margin-block-start: auto; padding-block-start: 1.25rem; }

.detail-hero { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(3rem, 7vw, 7rem); padding-block: clamp(2.5rem, 5vw, 5rem) var(--section-space); }
/* Feste Spaltenanteile: lange Sportartnamen verkleinern den Titel statt die Bildspalte (und damit die geladene Bildvariante) zu schrumpfen. */
.detail-hero > div:first-child { container-type: inline-size; }
.detail-hero h1 { --detail-title-size: clamp(3.6rem, 6.5vw, 6.7rem); font-size: min(var(--detail-title-size), 100cqi / (var(--title-longest-word, 1) * var(--title-char-width, 0.47))); }
.detail-hero__claim { margin-block-start: 1.5rem; font-size: clamp(1.25rem, 2vw, 1.7rem); font-weight: 600; letter-spacing: -0.03em; }
.detail-hero__intro { max-inline-size: 36rem; margin-block-start: 1rem; color: var(--color-text-muted); font-size: 1rem; }
.detail-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1.75rem; }
.detail-hero__actions .icon { inline-size: 1rem; block-size: 1rem; }
.detail-hero-media { min-inline-size: 0; }
.detail-hero-media .card-media { aspect-ratio: 1.38; border-radius: var(--radius-medium); }
.detail-hero-media .card-media__label { font-size: 0.75rem; }
.detail-hero-media .sport-art { transform: scale(1.05); }
.fact-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.fact-card { padding: 1.6rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.fact-card .icon { inline-size: 1.5rem; block-size: 1.5rem; margin-block-end: 2rem; color: var(--color-primary); }
.fact-card h3 { font-family: var(--font-family); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.fact-card p { margin-block-start: 0.65rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.offer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.offer-card { display: flex; flex-direction: column; padding: 2rem; min-block-size: 18rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.offer-card__number { color: var(--color-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; }
.offer-card h3 { margin-block-start: 2.5rem; font-size: 1.65rem; }
.offer-card p { margin-block-start: 0.8rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.offer-card__time { margin-block-start: auto; padding-block-start: 1.5rem; font-size: 0.8125rem; font-weight: 650; }
.sport-group-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1.25rem; }
.sport-group-card { display: flex; flex-direction: column; min-inline-size: 0; padding: clamp(1.5rem, 2.4vw, 2rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.sport-group-card__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.sport-group-card__number { color: var(--color-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; }
.sport-group-card__status { padding: 0.32rem 0.55rem; border-radius: 999px; background: var(--color-surface-soft); color: var(--color-text-muted); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.sport-group-card h3 { margin-block-start: 1.35rem; font-size: clamp(1.45rem, 2vw, 1.8rem); }
.sport-group-card__description { min-block-size: 2.8em; margin-block-start: 0.65rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.sport-group-card__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block: 1.5rem 0; padding-block-start: 1.35rem; border-block-start: 1px solid var(--color-border); }
.sport-group-card__facts div { min-inline-size: 0; }
.sport-group-card__facts dt { margin-block-end: 0.35rem; color: var(--color-text-muted); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.sport-group-card__facts dd { margin: 0; font-size: 0.875rem; line-height: 1.5; overflow-wrap: anywhere; }
.sport-group-card__facts dd > span:not(.sport-group-card__placeholder) { display: block; }
.sport-group-card__facts a { color: var(--color-text); text-decoration: underline; text-decoration-color: var(--color-border); text-underline-offset: 0.2rem; }
.sport-group-card__facts a:hover { color: var(--color-primary); }
.sport-group-card__facts a small { display: block; margin-block-start: 0.15rem; color: var(--color-text-muted); font-size: 0.75rem; }
.sport-group-card__placeholder { color: var(--color-text-muted); font-style: italic; }
.sport-group-card__notes { display: grid; gap: 0.65rem; margin-block-start: auto; padding: 1rem 0 0; border-block-start: 1px solid var(--color-border); list-style: none; }
.sport-group-card__notes li { display: grid; grid-template-columns: auto 1fr; gap: 0.6rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.sport-group-card__notes strong { color: var(--color-text); }
.sport-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.sport-contact-grid:has(> :only-child) { grid-template-columns: minmax(0, 42rem); }
.sport-group-card__facts .sport-group-card__fact--wide { grid-column: 1 / -1; }
.sport-group-card__hint { color: var(--color-text-muted); font-size: 0.6875rem; white-space: nowrap; }
.sport-group-card__options-label { margin: 0 0 0.6rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.sport-group-card__option-list { margin: 0; padding: 0; list-style: none; }
.sport-group-card__option-body { display: grid; gap: 0.05rem; }
.sport-group-card__option-body p { margin: 0; }
.sport-group-card__option-time { font-size: 0.9375rem; }
.sport-group-card__option-time strong { font-weight: 650; }
.sport-group-card__option-person { color: var(--color-text-muted); font-size: 0.8125rem; }
.sport-group-card__facts .sport-group-card__option-person > span { display: inline; }
.sport-group-card__option-person > span:not(.sport-group-card__option-label) + .sport-group-card__phone::before { content: " · "; }
.sport-group-card__option-person > .sport-group-card__phone { white-space: nowrap; }
.sport-group-card__facts .sport-group-card__option-person > .sport-group-card__email { display: block; }
.sport-group-card__option-label { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Alternativ-Trenner: bewusst leise, nur kleines "oder" ohne Linie. */
.sport-group-card__or { display: block; margin-block: 0.3rem 0.25rem; color: var(--color-text-muted); font-size: 0.75rem; font-style: italic; line-height: 1.2; }
/* Benannter Zusatztermin (z. B. gemeinsames Jugendtraining): gleiche Stelle wie der Trenner, aber als kleines Label. */
.sport-group-card__or--label { margin-block-start: 0.75rem; font-style: normal; font-weight: 650; }
.sport-group-card__option-place { color: var(--color-text-muted); font-size: 0.8125rem; }
/* Übersichts-Grid (Kindersport): feste 3/2/1 Spalten, redaktionell ruhige Cards mit nur einer Linie. */
.sport-group-grid--overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sport-group-grid--overview .sport-group-card { padding: clamp(1.35rem, 2vw, 1.75rem); }
.sport-group-grid--overview .sport-group-card h3 { margin-block-start: 0.6rem; }
.sport-group-grid--overview .sport-group-card__description { min-block-size: 0; margin-block-start: 0.4rem; color: var(--color-text-muted); font-size: 0.875rem; line-height: 1.55; }
.sport-group-grid--overview .sport-group-card__facts { gap: 1.1rem 1rem; margin-block-start: 1rem; padding-block-start: 1rem; }
.sport-group-grid--overview .sport-group-card__facts dt { margin-block-end: 0.15rem; font-size: 0.625rem; font-weight: 650; }
.sport-group-grid--overview .sport-group-card__facts dd { line-height: 1.45; }
.sport-group-grid--overview .sport-group-card__fact--wide dt { margin-block-end: 0.35rem; }
.sport-group-grid--overview .sport-group-card__facts a { color: inherit; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 0.2rem; border-block-end: 1px dotted var(--color-border-dark); transition: color 0.15s, text-decoration-color 0.15s, border-color 0.15s; }
.sport-group-grid--overview .sport-group-card__facts a:is(:hover, :focus-visible) { color: var(--color-primary); text-decoration-color: currentColor; border-block-end-color: transparent; }
.sport-group-grid--overview .sport-group-card__notes { gap: 0.2rem; margin-block-start: 1.1rem; padding: 0; border: 0; }
.sport-group-grid--overview .sport-group-card__notes li { display: block; font-size: 0.8125rem; line-height: 1.45; }
.sport-group-grid--overview .sport-group-card__notes strong { font-weight: 650; }
.sport-group-grid--overview .sport-group-card__notes strong + span::before { content: " · "; }
/* Spalten nach Anzahl (je Sektion): 1 = breite Einzelcard, 2 und 4 = zwei Spalten (4 bewusst 2 × 2), 3 und mehr = drei Spalten. */
.sport-offer-grid--1 { grid-template-columns: minmax(0, 42rem); }
.sport-offer-grid--2, .sport-offer-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sport-group-card__description { white-space: pre-line; }
.sport-offer-qualifier { color: var(--color-text-muted); font-size: 0.8125rem; }
.sport-group-card__option-time .sport-offer-qualifier { color: var(--color-text); font-size: inherit; font-weight: 650; }
.sport-offer-fee dd strong { font-size: 0.9375rem; font-weight: 700; }
.sport-offer-card__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: auto; padding-block-start: 1.25rem; }
.sport-offer-card__actions .sport-group-card__link { margin-block-start: 0; }
.sport-offers-error { display: grid; justify-items: start; gap: 1rem; }
/* Externer Bereichslink (z. B. Handball): sitzt unten in der Card, damit beide CTAs auf einer Linie stehen. */
.sport-group-card__link { align-self: flex-start; margin-block-start: auto; }
.sport-group-card__description:has(+ .sport-group-card__link) { margin-block-end: 1.5rem; }
.sport-about__contact .contact-card__details a { overflow-wrap: anywhere; }
@media (max-width: 1000px) { .sport-group-grid--overview.sport-offer-grid--3, .sport-group-grid--overview.sport-offer-grid--many { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .sport-group-grid--overview, .sport-group-grid--overview.sport-offer-grid { grid-template-columns: 1fr; }
  .sport-group-card__link { align-self: stretch; }
  .sport-group-grid--overview .sport-group-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sport-about { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 6vw, 6rem); }
.sport-about__text h2 { margin-block-end: 1.25rem; }
.sport-about__text p:not(.eyebrow) { max-inline-size: 38rem; color: var(--color-text-muted); }
.sport-about__text p:not(.eyebrow) + p { margin-block-start: 1rem; }
.sport-about__contact .sport-contact-grid { grid-template-columns: minmax(0, 1fr); }
.sport-about__contact > .eyebrow { margin-block-end: 1rem; }
@media (max-width: 800px) { .sport-about { grid-template-columns: 1fr; } }
/* Viele breite Buchstaben (m, w, k): größere Zeichenbreite, damit das Wort einzeilig bleibt; Umbruch nur als Notfall. */
[data-sport-id="wettkampfgymnastik"] .detail-hero h1 { --title-char-width: 0.54; hyphens: auto; overflow-wrap: anywhere; }
.prose-layout { display: grid; grid-template-columns: 0.65fr 1.35fr; gap: clamp(3rem, 8vw, 8rem); }
.prose-layout__marker { color: var(--color-primary); font-family: var(--font-display); font-size: 5rem; line-height: 0.8; }
.prose { max-inline-size: 48rem; }
.prose h2, .prose h3 { margin-block: 2.2rem 1rem; }
.prose h2:first-child { margin-block-start: 0; }
.prose p { color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.8; }
.prose p + p { margin-block-start: 1.25rem; }
.contact-cta { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; overflow: hidden; padding: clamp(2rem, 5vw, 4.5rem); border-radius: var(--radius-medium); background: var(--color-surface-dark); color: var(--color-text-inverse); }
.contact-cta::after { content: ""; position: absolute; inset-block-start: -9rem; inset-inline-end: 7%; inline-size: 22rem; block-size: 22rem; border: 1px solid var(--color-border-dark); border-radius: 50%; }
.contact-cta .eyebrow { margin-block-end: 1rem; }
.contact-cta .eyebrow::before { background: var(--color-accent); }
.contact-cta h2 { font-size: clamp(2.25rem, 4vw, 4rem); }
.contact-cta p { margin-block-start: 1rem; color: var(--color-text-on-dark-muted); }
.contact-cta__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.contact-cta .button--outline { border-color: var(--color-border-dark); }
.contact-cta .button--outline:hover { color: var(--color-text); }

.department-section { padding-block: clamp(3.75rem, 6.5vw, 6rem); }
.department-news-grid .card-media { aspect-ratio: 2.05; }
.department-news-grid .card-media__label { font-size: 0.6rem; }
.department-events-list { max-inline-size: 68rem; }
#intern, #department-members-title { scroll-margin-top: calc(var(--header-height) + 1rem); }
.member-section-heading h2 { overflow-wrap: anywhere; }
.department-member-panel { overflow: hidden; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--color-border); border-block-start: 4px solid var(--color-primary); border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.department-member-panel--expired { border-block-start-color: var(--color-accent); }
.department-member-panel--expired .member-access-note__icon { background: var(--color-sport-sand); }
.member-content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.member-content-card { min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.member-content-card__icon { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; margin-block-end: 1.5rem; border-radius: 50%; background: var(--color-sport-rose); color: var(--color-primary); }
.member-content-card__icon .icon { inline-size: 1.2rem; block-size: 1.2rem; }
.member-content-card > h3 { font-family: var(--font-family); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
.member-message, .member-event { margin-block-start: 1.25rem; padding-block-start: 1.25rem; border-block-start: 1px solid var(--color-border); }
.member-message time, .member-event time { color: var(--color-primary); font-size: 0.75rem; font-weight: 700; }
.member-message h4, .member-event h4 { margin-block-start: 0.55rem; font-size: 1.25rem; }
.member-message p, .member-event p { margin-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.875rem; }
.member-event p { display: flex; align-items: center; gap: 0.35rem; }
.member-event p .icon { inline-size: 0.9rem; block-size: 0.9rem; }
.member-document-list { margin-block-start: 1.25rem; border-block-start: 1px solid var(--color-border); }
.member-document-list a { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) 1rem; align-items: center; gap: 0.75rem; padding-block: 1rem; border-block-end: 1px solid var(--color-border); }
.member-document-list a:hover strong { color: var(--color-primary); }
.member-document-list a > span:first-child { color: var(--color-primary); }
.member-document-list a > .icon { inline-size: 1rem; }
.member-document-list strong, .member-document-list small { display: block; }
.member-document-list strong { font-size: 0.9375rem; }
.member-document-list small { margin-block-start: 0.25rem; color: var(--color-text-muted); font-size: 0.75rem; }
.member-access-note { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; }
.member-access-note__icon { display: grid; place-items: center; inline-size: 3.5rem; block-size: 3.5rem; border-radius: 50%; background: var(--color-background); color: var(--color-primary); }
.member-access-note__icon .icon { inline-size: 1.4rem; block-size: 1.4rem; }
.member-kicker { overflow-wrap: anywhere; color: var(--color-primary); font-size: 0.75rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.member-access-note h2 { max-inline-size: 21ch; margin-block-start: 0.5rem; overflow-wrap: anywhere; font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.member-access-note h2 + p { max-inline-size: 50rem; margin-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.875rem; }
.member-access-note__actions { display: flex; flex-direction: column; align-items: stretch; gap: 0.6rem; min-inline-size: 12rem; }
.member-access-note__actions small { max-inline-size: 17rem; color: var(--color-text-muted); font-size: 0.75rem; line-height: 1.5; }

.category-list { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-block-end: 2rem; }
.category-list button { padding: 0.6rem 0.9rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: transparent; color: var(--color-text-muted); font-size: 0.875rem; font-weight: 650; }
.category-list button:hover { border-color: var(--color-text); color: var(--color-text); }
.category-list button[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-text-inverse); }
.featured-news { display: grid; grid-template-columns: 1.15fr 0.85fr; overflow: hidden; border-radius: var(--radius-medium); background: var(--color-surface); }
.featured-news .card-media { block-size: 100%; aspect-ratio: auto; min-block-size: 31rem; }
.featured-news__body { display: flex; flex-direction: column; justify-content: center; align-items: start; padding: clamp(2rem, 5vw, 4.5rem); }
.news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 1.5rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.news-meta__category, .news-meta .content-meta__category { color: var(--color-primary); font-weight: 700; }
.featured-news h2 { margin-block-start: 1.25rem; font-size: clamp(2.15rem, 3.8vw, 3.6rem); }
.featured-news__body > p { margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: 1rem; }
.featured-news .text-link { margin-block-start: 2rem; }
.news-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem 1.5rem; }
.news-overview-card > a { display: flex; flex-direction: column; block-size: 100%; }
.news-overview-card .card-media { border-radius: var(--radius-medium); }
.news-overview-card .news-meta { margin-block: 1.2rem 0.8rem; }
.news-overview-card h3 { font-size: 1.6rem; }
/* Aktuelles-Seite: Featured-Beitrag + Raster; mobil eine durchgehende Liste */
.news-archive-list__title { margin-block-end: var(--space-6); font-size: clamp(1.6rem, 2.2vw, 2.1rem); }
.news-archive-list:has(.news-overview-grid:empty) { display: none; }
/* Gemeinsamer Card-Unterbau für Featured- und Rasterbeiträge */
:is(.news-archive-featured .featured-news, .news-archive-list .news-overview-card) { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.news-archive-list .news-overview-grid { gap: var(--space-5); }
.news-archive-list .news-overview-card > a { padding-block-end: var(--space-4); }
.news-archive-list .news-overview-card > a > :not(.card-media) { margin-inline: var(--space-5); }
.news-archive-list .news-overview-card .card-media { border-radius: 0; }
.news-archive-list .news-overview-card .news-meta { margin-block-start: var(--space-5); }
.news-archive-more { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); margin-block-start: var(--space-7); }
.news-archive-more[hidden] { display: none; }
.news-archive-more .button[aria-busy="true"] { cursor: progress; opacity: 0.7; transform: none; }
.news-archive-more .form-error { min-block-size: 0; margin-block-start: 0; text-align: center; }
.news-overview-card p { margin-block: 0.8rem 1rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.news-overview-card .text-link { margin-block-start: auto; justify-content: start; }

.article-header { max-inline-size: 66rem; margin-inline: auto; padding-block: clamp(3rem, 6vw, 6rem) 3rem; text-align: center; }
.article-header .news-meta { justify-content: center; }
.article-header h1 { margin-block-start: 1.25rem; font-size: clamp(3.2rem, 6.4vw, 6.2rem); }
.article-lead { max-inline-size: 48rem; margin: 1.5rem auto 0; color: var(--color-text-muted); font-size: clamp(1.1rem, 1.7vw, 1.35rem); line-height: 1.7; }
.article-hero-media { max-inline-size: 75rem; margin-inline: auto; }
.article-hero-media .card-media { aspect-ratio: 2.05; border-radius: var(--radius-medium); }
.article-content { max-inline-size: 48rem; margin-inline: auto; padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.article-content > p { color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.85; }
.article-content > p + p { margin-block-start: 1.4rem; }
.article-content h2 { margin-block: 3rem 1.25rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.article-content ul, .article-content ol { margin-block: 1.5rem; padding-inline-start: 1.4rem; }
.article-content ul { list-style: disc; }
.article-content ol { list-style: decimal; }
.article-content li { margin-block: 0.7rem; color: var(--color-text-muted); font-size: 1rem; }
.article-quote { margin-block: 3rem; padding: 2rem clamp(1.5rem, 4vw, 3rem); border-inline-start: 4px solid var(--color-accent); background: var(--color-surface-soft); font-family: var(--font-display); font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 700; line-height: 1.35; letter-spacing: -0.035em; }
.article-resource { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-block-start: 3rem; padding: 1.25rem 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); }
.article-resource p { color: var(--color-text-muted); font-size: 0.875rem; }
.article-resource .icon { color: var(--color-primary); }
/* Beitrag mit Flyer oder anderem Hochformatbild: ungeschnitten neben dem Text. */
/* Text and flyer share the full container width (logo to menu, like the
   other pages) 3 : 2. No hero image above: the text starts close to the header. */
.article-content--with-poster { display: grid; grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr); justify-content: center; align-items: start; gap: clamp(2.5rem, 5vw, 4.5rem); max-inline-size: none; padding-block-start: clamp(0.5rem, 1.5vw, 1.25rem); }
.article-content--with-poster .article-poster { position: sticky; inset-block-start: calc(var(--header-height) + var(--space-5)); }
/* Wann & wo: Termine eines Beitrags mit den Daten der Termine selbst. */
/* Same card as the opening hours of the clubhouse: an inset accent bar
   instead of a border that would follow the rounded corners. */
.event-schedule { position: relative; overflow: hidden; margin-block-end: clamp(2.25rem, 4vw, 3rem); padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: color-mix(in srgb, var(--color-surface) 76%, var(--color-sport-sand)); box-shadow: 0 8px 24px var(--color-shadow); }
.event-schedule::before { content: ""; position: absolute; inset-block: 1.4rem; inset-inline-start: 0; inline-size: 0.2rem; border-radius: 0 var(--radius-pill) var(--radius-pill) 0; background: var(--color-primary); }
.article-content .article-published, .article-published { margin-block-start: 2.5rem; padding-block-start: 1rem; border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 0.875rem; }
.article-content .event-schedule__title, .event-schedule__title { margin: 0; color: var(--color-primary); font-family: var(--font-family); font-size: 0.8125rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; }
.article-content .event-schedule ul, .event-schedule ul { display: grid; gap: 1.25rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.article-content .event-schedule__item, .event-schedule__item { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); align-items: start; gap: 1.25rem; margin: 0; color: var(--color-text); font-size: 1rem; }
.event-schedule__item + .event-schedule__item { padding-block-start: 1.25rem; border-block-start: 1px solid var(--color-border); }
.event-schedule .event-overview-date { min-block-size: 4rem; }
.event-schedule .event-overview-date strong { font-size: 2.15rem; }
.event-schedule__date { color: var(--color-text); font-size: 1.125rem; font-weight: 700; line-height: 1.35; }
.event-schedule__facts { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; margin-block-start: 0.45rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.event-schedule__facts span { display: inline-flex; align-items: center; gap: 0.4rem; }
.event-schedule__facts .icon { inline-size: 1rem; block-size: 1rem; color: var(--color-primary); }
.event-schedule__cancelled { margin-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.875rem; }
.event-schedule__item.is-past .event-overview-date, .event-schedule__item.is-past .event-schedule__date { color: var(--color-text-muted); }
.event-schedule__item.is-cancelled .event-schedule__date { text-decoration: line-through; }
.event-calendar-link { justify-content: start; gap: 0.5rem; min-block-size: 2.25rem; }
.event-calendar-link .icon { inline-size: 1rem; block-size: 1rem; color: var(--color-primary); }
.event-schedule .event-calendar-link { margin-block-start: 0.35rem; }


@media (max-width: 900px) {
  /* Flyer zuerst, in Bildschirmhöhe begrenzt, danach Termine und Text. */
  .article-content--with-poster { grid-template-columns: minmax(0, 1fr); max-inline-size: 48rem; }
  .article-content--with-poster .article-poster { position: static; grid-row: 1; justify-self: center; inline-size: 100%; max-inline-size: 26rem; }
  .article-poster img { max-block-size: 75vh; object-fit: contain; }
}
@media (max-width: 600px) {
  .event-schedule__item, .article-content .event-schedule__item { grid-template-columns: 3.5rem minmax(0, 1fr); gap: 0.9rem; }
  .event-schedule .event-overview-date strong { font-size: 1.85rem; }
  .event-schedule__date { font-size: 1rem; }
  .event-schedule__facts { flex-direction: column; gap: 0.25rem; font-size: 0.875rem; }
}
@media (max-width: 1000px) {
  .sport-overview-card > a { grid-template-columns: 1fr; }
  .sport-overview-card .card-media { min-block-size: 13rem; aspect-ratio: 2; }
  .fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .department-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-content-card:last-child { grid-column: 1 / -1; }
  .featured-news { grid-template-columns: 1fr 1fr; }
  .news-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .page-hero--with-aside, .detail-hero, .prose-layout { grid-template-columns: 1fr; }
  .page-hero__aside { max-inline-size: 36rem; }
  .detail-hero { gap: 2.5rem; }
  .detail-hero-media .card-media { aspect-ratio: 1.75; }
  .offer-grid { grid-template-columns: 1fr; }
  .offer-card { min-block-size: 0; }
  .prose-layout__marker { display: none; }
  .contact-cta { grid-template-columns: 1fr; }
  .contact-cta::after { inset-inline-end: -8rem; }
  .member-access-note { grid-template-columns: 1fr; align-items: start; }
  .member-content-grid { grid-template-columns: 1fr; }
  .member-content-card:last-child { grid-column: auto; }
  .member-access-note__actions { align-items: start; min-inline-size: 0; }
  .featured-news { grid-template-columns: 1fr; }
  .featured-news .card-media { min-block-size: 0; aspect-ratio: 1.65; }
}
@media (max-width: 767px) {
  .news-archive-featured:has(+ .news-archive-list .news-overview-grid:not(:empty)) { padding-block-end: 0; }
  .news-archive-list { padding-block-start: var(--space-5); background: var(--color-surface-soft); }
  .news-archive-list__title { position: absolute; inline-size: 1px; block-size: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .news-archive-list .news-overview-grid { grid-template-columns: 1fr; }
  .news-archive-more { margin-block-start: var(--space-5); }
  .news-archive-more .button { inline-size: 100%; }
  .news-archive-featured .featured-news__body { padding: var(--space-5) var(--space-5) var(--space-4); }
  .news-archive-featured .featured-news h2 { font-size: clamp(1.9rem, 8vw, 2.15rem); }
  .news-archive-featured .featured-news .text-link { margin-block-start: var(--space-4); }
}
@media (max-width: 600px) {
  .page-hero { padding-block: 2.75rem 3.25rem; }
  .page-hero h1 { font-size: clamp(3.25rem, 15vw, 4.8rem); }
  .page-hero__lead { font-size: 1rem; }
  .page-section__heading { align-items: start; flex-direction: column; gap: 1rem; margin-block-end: 2rem; }
  .sport-overview-grid, .news-overview-grid { grid-template-columns: 1fr; }
  .sport-group-grid { grid-template-columns: 1fr; }
  .sport-overview-card .card-media { aspect-ratio: 1.9; }
  .detail-hero h1 { --detail-title-size: clamp(3rem, 14vw, 4.4rem); }
  .detail-hero__actions { align-items: stretch; flex-direction: column; }
  .department-news-grid { grid-template-columns: 1fr; }
  .sport-contact-grid { grid-template-columns: 1fr; }
  .department-member-panel { padding: 1.25rem; }
  .member-access-note { gap: 1rem; }
  .member-access-note__actions, .member-access-note__actions .button { inline-size: 100%; }
  .fact-grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .fact-card { padding: 1.25rem 1rem; }
  .fact-card .icon { margin-block-end: 1.5rem; }
  .fact-card p { font-size: 0.875rem; }
  .sport-group-card__facts { grid-template-columns: 1fr; }
  .sport-group-card__description { min-block-size: 0; }
  .sport-group-card__header { align-items: flex-start; }
  .contact-cta__actions { align-items: stretch; flex-direction: column; }
  .featured-news__body { padding: 1.75rem 1.5rem; }
  .news-overview-grid { gap-block: 2.5rem; }
  .article-header { text-align: start; padding-block: 2.75rem 2rem; }
  .article-header .news-meta { justify-content: flex-start; }
  .article-header h1 { font-size: clamp(3rem, 13vw, 4.5rem); }
  .article-hero-media .card-media { aspect-ratio: 1.35; border-radius: var(--radius-medium); }
  .article-content { padding-block: 3rem; }
  .article-resource { align-items: start; flex-direction: column; }
}

/* Termine und Downloads */
.filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-block-end: 2.5rem; }
.filter-buttons { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.filter-buttons button { min-block-size: 2.75rem; padding: 0.55rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-background); color: var(--color-text-muted); font-size: 0.875rem; font-weight: 650; transition: border-color var(--transition), background var(--transition), color var(--transition); }
.filter-buttons button:hover { border-color: var(--color-text); color: var(--color-text); }
.filter-buttons button[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-surface); }
.filter-status { flex-shrink: 0; color: var(--color-text-muted); font-size: 0.8125rem; }
.events-overview { display: grid; gap: clamp(3rem, 6vw, 5rem); }
.event-month > h3, .download-group > h3 { margin-block-end: 1.25rem; color: var(--color-primary); font-family: var(--font-family); font-size: 0.8125rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; }
.event-month > div { border-block-start: 1px solid var(--color-border); }
.event-overview-card { border-block-end: 1px solid var(--color-border); }
.event-overview-card > a, .event-mini-card > a { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) 2.75rem; align-items: center; gap: clamp(1.25rem, 3vw, 2.5rem); padding: 1.5rem 1rem; transition: background var(--transition); }
.event-overview-card > a:hover, .event-mini-card > a:hover { background: var(--color-background); }
.event-overview-date { display: flex; flex-direction: column; align-items: center; justify-content: center; min-block-size: 5rem; padding-inline-end: 1rem; border-inline-end: 1px solid var(--color-border); line-height: 1; }
.event-overview-date strong { font-family: var(--font-display); font-size: 2.75rem; font-weight: 500; letter-spacing: -0.06em; }
.event-overview-date span { margin-block-start: 0.5rem; color: var(--color-primary); font-size: 0.75rem; font-weight: 750; letter-spacing: 0.1em; }
.event-overview-card__body { min-inline-size: 0; }
.event-overview-card__meta { display: flex; flex-wrap: wrap; gap: 0.35rem 1.5rem; color: var(--color-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.event-overview-card__meta .content-meta__department { color: var(--color-text-muted); }
.event-overview-card h4, .event-mini-card h3 { margin: 0.45rem 0 0; overflow-wrap: anywhere; font-family: var(--font-display); font-size: clamp(1.35rem, 2.2vw, 1.9rem); line-height: 1.1; letter-spacing: -0.035em; }
.event-overview-card__body > p { max-inline-size: 54rem; margin-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.event-overview-card__facts { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; margin-block-start: 0.8rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.event-overview-card__facts span { display: inline-flex; align-items: center; gap: 0.35rem; }
.event-overview-card__facts .icon { inline-size: 0.9rem; block-size: 0.9rem; color: var(--color-primary); }
.event-overview-card__arrow { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border: 1px solid var(--color-border); border-radius: 50%; transition: background var(--transition), border-color var(--transition), color var(--transition); }
.event-overview-card__arrow .icon { inline-size: 1rem; }
.event-overview-card a:hover .event-overview-card__arrow, .event-mini-card a:hover .event-overview-card__arrow { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-surface); }
.event-mini-card { border-block-start: 1px solid var(--color-border); }
.event-mini-card > a { grid-template-columns: 4.5rem minmax(0, 1fr) 2.75rem; padding-block: 1.25rem; }
.event-mini-card .event-overview-date { min-block-size: 4rem; }
.event-mini-card .event-overview-date strong { font-size: 2.15rem; }

/* Every block of the event page starts at the container edge (logo to menu);
   only the text measure is limited inside the blocks. */
.event-detail-header { padding-block: clamp(2.5rem, 5vw, 5rem) clamp(3rem, 6vw, 5.5rem); }
.event-detail-header__meta { display: flex; flex-wrap: wrap; gap: 0.65rem 1.25rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.event-detail-header__meta span { color: var(--color-primary); font-weight: 750; text-transform: uppercase; }
.event-detail-header h1 { max-inline-size: 12ch; margin-block-start: 1.25rem; font-size: clamp(3.6rem, 7vw, 7rem); }
.event-detail-header .article-lead { margin-inline: 0; }
.event-fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; inline-size: 100%; margin: 0; }
.event-fact-grid > div { min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.event-fact-grid .icon { margin-block-end: 1.75rem; color: var(--color-primary); }
.event-fact-grid dt { font-size: 0.75rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.event-fact-grid dd { margin: 0.6rem 0 0; overflow-wrap: anywhere; color: var(--color-text-muted); font-size: 0.9375rem; }
.event-detail-body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr); gap: clamp(3rem, 8vw, 8rem); }
.event-detail-body--single { display: block; }
.event-detail-body--single > div { max-inline-size: 58rem; }
.event-detail-body h2 { margin-block-start: 1rem; }
.event-detail-description { margin-block-start: 2rem; }
.event-detail-body > div > p:not(.eyebrow) { margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.8; }
#event-resources { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 2rem; }
.related-events { border-block-end: 1px solid var(--color-border); }
/* Termin mit Bild oder Flyer: ungeschnitten neben der Beschreibung. */
/* Same split as a news item with flyer. */
.event-detail-body--with-media { grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr); align-items: start; gap: clamp(2.5rem, 5vw, 4.5rem); }
.event-detail-media { position: sticky; inset-block-start: calc(var(--header-height) + var(--space-5)); }
.event-overview-card.has-thumb > a { grid-template-columns: 5.5rem minmax(0, 1fr) 5rem 2.75rem; }
.event-mini-card.has-thumb > a { grid-template-columns: 4.5rem minmax(0, 1fr) 4.5rem 2.75rem; }
.event-overview-card .event-thumb { inline-size: 5rem; }
/* Beiträge zu einem Termin, z. B. Ankündigung oder Bericht. */
.event-news { margin-block-start: 2.5rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--color-border); }
.event-news h2 { font-size: 1.5rem; }
.event-news-card { margin-block-start: 1rem; }
.event-news-card > a { display: grid; grid-template-columns: 9rem minmax(0, 1fr); align-items: center; gap: 1.25rem; padding: 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); transition: border-color var(--transition); }
.event-news-card > a:hover { border-color: var(--color-primary); }
.event-news-card .card-media { aspect-ratio: 1.4; border-radius: var(--radius-small); }
.event-news-card h3 { font-size: 1.15rem; line-height: 1.25; }
.event-news-card p { display: -webkit-box; margin-block-start: 0.35rem; overflow: hidden; color: var(--color-text-muted); font-size: 0.875rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.event-news-card .text-link { justify-content: start; min-block-size: 2.25rem; font-size: 0.8125rem; }

.download-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.download-highlight { display: flex; flex-direction: column; min-inline-size: 0; min-block-size: 20rem; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); transition: border-color var(--transition), transform var(--transition); }
.download-highlight > span, .download-card__category { color: var(--color-primary); font-size: 0.75rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.download-highlight h3 { margin-block-start: 1.5rem; overflow-wrap: anywhere; font-size: clamp(1.6rem, 2.7vw, 2.25rem); }
.download-highlight > p { margin-block-start: 0.8rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.download-highlight > div, .download-card__meta { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; margin-block-start: auto; padding-block-start: 1.5rem; color: var(--color-text-muted); font-size: 0.75rem; }
.download-highlight .text-link { justify-content: space-between; margin-block-start: 0.75rem; padding-block-start: 0.75rem; border-block-start: 1px solid var(--color-border); }
.downloads-overview { display: grid; gap: clamp(3rem, 6vw, 5rem); margin-block-start: 2.5rem; }
.download-group > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.download-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1.5rem; min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); transition: border-color var(--transition), transform var(--transition); }
.download-highlight:hover, .download-highlight:focus-within, .download-card:hover, .download-card:focus-within { border-color: var(--color-primary); transform: translateY(-2px); }
.download-card h4 { margin: 0.65rem 0 0; overflow-wrap: anywhere; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.1; letter-spacing: -0.035em; }
.download-card p { margin-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.875rem; }
.download-card > div:first-child { display: flex; flex-direction: column; align-self: stretch; }
.download-card__meta { margin-block-start: auto; padding: 1.25rem 0 0; }
.download-card .button { align-self: end; }
.download-card--group { grid-column: 1 / -1; }
.download-card__documents { grid-column: 1 / -1; margin-block-start: 0; }
.download-highlights--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.download-highlights--four .download-highlight h3 { font-size: clamp(1.4rem, 2vw, 1.85rem); }

@media (max-width: 900px) {
  .event-fact-grid, .download-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .download-highlights--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .download-highlight:last-child:nth-child(odd) { grid-column: 1 / -1; min-block-size: 15rem; }
  .download-group > div { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .filter-bar { align-items: flex-start; flex-direction: column; margin-block-end: 2rem; }
  .filter-status { flex-shrink: 1; }
  .event-overview-card > a, .event-mini-card > a { grid-template-columns: 4rem minmax(0, 1fr); gap: 1rem; padding-inline: 0; }
  .event-overview-date { min-block-size: 4.5rem; padding-inline-end: 0.75rem; }
  .event-overview-date strong { font-size: 2.2rem; }
  .event-overview-card__arrow { display: none; }
  .event-overview-card__facts { align-items: flex-start; flex-direction: column; gap: 0.25rem; }
  .event-detail-body { grid-template-columns: 1fr; }
  .event-overview-card.has-thumb > a, .event-mini-card.has-thumb > a { grid-template-columns: 4rem minmax(0, 1fr) 3.75rem; }
  .event-overview-card .event-thumb { inline-size: 3.75rem; }
  /* Bild zuerst, in Bildschirmhöhe begrenzt, danach die Beschreibung. */
  .event-detail-body--with-media { grid-template-columns: 1fr; }
  .event-detail-media { position: static; grid-row: 1; justify-self: center; inline-size: 100%; max-inline-size: 26rem; }
  .event-detail-media img { max-block-size: 75vh; object-fit: contain; }
  .event-news-card > a { grid-template-columns: 6rem minmax(0, 1fr); gap: 0.9rem; }
  .event-news-card p { display: none; }
}
@media (max-width: 600px) {
  .filter-buttons { gap: 0.45rem; }
  .filter-buttons button { padding-inline: 0.8rem; font-size: 0.8125rem; }
  .event-month > h3, .download-group > h3 { margin-block-end: 0.75rem; }
  .event-overview-card h4, .event-mini-card h3 { font-size: 1.25rem; }
  .event-overview-card__body > p { font-size: 0.875rem; }
  .event-detail-header { padding-block: 2.75rem 3.25rem; }
  .event-detail-header h1 { font-size: clamp(3.1rem, 14vw, 4.6rem); }
  .event-fact-grid, .download-highlights, .download-highlights--four { grid-template-columns: 1fr; }
  .event-fact-grid > div { padding: 1.25rem; }
  .event-fact-grid .icon { margin-block-end: 1.25rem; }
  .download-highlight, .download-highlight:last-child:nth-child(odd) { grid-column: auto; min-block-size: 0; }
  .download-card { grid-template-columns: 1fr; align-items: start; }
  .download-card .button { inline-size: 100%; }
}

/* Stellen */
.jobs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.job-card { display: flex; flex-direction: column; min-inline-size: 0; min-block-size: 30rem; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.job-card__top { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.job-label { display: inline-flex; align-items: center; min-block-size: 2rem; padding: 0.35rem 0.75rem; border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-surface); font-size: 0.75rem; font-weight: 750; letter-spacing: 0.09em; text-transform: uppercase; }
.job-card__number { color: var(--color-text-muted); font-family: var(--font-display); font-size: 0.8125rem; }
.job-card__type { margin-block-start: 2.25rem; color: var(--color-primary); font-size: 0.8125rem; font-weight: 700; }
.job-card h2 { margin-block-start: 0.75rem; font-size: clamp(1.85rem, 3vw, 2.7rem); }
.job-card__teaser { margin-block-start: 1.25rem; color: var(--color-text-muted); }
.job-card__facts { display: grid; gap: 0.8rem; margin-block: 2rem 1.25rem; padding-block: 1.25rem; border-block: 1px solid var(--color-border); }
.job-card__facts div { display: grid; grid-template-columns: 5rem 1fr; gap: 0.75rem; }
.job-card__facts dt { color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.job-card__facts dd { margin: 0; font-size: 0.875rem; font-weight: 600; }
.job-card .text-link { align-self: stretch; margin-block-start: auto; }
.job-detail-header { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); padding-block: clamp(3rem, 6vw, 6rem); }
.job-detail-header h1 { max-inline-size: 12ch; margin-block-start: 1.5rem; font-size: clamp(3.6rem, 7vw, 7rem); line-height: 0.94; }
.job-detail-header .article-lead { margin-inline: 0; }
.job-detail-mark { position: relative; display: flex; flex-direction: column; justify-content: center; min-block-size: 23rem; overflow: hidden; padding: 2.5rem; border-radius: var(--radius-medium); background: var(--color-surface-dark); color: var(--color-text-inverse); font-family: var(--font-display); font-size: clamp(2rem, 3.7vw, 3.7rem); font-weight: 700; line-height: 0.95; letter-spacing: -0.05em; transform: rotate(1.5deg); }
.job-detail-mark::before, .job-detail-mark::after { content: ""; position: absolute; inline-size: 17rem; block-size: 17rem; border: 1px solid var(--color-border-dark); border-radius: 50%; }
.job-detail-mark::before { inset-block-start: -8rem; inset-inline-end: -5rem; }
.job-detail-mark::after { inset-block-end: -10rem; inset-inline-start: -6rem; }
.job-detail-mark strong { position: relative; color: var(--color-accent); }
.job-detail-mark i { position: absolute; inset-inline-end: 2rem; inset-block-end: 1rem; color: var(--color-primary); font-size: 5rem; font-style: normal; }
.job-fact-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.job-fact { min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.job-fact .icon { margin-block-end: 2rem; color: var(--color-primary); }
.job-fact dt { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.job-fact dd { margin: 0.65rem 0 0; color: var(--color-text-muted); font-size: 0.9375rem; }
.job-description { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.6fr); align-items: start; gap: clamp(3rem, 8vw, 8rem); }
.job-description__content { max-inline-size: 49rem; }
.job-description__content section + section { margin-block-start: clamp(3.5rem, 7vw, 6rem); padding-block-start: clamp(3.5rem, 7vw, 6rem); border-block-start: 1px solid var(--color-border); }
.job-description__content h2 { margin-block: 1rem 1.25rem; }
.job-description__content p:not(.eyebrow) { color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.8; }
.check-list { display: grid; gap: 0.75rem; margin-block-start: 1.5rem; }
.check-list li { position: relative; padding-inline-start: 1.6rem; color: var(--color-text-muted); }
.check-list li::before { content: "+"; position: absolute; inset-inline-start: 0; color: var(--color-primary); font-weight: 800; }
.application-card { position: sticky; inset-block-start: calc(var(--header-height) + 2rem); padding: clamp(1.75rem, 3vw, 2.5rem); border-radius: var(--radius-medium); background: var(--color-sport-sand); }
.application-card h2 { margin-block-start: 1.5rem; font-size: clamp(2rem, 3.4vw, 3.1rem); }
.application-card > p { margin-block-start: 1rem; color: var(--color-text-muted); }
.application-card .button { inline-size: 100%; margin-block-start: 2rem; }
.application-card > span:last-child { display: block; margin-block-start: 1rem; color: var(--color-text-muted); font-size: 0.8125rem; }

/* Vereinsheim */
.clubhouse-hero { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); grid-template-rows: auto auto; align-items: center; gap: 2rem clamp(2.5rem, 5vw, 5rem); padding-block: clamp(3rem, 5vw, 5rem); }
.clubhouse-hero__copy { align-self: end; }
.clubhouse-hero__copy .eyebrow { margin-block-end: 1.25rem; }
.clubhouse-hero__copy h1 { max-inline-size: 9ch; font-size: clamp(3.7rem, 7vw, 7rem); line-height: 0.94; }
.clubhouse-hero__copy > p:last-child { max-inline-size: 35rem; margin-block-start: 1.5rem; color: var(--color-text-muted); font-size: clamp(1.1rem, 1.7vw, 1.35rem); }
.clubhouse-hero__media { grid-column: 2; grid-row: 1 / span 2; align-self: center; min-inline-size: 0; margin: 0; }
.clubhouse-hero__media img { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 1448 / 1086; object-fit: cover; object-position: 60% 55%; border-radius: var(--radius-medium); background: var(--color-sport-sand); }
.opening-card { position: relative; align-self: start; overflow: hidden; padding: 1.35rem 1.5rem 1.4rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: color-mix(in srgb, var(--color-surface) 76%, var(--color-sport-sand)); box-shadow: 0 8px 24px var(--color-shadow); color: var(--color-text); }
.opening-card::before { content: ""; position: absolute; inset-block: 1.4rem; inset-inline-start: 0; inline-size: 0.2rem; border-radius: 0 var(--radius-pill) var(--radius-pill) 0; background: var(--color-primary); }
.opening-card__label { display: block; color: var(--color-primary); font-size: 0.75rem; font-weight: 750; letter-spacing: 0.1em; text-transform: uppercase; }
.opening-card__days { display: block; margin-block-start: 0.8rem; font-size: 0.9375rem; font-weight: 650; }
.opening-card > strong { display: block; margin-block-start: 0.1rem; font-family: var(--font-display); font-size: clamp(1.7rem, 2.3vw, 2.2rem); letter-spacing: -0.04em; }
.opening-card > p { display: grid; gap: 0.15rem; margin-block-start: 0.75rem; padding-block-start: 0.75rem; border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 0.875rem; }
.opening-card > p > span { font-weight: 700; color: var(--color-text); }
.opening-card > p > small { font: inherit; }
.clubhouse-intro { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); }
.clubhouse-intro h2 { max-inline-size: 14ch; margin-block-start: 1rem; }
.clubhouse-intro > div:last-child { max-inline-size: 46rem; }
.clubhouse-intro > div:last-child p { color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.8; }
.clubhouse-intro > div:last-child p + p { margin-block-start: 1.25rem; }
.rental-layout { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.rental-visual { position: relative; display: flex; flex-direction: column; justify-content: center; min-block-size: 35rem; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius-medium); background: var(--color-primary); color: var(--color-surface); font-family: var(--font-display); font-size: clamp(2.4rem, 3.5vw, 3.6rem); font-weight: 700; line-height: 0.92; letter-spacing: -0.055em; transform: rotate(-1deg); }
.rental-visual::before, .rental-visual::after { content: ""; position: absolute; inline-size: 28rem; block-size: 28rem; border: 1px solid rgb(255 255 255 / 25%); border-radius: 50%; }
.rental-visual::before { inset-inline-end: -14rem; inset-block-start: -13rem; }
.rental-visual::after { inset-inline-start: -15rem; inset-block-end: -16rem; }
.rental-visual strong { color: var(--color-accent); }
.rental-visual i { position: absolute; inset-inline-end: 2rem; inset-block-end: 1rem; color: var(--color-accent); font-size: 4rem; font-style: normal; }
.rental-content h2 { margin-block-start: 1rem; }
.rental-content > p:not(.eyebrow, .page-note) { margin-block-start: 1.5rem; color: var(--color-text-muted); font-size: 1.0625rem; }
.use-list { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-block: 1.75rem; }
.use-list li { padding: 0.55rem 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-background); font-size: 0.875rem; }
.rental-facts { margin-block: 1.75rem; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.rental-facts h3 { font-size: 1.25rem; }
.rental-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem 0 0; }
.rental-facts dl div { min-inline-size: 0; }
.rental-facts dt { color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rental-facts dd { margin: 0.35rem 0 0; overflow-wrap: anywhere; font-weight: 650; }
.rental-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1.75rem; }
.clubhouse-gallery { display: grid; grid-template-columns: 1.2fr 0.8fr 0.8fr; grid-template-rows: 18rem 18rem; gap: 1rem; }
.gallery-placeholder { margin: 0; }
.gallery-placeholder > div { position: relative; block-size: 100%; overflow: hidden; border-radius: var(--radius-medium); background: var(--color-sport-sage); }
.gallery-placeholder--large { grid-row: 1 / span 2; }
.gallery-placeholder--wide { grid-column: 2 / span 2; }
.gallery-placeholder--red > div { background: var(--color-sport-rose); }
.gallery-placeholder--yellow > div { background: var(--color-sport-sand); }
.gallery-placeholder--wide > div { background: var(--color-sport-blue); }
.gallery-placeholder > div::before, .gallery-placeholder > div::after { content: ""; position: absolute; border: 2px solid rgb(37 39 38 / 18%); border-radius: 50%; }
.gallery-placeholder > div::before { inline-size: 16rem; block-size: 16rem; inset-inline-end: -6rem; inset-block-start: -7rem; }
.gallery-placeholder > div::after { inline-size: 10rem; block-size: 10rem; inset-inline-start: -4rem; inset-block-end: -5rem; }
.gallery-placeholder div > span { position: absolute; inset: 20% 18%; border-block: 2px solid rgb(37 39 38 / 20%); transform: rotate(-8deg); }
.gallery-placeholder div > span + span { transform: rotate(12deg); }
.gallery-placeholder i { position: absolute; inset-inline-end: 1.25rem; inset-block-end: 0.75rem; color: var(--color-art-red); font-size: 3.5rem; font-style: normal; }
.gallery-placeholder figcaption { margin-block-start: 0.65rem; font-size: 0.875rem; font-weight: 650; }
.booking-heading > p { max-inline-size: 38rem; }
.privacy-note { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-block-end: 2rem; padding: 1rem 1.25rem; border-inline-start: 3px solid var(--color-accent); background: var(--color-surface); }
.privacy-note strong { flex-shrink: 0; }
.privacy-note span { color: var(--color-text-muted); font-size: 0.875rem; }
.booking-calendar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.booking-month { min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.booking-month header { padding-block-end: 1.25rem; border-block-end: 1px solid var(--color-border); }
.booking-month .eyebrow { color: var(--color-text-muted); font-size: 0.75rem; }
.booking-month .eyebrow::before { background: var(--color-accent); }
.booking-month h3 { margin-block-start: 0.65rem; font-size: 1.75rem; text-transform: capitalize; }
.booking-empty { padding-block-start: 1.25rem; color: var(--color-text-muted); font-size: 0.875rem; }
.booking-entry { display: grid; grid-template-columns: 1fr auto; gap: 0.2rem 1rem; padding-block: 1.25rem; border-block-end: 1px solid var(--color-border); }
.booking-entry:last-child { padding-block-end: 0; border-block-end: 0; }
.booking-entry time { font-weight: 700; }
.booking-entry__time { grid-column: 1; color: var(--color-text-muted); font-size: 0.875rem; }
.booking-entry strong { grid-column: 2; grid-row: 1 / span 2; align-self: center; padding: 0.35rem 0.6rem; border-radius: var(--radius-pill); background: var(--color-sport-rose); color: var(--color-primary-hover); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.clubhouse-contact { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.clubhouse-contact h2 { margin-block-start: 1rem; }
.clubhouse-contact > div:first-child > p:not(.eyebrow) { max-inline-size: 34rem; margin-block-start: 1.25rem; color: var(--color-text-muted); }
.clubhouse-contact > div:first-child > .button { margin-block-start: 2rem; }
.clubhouse-contact > div:first-child > .button--primary:hover { color: var(--color-surface); }
.clubhouse-contact address { margin-block-start: 2rem; }
.clubhouse-contact dl { display: grid; gap: 0.7rem; margin-block: 1.5rem; }
.clubhouse-contact dl div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; }
.clubhouse-contact dt { color: var(--color-text-muted); font-size: 0.8125rem; }
.clubhouse-contact dd { margin: 0; font-weight: 600; }
.clubhouse-contact dd > span { color: var(--color-text-muted); font-weight: 400; }
.clubhouse-contact a:hover { color: var(--color-primary); }
.clubhouse-location { display: grid; gap: 1.25rem; min-inline-size: 0; }
.clubhouse-location__info { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 0.75rem 2rem; }
.clubhouse-location__label { margin-block-end: 0.5rem; color: var(--color-text-muted); font-size: 0.8125rem; font-weight: 600; }
.clubhouse-contact .clubhouse-location address { margin-block-start: 0; font-style: normal; font-weight: 600; }
.clubhouse-location__map { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.clubhouse-location__map iframe { display: block; inline-size: 100%; block-size: 30rem; border: 0; }
@media (min-width: 801px) {
  .clubhouse-location { gap: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
  .clubhouse-location__map { border: 0; border-radius: 0; }
  .clubhouse-location__map iframe { block-size: 26rem; }
  .clubhouse-location__info { order: 1; align-items: center; padding: 1.25rem 1.5rem; border-block-start: 1px solid var(--color-border); }
  .clubhouse-location__label { margin-block-end: 0.35rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
  .clubhouse-contact .clubhouse-location address { line-height: 1.5; }
}
.public-booking-cta > .container { display: flex; align-items: center; justify-content: space-between; gap: clamp(2rem, 6vw, 6rem); }
.public-booking-cta h2 { max-inline-size: 18ch; margin-block-start: 0.8rem; }
.public-booking-cta p:last-child { max-inline-size: 44rem; margin-block-start: 1rem; color: var(--color-text-muted); }
.public-booking-cta .button { flex-shrink: 0; }

/* Öffentliche Vereinsheim-Mietanfrage */
.clubhouse-rental-flow { padding-block: clamp(2rem, 5vw, 4rem) clamp(4rem, 8vw, 7rem); }
.rental-flow-heading { margin-block: clamp(2rem, 5vw, 4rem) 2rem; }
.rental-flow-heading h1 { margin-block-start: 0.75rem; }
.rental-flow-heading > p:last-child { margin-block-start: 0.75rem; color: var(--color-text-muted); }
.rental-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-block: 2rem; border-block: 1px solid var(--color-border); list-style: none; }
.rental-progress li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.6rem; min-inline-size: 0; padding: 0.85rem 0.6rem; color: var(--color-text-muted); font-size: 0.78rem; }
.rental-progress li > span { display: grid; place-items: center; inline-size: 1.75rem; block-size: 1.75rem; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); font-weight: 800; }
.rental-progress li.is-complete > span { border-color: var(--color-sport-sage); background: var(--color-sport-sage); color: var(--color-text); }
.rental-progress li.is-active { color: var(--color-text); }
.rental-progress li.is-active > span { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-surface); }
.rental-progress li.is-skipped strong { text-decoration: line-through; text-decoration-color: var(--color-border); }
.rental-selection { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-block: 2rem; padding: 1rem 1.25rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.rental-selection > div { display: grid; gap: 0.2rem; min-inline-size: 0; }
.rental-selection span { color: var(--color-primary); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.rental-selection small { overflow: hidden; color: var(--color-text-muted); text-overflow: ellipsis; white-space: nowrap; }
.rental-selection__change { flex-shrink: 0; min-block-size: 2.75rem; padding-block: 0.55rem; background: var(--color-surface); }
.rental-selection__change .icon { inline-size: 1rem; block-size: 1rem; }
.rental-step { margin-block-start: clamp(2.5rem, 6vw, 5rem); }
.rental-step > h2,
.rental-success > h1 { max-inline-size: 18ch; margin-block-start: 0.75rem; font-size: clamp(2.8rem, 6vw, 5.7rem); line-height: 0.96; }
.rental-step__intro { max-inline-size: 48rem; margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: 1.05rem; line-height: 1.7; }
.rental-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block-start: 2.5rem; }
.rental-choice-card { position: relative; display: flex; align-items: flex-start; flex-direction: column; min-inline-size: 0; min-block-size: 18rem; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid var(--color-border); border-block-start: 4px solid var(--color-primary); border-radius: var(--radius-medium); background: var(--color-surface); color: var(--color-text); text-align: start; cursor: pointer; transition: border-color var(--transition), background var(--transition); }
.rental-choice-card:hover, .rental-choice-card:focus-visible { border-color: var(--color-primary); background: color-mix(in srgb, var(--color-sport-sand) 24%, var(--color-surface)); }
.rental-choice-card:focus-visible { outline: 2px solid color-mix(in srgb, var(--color-primary) 30%, transparent); outline-offset: 3px; }
.rental-choice-card > span { color: var(--color-primary); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.rental-choice-card h2 { max-inline-size: 15ch; margin-block-start: 2rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.rental-choice-card p { max-inline-size: 35rem; margin-block-start: 0.75rem; color: var(--color-text-muted); }
.rental-choice-card ul { display: grid; gap: 0.45rem; margin-block-start: 1.5rem; color: var(--color-text-muted); font-size: 0.84rem; list-style: none; }
.rental-choice-card__prices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; inline-size: 100%; margin-block-start: 1.5rem; padding-block-start: 1rem; border-block-start: 1px solid var(--color-border); }
.rental-choice-card__prices div { display: grid; gap: 0.25rem; }
.rental-choice-card__prices dt { color: var(--color-text-muted); font-size: 0.7rem; font-weight: 700; }
.rental-choice-card__prices dd { margin: 0; font-weight: 800; }
.rental-choice-card .rental-price-note { margin-block-start: 0.5rem; color: var(--color-text-muted); font-size: 0.68rem; }
.rental-choice-card .icon { margin-block-start: auto; align-self: flex-end; }
.rental-back { margin-block-start: 1.5rem; }
.rental-back.button { inline-size: fit-content; background: var(--color-surface); }
.rental-back .icon, .rental-back:hover .icon, .rental-calendar__nav .text-link:first-child .icon { transform: rotate(180deg); }
.rental-back:hover .icon { transform: translateX(-3px) rotate(180deg); }
.rental-calendar-legend { display: flex; flex-wrap: wrap; gap: 0.65rem 1.25rem; margin-block: 2rem 1rem; color: var(--color-text-muted); font-size: 0.78rem; font-weight: 700; }
.rental-calendar-legend span { display: inline-flex; align-items: center; gap: 0.45rem; }
.rental-calendar-legend span::before { content: ""; inline-size: 0.75rem; block-size: 0.75rem; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); }
.rental-calendar-legend span:nth-child(2)::before { background: var(--color-sport-sand); }
.rental-calendar-legend span:nth-child(3)::before { background: var(--color-sport-rose); }
.rental-calendar { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-border); }
.rental-calendar__nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; padding: 1rem; background: var(--color-surface); }
.rental-calendar__nav h2 { font-size: 1.5rem; text-align: center; }
.rental-calendar__nav .text-link { border: 0; background: transparent; }
.rental-calendar__nav .text-link:first-child { justify-self: start; justify-content: flex-start; }
.rental-calendar__nav .text-link:first-child:hover .icon { transform: translateX(-3px) rotate(180deg); }
.rental-calendar__nav .text-link:last-child { justify-self: end; }
.rental-calendar__weekdays, .rental-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; }
.rental-calendar__weekdays span { padding: 0.65rem; background: var(--color-surface-soft); color: var(--color-text-muted); font-size: 0.7rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.rental-calendar__blank { min-block-size: 8.5rem; background: var(--color-surface-soft); }
.rental-calendar__day { display: grid; align-content: start; gap: 0.45rem; min-inline-size: 0; min-block-size: 8.5rem; padding: 0.7rem; border: 0; background: var(--color-surface); color: var(--color-text); text-align: start; cursor: pointer; }
.rental-calendar__day time { font-size: 0.78rem; font-weight: 800; }
.rental-calendar__day strong { font-size: 0.7rem; }
.rental-calendar__day small { display: grid; gap: 0.2rem; color: var(--color-text-muted); font-size: 0.64rem; line-height: 1.3; }
.rental-calendar__day--partial { background: color-mix(in srgb, var(--color-sport-sand) 70%, var(--color-surface)); color: #765817; }
.rental-calendar__day--unavailable { background: color-mix(in srgb, var(--color-sport-rose) 68%, var(--color-surface)); color: var(--color-primary); }
.rental-calendar__day:disabled { cursor: not-allowed; opacity: 0.74; }
.rental-calendar__day:not(:disabled):hover, .rental-calendar__day:not(:disabled):focus-visible { position: relative; z-index: 1; outline: 2px solid var(--color-primary); outline-offset: -3px; }
.rental-calendar__day.is-selected { box-shadow: inset 0 0 0 3px var(--color-primary); }
.rental-partial-note { max-inline-size: 52rem; margin-block-start: 2rem; padding: 1rem 1.2rem; border-inline-start: 3px solid #b1872d; background: var(--color-sport-sand); color: var(--color-text-muted); }
.rental-partial-note strong { display: block; color: var(--color-text); }
.rental-request-form { max-inline-size: 62rem; margin-block-start: 2.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.rental-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.rental-form-grid > label { display: grid; align-content: start; gap: 0.4rem; min-inline-size: 0; font-size: 0.82rem; font-weight: 750; }
.rental-form-grid input, .rental-form-grid select, .rental-form-grid textarea { inline-size: 100%; min-block-size: 3rem; padding: 0.75rem 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); color: var(--color-text); font: inherit; font-weight: 450; }
.rental-form-grid select { cursor: pointer; }
.rental-form-grid textarea { resize: vertical; }
.rental-form-grid input:focus, .rental-form-grid select:focus, .rental-form-grid textarea:focus { border-color: var(--color-primary); outline: 2px solid color-mix(in srgb, var(--color-primary) 20%, transparent); }
.rental-form-grid input[readonly] { background: color-mix(in srgb, var(--color-surface-soft) 70%, var(--color-surface)); color: var(--color-text-muted); }
.rental-field--wide { grid-column: 1 / -1; }
.rental-membership { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; min-inline-size: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); }
.rental-membership legend { padding-inline: 0.35rem; font-size: 0.82rem; font-weight: 750; }
.rental-membership label { display: flex; align-items: center; gap: 0.45rem; }
.rental-membership input { accent-color: var(--color-primary); }
.rental-membership small { flex-basis: 100%; color: var(--color-text-muted); }
.rental-form-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.75rem; margin-block-start: 1.5rem; }
.form-error { min-block-size: 1.5rem; margin-block-start: 1rem; color: var(--color-primary); font-weight: 700; }
.rental-review { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr); gap: 1.5rem; margin-block-start: 2.5rem; }
.rental-review > dl { border-block-start: 1px solid var(--color-border); }
.rental-review > dl > div { display: grid; grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr); gap: 1rem; padding-block: 0.9rem; border-block-end: 1px solid var(--color-border); }
.rental-review dt { color: var(--color-text-muted); font-size: 0.75rem; font-weight: 750; text-transform: uppercase; }
.rental-review dd { overflow-wrap: anywhere; font-weight: 650; }
.rental-price { align-self: start; display: grid; gap: 0.6rem; padding: 1.5rem; border: 1px solid var(--color-border); border-block-start: 4px solid var(--color-primary); border-radius: var(--radius-medium); background: var(--color-sport-sand); }
.rental-price > span { color: var(--color-text-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.rental-price strong { font-family: var(--font-display); font-size: 1.7rem; line-height: 1.1; }
.rental-price small { color: var(--color-text-muted); }
.rental-success { max-inline-size: 52rem; padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius-medium); background: var(--color-sport-sage); }
.rental-success > p:not(.eyebrow) { margin-block-start: 1rem; color: var(--color-text-muted); font-size: 1.05rem; }
.rental-success > div { display: grid; gap: 0.25rem; margin-block: 2rem; padding-block: 1rem; border-block: 1px solid color-mix(in srgb, var(--color-text) 15%, transparent); }
.rental-success .button { inline-size: fit-content; }

@media (max-width: 1100px) {
  .jobs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .job-card:last-child { grid-column: 1 / span 2; min-block-size: 24rem; }
  .job-fact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .booking-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .job-detail-header, .job-description, .clubhouse-hero, .clubhouse-intro, .rental-layout, .clubhouse-contact { grid-template-columns: 1fr; }
  .public-booking-cta > .container { align-items: flex-start; flex-direction: column; }
  .rental-review { grid-template-columns: 1fr; }
  .job-detail-mark { min-block-size: 18rem; transform: none; }
  .application-card { position: static; }
  .clubhouse-hero { grid-template-rows: auto; }
  .clubhouse-hero__media { grid-column: 1; grid-row: auto; }
  .opening-card { inline-size: min(100%, 32rem); }
  .rental-visual { min-block-size: 27rem; transform: none; }
  .clubhouse-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 22rem 15rem 18rem; }
  .gallery-placeholder--large { grid-column: 1 / span 2; grid-row: 1; }
  .gallery-placeholder--wide { grid-column: 1 / span 2; }
  .privacy-note { align-items: start; flex-direction: column; gap: 0.25rem; }
}
@media (max-width: 600px) {
  .jobs-grid, .job-fact-grid, .booking-calendar { grid-template-columns: 1fr; }
  .job-card, .job-card:last-child { grid-column: auto; min-block-size: 0; }
  .job-card h2 { font-size: 2rem; }
  .job-detail-header { padding-block: 2.75rem 3.25rem; }
  .job-detail-header h1 { font-size: clamp(3rem, 14vw, 4.4rem); }
  .job-detail-mark { min-block-size: 15rem; }
  .job-description__content section + section { margin-block-start: 3.5rem; padding-block-start: 3.5rem; }
  .clubhouse-hero { gap: 1.5rem; padding-block: 2.75rem 3.25rem; }
  .clubhouse-hero__copy h1 { font-size: clamp(3.2rem, 15vw, 4.6rem); }
  .opening-card { padding: 1.5rem; }
  .rental-visual { min-block-size: 22rem; }
  .rental-actions { align-items: stretch; flex-direction: column; }
  .rental-facts dl { grid-template-columns: 1fr; }
  .clubhouse-gallery { grid-template-columns: 1fr; grid-template-rows: repeat(4, 18rem); }
  .gallery-placeholder--large, .gallery-placeholder--wide { grid-column: auto; grid-row: auto; }
  .booking-entry { grid-template-columns: 1fr auto; }
  .clubhouse-contact dl div { grid-template-columns: 1fr; gap: 0.1rem; }
  .clubhouse-location__map iframe { block-size: 19rem; }
  .rental-progress li { grid-template-columns: 1fr; align-content: start; justify-items: center; gap: 0.3rem; padding-inline: 0.2rem; }
  .rental-progress li strong { font-size: 0.6rem; text-align: center; }
  .rental-selection { align-items: flex-start; flex-direction: column; }
  .rental-selection small { white-space: normal; }
  .rental-choice-grid, .rental-form-grid { grid-template-columns: 1fr; }
  .rental-choice-card { min-block-size: 15rem; }
  .rental-field--wide { grid-column: auto; }
  .rental-calendar__nav { grid-template-columns: 1fr 1fr; }
  .rental-calendar__nav h2 { grid-column: 1 / -1; grid-row: 1; }
  .rental-calendar__nav .text-link:first-child { grid-column: 1; grid-row: 2; justify-self: start; }
  .rental-calendar__nav .text-link:last-child { grid-column: 2; grid-row: 2; }
  .rental-calendar__day, .rental-calendar__blank { min-block-size: 6.5rem; padding: 0.4rem; }
  .rental-calendar__day strong { font-size: 0.6rem; overflow-wrap: anywhere; }
  .rental-calendar__day small { font-size: 0.56rem; }
  .rental-review > dl > div { grid-template-columns: 1fr; gap: 0.25rem; }
  .rental-form-actions { align-items: stretch; flex-direction: column-reverse; }
}

/* Verein */
.club-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: end; gap: 2rem clamp(3rem, 8vw, 8rem); padding-block: clamp(3rem, 6vw, 6rem); }
.club-hero .eyebrow { margin-block-end: 1.25rem; }
.club-hero h1 { max-inline-size: 10ch; font-size: clamp(3.8rem, 7vw, 7rem); line-height: 0.94; }
.club-hero__intro > p:first-child { max-inline-size: 34rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.6vw, 1.25rem); }
.club-hero__links { display: flex; flex-wrap: wrap; gap: 0 2rem; margin-block-start: 1rem; }
/* Drei Einstiege: beantworten "Was uns verbindet" und springen zu den Abschnitten. */
.club-paths { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-block-start: clamp(1rem, 3vw, 2.5rem); }
.club-path { display: flex; flex-direction: column; align-items: flex-start; min-inline-size: 0; padding: clamp(1.5rem, 2.5vw, 2rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); transition: border-color var(--transition), transform var(--transition); }
.club-path:hover { border-color: var(--color-primary); transform: translateY(-3px); }
.club-path__faces { display: flex; margin-block-end: 1.75rem; }
.club-path__faces > * { flex: 0 0 auto; inline-size: 3.5rem; block-size: 3.5rem; border: 3px solid var(--color-surface); border-radius: 50%; background: var(--color-surface-soft); object-fit: cover; object-position: 50% 22%; }
.club-path__faces > * + * { margin-inline-start: -0.85rem; }
.club-path__faces > span { display: grid; place-items: center; color: var(--color-primary); font-family: var(--font-display); font-size: 1rem; font-weight: 700; letter-spacing: -0.04em; }
.club-path--history .club-path__faces > img { object-position: 50% 50%; filter: sepia(0.25); }
.club-path__number { color: var(--color-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; }
.club-path__title { margin-block-start: 0.35rem; font-family: var(--font-display); font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1.1; letter-spacing: -0.045em; }
.club-path__text { margin-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.9375rem; line-height: 1.55; }
.club-path__cta { display: inline-flex; align-items: center; gap: 0.75rem; margin-block-start: auto; padding-block-start: 1.25rem; font-size: 0.875rem; font-weight: 650; }
.club-path__cta .icon { color: var(--color-primary); transform: rotate(90deg); transition: transform var(--transition); }
.club-path:hover .club-path__cta .icon { transform: rotate(90deg) translateX(3px); }
.club-history { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: center; gap: clamp(2.5rem, 7vw, 7rem); }
.club-history h2 { max-inline-size: 13ch; margin-block-start: 1rem; }
.club-history__content > p:not(.eyebrow) { max-inline-size: 34rem; margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: 1.0625rem; }
.club-history__facts { margin: 2rem 0; padding: 0; border-block-start: 1px solid var(--color-border); list-style: none; }
.club-history__facts li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); align-items: baseline; gap: 1rem; padding-block: 0.85rem; border-block-end: 1px solid var(--color-border); }
.club-history__facts strong { color: var(--color-primary); font-family: var(--font-display); font-size: 1.75rem; line-height: 1; letter-spacing: -0.05em; }
.club-history__facts span { color: var(--color-text-muted); }
.board-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.board-card { display: grid; grid-template-columns: 10rem minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 1.75rem; min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.board-card__photo { grid-row: 1 / 3; align-self: start; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-small); background: var(--color-surface-soft); }
.board-card__photo img { inline-size: 100%; block-size: 100%; object-fit: cover; }
/* Gemeinsame Zuständigkeit: zwei überlappende Porträts statt eines Fotos */
.board-card__photo--duo { display: grid; aspect-ratio: auto; overflow: visible; background: none; }
.board-card__photo--duo img { inline-size: 64%; block-size: auto; aspect-ratio: 1; border: 3px solid var(--color-background); border-radius: 50%; object-position: 50% 30%; }
.board-card__photo--duo img + img { justify-self: end; margin-block-start: -28%; }
.board-card__role { color: var(--color-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.board-card h3 { margin-block-start: 0.4rem; font-size: 1.6rem; }
.board-card__tasks { margin-block-start: 1.25rem; padding-block-start: 1rem; border-block-start: 1px solid var(--color-border); }
.board-card__tasks > p { color: var(--color-text-muted); font-size: 0.8125rem; }
.board-card__tasks ul { display: grid; gap: 0.35rem; margin-block-start: 0.6rem; }
.board-card__tasks li { position: relative; padding-inline-start: 1rem; font-size: 0.9375rem; line-height: 1.45; }
.board-card__tasks li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.55em; inline-size: 0.35rem; block-size: 0.35rem; border-radius: 50%; background: var(--color-primary); }
@media (max-width: 1100px) {
  .board-grid { grid-template-columns: 1fr; }
  .board-card__tasks ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
}
.club-office { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: center; gap: clamp(2.5rem, 5vw, 4rem) clamp(3rem, 8vw, 8rem); }
.club-office h2 { max-inline-size: 13ch; margin-block-start: 1rem; }
.club-office > div:first-child > p:not(.eyebrow) { max-inline-size: 34rem; margin-block-start: 1.25rem; color: var(--color-text-muted); }
.club-office > div:first-child > .text-link { margin-block-start: 1rem; }
.club-office__card { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: clamp(1.75rem, 4vw, 3rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.club-office__card address { margin-block-start: 1.5rem; color: var(--color-text-muted); }
.club-office__card address strong { color: var(--color-text); }
.club-office__links { display: flex; flex-direction: column; }
.club-office__links a { display: flex; align-items: center; gap: 0.75rem; min-block-size: 4rem; border-block-end: 1px solid var(--color-border); }
.club-office__links a:hover { color: var(--color-primary); }
.club-office__links .icon { color: var(--color-primary); }
.club-office__links small { display: block; color: var(--color-text-muted); font-size: 0.75rem; }
/* Telefonzeiten und Geschäftszimmer (kontakt/) */
.office-hours { display: grid; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; gap: 2rem; padding-block-start: 2rem; border-block-start: 1px solid var(--color-border); }
.office-hours h3 { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-family); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.office-hours h3 .icon { inline-size: 1rem; color: var(--color-primary); }
.office-hours dl { display: grid; gap: 0.6rem; margin: 1rem 0 0; }
.office-hours dl > div { display: flex; justify-content: space-between; gap: 1rem; }
.office-hours dt { color: var(--color-text-muted); }
.office-hours dd { margin: 0; text-align: end; font-variant-numeric: tabular-nums; }
.office-hours p { margin-block-start: 0.75rem; color: var(--color-text-muted); font-size: 0.875rem; }
/* Geschäftsstelle als Team (verein/) */
.office-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
/* Teamkarte: Foto oben, damit drei Karten nebeneinander passen. */
.board-card--team { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; align-content: start; row-gap: 1.25rem; }
.board-card--team .board-card__photo { grid-row: auto; inline-size: 8rem; }
.board-card--team .board-card__tasks { margin-block-start: 0; }
.board-card--team .board-card__tasks ul { grid-template-columns: minmax(0, 1fr); }
.board-card__photo--initials { display: grid; place-items: center; color: var(--color-primary); font-family: var(--font-display); font-size: clamp(1.6rem, 4vw, 2.5rem); font-weight: 700; letter-spacing: -0.04em; }
.office-contact-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 2rem; margin-block-start: 1rem; padding: 0.75rem 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); font-size: 0.9375rem; }
.office-contact-bar > a:not(.text-link), .office-contact-bar > p { display: inline-flex; align-items: center; gap: 0.6rem; min-block-size: 2.75rem; }
.office-contact-bar > a:not(.text-link) { font-weight: 600; }
.office-contact-bar > a:hover { color: var(--color-primary); }
.office-contact-bar > p { color: var(--color-text-muted); }
.office-contact-bar > :not(.text-link) .icon { inline-size: 1.05rem; color: var(--color-primary); }
.office-contact-bar .text-link { margin-inline-start: auto; }
.engagement-layout { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.engagement-art { position: relative; display: flex; flex-direction: column; justify-content: center; min-block-size: 27rem; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius-medium); background: var(--color-sport-lilac); font-family: var(--font-display); font-size: clamp(2.7rem, 5vw, 5rem); font-weight: 700; line-height: 0.93; letter-spacing: -0.055em; }
.engagement-art::before, .engagement-art::after { content: ""; position: absolute; border-radius: 50%; background: var(--color-art-purple); }
.engagement-art::before { inline-size: 12rem; block-size: 12rem; inset-inline-end: -3rem; inset-block-start: -4rem; opacity: 0.8; }
.engagement-art::after { inline-size: 8rem; block-size: 8rem; inset-inline-end: 7rem; inset-block-start: 4rem; opacity: 0.65; }
.engagement-art strong { color: var(--color-primary); }
.engagement-art i { position: absolute; inset-inline-end: 1.5rem; inset-block-end: 0.5rem; color: var(--color-primary); font-size: 5rem; font-style: normal; }
.engagement-layout > div:last-child h2 { margin-block-start: 1rem; }
.engagement-layout > div:last-child > p:not(.eyebrow) { margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: 1.0625rem; }
.engagement-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1.75rem; }
.club-documents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
/* Without a published statute only "Alle Downloads" remains and takes the full row. */
.club-documents:has(> a[hidden]) { grid-template-columns: minmax(0, 1fr); }
.club-documents a { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-block-size: 8rem; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); transition: transform var(--transition), border-color var(--transition); }
.club-documents a:hover { transform: translateY(-3px); border-color: var(--color-primary); }
.club-documents small { display: block; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.club-documents strong { display: block; margin-block-start: 0.5rem; font-size: 1.1rem; }
.club-documents a > span { min-inline-size: 0; overflow-wrap: anywhere; }
.club-documents .icon { flex-shrink: 0; color: var(--color-primary); }

@media (max-width: 900px) {
  .club-hero, .club-office, .engagement-layout, .office-team, .club-paths { grid-template-columns: 1fr; }
  .club-hero { align-items: start; }
  .club-path__faces { margin-block-end: 1.25rem; }
  .board-card--team { grid-template-columns: 6.5rem minmax(0, 1fr); column-gap: 1.5rem; }
  .board-card--team .board-card__photo { inline-size: auto; }
  .board-card--team > header { align-self: center; }
  .board-card--team .board-card__tasks { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .club-hero { gap: 2.5rem; padding-block: 2.75rem 3.25rem; }
  .club-hero h1 { font-size: clamp(3.3rem, 15vw, 4.7rem); }
  .board-card { grid-template-columns: 5.5rem minmax(0, 1fr); grid-template-rows: auto; column-gap: 1.25rem; padding: 1.25rem; }
  .board-card__photo { grid-row: auto; }
  .board-card > header { align-self: center; }
  .board-card__tasks { grid-column: 1 / -1; }
  .board-card__tasks ul { grid-template-columns: 1fr; }
  .club-office__card, .office-hours { grid-template-columns: 1fr; gap: 1rem; }
  .office-hours { gap: 1.75rem; padding-block-start: 1.5rem; }
  .office-contact-bar { padding-inline: 1.25rem; }
  .office-contact-bar .text-link { margin-inline-start: 0; }
  .board-card h3 { font-size: 1.35rem; }
  .engagement-art { min-block-size: 22rem; }
  .engagement-actions { align-items: stretch; flex-direction: column; }
  .club-documents { grid-template-columns: minmax(0, 1fr); }
  .club-documents a { min-block-size: 6rem; padding: 1.25rem 1.5rem; }
}

/* Vereinsgeschichte (verein/geschichte/): statische Inhalte aus der Vereinschronik */
.history-hero { padding-block: clamp(2rem, 4vw, 3.5rem) clamp(1rem, 2vw, 1.5rem); }
.history-hero__intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); align-items: end; gap: clamp(2rem, 6vw, 6rem); }
.history-hero .eyebrow { margin-block-end: 1.25rem; }
.history-hero h1 { max-inline-size: 12ch; font-size: clamp(3.3rem, 7vw, 7rem); line-height: 0.94; }
.history-hero h1 > span:first-child { display: block; color: var(--color-primary); }
.history-hero__lead { max-inline-size: 34rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.65; }
.history-figure { min-inline-size: 0; }
/* Der Bildrahmen hält das Seitenverhältnis auch ohne Bild (media.js entfernt fehlerhafte Bilder). */
.history-figure__media { position: relative; display: grid; place-items: center; aspect-ratio: var(--ratio, 3 / 2); overflow: hidden; border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.history-figure__media img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: var(--focus, 50% 50%); }
.history-figure__media:not(:has(img))::after { content: "Foto aus der Vereinschronik"; padding: 1rem; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-align: center; text-transform: uppercase; }
.history-figure figcaption { margin-block-start: 0.75rem; color: var(--color-text-muted); font-size: 0.8125rem; line-height: 1.5; }
.history-figure--hero { margin-block-start: clamp(2.5rem, 5vw, 4.5rem); }
.history-figure--hero .history-figure__media { --focus: 50% 62%; aspect-ratio: 2.2; }
.history-notes { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); align-items: start; gap: 1.5rem 2rem; margin-block: clamp(4rem, 8vw, 7rem); padding-block: 1.75rem; border-block: 1px solid var(--color-border); }
.history-notes__label { padding-block-start: 0.6rem; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.history-notes ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1.5rem 2.5rem; margin: 0; padding: 0; list-style: none; }
.history-notes li { display: grid; align-content: start; gap: 0.35rem; min-inline-size: 0; }
.history-notes strong { color: var(--color-primary); font-family: var(--font-display); font-size: clamp(1.75rem, 2.4vw, 2.25rem); line-height: 1; letter-spacing: -0.05em; }
.history-notes span { color: var(--color-text-muted); font-size: 0.9375rem; line-height: 1.55; }
.history-notes--single { grid-template-columns: 1fr; }
.history-notes--single li { grid-template-columns: 7rem minmax(0, 1fr); align-items: baseline; gap: 1.5rem; }
.history-notes--single span { max-inline-size: 44rem; color: var(--color-text); font-size: 1.0625rem; }
.history-notes:has(+ .history-source) { margin-block-end: 1.25rem; }
.history-notes + .history-source { margin-block-start: 0; padding-block-start: 0; border: 0; }
.history-source { margin-block-start: clamp(2.5rem, 5vw, 4rem); padding-block-start: 1rem; border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 0.8125rem; }
.history-stories { padding-block-start: var(--section-space); }
.history-year { display: block; color: var(--color-primary); font-family: var(--font-display); font-size: clamp(3.5rem, 7vw, 6.5rem); font-weight: 700; line-height: 0.9; letter-spacing: -0.065em; }
.history-story { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.history-story + .history-story { margin-block-start: clamp(4rem, 8vw, 7.5rem); }
.history-story--reverse { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.history-story--reverse > .history-figure { order: 2; }
.history-story h3 { margin-block-start: 1.25rem; font-size: clamp(1.75rem, 2.6vw, 2.5rem); }
.history-story__text > p { max-inline-size: 32rem; margin-block-start: 1rem; color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.75; }
.history-figure--small { max-inline-size: 30rem; margin-block-start: 2.5rem; }
.history-story--compact { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.history-story--compact.history-story--reverse { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.history-story--compact .history-figure { justify-self: center; inline-size: min(100%, var(--figure-max, 32rem)); }
.history-stories__continued { padding-block-start: clamp(4.5rem, 8vw, 8rem); }
.history-feature { margin-block-start: clamp(4.5rem, 8vw, 8rem); padding-block: var(--section-space); background: var(--color-surface-soft); }
.history-feature__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "photo text" "build text"; align-items: start; gap: clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 6vw, 6rem); }
.history-feature__text { grid-area: text; align-self: center; }
.history-feature__photo { grid-area: photo; }
.history-feature__build { grid-area: build; justify-self: end; inline-size: 78%; }
.history-feature .history-figure__media { background: var(--color-background); }
.history-feature h3 { margin-block-start: 1.25rem; font-size: clamp(2.4rem, 4.5vw, 4.25rem); line-height: 0.98; }
.history-feature__lead { max-inline-size: 36rem; margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.7; }
.history-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2rem 0 0; padding: 0; border-block-start: 1px solid var(--color-border); list-style: none; }
.history-steps li { min-inline-size: 0; padding: 1.25rem 1rem 0 0; }
.history-steps strong { display: block; color: var(--color-primary); font-family: var(--font-display); font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1; letter-spacing: -0.05em; }
.history-steps span { display: block; margin-block-start: 0.4rem; color: var(--color-text-muted); font-size: 0.875rem; }
.history-feature__note { max-inline-size: 34rem; margin-block-start: 2rem; font-weight: 650; }
.history-feature .text-link { margin-block-start: 0.75rem; }

@media (max-width: 900px) {
  .history-hero__intro, .history-story, .history-story--reverse, .history-story--compact, .history-story--compact.history-story--reverse, .club-history { grid-template-columns: 1fr; }
  .history-hero__intro { gap: 1.5rem; }
  .history-story--reverse > .history-figure { order: 0; }
  .history-story { gap: 1.75rem; }
  .history-feature__grid { grid-template-columns: 1fr; grid-template-areas: "text" "photo" "build"; }
  .history-feature__build { inline-size: 100%; }
}
@media (max-width: 700px) {
  .history-notes { grid-template-columns: 1fr; gap: 1rem; }
  .history-notes__label { padding: 0; }
  .history-notes--single li { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; }
  .history-figure--hero .history-figure__media { aspect-ratio: var(--ratio); }
  .history-steps { grid-template-columns: 1fr; }
  .history-steps li { display: flex; align-items: baseline; gap: 1rem; padding: 0.9rem 0; border-block-end: 1px solid var(--color-border); }
  .history-steps span { margin: 0; }
}

/* Mein TVR */
.member-area__content { padding-block: clamp(2.5rem, 5vw, 5rem) var(--section-space); }
.member-area__content--dashboard { padding-block-start: 0; }
.member-area__content--dashboard > .member-dashboard-hero { padding-block-start: clamp(3.75rem, 7vw, 7rem); }
/* Rücklink über dem Inhalt: an der Container-Kante, Abstände wie .site-breadcrumb + Hero */
.detail-back-link + .member-area__content { padding-block-start: var(--trail-space-after); }
.detail-back-link + .member-area__content > .member-page-intro:first-child { padding-block-start: 0; }
.member-area__content:has(> .detail-back-link:first-child) { padding-block-start: 0; }
.member-area__content > .detail-back-link + :is(.member-info-detail, .member-document-detail) { padding-block-start: var(--trail-space-after); }
.member-area__content > .detail-back-link + article > .event-detail-header:first-child { padding-block-start: var(--trail-space-after); }
.member-login-hero { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(24rem, 1.1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); min-block-size: 36rem; }
.member-login-hero__copy .eyebrow, .member-dashboard-hero .eyebrow { margin-block-end: 1.25rem; }
.member-login-hero h1, .member-dashboard-hero h1 { max-inline-size: 11ch; font-size: clamp(3.8rem, 7vw, 7rem); line-height: 0.94; }
.member-login-hero__copy > p:not(.eyebrow), .member-dashboard-hero > div > p:not(.eyebrow) { max-inline-size: 42rem; margin-block-start: 1.5rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.6vw, 1.25rem); }
.member-login-hero__copy > small { display: block; max-inline-size: 34rem; margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: 0.875rem; }
.member-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 2rem; }
.member-login-hero__art { position: relative; display: flex; flex-direction: column; justify-content: center; min-block-size: 31rem; overflow: hidden; padding: clamp(2.5rem, 5vw, 4.5rem); border-radius: var(--radius-medium); background: var(--color-primary); color: var(--color-surface); font-family: var(--font-display); font-size: clamp(3.8rem, 7vw, 7rem); font-weight: 700; line-height: 0.85; letter-spacing: -0.065em; transform: rotate(1deg); }
.member-login-hero__art::before, .member-login-hero__art::after { content: ""; position: absolute; inline-size: 28rem; block-size: 18rem; border: 1px solid rgb(255 255 255 / 27%); border-radius: 50%; transform: rotate(24deg); }
.member-login-hero__art::before { inset-block-start: -7rem; inset-inline-end: -9rem; }
.member-login-hero__art::after { inset-block-end: -9rem; inset-inline-start: -10rem; }
.member-login-hero__art span, .member-login-hero__art strong, .member-login-hero__art i { position: relative; z-index: 1; }
.member-login-hero__art strong, .member-login-hero__art i { color: var(--color-accent); }
.member-login-hero__art i { position: absolute; inset-inline-end: 2rem; inset-block-end: 1rem; font-size: 4rem; font-style: normal; font-weight: 400; }
.member-dashboard-hero { position: relative; display: flex; align-items: end; justify-content: space-between; gap: 3rem; min-block-size: 25rem; padding-block: clamp(2rem, 5vw, 4.5rem) clamp(3.5rem, 6vw, 6rem); border-block-end: 1px solid var(--color-border); }
.member-dashboard-hero--active { min-block-size: 20rem; padding-block: clamp(1.5rem, 3vw, 3rem) clamp(2.75rem, 4.5vw, 4.5rem); }
.member-dashboard-hero--active h1 { font-size: clamp(3.6rem, 6vw, 6.25rem); }
.member-dashboard-context { display: flex; align-items: center; gap: 0.65rem; inline-size: fit-content; margin-block-start: 1.35rem; padding: 0.55rem 0.8rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); color: var(--color-text-muted); font-size: 0.875rem; }
.member-dashboard-context .icon { inline-size: 1rem; block-size: 1rem; color: var(--color-primary); }
.member-dashboard-hero__mark { position: absolute; inset-inline-end: clamp(0rem, 5vw, 5rem); inset-block-start: 0; color: var(--color-primary); font-family: var(--font-display); font-size: clamp(7rem, 16vw, 15rem); font-weight: 300; line-height: 1; opacity: 0.13; transform: rotate(8deg); }
.member-dashboard-hero > .button { position: relative; z-index: 1; flex-shrink: 0; }
.member-access-alert { margin-block-start: 1.5rem; padding: 0 1.25rem; border: 1px solid var(--color-border); border-inline-start: 4px solid var(--color-accent); border-radius: var(--radius-medium); background: var(--color-sport-sand); }
.member-access-alert li { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-block-size: 5rem; padding-block: 0.75rem; }
.member-access-alert li + li { border-block-start: 1px solid color-mix(in srgb, var(--color-art-gold) 45%, transparent); }
.member-access-alert li > span { display: flex; flex-direction: column; }
.member-access-alert small { color: var(--color-text-muted); font-size: 0.8125rem; }
.member-access-alert .text-link { flex-shrink: 0; }
.member-workspace-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.member-workspace-card { display: flex; flex-direction: column; align-items: flex-start; min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); transition: border-color var(--transition), box-shadow var(--transition); }
.member-workspace-card:hover { border-color: color-mix(in srgb, var(--color-text) 22%, var(--color-border)); box-shadow: 0 0.75rem 1.75rem -1.25rem rgb(0 0 0 / 0.25); }
.member-workspace-card__icon { display: grid; place-items: center; flex-shrink: 0; inline-size: 2.75rem; block-size: 2.75rem; margin-block-end: 1.1rem; border-radius: 50%; background: var(--color-sport-sand); color: var(--color-primary); }
.member-workspace-card > div { flex: 1 1 auto; inline-size: 100%; }
.member-workspace-card h3 { font-size: 1.25rem; line-height: 1.2; text-wrap: balance; }
.member-workspace-card p { margin-block-start: 0.45rem; color: var(--color-text-muted); font-size: 0.9rem; line-height: 1.55; }
.member-workspace-card .button { gap: 0.6rem; min-block-size: 2.6rem; margin-block-start: 1.4rem; padding: 0.55rem 1.05rem; }
.member-section { padding-block: clamp(3.5rem, 6vw, 6rem); }
.member-section + .member-section:not(.member-section--soft), .member-section--soft + .member-section { border-block-start: 1px solid var(--color-border); }
.member-section__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-block-end: 2.5rem; }
.member-section__heading .eyebrow { margin-block-end: 0.9rem; }
.member-section__heading > p { max-inline-size: 32rem; color: var(--color-text-muted); }
.member-section__heading > .text-link { flex-shrink: 0; }
.member-section__heading--compact { margin-block-end: 2rem; }
.member-section--soft { margin-inline: calc(var(--page-gutter) * -0.35); padding-inline: calc(var(--page-gutter) * 0.35); border: 0; border-radius: var(--radius-large); background: var(--color-surface-soft); }
.member-section--club { margin-inline: calc(50% - 50vw); padding: clamp(2.5rem, 4vw, 4rem) max(var(--page-gutter), calc((100vw - var(--container-width)) / 2)); border: 0 !important; background: var(--color-surface-soft); }
.member-section.member-section--club + .member-section { border-block-start: 0; }
.member-section__inner { inline-size: 100%; max-inline-size: var(--container-width); margin-inline: auto; }
.member-section__heading-actions { display: flex; align-items: flex-end; flex-direction: column; gap: 0.75rem; max-inline-size: 32rem; color: var(--color-text-muted); text-align: end; }
.member-club-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 1rem; }
.member-club-list article { min-inline-size: 0; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.member-club-list article > a { display: flex; flex-direction: column; block-size: 100%; padding: 1.5rem; }
.member-club-list article > a > span:first-child { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 50%; background: var(--color-sport-sand); color: var(--color-primary); }
.member-club-list article > a > div { display: flex; flex: 1; flex-direction: column; min-inline-size: 0; }
.member-club-list .text-link { align-self: flex-start; margin-block-start: auto; padding-block-start: 1rem; font-size: 0.875rem; }
.member-club-list small { display: block; color: var(--color-primary); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.member-club-list h3 { margin-block-start: 0.7rem; overflow-wrap: anywhere; font-size: 1.55rem; }
.member-club-list p { margin-block-start: 0.85rem; color: var(--color-text-muted); font-size: 0.9375rem; line-height: inherit; }
.member-club-card__meta { margin-block-start: 1.5rem; text-transform: uppercase; }
.member-department-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1rem; }
.member-department-card { display: flex; flex-direction: column; min-block-size: 16rem; padding: 1.5rem; border: 1px solid var(--color-border); border-block-start: 4px solid var(--color-primary); border-radius: var(--radius-medium); background: var(--color-surface); }
.member-department-card--expired { border-block-start-color: var(--color-accent); }
.member-department-card--revoked { border-block-start-color: var(--color-border-dark); }
.member-department-card__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.member-status { display: inline-flex; align-items: center; inline-size: fit-content; padding: 0.35rem 0.65rem; border-radius: var(--radius-pill); background: var(--color-sport-sage); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.member-status--expired { background: var(--color-sport-sand); }
.member-status--revoked { background: var(--color-surface-soft); }
.member-role { color: var(--color-text-muted); font-size: 0.8125rem; }
.member-department-card h3 { margin-block-start: 1.75rem; font-size: 1.75rem; }
.member-department-card > p { margin-block-start: 0.65rem; color: var(--color-text-muted); }
.member-department-card .text-link { align-self: flex-start; margin-block-start: auto; padding-block-start: 1rem; }
.member-empty-note { padding: 2rem; border: 1px dashed var(--color-border); border-radius: var(--radius-medium); color: var(--color-text-muted); }
.member-activation-card, .member-code-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.8fr); align-items: center; gap: clamp(2rem, 7vw, 7rem); margin-block: clamp(2rem, 5vw, 5rem); padding: clamp(1.75rem, 4vw, 3.5rem); border-radius: var(--radius-medium); background: var(--color-surface-dark); color: var(--color-text-inverse); }
.member-activation-card .eyebrow, .member-code-card .eyebrow { color: var(--color-accent); }
.member-activation-card .eyebrow::before, .member-code-card .eyebrow::before { background: var(--color-accent); }
.member-activation-card h2, .member-code-card h2 { margin-block-start: 1rem; }
.member-activation-card > div:first-child > p:last-child, .member-code-card > div:first-child > p:last-child { max-inline-size: 36rem; margin-block-start: 1rem; color: var(--color-text-on-dark-muted); }
.member-activation-card__actions { display: flex; align-items: flex-start; flex-direction: column; gap: 0.75rem; }
.member-activation-card .text-link { border: 0; background: transparent; color: var(--color-text-inverse); }
.member-content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.member-content-grid--general { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.member-content-tile { display: flex; flex-direction: column; min-block-size: 18rem; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.member-content-tile__icon { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 50%; background: var(--color-sport-sand); color: var(--color-primary); }
.member-content-meta { margin-block-start: 1.5rem; text-transform: uppercase; }
.member-content-tile h3 { margin-block-start: 0.7rem; font-size: 1.55rem; }
.member-content-tile h3 + p { margin-block-start: 0.85rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.member-highlight-card { min-block-size: 16rem; }
.member-highlight-card > .text-link, .member-highlight-card > button.text-link { align-self: flex-start; margin-block-start: auto; padding-block-start: 1rem; border: 0; background: transparent; }
.member-highlight-card__excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.member-content-tile__text { margin-block-start: 0.85rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.member-content-tile__text h2 { font-size: 1.15rem; }
.member-info-relations { margin-block-start: 1rem; padding-block-start: 0.85rem; border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 0.8125rem; }
.member-info-relations li + li { margin-block-start: 0.35rem; }
.content-relations { display: grid; gap: 1rem; margin-block-start: 2rem; }
.content-relation-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.25rem; border: 1px solid var(--color-border); border-inline-start: 4px solid var(--color-primary); border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.content-relation-card h3 { font-size: 1.25rem; }
.content-relation-card p { margin-block-start: 0.4rem; color: var(--color-text-muted); }
.content-downloads { margin-block-start: 2rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--color-border); }
.content-downloads h2 { font-size: 1.5rem; }
.document-list { margin-block-start: 1rem; border-block-start: 1px solid var(--color-border); }
.document-row { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem 0.5rem; border-block-end: 1px solid var(--color-border); transition: background var(--transition), color var(--transition); }
.document-row:hover, .document-row:focus-within { background: var(--color-surface-soft); }
.document-row:focus-within { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.document-row::before { content: none; }
.document-row__icon { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50%; background: var(--color-sport-sand); color: var(--color-primary); }
.document-row__copy { min-inline-size: 0; }
.document-row__copy strong, .document-row__copy small { display: block; overflow-wrap: anywhere; }
.document-row__copy small { margin-block-start: 0.25rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.document-row__action { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0; border: 0; background: transparent; color: var(--color-primary); font-weight: 750; white-space: nowrap; }
.document-row__action .icon { inline-size: 1rem; }
.member-section--soft .member-content-tile { background: var(--color-background); }
.member-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.member-preview-grid--single { grid-template-columns: minmax(0, 1fr); }
.member-department-preview { display: flex; flex-direction: column; min-inline-size: 0; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.member-preview-grid--single .member-department-preview { display: grid; grid-template-columns: minmax(14rem, 0.75fr) minmax(20rem, 1.25fr); align-items: center; gap: 1rem clamp(2rem, 6vw, 6rem); }
.member-department-preview .eyebrow { color: var(--color-primary); }
.member-department-preview h3 { margin-block-start: 0.75rem; font-size: clamp(2rem, 4vw, 3rem); }
.member-department-preview ul { margin-block: 2rem; border-block-start: 1px solid var(--color-border); }
.member-department-preview li { display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; gap: 0.8rem; padding-block: 1rem; border-block-end: 1px solid var(--color-border); }
.member-department-preview li > span { color: var(--color-primary); }
.member-department-preview li small { display: block; color: var(--color-text-muted); font-size: 0.75rem; }
.member-department-preview li strong { display: block; overflow-wrap: anywhere; font-size: 0.9375rem; }
.member-department-preview__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 0.25rem 1.25rem; margin-block-start: auto; }
.member-preview-grid--single .member-department-preview__actions { grid-column: 1 / -1; padding-block-start: 0.5rem; border-block-start: 1px solid var(--color-border); }
.member-department-preview__actions .text-link { align-self: flex-start; }
.member-department-preview__actions .text-link + .text-link { padding-inline-start: 1.25rem; border-inline-start: 1px solid var(--color-border); }
.member-section--split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 6vw, 6rem); }
.member-section--split > div { min-inline-size: 0; }
.member-schedule { border-block-start: 1px solid var(--color-border); }
.member-schedule .event-card > a { padding-inline: 1rem; }
.member-schedule--dashboard { display: block; }
.member-schedule__date { display: flex; align-items: center; flex-direction: column; justify-content: center; inline-size: 4rem; block-size: 4rem; border-radius: var(--radius-small); background: var(--color-sport-sand); line-height: 1; }
.member-schedule__date strong { font-family: var(--font-display); font-size: 1.5rem; }
.member-schedule__date span { margin-block-start: 0.3rem; font-size: 0.6875rem; font-weight: 700; }
.member-schedule__meta { color: var(--color-primary); }
.member-document-list--dashboard { margin-block-start: 0; }
.member-documents-section .member-document-list--dashboard { max-inline-size: 64rem; }
.member-list-action { margin-block-start: 1rem; padding: 0; border: 0; background: transparent; }
.member-section--management .member-department-card { min-block-size: 14rem; }
.member-action-feedback { min-block-size: 1.75rem; color: var(--color-text-muted); font-size: 0.875rem; }
.member-action-feedback:not(:empty) { margin-block-start: 1.5rem; padding: 1rem 1.25rem; border-inline-start: 3px solid var(--color-accent); background: var(--color-surface-soft); }
.member-action-feedback.is-error, .member-auth-feedback.is-error { color: var(--color-primary); }
.member-auth-dialog { inline-size: min(31rem, calc(100vw - 2rem)); max-inline-size: calc(100vw - 2rem); margin: auto; overflow: auto; }
.member-auth-dialog [hidden] { display: none; }
.member-auth-dialog [data-auth-view] > h2 + p { margin-block-start: 1rem; }
.member-auth-dialog [data-auth-view] > p + p { margin-block-start: 0.75rem; }
.member-auth-dialog [data-auth-view] > .member-hero__actions { margin-block-start: 1.75rem; }
.member-auth-form { display: grid; min-inline-size: 0; gap: 1rem; margin-block-start: 1.5rem; }
.member-auth-form label { display: grid; gap: 0.45rem; font-size: 0.875rem; font-weight: 750; }
.member-auth-form input { min-inline-size: 0; inline-size: 100%; min-block-size: 3rem; padding: 0.75rem 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); color: var(--color-text); }
.member-auth-form input:focus, .member-profile-form input:focus { border-color: var(--color-primary); outline: 2px solid color-mix(in srgb, var(--color-primary) 20%, transparent); }
.member-auth-form small { color: var(--color-text-muted); font-weight: 500; }
.member-auth-form .button { justify-self: start; margin-block-start: 0.25rem; }
.member-auth-form .text-link, .member-verification-action { justify-self: start; padding: 0; border: 0; background: transparent; }
.member-auth-feedback { min-block-size: 1.5rem; margin-block-start: 1rem; color: var(--color-text-muted); font-size: 0.875rem; }
.member-auth-feedback:empty { min-block-size: 0; margin-block-start: 0; }
.member-password-field { position: relative; display: block; min-inline-size: 0; }
.member-password-field input { padding-inline-end: 7rem; }
.member-password-field button { position: absolute; inset-block: 0; inset-inline-end: 0.35rem; display: inline-flex; align-items: center; gap: 0.4rem; padding-inline: 0.55rem; border: 0; background: transparent; color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; }
.member-password-field button:hover { color: var(--color-primary); }
.member-password-field .icon { inline-size: 1rem; block-size: 1rem; }
.member-field-error { display: block; min-block-size: 1.15rem; color: var(--color-primary) !important; font-size: 0.75rem; font-weight: 650 !important; line-height: 1.35; }
.member-auth-form input[aria-invalid="true"], .member-profile-form input[aria-invalid="true"] { border-color: var(--color-primary); }
.member-code-card form label { display: block; margin-block-end: 0.6rem; font-size: 0.875rem; font-weight: 700; }
.member-code-card form > div { display: grid; grid-template-columns: 1fr auto; gap: 0.75rem; }
.member-code-card input { min-inline-size: 0; min-block-size: 3.25rem; padding: 0.75rem 1rem; border: 1px solid var(--color-border-dark); border-radius: var(--radius-small); background: var(--color-surface); color: var(--color-text); }
.member-code-card input:focus-visible { outline-color: var(--color-accent); }
.member-code-feedback { min-block-size: 1.5rem; margin-block-start: 0.75rem; color: var(--color-text-on-dark-muted); font-size: 0.8125rem; }
.member-code-feedback.is-error { color: #ffd3d3; }
.member-code-card__secondary { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--color-border-dark); }
.member-code-card__secondary h3 { font-size: 1.25rem; }
.member-code-card__secondary p { margin-block-start: 0.35rem; color: var(--color-text-on-dark-muted); font-size: 0.875rem; }
.member-code-card__secondary .text-link { flex: 0 0 auto; color: var(--color-text-inverse); }
.member-page-intro { max-inline-size: 58rem; padding-block: clamp(1.5rem, 4vw, 3.5rem) clamp(3rem, 6vw, 5rem); border-block-end: 1px solid var(--color-border); }
.member-page-intro .eyebrow { margin-block-end: 1rem; }
.member-page-intro h1 { font-size: clamp(3.4rem, 7vw, 6.5rem); line-height: 0.95; }
.member-page-intro > p:last-child { max-inline-size: 44rem; margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: clamp(1.05rem, 1.6vw, 1.2rem); }
.member-complete-list { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.member-month + .member-month { margin-block-start: 3.5rem; }
.member-month > h2 { margin-block-end: 1rem; color: var(--color-primary); font-size: 1rem; letter-spacing: 0.06em; text-transform: uppercase; }
.member-month .member-schedule { display: block; }
.member-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.member-profile-card { min-inline-size: 0; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.member-profile-card--wide { grid-column: 1 / -1; }
.member-profile-card .eyebrow { margin-block-end: 0.7rem; }
.member-profile-card h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.member-profile-card dl { margin-block-start: 1.5rem; }
.member-profile-card dl > div { display: grid; grid-template-columns: minmax(7rem, 0.45fr) minmax(0, 1fr); gap: 1rem; padding-block: 0.75rem; border-block-end: 1px solid var(--color-border); }
.member-profile-card dt { color: var(--color-text-muted); font-size: 0.82rem; font-weight: 700; }
.member-profile-card dd { margin: 0; overflow-wrap: anywhere; }
.member-profile-card .member-department-grid { margin-block: 1.5rem; }
.member-profile-card--wide > h2 + .member-empty-note { margin-block: 1.5rem 1rem; }
.member-profile-card--wide > h2 + p:not(.member-empty-note) { margin-block-start: 1.25rem; color: var(--color-text-muted); }
.member-access-list { margin-block: 1.5rem; border-block-start: 1px solid var(--color-border); }
.member-access-row { padding-block: 1.35rem; border-block-end: 1px solid var(--color-border); }
.member-access-row__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.member-access-row h3 { margin: 0; font-size: 1.35rem; }
.member-access-row > p { margin-block-start: 0.4rem; color: var(--color-text-muted); }
.member-access-row > small { display: block; margin-block-start: 0.35rem; color: var(--color-text-muted); font-size: 0.8125rem; }
.member-access-row > .text-link { margin-block-start: 0.75rem; }
.member-profile-status { display: inline-flex; margin-block-start: 1.5rem; padding: 0.55rem 0.75rem; border-radius: var(--radius-pill); background: var(--color-sport-sage); font-weight: 700; }
.member-profile-status--pending { background: var(--color-sport-sand); }
.member-verification-action { margin-block-start: 1rem; }
.member-profile-form { display: grid; gap: 1rem; margin-block-start: 1.5rem; }
.member-profile-form label { display: grid; gap: 0.4rem; font-size: 0.82rem; font-weight: 700; }
.member-profile-form input { inline-size: 100%; min-block-size: 3rem; padding: 0.75rem 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-background); color: var(--color-text); }
.member-profile-form .button { justify-self: start; }
.member-profile-email { display: grid; gap: 0.2rem; padding-block: 0.75rem; border-block: 1px solid var(--color-border); }
.member-profile-email span { color: var(--color-text-muted); font-size: 0.82rem; font-weight: 700; }
.member-profile-email strong { overflow-wrap: anywhere; font-weight: 500; }
.member-profile-functions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-block-start: 1.5rem; }
.member-profile-functions li { padding: 0.65rem 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-surface-soft); font-weight: 650; }
.member-info-detail { max-inline-size: 58rem; margin-inline: auto; padding-block: clamp(2rem, 5vw, 4rem); }
.member-info-detail header { padding-block-end: 2rem; border-block-end: 1px solid var(--color-border); }
.member-info-detail h1 { margin-block-start: 0.8rem; font-size: clamp(3rem, 7vw, 6rem); line-height: 0.96; }
.member-info-detail__body { margin-block-start: 2rem; }
.member-detail-band { margin-inline: calc(var(--page-gutter) * -1); padding-inline: var(--page-gutter); }
.member-document-detail { max-inline-size: 58rem; margin-inline: auto; padding-block: clamp(2rem, 5vw, 4rem); }
.member-document-detail header { padding-block-end: 2rem; border-block-end: 1px solid var(--color-border); }
.member-document-detail h1 { margin-block-start: 0.8rem; font-size: clamp(3rem, 7vw, 6rem); line-height: 0.96; }
.member-document-detail header > p:last-child { margin-block-start: 1rem; color: var(--color-text-muted); font-size: 1.05rem; }
.member-document-detail dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-block-start: 2rem; border-block-start: 1px solid var(--color-border); }
.member-document-detail dl > div { padding: 1.1rem 0; border-block-end: 1px solid var(--color-border); }
.member-document-detail dl > div:nth-child(odd) { padding-inline-end: 1.5rem; }
.member-document-detail dt { color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.member-document-detail dd { margin: 0.35rem 0 0; font-weight: 650; }
.member-document-detail__action { margin-block-start: 2rem; }
.member-document-unavailable-note { padding: 1rem 1.25rem; border-inline-start: 3px solid var(--color-accent); background: var(--color-surface-soft); color: var(--color-text-muted); }
.member-document-filters { display: flex; flex-wrap: wrap; gap: 0.65rem; padding-block: 2rem 1rem; }
.member-document-filters .filter-button { min-block-size: 2.75rem; padding: 0.65rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-text); font-weight: 700; }
.member-document-filters .filter-button:hover { border-color: var(--color-primary); background: var(--color-surface-soft); color: var(--color-primary); }
.member-document-filters .filter-button.is-active { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-text-inverse); }
.member-document-list--complete { margin-block: 1rem 2rem; }
.member-document-list--complete .document-row[hidden] { display: none; }
.member-info-documents { margin-block-start: 1rem; }
.member-info-documents .document-row { grid-template-columns: 2rem minmax(0, 1fr); gap: 0.65rem; }
.member-info-documents .document-row__icon { inline-size: 2rem; block-size: 2rem; }
.member-info-documents .document-row__action { grid-column: 2; justify-self: start; font-size: 0.8125rem; }
.member-section--detail:first-of-type { border-block-start: 0; }
.member-department-access { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; margin-block: clamp(2.5rem, 5vw, 5rem); padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--color-border); border-inline-start: 4px solid var(--color-accent); border-radius: var(--radius-medium); background: var(--color-surface-soft); }
.member-department-access > span { display: grid; place-items: center; inline-size: 3.25rem; block-size: 3.25rem; border-radius: 50%; background: var(--color-sport-sand); color: var(--color-primary); }
.member-department-access h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.member-department-access p { margin-block-start: 0.5rem; color: var(--color-text-muted); }
.member-department-public-link { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-block-start: 1rem; padding: 1.5rem 0; border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); }
.department-member-panel--preview { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.department-member-summary { display: grid; grid-template-columns: repeat(3, minmax(8rem, 1fr)); flex: 1; gap: 1rem; }
.department-member-summary li { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 0.15rem 0.75rem; min-inline-size: 0; }
.department-member-summary li > span { grid-row: 1 / 3; color: var(--color-primary); }
.department-member-summary strong { font-family: var(--font-display); font-size: 1.5rem; }
.department-member-summary small { color: var(--color-text-muted); font-size: 0.8125rem; }

@media (max-width: 900px) {
  .member-login-hero { grid-template-columns: 1fr; min-block-size: 0; }
  .member-login-hero__art { min-block-size: 24rem; transform: none; }
  .member-dashboard-hero { align-items: start; flex-direction: column; min-block-size: 0; }
  .member-content-grid, .member-workspace-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-content-tile:last-child { grid-column: 1 / -1; min-block-size: 14rem; }
  .member-club-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-preview-grid--single .member-department-preview { display: flex; }
  .member-preview-grid--single .member-department-preview__actions { padding-block-start: 0; border-block-start: 0; }
  .member-activation-card, .member-code-card, .member-section--split { grid-template-columns: 1fr; }
  .member-month .member-schedule { grid-template-columns: 1fr; }
  .department-member-panel--preview { align-items: stretch; flex-direction: column; }
}

@media (max-width: 650px) {
  .member-area__content { padding-block-start: 2rem; }
  .member-area__content--dashboard { padding-block-start: 0; }
  .member-area__content--dashboard > .member-dashboard-hero { padding-block-start: 2.75rem; }
  .member-login-hero { gap: 2.5rem; }
  .member-login-hero h1, .member-dashboard-hero h1 { font-size: clamp(3.2rem, 15vw, 4.8rem); }
  .member-login-hero__art { min-block-size: 19rem; font-size: clamp(3.5rem, 18vw, 5rem); }
  .member-hero__actions, .member-hero__actions .button { inline-size: 100%; }
  .member-dashboard-hero { gap: 2rem; padding-block-end: 3.5rem; }
  .member-dashboard-hero--active { padding-block-end: 2.75rem; }
  .member-dashboard-hero > .button { inline-size: 100%; }
  .member-dashboard-context { align-items: flex-start; border-radius: var(--radius-medium); }
  .member-access-alert li { align-items: flex-start; flex-direction: column; gap: 0.5rem; padding-block: 1rem; }
  .member-workspace-card .button { inline-size: 100%; }
  .member-profile-grid { grid-template-columns: 1fr; }
  .member-profile-card--wide { grid-column: auto; }
  .member-profile-card dl > div { grid-template-columns: 1fr; gap: 0.25rem; }
  .member-access-row__heading { align-items: flex-start; }
  .member-document-detail dl { grid-template-columns: 1fr; }
  .member-document-detail dl > div:nth-child(odd) { padding-inline-end: 0; }
  .content-relation-card { grid-template-columns: 1fr; }
  .document-row { grid-template-columns: 2.5rem minmax(0, 1fr); align-items: start; }
  .document-row__action { grid-column: 2; justify-self: start; }
  .member-section { padding-block: 3.5rem; }
  .member-section__heading { align-items: start; flex-direction: column; gap: 1rem; margin-block-end: 2rem; }
  .member-section__heading-actions { align-items: flex-start; text-align: start; }
  .member-content-grid, .member-preview-grid, .member-workspace-grid { grid-template-columns: 1fr; }
  .member-club-list { grid-template-columns: 1fr; }
  .member-schedule--dashboard { grid-template-columns: 1fr; }
  .member-schedule .event-card > a { padding-inline: 0.5rem; }
  .member-content-tile, .member-content-tile:last-child { grid-column: auto; min-block-size: 0; }
  .member-department-preview__actions { align-items: flex-start; flex-direction: column; gap: 0; }
  .member-department-preview__actions .text-link + .text-link { padding-inline-start: 0; border-inline-start: 0; }
  .member-section--management .member-department-card { min-block-size: 0; }
  .member-activation-card, .member-code-card { margin-inline: calc(var(--page-gutter) * -0.2); padding-inline: calc(var(--page-gutter) * 0.7); }
  .member-activation-card__actions, .member-activation-card__actions .button { inline-size: 100%; }
  .member-code-card form > div { grid-template-columns: 1fr; }
  .member-code-card form .button { inline-size: 100%; }
  .member-code-card__secondary { align-items: flex-start; flex-direction: column; }
  .member-department-access { grid-template-columns: 1fr; }
  .member-department-access .button { inline-size: 100%; }
  .member-department-public-link { align-items: flex-start; flex-direction: column; }
  .department-member-summary { grid-template-columns: 1fr; inline-size: 100%; }
  .department-member-summary li { padding-block: 0.75rem; border-block-end: 1px solid var(--color-border); }
}

/* Rechtliche Seiten (Impressum, Datenschutz): ruhige Textspalte, Inhaltsübersicht nur auf breiten Screens */
.legal-hero { padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(2.5rem, 4vw, 3.5rem); border-block-end: 1px solid var(--color-border); }
.legal-hero .eyebrow { margin-block-end: 1.1rem; }
.legal-hero h1 { font-size: clamp(2.75rem, 5.5vw, 4.75rem); line-height: 0.98; overflow-wrap: anywhere; hyphens: auto; }
.legal-hero__lead { max-inline-size: 40rem; margin-block-start: 1.25rem; color: var(--color-text-muted); font-size: clamp(1.02rem, 1.3vw, 1.15rem); line-height: 1.65; }
.not-found__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1.9rem; }
.legal-layout { display: grid; grid-template-columns: minmax(0, 46rem); padding-block: clamp(2.5rem, 5vw, 4.5rem) var(--section-space); }
.legal-layout--toc { grid-template-columns: minmax(13rem, 17rem) minmax(0, 46rem); gap: clamp(3rem, 6vw, 6rem); }
.legal-toc { position: sticky; inset-block-start: calc(var(--header-height) + 1.5rem); align-self: start; max-block-size: calc(100vh - var(--header-height) - 3rem); overflow-y: auto; font-size: 0.875rem; line-height: 1.4; }
.legal-toc .eyebrow { margin-block-end: 0.9rem; }
.legal-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: legal-toc; }
.legal-toc li { counter-increment: legal-toc; }
.legal-toc a { display: grid; grid-template-columns: 1.75rem 1fr; padding-block: 0.4rem; color: var(--color-text-muted); transition: color var(--transition); }
.legal-toc a::before { content: counter(legal-toc) "."; color: var(--color-primary); font-weight: 700; font-variant-numeric: tabular-nums; }
.legal-toc a:hover { color: var(--color-text); }
.legal-content { min-inline-size: 0; color: var(--color-text-muted); font-size: 1.0625rem; line-height: 1.75; overflow-wrap: break-word; }
.legal-section + .legal-section { margin-block-start: clamp(2.25rem, 4vw, 3rem); padding-block-start: clamp(2.25rem, 4vw, 3rem); border-block-start: 1px solid var(--color-border); }
.legal-section h2 { margin-block-end: 1rem; color: var(--color-text); font-size: clamp(1.45rem, 2.3vw, 1.85rem); letter-spacing: -0.035em; }
.legal-section h2 .legal-number { margin-inline-end: 0.5rem; color: var(--color-primary); }
.legal-section h3 { margin-block: 1.75rem 0.6rem; color: var(--color-text); font-size: 1.125rem; letter-spacing: -0.02em; }
.legal-section > * + * { margin-block-start: 0.9rem; }
.legal-section > h3 + * { margin-block-start: 0; }
.legal-section strong { color: var(--color-text); }
.legal-section ul { padding-inline-start: 1.25rem; list-style: disc; }
.legal-section li + li { margin-block-start: 0.35rem; }
.legal-section li::marker { color: var(--color-primary); }
.legal-section a { color: var(--color-primary); font-weight: 700; text-decoration: underline; text-underline-offset: 0.18em; }
.legal-section a:hover { color: var(--color-primary-hover); }
.legal-section address, .legal-content--facts { color: var(--color-text); }
.legal-section__label { color: var(--color-text); font-weight: 700; }
.legal-meta { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); padding-block-start: 1.25rem; border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 0.875rem; }
@media (max-width: 1000px) {
  .legal-layout--toc { grid-template-columns: minmax(0, 46rem); }
  .legal-toc { display: none; }
}
@media (max-width: 600px) {
  .legal-hero h1 { font-size: clamp(2.4rem, 11vw, 3.25rem); }
  .legal-content { font-size: 1rem; line-height: 1.7; }
}

/* Landingpage /mitglied-werden/ */
.handover-hero { align-items: center; }
.handover-hero h1 { max-inline-size: 14ch; }
.handover-panel { display: grid; gap: 1rem; max-inline-size: 28rem; padding: clamp(1.5rem, 3vw, 2rem); border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: var(--shadow-card); }
.handover-panel__label { color: var(--color-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.handover-panel__title { font-size: clamp(1.5rem, 3vw, 1.875rem); }
.handover-panel__cta { inline-size: 100%; }
.handover-panel__note { color: var(--color-text-muted); font-size: 0.875rem; line-height: 1.6; }
.handover-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.handover-steps li { display: flex; flex-direction: column; align-items: flex-start; min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.handover-steps__marker { color: var(--color-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.handover-steps h3 { margin-block-start: 2.5rem; font-size: 1.5rem; }
.handover-steps p { max-inline-size: 30rem; margin-block-start: 0.75rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.handover-steps__marker + p { margin-block-start: 2.5rem; color: var(--color-text); font-size: 1.0625rem; }
.handover-steps .text-link { margin-block-start: auto; padding-block-start: 0.75rem; }
@media (max-width: 900px) {
  .handover-steps { grid-template-columns: 1fr; }
  .handover-steps h3, .handover-steps__marker + p { margin-block-start: 1.25rem; }
}
@media (max-width: 800px) {
  .handover-panel { max-inline-size: 36rem; }
}
