/* ==========================================================================
   Waldesruh Himmerich – Anpassung der Komponenten an WordPress-Blöcke.
   components.css beschreibt das Design; diese Datei ordnet es den
   Block-Strukturen zu (figure statt img, p statt span, Block-Stile usw.).
   ========================================================================== */

/* Grundlagen ---------------------------------------------------------------- */
body { background: var(--bg); }
.wp-site-blocks { overflow-x: clip; }
.site-main { display: block; }
.site-main--seite { padding-top: var(--header-h); }
.wp-block-post-content > * { margin-block: 0; }
.wp-block-image { margin: 0; }
.wp-block-image img { display: block; }
.wp-block-heading { margin: 0; }
.wp-block-group p:last-child { margin-bottom: 0; }
:where(.wp-block-group) > .wp-block-buttons { margin-top: 0; }
.editor-styles-wrapper { background: var(--bg); color: var(--fg); font-family: var(--font-body); }

/* Abstände, die im Entwurf per Inline-Style gesetzt waren */
.h2 + .lead { margin-top: 18px; }
.section-head .wp-block-buttons { margin-top: 22px; }
.split .chip-row { margin: 6px 0 26px; }
.timeline-more { margin-top: 40px; }
.notify .small { margin-top: 18px; }

/* Buttons (Block-Stile) ------------------------------------------------------ */
.wp-block-buttons { gap: 12px; }
.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 26px; border-radius: 999px;
  background: var(--forest-700); color: var(--cream-50); border: 1.5px solid transparent;
  font-family: var(--font-body); font-weight: 700; font-size: .98rem; letter-spacing: .01em; line-height: 1.2; text-decoration: none;
  transition: transform .25s var(--ease), background-color .25s, color .25s, border-color .25s, box-shadow .25s;
}
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -12px rgba(0,0,0,.45); background: var(--forest-800); color: var(--cream-50); }
.wp-block-button.is-style-gold .wp-block-button__link { background: var(--gold-400); color: var(--night-950); }
.wp-block-button.is-style-gold .wp-block-button__link:hover { background: var(--gold-300); }
.wp-block-button.is-style-light .wp-block-button__link { background: var(--cream-50); color: var(--forest-900); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: currentColor; border-color: currentColor; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: rgba(255,255,255,.08); }
.wp-block-button.is-style-club .wp-block-button__link,
.wp-block-button.is-style-club-outline .wp-block-button__link {
  border-radius: 6px; font-family: var(--font-club); text-transform: uppercase; letter-spacing: .07em; font-weight: 800; font-size: .88rem;
}
.wp-block-button.is-style-club .wp-block-button__link { background: var(--club-akzent); color: var(--club-akzent-text); }
.wp-block-button.is-style-club .wp-block-button__link:hover { background: var(--club-akzent-hover); }
.wp-block-button.is-style-club-outline .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.wp-block-button.is-style-club-outline .wp-block-button__link:hover { background: #fff; color: #0b0b0b; }
.is-style-mood-ruhe .wp-block-button:not([class*="is-style-"]) .wp-block-button__link { background: var(--accent-strong); }
.btn-small .wp-block-button__link { min-height: 40px; padding: 0 18px; font-size: .9rem; }

/* Pfeil-Links; „is-stretched“ macht die ganze Karte klickbar */
.link-arrow a { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: 8px; font-weight: 700; text-decoration: none; color: var(--accent); }
.link-arrow a::before { content: "→"; transition: transform .25s var(--ease); }
.link-arrow a:hover::before { transform: translateX(4px); }
.is-stretched a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.is-stretched a:focus-visible { outline: none; }
.is-stretched a:focus-visible::after { outline: 3px solid var(--gold-400); outline-offset: -3px; border-radius: inherit; }

/* Bild als Hintergrund (Block-Stil „Als Hintergrundbild“) */
.is-style-hintergrund, .bg-image { position: absolute; inset: 0; z-index: -2; overflow: hidden; margin: 0; }
.is-style-hintergrund img, .bg-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }

/* Kleine Textbausteine als Absätze */
p.chip, p.img-label, p.status, p.club-status, p.occasion__tag, p.step__now, p.formula__op { margin: 0; }
p.chip { display: inline-flex; }
p.img-label { position: absolute; }

/* Kopfzeile -------------------------------------------------------------------- */
.site-header .site-header__inner { display: flex; align-items: center; gap: 28px; height: 100%; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header .brand { color: inherit; }
.site-header .wp-block-navigation { margin-left: auto; gap: 2px; font-size: .96rem; font-weight: 600; }
.site-header .wp-block-navigation .wp-block-navigation-item__content { padding: 10px 12px; border-radius: 999px; text-decoration: none; transition: background-color .2s; }
.site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { background: rgba(43,40,35,.06); }
.site-header.is-transparent:not(.is-scrolled) .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { background: rgba(255,255,255,.12); }
.site-header .wp-block-navigation-submenu__toggle { padding-left: 0; }
.site-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
  min-width: 340px; padding: 10px; border: 0; border-radius: var(--radius-m); background: #fff; color: var(--ink-900);
  box-shadow: 0 24px 60px -18px rgba(20, 30, 22, .35), 0 0 0 1px rgba(43,40,35,.06); top: calc(100% + 6px);
}
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: grid; gap: 2px; padding: 11px 14px; border-radius: 12px; }
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--cream-100); }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-weight: 700; }
.site-header .wp-block-navigation-item__description { display: block; font-size: .84rem; font-weight: 400; color: var(--ink-500); line-height: 1.4; }
.site-header > .site-header__inner > .wp-block-navigation .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation-item__description { display: none; }
.site-header .header-cta { flex: none; }
.site-header .header-cta .wp-block-button__link { min-height: 40px; padding: 0 18px; font-size: .9rem; background: var(--gold-400); color: var(--night-950); }
/* Mobiles Menü (Overlay von WordPress) */
.site-header .wp-block-navigation__responsive-container-open { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid currentColor; place-items: center; }
@media (max-width: 599px) { .site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; } }
.site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--cream-50) !important; color: var(--ink-900) !important; padding: 24px var(--gutter); }
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(43,40,35,.1); }
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; padding: 14px 4px; }
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { min-width: 0; box-shadow: none; padding: 0 0 10px; background: transparent; }
@media (max-width: 599px) { .site-header .site-header__inner { gap: 10px; } .site-header .header-cta { margin-left: auto; } }
@media (min-width: 600px) { .site-header .wp-block-navigation { margin-left: auto; } }

/* Hero ------------------------------------------------------------------------ */
.hero > .hero__media { position: absolute; inset: 0; z-index: -2; margin: 0; }
.hero > .hero__media img { width: 100%; height: 100%; }
.hero .display { margin-bottom: 24px; }
.hero__cards { align-self: end; }
.status-card { position: relative; }
.status-card p { margin: 0; }
.status-card .status-card__label { margin-bottom: 10px; }
.status-card .status-card__title { margin-bottom: 14px; }
.status-card__steps p:first-child { color: #fff; font-weight: 700; }
.status-card--event { border-left: 3px solid var(--ev, var(--gold-400)); transition: transform .3s var(--ease), border-color .3s; }
.status-card--event:hover { transform: translateY(-3px); }
.status-card--event .status-card__label { color: color-mix(in srgb, var(--ev, var(--gold-300)) 60%, #fff); }
.status-card--event .status-card__title a { color: inherit; text-decoration: none; }
.status-card__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: .88rem; color: rgba(255,255,255,.8); }

/* Intro / Kennzahlen ------------------------------------------------------------ */
.intro__statement { margin: 0; }
.signature p { margin: 0; }
.signature strong { display: block; color: var(--fg); font-weight: 700; }
.stat p { margin: 0; }
.stat .stat__label { margin-top: 10px; }

/* Bereichs-Kacheln --------------------------------------------------------------- */
.area:hover .is-style-hintergrund img, .area:hover .bg-image img { transform: scale(1.05); }
.area .area__title { color: #fff; }
.area .link-arrow a { color: #fff; }
.area p { margin: 0; }

/* Karten (Erlebniswelt) ----------------------------------------------------------- */
.card:hover .is-style-hintergrund img, .card:hover .bg-image img { transform: scale(1.05); }
.card .card__title { color: #fff; }
.card .card__text { margin: 0; }
.card .link-arrow a { color: #fff; margin-top: 6px; }
.card__body > p { margin: 0; }

/* Zeitplan: Punkte per CSS statt eigener Elemente */
.timeline { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.timeline .step::before { content: ""; position: absolute; top: 4px; left: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--bg); border: 2px solid var(--line); box-sizing: border-box; }
.timeline .step--done::before { background: var(--forest-600); border-color: var(--forest-600); }
.timeline .step--now::before { background: var(--gold-400); border-color: var(--gold-400); box-shadow: 0 0 0 6px rgba(207,164,100,.22); animation: pulse 2.4s ease-in-out infinite; }
.step p { margin: 0; }
.step .step__when { margin-bottom: 8px; }
.step .step__title { margin-bottom: 8px; }
.step .step__now { display: inline-block; margin-top: 12px; }
@media (max-width: 860px) { .timeline { grid-template-columns: 1fr; } .timeline .step::before { top: 2px; } }

/* Eventlocation-Abschnitt ---------------------------------------------------------- */
.formula__box p { margin: 0; }
.formula__box .formula__k { margin-bottom: 8px; }
.occasion__icon { display: grid; }
.occasion .occasion__text { margin: 0; }
.is-style-mood-abend .formula__box--result { background: #2e3b2f; }

/* Club / Events -------------------------------------------------------------------- */
.himmerich-logo img { height: 38px; width: auto; }
.club-head__brand .himmerich-logo { margin: 0; }
.club-feature__poster { position: relative; }
.club-feature__poster .wp-block-image { width: 100%; }
.club-feature__poster img { width: 100%; aspect-ratio: 2500 / 1310; object-fit: cover; }
.club-feature__poster .club-status { position: absolute; top: 16px; right: 16px; }
.club-feature__body p { margin: 0; }
.club-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.club-facts > .wp-block-group { padding: 12px 14px; border-radius: 8px; background: var(--surface-2); }
.club-facts .fact-k { font-weight: 800; font-size: 1.1rem; }
.club-facts .fact-v { font-size: .8rem; color: var(--muted); }
.club-mini { position: relative; }
.club-mini > .wp-block-group { padding: 14px 16px 16px; display: grid; gap: 4px; }
.club-mini p { margin: 0; }
.club-mini .club-mini__date { font-weight: 800; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--club-akzent); }
.club-mini .club-mini__title a { font-weight: 800; text-transform: uppercase; font-size: .95rem; line-height: 1.15; color: #fff; text-decoration: none; }
.club-mini img { width: 100%; aspect-ratio: 2500 / 1310; object-fit: cover; }

/* Sauna-Abschnitt / Split ----------------------------------------------------------- */
.split > .split__media img { width: 100%; height: 100%; object-fit: cover; }

/* Newsletter -------------------------------------------------------------------------- */
.notify > .notify__emblem { position: absolute; right: -80px; top: 50%; width: 420px; transform: translateY(-50%); opacity: .045; pointer-events: none; margin: 0; }
.notify a { color: var(--gold-300); }
.form-success { display: none; }
form.is-sent .form-success { display: block; }

/* Fußzeile ------------------------------------------------------------------------------ */
.site-footer .footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer p { margin: 0; }
.site-footer .footer__claim { margin: 16px 0 0; }
.site-footer .footer__h { margin: 0 0 16px; }
.site-footer .footer__bottom a { color: inherit; }
.site-footer .social { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.site-footer .social li a { display: inline-flex; padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); color: #d9e2d7; text-decoration: none; font-size: .86rem; font-weight: 600; }

/* Newsletter-Formular (bis zur Anbindung an das Formular-Plugin) */
.newsletter-form .interests { border: 0; padding: 0; margin: 14px 0 0; }
.newsletter-form .option span { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: #fff; }
.newsletter-form .option input:checked + span { background: var(--gold-400); color: var(--night-950); border-color: var(--gold-400); }
.notify .notify__inner { position: relative; z-index: 1; }

/* Untermenü: Titel und Beschreibung untereinander (überschreibt die flex-Zeile des Navigations-Blocks) */
.site-header .wp-block-navigation .has-child .wp-block-navigation__submenu-container { min-width: 340px !important; }
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; white-space: normal; }

/* Unterseiten: gemeinsame Bausteine ------------------------------------------------- */
.section--alt { background: var(--surface-2) !important; }
ol.breadcrumb, ul.breadcrumb { padding-left: 0; }
.breadcrumb li { margin: 0; }
p.operator { display: inline-block; }
.sauna-hero .sauna-hero__inner > p.operator, .wp-block-buttons + p.operator { margin-top: 26px; }
.operator strong { color: var(--fg); }
.wp-block-buttons + p.small { margin-top: 16px; }
.credit-line { margin: 14px 0 0; font-size: .8rem; color: var(--muted); }
/* Zwei aufeinanderfolgende Abschnitte mit gleichem Hintergrund: kein doppelter Abstand */
.section.is-style-mood-ruhe:not(.section--alt) + .section.is-style-mood-ruhe:not(.section--alt) { padding-top: 0; }
/* Hinweis-Kasten: Symbol per CSS, damit der Text im Editor ein normaler Absatz bleibt */
p.note { display: block; position: relative; margin: 12px 0 0; padding-left: 42px; }
p.note::before {
  content: ""; position: absolute; left: 16px; top: 16px; width: 18px; height: 18px; background: var(--accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Sauna-Seite ----------------------------------------------------------------------- */
.site-main--seite .sauna-hero { padding-top: clamp(36px, 6vw, 88px); }
.sauna-hero > .sauna-hero__art { position: absolute; right: 0; top: 0; bottom: 0; width: min(50vw, 720px); margin: 0; z-index: 0; }
.sauna-hero > .sauna-hero__art img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.sauna-hero > .container { position: relative; z-index: 1; }
.sauna-hero .sauna-hero__inner > p { margin-top: 0; }
@media (max-width: 860px) {
  .sauna-hero > .sauna-hero__art { position: relative; width: auto; height: clamp(220px, 52vw, 340px); margin: 0 var(--gutter) 28px; opacity: 1; right: auto;
    border-radius: var(--radius-l); overflow: hidden; -webkit-mask-image: none; mask-image: none; }
}
.sauna-card h3 { margin: 0; }
.sauna-card p { margin: 0; }
/* Galerie: großes Querformat, ein Hochformat rechts, zwei kleinere Bilder */
.sauna-galerie { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: clamp(190px, 21vw, 300px); gap: 16px; }
.sauna-galerie > .wp-block-image { position: relative; margin: 0; border-radius: var(--radius-m); overflow: hidden; background: var(--surface-2); }
.sauna-galerie > .wp-block-image:nth-child(1) { grid-column: span 2; }
.sauna-galerie > .wp-block-image:nth-child(2) { grid-column: 3; grid-row: 1 / span 2; }
/* sechs Fotos: das letzte füllt die untere Reihe (am Handy gehen sechs ohnehin glatt auf) */
@media (min-width: 701px) { .sauna-galerie > .wp-block-image:nth-child(6):last-child { grid-column: span 2; } }
.sauna-galerie > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.sauna-galerie figcaption { position: absolute; left: 12px; bottom: 12px; margin: 0; padding: 5px 12px; border-radius: 999px; background: rgba(24, 22, 19, .62); color: #fff; font-size: .8rem; font-weight: 600; backdrop-filter: blur(6px); }
@media (max-width: 700px) {
  .sauna-galerie { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: 200px; }
  .sauna-galerie > .wp-block-image:nth-child(1) { grid-column: 1 / -1; }
  .sauna-galerie > .wp-block-image:nth-child(2) { grid-column: auto; grid-row: span 2; }
}
/* Tabellen (Öffnungszeiten, Preise) als Tabellen-Blöcke */
.wp-block-table.hours, .prices .wp-block-table { margin: 0; overflow: visible; }
.wp-block-table.hours table, .prices .wp-block-table table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.wp-block-table.hours td, .prices .wp-block-table td { border: 0; border-bottom: 1px solid var(--line); padding: 14px 4px; text-align: left; }
.wp-block-table.hours td:first-child { font-weight: 700; width: 38%; }
.wp-block-table.hours td em { display: block; font-style: normal; color: var(--muted); font-size: .86rem; }
.wp-block-table.hours tr:has(td:last-child > em:only-child) td { color: var(--muted); }
.prices .wp-block-table { margin: 12px 0 18px; }
.prices .wp-block-table td:last-child { text-align: right; font-family: var(--font-display); font-size: 1.35rem; }
.prices .h3 { margin: 0 0 4px; }
.hours-col > p, .prices > p.small { margin: 12px 0 0; }
.prices > p.small { margin: 0; }
/* Karten „Rund um die Sauna“ (auch ohne Link) */
.alarm > .alarm__item { position: relative; display: grid; gap: 6px; align-content: start; padding: 22px; border-radius: var(--radius-m); background: var(--surface); border: 1px solid var(--line); }
.alarm__item p { margin: 0; }
.alarm__item .alarm__title { font-weight: 700; font-size: 1.05rem; }
.alarm__item .alarm__text { font-size: .92rem; color: var(--muted); }
.alarm__item .link-arrow { margin-top: 6px; }
/* components.css gestaltet jeden Link in .alarm als Karte – hier ist die Gruppe die Karte */
.alarm .alarm__item a { display: inline-flex; padding: 0; border: 0; border-radius: 0; background: none; gap: 8px; }
.kontakt-adresse { margin: 22px 0; line-height: 1.7; }
#kontakt .split { align-items: center; }

/* ==========================================================================
   Mouse-over-Effekte (verstärkt, Feintuning 09/2026)
   Gilt nur für Geräte mit Maus; auf Touch-Geräten bleibt alles ruhig.
   ========================================================================== */
@media (hover: hover) and (pointer: fine) {

  /* Buttons: deutlicher Farbwechsel, heben sich spürbar an */
  .wp-block-button__link:hover, .btn:hover { transform: translateY(-3px); box-shadow: 0 16px 28px -12px rgba(0,0,0,.55); }
  .wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover { background: var(--gold-400); color: var(--night-950); }
  .wp-block-button.is-style-gold .wp-block-button__link:hover,
  .site-header .header-cta .wp-block-button__link:hover,
  .btn--gold:hover { background: var(--night-950); color: var(--gold-300); border-color: var(--gold-400); }
  .wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--gold-400); color: var(--night-950); }
  .wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--fg); color: var(--bg); border-color: var(--fg); }
  .hero .wp-block-button.is-style-ghost .wp-block-button__link:hover { background: #fff; color: var(--night-950); border-color: #fff; }
  .wp-block-button.is-style-club .wp-block-button__link:hover { background: var(--club-akzent-hover); box-shadow: 0 0 0 3px color-mix(in srgb, var(--club-akzent) 35%, transparent), 0 16px 34px -10px color-mix(in srgb, var(--club-akzent) 80%, transparent); }
  .wp-block-button.is-style-club-outline .wp-block-button__link:hover { background: #fff; color: #0b0b0b; border-color: #fff; box-shadow: 0 16px 34px -12px rgba(255,255,255,.35); }

  /* Pfeil-Links: Pfeil rückt weiter, Text wird unterstrichen */
  .link-arrow a { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px; text-decoration-thickness: 2px; transition: text-decoration-color .25s, color .25s; }
  .link-arrow a:hover { text-decoration-color: currentColor; }
  .link-arrow a:hover::before { transform: translateX(8px); }

  /* Menü: Unterstrich läuft ein */
  .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; }
  .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
    content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--gold-400);
    transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease);
  }
  .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
  .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:focus-visible::after { transform: scaleX(1); }
  .site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { transition: background-color .2s, transform .25s var(--ease), box-shadow .2s; }
  .site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--moss-100); transform: translateX(4px); box-shadow: inset 3px 0 0 var(--gold-400); }
  .site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover .wp-block-navigation-item__label { color: var(--forest-700); }

  /* Startbild: Event-Karte */
  .status-card--event { transition: transform .35s var(--ease), border-color .3s, box-shadow .35s; }
  .status-card--event:hover { transform: translateY(-6px); border-color: rgba(255,255,255,.45); border-left-color: var(--ev, var(--gold-400)); box-shadow: 0 26px 50px -22px rgba(0,0,0,.8); }

  /* Vier Bereichs-Kacheln: Bild zoomt, Abdunklung hellt auf, Text rückt hoch,
     farbige Linie läuft ein; die übrigen Kacheln treten zurück */
  .area .is-style-hintergrund img, .area .bg-image img { transition: transform .9s var(--ease), filter .5s; }
  .area:hover .is-style-hintergrund img, .area:hover .bg-image img { transform: scale(1.1); }
  .areas:hover .area:not(:hover) .is-style-hintergrund img { filter: brightness(.72) saturate(.8); }
  .area::after { transition: opacity .5s; }
  .area:hover::after { opacity: .72; }
  /* Innenabstand statt transform: ein transform würde die klickbare Fläche der Kachel verkleinern */
  .area .area__body { transition: padding-bottom .45s var(--ease); }
  .area:hover .area__body { padding-bottom: calc(clamp(22px, 3vw, 36px) + 14px); }
  .area::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--gold-400); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); z-index: 1; }
  .area:hover::before { transform: scaleX(1); }
  .area--events::before { background: var(--club-akzent); }
  .area:hover .link-arrow a { color: var(--gold-300); text-decoration-color: currentColor; }
  .area:hover .link-arrow a::before { transform: translateX(8px); }

  /* Karten (Erlebniswelt): heben sich an, Bild zoomt */
  .card { transition: transform .4s var(--ease), box-shadow .4s; }
  .card:hover { transform: translateY(-8px); box-shadow: 0 30px 54px -24px rgba(14,22,16,.6); }
  .card .is-style-hintergrund img, .card .bg-image img { transition: transform .9s var(--ease); }
  .card:hover .is-style-hintergrund img, .card:hover .bg-image img { transform: scale(1.1); }
  .card:hover .link-arrow a { color: var(--gold-300); text-decoration-color: currentColor; }
  .card:hover .link-arrow a::before { transform: translateX(8px); }

  /* Anlässe (Eventlocation) */
  .occasion { transition: transform .35s var(--ease), box-shadow .35s, border-color .3s; }
  .occasion:hover { transform: translateY(-8px); border-color: var(--gold-400); box-shadow: 0 0 0 1px var(--gold-400), 0 26px 46px -22px rgba(0,0,0,.55); }
  .occasion .occasion__icon { transition: background-color .3s, color .3s, transform .35s var(--ease); }
  .occasion:hover .occasion__icon { background: var(--gold-400); color: var(--night-950); transform: scale(1.08) rotate(-4deg); }
  .occasion:hover .link-arrow a { text-decoration-color: currentColor; }
  .occasion:hover .link-arrow a::before { transform: translateX(8px); }

  /* Events (Club): Plakate heben sich an und leuchten rot */
  .club-feature { transition: border-color .3s, box-shadow .4s; }
  .club-feature:hover { border-color: color-mix(in srgb, var(--club-akzent) 60%, transparent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--club-akzent) 35%, transparent), 0 34px 70px -34px color-mix(in srgb, var(--club-akzent) 75%, transparent); }
  .club-feature__poster { overflow: hidden; }
  .club-feature__poster img { transition: transform .9s var(--ease); }
  .club-feature:hover .club-feature__poster img { transform: scale(1.05); }
  .club-mini { transition: transform .35s var(--ease), border-color .3s, box-shadow .35s; }
  .club-mini:hover { transform: translateY(-8px); border-color: var(--club-akzent); box-shadow: 0 0 0 1px var(--club-akzent), 0 26px 50px -20px color-mix(in srgb, var(--club-akzent) 70%, transparent); }
  .club-mini .wp-block-image { overflow: hidden; }
  .club-mini img { transition: transform .7s var(--ease); }
  .club-mini:hover img { transform: scale(1.08); }
  .club-mini .club-mini__title a { transition: color .25s; }
  .club-mini:hover .club-mini__title a { color: var(--club-akzent); }

  /* Sauna-Seite: Karten mit Link, Galerie */
  .alarm > .alarm__item:has(.is-stretched) { transition: transform .35s var(--ease), border-color .3s, box-shadow .35s; }
  .alarm > .alarm__item:has(.is-stretched):hover { transform: translateY(-6px); border-color: var(--accent); box-shadow: 0 22px 40px -22px rgba(51,48,42,.45); }
  .alarm > .alarm__item:has(.is-stretched):hover .link-arrow a { text-decoration-color: currentColor; }
  .alarm > .alarm__item:has(.is-stretched):hover .link-arrow a::before { transform: translateX(8px); }
  .sauna-galerie > .wp-block-image img { transition: transform .9s var(--ease); }
  .sauna-galerie > .wp-block-image:hover img { transform: scale(1.06); }
  .sauna-card { transition: transform .35s var(--ease), border-color .3s; }
  .sauna-card:hover { transform: translateY(-4px); border-color: var(--accent); }

  /* Newsletter-Auswahl, Fußzeile */
  .newsletter-form .option span { transition: border-color .2s, background-color .2s, transform .2s var(--ease); }
  .newsletter-form .option:hover span { border-color: var(--gold-300); transform: translateY(-2px); }
  .newsletter-form .option:hover input:not(:checked) + span { background: rgba(255,255,255,.18); }
  .site-footer .footer__list a { transition: color .2s; text-underline-offset: 4px; }
  .site-footer .footer__list a:hover { color: var(--gold-300); text-decoration: underline; }
  .site-footer .social li a { transition: border-color .2s, background-color .2s, color .2s, transform .2s var(--ease); }
  .site-footer .social li a:hover { border-color: var(--gold-300); background: var(--gold-400); color: var(--night-950); transform: translateY(-2px); }
  .notify a:hover { color: #fff; }
}

/* ==========================================================================
   Unterseiten Events, Eventlocation, Erlebniswelt (10/2026)
   ========================================================================== */

/* Kopfzeile auf dunklen Seiten */
.page-abend .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.page-club .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { background: rgba(255,255,255,.1); }
.page-club .site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--font-club); text-transform: uppercase; font-size: .8rem; letter-spacing: .06em; font-weight: 700; }
.page-club .site-header .header-cta .wp-block-button__link { background: var(--club-akzent); color: var(--club-akzent-text); border-radius: 6px; font-family: var(--font-club); text-transform: uppercase; letter-spacing: .07em; font-weight: 800; font-size: .82rem; }
.page-club .site-header .header-cta .wp-block-button__link:hover { background: var(--club-akzent-hover); color: var(--club-akzent-text); border-color: transparent; }
.page-club .site-header .wp-block-navigation-item__content::after { background: var(--club-akzent) !important; }

/* Verschleierte Bilder (Erlebniswelt noch geheim) */
.is-verschleiert img, img.is-verschleiert { filter: blur(18px) brightness(.78) saturate(.9); transform: scale(1.12); }
.hero > .hero__media.is-verschleiert img { animation: none; transform: scale(1.12); }

/* Platzhalter-Plakat, solange eine Veranstaltung kein eigenes Plakat hat */
.plakat-ersatz { position: relative; display: grid; place-content: center; justify-items: center; gap: 10px; width: 100%; aspect-ratio: 2500 / 1310; overflow: hidden; isolation: isolate; background: #111; color: #fff; text-align: center; }
.plakat-ersatz img { position: absolute !important; inset: 0; width: 100%; height: 100% !important; object-fit: cover; z-index: -1; filter: grayscale(.4) brightness(.32) contrast(1.1); border-radius: 0 !important; box-shadow: none !important; aspect-ratio: auto !important; }
.plakat-ersatz__titel { font-family: var(--font-club); font-weight: 900; text-transform: uppercase; letter-spacing: -.02em; line-height: .95; font-size: clamp(1.4rem, 3.2vw, 2.6rem); padding: 0 8%; }
.plakat-ersatz__datum { font-family: var(--font-club); font-weight: 800; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; color: var(--club-akzent); }
.club-mini .plakat-ersatz__titel { font-size: 1.1rem; }
.club-mini .plakat-ersatz { display: grid; padding: 0; }
.event-stage__poster .plakat-ersatz { border-radius: 12px; box-shadow: 0 40px 90px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.08); }
.event-stage__poster .plakat-ersatz__titel { font-size: clamp(2rem, 6vw, 5rem); }

/* Status-Etiketten und gesperrte Buttons */
.club-status--wenige::before { background: #f5c542; box-shadow: 0 0 10px #f5c542; }
.club-status--abendkasse::before { background: #e9e2d4; box-shadow: none; }
.club-status--ausverkauft::before, .club-status--abgesagt::before { background: #777; box-shadow: none; }
.btn.is-disabled { opacity: .5; pointer-events: none; }
.club-card.is-abgesagt .club-card__poster img { filter: grayscale(1) brightness(.5); }
.eventliste__leer { margin: 0; padding: 22px 24px; border-radius: 10px; background: var(--surface); color: var(--muted); }
.eventliste--karten .club-card__title { font-size: 1.35rem; }
.eventliste--highlight .club-feature__title a { color: inherit; text-decoration: none; }
.eventliste--highlight .club-feature__poster { display: block; }
.eventliste--kompakt { margin-top: 28px; }

/* Events-Seite: Startbild */
.club-hero > .club-hero__bild { position: absolute; inset: 0; z-index: -2; margin: 0; }
.club-hero > .club-hero__bild img { width: 100%; height: 100%; object-fit: cover; }
.club-hero .himmerich-logo { margin: 0; }
.club-hero .club-hero__buttons { margin-top: 30px; }
.events-termine { padding-top: clamp(48px, 6vw, 80px); }
.is-style-mood-club .section--alt { background: #121212 !important; }

/* Terminliste (Sonntagstanz) */
.termine { display: grid; gap: 10px; }
.termin { display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 16px 20px; border-radius: 10px; background: var(--surface); }
.termin p { margin: 0; }
.termin__datum { display: grid; justify-items: center; font-family: var(--font-club); text-transform: uppercase; line-height: 1; padding-right: 16px; border-right: 1px solid var(--line); }
.termin__datum span { font-size: .78rem; font-weight: 800; color: var(--muted); letter-spacing: .08em; }
.termin__datum b { font-size: 1.05rem; font-weight: 900; color: #fff; margin-top: 6px; white-space: nowrap; }
.termin__titel a { font-family: var(--font-club); font-weight: 800; text-transform: uppercase; color: #fff; text-decoration: none; }
.termin__meta { color: var(--muted); font-size: .88rem; }
.termin.is-abgesagt .termin__titel a { text-decoration: line-through; color: var(--muted); }
.sonntag { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.sonntag__text .lead { margin: 18px 0 22px; }
.sonntag__liste { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; color: #d9d9d9; }
.sonntag__liste li { padding-left: 22px; position: relative; }
.sonntag__liste li::before { content: ""; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; border-radius: 50%; background: var(--club-akzent); }
.sonntag__liste strong { color: #fff; }
.sonntag__h { font-family: var(--font-club); font-weight: 900; text-transform: uppercase; font-size: 1.1rem; letter-spacing: .02em; margin: 0 0 16px; }
@media (max-width: 900px) { .sonntag { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .termin { grid-template-columns: 64px minmax(0, 1fr); } .termin > :last-child:not(.termin__text) { grid-column: 2; justify-self: start; } }

/* Einlass & FAQ (Club) */
.club-2col--vier { grid-template-columns: repeat(4, 1fr); margin-bottom: clamp(36px, 5vw, 56px); }
@media (max-width: 1100px) { .club-2col--vier { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .club-2col--vier { grid-template-columns: 1fr; } }
.club-box h3 { margin: 0; }
.club-box .wp-block-buttons { margin-top: 6px; }
.faq .wp-block-details { border-bottom: 1px solid var(--line); margin: 0; }
.faq .wp-block-details > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 4px; font-family: var(--font-display); font-size: clamp(1.15rem, 1.8vw, 1.4rem); line-height: 1.3; }
.faq .wp-block-details > summary::-webkit-details-marker { display: none; }
.faq .wp-block-details > p { padding: 0 60px 24px 4px; margin: 0; color: var(--muted); }
.faq--club .wp-block-details > summary { font-family: var(--font-club); font-weight: 800; font-size: 1.05rem; }

/* Event-Detailseite */
.event-details .breadcrumb { color: rgba(255,255,255,.7); justify-content: center; }
.event-details .breadcrumb li { margin: 0; }
.event-details .event-kopf { padding-top: 0; padding-bottom: clamp(32px, 4vw, 56px); }
.event-details .event-inhalt { padding-top: 0; }
.event-head__info { margin: 16px 0 0; color: #cfcfcf; font-weight: 600; }
.event-abgesagt { margin: 32px auto 0; max-width: 720px; padding: 18px 22px; border-radius: 10px; background: color-mix(in srgb, var(--club-akzent) 12%, transparent); border: 1px solid color-mix(in srgb, var(--club-akzent) 50%, transparent); text-align: center; }
.event-ticket-btn { min-height: 58px; font-size: 1rem; }
.event-beschreibung p:not(.eyebrow) { margin: 0 0 1em; color: #d9d9d9; font-size: 1.08rem; max-width: 68ch; }
.ticketshop__body { padding: 20px 24px 24px; display: grid; gap: 14px; }
.ticketshop__body p { margin: 0; color: var(--muted); font-size: .94rem; }
.ticketshop__body .ticketshop__preis { font-family: var(--font-club); font-size: 1.9rem; font-weight: 900; color: #fff; }
.event-weitere { background: #101010; }

/* Eventlocation */
.hero--sub .hero-stats > .wp-block-group { display: grid; }
.hero-stats p { margin: 0; }
.hero-stats .hero-stats__zahl { font-family: var(--font-display); font-size: 2rem; font-weight: 440; color: var(--gold-300); line-height: 1.1; }
.hero-stats .hero-stats__text { font-size: .86rem; color: rgba(255,255,255,.7); }
.section--tief { background: var(--night-850) !important; }
.room p, .room h3 { margin: 0; }
.room > .is-style-hintergrund::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(16,15,13,.94) 0%, rgba(16,15,13,.55) 45%, rgba(16,15,13,.1) 80%); }
.room--photo > .is-style-hintergrund { z-index: -1; }
.room--photo::after { display: none; }
.room__cap::before { content: ""; width: 18px; height: 18px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M21.5 20a6.5 6.5 0 0 0-4-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M21.5 20a6.5 6.5 0 0 0-4-6'/%3E%3C/svg%3E") center / contain no-repeat; }
.rooms + .strip { margin-top: 48px; }
.strip > .wp-block-image { margin: 0; scroll-snap-align: start; border-radius: var(--radius-m); overflow: hidden; aspect-ratio: 4 / 5; background: var(--night-800); }
.strip > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.strip__credit { margin: 12px 0 0; }
.package__list { list-style: none; }
.package__list li { display: block; position: relative; padding-left: 38px; color: var(--muted); font-size: .94rem; }
.package__list li strong { display: inline-block; color: var(--fg); font-size: 1.02rem; margin-bottom: 2px; }
.package__list li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; background: var(--night-gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.price p { margin: 0; }
.price .price__big { margin: 10px 0 4px; }
.price .price__unter { color: var(--muted); font-size: .95rem; }
.price .wp-block-table { margin: 22px 0; }
.price .wp-block-table table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.price .wp-block-table td { border: 0; border-bottom: 1px solid var(--line); padding: 11px 0; }
.price .wp-block-table td:last-child { text-align: right; font-weight: 700; }
.price .wp-block-buttons { margin-top: auto; padding-top: 18px; }
#essen .chip-row { margin: 0 0 22px; }
.anfrage-formular .form { margin: 0; }
.form__falle { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form .pflicht { color: var(--accent); }
.form [aria-invalid="true"] { border-color: #e0763c !important; box-shadow: 0 0 0 3px rgba(224,118,60,.25) !important; }
.form-fehler { margin: 12px 0 0; color: #f3a466; font-weight: 600; }
.form-fehler[hidden] { display: none; }
.form__abschluss .form__hinweis { margin: 10px 0 0; }
.form .form-success { margin: 0; padding: 18px 20px; font-size: 1rem; color: var(--fg); background: rgba(216,180,122,.14); }
.form.is-sent .field, .form.is-sent .check, .form.is-sent button, .form.is-sent .form__hinweis, .form.is-sent .form-fehler { display: none; }
.form .options .option span { cursor: pointer; }
.contact-card h3 { margin: 0; }
.contact-card p { margin: 0; }
.contact-card .contact-line { display: grid; grid-template-columns: 40px 1fr; column-gap: 12px; align-items: center; font-size: 1.05rem; }
.contact-card .contact-line small { grid-column: 2; display: block; color: var(--muted); font-size: .8rem; line-height: 1.2; }
.contact-card .contact-line::before { content: ""; grid-row: 1 / span 2; width: 40px; height: 40px; border-radius: 50%; background: rgba(216,180,122,.12) center / 20px no-repeat; }
.contact-card .contact-line--tel::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d8b47a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.contact-card .contact-line--mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d8b47a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.contact-card .contact-line--ort::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d8b47a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.contact-card .contact-line a { color: var(--fg); text-decoration: none; }
.contact-card .contact-line a:hover { color: var(--accent); }
@media (max-width: 900px) { .enquiry { grid-template-columns: 1fr; } .contact-card { position: static; } }
@media (max-width: 640px) { .form { grid-template-columns: 1fr; } }

/* Erlebniswelt (Teaser) */
.hero--teaser { min-height: min(90vh, 880px); }
.hero .display em { color: var(--gold-300); }
.hinweise { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.hinweis { position: relative; display: grid; gap: 10px; align-content: start; padding: 30px 28px; border-radius: var(--radius-l); background: var(--surface); border: 1px solid var(--line); overflow: hidden; }
.hinweis p, .hinweis h3 { margin: 0; }
.hinweis .hinweis__zahl { font-family: var(--font-display); font-style: italic; font-size: 4rem; line-height: .9; color: var(--accent); opacity: .9; }
.hinweis .hinweis__titel { font-size: 1.6rem; }
.hinweis .hinweis__text { color: var(--muted); }
@media (max-width: 900px) { .hinweise { grid-template-columns: 1fr; } }
.notify__buttons { align-self: center; }
.areas--drei { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .areas--drei { grid-template-columns: 1fr; } }

/* Startseite (Übergang): Teaser „Da wächst was“ */
.teaser-bild { position: relative; }
.teaser-bild::after { content: "?"; position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--font-display); font-style: italic; font-size: clamp(6rem, 14vw, 11rem); color: rgba(255,255,255,.92); text-shadow: 0 10px 40px rgba(0,0,0,.35); pointer-events: none; }
.teaser-bild img { filter: blur(18px) brightness(.8) saturate(.9); transform: scale(1.12); }

/* Korrekturen nach erster Ansicht */
.eventliste--highlight .club-feature__poster { display: flex; align-items: center; }
.club-box > * { margin: 0 !important; }
.alarm:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 760px) { .alarm:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; } }

/* ---------- Rechtstexte (Impressum, Datenschutz) ---------- */
.site-main--seite .rechtstext { padding-top: clamp(40px, 6vw, 88px); }
.rechtstext h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1.08; margin: 0 0 clamp(28px, 4vw, 44px); }
.rechtstext h2 { font-size: clamp(1.35rem, 2.2vw, 1.65rem); line-height: 1.2; margin: 2.2em 0 .55em; }
.rechtstext h3 { font-family: var(--font-body); font-size: 1.06rem; font-weight: 700; line-height: 1.3; margin: 1.7em 0 .4em; }
.rechtstext h4 { font-family: var(--font-body); font-size: 1rem; font-weight: 700; margin: 1.4em 0 .3em; }
.rechtstext h1 + h2 { margin-top: 0; }
.rechtstext h2 + h3 { margin-top: .8em; }
.rechtstext p, .rechtstext li { max-width: 72ch; line-height: 1.65; }
.rechtstext p { margin: 0 0 1em; }
.rechtstext ul { margin: 0 0 1em; padding-left: 1.25em; }
.rechtstext li + li { margin-top: .45em; }
.rechtstext a { color: var(--accent); overflow-wrap: anywhere; }

/* ---------- Ohne Logen (10/2026): drei Kästen bei „Einlass & FAQ“, Hinweis Abendkasse ---------- */
.club-2col--drei { grid-template-columns: repeat(3, 1fr); margin-bottom: clamp(36px, 5vw, 56px); }
@media (max-width: 900px) { .club-2col--drei { grid-template-columns: 1fr; } }
.event-kasse { display: flex; align-items: center; justify-content: center; min-height: 58px; margin: 0; padding: 12px 20px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; font-size: 1rem; text-align: center; }
.event-kasse b { margin-right: .35em; }
.club-facts > :last-child:nth-child(odd) { grid-column: 1 / -1; }

/* ---------- Design-Überarbeitung (10/2026, nach Design-Kritik) ---------- */
/* Fehlerseite (404) */
.site-main--seite .fehlerseite { padding-top: clamp(48px, 8vw, 120px); }
.fehlerseite .lead { max-width: 56ch; }
.fehlerseite .wp-block-buttons { margin-top: 28px; }

/* Handy und Tablet: das nächste Event vor dem Baufortschritt */
@media (max-width: 980px) { .hero__cards > .status-card { order: 2; } }

/* Event-Teaser: Plakat ohne schwarze Balken – unscharfer Hintergrund aus dem Plakat selbst */
.eventliste--highlight .club-feature__poster { overflow: hidden; isolation: isolate; }
.eventliste--highlight .club-feature__poster::before {
  content: ""; position: absolute; inset: -40px; z-index: -1;
  background: var(--plakat) center / cover no-repeat; filter: blur(34px) brightness(.55) saturate(1.2);
}
/* Drei Events in der Reihe: drei Spalten statt einer Lücke */
@media (min-width: 1001px) { .club-row:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); } }

/* Kontraste: kleine rote Datumszeilen auf Schwarz, grüne Überzeilen im Sauna-Bereich */
.club-mini small, .club-mini .club-mini__date, .club-feature__date { color: var(--club-akzent); }
.is-style-mood-ruhe .eyebrow { color: var(--accent-strong); }

/* ---------- Animationen (10/2026, nach Emil Kowalski; auf der Testseite freigegeben) ----------
   Kurve: var(--ease) aus components.css; animiert werden nur scale/translate und opacity. */

/* 1. Rückmeldung beim Antippen: gibt kaum sichtbar nach (scale wirkt zusätzlich zu vorhandenen Verschiebungen) */
:is(.wp-block-button__link, .btn) {
  transition: transform .25s var(--ease), scale 160ms var(--ease), background-color .25s, color .25s, border-color .25s, box-shadow .25s;
}
.map-canvas .hotspot { transition: transform .25s var(--ease), scale 160ms var(--ease), background-color .25s, color .25s, box-shadow .25s; }
.map-frame .mode-switch button, .map-panel .map-list button { transition: scale 160ms var(--ease), background-color .25s, color .25s; }
:is(.wp-block-button__link, .btn, .hotspot, .mode-switch button, .map-list button):active { scale: .97; }

/* 2. Lageplan: Infokasten blendet beim Stationswechsel weich ein (Klasse is-wechsel setzt view.js kurz) */
.map-panel__media, .map-panel__body { transition: opacity 200ms var(--ease), translate 200ms var(--ease); }
.map-panel.is-wechsel :is(.map-panel__media, .map-panel__body) { opacity: 0; translate: 0 4px; transition: none; }

/* 3. Fragen klappen weich auf (neuere Browser; ältere springen wie bisher) */
.faq details { interpolate-size: allow-keywords; }
.faq details::details-content {
  block-size: 0; overflow: clip;
  transition: block-size 250ms var(--ease), content-visibility 250ms allow-discrete;
}
.faq details[open]::details-content { block-size: auto; }
.faq summary::after { transition: transform 200ms var(--ease); }

@media (prefers-reduced-motion: reduce) {
  :is(.wp-block-button__link, .btn, .hotspot, .mode-switch button, .map-list button):active { scale: .99; }
  .map-panel.is-wechsel :is(.map-panel__media, .map-panel__body) { translate: none; }
}

/* ---------- Unterseiten (10/2026, nach Design-Kritik) ---------- */
/* Event-Seite: Hinweis „läuft in derselben Nacht wie …“ */
.event-teil { margin: 14px auto 0; max-width: 60ch; color: rgba(255, 255, 255, .78); font-size: .95rem; }
.event-teil a { color: #fff; text-decoration-color: var(--club-akzent); text-underline-offset: 3px; }

/* Event-Seite: „Eine Nacht, ein Ticket“ – die anderen Areas mit Plakat */
.event-teile { display: grid; gap: 14px; }
.event-teile > p { margin: 0; color: var(--muted); }
.event-teile .club-row { margin-top: 6px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* Event-Seite: Einlass, Dresscode, Anfahrt – der dritte Kasten nimmt die volle Breite */
.event-hinweise > .club-box:nth-child(3):last-child { grid-column: 1 / -1; }
.event-hinweise .club-box { align-content: start; }
.event-hinweise .club-box p { margin: 0 0 10px; }
.event-hinweise .club-box p:last-child { margin-bottom: 0; }

/* Event-Seite am Handy: Ticket-Leiste bleibt unten sichtbar */
.ticket-leiste { display: none; }
@media (max-width: 760px) {
  .ticket-leiste {
    position: sticky; bottom: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
    background: rgba(11, 11, 11, .94); border-top: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(8px);
  }
  .ticket-leiste__info { margin: 0; display: grid; line-height: 1.2; color: #fff; }
  .ticket-leiste__info b { font-family: var(--font-club); font-weight: 800; font-size: 1.05rem; }
  .ticket-leiste__info span { font-size: .78rem; color: rgba(255, 255, 255, .72); }
  .ticket-leiste .btn { min-height: 46px; padding: 0 20px; }
}

/* Eventlocation: Fotostreifen am Desktop als Raster statt seitlich zu scrollen. Blöcke aus je fünf Bildern:
   das erste groß, daneben vier kleine; im zweiten Block steht das große Bild rechts (gespiegelt). */
@media (min-width: 900px) {
  .strip { grid-auto-flow: row dense; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(160px, 16vw, 230px); overflow: visible; }
  .strip > .wp-block-image { aspect-ratio: auto; height: 100%; }
  .strip > .wp-block-image:nth-child(10n+1) { grid-column: span 2; grid-row: span 2; }
  .strip > .wp-block-image:nth-child(10n+6) { grid-column: 3 / span 2; grid-row: span 2; }
}

/* Kleine Club-Links („Infos“): größere Tippfläche, Optik bleibt */
.club-link { position: relative; }
.club-link::after { content: ""; position: absolute; inset: -12px -10px; }

/* Kontraste: rote Überzeilen im Club-Bereich, Sauna-Grautext und -Links */
.is-style-mood-club .eyebrow { color: var(--club-akzent); }
.is-style-mood-ruhe { --muted: #625c53; }
.is-style-mood-ruhe .link-arrow a { color: var(--accent-strong); }
/* Event-Karten: Hinweis auf das gemeinsame Ticket einer Nacht */
.club-card__nacht { margin: 6px 0 12px; font-size: .8rem; font-weight: 700; color: var(--club-akzent); }

/* ===== Farben je Bereich (10/2026) =====
   Events sind Orange (--club-akzent in components.css). Der Sonntagstanz behält das Himmerich-Rot:
   seine Event-Seiten (Body-Klasse .club-sonntagstanz), der Abschnitt auf der Events-Seite (.events-sonntag)
   und seine Karten in allen Listen (.ist-sonntagstanz). */
.club-sonntagstanz, .events-sonntag, .ist-sonntagstanz { --club-akzent: #e5262f; --club-akzent-hover: #ff3a42; --club-akzent-text: #fff; }
.events-sonntag, .ist-sonntagstanz { --accent: var(--club-akzent); --accent-strong: var(--club-akzent); }

/* Erlebniswelt (Body-Klasse .page-erlebniswelt): Bildkopf und Tickets-Button in Grün statt Gold. */
.page-erlebniswelt .hero__kicker,
.page-erlebniswelt .hero .display em,
.page-erlebniswelt .hero .status-card__label { color: var(--leaf-300); }
.page-erlebniswelt .hero .progress span { background: linear-gradient(90deg, var(--leaf-500), var(--leaf-300)); }
.page-erlebniswelt .hero .wp-block-button.is-style-gold .wp-block-button__link,
.page-erlebniswelt .site-header .header-cta .wp-block-button__link { background: var(--forest-600); color: #fff; }
.page-erlebniswelt .nav__link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--leaf-500); }
@media (hover: hover) and (pointer: fine) {
  .page-erlebniswelt .hero .wp-block-button.is-style-gold .wp-block-button__link:hover,
  .page-erlebniswelt .site-header .header-cta .wp-block-button__link:hover { background: var(--forest-950); color: var(--leaf-300); border-color: var(--leaf-500); }
}

/* ===== Drohnenflug (Test 10/2026) =====
   Startseite: Die Luftaufnahme im Bildkopf gleitet langsam, als würde eine Drohne über das Gelände schweben.
   Heranzoomen und seitliches Treiben laufen mit verschiedenen Längen (32 s / 21 s), so wiederholt sich die
   Bahn kaum. Das Bild ist immer mindestens 6 % vergrößert, die Verschiebung bleibt darunter: Ränder sieht man nie.
   Nur Transform-Eigenschaften (läuft auf der Grafikkarte). Bei „Bewegung reduzieren“ steht das Bild still. */
.home .hero > .hero__media:not(.is-verschleiert) img {
  transform: none;
  will-change: scale, translate;
  animation: drohne-zoom 32s cubic-bezier(.45, 0, .55, 1) infinite alternate, drohne-drift 21s cubic-bezier(.45, 0, .55, 1) infinite alternate;
}
@keyframes drohne-zoom { from { scale: 1.06; } to { scale: 1.17; } }
@keyframes drohne-drift { from { translate: 2.2% 1.2%; } to { translate: -2.2% -1.4%; } }
@media (prefers-reduced-motion: reduce) {
  .home .hero > .hero__media:not(.is-verschleiert) img { animation: none; scale: 1.04; translate: none; }
}
