:root {
  color-scheme: light;
  --ink: #39262d;
  --muted: #88777b;
  --rose: #b86171;
  --rose-dark: #9c4c5c;
  --rose-light: #f7e9e9;
  --paper: #fffaf8;
  --white: #fff;
  --gold: #bd9858;
  --line: #eadfda;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 15px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
.site-header { height: 88px; padding: 0 max(6.5vw, 24px); display: flex; align-items: center; justify-content: space-between; background: rgba(255,250,248,.95); border-bottom: 1px solid rgba(234,223,218,.65); position: relative; z-index: 2; }
.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark { width: 43px; height: 43px; border: 1px solid var(--gold); color: var(--rose); display: grid; place-items: center; font: 600 21px var(--serif); letter-spacing: -3px; padding-right: 3px; }
.brand-mark span { color: var(--gold); font-size: 16px; }
.brand-copy { display: flex; flex-direction: column; gap: 3px; }
.brand-copy strong { font: 600 17px var(--serif); letter-spacing: .2px; }
.brand-copy small { color: var(--gold); font-size: 8px; letter-spacing: 1.65px; }
.main-nav { display: flex; gap: 38px; color: #66565a; font-size: 12px; }
.main-nav a:hover, .text-button:hover { color: var(--rose); }
.button { border: 0; border-radius: 2px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; cursor: pointer; transition: .2s ease; font-size: 12px; letter-spacing: .2px; font-weight: 600; }
.button-outline { border: 1px solid #d6bd9a; color: var(--ink); background: transparent; padding: 12px 16px; }
.button-outline:hover { background: #f8f0e5; }
.button-primary { background: var(--rose); color: white; padding: 15px 20px; min-height: 48px; }
.button-primary:hover { background: var(--rose-dark); transform: translateY(-1px); }
.button:disabled { opacity: .58; cursor: wait; transform: none; }
.hero { position: relative; min-height: 505px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding: 46px max(11.6vw, 30px) 60px; overflow: hidden; background: radial-gradient(ellipse at 74% 44%, #f5e8e4 0%, #fbf3ef 35%, var(--paper) 70%); }
.hero-copy { position: relative; z-index: 1; padding-bottom: 4px; }
.eyebrow { color: var(--gold); font-size: 9px; font-weight: 700; letter-spacing: 2.2px; }
.eyebrow-line { display: inline-block; vertical-align: middle; width: 25px; height: 1px; background: var(--gold); margin-right: 9px; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { font: 500 clamp(43px, 5vw, 66px)/1.12 var(--serif); letter-spacing: -1.7px; margin: 22px 0 16px; }
.hero h1 em, h2 em, .closing-note em { color: var(--rose); font-weight: 500; }
.hero-copy > p { max-width: 390px; color: var(--muted); line-height: 1.8; font-size: 13px; margin-bottom: 25px; }
.hero-note { margin-top: 24px; color: #8d7e7e; font-size: 10px; letter-spacing: .25px; }
.sparkle { color: var(--gold); font-size: 16px; vertical-align: -1px; margin-right: 6px; }
.hero-art { position: relative; height: 360px; max-width: 465px; width: 100%; justify-self: center; }
.art-blob { position: absolute; width: 252px; height: 275px; top: 38px; left: 50%; transform: translateX(-50%) rotate(-12deg); border-radius: 51% 49% 43% 57% / 57% 47% 53% 43%; background: linear-gradient(135deg,#f3d9d4,#edc9c4 58%,#eacdc8); }
.art-orbit { position: absolute; top: 12px; left: 50%; border: 1px solid rgba(189,152,88,.43); border-radius: 50%; transform: translateX(-50%) rotate(16deg); }
.orbit-one { width: 345px; height: 300px; }
.orbit-two { top: 37px; width: 305px; height: 286px; transform: translateX(-50%) rotate(-30deg); border-color: rgba(184,97,113,.22); }
.nail-card { position: absolute; z-index: 1; width: 102px; height: 133px; background: linear-gradient(145deg,#fffdfa,#f7eee8); border: 1px solid rgba(255,255,255,.75); border-radius: 54% 46% 43% 57% / 48% 50% 50% 52%; box-shadow: 0 15px 25px rgba(109,67,65,.14); transform: rotate(-15deg); }
.nail-card::before { content: ""; position: absolute; width: 64px; height: 91px; left: 18px; top: 20px; border-radius: 48% 48% 46% 46% / 52% 52% 44% 44%; background: linear-gradient(145deg,#edb8bb,#ca8189); box-shadow: inset 6px 6px 11px rgba(255,255,255,.55), inset -5px -5px 10px rgba(119,56,69,.15); }
.nail-card span { position: absolute; z-index: 2; width: 18px; height: 34px; left: 35px; top: 27px; border-radius: 50%; background: rgba(255,255,255,.45); transform: rotate(20deg); }
.nail-card i { position: absolute; z-index: 2; width: 6px; height: 6px; top: 80px; left: 49px; border-radius: 50%; background: #f5dfbd; }
.nail-card-one { top: 58px; left: calc(50% - 104px); transform: rotate(-17deg); }
.nail-card-two { top: 96px; left: calc(50% + 17px); transform: rotate(13deg); }
.nail-card-three { top: 203px; left: calc(50% - 46px); transform: rotate(-4deg); width: 91px; height: 120px; }
.nail-card-three::before { width: 57px; height: 80px; left: 17px; top: 20px; }
.art-flower { position: absolute; z-index: 2; color: #fff9f1; font-size: 40px; text-shadow: 0 1px 5px rgba(180,126,102,.2); }
.flower-one { top: 31px; right: 12%; }.flower-two { bottom: 23px; left: 12%; font-size: 27px; color: #fff4ed; }
.art-caption { position: absolute; z-index: 3; right: 7%; bottom: 29px; font: italic 15px var(--serif); color: #8c5a60; transform: rotate(-8deg); }
.art-caption span { color: var(--gold); }
.hero-stamp { position: absolute; bottom: 31px; right: 8.3%; color: var(--gold); width: 70px; height: 70px; border: 1px solid rgba(189,152,88,.7); border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 8px; line-height: 1.4; letter-spacing: 1px; text-align: center; transform: rotate(10deg); }
.hero-stamp b { position: absolute; right: -9px; top: -9px; background: var(--paper); padding: 2px; font-size: 17px; font-weight: 400; }
.section-wrap { padding: 70px max(11.6vw, 30px) 82px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 30px; }
h2 { font: 500 clamp(30px, 3.2vw, 42px)/1.2 var(--serif); letter-spacing: -.6px; margin: 12px 0 0; }
.section-heading > p { color: var(--muted); line-height: 1.7; font-size: 11px; margin: 0 0 4px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.service-card { position: relative; background: #fff; border: 1px solid #f1e7e2; padding: 24px 23px 20px; min-height: 170px; transition: .2s; }
.service-card:hover { border-color: #dfc5c0; transform: translateY(-3px); box-shadow: 0 12px 25px rgba(91,58,60,.06); }
.service-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--rose); border-radius: 50%; background: #faeeee; font-size: 19px; margin-bottom: 14px; }
.service-card h3 { font: 600 17px var(--serif); margin-bottom: 8px; }
.service-card p { color: var(--muted); font-size: 11px; line-height: 1.65; min-height: 35px; margin-bottom: 15px; }
.service-meta { display: flex; gap: 14px; align-items: center; color: var(--rose-dark); font-size: 11px; font-weight: 600; }
.service-meta span + span { color: #8f8180; font-weight: 500; }
.service-meta span + span::before { content: "·"; margin-right: 13px; color: var(--gold); }
.loading-card { grid-column: 1/-1; padding: 30px; text-align: center; color: var(--muted); border: 1px dashed var(--line); font-size: 12px; }
.booking-section { background: linear-gradient(110deg,#f5e9e7,#faefeb 47%,#f7eee7); padding: 76px max(11.6vw, 30px); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(35px, 7vw, 100px); align-items: start; }
.booking-intro { padding-top: 21px; }
.booking-intro h2 { margin: 16px 0; }
.booking-intro > p { color: var(--muted); line-height: 1.8; max-width: 340px; font-size: 12px; margin-bottom: 34px; }
.booking-intro > p.booking-admin-notice { color: var(--rose-dark); font-size: 10px; margin-top: -22px; margin-bottom: 26px; }
.booking-perk { display: flex; gap: 13px; align-items: start; margin: 20px 0; }
.booking-perk > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.67); color: var(--rose); font-size: 17px; }
.booking-perk div { display: grid; gap: 5px; padding-top: 3px; }
.booking-perk strong { font-size: 11px; font-weight: 600; }
.booking-perk small { font-size: 10px; color: var(--muted); }
.panel { background: white; box-shadow: 0 16px 50px rgba(105,67,66,.09); border: 1px solid rgba(255,255,255,.75); }
.booking-form { padding: 30px 34px 25px; }
.form-title { border-bottom: 1px solid #f0e7e3; padding-bottom: 17px; margin-bottom: 19px; }
.form-title > span { color: var(--gold); font-size: 8px; letter-spacing: 1.6px; font-weight: 700; }
.form-title h3 { font: 500 24px var(--serif); margin: 8px 0 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 13px; }
.field { display: flex; flex-direction: column; gap: 7px; color: #59464b; font-size: 10px; font-weight: 600; }
.field-wide { grid-column: 1/-1; }
.optional { color: #a99999; font-size: 9px; font-weight: 400; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid #eadfdb; border-radius: 1px; background: #fffdfc; color: var(--ink); padding: 11px 12px; outline: none; font-size: 11px; font-weight: 400; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #c7868b; box-shadow: 0 0 0 2px rgba(184,97,113,.09); }
.field input::placeholder, .field textarea::placeholder { color: #b6a8a6; }
.field textarea { resize: vertical; min-height: 68px; }
.field input[type="file"] { padding: 8px 10px; color: #8f8180; font-size: 10px; }
.helper-text { color: #a59493; font-size: 9px; font-weight: 400; }
.service-summary { background: #fcf5f2; color: #80686a; padding: 10px 12px; font-size: 10px; border-left: 2px solid var(--gold); }
.time-slots { display: flex; flex-wrap: wrap; gap: 7px; }
.time-slot { border: 1px solid #e8dcd8; color: #6f5c60; background: white; border-radius: 2px; padding: 8px 11px; min-width: 68px; font-size: 10px; cursor: pointer; }
.time-slot:hover, .time-slot.selected { border-color: var(--rose); background: #fbf0ef; color: var(--rose-dark); }
.time-slot:disabled { background: #f7f4f2; color: #c1b6b2; cursor: not-allowed; text-decoration: line-through; }
.form-message { min-height: 16px; margin: 8px 0 4px; font-size: 10px; line-height: 1.5; color: var(--rose-dark); }
.form-message.success { color: #427957; }
.button-full { width: 100%; }
.privacy-note { color: #a59493; text-align: center; font-size: 9px; margin: 12px 0 0; }
.closing-note { min-height: 147px; display: flex; align-items: center; justify-content: center; gap: 25px; text-align: center; padding: 30px; }
.closing-note p { font: 500 19px/1.6 var(--serif); margin: 0; }
.closing-flower { font-size: 24px; color: #d3b27e; }
.site-footer { min-height: 94px; padding: 20px max(6.5vw, 24px); border-top: 1px solid #eee3de; display: flex; align-items: center; justify-content: space-between; color: #9b8989; font-size: 10px; }
.contact-links { display: flex; gap: 8px; align-items: center; }
.contact-links a { color: var(--rose-dark); }
.contact-links a:hover { text-decoration: underline; }
.brand-footer .brand-mark { width: 37px; height: 37px; font-size: 18px; }.brand-footer .brand-copy strong { font-size: 15px; }
.gold { color: var(--gold); }.text-button { border: 0; background: transparent; color: #806f72; cursor: pointer; font-size: 10px; }
.modal-backdrop { position: fixed; inset: 0; z-index: 10; display: grid; place-items: center; background: rgba(47,32,37,.45); padding: 18px; overflow-y: auto; }
.modal-backdrop[hidden] { display: none; }
.admin-modal { position: relative; background: var(--paper); width: min(760px, 100%); max-height: min(88vh, 900px); overflow-y: auto; padding: 34px; box-shadow: 0 20px 70px rgba(33,20,24,.25); }
.modal-close { position: absolute; top: 13px; right: 16px; width: 34px; height: 34px; background: transparent; border: 0; color: #8d777b; font-size: 25px; cursor: pointer; }
.admin-heading { margin: 0 0 20px; }.admin-heading h2 { font-size: 31px; margin: 7px 0; }.admin-heading p { color: var(--muted); font-size: 11px; margin: 0; line-height: 1.6; }
.admin-tabs { display: flex; gap: 8px; border-bottom: 1px solid var(--line); margin-bottom: 20px; }
.admin-tab { border: 0; border-bottom: 2px solid transparent; background: transparent; padding: 10px 12px; color: #847478; font-size: 11px; cursor: pointer; }
.admin-tab.active { color: var(--rose-dark); border-bottom-color: var(--rose); }
.admin-alert { padding: 10px 13px; background: #f8efe2; color: #806239; font-size: 10px; line-height: 1.6; margin-bottom: 14px; }
.admin-alert a { text-decoration: underline; }
.admin-login { max-width: 390px; margin: 0 auto; padding: 25px 0 12px; }
.admin-login .field { margin: 15px 0; }
.admin-login h3 { font: 500 24px var(--serif); margin-bottom: 6px; }
.admin-login p { color: var(--muted); line-height: 1.7; font-size: 11px; }
.admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.admin-toolbar h3 { font: 500 20px var(--serif); margin: 0; }
.button-small { padding: 9px 12px; font-size: 10px; gap: 8px; }
.appointment-list { display: grid; gap: 10px; }
.appointment-card { background: white; border: 1px solid #eee3de; padding: 15px; display: grid; grid-template-columns: 1fr auto; gap: 12px; }
.appointment-card h4 { font: 600 15px var(--serif); margin: 0 0 6px; }
.appointment-card p { color: #88777b; font-size: 10px; line-height: 1.65; margin: 3px 0; }
.appointment-card a { color: var(--rose-dark); text-decoration: underline; }
.appointment-actions { display: flex; align-items: center; gap: 6px; }
.status-pill { display: inline-block; padding: 4px 8px; background: #f8efdf; color: #937345; font-size: 8px; text-transform: uppercase; letter-spacing: .7px; }
.status-confirmed { background: #eaf3eb; color: #4a7952; }.status-cancelled { background: #f4e8e6; color: #98615d; }.status-completed { background: #ece9f4; color: #6e628e; }
.status-select { border: 1px solid var(--line); padding: 7px; color: #78686a; font-size: 9px; background: white; }
.admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.admin-form .field { margin: 0; }.admin-form .button-row { grid-column: 1/-1; display: flex; gap: 8px; padding-top: 5px; }
.admin-service-row { background: white; border: 1px solid #eee3de; padding: 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; font-size: 11px; }
.admin-service-row span { color: var(--muted); font-size: 10px; }.service-toggle { border: 1px solid var(--line); background: white; color: #79686a; padding: 7px 10px; font-size: 9px; cursor: pointer; }
.empty-state { padding: 26px; background: white; color: var(--muted); font-size: 11px; text-align: center; line-height: 1.7; }
.toast { position: fixed; z-index: 20; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; background: #39262d; color: white; padding: 12px 18px; box-shadow: 0 8px 30px rgba(42,27,32,.2); font-size: 11px; transition: .25s; }
.toast.visible { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 760px) {
  .site-header { height: 72px; padding: 0 20px; }
  .main-nav { display: none; }
  .admin-open.button-outline { padding: 9px 10px; font-size: 10px; gap: 8px; }
  .brand-mark { width: 37px; height: 37px; font-size: 19px; }
  .hero { min-height: auto; grid-template-columns: 1fr; padding: 54px 27px 20px; }
  .hero h1 { font-size: clamp(44px, 11vw, 62px); }
  .hero-art { height: 310px; max-width: 420px; margin-top: 5px; }
  .art-blob { transform: translateX(-50%) scale(.86) rotate(-12deg); }
  .art-orbit { transform: translateX(-50%) scale(.86) rotate(16deg); }
  .orbit-two { transform: translateX(-50%) scale(.86) rotate(-30deg); }
  .hero-stamp { display: none; }
  .section-wrap { padding: 55px 23px 60px; }
  .section-heading { display: block; }.section-heading > p { margin-top: 14px; }
  .service-grid { grid-template-columns: 1fr; gap: 10px; }
  .service-card { min-height: 0; padding: 18px; }
  .service-card p { min-height: 0; margin-bottom: 12px; }
  .service-icon { float: right; margin: 0; }
  .booking-section { grid-template-columns: 1fr; padding: 55px 20px; gap: 28px; }
  .booking-intro { padding-top: 0; }.booking-intro > p { margin-bottom: 20px; }
  .booking-perk { display: inline-flex; margin: 8px 18px 0 0; }
  .booking-perk small { max-width: 190px; }
  .booking-form { padding: 24px 18px 20px; }
  .admin-modal { padding: 28px 18px 22px; }.admin-heading h2 { font-size: 27px; }
  .appointment-card { grid-template-columns: 1fr; }.appointment-actions { justify-content: space-between; }
  .site-footer { padding: 18px 20px; flex-wrap: wrap; gap: 14px; }
  .closing-note { gap: 13px; }.closing-note p { font-size: 16px; }
}
@media (max-width: 430px) {
  .brand-copy small { letter-spacing: 1.1px; font-size: 7px; }
  .brand-copy strong { font-size: 15px; }
  .admin-open.button-outline { font-size: 9px; }
  .form-grid, .admin-form { grid-template-columns: 1fr; }
  .field-wide, .admin-form .button-row { grid-column: auto; }
  .admin-tabs { gap: 0; }.admin-tab { padding: 10px 8px; font-size: 10px; }
  .site-footer > span { display: none; }
}

/* Refined editorial identity and separate professional workspace. */
:root {
  --ink: #342a2b;
  --muted: #827573;
  --rose: #a96870;
  --rose-dark: #89515a;
  --rose-light: #f2e7e4;
  --paper: #fcf8f6;
  --gold: #a88755;
  --line: #e8dfda;
}

body { background: #fcf9f7; color: var(--ink); }
.site-header { height: 82px; padding-inline: max(8vw, 28px); background: #fcf9f7; border-bottom-color: #ece5e0; }
.brand-mark { border: 0; border-right: 1px solid #d5c6b6; width: 40px; font-size: 24px; }
.brand-mark span { font-size: 17px; }
.brand-copy strong { font-size: 16px; }
.brand-copy small { letter-spacing: 1.35px; }
.main-nav { color: #716665; gap: 34px; font-size: 11px; }
.main-nav a { transition: color .2s ease; }
.button { letter-spacing: .45px; }
.button-outline { border-color: #d7ccc3; padding: 12px 15px; font-size: 10px; }
.button-primary { background: #9c6269; padding: 16px 21px; min-height: 50px; }
.button-primary:hover { background: #805057; }
.hero { min-height: 555px; padding: 66px max(11vw, 32px); grid-template-columns: 1.05fr .95fr; background: linear-gradient(110deg,#fcf8f6 0%,#fcf8f6 48%,#f3e8e4 100%); }
.hero-copy { max-width: 530px; }
.eyebrow { color: #987b54; font-size: 9px; letter-spacing: 2px; }
.eyebrow-line { width: 22px; background: #b19569; }
.hero h1 { font-size: clamp(47px, 5.2vw, 68px); line-height: 1.1; letter-spacing: -2px; margin: 24px 0 20px; }
.hero h1 em, h2 em, .closing-note em { color: #9c6269; }
.hero-copy > p { max-width: 405px; line-height: 1.9; color: #7d7270; font-size: 13px; margin-bottom: 27px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 21px; }
.quiet-link { color: #755e5e; font-size: 10px; letter-spacing: .3px; border-bottom: 1px solid #c8b7ae; padding-bottom: 4px; }
.quiet-link:hover { color: var(--rose-dark); border-color: var(--rose-dark); }
.hero-note { display: flex; align-items: center; gap: 11px; color: #8f8380; font-size: 9px; letter-spacing: .35px; margin-top: 29px; }
.note-rule { width: 25px; height: 1px; background: #b79b70; }
.hero-art { position: relative; width: 100%; max-width: 420px; height: 380px; justify-self: end; display: grid; place-items: center; }
.art-frame { position: absolute; width: 78%; height: 84%; border: 1px solid rgba(173,145,111,.45); transform: translate(17px,12px); }
.art-panel { isolation: isolate; overflow: hidden; position: relative; display: flex; flex-direction: column; justify-content: space-between; width: 76%; height: 82%; padding: 31px 29px; color: #faf4ef; background: linear-gradient(142deg,#74565a 0%,#563d41 53%,#392d30 100%); box-shadow: 0 25px 55px rgba(71,45,46,.16); }
.art-panel::before { content: ""; z-index: -1; position: absolute; width: 250px; height: 250px; right: -111px; top: 43px; border-radius: 50%; border: 1px solid rgba(226,202,166,.48); box-shadow: 0 0 0 19px rgba(226,202,166,.035),0 0 0 39px rgba(226,202,166,.035),0 0 0 59px rgba(226,202,166,.035); }
.art-panel::after { content: ""; z-index: -1; position: absolute; height: 1px; width: 150%; bottom: 82px; left: -20px; background: rgba(226,202,166,.27); transform: rotate(-27deg); }
.art-panel > span { font-size: 8px; letter-spacing: 2px; color: #dfc7a6; }
.art-panel strong { font: 500 clamp(29px,2.7vw,35px)/1.2 var(--serif); letter-spacing: 1px; white-space: nowrap; }
.art-panel i { font-style: normal; font-size: 7px; letter-spacing: 1.6px; color: #d6c6bf; }
.art-index { position: absolute; bottom: 10px; left: 10px; color: #927d6b; font: 10px var(--serif); letter-spacing: 2px; }
.art-index b { margin-left: 8px; font: 9px var(--sans); }
.section-wrap { padding: 79px max(11vw, 32px) 88px; }
.section-heading { align-items: end; margin-bottom: 35px; }
h2 { font-size: clamp(32px,3.4vw,43px); letter-spacing: -.8px; }
.section-heading > p { font-size: 11px; }
.service-grid { gap: 17px; }
.service-card { min-height: 185px; padding: 26px 23px 20px; border: 0; border-top: 1px solid #d9c9c0; background: transparent; }
.service-card:hover { border-color: #a96870; box-shadow: none; background: rgba(255,255,255,.5); transform: translateY(-2px); }
.service-index { display: block; color: #ad8b64; font: 12px var(--serif); letter-spacing: 1px; margin-bottom: 26px; }
.service-card h3 { font-size: 18px; }
.service-card p { color: #817675; line-height: 1.8; margin-bottom: 19px; }
.service-meta { color: #8c555d; }
.service-meta span + span { color: #8f817c; }
.booking-section { padding: 86px max(11vw, 32px); grid-template-columns: .78fr 1.22fr; gap: clamp(40px,7vw,96px); background: #f2e9e5; }
.booking-intro h2 { font-size: clamp(34px,3.5vw,45px); }
.booking-intro > p { font-size: 12px; }
.booking-perk > span { flex: 0 0 auto; border: 1px solid #d7c6bb; background: transparent; color: #a88755; font: 10px var(--sans); }
.panel { box-shadow: 0 20px 55px rgba(72,49,47,.07); border: 1px solid rgba(255,255,255,.8); }
.booking-form { padding: 34px 36px 27px; }
.form-title { border-bottom-color: #ece4df; }
.form-title h3 { font-size: 25px; }
.field { color: #5f5150; }
.field input, .field select, .field textarea { border-color: #e8dfda; background: #fff; padding: 12px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #aa7479; box-shadow: 0 0 0 2px rgba(156,98,105,.08); }
.time-slot { border-color: #e4d8d2; }
.time-slot:hover, .time-slot.selected { border-color: #9c6269; background: #f7eeeb; color: #89515a; }
.closing-note { min-height: 166px; display: grid; align-content: center; gap: 7px; }
.closing-note > .eyebrow { margin: 0; }
.closing-note p { font-size: 19px; }
.site-footer { min-height: 86px; padding-inline: max(8vw, 28px); color: #817573; font-size: 9px; }
.contact-links a, .text-button { color: #80575b; }
.admin-page { min-height: 100vh; background: #f7f1ee; }
.admin-site-header { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(calc((100vw - 1060px)/2), 24px); background: #fcf9f7; border-bottom: 1px solid #e8dfda; }
.admin-site-header .brand-copy small { color: #987b54; }
.admin-main { width: min(1060px, calc(100% - 48px)); min-height: calc(100vh - 150px); margin: 0 auto; padding: 58px 0 80px; }
.admin-main #admin-content { padding: clamp(22px,4vw,42px); background: #fcf9f7; border: 1px solid #e8dfda; box-shadow: 0 20px 65px rgba(67,48,46,.05); }
.admin-main .admin-heading { margin: 0 0 26px; }
.admin-main .admin-heading h2 { margin: 10px 0 8px; }
.admin-main .admin-heading p { max-width: 520px; }
.admin-main .admin-alert { border-left: 2px solid #aa8b5a; background: #f4ede3; padding: 13px 15px; }
.admin-main .admin-login { max-width: 430px; padding: 15px 0 20px; }
.admin-main .admin-tabs { margin: 20px 0 24px; }
.admin-main .admin-tab { padding: 12px 15px; }
.admin-main .appointment-card, .admin-main .admin-service-row { border-color: #e9e0db; }
.admin-site-footer { min-height: 68px; display: flex; align-items: center; justify-content: center; border-top: 1px solid #e7ded9; color: #897a76; font-size: 9px; letter-spacing: .5px; }
.booking-intro > p.booking-admin-notice { margin-top: -22px; color: #80575b; }
.brand-mark { display: flex; align-items: center; justify-content: center; gap: 0; letter-spacing: -4px; padding-right: 4px; }
.brand-mark span { margin-top: 4px; }

@media (max-width: 760px) {
  .site-header { height: 72px; padding-inline: 18px; }
  .header-contact { font-size: 9px; padding: 9px; gap: 8px; }
  .hero { grid-template-columns: 1fr; padding: 55px 25px 33px; }
  .hero h1 { font-size: clamp(44px,11vw,61px); }
  .hero-art { height: 325px; justify-self: center; margin-top: 29px; }
  .art-panel { width: 76%; height: 83%; padding: 25px; }
  .art-panel strong { font-size: clamp(22px,6.2vw,26px); }
  .section-wrap { padding: 59px 23px 65px; }
  .booking-section { grid-template-columns: 1fr; padding: 58px 20px; gap: 30px; }
  .booking-form { padding: 25px 19px; }
  .admin-site-header { height: 72px; padding: 0 18px; }
  .admin-main { width: min(100% - 28px, 680px); padding: 28px 0 45px; }
  .admin-main #admin-content { padding: 23px 17px; }
}
@media (max-width: 430px) {
  .brand-copy small { font-size: 7px; letter-spacing: .9px; }
  .header-contact { max-width: 142px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 16px; }
  .form-grid, .admin-form { grid-template-columns: 1fr; }
  .field-wide, .admin-form .button-row { grid-column: auto; }
  .admin-main .admin-tab { padding: 10px 8px; font-size: 9px; }
  .admin-main .admin-toolbar { align-items: flex-start; flex-direction: column; }
  .admin-main .admin-toolbar .appointment-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .site-footer { align-items: flex-start; }
}

.admin-main .admin-tabs { flex-wrap: wrap; }
.admin-main .admin-tabs .admin-tab { white-space: nowrap; }
.admin-main .admin-toolbar > div { display: grid; gap: 5px; }
.analytics-caption { color: #8b7b78; font-size: 10px; line-height: 1.5; }
.month-filter { display: grid; gap: 6px; color: #745f5d; font-size: 9px; font-weight: 600; }
.month-filter input { min-width: 150px; border: 1px solid #e8dfda; background: white; color: var(--ink); padding: 9px 10px; font: 11px var(--sans); }
.metric-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 20px 0 25px; }
.metric-card { min-width: 0; display: flex; flex-direction: column; gap: 9px; padding: 18px 17px; border: 1px solid #e9e0db; background: #fff; }
.metric-card > span { color: #867774; font-size: 9px; letter-spacing: .45px; text-transform: uppercase; }
.metric-card > strong { color: #493739; font: 600 25px var(--serif); overflow-wrap: anywhere; }
.metric-card > strong.metric-card-text { font-size: clamp(16px,2vw,21px); }
.metric-card > small { color: #948582; font-size: 9px; line-height: 1.5; }
.metric-card-highlight { border-color: #dfcbc3; background: #f5ece8; }
.expense-section, .analytics-chart { border-top: 1px solid #e7ddd8; padding-top: 22px; }
.analytics-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px; }
.analytics-section-heading .eyebrow { font-size: 8px; }
.analytics-section-heading h4 { margin: 6px 0 0; color: #4a393a; font: 500 19px var(--serif); }
.expense-form { display: grid; grid-template-columns: 1fr 1.2fr 1.5fr .8fr auto; gap: 10px; align-items: end; padding: 14px; background: #f7f1ee; }
.expense-form .field { min-width: 0; }
.expense-form .field input { min-width: 0; padding: 10px 9px; }
.expense-form .button { align-self: end; min-height: 36px; white-space: nowrap; }
.expense-list { margin-top: 12px; }
.expense-row { display: flex; justify-content: space-between; gap: 15px; padding: 12px 4px; border-bottom: 1px solid #eee7e2; font-size: 11px; }
.expense-row > span { display: grid; gap: 4px; }
.expense-row > span strong { font-weight: 600; }
.expense-row small { color: #91827f; font-size: 9px; }
.expense-row > strong { color: #80575b; white-space: nowrap; }
.analytics-chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 25px; }
.analytics-chart { min-width: 0; }
.metric-bars { display: grid; gap: 12px; }
.metric-bar-row { display: grid; grid-template-columns: minmax(95px,auto) minmax(40px,1fr) 22px; gap: 10px; align-items: center; }
.metric-bar-label { color: #756764; font-size: 9px; text-transform: capitalize; }
.metric-bar-track { height: 7px; overflow: hidden; background: #f0e9e5; }
.metric-bar-fill { display: block; height: 100%; background: linear-gradient(90deg,#bd9990,#96616a); }
.metric-bar-value { color: #76565a; font-size: 10px; text-align: right; }
.analytics-empty { padding: 17px 14px; border: 1px dashed #ded1ca; color: #897a76; font-size: 10px; line-height: 1.7; background: rgba(255,255,255,.55); }

@media (max-width: 760px) {
  .metric-card-grid { grid-template-columns: 1fr 1fr; }
  .expense-form { grid-template-columns: 1fr 1fr; }
  .expense-form .button { grid-column: 1/-1; }
  .analytics-chart-grid { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .metric-card-grid { grid-template-columns: 1fr; }
  .expense-form { grid-template-columns: 1fr; }
  .expense-form .button { grid-column: auto; }
  .metric-bar-row { grid-template-columns: minmax(85px,auto) minmax(30px,1fr) 18px; gap: 7px; }
}
