/* Shared visual system. Booking iframe geometry lives only in booking.css. */
:root{--ink:#294f68;--muted:#4e6a7d;--line:#d9e6ee;--soft:#eef6fb;--paper:#fff}
body{background:linear-gradient(120deg,#fff 15%,#f7fbfe 68%,#edf6fc);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;padding-bottom:0;line-height:1.65}
button,a,summary{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #356b90!important;outline-offset:4px!important}
::selection{background:#d4e7f3;color:#17394e}
.ux-container{width:min(100% - 3rem,1152px);margin-inline:auto}
.ux-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.ux-header-row{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.ux-brand{display:inline-flex;flex-shrink:0}
.ux-brand img{width:132px;height:auto;display:block;border-radius:5px}
.ux-desktop-nav{display:flex;align-items:center;gap:1.65rem;font-size:.91rem;font-weight:500}
.ux-nav-link{padding:.7rem 0;text-underline-offset:.3em}
.ux-nav-link:hover,.ux-nav-link[aria-current=page]{text-decoration:underline}
.ux-header .mb-language{min-height:40px;min-width:42px;display:inline-flex;justify-content:center;align-items:center;font-size:.78rem;background:transparent}
.ux-mobile-actions{display:none;align-items:center;gap:.6rem}
.ux-desktop-nav .mb-button{min-height:44px;padding:.65rem 1.2rem;border-radius:999px;font-size:.88rem}
.mb-menu-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.87rem;background:#fff}
.ux-noscript-nav{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;background:#fff}
.mobile-drawer{max-width:100%;background:linear-gradient(155deg,#fff,#e3f1f9)!important}
.mobile-drawer .mb-button{margin-top:1.25rem}
.drawer-link:focus-visible{background:#fff!important}
.section-kicker{color:var(--muted);font-size:.7rem!important;letter-spacing:.14em!important;line-height:1.6}
.ux-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);align-items:center;gap:4rem;padding-block:clamp(2.5rem,5vw,5rem)}
.ux-hero h1{font-size:clamp(2.5rem,3.8vw,3.6rem);line-height:1.08;letter-spacing:-.045em;font-weight:550;margin:1.15rem 0 1.4rem;max-width:14ch;text-wrap:balance}
.ux-lead{font-size:1.03rem;color:var(--muted);line-height:1.75;max-width:60ch}
.ux-hero-price{font-size:.95rem;font-weight:600;margin-top:1.55rem}
.ux-hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;margin-top:1rem}
.ux-hero-actions .mb-button{min-height:52px;border-radius:999px;padding:.85rem 1.45rem}
.ux-text-link{text-decoration:underline;text-underline-offset:.25em;line-height:1.6;display:inline-block;padding-block:.25rem;font-size:.9rem;font-weight:500}
.ux-text-link:hover{color:#173c56}
.ux-proof-link{display:inline-block;font-size:.8rem;margin-top:1.5rem;text-underline-offset:.25em}
.ux-proof-link span{letter-spacing:.06em;margin-right:.5rem;color:#716037}
.ux-proof-link:hover{text-decoration:underline}
.ux-hero-photo{margin:0;min-width:0}
.ux-hero-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:24px;box-shadow:0 16px 40px #274b6810}
.ux-hero-photo figcaption{font-size:.76rem;color:var(--muted);margin-top:.7rem;text-align:right}
.ux-section{padding-block:clamp(2.7rem,5vw,4.8rem)}
.ux-section-heading{max-width:720px;margin-bottom:2rem}
.ux-section-heading h2,.ux-about h2,.ux-contact-grid h2,.ux-last-cta h2{font-size:clamp(1.6rem,2.5vw,2.3rem)!important;line-height:1.2!important;letter-spacing:-.035em!important;font-weight:550;margin:.65rem 0 1rem}
.ux-section-heading>p:last-child:not(.section-kicker){color:var(--muted);max-width:58ch}
.ux-section-link{margin-top:1.5rem}
.ux-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin:0;padding:0;list-style:none}
.ux-steps li{border-top:1px solid #b8d0e0;padding-top:1.35rem}
.ux-step-index{font-size:.78rem;letter-spacing:.12em;color:var(--muted)}
.ux-steps h3{font-size:1.1rem!important;font-weight:600;margin:.7rem 0 .6rem}
.ux-steps p{font-size:.95rem;color:var(--muted);line-height:1.75}
.ux-band{background:linear-gradient(115deg,#f3f9fd,#e9f4fb)}
.ux-reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.ux-review{margin:0;background:rgba(255,255,255,.8);border:1px solid #d6e6f0;border-radius:20px;padding:1.7rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}
.ux-review blockquote{font-size:1rem;line-height:1.7;margin:0}
.ux-review figcaption{font-size:.83rem;display:flex;flex-direction:column;gap:.2rem}
.ux-review figcaption span{font-size:.73rem;color:var(--muted)}
.ux-reviews-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.2rem}
.ux-small{font-size:.83rem;line-height:1.7;color:var(--muted)}
.ux-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.ux-offer{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(1.35rem,3vw,2.25rem)}
.ux-offer h3{font-size:1.25rem!important;line-height:1.3!important;font-weight:600;margin:.7rem 0 .8rem}
.ux-offer .ux-price{color:var(--ink);font-size:1.65rem;letter-spacing:-.03em;font-weight:550;line-height:1.25;margin:0 0 1rem}
.ux-price span{font-size:.9rem;letter-spacing:0;white-space:nowrap;font-weight:400}
.ux-offer>p:not(.section-kicker):not(.ux-price){color:var(--muted);max-width:52ch}
.ux-offer>.mb-button{margin-top:1.35rem;width:100%;min-height:50px;border-radius:999px}
.ux-offer>.ux-small{font-size:.77rem;margin-top:.7rem}
.ux-about{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.4fr);gap:3.5rem;align-items:start;padding:clamp(1.3rem,3vw,2.5rem);background:#f0f7fb;border:1px solid var(--line);border-radius:24px}
.ux-about>img{width:100%;max-width:340px;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:18px}
.ux-about p:not(.section-kicker){margin:.9rem 0;color:var(--muted);font-size:.95rem;line-height:1.75}
.ux-about p.ux-small{font-size:.82rem}
.ux-details{border-top:1px solid var(--line);margin:1rem 0}
.ux-details summary{font-size:.92rem;font-weight:600;padding:1rem 1.8rem 1rem 0;position:relative;list-style:none;cursor:pointer}
.ux-details summary:after{content:'+';position:absolute;right:.25rem;top:.9rem;font-size:1.2rem;font-weight:400}
.ux-details[open] summary:after{content:'−'}
.ux-details>div{padding-bottom:1rem;font-size:.9rem;line-height:1.75;color:var(--muted)}
.ux-details p+p{margin-top:.75rem}
.ux-faq-section{max-width:900px}
.mb-faq .mb-answer{font-size:.95rem;line-height:1.75}
.mb-faq summary{font-size:.98rem}
.ux-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem;align-items:center}
.ux-contact-grid p:not(.section-kicker){margin:.8rem 0}
.ux-contact-grid .mb-map-placeholder{border:1px solid #cddfe9;border-radius:22px;min-height:280px}
.ux-contact-grid .mb-map-placeholder:has(iframe){overflow:hidden}
.ux-map-link{margin-top:.5rem}
.ux-email{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin:1rem 0;font-size:.94rem;overflow-wrap:anywhere}
.ux-email>a{text-decoration:underline;text-underline-offset:.3em}
.ux-text-button{font-size:.8rem;padding:.45rem .7rem;border:1px solid #b8cbd7;border-radius:8px;background:#fff;min-height:40px}
.ux-copy-status{flex-basis:100%;font-size:.8rem;min-height:0}
.ux-copy-status:empty{display:none}
.ux-last-cta{text-align:center}
.ux-last-cta .mb-button{margin-top:.8rem;border-radius:999px;min-height:50px}
.ux-footer{background:#fff;border-top:1px solid var(--line);padding:2.5rem 0 2rem;font-size:.84rem}
.ux-footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}
.ux-footer-top nav{max-width:500px;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.6rem 1.35rem}
.ux-footer a,.ux-footer button{display:inline-block;min-height:32px;padding-block:.2rem;text-underline-offset:.2em}
.ux-fineprint{font-size:.76rem;max-width:700px;color:var(--muted);margin:1.5rem 0}
.ux-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;border-top:1px solid var(--line);padding-top:1rem;font-size:.76rem}
.ux-page-section{padding-block:clamp(2rem,5vw,4rem)}
.ux-page-heading{max-width:800px;margin-bottom:2rem}
.ux-page-heading .hero-title{margin:.7rem 0 1rem}
.ux-page .hero-title{font-size:clamp(1.8rem,3vw,2.6rem)!important;line-height:1.16!important;letter-spacing:-.035em!important}
.ux-reading{max-width:900px;line-height:1.8}
.ux-reading p{overflow-wrap:break-word}
.ux-reading>h2{font-size:1.35rem!important;line-height:1.35!important;margin:2rem 0 .8rem}
.ux-reading>.mb-button{margin-top:1.5rem}
.ux-reading .ux-offer a.mb-button{text-decoration:none}
.ux-reading .ux-offer p{margin-top:0}
.ux-reading .ux-offer p.ux-small{margin-top:.65rem}
.ux-reading .ux-offers{margin-block:1.4rem}
.ux-booking-intro{max-width:720px;margin-bottom:1.5rem}
.ux-booking-intro h1{margin:.7rem 0}
.ux-booking-meta{font-size:1rem;font-weight:600;margin:.75rem 0}
.ux-booking-intro .ux-lead{font-size:.96rem}
.ux-booking-intro .ux-small{margin-top:.6rem}
.ux-booking-section{padding-block:2.5rem 3.5rem;max-width:1024px}
.ux-switch-booking{margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem}
.mb-cookie-banner{max-height:calc(100dvh - 2rem);overflow:auto;z-index:120}
.mb-cookie-actions .mb-button{min-height:44px}
body.menu-open .mobile-sticky-booking,body:has(#cookie-banner:not([hidden])) .mobile-sticky-booking{opacity:0;pointer-events:none;visibility:hidden}
.mobile-sticky-booking{border-radius:999px;font-size:.93rem}
.ya-credential{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.2;min-width:8rem;gap:.25rem}
.ya-credential-name{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}
.ya-credential-type{font-size:1.1rem;font-weight:600}
@media(max-width:1023px){
 .ux-desktop-nav{display:none}.ux-mobile-actions{display:flex}.ux-header-row{min-height:72px}.ux-brand img{width:120px}
 .ux-hero{gap:2rem}.ux-hero h1{font-size:clamp(2.1rem,4.5vw,3rem)}
 .ux-steps{gap:1.5rem}.ux-about{gap:2rem}.ux-contact-grid{gap:2.5rem}
}
@media(max-width:767px){
 .ux-container{width:calc(100% - 2rem)}.ux-header-row{min-height:68px;gap:.8rem}.ux-brand img{width:107px}
 .ux-hero{grid-template-columns:minmax(0,1fr);padding-block:2rem;gap:1.8rem}.ux-hero h1{font-size:2.55rem;max-width:15ch;margin:.9rem 0 1.1rem}
 .ux-lead{font-size:1rem;line-height:1.7}.ux-hero-price{margin-top:1.2rem;font-size:.9rem}.ux-hero-actions{align-items:stretch}.ux-hero-actions .mb-button{width:100%;font-size:.94rem}
 .ux-hero-actions .ux-text-link{font-size:.84rem}.ux-proof-link{margin-top:1rem}.ux-hero-photo img{border-radius:18px;aspect-ratio:16/10}.ux-hero-photo figcaption{text-align:left}
 .ux-section{padding-block:2.6rem}.ux-section-heading{margin-bottom:1.5rem}.ux-section-heading h2,.ux-about h2,.ux-contact-grid h2,.ux-last-cta h2{font-size:1.8rem!important}
 .ux-steps,.ux-reviews,.ux-offers,.ux-about,.ux-contact-grid{grid-template-columns:minmax(0,1fr)}
 .ux-steps{gap:1.5rem}.ux-step-index{float:right;margin-left:.5rem}.ux-steps h3{margin-top:0}
 .ux-reviews{gap:1rem}.ux-review{padding:1.3rem;gap:1rem}.ux-review blockquote{font-size:.96rem}.ux-reviews-foot{display:block}.ux-reviews-foot a{margin-top:.5rem}
 .ux-offers{gap:1rem}.ux-offer{padding:1.5rem}.ux-offer h3{font-size:1.2rem!important}.ux-offer .ux-price{font-size:1.65rem}
 .ux-about{gap:1.5rem;padding:1.35rem}.ux-about>img{width:65%;max-width:240px}.ux-about p:not(.section-kicker){font-size:.95rem}
 .ux-contact-grid{gap:2rem}.ux-footer-top{flex-direction:column;gap:1.5rem}.ux-footer-top nav{justify-content:flex-start}.ux-footer{padding-bottom:2rem}
 .ux-booking-section{width:calc(100% - 1.25rem);padding-block:1.75rem 2.5rem}.ux-booking-intro{padding-inline:.4rem}.ux-booking-intro .hero-title{font-size:1.9rem!important}
 .mb-faq summary{font-size:.94rem}.mb-faq .mb-answer{font-size:.92rem}.ya-credential{align-items:flex-start}
}
@media(max-width:359px){.ux-header .mb-language{min-width:36px}.ux-hero h1{font-size:2.2rem}.ux-container{width:calc(100% - 1.5rem)}.ux-booking-section{width:calc(100% - 1rem)}.ux-hero-price{font-size:.85rem}.ux-brand img{width:99px}}
@media(min-width:1024px){.menu-overlay,.mobile-drawer{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
