/* One source of truth for clinic color, type and shared components. */
:root {
 --paper:#F8F6F1; --sand:#EEE8DF; --espresso:#2F2620;
 --ink:#2B2622; --muted:#7A716A; --accent:#AA6038; --gold:#C9A27E;
 --line:#D9D0C4; --white:#FFFFFF; --warm:var(--sand); --max:1200px;
 --serif:'Zen Old Mincho','Yu Mincho',serif;
 --sans:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN',sans-serif;
 --latin:'Cormorant Garamond',Georgia,serif;
 color-scheme:light;font-family:var(--sans);font-size:16px;line-height:1.95;color:var(--ink);font-weight:400;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:125px}body{margin:0;background:var(--paper);letter-spacing:.035em}
[hidden]{display:none!important}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto;border-radius:8px}svg{flex-shrink:0}
h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-weight:500}h1,h2,.secondary-catch{font-family:var(--serif);word-break:keep-all;overflow-wrap:anywhere}h2{font-size:36px;line-height:1.6;letter-spacing:.07em}h3{line-height:1.65}p+p{margin-top:18px}
/* Lining, fixed-width numerals across all fonts, including Cormorant. */
body,button,a,span,time,p,b,small{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:'lnum' 1,'tnum' 1}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.container{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.icon{width:44px;height:44px}.eyebrow{font:italic 500 17px/1.5 var(--latin);letter-spacing:.05em;color:var(--accent);margin-bottom:14px;text-transform:none}.section{padding-block:120px}.section-heading{margin-bottom:38px}.button{display:inline-flex;gap:30px;align-items:center;justify-content:space-between;min-height:52px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.7;border-radius:0}.button span{transition:transform .2s}.button:hover span{transform:translateX(4px)}.button.primary{padding:16px 26px;background:var(--accent);color:var(--white);border:0;border-radius:2px;min-height:56px}.button.primary:hover{filter:brightness(.93)}.inline-actions{display:flex;gap:28px;flex-wrap:wrap;margin-top:25px}.table-scroll{overflow-x:auto;overscroll-behavior-x:contain}.skip,.skip-link{position:fixed;top:-100px;left:20px;z-index:1000;background:var(--paper);padding:12px}.skip:focus,.skip-link:focus{top:8px}
/* Opaque-enough navigation, kept separate from the translucent hero. */
.site-header{position:sticky;top:0;z-index:100;background:rgba(248,246,241,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{display:flex;gap:35px;align-items:center;justify-content:space-between;height:94px;width:calc(100% - 72px);margin:auto;transition:height .25s}.brand{display:block;width:290px;flex-shrink:0}.brand img{width:100%;border-radius:0}.header-contact{display:flex;align-items:center;gap:30px}.telephone{font:500 32px/1.3 var(--latin)}.telephone small{display:block;font:400 11px/1.6 var(--sans);margin-bottom:3px;text-align:right;color:var(--muted)}.site-header.is-scrolled .header-inner{height:70px}.nav{display:flex;align-items:center;justify-content:center;gap:34px;min-height:50px;border-top:1px solid var(--line)}.nav-group summary{list-style:none;cursor:pointer;font-size:14px;padding:12px 0;min-height:48px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'＋';font-size:12px;margin-left:10px;color:var(--muted)}.nav-group[open] summary:after{content:'−'}.nav-direct,.nav-access{font-size:14px;padding:12px 0}.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:min(1100px,calc(100vw - 80px));background:var(--paper);padding:28px 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px 28px;box-shadow:0 12px 25px #2b262212;border-bottom:1px solid var(--line)}.mega a{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;display:flex;align-items:center;justify-content:space-between}.mega a:hover{color:var(--accent)}.menu-toggle,.mobile-top-links,.mobile-bar,.mobile-menu-intro,.nav-backdrop{display:none}
.tabs [role=tablist]{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:25px}.tab-list button{font-size:15px;line-height:1.8;min-height:48px;padding:10px 14px;border-bottom:2px solid transparent;white-space:nowrap}.tab-list button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}
.reservation{padding:70px 0;background:var(--paper);border-top:1px solid var(--line)}.reservation>.container{display:flex;align-items:center;justify-content:space-between;gap:40px}.reservation h2{font-size:30px}.cta-buttons{display:flex;gap:25px;align-items:center}.cta-buttons .button{white-space:nowrap}.cta-buttons .button[href^=tel]{font:500 26px var(--latin)}
.site-footer{background:var(--espresso);color:var(--paper);padding:70px 0 25px}.footer-top{display:grid;grid-template-columns:310px minmax(0,1fr);gap:65px}.site-footer .brand{width:265px;background:var(--paper);padding:10px 13px;border-radius:2px}.footer-top p{font-size:14px;line-height:1.9;margin-top:22px}.footer-tel{font:500 32px/1.8 var(--latin);display:inline-block;margin-top:14px}.footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}.footer-group{min-width:0;border-top:1px solid #c9a27e66}.footer-group summary{font-size:17px;cursor:pointer;padding:16px 0;list-style:none;display:flex;justify-content:space-between;gap:8px;min-height:56px}.footer-group summary::-webkit-details-marker{display:none}.footer-group summary:after{content:'＋';color:var(--gold)}.footer-group[open] summary:after{content:'−'}.footer-group a{display:block;font-size:13px;padding:9px 0;line-height:1.8;min-height:44px}.footer-group a:hover{color:var(--gold)}.footer-hours{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:35px}.footer-hours details{border-top:1px solid #c9a27e66}.footer-hours summary{display:flex;align-items:baseline;gap:12px;justify-content:space-between;font-size:14px;line-height:1.8;cursor:pointer;min-height:54px;padding:16px 0;list-style:none}.footer-hours .sm{font-size:12px}.footer-hours table{width:100%;border-collapse:collapse;font-size:10px}.footer-hours td,.footer-hours th{padding:10px 3px;border-bottom:1px solid #c9a27e44;text-align:center;font-weight:400}.footer-hours td:first-child{text-align:left}.footer-hours td:first-child span{display:block}.footer-hours .tt-note,.footer-hours .t-note{font-size:11px;line-height:1.9;margin-top:14px}.footer-hours .session-dot{color:var(--gold)}.related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:40px;padding-top:28px;border-top:1px solid #c9a27e55}.related a{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;min-height:56px}.related small{display:block;font:italic 500 14px var(--latin);color:var(--gold)}.related img{max-height:70px;width:auto}.social{display:flex;gap:28px;flex-wrap:wrap;padding-block:22px;font-size:13px}.social a{min-height:44px;display:flex;align-items:center}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #c9a27e55;padding-top:20px;font-size:11px}
dialog{border:0;border-radius:8px;padding:42px;background:var(--paper);color:var(--ink);max-width:900px;width:85vw}dialog::backdrop{background:#2f2620bb}.dialog-close{position:absolute;top:5px;right:10px;min-width:44px;min-height:44px;font-size:26px}#photo-dialog img{max-height:80vh;width:auto;margin:auto}#chat-dialog{max-width:540px}#chat-dialog h2{font-size:25px}#chat-dialog p{margin-top:20px}#chat-dialog .button{margin-top:20px}
@media(max-width:1100px){.header-inner{gap:20px}.brand{width:255px}.header-contact{gap:22px}.nav{gap:20px}.footer-top{grid-template-columns:250px 1fr;gap:35px}.reservation>.container{display:block}.cta-buttons{margin-top:25px}.footer-links{gap:20px}}
@media(max-width:1000px){
 html{scroll-padding-top:120px}body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.container{width:calc(100% - 48px)}
 .site-header .header-inner,.site-header.is-scrolled .header-inner{height:64px;width:calc(100% - 40px);transition:none;gap:15px}.header-contact{display:none}.brand{max-width:calc(100% - 65px);width:265px}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:48px;min-width:48px;padding:5px;margin-left:auto}.menu-toggle span{width:26px;height:1px;background:var(--ink)}.menu-toggle small{font:400 9px var(--sans);margin-top:2px;letter-spacing:.05em}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}
 .mobile-top-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);min-height:44px;background:var(--paper)}.mobile-top-links a{font-size:12px;letter-spacing:0;white-space:nowrap;min-height:44px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);padding:4px 2px}.mobile-top-links a:last-child{border:0}
 .mobile-bar{position:fixed;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom);z-index:120;background:var(--paper);box-shadow:0 -3px 20px #2b26220a;border-top:1px solid var(--line)}.mobile-bar a,.mobile-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px;gap:5px;font:500 12px/1.4 var(--sans);letter-spacing:0;border-right:1px solid var(--line);padding:8px 0}.mobile-bar a:first-child{background:var(--accent);color:white}.mobile-bar .icon{width:24px;height:24px;color:inherit}.mobile-bar button[aria-expanded=true]{background:var(--ink);color:var(--paper)}
 body.menu-open{overflow:hidden}body.menu-open .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}.nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#2f262077;z-index:90;width:100%;height:100%}.site-header .nav{display:none;position:fixed;top:108px;left:0;right:0;height:calc(100dvh - 178px - env(safe-area-inset-bottom));background:var(--paper);overflow-y:auto;overscroll-behavior:contain;padding:22px 24px 32px;border:0}.site-header .nav.is-open{display:block}.mobile-menu-intro{display:block;margin-bottom:22px}.mobile-menu-intro>p{font:500 23px/1.6 var(--serif);margin-bottom:20px}.mobile-menu-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-menu-shortcuts a{border:1px solid var(--line);padding:12px;font-size:15px;min-height:50px}.nav-group{border-top:1px solid var(--line)}.nav-group summary,.nav-direct,.nav-access{display:flex;justify-content:space-between;align-items:center;font-size:17px;padding:17px 0;min-height:57px}.nav-direct,.nav-access{border-top:1px solid var(--line)}.mega{position:static;transform:none;display:grid;grid-template-columns:1fr;width:auto;padding:0 0 20px 14px;box-shadow:none;border:0}.mega a{font-size:16px}.nav-group:not([open]) .mega{display:none}
 .footer-top{grid-template-columns:1fr;gap:30px}.footer-top>.footer-links{width:100%}.footer-hours{gap:16px}.related{grid-template-columns:1fr 1fr}.section{padding-block:90px}
}
@media(max-width:600px){
 .container{width:calc(100% - 40px)}.section{padding-block:72px}.section-heading{margin-bottom:28px}h2{font-size:27px;line-height:1.7;letter-spacing:.04em}.eyebrow{font-size:16px;margin-bottom:11px}.button{font-size:14px;gap:20px}.button.primary{padding:15px 20px}.tabs [role=tablist]{overflow:auto;gap:0}.tab-list button{padding-inline:12px;font-size:14px;flex-shrink:0}
 .reservation{padding-block:55px}.reservation h2{font-size:25px}.cta-buttons{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cta-buttons .button:first-child{grid-column:1/-1}.cta-buttons .button[href^=tel]{font-size:23px}.site-footer{padding-top:50px}.footer-links{grid-template-columns:1fr;gap:0}.footer-group summary{font-size:17px}.footer-group a{font-size:15px}.footer-group>div{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding-bottom:20px}.footer-hours{grid-template-columns:1fr;gap:0;margin-top:20px}.footer-hours summary{font-size:15px}.footer-hours table{font-size:12px}.footer-hours td,.footer-hours th{padding:12px 4px}.footer-hours .tt-note,.footer-hours .t-note{font-size:12px;margin-bottom:15px}.related{gap:8px 20px;margin-top:20px;padding-top:16px}.related a{font-size:13px;line-height:1.8}.social{gap:0 24px;padding-block:16px}.footer-bottom{gap:20px}.footer-top p{font-size:14px}.site-footer .brand{width:255px;max-width:100%}.footer-tel{font-size:31px}
 dialog{padding:35px 22px;width:90vw}
}
@media(max-width:359px){.mobile-top-links a{font-size:10.5px}.mobile-bar a,.mobile-bar button{font-size:11px}.site-header .header-inner{width:calc(100% - 30px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Font shorthand resets these features, so enforce them after component fonts. */
*{font-variant-numeric:lining-nums tabular-nums!important;font-feature-settings:'lnum' 1,'tnum' 1!important}

.footer-hours summary{position:relative;display:block;padding-right:25px;word-break:keep-all;overflow-wrap:anywhere}.footer-hours summary>span:last-child{position:absolute;right:0;top:16px}.footer-hours summary .sm{display:inline;margin-left:12px}.footer-hours summary .br_auto{display:block}
@media(max-width:600px){.related{grid-template-columns:1fr;gap:0}.related a{font-size:14px;min-height:52px}}
