*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#20322a;background:#fdfcf9;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}main{--brand:#315b4a}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;background:#fffffff2;border-bottom:1px solid #e9e5dd;align-items:center;gap:2rem;height:84px;padding:0 max(5vw,24px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:.8rem;margin-right:auto;display:flex}.brand img,.brand span,.footer-brand img,.footer-brand span{object-fit:contain;width:46px;height:46px;color:var(--brand);background:#f1eee6;border-radius:14px;place-items:center;font-weight:800;display:grid}nav{color:#52635b;gap:1.7rem;font-size:.93rem;display:flex}.button{background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:999px;justify-content:center;align-items:center;padding:1rem 1.45rem;font-weight:700;transition:all .25s;display:inline-flex}.button:hover{transform:translateY(-2px);box-shadow:0 12px 30px #1b3b2d2b}.button.small{padding:.72rem 1.15rem}.hero-premium{background:#fdfcf9;grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);align-items:center;gap:clamp(3rem,7vw,8rem);min-height:680px;padding:70px max(6.5vw,24px) 88px;display:grid;position:relative;overflow:hidden}.hero-photo{object-fit:cover;border-radius:30px;grid-area:1/2;width:100%;height:min(570px,68vw);box-shadow:0 30px 80px #23382e17}.hero-shade{display:none}.hero-copy{z-index:2;color:#20322a;grid-area:1/1;width:100%;max-width:680px;margin:0;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--brand);margin:0 0 1rem;font-size:.73rem;font-weight:800}.hero-copy .eyebrow{color:var(--brand)}.booking-callout .eyebrow{color:#d9c7a0}.hero-copy h1{letter-spacing:-.05em;color:#1d3027;max-width:760px;margin:.18em 0 .32em;font:500 clamp(3.2rem,5.8vw,6.1rem)/1.01 Georgia,serif}.lead{color:#65736d;max-width:590px;font-size:1.12rem;line-height:1.75}.actions{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.secondary{color:#344d42;background:0 0;border:0;border-bottom:1px solid #aebbb5;border-radius:0;padding:1rem .35rem;font-weight:700}.hero-proof,.hero-proof span{display:none}.trust-strip{background:#fff;border-top:1px solid #ebe8e0;border-bottom:1px solid #ebe8e0;grid-template-columns:repeat(3,1fr);padding:34px max(6.5vw,24px);display:grid}.trust-strip div{border-right:1px solid #d9d5ca;align-items:center;gap:1rem;padding:0 2rem;display:flex}.trust-strip div:first-child{padding-left:0}.trust-strip div:last-child{border:0}.trust-strip b{color:var(--brand);font:italic 1.7rem Georgia,serif}.trust-strip span{font-weight:700}.section{padding:110px max(7vw,28px)}.section-heading{justify-content:space-between;align-items:end;gap:3rem;margin-bottom:3rem;display:flex}.section-heading h2,.about-copy h2,.booking-callout h2,.contact-section h2{letter-spacing:-.035em;margin:.2rem 0;font:500 clamp(2.3rem,4vw,4.2rem)/1.08 Georgia,serif}.section-heading>p{color:#65736d;max-width:430px;line-height:1.7}.service-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.service-grid article{background:#fff;border:1px solid #e7e4dc;border-radius:18px;flex-direction:column;min-height:285px;padding:1.8rem;transition:all .25s;display:flex}.service-grid article:hover{transform:translateY(-5px);box-shadow:0 22px 50px #23443412}.service-number{color:#c7cec9;font:italic 2rem Georgia,serif}.duration{color:var(--brand);text-transform:uppercase;letter-spacing:.12em;margin-top:2rem;font-size:.75rem;font-weight:800}.service-grid h3,.people h3,.empty-card h3{margin:.6rem 0;font:500 1.6rem Georgia,serif}.service-grid p,.people p,.empty,.empty-card p,.about-copy>p,.booking-callout p{color:#65736d;line-height:1.65}.service-grid a{color:var(--brand);margin-top:auto;font-weight:800}.empty-card{background:#fff;border:1px dashed #cacfc9;border-radius:24px;padding:2rem}.about-section{background:#f1f3ee;grid-template-columns:.92fr 1.08fr;align-items:center;gap:9vw;padding:120px max(7vw,28px);display:grid}.about-image{position:relative}.about-image img{object-fit:cover;border-radius:26px;width:100%;height:540px}.experience{display:none}.experience strong{font:3rem Georgia,serif;display:block}.about-copy>p{font-size:1.08rem}.about-copy ul{margin:2rem 0;padding:0;list-style:none}.about-copy li{border-bottom:1px solid #ced7d1;padding:.8rem 0}.about-copy li:before{content:"✓";color:var(--brand);margin-right:.8rem;font-weight:900}.text-link{color:var(--brand);font-weight:800}.team-section{background:#fbfaf7}.people{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.people article{background:#fff;border:1px solid #e4e2da;border-radius:20px;align-items:center;gap:1rem;padding:1.4rem;display:flex}.avatar{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:58px;height:58px;font:1.5rem Georgia,serif;display:grid}.people h3{margin:0}.people p{margin:.25rem 0}.people a{border:1px solid #d9ddd9;border-radius:50%;place-items:center;width:42px;height:42px;margin-left:auto;display:grid}.booking-callout{background:var(--brand);color:#fff;border-radius:32px;justify-content:space-between;align-items:center;gap:3rem;margin:0 max(3vw,18px);padding:80px max(5vw,30px);display:flex}.booking-callout div{max-width:720px}.booking-callout p{color:#e7eee9}.button.light{color:var(--brand);white-space:nowrap;background:#fff;border-color:#fff}.contact-section{grid-template-columns:.7fr 1.3fr;gap:6vw;padding:110px max(7vw,28px);display:grid}.contact-list{grid-template-columns:1fr 1fr;display:grid}.contact-list>*{border-bottom:1px solid #dedfd9;flex-direction:column;gap:.4rem;padding:1.4rem;display:flex}.contact-list small{color:#7a867f}footer{color:#fff;background:#1d332a;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:2rem;padding:42px max(7vw,28px);display:grid}.footer-brand{align-items:center;gap:.8rem;display:flex}footer p{color:#b9c7c0}footer>div:last-child{justify-content:flex-end;gap:1rem;font-size:.85rem;display:flex}.booking{background:#f3eee7;min-height:100vh;padding:50px 20px}.booking-card{background:#fff;border:1px solid #e2d8ca;border-radius:28px;max-width:850px;margin:auto;padding:clamp(24px,5vw,54px)}.booking-head{justify-content:space-between;display:flex}.booking h1{font:500 clamp(2.3rem,5vw,4rem) Georgia,serif}form{gap:1.1rem;margin-top:2rem;display:grid}label,legend{gap:.5rem;font-weight:700;display:grid}select,input{width:100%;font:inherit;background:#fff;border:1px solid #cfc5b8;border-radius:12px;padding:.9rem}fieldset{border:0;padding:0}.date-grid{flex-wrap:wrap;gap:.6rem;display:flex}.date-grid button{background:#fff;border:1px solid #cfc5b8;border-radius:12px;padding:.75rem}.date-grid button.chosen{background:var(--brand);color:#fff}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.check{grid-template-columns:auto 1fr}.check input{width:auto}.message{background:#f0ebe4;border-radius:12px;padding:1rem}@media (max-width:850px){nav,.hero-shade{display:none}.trust-strip,.service-grid{grid-template-columns:1fr}.trust-strip div{border-bottom:1px solid #d9d5ca;border-right:0;padding:1rem 0}.section-heading,.booking-callout{flex-direction:column;align-items:flex-start}.about-section,.contact-section{grid-template-columns:1fr}.about-image img{object-fit:cover;border-radius:26px;width:100%;height:540px}.experience{display:none}.people,footer{grid-template-columns:1fr}footer>div:last-child{justify-content:flex-start}}@media (max-width:560px){.site-header{height:72px}.brand strong{max-width:140px}.button.small{padding:.6rem .8rem;font-size:.75rem}.hero-copy h1{letter-spacing:-.05em;color:#1d3027;max-width:760px;margin:.18em 0 .32em;font:500 clamp(3.2rem,5.8vw,6.1rem)/1.01 Georgia,serif}.hero-proof span,.hero-proof span:last-child{display:none}.section,.about-section,.contact-section{padding-block:75px}.contact-list,.form-grid{grid-template-columns:1fr}}@media (max-width:850px){.hero-premium{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);gap:2.5rem;min-height:auto;padding:54px 24px 72px;display:grid;overflow:hidden}.hero-copy{grid-area:1/1;width:100%;min-width:0;max-width:none;margin:0}.hero-photo{object-fit:cover;border-radius:24px;grid-area:2/1;width:100%;height:440px;position:relative;inset:auto}.hero-copy h1{max-width:680px;font-size:clamp(3.2rem,12vw,5rem);line-height:1.02}.lead{max-width:620px}.trust-strip{padding-inline:24px}.about-image img{height:430px}}@media (max-width:560px){.hero-premium{gap:2rem;padding:42px 22px 58px}.hero-copy h1{letter-spacing:-.045em;font-size:clamp(2.75rem,13vw,3.65rem);line-height:1.01}.lead{font-size:1rem;line-height:1.65}.hero-photo{border-radius:20px;height:330px}.actions{flex-direction:column;align-items:flex-start}.secondary{padding-left:0}.trust-strip{padding-inline:22px}}.manage-card{max-width:680px}.appointment-summary{background:#f5f3ed;border-radius:18px;margin:2rem 0;padding:1.6rem}.appointment-summary h2{margin:1rem 0 .4rem;font:500 2rem Georgia,serif}.status-pill{background:#ebe7dc;border-radius:999px;padding:.45rem .75rem;font-size:.78rem;font-weight:800;display:inline-flex}.status-pill.confirmed,.status-pill.completed{color:#235b3e;background:#dceee4}.status-pill.cancelled,.status-pill.no_show{color:#8b3030;background:#f9dede}.manage-card>.danger{color:#8b3030;border-color:#e4bcbc;margin-left:1rem}.family-session-page{color:#26352b;background:#f3f0e8;min-height:100vh;padding:48px 20px;font-family:Arial,sans-serif}.family-session-shell{max-width:980px;margin:auto}.family-session-shell>header{color:#fff;background:linear-gradient(135deg,#294535,#45644d);border-radius:28px;padding:42px;box-shadow:0 22px 50px #233a2c24}.family-session-shell header>span{font-family:Georgia,serif;font-size:22px;display:block}.family-session-shell header small,.family-session-copy small,.family-gallery>small{color:#cfba88;letter-spacing:.18em;margin-top:28px;font-size:11px;font-weight:800;display:block}.family-session-shell h1{max-width:650px;margin:10px 0;font-family:Georgia,serif;font-size:clamp(34px,6vw,62px);line-height:1}.family-session-shell header p{color:#e4ebdf;max-width:620px;line-height:1.7}.family-session-copy{grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;display:grid}.family-session-copy>div,.family-gallery{background:#fff;border:1px solid #dedacf;border-radius:22px;padding:30px}.family-session-copy small,.family-gallery>small{color:#897644;margin-top:0}.family-session-copy h2,.family-gallery h2{margin:8px 0 14px;font-family:Georgia,serif;font-size:26px}.family-session-copy p{white-space:pre-wrap;color:#59645c;line-height:1.7}.family-gallery{margin-top:20px}.family-gallery>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.family-gallery figure{background:#eef0e9;border-radius:16px;overflow:hidden}.family-gallery img,.family-gallery video{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.family-gallery figcaption{padding:12px 14px;font-size:13px}.family-session-shell footer{text-align:center;color:#758077;padding:24px;font-size:12px}.family-session-error{text-align:center;background:#fff;border-radius:24px;max-width:600px;margin:12vh auto;padding:40px}.family-session-error h1{margin:12px 0}@media (max-width:700px){.family-session-page{padding:20px 12px}.family-session-shell>header{padding:28px 22px}.family-session-copy,.family-gallery>div{grid-template-columns:1fr}}.public-form-page{color:#24362b;background:#f3f0e8;min-height:100vh;padding:40px 18px}.public-form-page>section{background:#fff;border-radius:24px;max-width:760px;margin:auto;padding:clamp(24px,5vw,56px);box-shadow:0 20px 70px #23352b18}.public-form-page small{color:#74806f;letter-spacing:.14em;font-weight:800}.public-form-page h1{margin:12px 0;font-size:clamp(30px,5vw,48px);line-height:1.1}.public-form-page header>p,.public-form-page>section>p{color:#667268;line-height:1.7}.public-form-page form{gap:24px;margin-top:36px;display:grid}.public-form-page label{gap:9px;display:grid}.public-form-page label span{font-weight:750}.public-form-page textarea{resize:vertical;border:1px solid #d6ded5;border-radius:12px;min-height:120px;padding:14px}.public-form-page button{color:#fff;background:#34513d;border-radius:11px;padding:15px;font-weight:800}.public-form-page button:disabled{opacity:.6}.public-form-page form>p{text-align:center;color:#7b847d;font-size:12px}.portal-page{color:#26352f;background:#f4f1eb;min-height:100vh;padding:32px 18px}.portal-shell{max-width:1120px;margin:auto}.portal-head{color:#fff;background:linear-gradient(135deg,#24483d,#376957);border-radius:28px;justify-content:space-between;gap:24px;padding:38px;display:flex;box-shadow:0 18px 55px #24483d22}.portal-head small,.portal-patient-title small{letter-spacing:.14em;font-size:11px;font-weight:800}.portal-head h1{margin:10px 0 8px;font:500 42px Georgia,serif}.portal-head p{opacity:.82;max-width:620px}.portal-head>span{border:1px solid #fff5;border-radius:999px;height:max-content;padding:9px 15px}.portal-patient{margin-top:34px}.portal-patient-title small{color:#a16b3b}.portal-patient-title h2{font:500 30px Georgia,serif}.portal-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.portal-card,.portal-empty{background:#fff;border:1px solid #ded9ce;border-radius:22px;padding:24px}.portal-card h3{font:500 23px Georgia,serif}.portal-appointment{border-top:1px solid #ece8df;grid-template-columns:1fr auto;gap:9px;padding:17px 0;display:grid}.portal-appointment strong,.portal-appointment span{display:block}.portal-appointment span{color:#69746f;font-size:13px}.portal-appointment em{color:#356153;background:#eef4f1;border-radius:999px;padding:6px 9px;font-size:11px;font-style:normal}.portal-appointment em[data-status=NO_SHOW],.portal-appointment em[data-status=CANCELLED]{color:#a14a3e;background:#fff0ed}.portal-appointment em[data-status=COMPLETED]{color:#287348;background:#e6f5eb}.portal-actions{grid-column:1/-1;gap:8px;display:flex}.portal-actions button{color:#fff;background:#315d4e;border:0;border-radius:10px;padding:9px 14px;font-weight:700}.portal-actions .secondary{color:#805943;background:#f2eee7}.portal-summary{border-top:1px solid #ece8df;padding:18px 0}.portal-summary h4{font:500 20px Georgia,serif}.portal-summary p{color:#586760;line-height:1.6}.portal-media{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.portal-media img,.portal-media video{object-fit:cover;border-radius:12px;width:100%;height:150px}.portal-shell>footer{text-align:center;color:#77827d;padding:32px;font-size:12px}.portal-empty{text-align:center;max-width:560px;margin:15vh auto}.portal-empty h1{font:500 34px Georgia,serif}@media (max-width:760px){.portal-head{padding:28px;display:block}.portal-head>span{margin-top:18px;display:inline-block}.portal-grid{grid-template-columns:1fr}.portal-page{padding:14px}.portal-appointment{grid-template-columns:1fr}}.portal-forms{background:#fff7e8;border:1px solid #ead5aa;border-radius:16px;margin:0 0 20px;padding:18px}.portal-forms>strong{margin-bottom:10px;display:block}.portal-forms button{text-align:left;color:#493c2c;background:0 0;border:0;border-top:1px solid #ead5aa;justify-content:space-between;width:100%;padding:12px 0;font-weight:700;display:flex}.portal-forms button span{color:#8b6738}.portal-modal{z-index:50;background:#16251dcc;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.portal-modal form{background:#fff;border-radius:24px;gap:18px;width:min(680px,100%);max-height:90vh;padding:32px;display:grid;position:relative;overflow:auto}.portal-modal h2{margin:0;font:500 30px Georgia,serif}.portal-modal label{gap:7px;display:grid}.portal-modal textarea{border:1px solid #d9d6ce;border-radius:12px;min-height:100px;padding:12px}.portal-modal form>button:last-child{color:#fff;background:#315d4e;border:0;border-radius:12px;padding:14px;font-weight:800}.portal-close{color:#65736d;background:0 0;border:0;font-size:30px;position:absolute;top:14px;right:18px}
