:root{--espresso:#211a18;--ivory:#f7f2eb;--copper:#b65e28;--navy:#152344;--paper:#fffefa;--page-padding:clamp(12px,2svh,24px);--logo-size:clamp(200px,24svh,240px);--logo-height:calc(var(--logo-size) * 1043 / 1014);--section-gap:clamp(10px,1.6svh,18px)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--espresso);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--copper);outline-offset:5px}.site-shell{width:100%;max-width:1280px;min-height:100svh;margin:auto;padding:var(--page-padding) 4.6%;display:flex;flex-direction:column;gap:var(--section-gap)}.site-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-shrink:0}.brand{display:block;width:var(--logo-size);flex-shrink:0}.brand img{display:block;width:100%;height:auto}.navigation{display:flex;gap:clamp(24px,4vw,52px);color:var(--navy);font-size:clamp(1rem,1.5vw,1.2rem);white-space:nowrap}.navigation a{position:relative;padding:12px 0}.navigation a[aria-current=page]:after{content:"";position:absolute;bottom:4px;left:0;right:0;height:2px;background:var(--copper)}.navigation a:hover{color:var(--copper)}.menu-toggle{display:none}.home-page{flex:1 1;display:flex;flex-direction:column;justify-content:center;gap:var(--section-gap)}.hero{display:grid;grid-template-columns:44% 56%;align-items:center;grid-gap:0;gap:0}.hero-copy{padding-right:clamp(20px,3vw,42px);min-width:0}.eyebrow{margin:0 0 clamp(8px,1.3svh,14px);font-size:clamp(.85rem,1.3vw,1.2rem);line-height:1.4;letter-spacing:.22em;color:var(--copper)}h1{font-family:Times New Roman,Times,serif;font-weight:700;font-size:clamp(3.75rem,min(7.5vw,11svh),7rem);line-height:.9;letter-spacing:-.045em}.intro,h1{margin:0 0 clamp(14px,2.4svh,24px)}.intro{font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.4;max-width:525px;color:var(--navy)}.appointment-button{display:inline-flex;align-items:center;justify-content:center;gap:clamp(12px,1.5vw,22px);min-height:3rem;padding:12px clamp(22px,2.6vw,36px);border-radius:60px;background:var(--espresso);color:var(--ivory);font-size:clamp(1rem,1.4vw,1.2rem);transition:background .2s,transform .2s}.appointment-button:hover{background:#3b2721;transform:translateY(-2px)}.appointment-button svg{width:26px;height:26px;flex-shrink:0}.hero-image-wrap{width:min(100%,calc(max(280px, 100svh - var(--logo-height) - 2 * var(--page-padding) - 2 * var(--section-gap) - 56px) * 761 / 952));justify-self:end}.hero-image{display:block;width:100%;height:auto;aspect-ratio:761/952}.feature-strip{color:var(--navy);flex-wrap:wrap}.feature,.feature-strip{display:flex;align-items:center}.feature{gap:12px;padding:6px 22px;min-height:56px;font-size:.75rem;line-height:1.3;letter-spacing:.02em}.feature:first-child{padding-left:0}.feature+.feature{border-left:1px solid #d5a087}.feature svg{color:var(--copper);width:36px;height:36px;flex-shrink:0}.placeholder{padding:40px 0 70px;max-width:800px}.placeholder h1{font-size:clamp(3.375rem,7vw,6rem);line-height:1.05;letter-spacing:-.04em}.placeholder p:not(.eyebrow){font-size:1.2rem;line-height:1.6;color:var(--navy);max-width:580px;margin-bottom:32px}.placeholder .appointment-button{font-size:1.125rem;min-height:56px;padding:14px 30px}.skip-link{position:fixed;top:12px;left:12px;padding:12px 20px;background:var(--espresso);color:white;z-index:10;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}@media (min-width:601px) and (max-width:850px){.site-shell{padding-inline:4%}.navigation{font-size:1rem;gap:22px}.hero-copy{padding-right:22px}h1{font-size:clamp(3.75rem,9vw,5rem)}.appointment-button{padding-inline:18px;gap:12px}.feature{padding-inline:16px;gap:10px}.feature svg{width:30px;height:30px}}@media (max-width:600px){:root{--page-padding:clamp(10px,1.4svh,14px);--logo-size:clamp(190px,24svh,210px);--section-gap:clamp(8px,1.3svh,12px);--headline-size:clamp(2.5rem,min(12vw,6svh),3.375rem)}.site-shell{padding-inline:5%}.site-header{gap:16px}.menu-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #d9c7b7;border-radius:50%;color:var(--espresso);background:transparent;flex-shrink:0}.navigation{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:12px 22px;background:var(--ivory);border:1px solid #e5d8cb;z-index:3;font-size:1.125rem;box-shadow:0 10px 25px #211a1810;white-space:normal}.navigation.is-open{display:flex;flex-direction:column;gap:4px}.navigation a{align-self:flex-start;padding:10px 0}.hero{display:flex;flex-direction:column;gap:var(--section-gap);align-items:stretch}.hero-copy{padding:0}.eyebrow{font-size:.75rem;margin-bottom:6px}h1{font-size:var(--headline-size);line-height:.92;margin-bottom:10px}.intro{font-size:1rem;line-height:1.35;margin-bottom:12px;max-width:430px}.appointment-button{font-size:1rem;min-height:3rem;padding:11px 22px;gap:14px}.appointment-button svg{width:24px;height:24px}.hero-image-wrap{width:min(100%,calc(clamp(160px, 100svh - 2.76 * var(--headline-size) - var(--logo-height) - 2 * var(--page-padding) - 3 * var(--section-gap) - 260px, 420px) * 761 / 952));align-self:center}.feature-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.feature,.feature:first-child{flex-direction:column;align-items:center;justify-content:flex-start;min-height:0;padding:3px 6px;gap:5px;font-size:.75rem;text-align:center}.feature svg{width:22px;height:22px}.feature br{display:initial}.feature span{white-space:normal;overflow-wrap:anywhere}.placeholder{padding:25px 0 50px}.placeholder h1{font-size:3rem}.placeholder p:not(.eyebrow){font-size:1.125rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.mobile-actions,.mobile-headline{display:none}.services-page{padding:clamp(24px,4vw,48px) 0 56px}.services-intro{max-width:720px;margin-bottom:32px}.return-link{display:inline-flex;align-items:center;min-height:44px;color:var(--copper);font-size:1rem}.return-link:hover{text-decoration:underline;text-underline-offset:4px}.services-intro .return-link{margin-bottom:18px}.services-page h1{font-size:clamp(3rem,6vw,5.5rem);line-height:1.05;margin:0 0 16px}.services-subtitle{font-size:clamp(1.125rem,2vw,1.375rem);line-height:1.5;margin:0 0 16px}.booking-notice{font-size:1rem;line-height:1.6;color:#65544b;margin:0}.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:24px;gap:24px}.service-card{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(24px,3vw,36px);border:1px solid #d8c5a5;background:var(--ivory);min-width:0}.service-card:last-child{grid-column:1/-1}.service-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;width:100%;flex-wrap:wrap;margin-bottom:16px}.service-heading h2{font-family:Times New Roman,Times,serif;font-size:clamp(1.75rem,2.6vw,2.25rem);font-weight:400;line-height:1.15;letter-spacing:-.025em;margin:0}.service-price{font-size:1.5rem;line-height:1.2;color:var(--copper);margin:0;white-space:nowrap}.service-description{font-size:1rem;line-height:1.65;margin:0 0 28px;max-width:60ch}.service-booking{min-height:48px;font-size:1rem;margin-top:auto;padding:12px 28px;gap:24px}.booking-return-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.booking-page .selected-service{padding:18px 20px;background:var(--ivory);border-left:2px solid #c5a46d}@media (max-width:767px){.site-shell:has(.booking-page),.site-shell:has(.services-page){--logo-size:clamp(135px,17svh,155px)}.site-shell:has(.services-page,.booking-page) .menu-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #d9c7b7;border-radius:50%;color:var(--espresso);background:transparent;flex-shrink:0}.site-shell:has(.services-page,.booking-page) .navigation{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:12px 22px;background:var(--ivory);border:1px solid #e5d8cb;z-index:3;font-size:1.125rem;box-shadow:0 10px 25px #211a1810;white-space:normal}.site-shell:has(.services-page,.booking-page) .navigation.is-open{display:flex;flex-direction:column;gap:4px}.site-shell:has(.services-page,.booking-page) .navigation a{align-self:flex-start;padding:10px 0}.services-page{padding:12px 0 32px}.services-intro{margin-bottom:24px}.services-intro .return-link{margin-bottom:12px}.services-grid{grid-template-columns:minmax(0,1fr);gap:16px}.service-card:last-child{grid-column:auto}.service-heading{gap:12px}.service-description{margin-bottom:24px}.service-booking{width:100%}}@media (max-width:767px){.site-shell:has(.home-page){--page-padding:clamp(10px,1.4svh,14px);--logo-size:clamp(67.5px,8.5svh,77.5px);--logo-height:calc(var(--logo-size) * 1043 / 1014);--section-gap:clamp(8px,1.1svh,12px);padding-inline:5%}.site-shell:has(.home-page) .site-header{gap:16px}.site-shell:has(.home-page) .menu-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #d9c7b7;border-radius:50%;color:var(--espresso);background:transparent;flex-shrink:0}.site-shell:has(.home-page) .navigation{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:12px 22px;background:var(--ivory);border:1px solid #e5d8cb;z-index:3;font-size:1.125rem;box-shadow:0 10px 25px #211a1810;white-space:normal}.site-shell:has(.home-page) .navigation.is-open{display:flex;flex-direction:column;gap:4px}.site-shell:has(.home-page) .navigation a{align-self:flex-start;padding:10px 0}.home-page{justify-content:center}.home-page .hero{display:flex;flex-direction:column;align-items:stretch;gap:var(--section-gap)}.home-page .hero-copy{padding:0;text-align:center}.home-page .desktop-booking,.home-page .desktop-headline,.home-page .eyebrow{display:none}.home-page .mobile-headline{display:inline}.home-page h1{font-size:clamp(3rem,12vw,4rem);line-height:.95;letter-spacing:-.045em;margin:0 0 8px}.home-page .intro{font-size:1rem;line-height:1.4;margin:0 auto;max-width:430px}.home-page .hero-image-wrap{width:100%;align-self:center}.home-page .hero-image{width:100%;height:auto;aspect-ratio:761/952}.home-page .mobile-actions{display:flex;flex-direction:column;gap:8px;width:100%}.home-page .mobile-actions .appointment-button{width:100%;min-height:3rem;font-size:1rem;padding:11px 22px;gap:14px}.home-page .mobile-actions svg{width:24px;height:24px}.home-page .treatments-button{background:transparent;color:var(--espresso);border:1px solid #c5a46d}.home-page .treatments-button:hover{background:var(--ivory)}.home-page .feature-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.home-page .feature,.home-page .feature:first-child{flex-direction:column;align-items:center;justify-content:flex-start;min-height:0;padding:3px 6px;gap:5px;font-size:.75rem;text-align:center}.home-page .feature svg{width:22px;height:22px}.home-page .feature br{display:initial}.home-page .feature span{white-space:normal;overflow-wrap:anywhere}}.before-booking{margin-top:32px;padding:clamp(24px,4vw,40px) 0;border-top:1px solid #d8c5a5}.before-booking h2{font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:400;margin:0 0 12px}.guidance-intro{max-width:65ch;line-height:1.65;margin-bottom:22px}.guidance-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:24px;align-items:start}.booking-eligibility,.booking-preparation,.guidance-card{border:1px solid #d8c5a5;background:var(--ivory);padding:20px;border-radius:12px;min-width:0}.guidance-card summary,.preparation-full summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}.guidance-card summary{font-family:Georgia,serif;font-size:1.25rem}.brow-guidance-content{font-size:1rem;line-height:1.65;overflow-wrap:anywhere}.brow-guidance-content ul{padding-left:22px;margin:12px 0}.brow-guidance-content li+li{margin-top:7px}.guidance-contact{display:inline-flex;align-items:center;min-height:44px;color:var(--espresso);border-bottom:1px solid var(--copper)}.medication-safety{border-left:3px solid var(--copper);padding-left:14px;font-weight:600}.booking-eligibility,.booking-preparation{margin:24px 0}.booking-eligibility h3,.booking-preparation h3{font-family:Georgia,serif;font-size:1.4rem}.guidance-card summary:focus-visible,.guidance-contact:focus-visible,.preparation-full summary:focus-visible{outline:2px solid var(--copper);outline-offset:4px}@media(max-width:767px){.guidance-cards{grid-template-columns:minmax(0,1fr)}.before-booking{margin-top:24px}.before-booking>.appointment-button{width:100%}}.compact-guidance{align-items:stretch;gap:16px}.compact-guidance .guidance-card{padding:20px 24px}.compact-guidance h3{font-family:Georgia,serif;font-size:1.25rem;font-weight:400;margin:0 0 14px}.compact-guidance ul{margin:0;padding-left:20px;font-size:.95rem;line-height:1.5}.compact-guidance li+li{margin-top:6px}.eligibility-contact-note{font-size:.9rem;line-height:1.5;margin:16px 0 0;font-weight:600}.eligibility-contact-note a{text-decoration:underline;text-underline-offset:3px}.compact-guidance .children-warning{list-style:none;margin-left:-20px;margin-top:12px;padding:9px 12px;border-left:3px solid var(--copper);background:#b65e2810;color:var(--espresso);border-radius:4px}.children-warning span{color:var(--copper);font-size:1.1rem;margin-right:6px}@media(max-width:767px){.compact-guidance .guidance-card{padding:18px 20px}}.booking-interface{padding:24px 0 56px;color:var(--espresso)}.booking-interface h1{font-size:clamp(2.75rem,6vw,5rem);line-height:1.05;margin:12px 0 18px}.booking-interface h2{font-size:clamp(1.75rem,3vw,2.25rem);margin:24px 0 18px;line-height:1.15}.booking-interface h2,.booking-interface h3{font-family:Times New Roman,Times,serif;font-weight:400}.booking-interface h3{font-size:1.5rem;margin:8px 0 16px}.booking-interface p{line-height:1.6}.booking-subtitle{font-size:1.125rem;margin:0 0 24px}.booking-flow,.receipt-card{max-width:820px}.booking-message{padding:18px 22px;border:1px solid #c5a46d;background:var(--ivory);line-height:1.6}.booking-interface .booking-message>.appointment-button{max-width:100%;margin:8px 0;white-space:normal;text-align:center}.booking-message p{margin:8px 0 0}.booking-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;list-style:none;padding:0;margin:24px 0 32px;font-size:.875rem}.booking-steps li{padding:12px 0;border-bottom:1px solid #d9c7b7;line-height:1.4}.booking-steps li[aria-current]{border-color:var(--copper);font-weight:600}.booking-steps span{display:block;color:var(--copper);margin-bottom:4px}.treatment-options{display:grid;grid-gap:12px;gap:12px}.treatment-option{display:flex;align-items:center;gap:14px;padding:22px;border:1px solid #d9c7b7;min-width:0;cursor:pointer}.treatment-option.selected{border-color:var(--copper);background:var(--ivory)}.treatment-option input{width:20px;height:20px;flex-shrink:0;accent-color:var(--copper)}.treatment-option span:nth-child(2){flex:1 1;min-width:0}.treatment-option strong{font-family:Times New Roman,Times,serif;font-size:1.5rem;font-weight:400}.treatment-option small{display:block;color:#65544b;font-size:.875rem;line-height:1.5;margin-top:4px}.treatment-option span:last-child{white-space:nowrap;font-size:1.25rem}.booking-next{margin-top:24px}.booking-interface .appointment-button{border:0;min-height:48px;font-size:1rem;cursor:pointer}.booking-interface button:disabled{opacity:.5;cursor:not-allowed;transform:none}.booking-interface .return-link{border:0;padding:8px 0;background:transparent;cursor:pointer;text-align:left}.booking-interface input,.booking-interface select,.booking-interface textarea{font:inherit;border:1px solid #d9c7b7;background:#fffefa;color:var(--espresso);border-radius:0;padding:12px;min-height:48px;width:100%;max-width:100%}.booking-interface input:focus-visible,.booking-interface select:focus-visible,.booking-interface textarea:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.booking-interface input[type=checkbox],.booking-interface input[type=radio]{width:20px;height:20px;min-height:20px;padding:0;flex-shrink:0;accent-color:var(--copper)}.booking-interface input[type=date],.booking-interface input[type=datetime-local],.booking-interface input[type=time],.field{min-width:0}.field{display:flex;flex-direction:column;gap:8px;font-size:1rem;line-height:1.5;margin-bottom:18px}.field small,.field-hint{font-size:.875rem;color:#65544b;line-height:1.5}.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 20px;gap:0 20px}.booking-controls{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center;margin-top:24px}.time-options{border:0;padding:0;margin:20px 0;display:flex;flex-wrap:wrap;gap:10px}.time-options legend{margin-bottom:12px}.time-options label{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid #d9c7b7;cursor:pointer}.admin-time-list .selected,.time-options .selected{background:var(--ivory);border-color:var(--copper)}.booking-summary{margin:24px 0}.booking-summary div{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid #e5d8cb;line-height:1.5}.booking-summary dd{margin:0;text-align:right}.booking-terms{padding:24px;background:var(--ivory);border:1px solid #d9c7b7}.check-field{display:flex;gap:12px;align-items:flex-start;line-height:1.6;padding:12px 0;min-height:44px}.form-error{border-left:3px solid #9a3412;background:#fff2ed;color:#712600;padding:16px;line-height:1.5}.management-login{max-width:500px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin:20px 0}.admin-toolbar .booking-message{flex:1 1}.admin-toolbar .field{margin:0}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #d9c7b7;padding-bottom:12px}.admin-tabs button{border:1px solid #d9c7b7;background:transparent;padding:12px 16px;min-height:48px;color:var(--espresso);cursor:pointer}.admin-tabs [aria-current]{background:var(--espresso);color:var(--ivory)}.studio-calendar{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{min-height:150px;border:1px solid #d9c7b7;padding:10px;min-width:0;overflow-wrap:anywhere}.calendar-day .calendar-date{border:0;background:transparent;min-height:44px;cursor:pointer;color:var(--espresso);text-align:left}.calendar-appointment{display:flex;flex-direction:column;gap:4px;font-size:.8rem;line-height:1.4;padding:10px;margin:8px 0;background:var(--ivory);border-left:2px solid var(--copper)}.calendar-appointment.pending_payment{border-left-color:#c5a46d}.calendar-block{font-size:.8rem;padding:8px;background:#ece3d7}.calendar-day:only-child{grid-column:1/-1}.admin-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.admin-card{border:1px solid #d9c7b7;padding:24px;margin:18px 0;min-width:0}.admin-card-grid .admin-card{margin:0}.admin-card summary{cursor:pointer;line-height:1.6;min-height:44px}.admin-card form{border-top:1px solid #d9c7b7;margin-top:24px;padding-top:24px}.admin-time-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.admin-time-list button{padding:12px;min-height:48px;border:1px solid #d9c7b7;background:transparent;cursor:pointer;color:var(--espresso)}.hours-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:center;grid-gap:20px;gap:20px}.payment-reference{overflow-wrap:anywhere}@media (max-width:767px){.site-shell:has(.booking-interface){--logo-size:clamp(90px,12svh,120px);padding-inline:5%}.booking-interface{padding:16px 0 32px}.booking-interface h1{font-size:clamp(2.5rem,9vw,3.5rem)}.admin-card-grid,.booking-fields{grid-template-columns:minmax(0,1fr)}.treatment-option{padding:16px;gap:10px}.treatment-option strong{font-size:1.375rem}.booking-controls{gap:12px}.booking-controls .appointment-button,.booking-next{width:100%}.booking-summary div{gap:14px;font-size:.95rem}.booking-summary dd,.booking-summary dt{flex:1 1;min-width:0;overflow-wrap:anywhere}.admin-card,.booking-terms{padding:18px}.studio-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:100px}.hours-row{gap:8px;grid-template-columns:1.2fr 1fr 1fr;font-size:.875rem}.hours-row input{padding:8px}}.time-options .unavailable{background:#f3eee8;color:#756c64;border-color:#ded6ce;cursor:not-allowed}.time-options label:focus-within{outline:2px solid var(--copper);outline-offset:3px}.status-badge{display:inline-block;border-radius:20px;padding:4px 10px;font-size:.85rem;font-weight:600;line-height:1.4}.status-badge.pending_approval{background:#fff0c2;color:#714500}.status-badge.confirmed{background:#e1f3e7;color:#175c34}.status-badge.cancelled{background:#fde5e5;color:#8c2424}.status-badge.blocked-time{background:#e8e8e8;color:#404040}.calendar-appointment.pending_approval{border-left:3px solid #ba7c00;background:#fff6dc}.calendar-appointment.cancelled{border-left:3px solid #ac3939;background:#fff0f0}.conflict-warning{background:#fff0dc;border:2px solid #a65c12;padding:16px;margin:16px 0;border-radius:8px}.conflict-summary{color:#8a450c}.appointment-action{border-top:1px solid #d8c5a5;margin-top:20px;padding-top:16px}