:root{--ink:#191416;--text:#483e40;--muted:#6e5f62;--rose:#d97785;--rose-dark:#af4f61;--rose-soft:#f9e5e4;--rose-pale:#fff2f0;--ivory:#fffaf7;--white:#fff;--border:#efd9d5;--shadow:0 20px 70px rgba(84,41,45,.09)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 1rem/1.7 "Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
:focus-visible{outline:3px solid var(--rose-dark);outline-offset:4px}
::selection{background:#f2b5bd;color:var(--ink)}
.container{width:min(100% - 3rem,1240px);margin-inline:auto}
.skip-link{position:absolute;z-index:50;top:-100px;left:1rem;padding:.7rem 1rem;background:var(--ink);color:var(--white)}
.skip-link:focus{top:1rem}
.site-header{position:relative;z-index:20;background:rgba(255,250,247,.96);border-bottom:1px solid var(--border)}
.header-inner{height:108px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand,.footer-brand{width:190px;height:90px;flex:none;display:block;position:relative;overflow:hidden}
.brand img,.footer-brand img{position:absolute;width:190px;height:190px;max-width:none;left:0;top:-45px}
.site-nav{display:flex;align-items:center;gap:clamp(1rem,2.1vw,2rem)}
.site-nav>a:not(.nav-cta){font-size:.92rem;font-weight:700;transition:color .18s}
.site-nav>a:hover,.site-nav>a.current{color:var(--rose-dark)}
.nav-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:50px;border-radius:100px;font-size:.94rem;font-weight:750;line-height:1.25;transition:transform .2s,background .2s,color .2s,box-shadow .2s;text-align:center}
.nav-cta{padding:.9rem 1.35rem;background:var(--rose);color:var(--white)}
.nav-cta:hover,.button:hover{transform:translateY(-2px)}
.nav-cta:hover,.button-primary:hover{background:var(--rose-dark);box-shadow:0 10px 28px rgba(175,79,97,.18)}
.menu-toggle{display:none}
.hero{min-height:670px;display:grid;grid-template-columns:52% 48%;align-items:stretch;padding-top:3.25rem;padding-bottom:4.5rem}
.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:3.5rem 2.2rem 3.5rem 0}
h1,h2,h3,p{overflow-wrap:break-word}
h1,h2,h3{margin:0;line-height:1.12}
h1{max-width:740px;font-family:"Arial Narrow","Franklin Gothic Medium",Impact,"Segoe UI",sans-serif;font-size:clamp(3.25rem,5vw,5.65rem);font-weight:900;letter-spacing:-.045em;text-transform:uppercase;line-height:.99}
h1 em{font-style:normal;color:var(--rose-dark)}
.hero-lede{max-width:510px;margin:1.7rem 0 2rem;color:var(--text);font-size:1.12rem;line-height:1.7}
.button-row{display:flex;align-items:center;gap:1.35rem;flex-wrap:wrap}
.button{padding:.95rem 1.45rem}
.button-primary{background:var(--rose);color:white}
.button-text{padding-left:.3rem;padding-right:.3rem;color:var(--ink)}
.button-text:hover{color:var(--rose-dark)}
.hero-visual{position:relative;min-width:0;padding-left:1.1rem}
.hero-photo{height:100%;min-height:560px;background:#efe0d6 url('/assets/hero-soin-visage.webp') center/cover no-repeat;border-radius:45% 28px 28px 45% / 37% 28px 28px 43%;box-shadow:-12px 0 0 #f6c9cc}
.hero-sticker{position:absolute;right:-.5rem;bottom:1.55rem;background:rgba(255,250,247,.97);border:1px solid var(--border);border-radius:100px;padding:.65rem 1.1rem;font-size:.84rem;font-weight:750;box-shadow:var(--shadow)}
.hero-sticker span{color:var(--rose-dark);padding-inline:.25rem}
.intro-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff5f1}
.intro-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.intro-grid>div{position:relative;padding:2.1rem 2rem 2.2rem 0}
.intro-grid>div+div{padding-left:2rem;border-left:1px solid #edd4d0}
.intro-grid h2{margin:0 0 .35rem;font-size:1.18rem}
.intro-grid p{margin:0;color:var(--text);font-size:.94rem;line-height:1.55}
.section{padding-top:6.5rem;padding-bottom:7rem}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.35rem}
.section-heading h2,.home-meeting h2,.ritual-inner h2,.page-intro h1,.about-copy h2,.contact-heading h1{font-family:"Arial Narrow","Franklin Gothic Medium",Impact,"Segoe UI",sans-serif;font-weight:850;letter-spacing:-.025em}
.section-heading h2,.home-meeting h2,.ritual-inner h2,.about-copy h2{font-size:clamp(2.3rem,4vw,4.05rem);line-height:1.06}
.text-link{white-space:nowrap;font-weight:750;color:var(--rose-dark);border-bottom:1px solid currentColor;padding-bottom:.25rem;transition:color .2s}
.text-link:hover{color:var(--ink)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.service-card{min-height:290px;display:flex;flex-direction:column;align-items:flex-start;padding:1.55rem;background:#fff;border:1px solid var(--border);border-radius:20px;transition:transform .2s,box-shadow .2s,border-color .2s}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#e5a7ae}
.service-card:nth-child(2),.service-card:nth-child(4){background:#fff5f2}
.service-card h3{margin:2rem 0 .7rem;font-size:1.55rem;line-height:1.16}
.service-card p{margin:0 0 1.3rem;color:var(--text);font-size:.96rem;line-height:1.6}
.service-action{margin-top:auto;color:var(--rose-dark);font-size:.9rem;font-weight:800}
.ritual-feature{background:#d9828d;color:var(--ink)}
.ritual-inner{display:grid;grid-template-columns:1.4fr .75fr;gap:clamp(2rem,6vw,7rem);align-items:center;padding-block:5rem}
.ritual-inner h2{max-width:680px}
.ritual-inner p{max-width:550px;font-size:1.08rem;line-height:1.7}
.ritual-offer{padding:2.2rem;background:var(--ivory);border-radius:24px;box-shadow:var(--shadow)}
.ritual-offer>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--border)}
.ritual-offer>div span{font-size:1.15rem}.ritual-offer strong{font-size:2.2rem;line-height:1.25}
.button-light{width:100%;margin-top:1.65rem;background:var(--ink);color:white}
.button-light:hover{background:var(--rose-dark)}
.home-meeting{display:grid;grid-template-columns:1fr .75fr;gap:8vw;align-items:center}
.home-meeting p{max-width:580px;color:var(--text);font-size:1.05rem;margin:1.3rem 0 1.8rem}
.meeting-note{min-height:300px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:3rem 2.5rem;text-align:center;border:1px solid var(--border);border-radius:47% 47% 24px 24px / 37% 37% 24px 24px;background:var(--rose-pale)}
.meeting-note p{margin:0 0 1.4rem!important;color:var(--ink)!important;font:italic clamp(1.7rem,2.8vw,2.6rem)/1.25 Georgia,serif!important}
.meeting-note span{color:var(--rose-dark);font-size:.88rem;font-weight:800}
.site-footer{background:#f7e4e0;border-top:1px solid var(--border)}
.footer-top{display:grid;grid-template-columns:1.5fr .75fr 1fr;gap:2rem;padding-top:3rem;padding-bottom:3rem}
.footer-brand{width:170px;height:86px;margin-left:-.3rem}.footer-brand img{width:170px;height:170px;top:-40px}
.footer-top p{max-width:285px;margin:.65rem 0 0;color:var(--text);font-size:.94rem}
.footer-top h2{font-size:.95rem;margin:1.2rem 0 1rem}
.footer-top a:not(.footer-brand){display:block;width:max-content;max-width:100%;margin-bottom:.45rem;font-size:.93rem}
.footer-top a:hover{color:var(--rose-dark)}
.footer-top .footer-phone{font-size:1.4rem!important;font-weight:800}
.footer-bottom{border-top:1px solid #eacbc6;display:flex;justify-content:space-between;gap:1rem;padding-block:1rem;font-size:.8rem;color:var(--muted)}

/* Inner pages */
.page-intro{padding-top:5rem;padding-bottom:4rem}
.page-intro h1,.contact-heading h1{max-width:820px;font-size:clamp(3.25rem,6vw,6rem);line-height:1.01}
.page-intro p{max-width:730px;margin:1.4rem 0 0;color:var(--text);font-size:1.12rem}
.page-intro.pink{background:#fff2ef;border-bottom:1px solid var(--border)}
.category-nav{display:flex;flex-wrap:wrap;gap:.65rem;padding-top:2rem;padding-bottom:2rem}
.category-nav a{padding:.55rem 1rem;border:1px solid #e7c3c1;border-radius:100px;background:white;font-size:.86rem;font-weight:750;transition:background .2s,color .2s}
.category-nav a:hover{background:var(--rose);color:white}
.pricing-content{padding-bottom:6rem}
.price-section{padding-top:3.6rem;padding-bottom:3.5rem;border-top:1px solid var(--border);scroll-margin-top:1.5rem}
.price-section h2{font-family:"Arial Narrow",Impact,sans-serif;text-transform:uppercase;font-size:clamp(2.2rem,3.3vw,3.45rem);letter-spacing:-.025em;margin-bottom:1.8rem}
.price-section h2::before{content:"";display:block;width:48px;height:4px;background:var(--rose);margin-bottom:1rem;border-radius:4px}
.price-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:2rem;align-items:start}
.price-grid.two-equal{grid-template-columns:1fr 1fr}
.price-panel{padding:2rem;background:white;border:1px solid var(--border);border-radius:22px}
.price-panel.tinted{background:#fff2ef}
.price-panel h3{margin:0 0 1.2rem;font-size:1.3rem}
.price-panel>p{margin:0 0 1.5rem;color:var(--text);font-size:.95rem;line-height:1.6}
.price-list{margin:0}
.price-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.64rem 0;border-bottom:1px solid #f1e6e2}
.price-list>div:last-child{border-bottom:0}
.price-list dt{font-size:.97rem;line-height:1.45}
.price-list dd{margin:0;white-space:nowrap;font-size:1.04rem;font-weight:850;color:var(--ink)}
.price-list .featured dd{color:var(--rose-dark)}
.price-list .featured dt{font-weight:750}
.price-panel .small-note{font-size:.88rem;color:var(--muted);margin:1rem 0 0}
.addon{margin-top:1.6rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.addon-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.addon-title h3{margin:0}.addon-title strong{color:var(--rose-dark);font-size:1.35rem}
.addon p{margin:.55rem 0 0;color:var(--text);font-size:.95rem}
.addon .condition{margin-top:.6rem;color:var(--rose-dark);font-weight:750;font-size:.85rem}
.ritual-price{display:block;margin:0 0 .65rem;font-size:1.24rem;font-weight:800;color:var(--rose-dark)}
#rituels .price-panel h3{margin-bottom:.5rem}
.ritual-addon-note{margin:1.35rem 0 0;padding:1rem 1.2rem;border-left:3px solid var(--rose-dark);border-radius:0 10px 10px 0;background:#fff2ef;color:var(--text);font-weight:700;line-height:1.55}
.travel-box{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:start;margin-top:2.6rem;padding:2.4rem;background:#f9e5e1;border-radius:24px}
.travel-box h2{font-size:2.05rem;line-height:1.12;margin:.35rem 0 0}
.travel-box p{margin:.15rem 0 1rem;color:var(--text)}
.travel-box p:last-child{margin-bottom:0}
.travel-box strong{color:var(--ink)}
.pricing-bottom{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:2rem;color:var(--text)}
.pricing-bottom p{margin:0;font-size:.9rem}
.about-section{display:grid;grid-template-columns:1fr .9fr;gap:5rem;align-items:center;padding-top:5.5rem;padding-bottom:6rem}
.about-copy h2{max-width:650px;margin-bottom:1.5rem}
.about-copy p{max-width:630px;color:var(--text);font-size:1.08rem;margin:0 0 1.15rem}
.about-values{background:#fff2ef;padding-block:5rem}
.about-values-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;margin-top:2.1rem}
.about-values-grid>div{border-top:2px solid var(--rose);padding-top:1rem}
.about-values-grid h3{font-size:1.2rem}.about-values-grid p{margin:.45rem 0 0;color:var(--text);font-size:.97rem}
.about-values .section-heading{margin-bottom:0}
.about-cta{text-align:center;padding-block:5rem}.about-cta h2{font-size:clamp(2.3rem,4vw,4rem)}.about-cta p{max-width:580px;margin:1rem auto 1.6rem;color:var(--text)}
.contact-page{padding-top:5rem;padding-bottom:6rem}
.contact-heading p{max-width:650px;color:var(--text);font-size:1.12rem;margin:1.3rem 0 0}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1.6rem;margin-top:3rem}
.contact-card{padding:2.5rem;border:1px solid var(--border);border-radius:24px;background:white}
.contact-card.primary{background:var(--rose-pale)}
.contact-card h2{font-size:1.75rem;line-height:1.2;margin-bottom:.9rem}
.contact-card p{color:var(--text);margin:.5rem 0 1.3rem}
.contact-number{display:block;width:max-content;max-width:100%;font-size:clamp(1.7rem,3.4vw,2.8rem);font-weight:900;line-height:1.25;margin:1.5rem 0;letter-spacing:-.025em}
.contact-number:hover{color:var(--rose-dark)}
.contact-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.contact-actions .button{min-width:140px}
.contact-card .line{border-top:1px solid var(--border);padding-top:1.1rem;margin-top:1.5rem}
.contact-info-list{margin:1.4rem 0 0;padding:0;list-style:none}
.contact-info-list li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding:.75rem 0}
.contact-info-list strong{font-weight:800;text-align:right}
.contact-info-list li:last-child{border-bottom:0}
.contact-tip{margin-top:1.5rem;padding:1.6rem 1.9rem;background:#f9e5e1;border-radius:20px;color:var(--text)}
.contact-tip strong{color:var(--ink)}

/* Editorial rhythm and small interactions */
.site-header{position:sticky;top:0;background:rgba(255,250,247,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:box-shadow .25s ease}
.site-header.is-scrolled{box-shadow:0 10px 30px rgba(84,41,45,.08)}
.nav-cta,.button-primary{background:var(--rose-dark);color:#fff}
.nav-cta:hover,.button-primary:hover{background:#85374b;box-shadow:0 10px 28px rgba(133,55,75,.18)}
.button:active,.nav-cta:active{transform:translateY(0) scale(.98)}
.hero-sticker{font-weight:800}
.intro-grid>div{transition:background .25s ease}
.intro-grid>div:hover{background:rgba(255,255,255,.35)}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem}
.service-card,.service-card:nth-child(2),.service-card:nth-child(4){position:relative;min-height:238px;padding:1.5rem 4.5rem 1.5rem 1rem;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none;transition:background .3s,border-color .3s}
.service-card:hover{transform:none;background:linear-gradient(90deg,#fff0ed,transparent)!important;border-color:var(--rose);box-shadow:none}
.service-card h3{margin:2rem 0 .6rem;font-size:clamp(1.65rem,2.5vw,2.3rem)}
.service-card p{max-width:420px}
.service-price{position:absolute;top:1.25rem;right:1rem;color:var(--rose-dark);font-size:.96rem;font-weight:850;white-space:nowrap}
.service-action span{display:inline-block;transition:transform .25s ease}
.service-card:hover .service-action span,.service-card:focus-visible .service-action span{transform:translate(4px,-4px)}
.meeting-note strong{color:var(--rose-dark);font-family:"Arial Narrow",Impact,sans-serif;font-size:clamp(4.3rem,7vw,6.5rem);line-height:1;letter-spacing:-.04em}
.meeting-note p{max-width:300px;margin:.4rem 0 1.1rem!important;color:var(--ink)!important;font:750 clamp(1.25rem,2.2vw,1.65rem)/1.3 "Avenir Next","Segoe UI",Arial,sans-serif!important}
.meeting-note span{font-size:.82rem}
.category-wrap{position:sticky;top:108px;z-index:15;background:rgba(255,250,247,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.category-nav{padding-top:.9rem;padding-bottom:.9rem}
.category-nav a:hover{background:var(--rose-dark);border-color:var(--rose-dark)}
.category-nav a.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.price-section,#deplacement{scroll-margin-top:190px}
.price-list>div{transition:background .2s ease}
.price-list>div:hover{background:#fff3f0}
.copy-number{border:0;border-bottom:1px solid currentColor;padding:0 0 .15rem;background:transparent;color:var(--rose-dark);font-size:.95rem;font-weight:800;cursor:pointer}
.copy-number:hover{color:var(--ink)}
.copy-feedback{display:block;min-height:1.4rem;margin:.35rem 0;color:var(--rose-dark);font-size:.85rem}
@keyframes softRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes photoAppear{from{opacity:.4;transform:translateX(18px) scale(.985)}to{opacity:1;transform:translateX(0) scale(1)}}
@media(prefers-reduced-motion:no-preference){
  .hero-copy>*{animation:softRise .7s cubic-bezier(.2,.75,.25,1) both}
  .hero-copy>*:nth-child(2){animation-delay:.09s}
  .hero-copy>*:nth-child(3){animation-delay:.17s}
  .hero-photo{animation:photoAppear .85s cubic-bezier(.2,.75,.25,1) both}
  .page-intro>.container,.contact-heading{animation:softRise .65s cubic-bezier(.2,.75,.25,1) both}
}
@media(max-width:1060px){.header-inner{height:98px}.site-nav{gap:.75rem}.site-nav>a:not(.nav-cta){font-size:.82rem}.nav-cta{padding:.8rem 1rem;font-size:.82rem}.brand{width:170px}.brand img{width:170px;height:170px;top:-40px}.hero{grid-template-columns:54% 46%}.hero-copy{padding-right:1.5rem}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card{min-height:245px}.service-card h3{margin-top:1.4rem}}
@media(max-width:780px){.container{width:min(100% - 2.25rem,650px)}.header-inner{height:82px}.brand{width:160px;height:80px}.brand img{width:160px;height:160px;top:-37px}.menu-toggle{width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid var(--border);border-radius:50%;background:var(--white);cursor:pointer}.menu-toggle span{display:block;width:20px;height:2px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}.site-nav{display:none;position:absolute;top:82px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:1rem max(1.125rem,calc((100% - 650px)/2)) 1.4rem;background:var(--ivory);border-bottom:1px solid var(--border);box-shadow:0 18px 30px rgba(55,26,28,.08)}.site-nav.open{display:flex}.site-nav>a:not(.nav-cta){padding:.75rem .25rem;font-size:1rem;border-bottom:1px solid var(--border)}.site-nav .nav-cta{margin-top:1rem}.hero{display:flex;flex-direction:column;padding-top:2rem;padding-bottom:3.5rem;min-height:0}.hero-copy{padding:1rem 0 2.5rem}.hero h1{font-size:clamp(3.15rem,9vw,5rem)}.hero-lede{margin:1.25rem 0 1.5rem}.hero-visual{padding-left:0}.hero-photo{height:390px;min-height:0;border-radius:170px 170px 22px 22px;box-shadow:9px 9px 0 #f6c9cc;background-position:center}.hero-sticker{right:1rem;bottom:1rem}.intro-grid{grid-template-columns:1fr}.intro-grid>div,.intro-grid>div+div{padding:1.3rem 0;border-left:0}.intro-grid>div+div{border-top:1px solid var(--border)}.section{padding-block:4rem}.section-heading{align-items:start;flex-direction:column;gap:1.1rem}.ritual-inner,.home-meeting,.about-section,.contact-grid{grid-template-columns:1fr}.ritual-inner{padding-block:4rem}.home-meeting{gap:2rem}.footer-top{grid-template-columns:1fr 1fr}.footer-top>div:first-child{grid-column:1/-1}.price-grid,.price-grid.two-equal{grid-template-columns:1fr}.price-section{padding-block:2.8rem}.page-intro{padding-block:3.7rem}.about-section{gap:2.2rem;padding-block:4rem}.about-values-grid{grid-template-columns:1fr}.about-values-grid>div{padding-top:.85rem}.contact-page{padding-block:3.7rem 4.5rem}.contact-grid{margin-top:2rem}.travel-box{grid-template-columns:1fr;gap:.8rem}}
@media(max-width:520px){.container{width:calc(100% - 2rem)}.hero h1{font-size:clamp(3.05rem,11vw,4.3rem)}.hero-photo{height:335px}.hero-sticker{font-size:.75rem;right:.4rem;bottom:.7rem}.button-row{align-items:stretch;gap:.5rem}.button-row .button-primary{width:100%}.service-grid{grid-template-columns:1fr}.service-card{min-height:210px}.service-card h3{margin-top:1rem}.ritual-offer{padding:1.5rem}.meeting-note{min-height:250px}.footer-top{grid-template-columns:1fr;gap:1.1rem}.footer-top>div:first-child{grid-column:auto}.footer-top h2{margin:.6rem 0}.footer-bottom{flex-direction:column;gap:.2rem}.page-intro h1,.contact-heading h1{font-size:clamp(2.9rem,10vw,4rem)}.category-nav{gap:.45rem}.category-nav a{font-size:.8rem;padding:.5rem .8rem}.price-panel{padding:1.3rem}.price-section h2{font-size:2.3rem}.pricing-bottom{align-items:start;flex-direction:column}.travel-box{padding:1.5rem}.contact-card{padding:1.5rem}.contact-info-list li{flex-direction:column;gap:0}.contact-info-list strong{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:1060px){.category-wrap{top:98px}}
@media(max-width:780px){.category-wrap{top:82px}.category-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.category-nav::-webkit-scrollbar{display:none}.category-nav a{flex:none}.price-section,#deplacement{scroll-margin-top:160px}}
@media(max-width:520px){.service-grid{grid-template-columns:1fr}.service-card,.service-card:nth-child(2),.service-card:nth-child(4){min-height:218px;padding-right:1rem}.service-card h3{margin-top:2rem}.service-price{right:.4rem}.contact-actions .button{flex:1 1 130px}.meeting-note{min-height:235px}}
@media(min-width:781px) and (max-width:1060px){.site-nav>a:not(.nav-cta){font-size:.875rem}.nav-cta{font-size:.875rem}}

/* A calmer hierarchy, with the original hand-lettered logo kept intact. */
.brand{width:236px;height:94px}
.brand img{width:236px;height:236px;top:-71px}
.footer-brand{width:200px;height:84px}
.footer-brand img{width:200px;height:200px;top:-60px}
h1,.page-intro h1,.contact-heading h1{font-family:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;font-weight:800;text-transform:none;letter-spacing:-.055em;line-height:1.05}
h1{font-size:clamp(3.25rem,5vw,5.35rem)}
.page-intro h1,.contact-heading h1{font-size:clamp(3.1rem,5vw,5.15rem)}
h1 em,.about-copy h2 em{color:var(--rose-dark);font-family:Georgia,"Times New Roman",serif;font-weight:400;font-style:italic;letter-spacing:-.055em}
.section-heading h2,.home-meeting h2,.ritual-inner h2,.about-copy h2,.about-cta h2{font-family:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;font-weight:800;letter-spacing:-.045em}
.section-heading h2,.home-meeting h2,.ritual-inner h2,.about-copy h2{font-size:clamp(2.25rem,3.7vw,3.6rem)}
.text-link{display:inline-flex;align-items:center;min-height:40px;white-space:normal}
.intro-link,.service-booking,.meeting-details-link{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;color:var(--rose-dark);font-weight:800;border-bottom:1px solid currentColor;transition:color .2s,gap .2s}
.intro-link{margin-top:1.35rem}
.service-booking{margin-top:1.35rem}
.intro-link:hover,.service-booking:hover,.meeting-details-link:hover{color:var(--ink);gap:.85rem}
.category-nav a{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1.05rem}
.meeting-note{gap:.15rem}
.meeting-note .meeting-note-kicker{color:var(--ink);font-size:1rem;font-weight:750;line-height:1.35}
.meeting-note .note-example{display:block;max-width:260px;margin:0 0 .8rem;color:var(--text);font-size:.88rem;font-weight:650;line-height:1.45}
.meeting-note p{margin:.25rem 0 .3rem!important}
.meeting-details-link{font-size:.9rem}
.about-intro{position:relative;overflow:hidden}
.about-intro::after{content:"";position:absolute;right:-12vw;bottom:-15vw;width:38vw;height:38vw;border:1px solid #e7c6c4;border-radius:50%;pointer-events:none;opacity:.75}
.about-intro .container{position:relative;z-index:1}
.about-section{grid-template-columns:minmax(0,1fr) minmax(0,.88fr);gap:clamp(2rem,6vw,6rem)}
.about-copy p{font-size:1.04rem;line-height:1.75}
.about-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.7rem}
.about-portrait{position:relative;min-width:0;margin:0;padding:0 14px 14px 0}
.about-portrait img{width:100%;height:clamp(500px,55vw,680px);object-fit:cover;object-position:center 20%;border-radius:46% 46% 22px 22px / 26% 26% 22px 22px;box-shadow:14px 14px 0 #f1bfc5;transition:transform .6s cubic-bezier(.2,.75,.25,1)}
.about-portrait:hover img{transform:translateY(-4px)}
.about-portrait figcaption{position:absolute;bottom:0;right:0;max-width:86%;padding:.85rem 1.25rem;background:rgba(255,250,247,.97);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);line-height:1.35}
.about-portrait figcaption strong{display:block;font-size:1.18rem}
.about-portrait figcaption span{display:block;margin-top:.2rem;color:var(--muted);font-size:.79rem}
.about-values-grid>div{padding:1.1rem 1.1rem 0 0}
.about-values-grid h3{margin:.25rem 0 .4rem;font-size:1.32rem}
.about-values-grid p{line-height:1.65}
.contact-card{transition:box-shadow .25s,transform .25s}
.contact-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.contact-guide{color:var(--text);line-height:1.55}
.contact-guide strong{color:var(--ink)}
.contact-guide ul{margin:.65rem 0 0;padding-left:1.2rem}
.contact-guide li+li{margin-top:.25rem}
.copy-number{min-height:38px;padding:.3rem 0}
.contact-tip{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:1.8rem;padding:2.2rem 2.5rem}
.contact-tip h2{margin:.2rem 0 .45rem;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.2;color:var(--ink)}
.contact-tip p{margin:0;max-width:570px;line-height:1.6}
.contact-tip .button{flex:none}
@media(max-width:1060px){.brand{width:210px;height:84px}.brand img{width:210px;height:210px;top:-63px}}
@media(max-width:780px){
  .brand{width:190px;height:76px}.brand img{width:190px;height:190px;top:-57px}
  .hero h1{font-size:clamp(3rem,8.4vw,4.65rem)}
  .category-wrap{position:relative;top:auto;backdrop-filter:none;-webkit-backdrop-filter:none}
  .category-nav{flex-wrap:wrap;overflow:visible;scrollbar-width:auto}
  .category-nav a{flex:auto;justify-content:center;font-size:.84rem;text-align:center}
  .price-section,#deplacement{scroll-margin-top:98px}
  .about-section{grid-template-columns:1fr;gap:2.2rem}
  .about-copy{order:2}.about-portrait{order:1;width:min(100%,530px);margin-inline:auto}
  .about-portrait img{height:clamp(420px,110vw,610px)}
  .contact-tip{flex-direction:column;align-items:flex-start}
}
@media(max-width:520px){
  .hero h1{font-size:clamp(2.65rem,10vw,3.8rem)}
  .page-intro h1,.contact-heading h1{font-size:clamp(2.65rem,10vw,3.8rem)}
  .about-portrait img{height:clamp(400px,115vw,510px)}
  .about-portrait figcaption{padding:.7rem 1rem}
  .contact-tip{padding:1.65rem}
  .contact-tip .button{width:100%}
  .category-nav{gap:.5rem}
  .category-nav a{padding:.5rem .7rem}
}
@media(prefers-reduced-motion:reduce){.about-portrait img{transition:none}}

/* The Google reviews panel keeps its editorial shape with or without a live feed. */
.reviews-section{padding:5.5rem 0;background:#fff5f1;border-block:1px solid var(--border)}
.reviews-top{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem}
.reviews-top>div:first-child{max-width:680px}
.reviews-top h2{font-size:clamp(2.35rem,4vw,4.2rem);font-weight:800;letter-spacing:-.045em;line-height:1.08}
.reviews-top h2 em{font:italic 400 1em/1 Georgia,"Times New Roman",serif;color:var(--rose-dark);letter-spacing:-.05em}
.reviews-top p{max-width:550px;margin:1rem 0 0;color:var(--text);font-size:1.03rem}
.reviews-score{display:flex;align-items:center;gap:1.2rem;flex:none;padding:1.15rem 1.4rem;border:1px solid var(--border);border-radius:16px;background:var(--white);box-shadow:0 15px 38px rgba(84,41,45,.045)}
.reviews-score strong{font-size:3.05rem;line-height:1;font-weight:800;letter-spacing:-.065em}
.reviews-score>div:first-child span{color:var(--muted);font-size:1.1rem}
.reviews-stars{display:block;color:#aa7231;font-size:1.25rem;letter-spacing:.06em;line-height:1.2}
.reviews-score small{display:block;margin-top:.35rem;color:var(--muted);font-size:.85rem;font-weight:700}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2.4rem}
.review-card{display:flex;flex-direction:column;min-height:235px;padding:1.55rem 1.7rem;background:var(--white);border:1px solid var(--border);border-radius:18px;box-shadow:0 16px 42px rgba(84,41,45,.035);transition:transform .25s,box-shadow .25s}
.review-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.review-card-top{display:flex;justify-content:space-between;align-items:start;gap:1rem}
.review-card-stars{color:#aa7231;letter-spacing:.07em;white-space:nowrap}
.review-card time{color:var(--muted);font-size:.83rem;white-space:nowrap}
.review-card p{display:-webkit-box;overflow:hidden;-webkit-line-clamp:4;-webkit-box-orient:vertical;line-height:1.6;color:var(--text);margin:1.1rem 0}
.review-card-footer{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:auto;font-size:.9rem}
.review-card-footer strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.review-card-footer a{flex:none;color:var(--rose-dark);font-weight:750}
.reviews-fallback{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;margin-top:2.1rem;padding:1.4rem 1.6rem;border-top:1px solid #e8c8c4;border-bottom:1px solid #e8c8c4}
.reviews-fallback p{margin:0;color:var(--text)}
.reviews-fallback span{flex:none;color:var(--muted);font-size:.82rem}
.reviews-link{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;margin-top:1.8rem;color:var(--rose-dark);border-bottom:1px solid currentColor;font-weight:800;transition:color .2s,gap .2s}
.reviews-link:hover{color:var(--ink);gap:1rem}
@media(max-width:1060px){.reviews-top{align-items:flex-start}.reviews-grid{gap:.75rem}.review-card{padding:1.35rem}}
@media(max-width:780px){.reviews-section{padding:4.3rem 0}.reviews-top{flex-direction:column;gap:1.5rem}.reviews-grid{grid-template-columns:1fr;gap:.8rem}.review-card{min-height:0}.reviews-fallback{flex-direction:column;gap:.5rem}}
@media(max-width:520px){.reviews-score{width:100%;justify-content:space-between}.reviews-fallback{padding:1.2rem 0}.reviews-top h2{font-size:clamp(2.25rem,8vw,3rem)}}

/* Contact: a calm, guided selection with a visible running total. */
.booking-form{margin-top:3.1rem;scroll-margin-top:132px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:clamp(1.1rem,3vw,2.5rem);align-items:start}
.booking-main{display:grid;gap:1.35rem;min-width:0}
.booking-panel{min-width:0;padding:clamp(1.4rem,3vw,2.5rem);border:1px solid var(--border);border-radius:24px;background:var(--white);box-shadow:0 14px 48px rgba(84,41,45,.035)}
.booking-section-head,.booking-legend{display:flex;align-items:center;gap:1rem}
.booking-section-head h2,.booking-legend-title{display:block;font-size:clamp(1.5rem,2.5vw,2.1rem);font-weight:800;line-height:1.16;letter-spacing:-.035em}
.booking-step{display:grid;place-items:center;flex:none;width:47px;height:47px;border-radius:50%;background:#f9e5e4;color:var(--rose-dark);font-size:.82rem;font-weight:900;letter-spacing:.02em}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.05rem 1.15rem;margin-top:1.85rem}
.booking-field{display:flex;flex-direction:column;gap:.4rem;min-width:0;font-size:.87rem;font-weight:800;line-height:1.35}
.booking-field span{color:var(--rose-dark)}
.booking-field-wide{grid-column:1/-1}
.booking-field input{width:100%;min-height:51px;padding:.74rem 1rem;border:1px solid #dfcfca;border-radius:12px;background:#fffdfc;color:var(--ink);font:inherit;font-weight:500;transition:border-color .18s,box-shadow .18s}
.booking-field input:hover{border-color:#c89496}
.booking-field input:focus{outline:0;border-color:var(--rose-dark);box-shadow:0 0 0 3px rgba(175,79,97,.13)}
.booking-field input::placeholder{color:#887a7c;opacity:1}
.booking-hint{margin:1.35rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.55}
.booking-hint a{color:var(--rose-dark);text-decoration:underline;text-underline-offset:3px;font-weight:750}
.booking-location{padding-top:1.1rem}
.booking-legend{max-width:100%;padding:0 .45rem 0 0}
.location-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.location-option{position:relative;display:flex;align-items:flex-start;gap:.8rem;min-height:103px;padding:1.05rem .95rem;border:1px solid #e5d3cf;border-radius:14px;background:#fffdfb;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.location-option:hover{border-color:#c68b93;transform:translateY(-2px)}
.location-option.is-selected{border-color:var(--rose-dark);background:#fff1ed;box-shadow:inset 0 0 0 1px var(--rose-dark)}
.location-option input{flex:none;width:19px;height:19px;margin:.2rem 0 0;accent-color:var(--rose-dark);cursor:pointer}
.location-option-content{display:flex;flex-direction:column;gap:.25rem;line-height:1.35}
.location-option-content strong{font-size:.96rem}
.location-option-content>span{color:var(--muted);font-size:.8rem}
.location-check{margin-left:auto;color:var(--rose-dark);font-size:1.1rem;font-weight:900;opacity:0}
.location-option.is-selected .location-check{opacity:1}
.booking-services-intro{margin:.9rem 0 1.2rem}
.treatment-group{min-width:0;margin:0;padding:1.45rem 0 1.65rem;border:0;border-top:1px solid var(--border)}
.treatment-group:last-child{padding-bottom:0}
.treatment-group legend{float:left;width:100%;padding:0;margin:0 0 .85rem;font-size:1.07rem;line-height:1.35;font-weight:850}
.treatment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;clear:both}
.treatment-option{display:flex;align-items:center;gap:.65rem;min-width:0;min-height:54px;padding:.7rem .8rem;border:1px solid #eadad6;border-radius:11px;background:#fffdfc;line-height:1.3;cursor:pointer;transition:border-color .18s,background .18s,transform .18s}
.treatment-option:hover{border-color:#cb929a;transform:translateY(-1px)}
.treatment-option:has(input:focus-visible),.location-option:has(input:focus-visible){outline:3px solid var(--rose-dark);outline-offset:2px}
.treatment-option.is-selected{border-color:var(--rose-dark);background:#fff1ed}
.treatment-option:has(input:disabled){opacity:.53;cursor:not-allowed}
.treatment-option:has(input:disabled):hover{border-color:#eadad6;transform:none}
.treatment-option input{flex:none;width:17px;height:17px;margin:0;accent-color:var(--rose-dark);cursor:inherit}
.treatment-option>span{flex:1;min-width:0;font-size:.89rem;font-weight:650}
.treatment-option small{display:block;margin-top:.15rem;color:var(--muted);font-size:.72rem;font-weight:550}
.treatment-option strong{flex:none;color:var(--rose-dark);font-size:.87rem;white-space:nowrap}
.booking-error{margin:.65rem 0 1rem;padding:.8rem 1rem;border-radius:10px;background:#fff0ef;color:#8f2f43;font-weight:750;font-size:.88rem}
.booking-aside{min-width:0;align-self:stretch}
.booking-summary{position:sticky;top:130px;max-height:calc(100vh - 145px);overflow:auto;padding:2rem;border-radius:23px;border:1px solid #e9c8c6;background:#fff3ef;box-shadow:var(--shadow);scrollbar-width:thin}
.booking-summary h2{font-size:clamp(1.55rem,2.2vw,2.05rem);letter-spacing:-.035em}
.summary-location{display:inline-flex;margin:1.1rem 0 .7rem;padding:.35rem .7rem;border-radius:100px;background:var(--white);border:1px solid var(--border);color:var(--rose-dark);font-size:.8rem;font-weight:800}
.summary-items{min-height:95px;max-height:265px;margin:.5rem 0 1.25rem;padding:0;list-style:none;overflow:auto;scrollbar-width:thin}
.summary-items li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid #eddbd7;font-size:.86rem;line-height:1.4}
.summary-items li strong{white-space:nowrap}
.summary-items li.summary-empty{display:block;color:var(--muted);border:0;font-style:italic}
.summary-total{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;padding:1.1rem 0 .3rem;border-top:1px solid #dfaead;font-weight:800}
.summary-total span{font-size:.91rem}
.summary-total strong{color:var(--rose-dark);font-size:2.4rem;line-height:1;white-space:nowrap}
.summary-note,.summary-fineprint{color:var(--text);font-size:.8rem;line-height:1.5}
.summary-note{margin:.9rem 0 1.45rem}
.summary-fineprint{margin:.75rem 0 0;text-align:center}
.booking-submit{width:100%;border:0;cursor:pointer}
.booking-submit:disabled{cursor:wait;opacity:.7}
.booking-feedback{margin-top:1rem;padding:.85rem 1rem;border-radius:12px;font-size:.85rem;line-height:1.55}
.booking-feedback[data-state="success"]{background:#e7f3e7;color:#254d35}
.booking-feedback[data-state="error"]{background:#ffedea;color:#853148}
.booking-feedback a{text-decoration:underline;font-weight:800}
.booking-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-after-form{margin-top:3.4rem}
.reviews-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 1.5rem;margin-top:1.8rem}
.reviews-actions .reviews-link{margin-top:0}
.reviews-write{padding-inline:1.6rem}
@media(max-width:1060px){.booking-layout{grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:1rem}.booking-panel{padding:1.5rem}.booking-summary{padding:1.45rem;top:115px;max-height:calc(100vh - 130px)}.treatment-options{grid-template-columns:1fr}}
@media(max-width:780px){.booking-form{margin-top:2rem;scroll-margin-top:98px}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static;max-height:none;overflow:visible;padding:1.7rem}.summary-items{max-height:none}.treatment-options{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-after-form{margin-top:2.5rem}}
@media(max-width:520px){.booking-panel{padding:1.35rem}.booking-fields,.location-options,.treatment-options{grid-template-columns:1fr}.booking-section-head,.booking-legend{gap:.75rem}.booking-step{width:40px;height:40px}.booking-field-wide{grid-column:auto}.location-option{min-height:86px}.treatment-option{min-height:52px}.booking-summary{padding:1.45rem}.reviews-actions{align-items:stretch;flex-direction:column}.reviews-write{width:100%}}

/* Navigation: the complete official mark and a light, floating link capsule. */
.site-header{padding-block:5px;border-bottom:0;background:rgba(255,250,247,.92)}
.site-header.is-scrolled{box-shadow:0 8px 30px rgba(84,41,45,.08)}
.header-inner{position:relative;height:132px;gap:1.5rem}
.brand{display:flex;align-items:center;width:190px;height:132px;flex:0 0 190px;overflow:visible}
.brand img{position:static;display:block;width:190px;height:auto;max-width:none}
.footer-brand{display:block;width:170px;height:auto;margin-left:0;overflow:visible}
.footer-brand img{position:static;display:block;width:170px;height:auto;max-width:100%}
.site-nav{display:flex;align-items:center;gap:.1rem;padding:.35rem;border:1px solid #edd7d5;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 14px 36px rgba(84,41,45,.07)}
.site-nav>a:not(.nav-cta){display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.6rem 1rem;border:0;border-radius:999px;color:var(--text);font-size:.91rem;font-weight:700;line-height:1.2;white-space:nowrap;transition:color .2s,background .2s}
.site-nav>a:not(.nav-cta):hover{background:#fff0ee;color:var(--rose-dark)}
.site-nav>a.current:not(.nav-cta){background:var(--rose-soft);color:#8d3448;font-weight:850}
.site-nav .nav-cta{min-height:46px;margin-left:.45rem;padding:.72rem 1.15rem;font-size:.86rem;white-space:nowrap;box-shadow:0 7px 16px rgba(175,79,97,.16)}
.category-wrap{top:142px}
.price-section,#deplacement{scroll-margin-top:225px}
.booking-form{scroll-margin-top:155px}
.booking-summary{top:155px;max-height:calc(100vh - 170px)}
@media(max-width:1060px){
  .header-inner{height:123px;gap:.9rem}
  .brand{width:176px;height:123px;flex-basis:176px}
  .brand img{width:176px;height:auto}
  .site-nav>a:not(.nav-cta){padding:.55rem .72rem;font-size:.84rem}
  .site-nav .nav-cta{padding:.7rem .88rem;font-size:.82rem}
  .category-wrap{top:133px}
  .booking-summary{top:145px;max-height:calc(100vh - 160px)}
}
@media(max-width:960px){
  .menu-toggle{width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #e7c8c7;border-radius:17px;background:#fff;box-shadow:0 7px 18px rgba(84,41,45,.07);cursor:pointer}
  .menu-toggle span{display:block;width:20px;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}
  .site-nav{display:none;position:absolute;top:calc(100% + 5px);left:0;right:0;flex-direction:column;align-items:stretch;gap:.2rem;padding:1rem;border-radius:24px;background:rgba(255,250,247,.99);box-shadow:0 24px 45px rgba(84,41,45,.15)}
  .site-nav.open{display:flex}
  .site-nav>a:not(.nav-cta){justify-content:flex-start;min-height:48px;padding:.7rem 1rem;border:0;font-size:1rem}
  .site-nav .nav-cta{width:100%;min-height:50px;margin:.6rem 0 0;font-size:.95rem}
}
@media(max-width:780px){
  .header-inner{height:119px}
  .brand{width:170px;height:119px;flex-basis:170px}
  .brand img{width:170px;height:auto}
  .category-wrap{top:auto}
  .price-section,#deplacement,.booking-form{scroll-margin-top:139px}
  .booking-summary{position:static;max-height:none}
}

/* Gift-card request: a real contact choice on desktop and mobile. */
.contact-email{margin:1.25rem 0 0!important;overflow-wrap:anywhere}
.contact-email a{color:var(--rose-dark);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.gift-request{width:min(100%,390px);flex:0 1 390px}
.gift-request summary{width:100%;padding:.85rem 1.2rem;list-style:none;cursor:pointer}
.gift-request summary::-webkit-details-marker{display:none}
.gift-request-options{margin-top:.85rem;padding:1.2rem;border:1px solid #e7c8c7;border-radius:16px;background:#fffaf7;color:var(--text);box-shadow:0 12px 30px rgba(84,41,45,.06)}
.gift-request-options p{margin:0 0 .75rem;line-height:1.5}
.gift-request-actions{display:flex;flex-wrap:wrap;gap:.55rem}
.gift-request-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem .9rem;border:1px solid #dbafb1;border-radius:999px;background:#fff;color:var(--rose-dark);font-size:.91rem;font-weight:800}
.gift-request-actions a:hover{background:#fff0ee}
.gift-request-options .gift-request-address{margin:1rem 0 .35rem;font-size:.88rem;overflow-wrap:anywhere}
.gift-request-address strong{display:block;color:var(--ink)}
#copy-gift-email{min-height:44px;padding:.35rem 0;border:0;background:transparent;color:var(--rose-dark);font-size:.9rem;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.gift-copy-feedback{display:block;min-height:1.4rem;color:var(--rose-dark);font-size:.84rem}
.contact-tip{scroll-margin-top:160px}
@media(max-width:780px){.contact-tip{flex-direction:column;align-items:stretch}.gift-request{width:100%;flex:auto}}
.booking-fallback-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.booking-fallback-actions a,.booking-fallback-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.55rem .85rem;border:1px solid #cf9aa2;border-radius:999px;background:#fff;color:#853148;font:inherit;font-weight:800;cursor:pointer}
.booking-fallback-actions a:hover,.booking-fallback-actions button:hover{background:#fff4f2}
.booking-fallback-actions span{font-weight:700}
.booking-fallback-details summary{min-height:44px;padding:.5rem 0;font-weight:800;cursor:pointer}
.booking-fallback-details pre{max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:.8rem;background:#fffaf7;border-radius:10px;font:inherit;font-size:.82rem}

/* Guided date, group and gift requests. */
[hidden]{display:none!important}
.booking-dates .booking-hint,.group-panel .booking-hint{margin:.9rem 0 1.15rem}
.date-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.date-placeholder{grid-column:1/-1;margin:0;padding:1.1rem;border:1px dashed #dbbcba;border-radius:12px;background:#fffaf8;color:var(--muted);font-size:.88rem}
.date-option{display:flex;align-items:center;gap:.48rem;min-height:47px;padding:.55rem .7rem;border:1px solid #eadad6;border-radius:12px;background:#fffdfc;cursor:pointer;transition:border-color .18s,background .18s}
.date-option:hover,.date-option.is-selected{border-color:var(--rose-dark);background:#fff1ed}
.date-option:has(input:focus-visible){outline:3px solid var(--rose-dark);outline-offset:2px}
.date-option input{width:16px;height:16px;margin:0;accent-color:var(--rose-dark);flex:none}
.date-option span{font-size:.8rem;font-weight:750;text-transform:capitalize;line-height:1.25}
.date-selection{min-height:1.3rem;margin:.75rem 0 0;color:var(--rose-dark);font-size:.82rem;font-weight:700}
.group-switch{display:flex;align-items:center;gap:.9rem;margin-top:1.4rem;padding:1.1rem 1.15rem;border:1px solid #e7d1ce;border-radius:15px;background:#fffaf8;cursor:pointer}
.group-switch:has(input:checked){border-color:var(--rose-dark);background:#fff1ed}
.group-switch:has(input:disabled){opacity:.6;cursor:not-allowed}
.group-switch:has(input:focus-visible){outline:3px solid var(--rose-dark);outline-offset:2px}
.group-switch input{width:20px;height:20px;margin:0;accent-color:var(--rose-dark);flex:none}
.group-switch span{display:grid;gap:.15rem;line-height:1.35}
.group-switch strong{font-size:.94rem}
.group-switch small{color:var(--muted);font-size:.8rem}
.group-availability{margin:.7rem .1rem 0;color:#783b4a;font-size:.84rem;font-weight:700;line-height:1.45}
.group-fields{padding-top:.2rem}
.guest-list{display:grid;gap:.8rem}
.guest-card{padding:1.15rem;border:1px solid #ead6d3;border-radius:16px;background:#fffaf8}
.guest-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.9rem}
.guest-head h3{font-size:1.05rem}
.guest-remove{min-height:40px;padding:.3rem .6rem;border:0;background:transparent;color:var(--rose-dark);font-size:.8rem;font-weight:800;text-decoration:underline;cursor:pointer}
.guest-card .booking-field{max-width:390px}
.guest-selected{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0}
.guest-selected>p{margin:0;color:var(--muted);font-size:.8rem;font-style:italic}
.guest-pill{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;padding:.3rem .35rem .3rem .7rem;border-radius:999px;background:#f9e5e4;color:#843a4b;font-size:.76rem;font-weight:750}
.guest-pill span{overflow-wrap:anywhere}
.guest-pill button{width:28px;height:28px;border:0;border-radius:50%;background:#fff;color:#843a4b;font-size:1.1rem;line-height:1;cursor:pointer}
.guest-select-label{display:grid;gap:.35rem;max-width:460px;font-size:.82rem;font-weight:800}
.guest-select,.gift-form select{width:100%;min-height:50px;padding:.65rem .8rem;border:1px solid #dfcfca;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:.88rem;font-weight:550}
.guest-select:focus,.gift-form select:focus{outline:0;border-color:var(--rose-dark);box-shadow:0 0 0 3px rgba(175,79,97,.13)}
.group-add{min-height:44px;margin-top:.8rem;padding:.65rem 1rem;border:1px solid #d3a0a6;background:#fff;color:var(--rose-dark);cursor:pointer}
.group-add:hover{background:#fff0ee}
.group-offer{margin:1.1rem 0 0;padding:1rem 1.15rem;border-radius:13px;background:#fff0ee;color:#71394a;font-size:.86rem;line-height:1.5}
.summary-items li.summary-person{display:block;margin-top:.7rem;padding:.55rem 0 .25rem;border-bottom:1px solid #e5b7b8;color:#803747;font-weight:850}
.summary-items li.summary-person:first-child{margin-top:0}
.mobile-summary{display:none}
.gift-section{display:grid;grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);gap:clamp(1.5rem,5vw,5rem);align-items:start;margin:5rem 0 2rem;padding:clamp(1.5rem,4vw,3.7rem);border:1px solid #edcfce;border-radius:30px;background:radial-gradient(circle at 0 0,#f7d8d7,transparent 50%),#fff5f1;box-shadow:var(--shadow);scroll-margin-top:155px}
.gift-intro{position:sticky;top:165px}
.gift-icon{display:grid;place-items:center;width:55px;height:55px;margin-bottom:1.6rem;border-radius:50%;background:#fff;color:var(--rose-dark);font-size:1.9rem;box-shadow:0 8px 20px rgba(84,41,45,.08)}
.gift-intro h2{font-family:"Arial Narrow","Franklin Gothic Medium",Impact,"Segoe UI",sans-serif;font-size:clamp(2.4rem,4vw,4rem);line-height:1.03;letter-spacing:-.04em;text-transform:uppercase}
.gift-intro h2 em{font-style:normal;color:var(--rose-dark)}
.gift-intro>p{max-width:420px;margin:1.4rem 0 0;color:var(--text);line-height:1.65}
.gift-intro .gift-assurance{padding-top:1rem;border-top:1px solid #dfb8b7;font-size:.83rem}
.gift-form{padding:clamp(1.3rem,3vw,2.5rem);border:1px solid var(--border);border-radius:23px;background:#fff;box-shadow:0 15px 40px rgba(84,41,45,.04)}
.gift-choice{margin:0;padding:0;border:0}
.gift-choice legend{padding:0;margin-bottom:.7rem;font-size:1.08rem;font-weight:850}
.gift-choice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.gift-choice-options label{display:flex;align-items:center;gap:.6rem;min-height:54px;padding:.7rem .85rem;border:1px solid #e5d3cf;border-radius:13px;background:#fffdfb;font-size:.88rem;font-weight:800;cursor:pointer}
.gift-choice-options label:has(input:checked){border-color:var(--rose-dark);background:#fff0ed}
.gift-choice-options label:has(input:focus-visible){outline:3px solid var(--rose-dark);outline-offset:2px}
.gift-choice-options input{width:18px;height:18px;margin:0;accent-color:var(--rose-dark)}
.gift-selection{margin:1.25rem 0 1.6rem}
.gift-selection .booking-field{gap:.45rem}
.gift-estimate{margin:.45rem 0 0;color:var(--rose-dark);font-size:.82rem;font-weight:700}
.gift-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.gift-submit{width:100%;margin-top:1.55rem;border:0;cursor:pointer}
.gift-submit:disabled{opacity:.7;cursor:wait}
.gift-fineprint{margin:.7rem 0 0;color:var(--muted);font-size:.79rem;line-height:1.5;text-align:center}
.meeting-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1.4rem}
@media(max-width:1060px){.date-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){
  .date-options{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mobile-summary{position:fixed;z-index:19;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;display:flex;align-items:center;justify-content:space-between;gap:.8rem;max-width:620px;margin-inline:auto;padding:.7rem .8rem .7rem 1rem;border:1px solid #dfb8b9;border-radius:18px;background:rgba(255,248,246,.97);box-shadow:0 10px 36px rgba(84,41,45,.21);backdrop-filter:blur(12px)}
  .mobile-summary>span{display:grid;gap:.05rem;line-height:1.3}
  .mobile-summary strong{font-size:.87rem}
  .mobile-summary small{color:var(--muted);font-size:.73rem}
  .mobile-summary b{color:var(--rose-dark)}
  .mobile-summary button{min-height:44px;max-width:52%;padding:.5rem .85rem;border:0;border-radius:999px;background:var(--rose-dark);color:#fff;font-size:.78rem;font-weight:800;line-height:1.2;cursor:pointer}
  .gift-section{grid-template-columns:1fr;margin-top:3.5rem;scroll-margin-top:135px}
  .gift-intro{position:static}
}
@media(max-width:520px){.date-options{grid-template-columns:repeat(2,minmax(0,1fr))}.gift-fields{grid-template-columns:1fr}.gift-choice-options{grid-template-columns:1fr}.gift-section{padding:1.25rem;border-radius:23px}.gift-form{padding:1.3rem}.mobile-summary button{max-width:55%}}

/* Useful local context within the existing brand. */
.local-area{border-block:1px solid #edd5d0;background:#fff3ef}
.local-area-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,7vw,7rem);align-items:center;padding-block:clamp(3.8rem,7vw,6rem)}
.local-area h2{max-width:630px;font-size:clamp(2.1rem,3.6vw,3.55rem);font-weight:850;line-height:1.09;letter-spacing:-.045em}
.local-area h2 em{font-style:normal;color:var(--rose-dark)}
.local-area p{max-width:640px;margin:1.25rem 0 0;color:var(--text);font-size:1rem;line-height:1.7}
.local-area-services{padding:1.7rem 0 1.7rem clamp(1.5rem,3vw,3rem);border-left:1px solid #e2bab7}
.local-area-services h3{font-size:1.3rem;line-height:1.25}
.local-area-services p{margin:1rem 0 1.45rem}
.local-area-services p a{color:var(--rose-dark);font-weight:750;text-decoration:underline;text-underline-offset:3px}
.price-section-intro{max-width:760px;margin:-.45rem 0 1.8rem;color:var(--text);font-size:1rem;line-height:1.65}
@media(max-width:780px){.local-area-inner{grid-template-columns:1fr;gap:1.4rem}.local-area-services{padding:1.5rem 0 0;border-left:0;border-top:1px solid #e2bab7}}
