/* Shared, narrowly scoped corrections found in the site review. */
.band{width:100%;min-width:0}
.fz-detail{width:100%;min-width:0}
/* Flugzeugpark: Detailbilder behalten am Desktop ein festes Seitenverhaeltnis,
   statt sich auf die Texthoehe zu strecken — sonst aendert sich der Ausschnitt
   bei jedem Ziehen am Fenster. Der Text sitzt mittig daneben. */
@media (min-width:901px){
 .fz-block .fz-detail{align-self:center;aspect-ratio:3/2;height:auto}
 .fz-block .fz-detail img{position:absolute;inset:0}
}
@media(max-width:860px){
  #verein.offer-sec{padding-top:0}
  #verein .offers-buehne{align-content:start;padding-top:calc(var(--navH,74px) + 16px)}
}
.chip,.gal-chip{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.lese-zu{width:44px;height:44px}
.lk{z-index:1100}
.lk-bild img{max-height:calc(100dvh - 160px)}
body:has(.lk[open]) .lsg-preview-nav,body.liest .lsg-preview-nav{display:none}
.lsg-preview-nav{max-width:calc(100% - 16px)}
body:has(.lsg-preview-nav)::after{content:"";display:block;height:86px}
.lsg-preview-nav button{border:0;background:transparent;color:inherit;min-width:32px;min-height:36px;border-radius:6px;font:20px Arial;cursor:pointer}
.lsg-preview-nav button:focus-visible{outline:2px solid #242a20;outline-offset:2px}
:where(main,footer) :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--ink,#171817);outline-offset:4px}
.lk :is(a,button):focus-visible{outline-color:white}
.kt-feld :is(input,select,textarea):focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:560px){
  .lsg-preview-nav{gap:0;padding:5px}
  .lsg-preview-nav a{padding:9px 7px;font-size:11px}
  .lsg-preview-nav button{min-width:28px}
}

.kontakt-besuchsadresse{font-style:normal;font-size:16px;line-height:1.6;color:#3c3d40;margin:24px 0;}

/* Same edge-to-edge photo and text insets as the Ausbildung .weg cards. */
.sn-schritte{gap:clamp(16px,2vw,28px)}
.sn-schritt{min-width:0;padding:0;overflow:hidden}
.sn-schritt .sn-flugzeugfoto{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;object-position:center 58%;border-radius:0;margin:0;opacity:1!important;transform:none!important}
.sn-schritt .sn-nr{display:block;padding:clamp(20px,2.2vw,30px) clamp(22px,2.4vw,34px) 0}
.sn-schritt h3,.sn-schritt p{padding-inline:clamp(22px,2.4vw,34px)}
.sn-schritt h3{font-size:clamp(21px,2.2vw,28px)}
.sn-schritt p{padding-bottom:clamp(22px,2.4vw,34px);margin-bottom:0}

.sn-einstieg-titel{margin:0 0 clamp(18px,2vw,26px);font-weight:700;font-size:clamp(28px,4.2vw,52px);letter-spacing:-.03em;line-height:1.05;color:var(--ink)}

/* Shared action-button dimensions, including hero, footer CTAs and forms. */
html body .btn.btn,html body #ktForm button[type="submit"]{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  width:280px;min-width:0;max-width:100%;height:56px;min-height:56px;
  flex:0 0 auto;padding:0 24px;border-radius:999px;
  font-family:inherit;font-size:15px;font-weight:700;line-height:1.25;text-align:center;
}

/* Quiet text links: underline appears on pointer hover and keyboard focus. */
html body :is(.frage-mehr a,.weg-mehr,.lsg-link,.eltern-mehr a,.weg-wert a,.pmail a,.weiter a){border-bottom-color:transparent;text-decoration:none;transition:border-color .18s ease}
html body :is(.frage-mehr a,.weg-mehr,.lsg-link,.eltern-mehr a,.weg-wert a,.pmail a,.weiter a):is(:hover,:focus-visible){border-bottom-color:currentColor}
#segelflug .teil-innen,#motorflug .teil-innen{border-top:0;padding-top:0}
.lsg-extra{background:#f5f5f5;color:#171717}
.lsg-extra :is(.lsg-intro,.lsg-steps p,.lsg-parent-grid p,.lsg-eyebrow,.lsg-small,figcaption){color:#595959}
.lsg-extra .lsg-steps li:before{color:#737373}
.lsg-extra :is(.lsg-steps li,.lsg-parent-grid article){border-color:#d8d8d8}
.lsg-extra .lsg-note{background:#fff;color:#3c3c3c;border-left-color:#3c3c3c}
/* Draw link underlines without shifting text or replacing arrow pseudo-elements. */
html body :is(.frage-mehr a,.weg-mehr,.lsg-link,.eltern-mehr a,.weg-wert a,.pmail a,.weiter a){
  border-bottom-color:transparent;
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;background-position:left bottom;background-size:0% 1.5px;
  transition:background-size .32s cubic-bezier(.2,.7,.3,1);
}
html body :is(.frage-mehr a,.weg-mehr,.lsg-link,.eltern-mehr a,.weg-wert a,.pmail a,.weiter a):is(:hover,:focus-visible){
  border-bottom-color:transparent;background-size:100% 1.5px;
}
@media(prefers-reduced-motion:reduce){
  html body :is(.frage-mehr a,.weg-mehr,.lsg-link,.eltern-mehr a,.weg-wert a,.pmail a,.weiter a){transition:none}
}

/* Alternating annual timeline; the DOM retains chronological reading order. */
#jahr .ju-jahr{display:block;max-width:1100px}
#jahr .ju-schritt{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);padding:0 0 44px;border:0;position:relative}
#jahr .ju-schritt:before{content:"";position:absolute;left:50%;top:24px;bottom:-24px;width:1px;background:#d5d5d5;transform:translateX(-50%)}
#jahr .ju-schritt:last-child{padding-bottom:0}
#jahr .ju-schritt:last-child:before{display:none}
#jahr .ju-schritt>div{grid-column:1;grid-row:1;padding:4px 24px 0 0;text-align:right;min-width:0}
#jahr .ju-schritt:nth-child(even)>div{grid-column:3;padding:4px 0 0 24px;text-align:left}
#jahr .ju-nr{grid-column:2;grid-row:1;justify-self:center;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #d5d5d5;border-radius:50%;background:#fff;color:#242424;z-index:1}
#jahr .ju-nr svg{width:23px;height:23px}
#jahr .ju-zeit{margin:0;font-size:12px}
#jahr .ju-schritt h3{margin-top:9px;line-height:1.2}
#jahr .ju-schritt p:last-child{font-size:16px;line-height:1.65}
@media(max-width:700px){
 #jahr .ju-schritt{grid-template-columns:48px minmax(0,1fr);padding-bottom:34px}
 #jahr .ju-schritt:before{left:24px}
 #jahr .ju-nr{grid-column:1}
 #jahr .ju-schritt>div,#jahr .ju-schritt:nth-child(even)>div{grid-column:2;padding:4px 0 0 22px;text-align:left}
 #jahr .ju-schritt h3{font-size:22px}
}

/* Covers default underlines, footer/legal links and dynamic CMS content. */
html body a.lsg-animated-link,html body a.lsg-animated-link:hover{
 text-decoration:none;border-bottom-color:transparent;
 background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;
 background-position:left bottom;background-size:0% 1.5px;
 transition:background-size .32s cubic-bezier(.2,.7,.3,1);
 -webkit-box-decoration-break:clone;box-decoration-break:clone;
}
html body a.lsg-animated-link:is(:hover,:focus-visible){background-size:100% 1.5px}
html body .karte-titel{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0% 1.5px;transition:background-size .32s cubic-bezier(.2,.7,.3,1)}
html body .karte-flaeche:is(:hover,:focus-visible) .karte-titel{text-decoration:none;background-size:100% 1.5px}
@media(prefers-reduced-motion:reduce){html body a.lsg-animated-link,html body .karte-titel{transition:none}}

/* One heading per training section, with the aircraft introduction close below it. */
#segelflug + .flieger,#motorflug + .mot{padding-top:clamp(22px,3vw,38px)}
#segelflug + .flieger .sec-kopf p,#motorflug + .mot .mot-kopf p{margin-top:0}
picture{display:block}
.satz-foto>picture,.karte-platz>picture,.sn-band>picture,.bildband>picture,.band-voll>picture{width:100%;height:100%}

/* Contact topic picker: keep the native select as the no-script fallback. */
.lsg-choice{position:relative;min-width:0}
.lsg-choice-native{
 position:absolute!important;width:1px!important;height:1px!important;
 padding:0!important;border:0!important;opacity:0;pointer-events:none;
}
:is(.kontakt,.kt-form) .lsg-choice-trigger{
 display:flex;align-items:center;justify-content:space-between;gap:16px;
 width:100%;height:auto;min-height:52px;margin:0;padding:13px 16px;
 text-align:left;font-family:var(--ui);font-size:15px;font-weight:400;line-height:1.5;
 color:var(--ink);background:var(--bg-feld);border:1px solid transparent;
 border-radius:14px;box-shadow:none;cursor:pointer;
 transition:border-color .18s ease,background-color .18s ease;
}
.kt-form .lsg-choice-trigger{font-size:16px;border-color:var(--line)}
:is(.kontakt,.kt-form) .lsg-choice-trigger:is(:hover,:focus-visible,[aria-expanded="true"]){
 opacity:1;transform:none;background:var(--sheet);border-color:var(--ink);
}
:is(.kontakt,.kt-form) .lsg-choice-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.lsg-choice-chevron{
 flex:none;width:10px;height:10px;margin:-5px 4px 0 0;
 border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
 transform:rotate(45deg);transition:transform .18s ease,margin .18s ease;
}
.lsg-choice-trigger[aria-expanded="true"] .lsg-choice-chevron{margin:5px 4px 0 0;transform:rotate(225deg)}
.lsg-choice-list[hidden]{display:none}
.lsg-choice-list{
 position:absolute;z-index:30;top:calc(100% + 8px);left:0;right:0;
 max-height:min(330px,calc(100vh - 24px));overflow-y:auto;
 padding:6px;background:var(--sheet);border:1px solid var(--line);
 border-radius:14px;box-shadow:0 18px 42px rgba(17,19,23,.13);
}
.lsg-choice.is-above .lsg-choice-list{top:auto;bottom:calc(100% + 8px)}
:is(.kontakt,.kt-form) .lsg-choice-option{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 width:100%;height:auto;min-height:44px;margin:0;padding:10px 13px;
 text-align:left;font-family:var(--ui);font-size:15px;font-weight:400;line-height:1.45;
 color:var(--ink);background:transparent;border:0;border-radius:9px;
 box-shadow:none;cursor:pointer;transform:none;
}
.kt-form .lsg-choice-option{font-size:16px}
:is(.kontakt,.kt-form) .lsg-choice-option:is(:hover,:focus-visible,[aria-selected="true"]){
 opacity:1;background:var(--bg-feld);color:var(--ink);transform:none;
}
:is(.kontakt,.kt-form) .lsg-choice-option:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.lsg-choice-option[aria-selected="true"]::after{content:"✓";font-weight:700}

/* Three aircraft across when there is room; a full-width final card in two columns. */
.mot-wege{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1200px){.mot-wege{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:781px) and (max-width:1199px){
 .mot-wege>.mot-weg:nth-child(2n+3):last-child{
  grid-column:1/-1;display:flex;flex-direction:column;align-items:stretch;
 }
 .mot-wege>.mot-weg:nth-child(2n+3):last-child .mot-weg-bild{aspect-ratio:16/9}
 .mot-wege>.mot-weg:nth-child(2n+3):last-child .mot-weg-bild img{object-position:center 62%}
 .mot-wege>.mot-weg:nth-child(2n+3):last-child .mot-weg-wort{max-width:72ch}
}
@media (max-width:780px){.mot-wege{grid-template-columns:minmax(0,1fr)}}

/* Use the sharp landscape source when it can show the entire aircraft.
   Narrower desktop shapes need the larger tablet crop instead of the 640 px
   phone image. The attribute guard leaves a Sanity replacement in control. */
@media (min-width:701px){
 .hero--ausbildung .hero-photo[style*="--grund-t"]{
  background-image:var(--grund);background-position:76% 58%;
 }
}
@media (min-width:701px) and (max-width:1450px),
       (min-width:701px) and (max-aspect-ratio:29/20){
 .hero--ausbildung .hero-photo[style*="--grund-t"]{
  background-image:var(--grund-t);background-position:50% 42%;
 }
}

/* Keep the mobile card rail scroll-driven, but let its sticky stage end at the
   cards instead of reserving an empty full viewport beneath them. */
@media (max-width:700px){
 #verein.offer-sec{padding-bottom:clamp(28px,5vh,48px);scroll-margin-top:var(--navH,74px)}
 #verein .offers-buehne{height:auto}
 .band--rollt + .learn{padding-top:48px}
}

/* The foreground glider can appear before the field photo. Keep that photo
   visible instead of fading it in from a blurred placeholder. */
html.js-auftritt .band--rollt img[data-auftritt]{opacity:1;animation:none}

/* All prominent action buttons use the same ink tone as the hero button. */
html body .btn.btn,
html body #kontaktForm button[type="submit"],
html body #ktForm button[type="submit"]{
 background:#101113;color:#fff;border-color:#101113;
}
html body .btn.btn:is(:hover,:focus-visible),
html body #kontaktForm button[type="submit"]:is(:hover,:focus-visible),
html body #ktForm button[type="submit"]:is(:hover,:focus-visible){
 background:#26282c;color:#fff;border-color:#26282c;opacity:1;
}

/* Match the site's rounded line icons: a quiet arrow enters beside the label. */
html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"]){
 display:inline-flex;align-items:center;justify-content:center;
 background:#101113;color:#fff;
 transition:transform .18s ease,box-shadow .32s ease;
}
html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"])::after{
 content:"";display:inline-block;flex:none;width:0;height:20px;overflow:hidden;
 margin-left:0;pointer-events:none;opacity:0;transform:translateX(-4px);
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6'/%3E%3C/svg%3E") center/20px 20px no-repeat;
 transition:width .28s ease,margin-left .28s ease,opacity .2s ease,transform .28s ease;
}
html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"]):is(:hover,:focus-visible){
 background:#101113;color:#fff;border-color:#101113;opacity:1;
 transform:scale(1.02);box-shadow:0 8px 20px rgba(16,17,19,.14);
}
html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"]):is(:hover,:focus-visible)::after{
 width:20px;margin-left:8px;opacity:1;transform:translateX(0);
}
html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"]):active{
 transform:scale(.985);box-shadow:none;
}

/* Balance the short caption beneath the scene heading on narrow screens. */
@media (max-width:620px){
 .szene-wort h3{font-size:21px}
 .szene-wort p{font-size:13px;line-height:1.35;max-width:32ch;margin-top:.28em;text-wrap:balance}
}
@media (prefers-reduced-motion:reduce){
 html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"]),
 html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"])::after{transition:none}
 html body :is(.btn.btn,#kontaktForm button[type="submit"],#ktForm button[type="submit"]):is(:hover,:focus-visible){transform:none}
}

/* Drive the mobile ASK 21 with the stationary band timeline. The previous
   fallback updated its position on scroll events and could visibly lag. */
@media (max-width:700px){
 @supports (animation-timeline:view()) and (view-timeline-name:--rollband){
  .band--rollt{view-timeline-name:--rollband;view-timeline-axis:block}
  html body .band--rollt .rollt-flieger{
   animation:flugRolltWeg linear both;
   animation-timeline:--rollband;
   animation-range:cover 40% cover 94%;
  }
 }
}
