/* Blum Inhalte – Ausgabe im Stil der alten Reisebüro-BLUM-Seite. Schriften kommen vom Theme. */
.blum {
  --blum-akzent: #b5262b;
  --blum-akzent-dunkel: #8f1d21;
  --blum-text: inherit;
  --blum-grau: #6b6b6b;
  --blum-linie: #dcdcdc;
  --blum-flaeche: #f4f4f4;
  --blum-schatten: 0 1px 3px rgba(0, 0, 0, .18);
}
.blum *, .blum *::before, .blum *::after { box-sizing: border-box; }
.blum img { max-width: 100%; height: auto; display: block; }
.blum-empty { color: var(--blum-grau); }
.blum-h { color: var(--blum-akzent); text-transform: uppercase; font-size: 1.05rem; font-weight: 500; letter-spacing: .02em; margin: 1.6em 0 .6em; }
.blum-h small { text-transform: none; font-size: .9em; color: var(--blum-grau); }
.blum-h-dark { color: inherit; }
.blum-upper { text-transform: uppercase; margin: 0 0 1em; font-size: .9rem; }
.blum-button {
  display: inline-flex; align-items: center; gap: .5em; background: var(--blum-akzent); color: #fff !important; text-decoration: none !important;
  padding: .55em 1.1em; border-radius: 4px; font-weight: 600; box-shadow: var(--blum-schatten); transition: background .15s;
}
.blum-button:hover { background: var(--blum-akzent-dunkel); }
.blum-right { text-align: right; }

/* ---------- Reise-Kacheln ---------- */
.blum-grid { display: grid; grid-template-columns: repeat(var(--blum-cols, 4), minmax(0, 1fr)); gap: 30px; }
.blum-card { display: flex; flex-direction: column; background: var(--blum-flaeche); border: 1px solid var(--blum-linie); box-shadow: var(--blum-schatten); }
.blum-card-img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #ddd; }
.blum-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.blum-card:hover .blum-card-img img { transform: scale(1.04); }
.blum-card-body { padding: 14px 16px 10px; flex: 1; }
.blum-card-meta { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.blum-card-title { font-size: .95rem; font-weight: 400; line-height: 1.45; margin: .25em 0 0; }
.blum-card-title a { color: inherit; text-decoration: none; }
.blum-card-foot { display: flex; align-items: stretch; justify-content: space-between; border-top: 1px solid var(--blum-linie); background: #fff; }
.blum-card-price { padding: 10px 16px; font-size: 1.15rem; }
.blum-card-go { display: grid; place-items: center; width: 50px; background: var(--blum-akzent); color: #fff; }
.blum-card-go:hover { background: var(--blum-akzent-dunkel); color: #fff; }

/* ---------- Slider "Weitere Reisen" ---------- */
.blum-slider-wrap { margin: 60px 0 20px; }
.blum-slider-title { text-align: center; color: var(--blum-akzent); font-weight: 400; margin-bottom: 30px; }
.blum-slider { position: relative; }
.blum-slider-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 90px) / 4); gap: 30px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 8px; }
.blum-slider-track::-webkit-scrollbar { display: none; }
.blum-slider-track > * { scroll-snap-align: start; }
.blum-slider-prev, .blum-slider-next, .blum-gal-prev, .blum-gal-next, .blum-team-prev, .blum-team-next {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 0;
  background: rgba(255, 255, 255, .9); box-shadow: var(--blum-schatten); font-size: 26px; line-height: 1; color: #555; cursor: pointer; padding: 0;
}
.blum-slider-prev { left: -48px; } .blum-slider-next { right: -48px; }
@media (max-width: 1300px) { .blum-slider-prev { left: 4px; } .blum-slider-next { right: 4px; } }

/* ---------- Detailseiten ---------- */
.blum-cols { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 50px; align-items: start; }
.blum-cols-right { grid-template-columns: minmax(0, 1fr) 320px; }
.blum-box { border: 1px solid var(--blum-linie); box-shadow: var(--blum-schatten); padding: 20px 24px; margin-bottom: 30px; background: #fff; }
.blum-box .blum-h:first-child { margin-top: 0; }
.blum-fact { display: flex; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--blum-linie); }
.blum-fact:last-child { border-bottom: 0; }
.blum-fact-icon { color: var(--blum-grau); }
.blum-fact-icon svg { width: 34px; height: 34px; }
.blum-fact b { display: block; text-transform: uppercase; font-size: .85rem; }
.blum-fact span { color: var(--blum-akzent); font-size: .8rem; }
.blum ul.blum-check, .blum ul.blum-dash, .blum ul.blum-contact { list-style: none; margin: 0 0 1em; padding: 0; }
.blum-check li, .blum-dash li { position: relative; padding: 0 0 .55em 1.6em; line-height: 1.45; }
.blum-check li::before { content: ""; position: absolute; left: 0; top: .25em; width: .7em; height: .4em; border-left: 2px solid var(--blum-akzent); border-bottom: 2px solid var(--blum-akzent); transform: rotate(-45deg); }
.blum-dash li::before { content: ""; position: absolute; left: .2em; top: .45em; border: .3em solid transparent; border-left-color: #444; }
.blum-subtitle { text-transform: uppercase; font-weight: 700; font-size: .9rem; margin: 0 0 1em; }
.blum-slogan { font-style: italic; color: var(--blum-akzent); }
.blum-text { margin: 1.5em 0; }
.blum-files { margin: 1em 0; }
.blum-prices { width: 100%; border-collapse: collapse; margin-bottom: 1.5em; }
.blum-prices td { padding: 8px 0; border-bottom: 1px solid var(--blum-linie); vertical-align: top; }
.blum-prices td:last-child { text-align: right; color: var(--blum-akzent); font-size: 1.25rem; white-space: nowrap; padding-left: 1em; }
.blum-prices small { display: block; color: var(--blum-grau); }
.blum-nav { display: flex; justify-content: space-between; gap: 1em; border-top: 1px solid var(--blum-linie); border-bottom: 1px solid var(--blum-linie); padding: 12px 0; margin-top: 40px; font-size: .9rem; }
.blum-nav a, .blum-back { color: var(--blum-akzent); text-decoration: none; }
.blum-back { display: inline-block; margin-bottom: 14px; }

/* Galerie */
.blum-gallery { border: 1px solid var(--blum-linie); box-shadow: var(--blum-schatten); padding: 6px; background: #fff; }
.blum-gal-stage { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #eee; }
.blum-gal-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .35s; }
.blum-gal-slide.is-active { opacity: 1; }
.blum-gal-slide img { width: 100%; height: 100%; object-fit: cover; }
.blum-gal-prev { left: 10px; } .blum-gal-next { right: 10px; }
.blum-gal-thumbs { display: flex; gap: 10px; overflow-x: auto; padding: 14px 10px 8px; }
.blum-gal-thumb { flex: 0 0 110px; border: 2px solid transparent; padding: 0; background: none; cursor: pointer; opacity: .75; }
.blum-gal-thumb.is-active, .blum-gal-thumb:hover { border-color: var(--blum-akzent); opacity: 1; }
.blum-gal-thumb img { width: 110px; height: 62px; object-fit: cover; }

/* ---------- Filialen ---------- */
.blum-filialen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.blum-filiale { padding: 30px 40px 30px 0; border-bottom: 1px solid var(--blum-linie); }
.blum-filiale:nth-child(2n) { padding: 30px 0 30px 40px; border-left: 1px solid var(--blum-linie); }
.blum-filiale header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1em; margin-bottom: 14px; }
.blum-filiale h3 { color: var(--blum-akzent); text-transform: uppercase; font-size: 1rem; font-weight: 500; margin: 0; }
.blum-pill { background: var(--blum-akzent); color: #fff !important; font-size: .7rem; padding: 2px 8px; border-radius: 3px; text-decoration: none; white-space: nowrap; }
.blum-filiale-body { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
.blum-filiale-img { display: block; border: 1px solid var(--blum-linie); box-shadow: var(--blum-schatten); padding: 3px; align-self: start; }
.blum-filiale-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.blum-address { font-style: normal; margin-bottom: .8em; line-height: 1.6; }
.blum-contact { list-style: none; margin: 0 0 1em; padding: 0; }
.blum-contact li { display: flex; align-items: center; gap: .5em; line-height: 1.6; }
.blum-contact a { color: var(--blum-akzent); text-decoration: none; word-break: break-all; }
.blum-contact svg { width: 15px; height: 15px; flex: none; }
.blum-map { width: 100%; border: 1px solid var(--blum-linie); }
.blum-map-filter { position: absolute; top: 10px; right: 10px; z-index: 500; padding: 4px 8px; font: inherit; font-size: .85rem; }
.blum-filiale-hero { margin: 0 0 30px; border: 1px solid var(--blum-linie); box-shadow: var(--blum-schatten); padding: 4px; }
.blum-hours dt { font-weight: 700; margin-top: .5em; }
.blum-hours dd { margin: 0 0 .5em; padding-bottom: .5em; border-bottom: 1px solid var(--blum-linie); }
.blum-hours dd:last-child { border-bottom: 0; }

/* Team */
.blum-team { margin: 40px 0; }
.blum-team-row { position: relative; border-bottom: 1px solid var(--blum-linie); }
.blum-team-track { display: flex; justify-content: center; gap: 10px; overflow-x: auto; scrollbar-width: none; padding: 0 44px; }
.blum-team-track::-webkit-scrollbar { display: none; }
.blum-team-member { flex: 0 0 110px; padding: 0; border: 0; background: none; cursor: pointer; opacity: .8; transition: transform .2s, opacity .2s; transform-origin: bottom center; }
.blum-team-member.is-active { opacity: 1; transform: scale(1.18); }
.blum-team-member img { width: 110px; height: 110px; object-fit: cover; object-position: top; }
.blum-team-noimg { display: grid; place-items: center; width: 110px; height: 110px; background: var(--blum-flaeche); font-size: 2rem; color: var(--blum-grau); }
.blum-team-prev { left: 0; } .blum-team-next { right: 0; }
.blum-team-info { text-align: center; padding: 16px 0; display: flex; flex-direction: column; align-items: center; gap: .3em; }
.blum-team-info svg { width: 14px; height: 14px; vertical-align: -2px; }
.blum-team-info a { color: var(--blum-akzent); text-decoration: none; }
.blum-team-name { text-transform: uppercase; font-weight: 400; }
.blum-team-pos { margin-top: .5em; }

/* ---------- Jobs ---------- */
.blum-jobs { display: grid; gap: 20px; }
.blum-job { border: 1px solid var(--blum-linie); box-shadow: var(--blum-schatten); padding: 20px 24px; background: #fff; }
.blum-job h3 { margin: .2em 0 .5em; }
.blum-job h3 a { color: var(--blum-akzent); text-decoration: none; }
.blum-job-type { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--blum-grau); }
.blum-more { color: var(--blum-akzent); text-decoration: none; }
.blum-form { margin-top: 30px; }

/* ---------- Responsiv ---------- */
@media (max-width: 1024px) {
  .blum-grid { --blum-cols: 2 !important; }
  .blum-slider-track { grid-auto-columns: calc((100% - 30px) / 2); }
  .blum-cols, .blum-cols-right { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .blum-reise .blum-side { order: 2; }
  .blum-filialen { grid-template-columns: minmax(0, 1fr); }
  .blum-filiale, .blum-filiale:nth-child(2n) { padding: 24px 0; border-left: 0; }
}
@media (max-width: 600px) {
  .blum-grid { --blum-cols: 1 !important; }
  .blum-slider-track { grid-auto-columns: 85%; }
  .blum-filiale-body { grid-template-columns: minmax(0, 1fr); }
  .blum-nav { flex-wrap: wrap; }
  .blum-team-member { flex-basis: 84px; }
  .blum-team-member img, .blum-team-noimg { width: 84px; height: 84px; }
}

/* Direkt auf einer Seite mit voller Breite (Kadence "Fullwidth") an die Inhaltsbreite des Themes halten.
   In einer Kadence-Zeile/Gruppe mit eigenem Container greift das nicht. Die Karte bleibt randlos. */
.content-width-fullwidth .entry-content > .blum > :is(.blum-grid, .blum-filialen, .blum-jobs, .blum-empty),
.content-width-fullwidth .entry-content > .blum-slider-wrap,
.content-width-fullwidth .entry-content > .wp-block-heading {
  max-width: var(--global-content-width, 1200px);
  margin-left: auto; margin-right: auto;
  padding-left: var(--global-content-edge-padding, 1.5rem); padding-right: var(--global-content-edge-padding, 1.5rem);
}
.content-width-fullwidth .entry-content > .blum > :is(.blum-grid, .blum-filialen, .blum-jobs) { margin-top: 40px; margin-bottom: 40px; }
