/* Bus module guide (/vss/busmodul): builds on vss.css, everything scoped to .bm-page. */
.bm-hero{padding:64px 0 56px}
.bm-hero h1{font-size:clamp(2rem,3.8vw,3.2rem);max-width:900px}
.bm-crumbs{color:rgba(255,255,255,.6);font-size:.85rem;margin-bottom:22px}
.bm-crumbs a{color:rgba(255,255,255,.85)}
.bm-crumbs a:hover{color:#fff}
.bm-page .vss-anchor-nav a.bm-back{color:var(--vss-red)}
.bm-section{padding:72px 0}
.bm-narrow{max-width:1000px}
.bm-page h2{margin-top:10px}
.bm-page h3{font-size:1.3rem;margin:34px 0 12px}
.bm-page p{line-height:1.75}
.bm-muted{color:#66758a;font-size:.95rem}
.bm-ui{color:var(--vss-navy);font-weight:700;white-space:nowrap}

.bm-roles{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin:26px 0 8px}
.bm-roles > div{background:#fff;border:1px solid #e5eaf0;border-radius:16px;box-shadow:0 12px 35px rgba(16,35,63,.06);padding:22px}
.bm-roles i{color:var(--vss-red);display:block;font-size:1.4rem;margin-bottom:12px}
.bm-roles b{color:var(--vss-navy);display:block;font-size:1.05rem;margin-bottom:6px}
.bm-roles span{display:block;font-size:.93rem;line-height:1.6}

.bm-flow li{padding-bottom:10px}
.bm-list{margin:8px 0 14px;padding-left:20px}
.bm-list li{line-height:1.65;margin:5px 0}

.bm-pill{border-radius:6px;display:inline-block;font-size:.85rem;font-weight:700;line-height:1.5;padding:1px 10px;white-space:nowrap}
.bm-anfrage{background:#fff1cc;color:#8a5a00}
.bm-genehmigt{background:#e3f1e6;color:#2b6e3f}
.bm-abgelehnt{background:#fbe4e1;color:#b03a2e;text-decoration:line-through}
.bm-beendet{background:#e4e8ee;color:#3c4658}

.bm-table-wrap{background:#fff;border:1px solid #e5eaf0;border-radius:16px;margin:18px 0;overflow-x:auto}
.bm-table{border-collapse:collapse;font-size:.95rem;width:100%}
.bm-table th,.bm-table td{border-bottom:1px solid #edf0f3;padding:13px 16px;text-align:left;vertical-align:top}
.bm-table tr:last-child td{border-bottom:0}
.bm-table th{color:#66758a;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.bm-table td:first-child{white-space:nowrap}

.bm-box{border-radius:12px;font-size:.97rem;line-height:1.65;margin:18px 0;padding:16px 20px}
.bm-box b{color:var(--vss-navy);display:block;margin-bottom:3px}
.bm-box-info{background:#e8f0fa;border-left:4px solid #1f5fa8}
.bm-box-tip{background:#e7f4ea;border-left:4px solid #3aa76d}
.bm-box-warn{background:#fff6e0;border-left:4px solid #efbe52}

.bm-fig{margin:22px 0}
.bm-fig img{background:#fff;border:1px solid #dfe6ee;border-radius:12px;box-shadow:0 14px 36px rgba(16,35,63,.10);display:block;height:auto;max-width:100%}
.bm-fig figcaption{color:#66758a;font-size:.88rem;line-height:1.5;margin-top:9px}
.bm-phone img{border:6px solid var(--vss-navy);border-radius:22px}
.bm-grid-2{display:grid;gap:26px;grid-template-columns:repeat(2,minmax(0,1fr))}
.bm-grid-top{align-items:start;margin-top:10px}
.bm-grid-top h3{margin-top:22px}
.bm-media{align-items:start;display:grid;gap:30px;grid-template-columns:minmax(0,1fr) 240px}
.bm-phones{align-items:start;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(160px,215px));justify-content:center}
.bm-phones .bm-fig{margin:18px 0 8px}
.bm-mails{margin-top:10px}
.bm-mails .bm-fig img{max-width:420px}

.bm-steps{display:grid;gap:26px;grid-template-columns:repeat(2,minmax(0,1fr))}
.bm-steps > div{background:#fff;border:1px solid #e5eaf0;border-radius:16px;padding:6px 24px 12px}
.bm-steps h3{margin-top:18px}
.bm-step{align-items:center;background:var(--vss-red);border-radius:50%;color:#fff;display:inline-flex;font-size:.9rem;height:28px;justify-content:center;margin-right:8px;vertical-align:2px;width:28px}

.bm-faq{background:#fff;border:1px solid #e5eaf0;border-radius:12px;margin:10px 0;padding:14px 20px}
.bm-faq summary{color:var(--vss-navy);cursor:pointer;font-weight:700}
.bm-faq p{margin:10px 0 2px}
.bm-end .vss-actions{margin-bottom:0}

@media(max-width:991px){
  .bm-roles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-media{grid-template-columns:1fr}
  .bm-media .bm-phone{margin:0 auto;max-width:260px}
}
@media(max-width:767px){
  .bm-section{padding:52px 0}
  .bm-grid-2,.bm-steps{grid-template-columns:1fr}
  .bm-phones{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-table td:first-child{white-space:normal}
}
@media(max-width:575px){
  .bm-roles{grid-template-columns:1fr}
  .bm-table th,.bm-table td{padding:10px 12px}
}
