/* Shared Tongaw rhythm; content is visible before JavaScript and with reduced motion. */
.journey-back{width:auto;height:auto;min-height:46px;gap:12px;border:0;border-bottom:1px solid #555;border-radius:0;font:400 15px/1.5 'DM Sans',sans-serif;padding:6px 0;margin:0 0 44px;text-decoration:none}.journey-back:hover{border-color:#f2f0e9}
.reservation-entry{--bg:#090909;--text:#f2f0e9;--muted:#aaa9a4;--border:#383838;--accent:#f3f1ea;color:var(--text);font-family:'DM Sans',sans-serif}
.reservation-entry #main{width:100%;max-width:1080px;padding:38px 48px 100px;margin:auto}
.reservation-intro{max-width:850px;margin-bottom:64px}.reservation-intro h1{font-family:'Space Grotesk','DM Sans',sans-serif;font-size:clamp(40px,5.5vw,70px);letter-spacing:-.055em;line-height:1.1;margin:34px 0 20px}.reservation-intro h2{font-size:clamp(20px,2.5vw,30px);font-weight:400;line-height:1.35;letter-spacing:-.02em;margin:0 0 8px}.reservation-intro #activity-reminder p{font-size:14px;color:#aaa9a4;margin:0}.reservation-intro>p:last-child{font-size:16px;line-height:1.8}
.reservation-entry #main>.card{border:0;background:none;padding:0;max-width:none}
.reservation-entry #reservation{display:block;max-width:850px}.journey-block{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;border:0;border-top:1px solid #333;padding:32px 0 0;margin:0 0 54px;min-width:0}.journey-block legend{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#c4c2bb;padding:0 18px 0 0}.journey-block input,.journey-block select{background:#111;border:1px solid #444;border-radius:0;color:#f3f1ea;min-height:54px;width:100%;max-width:100%}.journey-block label{font-size:14px;color:#bbb;min-width:0}.journey-block .wide{grid-column:1/-1}.journey-block p{line-height:1.8}.journey-block #stay-fields{margin-top:18px}.reservation-entry #summary{max-width:850px;scroll-margin-top:30px}.reservation-entry #summary h2{font-size:32px;letter-spacing:-.04em;font-weight:400}.quote-totals{padding:0;background:none;border:0}.quote-totals div{padding:15px 0;gap:24px}.quote-totals dt{max-width:75%}.quote-totals dd{white-space:nowrap;margin:0}.quote-total{font-size:24px}.reservation-entry .primary{padding:16px 28px;border-radius:0;font-weight:500}.reservation-receipt h1{font:400 clamp(36px,5vw,60px)/1.15 'Space Grotesk',sans-serif;letter-spacing:-.05em}.receipt-welcome{font-size:23px;line-height:1.5}.reservation-receipt{max-width:850px!important}.reservation-receipt .table-wrap{border:0}
#booking-journey{position:fixed;inset:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;background:#090909;color:#f3f1ea;overscroll-behavior:contain}#booking-journey::backdrop{background:#090909}
.journey-surface{min-height:100svh;background:#090909}.journey-toolbar{display:flex;align-items:center;justify-content:space-between;max-width:1080px;padding:28px 48px;margin:auto;min-height:96px}.journey-toolbar img{display:block}.journey-toolbar button{font-size:13px;border:0;border-bottom:1px solid #444;border-radius:0;padding:8px 0}.journey-toolbar a{line-height:1}
.music-toggle{width:44px;height:44px;padding:10px}.music-icon{width:22px;height:22px}.admin-entry>.top .music-toggle{display:none}
.personal-heading{margin:28px 0 36px;max-width:780px}.personal-heading h1{font:400 clamp(36px,5vw,64px)/1.15 'Space Grotesk',sans-serif;letter-spacing:-.05em}.personal-heading p:last-child{font-size:18px;color:#aaa9a4;max-width:650px}.personal-links{display:flex;flex-wrap:wrap;gap:24px;margin:0 0 48px;font-size:14px}.personal-links a{text-underline-offset:7px}.client-dashboard .layout{display:block}.client-dashboard #navigation{display:none}.client-dashboard #main{max-width:1120px;padding:30px 48px 90px;margin:auto}.client-dashboard #main>h2{font-size:27px;font-weight:400;letter-spacing:-.03em;border-top:1px solid #333;padding-top:38px;margin-top:45px}.client-dashboard .card{background:#111;border:0;border-radius:0;border-left:1px solid #444;padding:28px}.client-dashboard .empty{background:transparent;border:0;border-left:1px solid #333;border-radius:0;padding:16px 24px;color:#aaa}.client-dashboard details{border:0;border-bottom:1px solid #303030;padding:20px 0}.client-dashboard .top{border-bottom:1px solid #252525}.client-access .button.primary{background:#f3f1ea;color:#090909;border-radius:0;padding:16px 24px;line-height:1.5}
.admin-entry .layout{grid-template-columns:240px minmax(0,1fr)}.admin-entry .top{height:90px;border-color:#292929}.admin-entry #navigation{background:#0d0d0d;padding:28px 18px;border-right:1px solid #292929}.admin-entry #navigation button,.admin-entry #navigation summary{border-radius:0;font-size:14px}.admin-entry #navigation summary{letter-spacing:.025em;padding:15px 8px}.admin-entry #navigation [aria-current=page]{background:#242424;border-left:2px solid #e6e3da}.admin-entry main{padding:38px clamp(20px,3.5vw,60px)}.admin-entry main>h1{font:400 clamp(30px,3vw,44px)/1.2 'Space Grotesk',sans-serif;letter-spacing:-.04em}.admin-entry .card{border-radius:2px;background:#111;border-color:#292929}.admin-entry table{font-size:14px}.admin-entry th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#aaa}.admin-entry td{padding-top:17px;padding-bottom:17px}.admin-entry button{border-radius:2px}.admin-entry #navigation .nav-edit{font-size:13px}
@media(max-width:760px){.reservation-entry #main,.client-dashboard #main{padding:20px 22px 64px}.journey-toolbar{padding:22px;min-height:82px}.reservation-intro{margin-bottom:44px}.journey-block{grid-template-columns:1fr;gap:4px;margin-bottom:38px;padding-top:22px}.journey-back{margin-bottom:34px}.reservation-entry .primary{width:100%;padding:16px}.quote-totals dt{max-width:68%}.admin-entry .layout{display:block}.admin-entry #navigation{border-right:0;border-bottom:1px solid #333;padding:16px}.admin-entry main{padding:24px 18px}.personal-heading p:last-child{font-size:16px}.client-dashboard .top{gap:12px;padding:16px}.client-dashboard .top #identity{font-size:12px}.client-dashboard .top #logout{font-size:12px}.personal-links{gap:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.journey-toolbar{border:0;overflow:visible;gap:24px}.journey-toolbar button{width:auto;flex:none;white-space:nowrap;margin:0}.journey-toolbar a{flex:none}.personal-links{border:0;padding:0}.reservation-entry .bot-field{position:absolute;left:-10000px;}

.admin-entry .heading h1{font:400 clamp(30px,3vw,44px)/1.2 'Space Grotesk',sans-serif;letter-spacing:-.04em}.admin-login .music-toggle{display:none}

.next-appointment{border:1px solid #303030;padding:28px 30px;margin:0 0 40px;background:#101010}.next-appointment>p:last-child{color:#b4b3ac;margin-bottom:0}.personal-settings{margin-top:50px!important;color:#aaa}.personal-settings>summary{font-size:14px}.client-dashboard .preview-banner{margin-bottom:36px}

#stay-fields:not([hidden]){animation:tongaw-dependent 280ms ease-out}@keyframes tongaw-dependent{from{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){#stay-fields:not([hidden]){animation:none}}

/* Long-term client session history: compact, searchable, keyboard accessible. */
.session-tools{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:20px;margin:28px 0 16px}.session-tools label{display:grid;gap:8px;font-size:.88rem;color:#c7c7c2}.session-tools input,.session-tools select{width:100%;min-height:48px;margin:0}.session-count{font-size:.85rem;color:#aaa}.session-item{border:0;border-top:1px solid #343432;margin:0;padding:0}.session-item:last-child{border-bottom:1px solid #343432}.session-item>summary{display:grid;grid-template-columns:1fr auto;gap:8px 24px;padding:24px 0;cursor:pointer;list-style:none}.session-item>summary::-webkit-details-marker{display:none}.session-item>summary:focus-visible{outline:2px solid #e5d5b3;outline-offset:5px}.session-date{grid-column:1/-1;font-size:.82rem;color:#a9a9a4}.session-title{font-size:1.17rem;line-height:1.4;font-weight:500}.session-read{align-self:center;font-size:.8rem;color:#d7c9ad;text-decoration:underline;text-underline-offset:5px}.session-item .when-open{display:none}.session-item[open] .when-open{display:inline}.session-item[open] .when-closed{display:none}.session-content{padding:0 0 32px;max-width:760px}.session-content section+section{margin-top:28px}.session-content h3{font-size:1rem;margin:0 0 10px}.session-content .prose{line-height:1.8;color:#d1d1cb}.session-pages{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:24px}.session-pages[hidden]{display:none}.session-pages span{white-space:nowrap;color:#aaa;font-size:.85rem}.session-pages button{font-size:.85rem}.session-pages button:disabled{opacity:.35}
@media(max-width:600px){.session-tools{grid-template-columns:1fr;gap:14px}.session-item>summary{grid-template-columns:1fr;gap:10px;padding:22px 0}.session-read{margin-top:3px}.session-pages{gap:8px}.session-pages button{padding:10px}}

.client-dashboard details.session-item{border:0;padding:0}.client-dashboard details.session-item+.session-item{border-top:1px solid #303030}.session-download{display:inline-block;margin:0 0 26px;font-size:.9rem;text-underline-offset:5px}.session-download[aria-disabled="true"]{color:#999;text-decoration:none}

/* Compact reservation modal, using the same form and server validation. */
#booking-journey{inset:0;margin:auto;width:min(800px,calc(100vw - 48px));height:auto;max-width:800px;max-height:90svh;border:1px solid #ffffff26;border-radius:14px;box-shadow:0 24px 100px #0008;overflow:auto;background:#101010}#booking-journey::backdrop{background:#0005;backdrop-filter:blur(2px)}#booking-journey[open]{animation:booking-modal-enter .3s ease both}
.journey-surface{min-height:0;background:#101010}.journey-toolbar{position:sticky;top:0;z-index:2;min-height:58px;padding:10px 30px;background:#101010f5;border-bottom:1px solid #ffffff15;max-width:none}.journey-toolbar button{font-size:12px;min-height:36px;border:0}.journey-surface .journey-back{display:none}
.reservation-entry #main{max-width:800px;padding:26px 32px 32px}.reservation-intro{margin:0 0 26px}.reservation-intro .eyebrow{font-size:11px;letter-spacing:.12em;margin:0 0 12px}.reservation-intro h1{font-family:'Space Grotesk','DM Sans',sans-serif;font-size:clamp(24px,3vw,34px);line-height:1.15;font-weight:500;letter-spacing:-.045em;margin:0 0 10px}.reservation-intro #activity-reminder p{font-size:13px;line-height:1.6;margin:0}.reservation-entry #reservation{max-width:none}.journey-block{gap:14px 20px;padding:16px 0 0;margin:0 0 24px;border-top:1px solid #ffffff16}.journey-block legend{font-size:11px;letter-spacing:.07em}.journey-block label{font-size:13px}.journey-block input,.journey-block select{min-height:44px;height:44px;padding:9px 12px;margin:7px 0 0;border-radius:5px;font:400 16px/1.4 'DM Sans',sans-serif}.journey-block p{font-size:12px;line-height:1.65;margin:0}.journey-block #stay-fields{margin-top:0}.journey-block .bot-field{display:none}.reservation-entry .primary{min-height:44px;padding:12px 20px;font-size:14px}.reservation-entry #summary h2{font-size:26px}.reservation-entry #summary{padding-top:24px}.reservation-entry .journey-back{margin-bottom:22px}.participant-control{display:grid;gap:8px}.participant-stepper{display:flex;align-items:center;width:max-content;border:1px solid #444;border-radius:5px;overflow:hidden}.participant-stepper button{width:42px;height:42px;min-height:42px;border:0;border-radius:0;background:#171717;font-size:21px;padding:0}.participant-stepper input{width:50px;height:42px;min-height:42px;margin:0;border:0;background:transparent;padding:8px 0;text-align:center;appearance:textfield;-moz-appearance:textfield}.participant-stepper input::-webkit-inner-spin-button,.participant-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.participant-stepper button:disabled{opacity:.35;cursor:default}.participant-stepper button:focus-visible{outline:2px solid #d7c9ad;outline-offset:-3px}.reservation-entry [hidden]{display:none!important}
@keyframes booking-modal-enter{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:600px){#booking-journey{width:calc(100vw - 20px);max-height:94svh;border-radius:10px}.journey-toolbar{padding:8px 18px}.reservation-entry #main{padding:22px 20px 28px}.journey-block{grid-template-columns:1fr;gap:13px}.reservation-intro{margin-bottom:24px}.reservation-entry .primary{width:100%}}
@media(prefers-reduced-motion:reduce){#booking-journey[open]{animation:none}}

.reservation-entry .journey-block label{margin:0}.participant-control{align-content:start}.reservation-intro h1:focus{outline:none}.reservation-entry .journey-block p:empty{display:none}
