:root {
    --front-ink: #241b2c;
    --front-muted: #6f6675;
    --front-purple: #542176;
    --front-purple-dark: #34134f;
    --front-purple-soft: #eee5f4;
    --front-lilac: #a682ba;
    --front-peach: #edb891;
    --front-cream: #fbf7f1;
    --front-line: rgba(68, 34, 84, .14);
    --front-shadow: 0 28px 70px rgba(49, 24, 62, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.front-page { margin: 0; color: var(--front-ink); background: #fff; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
.front-page a { color: inherit; }
.front-page button, .front-page input, .front-page select { font: inherit; }
.front-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.ui-icon { width: 20px; height: 20px; display: block; stroke: currentColor; }

.site-header { position: sticky; top: 0; z-index: 50; min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 10px max(24px, calc((100vw - 1180px) / 2)); background: rgba(255, 255, 255, .88); border-bottom: 1px solid rgba(62, 30, 76, .09); backdrop-filter: blur(18px); }
.site-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--front-ink); text-decoration: none; }
.site-brand img { width: 46px; height: 46px; border-radius: 14px; object-fit: cover; mix-blend-mode: multiply; }
.site-brand > span { display: grid; font-family: Georgia, "Times New Roman", serif; font-size: 24px; line-height: .95; letter-spacing: -.02em; }
.site-brand > span strong { color: var(--front-purple); font-weight: 600; }
.site-brand small { margin-top: 5px; color: var(--front-muted); font-family: Inter, ui-sans-serif, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(13px, 1.7vw, 24px); color: #584e5e; font-size: 13px; font-weight: 650; }
.site-nav > a { padding: 8px 0; text-decoration: none; white-space: nowrap; }
.site-nav > a:hover { color: var(--front-purple); }
.site-nav .nav-login { padding-left: 18px; border-left: 1px solid var(--front-line); }
.mobile-menu-button { display: none; border: 1px solid var(--front-line); border-radius: 999px; background: #fff; padding: 9px 14px; color: var(--front-purple); font-weight: 750; }

.front-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 12px 23px; border: 1px solid rgba(70, 24, 99, .15); border-radius: 999px; background: linear-gradient(135deg, #6c328d, #491b68); color: #fff !important; box-shadow: 0 13px 26px rgba(71, 28, 96, .2), inset 0 1px rgba(255,255,255,.24); font-size: 14px; font-weight: 750; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.front-button:hover { transform: translateY(-2px); box-shadow: 0 18px 34px rgba(71, 28, 96, .25), inset 0 1px rgba(255,255,255,.24); }
.front-button.small { min-height: 40px; padding: 9px 18px; font-size: 12px; }
.front-button.secondary { background: #fff; color: var(--front-purple) !important; border-color: rgba(84, 33, 118, .28); box-shadow: 0 10px 24px rgba(62, 31, 75, .08); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--front-purple); font-size: 14px; font-weight: 750; text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.arrow-forward { width: 17px; transform: rotate(180deg); }

.hero-section { position: relative; overflow: hidden; padding: 76px 0 28px; background: radial-gradient(circle at 7% 7%, rgba(239, 187, 151, .25), transparent 26%), radial-gradient(circle at 92% 15%, rgba(172, 130, 195, .23), transparent 29%), linear-gradient(180deg, #fdfaf6, #f9f6fb 70%, #fff); }
.hero-section::before { position: absolute; inset: 0; pointer-events: none; content: ""; opacity: .35; background-image: radial-gradient(rgba(84, 33, 118, .18) .6px, transparent .6px); background-size: 18px 18px; mask-image: linear-gradient(to bottom, #000, transparent 75%); }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(1px); pointer-events: none; will-change: transform; }
.orb-one { width: 420px; height: 420px; right: -270px; top: 190px; border: 72px solid rgba(102, 46, 137, .06); animation: orbDriftOne 14s ease-in-out infinite alternate; }
.orb-two { width: 230px; height: 230px; left: -150px; bottom: 20px; background: rgba(237, 184, 145, .1); animation: orbDriftTwo 11s ease-in-out infinite alternate; }
.hero-grid { position: relative; z-index: 1; width: min(1280px, calc(100% - 48px)); min-width: 0; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 32px; }
.hero-copy { min-width: 0; padding: 20px 0 48px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #70408b; font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow i { width: 22px; height: 1px; background: currentColor; }
.eyebrow.centered { justify-content: center; }
.hero-copy h1, .story-intro h2, .narrow-heading h2, .journey-copy h2, .comparison-heading h2, .faq-grid h2, .final-cta h2 { margin: 20px 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.045em; }
.hero-copy h1 { max-width: 720px; font-size: clamp(50px, 5.3vw, 76px); line-height: 1; letter-spacing: -.032em; text-wrap: balance; }
.hero-copy h1 em { color: var(--front-purple); font-weight: 400; }
.hero-copy > p { max-width: 590px; margin: 0; color: var(--front-muted); font-size: 18px; line-height: 1.68; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 30px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 26px; color: #64596a; font-size: 12px; font-weight: 650; }
.hero-trust span { display: inline-flex; align-items: center; gap: 6px; }
.hero-trust .ui-icon { width: 16px; height: 16px; color: var(--front-purple); }

.product-scene { --hero-tilt-x: 2deg; --hero-tilt-y: -4deg; --hero-shift-x: 0px; --hero-shift-y: 0px; --hero-scale: 1; --hero-near-x: 0px; --hero-near-y: 0px; --hero-far-x: 0px; --hero-far-y: 0px; position: relative; min-height: 600px; display: grid; place-items: center; perspective: 1450px; transform-style: preserve-3d; animation: heroSceneIn 1s cubic-bezier(.2,.75,.25,1) .12s both; }
.product-scene::before { position: absolute; width: 76%; height: 66%; left: 15%; top: 19%; border-radius: 50%; content: ""; pointer-events: none; background: radial-gradient(circle, rgba(120,71,147,.2), rgba(120,71,147,0) 68%); filter: blur(30px); transform: translate3d(var(--hero-far-x), var(--hero-far-y), -70px); transition: transform .16s ease-out; }
.product-window { position: relative; width: 730px; border: 1px solid rgba(76, 39, 91, .15); border-radius: 22px; overflow: hidden; background: #fff; box-shadow: 0 42px 95px rgba(54, 27, 70, .22), 0 0 0 8px rgba(255,255,255,.45); transform: translate3d(var(--hero-shift-x), var(--hero-shift-y), 0) rotateX(var(--hero-tilt-x)) rotateY(var(--hero-tilt-y)) scale(var(--hero-scale)); transform-origin: center; transform-style: preserve-3d; transition: transform .16s cubic-bezier(.2,.75,.25,1), box-shadow .3s ease; will-change: transform; }
.product-window::after { position: absolute; inset: -30% auto -30% -55%; z-index: 6; width: 30%; content: ""; pointer-events: none; background: linear-gradient(105deg, transparent, rgba(255,255,255,.38), transparent); transform: skewX(-12deg); animation: screenSheen 8s ease-in-out 2s infinite; }
.window-top { height: 62px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 15px; padding: 0 20px; background: rgba(255,255,255,.97); border-bottom: 1px solid #eee9f0; color: #7d7482; font-size: 11px; }
.window-logo { display: inline-flex; align-items: center; gap: 7px; color: #352a3c; font-family: Georgia, serif; font-size: 16px; }
.window-logo img { border-radius: 8px; mix-blend-mode: multiply; }
.window-date { font-weight: 750; }
.window-avatar { justify-self: end; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #efe6f4; color: #5a2978; font-weight: 850; }
.window-body { min-height: 430px; display: grid; grid-template-columns: 135px 1fr; }
.window-body aside { display: grid; align-content: start; gap: 7px; padding: 24px 13px; background: #391652; color: rgba(255,255,255,.65); }
.window-body aside span, .window-body aside b { display: flex; align-items: center; gap: 8px; padding: 10px 11px; border-radius: 9px; font-size: 10px; }
.window-body aside b { background: rgba(255,255,255,.13); color: #fff; }
.window-body aside .ui-icon { width: 15px; height: 15px; }
.calendar-preview { padding: 23px; background: #fbfafc; }
.calendar-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.calendar-heading div { display: grid; gap: 2px; }
.calendar-heading small { color: #8a818f; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.calendar-heading strong { font-family: Georgia, serif; font-size: 23px; font-weight: 400; }
.calendar-heading button { border: 0; border-radius: 8px; background: #5b2877; color: #fff; padding: 8px 12px; font-size: 9px; font-weight: 750; }
.calendar-columns { min-height: 340px; display: grid; grid-template-columns: 40px 1fr 125px; gap: 10px; }
.time-rail { display: grid; grid-template-rows: repeat(6, 1fr); color: #a29aa6; font-size: 8px; text-align: right; padding-right: 5px; }
.appointment-stack { position: relative; border-left: 1px solid #e9e4ec; background: repeating-linear-gradient(to bottom, transparent 0, transparent 55px, #eeeaf0 56px); }
.appt { position: absolute; top: var(--top); left: 8px; right: 8px; height: var(--height); display: grid; grid-template-columns: 38px 1fr; gap: 8px; padding: 10px; border-radius: 9px; border-left: 3px solid; font-size: 8px; }
.appt time { font-weight: 800; }
.appt div { display: grid; gap: 3px; }
.appt b { font-size: 9px; }
.appt span { color: #706a74; }
.appt.lavender { background: #eee5f5; border-color: #784a92; }
.appt.peach { background: #fff0e6; border-color: #d58b58; }
.appt.mint { background: #eaf6ef; border-color: #4d9a6b; }
.today-card { align-self: start; display: grid; padding: 14px; border: 1px solid #eae4ed; border-radius: 13px; background: #fff; box-shadow: 0 10px 24px rgba(51,31,60,.06); }
.today-card small { color: #8f8794; font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }
.today-card strong { margin-top: 4px; color: #4f226b; font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.today-card b { font-size: 11px; }
.today-card span { color: #8a828e; font-size: 8px; }
.today-card hr { width: 100%; border: 0; border-top: 1px solid #eee9f0; margin: 11px 0; }
.floating-card { position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 13px 16px; border: 1px solid rgba(77, 39, 93, .14); border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: 0 18px 38px rgba(49,25,60,.13); backdrop-filter: blur(10px); transition: transform .18s cubic-bezier(.2,.75,.25,1); will-change: transform; }
.floating-card .ui-icon { color: var(--front-purple); }
.floating-card span { display: grid; gap: 2px; }
.floating-card small { color: #887e8d; font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.floating-card strong { font-size: 11px; }
.floating-booked { left: -12px; bottom: 62px; transform: translate3d(var(--hero-near-x), var(--hero-near-y), 80px); }
.floating-care { right: -12px; top: 68px; transform: translate3d(var(--hero-far-x), var(--hero-far-y), 45px); }
.capability-row { position: relative; z-index: 2; min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--front-line); color: #736a78; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.capability-row i { width: 4px; height: 4px; border-radius: 50%; background: #c2a6d2; }

.front-home-page .hero-copy > * { animation: heroCopyIn .8s cubic-bezier(.2,.75,.25,1) both; }
.front-home-page .hero-copy > :nth-child(1) { animation-delay: .04s; }
.front-home-page .hero-copy > :nth-child(2) { animation-delay: .11s; }
.front-home-page .hero-copy > :nth-child(3) { animation-delay: .18s; }
.front-home-page .hero-copy > :nth-child(4) { animation-delay: .25s; }
.front-home-page .hero-copy > :nth-child(5) { animation-delay: .32s; }
.front-home-page .capability-row { animation: heroCopyIn .75s cubic-bezier(.2,.75,.25,1) .42s both; }
.has-motion [data-reveal] { opacity: 0; transform: translateY(34px) scale(.992); transition: opacity .8s cubic-bezier(.2,.75,.25,1), transform .9s cubic-bezier(.2,.75,.25,1); }
.has-motion [data-reveal].is-visible { opacity: 1; transform: translateY(0) scale(1); }

@keyframes heroCopyIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes heroSceneIn { from { opacity: 0; transform: translate3d(34px, 30px, 0) scale(.965); } to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); } }
@keyframes screenSheen { 0%, 72% { left: -55%; opacity: 0; } 78% { opacity: .7; } 94%, 100% { left: 130%; opacity: 0; } }
@keyframes orbDriftOne { from { transform: translate3d(0, -12px, 0) rotate(0deg); } to { transform: translate3d(-34px, 28px, 0) rotate(12deg); } }
@keyframes orbDriftTwo { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(28px, -22px, 0) scale(1.08); } }

.practice-story-section { padding: 118px 0 126px; background: #fff; }
.story-intro { display: grid; grid-template-columns: 1.08fr .92fr; align-items: end; gap: 90px; }
.story-intro h2 { max-width: 720px; margin-bottom: 0; font-size: clamp(42px, 5.1vw, 63px); line-height: 1.01; }
.story-lead { max-width: 510px; margin: 0 0 7px; color: var(--front-muted); font-size: 17px; line-height: 1.72; }
.story-grid { display: grid; grid-template-columns: 1.04fr .96fr; gap: 20px; margin-top: 60px; }
.story-steps { counter-reset: story-step; display: grid; gap: 13px; }
.story-steps article { position: relative; min-height: 180px; display: grid; align-content: center; padding: 29px 31px 29px 95px; overflow: hidden; border: 1px solid var(--front-line); border-radius: 22px; background: linear-gradient(135deg, #fff, #fbf8fc); box-shadow: 0 13px 36px rgba(52,27,64,.045); }
.story-steps article::before { counter-increment: story-step; position: absolute; left: 27px; top: 28px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; content: "0" counter(story-step); color: #6c3b87; background: #f0e7f5; font-family: Georgia, serif; font-size: 17px; }
.story-steps article::after { position: absolute; width: 110px; height: 110px; right: -75px; bottom: -78px; border: 20px solid rgba(99,50,128,.045); border-radius: 50%; content: ""; }
.story-steps span, .story-turn-label { color: #7b4a95; font-size: 9px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.story-steps h3 { margin: 8px 0 8px; font-family: Georgia, serif; font-size: 26px; font-weight: 400; letter-spacing: -.025em; }
.story-steps p { max-width: 620px; margin: 0; color: var(--front-muted); font-size: 13px; line-height: 1.65; }
.story-turn { position: relative; overflow: hidden; padding: 48px; border-radius: 28px; color: #fff; background: radial-gradient(circle at 100% 0, rgba(177,129,201,.32), transparent 38%), linear-gradient(145deg, #2e113f, #5a2872); box-shadow: 0 30px 70px rgba(61,23,82,.18); }
.story-turn::after { position: absolute; width: 260px; height: 260px; right: -150px; bottom: -150px; border: 48px solid rgba(255,255,255,.045); border-radius: 50%; content: ""; }
.story-turn-label { color: #d9c1e5; }
.story-turn blockquote { max-width: 520px; margin: 24px 0 25px; font-family: Georgia, serif; font-size: clamp(31px, 3.4vw, 43px); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
.story-turn > p { max-width: 540px; margin: 0; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.72; }
.story-reveal { position: relative; z-index: 1; display: flex; align-items: center; gap: 13px; margin-top: 43px; padding: 18px 19px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(255,255,255,.09); }
.story-reveal > .ui-icon { width: 24px; height: 24px; flex: 0 0 auto; color: #e2c9ed; }
.story-reveal span { display: grid; gap: 4px; }
.story-reveal small { color: #d8c1e3; font-size: 8px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.story-reveal strong { font-family: Georgia, serif; font-size: 16px; font-weight: 400; line-height: 1.35; }

.narrative-section { padding: 118px 0 128px; }
.narrow-heading { max-width: 820px; text-align: center; }
.narrow-heading h2 { font-size: clamp(40px, 5vw, 61px); line-height: 1.03; }
.narrow-heading p { margin: 0; color: var(--front-muted); font-size: 17px; line-height: 1.72; }
.bento-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 62px; }
.bento-card { position: relative; min-height: 410px; overflow: hidden; padding: 34px; border: 1px solid var(--front-line); border-radius: 28px; background: #fbf9fc; box-shadow: 0 18px 50px rgba(52,27,64,.055); }
.bento-card > div:first-of-type { max-width: 520px; }
.bento-card small { color: #7b4a95; font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.bento-card h3 { max-width: 530px; margin: 9px 0 12px; font-family: Georgia, serif; font-size: clamp(27px, 3vw, 39px); font-weight: 400; line-height: 1.05; letter-spacing: -.035em; }
.bento-card p { max-width: 560px; margin: 0; color: var(--front-muted); font-size: 14px; line-height: 1.65; }
.feature-icon { position: absolute; right: 28px; top: 28px; width: 45px; height: 45px; display: grid; place-items: center; border-radius: 14px; background: #eee4f4; color: var(--front-purple); }
.feature-icon .ui-icon { width: 22px; height: 22px; }
.calendar-card { grid-column: 1 / -1; min-height: 460px; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 54px; padding: 46px; background: linear-gradient(160deg, #fbf8fc, #f2eaf6); }
.calendar-card > div:first-of-type { align-self: center; }
.care-card { background: linear-gradient(145deg, #fff, #faf2ec); }
.money-card { grid-column: 2; background: linear-gradient(145deg, #fff, #eef7f1); }
.growth-card { grid-column: 1 / -1; min-height: 270px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 42px; padding: 40px 46px; background: linear-gradient(120deg, #301247, #5e2c78); color: #fff; }
.growth-card .growth-copy { max-width: 570px; }
.growth-card p { color: rgba(255,255,255,.72); }
.growth-card small { color: #d8bee6; }
.growth-card .feature-icon { background: rgba(255,255,255,.12); color: #fff; }
.mini-schedule { min-height: 315px; display: grid; align-content: center; gap: 11px; padding: 24px; border-radius: 21px; background: rgba(255,255,255,.83); border: 1px solid rgba(78,40,92,.12); box-shadow: 0 22px 46px rgba(56,29,67,.11); backdrop-filter: blur(12px); }
.mini-schedule span { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 12px; background: #f6f1f8; }
.mini-schedule span:nth-child(2) { background: #fff2e9; }
.mini-schedule span:nth-child(3) { background: #ecf6ef; }
.mini-schedule time { font-size: 11px; font-weight: 850; }
.mini-schedule b { font-size: 12px; }
.mini-schedule em { color: #7b6f80; font-size: 9px; font-style: normal; }
.note-preview { position: absolute; left: 34px; right: 34px; bottom: -24px; min-height: 185px; display: grid; align-content: start; gap: 9px; padding: 22px; border: 1px solid #ede3dc; border-radius: 20px 20px 0 0; background: rgba(255,255,255,.9); box-shadow: 0 17px 40px rgba(64,41,28,.08); }
.note-preview b { margin-bottom: 4px; font-family: Georgia, serif; font-size: 19px; }
.note-preview span { color: #8f8177; font-size: 9px; }
.note-preview i { height: 6px; border-radius: 4px; background: #eadfe9; }
.money-metrics { position: absolute; left: 34px; right: 34px; bottom: 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.money-metrics span { display: grid; gap: 7px; padding: 15px; border: 1px solid #dfece3; border-radius: 14px; background: rgba(255,255,255,.86); }
.money-metrics strong { font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.automation-path { display: flex; align-items: center; justify-content: flex-end; gap: 11px; }
.automation-path span { padding: 14px 18px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(255,255,255,.09); font-size: 11px; font-weight: 750; }
.automation-path i { color: #c9acd9; font-style: normal; }

.journey-section { padding: 120px 0; overflow: hidden; background: #f7f1f9; }
.journey-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 88px; }
.journey-copy h2 { font-size: clamp(40px, 5vw, 60px); line-height: 1.03; }
.journey-copy > p { color: var(--front-muted); font-size: 17px; line-height: 1.72; }
.check-list { display: grid; gap: 12px; padding: 0; margin: 26px 0; list-style: none; }
.check-list li { display: flex; align-items: center; gap: 9px; color: #514858; font-size: 13px; font-weight: 700; }
.check-list .ui-icon { width: 17px; height: 17px; color: #6e398a; }
.phone-scene { position: relative; min-height: 670px; }
.phone { position: absolute; width: 285px; height: 570px; padding: 11px; border-radius: 42px; background: #211827; box-shadow: 0 38px 80px rgba(44,25,53,.24); }
.phone::before { position: absolute; z-index: 2; width: 84px; height: 23px; left: 50%; top: 15px; border-radius: 20px; background: #211827; content: ""; transform: translateX(-50%); }
.phone-back { left: 55px; top: 50px; transform: rotate(-8deg); opacity: .82; }
.phone-front { right: 95px; top: 20px; transform: rotate(5deg); }
.phone-screen { height: 100%; overflow: hidden; padding: 43px 22px 22px; border-radius: 32px; background: linear-gradient(#fff, #fbf8fc); }
.phone-scroll-content { transform: translate3d(0, var(--phone-screen-scroll, 0px), 0); will-change: transform; }
.phone-brand { display: flex; align-items: center; gap: 7px; margin-bottom: 34px; color: #403547; font-family: Georgia, serif; font-size: 11px; }
.phone-brand img { width: 25px; height: 25px; border-radius: 7px; mix-blend-mode: multiply; }
.phone-screen > small { color: #8a6d98; font-size: 8px; font-weight: 850; text-transform: uppercase; letter-spacing: .09em; }
.phone-screen h3 { margin: 7px 0 20px; font-family: Georgia, serif; font-size: 25px; font-weight: 400; line-height: 1.05; }
.phone-screen article { display: grid; gap: 7px; padding: 18px; border-radius: 17px; background: #eee6f4; }
.phone-screen article b { color: #76578a; font-size: 8px; text-transform: uppercase; }
.phone-screen article strong { font-family: Georgia, serif; font-size: 18px; font-weight: 400; }
.phone-screen article span { color: #776d7c; font-size: 9px; }
.phone-screen button { width: 100%; min-height: 40px; margin-top: 14px; border: 0; border-radius: 999px; background: #5b2878; color: #fff; font-size: 9px; font-weight: 800; }
.phone-dates { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.phone-dates span { padding: 10px 5px; border: 1px solid #e7e0eb; border-radius: 11px; color: #867a8c; font-size: 7px; text-align: center; }
.phone-dates b { display: block; margin-top: 5px; color: #493e50; font-size: 14px; }
.phone-dates .selected, .phone-times .selected { border-color: #6c3986; background: #eee5f3; color: #552271; }
.phone-times { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 14px; }
.phone-times span { padding: 10px; border: 1px solid #e8e1eb; border-radius: 10px; color: #6f6575; font-size: 8px; text-align: center; }
.phone-booking-summary { display: grid; gap: 7px; margin-top: 175px; padding: 17px; border: 1px solid #e5dce9; border-radius: 17px; background: #f2eaf5; }
.phone-booking-summary small { color: #76578a; font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.phone-booking-summary strong { font-family: Georgia, serif; font-size: 18px; font-weight: 400; }
.phone-booking-summary span { color: #776d7c; font-size: 9px; }

.workflow-section { padding: 118px 0; color: #fff; background: radial-gradient(circle at 50% 0, #683582, #35154d 55%, #261033); }
.narrow-heading.light h2 { margin-bottom: 55px; }
.narrow-heading.light .eyebrow { color: #d9c2e6; }
.workflow-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.workflow-grid article { position: relative; min-height: 345px; padding: 29px; border: 1px solid rgba(255,255,255,.12); border-radius: 23px; background: rgba(255,255,255,.06); backdrop-filter: blur(8px); }
.workflow-grid article > b { position: absolute; right: 24px; top: 19px; color: rgba(255,255,255,.16); font-family: Georgia, serif; font-size: 46px; font-weight: 400; }
.workflow-grid article > span { width: 45px; height: 45px; display: grid; place-items: center; margin-bottom: 55px; border-radius: 14px; background: rgba(255,255,255,.12); }
.workflow-grid small { color: #d9c4e3; font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.workflow-grid h3 { margin: 9px 0 12px; font-family: Georgia, serif; font-size: 28px; font-weight: 400; line-height: 1.05; }
.workflow-grid p { margin: 0; color: rgba(255,255,255,.67); font-size: 13px; line-height: 1.65; }

.comparison-section { padding: 120px 0; background: #fff; }
.comparison-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 80px; margin-bottom: 48px; }
.comparison-heading h2 { max-width: 720px; margin-bottom: 0; font-size: clamp(39px, 4.7vw, 58px); line-height: 1.03; }
.comparison-heading > p { margin: 0 0 7px; color: var(--front-muted); font-size: 16px; line-height: 1.65; }
.comparison-wrap { overflow-x: auto; }
.comparison-table { width: 100%; min-width: 900px; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--front-line); border-radius: 22px; font-size: 12px; }
.comparison-table th, .comparison-table td { padding: 18px 16px; border-bottom: 1px solid #eee9f0; text-align: center; vertical-align: middle; }
.comparison-table thead th { padding-block: 22px; background: #f9f7fa; }
.comparison-table th:first-child { width: 235px; text-align: left; }
.comparison-table tbody th { color: #625869; font-weight: 700; }
.comparison-table thead span { display: block; font-family: Georgia, serif; font-size: 17px; font-weight: 400; }
.comparison-table thead small { display: block; margin-top: 5px; color: #8c828f; font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.comparison-table tr:last-child th, .comparison-table tr:last-child td { border-bottom: 0; }
.comparison-table .qi-column { background: #f1e8f5; color: #44205a; border-left: 1px solid #dccbe5; border-right: 1px solid #dccbe5; }
.comparison-table thead .qi-column { background: #582576; color: #fff; }
.comparison-table thead .qi-column small { color: rgba(255,255,255,.68); }
.compare-yes { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #e4f3e8; color: #2e6d3e; }
.comparison-note { margin: 14px 3px 0; color: #8b828e; font-size: 10px; line-height: 1.6; }
.comparison-note a { color: #633283; }

.pricing-section { padding: 116px 0; background: linear-gradient(180deg, #faf6fb, #fff); }
.pricing-grid { max-width: 910px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 55px; }
.price-card { position: relative; padding: 36px; border: 1px solid var(--front-line); border-radius: 28px; background: #fff; box-shadow: 0 20px 55px rgba(52,27,64,.075); }
.price-card.featured { color: #fff; border-color: transparent; background: linear-gradient(145deg, #3c1556, #662f82); box-shadow: 0 30px 70px rgba(62,22,84,.22); }
.price-label { color: #754492; font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.featured .price-label { color: #ddc6e8; }
.price-badge { position: absolute; right: 24px; top: 22px; padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.12); color: #eadcef; font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.price { display: flex; align-items: end; gap: 8px; margin: 18px 0 10px; }
.price strong { font-family: Georgia, serif; font-size: 61px; font-weight: 400; line-height: .9; letter-spacing: -.05em; }
.price span { color: #817785; font-size: 12px; }
.featured .price span { color: rgba(255,255,255,.66); }
.price-card > p { min-height: 48px; color: var(--front-muted); font-size: 13px; line-height: 1.6; }
.featured > p { color: rgba(255,255,255,.7); }
.price-card .front-button { width: 100%; margin: 16px 0 22px; }
.featured .front-button { background: #fff; color: #51226d !important; }
.price-card ul { display: grid; gap: 12px; padding: 20px 0 0; margin: 0; border-top: 1px solid #eee8f0; list-style: none; }
.featured ul { border-color: rgba(255,255,255,.14); }
.price-card li { display: flex; gap: 8px; align-items: center; color: #5f5664; font-size: 12px; font-weight: 650; }
.featured li { color: rgba(255,255,255,.83); }
.price-card li .ui-icon { width: 16px; height: 16px; color: #774690; }
.featured li .ui-icon { color: #d8bee6; }
.pricing-footnote { margin: 22px 0 0; color: #918793; font-size: 10px; text-align: center; }
.offer-assurance { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 30px; }
.offer-assurance article { display: flex; align-items: flex-start; gap: 12px; padding: 20px; border: 1px solid var(--front-line); border-radius: 17px; background: rgba(255,255,255,.8); }
.offer-assurance article > span { width: 33px; height: 33px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: var(--front-purple); background: var(--front-purple-soft); }
.offer-assurance .ui-icon { width: 17px; height: 17px; }
.offer-assurance .arrow-forward { transform: rotate(180deg); }
.offer-assurance strong { display: block; margin: 1px 0 5px; font-family: Georgia, serif; font-size: 16px; font-weight: 400; }
.offer-assurance p { margin: 0; color: var(--front-muted); font-size: 10px; line-height: 1.55; }

.faq-section { padding: 118px 0; background: #fbf9f6; }
.faq-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; }
.faq-grid h2 { font-size: clamp(40px, 4.5vw, 56px); line-height: 1.04; }
.faq-grid > div:first-child p { color: var(--front-muted); line-height: 1.7; }
.faq-list { border-top: 1px solid var(--front-line); }
.faq-list details { border-bottom: 1px solid var(--front-line); }
.faq-list summary { position: relative; padding: 24px 38px 24px 0; cursor: pointer; list-style: none; font-family: Georgia, serif; font-size: 19px; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; right: 4px; top: 21px; content: "+"; color: #72418e; font-family: Inter, sans-serif; font-size: 22px; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { max-width: 700px; margin: -4px 45px 24px 0; color: var(--front-muted); font-size: 13px; line-height: 1.7; }

.final-cta { position: relative; overflow: hidden; padding: 104px 0; color: #fff; text-align: center; background: radial-gradient(circle at 50% -20%, #81539b, transparent 48%), #321348; }
.final-cta::after { position: absolute; width: 500px; height: 500px; right: -270px; bottom: -300px; border: 80px solid rgba(255,255,255,.04); border-radius: 50%; content: ""; }
.final-cta img { border-radius: 22px; mix-blend-mode: screen; opacity: .92; }
.final-cta .eyebrow { display: flex; margin-top: 18px; color: #dcc8e6; }
.final-cta h2 { max-width: 760px; margin-inline: auto; font-size: clamp(42px, 5vw, 64px); line-height: 1.02; }
.final-cta p { max-width: 620px; margin-inline: auto; color: rgba(255,255,255,.7); font-size: 16px; line-height: 1.7; }
.final-cta .final-ps { max-width: 760px; display: flex; align-items: center; justify-content: center; gap: 14px; margin: 30px auto 0; padding: 14px 18px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(255,255,255,.075); color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.55; text-align: left; }
.final-ps strong { flex: 0 0 auto; padding: 7px 9px; border-radius: 9px; background: #fff; color: #4d2167; font-size: 10px; letter-spacing: .08em; }
.centered-actions { justify-content: center; }
.light-button { background: #fff; color: #4d2167 !important; }
.light-link { color: #fff; }

.site-footer { padding: 45px 0; background: #21152a; color: rgba(255,255,255,.7); }
.site-footer .front-shell { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 34px; }
.footer-brand { color: #fff !important; }
.footer-brand img { mix-blend-mode: screen; }
.footer-brand small { color: rgba(255,255,255,.5); }
.site-footer p { font-size: 11px; }
.site-footer nav { display: flex; gap: 18px; font-size: 10px; }
.site-footer nav a { text-decoration: none; }
.site-footer > .front-shell > small { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1); font-size: 9px; }

/* Account creation */
.front-signup-page { min-height: 100vh; background: #f8f5fa; }
.signup-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(380px, .82fr) minmax(520px, 1.18fr); }
.signup-story { position: relative; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; gap: 30px; padding: 38px clamp(34px, 5vw, 72px); color: #fff; background: radial-gradient(circle at 15% 15%, rgba(238, 183, 142, .27), transparent 30%), radial-gradient(circle at 90% 80%, rgba(187,146,209,.22), transparent 32%), linear-gradient(145deg, #2d103f, #5b2675); }
.signup-story::after { position: absolute; width: 470px; height: 470px; left: -280px; bottom: -260px; border: 75px solid rgba(255,255,255,.05); border-radius: 50%; content: ""; }
.signup-brand { position: relative; z-index: 1; color: #fff !important; }
.signup-brand img { mix-blend-mode: screen; }
.signup-brand small { color: rgba(255,255,255,.58); }
.signup-story-copy { position: relative; z-index: 1; align-self: center; max-width: 560px; }
.signup-story .eyebrow { color: #dfcae9; }
.signup-story h1 { margin: 18px 0; font-family: Georgia, serif; font-size: clamp(42px, 5vw, 68px); font-weight: 400; line-height: 1; letter-spacing: -.045em; }
.signup-story-copy > p { color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.72; }
.light-checks li { color: rgba(255,255,255,.84); }
.light-checks .ui-icon { color: #dfc9e9; }
.signup-story blockquote { position: relative; z-index: 1; max-width: 510px; margin: 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.62); font-family: Georgia, serif; font-size: 16px; font-style: italic; line-height: 1.55; }
.signup-form-panel { display: grid; place-items: center; padding: 55px 30px; background: radial-gradient(circle at 95% 5%, rgba(182,146,201,.14), transparent 30%), #fbfafc; }
.signup-form-wrap { width: min(610px, 100%); }
.back-link { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 58px; color: #766c7a; font-size: 12px; font-weight: 700; text-decoration: none; }
.back-link .ui-icon { width: 15px; height: 15px; }
.signup-form-wrap h2 { margin: 14px 0 8px; font-family: Georgia, serif; font-size: 43px; font-weight: 400; letter-spacing: -.04em; }
.form-intro { margin: 0 0 30px; color: var(--front-muted); font-size: 14px; line-height: 1.6; }
.front-form { display: grid; gap: 17px; }
.front-form label { display: grid; gap: 8px; color: #4e4553; font-size: 12px; font-weight: 750; }
.front-form input, .front-form select { width: 100%; min-height: 49px; padding: 11px 13px; border: 1px solid rgba(65,34,78,.18); border-radius: 11px; background: #fff; color: var(--front-ink); font-size: 15px; outline: 0; box-shadow: inset 0 1px rgba(255,255,255,.7); transition: border .16s ease, box-shadow .16s ease; }
.front-form input:focus, .front-form select:focus { border-color: #774493; box-shadow: 0 0 0 4px rgba(103,53,132,.11); }
.front-form small { color: #8b818e; font-size: 10px; font-weight: 550; }
.form-row-two { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 64px; }
.password-field button { position: absolute; right: 7px; top: 7px; min-height: 35px; padding: 0 10px; border: 0; border-radius: 8px; background: #f0e8f4; color: #61317d; font-size: 10px; font-weight: 800; cursor: pointer; }
.form-submit { width: 100%; margin-top: 5px; border: 0; cursor: pointer; }
.form-switch { margin: 22px 0 0; color: #7d7480; font-size: 12px; text-align: center; }
.form-switch a { color: #5b2878; font-weight: 800; }
.fine-print { margin-top: 28px; color: #9a909d; font-size: 9px; line-height: 1.6; text-align: center; }
.honeypot { position: absolute !important; left: -10000px !important; opacity: 0 !important; pointer-events: none !important; }
.front-flash-stack { display: grid; gap: 8px; margin-bottom: 18px; }
.front-flash { padding: 12px 14px; border: 1px solid #dcd3e1; border-radius: 11px; background: #fff; font-size: 12px; line-height: 1.45; }
.front-flash.error { border-color: #efcaca; background: #fff2f2; color: #8a2f2f; }
.front-flash.success { border-color: #cce5d3; background: #f0f8f2; color: #2d673c; }

/* Practitioner authentication */
body.practitioner-auth-page { min-height: 100vh; margin: 0; color: var(--front-ink); background: #f8f5fa; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
.practitioner-auth-page * { box-sizing: border-box; }
.practitioner-auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(410px, .95fr) minmax(500px, 1.05fr); }
.practitioner-auth-brand-panel { position: relative; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; padding: 36px clamp(34px, 5vw, 74px) 46px; color: #fff; background: radial-gradient(circle at 15% 8%, rgba(239,186,146,.25), transparent 28%), radial-gradient(circle at 95% 85%, rgba(183,142,205,.24), transparent 33%), linear-gradient(145deg, #2d103f, #5a2675); }
.practitioner-auth-brand-panel::before { position: absolute; width: 520px; height: 520px; left: -320px; bottom: -315px; border: 82px solid rgba(255,255,255,.045); border-radius: 50%; content: ""; }
.practitioner-auth-brand-panel::after { position: absolute; width: 300px; height: 300px; right: -205px; top: 20%; border: 55px solid rgba(255,255,255,.04); border-radius: 50%; content: ""; }
.auth-brand { position: relative; z-index: 1; color: #fff !important; }
.auth-brand > span strong, .signup-brand > span strong { color: #fff; }
.auth-brand img { width: 54px; height: 54px; mix-blend-mode: screen; }
.auth-brand small { color: rgba(255,255,255,.55); }
.auth-brand-copy { position: relative; z-index: 1; align-self: center; max-width: 590px; }
.auth-brand-copy .eyebrow { color: #dec8e9; }
.auth-brand-copy h1 { margin: 20px 0; font-family: Georgia, serif; font-size: clamp(46px, 5.5vw, 72px); font-weight: 400; line-height: .98; letter-spacing: -.05em; }
.auth-brand-copy p { max-width: 530px; color: rgba(255,255,255,.7); font-size: 16px; line-height: 1.7; }
.auth-day-preview { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; background: rgba(255,255,255,.07); backdrop-filter: blur(8px); }
.auth-day-preview > span { display: grid; gap: 4px; padding: 19px 20px; }
.auth-day-preview > span + span { border-left: 1px solid rgba(255,255,255,.13); }
.auth-day-preview small { color: #d8c0e4; font-size: 8px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.auth-day-preview strong { font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.auth-day-preview em { color: rgba(255,255,255,.6); font-size: 9px; font-style: normal; }
.practitioner-auth-form-panel { display: grid; place-items: center; padding: 60px 34px; background: radial-gradient(circle at 100% 0, rgba(177,137,199,.15), transparent 30%), linear-gradient(180deg, #fff, #faf8fb); }
.practitioner-auth-form-wrap { width: min(480px, 100%); }
.auth-mobile-brand { display: none; margin-bottom: 46px; }
.practitioner-auth-form-wrap h2 { margin: 14px 0 8px; font-family: Georgia, serif; font-size: 44px; font-weight: 400; line-height: 1.05; letter-spacing: -.04em; }
.auth-form-intro { margin: 0 0 30px; color: var(--front-muted); font-size: 14px; line-height: 1.65; }
.auth-form { gap: 19px; }
.field-label-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.field-label-row a { color: #653281; font-size: 10px; font-weight: 800; text-decoration: none; }
.field-label-row a:hover { text-decoration: underline; text-underline-offset: 3px; }
.auth-crossroads { display: grid; gap: 9px; margin-top: 26px; color: #7f7583; font-size: 11px; text-align: center; }
.auth-crossroads p { margin: 0; }
.auth-crossroads a, .auth-help-note a { color: #5c2878; font-weight: 800; }
.auth-crossroads > span { height: 1px; width: 100%; background: #eee8f0; }
.auth-security-note { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 28px 0 0; color: #958b98; font-size: 9px; }
.auth-security-note .ui-icon { width: 14px; height: 14px; color: #6e3a89; }
.demo-credentials { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: -12px 0 21px; padding: 10px 12px; border: 1px solid #e4d9e9; border-radius: 10px; background: #f5eff8; color: #684a76; font-size: 9px; }
.demo-credentials strong { text-transform: uppercase; letter-spacing: .08em; }
.auth-back-link { margin: 0 0 46px; }
.auth-help-note { margin: 28px 0 0; padding: 14px; border-radius: 10px; background: #f5f1f7; color: #7d7381; font-size: 10px; line-height: 1.55; text-align: center; }
.standalone-submit { width: 100%; margin-top: 10px; }

/* Client portal authentication */
body.client-login-page { margin: 0; background: #f8f5fa; }
.client-login-page .portal-login-page { min-height: 100vh; display: block; padding: 0; background: #f8f5fa; color: var(--front-ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.client-login-page .portal-login-page * { box-sizing: border-box; }
.client-login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(440px, 1.03fr) minmax(500px, .97fr); }
.client-login-welcome { position: relative; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto auto; gap: 28px; padding: 36px clamp(38px, 5vw, 76px) 44px; background: radial-gradient(circle at 12% 10%, rgba(239,184,144,.32), transparent 28%), radial-gradient(circle at 90% 85%, rgba(168,128,192,.25), transparent 32%), linear-gradient(145deg, #faf5ee, #f1e7f5 70%, #e8d7ef); }
.client-login-welcome::before { position: absolute; width: 470px; height: 470px; left: -290px; bottom: -280px; border: 75px solid rgba(91,42,119,.055); border-radius: 50%; content: ""; }
.client-login-welcome::after { position: absolute; width: 300px; height: 300px; right: -210px; top: 28%; border: 55px solid rgba(91,42,119,.045); border-radius: 50%; content: ""; }
.client-login-brand { position: relative; z-index: 1; }
.client-login-brand img { width: 54px; height: 54px; }
.client-welcome-copy { position: relative; z-index: 1; align-self: center; max-width: 620px; }
.client-welcome-copy h1 { margin: 18px 0 12px; color: #34253d; font-family: Georgia, serif; font-size: clamp(55px, 7vw, 88px); font-weight: 400; line-height: .95; letter-spacing: -.055em; }
.client-welcome-copy > p { max-width: 570px; margin: 0; color: #6e6274; font-size: 17px; line-height: 1.72; }
.client-login-benefits { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(80,42,98,.13); border-radius: 19px; background: rgba(255,255,255,.48); backdrop-filter: blur(10px); }
.client-login-benefits > span { display: grid; gap: 5px; padding: 18px; }
.client-login-benefits > span + span { border-left: 1px solid rgba(80,42,98,.12); }
.client-login-benefits .ui-icon { width: 18px; height: 18px; margin-bottom: 7px; color: #6d3988; }
.client-login-benefits b { color: #46384d; font-size: 11px; }
.client-login-benefits small { color: #837689; font-size: 8px; line-height: 1.35; }
.client-privacy-note { position: relative; z-index: 1; display: flex; align-items: center; gap: 7px; margin: 0; color: #837389; font-size: 9px; }
.client-privacy-note .ui-icon { width: 14px; height: 14px; color: #63317f; }
.client-login-form-panel { display: grid; place-items: center; padding: 58px 34px; background: radial-gradient(circle at 100% 0, rgba(184,145,205,.13), transparent 28%), #fff; }
.client-login-form-wrap { width: min(470px, 100%); }
.client-mobile-brand { display: none; margin-bottom: 44px; }
.client-mobile-brand img { width: 46px; height: 46px; }
.client-login-form-wrap h2 { margin: 14px 0 8px; color: #2e2335; font-family: Georgia, serif; font-size: 44px; font-weight: 400; line-height: 1.05; letter-spacing: -.04em; }
.client-form-intro { margin: 0 0 28px; color: var(--front-muted); font-size: 14px; line-height: 1.65; }
.client-auth-form { gap: 19px; }
.client-reset-disclosure { margin-top: 23px; border-top: 1px solid #eee8f0; border-bottom: 1px solid #eee8f0; }
.client-reset-disclosure summary { position: relative; padding: 17px 30px 17px 0; cursor: pointer; list-style: none; color: #5d2d78; font-size: 11px; font-weight: 800; }
.client-reset-disclosure summary::-webkit-details-marker { display: none; }
.client-reset-disclosure summary::after { position: absolute; right: 2px; content: "+"; color: #815698; font-size: 17px; font-weight: 400; }
.client-reset-disclosure[open] summary::after { content: "−"; }
.client-reset-disclosure > p { margin: -2px 0 15px; color: #817684; font-size: 10px; line-height: 1.5; }
.client-reset-form { gap: 12px; padding-bottom: 18px; }
.client-reset-form input { min-height: 44px; }
.client-reset-form .front-button { min-height: 44px; }
.client-login-footer { display: grid; gap: 7px; margin-top: 25px; color: #8d828f; font-size: 10px; text-align: center; }
.client-login-footer p { margin: 0; }
.client-login-footer a { color: #602d7b; font-weight: 800; }

@media (max-width: 930px) {
    .client-login-shell { grid-template-columns: 1fr; }
    .client-login-welcome { display: none; }
    .client-login-form-panel { min-height: 100vh; }
    .client-mobile-brand { display: block; }
}

@media (max-width: 520px) {
    .client-login-form-panel { align-items: start; padding: 27px 20px 45px; }
    .client-mobile-brand { margin-bottom: 52px; }
    .client-login-form-wrap h2 { font-size: 38px; }
}

@media (max-width: 900px) {
    .practitioner-auth-shell { grid-template-columns: 1fr; }
    .practitioner-auth-brand-panel { display: none; }
    .practitioner-auth-form-panel { min-height: 100vh; padding-block: 55px; }
    .auth-mobile-brand { display: block; }
}

@media (max-width: 520px) {
    .practitioner-auth-form-panel { align-items: start; padding: 28px 20px 45px; }
    .auth-mobile-brand { margin-bottom: 52px; }
    .practitioner-auth-form-wrap h2 { font-size: 38px; }
}

@media (max-width: 1120px) {
    .site-nav { gap: 12px; }
    .site-nav > a:nth-child(2) { display: none; }
    .hero-grid { width: min(100% - 48px, 1180px); grid-template-columns: 1fr; }
    .hero-copy { max-width: 760px; padding-bottom: 0; }
    .product-scene { min-height: 570px; }
    .product-window { width: min(800px, 95%); }
    .floating-booked { left: 6%; }
    .floating-care { right: 6%; }
    .calendar-card { min-height: 0; grid-template-columns: 1fr; gap: 28px; }
    .mini-schedule { min-height: 0; }
    .growth-card { min-height: 0; grid-template-columns: 1fr; gap: 26px; }
    .automation-path { justify-content: flex-start; flex-wrap: wrap; }
    .journey-grid { gap: 30px; }
    .phone-back { left: 0; }
    .phone-front { right: 38px; }
    .signup-shell { grid-template-columns: .8fr 1.2fr; }
}

@media (max-width: 880px) {
    .front-shell { width: min(100% - 32px, 1180px); }
    .mobile-menu-button { display: block; }
    .site-nav { position: absolute; top: calc(100% + 8px); left: 16px; right: 16px; display: none; align-items: stretch; padding: 14px; border: 1px solid var(--front-line); border-radius: 18px; background: rgba(255,255,255,.98); box-shadow: var(--front-shadow); }
    .site-nav.is-open { display: grid; }
    .site-nav > a, .site-nav > a:nth-child(2) { display: block; padding: 10px 12px; }
    .site-nav .nav-login { padding-left: 12px; border-left: 0; border-top: 1px solid var(--front-line); }
    .site-nav .front-button { text-align: center; }
    .hero-section { padding-top: 55px; }
    .hero-copy h1 { font-size: clamp(45px, 10vw, 70px); }
    .capability-row { flex-wrap: wrap; justify-content: center; padding-block: 22px; }
    .story-intro { grid-template-columns: 1fr; gap: 24px; }
    .story-lead { max-width: 720px; }
    .story-grid { grid-template-columns: 1fr; }
    .story-turn { min-height: 550px; }
    .bento-grid { grid-template-columns: 1fr; }
    .calendar-card, .care-card, .money-card, .growth-card { grid-column: auto; grid-row: auto; }
    .calendar-card { min-height: 0; }
    .journey-grid { grid-template-columns: 1fr; }
    .phone-scene { width: min(650px, 100%); margin-inline: auto; }
    .workflow-grid { grid-template-columns: 1fr; }
    .workflow-grid article { min-height: 280px; }
    .workflow-grid article > span { margin-bottom: 35px; }
    .comparison-heading, .faq-grid { grid-template-columns: 1fr; gap: 20px; }
    .pricing-grid { grid-template-columns: 1fr; }
    .offer-assurance { grid-template-columns: 1fr; }
    .site-footer .front-shell { grid-template-columns: 1fr; }
    .site-footer nav { flex-wrap: wrap; }
    .signup-shell { grid-template-columns: 1fr; }
    .signup-story { min-height: 0; display: block; padding: 22px 24px; }
    .signup-story-copy, .signup-story blockquote { display: none; }
    .signup-form-panel { padding-block: 65px; }
    .back-link { margin-bottom: 40px; }
}

@media (max-width: 600px) {
    .site-header { min-height: 66px; padding-inline: 16px; }
    .site-brand img { width: 40px; height: 40px; }
    .site-brand > span { font-size: 21px; }
    .hero-section { padding-top: 40px; }
    .hero-copy h1 { margin-top: 16px; font-size: 45px; line-height: 1.01; letter-spacing: -.025em; }
    .hero-copy > p { font-size: 16px; }
    .hero-actions { align-items: stretch; flex-direction: column; }
    .hero-actions .front-button { width: 100%; }
    .hero-actions .text-link { justify-content: center; }
    .product-scene { min-width: 0; min-height: 420px; margin-top: 15px; overflow: hidden; }
    .product-window { --hero-scale: .56; --hero-tilt-x: 0deg; --hero-tilt-y: 0deg; position: absolute; width: 690px; transform-origin: center; }
    .floating-card { display: none; }
    .capability-row { font-size: 9px; }
    .capability-row i { display: none; }
    .practice-story-section, .narrative-section, .journey-section, .workflow-section, .comparison-section, .pricing-section, .faq-section { padding-block: 82px; }
    .story-intro h2, .narrow-heading h2, .journey-copy h2, .comparison-heading h2, .faq-grid h2 { font-size: 39px; }
    .story-grid { margin-top: 42px; }
    .story-steps article { min-height: 0; padding: 82px 24px 25px; }
    .story-steps article::before { left: 23px; top: 23px; }
    .story-turn { min-height: 0; padding: 32px 25px; border-radius: 23px; }
    .story-turn blockquote { font-size: 32px; }
    .bento-grid { margin-top: 42px; }
    .bento-card { min-height: 430px; padding: 25px; border-radius: 22px; }
    .calendar-card { min-height: 0; gap: 24px; }
    .feature-icon { right: 20px; top: 20px; }
    .bento-card h3 { padding-right: 34px; font-size: 29px; }
    .note-preview { left: 24px; right: 24px; bottom: 24px; }
    .mini-schedule { padding: 14px; }
    .mini-schedule span { grid-template-columns: 42px 1fr; }
    .mini-schedule em { grid-column: 2; }
    .money-metrics { left: 24px; right: 24px; bottom: 24px; grid-template-columns: 1fr; }
    .money-card { min-height: 540px; }
    .growth-card { min-height: 0; }
    .automation-path span { padding: 11px 13px; }
    .phone-scene { min-height: 540px; transform: scale(.82); transform-origin: top center; margin-bottom: -90px; }
    .phone-back { left: -45px; }
    .phone-front { right: -10px; }
    .price-card { padding: 28px; }
    .price-badge { position: static; display: inline-flex; margin-bottom: 16px; }
    .final-cta { padding-block: 82px; }
    .final-cta h2 { font-size: 41px; }
    .final-cta .final-ps { align-items: flex-start; padding: 14px; }
    .signup-story { min-height: 0; padding: 20px; }
    .signup-form-panel { padding: 48px 20px; }
    .signup-form-wrap h2 { font-size: 38px; }
    .form-row-two { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .product-scene { --hero-tilt-x: 0deg; --hero-tilt-y: -2deg; --hero-shift-x: 0px; --hero-shift-y: 0px; }
    .phone-scroll-content { transform: none; }
}
