/*
 * Unitro v9.3.2 - responsive hardening
 * Wird als letzte Stylesheet-Ebene auf allen Unitro-Seiten geladen.
 */
:root{
  --unitro-gutter:clamp(16px,4vw,32px);
  --unitro-header-height:70px;
}

html{
  max-width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  min-width:0;
  max-width:100%;
  overflow-x:clip;
}
main,header,footer,section,nav,form,
.wrap,.unitro-wrap,
.kopf__inner,.unitro-kopf__inner,
.mission__grid,.kontakt__grid,.buehne,.podium,.tickets,.weitere,
.startkarte,.startkarte__rahmen,.karte-rahmen,.videoseite,.formular,.formular--forminator,
.suchfeld,.suchkarte,.suchkarte__reihe{
  min-width:0;
}
img,video,canvas,svg,iframe{
  max-inline-size:100%;
}
button,input,select,textarea{
  max-width:100%;
  font:inherit;
}
button,a,[role="button"]{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
h1,h2,h3,h4,p,li,a,strong,span,.eyebrow,.unitro-eyebrow{
  overflow-wrap:anywhere;
}
.eyebrow,.unitro-eyebrow{
  hyphens:auto;
}
.wrap,.unitro-wrap{
  width:min(var(--wrap,1160px),calc(100% - (2 * var(--unitro-gutter)))) !important;
  margin-inline:auto;
}

/* Navigation: gleiche Bedienbarkeit auf Smartphone, Tablet und kleinen Laptops. */
.burger,.unitro-burger{
  min-width:44px;
  min-height:44px;
  display:none;
  place-content:center;
}
@media (max-width:860px){
  :root{ --unitro-header-height:64px; }
  .kopf__inner,.unitro-kopf__inner{
    height:var(--unitro-header-height) !important;
    gap:14px;
  }
  .kopf__logo,.unitro-kopf__logo{ min-width:0; }
  .kopf__logo img,.unitro-kopf__logo img{
    height:36px !important;
    width:auto;
  }
  .burger,.unitro-burger{ display:grid !important; flex:none; }
  .kopf__nav,.unitro-kopf__nav{
    top:var(--unitro-header-height) !important;
    max-height:0;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .kopf__nav.offen,.unitro-kopf__nav.offen{
    max-height:calc(100dvh - var(--unitro-header-height)) !important;
  }
  .kopf__nav a,.unitro-kopf__nav a{
    min-height:48px;
    display:flex !important;
    align-items:center;
    padding-inline:max(var(--unitro-gutter),env(safe-area-inset-left)) !important;
  }
}

/* Flexible Typografie und vertikale Abstände. */
@media (max-width:720px){
  body{ font-size:16px !important; }
  h2.titel{ font-size:clamp(1.78rem,8vw,2.35rem) !important; }
  .hero__inner{
    padding-block:clamp(28px,8vw,52px) !important;
  }
  .hero__intro{
    margin-top:24px !important;
    font-size:.98rem !important;
  }
  .mission,.halt,.kontakt,.videoseite,.karte-seite,.unitro-recht{
    padding-block:clamp(48px,11vw,72px) !important;
  }
  .seitenhero,.unitro-seitenhero{
    padding-block:clamp(42px,10vw,58px) !important;
  }
  .mission__grid,.kontakt__grid{
    grid-template-columns:minmax(0,1fr) !important;
    gap:32px !important;
    margin-top:32px !important;
  }
  .tickets{
    grid-template-columns:minmax(0,1fr) !important;
    width:100%;
    max-width:none !important;
    gap:18px !important;
    margin-top:38px !important;
  }
  .ticket__stub{ padding:18px 20px !important; gap:12px; }
  .ticket__body{ padding:20px !important; }
  .weckruf{ padding:30px 24px 28px !important; }
  .weckruf__zahl{ font-size:clamp(3.7rem,20vw,5.2rem) !important; }
  .buehne{ margin-top:30px !important; }
  .buehne__info{ padding:24px 20px 28px !important; }
  .weitere{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)) !important;
    gap:18px !important;
  }
  .formular{ padding:24px 18px !important; }
  .fuss__oben,.unitro-fuss__oben{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:34px !important;
    padding-block:44px 34px !important;
  }
  .fuss__nav{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 22px !important;
    width:100%;
  }
  .fuss__unten,.unitro-fuss__unten{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* Suche: keine überbreiten Pillen/Felder, sichere Vorschlagslisten. */
@media (max-width:680px){
  .suchfeld{ grid-template-columns:minmax(0,1fr) !important; }
  .suchkarte{
    width:100%;
    padding:21px 18px 23px !important;
  }
  .suchkarte__reihe{ min-width:0; }
  .suchkarte input{
    min-width:0;
    font-size:16px !important;
  }
  .suchkarte .suchleiste__lupe{
    flex:0 0 52px;
    width:52px !important;
    height:52px !important;
  }
  .vorschlaege,.suchkarte .vorschlaege{
    left:0 !important;
    right:0 !important;
    width:auto;
    max-height:min(54dvh,420px);
    overflow-y:auto !important;
    overscroll-behavior:contain;
  }
  .vorschlaege a{
    align-items:flex-start !important;
    padding:13px 14px !important;
  }
  .vorschlaege .meta{
    white-space:normal !important;
    text-align:right;
  }
}
@media (max-width:680px) and (orientation:landscape){
  .suchleiste__bar{ flex-wrap:nowrap; }
  .modus{ padding-inline:12px !important; }
  .suchleiste input{ font-size:16px !important; }
}

/* Ergebnisbereiche, Podium und CTA. */
@media (max-width:820px){
  .podium{
    grid-template-columns:minmax(0,1fr) !important;
    align-items:stretch !important;
    gap:18px !important;
    margin-top:32px !important;
  }
  .podest,.podest--1{
    width:100%;
    margin-top:0 !important;
    padding:18px 18px 22px !important;
  }
  .podest--1{ padding-bottom:26px !important; }
  .podest--geist{ min-height:112px !important; }
  .steckbrief{
    align-items:flex-start !important;
    padding:18px 20px !important;
    gap:16px 22px !important;
  }
  .steckbrief__fakt{ flex:1 1 130px; min-width:0; }
  .steckbrief__link{ flex-basis:100%; margin-left:0 !important; }
  .cta-kasten{ padding:26px 20px !important; }
}
@media (max-width:640px){
  .knoepfe,.buehne__aktionen,.cta-kasten .knoepfe{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100%;
    gap:10px !important;
  }
  .knoepfe .btn,.buehne__aktionen .btn,.cta-kasten .btn{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .kontextleiste{
    align-items:flex-start !important;
    padding:14px 16px !important;
  }
}

/* Produktionskarte und große Karte: Touch-Bedienung ohne Überlauf. */
@media (max-width:720px){
  .startkarte{
    margin-top:40px !important;
    padding:24px 16px 20px !important;
    border-radius:20px !important;
  }
  .startkarte__kopf{ gap:14px !important; }
  .startkarte__link{ white-space:normal !important; }
  .startkarte__mission,.mission-leiste{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:11px !important;
    padding:14px !important;
  }
  .startkarte__balken,.mission-balken{ width:100%; }
  .startkarte__mission b,.mission-leiste b{
    white-space:normal !important;
  }
  .startkarte__rahmen,.karte-rahmen{
    border-radius:16px !important;
  }
  .startkarte__svg{
    height:clamp(390px,70dvh,520px) !important;
    min-height:390px !important;
  }
  .karte-svg{
    height:clamp(430px,72dvh,620px) !important;
    min-height:430px;
  }
  .startkarte__legende,.karte-legende{
    position:static !important;
    margin:10px !important;
    width:auto;
    padding:10px 12px !important;
    gap:9px 14px !important;
    font-size:.6rem !important;
  }
  .karte-zoom,.startkarte__zoom{
    right:10px !important;
    top:10px !important;
  }
  .karte-zoom button,.startkarte__zoom button{
    width:40px !important;
    height:40px !important;
  }
  .tooltip,.startkarte__tooltip{
    max-width:calc(100% - 24px) !important;
  }
}

/* Kontaktformular und Drittanbieter-Formularfelder. */
.formular--forminator,
.formular--forminator .forminator-ui,
.formular--forminator .forminator-custom-form,
.formular--forminator .forminator-row,
.formular--forminator .forminator-col{
  min-width:0 !important;
  max-width:100% !important;
}
.formular--forminator input,
.formular--forminator select,
.formular--forminator textarea,
.formular--forminator .select2-search__field{
  font-size:16px !important;
}
.select2-container,.select2-dropdown{
  max-width:calc(100dvw - (2 * var(--unitro-gutter))) !important;
}
@media (max-width:480px){
  .kontakt__mailzeile{
    grid-template-columns:22px minmax(0,1fr) !important;
    gap:9px !important;
  }
  .kontakt__mailtext strong{ font-size:.82rem !important; }
}

/* Rechtstexte. */
@media (max-width:640px){
  .unitro-seitenhero h1{
    font-size:clamp(2rem,10vw,2.75rem) !important;
  }
  .unitro-recht__inner{ max-width:100%; }
  .unitro-recht h2{
    font-size:1.18rem !important;
    margin-top:32px !important;
  }
  .unitro-recht .unitro-box{
    margin-inline:0 !important;
    padding:18px !important;
  }
  .unitro-fuss__links{ grid-template-columns:minmax(0,1fr) !important; }
}

/* Video-Dialog: Einwilligung darf nie in einem 16:9-Rahmen abgeschnitten werden. */
.overlay{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.overlay__box,.overlay__kopf>div{ min-width:0; }
.overlay__video--consent{
  aspect-ratio:auto !important;
  height:auto !important;
  min-height:0 !important;
  padding-bottom:0 !important;
  position:relative !important;
}
.overlay__video--consent .youtube-consent{
  height:auto !important;
  min-height:clamp(380px,58dvh,530px) !important;
}
.overlay__video--player{
  aspect-ratio:16/9 !important;
}
.youtube-consent__content{
  width:min(100%,760px);
}
.youtube-consent__button{
  min-height:48px;
  max-width:100%;
}
@media (max-width:640px){
  .overlay{
    align-items:flex-start !important;
    justify-content:center !important;
    padding:
      max(10px,env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      max(10px,env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left)) !important;
    overflow-y:auto !important;
  }
  .overlay__box{
    width:100% !important;
    max-width:100%;
    margin:auto 0;
  }
  .overlay__kopf{
    align-items:flex-start !important;
    gap:12px;
    margin-bottom:10px !important;
  }
  .overlay__kopf>div{ padding-top:2px; }
  .overlay__kopf .eyebrow{
    font-size:.58rem !important;
    letter-spacing:.13em !important;
    line-height:1.35;
  }
  .overlay__kopf h3{
    margin-top:3px;
    font-size:clamp(1rem,5vw,1.22rem) !important;
    line-height:1.2;
  }
  .overlay__schliessen{
    width:46px !important;
    height:46px !important;
    min-width:46px;
    min-height:46px;
  }
  .overlay__video{
    border-radius:14px !important;
  }
  .overlay__video--consent .youtube-consent{
    min-height:clamp(400px,66dvh,560px) !important;
  }
  .youtube-consent__content{
    padding:clamp(20px,6vw,30px) !important;
    gap:11px !important;
  }
  .youtube-consent strong{
    font-size:clamp(1.14rem,5.5vw,1.42rem) !important;
  }
  .youtube-consent p{
    font-size:clamp(.9rem,4vw,1rem) !important;
    line-height:1.45 !important;
  }
  .youtube-consent__button{
    width:min(100%,320px);
    padding:13px 16px !important;
    line-height:1.25;
  }
  .youtube-consent a{ font-size:.9rem; }
}
@media (max-width:360px){
  .overlay__video--consent .youtube-consent{
    min-height:390px !important;
  }
  .youtube-consent__content{
    padding:18px 16px !important;
    gap:9px !important;
  }
  .youtube-consent p{ font-size:.88rem !important; }
}
@media (max-height:620px) and (orientation:landscape){
  .overlay{
    align-items:flex-start !important;
    overflow-y:auto !important;
    padding-block:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-bottom)) !important;
  }
  .overlay__box{ width:min(900px,100%) !important; margin:auto; }
  .overlay__kopf{ margin-bottom:8px !important; }
  .overlay__video--consent .youtube-consent{
    min-height:320px !important;
  }
  .youtube-consent__content{
    padding:18px 22px !important;
    gap:8px !important;
  }
  .youtube-consent strong{ font-size:1.08rem !important; }
  .youtube-consent p{ font-size:.86rem !important; line-height:1.35 !important; }
  .youtube-consent__button{ min-height:44px; padding:10px 16px !important; }
}
@supports not (aspect-ratio:16/9){
  .overlay__video--consent{
    height:auto !important;
    padding-bottom:0 !important;
  }
  .overlay__video--player{
    height:0 !important;
    padding-bottom:56.25% !important;
    position:relative !important;
  }
  .overlay__video--player iframe{
    position:absolute !important;
    inset:0;
    width:100% !important;
    height:100% !important;
  }
}

/* Sehr kleine Geräte und schmale eingebettete Browser. */
@media (max-width:420px){
  :root{ --unitro-gutter:14px; }
  .kopf__logo img,.unitro-kopf__logo img{ height:32px !important; }
  .fuss__nav{ grid-template-columns:minmax(0,1fr) !important; }
  .podest h3{ font-size:1.02rem !important; }
  .gleis-schild{ letter-spacing:.12em !important; }
  .startkarte__svg{ min-height:360px !important; height:62dvh !important; }
  .karte-svg{ min-height:390px !important; height:68dvh !important; }
}

@media (prefers-reduced-motion:reduce){
  .overlay,.overlay *{ scroll-behavior:auto !important; }
}
