/* Final responsive layer. Dimensions refer to CSS viewport pixels. */
:root{--header-height:94px}
.header-inner{height:var(--header-height)}
.wrap{padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}
.hero-inner>*,.section-head>*,.service-split>*,.course-grid>*,.begleiten-grid>*,.verein-feature-grid>*,.contact-grid>*,.course-hero-grid>*,.faculty>*,.requirement-grid>*,.faq-grid>*,.about-hero-grid>*,.advisors>*,.advisor>*,.involvement-grid>*{min-width:0}
h1,h2,h3{text-wrap:balance}p,li,figcaption{overflow-wrap:break-word}
.menu-button,.motion-toggle,.back-to-top{min-height:44px}
.motion-controls{right:max(22px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom))}
.site-footer{padding-bottom:max(90px,calc(72px + env(safe-area-inset-bottom)))}
.faculty h3,.advisor h3{overflow-wrap:break-word}
.contact-links a{max-width:100%;overflow-wrap:anywhere}
.photo-window{overflow:hidden;border-radius:4px;isolation:isolate}
.photo-window img{width:100%;transform-origin:center}

@media(max-width:1280px){
  .site-nav{gap:22px}
}
@media(max-width:1100px){
  .site-nav{gap:18px}
}
@media(max-width:1024px){
  :root{--header-height:80px}
  html{scroll-padding-top:104px}
  .menu-button{display:inline-flex;flex-shrink:0}
  .site-nav{display:none;position:absolute;top:calc(var(--header-height) - 1px);left:0;right:0;background:#fff;padding:20px var(--gutter) 26px;border-bottom:1px solid var(--line);box-shadow:0 12px 25px #143b4310;align-items:stretch;gap:2px;max-height:calc(100vh - var(--header-height));max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain}
  .site-nav.is-open{display:flex;flex-direction:column}
  .site-nav>a{min-height:44px;padding:12px 0!important;white-space:normal}
  .site-nav .button{margin-top:12px}
  .field input,.field select,.field textarea{font-size:16px}
}
@media(min-width:641px) and (max-width:1024px){
  .hero h1{font-size:clamp(58px,8.2vw,78px)}
  .hero-inner{grid-template-columns:1.1fr .9fr}
  .hero-art .portal-scene{width:100%;max-width:100%;height:clamp(410px,58vw,560px)}
  .hero .actions{align-items:flex-start}
}
@media(max-width:768px){
  .course-hero-grid{grid-template-columns:1fr}
  .course-art{display:none}
  .course-hero h1{font-size:clamp(39px,8.5vw,66px);overflow-wrap:normal}
  .section-head,.service-split,.begleiten-grid,.verein-feature-grid,.contact-grid,.requirement-grid,.faq-grid,.involvement-grid{grid-template-columns:1fr;gap:34px}
  .section-head p,.service-copy p,.begleiten-grid .flow p{max-width:64ch}
  .course-grid{grid-template-columns:1fr;gap:36px}
  .course-feature h2{font-size:clamp(44px,7.3vw,58px)}
  .schedule-panel{max-width:560px;width:100%}
  .faculty{grid-template-columns:1fr;gap:20px}
  .faculty h3{max-width:none}
  .about-hero-grid{grid-template-columns:1fr;gap:26px}
  .about-hero h1{max-width:13ch}
  .about-hero .lead{max-width:55ch}
  .partner{grid-template-columns:145px minmax(0,1fr)}
  .photo-frame img{aspect-ratio:16/10}
}
@media(max-width:640px){
  :root{--header-height:76px}
  html{scroll-padding-top:96px}
  .course-hero h1{font-size:clamp(39px,10.7vw,65px)}
  .hero-inner{display:flex}
  .hero-art .portal-scene{width:100%;height:auto;max-width:100%}
  .hero-art{height:auto;aspect-ratio:560/600;max-width:340px;width:min(88%,340px);overflow:hidden}
  .hero-copy{padding-top:38px}
  .hero h1{font-size:clamp(60px,15.5vw,80px)}
  .partner{grid-template-columns:1fr}
  .motion-controls{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));gap:8px}
  .motion-toggle{min-height:44px;max-width:190px;padding:10px 13px;font-size:11px}
  .back-to-top{width:44px;height:44px}
  .footer-nav a{display:inline-flex;min-height:44px;align-items:center}
  .jump-nav a{display:inline-flex;min-height:44px;align-items:center}
  .jump-nav{gap:0 20px}
  .contact-form{grid-template-columns:1fr}
  .course-feature h2{font-size:clamp(41px,10.7vw,52px)}
}
@media(max-width:480px){
  .about-hero h1{font-size:clamp(52px,13.5vw,65px)}
  .advisor{grid-template-columns:90px minmax(0,1fr);gap:18px}
  .advisor img{width:90px}
  .advisor h3{font-size:clamp(23px,6.6vw,28px)}
}
@media(max-width:360px){
  .header-inner{gap:10px}
  .brand,.brand img{width:160px;flex-basis:160px}
  .menu-button{padding:8px;gap:6px}
  .schedule-panel{padding:28px 24px}
  .advisor{grid-template-columns:76px minmax(0,1fr);gap:15px}
  .advisor img{width:76px}
}
@media(max-height:500px) and (max-width:1024px){
  :root{--header-height:66px}
  .site-nav{padding-block:8px 16px}
  .site-nav>a{padding-block:8px!important;min-height:44px}
  .motion-controls{bottom:max(8px,env(safe-area-inset-bottom))}
}
@media(pointer:coarse){
  .button{min-height:48px}
  .menu-button{min-width:78px}
  .text-link,.profile-link{line-height:1.7;padding-block:6px}
}
@media print{.motion-controls{display:none}.site-footer{padding-bottom:20px}.photo-window{overflow:visible}}
