/* ══════════════════════════════════════════════════
   BHAMA FAMILY, Seitengestaltung: Reisekarten, Reise-,
   Event- und Spielerseiten, Footer, ruhigere Abschnitte.

   Lädt immer nach theme.css. Die Regeln hängen an
   body.bhama-refined (setzt inc/setup.php immer), der
   Name bleibt für bestehende Anpassungen. Palette,
   Unna/Open Sans und gerade Kanten kommen aus den
   Tokens in theme.css. Umbrüche am Ende absteigend.
   ══════════════════════════════════════════════════ */

/* ── 1. Grundlagen ──────────────────────────────── */
.bhama-refined .section,
.bhama-refined .funnel-section { padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.bhama-refined :is(.section, .funnel-section).pt-tight { padding-top: var(--pad-tight); }
.bhama-refined :is(.section, .funnel-section).pb-tight { padding-bottom: var(--pad-tight); }
.bhama-refined :is(.section, .funnel-section).pt-none { padding-top: 0; }
.bhama-refined :is(.section, .funnel-section).pb-none { padding-bottom: 0; }

.bhama-refined :is(.btn, .card, .player, input, select, textarea) { border-radius: 0; }
.bhama-refined :is(a, button, summary):focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
/* Wappen in der Leiste: engerer Rahmen, sonst läuft er oben aus dem Bild */
.bhama-refined :is(.nav-brand, .hero-crest):focus-visible { outline-offset: 2px; }

/* Sprungziele und per Tastatur fokussierte Elemente nicht unter der
   Kopfleiste (und der Adminleiste) verstecken */
.bhama-refined :is([id], a[href], button, input, select, textarea, summary) { scroll-margin-top: 112px; }
.admin-bar.bhama-refined :is([id], a[href], button, input, select, textarea, summary) { scroll-margin-top: 144px; }
/* unten Platz für den Fokusrahmen (5 px Abstand + 2 px Linie) */
.bhama-refined :is(a[href], button, input, select, textarea, summary) { scroll-margin-bottom: 16px; }

/* Lange Titel (ihre Länge kommt aus dem Backend) nie abschneiden. Lange
   zusammengesetzte Wörter in Seiten- und Kartentiteln trennt der Browser
   nach deutschem Wörterbuch (lang="de"), nur Wörter ab 12 Zeichen und mit
   mindestens 5 Zeichen je Teil; kürzere Wörter bleiben ganz. Passt ein
   Wort trotzdem nicht in die Spalte, bricht es ohne Trennstrich um. */
.bhama-refined :is(h1, h2, h3, h4, .card-title, .head-title, .journey-facts dt, .journey-facts dd) { overflow-wrap: break-word; }
.bhama-refined :is(h1, .card-title) {
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 12 5 5;
  -webkit-hyphenate-limit-before: 5;
  -webkit-hyphenate-limit-after: 5;
}

/* Sektionsköpfe ruhig linksbündig, ohne Goldlinie */
.bhama-refined .section-head { text-align: left; max-width: none; margin: 0 0 2.8rem; }
.bhama-refined .section-head .head-title { font-size: clamp(2.2rem, 3.7vw, 3.2rem); line-height: 1.13; margin: 0 0 1.25rem; max-width: 23ch; text-wrap: balance; }
.bhama-refined .section-head .head-title::after { display: none; }
.bhama-refined .section-head p { margin: 0; max-width: 64ch; line-height: 1.85; }
.bhama-refined .watermark { opacity: 0.04; }

/* ── 2. Kopfleiste ──────────────────────────────── */
.bhama-refined .nav.solid { background: var(--black); backdrop-filter: none; -webkit-backdrop-filter: none; }

/* ── 3. Startseiten-Hero ────────────────────────── */
.bhama-refined .hero .hero-title { max-width: 18ch; text-wrap: balance; }
.bhama-refined .hero-actions { gap: 1rem; }

/* ── 4. Einführung mit Bereichslinks ────────────── */
.bhama-refined .section--intro .section-head { display: grid; grid-template-columns: 1fr 1.15fr; gap: 4rem; align-items: start; }
.bhama-refined .section--intro .section-head .head-title { margin: 0; max-width: 18ch; }

/* ── 5. Reisekarten ─────────────────────────────── */
.bhama-refined .destination-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; align-items: stretch; }
.bhama-refined .destination-grid[data-n="2"],
.bhama-refined .destination-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; }
.bhama-refined .destination-grid[data-n="1"] { grid-template-columns: minmax(0, 420px); }

.trip-teaser { display: flex; flex-direction: column; min-width: 0; background: var(--panel); border: 1px solid var(--line); }
.trip-teaser-photo { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--charcoal); }
.trip-teaser-photo a, .trip-teaser-photo img { display: block; width: 100%; height: 100%; }
.trip-teaser-photo img { object-fit: cover; filter: none; }
.trip-teaser-body { position: relative; display: flex; flex: 1; flex-direction: column; align-items: stretch; padding: 126px clamp(1.25rem, 2.2vw, 2rem) 2rem; }
/* Ohne Reisezeichen oder Foto: kein reservierter Platz */
.trip-teaser.no-sign .trip-teaser-body,
.trip-teaser.no-photo .trip-teaser-body { padding-top: 2rem; }
/* Reisezeichen groß und ganz am Übergang Foto/Text, ohne Rahmen oder Filter */
.plakette--teaser { position: absolute; top: -110px; left: 50%; transform: translateX(-50%); width: 220px; max-width: 80%; }
.trip-teaser.no-photo .plakette--teaser { position: static; transform: none; margin: 0 auto 1.25rem; }
.plakette--teaser .plakette-img,
.plakette--cover .plakette-img { filter: none; }
.trip-teaser .card-title { margin: 0 0 1rem; font-family: var(--serif); font-size: 2.35rem; line-height: 1.1; color: var(--white); text-align: center; }
.trip-teaser .destination-description { font-size: 0.9375rem; line-height: 1.85; margin: 0 0 1.6rem; color: var(--text); }
/* Reisezeit und Button stehen in einer Reihe auf gleicher Höhe */
.trip-teaser-meta { margin-top: auto; padding-top: 1.15rem; border-top: 1px solid var(--line); }
.trip-teaser .btn { margin-top: auto; padding-inline: 1rem; width: 100%; text-align: center; }
.trip-teaser-meta + .btn { margin-top: 1.35rem; }

.trip-schedule { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.8rem; width: 100%; font-family: var(--sans); letter-spacing: 0; text-transform: none; }
.trip-schedule-date { display: flex; flex-direction: column; gap: 0.16rem; margin: 0; color: var(--text); line-height: 1.5; min-height: 73px; }
.trip-schedule-label { font-size: 0.75rem; font-weight: 400; color: var(--text-dim); }
.trip-schedule-date strong { font-size: 1rem; font-weight: 600; color: inherit; }
.trip-schedule-note { font-size: 0.8125rem; font-weight: 400; color: var(--text-dim); }

/* Auf hellen Abschnitten („Weitere Reisen“) helle Karte */
:is(.zone-light, .zone-tint) .trip-teaser { background: var(--white); border-color: rgba(var(--rgb-charcoal),0.16); }
:is(.zone-light, .zone-tint) .trip-teaser .card-title { color: var(--charcoal); }
:is(.zone-light, .zone-tint) .trip-teaser .destination-description { color: var(--ink-soft); }
:is(.zone-light, .zone-tint) .trip-teaser-meta { border-color: rgba(var(--rgb-charcoal),0.16); }
:is(.zone-light, .zone-tint) .trip-schedule-date { color: var(--charcoal); }
:is(.zone-light, .zone-tint) :is(.trip-schedule-label, .trip-schedule-note) { color: var(--ink-mute); }
:is(.zone-light, .zone-tint) .trip-teaser .btn.btn-primary { background: var(--charcoal); border-color: var(--charcoal); color: var(--tint); }
:is(.zone-light, .zone-tint) .trip-teaser .btn.btn-primary:hover { background: var(--gold-deep); border-color: var(--gold-deep); color: var(--white); }

/* Individuelle Reise: ruhiger Block unter den Karten */
.private-trip { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem 2rem; align-items: center; border-top: 1px solid var(--line); padding-top: 2rem; margin-top: 2.5rem; }
.private-trip:first-child { margin-top: 0; }
.private-trip .card-title { font-size: 1.8rem; margin: 0; }
.private-trip p { font-size: 0.875rem; line-height: 1.8; color: var(--text-dim); max-width: 75ch; margin: 0; }
.private-trip .btn { grid-column: 2; grid-row: 1 / 3; }

/* ── 6. Events, Sundowner, Spieler, Zitat, Partner ─ */
.bhama-refined :is(.card, .player) { box-shadow: none; }
.bhama-refined .card-img { aspect-ratio: 3 / 2; height: auto; }
.bhama-refined .card-img img { filter: none; }
.bhama-refined .card-body { padding: 1.6rem; display: flex; flex-direction: column; align-items: flex-start; }
.bhama-refined .card .card-title { font-size: 1.85rem; line-height: 1.16; }
.bhama-refined .card .btn { margin-top: auto; }
.bhama-refined .card p { line-height: 1.8; }

.bhama-refined .coop-img { align-self: stretch; }
.bhama-refined .coop-img img { filter: none; min-height: 420px; object-fit: cover; }

/* Spieler: ganzes Foto neben einem kompakten Textbereich */
.bhama-refined .players-grid[data-n="2"] { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 2rem; }
/* Bei drei Spalten bekommt der Spieler mit Foto zwei davon */
.bhama-refined .players-grid[data-n="3"] > .player:not(.player-open) { grid-column: span 2; }
.bhama-refined .player { aspect-ratio: auto; }
.bhama-refined .player::after { display: none; }
.bhama-refined .player figure { position: relative; inset: auto; }
.bhama-refined .player .player-body { position: relative; inset: auto; padding: 2rem; min-width: 0; }
.bhama-refined .players-grid .player:not(.player-open) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.bhama-refined .players-grid .player:not(.player-open) figure { aspect-ratio: 3 / 4; height: auto; background: var(--black); }
.bhama-refined .players-grid .player:not(.player-open) figure img { width: 100%; height: 100%; object-fit: contain; object-position: center; filter: none; }
.bhama-refined .player .card-title { font-size: 2rem; }
.bhama-refined .player .player-meta { display: block; font-size: 0.8125rem; letter-spacing: 0; text-transform: none; margin: 0.7rem 0 1.4rem; }
.player-mini-facts { display: flex; gap: 2rem; border-top: 1px solid var(--line); padding-top: 1.2rem; margin: 0 0 1.8rem; }
.player-mini-facts dt { font-size: 0.75rem; color: var(--text-dim); margin-bottom: 0.25rem; }
.player-mini-facts dd { font-family: var(--serif); font-size: 1.8rem; line-height: 1.2; color: var(--text); margin: 0; }
.bhama-refined .player-open { display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--line); }
.bhama-refined .player-open figure { flex: none; height: 110px; display: grid; place-items: center; background: transparent; }
.bhama-refined .player-open figure.player-placeholder img { width: 100px; height: 100px; opacity: 1; }
.bhama-refined .player-open .player-body { padding-top: 0.8rem; text-align: center; }
.bhama-refined .player-open .card-title { font-size: 1.75rem; }

.bhama-refined .founder { padding-block: clamp(3.4rem, 6vw, 5.5rem); }
.bhama-refined .founder blockquote { max-width: 30ch; margin-inline: auto; text-wrap: balance; }

/* Partner: Originalfarben und volle Deckkraft auf hellem Grund */
.bhama-refined :is(.zone-light, .zone-tint) .partner-logos img { opacity: 1; filter: none; }
.bhama-refined .partner-logos[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 340px)); gap: 4rem; align-items: center; max-width: 800px; margin: 1rem auto 3rem; }
.bhama-refined .partner-logos[data-n="2"] a { display: flex; width: 100%; min-height: 230px; justify-content: center; align-items: center; }

/* ── 7. Anfrageformular unter seinem Text ───────── */
.bhama-refined .fs-inner:has(> .anfrage-form) { max-width: 980px; }
.bhama-refined .fs-inner:has(> .anfrage-form) .section-head { max-width: 760px; margin: 0 auto 2.4rem; text-align: center; }
.bhama-refined .fs-inner:has(> .anfrage-form) .section-head .head-title { max-width: 25ch; margin-inline: auto; }
.bhama-refined .fs-inner:has(> .anfrage-form) .section-head p { margin-inline: auto; max-width: 66ch; }
.bhama-refined .anfrage-form { width: 100%; max-width: 900px; margin-inline: auto; }
.bhama-refined .fs-frame { padding: clamp(1.3rem, 4vw, 3rem); }
.bhama-refined .fs-head { margin-bottom: 2rem; }
.bhama-refined .fs-step { letter-spacing: 0.08em; text-indent: 0; font-size: 0.65rem; }
.bhama-refined .choices { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.bhama-refined .choices[data-n="2"],
.bhama-refined .choices[data-n="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bhama-refined .choice-face { min-height: 94px; padding: 1rem 1.2rem; gap: 1rem; flex-direction: row; align-items: center; justify-content: flex-start; }
.bhama-refined .choice-icon { width: 24px; height: 24px; flex-shrink: 0; }
.bhama-refined .choice:hover :is(.choice-face, .choice-icon) { transform: none; }
.bhama-refined .step-q { font-size: clamp(1.7rem, 3.5vw, 2.35rem); line-height: 1.15; margin-bottom: 1.6rem; }
.bhama-refined :is(.form-field .fl, .zaehler-label) { font-size: 0.8125rem; letter-spacing: 0; text-transform: none; line-height: 1.5; }
.bhama-refined .fs-back { min-height: 44px; margin-bottom: 1rem; letter-spacing: 0.08em; }
.bhama-refined .fs-count { font-size: 0.8125rem; letter-spacing: 0; text-transform: none; }
.bhama-refined .stepper-btn { min-width: 44px; min-height: 48px; }

/* ── 8. Reiseseite: Foto-Einstieg ───────────────── */
.travel-cover {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: clamp(490px, 72svh, 690px);
  padding: 155px 0 42px;
  background: var(--black);
  color: var(--white);
}
.travel-cover-photo { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.travel-cover-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; filter: none; }
/* Zurückhaltender Verlauf für weiße Schrift, kein Farbfilter */
.travel-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--rgb-black),0.62), rgba(var(--rgb-black),0.08) 40%, rgba(var(--rgb-black),0.12) 58%, rgba(var(--rgb-black),0.75));
}
.travel-cover > .shell { width: 100%; }
.travel-cover-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.travel-cover-title { font: 400 clamp(3.6rem, 6.5vw, 5.5rem)/1 var(--serif); margin: 0; min-width: 0; color: var(--white); text-shadow: 0 2px 15px rgba(var(--rgb-black),0.25); }
.travel-cover-title em { color: var(--gold); }
.plakette--cover { width: 200px; flex-shrink: 0; }

.travel-intro { background: var(--black); padding: 2.5rem 0 2.2rem; }
.travel-intro .subhero-lead { font-size: 1.0625rem; line-height: 1.8; margin: 0; max-width: 72ch; color: var(--text); }
.travel-intro-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-top: 1.7rem; }
.travel-intro-bottom:first-child { margin-top: 0; }
.travel-intro-bottom .hero-trip-meta { display: block; flex: 1; margin: 0; min-width: 0; }
.travel-intro .trip-schedule-date { min-height: 0; }
.travel-intro .trip-schedule-date strong { font-size: 1.0625rem; }
.travel-intro-bottom .btn { flex-shrink: 0; margin-left: auto; text-align: center; max-width: 100%; padding-inline: 1.8rem; }

/* Kurze Navigation im normalen Seitenfluss, keine zweite feste Leiste */
.detail-page-nav { background: var(--black); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--text); }
.detail-page-nav .shell { display: flex; align-items: center; gap: 2.5rem; min-height: 58px; }
.detail-page-nav a { display: flex; align-items: center; min-height: 52px; font-size: 0.8125rem; white-space: nowrap; }
.detail-page-nav a:hover { color: var(--gold); }
.detail-page-nav .detail-page-action { margin-left: auto; color: var(--gold); }

/* ── 9. Programm und Fakten ─────────────────────── */
.bhama-refined .detail-grid-refined { grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.85fr); gap: clamp(2rem, 6vw, 5rem); }
.bhama-refined .detail-grid-refined .detail-aside {
  position: static;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(var(--rgb-charcoal),0.16);
  padding: 0 0 0 2.5rem;
  box-shadow: none;
}
.bhama-refined .detail-aside .aside-title { font-size: 1.8rem; margin-bottom: 1.6rem; }
.bhama-refined .detail-aside .journey-facts div { grid-template-columns: 1fr; padding-block: 1rem; gap: 0.35rem; }
.bhama-refined .detail-aside .journey-facts dt { font-size: 0.75rem; line-height: 1.6; letter-spacing: 0; text-transform: none; font-weight: 600; padding-top: 0; }
.bhama-refined .detail-aside .journey-facts dd { font-size: 0.9375rem; line-height: 1.75; }
.bhama-refined .detail-main { font-size: 1rem; line-height: 1.9; }
.bhama-refined .detail-main h2 { margin-bottom: 1.6rem; line-height: 1.15; }
/* Etappen als lesbare Abschnitte, weniger Linien an den Listenpunkten */
.program-chapter { border-top: 1px solid rgba(var(--rgb-charcoal),0.16); padding-top: 2rem; margin-top: 2.4rem; }
.bhama-refined .program-chapter h3 { padding: 0; margin: 0 0 1.1rem; font-size: 1.85rem; line-height: 1.2; }
.bhama-refined .detail-main :is(ul, ol) { border: 0; margin-top: 1.1rem; }
.bhama-refined .detail-main li { border: 0; padding-block: 0.35rem; }
.bhama-refined .note-box { margin-block: 1.75rem; }

/* ── 10. Eventseite: Text links, Foto rechts ────── */
.journey-hero { background: var(--black); padding: 10.7rem 0 3rem; }
.backlink {
  display: inline-block;
  margin-bottom: 1.7rem;
  padding-block: 0.4rem;
  font-size: 0.8125rem;
  color: var(--text);
  border-bottom: 1px solid rgba(var(--rgb-white),0.4);
}
.backlink:hover { color: var(--gold); border-color: var(--gold); text-decoration: none; }
.journey-hero-grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(2rem, 4.5vw, 4rem); align-items: center; }
.journey-hero-grid.no-photo { grid-template-columns: minmax(0, 1fr); }
.journey-hero-copy { min-width: 0; padding-block: 0.5rem 1.7rem; }
.journey-hero h1 { font-family: var(--serif); font-size: clamp(3rem, 5vw, 4.5rem); line-height: 1.06; color: var(--white); margin: 0 0 1.7rem; text-wrap: balance; }
.journey-hero h1 em { color: var(--gold); }
.journey-hero .subhero-lead { margin: 0; font-size: 0.9375rem; line-height: 1.9; color: var(--text); }
.event-opening-date { display: flex; align-items: center; gap: 0.7rem; margin-top: 1.7rem; font-size: 0.9375rem; color: var(--text); }
.event-opening-date svg { width: 20px; height: 20px; color: var(--gold); flex-shrink: 0; }
.journey-hero-actions { display: flex; align-items: flex-start; flex-direction: column; gap: 1rem; margin-top: 1.8rem; }
.journey-hero-actions .btn { max-width: 100%; padding-inline: 1.7rem; text-align: center; }
.text-action { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; font-size: 0.8125rem; color: var(--text); border-bottom: 1px solid var(--line); }
.text-action:hover { color: var(--gold); text-decoration: none; }
.journey-hero-figure { margin: 0; min-width: 0; }
.journey-hero-media { position: relative; height: clamp(420px, 39vw, 535px); overflow: hidden; }
.journey-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; filter: none; }

/* ── 11. Spielerprofil ──────────────────────────── */
.profile-hero { background: var(--black); padding: 11rem 0 3rem; }
.profile-layout { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.profile-layout.no-photo { grid-template-columns: minmax(0, 1fr); }
.profile-intro .subhero-title { font-size: clamp(2.8rem, 5.6vw, 4.7rem); line-height: 1.05; margin: 0 0 1.7rem; color: var(--white); }
.profile-intro .subhero-title em { color: var(--gold); }
.profile-intro .subhero-lead { max-width: 61ch; font-size: 1rem; line-height: 1.9; color: var(--text); }
.profile-intro .subhero-actions { gap: 1rem; margin-top: 1.5rem; }
.profile-photo { width: 100%; max-width: 345px; justify-self: end; margin: 0; }
.profile-photo img { display: block; width: 100%; height: auto; filter: none; }
/* Vorteile ruhig in zwei Textspalten */
.bhama-refined.single-bhama_spieler .vorteile { grid-template-columns: 1fr 1fr; gap: 1.6rem 3rem; }
.bhama-refined.single-bhama_spieler .vorteile li { border: 0; border-top: 1px solid var(--line); padding: 1.4rem 0 0; }
.bhama-refined.single-bhama_spieler .vorteile svg { display: none; }

/* ── 12. Footer ─────────────────────────────────── */
.footer-refined { padding: 4rem 0 3.5rem; border-top: 1px solid var(--line); }
.footer-layout {
  display: grid;
  grid-template-columns: 190px 1fr 1.25fr 1.3fr;
  gap: clamp(1.5rem, 3.5vw, 3.5rem);
  align-items: start;
  max-width: var(--w);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
/* Wappenblock: Wappen (Link zur Startseite), darunter „Auf Instagram“;
   beides auf einer gemeinsamen Mittelachse, so breit wie das Wappen. Kein
   zusätzlicher Abstand: Die 44 px hohe Klickfläche zentriert Icon und Text,
   sichtbar bleiben so etwa 12 px zwischen Wappen und Link. */
.footer-brand { display: flex; flex-direction: column; align-items: center; width: 152px; max-width: 100%; justify-self: center; }
.footer-crest-link { display: block; line-height: 0; }
.footer-brand .crest { display: block; width: 152px; height: auto; max-width: 100%; }
.footer-instagram,
.footer-social { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 44px; font-size: 0.875rem; line-height: 1.4; color: var(--text); white-space: nowrap; }
.footer-instagram svg { width: 18px; height: 18px; color: var(--gold); flex-shrink: 0; }
.footer-social { min-height: 40px; color: var(--text-dim); }
.footer-column { min-width: 0; }
.footer-heading { font: 400 1.5rem/1.2 var(--serif); letter-spacing: 0; text-transform: none; color: var(--white); margin: 0 0 1.2rem; }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li { margin: 0 0 0.35rem; }
.footer-column :is(a, span) { font: 400 0.875rem/1.65 var(--sans); color: var(--text-dim); }
.footer-column a { display: inline-block; padding: 0.3rem 0; }
.footer-refined :is(.footer-column a, .footer-instagram, .footer-social, .footer-bottom a):hover { color: var(--gold); }
.footer-contacts li { display: flex; gap: 0.65rem; align-items: baseline; min-width: 0; }
.footer-contacts svg { width: 15px; height: 15px; flex: 0 0 15px; transform: translateY(2px); color: var(--gold); }
.footer-contacts span { padding: 0.3rem 0; }
.footer-office .footer-contacts li:first-child { margin-bottom: 0.85rem; }
/* Touch und Tablet: 44 px hohe Klickflächen im Footer, nur über den
   Innenabstand. Schrift, Farben und Spalten bleiben; die Zeilen ohne Link
   (Anschrift, Fax) bekommen dieselbe Höhe, damit der Rhythmus gleich ist. */
@media (max-width: 1100px), (pointer: coarse) {
  .footer-column li { margin-bottom: 0; }
  .footer-column a,
  .footer-contacts li > span:not(.footer-address) { min-height: 44px; padding-block: 0.6rem; }
  .footer-social { min-height: 44px; }
}
/* Mit Firmierung: Firma, Straße, PLZ/Ort je auf einer Zeile */
.footer-address { display: flex; flex-direction: column; }
.footer-address > span { padding: 0; }
.footer-address > span:first-child { padding-top: 0.3rem; }
.footer-address > span:last-child { padding-bottom: 0.3rem; }
.footer-company { color: var(--text); }
.footer-bottom {
  max-width: calc(var(--w) - 2 * var(--gutter));
  margin: 2.7rem auto 0;
  padding: 1.15rem 0 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  border-top: 1px solid var(--line);
  font-size: 0.75rem;
  color: var(--text-dim);
}
.footer-bottom ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.6rem; flex-wrap: wrap; }
.footer-bottom a { display: inline-block; min-height: 44px; padding: 0.8rem 0; font-size: 0.75rem; color: var(--text-dim); }

/* ── 13. Umbrüche, absteigend ───────────────────── */
@media (max-width: 1100px) {
  .bhama-refined .players-grid[data-n="2"] { grid-template-columns: 1.8fr 1fr; gap: 1.5rem; }
  .bhama-refined .player .player-body { padding: 1.5rem; }
  .bhama-refined .player .btn { padding-inline: 1rem; }
  .trip-teaser .card-title { font-size: 2.1rem; }
  .trip-teaser-body { padding-inline: 1.35rem; }
  .footer-layout { grid-template-columns: 160px 1fr 1.25fr; gap: 2rem; }
  .footer-brand { grid-column: 1; grid-row: 1 / 3; }
  .footer-navigation { grid-column: 2; grid-row: 1 / 3; }
  .footer-office { grid-column: 3; }
  .footer-bottom { margin-inline: var(--gutter); }
}

@media (max-width: 1020px) {
  .bhama-refined .destination-grid,
  .bhama-refined .destination-grid[data-n="2"],
  .bhama-refined .destination-grid--two { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; gap: 2.5rem; }
  .trip-teaser-photo { aspect-ratio: 16 / 10; }
  .trip-teaser-body { padding-inline: 2rem; }
  .trip-teaser .card-title { font-size: 2.5rem; }
  .bhama-refined .detail-grid-refined { grid-template-columns: minmax(0, 1fr); grid-template-areas: "aside" "main"; gap: 3.5rem; }
  .bhama-refined .detail-grid-refined .detail-aside { padding: 0 0 2.5rem; border: 0; border-bottom: 1px solid rgba(var(--rgb-charcoal),0.16); }
  /* Tablet: Fakten in zwei Spalten */
  .bhama-refined .detail-aside .journey-facts { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem; margin-bottom: 0; }
  .travel-cover { min-height: 520px; }
  .plakette--cover { width: 175px; }
}

@media (max-width: 900px) {
  /* Kompakte mobile Kopfleiste: 88 px, beim Scrollen 80 px, Wappen 64 px */
  .bhama-refined .burger { min-width: 44px; min-height: 44px; padding: 6px 8px; }
  .bhama-refined .nav-row,
  .bhama-refined.subpage .nav-row { height: 88px; min-height: 0; padding-top: 0; }
  .bhama-refined .nav.solid .nav-row,
  .bhama-refined.subpage .nav.solid .nav-row { height: 80px; min-height: 0; padding-top: 0; }
  .bhama-refined .burger,
  .bhama-refined.scrolled .burger,
  .bhama-refined.subpage .burger,
  .bhama-refined.subpage.scrolled .burger { top: 50%; transition: none; }
  .bhama-refined .hero-crest,
  .bhama-refined.scrolled .hero-crest { width: 64px; top: 8px; transition: none; }
  .admin-bar.bhama-refined .hero-crest,
  .admin-bar.bhama-refined.scrolled .hero-crest { top: calc(8px + 46px); }
  .bhama-refined .nav-crest,
  .bhama-refined.scrolled .nav-crest { width: 64px; }
  .bhama-refined :is([id], a[href], button, input, select, textarea, summary) { scroll-margin-top: 96px; }
  .admin-bar.bhama-refined :is([id], a[href], button, input, select, textarea, summary) { scroll-margin-top: 142px; }
  .bhama-refined .page-title-plain { padding-top: calc(88px + 2.6rem); }
  .bhama-refined .section--intro .section-head { grid-template-columns: 1fr; gap: 2rem; }
  .bhama-refined .players-grid:is([data-n="2"], [data-n="3"]) { grid-template-columns: 1fr; max-width: 640px; margin-left: 0; }
  .bhama-refined .players-grid[data-n="3"] > .player:not(.player-open) { grid-column: auto; }
  .bhama-refined .player-open { display: grid; grid-template-columns: 140px 1fr; padding: 1.2rem; }
  .bhama-refined .player-open .player-body { text-align: left; padding: 1rem; }
  .bhama-refined .partner-logos[data-n="2"] { gap: 2rem; }
  .travel-cover { padding-top: 110px; min-height: 460px; padding-bottom: 30px; }
  .plakette--cover { width: 160px; }
  .travel-intro-bottom { gap: 1.25rem; }
  .travel-intro-bottom .btn { font-size: 0.75rem; letter-spacing: 0.15em; padding-inline: 1.2rem; }
  .journey-hero, .profile-hero { padding-top: 7rem; }
  .journey-hero-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .journey-hero-copy { padding-bottom: 0; }
  .journey-hero h1 { font-size: 3.7rem; }
  .journey-hero .subhero-lead { max-width: 68ch; }
  .journey-hero-actions { flex-direction: row; align-items: center; gap: 1rem 1.5rem; flex-wrap: wrap; }
  .journey-hero-media { height: auto; aspect-ratio: 16 / 10; }
}

@media (max-width: 760px) {
  .bhama-refined .section-head { margin-bottom: 2rem; }
  .bhama-refined .section-head .head-title { font-size: 2.4rem; }
  .private-trip { grid-template-columns: 1fr; gap: 1rem; }
  .private-trip .btn { grid-column: auto; grid-row: auto; justify-self: start; }
  .trip-teaser-body { padding-inline: 1.5rem; padding-bottom: 1.6rem; }
  .bhama-refined .card-body { padding: 1.5rem; }
  .bhama-refined .coop-img img { min-height: 0; aspect-ratio: 4 / 3; }
  .bhama-refined .partner-logos[data-n="2"] { grid-template-columns: 1fr; justify-items: center; }
  .bhama-refined .partner-logos[data-n="2"] a { min-height: 0; }
  .profile-layout { grid-template-columns: 1fr; gap: 2.4rem; }
  .profile-photo { max-width: 345px; justify-self: start; }
  .profile-intro .subhero-actions { gap: 0.75rem; }
  .profile-intro .subhero-actions .btn { font-size: 0.67rem; padding: 1rem 1.25rem; }
  .bhama-refined.single-bhama_spieler .vorteile { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .travel-intro-bottom { flex-direction: column; align-items: stretch; }
  .travel-intro-bottom .btn { margin-left: 0; }
  .footer-refined { padding-top: 2.6rem; }
  .footer-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
  .footer-brand { grid-column: 1 / -1; grid-row: auto; width: 128px; justify-self: start; }
  .footer-brand .crest { width: 128px; }
  .footer-navigation { grid-column: 1 / -1; grid-row: auto; padding-bottom: 1.4rem; border-bottom: 1px solid var(--line); }
  .footer-navigation ul { display: flex; flex-wrap: wrap; gap: 0 1.6rem; }
  .footer-navigation .footer-heading { display: none; }
  .footer-column li { margin-bottom: 0.15rem; }
  .footer-column a { min-height: 44px; padding: 0.6rem 0; }
  .footer-office { grid-column: auto; }
  .footer-heading { font-size: 1.4rem; margin-bottom: 0.8rem; }
  .footer-bottom { margin-top: 1.8rem; }
}

@media (max-width: 640px) {
  .bhama-refined { --gutter: 1.25rem; }
  .bhama-refined .section,
  .bhama-refined .funnel-section { padding-block: 3rem; }
  .bhama-refined .section-head { margin-bottom: 1.65rem; }
  .bhama-refined .section-head .head-title { font-size: 2.05rem; line-height: 1.15; margin-bottom: 1rem; }
  .bhama-refined .section-head p { font-size: 0.9375rem; line-height: 1.8; }
  /* Hero proportional: lesbare Überschrift, breite Buttons, nächster Abschnitt in Reichweite */
  .bhama-refined .hero { min-height: min(760px, 100svh); padding: 124px var(--gutter) 72px; }
  .bhama-refined .hero-content { width: 100%; }
  .bhama-refined .hero .hero-title { font-size: clamp(2rem, 8.7vw, 2.45rem); line-height: 1.12; max-width: 18ch; animation: none; }
  .bhama-refined .hero-sub { font-size: 0.9375rem; line-height: 1.7; margin-top: 1.2rem; animation: none; }
  .bhama-refined .hero-actions { margin-top: 1.65rem; gap: 0.7rem; width: 100%; flex-direction: column; align-items: center; animation: none; }
  .bhama-refined .hero-actions .btn { min-width: 0; width: 100%; max-width: 330px; min-height: 48px; font-size: 0.7rem; letter-spacing: 0.18em; }
  .bhama-refined .hero-arrow { bottom: 1rem; }
  .bhama-refined .hero-arrow svg { height: 36px; }
  .bhama-refined .section--intro .section-head { gap: 1.1rem; }
  .bhama-refined .section--intro .section-shortcuts { margin-top: 1.7rem; }
  .travel-cover { min-height: 375px; padding-top: 100px; padding-bottom: 29px; }
  .travel-cover-bottom { gap: 12px; }
  .travel-cover-title { font-size: clamp(2.35rem, 10.3vw, 3.4rem); line-height: 1.05; padding-bottom: 8px; }
  .plakette--cover { width: clamp(112px, 34vw, 150px); }
  .travel-intro { padding: 1.6rem 0; }
  .travel-intro .subhero-lead { font-size: 0.9375rem; line-height: 1.75; }
  .travel-intro-bottom { gap: 1.25rem; margin-top: 1.25rem; }
  .travel-intro-bottom .btn { width: 100%; min-height: 48px; font-size: 0.75rem; }
  .detail-page-nav .shell { min-height: 52px; gap: 1rem; }
  .detail-page-nav a { font-size: 0.75rem; min-height: 52px; }
  .bhama-refined .detail-grid-refined { gap: 2.5rem; }
  .bhama-refined .detail-aside .aside-title { font-size: 1.65rem; margin-bottom: 1.2rem; }
  /* Kompakte Faktenzeilen: Beschriftung links, ganzer Wert rechts */
  .bhama-refined .detail-aside .journey-facts { display: block; }
  .bhama-refined .detail-aside .journey-facts div { grid-template-columns: 76px minmax(0, 1fr); gap: 0.75rem; padding-block: 0.85rem; }
  .bhama-refined .detail-aside .journey-facts dt { padding-top: 0.1rem; }
  .bhama-refined .detail-aside .journey-facts dd { font-size: 0.875rem; line-height: 1.65; }
  .bhama-refined .detail-main { font-size: 0.9375rem; line-height: 1.8; }
  .bhama-refined .detail-main h2 { font-size: 1.9rem; line-height: 1.15; }
  .bhama-refined .program-chapter { margin-top: 1.8rem; padding-top: 1.6rem; }
  .bhama-refined .program-chapter h3 { font-size: 1.6rem; }
  .bhama-refined .detail-main li { font-size: 0.9375rem; line-height: 1.75; }
  .bhama-refined .fs-inner:has(> .anfrage-form) .section-head { text-align: left; margin-bottom: 1.8rem; }
  .bhama-refined .fs-inner:has(> .anfrage-form) .section-head :is(.head-title, p) { margin-left: 0; }
  .bhama-refined .fs-inner:has(> .anfrage-form) .section-head .head-title { max-width: 22ch; }
  .bhama-refined .fs-frame { padding: 1.35rem 1.05rem; }
  .bhama-refined .fs-head { margin-bottom: 1.4rem; }
  .bhama-refined .fs-steps { display: none; }
  .bhama-refined .fs-count:not([hidden]) { display: block; }
  .bhama-refined .choices,
  .bhama-refined .choices[data-n="2"],
  .bhama-refined .choices[data-n="4"] { grid-template-columns: 1fr; gap: 0.6rem; }
  .bhama-refined .choice-face { min-height: 64px; padding: 0.85rem 1rem; gap: 0.85rem; }
  .bhama-refined .choice-face em { font-size: 1.12rem; }
  .bhama-refined .step-q { font-size: 1.75rem; margin-bottom: 1.3rem; }
  .bhama-refined .step .btn { min-height: 48px; width: 100%; margin-top: 1.35rem; font-size: 0.75rem; letter-spacing: 0.15em; }
  .bhama-refined .fs-back { padding-block: 0.65rem; font-size: 0.75rem; }
  .bhama-refined .players-grid .player:not(.player-open) figure { max-height: 400px; }
  .profile-photo { max-width: 310px; margin-inline: auto; justify-self: center; }
  .profile-intro .subhero-title { font-size: 2.65rem; }
  .profile-intro .subhero-lead { font-size: 0.9375rem; line-height: 1.75; }
  .profile-intro .subhero-actions { gap: 0.65rem; }
  .profile-intro .btn { min-height: 48px; display: inline-flex; align-items: center; }
  .journey-hero h1 { font-size: 2.9rem; }
  .journey-hero .subhero-lead { line-height: 1.75; }
  .bhama-refined .partner-logos[data-n="2"] { gap: 2.5rem; margin-bottom: 2rem; }
}

@media (max-width: 600px) {
  .admin-bar.bhama-refined .hero-crest,
  .admin-bar.bhama-refined.scrolled .hero-crest { top: 8px; }
}

@media (max-width: 540px) {
  .journey-hero h1 { font-size: 3rem; }
  .journey-hero-actions { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
  .journey-hero-actions .btn { font-size: 0.75rem; letter-spacing: 0.17em; padding-inline: 1.4rem; }
  .journey-hero-media { aspect-ratio: 4 / 3; }
  .detail-page-nav .shell { gap: 1.2rem; }
  .detail-page-nav a { font-size: 0.7rem; }
  .bhama-refined .players-grid .player:not(.player-open) { grid-template-columns: 1fr; }
  .bhama-refined .players-grid .player:not(.player-open) figure { max-height: 480px; }
  .bhama-refined .player .player-body { padding: 1.7rem; }
  .bhama-refined .player-open { grid-template-columns: 85px minmax(0, 1fr); padding: 0.75rem; }
  .bhama-refined .player-open figure { height: 85px; }
  .bhama-refined .player-open figure.player-placeholder img { width: 85px; height: 85px; }
  .bhama-refined .player-open .player-body { padding: 1.1rem 0.7rem; }
  .bhama-refined .player-open .card-title { font-size: 1.45rem; }
  .bhama-refined .player-open .btn { font-size: 0.625rem; padding: 0.8rem 1rem; }
}

@media (max-width: 440px) {
  .footer-layout { grid-template-columns: 1fr; gap: 1.6rem; }
  .footer-office { padding-top: 1.2rem; border-top: 1px solid var(--line); }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 0.25rem; }
}

@media (max-width: 359px) {
  /* 74 px: der längste Begriff in einem Wort („Bestleistung“) passt noch */
  .bhama-refined .detail-aside .journey-facts div { grid-template-columns: 74px minmax(0, 1fr); gap: 0.6rem; }
  .travel-cover { min-height: 350px; }
  .bhama-refined .player-open { grid-template-columns: 72px minmax(0, 1fr); }
  .bhama-refined .player-open figure,
  .bhama-refined .player-open figure.player-placeholder img { width: 72px; height: 72px; }
  .bhama-refined .player-open .card-title { font-size: 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .bhama-refined *, .bhama-refined *::before, .bhama-refined *::after { animation: none !important; scroll-behavior: auto !important; }
}
