@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--wine:#732638;--wine-dark:#4d1c29;--rose:#f4e6e1;--paper:#fcf9f5;--ink:#382b2b;--muted:#81716e;--line:#e8dcd5;--gold:#ac8554}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:15px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select{touch-action:manipulation}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:-1.7px}h1{font-size:clamp(42px,4.6vw,68px);line-height:1.13}h2{font-size:42px;line-height:1.2}h3{font-weight:500;font-size:20px}em{color:var(--wine);font-weight:400}.preview{background:var(--wine-dark);color:#f7ece5;display:flex;justify-content:space-between;gap:16px;padding:9px 4%;font-size:10px;letter-spacing:1.2px}.preview a{letter-spacing:0;font-size:12px;text-decoration:underline;text-underline-offset:3px}header{padding:24px 5%;max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:22px;color:var(--wine)}.monogram{font-size:35px;font-style:italic;border:1px solid #cda58b;border-radius:50%;width:55px;height:55px;display:grid;place-items:center;letter-spacing:-7px;padding-right:7px}.brand small{display:block;font:8px Arial;letter-spacing:2px;color:var(--muted);margin-top:8px}nav{display:flex;align-items:center;gap:32px;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--wine);color:white;border:0;border-radius:6px;padding:17px 24px;font-weight:500;font-size:14px;transition:background .2s}.btn:hover{background:var(--wine-dark)}.btn.small{padding:13px 18px;font-size:12px}.btn.wide{width:100%}.eyebrow{font-size:10px;letter-spacing:2.1px;color:var(--wine);font-weight:700;margin-bottom:22px}.hero{max-width:1380px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;gap:6%;padding:65px 5% 85px;align-items:center}.hero-copy p{max-width:440px;font-size:16px;line-height:1.85;color:var(--muted);margin-bottom:29px}.hero-notes{display:flex;gap:24px;font-size:11px;color:var(--muted);margin-top:25px}.portrait{position:relative;padding:0 0 24px 16px}.portrait:before{content:'';position:absolute;inset:18px -14px 2px 36px;border:1px solid #d4b69a;border-radius:47% 47% 10px 10px}.portrait img{display:block;width:100%;position:relative;border-radius:46% 46% 10px 10px;box-shadow:0 20px 60px #73263812}.portrait-note{position:absolute;bottom:0;left:-12px;background:#fffdf8;padding:20px 30px;border:1px solid var(--line);font-size:15px;line-height:1.6;box-shadow:0 8px 32px #53242b0b}.portrait-note em{font-family:Georgia,serif;font-size:18px}.services{background:#f1e8e2;padding:64px 6% 70px}.section-title{display:flex;justify-content:space-between;align-items:end;max-width:1230px;margin:auto}.section-title p{max-width:360px;color:var(--muted);line-height:1.8}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;max-width:1230px;margin:32px auto 0}.service-grid article{border-top:1px solid #d0b7a7;padding-top:21px}.service-grid article>span{font-size:11px;color:var(--gold)}.service-grid h3{margin:25px 0 12px;font-family:Georgia,serif;font-size:23px}.service-grid p{font-size:13px;line-height:1.8;color:var(--muted)}.booking{padding:90px 6%;max-width:1380px;margin:auto;display:grid;grid-template-columns:1fr 1.2fr;gap:10%}.booking-intro{padding-top:24px}.booking-intro>p{max-width:330px;line-height:1.8;color:var(--muted)}.steps{margin:35px 0}.steps p{font-size:13px}.steps b{font-size:11px;color:var(--gold);margin-right:17px}.quiet-note{font-size:11px;line-height:1.7;color:var(--muted);max-width:300px;border-left:2px solid #ccaf93;padding-left:15px}.booking-card{background:white;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 16px 50px #4a272308}.card-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.card-top>span{font-size:10px;background:var(--rose);padding:7px 10px;border-radius:20px;color:var(--wine)}label{display:block;font-size:12px;font-weight:500;margin:16px 0}select,input,textarea{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:6px;padding:12px;background:#fffefa;color:var(--ink);outline-color:var(--wine)}.mode{display:flex;gap:10px;margin-top:20px}.mode button,.slots button{border:1px solid var(--line);padding:11px;border-radius:6px;background:white;flex:1;color:var(--muted)}.mode .active,.slots .active{background:var(--wine);border-color:var(--wine);color:white}.month-nav{display:flex;align-items:center;justify-content:space-between;margin:27px 0 18px;font-size:13px}.month-nav button{border:0;background:none;font-size:20px;color:var(--wine)}.dates{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dates button{background:#faf6f2;border:1px solid transparent;border-radius:8px;padding:12px 1px;color:var(--muted);font-size:10px}.dates b{display:block;font-size:17px;margin-top:7px;font-weight:500;color:var(--ink)}.dates .active{border-color:var(--wine);background:var(--rose);color:var(--wine)}.slot-label{font-size:9px;letter-spacing:1.5px;margin:25px 0 12px;color:var(--muted)}.slots{display:flex;gap:10px}.slots button:disabled{background:#f4f1ed;text-decoration:line-through;opacity:.5;cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-help{font-size:10px;line-height:1.6;color:var(--muted)}.closing{text-align:center;padding:65px 5% 80px;border-top:1px solid var(--line)}.closing p{color:var(--muted);line-height:1.9;font-size:14px}.text-link{color:var(--wine);font-size:14px;border-bottom:1px solid var(--gold);padding-bottom:5px}footer{display:flex;justify-content:space-between;padding:25px 5%;background:#eee2da;color:var(--muted);font-size:10px}dialog{border:1px solid var(--line);border-radius:16px;background:var(--paper);padding:35px;width:min(520px,92%);color:var(--ink)}dialog::backdrop{background:#2d19275c;backdrop-filter:blur(3px)}dialog h2{font-size:32px}.close{float:right;border:0;background:none;font-size:26px;color:var(--wine)}#bookingStatus,#patientStatus{font-size:12px;color:var(--wine);margin:12px 0 0}.admin{background:#f6f2ed}.admin-layout{display:flex;min-height:calc(100vh - 34px)}aside{width:240px;flex-shrink:0;background:#fffdf8;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;gap:12px}aside .brand{margin-bottom:38px}aside>a:not(.brand),.side-btn{font-size:12px;padding:13px 14px;border:0;text-align:left;background:transparent;border-radius:6px;color:var(--muted)}aside .side-active{background:var(--rose)!important;color:var(--wine)!important}.aside-bottom{margin-top:auto;padding-top:70px;line-height:1.9;color:var(--muted);font-size:12px}.aside-bottom em{font-family:Georgia,serif}.admin-main{padding:45px 4%;flex:1;min-width:0}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-heading h1{font-size:42px;margin-bottom:12px}.admin-heading .eyebrow{margin-bottom:14px}.admin-heading p{color:var(--muted);font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.stats>div{border:1px solid var(--line);background:#fffdf9;border-radius:10px;padding:22px}.stats span{font-size:9px;letter-spacing:1.4px;color:var(--muted)}.stats b{display:block;font:34px Georgia;margin-top:14px;color:var(--wine)}.admin-grid{display:grid;grid-template-columns:1fr 270px;gap:24px}.day-card,.small-card{background:#fffdf9;border:1px solid var(--line);border-radius:12px;padding:25px}.day-card h2{font-size:28px;margin-bottom:0}.day-card .eyebrow{margin-bottom:10px}.card-top input{max-width:145px;font-size:12px}.day-actions{display:flex;align-items:center;justify-content:space-between;margin:25px 0;font-size:12px;color:var(--muted);gap:12px}.outline{border:1px solid var(--line);background:transparent;color:var(--wine);border-radius:6px;font-size:11px;padding:9px 12px}.appointment{display:flex;gap:18px;border-top:1px solid var(--line);padding:24px 0;align-items:center}.appointment time{font-size:15px;color:var(--wine);font-weight:600}.appointment .appointment-body{flex:1}.appointment h3{font-size:15px;margin-bottom:7px}.appointment p{font-size:11px;color:var(--muted);margin-bottom:0}.appointment .tag{font-size:9px;background:var(--rose);color:var(--wine);padding:5px 8px;border-radius:20px;display:inline-block;margin-top:10px}.lock-button{border:1px solid var(--line);background:#faf5f0;border-radius:7px;padding:10px;font-size:16px}.right-stack{display:flex;flex-direction:column;gap:18px}.small-card{padding:23px}.small-card h3{font:23px Georgia;line-height:1.3}.small-card p{font-size:12px;line-height:1.8;color:var(--muted)}.small-card small{font-size:10px;color:var(--muted)}.small-card .eyebrow,.birthday>span{font-size:9px}.birthday{background:#f1e2de;border-color:#e5c9c2}.birthday>span{color:var(--wine);letter-spacing:1px}.birthday h3{margin:15px 0 10px;color:var(--wine)}.legend{font-size:10px;color:var(--wine)}.legend>span{margin-left:15px;color:var(--muted)}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--wine-dark);color:white;padding:14px 25px;border-radius:10px;font-size:12px;display:none}
@media(max-width:1000px){nav>a:not(.btn){display:none}.hero{gap:4%}.hero h1{font-size:48px}.hero-notes{flex-direction:column;gap:10px}.service-grid{grid-template-columns:1fr 1fr}.booking{gap:5%}.admin-grid{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:1fr 1fr}.right-stack>div:last-child{display:none}aside{width:190px}.admin-heading .btn{font-size:11px;padding:14px}.admin-heading h1{font-size:33px}}
@media(max-width:650px){.preview span{display:none}.preview{font-size:8px;align-items:center}.preview a{font-size:10px}header{padding:18px 5%}.brand{font-size:18px}.monogram{width:44px;height:44px;font-size:29px}.brand small{font-size:6px}.btn.small{font-size:10px;padding:11px}.hero{grid-template-columns:1fr;padding:40px 6% 60px;gap:40px}.hero h1{font-size:43px}.hero-copy p{font-size:14px}.hero-notes{flex-direction:row;gap:16px;font-size:10px}.portrait{max-width:400px;margin:0 auto;padding-right:12px}.portrait:before{right:0}.portrait-note{left:0;font-size:12px;padding:14px 20px}.portrait-note em{font-size:15px}.section-title{display:block}.section-title p{font-size:13px}h2{font-size:34px}.services{padding:45px 6%}.service-grid{gap:18px}.service-grid h3{font-size:20px}.service-grid p{font-size:12px}.booking{grid-template-columns:1fr;padding:45px 6%;gap:30px}.booking-intro{padding:0}.steps{display:none}.quiet-note{max-width:none}.booking-card{padding:22px 18px}.form-row{grid-template-columns:1fr;gap:0}.closing{padding:45px 6%}footer{flex-direction:column;gap:10px}.admin-layout{display:block}aside{width:100%;flex-direction:row;align-items:center;padding:17px;gap:8px;border-bottom:1px solid var(--line)}aside .brand{margin:0;margin-right:auto}aside>a:not(.brand),aside .side-btn{font-size:10px;padding:8px}aside .brand small,aside .aside-bottom,aside .side-active{display:none}aside .brand .monogram{display:none}.admin-main{padding:28px 5%}.admin-heading{align-items:start}.admin-heading h1{font-size:30px}.admin-heading .btn{padding:11px;font-size:10px;max-width:110px}.stats{gap:8px;margin:20px 0}.stats>div{padding:14px 10px}.stats span{font-size:7px;letter-spacing:.5px}.stats b{font-size:26px}.day-card{padding:18px}.right-stack{grid-template-columns:1fr}.right-stack>div:first-child{display:none}.appointment{gap:12px}.day-actions{font-size:10px}.day-card h2{font-size:25px}.card-top input{max-width:128px;padding:9px}.day-card .eyebrow{font-size:8px}.appointment p{font-size:10px}.appointment h3{font-size:13px}}

/* Preserve the entire supplied artwork without masking or overlapping it. */
.portrait{padding:0;min-width:0}.portrait:before{display:none}.portrait img{width:100%;height:auto;border-radius:8px;box-shadow:none}.portrait-note{position:static;background:none;border:0;box-shadow:none;padding:18px 0 0;text-align:center}.slots{flex-wrap:wrap}.slots button{flex:0 1 calc(33.33% - 7px)}.hours-editor{background:#f7eee8;border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:8px}.hours-editor>div{display:flex;align-items:end;gap:12px}.hours-editor label{margin:0;font-size:11px}.hours-editor input[type=time]{margin-top:6px;padding:8px}.hours-editor .outline{margin-bottom:1px;min-height:36px}.hours-editor .check{margin-top:14px;font-size:10px}.hours-editor p{font-size:11px;color:var(--wine);margin:10px 0 0}.slot-actions{display:flex;align-items:center;gap:6px}.remove-slot{background:none;border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--muted);padding:10px}.empty-day{font-size:13px;line-height:1.8;color:var(--muted);padding:30px 0}.hero>*{min-width:0}

.sunday-note{background:#f4e6e1;border:1px solid #e5cec5;border-radius:9px;padding:20px;width:100%;color:var(--wine);text-align:center}.sunday-note p{font-size:12px;line-height:1.7;margin:8px 0 0}.personal-item{padding:16px 0;border-bottom:1px solid #ddc8c0}.personal-item:last-child{border-bottom:0}.personal-item strong{font:18px Georgia}.personal-item p{margin:8px 0 12px!important}.hours-editor>label{display:block;margin-top:14px}.hours-editor small{display:block;color:var(--muted);margin-top:6px;font-size:10px}.conflict-note{color:#a04a36!important;margin-top:8px!important}.hours-editor button:disabled{opacity:.4;cursor:not-allowed}.right-stack>div:last-child{display:block}.day-actions{flex-wrap:wrap}

.login-layout{min-height:calc(100vh - 35px);display:grid;grid-template-columns:1fr 1fr;max-width:1400px;margin:auto}.login-brand{background:#f1ddd4;padding:50px 10%;display:flex;flex-direction:column;align-items:center;justify-content:center}.login-brand img{width:100%;max-width:490px;height:auto;border-radius:8px}.login-brand p{text-align:center;font:22px/1.7 Georgia;margin:28px 0 0;color:var(--wine)}.login-card{padding:65px 16%;display:flex;flex-direction:column;justify-content:center}.login-card h1{font-size:52px;margin-bottom:17px}.login-card>p{color:var(--muted);font-size:14px}.password-field{position:relative}.password-field input{padding-right:75px}.password-field button{position:absolute;right:10px;top:21px;background:none;border:0;color:var(--wine);font-size:11px}.forgot{display:block;margin:0 0 24px auto;background:none;border:0;color:var(--wine);font-size:11px;padding:0}.demo-login{font-size:10px;line-height:1.8;background:#f3e9e1;padding:15px;border-radius:6px;color:var(--muted);margin:20px 0 30px}.login-card>.text-link{font-size:12px;align-self:start}#loginStatus{font-size:12px;color:var(--wine);line-height:1.6;margin-top:15px}@media(max-width:700px){.login-layout{grid-template-columns:1fr}.login-brand{padding:22px}.login-brand img{max-width:170px}.login-brand p{display:none}.login-card{padding:35px 9%}.login-card h1{font-size:40px}.login-card .eyebrow{margin-bottom:15px}}

.social-links{display:flex;gap:18px}.social-links a{text-decoration:underline;text-underline-offset:4px}.check{font-size:11px;line-height:1.7}.check input{flex-shrink:0}.login-layout{min-height:100vh}.admin-layout{min-height:100vh}#enrollStatus{font-size:13px;line-height:1.7;color:var(--wine)}

.studio-credit{line-height:1.9}.studio-credit a{text-decoration:underline;text-underline-offset:3px}.studio-credit a:hover{color:var(--wine)}
