/* Inherit the active theme / Elementor kit. No remote font or image requests. */
.shj-v8-workspace { margin:0; min-height:100dvh; color:var(--e-global-color-text,inherit); font-family:var(--e-global-typography-text-font-family,inherit); }
.shj-v8-workspace *, .shj-practice * { box-sizing:border-box; }
.shj-v8-header { display:flex; align-items:center; gap:1.2rem; max-width:76rem; padding:1.2rem 2rem; border-bottom:1px solid var(--shj-line); position:relative; z-index:25; }
.shj-v8-brand { color:inherit; text-decoration:none; font-family:var(--e-global-typography-primary-font-family,inherit); font-size:1.4rem; }
.shj-v8-brand img { display:block; max-width:150px; max-height:56px; width:auto; height:auto; }
.shj-v8-view { font-size:.85rem; opacity:.8; }
.shj-v8-account { margin-left:auto; position:relative; }
.shj-v8-account summary { cursor:pointer; min-height:44px; display:flex; align-items:center; padding:.5rem .8rem; border:1px solid var(--shj-line); border-radius:99px; }
.shj-v8-account nav { position:absolute; z-index:50; right:0; top:calc(100% + .5rem); width:min(300px,80vw); padding:.7rem; background:var(--e-global-color-background,Canvas); color:var(--e-global-color-text,CanvasText); box-shadow:0 8px 30px #0002; border:1px solid var(--shj-line); border-radius:16px; }
.shj-v8-account nav a { display:flex; align-items:center; min-height:44px; padding:.55rem .7rem; color:inherit; text-decoration:none; border-radius:8px; }
.shj-v8-account nav a:hover { background:var(--shj-surface-strong); }
.shj-v8-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.25rem; padding:.65rem 2rem; max-width:76rem; margin:auto; }
.shj-v8-nav a { display:flex; align-items:center; justify-content:center; min-height:48px; padding:.7rem .6rem; border-radius:12px; color:inherit; text-decoration:none; line-height:1.2; text-align:center; font-weight:500; }
.shj-v8-nav a[aria-current] { background:var(--shj-surface-strong); color:var(--shj-accent); box-shadow:inset 0 -2px var(--shj-accent); }
.shj-v8-content { max-width:76rem; margin:auto; padding:clamp(1.2rem,3vw,3rem) 2rem 5rem; outline:none; }
.shj-v8-content > .shj-component { padding-top:.7rem; }
.shj-v8-skip { position:fixed; left:1rem; top:-100px; z-index:100; padding:1rem; background:Canvas; color:CanvasText; }
.shj-v8-skip:focus { top:1rem; }
.shj-practice { --shj-muted:color-mix(in srgb,currentColor 78%,transparent); --shj-shadow:none; --shj-radius:16px; }
.shj-practice [hidden] { display:none !important; }
.shj-practice :is(button,input,select,textarea) { font:inherit; }
.shj-practice :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.shj-practice :is(button,input:not([type=checkbox]):not([type=radio]),select) { min-height:44px; }
.shj-practice input[type=checkbox],.shj-practice input[type=radio] { min-width:22px; min-height:22px; accent-color:var(--shj-accent); }
.shj-practice button:disabled { opacity:.6; cursor:wait; }
.shj-practice .shj-button { border-radius:10px; min-height:46px; padding:.7rem 1.15rem; display:inline-flex; align-items:center; justify-content:center; font-size:1rem; line-height:1.3; text-align:center; box-shadow:none; }
.shj-practice .shj-button-secondary { background:transparent; color:inherit; border:1px solid var(--shj-line); }
.shj-practice .shj-text-button { min-height:44px; padding:.5rem .65rem; }
.shj-practice .shj-form { box-shadow:none; background:transparent; width:100%; max-width:52rem; margin:1rem 0; gap:1.2rem; }
.shj-practice .shj-form :is(input,textarea,select) { background:color-mix(in srgb,Canvas 55%,transparent); color:inherit; border:1px solid var(--shj-line); border-radius:9px; }
.shj-practice .shj-form-intro { padding:.7rem 0; border:0; background:transparent; }
.shj-practice .shj-form-intro > strong { display:none; }
.shj-practice .shj-action-note { font-size:.9rem; }
.shj-practice h3 { font-size:1.25rem; font-weight:500; }
.shj-v8-disclosure { border:1px solid var(--shj-line); border-radius:14px; padding:.5rem 1rem; margin:.5rem 0 1.5rem; }
.shj-v8-disclosure > summary { cursor:pointer; padding:.7rem .25rem; min-height:44px; font-weight:600; }
.shj-v8-disclosure .shj-form { border:0; padding:.7rem 0; }
.v8-welcome { margin:0 0 1.5rem; }
.v8-welcome p { margin-bottom:.2rem; }
.v8-welcome h2 { font-size:clamp(2rem,4vw,3.2rem); font-weight:400; }
.v8-home { max-width:68rem; margin:auto; }
.v8-next { border:1px solid var(--shj-line); border-radius:18px; padding:clamp(1.4rem,3vw,2.2rem); background:var(--shj-surface); }
.v8-next h3 { margin:.65rem 0; font-size:clamp(1.5rem,2.5vw,2rem); }
.v8-home-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:2rem; }
.v8-home-grid > div { min-width:0; }
.v8-section { margin-top:2rem; }
.v8-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.v8-section-heading h3 { margin:0; }
.v8-section-heading > a { font-size:.88rem !important; }
.v8-rows { display:grid; }
.v8-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:76px; padding:1.1rem .35rem; border-bottom:1px solid var(--shj-line); color:inherit; text-decoration:none; overflow-wrap:anywhere; }
.v8-row:hover { background:var(--shj-surface); }
.v8-row strong { display:block; font-weight:500; }
.v8-row small { display:block; margin-top:.25rem; line-height:1.4; }
.v8-row-end { font-size:.82rem; flex-shrink:0; max-width:35%; }
.v8-row-end > span { font-size:1.3rem; }
.v8-empty { border:1px dashed var(--shj-line); border-radius:16px; padding:1.7rem; margin:1rem 0; }
.v8-empty h3 { margin-bottom:.6rem; }
.v8-empty p { max-width:36rem; }
.v8-muted { color:var(--shj-muted); font-size:.93rem; }
.v8-tools { display:flex; gap:.65rem; flex-wrap:wrap; margin:1rem 0; }
.v8-search { display:grid; gap:.45rem; margin:1.4rem 0; max-width:34rem; }
.v8-search input { border:1px solid var(--shj-line); border-radius:10px; padding:.75rem; color:inherit; background:transparent; width:100%; }
.v8-client-heading { margin:2rem 0; }
.v8-invitations { list-style:none; padding:0; }
.v8-invitations li,.v8-payments article { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--shj-line); }
.v8-invitations small,.v8-payments small { display:block; }
.v8-payments article > div:last-child { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
.v8-notice { position:fixed; bottom:6rem; left:50%; transform:translateX(-50%); padding:1rem 1.5rem; border-radius:12px; background:Canvas; color:CanvasText; box-shadow:0 4px 20px #0003; max-width:90vw; z-index:100; }
.v8-sheet { border:1px solid var(--shj-line); border-radius:20px; padding:1.5rem; width:min(38rem,calc(100vw - 2rem)); max-height:85dvh; overflow:auto; background:Canvas; color:var(--e-global-color-text,CanvasText); margin:auto; }
.v8-sheet::backdrop { background:#0005; }
.v8-sheet > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.v8-sheet h2 { font-size:1.55rem; margin:0; }
.v8-sheet .shj-form { border:0; padding:0; }
.shj-practice .fc { --fc-border-color:var(--shj-line); --fc-button-bg-color:transparent; --fc-button-text-color:currentColor; --fc-button-border-color:var(--shj-line); --fc-button-hover-bg-color:var(--shj-surface); --fc-button-hover-border-color:currentColor; --fc-button-active-bg-color:var(--shj-surface-strong); --fc-button-active-border-color:currentColor; --fc-today-bg-color:var(--shj-surface); --fc-page-bg-color:transparent; --fc-neutral-bg-color:var(--shj-surface); --fc-list-event-hover-bg-color:var(--shj-surface); --fc-event-bg-color:var(--shj-accent); --fc-event-border-color:var(--shj-accent); font-family:inherit; margin-top:1.5rem; }
.shj-practice .fc a { color:inherit; }
.shj-practice .fc .fc-toolbar-title { font:inherit; font-size:1.35rem; }
.shj-practice .fc .fc-button { border-radius:8px; font:inherit; font-size:.9rem; }
.shj-practice .fc .fc-event { border-radius:5px; }
.shj-practice .fc .fc-list-event-title a { display:block; min-height:44px; padding:.65rem 0; }
.shj-practice .fc .v8-cancelled { opacity:.65; text-decoration:line-through; }
.v8-calendar-status { margin:1rem 0; }
@media(max-width:780px) {
 .v8-home-grid { grid-template-columns:1fr; gap:0; }
 .shj-v8-header { padding:1rem; gap:.7rem; }
 .shj-v8-view { display:none; }
 .shj-v8-content { padding:1.3rem 1rem calc(7rem + env(safe-area-inset-bottom)); }
 .shj-v8-nav { position:fixed; bottom:0; left:0; right:0; z-index:40; background:var(--e-global-color-background,Canvas); color:var(--e-global-color-text,CanvasText); padding:.5rem .4rem calc(.5rem + env(safe-area-inset-bottom)); border-top:1px solid var(--shj-line); box-shadow:0 -4px 16px #00000008; }
 .shj-v8-nav a { font-size:.83rem; padding:.65rem .3rem; min-height:52px; }
 .shj-practice .shj-form-inline { grid-template-columns:1fr; }
 .shj-practice input,.shj-practice select,.shj-practice textarea { font-size:max(16px,1em) !important; }
 .shj-practice .fc .fc-header-toolbar { flex-wrap:wrap; gap:.8rem; }
 .shj-practice .fc .fc-toolbar-chunk:nth-child(2) { order:-1; width:100%; }
 .v8-invitations li,.v8-payments article { align-items:flex-start; flex-direction:column; }
 .v8-sheet { margin:auto 0 0; width:100%; max-width:none; max-height:90dvh; border-radius:20px 20px 0 0; padding:1.4rem 1rem calc(1.4rem + env(safe-area-inset-bottom)); }
 .v8-tools .shj-button { flex:1 1 auto; }
 .shj-practice .shj-meta-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .shj-practice *, .shj-practice *::before, .shj-practice *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media(forced-colors:active) { .shj-v8-nav a[aria-current] { border:2px solid Highlight; } .shj-practice .shj-button { border:1px solid ButtonText; } }

/* v8.1: one shared SHJ visual system across both roles and embedded widgets. */
.shj-v8-workspace,.shj-practice {
 --shj-brown:#4d3c1a; --shj-pink:#c59393; --shj-beige:#fbf6ed; --shj-grey-beige:#ebe7e0;
 --shj-ink:var(--shj-brown); --shj-muted:var(--shj-brown); --shj-line:var(--shj-grey-beige);
 --shj-surface:var(--shj-grey-beige); --shj-surface-strong:var(--shj-grey-beige);
 --shj-accent:var(--shj-brown); --shj-success:var(--shj-brown); --shj-error:var(--shj-brown);
 color:var(--shj-brown); background:var(--shj-beige);
 font-family:var(--e-global-typography-text-font-family,"Cormorant Garamond"),Garamond,serif;
 font-size:var(--shj-text-size,24px); font-weight:700; line-height:1.5;
}
.shj-practice :is(p,small,span,label,legend,input,select,textarea,li,td,th,summary,a,button,div) { font-size:max(var(--shj-text-size,24px),1em); font-weight:700; }
.shj-practice :is(p,small,label,legend,input,select,textarea,li,td,th),.shj-practice .v8-row { font-family:var(--e-global-typography-text-font-family,"Cormorant Garamond"),Garamond,serif; }
.shj-practice :is(h1,h2,h3,h4,h5,h6) { font-family:var(--e-global-typography-primary-font-family,"Candela"),sans-serif; font-weight:400; color:var(--shj-brown); text-transform:none; line-height:1.2; }
.shj-practice h2 { font-size:max(2em,32px); }
.shj-practice h3 { font-size:max(1.25em,28px); }
.shj-practice :is(a,a:visited,a:hover,a:focus),.shj-practice :is(.shj-intro,.shj-small,.shj-help,.shj-field-help,.v8-muted,.shj-form-status) { color:var(--shj-brown); }
.shj-practice :is(button,.shj-button,.shj-button-secondary,.shj-text-button,input[type=submit],input[type=button],summary),
.shj-practice :is(button,.shj-button,.shj-button-secondary,.shj-text-button,input[type=submit],input[type=button],summary):is(:hover,:focus,:active,:visited) {
 background:var(--shj-brown) !important; color:var(--shj-beige) !important; border:2px solid var(--shj-brown) !important;
 border-radius:10px; padding:.5em .85em; min-height:48px; max-width:100%; white-space:normal; overflow-wrap:anywhere;
 font-family:var(--e-global-typography-primary-font-family,"Candela"),sans-serif !important; font-size:var(--shj-text-size,24px) !important; font-weight:400 !important;
 line-height:1.35; text-decoration:none !important; box-shadow:none; cursor:pointer; opacity:1;
 display:inline-flex; align-items:center; justify-content:center; gap:.4em;
}
.shj-practice :is(button,.shj-button,summary) :is(span,small,strong,i,svg) { color:inherit !important; font-family:inherit; font-weight:inherit; }
.shj-practice :is(button,.shj-button,summary):hover { text-decoration:underline !important; text-underline-offset:.2em; }
.shj-practice :is(button,.shj-button)[aria-pressed=true],.shj-practice button[aria-selected=true] { outline:3px solid var(--shj-pink); outline-offset:2px; }
.shj-practice button:disabled { background:var(--shj-grey-beige) !important; color:var(--shj-brown) !important; cursor:not-allowed; opacity:1; border-style:dashed !important; }
.shj-practice :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid var(--shj-brown); outline-offset:4px; }
.shj-practice :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.shj-practice .shj-form :is(input,select,textarea) {
 background:var(--shj-beige); color:var(--shj-brown); border:1px solid var(--shj-brown); padding:.5em .65em; border-radius:9px;
 font-size:var(--shj-text-size,24px) !important; font-weight:700; width:100%; min-width:0;
}
.shj-practice ::placeholder { color:var(--shj-brown); opacity:1; }
.shj-practice .shj-field-help,.shj-practice small,.shj-practice .shj-required { opacity:1; font-weight:700; }
.shj-practice.shj-v8-header { width:100%; max-width:none; margin:0; padding:0; border:0; box-shadow:0 3px 10px #4d3c1a55; position:relative; z-index:40; }
.shj-v8-header-inner { width:min(100%,1500px); margin-inline:auto; display:flex; align-items:center; gap:clamp(1rem,2vw,2.5rem); padding:1rem clamp(1rem,4vw,4rem); }
.shj-v8-brand { display:block; flex:0 0 120px; width:120px; }
.shj-v8-brand img { display:block; width:120px !important; height:80px !important; max-width:100%; max-height:none; object-fit:contain; }
.shj-practice.shj-v8-nav { position:static; display:flex; flex:1 1 auto; justify-content:flex-end; flex-wrap:wrap; gap:.5rem 1.25rem; max-width:none; padding:0; margin:0; background:var(--shj-beige); box-shadow:none; border:0; }
.shj-v8-nav a { font-family:var(--e-global-typography-primary-font-family,"Candela"),sans-serif; font-size:var(--shj-text-size,24px); font-weight:400; color:var(--shj-brown); border-radius:0; padding:.5rem .15rem; min-height:48px; text-align:left; justify-content:flex-start; }
.shj-v8-nav a[aria-current] { background:transparent; color:var(--shj-brown); box-shadow:inset 0 -3px var(--shj-pink); }
.shj-v8-account { flex:0 0 auto; margin-left:0; }
.shj-v8-account nav { background:var(--shj-grey-beige); color:var(--shj-brown); width:min(24rem,calc(100vw - 2rem)); border:1px solid var(--shj-brown); box-shadow:0 5px 18px #4d3c1a33; max-height:70dvh; overflow:auto; }
.shj-v8-account nav a { font-family:var(--e-global-typography-primary-font-family,"Candela"),sans-serif; font-weight:400; font-size:var(--shj-text-size,24px); }
.shj-v8-account nav a:hover { background:var(--shj-beige); }
.shj-v8-content { width:100%; max-width:1400px; margin-inline:auto; padding:2.5rem clamp(1rem,4vw,4rem) 4rem; }
.shj-v8-content .shj-practice { max-width:none; margin-inline:0; width:100%; }
.shj-practice .shj-form { max-width:100%; margin:1rem 0; text-align:left; }
.shj-practice .shj-room-main,.shj-practice .shj-room-main .shj-component,.shj-practice .shj-room-main .shj-practice { width:100%; min-width:0; max-width:none; margin-inline:0; padding-inline:0; text-align:left; justify-self:stretch; }
.shj-room-nav ul { flex-wrap:wrap; gap:.6rem; padding:.8rem 0; }
.shj-room-nav button { white-space:normal; }
.v8-home { max-width:none; margin:0; }
.v8-row strong { font-weight:700; }
.v8-section-heading { align-items:flex-start; flex-wrap:wrap; }
.shj-practice .v8-section-heading > a { font-size:var(--shj-text-size,24px) !important; }
.v8-home-grid { grid-template-columns:1.2fr 1fr; }
.v8-row-end { flex-shrink:1; }
.v8-empty,.v8-next { background:var(--shj-grey-beige); border:1px solid var(--shj-grey-beige); }
.v8-sheet,.v8-notice { background:var(--shj-grey-beige); color:var(--shj-brown); box-shadow:0 5px 18px #4d3c1a33; }
.v8-sheet::backdrop { background:#4d3c1a88; }
.shj-v8-skip { background:#4d3c1a; color:#fbf6ed; }
.shj-practice.shj-v8-footer { width:100%; max-width:none; margin:0; padding:2rem clamp(1rem,4vw,4rem); background:var(--shj-grey-beige); display:flex; gap:1rem 2rem; justify-content:space-between; flex-wrap:wrap; }
.shj-v8-footer p { margin:0; }
.shj-practice .fc { --fc-button-bg-color:var(--shj-brown); --fc-button-text-color:var(--shj-beige); --fc-button-border-color:var(--shj-brown); --fc-button-hover-bg-color:var(--shj-brown); --fc-button-active-bg-color:var(--shj-brown); --fc-event-bg-color:var(--shj-brown); --fc-event-border-color:var(--shj-brown); --fc-event-text-color:var(--shj-beige); --fc-today-bg-color:var(--shj-grey-beige); --fc-now-indicator-color:var(--shj-pink); --fc-neutral-text-color:var(--shj-brown); --fc-non-business-color:var(--shj-grey-beige); --fc-page-bg-color:var(--shj-beige); }
.shj-practice .fc a.fc-event,.shj-practice .fc .fc-event-main { color:var(--shj-beige); }
.shj-practice .fc .fc-list-event-title a { color:var(--shj-brown); }
.shj-practice .fc .fc-button { margin:2px; }
.shj-practice .fc .fc-button-active { outline:3px solid var(--shj-pink); outline-offset:1px; }
.shj-practice .fc .fc-header-toolbar { flex-wrap:wrap; gap:1rem; }
.shj-practice .fc .fc-col-header-cell-cushion { font-family:inherit; font-weight:700; }
.v8-note-body { white-space:pre-wrap; overflow-wrap:anywhere; }
.v8-note { padding:1.5rem 0; border-bottom:2px solid var(--shj-grey-beige); }
.v8-note-editor textarea { min-height:12em; resize:vertical; }
.v8-note-editor [role=status] { min-height:1.5em; }
.v8-note-editor button { justify-self:start; }
.v8-note-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.v8-welcome-art { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.v8-welcome-art img { width:150px; height:150px; object-fit:contain; }
@media(max-width:1000px) {
 .shj-v8-header-inner { flex-wrap:wrap; gap:1rem; }
 .shj-v8-account { margin-left:auto; }
 .shj-practice.shj-v8-nav { order:3; flex:1 0 100%; justify-content:flex-start; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem 1rem; }
 .shj-v8-nav a { justify-content:flex-start; padding:.5rem 0; }
 .v8-home-grid { grid-template-columns:1fr; gap:0; }
 .shj-practice .shj-availability-row { grid-template-columns:1fr; }
}
@media(max-width:780px) {
 .shj-v8-content { padding:1.7rem 1rem 3rem; }
 .shj-practice.shj-v8-nav { position:static; bottom:auto; border:0; background:var(--shj-beige); box-shadow:none; }
 .shj-practice .fc .fc-view-harness { overflow-x:auto; }
 .shj-practice .fc .fc-timeGridWeek-view,.shj-practice .fc .fc-dayGridMonth-view { min-width:850px; }
 .shj-practice .shj-form-inline { grid-template-columns:1fr; }
 .v8-welcome-art { align-items:flex-start; }
 .v8-welcome-art img { width:80px; height:100px; }
 .shj-v8-account nav { right:0; }
}

.shj-practice .shj-dialog,.shj-practice .shj-dialog-card,.shj-practice .shj-workspace-more-menu { background:var(--shj-grey-beige); color:var(--shj-brown); box-shadow:0 5px 18px #4d3c1a33; }
.shj-practice .shj-dialog::backdrop { background:#4d3c1a88; }
