.site-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;flex-shrink:0}.identity-star .site-icon{width:24px;height:24px}.taxi-icon .site-icon{width:27px;height:27px}
/* Public Heiligabend website: phone and tablet layout. */
.mobile-menu{display:none}
@media(max-width:950px){
 .header{position:sticky;top:0;z-index:30}
 .header-inner{min-height:76px;padding:12px 0;flex-wrap:nowrap;gap:12px}
 .header-inner>.navigation{display:none}
 .mobile-menu{display:block;margin-left:auto;flex:0 0 auto}
 .mobile-menu summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:9px 13px;border:1px solid var(--line);border-radius:6px;background:var(--cream);color:var(--green);font:700 14px Arial,sans-serif;cursor:pointer}
 .mobile-menu summary::-webkit-details-marker{display:none}
 .menu-icon{width:18px;height:14px;display:inline-flex;flex-direction:column;justify-content:space-between}
 .menu-icon i{height:2px;width:100%;display:block;background:currentColor;transition:transform .15s,opacity .15s}
 .mobile-menu[open] .menu-icon i:first-child{transform:translateY(6px) rotate(45deg)}
 .mobile-menu[open] .menu-icon i:nth-child(2){opacity:0}
 .mobile-menu[open] .menu-icon i:last-child{transform:translateY(-6px) rotate(-45deg)}
 .mobile-menu[open] summary{background:var(--green);border-color:var(--green);color:white}
 .mobile-navigation{position:absolute;top:100%;left:0;right:0;background:#fffefa;border-bottom:1px solid var(--line);box-shadow:0 18px 24px #102a251c;padding:12px max(16px,calc((100vw - 1180px)/2)) 20px;max-height:calc(100vh - 90px);max-height:calc(100svh - 90px);overflow-y:auto;display:flex;flex-direction:column}
 .mobile-navigation a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:16px;font-weight:600;text-decoration:none;line-height:1.4;white-space:normal}
 .mobile-navigation a::after{content:'';width:8px;height:8px;flex:0 0 8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);color:#957443}
 .mobile-navigation a:hover{background:var(--paper)}
 .mobile-navigation .mobile-signup{margin:10px 0 4px;border:0;border-radius:5px;background:var(--green);color:white}
 .mobile-navigation .mobile-signup::after{color:var(--gold)}
 .mobile-navigation .mobile-internal{border-bottom:0;font-size:14px;font-weight:400;color:var(--muted)}
 summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
 section[id]{scroll-margin-top:94px}
 .hero-layout,.signup-layout,.intro-grid,.section-head,.support-layout{grid-template-columns:minmax(0,1fr)}
 .hero-layout{padding-top:54px;padding-bottom:48px;gap:32px}
 .hero-copy,.signup-aside,.form-card,.signup-card{min-width:0}
}
@media(max-width:600px){
 .container{width:calc(100% - 36px)}
 .header-inner{min-height:72px;padding:10px 0;gap:10px}
 .identity{font-size:17px;gap:8px}
 .identity-star{width:32px;height:32px;flex:0 0 32px;font-size:23px}
 .identity small{font-size:8px}
 .mobile-menu summary{padding:9px 11px;gap:8px}
 .hero h1{font-size:clamp(2.65rem,12vw,4.5rem);line-height:1.02;margin-bottom:24px}
 .hero-lead{font-size:clamp(1.2rem,5vw,1.45rem);line-height:1.45}
 .hero-text{font-size:15px;line-height:1.75}
 .overline{font-size:10px;letter-spacing:.14em}
 .hero-organizers-names{font-size:13px;line-height:1.65}
 .hero-organizers-simple{margin-bottom:24px}
 
 .hero-art{display:flex;min-width:0}
 .hero-photo{transform:none;max-width:420px;padding:6px}
 .hero-photo img{height:auto;aspect-ratio:4/3}
 .hero-photo figcaption{font-size:11px;line-height:1.5}
 .hero-foot .container{font-size:10px;letter-spacing:.07em;line-height:1.7;padding:15px 0}
 h2{font-size:clamp(1.95rem,8.5vw,2.8rem);line-height:1.14}
 .intro-section,.memories-section,.clubs-section,.signup-section{padding:48px 0}
 .support-section{padding:48px 0}
 .intro-grid,.section-head{gap:18px;margin-bottom:28px}
 .welcome-panel{padding:22px 18px;margin-bottom:24px}
 .intro-copy{font-size:18px;line-height:1.6}
 .detail-panel{padding:8px 18px;grid-template-columns:minmax(0,1fr);gap:0}
 .detail,.detail:nth-child(2){padding:16px 0;border-right:0;border-bottom:1px solid var(--line);gap:4px}
 .detail:last-child{border-bottom:0}
 .detail strong{font-size:20px}
 .detail>span:last-child{font-size:13px}
 .taxi{gap:13px;margin-top:26px}
 .taxi-icon{width:42px;height:42px;flex-basis:42px;font-size:22px}
 .signup-layout{gap:24px}
 .signup-card{padding:24px 18px}
 .btn{min-height:48px;white-space:normal;line-height:1.5;padding:14px 18px;font-size:14px}
 .online-anmeldung-btn,.download-btn{width:100%}
 .btn span{flex-shrink:0}
 .contact-methods a{font-size:15px;overflow-wrap:anywhere}
 .reservation-note{padding:17px 15px}
 .press-row h3{font-size:22px;line-height:1.3}
 .gallery-note{padding:20px 16px;gap:12px}
 .photo-grid,.video-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .photo-grid figure img{height:auto;aspect-ratio:4/3;max-height:none}
 .club{padding:20px 16px;flex-wrap:wrap;gap:16px}
 .club-logo-wrap{width:94px;flex-basis:94px}
 .club>span:nth-child(2){flex:1 1 140px}
 .club strong{font-size:21px;line-height:1.25}
 .club-out{display:none}
 .clubs-intro h2{font-size:clamp(2rem,8.5vw,2.8rem)}
 .footer{padding-top:34px}
 .footer-main{padding-bottom:28px;gap:24px}
 .footer-brand{font-size:26px}
 .footer-side{gap:0}
 .footer-side a{display:flex;align-items:center;min-height:44px;font-size:14px;overflow-wrap:anywhere}
 .footer-bottom{gap:12px;flex-wrap:wrap}
 .footer-bottom a{min-height:36px;display:inline-flex;align-items:center}
 .legal-page h1{font-size:clamp(2rem,9vw,3rem);overflow-wrap:anywhere}
 .legal-page a{overflow-wrap:anywhere}
 #online-anfrage{padding:36px 0 48px}
 #online-anfrage h1{font-size:clamp(2.3rem,10vw,3rem)}
 #online-anfrage .form-card{padding:24px 18px;border-radius:9px}
 #online-anfrage .grid{grid-template-columns:minmax(0,1fr);gap:18px}
 #online-anfrage h2{font-size:25px;letter-spacing:-.02em}
 #online-anfrage label{font-size:14px}
 #online-anfrage input,#online-anfrage textarea{min-width:0;min-height:48px;font-size:16px}
 #online-anfrage .check{gap:12px;line-height:1.7;padding:4px 0}
 #online-anfrage .check input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin-top:3px}
 #online-anfrage button{min-height:52px;align-items:center;gap:12px;line-height:1.5;font-size:15px}
 #online-anfrage .privacy-note{font-size:12px}
 #online-anfrage .message{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){.menu-icon i{transition:none}}
