:root{--ink:#201a32;--pink:#ff5798;--cream:#fff5e9;--lav:#d2c7ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,sans-serif;color:var(--ink)}header{height:76px;padding:0 6vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;position:sticky;top:0;background:#fffE;z-index:3}header b{font-size:24px}header span,small,i{color:var(--pink)}header a,.hero a{background:var(--ink);color:#fff;padding:13px 20px;border-radius:30px;text-decoration:none;font-weight:bold}.hero{min-height:610px;padding:7vw;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;background:var(--cream)}h1{font-size:clamp(65px,9vw,120px);line-height:.82;letter-spacing:-.07em;margin:25px 0}.hero p{font-size:19px;max-width:520px;line-height:1.6;margin-bottom:35px}.phone{width:min(520px,100%);height:auto;margin:auto;display:block;transform:rotate(3deg)}.phone img{display:block;width:100%;height:auto;filter:drop-shadow(22px 25px 0 var(--lav))}.how{padding:70px 7vw;display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.how article{border-top:2px solid;padding-top:18px}.booking{padding:90px 7vw;background:var(--lav);display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw}.booking>div>h2{font-size:60px;line-height:1;margin:18px 0}.booking>div>p{line-height:1.7}form{background:#fff;padding:34px;border-radius:26px;min-height:520px}.progress{display:flex;gap:8px}.progress i{flex:1;background:#eee;padding:10px;text-align:center;border-radius:20px;font-style:normal}.progress i.on{background:var(--pink);color:#fff}.step{display:none}.step.active{display:block}.step h3{font-size:27px}label{display:grid;gap:7px;margin:15px 0;font-weight:bold;font-size:13px}input,select,textarea{padding:13px;border:1px solid #ddd;border-radius:10px;font:inherit}.check{display:flex;align-items:flex-start}.check input{width:auto}#slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}#slots button{padding:13px;border:1px solid #ddd;border-radius:10px;background:#fff}#slots button.selected{background:var(--ink);color:#fff}#slots button.full{background:#eee;color:#888}.buttons{display:flex;justify-content:space-between;margin-top:25px}.buttons button{padding:13px 20px;border:0;border-radius:10px;font-weight:bold}.buttons #next{background:var(--pink);color:#fff}#summary{background:var(--cream);padding:18px;border-radius:12px;line-height:1.9}#message{font-weight:bold}footer{padding:50px 7vw;background:var(--ink);color:#fff}@media(max-width:800px){.hero,.booking{grid-template-columns:1fr}.phone{margin-top:50px;width:min(430px,100%);height:auto}.how{grid-template-columns:1fr}.booking>div>h2{font-size:45px}form{padding:22px}}
.cta,.buttons #next,.contact-form button{background:var(--pink)!important;color:#fff!important;border-color:var(--pink)!important}.buttons #back{background:#f0edf2!important;color:var(--ink)!important}.slots button,#slots button{color:var(--ink)}#slots button.selected{color:#fff!important}.price-strip{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:#fff;padding:28px 7vw;gap:40px}.price-strip>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 20px}.price-strip small{color:#ff91bb}.price-strip strong{font-size:45px;grid-row:1/3;grid-column:2}.price-strip span{font-size:14px}@media(max-width:600px){.price-strip{grid-template-columns:1fr;gap:22px}.price-strip strong{font-size:38px}}
@media(max-width:600px){html,body{max-width:100%;overflow-x:hidden}body{font-size:15px}.hero{min-height:auto;padding:55px 20px 70px;gap:20px}.hero h1{font-size:clamp(48px,17vw,70px);letter-spacing:-.06em}.hero p{font-size:17px;line-height:1.55}.hero a,.cta{display:inline-block;text-align:center}.phone{width:min(380px,100%);height:auto;margin-top:35px}.phone img{filter:drop-shadow(14px 17px 0 var(--lav))}.how{padding:50px 22px;gap:28px}.booking{padding:55px 14px;gap:35px}.booking>div>h2{font-size:40px}.booking>div>p{font-size:16px}form{padding:18px 14px;border-radius:20px;min-height:480px}.progress{gap:5px}.progress i{padding:9px 4px;font-size:13px}.step h3{font-size:23px;line-height:1.25}input,select,textarea{width:100%;min-height:48px;font-size:16px}.check input{width:22px;min-height:22px;flex:0 0 22px}.buttons{gap:12px}.buttons button{min-height:48px;padding:12px 18px;font-size:15px}footer{padding:42px 22px}.price-strip{padding:24px 22px}.price-strip>div{gap:3px 12px}.price-strip strong{font-size:34px}}
html,body{width:100%;max-width:100vw;overflow-x:hidden!important}body{position:relative}main,header,footer,section,form,.hero,.how,.booking,.price-strip,.site-header{max-width:100%;min-width:0}.hero,.booking,.how,.price-strip,footer{width:100%}img,svg,video,canvas{max-width:100%;height:auto}.hero{overflow:hidden}.booking>* ,.step,.progress,.progress i,.calendar,.calendar-days,.live-price,.participant-card,#summary{min-width:0}.participant-card,#summary,.booking-info{overflow-wrap:anywhere;word-break:break-word}@supports(-webkit-touch-callout:none){html,body{overflow-x:hidden!important}.hero,.booking,.price-strip,.how,.site-header,footer{overflow-x:hidden}.phone{-webkit-transform:rotate(3deg);transform:rotate(3deg)}}

/* Interaktives Impressum */
footer a{color:var(--cream);text-decoration-thickness:1px;text-underline-offset:4px}
.footer-logo{display:inline-block;font-size:26px;font-weight:800;text-decoration:none;margin-bottom:4px}
.footer-logo span{color:var(--pink)}
.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:#e8dfd5}
.footer-links a{font-weight:700}
footer .footer-links{justify-content:flex-end}
footer>small{display:block;text-align:right}
.modal-open{overflow:hidden}
.impressum-dialog{width:min(720px,calc(100vw - 28px));max-width:720px;max-height:86vh;max-height:86dvh;margin:auto;padding:0;border:0;border-radius:24px;background:#fff;color:var(--ink);box-shadow:0 24px 80px #0006;overflow:hidden}
.impressum-dialog::backdrop{background:rgba(20,15,35,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.impressum-dialog-inner{position:relative;max-height:86vh;max-height:86dvh;overflow:auto;padding:38px 42px 42px;-webkit-overflow-scrolling:touch}
.impressum-close{position:sticky;top:0;float:right;z-index:1;width:44px;height:44px;border:0;border-radius:50%;background:var(--ink);color:var(--cream);font-size:30px;line-height:1;cursor:pointer}
.legal-kicker{margin:3px 58px 5px 0;color:var(--pink);font-size:12px;font-weight:800;letter-spacing:.12em}
.impressum-dialog h2{margin:0 58px 22px 0;font-size:clamp(36px,7vw,58px);line-height:1;color:var(--ink)}
.impressum-content h3{margin:25px 0 8px;font-size:19px;color:var(--ink)}
.impressum-content p{margin:0;line-height:1.7;overflow-wrap:anywhere}
.impressum-content a{color:#b41558;font-weight:700}
.legal-page{background:var(--cream);padding-bottom:80px}
.legal-page-hero{padding-bottom:40px}
.legal-page-hero h1{font-size:clamp(56px,9vw,100px)}
.legal-card{width:min(760px,calc(100% - 40px));margin:0 auto;padding:38px 42px;background:#fff;border-radius:24px;box-shadow:0 16px 50px #201a3214}
.agb-dialog{width:min(940px,calc(100vw - 28px));max-width:940px}
.agb-dialog h2{font-size:clamp(34px,6vw,54px)}
.agb-card{width:min(980px,calc(100% - 40px))}
.agb-content{font-size:15px;line-height:1.65;color:var(--ink)}
.agb-status{margin:0 0 28px;color:#6b6574;font-style:italic}
.agb-content section{scroll-margin-top:24px;padding-top:3px}
.agb-content h3{margin:28px 0 11px;color:var(--ink);font-size:21px;line-height:1.25}
.agb-content ol{list-style:none;counter-reset:agb-item;margin:0;padding:0}
.agb-content li{counter-increment:agb-item;position:relative;margin:0 0 11px;padding-left:38px}
.agb-content li::before{content:"(" counter(agb-item) ")";position:absolute;left:0;top:0;color:var(--ink);font-weight:800}
.agb-content a,.legal-check a{color:#b41558;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.agb-contact{margin-top:34px;padding:20px 22px;border-radius:14px;background:#f4f1f7;line-height:1.65}
.legal-check span{font-weight:600}
.contact-feedback{padding:14px 16px;border-radius:12px;margin:0 0 18px;font-weight:600;line-height:1.5}
.contact-feedback.ok{background:#eef9f1;color:#08783d}
.contact-feedback.err{background:#fdecef;color:#b41558}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.impressum-content ul{margin:0 0 12px;padding-left:20px;line-height:1.7}
@media(max-width:600px){.impressum-dialog{width:calc(100vw - 20px);border-radius:20px}.impressum-dialog-inner{padding:22px 20px 28px}.impressum-close{width:42px;height:42px}.impressum-dialog h2{font-size:40px}.impressum-content h3{font-size:17px}.legal-card{width:calc(100% - 28px);padding:25px 20px}.agb-content{font-size:14px}.agb-content h3{font-size:18px}.agb-content li{padding-left:33px}.agb-dialog h2{font-size:34px}footer .footer-links{justify-content:flex-start}footer>small{text-align:left}}
