/* =========================================================================
   Neue Tourseite (Pilot 2026) – nur aktiv auf Beiträgen mit Layout v2.
   Farben ausschließlich aus CI-Regeln.md (Astra-Palette).
   ========================================================================= */
.bct-ts2 {
  --salbei: #53736D; --sand: #D9C8A9; --gold: #D9AE5F; --schiefer: #334155;
  --weiss: #FFFFFF; --nebel: #F0F5FA; --blau: #24344A; --grund: #F1F0ED;
  --leiste: #434A54; --creme: #F7F4EE; --grau: #4B5259; --schwarz: #111111; --braun: #A6866A;
  --nav-h: 56px;
  color: var(--blau);
  font-size: 17px;
  line-height: 1.55;
}
html:has(body.bct-ts2-seite) { scroll-padding-top: 80px; }
body.bct-ts2-seite { overflow-x: hidden; }
@media (prefers-reduced-motion: no-preference) { html:has(body.bct-ts2-seite) { scroll-behavior: smooth; } }
.bct-ts2-tag, .bct-ts2 #termine, .bct-ts2-block { scroll-margin-top: 76px; }
body.bct-ts2-seite .site-content .ast-container { max-width: none; padding-left: 0; padding-right: 0; }
body.bct-ts2-seite .ast-article-single { padding: 0; margin: 0; background: transparent; box-shadow: none; border: 0; }
body.bct-ts2-seite .entry-content > .bct-ts2 { margin-top: 0; }
body.bct-ts2-seite .entry-header, body.bct-ts2-seite .ast-single-post-featured-section, body.bct-ts2-seite .post-navigation, body.bct-ts2-seite .ast-single-related-posts-container, body.bct-ts2-seite .comments-area { display: none !important; }
body.bct-ts2-seite .entry-content p { margin-bottom: 14px; }
body.bct-ts2-seite .entry-content a.bct-ts2-btn { text-decoration: none; }

.bct-ts2 h1, .bct-ts2 h2, .bct-ts2 h3 { color: var(--blau); line-height: 1.15; margin: 0 0 16px; }
.bct-ts2 h2 { font-size: clamp(26px, 3vw, 36px); }
.bct-ts2 h3 { font-size: 21px; margin-bottom: 6px; }
.bct-ts2 a:not([class*="bct-pakete"]) { color: var(--salbei); }
.bct-ts2-btn, .bct-ts2 .bct-ts2-kicker, .bct-ts2 .bct-ts2-nav__inner > a, .bct-ts2 .bct-ts2-chip, .bct-ts2 button, .bct-ts2 summary, .bct-ts2 th, .bct-ts2-fakten strong, .bct-ts2-mobilbar strong, .bct-ts2-map-stand strong, .bct-ts2-tag__nr, .bct-ts2-stimmen footer { font-family: Rubik, Arial, Helvetica, sans-serif; }
.bct-ts2 img { max-width: 100%; height: auto; display: block; }
.bct-ts2-wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.bct-ts2-wrap--schmal { max-width: 860px; }
.bct-ts2-block { padding: 64px 0; background: var(--grund); }
.bct-ts2-block--hell { background: var(--weiss); }
.bct-ts2-lead { font-size: 19px; color: var(--grau); }
.bct-ts2-kicker { display: inline-block; font-weight: 600; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--weiss); background: var(--salbei); border-radius: 100px; padding: 5px 12px; margin-bottom: 12px; }
.bct-ts2-block--hell .bct-ts2-kicker { background: var(--schiefer); }

.bct-ts2-btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 100px; padding: 13px 26px; border: 0; cursor: pointer; font-weight: 600; font-size: 16px; line-height: 1.2; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.bct-ts2-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(17, 17, 17, .18); }
.bct-ts2-btn--gold { background: var(--gold); color: var(--blau) !important; }
.bct-ts2-btn--hell { background: var(--creme); color: var(--blau) !important; }
.bct-ts2 :focus-visible { outline: 3px solid var(--blau); outline-offset: 3px; }
.bct-ts2-hero :focus-visible, .bct-ts2-abschluss :focus-visible, .bct-ts2-fakten .is-preis :focus-visible { outline-color: var(--gold); }

/* ---------- Hero mit Film ---------- */
.bct-ts2-hero { --bct-ts2-hero: none; position: relative; min-height: min(78vh, 680px); display: flex; align-items: flex-end; color: var(--weiss); background: var(--schiefer) var(--bct-ts2-hero) center/cover no-repeat; overflow: hidden; width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
/* Bewusste Ausnahme von CI 1: ein Schwarz-Verlauf über dem Foto, damit weiße Schrift auf jedem Bild lesbar bleibt. */
.bct-ts2-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17, 17, 17, .15) 0%, rgba(17, 17, 17, .5) 45%, rgba(17, 17, 17, .82) 100%); pointer-events: none; }
.bct-ts2-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.2s ease; }
.bct-ts2-hero__video.is-playing { opacity: 1; }
.bct-ts2-hero__inner { position: relative; z-index: 1; width: 100%; max-width: 1180px; margin: 0 auto; padding: 230px 20px 150px; }
.bct-ts2-crumbs { font-size: 14px; margin-bottom: 14px; }
.bct-ts2-crumbs a { color: var(--weiss) !important; text-decoration: none; opacity: .92; }
.bct-ts2-crumbs span { opacity: .7; margin: 0 6px; }
.bct-ts2-hero .bct-ts2-kicker { background: var(--schiefer); color: var(--weiss); }
.bct-ts2-hero__title { color: var(--weiss) !important; font-size: clamp(30px, 4.4vw, 54px); max-width: 820px; text-shadow: 0 2px 12px rgba(17, 17, 17, .45); margin-bottom: 12px; }
.bct-ts2-hero__sub { font-size: 19px; max-width: 760px; margin-bottom: 22px; text-shadow: 0 1px 8px rgba(17, 17, 17, .6); color: var(--nebel); }
.bct-ts2-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }
.bct-ts2-hero__film { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 18px; min-height: 30px; }
.bct-ts2-hero__clip { margin: 0; font-size: 13px; color: var(--nebel); display: none; align-items: center; gap: 8px; background: var(--schiefer); border-radius: 100px; padding: 8px 14px; min-height: 36px; }
.bct-ts2-hero__clip.is-visible { display: inline-flex; }
.bct-ts2-hero__clip-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); animation: bct-ts2-puls 1.6s ease-in-out infinite; }
.bct-ts2-hero__pause { background: var(--schiefer); color: var(--weiss); border: 0; border-radius: 100px; padding: 10px 16px; min-height: 44px; font-size: 13px; cursor: pointer; }
@keyframes bct-ts2-puls { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: .5; } }

/* ---------- Faktenleiste ---------- */
.bct-ts2-fakten { position: relative; z-index: 2; margin: -88px auto 0; max-width: 1180px; padding: 0 20px; }
.bct-ts2-fakten ul { list-style: none; margin: 0; padding: 0; background: var(--weiss); border-radius: 15px; box-shadow: 0 10px 30px rgba(36, 52, 74, .14); display: grid; grid-template-columns: repeat(6, 1fr); overflow: hidden; }
.bct-ts2-fakten li { padding: 18px 14px; border-right: 1px solid var(--sand); text-align: center; margin: 0; }
.bct-ts2-fakten li:last-child { border-right: 0; }
.bct-ts2-fakten li.is-preis { background: var(--salbei); color: var(--weiss); }
.bct-ts2-fakten small { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--grau); }
.bct-ts2-fakten li.is-preis small { color: var(--nebel); }
.bct-ts2-fakten strong { display: block; font-size: 22px; font-weight: 600; margin-top: 2px; font-variant-numeric: tabular-nums; }
.bct-ts2-fakten strong.is-text { font-size: 17px; padding-top: 4px; line-height: 1.2; }
.bct-ts2-fakten em { display: block; font-style: normal; font-size: 12px; color: var(--nebel); }

/* ---------- Sprungleiste ---------- */
.bct-ts2-nav { position: sticky; top: 0; z-index: 40; background: var(--weiss); border-bottom: 1px solid var(--sand); margin-top: 28px; width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.bct-ts2-nav__inner { max-width: 1180px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; gap: 2px; overflow-x: auto; height: var(--nav-h); scrollbar-width: none; }
.bct-ts2-nav__inner::-webkit-scrollbar { display: none; }
.bct-ts2-nav__link { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; text-decoration: none; color: var(--grau) !important; font-size: 14px; font-weight: 600; padding: 12px 12px; border-radius: 100px; transition: background .15s; }
.bct-ts2-nav__link svg { display: none; width: 22px; height: 22px; flex: none; }
.bct-ts2-nav__kurz { display: none; }
.bct-ts2-nav__link.is-aktiv, .bct-ts2-nav__link:hover { background: var(--nebel); color: var(--salbei) !important; }
.bct-ts2-nav__link.is-nur-schmal { display: none; }
.bct-ts2-nav__spacer { flex: 1; }
.bct-ts2-nav__cta { padding: 11px 18px; min-height: 40px; font-size: 14px; white-space: nowrap; }
.bct-ts2-nav__progress { height: 3px; background: var(--sand); }
.bct-ts2-nav__progress span { display: block; height: 100%; width: 0; background: var(--gold); transition: width .15s linear; }

/* ---------- Überblick ---------- */
.bct-ts2-zwei { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; }
.bct-ts2-karte { background: var(--creme); border-radius: 15px; padding: 24px; }
.bct-ts2-karte ul { margin: 0; padding-left: 20px; }
.bct-ts2-karte li { margin-bottom: 8px; }
.bct-ts2-pruef { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 22px; }
.bct-ts2-pruef div { background: var(--nebel); border-radius: 10px; padding: 14px; font-size: 14px; color: var(--grau); }
.bct-ts2-pruef strong { display: block; color: var(--salbei); margin-bottom: 4px; }

/* ---------- Highlights ---------- */
.bct-ts2-hl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.bct-ts2-hl__item { position: relative; display: block; border-radius: 15px; overflow: hidden; background: var(--schiefer); aspect-ratio: 4 / 3; text-decoration: none; box-shadow: 0 4px 18px rgba(36, 52, 74, .1); }
.bct-ts2-hl__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.bct-ts2-hl__item:hover img, .bct-ts2-hl__item:focus-visible img { transform: scale(1.06); }
.bct-ts2-hl__text { position: absolute; left: 0; right: 0; bottom: 0; padding: 48px 18px 16px; background: linear-gradient(180deg, rgba(17, 17, 17, 0), rgba(17, 17, 17, .78)); color: var(--weiss); }
.bct-ts2-hl__text strong { display: block; font-size: 18px; line-height: 1.2; }
.bct-ts2-hl__text span { font-size: 13px; color: var(--nebel); }

/* ---------- Tourtage mit mitfahrender Karte ---------- */
.bct-ts2-etappen { background: var(--weiss); border-radius: 15px; padding: 0 22px; margin: 10px 0 34px; box-shadow: 0 4px 18px rgba(36, 52, 74, .06); }
.bct-ts2-etappen summary { cursor: pointer; font-weight: 600; padding: 16px 0; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.bct-ts2-etappen summary::-webkit-details-marker { display: none; }
.bct-ts2-etappen summary::after { content: "+"; color: var(--salbei); font-size: 22px; line-height: 1; }
.bct-ts2-etappen[open] summary::after { content: "–"; }
.bct-ts2 table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0 0 18px; }
.bct-ts2 th, .bct-ts2 td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--sand); vertical-align: top; }
.bct-ts2 thead th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--grau); background: var(--creme); }
.bct-ts2 tbody th { white-space: nowrap; }
.bct-ts2 tbody th a { text-decoration: none; font-weight: 600; display: inline-block; padding: 10px 0; }
.bct-ts2 td.num, .bct-ts2 th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bct-ts2 tfoot td { font-weight: 600; background: var(--creme); }

.bct-ts2-reise { display: grid; grid-template-columns: minmax(300px, 420px) 1fr; gap: 36px; align-items: start; }
.bct-ts2-map-spalte { position: sticky; top: calc(var(--nav-h) + 16px); }
.bct-ts2-map-card { background: var(--weiss); border-radius: 15px; overflow: hidden; box-shadow: 0 10px 30px rgba(36, 52, 74, .12); }
.bct-ts2-map { height: 380px; background: var(--nebel); }
.bct-ts2-map .leaflet-control-attribution { font-size: 12px; }
.bct-ts2-map-stand { display: flex; justify-content: space-between; gap: 12px; padding: 14px 18px 10px; }
.bct-ts2-map-stand small { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--grau); }
.bct-ts2-map-stand strong { display: block; font-size: 20px; line-height: 1.2; }
.bct-ts2-map-stand__ort, .bct-ts2-map-stand__km > span { font-size: 13px; color: var(--grau); }
.bct-ts2-map-stand__km { text-align: right; }
.bct-ts2-km { font-variant-numeric: tabular-nums; }
.bct-ts2-map-balken { height: 6px; background: var(--sand); }
.bct-ts2-map-balken span { display: block; height: 100%; width: 0; background: var(--gold); transition: width .6s cubic-bezier(.2, .7, .2, 1); }
.bct-ts2-marker { width: 14px; height: 14px; border-radius: 50%; background: var(--sand); border: 2px solid var(--weiss); box-shadow: 0 0 0 1px var(--salbei); transition: transform .3s, background .3s; }
.bct-ts2-marker.is-done { background: var(--salbei); }
.bct-ts2-marker.is-aktiv { background: var(--gold); transform: scale(1.5); box-shadow: 0 0 0 5px var(--sand); }
.bct-ts2-bike { width: 30px; height: 30px; border-radius: 50%; background: var(--blau); color: var(--gold); display: grid; place-items: center; box-shadow: 0 4px 12px rgba(17, 17, 17, .35); transition: transform .25s; }
.bct-ts2-bike svg { width: 20px; height: 20px; }

.bct-ts2-tage { list-style: none; margin: 0; padding: 0; position: relative; }
.bct-ts2-tage::before { content: ""; position: absolute; left: 35px; top: 0; bottom: 0; width: 2px; background: var(--sand); }
.bct-ts2-tag { display: grid; grid-template-columns: 72px 1fr; gap: 22px; margin: 0 0 26px; position: relative; }
.bct-ts2-tag__nr { width: 72px; height: 72px; border-radius: 50%; background: var(--sand); color: var(--blau); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; position: relative; z-index: 1; box-shadow: 0 0 0 6px var(--grund); transition: background .35s, color .35s, transform .35s; }
.bct-ts2-tag.is-aktiv .bct-ts2-tag__nr, .bct-ts2-tag.is-done .bct-ts2-tag__nr { background: var(--salbei); color: var(--weiss); }
.bct-ts2-tag.is-aktiv .bct-ts2-tag__nr { background: var(--gold); color: var(--blau); transform: scale(1.08); }
.bct-ts2-tag__nr span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.bct-ts2-tag__nr strong { font-size: 22px; }
.bct-ts2-tag__body { background: var(--weiss); border-radius: 15px; padding: 22px 26px; box-shadow: 0 4px 18px rgba(36, 52, 74, .06); transition: box-shadow .35s; }
.bct-ts2-tag.is-aktiv .bct-ts2-tag__body { box-shadow: 0 10px 32px rgba(36, 52, 74, .16); }
.bct-ts2-tag__meta { color: var(--grau); font-size: 15px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.bct-ts2-chip { display: inline-block; background: var(--gold); color: var(--blau); font-size: 12px; font-weight: 600; letter-spacing: .04em; border-radius: 100px; padding: 3px 10px; }
.bct-ts2-chip--ruhe { background: var(--sand); }
.bct-ts2-tag__text { max-height: 5.4em; overflow: hidden; position: relative; transition: max-height .35s ease; }
.bct-ts2-tag__text::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2.6em; background: linear-gradient(rgba(255, 255, 255, 0), var(--weiss)); pointer-events: none; }
.bct-ts2-tag.is-offen .bct-ts2-tag__text, .bct-ts2-tag__text.is-kurz { max-height: none; }
.bct-ts2-tag.is-offen .bct-ts2-tag__text::after, .bct-ts2-tag__text.is-kurz::after { display: none; }
.bct-ts2-tag__toggle { background: none; border: 0; color: var(--salbei); font-weight: 600; font-size: 15px; cursor: pointer; padding: 12px 0; min-height: 44px; text-decoration: underline; }
.bct-ts2-tipp { background: var(--nebel); padding: 12px 16px; border-radius: 10px; }
.bct-ts2-tipp strong { display: inline-block; background: var(--gold); color: var(--blau); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; border-radius: 100px; padding: 2px 10px; margin-right: 8px; }
.bct-ts2-tag__media { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 14px; align-items: flex-start; }
.bct-ts2-clip { margin: 0; width: 280px; max-width: 100%; border-radius: 10px; overflow: hidden; background: var(--schwarz); position: relative; }
.bct-ts2-clip video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.bct-ts2-clip figcaption { position: absolute; left: 0; right: 0; bottom: 0; font-size: 13px; padding: 0 10px; min-height: 44px; display: flex; align-items: center; background: var(--schiefer); color: var(--nebel); }
.bct-ts2-clip figcaption a { color: var(--gold) !important; text-decoration: none; padding: 12px 0; }
.bct-ts2-clip__pause { position: absolute; top: 8px; right: 8px; min-width: 44px; min-height: 44px; border: 0; border-radius: 100px; background: var(--schiefer); color: var(--weiss); font-size: 12px; padding: 0 12px; cursor: pointer; }
.bct-ts2-bilder { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.bct-ts2-bild { padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 10px; overflow: hidden; }
.bct-ts2-bild img { height: 76px; width: 100px; object-fit: cover; transition: transform .4s; }
.bct-ts2-bild:hover img { transform: scale(1.08); }
.bct-ts2-bilder__mehr { font-size: 13px; color: var(--grau); }
.bct-ts2-hinweis { font-size: 13px; color: var(--grau); text-align: center; margin-top: 10px; }

/* ---------- Leistungen ---------- */
.bct-ts2-leist { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.bct-ts2-leist > div { border-radius: 15px; padding: 0 0 12px; overflow: hidden; }
.bct-ts2-leist > div h3 { margin: 0 0 16px; padding: 16px 24px; font-size: 19px; letter-spacing: .02em; }
.bct-ts2-leist > div:first-child { background: var(--weiss); }
.bct-ts2-leist > div:first-child h3 { background: var(--salbei); color: var(--weiss); }
.bct-ts2-leist > div:last-child { background: var(--creme); }
.bct-ts2-leist > div:last-child h3 { background: var(--sand); color: var(--blau); }
body.bct-ts2-seite .entry-content .bct-ts2-leist ul { margin: 0; padding: 4px 24px 12px; }
body.bct-ts2-seite .entry-content .bct-ts2-leist li { margin: 0 0 10px; padding-left: 28px; }
.bct-ts2-leist ul { list-style: none; margin: 0; padding: 0; }
.bct-ts2-leist li { position: relative; padding-left: 28px; margin-bottom: 10px; font-size: 15px; }
.bct-ts2-leist li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.bct-ts2-leist li.ja::before { content: "✓"; color: var(--salbei); }
.bct-ts2-leist li.nein::before { content: "−"; color: var(--grau); }

/* ---------- Termine (bestehender Block, eingebettet) ---------- */
.bct-ts2-termine { background: var(--grund); padding: 64px 0 10px; }
.bct-ts2-termine .bct-tour-terms { margin: 0; }
.bct-ts2-termine__sicher { font-size: 14px; color: var(--grau); text-align: center; margin: 14px 0 0; }

/* ---------- Stimmen ---------- */
.bct-ts2-stimmen { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.bct-ts2-stimmen blockquote { margin: 0; background: var(--weiss); border-radius: 15px; padding: 24px; font-size: 16px; border: 0; border-top: 4px solid var(--gold); font-style: normal; }
.bct-ts2-stimmen footer { margin-top: 14px; font-weight: 600; font-size: 14px; color: var(--salbei); }
.bct-ts2-stimmen footer small { display: block; font-family: Karla, Arial, sans-serif; font-weight: 400; font-size: 14px; color: var(--grau); }
.bct-ts2-stimmen footer small a { display: inline-block; padding: 10px 0; }
.bct-ts2-mehr { margin-top: 18px; }

/* ---------- Fragen ---------- */
.bct-ts2-faq { background: var(--creme); border-radius: 10px; margin-bottom: 10px; padding: 0 20px; }
.bct-ts2-faq summary { cursor: pointer; font-weight: 600; padding: 16px 0; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.bct-ts2-faq summary::-webkit-details-marker { display: none; }
.bct-ts2-faq summary::after { content: "+"; color: var(--salbei); font-size: 22px; line-height: 1; }
.bct-ts2-faq[open] summary::after { content: "–"; }
.bct-ts2-faq div { padding-bottom: 16px; color: var(--grau); }

/* ---------- Abschluss ---------- */
.bct-ts2-abschluss { background: var(--salbei); color: var(--weiss); padding: 64px 0; width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.bct-ts2-abschluss h2, .bct-ts2-abschluss p { color: var(--weiss); }
.bct-ts2-abschluss a { color: var(--weiss); }
.bct-ts2-abschluss .bct-ts2-zwei { grid-template-columns: 1fr 1fr; }
.bct-ts2-abschluss__box { background: var(--schiefer); border-radius: 15px; padding: 24px; }
.bct-ts2-abschluss__box > strong { display: block; margin-bottom: 12px; color: var(--gold); }
.bct-ts2-related { display: flex; gap: 14px; align-items: center; text-decoration: none; color: var(--weiss) !important; padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, .15); }
.bct-ts2-related img { width: 84px; height: 60px; object-fit: cover; border-radius: 10px; flex: none; }
.bct-ts2-related strong { display: block; line-height: 1.25; }
.bct-ts2-related small { color: var(--nebel); }

/* ---------- Handy-Leiste, Lightbox ---------- */
.bct-ts2-mobilbar { display: none; }
.bct-ts2-lightbox { border: 0; border-radius: 15px; padding: 0; max-width: min(96vw, 1200px); background: var(--schwarz); color: var(--weiss); }
.bct-ts2-lightbox::backdrop { background: rgba(17, 17, 17, .85); }
.bct-ts2-lightbox img { max-height: 82vh; width: auto; max-width: 100%; margin: 0 auto; }
.bct-ts2-lightbox__cap { margin: 0; padding: 10px 16px; font-size: 14px; color: var(--nebel); }
.bct-ts2-lightbox__close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .9); color: var(--blau); font-size: 24px; cursor: pointer; }

/* ---------- Einblenden beim Scrollen ---------- */
/* Nur wenn JavaScript läuft (Klasse is-js), werden Elemente zum Einblenden versteckt. */
.bct-ts2.is-js .bct-ts2-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease var(--delay, 0ms), transform .7s cubic-bezier(.2, .7, .2, 1) var(--delay, 0ms); }
.bct-ts2.is-js .bct-ts2-reveal.is-sichtbar { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .bct-ts2.is-js .bct-ts2-reveal { opacity: 1; transform: none; transition: none; }
  .bct-ts2-hero__video { display: none; }
  .bct-ts2 * { transition-duration: 0ms !important; animation: none !important; }
}

/* ---------- Umbrüche ---------- */
@media (max-width: 1024px) {
  .bct-ts2-reise { grid-template-columns: 1fr; }
  .bct-ts2-map-spalte { position: sticky; top: var(--nav-h); z-index: 5; }
  .bct-ts2-map-card { display: grid; grid-template-columns: 1fr 1fr; }
  .bct-ts2-map { height: 200px; grid-row: 1 / 3; }
  .bct-ts2-map-stand { padding: 10px 14px 6px; }
  .bct-ts2-map-stand strong { font-size: 17px; }
  .bct-ts2-map-balken { grid-column: 2; }
}
@media (max-width: 960px) {
  .bct-ts2-fakten ul { grid-template-columns: repeat(3, 1fr); }
  .bct-ts2-fakten li:nth-child(3n) { border-right: 0; }
  .bct-ts2-zwei, .bct-ts2-leist, .bct-ts2-abschluss .bct-ts2-zwei { grid-template-columns: 1fr; }
  .bct-ts2-hl, .bct-ts2-stimmen, .bct-ts2-pruef { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  body.bct-ts2-seite { padding-bottom: 92px; }
  .bct-ts2-hero { min-height: 520px; }
  .bct-ts2-hero__inner { padding: 170px 16px 130px; }
  .bct-ts2-wrap, .bct-ts2-fakten { padding-left: 16px; padding-right: 16px; }
  .bct-ts2-fakten ul { grid-template-columns: 1fr 1fr; }
  .bct-ts2-fakten li { padding: 14px 10px; }
  .bct-ts2-fakten li:nth-child(3n) { border-right: 1px solid var(--sand); }
  .bct-ts2-fakten li:nth-child(2n) { border-right: 0; }
  .bct-ts2-fakten strong { font-size: 18px; }
  .bct-ts2-nav__cta { display: none; }
  .bct-ts2-hero__inner { padding-top: 170px; }
  .bct-ts2-block { padding: 48px 0; }
  .bct-ts2-hl, .bct-ts2-stimmen, .bct-ts2-pruef { grid-template-columns: 1fr; }
  .bct-ts2-tage::before { left: 23px; }
  .bct-ts2-tag { grid-template-columns: 48px 1fr; gap: 14px; }
  .bct-ts2-tag__nr { width: 48px; height: 48px; }
  .bct-ts2-tag__nr span { display: none; }
  .bct-ts2-tag__nr strong { font-size: 18px; }
  .bct-ts2-tag__body { padding: 16px; }
  .bct-ts2-clip { width: 100%; }
  .bct-ts2-map-card { grid-template-columns: 1fr; }
  .bct-ts2-map { height: 180px; grid-row: auto; }
  .bct-ts2-map-balken { grid-column: auto; }
  .bct-ts2 table { font-size: 13px; }
  .bct-ts2 th, .bct-ts2 td { padding: 7px 6px; }
  .bct-ts2-mobilbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--weiss); border-top: 1px solid var(--sand); padding: 10px 16px; gap: 12px; align-items: center; justify-content: space-between; box-shadow: 0 -6px 20px rgba(36, 52, 74, .14); }
  .bct-ts2-mobilbar strong { font-size: 18px; display: block; line-height: 1.1; }
  .bct-ts2-mobilbar small { color: var(--grau); font-size: 12px; }
  .bct-ts2-mobilbar .bct-ts2-btn { padding: 11px 18px; font-size: 15px; }
}

/* Astra unterstreicht alle Links im Beitrag; in den Bausteinen der neuen Tourseite nur im Fließtext. */
body.bct-ts2-seite .entry-content .bct-ts2-hl__item,
body.bct-ts2-seite .entry-content .bct-ts2-related,
body.bct-ts2-seite .entry-content .bct-ts2-nav__inner > a,
body.bct-ts2-seite .entry-content .bct-ts2-crumbs a,
body.bct-ts2-seite .entry-content .bct-ts2 tbody th a,
body.bct-ts2-seite .entry-content .bct-ts2-clip figcaption a { text-decoration: none; }
body.bct-ts2-seite .entry-content .bct-ts2-related:hover strong,
body.bct-ts2-seite .entry-content .bct-ts2 tbody th a:hover { text-decoration: underline; }

/* Etappentabelle auf schmalen Bildschirmen: Übernachtungsspalte ausblenden, Rest scrollbar. */
@media (max-width: 640px) {
  .bct-ts2-etappen { overflow-x: auto; }
  .bct-ts2-etappen th:nth-child(4), .bct-ts2-etappen td:nth-child(4) { display: none; }
}

/* Handy: Platz für das große Kopf-Logo über dem Hero und für den Barrierefreiheits-Knopf neben der Leiste. */
@media (max-width: 921px) {
  .bct-ts2-hero__inner { padding-top: 170px; }
}
@media (max-width: 767px) {
  .bct-ts2-hero__film { display: none; }
}
@media (max-width: 640px) {
  .bct-ts2-mobilbar { padding-right: 78px; }
}
@media (max-width: 640px) {
  .bct-ts2-mobilbar > div { min-width: 0; flex: 1; }
  .bct-ts2-mobilbar small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .bct-ts2-mobilbar .bct-ts2-btn { white-space: nowrap; padding: 11px 14px; font-size: 14px; flex: none; }
}

/* Tour-PDF oben: im Kopf als dritter Knopf, in der Sprungleiste als Link vor dem Buchungsknopf. */
.bct-ts2-btn--pdf svg { flex: none; }
.bct-ts2-nav__link.bct-ts2-nav__pdf { color: var(--salbei) !important; text-decoration: underline; text-underline-offset: 3px; }

/* Sprungleiste schmal: Symbol über kurzem Wort, alle Einträge gleich breit, kein Scrollen. */
@media (max-width: 1024px) {
  .bct-ts2 { --nav-h: 64px; }
  .bct-ts2-nav__inner { height: 64px; gap: 0; overflow: visible; padding: 0 8px; }
  .bct-ts2-nav__link { flex: 1 1 0; flex-direction: column; justify-content: center; gap: 3px; padding: 6px 2px; border-radius: 10px; font-size: 12px; min-height: 56px; }
  .bct-ts2-nav__link svg { display: block; }
  .bct-ts2-nav__text { display: none; }
  .bct-ts2-nav__kurz { display: block; line-height: 1; }
  .bct-ts2-nav__link.is-nur-schmal { display: inline-flex; }
  .bct-ts2-nav__link.bct-ts2-nav__pdf { text-decoration: none; }
  .bct-ts2-nav__spacer, .bct-ts2-nav__cta { display: none; }
  .bct-ts2-tag, .bct-ts2 #termine, .bct-ts2-block { scroll-margin-top: 84px; }
  html:has(body.bct-ts2-seite) { scroll-padding-top: 88px; }
}
@media (max-width: 640px) {
  .bct-ts2-nav__link.is-zweitrangig, .bct-ts2-nav__link.bct-ts2-nav__pdf { display: none; }
}

/* Fahr-Karte (js/fahrt-karte.js): Motorrad fährt die Strecke ab, Tage sind anklickbar */
.bct-ts2-map--fahrt .harley div { width: 100%; height: 100%; transition: transform .35s; filter: drop-shadow(0 2px 2px rgba(17, 17, 17, .4)); }
.bct-ts2-map--fahrt .harley img { display: block; width: 100%; height: 100%; box-shadow: none !important; border: 0; border-radius: 0; }
.bct-ts2-map--fahrt .ort-name { background: var(--blau); color: var(--weiss); border: 0; border-radius: 8px; font: 600 13px Rubik, Arial, Helvetica, sans-serif; padding: 4px 9px; box-shadow: none; }
.bct-ts2-map--fahrt .ort-name::before { display: none; }
.bct-ts2-tag[data-schritt] { cursor: pointer; }
.bct-ts2-tag[data-schritt] .bct-ts2-tag__nr:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
@media (max-width: 1024px) {
  /* Handy und Tablet: Karte volle Breite, gefahrene Kilometer aus, Tag und Ort als schmale Zeile über der Karte */
  .bct-ts2-map-card { position: relative; display: block; }
  .bct-ts2 .bct-ts2-map { height: 300px; }
  .bct-ts2-map-stand__km, .bct-ts2-map-stand small { display: none; }
  .bct-ts2-map-stand { position: absolute; top: 10px; left: 10px; right: 56px; z-index: 500; padding: 0; pointer-events: none; }
  .bct-ts2-map-stand > div:first-child { display: inline-flex; align-items: baseline; gap: 6px; max-width: 100%; background: var(--weiss); border-radius: 10px; padding: 6px 12px; box-shadow: 0 4px 14px rgba(36, 52, 74, .18); white-space: nowrap; overflow: hidden; }
  .bct-ts2-map-stand strong { display: inline; font-size: 15px; }
  .bct-ts2-map-stand__ort { overflow: hidden; text-overflow: ellipsis; }
  .bct-ts2-map-stand__ort::before { content: "· "; }
  .bct-ts2-map:not(.bct-ts2-map--fahrt) .leaflet-top.leaflet-left { top: 44px; }
}
@media (max-width: 640px) {
  .bct-ts2 .bct-ts2-map { height: 260px; }
}

/* Fahr-Karte: Pfeile zum vorigen und nächsten Fahrtag */
.fahrt-pfeile{display:flex;border:0;box-shadow:0 4px 14px rgba(36,52,74,.18);border-radius:10px;overflow:hidden}
.fahrt-pfeil{width:40px;height:36px;border:0;margin:0;padding:0;background:#FFFFFF;color:#24344A;display:flex;align-items:center;justify-content:center;cursor:pointer}
.fahrt-pfeil+.fahrt-pfeil{border-left:1px solid #D9C8A9}
.fahrt-pfeil:hover:not(:disabled){background:#F0F5FA}
.fahrt-pfeil:focus-visible{outline:3px solid #D9AE5F;outline-offset:-3px}
.fahrt-pfeil:disabled{color:#D9C8A9;cursor:default}
@media (max-width: 1024px) { .bct-ts2-map-stand { right: 100px; } }
@media (min-width: 1025px) {
  /* Desktop: Karte so hoch, dass Karte und Stand ins Fenster passen (mindestens 380, höchstens 760 px) */
  .bct-ts2 .bct-ts2-map { height: clamp(380px, calc(100vh - var(--nav-h) - 200px), 760px); }
}
