/* Version 11: readable typography and comfortable controls.
   1rem respects browser font preferences; no shrinking on short screens. */
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:1.125rem;line-height:1.65}
p,li{overflow-wrap:break-word}
button,input,select,textarea{font-family:inherit}
:where(a,button,input,select,summary):focus-visible{outline:3px solid #173d29;outline-offset:4px;box-shadow:0 0 0 7px #faf7da}
:where(input,select,textarea){font-size:1rem;min-height:48px}
:where(button,summary){min-height:44px}
a.btn,button.btn,a.tour__buy,.welcome__actions a.btn,.faq-help a.btn{font-size:1.125rem;min-height:56px;line-height:1.4;align-items:center;justify-content:center;text-align:center;padding:14px 18px}
.nav__menu a,.nav__menu a.nav__cta{font-size:1rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.nav__menu ul{gap:18px}.nav__toggle{min-width:44px;min-height:44px}
.welcome__lead,.city-welcome .welcome__lead{font-size:1.125rem;line-height:1.65;max-width:560px}
.eyebrow,.welcome .eyebrow{font-size:.875rem;line-height:1.5;letter-spacing:.06em}
.welcome__facts,.city-next,.city-welcome .breadcrumb{font-size:1rem;line-height:1.6}
.welcome__questions{font-size:1.0625rem;font-weight:700;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px}
.welcome .family-offer .offer-copy{gap:8px;min-width:0}
.welcome .family-offer .offer-copy small{font-size:.875rem;line-height:1.45;letter-spacing:.035em;color:#345329}
.welcome .family-offer .offer-copy strong{font-size:1.375rem;line-height:1.35;letter-spacing:-.02em}
.welcome .family-offer .offer-copy>span{font-size:1rem;line-height:1.5;color:#344c34}
.film-caption{font-size:1rem;line-height:1.5;align-items:flex-start;flex-wrap:wrap;gap:8px 20px}
.film-caption a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-underline-offset:5px}
.intro-film button,.welcome #hero-video-toggle{font-size:1rem;min-height:44px;padding:10px 16px}
.lead,.show__copy .lead,.family-moments__copy>p:not(.eyebrow){font-size:1.125rem;line-height:1.75}
.family-facts span{font-size:1rem;line-height:1.5}.family-facts strong{font-size:1.75rem}
.family-link{font-size:1.125rem;line-height:1.5;min-height:60px}
.feature p,.held p,.eltern__faq details p,.eltern__faq details ul{font-size:1.0625rem;line-height:1.7}
.eltern__faq summary{font-size:1.125rem;line-height:1.55;padding:20px 0}
.held__role{font-size:1rem}.held__tag{font-size:.875rem;line-height:1.5;letter-spacing:0;white-space:normal}
.helden__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.tour__controls label,.tour__help,.tour__city .venue,.tour__time,.tour__filter-status,.city-tour__address,.city-tour__time,.ticket-note{font-size:1rem;line-height:1.6}
.tour__help{color:#3c553b}.tour__controls label{letter-spacing:0;text-transform:none}
.tour__city .city-name{font-size:1.375rem}.tour__city-page{font-size:1rem!important;display:inline-flex;align-items:center;min-height:44px;line-height:1.4}
.tour__date{gap:20px}.tour__date-block .weekday,.tour__date-block .month{font-size:1rem}
.reviews__link strong{font-size:1.125rem}.reviews__link span{font-size:1rem}
.footer__brand p,.footer__col p,.footer__col a,.footer__bar .container,.footer__col h4{font-size:1rem;line-height:1.7}
.footer__col a,.footer__bar a,.cookie-settings,.city-index a,.city-nearby a{display:inline-flex;align-items:center;min-height:44px}
.footer__col h4{letter-spacing:.04em}.footer__grid{grid-template-columns:1.4fr 1.3fr 1fr 1fr;gap:24px}
.subpage a{color:#245235;text-underline-offset:4px}.subpage__back{min-height:44px}
.subpage p,.subpage li{font-size:1.125rem}.subpage td,.subpage th,.subpage code{font-size:1rem;overflow-wrap:anywhere}
body .booking-dock a{font-size:1rem;min-height:48px}
body .booking-dock a.dock-ticket{min-height:76px;min-width:320px}
.dock-ticket__label{font-size:1.25rem;line-height:1.3}.dock-ticket small{font-size:1rem;line-height:1.3}
.cookie-banner{bottom:130px;max-height:calc(100dvh - 150px)}
.cookie-banner p,.cookie-banner__actions button{font-size:1rem;line-height:1.5}.cookie-banner__actions button{min-height:48px}
@media(min-width:768px) and (max-width:1100px){
 .welcome__grid{grid-template-columns:1.1fr 1fr;gap:28px}.welcome__actions,.city-welcome .welcome__actions{display:flex;flex-direction:column}
 .welcome .family-offer{grid-template-columns:100px 1fr;gap:14px}.welcome .family-offer img{width:100px}
 .welcome .family-offer .offer-copy strong{font-size:1.125rem}.nav__menu ul{gap:10px}
 .family-moments__grid{grid-template-columns:1fr 1.4fr;gap:28px}.family-facts{grid-template-columns:1fr;gap:14px}
 .footer__grid{grid-template-columns:1fr 1fr}.helden__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
 body{font-size:1rem;padding-bottom:120px}
 .welcome,.city-welcome{height:auto;min-height:100svh;padding:0}
 .welcome__grid{height:auto;min-height:100svh;padding:146px var(--pad) 112px;align-items:flex-end}
 .welcome h1,.city-welcome h1{font-size:clamp(2rem,8.3vw,2.6rem);line-height:1.1;margin:10px 0 12px}
 .welcome__lead,.city-welcome .welcome__lead{font-size:1rem;line-height:1.55}
 .welcome .eyebrow{font-size:.875rem;letter-spacing:.03em}
 .welcome__facts{font-size:1rem;line-height:1.55;margin-top:14px}
 .welcome__questions{display:none}
 .city-welcome .breadcrumb{font-size:.875rem;line-height:1.5;margin-bottom:8px}
 .city-next{font-size:1rem;line-height:1.5;margin-top:12px;padding:8px 12px}
 .welcome__actions,.city-welcome .welcome__actions{margin-top:16px;gap:10px;align-items:stretch}
 .welcome__actions a.btn{font-size:1rem;min-height:56px;padding:12px 8px;line-height:1.4}
 .welcome #hero-video-toggle{top:82px;font-size:.875rem;min-height:44px;padding:10px 14px}
 .welcome .family-offer{grid-template-columns:96px minmax(0,1fr);padding:12px;gap:14px;margin-top:16px}
 .welcome .family-offer img{width:96px}
 .welcome .family-offer .offer-copy{gap:5px}
 .welcome .family-offer .offer-copy small{font-size:.875rem;letter-spacing:0}
 .welcome .family-offer .offer-copy strong{font-size:1.125rem;line-height:1.3}
 .welcome .family-offer .offer-copy>span{font-size:1rem;line-height:1.4}
 .lead,.show__copy .lead,.family-moments__copy>p:not(.eyebrow){font-size:1.0625rem;line-height:1.7}
 .family-facts{grid-template-columns:1fr;gap:14px}.family-facts>div{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center;padding-left:12px}
 .family-facts strong{font-size:1.5rem}.family-facts span{font-size:1rem;margin:0}.family-facts br{display:none}
 .family-link{font-size:1.0625rem;padding:16px;line-height:1.5}
 .helden__grid{grid-template-columns:1fr}.held h3{font-size:1.75rem;min-height:0}.held__body{padding:24px}.held__photo{aspect-ratio:1.2;object-fit:contain}
 .eltern__faq summary{font-size:1.0625rem}.feature p,.held p,.eltern__faq details p,.eltern__faq details ul{font-size:1rem}
 .footer__grid{grid-template-columns:1fr}.footer__bar .container{gap:16px}.footer__bar nav{gap:8px 18px}
 body .booking-dock a.dock-ticket{min-width:0;min-height:80px;padding:10px 12px}
 .dock-ticket__label{font-size:1.125rem}.dock-ticket small{font-size:1rem}
 .cookie-banner{bottom:calc(106px + env(safe-area-inset-bottom));max-height:calc(100dvh - 126px - env(safe-area-inset-bottom))}
}
@media(max-width:360px){
 .welcome .family-offer{grid-template-columns:80px minmax(0,1fr);gap:10px;padding:10px}.welcome .family-offer img{width:80px}
 .welcome .family-offer .offer-copy strong{font-size:1rem}.welcome .family-offer .offer-copy small{font-size:.875rem}
 .welcome__actions,.city-welcome .welcome__actions{grid-template-columns:1fr}
 .subpage__container{padding:24px 16px}.subpage h1{overflow-wrap:anywhere}
}
/* Text uses forest green; orange remains reserved for booking surfaces. */
.city-about h2,.city-ausflug h2,.city-tour h2,.city-index h2,.city-about__list strong,.city-ausflug__card h3,.city-ausflug__card .card-icon,.city-tour__time strong,.faq-help h3,.newsletter__card h3,.eltern__faq a{color:#173d29}
.eltern__faq summary{overflow-wrap:anywhere;hyphens:auto}
.booking-dock,.booking-dock a,.tour__buy{white-space:normal}
.dock-ticket__label,.dock-ticket small{max-width:100%;overflow-wrap:anywhere}
.footer__col,.footer__brand,.tour__city,.tour__time{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){.nav__menu{background:#faf7da;max-height:calc(100dvh - 180px);overflow-y:auto}.nav__menu:not(.is-open){visibility:hidden}.nav__menu.is-open{visibility:visible}.nav__menu ul{gap:8px}.nav__menu a{width:100%}}
@media(max-width:767px){
 .welcome::before{background:linear-gradient(180deg,#09201670 0%,#09201650 18%,#092016d9 34%,#092016f2 65%,#092016fc 100%)}
 .welcome .eyebrow{display:block}.welcome .eyebrow::before{display:inline-block;margin-right:8px}
 .welcome #hero-video-toggle{max-width:calc(100% - 44px);height:auto;overflow-wrap:anywhere}
 .family-facts>div{grid-template-columns:minmax(0,92px) minmax(0,1fr)}
}
main :where(div,article,section,p,ul,li,span){min-width:0}
.btn,.btn>span,.tour__buy,.family-link,.family-facts span,.geburtstag__list li,.city-geburtstag__list li{overflow-wrap:anywhere}
.tour__buy{flex-wrap:wrap}
@media(max-width:767px){.welcome__actions,.city-welcome .welcome__actions{grid-template-columns:repeat(2,minmax(0,1fr))}.geburtstag__copy,.city-geburtstag__copy{min-width:0}.geburtstag__copy ul,.city-geburtstag__copy ul{min-width:0;max-width:100%}}
@media(max-width:360px){.welcome__actions,.city-welcome .welcome__actions{grid-template-columns:minmax(0,1fr)}}
.eltern__faq summary{display:block;position:relative;padding-right:32px}
.eltern__faq summary::after{position:absolute;right:0;top:20px;width:24px;text-align:center}
.footer__col a,.footer__brand a{max-width:100%;overflow-wrap:anywhere}
.eltern__faq summary::after{right:6px}
.newsletter__card label{color:#173d29}
.tour__cta a{color:#173d29;text-underline-offset:4px}
.eltern__faq summary::after{height:24px;line-height:24px}
.eyebrow{max-width:100%;overflow-wrap:anywhere}
.city-tour__date-block{min-width:0;max-width:100%;overflow-wrap:anywhere}
@media(max-width:767px){.city-tour__item{grid-template-columns:minmax(0,1fr)}.city-geburtstag__card{grid-template-columns:minmax(0,1fr)}}
.city-tour__date-block{flex-wrap:wrap;gap:12px}

/* Version 12: booking stays anchored to the screen, including open overlays. */
body .booking-dock{
 position:fixed;top:auto;bottom:calc(18px + env(safe-area-inset-bottom));
 z-index:10000;visibility:visible;opacity:1;pointer-events:auto;
 animation:none;transition:none;
}
body .booking-dock .dock-ticket{visibility:visible;opacity:1;pointer-events:auto}
.lightbox{padding-bottom:140px}
@media(max-width:767px){body .booking-dock{bottom:calc(10px + env(safe-area-inset-bottom))}}

/* Version 13: clear video, without a full-frame colour overlay. */
.welcome::before,.city-welcome::before{display:none;background:none}
.show-video{filter:none;opacity:1;mix-blend-mode:normal}
@media(max-width:767px){
 body:has(.welcome) .nav:not(.is-scrolled){background:transparent;backdrop-filter:none}
 .welcome h1,.city-welcome h1,.welcome .eyebrow,.city-welcome .breadcrumb{ text-shadow:0 2px 4px #000,0 0 14px #000b }
 .welcome__lead,.city-welcome .welcome__lead,.welcome__facts{background:rgba(0,0,0,.62);color:#faf7da;border-radius:10px;padding:8px 12px;text-shadow:none}
 .city-next{background:#faf7da;color:#173d29;text-shadow:none}
}

/* Version 14: cream surfaces, orange actions, one persistent booking area. */
:root{--cream:#faf7da;--c-paper:#faf7da;--c-cream:#faf7da}
body .family-link,body .btn--ghost,body .cookie-banner__actions button,body .skip-link{
 background:#ff6b1a;color:#183023;border-color:#ff6b1a;text-shadow:none;
}
body .family-link:hover,body .btn--ghost:hover,body .cookie-banner__actions button:hover{
 background:#ff853f;color:#183023;border-color:#ff853f;
}
.family-link{box-shadow:0 5px 0 #f3caa9}
.nav__menu li:has(>.nav__cta){display:none}
.family-moments__copy .family-intro{font-weight:600;color:#173d29;margin-bottom:16px}
@media(max-width:767px){
 .booking-dock{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;box-shadow:none}
 .booking-dock>a[href*="wa.me"]{display:flex;grid-column:2;grid-row:1;background:#25d366;color:#113822;min-height:80px;padding:12px 8px;border:1px solid #b4edc9;border-radius:18px;box-shadow:0 5px 20px #0003;text-align:center;font-size:1rem}
 body .booking-dock a.dock-ticket{grid-column:1;grid-row:1;box-shadow:0 5px 20px #0003}
 .dock-ticket__label{font-size:1rem}.dock-ticket small{font-size:.875rem}
}
@media(max-width:360px){.booking-dock{grid-template-columns:minmax(0,1fr) 96px}.booking-dock>a[href*="wa.me"]{font-size:.875rem}}

/* Version 15: supplied botanical artwork, with cream sampled from its centre. */
:root{--cream:#faf7da;--c-paper:#faf7da;--c-cream:#faf7da}
body{
 background-color:#faf7da;
 background-image:url('/assets/brand/fern-cream-background.png');
 background-position:center top;background-size:calc(100% + 6px) auto;
 background-repeat:repeat-y;
}
main>section:not(.welcome),.footer,.footer__bar{
 background-color:rgba(250,247,218,.48);background-image:none;
}
.welcome,.city-welcome{background:transparent}
.welcome::after,.jungle-leaves,.city-welcome .jungle-leaves{display:none}
.nav,.nav.is-scrolled,.nav__menu,.cookie-banner,.subpage__container{background:#faf7da}
body .booking-dock{background:#faf7da}
.welcome .family-offer,.family-moments__photo,.tour__controls,.tour__date,.city-tour__item,.held,.held__body,.feature,.city-ausflug__card,.eltern__faq details,.eltern__faq details[open],.reviews__link,.newsletter__card,.geburtstag__card,.city-geburtstag__card,.faq-help{background-color:#faf7da}
.welcome .family-offer::before,.welcome .family-offer::after{background:#faf7da}
.subpage{background:transparent}
@media(min-width:1100px){
 main>section:not(.welcome){background-image:linear-gradient(90deg,transparent,#faf7da66 26%,#faf7da66 74%,transparent)}
}
@media(max-width:767px){
 body{background-size:calc(100% + 6px) auto}
 body .booking-dock{background:transparent}
 body:has(.welcome) .nav:not(.is-scrolled){background:transparent}
 main>section:not(.welcome){background-color:rgba(250,247,218,.64)}
}

/* Version 16: distinct white surfaces above the warm botanical background. */
.nav,.nav.is-scrolled,.nav__menu,.cookie-banner,.subpage__container,
body .booking-dock,
.welcome .family-offer,.family-moments__photo,.tour__controls,.tour__date,
.city-tour__item,.held,.held__body,.feature,.city-ausflug__card,
.eltern__faq details,.eltern__faq details[open],.reviews__link,
.newsletter__card,.geburtstag__card,.city-geburtstag__card,.faq-help{
 background-color:#fff;
}
.welcome .family-offer::before,.welcome .family-offer::after{background:#fff}
.intro-film,.show__media,.gallery__item{border-color:#fff}
.intro-film button,.welcome #hero-video-toggle{background:#fff}
@media(max-width:767px){
 body .booking-dock{background:transparent}
 body:has(.welcome) .nav:not(.is-scrolled){background:transparent}
 .city-next{background:#fff}
}

/* Version 17: consistent white cards, visible edges and strong accent rails. */
body .feature,body .feature:nth-child(n),body .show__sticker,
body .tour__date-block,body .city-tour__date-block,body .tour__empty,
body .eltern__highlight,body .newsletter__consent,
body .tour__search input,body .tour__filters select{
 background:#fff;
}
.welcome .family-offer,.family-moments__photo,.tour__controls,.tour__date,
.city-tour__item,.held,.city-ausflug__card,.eltern__faq details,
.eltern__faq details[open],.reviews__link,.newsletter__card,
.geburtstag__card,.city-geburtstag__card,.faq-help,.cookie-banner,
body .booking-dock,.tour__empty,.eltern__highlight{
 border:2px solid #708b61;
}
body .feature,body .feature:nth-child(n){
 border:2px solid #708b61;border-left:6px solid #ff6b1a;
}
.city-next{border-left:6px solid #ff6b1a}
.family-facts>div{border-left:6px solid #ff6b1a}
body .tour__search input,body .tour__filters select{border:2px solid #708b61}
.nav,.nav.is-scrolled{border-bottom:2px solid #708b61}
.welcome .family-offer::before,.welcome .family-offer::after{border-width:2px;border-color:#708b61}
.held__body,.tour__date-block,.city-tour__date-block,.show__sticker{border:0}
body .tour__date-block,body .city-tour__date-block{color:#173d29}
@media(max-width:767px){
 body .booking-dock{border:0}
 body:has(.welcome) .nav:not(.is-scrolled){border-bottom:0}
 body .booking-dock a.dock-ticket,.booking-dock>a[href*="wa.me"]{border:0}
}
