:root { --brand:#873f54; --brand-dark:#632c3d; --brand-ink:#632c3d; --brand-soft:#f4e5e9; --line:#e9dce1; --paper:#fffbfc; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { background:var(--paper); color:#342930; }
:focus-visible { outline:3px solid #a85570; outline-offset:4px; }
a,button,input,textarea,select { -webkit-tap-highlight-color:transparent; }
input,textarea,select { accent-color:var(--brand); }
input:focus,textarea:focus,select:focus { border-color:var(--brand); }
button:disabled { cursor:not-allowed; }
.btn-brand { background:var(--brand); box-shadow:0 7px 18px -12px #632c3d; }
.btn-brand:hover { background:var(--brand-dark); box-shadow:0 10px 22px -12px #632c3d; }
.text-stone-400 { color:#82727a; }
body > header { border-color:var(--line); background:rgba(255,251,252,.95); }
body > header > div { min-height:88px; }
body > header nav a { white-space:nowrap; }
body > header img { mix-blend-mode:multiply; }
.site-hero-wrap { position:relative; isolation:isolate; min-height:0; padding-bottom:28px; overflow:hidden; }
.site-hero-wrap::before { content:''; z-index:-1; position:absolute; width:49%; height:78%; right:-7%; top:0; background:#f4e5e9; border-radius:0 0 0 180px; }
.site-hero { width:100%; max-width:1200px; padding-top:100px; padding-bottom:84px; }
.site-hero h1 { font-size:clamp(3.2rem,5.7vw,5.1rem); line-height:1.08; font-weight:500; letter-spacing:-.045em; color:#422633; }
.site-hero h1 em { color:#a75c73; font-weight:400; }
.site-hero .eyebrow { color:#875465; letter-spacing:.18em; }
.hero-checklist { padding:34px 30px 30px; border-radius:6px 6px 42px 6px; border-color:#e4cdd5; box-shadow:12px 18px 0 -3px #e6c6d0, 0 26px 54px -30px #632c3d70; max-width:360px; }
.hero-checklist::before { background:#dbb2c0aa; }
.hero-checklist-task { font-size:1.03rem; }
.hero-checklist-message { font-size:1.65rem; }
.trust-strip { max-width:1150px; width:100%; padding-top:32px; padding-bottom:32px; }
.trust-strip .grid > div { padding:0 24px; }
.trust-strip .grid > div + div { border-left:1px solid var(--line); }
.trust-strip .display { font-size:1.35rem; color:#632c3d; }
#avis { background:#f5eef1 !important; padding-top:90px; padding-bottom:90px; }
#avis h2 { font-weight:500; letter-spacing:-.035em; }
.review-card { border-color:#e7d5dd !important; border-radius:24px 24px 24px 5px; box-shadow:0 12px 28px -24px #632c3d; }
#services { background:#432936; padding-top:90px; padding-bottom:90px; }
#services .eyebrow { color:#d9b9c5; }
#services > div > p:not(.eyebrow) { color:#d4c1ca; }
#services h2 { font-weight:500; font-size:clamp(2rem,3.3vw,3rem); letter-spacing:-.025em; }
#services-grid > div { background:#fffafb; border:0; border-radius:22px; padding:30px; }
#services-grid h3 { font-size:1.55rem; color:#632c3d; }
#services-grid > div:hover { box-shadow:0 18px 36px -22px #1b1018; }
#book { background:#fbf7f9; padding-top:90px; padding-bottom:90px; }
.booking-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:48px; max-width:1160px; }
.booking-main { min-width:0; }
.booking-main > h2 { font-size:clamp(2rem,3.3vw,3rem); font-weight:500; letter-spacing:-.03em; }
#booking-form > div { padding:26px; background:white; border:1px solid var(--line); border-radius:24px; }
#booking-form > div:last-child { background:transparent; border:0; padding:0; }
#booking-form { --tw-space-y-reverse:0; }
#booking-form > :not([hidden]) ~ :not([hidden]) { margin-top:24px; }
#booking-form h3 { color:#632c3d; }
#service-pick button { background:#fff; border-color:#e6d7de; padding:16px; text-align:left; border-radius:14px; }
#service-pick button.selected { background:#f8eef2; border-color:#a46179; box-shadow:0 0 0 1px #a46179; }
#booking-calendar { max-width:none; width:100%; box-shadow:none; border-color:var(--line); }
.calendar-day { min-height:3.1rem; }
.booking-aside { align-self:start; position:sticky; top:120px; background:#f0e0e7; border-radius:100px 100px 22px 22px; padding:50px 26px 28px; text-align:center; }
.booking-aside svg { width:38px; height:38px; margin:0 auto 20px; color:#96576d; }
.booking-aside h3 { font-size:1.65rem; line-height:1.2; color:#632c3d; }
.booking-aside p { font-size:.94rem; line-height:1.65; color:#725462; }
.booking-recap { text-align:left; margin:24px 0; border-top:1px solid #d8bdc9; border-bottom:1px solid #d8bdc9; padding:16px 0; }
.booking-recap > div { padding:8px 0; }
.booking-recap dt { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:#8b6274; }
.booking-recap dd { margin-top:4px; color:#432936; font-weight:500; }
.booking-aside a { color:#632c3d; text-underline-offset:4px; }
.portal-note { background:#f2e4eb; padding:22px; border-radius:20px; margin-bottom:24px; }
.portal-note h1 { font-size:clamp(1.8rem,4vw,2.5rem); font-weight:500; color:#632c3d; }
.portal-page { background:#faf7f9; }
.portal-page main { padding-top:42px; }
.portal-page #account-view > div:first-child { padding:10px 0 20px; border-bottom:1px solid var(--line); }
.portal-page #hello { font-size:2.5rem; color:#632c3d; font-weight:500; }
.portal-page .border-stone-200 { border-color:var(--line); }
.portal-page .rounded-xl { border-radius:18px; }
.portal-page .rounded-2xl { border-radius:24px; }
.portal-page #auth-view, .portal-page #auth-screen > div { box-shadow:0 20px 70px -40px #632c3d; border-color:var(--line); }
.portal-page #auth-screen { background:radial-gradient(ellipse at 15% 20%,#f0dce5,transparent 60%); }
.portal-page .tab { min-height:52px; padding-left:10px; padding-right:10px; }
.portal-page .tab-active { color:var(--brand-ink); border-color:var(--brand); }
.portal-page #dashboard > header { background:#fffafb; border-color:var(--line); }
.portal-page #dashboard > header img { mix-blend-mode:multiply; }
.portal-page #dashboard main { max-width:1160px; }
.portal-page button:not(.mz-thread):not(.mz-back) { min-height:42px; }
.portal-page input, .portal-page textarea, .portal-page select { font-size:16px; }
body > footer { background:#32222c; border-color:#624453; }
body > footer .text-stone-400, body > footer .text-stone-500 { color:#c1abb7; }
body > footer .border-stone-800 { border-color:#624453; }
.site-faq { max-width:850px; margin:0 auto; padding:80px 24px; }
.site-faq h2 { color:#632c3d; font-size:2.4rem; margin-bottom:28px; text-align:center; }
.site-faq details { border-top:1px solid var(--line); padding:22px 0; }
.site-faq summary { cursor:pointer; font-size:1.08rem; font-weight:500; }
.site-faq details p { padding:16px 0 0; color:#756470; max-width:660px; line-height:1.7; }
@media(max-width:900px) {
 .booking-layout { grid-template-columns:minmax(0,1fr); max-width:760px; }
 .booking-aside { position:static; border-radius:24px; padding:28px; }
 .booking-aside svg { display:none; }
 .site-hero { padding-top:65px; padding-bottom:65px; }
}
@media(max-width:640px) {
 body > header > div { min-height:78px; gap:10px; padding-left:16px; padding-right:16px; }
 body > header img { max-width:140px; height:auto; }
 body > header nav { gap:12px; font-size:12px; }
 body > header .btn-brand { padding:10px 13px; }
 .site-hero { padding-top:42px; padding-bottom:54px; }
 .site-hero h1 { font-size:3.15rem; }
 .site-hero p.text-lg { font-size:1rem; }
 .site-hero-wrap::before { width:95%; height:52%; top:43%; right:-30%; border-radius:160px 0 0 0; }
 .hero-checklist { max-width:315px; }
 .trust-strip .grid { gap:20px; }
 .trust-strip .grid > div + div { border-left:0; }
 #services,#avis,#book { padding-top:58px; padding-bottom:58px; }
 #booking-form > div { padding:20px 16px; border-radius:20px; }
 .calendar-day { min-height:2.75rem; font-size:14px; }
 #booking-calendar { padding:10px; }
 #booking-cal-title { font-size:1rem; }
 .site-faq { padding-top:55px; padding-bottom:55px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none !important; transition:none !important; }
}
