/* Brexbachtalbahn e.V. - Bahnuebergaenge Bendorf
 * Alle Selektoren auf .brex-bue gescopet, alle Klassen bb- praefixiert.
 * Quelle: Artikel.html, umgebaut fuer Avada / WordPress.
 */
.brex-bue { --brex-red:#900018;--brex-red-dark:#5e0010;--brex-red-tint:#f4e2e5; --ink:#232323;--muted:#6f6a66;--paper:#fff;--line:#e5e0d8; --map-bg:#f4f1ea;--water:#c6d6e4;--road-minor:#e0d6c2;--road-main:#cbb98f; --rail-other:#a7a299;--rail-brex:#54514b;--offen-bg:#ece9e3; font-family:"Segoe UI",Roboto,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; color:var(--ink);max-width:1040px;margin:0 auto;line-height:1.55;padding:4px;-webkit-font-smoothing:antialiased }
.brex-bue * { box-sizing:border-box }
.brex-bue h2 { font-size:1.5rem;margin:0 0 .2rem;color:var(--brex-red-dark);font-weight:700 }
.brex-bue .bb-lead { color:var(--muted);margin:0 0 1rem;font-size:1rem;max-width:760px }
/* ---- HERO: Karte + Berechnung nebeneinander ---- */
.brex-bue .bb-hero { display:block }
.brex-bue .bb-card { border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;background:var(--paper) }
.brex-bue .bb-calc { background:linear-gradient(#fff,#fdf7f8);border-color:#eccdd3 }
.brex-bue .bb-hero .bb-mapcard { margin-bottom:1rem }
.brex-bue .bb-seg { display:inline-flex;border:1.5px solid var(--brex-red);border-radius:999px;overflow:hidden;margin:0 0 .8rem }
.brex-bue .bb-seg button { border:0;background:var(--paper);color:var(--brex-red);padding:.4rem 1.05rem;font:inherit;font-size:.92rem;cursor:pointer }
.brex-bue .bb-seg button[aria-pressed=true] { background:var(--brex-red);color:#fff }
.brex-bue .bb-freq { font-size:.98rem;margin:0 0 .9rem }
.brex-bue .bb-daycap { font-size:.94rem;color:#454340;margin:0 0 .45rem }
.brex-bue .bb-daybar { position:relative;height:24px;background:#eef4e9;border:1px solid #dfe7d7;border-radius:6px;overflow:hidden }
.brex-bue .bb-daybar>.bb-closed { position:absolute;left:0;top:0;height:100%;background:var(--brex-red) }
.brex-bue .bb-daybar>.bb-lab { position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.78rem;color:#3f5e33 }
.brex-bue .bb-timer { border-top:1px solid var(--line);margin-top:.9rem;padding-top:.9rem }
.brex-bue .bb-timer p { margin:0 0 .5rem;font-size:.93rem;color:#454340 }
.brex-bue .bb-btns { display:flex;gap:8px;flex-wrap:wrap;align-items:center }
.brex-bue .bb-btns button { border:1.5px solid var(--brex-red);background:#fff;color:var(--brex-red);border-radius:8px;padding:.4rem .75rem;font:inherit;font-size:.88rem;cursor:pointer }
.brex-bue .bb-btns button:hover { background:var(--brex-red-tint) }
.brex-bue .bb-clock { font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;margin-left:6px;min-width:74px;display:inline-block }
.brex-bue .bb-bar { height:10px;background:var(--offen-bg);border-radius:6px;margin-top:.6rem;overflow:hidden }
.brex-bue .bb-bar>span { display:block;height:100%;width:0;background:var(--brex-red);border-radius:6px;transition:width .1s linear }
.brex-bue .bb-mapwrap { position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--map-bg) }
.brex-bue .bb-mapwrap svg.bb-map { display:block;width:100%;height:auto }
.brex-bue .bb-attr { position:absolute;right:6px;bottom:4px;font-size:10px;color:#7a756e;background:rgba(255,255,255,.72);padding:1px 5px;border-radius:4px }
.brex-bue .bb-lbl-road { font-size:13px;fill:#8a6d3b;font-weight:600 }
.brex-bue .bb-lbl-place { font-size:14px;fill:#4a4642;font-weight:700 }
.brex-bue .bb-lbl-dir { font-size:12px;fill:#7a756e;font-style:italic }
.brex-bue .bb-mk { cursor:pointer }
.brex-bue .bb-mk .bb-hit { fill:var(--brex-red);opacity:0 }
.brex-bue .bb-mk:hover .bb-hit, .brex-bue .bb-mk:focus-visible .bb-hit { opacity:.16 }
.brex-bue .bb-mk text { font-size:13px;font-weight:700;pointer-events:none }
.brex-bue .bb-mk:focus-visible { outline:none }
.brex-bue .bb-dot { filter:drop-shadow(0 1px 1px rgba(0,0,0,.25)) }
.brex-bue .bb-maphint { margin:0 0 .7rem;color:var(--muted);font-size:.92rem }
/* ---- Übergangsdetail ---- */
.brex-bue .bb-cross { margin:1rem 0 0 }
.brex-bue .bb-chead { display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap }
.brex-bue .bb-chead .bb-nm { font-size:1.08rem;font-weight:700 }
.brex-bue .bb-chead .bb-km { color:var(--muted);font-size:.9rem }
.brex-bue .bb-badge { display:inline-block;font-size:.8rem;padding:3px 11px;border-radius:999px;margin:.45rem 0 .3rem }
.brex-bue .bb-badge.bb-is-calc { background:var(--brex-red);color:#fff }
.brex-bue .bb-badge.bb-is-open { background:var(--offen-bg);color:var(--muted) }
.brex-bue .bb-cbody { display:grid;grid-template-columns:1fr;gap:.8rem;margin-top:.4rem }
@media(min-width:560px) {
  .brex-bue .bb-cbody { grid-template-columns:230px 1fr }
}
.brex-bue .bb-photo { width:100%;border-radius:8px;display:block;background:#eceae5;aspect-ratio:16/9;object-fit:cover }
.brex-bue .bb-nophoto { width:100%;border-radius:8px;background:#eceae5;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;color:#9a958d;font-size:.85rem }
.brex-bue .bb-cs { font-weight:600;margin:.1rem 0 .35rem }
.brex-bue .bb-co { color:#454340;font-size:.95rem;margin:0 }
/* ---- Desktop: zwei Spalten, passt auf einen Bildschirm ---- */
@media(min-width:900px) {
  .brex-bue .bb-hero { display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start }
  .brex-bue .bb-hero .bb-mapcard { margin-bottom:0 }
  .brex-bue .bb-hero .bb-mapwrap svg.bb-map { width:auto;height:58vh;max-height:560px;max-width:100% }
  .brex-bue .bb-hero .bb-calc { align-self:stretch }
}
/* ---- Artikeltext darunter ---- */
.brex-bue .bb-article { max-width:780px;margin:1.6rem auto 0;padding-top:.6rem }
.brex-bue .bb-article h3 { color:var(--brex-red-dark);font-size:1.2rem;margin:1.7rem 0 .5rem;border-top:1px solid var(--line);padding-top:1.1rem }
.brex-bue .bb-article h3:first-child { border-top:0;padding-top:0;margin-top:.4rem }
.brex-bue .bb-article h4 { color:var(--brex-red-dark);font-size:1.02rem;margin:1.15rem 0 .4rem }
.brex-bue .bb-article p { margin:0 0 .8rem }
.brex-bue .bb-article ul { margin:0 0 .9rem;padding-left:1.2rem }
.brex-bue .bb-article li { margin:0 0 .4rem }
.brex-bue .bb-article table { border-collapse:collapse;width:100%;margin:.6rem 0 1.1rem;font-size:.92rem }
.brex-bue .bb-article th, .brex-bue .bb-article td { border:1px solid var(--line);padding:.42rem .6rem;vertical-align:top;text-align:left }
.brex-bue .bb-article th { background:#f2ece4;color:var(--brex-red-dark);font-weight:700 }
.brex-bue .bb-article .bb-foot { font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.8rem;margin-top:1rem }

/* ---- Ergaenzungen fuer die WordPress-Fassung ---- */
/* Manche Themes setzen display auf alle Elemente und heben [hidden] aus. */
.brex-bue [hidden] { display:none !important }
.brex-bue .bb-status { font-size:.88rem; color:#454340; margin:.5rem 0 0; min-height:1.2em }
.brex-bue .bb-attr { font-size:11px }
/* Bilder nicht von Theme-Regeln verzerren lassen */
.brex-bue .bb-photo { max-width:100%; height:auto }
/* Tabellen im Artikelteil: Kopfzeile abheben, Datenzellen normal */
.brex-bue .bb-article tbody th { background:transparent; color:inherit; font-weight:600 }
@media (prefers-reduced-motion: reduce) {
  .brex-bue .bb-bar>span { transition:none }
}
