:root{--ink:#171612;--paper:#f6f1e8;--cream:#ebe1d1;--gold:#c6a15b;--muted:#746f66;--white:#fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.announcement{height:32px;background:var(--ink);color:#eadbbd;text-align:center;padding:8px 16px;font-size:11px;letter-spacing:2px;text-transform:uppercase}.announcement span{color:var(--gold);margin:0 10px}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,78px);background:rgba(246,241,232,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(23,22,18,.1);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-family:Italiana,serif;font-size:23px}.brand img{object-fit:contain}.brand small{display:block;font:500 8px 'DM Sans';letter-spacing:3px;text-transform:uppercase;color:var(--muted)}nav{display:flex;align-items:center;gap:32px;font-size:12px;letter-spacing:1.4px;text-transform:uppercase}nav a{transition:color .2s}nav a:hover{color:#9b783e}.nav-cta{border:1px solid var(--ink);padding:13px 18px}.menu-toggle{display:none;background:none;border:0;text-transform:uppercase;letter-spacing:1px}.hero{min-height:730px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden}.hero-copy{padding:clamp(80px,10vw,145px) 6vw 90px 8vw;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:#a17d41;margin:0 0 22px}.hero h1,.section h2{font:400 clamp(54px,6vw,91px)/.98 Italiana,serif;letter-spacing:-2px;margin:0}.hero h1 em{font-weight:400;color:#9e7a3e}.intro{max-width:580px;font-size:17px;line-height:1.75;color:var(--muted);margin:30px 0 36px}.hero-actions{display:flex;align-items:center;gap:32px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;min-height:52px;padding:0 26px;text-transform:uppercase;letter-spacing:1.8px;font-size:11px;font-weight:600;cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:white}.text-link{font-size:12px;text-transform:uppercase;letter-spacing:1.6px;border-bottom:1px solid #a7916b;padding:10px 0}.text-link span{margin-left:14px}.trust-row{display:flex;gap:28px;margin-top:74px;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase}.trust-row span:before{content:'◆';font-size:6px;color:var(--gold);margin-right:9px;vertical-align:2px}.hero-art{background:var(--cream);position:relative;display:grid;place-items:center}.hero-art:before{content:'';position:absolute;width:260px;height:260px;border:1px solid rgba(158,122,62,.35);border-radius:50%;top:10%;right:7%}.arch{width:min(72%,440px);height:560px;border-radius:230px 230px 12px 12px;background:var(--ink);display:grid;place-items:center;box-shadow:24px 26px 0 rgba(198,161,91,.22)}.arch img{width:75%;height:75%;object-fit:contain}.floating-note{position:absolute;left:7%;bottom:9%;background:var(--white);padding:21px 25px;width:280px;border-left:3px solid var(--gold);box-shadow:0 16px 40px #201a1012}.floating-note strong{display:block;font-family:Italiana;font-size:20px;margin-bottom:5px}.floating-note span{font-size:10px;line-height:1.5;color:var(--muted);letter-spacing:.5px}.marquee{background:var(--gold);overflow:hidden;white-space:nowrap;padding:18px 0;text-align:center;font-size:11px;letter-spacing:3px}.marquee i{font-style:normal;margin:0 26px}.section{padding:120px clamp(24px,7vw,110px)}.section-heading{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:50px;margin-bottom:65px}.section-heading h2{font-size:clamp(46px,5vw,72px);max-width:800px}.section-heading>p{font-size:14px;line-height:1.8;color:var(--muted);max-width:410px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-grid article{min-height:390px;padding:34px;display:flex;flex-direction:column;border:1px solid #cfc6b7;background:var(--white);position:relative}.service-grid article>span{font:20px Italiana;color:#a17d41}.service-grid h3{font:36px/1.1 Italiana;margin:63px 0 20px}.service-grid p{font-size:14px;line-height:1.7;color:var(--muted)}.service-grid article>div{margin-top:auto;border-top:1px solid #ddd4c5;padding-top:20px;display:flex;align-items:center;justify-content:space-between}.service-grid strong{font:24px Italiana}.service-grid small{color:var(--muted)}.service-grid .featured{background:var(--ink);color:white;border-color:var(--ink);transform:translateY(-16px)}.service-grid .featured p{color:#bdb7ad}.service-grid .featured>div{border-color:#45423c}.mini-label{position:absolute;right:28px;top:25px!important;text-transform:uppercase;letter-spacing:1.5px;font-size:9px!important}.practice-note{text-align:center;color:var(--muted);font-size:12px;margin-top:42px}.gallery-section{background:var(--ink);color:white}.section-heading.light>p{color:#aaa69f}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.gallery-item{grid-column:span 4;height:420px;overflow:hidden;background:#2b2925}.gallery-item:nth-child(4n+1){grid-column:span 7}.gallery-item:nth-child(4n+2){grid-column:span 5}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.gallery-item:hover img{transform:scale(1.03)}.gallery-empty{min-height:300px;border:1px solid #3c3934;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#2d2922,transparent 64%)}.gallery-empty span{font:42px Italiana;color:#d5b879}.gallery-empty p{color:#aaa69f;max-width:430px;line-height:1.7}.experience{display:grid;grid-template-columns:.82fr 1.18fr;gap:9vw;align-items:center}.experience-card{height:690px;background:var(--cream);display:grid;place-items:center;position:relative}.experience-card:before,.experience-card:after{content:'';position:absolute;border:1px solid var(--gold)}.experience-card:before{inset:34px}.experience-card:after{width:72%;height:72%;border-radius:50%}.experience-card img{width:74%;position:relative;z-index:1}.experience-copy h2{font-size:clamp(44px,5vw,69px)}.experience-copy>p:not(.eyebrow){color:var(--muted);line-height:1.8}.experience ol{list-style:none;padding:25px 0 0;margin:0}.experience li{display:flex;gap:22px;border-top:1px solid #d2c9ba;padding:20px 0}.experience li>span{color:#a17d41;font:18px Italiana}.experience li strong{font:20px Italiana}.experience li p{margin:6px 0;color:var(--muted);font-size:13px}.booking{background:#e8dfd0;display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw}.booking h2{font-size:clamp(48px,5vw,74px)}.booking-intro>p:not(.eyebrow){color:var(--muted);line-height:1.8}.contact-note{border-top:1px solid #c7bba7;margin-top:40px;padding-top:24px}.contact-note span{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#9e7a3e}.contact-note p{font-size:13px}.booking-form{background:var(--white);padding:40px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 18px}.form-grid label{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;border:0;border-bottom:1px solid #c7c0b4;background:transparent;padding:13px 0 10px;outline:none;border-radius:0;color:var(--ink)}.form-grid textarea{resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#9e7a3e}.full{grid-column:1/-1}.checkbox{display:flex;gap:12px;align-items:flex-start;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;color:var(--muted)}.checkbox input{width:16px;margin:0;accent-color:var(--gold)}.honeypot{position:absolute;left:-9999px}.button-gold{background:var(--gold);color:var(--ink);width:100%;justify-content:space-between;margin-top:28px;padding:0 20px}.button-gold:disabled{opacity:.6;cursor:wait}.form-status{font-size:13px;min-height:20px}.form-status.success{color:#386d4b}.form-status.error{color:#9b332c}footer{background:#100f0d;color:white;padding:54px clamp(24px,7vw,110px);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:70px}.footer-brand{display:flex;align-items:center;gap:16px}.footer-brand img{object-fit:contain}.footer-brand strong{display:block;font:27px Italiana}.footer-brand span{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#9d978e}.footer-links{display:flex;gap:24px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase}footer>p{font-size:10px;line-height:1.7;color:#8f8a82;text-align:right}.reveal{animation:rise .7s ease-out both}.hero-art{animation-delay:.15s}@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(max-width:900px){nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:25px;flex-direction:column;align-items:flex-start;border-bottom:1px solid #ccc}nav.open{display:flex}.menu-toggle{display:block}.hero{grid-template-columns:1fr}.hero-copy{padding:80px 7vw}.hero-art{min-height:620px}.section-heading,.experience,.booking{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.service-grid .featured{transform:none}.experience-card{height:520px}.booking{gap:50px}footer{grid-template-columns:1fr;gap:28px}.footer-links{flex-wrap:wrap}footer>p{text-align:left}}@media(max-width:560px){.announcement{font-size:9px}.site-header{height:68px}.brand{font-size:20px}.brand img{width:40px;height:40px}.hero h1{font-size:53px}.hero-copy{padding:66px 24px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.trust-row{flex-direction:column;gap:12px;margin-top:50px}.hero-art{min-height:500px}.arch{height:410px}.floating-note{width:260px}.section{padding:85px 24px}.section h2{font-size:47px;letter-spacing:-1px}.section-heading{margin-bottom:42px}.service-grid h3{margin-top:45px}.gallery-item,.gallery-item:nth-child(n){grid-column:span 12;height:390px}.experience-card{height:430px}.booking-form{padding:25px 20px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.footer-brand img{width:68px;height:68px}}

.booking-shell{min-width:0}.booking-progress{display:flex;align-items:center;background:#f3ede3;padding:22px 26px;border:1px solid #d6cbbc;border-bottom:0}.progress-item{display:flex;align-items:center;gap:8px;color:#918a80;white-space:nowrap}.progress-item span{display:grid;place-items:center;width:27px;height:27px;border:1px solid #bcb3a6;border-radius:50%;font-size:11px}.progress-item small{font-size:9px;text-transform:uppercase;letter-spacing:1.2px}.progress-item.active,.progress-item.complete{color:var(--ink)}.progress-item.active span,.progress-item.complete span{background:var(--gold);border-color:var(--gold)}.progress-line{height:1px;background:#cfc5b6;flex:1;margin:0 10px}.booking-step{display:none}.booking-step.active{display:block;animation:stepIn .25s ease-out}.step-heading{margin-bottom:28px}.step-heading>span{font-size:9px;letter-spacing:1.8px;text-transform:uppercase;color:#9b783e}.step-heading h3{font:38px/1.1 Italiana;margin:9px 0}.step-heading p{font-size:13px;color:var(--muted);margin:0}.booking-services{display:grid;gap:12px}.booking-service{width:100%;display:grid;grid-template-columns:1fr auto;gap:14px;text-align:left;background:white;border:1px solid #d7cfc2;padding:20px;cursor:pointer;transition:border .2s,box-shadow .2s}.booking-service:hover{border-color:#a68143}.booking-service.selected{border:2px solid var(--gold);padding:19px;box-shadow:0 8px 24px #45361612}.booking-service h4{font:23px Italiana;margin:0 0 7px}.booking-service p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}.booking-service strong{font:20px Italiana;white-space:nowrap}.booking-service small{display:block;color:var(--muted);margin-top:7px;font-size:10px}.step-actions{display:flex;justify-content:space-between;gap:16px;margin-top:28px}.step-actions.end{justify-content:flex-end}.step-actions .button-gold{width:auto;min-width:180px;margin-top:0}.button-back{background:transparent;border:1px solid #bdb3a5}.calendar-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.calendar-card,.time-panel{border:1px solid #d7cfc2;padding:20px;background:white}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-head strong{font:22px Italiana}.calendar-head button{width:34px;height:34px;border:1px solid #d7cfc2;background:white;cursor:pointer}.calendar-head button:disabled{opacity:.3}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekday-row span{text-align:center;color:#8a8378;font-size:8px;text-transform:uppercase;padding-bottom:8px}.calendar-day{aspect-ratio:1;border:0;background:transparent;cursor:pointer;font-size:11px;border-radius:50%}.calendar-day:hover:not(:disabled){background:#eee5d6}.calendar-day.selected{background:var(--gold);font-weight:700}.calendar-day:disabled{color:#ccc7bf;cursor:not-allowed;text-decoration:line-through}.calendar-day.empty{visibility:hidden}.selected-date-label{font:21px Italiana;margin:0 0 17px}.time-slots{display:grid;gap:8px}.time-slots>p{font-size:12px;color:var(--muted)}.time-slot{border:1px solid #d3cabd;background:white;padding:11px;cursor:pointer;text-align:left;font-size:11px}.time-slot:hover{border-color:#9e7a3e}.time-slot.selected{background:var(--ink);color:white;border-color:var(--ink)}.time-slot:disabled{background:#f3f0eb;color:#b6afa5;text-decoration:line-through;cursor:not-allowed}.step-error{color:#9b332c;font-size:12px;min-height:18px}.booking-summary{border:1px solid #d7cfc2}.summary-row{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:16px 18px;border-bottom:1px solid #e5ded3}.summary-row:last-child{border-bottom:0}.summary-row span{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted)}.summary-row strong{font-size:13px}.request-notice{background:#f2eadc;border-left:3px solid var(--gold);padding:16px 18px;margin-top:18px}.request-notice strong{font:18px Italiana}.request-notice p{font-size:11px;color:var(--muted);margin:4px 0 0}.booking-success{background:var(--white);padding:60px 35px;text-align:center;border:1px solid #d6cbbc}.booking-success>span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--gold);margin:0 auto 22px;font-size:24px}.booking-success h3{font:42px Italiana;margin:0 0 10px}.booking-success p{color:var(--muted);font-size:13px;margin-bottom:25px}.booking-success .button{margin:auto}@keyframes stepIn{from{opacity:0;transform:translateX(7px)}to{opacity:1;transform:none}}@media(max-width:700px){.booking-progress{padding:16px 12px}.progress-item small{display:none}.progress-line{margin:0 5px}.calendar-layout{grid-template-columns:1fr}.summary-row{grid-template-columns:85px 1fr}.step-actions{flex-wrap:wrap}.step-actions .button{flex:1;min-width:140px}}
.booking-page{background:#e8dfd0}.booking-header{position:relative;top:auto}.back-home{font-size:11px;text-transform:uppercase;letter-spacing:1.4px}.booking-page-main{max-width:1180px;margin:auto;padding:70px 24px 100px;display:grid;grid-template-columns:.58fr 1fr;gap:70px;align-items:start}.booking-page-title{position:sticky;top:40px}.booking-page-title h1{font:clamp(52px,6vw,78px)/.98 Italiana;margin:0}.booking-page-title>p:not(.eyebrow){color:var(--muted);line-height:1.8;max-width:410px}.booking-page .booking-form{border:1px solid #d6cbbc;border-top:0}.booking-footer{display:block;text-align:center;padding:28px}.booking-footer>p{text-align:center;margin:0}@media(max-width:900px){.booking-page-main{grid-template-columns:1fr;gap:35px;padding-top:50px}.booking-page-title{position:static}.booking-page-title h1{font-size:55px}}@media(max-width:560px){.back-home{font-size:9px}.booking-page-main{padding:38px 14px 70px}.booking-page .booking-form{padding:24px 18px}}
.booking-addon{margin-top:10px;border:1px dashed #bcae98;background:#f7f1e7;padding:18px 20px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}.booking-addon .addon-label{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#9b783e}.booking-addon h4{font:22px Italiana;margin:5px 0}.booking-addon p{font-size:11px;line-height:1.5;color:var(--muted);margin:0}.booking-addon>label{display:grid;grid-template-columns:auto auto;align-items:center;gap:5px 9px;cursor:pointer}.booking-addon input{width:20px;height:20px;grid-row:1/3;accent-color:var(--gold)}.booking-addon strong{font:18px Italiana}.booking-addon small{text-transform:uppercase;letter-spacing:1px;color:var(--muted)}@media(max-width:560px){.booking-addon{grid-template-columns:1fr}.booking-addon>label{justify-content:start}}

.booking-success .success-manage-link{width:min(100%,330px);margin:0 auto 12px}.booking-success .button-dark{margin-top:0}.manage-main{max-width:1180px;min-height:720px;margin:auto;padding:70px 24px 100px;display:grid;grid-template-columns:.62fr 1fr;gap:70px;align-items:start}.manage-intro{position:sticky;top:40px}.manage-intro h1{font:clamp(50px,5.5vw,76px)/1 Italiana;margin:0;letter-spacing:-1px}.manage-intro>p:not(.eyebrow){max-width:430px;color:var(--muted);font-size:14px;line-height:1.8}.private-link-note{margin-top:35px;padding:18px 20px;border-left:3px solid var(--gold);background:#f1e8da}.private-link-note strong,.private-link-note span{display:block}.private-link-note strong{font:19px Italiana}.private-link-note span{color:var(--muted);font-size:11px;margin-top:5px}.manage-card{background:var(--white);border:1px solid #d6cbbc;min-height:420px;padding:38px}.manage-loading,.manage-error{text-align:center;padding:55px 20px}.manage-loading>span{display:block;width:38px;height:38px;border:2px solid #ddd2c1;border-top-color:var(--gold);border-radius:50%;margin:0 auto 18px;animation:manageSpin .8s linear infinite}.manage-loading p{color:var(--muted);font-size:12px}.manage-error>span,.manage-result>span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#f0dfdc;color:#98372f;margin:0 auto 18px;font:24px Italiana}.manage-error h2,.manage-result h2{font:36px Italiana;margin:0 0 10px}.manage-error p,.manage-result p{color:var(--muted);line-height:1.7;font-size:13px}.manage-error .button,.manage-result .button{margin-top:18px}.manage-card-head{display:flex;justify-content:space-between;align-items:start;gap:18px;border-bottom:1px solid #ded5c7;padding-bottom:25px}.manage-overline,.field-label{display:block;font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:#9b783e;font-weight:600}.manage-card-head h2{font:36px Italiana;margin:7px 0 0}.status-pill{padding:8px 11px;border-radius:20px;background:#eee7da;color:#6d6253;font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:600;white-space:nowrap}.status-pill[data-status="confirmed"]{background:#dcebdd;color:#2f6840}.status-pill[data-status="cancelled"],.status-pill[data-status="declined"]{background:#f1dedb;color:#8d332d}.status-pill[data-status="completed"]{background:#e2e2e2;color:#555}.manage-summary{margin:10px 0 26px}.manage-summary>div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid #eee7db}.manage-summary span{font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}.manage-summary strong{font-size:13px}.manage-actions{display:grid;gap:12px}.manage-actions .button-gold{margin:0}.cancel-link{border:0;background:transparent;color:#94382f;text-decoration:underline;padding:10px;cursor:pointer;font-size:11px}.reschedule-panel{border-top:1px solid #ded5c7;margin-top:30px;padding-top:30px}.manage-date-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px}.manage-date-grid label{font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:#9b783e;font-weight:600}.manage-date-grid input{display:block;width:100%;margin-top:10px;padding:14px;border:1px solid #d7cfc2;background:white;color:var(--ink)}.manage-times{display:grid;gap:8px;margin-top:10px}.manage-times p{color:var(--muted);font-size:12px}.manage-result{text-align:center;border-top:1px solid #ded5c7;margin-top:30px;padding:38px 10px 10px}.manage-result>span{background:var(--gold);color:var(--ink)}.closed-appointment-note{background:#f2eadc;border-left:3px solid var(--gold);padding:16px 18px;color:var(--muted);font-size:12px;line-height:1.6}@keyframes manageSpin{to{transform:rotate(360deg)}}@media(max-width:900px){.manage-main{grid-template-columns:1fr;gap:35px;padding-top:50px}.manage-intro{position:static}.manage-intro h1{font-size:55px}}@media(max-width:560px){.manage-main{padding:38px 14px 70px}.manage-card{padding:25px 18px}.manage-card-head{display:grid}.manage-date-grid{grid-template-columns:1fr}.manage-summary>div{grid-template-columns:86px 1fr}.status-pill{justify-self:start}.manage-intro h1{font-size:47px}}
[hidden]{display:none!important}
