/* Mobile-first Ergänzungen für SO-OEPNVPRO. Kleine Displays sind die Basis; größere bauen darauf auf. */
:root{--pro-tap:50px}
.pro-topbar{gap:.55rem}
.pro-topbar .brand strong{font-size:1rem;letter-spacing:.045em}
.pro-topbar .brand small{font-size:.78rem}
.pro-topbar .topbar-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.pro-topbar .theme-toggle{min-height:var(--pro-tap);padding:.55rem .7rem}
.primary-button,.secondary-action,.mini-button,.square-button,.swap-button,input,select{min-height:var(--pro-tap)}
.planner-more>summary{min-height:var(--pro-tap);align-items:center}
.planner-more:not([open])>.advanced-grid{display:none}
.mobile-nav a{min-height:60px;font-size:.8rem;font-weight:850}
.page-shell{max-width:1520px}

/* Senior-friendly: klare aktive Zustände statt nur Farbdifferenz. */
.mobile-nav a.is-active,.desktop-nav a.is-active{font-weight:950}
.mobile-nav a.is-active::after{content:'';width:18px;height:3px;border-radius:999px;background:currentColor;position:absolute;bottom:4px;left:50%;transform:translateX(-50%)}
.mobile-nav a{position:relative}

@media (max-width:767px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .pro-topbar{padding:.58rem .65rem;align-items:center}
  .pro-topbar .brand{min-width:0;flex:1 1 auto}
  .pro-topbar .brand small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
  .pro-topbar .topbar-actions{flex:0 0 auto}
  .pro-topbar .language-switch,.pro-topbar .help-top-link{display:none}
  .pro-topbar .theme-toggle{min-height:46px;min-width:72px;padding:.42rem .58rem}
  .pro-topbar .theme-toggle-label{display:inline;font-size:.72rem;font-weight:700}
  .hero-search{padding:.85rem}
  .home-heading-row{display:block}
  .home-heading-row .live-badge{display:inline-flex;margin-top:.45rem}
  .section-heading h1{font-size:clamp(1.35rem,6vw,1.8rem)}
  .intro-copy{font-size:.96rem;line-height:1.55}
  .quick-plan-form{gap:.65rem}
  .field-stack label,.compact-options label{font-size:.9rem}
  .input-row input,.field-stack>input,input,select{font-size:16px!important}
  .planner-more>summary{font-size:.96rem;padding:.72rem .78rem;font-weight:850}
  .advanced-grid{gap:.65rem;padding:0 .65rem .7rem}
  .address-card{padding:.65rem}
  .inline-checks label{min-height:46px;font-size:.88rem}
  .home-grid{gap:.7rem}
  .quick-card{padding:.8rem}
}

@media (min-width:768px){
  .pro-topbar .theme-toggle-label{display:inline}
}

@media (min-width:1200px){
  .pro-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto}
  .desktop-nav{justify-content:center}
}

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


/* Senior-readable type floor for frequent controls and status text. */
.eyebrow{font-size:.76rem}
.live-badge,.status-pill{font-size:.76rem}
.field-stack,label,.filter-fieldset legend{font-size:.88rem}
.filter-chip span,.quick-stops,.quick-stops button{font-size:.84rem}
.mini-button,.route-actions button{font-size:.82rem}
.route-meta,.route-duration,.dep-line{font-size:.82rem}
.dep-dest strong{font-size:.9rem}.dep-dest span,.dep-delay{font-size:.8rem}
.small,.empty-state p,.site-footer{font-size:.8rem}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:3px}
