:root{
  --cream:#FBF7F3;--blush-bg:#F5EDE7;--ink:#3E3431;--ink-2:#5E504B;--muted:#6B5C57;--muted-2:#8C7A74;
  --rose:#C99A8F;--rose-deep:#9B6F66;--rose-light:#EBC7BC;--line:#EADBD3;--line-2:#F3EAE5;--line-3:#EFE4DC;
  --serif:'Cormorant Garamond',serif;--script:'Pinyon Script',cursive;--sans:'Jost',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:140px;scrollbar-gutter:stable}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--rose-deep);text-decoration:none}
a:hover{color:var(--ink)}
img{max-width:100%}
input,textarea,select,button{font-family:var(--sans)}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes rise{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:.9}100%{transform:translateY(-340px) scale(1.1);opacity:0}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

.script{font-family:var(--script);color:var(--rose);font-weight:400}
.eyebrow{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--rose-deep)}
.h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(44px,5vw,64px);line-height:1}
.center-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:44px}
.btn{display:inline-block;font-size:12px;letter-spacing:.24em;text-transform:uppercase;padding:17px 32px;border-radius:999px;transition:all .35s ease;cursor:pointer;border:none}
.btn-dark{background:var(--ink);color:var(--cream)}
.btn-dark:hover{background:var(--rose);color:#fff;transform:translateY(-2px)}
.btn-ghost{border:1px solid #DCC7BE;color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}
.card{background:#fff;border-radius:28px;box-shadow:0 30px 80px -50px rgba(120,80,70,.35)}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(251,247,243,.97);border-bottom:1px solid var(--line-3)}
.site-header .inner{max-width:1200px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-header .logo img{height:46px;width:auto;display:block}
.site-nav{display:flex;gap:clamp(14px,2vw,28px);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.site-nav a{color:var(--ink-2)}
.site-nav a:hover{color:var(--rose)}
.book-pill{font-size:11px;letter-spacing:.24em;text-transform:uppercase;padding:12px 22px;border:1px solid var(--rose);border-radius:999px;color:var(--ink);transition:all .35s ease;white-space:nowrap}
.book-pill:hover{background:var(--rose);color:#fff}
.dock{position:absolute;left:0;right:0;top:100%;display:flex;justify-content:center;gap:10px;padding:10px 16px;background:rgba(251,247,243,.97);border-bottom:1px solid var(--line-3);box-shadow:0 12px 24px -20px rgba(120,80,70,.35);}
.dock-btn{font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:10px 22px;border-radius:999px;border:1px solid #DCC7BE;color:var(--ink);background:#fff;transition:all .3s ease;white-space:nowrap}
.dock-btn:hover{border-color:var(--ink);color:var(--ink)}
.dock-btn.dock-dark{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.dock-btn.dock-dark:hover{background:var(--rose);border-color:var(--rose);color:#fff}
@media (max-width:860px){.site-nav{display:none}.site-header .logo img{height:38px}.site-header .inner{padding:12px 16px}}

/* hero */
.hero{position:relative;max-width:1200px;margin:0 auto;padding:120px 28px 110px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:56px;align-items:center}
.hearts{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hearts span{position:absolute;bottom:-20px;color:#E3B7AB;opacity:0}
.hero-copy{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:26px}
.hero h1{margin:0;font-family:'Parisienne',cursive;font-weight:400;font-size:clamp(50px,6.6vw,96px);line-height:1.1;letter-spacing:0}
.hero h1 .nw{white-space:nowrap}
@media (max-width:600px){.hero h1{font-size:15vw}}
.hero h1 .love{display:inline-block;padding:0 .22em .08em;background:linear-gradient(100deg,#B98176 20%,#E4B6AA 40%,#B98176 60%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite}
.hero p{margin:0;max-width:450px;font-size:17px;line-height:1.75;color:var(--muted);text-wrap:pretty}
.hero-art{position:relative;display:flex;justify-content:center}
.arch-outline{position:absolute;top:-20px;right:7%;width:78%;aspect-ratio:3/4;border-radius:50%;border:1px solid #E6CFC6}
.arch{position:relative;width:78%;aspect-ratio:3/4;border-radius:50%;box-shadow:0 30px 70px -40px rgba(120,80,70,.45);overflow:hidden;background:linear-gradient(160deg,#F6E6E0,#EBD3CA);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px}
.arch-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.arch-shade{position:absolute;inset:0;background:radial-gradient(ellipse 72% 50% at 50% 52%,rgba(78,58,54,.58),rgba(78,58,54,.22) 75%),linear-gradient(rgba(201,154,143,.30),rgba(201,154,143,.30))}
.arch-address{position:relative;z-index:1;text-shadow:0 1px 14px rgba(40,30,28,.45);display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(10px,1.4vw,16px);padding:0 14%}
.arch-address .script{font-size:clamp(38px,4.4vw,56px);line-height:1;color:#F6D9CF}
.arch-address address{font-style:normal;font-family:var(--serif);font-weight:400;font-size:clamp(20px,2.2vw,28px);line-height:1.3;color:#fff;letter-spacing:.01em}
.arch-rule{width:44px;height:1px;background:#F2DCD4}
.arch-phone{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);color:#fff;letter-spacing:.04em}
.arch-phone:hover{color:#F6D9CF}
.arch-link{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#fff;border-bottom:1px solid #F2DCD4;padding-bottom:3px}
.arch-link:hover{color:#F6D9CF}
.float-badge{position:absolute;bottom:-18px;left:4%;background:#fff;padding:18px 24px;border-radius:18px;box-shadow:0 20px 50px -20px rgba(120,80,70,.35);display:flex;flex-direction:column;gap:2px;animation:floaty 6s ease-in-out infinite}
.float-badge .script{font-size:28px;line-height:1}
.float-badge small{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}

@media (max-width:600px){.float-badge{bottom:-46px;left:0}.arch-address{padding:0 12%}}

/* ribbon */
.ribbon{background:#F2DCD4;overflow:hidden;padding:18px 0;border-top:1px solid #EACFC5;border-bottom:1px solid #EACFC5}
.ribbon .track{display:flex;width:max-content;animation:marquee 38s linear infinite}
.ribbon .item{display:flex;align-items:center;gap:34px;padding-right:34px;white-space:nowrap}
.ribbon .word{font-family:var(--script);font-size:32px;color:var(--ink);line-height:1}
.ribbon .heart{color:var(--rose);font-size:14px}

/* about */
.about{background:var(--blush-bg);padding:110px 28px}
.about .inner{max-width:760px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px}
.about .hello{font-size:48px;line-height:1}
.about .lede{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.2vw,38px);line-height:1.35;text-wrap:balance}
.rule{width:60px;height:1px;background:var(--rose);margin-top:10px}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:36px;width:100%;margin-top:18px}
.pillars div{display:flex;flex-direction:column;gap:6px}
.pillars strong{font-family:var(--serif);font-size:24px;font-style:italic;font-weight:400}
.pillars span{font-size:14px;color:var(--muted);line-height:1.6}

/* treatments */
.treatments{max-width:1000px;margin:0 auto;padding:120px 28px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px}
.cat-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:30px 28px 26px;border-radius:24px;border:1px solid #F0E4DD;background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 24px 60px -48px rgba(120,80,70,.45);transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s ease}
.cat-card:hover,.cat-card:focus-visible{transform:translateY(-4px);border-color:var(--rose);outline:none}
.cat-num{font-size:11px;letter-spacing:.3em;color:var(--rose-deep)}
.cat-name{font-family:var(--serif);font-size:30px;line-height:1.1;margin-top:6px}
.cat-note{font-size:24px;line-height:1.2}
.cat-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.cat-arrow{color:var(--rose);font-size:18px;letter-spacing:0;transition:transform .35s ease}
.cat-card:hover .cat-arrow{transform:translateX(4px)}

/* price modal */
.modal{width:min(640px,calc(100% - 32px));margin:auto;max-height:calc(100dvh - 48px);padding:0;border:none;border-radius:28px;background:#fff;color:var(--ink);box-shadow:0 40px 120px -40px rgba(62,52,49,.55);overflow:hidden}
.modal::backdrop{background:rgba(62,52,49,.45)}
.modal[open]{animation:modal-in .32s cubic-bezier(.2,.7,.2,1)}
.modal[open]::backdrop{animation:fade-in .32s ease}
.modal.closing{animation:modal-out .22s ease forwards}
.modal.closing::backdrop{animation:fade-out .22s ease forwards}
@keyframes modal-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@keyframes modal-out{to{opacity:0;transform:translateY(10px) scale(.98)}}
@keyframes fade-in{from{opacity:0}}
@keyframes fade-out{to{opacity:0}}
.modal-inner{position:relative;max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;padding:clamp(28px,5vw,48px)}
.modal-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:22px;line-height:1;cursor:pointer;transition:all .25s ease}
.modal-close:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.modal-head{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;padding-right:44px}
.modal-head h3{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,38px);line-height:1.1}
.modal-note{font-size:26px;line-height:1.2}
.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px}
.modal-nav{width:48px;height:48px;flex-shrink:0;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);font-size:18px;cursor:pointer;transition:all .25s ease}
.modal-nav:hover{border-color:var(--rose);color:var(--rose-deep)}
.modal-book{padding:16px 26px;text-align:center}
body:has(.modal[open]){overflow:hidden}
.menu-list{list-style:none;margin:0;padding:0}
.menu-list li{display:flex;align-items:baseline;gap:14px;padding:16px 0;border-bottom:1px solid var(--line-2)}
.menu-list .name{display:flex;flex-direction:column;gap:3px;font-size:16px;font-weight:400}
.menu-list .name small{font-size:13px;color:var(--muted-2);font-weight:300}
.menu-list .dots{flex:1;border-bottom:1px dotted #DCC7BE;transform:translateY(-4px);min-width:20px}
.menu-list .price{font-family:var(--serif);font-size:22px;white-space:nowrap}
.menu-note{margin:26px 0 0;font-size:13px;color:var(--muted-2);line-height:1.6}

.hero.paused *{animation-play-state:paused!important}

/* consultation band */
.consult-band{background:#F2DCD4;border-top:1px solid #EACFC5;border-bottom:1px solid #EACFC5;padding:56px 28px}
.consult-band .inner{max-width:900px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.consult-band .script{font-size:clamp(38px,5vw,56px);line-height:1.1;color:var(--ink)}
.consult-band p{margin:0;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-2);line-height:2}
.consult-band p span{color:var(--rose-deep);margin:0 10px}

/* faq */
.faq{max-width:860px;margin:0 auto;padding:120px 28px}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 4px;background:none;border:none;cursor:pointer;text-align:left;color:var(--ink);font-family:var(--serif);font-size:24px}
.faq-q .plus{color:var(--rose);font-size:26px;font-family:var(--sans);font-weight:300;transition:transform .4s ease;flex-shrink:0}
.faq-q[aria-expanded="true"] .plus{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease;overflow:hidden}
.faq-q[aria-expanded="true"]+.faq-a{grid-template-rows:1fr}
.faq-a>div{min-height:0;overflow:hidden}
.faq-a p{margin:0;padding:0 4px 26px;font-size:15px;line-height:1.75;color:var(--muted);max-width:680px}

/* vouchers */
.vouchers{padding:0 28px 120px}
.voucher-card{max-width:1000px;margin:0 auto;background:var(--ink);border-radius:32px;padding:clamp(36px,6vw,72px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:36px;align-items:center;position:relative;overflow:hidden}
.voucher-card .ring{position:absolute;border-radius:50%;border:1px solid rgba(233,199,188,.3)}
.voucher-card .copy{display:flex;flex-direction:column;gap:14px;position:relative}
.voucher-card .script{font-size:clamp(48px,6vw,68px);color:var(--rose-light);line-height:1}
.voucher-card p{margin:0;font-size:16px;line-height:1.75;color:#E9DCD6;max-width:420px}
.btn-light{background:var(--cream);color:var(--ink);padding:18px 34px;position:relative}
.btn-light:hover{background:var(--rose-light);color:var(--ink);transform:translateY(-2px)}

/* instagram */
.gram{padding:0 28px 120px}
.gram .inner{max-width:1200px;margin:0 auto}
.gram .head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:32px}
.gram .head div{display:flex;flex-direction:column;gap:8px}
.gram h2{font-size:clamp(36px,4vw,52px)}
.gram .handle{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--rose);padding-bottom:4px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.tile{aspect-ratio:1/1;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;text-align:center;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease;color:var(--ink)}
.tile-heart{font-size:30px;line-height:1;color:var(--rose)}
.tile-text{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.2;color:var(--ink-2)}
.tile:hover{transform:scale(1.03) rotate(-.6deg);box-shadow:0 20px 40px -24px rgba(120,80,70,.5)}

/* booking band + modal */
.book-band{background:var(--blush-bg);padding:100px 28px}
.book-band .inner{max-width:680px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.book-band h2{margin:0;font-size:clamp(56px,8vw,88px);line-height:1;color:var(--ink)}
.book-band p{margin:0;font-size:16px;line-height:1.75;color:var(--muted);max-width:460px}
.band-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.book-modal{width:min(920px,calc(100% - 32px))}
.book-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,48px);align-items:start}
.book-intro{display:flex;flex-direction:column;gap:14px;padding-top:8px}
.book-intro h2{margin:0;font-size:clamp(48px,6vw,68px);line-height:1;color:var(--ink)}
.book-intro p{margin:0;font-size:15px;line-height:1.7;color:var(--muted)}
.book-intro .channels{margin-top:6px}
.book-form .enquiry{gap:14px}
@media (max-width:700px){.book-grid{grid-template-columns:1fr}.book-intro .eyebrow,.book-intro h2{padding-right:44px}.book-intro>p{display:none}}

/* availability calendar (placeholder) */
.cal{margin-top:10px;padding:20px;border:1px solid #F0E4DD;border-radius:20px;background:var(--cream)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-title{font-family:var(--serif);font-size:22px}
.cal-nav{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:18px;line-height:1;cursor:pointer;transition:all .2s ease}
.cal-nav:hover:not(:disabled){border-color:var(--rose)}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-dow span{font-size:10px;letter-spacing:.18em;color:var(--muted-2);padding:4px 0}
.cal-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;max-height:40px;border-radius:50%;font-size:13px;color:#C5B5AE;border:1px solid transparent;background:none;font-family:var(--sans);padding:0}
.cal-day.today{border-color:var(--line)}
.cal-day.open{position:relative;color:var(--ink);font-weight:400;cursor:pointer;background:#fff;border-color:#EAD3CA;transition:all .2s ease}
.cal-day.open::after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--rose)}
.cal-day.open:hover{border-color:var(--rose)}
.cal-day.open[aria-pressed="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.cal-day.open[aria-pressed="true"]::after{background:var(--rose-light)}
.cal-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.cal-slots:empty{display:none}
.cal-slots-title{width:100%;font-family:var(--serif);font-style:italic;font-size:18px}
.slot{font-size:12px;letter-spacing:.12em;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;transition:all .2s ease}
.slot:hover{border-color:var(--rose)}
.slot[aria-pressed="true"]{background:var(--rose);border-color:var(--rose);color:#fff}
.slot-flex{font-size:13px;color:var(--muted);font-style:italic}
.book-intro .cal-note{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-size:12px;color:var(--muted-2);line-height:1.5}
.cal-dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--rose)}

/* book */
.book{background:var(--blush-bg);padding:120px 28px}
.book .inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:56px;align-items:start}
.book .intro{display:flex;flex-direction:column;gap:20px}
.book h2{margin:0;font-family:var(--script);font-weight:400;font-size:clamp(60px,8vw,92px);line-height:1}
.book .intro p{margin:0;font-size:16px;line-height:1.75;color:var(--muted);max-width:420px}
.channels{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.channel{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border-radius:18px;background:#fff;color:var(--ink);border:1px solid #F0E4DD;transition:all .35s ease}
.channel:hover{border-color:var(--rose);transform:translateX(6px);color:var(--ink)}
.channel b{display:block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:400}
.channel i{font-size:14px;color:var(--muted-2)}
.channel .arrow{color:var(--rose);font-size:18px}
.form-card{padding:clamp(24px,4vw,44px)}
.enquiry{display:flex;flex-direction:column;gap:18px}
.enquiry .title{font-family:var(--serif);font-size:30px}
.enquiry label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
.enquiry input:not([type=radio]),.enquiry textarea{font-size:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--cream);color:var(--ink);outline:none;letter-spacing:0;text-transform:none;width:100%}
.enquiry textarea{resize:vertical}
.enquiry input:not([type=radio]):focus,.enquiry textarea:focus{border-color:var(--rose)}
.treat-field{border:none;margin:0;padding:0;min-width:0}
.treat-field legend{padding:0;margin-bottom:8px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
.treat-chips{display:flex;flex-wrap:wrap;gap:8px}
.enquiry .chip{position:relative;display:inline-flex;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--ink-2)}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;font-size:13px;letter-spacing:.04em;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--cream);color:var(--ink-2);transition:background .2s ease,border-color .2s ease,color .2s ease}
.enquiry .chip:hover span{border-color:var(--rose)}
.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.chip .initial{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:-2px 8px -2px -6px;border-radius:50%;background:#F2DCD4;color:var(--rose-deep);font-family:var(--serif);font-style:normal;font-size:13px;vertical-align:middle}
.chip input:checked+span .initial{background:var(--rose);color:#fff}
.chip input:focus-visible+span{outline:2px solid var(--rose);outline-offset:2px}
.enquiry .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.enquiry button{margin-top:6px;padding:18px 32px}
.enquiry button:disabled{opacity:.6;cursor:wait}
.form-error{margin:0;font-size:14px;color:#A2463A;line-height:1.6}
.form-error:empty{display:none}
.thanks{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:40px 0}
.thanks[hidden]{display:none}
.thanks .script{font-size:56px;line-height:1}
.thanks p{margin:0;font-size:16px;line-height:1.7;color:var(--muted)}
.thanks button{margin-top:10px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:12px 22px;border-radius:999px;border:1px solid #DCC7BE;background:none;color:var(--ink);cursor:pointer}

/* visit */
.visit{max-width:1200px;margin:0 auto;padding:120px 28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:48px;align-items:stretch}
.visit .info{display:flex;flex-direction:column;gap:26px}
.visit .info>div:first-child{display:flex;flex-direction:column;gap:8px}
.visit h2{font-size:clamp(40px,4.5vw,58px)}
.visit .address{margin:0;font-family:var(--serif);font-size:22px;line-height:1.5;font-style:italic}
.hours{list-style:none;margin:0;padding:0}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-3);font-size:15px}
.hours b{font-weight:400}
.hours span{color:var(--muted-2)}
.map-label{margin:0;font-family:var(--serif);font-style:italic;font-size:18px;color:#9B8079}
.map{position:relative;min-height:360px;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,#F3E7E1,#EDDCD4);box-shadow:0 30px 80px -50px rgba(120,80,70,.45)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.75) sepia(.12)}

/* footer */
.site-footer{background:var(--ink);padding:56px 28px 40px}
.site-footer .inner{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
.site-footer img{height:64px;width:auto;display:block}
.site-footer .script{font-size:28px;color:var(--rose-light)}
.site-footer small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#B8A7A0}

/* reveal */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.js [data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none}}
.enquiry[hidden]{display:none}
