/* D · Sanctuary — a continuous journey through sound, light, and stillness. */
.homepage.sanctuary{--journey-nav-height:114px;--journey-top:calc(var(--journey-nav-height) + 20px);--display:'Cormorant Garamond',Georgia,serif;--night:#111410;--gold:#c7ab75;--paper:#f0eee1;--quiet:#bdbfb0;--button-bg:#c7ab75;--button-fg:#171a12;background:var(--night);color:var(--paper);font-family:'DM Sans',Arial,sans-serif}
.sanctuary .eyebrow{color:var(--gold);font-size:12px;letter-spacing:.17em;line-height:1.6;font-weight:400}
.sanctuary p{color:var(--quiet);font-size:16px;line-height:1.8}
.sanctuary h1,.sanctuary h2{font-family:var(--display);font-weight:400}.sanctuary h2{font-size:clamp(48px,5.2vw,72px);letter-spacing:-.035em;line-height:1.04}.sanctuary :is(h1,h2,h3) em{font-weight:400;color:#d6bf8d}
.sanctuary .site-button{border:1px solid #b4a078a6;color:var(--paper);border-radius:0;padding:15px 27px;min-height:50px;font-size:14px;letter-spacing:.015em;transition:background .25s,border-color .25s}
.sanctuary-arrow{display:inline-block;width:18px;height:18px;flex:none;vertical-align:middle;pointer-events:none}
.sanctuary .site-button:hover{background:#c6ab7a20;border-color:var(--gold);opacity:1}.sanctuary .text-link{color:var(--paper);font-size:14px;text-decoration-thickness:1px;text-decoration-color:#967b5a;text-underline-offset:8px}.sanctuary :is(a,button):focus-visible{outline:2px solid #e0c89d;outline-offset:6px}
.sanctuary-threshold{position:relative;isolation:isolate;min-height:710px;overflow:hidden;display:flex;flex-direction:column;background:#202319}
.sanctuary-room,.sanctuary-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.sanctuary-room{object-fit:cover;object-position:50% 48%;filter:brightness(.68) saturate(.42);animation:sanctuary-arrive 18s ease-out both}.sanctuary-shade{z-index:-1;background:linear-gradient(180deg,#111410bd,#11141015 24%,#11141022 60%,#111410),linear-gradient(90deg,#11141055,transparent 50%,#11141055)}
.sanctuary .sanctuary-header{width:100%;padding:27px 6vw;border:0;background:transparent;gap:28px}.sanctuary .wordmark{font-family:var(--display);font-size:29px;font-weight:500;letter-spacing:-.025em;line-height:1}.sanctuary .wordmark span{font-family:'DM Sans',Arial,sans-serif;color:#d8c5a9;font-size:10px;letter-spacing:.13em;margin-top:10px}.sanctuary .site-header nav{gap:30px}.sanctuary .site-header nav>a{font-size:14px;color:#eadcc9}.sanctuary .site-header .site-button{padding:12px 21px;font-size:13px;min-height:46px;border-color:#c5ac8177}
.sanctuary-arrival{text-align:center;padding:65px 24px 70px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.sanctuary .sanctuary-arrival h1{font-size:clamp(80px,8.5vw,125px);line-height:.95;letter-spacing:-.04em;margin:24px 0 25px;text-shadow:0 3px 45px #080e09aa}.sanctuary-arrival .business-motto{font-size:17px;max-width:37ch;line-height:1.8;color:#efe9d7;text-shadow:0 2px 16px #000}.sanctuary-arrival .site-button{margin-top:26px;min-width:170px;background:#151b1260;backdrop-filter:blur(5px)}
.sanctuary-threshold-foot{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:20px;margin:0 6vw 25px;color:#c6bea6;font-size:12px;letter-spacing:.03em}.sanctuary-threshold-foot>a{text-align:center;text-decoration:none;color:#d8c293;display:flex;flex-direction:column;align-items:center;gap:12px}.sanctuary-threshold-foot>span:last-child{text-align:right}.descent-line{width:1px;height:26px;background:linear-gradient(#c6ab7a,transparent)}
.sanctuary-experience{padding:48px 7vw 70px;background:radial-gradient(ellipse at 8% 55%,#40341d18,transparent 65%);max-width:1600px;margin:auto}
.experience-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:5vw;align-items:end;margin-bottom:47px}.experience-heading h2{margin-top:17px}.experience-heading>p{max-width:355px;justify-self:end;margin-bottom:5px}.experience-heading>p br{display:none}
.experience-journey{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:8vw;align-items:start;position:relative}.experience-stage{position:sticky;top:var(--journey-top);height:590px;max-height:calc(100svh - var(--journey-top) - 20px);min-width:0;overflow:hidden;background:#171910;isolation:isolate}.experience-stage:after{content:'';position:absolute;inset:0;border:1px solid #9c95693d;pointer-events:none;z-index:3}
.experience-scene{position:absolute;inset:0;opacity:0;transition:opacity 850ms ease;overflow:hidden}.experience-scene img{width:100%;height:100%;object-fit:cover}.scene-sound img{object-position:50% 54%;filter:brightness(.78) saturate(.7)}.scene-sound:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 58%,#10150fd9)}.scene-sound canvas{position:absolute;inset:auto -10% 30px;width:120%;height:130px;z-index:1;opacity:.38}.scene-light{background:#10140c}.experience-glow{position:absolute;inset:-20%;background:radial-gradient(ellipse at 62% 35%,#f3ce88b3 0%,#ac74384d 17%,#8a70262e 31%,transparent 57%);filter:blur(20px);animation:light-breathe 10s ease-in-out infinite alternate}.scene-light canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.48;filter:blur(.3px)}.scene-space img{object-position:50% 50%;filter:brightness(.48) saturate(.35)}.experience-space-shade{position:absolute;inset:0;background:linear-gradient(transparent,#10160e9c)}
.experience-stage[data-scene=sound] .scene-sound,.experience-stage[data-scene=light] .scene-light,.experience-stage[data-scene=space] .scene-space{opacity:1}
.experience-image-caption{position:absolute;inset:auto 26px 26px;display:flex;justify-content:space-between;align-items:baseline;gap:20px;color:#d5c9aa;z-index:4}.scene-word{display:none;font:italic 28px var(--display)}.experience-image-caption>span:last-child{font-size:11px;letter-spacing:.05em}.experience-stage[data-scene=sound] .word-sound,.experience-stage[data-scene=light] .word-light,.experience-stage[data-scene=space] .word-space{display:block}
.experience-chapters{padding-top:0;min-width:0}.experience-chapter{border-top:1px solid #69734b66;padding:31px 0 36px;min-height:310px;transition:border-color .4s}.experience-chapter.is-current{border-top-color:#c7ab75}.experience-chapter-label{display:flex;align-items:center;gap:16px;color:#c4b58c;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.experience-chapter-label .service-mark{float:none;flex-shrink:0;position:relative;margin:0;width:28px;height:28px}.sanctuary .sound-mark,.sanctuary .sound-mark:after{border-color:#bdab78}.sanctuary .circle-mark{border-color:#bdab78;border-right-color:transparent}.sanctuary .light-mark{background:radial-gradient(circle,#efe0af,#c3ab6580 30%,transparent 70%);transform:scale(1.2)}.experience-chapter h3{font:400 clamp(35px,3.5vw,50px)/1.03 var(--display);letter-spacing:-.025em;margin:23px 0 17px}.experience-chapter p{max-width:380px;font-size:16px;line-height:1.8}
.sanctuary-with-chris{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;margin:0 auto;padding:68px 7vw 64px;max-width:1600px;border-top:1px solid #75804a33;background:linear-gradient(150deg,#20251a88,transparent 70%)}.chris-introduction h2{font-size:clamp(42px,4.2vw,59px);margin:22px 0}.chris-introduction p{max-width:440px}.sanctuary-signature{display:block;color:#cbb88d;font:italic 35px var(--display);margin-top:20px}.sanctuary-next-step{border-left:1px solid #8d976041;padding:4px 0 4px 4vw;align-self:center}.sanctuary-next-step>.service-mark{float:right;width:30px;height:30px;margin:0 0 0 15px}.sanctuary-next-step h3{font:400 42px/1.04 var(--display);letter-spacing:-.02em;margin:23px 0 20px}.sanctuary-next-step p{max-width:355px}.sanctuary-next-step .site-button{margin-top:27px;background:#c7b17f;color:#171c12;border-color:#c7b17f}.sanctuary-next-step .site-button:hover{background:#d6c294}
.sanctuary .sanctuary-footer{border-color:#a59e6940;margin:0 6vw;padding:25px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#b6b39a;font-size:12px}.sanctuary-footer>span:first-child{font:26px var(--display);color:var(--paper)}.sanctuary-footer a{color:#d6c397}.sanctuary-image-note{border-top:1px solid #a1986325;padding:14px 6vw 20px;font-size:12px;color:#a8aa96;text-align:center}.sanctuary-image-note a{color:#d6c397;margin-left:6px}
@keyframes sanctuary-arrive{from{transform:scale(1.035)}to{transform:scale(1)}}@keyframes light-breathe{from{transform:translate(-3%,2%) scale(1)}to{transform:translate(3%,-2%) scale(1.08)}}
.motion-paused .experience-scene,.motion-paused .experience-chapter{transition:none}
@media(max-width:1000px){.sanctuary .site-header nav>a:not(.site-button){display:none}.sanctuary-threshold{min-height:680px}.sanctuary-experience{padding-left:6vw;padding-right:6vw}.experience-journey{gap:5vw;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.experience-heading{grid-template-columns:1.1fr 1fr}.experience-heading h2{font-size:56px}.experience-heading>p{font-size:15px}.experience-chapter{min-height:315px}.experience-chapter h3{font-size:43px}.experience-stage{height:560px}.experience-image-caption{left:18px;right:18px}.experience-image-caption>span:last-child{display:none}.sanctuary-with-chris{gap:5vw}.sanctuary-next-step{padding-left:4vw}.sanctuary-next-step h3{font-size:37px}}
@media(max-width:700px){.experience-heading{grid-template-columns:1fr;gap:22px;margin-bottom:32px}.experience-heading h2{font-size:54px}.experience-heading>p{max-width:430px;justify-self:start;font-size:16px}/* On narrow screens, interleave each visual with its chapter in normal flow. */
.experience-journey{display:flex;flex-direction:column;gap:0}.experience-stage,.experience-chapters{display:contents;position:static}.experience-stage:after,.experience-image-caption{display:none}.experience-scene{position:relative;inset:auto;opacity:1;transition:none;flex:none;width:100%;height:245px;border:1px solid #9c95693d;isolation:isolate}.experience-scene.scene-sound{order:0}.experience-chapter[data-scene=sound]{order:1}.experience-scene.scene-light{order:2}.experience-chapter[data-scene=light]{order:3}.experience-scene.scene-space{order:4}.experience-chapter[data-scene=space]{order:5}.scene-sound img{object-position:50% 58%}.scene-sound canvas{height:80px;bottom:8px;opacity:.25}.experience-stage:after{inset:0}.experience-image-caption{bottom:19px}.scene-word{font-size:27px}.experience-chapter{padding:25px 3px 38px;min-height:0;width:100%;border-top:0}.experience-chapter h3{font-size:43px}.experience-chapter h3 br{display:none}.experience-chapter p{max-width:none}.experience-chapter-label{font-size:12px}.experience-chapter-label .service-mark{width:26px;height:26px}.sanctuary-experience{padding:38px 7vw 25px}.sanctuary-with-chris{grid-template-columns:1fr;padding:48px 7vw;gap:40px}.chris-introduction h2{font-size:46px}.sanctuary-next-step{border-left:0;border-top:1px solid #929d6659;padding:32px 0 0}.sanctuary-next-step h3{font-size:42px}.sanctuary-next-step h3 br{display:none}.sanctuary-next-step p{max-width:460px}.sanctuary .sanctuary-footer{flex-wrap:wrap}.sanctuary-footer>span:nth-child(2){display:none}}
@media(max-width:560px){.sanctuary-threshold{min-height:680px}.sanctuary .sanctuary-header{padding:23px 6vw;gap:20px;align-items:center}.sanctuary .sanctuary-header .wordmark{font-size:26px;line-height:.98;flex:0 1 160px;max-width:160px}.sanctuary .wordmark span{font-size:8px;line-height:1.6;letter-spacing:.1em;max-width:160px}.sanctuary .site-header .site-button{font-size:12px;padding:11px 12px;max-width:133px;min-height:46px}.sanctuary-arrival{padding:40px 7vw 42px}.sanctuary-arrival .eyebrow{font-size:11px;letter-spacing:.12em}.sanctuary .sanctuary-arrival h1{font-size:clamp(68px,18vw,89px);margin:25px 0;line-height:.98}.sanctuary-arrival .business-motto{font-size:16px;max-width:28ch;line-height:1.75}.sanctuary-arrival .site-button{margin-top:25px}.sanctuary-room{object-position:53% 50%}.sanctuary-threshold-foot{grid-template-columns:1fr;margin:0 7vw 18px;justify-items:center;gap:13px}.sanctuary-threshold-foot>span:first-child{font-size:12px}.sanctuary-threshold-foot>span:last-child{display:none}.sanctuary-threshold-foot>a{font-size:12px;gap:8px}.descent-line{height:21px}.sanctuary .eyebrow{font-size:12px}.experience-heading h2{font-size:49px}.experience-scene{height:220px}.experience-chapter h3{font-size:39px}.experience-chapter p{font-size:16px}.sanctuary-signature{font-size:34px}.sanctuary .sanctuary-footer{gap:15px;padding:24px 0}.sanctuary-footer>span:first-child{font-size:24px}.sanctuary-footer>a{font-size:12px}.sanctuary-image-note{text-align:left;line-height:1.7}.personal-mini.sanctuary-mini .mini-title{font-size:58px;margin-top:46px}.personal-mini.sanctuary-mini .mini-nav{font-size:11px}.sanctuary-credits{font-size:12px}}
@media(prefers-reduced-motion:reduce){.sanctuary-room,.experience-glow{animation:none}.sanctuary *{scroll-behavior:auto!important;transition:none!important}}


/* Sanctuary's homepage invitation and dedicated experience page. */
.sanctuary-arrival .sanctuary-offering{font-size:15px;line-height:1.65;max-width:44ch;margin-top:12px;color:#dfd9c8;text-shadow:0 2px 16px #000}
.sanctuary-preview{padding-top:85px;padding-bottom:90px;background:radial-gradient(ellipse at 15% 50%,#4b3b201c,transparent 70%)}
.sanctuary-preview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);grid-template-areas:'photo heading' 'photo copy';column-gap:7vw}
.sanctuary-preview-heading{grid-area:heading;align-self:end;min-width:0}
.sanctuary-preview-photo{grid-area:photo;align-self:center;height:clamp(480px,44vw,600px);overflow:hidden;background:#24241d}
.sanctuary-preview-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:contrast(.85) brightness(.64) saturate(.8) blur(1px);transform:scale(1.015)}
.sanctuary-preview-copy{grid-area:copy;align-self:start;min-width:0}
.sanctuary .sanctuary-preview-heading h2{font-size:clamp(54px,5.5vw,80px);line-height:1.03;letter-spacing:-.035em;margin:22px 0 25px}
.sanctuary .sanctuary-preview-copy>p{max-width:37ch;font-size:17px;line-height:1.8}
.sanctuary-preview-elements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;padding:25px 0 0;margin:30px 0 0;border-top:1px solid #9c956940;color:var(--quiet);font-size:13px}
.sanctuary-preview-elements li{display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.sanctuary-preview-elements .service-mark{float:none;flex:none;margin:0;width:28px;height:28px}
.sanctuary .sanctuary-preview-copy>.site-button{gap:26px;margin-top:32px;min-height:54px;padding:16px 25px;background:var(--gold);color:#171a12;border-color:var(--gold)}
.sanctuary .sanctuary-preview-copy>.site-button:hover{background:#d6c294}
.sanctuary-detail .sanctuary-header{border-bottom:1px solid #9c956926}
.sanctuary-detail .sanctuary-header a[aria-current=page]{color:var(--gold);text-decoration:underline;text-underline-offset:7px;text-decoration-color:#9c956969}
.sanctuary-detail-intro{max-width:1600px;margin:auto;padding:36px 7vw 58px}
.sanctuary-detail-opening{display:grid;grid-template-columns:1.45fr 1fr;gap:7vw;align-items:end}
.sanctuary-detail-opening h1{font-size:clamp(60px,6.6vw,98px);line-height:1;letter-spacing:-.035em;margin:24px 0 0}
.sanctuary-detail-opening>p{max-width:380px;justify-self:end;padding-bottom:5px}
.sanctuary-detail-journey{padding-top:0;padding-bottom:70px}
.sanctuary-detail .experience-chapter h2{font-size:clamp(43px,4.3vw,60px);line-height:1.04;margin:20px 0 18px}
.sanctuary-questions{max-width:1600px;margin:auto;padding:65px 7vw 70px;border-top:1px solid #9c956933;display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;background:linear-gradient(145deg,#20251a77,transparent 65%)}
.sanctuary-questions-heading h2{font-size:clamp(43px,4.5vw,62px);margin-top:22px}
.sanctuary-question-list{min-width:0}
.sanctuary-question-list details{border-bottom:1px solid #9c956940}
.sanctuary-question-list details:first-child{border-top:1px solid #9c956940}
.sanctuary-question-list summary{display:flex;align-items:center;justify-content:space-between;gap:25px;cursor:pointer;list-style:none;padding:23px 0;color:var(--paper);font-size:16px;line-height:1.6}
.sanctuary-question-list summary::-webkit-details-marker{display:none}
.sanctuary-question-list summary::after{content:'+';flex:none;color:var(--gold);font-size:23px;font-weight:400;line-height:1}
.sanctuary-question-list details[open] summary::after{content:'−'}
.sanctuary-question-list summary:hover{color:var(--gold)}
.sanctuary-question-list summary:focus-visible{outline:2px solid #e0c89d;outline-offset:5px}
.sanctuary-question-list p{max-width:53ch;padding:0 28px 25px 0;font-size:15px;line-height:1.8}
.sanctuary-detail-invitation{max-width:780px;margin:auto;padding:35px 7vw 75px;text-align:center}
.sanctuary-detail-invitation .service-mark{float:none;margin:0 auto 22px}
.sanctuary-detail-invitation p{font:400 clamp(28px,3vw,37px)/1.3 var(--display);color:var(--paper);text-wrap:balance}
.sanctuary-detail-invitation .site-button{margin-top:30px;background:var(--gold);color:#171a12;border-color:var(--gold)}
.sanctuary-detail-invitation .site-button:hover{background:#d6c294}
@media(max-width:1000px){
 .sanctuary-preview-layout{column-gap:5vw}
 .sanctuary-preview-photo{height:520px}
 .sanctuary .sanctuary-preview-heading h2{font-size:clamp(47px,5.5vw,60px)}
 .sanctuary .sanctuary-preview-copy>p{font-size:16px}
 .sanctuary-preview-elements{gap:12px;font-size:12px}
 .sanctuary-detail-opening{gap:5vw;grid-template-columns:1.35fr 1fr}
 .sanctuary-detail-opening h1{font-size:clamp(52px,6.6vw,76px)}
 .sanctuary-detail-opening>p{font-size:15px}
 .sanctuary-questions{gap:5vw;grid-template-columns:1fr 1.25fr}
}
@media(max-width:700px){
 .sanctuary-preview{padding-top:55px;padding-bottom:60px}
 .sanctuary-preview-layout{grid-template-columns:1fr;grid-template-areas:'heading' 'photo' 'copy';gap:36px}
 .sanctuary-preview-photo{height:clamp(300px,78vw,430px)}
 .sanctuary .sanctuary-preview-heading h2{font-size:clamp(46px,10.5vw,66px);margin:18px 0 0}
 .sanctuary .sanctuary-preview-copy>p{max-width:42ch}
 .sanctuary-preview-elements{margin-top:26px;padding-top:23px;font-size:13px}
 .sanctuary .sanctuary-preview-copy>.site-button{margin-top:28px}
 .sanctuary-detail-intro{padding:28px 7vw 35px}
 .sanctuary-detail-opening{grid-template-columns:1fr;gap:25px}
 .sanctuary-detail-opening h1{font-size:clamp(49px,9.5vw,70px);margin-top:20px}
 .sanctuary-detail-opening>p{max-width:470px;justify-self:start;font-size:16px;padding:0}
 .sanctuary-detail-journey{padding-top:0;padding-bottom:8px}
 .sanctuary-detail .experience-chapter h2{font-size:44px;margin:17px 0}
 .sanctuary-detail .experience-chapter h2 br{display:none}
 .sanctuary-questions{grid-template-columns:1fr;gap:32px;padding:42px 7vw}
 .sanctuary-questions-heading h2{font-size:46px;margin-top:18px;max-width:390px}
 .sanctuary-questions-heading h2 br{display:none}
 .sanctuary-question-list summary{font-size:15px;padding:21px 0;gap:18px}
 .sanctuary-question-list p{font-size:15px;padding-right:15px}
.sanctuary-detail-invitation{padding:25px 7vw 55px;max-width:580px}
}

/* D only: the booking calendar carries Sanctuary's type, symbols, and gold rules. */
.sanctuary .site-header nav>.site-button{display:inline-flex}
.sanctuary-booking{--booking-panel:#191e16;--booking-line:#454b38}
.sanctuary-booking .sanctuary-header{border-bottom:1px solid #9c956926}
.booking-intro{max-width:1520px;margin:auto;padding:36px 6vw 0}
.booking-intro-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:7vw;align-items:end;margin:0 0 32px}
.booking-intro-heading h1{font-size:clamp(58px,6vw,88px);letter-spacing:-.04em;line-height:1;margin:17px 0 0}
.booking-intro-heading>p{max-width:330px;justify-self:end;padding-bottom:6px;font-size:15px}
.booking-preview-note{display:flex;gap:18px;align-items:baseline;padding:14px 18px;background:#242b1d;color:#c6c9b8;font-size:12px;line-height:1.7;border-left:2px solid var(--gold)}
.booking-preview-note strong{font-weight:500;white-space:nowrap;color:#e3cf9e}
.booking-root{max-width:1520px;padding:0 6vw 70px;margin:auto}
.booking-progress{display:flex;gap:35px;list-style:none;margin:0;padding:28px 0;color:#858d78;font-size:12px;border-bottom:1px solid var(--booking-line)}
.booking-progress li{display:flex;align-items:center;gap:10px}
.booking-progress li>span{display:grid;place-items:center;border:1px solid #545c45;border-radius:50%;width:25px;height:25px;font-size:11px}
.booking-progress li[aria-current]{color:var(--paper)}
.booking-progress li[aria-current]>span{background:var(--gold);border-color:var(--gold);color:var(--night)}
.booking-progress .is-done{color:var(--gold)}
.booking-progress .is-done>span{border-color:#958157}
.booking-choose{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.8fr)}
.booking-services{padding:35px 32px 15px 0;border-right:1px solid var(--booking-line)}
.sanctuary .booking-services h2{font-size:43px;line-height:1.05;margin:14px 0 24px}
.booking-services h2 em{display:block}
.booking-services fieldset{border:0;margin:0;padding:0;display:grid;gap:11px;min-width:0}
.booking-service{position:relative;display:block;cursor:pointer}
.booking-service>input{position:absolute;left:18px;top:18px;width:1px;height:1px;opacity:0}
.booking-service-body{display:flex;flex-direction:column;gap:10px;border:1px solid var(--booking-line);padding:18px;transition:background .2s,border-color .2s}
.booking-service:hover .booking-service-body{border-color:#938260;background:#1d2318}
.booking-service>input:checked+.booking-service-body{border-color:var(--gold);background:#272c1f}
.booking-service>input:focus-visible+.booking-service-body{outline:2px solid #e0c89d;outline-offset:4px}
.booking-service-top{display:flex;gap:12px;align-items:center;margin-bottom:2px}
.booking-service .service-mark{float:none;flex:none;width:25px;height:25px;margin:0}
.booking-service-duration{font-size:11px;color:#c5c6b4;margin-left:auto}
.booking-radio{display:grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid #91967e;flex:none}
.booking-service input:checked+.booking-service-body .booking-radio{border-color:var(--gold)}
.booking-service input:checked+.booking-service-body .booking-radio::after{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold)}
.booking-service-body>strong{font-size:15px;line-height:1.4;font-weight:500;color:var(--paper)}
.booking-service-description{font-size:12px;line-height:1.7;color:#b6bdab}
.sanctuary p.booking-service-note{font-size:11px;line-height:1.7;margin:14px 0 15px;color:#a9ae99}
.booking-text-button{display:inline-flex;align-items:center;gap:10px;border:0;padding:8px 0;min-height:44px;background:none;color:var(--gold);font-size:12px;line-height:1.6;text-decoration:none;cursor:pointer;text-align:left}
.booking-text-button:hover{color:#eee0bd;text-decoration:underline;text-underline-offset:5px}
.booking-availability{min-width:0;padding:35px 0 0 38px}
.sanctuary .booking-availability h2{font-size:42px;letter-spacing:-.025em;line-height:1.1;margin:14px 0 11px}
.sanctuary .booking-availability-heading>p{font-size:13px}
.booking-date-and-time{display:grid;grid-template-columns:minmax(0,1fr) 138px;gap:28px;margin-top:35px;min-height:320px}
.booking-month-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}
.booking-month-nav h3{font-family:'DM Sans',Arial,sans-serif;font-weight:400;font-size:17px;letter-spacing:0;color:var(--paper)}
.booking-month-nav>div{display:flex;gap:5px}
.booking-month-button{display:grid;place-items:center;border:1px solid #5c634a;background:none;color:#e2d1ac;width:36px;height:36px;font-size:17px;cursor:pointer}
.booking-month-button:hover:not(:disabled){background:#2d3423;border-color:var(--gold)}
.booking-month-button:disabled{opacity:.3;cursor:default}
.booking-calendar{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0 5px;text-align:center}
.booking-calendar th{font-size:11px;font-weight:400;color:#acb29d;height:27px;vertical-align:top}
.booking-calendar abbr{text-decoration:none}
.booking-calendar td{height:40px;padding:0;vertical-align:middle}
.booking-day{display:grid;place-items:center;position:relative;border:1px solid transparent;border-radius:50%;width:39px;height:39px;margin:auto;padding:0;background:#272f20;color:#f0eee1;font:400 13px 'DM Sans',Arial,sans-serif;cursor:pointer}
.booking-day:not(:disabled):hover{border-color:var(--gold);background:#3c442d}
.booking-day[aria-pressed=true]{background:var(--gold);color:#171b12;font-weight:600}
.booking-day:disabled{color:#737b65;background:none;cursor:default}
.sanctuary .booking-day:focus-visible{outline-offset:2px}
.sanctuary p.booking-calendar-key{display:flex;align-items:center;gap:9px;font-size:11px;color:#aeb6a0;margin-top:13px}
.booking-calendar-key>span{width:8px;height:8px;border-radius:50%;background:#66714f}
.booking-times{border-left:1px solid var(--booking-line);padding-left:23px;min-width:0}
.booking-times>.eyebrow{font-size:10px;letter-spacing:.1em;display:block;margin-top:9px}
.booking-times h3{font:400 12px/1.5 'DM Sans',Arial,sans-serif;margin:12px 0 14px;color:var(--quiet)}
.booking-time-list{display:grid;gap:10px}
.booking-time{width:100%;min-height:43px;border:1px solid #65704e;background:none;color:#f0eee1;font-size:12px;cursor:pointer;padding:8px 5px}
.booking-time:hover{background:#252e1c;border-color:var(--gold)}
.booking-time[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--night);font-weight:500}
.booking-time-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:238px}
.booking-time-empty .service-mark{float:none;width:29px;height:29px;margin:0 0 17px}
.sanctuary .booking-time-empty p{font-size:12px;line-height:1.8;color:#aeb6a0}
.sanctuary p.booking-time-zone{font-size:11px;line-height:1.7;color:#aeb6a0;display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:21px}
.booking-time-zone>span:first-child{font-size:17px;margin-right:4px;color:var(--gold)}
.booking-time-zone strong{font-weight:400;color:#d1d5c0;overflow-wrap:anywhere}
.booking-selection-bar{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--booking-line);margin-top:25px;padding:22px 0}
[data-booking-selection]{display:grid;gap:6px;max-width:430px}
[data-booking-selection]>span{font-size:11px;line-height:1.7;color:#b8bea9}
[data-booking-selection]>strong{font-size:12px;font-weight:400;line-height:1.8;color:var(--paper)}
.booking-selection-separator{padding:0 3px}
.sanctuary .booking-primary{background:var(--gold);color:#171a12;border-color:var(--gold);gap:25px;flex-shrink:0}
.sanctuary .booking-primary:hover{background:#ddc491;border-color:#ddc491}
.sanctuary .booking-primary:disabled{background:#333c29;color:#b3baa5;border-color:#414b34;cursor:not-allowed;opacity:.65}
.booking-next-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.8fr)}
.booking-summary{border-right:1px solid var(--booking-line);padding:45px 32px 35px 0;min-width:0}
.booking-summary-mark{display:flex;align-items:center;gap:14px}
.booking-summary-mark .service-mark{float:none;flex:none;width:30px;height:30px;margin:0}
.sanctuary .booking-summary h2{font-size:36px;line-height:1.13;letter-spacing:-.025em;margin:26px 0}
.booking-summary-list{display:grid;gap:22px;margin:0 0 23px}
.booking-summary-list dt,.booking-contact-review dt{font-size:11px;color:#a4ad96;line-height:1.5;margin-bottom:5px}
.booking-summary-list dd,.booking-contact-review dd{font-size:14px;line-height:1.7;color:var(--paper);margin:0;overflow-wrap:anywhere}
.booking-example{color:#a4ad96;font-size:11px}
.booking-details{padding:44px 0 42px 55px;max-width:660px}
.sanctuary .booking-details h2{font-size:54px;line-height:1.05;margin:16px 0 22px}
.sanctuary .booking-details>p{font-size:14px;line-height:1.8;max-width:420px}
.booking-details form{margin-top:30px}
.booking-field{display:grid;gap:10px;margin:0 0 23px}
.booking-field label{font-size:13px;color:var(--paper)}
.booking-field input{width:100%;min-height:52px;border:1px solid #6d765a;border-radius:0;padding:13px 16px;background:#191f15;color:var(--paper);font:400 16px 'DM Sans',Arial,sans-serif;box-shadow:none}
.booking-field input::placeholder{color:#939e84;font-size:13px}
.booking-field input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.booking-form-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:34px}
.booking-contact-review{display:grid;gap:20px;padding:25px 0 15px;margin:24px 0 0;border-top:1px solid var(--booking-line)}
.booking-review-note{background:#242b1d;border-left:2px solid #938260;padding:18px 20px;margin:27px 0}
.booking-review-note>strong{font-size:13px;color:#ddd2b5;font-weight:500}
.sanctuary .booking-review-note p{font-size:12px;margin:8px 0 0;line-height:1.8}
.booking-complete{max-width:700px;margin:auto;text-align:center;padding:55px 0 35px}
.booking-complete-mark{display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--gold);border-radius:50%;margin:0 auto 22px;color:var(--gold);font-size:23px}
.sanctuary .booking-complete h2{font-size:clamp(45px,5vw,65px);line-height:1.02;margin:20px 0 24px}
.sanctuary .booking-complete>p{max-width:450px;margin:auto;font-size:14px}
.booking-complete-selection{display:grid;gap:8px;padding:25px 15px;margin:30px auto 22px;max-width:450px;border-top:1px solid var(--booking-line);border-bottom:1px solid var(--booking-line)}
.booking-complete-selection>strong{font-weight:500;font-size:15px;color:var(--paper)}
.booking-complete-selection>span{font-size:12px;line-height:1.7;color:var(--quiet)}
.booking-complete-selection>span:last-child{font-size:11px;color:#aab399}
.booking-complete-actions{display:flex;align-items:center;justify-content:center;gap:30px}
.sanctuary-booking [data-step-heading]{scroll-margin-top:calc(var(--journey-nav-height) + 30px)}
.sanctuary-booking [data-step-heading]:focus{outline:0}
@media(max-width:1100px){
 .booking-choose,.booking-next-layout{grid-template-columns:minmax(235px,.85fr) minmax(0,1.65fr)}
 .booking-services,.booking-summary{padding-right:25px}
 .booking-availability{padding-left:27px}
 .booking-date-and-time{grid-template-columns:1fr;gap:22px;margin-top:28px}
 .booking-times{border-left:0;border-top:1px solid var(--booking-line);padding:18px 0 0}
 .booking-times>.eyebrow{margin:0}
 .booking-times h3{margin:8px 0 12px}
 .booking-time-list{grid-template-columns:repeat(4,1fr);gap:8px}
 .booking-time-empty{height:auto;flex-direction:row;justify-content:flex-start;gap:12px;text-align:left;padding:10px 0 0}
 .booking-time-empty .service-mark{margin:0;width:20px;height:20px}
 .booking-time-empty p br{display:none}
 .booking-selection-bar{flex-wrap:wrap;gap:16px}
 .booking-details{padding-left:35px}
 .booking-form-actions{flex-wrap:wrap}
}
@media(max-width:760px){
 .booking-intro{padding:28px 6vw 0}
 .booking-intro-heading{grid-template-columns:1fr;gap:22px}
 .booking-intro-heading h1{font-size:62px}
 .booking-intro-heading>p{justify-self:start;max-width:400px;font-size:14px;padding:0}
 .booking-preview-note{flex-direction:column;gap:2px;font-size:11px;padding:12px 14px}
 .booking-root{padding:0 6vw 40px}
 .booking-progress{justify-content:space-between;gap:12px;font-size:11px;padding:24px 0}
 .booking-progress li{gap:7px}
 .booking-progress li>span{width:22px;height:22px;flex:none;font-size:10px}
 .booking-choose,.booking-next-layout{grid-template-columns:1fr}
 .booking-services{padding:30px 0;border-right:0;border-bottom:1px solid var(--booking-line)}
 .sanctuary .booking-services h2{font-size:38px;margin:12px 0 22px}
 .booking-services h2 br{display:none}
 .booking-services h2 em{display:inline}
 .booking-service-body{padding:16px 18px;gap:6px}
 .booking-service-top{margin:0 0 4px}
 .booking-service .service-mark{width:22px;height:22px}
 .booking-availability{padding:30px 0 0}
 .sanctuary .booking-availability h2{font-size:38px;margin-top:12px}
 .booking-date-and-time{grid-template-columns:1fr;gap:24px;max-width:480px;margin-top:27px}
 .booking-month-nav{margin-bottom:13px}
 .booking-day{width:40px;height:40px}
 .booking-calendar td{height:45px}
 .booking-times{padding-top:19px}
 .booking-time-list{grid-template-columns:repeat(2,1fr);gap:10px}
 .booking-time{min-height:46px;font-size:13px}
 .booking-selection-bar{margin-top:22px;padding-bottom:0}
 .booking-selection-bar>.site-button{width:100%;justify-content:space-between}
 .booking-summary{padding:28px 0;border-right:0;border-bottom:1px solid var(--booking-line)}
 .sanctuary .booking-summary h2{font-size:30px;margin:17px 0 20px}
 .booking-summary-list{grid-template-columns:1fr 1.2fr;gap:18px}
 .booking-summary-list dd{font-size:12px}
 .booking-details{padding:30px 0 10px;max-width:none}
 .sanctuary .booking-details h2{font-size:48px}
 .booking-form-actions{flex-direction:column-reverse;align-items:stretch;gap:14px}
 .booking-form-actions>.site-button{justify-content:space-between}
 .booking-details>.booking-primary{width:100%;justify-content:space-between}
 .booking-complete{padding:35px 0 15px}
 .booking-complete-actions{flex-direction:column;gap:12px}
}
@media(max-width:380px){
 .booking-progress{font-size:10px;gap:7px}
 .booking-progress li{gap:5px}
 .booking-progress li>span{width:19px;height:19px}
 .booking-intro-heading h1{font-size:55px}
 .booking-day{width:35px;height:35px}
 .booking-preview-note{font-size:11px}
}

/* Pixelcot's rotating, drawn-line hamburger, adapted to Sanctuary's palette. */
.sanctuary-menu-toggle{display:none}
.sanctuary .sanctuary-header .sanctuary-mobile-nav{display:none}
@media(max-width:1000px){
 .sanctuary .sanctuary-header{position:relative;z-index:20}
 .sanctuary .sanctuary-header .sanctuary-desktop-nav{display:none}
 .sanctuary .sanctuary-menu-toggle{display:grid;place-items:center;flex:none;width:48px;height:48px;margin-left:auto;padding:0;border:0;background:transparent;color:var(--gold);cursor:pointer;-webkit-tap-highlight-color:transparent}
 .sanctuary-menu-toggle svg{width:44px;height:44px;overflow:visible;transform:rotate(0deg);transition:transform 600ms cubic-bezier(.4,0,.2,1)}
 .sanctuary-menu-toggle path{fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;transition:stroke-dasharray 600ms cubic-bezier(.4,0,.2,1),stroke-dashoffset 600ms cubic-bezier(.4,0,.2,1)}
 .sanctuary-menu-toggle .sanctuary-menu-outer{stroke-dasharray:12 63;stroke-dashoffset:0}
 .sanctuary-menu-toggle[aria-expanded=true] svg{transform:rotate(-45deg)}
 .sanctuary-menu-toggle[aria-expanded=true] .sanctuary-menu-outer{stroke-dasharray:20 300;stroke-dashoffset:-32.42}
 .sanctuary .sanctuary-menu-toggle:hover{color:#ead2a1}
 .sanctuary .sanctuary-menu-toggle:focus-visible{outline-offset:3px}
 .sanctuary .sanctuary-header.is-menu-open{background:#171c14}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav:not([hidden]){display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;inset:100% 0 auto;padding:8px 6vw 27px;background:#171c14;border-top:1px solid #9c956940;border-bottom:1px solid #9c95696b;box-shadow:0 22px 28px #080d0840;animation:sanctuary-menu-arrive 200ms ease-out}
 .sanctuary .sanctuary-header nav.sanctuary-mobile-nav>a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px;padding:15px 0;border-bottom:1px solid #9c95693d;color:var(--paper);font:400 33px/1.15 var(--display);letter-spacing:-.025em;text-decoration:none}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav>a:last-child{border-bottom:0}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav>a>span{font:400 18px/1 'DM Sans',Arial,sans-serif;color:var(--gold)}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav>a:is(:hover,[aria-current=page]){color:var(--gold);text-decoration:none}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav>a[aria-current=page]>span{font-size:0}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav>a[aria-current=page] .sanctuary-arrow{display:none}
 .sanctuary .sanctuary-header .sanctuary-mobile-nav>a[aria-current=page]>span::after{content:'';display:block;width:6px;height:6px;background:var(--gold);border-radius:50%;margin:0 6px}
}
@keyframes sanctuary-menu-arrive{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.motion-paused .sanctuary-menu-toggle svg,.motion-paused .sanctuary-menu-toggle path{transition:none}
.motion-paused .sanctuary-mobile-nav{animation:none!important}
@media(prefers-reduced-motion:reduce){.sanctuary .sanctuary-header .sanctuary-mobile-nav{animation:none!important}}

/* Continuous Underline by uibuttons, adapted to Sanctuary's text links.
   https://codepen.io/uibuttons/pen/RVqWGy */
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a){
 position:relative;display:inline-flex;align-items:center;padding-block:8px;text-decoration:none;
}
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a):hover{
 text-decoration:none;opacity:1;
}
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a)::before,
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a)::after{
 content:'';position:absolute;bottom:1px;width:0;height:0;border-bottom:1px solid var(--gold);pointer-events:none;
}
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a)::before{
 left:0;border-bottom-color:transparent;transition:width 0s ease,border-bottom-color .5s ease;
}
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a)::after{
 right:0;transition:width .5s ease;
}
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a):is(:hover,:focus-visible,[aria-current=page])::before{
 width:100%;border-bottom-color:var(--gold);transition:width .5s ease;
}
.sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a):is(:hover,:focus-visible,[aria-current=page])::after{
 width:100%;border-bottom-color:transparent;transition:none;
}
.motion-paused .sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a)::before,
.motion-paused .sanctuary :is(.sanctuary-desktop-nav>a:not(.site-button),.text-link,.booking-text-button,.sanctuary-footer>a,.sanctuary-image-note>a)::after{
 transition:none;
}
