/* Nur Kalender-Komponenten. Standardklassen aus main-2026-06-18.css:
   hero--topic/small, page-text, section-heading, contact-card, surface-card, person-name,
   button, subnav und eyebrow. Gemeinsame Typografie liegt im Website-CSS. */
.advent { --advent-tint: #eff8fb; --eyebrow-color: #456781; }
/* Das Modul lädt dieses Stylesheet nur auf Kalenderseiten und der Club-Startseite.
   Kalender- und Unterseitentitel dürfen im bestehenden Header mobil umbrechen. */
body.hero-topic .hero h1, body.hero-small .hero h1 { white-space: normal; }
.advent [id] { scroll-margin-top: 1.5rem; }
.advent h3 { color: var(--blue); line-height: 1.25; }
.advent p { margin-top: 0; }
/* Entspricht den Fließtextlinks in .content-from-db auf den übrigen Seiten. */
.advent :is(p a, .advent-location a) { color: inherit; text-decoration-line: underline; text-decoration-color: rgba(249,201,16,.9); text-decoration-thickness: .16em; text-underline-offset: .18em; }
.advent :is(p a, .advent-location a):is(:hover,:focus-visible) { color: var(--theme-color); text-decoration-color: var(--theme-color); }
.advent-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,.82fr);
  grid-template-areas: "heading cover" "details cover";
  grid-template-rows: min-content min-content;
  gap: 0 clamp(2rem,6vw,5.5rem);
  align-content: center;
  align-items: center;
  width: 100%;
  max-width: none;
  min-height: 28rem;
  padding-block: clamp(2.25rem,4vw,3.5rem);
  padding-bottom: calc(clamp(2.25rem,4vw,3.5rem) + 1.5rem);
  padding-inline: max(var(--content-edge),calc((100% - var(--max)) / 2));
  background: var(--advent-tint);
  color: var(--blue);
}
.advent-title { color: var(--blue); font-size: clamp(2.4rem,4.2vw,3.5rem); line-height: 1.05; letter-spacing: -.035em; margin: .65rem 0 1.25rem; font-weight: 900; text-wrap: balance; }
.advent-hero-heading { grid-area: heading; align-self: end; }
.advent-hero-details { grid-area: details; align-self: start; }
.advent .advent-intro { margin-bottom: 0; }
.advent-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.advent-actions .button, .advent-actions p { margin: 0; }
.advent-actions .advent-primary { --button-hover-bg: color-mix(in srgb, var(--nav-underline) 86%, #fff); background: var(--nav-underline); border-color: var(--blue); color: var(--blue); }
.advent-actions .advent-primary:hover, .advent-actions .advent-primary:focus-visible { background: var(--button-hover-bg); }
.advent .advent-actions p { font-size: 1.125rem; }
.advent-cover { grid-area: cover; margin: 0 .9rem 1rem 0; justify-self: end; width: min(31rem,calc(100% - 1rem)); }
.advent-cover-frame { position: relative; border: .65rem solid #fff; transform: rotate(1.4deg); box-shadow: 0 1.4rem 3rem rgba(11,53,88,.24); }
.advent-cover img { width: 100%; height: auto; }
.advent-cover figcaption { position: relative; text-align: right; }
/* Optionaler Jahreskreis; gemeinsam mit der Ausgabe in overview.php aktivieren.
.advent-year { position: absolute; right: -.75rem; bottom: -1.5rem; display: grid; place-items: center; width: clamp(5.5rem,9vw,7rem); aspect-ratio: 1; padding: .5rem; color: #fff; background: #b32352; font-size: clamp(1.75rem,2.5vw,2.1rem); font-weight: 900; line-height: 1; border-radius: 50%; box-shadow: 0 .7rem 1.4rem rgba(179,35,82,.24); }
*/
.advent-band { position: relative; z-index: 2; margin-top: -2.2rem; background: transparent; }
.advent-facts { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); border-radius: .35rem; }
.advent-facts p { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; margin: 0; padding: 1.25rem 1.35rem; }
.advent-facts p:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 1.1rem; bottom: 1.1rem; border-right: 1px solid #dfe7ed; }
.advent-facts strong { display: block; color: var(--blue); font-size: clamp(1.5rem,3vw,2.2rem); line-height: 1.1; }
.advent-facts p > span { display: block; margin-top: .6rem; color: var(--eyebrow-color); font-size: var(--font-label); line-height: 1.35; font-weight: 400; }
.advent-fact-prefix { color: var(--eyebrow-color); font-size: .55em; font-weight: 400; }
.advent-fact-amount { white-space: nowrap; }
.advent-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.advent #so-funktionierts { width: 100%; max-width: none; margin-top: clamp(2rem,4vw,3rem); padding-inline: max(var(--content-edge),calc((100% - var(--max)) / 2)); background: var(--advent-tint); }
.advent-steps article { padding: 1.5rem; background: #fff; }
.advent-steps h3 { display: flex; align-items: center; gap: .65rem; margin: 0 0 .8rem; font-size: 1.375rem; }
.advent-steps h3 span { flex: 0 0 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: var(--nav-underline); }
.advent-steps p { margin-bottom: 0; }
.advent-impact { display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: 3rem; }
.advent-sales-photo { margin: 0; }
.advent-sales-photo img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 65%; border-radius: .35rem; box-shadow: 0 .75rem 2rem rgba(11,53,88,.12); }
.advent-prizes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.advent-prize { padding: 1.5rem; }
.advent-prize p:last-child { margin-bottom: 0; }
.advent-rank, .advent-number { background: var(--nav-underline); color: var(--blue); padding: .25rem .55rem; border-radius: .2rem; font-weight: 700; }
.advent-rank { display: inline-grid; place-items: center; min-height: 2.3rem; padding-inline: .7rem; border-radius: 999px; font-size: .82rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.advent > .section > .advent-prizes { grid-template-columns: repeat(6,minmax(0,1fr)); }
.advent > .section > .advent-prizes > .advent-prize { grid-column: span 2; min-height: 12rem; }
.advent > .section > .advent-prizes > .advent-prize:nth-child(n+4) { grid-column: span 3; background: #fff; }
.advent > .section > .advent-prizes > .advent-prize:first-child { background: var(--blue); color: #fff; }
.advent > .section > .advent-prizes > .advent-prize:first-child h3 { color: #fff; }
.advent > .section > .advent-prizes > .advent-prize:first-child .advent-sponsor { color: #dcebf3; }
.advent-main-prizes { width: 100%; max-width: none; border: 0; border-radius: 0; background: var(--advent-tint); padding-inline: max(var(--content-edge),calc((100% - var(--max)) / 2)); }
.advent .advent-sponsor { display: block; color: #4d5e6a; font-weight: 400; font-size: var(--font-label); line-height: 1.45; margin-top: .35rem; overflow-wrap: anywhere; }
.advent-count { font-weight: 400; color: #526477; }
.advent-category + .advent-category { margin-top: 3rem; }
/* Katalog: bestehende Hauptpreis-Gestaltung, eigene klare Texthierarchie. */
.advent-catalogue-intro { padding-bottom: clamp(1.5rem,3vw,2rem); }
.advent-catalogue-intro .lead:last-child { margin-bottom: 0; }
.advent-catalogue-intro .page-text > p:last-child { margin-bottom: 0; }
.advent-catalogue-intro + .advent-catalogue-main { padding-top: clamp(1.5rem,3vw,2rem); }
.advent .advent-catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.advent-catalogue-card { display: flex; flex-direction: column; min-width: 0; }
.advent-catalogue-card .advent-rank { align-self: flex-start; }
.advent .advent-catalogue-card h3,
.advent .advent-catalogue-main .advent-prizes .advent-catalogue-card h3 { margin: 0 0 .7rem; font-size: var(--font-list-title); line-height: 1.25; overflow-wrap: anywhere; }
.advent .advent-catalogue-main .advent-prizes .advent-catalogue-card h3 { margin-top: 1.15rem; }
.advent .advent-catalogue-card .advent-sponsor { margin: 0 0 1.25rem; }
.advent .advent-catalogue-card .advent-prize-value { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .35rem 1rem; margin: auto 0 0; padding-top: .75rem; color: var(--blue); }
.advent-catalogue-card .advent-value-label { color: #4d5e6a; font-size: var(--font-label); line-height: 1.4; }
.advent-catalogue-card .advent-prize-value strong { font-size: 1.75rem; line-height: 1.2; font-weight: 700; white-space: nowrap; }
.advent .advent-catalogue-main .advent-prize:first-child .advent-prize-value { color: #fff; }
.advent .advent-catalogue-main .advent-prize:first-child .advent-value-label { color: #dcebf3; }
.advent-main-sponsors { background: #fff; padding-bottom: clamp(1.5rem,3vw,2rem); }
.advent-main-sponsors + #gewinn-abholen { padding-top: clamp(1.5rem,3vw,2rem); }
.advent-sponsor-logos { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: start; gap: 1.5rem 2rem; margin: 0; padding: 0; list-style: none; }
.advent-sponsor-logos li { min-width: 0; text-align: center; }
.advent-logo-slot { display: flex; align-items: center; justify-content: center; height: 6rem; }
.advent-logo-slot img { display: block; max-width: 100%; width: auto; height: auto; max-height: 5rem; object-fit: contain; }
.advent .advent-sponsor-logos .advent-sponsor { margin: .75rem 0 0; }
.advent .advent-sponsor-thanks { margin: 0 0 2rem; }
.advent-calendar-footer { border-top: 1px solid #d5dfe6; padding-block: 1.25rem; }
.advent-calendar-footer .advent-small { margin: 0; }
/* Die untere Linie liegt im Website-Footer. Dessen zusätzlicher oberer
   Innenabstand würde die 1,25 rem unter dem Rechtstext nochmals vergrößern. */
#content:has(.advent-calendar-footer) + .site-footer { padding-top: 0; }
@media (max-width: 680px) {
  .advent .advent-catalogue-grid { grid-template-columns: minmax(0,1fr); }
}
/* Ergebnis, Tagesübersicht und Abholstelle folgen der bestehenden Abholbox. */
.advent .advent-box { width: 100%; max-width: none; margin-inline: 0; padding: clamp(1.5rem,4vw,2.5rem); border: 0; border-radius: 0; background: var(--advent-tint); color: var(--blue); }
.advent-box .advent-box-heading { display: flex; align-items: center; gap: .75rem; margin: 0; color: var(--blue); }
.advent-box .advent-box-heading h2 { min-width: 0; margin: 0; font-size: clamp(1.65rem,3vw,2.35rem); line-height: 1.1; font-weight: 700; letter-spacing: normal; color: var(--blue); }
.advent-box-heading > svg { box-sizing: border-box; flex: 0 0 2.6rem; width: 2.6rem; height: 2.6rem; margin: 0; padding: .55rem; border: 0; border-radius: 50%; background: var(--nav-underline); color: var(--blue); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.advent-day-results > .advent-box-heading { margin-bottom: 1.5rem; }
.advent-pickup { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.5rem 2rem; }
.advent-pickup-heading { grid-column: 1/-1; }
.advent-pickup address, .advent-location address { font-style: normal; }
.advent-pickup p:last-child { margin-bottom: 0; }
.advent-pickup address + p { margin-top: .75rem; }
.advent-locations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.advent-location { display: flex; gap: .8rem; align-items: flex-start; min-width: 0; padding: 1.5rem; }
.advent-location > svg { flex: 0 0 2.6rem; width: 2.6rem; height: 2.6rem; padding: .55rem; border-radius: 50%; background: var(--nav-underline); color: var(--blue); }
.advent-location > div { min-width: 0; }
.advent-location address p { margin: 0; }
.advent-location a { display: inline-block; margin-top: .5rem; }
.advent-map-link { font-size: 1.125rem; white-space: nowrap; }
.advent-map-arrow { display: inline-block; width: .9em; height: .9em; margin-left: .15em; vertical-align: -.08em; }
.advent-notice { padding: clamp(1.25rem,3vw,2rem); background: var(--advent-tint); border-radius: .35rem; }
.advent-checker { padding: clamp(1.5rem,4vw,2.5rem); border-radius: 0; background: var(--blue); color: #fff; }
.advent-checker label { display: block; margin-bottom: .75rem; color: #fff; font-size: 1.4rem; font-weight: 700; }
.advent-checker :is(p,h2,h3,strong,label) { color: #fff; }
.advent-checker .advent-sponsor, .advent-checker .advent-small { color: #dcebf3; }
.advent-checker .advent-form-row input { color: var(--blue); border-color: #fff; }
.advent-checker .advent-form-row .button { --button-hover-bg: color-mix(in srgb, var(--nav-underline) 86%, #fff); background: var(--nav-underline); border-color: var(--nav-underline); color: var(--blue); }
.advent-checker .advent-form-row .button:is(:hover,:focus-visible) { background: var(--button-hover-bg); }
.advent-checker :is(input,button,a):focus-visible { outline-color: var(--nav-underline); box-shadow: none; }
.advent-checker-notes { display: grid; gap: .25rem; margin-top: .75rem; }
.advent-checker .advent-checker-notes p { margin: 0; font-size: 1.125rem; line-height: 1.45; font-weight: 400; color: #dcebf3; }
.advent-form-row { display: flex; align-items: stretch; flex-wrap: wrap; gap: .75rem; }
.advent-form-row input { width: 13rem; max-width: 100%; min-width: 0; border: 1px solid var(--blue); border-radius: .35rem; padding: .8rem; font: inherit; background: #fff; }
.advent-form-row .button { margin-top: 0; font-family: inherit; cursor: pointer; }
.advent-check-result { margin-top: 1.5rem; }
.advent-feedback { padding: clamp(1.5rem,4vw,2.5rem); background: var(--advent-tint); color: var(--blue); }
.advent-feedback p:last-child { margin-bottom: 0; }
.advent-success { margin-top: 0; }
.advent .advent-success-message { margin: 1.5rem 0 0; font-size: var(--font-body); line-height: 1.5; color: var(--blue); }
.advent-success-message .advent-number { padding: .125rem .375rem; border-radius: .1875rem; background: var(--nav-underline); color: var(--blue); font-weight: 700; }
.advent-success-prizes { margin-top: 1.5rem; }
.advent-match { border-top: 1px solid #d5dfe6; padding: 1.25rem 0; margin: 0; }
.advent-match:last-child { padding-bottom: 0; }
.advent .advent-win-date { margin: 0 0 .375rem; color: #456781; font-size: var(--font-eyebrow); line-height: 1.4; font-weight: 700; }
/* Derselbe Gewinn-Titel und dieselbe Spenderzeile in Treffer und Tagesliste. */
.advent .advent-win-title { display: block; margin: 0; color: var(--blue); font-size: clamp(1.25rem,2.3vw,1.5rem); line-height: 1.25; font-weight: 700; overflow-wrap: anywhere; }
.advent .advent-win-title + .advent-sponsor { margin: .375rem 0 0; color: #4d5e6a; font-size: var(--font-label); line-height: 1.45; font-weight: 400; }
.advent .advent-success-action { margin: 1.5rem 0 0; padding-top: 1.5rem; border-top: 1px solid #d5dfe6; }
.advent-success-action a:focus-visible { outline-color: var(--blue); }
.advent .advent-small { font-size: 1.125rem; }
.advent-small { margin: 1rem 0 0; color: #4d5e6a; }
.advent-number { font-variant-numeric: tabular-nums; white-space: nowrap; }
.advent-day-section { margin-top: 3rem; }
.advent-calendar-figure { margin: 0; }
.advent-doors { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); grid-template-rows: repeat(4,minmax(0,1fr)); aspect-ratio: 2164/1531; background: var(--calendar-image) center/cover no-repeat; border-radius: .35rem; overflow: hidden; }
.advent-door { display: grid; place-items: end; padding: 10%; border: 1px solid #ffffff70; text-decoration: none; min-width: 0; }
.advent-door > span { display: grid; place-items: center; min-width: 1.45em; height: 1.45em; border-radius: 50%; background: var(--nav-underline); color: var(--blue); font-size: clamp(1.05rem,3.6vw,2.5rem); font-weight: 800; line-height: 1; }
.advent-door--pending > span { background: var(--blue); color: #fff; }
.advent-door:hover:not(.advent-door--pending), .advent-door:focus-visible { background: #ffffff55; outline-offset: -4px; }
.advent-door[aria-current="true"] { box-shadow: inset 0 0 0 4px var(--nav-underline); background: #f9c91030; }
.advent-day-results[hidden] { display: none !important; }
.advent-day-results .advent-table { background: #fff; }
.advent-day-results .advent-table th { background: var(--blue); color: #fff; }
.advent-day-results .advent-table :is(th,td) { padding-inline: 1rem; }
.advent-table { width: 100%; border-collapse: collapse; text-align: left; }
.advent-table th { color: var(--blue); font-size: .9rem; }
.advent-table th, .advent-table td { padding: 1rem .75rem 1rem 0; border-bottom: 1px solid #d5dfe6; vertical-align: top; }
.advent-table th:first-child { width: 10rem; }
.advent-table td:last-child { overflow-wrap: anywhere; }
.advent-teaser { margin-top: clamp(3rem,5vw,4rem); margin-bottom: 0; }
.advent-teaser .advent-teaser-card {
  --card-color: var(--nav-underline);
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(10rem,.45fr);
  grid-template-rows: auto;
  align-items: center;
  min-height: 12rem;
  gap: 2rem;
  overflow: visible;
  color: var(--blue);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.advent-teaser-copy { grid-column: 1; min-width: 0; }
.advent-teaser-card h2 { margin: 0 0 .75rem; font-size: clamp(1.85rem,3.35vw,2.75rem); line-height: .98; font-weight: 800; }
.advent-teaser-card p { max-width: 38rem; margin: 0; line-height: 1.5; }
.advent-teaser .advent-teaser-cta { margin-top: 1rem; background: transparent; border-color: currentColor; color: var(--blue); font-weight: 700; text-decoration: none; white-space: nowrap; }
/* Hover/Focus: bestehende Regeln .topic-card ... .button--ghost aus dem Haupt-CSS. */
.advent-teaser-artwork { position: absolute; top: -1.3rem; right: clamp(2rem,4vw,3.15rem); width: min(29%,20rem); margin: 0; pointer-events: none; }
.advent-teaser-card .advent-teaser-image { width: 100%; height: auto; border: .35rem solid #fff; transform: rotate(7deg); box-shadow: 0 .8rem 1.8rem rgba(11,53,88,.28); }
.advent-teaser .advent-teaser-card:focus-visible { outline-color: var(--blue); }
/* Mobil gelten die unveränderten Abstände der vorhandenen .topic-card und .button.
   Der größere Kalender wird vom Text umflossen, statt dessen Spalte dauerhaft zu verengen. */
@media (min-width: 621px) {
  .advent-teaser .advent-teaser-card { padding: clamp(1.5rem,2.5vw,2rem) clamp(2rem,4vw,3.15rem); }
}
@media (min-width: 1024px) {
  .advent-hero { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: clamp(2rem,4vw,3.5rem); }
  .advent-cover { width: min(34rem,calc(100% - 1rem)); }
}
@media (max-width: 900px) {
  .advent > .section > .advent-prizes { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .advent > .section > .advent-prizes > .advent-prize,
  .advent > .section > .advent-prizes > .advent-prize:nth-child(n+4) { grid-column: auto; }
}
@media (max-width: 760px) {
  .advent-facts { grid-auto-flow: row; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .advent-facts p:nth-child(2n)::after { content: none; }
  .advent-facts p:nth-child(n+3)::before { content: ""; position: absolute; left: 1rem; right: 1rem; top: 0; border-top: 1px solid #dfe7ed; }
  .advent-hero, .advent-impact { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .advent-hero { grid-template-areas: "heading" "cover" "details"; grid-template-rows: auto; gap: 1.5rem; min-height: 0; padding-block: 2rem 4.5rem; }
  .advent-title { font-size: clamp(1.6rem,6.9vw,3rem); text-wrap: wrap; margin-bottom: 0; }
  .advent-cover { justify-self: center; margin-bottom: 0; }
  .advent-prizes { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .advent-pickup { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 680px) {
  .advent-sponsor-logos { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem 1rem; }
  .advent > .section > .advent-prizes { grid-template-columns: minmax(0,1fr); }
  .advent-locations { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .advent-location { padding: 1.25rem; }
}
@media (max-width: 640px) {
  .advent-steps { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 620px) {
  .advent-day-results .advent-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .advent-day-results .advent-table :is(tbody,tr,td) { display: block; width: auto; }
  .advent-day-results .advent-table tr { padding: 1rem; border-bottom: 1px solid #d5dfe6; }
  .advent-day-results .advent-table td { padding: .35rem 0; border: 0; }
  .advent-teaser .advent-teaser-card { display: block; min-height: 0; }
  .advent-teaser-copy { display: flow-root; }
  .advent-teaser-card h2 { margin-bottom: 1rem; font-size: clamp(1.55rem,5.8vw,2rem); line-height: 1.05; }
  .advent-teaser .advent-teaser-cta { vertical-align: top; }
  .advent-teaser-artwork { position: relative; float: right; top: auto; right: auto; width: clamp(7rem,34vw,11rem); margin: .25rem 0 .75rem .75rem; }
  .advent-teaser-card .advent-teaser-image { border-width: 2px; transform: rotate(5deg); }
}
@media (max-width: 480px) {
  .advent-band { margin-top: -1.35rem; }
  .advent-facts p { padding: 1rem .75rem; }
  .advent-steps, .advent-prizes { grid-template-columns: minmax(0,1fr); }
  .advent-table th:first-child { width: 6.5rem; font-size: .78rem; }
  .advent-table th, .advent-table td { padding-right: .5rem; }
}
