:root{--blue:#c4d8d9;--paper:#f8f7f3;--ink:#252929;--muted:#667172;--line:rgba(37,41,41,.18);--white:#fff;--serif:Manrope, sans-serif;--sans:"DM Sans",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}.site-header{height:88px;padding:0 7vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(248,247,243,.94);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{display:flex;flex-direction:column;line-height:1.1;min-width:150px}.brand-name{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-.8px}.brand-subtitle{font-size:9px;letter-spacing:3px;margin-top:7px;color:var(--muted)}.main-nav{display:flex;gap:clamp(16px,2.5vw,38px);align-items:center}.main-nav a,.language-switch{font-size:13px;color:#505a5a}.main-nav a{transition:color .2s}.main-nav a:hover,.text-link:hover{color:#78999b}.header-actions{display:flex;align-items:center;gap:22px}.language-switch{display:flex;align-items:center;gap:8px}.language-switch span{color:#a4aaaa}.lang-button{border:0;background:none;padding:5px 0;font:inherit;font-size:11px;color:#899292;cursor:pointer}.lang-button.active{color:var(--ink);font-weight:700}.button{display:inline-flex;align-items:center;gap:28px;padding:15px 21px;background:var(--ink);color:white;font-size:12px;letter-spacing:.2px;transition:background .2s,transform .2s;border:0}.button:hover{background:#a9c7c9;transform:translateY(-2px)}.button-small{padding:17px 29px;gap:0;font-size:15px;font-weight:700;letter-spacing:.2px;background:var(--blue);color:var(--ink);border-radius:12px;box-shadow:0 3px 12px rgba(37,41,41,.1)}.nav-booking{display:none}.menu-toggle{display:none}.hero{min-height:680px;height:calc(100vh - 88px);max-height:850px;padding:90px 12vw 45px;position:relative;display:flex;align-items:center;overflow:hidden}.hero-copy{position:relative;z-index:2;max-width:590px}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:600;color:#6d8586;margin:0 0 26px}.hero h1,.intro h2,.services-heading h2,.method-content>h2,.contact-inner h2{font-family:var(--serif);font-weight:500;letter-spacing:-2.4px;line-height:1.14}.hero h1{font-size:clamp(44px,5.6vw,76px);max-width:650px;margin:0 0 27px}.hero-lead{font-size:16px;line-height:1.85;color:#606969;max-width:460px;margin:0 0 34px}.hero-art{position:absolute;width:44vw;height:78%;right:0;top:10%;background:var(--blue);overflow:hidden}.art-orbit{position:absolute;border:1px solid rgba(255,255,255,.75);border-radius:50%;width:70%;aspect-ratio:1;left:16%;top:10%}.orbit-two{width:48%;left:27%;top:21%;border-color:rgba(37,41,41,.23)}.art-shape{position:absolute;width:43%;height:68%;left:31%;top:17%;border-radius:48% 48% 8% 8%;background:rgba(248,247,243,.55);transform:rotate(18deg)}.art-line{position:absolute;width:1px;height:115%;background:rgba(37,41,41,.25);left:52%;top:-7%;transform:rotate(32deg)}.art-caption{position:absolute;bottom:28px;right:30px;font-size:9px;letter-spacing:2px;color:#52696a}.art-caption span{padding:0 7px}.hero-bottom{position:absolute;left:12vw;right:12vw;bottom:35px;display:flex;justify-content:space-between;align-items:center;color:#718080;font-size:11px;letter-spacing:.5px}.scroll-mark{font-size:20px}.section-wrap{padding-left:12vw;padding-right:12vw}.intro{display:grid;grid-template-columns:1fr 3fr;padding-top:135px;padding-bottom:145px;border-top:1px solid var(--line)}.section-index{font-size:9px;letter-spacing:1.8px;color:#879293;padding-top:8px}.section-index span{color:#4c595a;margin-left:8px}.intro-content{max-width:800px}.intro-content .eyebrow{margin-bottom:22px}.intro h2,.services-heading h2,.method-content>h2{font-size:clamp(34px,4vw,54px);max-width:760px;margin:0}.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-top:35px}.intro-bottom p{max-width:490px;color:#657071;line-height:1.9;margin:0}.text-link{white-space:nowrap;font-size:12px;border-bottom:1px solid #9eacad;padding-bottom:7px}.text-link span:last-child{margin-left:12px}.services-section{background:#eef1ed;padding:105px 0 120px}.services-section .section-wrap{display:grid;grid-template-columns:1fr 3fr}.services-heading{display:flex;justify-content:space-between;gap:45px;align-items:flex-end;margin-bottom:50px}.services-heading h2{font-size:clamp(32px,3.5vw,47px);max-width:580px}.services-heading>p{max-width:240px;color:#6b7776;font-size:13px;margin:0 0 4px}.service-list{grid-column:2}.service-item{display:grid;grid-template-columns:45px 1fr 30px;align-items:center;gap:20px;padding:22px 0;border-top:1px solid rgba(37,41,41,.2)}.service-item:last-child{border-bottom:1px solid rgba(37,41,41,.2)}.service-item>span:first-child,.method-grid>div>span{font-size:10px;color:#829292}.service-item h3{font-family:var(--serif);font-weight:500;font-size:21px;letter-spacing:-.5px;margin:0}.service-plus{font-size:17px;color:#78999b;text-align:right}.small-note{grid-column:2;color:#8a9492;font-size:10px;margin:20px 0 0}.method-section{display:grid;grid-template-columns:1fr 3fr;padding-top:135px;padding-bottom:150px}.method-content .eyebrow{margin-bottom:22px}.method-content>h2{max-width:700px}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:75px}.method-grid>div{border-top:1px solid var(--line);padding-top:18px}.method-grid h3{font-family:var(--serif);font-size:20px;font-weight:500;margin:23px 0 10px}.method-grid p{font-size:12px;color:#697474;line-height:1.85;margin:0}.contact-section{background:var(--blue);padding-top:100px}.contact-inner{padding-bottom:115px}.contact-inner .eyebrow{color:#587476;margin-top:55px}.contact-inner h2{font-size:clamp(42px,5.2vw,68px);max-width:720px;margin:0 0 24px}.contact-copy{max-width:490px;color:#536768;font-size:14px;line-height:1.9;margin-bottom:30px}.button-muted{background:rgba(37,41,41,.75);cursor:default}.button-muted:hover{background:rgba(37,41,41,.75);transform:none}.site-footer{border-top:1px solid rgba(37,41,41,.2);padding:28px 7vw;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#5f7374}.footer-brand .brand-name{font-size:17px}.footer-brand .brand-subtitle{font-size:8px}.menu-toggle span{display:block;width:22px;height:1px;background:var(--ink);margin:6px}
@media(max-width:1050px){.site-header{padding:0 5vw}.main-nav{gap:15px}.main-nav a{font-size:12px}.header-actions{gap:13px}.section-wrap{padding-left:8vw;padding-right:8vw}.hero{padding-left:8vw}.hero-bottom{left:8vw;right:8vw}.hero-art{width:48vw}.intro,.services-section .section-wrap,.method-section{grid-template-columns:.7fr 3fr}}
@media(max-width:760px){html{scroll-padding-top:72px}.site-header{height:72px;padding:0 6vw}.brand{min-width:0}.brand-name{font-size:19px}.menu-toggle{display:block;border:0;background:none;padding:8px;order:3}.header-actions{margin-left:auto;margin-right:12px}.header-actions .button{display:none}.main-nav{display:none;position:absolute;top:72px;left:0;right:0;padding:22px 7vw 28px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:18px}.main-nav.open{display:flex}.main-nav a{font-size:14px}.main-nav .nav-booking{display:inline-flex;margin-top:4px}.hero{height:auto;min-height:760px;padding:80px 7vw 120px;align-items:flex-start}.hero-copy{padding-top:10px}.hero h1{font-size:clamp(43px,12vw,62px);letter-spacing:-1.8px}.hero-lead{font-size:14px;max-width:390px}.hero-art{top:auto;bottom:0;width:75%;height:37%;opacity:.9}.art-caption{font-size:8px}.hero-bottom{left:7vw;right:7vw;bottom:25px}.intro,.method-section{display:block;padding:85px 7vw}.intro-content,.method-content{margin-top:48px}.intro h2,.method-content>h2{font-size:37px;letter-spacing:-1.5px}.intro-bottom{display:block}.intro-bottom p{font-size:13px}.intro-bottom .text-link{display:inline-block;margin-top:25px}.services-section{padding:80px 0}.services-section .section-wrap{display:block;padding-left:7vw;padding-right:7vw}.services-heading{display:block;margin-top:45px}.services-heading h2{font-size:36px;letter-spacing:-1.5px}.services-heading>p{margin-top:22px}.service-list{margin-top:38px}.service-item{grid-template-columns:28px 1fr 20px;gap:10px;padding:19px 0}.service-item h3{font-size:17px}.small-note{font-size:10px}.method-content{margin-top:45px}.method-grid{grid-template-columns:1fr;gap:28px;margin-top:50px}.method-grid>div{padding-top:15px}.method-grid h3{margin:12px 0 5px}.contact-section{padding-top:75px}.contact-inner{padding-bottom:85px}.contact-inner .eyebrow{margin-top:45px}.contact-inner h2{font-size:45px;letter-spacing:-1.7px}.contact-copy{font-size:13px}.site-footer{padding:25px 7vw;display:grid;grid-template-columns:1fr 1fr;gap:20px}.site-footer>span:nth-child(2){grid-column:1/-1;grid-row:2}.site-footer>span:last-child{text-align:right}.footer-brand .brand-name{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Booking request modal */
.button-small{cursor:pointer;font-family:inherit}
.booking-overlay{position:fixed;inset:0;z-index:30;background:rgba(25,32,32,.48);display:grid;place-items:center;padding:24px;backdrop-filter:blur(5px)}
.booking-overlay[hidden]{display:none}
.booking-dialog{position:relative;width:min(100%,540px);max-height:min(88vh,800px);overflow:auto;background:var(--paper);padding:clamp(28px,5vw,48px);box-shadow:0 24px 80px rgba(0,0,0,.2);border-radius:16px}
.booking-close{position:absolute;right:20px;top:16px;border:0;background:none;font-size:30px;line-height:1;color:#667172;cursor:pointer;padding:5px 9px}
.booking-dialog .eyebrow{margin:0 35px 12px 0}
.booking-dialog h2{font-family:var(--serif);font-size:clamp(32px,5vw,43px);font-weight:500;letter-spacing:-1.5px;line-height:1.15;margin:0 0 12px}
.booking-intro{font-size:14px;color:#657071;line-height:1.8;margin:0 0 25px}
.booking-form{display:grid;gap:8px}
.booking-form label{font-size:12px;font-weight:600;margin-top:7px}
.booking-form input,.booking-form textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:12px 13px;font:inherit;font-size:14px;color:var(--ink);outline:none}
.booking-form input:focus,.booking-form textarea:focus{border-color:#78999b;box-shadow:0 0 0 3px rgba(196,216,217,.45)}
.booking-form textarea{resize:vertical;min-height:88px}
.booking-privacy{font-size:11px;line-height:1.6;color:#7b8585;margin:0 0 5px}
.booking-availability{display:flex;gap:14px;align-items:flex-start;background:#edf2ef;padding:15px;border-radius:9px;margin-top:22px}
.availability-icon{font-size:23px;color:#6d8586}
.booking-availability strong{font-size:13px}
.booking-availability p{font-size:11px;color:#687474;line-height:1.6;margin:4px 0 0}
.booking-coming{font-size:11px;color:#879293;text-align:center;line-height:1.6;margin:17px 0 0}
body.booking-open{overflow:hidden}
@media(max-width:760px){.booking-overlay{padding:12px}.booking-dialog{padding:30px 23px;border-radius:13px;max-height:92vh}}
