:root{--ink:#2b203a;--muted:#7d718e;--purple:#8369b2;--orchid:#b566d3;--pink:#e795e4;--lavender:#bdc0eb;--border:#eadff4;--paper:#fcf9ff;--display:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;letter-spacing:-.025em}h1{font-size:clamp(54px,6.1vw,92px)}h2{font-size:clamp(38px,4vw,56px)}h3{font-size:30px}em{color:var(--orchid);font-weight:400}p{color:var(--muted)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;width:100%;object-fit:cover}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1280px,calc(100% - 96px));margin:auto}.section{padding:95px 0}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.25em;font-size:12px;font-weight:700;color:#9d56c1;margin-bottom:22px}.button{display:inline-flex;justify-content:center;align-items:center;gap:15px;border-radius:99px;padding:13px 26px;font-size:14px;font-weight:600;line-height:1.7;transition:transform .2s,box-shadow .2s;border:1px solid transparent}.button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #8369b21c}.primary{background:linear-gradient(115deg,var(--purple),var(--orchid));color:white}.outline{border-color:#ddc6ee;color:#9554ba;background:transparent}.actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:38px}header{background:#fcf9fff2;border-bottom:1px solid #eadff477;position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:30px}.brand{font:27px var(--display);white-space:nowrap}.brand span{font:600 11px var(--sans);letter-spacing:.35em;color:var(--orchid);margin-left:8px}nav{display:flex;align-items:center;gap:36px}nav>a{font-size:14px}nav>a:hover{color:var(--orchid)}nav .primary{margin-left:65px;color:white}.menu-toggle{display:none;border:0;background:transparent;font-size:26px;color:var(--ink)}.hero{background:radial-gradient(ellipse at 84% 42%,#e795e46b,transparent 53%),radial-gradient(ellipse at 8% 95%,#bdc0eb5c,transparent 55%),linear-gradient(135deg,#f4e8fb,#fce7fb);overflow:hidden}.hero-grid{min-height:650px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:30px;padding-top:75px;padding-bottom:90px}.hero p{font-size:18px;max-width:570px;margin-top:30px;line-height:1.8}.badge{display:inline-block;color:#a25ac4;background:#ffffff91;border:1px solid #e5cdf3;border-radius:40px;padding:5px 17px;font-size:11px;letter-spacing:.2em;margin-bottom:30px}.lotus{position:relative}.lotus:before{content:'';position:absolute;inset:5%;background:#b566d339;filter:blur(50px);border-radius:50%}.lotus img{position:relative;height:auto;transform:scale(1.12)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:55px}.services-grid,.reviews-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.service-card,.article{border:1px solid var(--border);background:white;overflow:hidden;border-radius:30px;box-shadow:0 15px 35px #8369b207}.service-card{display:block;transition:transform .2s}.service-card:hover{transform:translateY(-6px)}.service-card img{aspect-ratio:4/5}.card-copy{padding:25px}.card-copy .eyebrow{font-size:10px;margin-bottom:13px}.service-title{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.service-title h3{font-size:27px}.price{white-space:nowrap;background:#f3e9fc;border-radius:30px;padding:5px 11px;font-size:12px;font-weight:700}.story{background:#f7e0f7}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.story-visual{position:relative;margin-bottom:35px}.story-visual>img{aspect-ratio:1.5;border-radius:48px}.story-visual figcaption{position:absolute;bottom:-35px;right:-15px;background:white;border-radius:30px;padding:24px;width:260px;box-shadow:0 25px 45px #8369b217}.story-visual h3{color:var(--orchid);margin-bottom:10px}.story-visual small{font-size:10px;color:var(--muted)}.story-grid h2{margin-bottom:27px}.story-grid p{margin-bottom:23px}.values{display:flex;gap:28px;justify-content:space-between;border-top:1px solid #d8bee5;margin-top:45px;padding-top:25px;color:#9255b0;font:23px var(--display)}.reviews-grid{margin-top:55px}.review{background:white;border-radius:30px;padding:29px;display:flex;flex-direction:column;gap:25px;box-shadow:0 22px 40px #b566d309}.review:first-child{background:linear-gradient(135deg,var(--purple),var(--orchid));color:white}.review:first-child p{color:white}.quote{font:64px/.8 var(--display);color:#dcb8ef}.review p{font-size:15px;flex:1;line-height:1.85}.review cite{font-style:normal;font-size:13px;font-weight:600}.journal{background:#f7f0fc}.center{text-align:center;margin-bottom:55px}.articles-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.article img{aspect-ratio:1.25}.article .card-copy{padding:28px}.article h3{margin-bottom:24px}.article summary{color:#a357c8;font-weight:600;cursor:pointer}.article details p{margin-top:20px;font-size:14px}.intro{max-width:740px;margin-top:25px;font-size:17px}.booking{border:1px solid var(--border);border-radius:40px;background:white;padding:40px;margin-top:45px}.steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:0 0 35px;padding:0;gap:10px}.steps li{border:1px solid var(--border);border-radius:25px;padding:13px 17px;display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700;color:var(--muted)}.steps li>span{background:#f3e9fc;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:19px}.steps .active{border-color:var(--orchid);background:#f6effa;color:#a357c8}.steps .active>span{background:linear-gradient(120deg,var(--purple),var(--orchid));color:white}fieldset{padding:0;border:0;margin:0;min-width:0}legend{font:36px var(--display);margin-bottom:25px}.choices,.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.choice{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:23px;padding:18px 22px;cursor:pointer}.choice:has(input:checked){background:#f6effa;border-color:var(--orchid)}.choice strong{font-weight:600}.choice small{display:block;color:var(--muted)}input[type=checkbox]{accent-color:var(--purple);width:21px;height:21px}.fields label{display:grid;gap:7px;font-size:13px;color:var(--muted)}.fields input,.fields select,.fields textarea{width:100%;min-width:0;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fcf9ff;color:var(--ink)}.booking-actions{display:flex;gap:15px;margin-top:25px}.booking-message,#booking-message{color:#9142ad;margin-top:20px}#booking-summary p{margin:8px 0}footer{border-top:1px solid var(--border);padding:65px 0 25px}.footer-grid{display:grid;grid-template-columns:1.6fr 1.3fr .8fr 1.2fr;gap:40px}.footer-grid p,.footer-grid a:not(.footer-brand){font-size:13px}.footer-grid>div>a{display:block;margin-bottom:9px;color:var(--muted);overflow-wrap:anywhere}.footer-grid .button{display:inline-flex;margin-top:20px}.footer-brand{display:flex!important;align-items:center;gap:14px;font:25px var(--display);margin-bottom:25px}.footer-brand img{width:55px;height:65px;object-fit:contain}.footer-brand b{display:block;font:600 10px var(--sans);letter-spacing:.35em;color:var(--orchid);margin-top:7px}.social{margin-top:20px}.footer-bottom{border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;margin-top:55px;padding-top:25px;font-size:11px;color:var(--muted)}.skip-link{position:fixed;top:-100px;left:10px;z-index:30;background:white;padding:10px}.skip-link:focus{top:10px}@media(min-width:1600px){.wrap{width:min(1440px,calc(100% - 160px))}.hero-grid{min-height:760px}.section{padding:110px 0}}@media(max-width:1050px){nav{gap:20px}nav .primary{margin-left:10px}.brand{font-size:23px}.brand span{display:block;margin:5px 0}.services-grid,.reviews-grid{grid-template-columns:repeat(2,1fr)}.story-grid{gap:40px}.story-visual figcaption{width:230px}.steps li{letter-spacing:0;padding:10px;gap:6px}.footer-grid{grid-template-columns:1fr 1fr}.values{gap:10px;font-size:20px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.section{padding:60px 0}.header-inner{min-height:72px}.menu-toggle{display:block}nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:25px;box-shadow:0 20px 30px #8369b222}nav.open{display:flex;flex-direction:column;align-items:stretch}nav .primary{margin:0}.hero-grid{grid-template-columns:1fr;padding-top:55px;padding-bottom:45px;gap:35px;min-height:0}.hero p{font-size:15px}.lotus{width:75%;max-width:370px;margin:auto}.lotus img{transform:none}.badge{font-size:9px}h1{font-size:54px}.section-head{display:block;margin-bottom:30px}.section-head>.button{margin-top:22px}.services-grid,.reviews-grid{gap:15px}.card-copy{padding:17px}.service-title{display:block}.service-title h3{font-size:25px}.price{display:inline-block;margin-top:12px}.story-grid{grid-template-columns:1fr;gap:50px}.story-visual>img{border-radius:30px}.story-visual figcaption{right:0;padding:20px;width:220px}.reviews-grid{margin-top:30px}.review{padding:23px;gap:15px}.review p{font-size:13px}.articles-grid{grid-template-columns:1fr}.center{margin-bottom:30px}.booking{padding:22px;border-radius:25px}.steps{grid-template-columns:1fr 1fr;gap:8px}.steps li{font-size:9px}legend{font-size:29px}.choices,.fields{grid-template-columns:1fr}.choice{padding:14px 17px}.footer-grid{gap:35px 20px}.footer-bottom{flex-direction:column;gap:10px}.footer-brand{font-size:22px}.intro{font-size:15px}}@media(max-width:400px){.reviews-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.actions .button{padding:12px 20px;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Allow the large display text to shrink within narrow grid columns. */
.hero-grid>div,.story-grid>div,.footer-grid>div{min-width:0}
@media(max-width:700px){.hero-grid{grid-template-columns:minmax(0,1fr)}h1{font-size:clamp(44px,12.5vw,54px)}.header-inner{gap:12px}.menu-toggle{flex-shrink:0}}

/* Fill the first screen below the navigation, while allowing tall content to grow. */
.hero{width:100%}
.hero-grid{min-height:calc(100vh - 79px);min-height:calc(100svh - 79px)}
.service-title{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.service-title .price{display:inline-block;margin-top:0}
.service-card .card-copy{display:flex;flex-direction:column;align-items:flex-start}
.story-visual figcaption p{margin-bottom:0}

/* Homepage carousels slide inside a clipped viewport, with no scrollbars. */
.carousel{--visible-cards:4;--carousel-gap:24px;min-width:0}
.carousel-viewport{overflow:hidden;padding:12px 6px 32px;margin:0 -6px;touch-action:pan-y pinch-zoom}
.carousel-viewport:focus-visible{outline:3px solid var(--purple);outline-offset:3px;border-radius:12px}
.carousel-track{display:flex;gap:var(--carousel-gap);transition:transform .35s ease;align-items:stretch}
.carousel-track>*{flex:0 0 calc((100% - (var(--visible-cards) - 1)*var(--carousel-gap))/var(--visible-cards));min-width:0}
.reviews-carousel{margin-top:43px}
.carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:8px}
.carousel-controls .button{padding:10px 18px;font-size:20px;line-height:1.3}
.carousel-controls .button:disabled{opacity:.35;cursor:default;transform:none;box-shadow:none}
.carousel-controls [role=status]{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}

/* The same lift, border and shadow apply to every homepage preview card. */
#services-list .service-card,#reviews-list .review,#articles-list .article{border:1px solid var(--border);transition:transform .25s,box-shadow .25s,border-color .25s}
#services-list .service-card:hover,#services-list .service-card:focus-visible,
#reviews-list .review:hover,#reviews-list .review:focus-within,
#articles-list .article:hover,#articles-list .article:focus-within{transform:translateY(-6px);border-color:#ddc6ee;box-shadow:0 18px 32px #8369b225}
#services-list .service-card .card-copy{flex:1}
#services-list .service-card{display:flex;flex-direction:column}
#services-list .service-title{flex:1}
#services-list .service-title .price{margin-top:auto}
@media(max-width:1050px){.carousel{--visible-cards:2}}
@media(max-width:700px){
  .hero-grid{min-height:calc(100vh - 73px);min-height:calc(100svh - 73px)}
  .carousel{--visible-cards:1;--carousel-gap:15px}
  .reviews-carousel{margin-top:18px}
  .carousel-controls{justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  #services-list .service-card:hover,#services-list .service-card:focus-visible,
  #reviews-list .review:hover,#reviews-list .review:focus-within,
  #articles-list .article:hover,#articles-list .article:focus-within{transform:none}
}

/* Language controls share the navigation on desktop and mobile. */
.language-switcher{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:12px}
.language-switcher button{border:0;background:transparent;color:var(--muted);padding:8px 3px;font:600 12px var(--sans);letter-spacing:.08em}
.language-switcher button[aria-pressed="true"]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}
.language-switcher>span{color:var(--border)}
nav .primary{margin-left:15px}
@media(min-width:701px) and (max-width:1050px){nav{gap:14px}nav .primary{margin-left:0;padding:11px 16px}.header-inner{gap:18px}}
@media(max-width:700px){nav .primary{margin-left:0}.language-switcher{justify-content:center;padding-top:8px}}
