#booking{scroll-margin-top:12px}
#booking:focus{outline:none}
.menu-toggle{position:relative;flex-shrink:0;width:44px;height:44px;border:1px solid #ded3e7;border-radius:14px;background:#eee6f7;color:#49345b;align-items:center;justify-content:center;cursor:pointer}
.menu-toggle>span{position:absolute;width:19px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s}
.menu-toggle>span:first-child{transform:translateY(-4px)}.menu-toggle>span:last-child{transform:translateY(4px)}
.menu-toggle[aria-expanded=true]>span:first-child{transform:rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:rotate(-45deg)}
html{scrollbar-gutter:stable}
html.menu102-open{overflow:hidden}
/* Root owns menu scroll lock: a second body scroller dislodges the sticky header. */
body:has(#menu102[open]){overflow:visible}
dialog.menu102{position:fixed;inset:12px 12px auto auto;margin:0;width:440px;max-width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:24px;border:1px solid #e2d7ed;border-radius:26px;background:#f8f5fc;color:#352742;box-shadow:0 24px 100px #22173040;overflow:auto;overscroll-behavior:contain}
.menu102::backdrop{background:#241b39a6;backdrop-filter:blur(8px);animation:m102-fade .2s both}
.menu102[open]{animation:m102-in .3s cubic-bezier(.2,.8,.2,1) both}
.menu102[open].is-closing{animation:m102-out .28s cubic-bezier(.4,0,.2,1) both}.menu102.is-closing::backdrop{animation:m102-backdrop-out .28s cubic-bezier(.4,0,.2,1) both}
.m102-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}
.m102-eyebrow{font-size:8px;font-weight:800;letter-spacing:.1em;color:#89739c}
.m102-head h2{font-family:Manrope,Arial,sans-serif;font-size:26px;line-height:1.15;letter-spacing:-.04em;margin:7px 0 0}
.m102-close{display:grid;place-items:center;position:relative;width:44px;height:44px;flex-shrink:0;border:1px solid #d9cce7;background:#eee5f8;border-radius:50%;color:#6945a4;cursor:pointer}
.m102-close>span{position:absolute;width:18px;height:2px;background:currentColor;border-radius:2px;transform:rotate(45deg)}.m102-close>span:last-child{transform:rotate(-45deg)}
#mobile-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;border:0}
#mobile-nav>a{display:flex;position:relative;flex-direction:column;justify-content:center;gap:8px;min-height:88px;border:1px solid #e3d8ed;border-radius:17px;background:#fffdf9;padding:16px 13px;text-decoration:none;color:#392749;animation:m102-item .35s both;animation-delay:calc(var(--menu-i)*25ms)}
#mobile-nav>a:nth-child(4n+2),#mobile-nav>a:nth-child(4n+3){background:#eee5fa}
.m102-caption{font-size:7px;letter-spacing:.06em;font-weight:800;color:#8b749b;padding-right:12px}
.m102-label{font-size:15px;font-weight:750;line-height:1.2;letter-spacing:-.025em}
.m102-arrow{position:absolute;right:12px;top:12px;color:#a48ab6;font-size:14px}
.m102-bottom{padding-top:20px}
.m102-trial{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border-radius:16px;background:#ff784f;color:#271c29;text-decoration:none;font-weight:800;font-size:15px;min-height:60px}
.m102-trial>span{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:#fff6ea;font-size:21px}
.m102-contact{display:flex;justify-content:space-between;margin:18px 3px 0;font-size:12px;color:#735885;text-decoration:none}
.menu102 a:focus-visible,.menu102 button:focus-visible,.menu-toggle:focus-visible{outline:3px solid #fb885b;outline-offset:3px}
.cal91-detail.cal102-editable{padding:0;overflow:hidden}
.cal102-change{position:relative;display:block;width:100%;min-height:80px;padding:16px 64px 16px 15px;border:0;border-radius:13px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.cal102-change .cal91-time,.cal102-change .cal91-topic{display:block}
.cal102-pencil{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fffaf5;color:#7550a7}
.cal102-pencil svg{width:20px;height:20px}
.cal102-editable .cal91-siblings{padding:0 14px 14px}
@media(hover:hover){#mobile-nav>a:hover{border-color:#a88bc8;background:#e7d9f8}.m102-trial:hover{background:#ff8b68}.cal102-change:hover{background:#e6d8f7}}
@media(max-width:1200px){.menu-toggle{display:flex}.desktop-nav{display:none}}
@media(max-width:360px){dialog.menu102{padding:18px;inset:8px 8px auto auto;max-width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:22px}.m102-head h2{font-size:23px}.m102-head{margin-bottom:18px}#mobile-nav>a{min-height:84px;padding:13px 11px}.m102-label{font-size:14px}.m102-caption{font-size:6px}.m102-trial{font-size:13px;padding:14px}.m102-bottom{padding-top:15px}}
@keyframes m102-in{from{opacity:0;transform:translateY(-12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes m102-out{from{opacity:var(--m102-close-opacity,1);transform:var(--m102-close-transform,none)}to{opacity:0;transform:translateY(-6px) scale(.99)}}
@keyframes m102-backdrop-out{from{opacity:var(--m102-backdrop-opacity,1)}to{opacity:0}}
@keyframes m102-item{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes m102-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.menu102[open],.menu102::backdrop,.menu102[open].is-closing,.menu102.is-closing::backdrop,#mobile-nav>a{animation:none}.menu-toggle>span{transition:none}}
