/* Self-hosted typefaces */
@font-face {font-family:"DM Sans";src:url("../fonts/dm-sans.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face {font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond.woff2") format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face {font-family:"Allura";src:url("../fonts/allura.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* Hero */
.hero-editorial {position:relative;overflow:hidden;padding:134px 0 0;background:radial-gradient(ellipse at 83% 35%,#f0e5e0 0,#f8f0eb 33%,transparent 65%),#fffaf6}
.hero-editorial-grid {position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,70px)}
.hero-intro {min-width:0;padding-bottom:25px}
.hero-kicker {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 27px;color:#68555e;font-size:.69rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.hero-kicker-divider {color:#c5aaa9}
.hero-headline {margin:0;color:#261b24;font:500 clamp(3.9rem,6.55vw,6rem)/.98 var(--serif);letter-spacing:-.045em}
.hero-headline>span {display:block}
.hero-headline em {position:relative;display:block;width:fit-content;margin:2px 0 0 34px;color:#b72a5b;font:400 1.06em/1.02 var(--script);letter-spacing:0}
.hero-description {max-width:410px;margin:23px 0 0;color:#75636c;font-size:1rem;line-height:1.8}
.hero-cta-row {display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:29px}
.hero-book-cta {min-height:58px;padding-inline:25px;letter-spacing:.075em}
.hero-call-cta {display:inline-flex;align-items:center;gap:11px;min-height:58px}
.hero-call-symbol {display:grid;width:43px;height:43px;flex:0 0 auto;place-items:center;border:1px solid #dccbc8;border-radius:50%;color:#a64261;transition:background 180ms ease}
.hero-call-symbol svg {width:19px;height:19px}
.hero-call-cta small {display:block;color:#796771;font-size:.64rem;line-height:1.3}
.hero-call-cta strong {display:block;margin-top:4px;color:#32242e;font-size:.88rem;font-weight:700;line-height:1.3;white-space:nowrap}
.hero-call-cta:hover .hero-call-symbol {background:#f3e5e9}
.hero-treatment-link {display:inline-flex;align-items:center;gap:25px;min-height:36px;margin-top:12px;color:#69585f;font-size:.75rem;font-weight:600}
.hero-treatment-link span {color:#b72a5b;font-size:1.15rem}
.hero-treatment-link:hover {color:#b72a5b}
.hero-care-note {display:flex;align-items:center;gap:11px;margin-top:24px;color:#8d6b7b}
.hero-care-note>span {font-size:1.05rem}
.hero-care-note p {margin:0;color:#82707a;font-size:.69rem}
.hero-care-note i {margin-inline:8px;font-style:normal}
.hero-art {position:relative;min-width:0;min-height:572px;padding-bottom:35px}
.hero-arch-line {position:absolute;top:-21px;right:28px;width:92%;height:552px;border:1px solid rgba(160,111,127,.28);border-radius:49% 49% 32px 32px;transform:rotate(-7deg);pointer-events:none}
.hero-portrait {position:relative;width:94%;height:532px;margin:0 0 0 auto;overflow:hidden;border:7px solid rgba(255,253,250,.9);border-radius:49% 49% 30px 30px;background:#efe0d7;box-shadow:0 20px 55px rgba(78,52,57,.1)}
.hero-portrait>img {width:100%;height:100%;object-fit:cover;object-position:82% 43%}
.hero-portrait::after {position:absolute;inset:55% 0 0;content:"";background:linear-gradient(transparent,rgba(63,37,42,.35));pointer-events:none}
.hero-portrait figcaption {position:absolute;z-index:1;right:27px;bottom:46px;left:27px;color:#fffaf6;font:500 1.48rem/1.2 var(--serif)}
.hero-portrait figcaption span {display:block;margin-top:6px;font:500 .57rem/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.hero-art-signature {position:absolute;z-index:3;bottom:0;left:-18px;width:214px;color:#a55771;font:400 2.6rem/.9 var(--script);white-space:nowrap;transform:rotate(-8deg);pointer-events:none}
.hero-art-signature svg {display:block;width:100%;margin-top:7px}
.hero-studio-card {position:absolute;z-index:2;right:-9px;bottom:7px;display:grid;width:263px;grid-template-columns:69px minmax(0,1fr);align-items:center;gap:14px;padding:12px;border:1px solid #eddfdb;border-radius:18px;background:#fffdfa;box-shadow:0 13px 34px rgba(72,45,57,.09);transition:transform 220ms var(--ease)}
.hero-studio-card:hover {transform:translateY(-3px)}
.hero-studio-card>img {width:69px;height:96px;object-fit:cover;border-radius:10px}
.hero-studio-copy {min-width:0}
.hero-studio-copy>small {display:block;margin-bottom:7px;color:#9b6f80;font-size:.5rem;font-weight:700;letter-spacing:.09em;line-height:1.5;text-transform:uppercase}
.hero-studio-copy strong {display:block;color:#30212a;font:500 1.76rem/1 var(--serif);letter-spacing:-.03em}
.hero-studio-copy>span {display:block;margin-top:10px;color:#7c6770;font-size:.55rem;line-height:1.5}
.hero-studio-copy i {color:#b72a5b;font-size:.95rem;font-style:normal}
.hero-art-sparkle {position:absolute;z-index:1;top:37px;right:-10px;width:47px;height:61px;color:#ad7085}
.hero-details-row {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 25px;padding-block:22px 23px;margin-top:26px;border-top:1px solid rgba(119,84,99,.16);color:#77666e;font-size:.72rem}
.hero-details-row>span {color:#7e5b6d;font-weight:600}
.hero-details-row i {margin-inline:8px;font-style:normal}
.hero-details-row>a:last-child {color:#9b3e61;font-weight:700;white-space:nowrap}
.hero-details-row a:hover {color:var(--rose-dark)}

/* Appointment form */
.appointment-layout {grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);align-items:start;gap:clamp(35px,5vw,70px)}
.appointment-copy {padding-top:30px}
.appointment-copy h2 em {font-family:var(--script);font-size:1.15em;font-style:normal}
.appointment-form {padding:clamp(22px,3vw,36px);background:rgba(255,253,251,.95);border-color:#f3e4e6}
.form-heading h3 {font-size:clamp(2rem,3vw,2.7rem);font-weight:500;line-height:1.05}
.form-heading>div small,.form-step-heading>span {font-size:.68rem}
.form-step-heading h4 {font-size:clamp(1.85rem,3vw,2.45rem);font-weight:500;line-height:1.08}
.form-step-heading p {font-size:.9rem}
.form-field>span {display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:#695660;font-size:.77rem;letter-spacing:.045em}
.form-field b,.treatment-picker b {color:#b72a5b}
.form-field input,.form-field textarea {font-size:1rem;border-radius:10px;background:#fff}
.form-field input::placeholder,.form-field textarea::placeholder {color:#a5929d;font-size:.9rem}
.form-field-help {color:#8b7581;font-size:.73rem;line-height:1.45}
.optional-tag {display:inline-block;padding:2px 6px;border-radius:4px;color:#8b7581;background:#f6eff2;font-size:.61rem;font-weight:500;letter-spacing:0;line-height:1.4;text-transform:none}
.form-progress-step span {font-size:.67rem;letter-spacing:.035em}
.form-progress-step strong {font-size:.64rem}
.form-step-actions .button {min-height:55px;letter-spacing:.07em;line-height:1.4}
.form-back,.form-call-link {font-size:.72rem;line-height:1.5;letter-spacing:.035em}
.form-back {min-height:44px}
.form-privacy {font-size:.76rem}
.treatment-picker {min-width:0;margin:0;padding:0;border:0}
.treatment-picker legend {padding:0;color:#695660;font-size:.78rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.service-picker-help {margin:6px 0 17px;color:#8b7581;font-size:.79rem;line-height:1.5}
.service-choice-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px}
.service-choice {position:relative;display:block;min-width:0;cursor:pointer}
.service-choice-input {position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%)}
.service-choice-card {display:flex;height:100%;flex-direction:column;overflow:hidden;border:2px solid #efe5e8;border-radius:13px;background:#fff;transition:border-color 180ms ease,box-shadow 180ms ease,background 180ms ease}
.service-choice-photo {position:relative;display:block;overflow:hidden;aspect-ratio:1.43;background:#f2e8e7}
.service-choice-photo>img {width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 350ms var(--ease)}
.service-choice-check {position:absolute;top:9px;right:9px;display:grid;width:23px;height:23px;place-items:center;border:1.5px solid rgba(255,255,255,.95);border-radius:50%;color:transparent;background:rgba(255,255,255,.67);font-size:.82rem;font-weight:800}
.service-choice-copy {display:flex;min-height:77px;flex:1;flex-direction:column;justify-content:center;gap:5px;padding:11px}
.service-choice-copy strong {display:block;color:#51404a;font-size:.79rem;font-weight:700;line-height:1.35}
.service-choice-copy small {display:block;color:#987b89;font-size:.61rem;line-height:1.4}
.service-choice:hover .service-choice-card {border-color:#d6a1b4}
.service-choice:hover .service-choice-photo>img {transform:scale(1.035)}
.service-choice-input:checked+.service-choice-card {border-color:#b72a5b;background:#fff6f9;box-shadow:0 0 0 2px rgba(183,42,91,.09)}
.service-choice-input:checked+.service-choice-card .service-choice-check {color:#fff;border-color:#b72a5b;background:#b72a5b}
.service-choice-input:checked+.service-choice-card strong {color:#a52d55}
.service-choice-input:focus-visible+.service-choice-card {outline:3px solid #a55771;outline-offset:3px}
.service-selection-status {margin:17px 0 0;color:#9b3e61;font-size:.79rem;font-weight:600;line-height:1.5}
.service-error {margin:14px 0 0;color:#a41e43;font-size:.84rem;font-weight:600}
.booking-summary {display:flex;min-width:0;align-items:center;gap:13px;margin:0 0 23px;padding:13px;border:1px solid #ebd9e0;border-radius:13px;background:#fff7f9}
.booking-summary>img {width:65px;height:65px;flex:0 0 auto;object-fit:cover;border-radius:9px}
.booking-summary>div {min-width:0;flex:1}
.booking-summary small {display:block;color:#aa7388;font-size:.59rem;font-weight:700;line-height:1.4;letter-spacing:.04em;text-transform:uppercase}
.booking-summary strong {display:block;margin-top:4px;color:#694455;font-size:.9rem;font-weight:700;line-height:1.4}
.booking-summary>div>span {display:block;margin-top:3px;color:#8c7681;font-size:.69rem;line-height:1.45;overflow-wrap:anywhere}
.booking-summary-edit {min-height:40px;padding:5px 3px;border:0;color:#a83b61;background:transparent;font-size:.73rem;text-decoration:underline;text-underline-offset:3px}
.form-timing-note {margin:13px 0 0;color:#987b89;font-size:.73rem;line-height:1.5}
.form-status {margin-top:16px;font-size:.86rem;font-weight:600;line-height:1.6}
.form-submit:disabled {cursor:wait;opacity:.65}

@media (min-width:1025px) {.appointment-copy {position:sticky;top:120px}}
@media (max-width:1080px) {
.hero-editorial-grid {gap:30px}
.hero-headline {font-size:clamp(3.7rem,6.6vw,5.3rem)}
.hero-art {min-height:525px}
.hero-portrait {height:493px}
.hero-arch-line {height:507px;right:19px}
.hero-cta-row {gap:12px}
.hero-book-cta {padding-inline:20px;font-size:.64rem}
.hero-studio-card {width:238px}
.hero-studio-copy strong {font-size:1.65rem}
.hero-art-signature {left:-9px;width:182px;font-size:2.7rem}
.appointment-layout {grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:32px}
}
@media (max-width:820px) {
.hero-editorial {padding-top:123px}
.hero-editorial-grid {grid-template-columns:minmax(0,1fr);gap:35px}
.hero-intro {padding-bottom:0}
.hero-headline {font-size:clamp(3.7rem,10vw,5.5rem)}
.hero-description {max-width:450px}
.hero-art {width:min(100%,510px);min-height:554px;margin-inline:auto}
.hero-portrait {height:510px;width:90%}
.hero-arch-line {height:531px;width:88%;right:30px}
.hero-studio-card {right:0;width:253px}
.hero-art-signature {bottom:0;left:0;width:210px;font-size:3.1rem}
.hero-details-row {justify-content:flex-start;margin-top:20px}
.hero-details-row>a:nth-child(2) {order:3;width:100%}
.hero-details-row>a:last-child {margin-left:auto}
.appointment-layout {grid-template-columns:minmax(0,1fr);gap:35px}
.appointment-copy {padding-top:0}
.appointment-copy>p {max-width:500px}
}
@media (max-width:767px) {
.hero-editorial {padding-top:106px}
.hero-editorial-grid {gap:37px}
.hero-kicker {gap:10px;margin-bottom:21px;font-size:.57rem;letter-spacing:.12em}
.hero-headline {font-size:clamp(3.1rem,11.8vw,4.8rem)}
.hero-headline em {margin-top:5px;margin-left:26px;font-size:1.14em}
.hero-description {margin-top:18px;font-size:.9rem;line-height:1.75}
.hero-cta-row {gap:12px;margin-top:23px}
.hero-book-cta {min-height:55px;width:100%;font-size:.71rem}
.hero-call-cta {min-height:47px;gap:11px}
.hero-call-symbol {width:37px;height:37px}
.hero-call-cta small {font-size:.61rem}
.hero-call-cta strong {font-size:.91rem}
.hero-treatment-link {min-height:32px;margin-top:0;font-size:.72rem}
.hero-care-note {margin-top:17px;gap:9px}
.hero-care-note p {font-size:.63rem}
.hero-care-note i {margin-inline:5px}
.hero-art {min-height:421px;padding-bottom:36px}
.hero-portrait {height:375px;width:93%;border-width:6px;border-radius:49% 49% 25px 25px}
.hero-arch-line {top:-15px;right:17px;width:92%;height:391px}
.hero-portrait figcaption {right:19px;bottom:33px;left:19px;font-size:1.27rem}
.hero-portrait figcaption span {font-size:.5rem;letter-spacing:.19em}
.hero-art-signature {display:none}
.hero-art-signature svg {margin-top:4px}
.hero-studio-card {right:0;bottom:0;width:201px;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:10px;border-radius:14px}
.hero-studio-card>img {width:48px;height:81px;border-radius:8px}
.hero-studio-copy>small {margin-bottom:6px;font-size:.44rem;letter-spacing:.04em}
.hero-studio-copy strong {font-size:1.4rem}
.hero-studio-copy>span {margin-top:8px;font-size:.48rem}
.hero-art-sparkle {top:20px;right:-4px;width:32px;height:43px}
.hero-details-row {gap:12px 14px;padding-block:19px 20px;margin-top:24px;font-size:.63rem}
.hero-details-row i {margin-inline:4px}
.hero-details-row>a:nth-child(2) {font-size:.65rem;line-height:1.7}
.appointment-form {padding:25px 19px;border-radius:18px}
.form-heading {gap:10px}
.form-heading h3 {font-size:2.13rem}
.form-progress {margin-bottom:28px}
.form-progress-step {min-height:50px}
.form-progress-step span {font-size:.61rem}
.form-step-heading p {font-size:.87rem}
.form-grid {gap:17px}
.form-field>span {font-size:.76rem}
.service-choice-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.service-choice-photo {aspect-ratio:1.28}
.service-choice-copy {min-height:82px;padding:10px}
.service-choice-copy strong {font-size:.79rem}
.service-choice-copy small {font-size:.61rem}
.form-step-actions .button {font-size:.65rem}
.form-call-link {flex-wrap:wrap;gap:4px 7px;min-height:44px}
.booking-summary {gap:10px;padding:11px}
.booking-summary>img {width:53px;height:64px}
.booking-summary strong {font-size:.82rem}
.booking-summary>div>span {font-size:.67rem}
}
@media (max-width:370px) {
.hero-kicker {font-size:.51rem;gap:8px}
.hero-headline {font-size:11.7vw}
.hero-headline em {margin-left:15px;font-size:1.17em}
.hero-care-note p {font-size:.59rem}
.hero-art {min-height:386px}
.hero-portrait {height:340px}
.hero-arch-line {height:355px}
.hero-art-signature {bottom:7px;width:133px;font-size:2rem}
.hero-studio-card {width:185px;grid-template-columns:43px minmax(0,1fr);gap:8px;padding:9px}
.hero-studio-card>img {width:43px;height:75px}
.hero-studio-copy strong {font-size:1.25rem}
.hero-details-row {gap:10px;font-size:.57rem}
.appointment-form {padding-inline:15px}
.service-choice-grid {gap:9px}
.service-choice-copy {padding:9px 8px}
.service-choice-copy strong {font-size:.75rem}
.service-choice-copy small {font-size:.58rem}
}
@media (prefers-reduced-motion:reduce) {.hero-studio-card,.service-choice-card,.service-choice-photo>img {transition:none}}


/* Appointment thank-you page */
.thank-you-page {
  display: flex;
  min-height: 100vh;
  min-height: 100svh;
  flex-direction: column;
  background: radial-gradient(ellipse at 82% 48%, #f5e9e7 0, transparent 54%), #fffaf6;
}
.thank-you-header-link { display:inline-flex; min-height:44px; align-items:center; gap:12px; color:#8c5d72; font-size:.75rem; font-weight:600; }
.thank-you-main { display:flex; width:100%; flex:1; align-items:center; justify-content:center; padding:clamp(38px,6vw,72px) 18px; }
.thank-you-card {
  position:relative;
  width:min(100%,760px);
  overflow:hidden;
  padding:clamp(34px,6vw,60px) clamp(23px,5vw,64px) 52px;
  border:1px solid #efdee4;
  border-radius:30px;
  background:rgba(255,253,251,.94);
  box-shadow:0 22px 70px rgba(119,68,85,.08);
  text-align:center;
}
.thank-you-icon { display:grid; width:70px; height:70px; place-items:center; margin:0 auto 24px; border:1px solid #eac9d7; border-radius:50%; color:#b72a5b; background:#fff0f5; }
.thank-you-icon svg { width:38px; height:38px; }
.thank-you-eyebrow { margin:0 0 13px; color:#a75b79; font-size:.67rem; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.thank-you-card h1 { margin:0; color:#32212d; font:500 clamp(3.6rem,7vw,5rem)/1.05 var(--serif); letter-spacing:-.04em; }
.thank-you-script { margin:8px 0 26px; color:#b72a5b; font:400 clamp(2.2rem,4.1vw,3rem)/1.1 var(--script); }
.thank-you-message { max-width:475px; margin:0 auto; color:#66505f; font-size:clamp(1.03rem,2vw,1.16rem); font-weight:500; line-height:1.75; }
.thank-you-note { max-width:450px; margin:12px auto 0; color:#917987; font-size:.9rem; line-height:1.7; }
.thank-you-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:13px; margin-top:32px; }
.thank-you-actions .button { min-height:55px; padding-inline:26px; font-size:.68rem; letter-spacing:.06em; line-height:1.4; }
.thank-you-card-detail { display:block; margin-top:30px; color:#c996ab; font-size:1.05rem; line-height:1; }
.thank-you-footer { padding:22px 0 25px; border-top:1px solid rgba(148,111,128,.12); color:#98818e; font-size:.68rem; line-height:1.7; }
.thank-you-footer .container { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 22px; }
.thank-you-footer p { margin:0; }
.thank-you-footer p span { margin-inline:8px; }
.thank-you-footer .container > div { display:flex; flex-wrap:wrap; gap:18px; }
.thank-you-footer a:hover { color:var(--rose-dark); }
@media (max-width:767px) {
  .thank-you-header-link { font-size:.65rem; gap:7px; }
  .thank-you-main { padding:32px 14px; }
  .thank-you-card { padding:34px 20px 30px; border-radius:22px; }
  .thank-you-icon { width:60px; height:60px; margin-bottom:21px; }
  .thank-you-script { margin-top:10px; margin-bottom:23px; font-size:2.35rem; }
  .thank-you-note { font-size:.83rem; }
  .thank-you-actions { flex-direction:column; align-items:stretch; gap:11px; margin-top:27px; }
  .thank-you-actions .button { width:100%; }
  .thank-you-card-detail { margin-top:25px; }
  .thank-you-footer { font-size:.64rem; }
  .thank-you-footer .container { flex-direction:column; align-items:center; gap:10px; text-align:center; }
}
@media (max-width:350px) {
  .thank-you-card { padding-inline:16px; }
  .thank-you-script { font-size:2.1rem; }
  .thank-you-message { font-size:1rem; }
  .thank-you-actions .button { padding-inline:15px; font-size:.64rem; }
}
