:root{--serif:'Manrope',Arial,sans-serif}
body{font-size:16px}
h1,h2,h3{font-family:var(--sans);font-weight:500;line-height:1.2;letter-spacing:-1.6px}
h1,.hero h1{font-size:62px;line-height:1.12;letter-spacing:-2.4px}
h2,.vision-copy h2,.editorial h2{font-size:42px;line-height:1.2}
h3,.service-card h3,.treatment-content h3{font-size:28px;line-height:1.3;letter-spacing:-.8px}
em{font-style:normal;font-weight:400}
.prose,.editorial .prose,.vision .prose,.about-intro .prose,.treatment-content p{font-size:16px;line-height:1.9}
.hero-description,.page-hero-copy>p:not(.eyebrow),.contact-title p:last-child,.crystal-banner p:not(.eyebrow){font-size:17px;line-height:1.85}
.hero-description{max-width:510px}
.vision .prose p:last-child{font-family:var(--sans);font-size:23px;line-height:1.6;font-weight:500}
.section-heading h2{font-size:42px}
.eyebrow,.hero .eyebrow{font-size:12px;letter-spacing:1.7px}
.button,.text-link{font-size:14px}
.button{padding:18px 27px}
.service-card div>span:first-child{font-size:11px}
.offerings summary{font-size:16px}.offerings ul{font-size:15px}
.crystal-banner h2{font-size:52px;letter-spacing:-1.8px}
.contact-banner h2{font-size:48px}
.services-intro h2{font-size:36px}.promotion h2{font-size:34px}
.contact-info h2{font-size:32px}.contact-info p,.contact-row>a,.address{font-size:16px}
form h2{font-size:32px}form label{font-size:14px}.form-note{font-size:13px}
.promotion-grid span,.treatment-photo>span{font-size:13px}
.footer-grid{font-size:14px}.footer-grid .eyebrow{font-size:11px}.socials{font-size:13px}.footer-bottom{font-size:12px}
.topbar{background:#f1e1e3;font-size:13px;letter-spacing:.1px}
.topbar .container{min-height:42px;gap:25px}.topbar .container>span:nth-child(2){margin-left:auto;margin-right:25px}
.header{margin-bottom:-112px}
.nav-wrap{display:flex;align-items:center;gap:30px;min-height:112px;padding-block:20px}
.header .brand{width:280px;margin-right:auto}
.header .brand>span{display:none}
.nav-tools{margin:0;flex-shrink:0}
.header-panel{margin:0 0 0 auto;gap:0}
.header nav{gap:31px}
.header nav a{font-family:var(--sans);font-size:15px;letter-spacing:0;line-height:1.5}
.header-contact{display:none;min-width:228px;row-gap:3px;padding-left:28px}
.header-contact a,.header-contact .header-phone{font-size:12px}
.header-contact .header-address{font-size:11px}
.language select{font-size:13px;width:36px}
.hero-inner{min-height:792px;padding-top:188px;padding-bottom:110px}
.hero h1{max-width:660px}
.page-hero{padding-top:112px}
.page-hero-copy{padding-top:75px;padding-bottom:75px}
.page-hero h1{font-size:56px}
.page-hero-image{min-height:490px;max-height:650px}
.contact-title{padding-top:192px}
@media(min-width:1550px){.hero-inner{min-height:864px}.hero h1{font-size:72px}.hero-description{font-size:18px}}
@media(min-width:1101px) and (max-width:1250px){.header .brand{width:260px}.header nav a{font-size:14px}.header nav{gap:26px}.header-contact{min-width:220px}}
@media(max-width:1100px){
 .topbar .container{gap:15px}.topbar .container>span:nth-child(2){margin-right:5px}
 .header{margin-bottom:-96px}
 .nav-wrap{min-height:96px;padding-block:20px;grid-template-columns:1fr auto 1fr;gap:0}
 .header .brand{width:260px}.nav-tools{gap:15px}
 .header-panel{display:grid;grid-row:auto;grid-column:auto;justify-self:auto;margin:0;height:calc(100dvh - 96px);padding:60px 50px;gap:45px}
 .header nav{gap:25px;padding-left:22px}
 .header nav a{font-family:var(--sans);font-size:34px;line-height:1.25;letter-spacing:-1.3px}
 .header-contact{display:flex;min-width:0;padding:8px 0 20px 32px;gap:16px}
 .header-contact a,.header-contact .header-phone{font-size:16px}.header-contact .header-phone-secondary{font-size:14px}.header-contact .header-address{font-size:15px}.menu-contact-title{font-size:12px}
 .hero-inner{min-height:800px;padding-top:170px}.hero h1{font-size:56px}
 .page-hero{padding-top:96px}.page-hero-copy{padding-top:65px}.page-hero-image{min-height:450px}
 .contact-title{padding-top:176px}
}
@media(max-width:800px){
 .topbar{font-size:11px}.topbar .container{width:calc(100% - 32px);min-height:52px;display:grid;grid-template-columns:1fr auto;column-gap:14px;row-gap:0;padding-block:7px}
 .topbar .container>span:nth-child(2){margin:0;grid-row:2;grid-column:1/-1}.topbar a{display:block;grid-row:1;grid-column:2}
 .header{margin-bottom:-88px}.nav-wrap{min-height:88px;padding-block:20px}
 .header .brand{width:220px}.nav-tools{gap:7px}
 .header-panel{height:calc(100dvh - 88px);padding:50px 32px;gap:30px}
 .header nav{padding-left:12px}.header nav a{font-size:31px}
 .header-contact{padding-left:24px}.header-contact a,.header-contact .header-phone{font-size:14px}.header-contact .header-address{font-size:14px}
 .hero-inner{min-height:800px;padding-top:155px}.hero h1{font-size:55px}
 .hero-description{font-size:16px;max-width:400px}
 h2,.section-heading h2,.vision-copy h2,.editorial h2{font-size:36px}
 .page-hero{padding-top:88px}.page-hero-copy{padding-top:55px}.page-hero h1{font-size:46px}
 .contact-title{padding-top:158px}.contact-banner h2{font-size:40px}
}
@media(max-width:580px){
 .header .brand{width:clamp(205px,50vw,240px)}
 .header .nav-wrap{width:calc(100% - 32px)}
 .nav-tools{gap:1px}.menu-toggle{width:32px}.language select{width:30px;font-size:12px}
 .header-panel{grid-template-columns:1fr .94fr;gap:20px;padding:46px 22px 35px}
 .header nav{padding-left:8px;gap:30px}.header nav a{font-size:26px;letter-spacing:-.7px}
 .header-contact{padding:8px 0 15px 17px;gap:18px}
 .header-contact a,.header-contact .header-phone{font-size:13px}.header-contact .header-phone-secondary{font-size:12px}.header-contact .header-address{font-size:13px}.menu-contact-title{font-size:10px}
 .hero-inner{min-height:810px;padding-top:145px;padding-bottom:80px}
 .hero h1{font-size:clamp(35px,9.2vw,44px);letter-spacing:-1.4px;max-width:100%;margin-bottom:28px;hyphens:none}
 html:lang(de) .hero h1{font-size:clamp(30px,8vw,38px);letter-spacing:-1.3px}
 .hero-description{font-size:16px;max-width:310px;line-height:1.85}
 .hero-actions .text-link{font-size:14px}.hero-actions{gap:18px}
 .hero .eyebrow{font-size:10px;line-height:1.8;max-width:300px}
 h2,.section-heading h2,.vision-copy h2,.editorial h2{font-size:32px;letter-spacing:-1px;line-height:1.25}
 h3,.service-card h3,.treatment-content h3{font-size:26px}
 .prose,.editorial .prose,.vision .prose,.about-intro .prose,.treatment-content p{font-size:16px;line-height:1.85}
 .offerings summary{font-size:15px}.offerings ul{font-size:15px}
 .crystal-banner h2{font-size:32px;letter-spacing:-1px}.crystal-banner p:not(.eyebrow){font-size:16px}
 .contact-banner h2{font-size:36px}.contact-banner .eyebrow{font-size:10px}
 .page-hero-copy{padding-top:50px}.page-hero h1,.contact-title h1{font-size:42px}
 .page-hero-image{min-height:0}.page-hero-copy>p:not(.eyebrow),.contact-title p:last-child{font-size:16px}
 .services-intro h2,.promotion h2,.location-section h2{font-size:32px}
 .contact-info h2{font-size:29px}.contact-row>a{font-size:16px}
 .footer-grid{font-size:13px}.footer-grid>div:last-child .eyebrow{font-size:11px}.footer-bottom{font-size:10px}
 .promotion-grid span{font-size:12px}
}

@media(max-width:1100px){.header-panel{height:calc(100dvh - var(--panel-top,88px))}}

h3,.treatment-content h3{font-size:36px}.service-card h3{font-size:32px}.service-card{display:flex;flex-direction:column}.service-card>div{flex:1}
@media(max-width:580px){h3,.service-card h3,.treatment-content h3{font-size:30px}}

/* Always-visible activities and the original Google Maps embed. */
.offerings{border:0;margin-top:42px}
.offerings h3{font-size:21px;line-height:1.5;letter-spacing:-.4px;margin-bottom:22px;font-weight:500}
.offerings ul{padding-top:0;padding-bottom:0}
.google-map{display:block;width:100%;height:470px;border:0;background:#f1e8e6}
.contact-map{padding-top:80px}
.map-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:35px}
.map-heading h2{margin:0}.map-heading .text-link{white-space:nowrap}
.contact-map>.google-map{height:550px}
@media(max-width:800px){.google-map{height:400px}.contact-map>.google-map{height:460px}.contact-map{padding-top:60px}}
@media(max-width:580px){.offerings h3{font-size:19px}.map-heading{gap:20px;margin-bottom:26px}.map-heading h2{font-size:29px}.map-heading .text-link{font-size:13px}.contact-map>.google-map{height:420px}}

/* A quiet language label with an accessible native disclosure. */
.language{display:block;position:relative;padding:0;border:0;line-height:1.5}
.language summary{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 0;font-size:14px;white-space:nowrap;list-style:none}
.language summary::marker{content:''}
.language summary svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.language[open] summary svg{transform:rotate(180deg)}
.language-options{position:absolute;right:-16px;top:calc(100% + 12px);width:188px;padding:9px;background:#fffaf7;border:1px solid #e8dadd;border-radius:12px;box-shadow:0 14px 42px #38273016;z-index:30}
.language-options a{display:block;padding:11px 14px;border-radius:6px;font-size:14px;transition:background .15s}
.language-options a:hover,.language-options a:focus-visible{background:#f5e9e9}
.language-options a[aria-current]{background:#f0dfe2;color:#744451;font-weight:600}
@media(max-width:580px){.header .brand{width:clamp(145px,45vw,220px);flex-shrink:1;min-width:0}.nav-tools{gap:10px}.language summary{font-size:12px;gap:6px}.language-options{right:0;top:calc(100% + 8px)}}
@media(prefers-reduced-motion:reduce){.language summary svg,.language-options a{transition:none}}
