:root { --beauty-ink: #242220; --beauty-paper: #f7f4ef; --beauty-soft: #ebe2dc; --beauty-line: #d6ccc4; --beauty-accent: #d65372; --beauty-deep: #353330; }
html:has(body.theme-beauty) { scroll-behavior: smooth; }
body.theme-beauty { margin: 0; color: var(--beauty-ink); background: var(--beauty-paper); font-family: 'Trebuchet MS', 'Helvetica Neue', sans-serif; }
body.theme-beauty h1, body.theme-beauty h2, body.theme-beauty h3 { margin: 0; font-family: 'Didot', 'Bodoni 72', 'Baskerville', serif; font-weight: 400; letter-spacing: -.055em; line-height: .95; }
body.theme-beauty .nodo-demo-bar { --nodo-pink: var(--beauty-accent); }
.beauty-site { overflow: hidden; }
.beauty-header { position: absolute; z-index: 2; top: 92px; left: 50%; display: flex; width: min(1180px, calc(100% - 40px)); align-items: center; justify-content: space-between; color: white; transform: translateX(-50%); }
.beauty-logo { display: flex; flex-direction: column; font: 500 25px/1 Georgia, serif; letter-spacing: -.04em; }.beauty-logo small { margin-top: 8px; font: 10px Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.beauty-nav { display: flex; align-items: center; gap: 28px; font-size: 12px; }.beauty-nav a:hover { color: #e8d4cd; }
.beauty-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 14px; padding: 0 22px; border: 1px solid var(--beauty-accent); color: white; background: var(--beauty-accent); font: 700 11px Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: transform .25s ease, background .25s ease; }.beauty-button:hover { background: #b08c83; transform: translateY(-2px); }.beauty-button.secondary { border-color: rgba(255,255,255,.6); background: transparent; }.beauty-button.secondary:hover { background: rgba(255,255,255,.1); }
.beauty-hero { position: relative; min-height: 760px; display: flex; align-items: end; color: white; background: linear-gradient(90deg, rgba(25,23,21,.64), rgba(25,23,21,.08)), url('/assets/images/beauty/hero.webp') center/cover; }.beauty-hero-inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 0 0 92px; }.beauty-eyebrow { margin: 0 0 19px; color: #ead0c8; font: 700 11px Arial, sans-serif; letter-spacing: .17em; text-transform: uppercase; }.beauty-hero h1 { max-width: 780px; font-size: clamp(4.5rem, 10vw, 9.5rem); }.beauty-hero-copy { max-width: 420px; margin: 27px 0 0; color: #f2ebe5; font-size: 18px; line-height: 1.55; }.beauty-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.beauty-section { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 126px 0; }.beauty-section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: end; }.beauty-section h2 { max-width: 650px; font-size: clamp(3.4rem, 7vw, 7rem); }.beauty-lead { max-width: 450px; color: #6f6a64; font-size: 17px; line-height: 1.7; }
.beauty-treatment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 80px; background: var(--beauty-line); }.beauty-treatment { min-height: 280px; padding: 27px; background: var(--beauty-paper); transition: background .3s ease, transform .3s ease; }.beauty-treatment:hover { background: white; transform: translateY(-4px); }.beauty-treatment span { color: var(--beauty-accent); font: 700 11px Arial, sans-serif; letter-spacing: .12em; }.beauty-treatment h3 { margin-top: 68px; font-size: 32px; }.beauty-treatment p { max-width: 270px; margin: 15px 0 0; color: #77716b; font-size: 14px; line-height: 1.5; }.beauty-treatment a { display: inline-flex; margin-top: 22px; color: var(--beauty-accent); font: 700 11px Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.beauty-split { display: grid; grid-template-columns: 1.1fr .9fr; color: white; background: var(--beauty-deep); }.beauty-split-image { min-height: 560px; overflow: hidden; }.beauty-split-image img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(.78); transition: transform .8s ease, filter .4s ease; }.beauty-split:hover img { filter: saturate(1); transform: scale(1.025); }.beauty-split-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(40px, 7vw, 92px); }.beauty-split-copy h2 { max-width: 510px; font-size: clamp(3.2rem, 6vw, 6.2rem); }.beauty-split-copy p:not(.beauty-eyebrow) { max-width: 390px; margin-top: 28px; color: #d7d0c9; font-size: 16px; line-height: 1.65; }
.beauty-gallery { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1px; background: var(--beauty-line); }.beauty-gallery figure { margin: 0; background: var(--beauty-paper); }.beauty-gallery img { display: block; width: 100%; height: 430px; object-fit: cover; filter: saturate(.72); transition: filter .4s ease, transform .7s ease; }.beauty-gallery figure:hover img { filter: saturate(1); transform: scale(1.02); }.beauty-gallery figcaption { padding: 17px 24px 20px; color: #77716b; font: 10px Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.beauty-quote { padding: 120px 20px; color: white; background: #262522; text-align: center; }.beauty-quote p { max-width: 820px; margin: 0 auto 22px; font: 400 clamp(2.4rem, 5vw, 5rem)/1 Georgia, serif; letter-spacing: -.05em; }.beauty-quote small { color: #c6b9b0; font: 11px Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.beauty-contact { color: white; background: var(--beauty-deep); }.beauty-contact .beauty-section { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }.beauty-contact h2 { color: white; }.beauty-contact .beauty-lead { color: #d7d0c9; }.beauty-contact-details { align-self: end; color: #ddd5ce; font-size: 15px; line-height: 1.8; }.beauty-contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }.beauty-contact .beauty-button.secondary { border-color: rgba(255,255,255,.35); }
.beauty-footer { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding: 58px max(20px, calc((100% - 1180px) / 2)) 105px; color: #dcd4cc; background: var(--beauty-deep); }.beauty-footer h2 { font-size: 44px; }.beauty-footer p { margin: 9px 0 0; color: #aaa39b; font-size: 13px; }
.beauty-modal { position: fixed; z-index: 100; inset: 0; display: none; place-items: center; padding: 20px; }.beauty-modal.is-open { display: grid; }.beauty-modal-backdrop { position: absolute; inset: 0; background: rgba(20,18,16,.72); backdrop-filter: blur(9px); }.beauty-modal-card { position: relative; width: min(530px, 100%); padding: 43px; color: var(--beauty-ink); background: var(--beauty-paper); box-shadow: 0 25px 80px rgba(0,0,0,.3); }.beauty-modal-card h2 { font-size: clamp(3rem, 7vw, 5rem); }.beauty-modal-card > p:not(.beauty-eyebrow):not(.beauty-success) { color: #706a64; font-size: 14px; line-height: 1.5; }.beauty-modal-close { position: absolute; top: 14px; right: 18px; border: 0; color: #706a64; background: none; font-size: 30px; cursor: pointer; }.beauty-form { display: grid; gap: 15px; margin-top: 25px; }.beauty-form label { display: grid; gap: 7px; color: #706a64; font: 10px Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }.beauty-form input, .beauty-form select, .beauty-form textarea { width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid var(--beauty-line); color: var(--beauty-ink); background: white; font: 15px Arial, sans-serif; }.beauty-form textarea { resize: vertical; }.beauty-form .beauty-button { justify-self: start; margin-top: 4px; }.beauty-success { color: var(--beauty-accent); font-weight: 700; }
.beauty-services-page .beauty-header { position: relative; top: auto; left: auto; width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 82px 0 18px; color: var(--beauty-ink); transform: none; }.beauty-services-hero { padding: 105px 0 92px; background: var(--beauty-soft); }.beauty-services-hero .beauty-section { padding: 0; }.beauty-services-hero h1 { max-width: 850px; font-size: clamp(4rem, 9vw, 9rem); }.beauty-services-hero p:not(.beauty-eyebrow) { max-width: 490px; margin-top: 24px; color: #6f6a64; font-size: 18px; line-height: 1.55; }.beauty-service-list { margin-top: 72px; border-top: 1px solid var(--beauty-line); }.beauty-service-group { padding: 35px 0 20px; border-bottom: 1px solid var(--beauty-line); }.beauty-service-group h2 { color: var(--beauty-accent); font: 700 11px Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }.beauty-service-row { display: grid; grid-template-columns: 1.1fr 2fr auto auto; gap: 24px; align-items: baseline; padding: 25px 0; border-top: 1px solid rgba(214,208,200,.7); }.beauty-service-row:first-of-type { margin-top: 18px; }.beauty-service-row strong { font: 400 25px Georgia, serif; }.beauty-service-row p { margin: 0; color: #77716b; font-size: 14px; line-height: 1.45; }.beauty-service-meta { color: #77716b; font-size: 12px; white-space: nowrap; }.beauty-service-price { color: var(--beauty-accent); font: 700 15px Arial, sans-serif; white-space: nowrap; }.beauty-services-note { margin-top: 70px; padding: 28px; color: #6f6a64; border: 1px solid var(--beauty-line); font-size: 13px; line-height: 1.6; }
.beauty-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }.beauty-reveal.is-visible { opacity: 1; transform: none; }
@media (max-width: 760px) { .beauty-header, .beauty-services-page .beauty-header { top: 74px; left: 14px; width: calc(100% - 28px); padding: 0; transform: none; }.beauty-nav { display: none; }.beauty-hero { min-height: 700px; }.beauty-hero-inner { width: calc(100% - 28px); padding-bottom: 60px; }.beauty-hero h1 { font-size: clamp(4rem, 18vw, 7rem); }.beauty-section { width: calc(100% - 28px); padding: 80px 0; }.beauty-section-heading, .beauty-contact .beauty-section { grid-template-columns: 1fr; gap: 35px; }.beauty-treatment-grid { grid-template-columns: 1fr; margin-top: 48px; }.beauty-treatment { min-height: 220px; }.beauty-treatment h3 { margin-top: 43px; }.beauty-split { grid-template-columns: 1fr; }.beauty-split-image { min-height: 410px; }.beauty-split-copy { padding: 72px 14px; }.beauty-gallery { grid-template-columns: 1fr; }.beauty-gallery img { height: 300px; }.beauty-quote { padding: 82px 14px; }.beauty-footer { align-items: flex-start; flex-direction: column; padding: 50px 14px 90px; }.beauty-modal-card { padding: 35px 24px 28px; }.beauty-services-page .beauty-header { padding: 76px 14px 20px; width: auto; }.beauty-services-hero { padding: 75px 0; }.beauty-services-hero h1 { font-size: clamp(4rem, 17vw, 7rem); }.beauty-service-list { margin-top: 50px; }.beauty-service-row { grid-template-columns: 1fr auto; gap: 8px 18px; }.beauty-service-row p { grid-column: 1 / -1; grid-row: 2; }.beauty-service-meta { grid-column: 1; grid-row: 3; }.beauty-service-price { grid-column: 2; grid-row: 3; } }
@media (prefers-reduced-motion: reduce) { .beauty-reveal { opacity: 1; transform: none; transition: none; }.beauty-split-image img, .beauty-treatment { transition: none; } }

/* Lotus direction: lighter typography and an asymmetrical composition distinct from Restaurant. */
body.theme-beauty { font-family: 'Trebuchet MS', 'Helvetica Neue', sans-serif; }
body.theme-beauty h1, body.theme-beauty h2, body.theme-beauty h3 { font-family: 'Didot', 'Bodoni 72', 'Baskerville', serif; }
.beauty-eyebrow { color: var(--beauty-accent); }
.beauty-split-copy .beauty-eyebrow, .beauty-contact .beauty-eyebrow { color: #ff9aaa; }
.beauty-team { display: grid; grid-template-columns: 1fr 1fr; max-width: 1180px; margin: 0 auto; color: var(--beauty-ink); background: var(--beauty-soft); }
.beauty-team { max-width: none; width: 100%; }
.beauty-team-copy h2,
#studio h2 { color: var(--beauty-ink); }
.beauty-team-image { min-height: 500px; overflow: hidden; }
.beauty-team-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.78); transition: filter .4s ease, transform .8s ease; }
.beauty-team:hover .beauty-team-image img { filter: saturate(1); transform: scale(1.025); }
.beauty-team-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 7vw, 95px); }
.beauty-team-copy h2 { max-width: 560px; margin-top: 18px; font-size: clamp(3.3rem, 6vw, 6rem); }
.beauty-team-copy > p:not(.beauty-eyebrow) { max-width: 500px; margin-top: 28px; color: #6f6a64; font-size: 16px; line-height: 1.7; }
.beauty-team-members { display: grid; gap: 10px; margin-top: 35px; padding-top: 22px; border-top: 1px solid var(--beauty-line); color: var(--beauty-accent); font: 700 11px 'Trebuchet MS', sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.beauty-header, .beauty-services-page .beauty-header { position: relative; top: auto; left: auto; width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 82px 0 24px; color: var(--beauty-ink); transform: none; }
.beauty-header .beauty-button { min-height: 42px; padding: 0 18px; }
.beauty-hero { min-height: 0; color: var(--beauty-ink); background: var(--beauty-paper); }
.beauty-hero-inner { display: grid; grid-template-columns: .92fr 1.08fr; width: 100%; margin: 0; padding: 0; }
.beauty-hero-copy { display: flex; flex-direction: column; justify-content: center; max-width: none; margin: 0; padding: clamp(70px, 9vw, 145px) clamp(28px, 8vw, 120px); background: var(--beauty-soft); }
.beauty-hero-copy .beauty-eyebrow { color: var(--beauty-accent); }
.beauty-hero-copy h1 { color: var(--beauty-ink); font-size: clamp(4rem, 8vw, 8.2rem); }
.beauty-hero-copy > p:not(.beauty-eyebrow) { max-width: 390px; margin: 28px 0 0; color: #6f6a64; font-size: 17px; line-height: 1.65; }
.beauty-hero-image { position: relative; min-height: 650px; overflow: hidden; }
.beauty-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.78); transition: transform .9s ease, filter .4s ease; }
.beauty-hero-image:hover img { filter: saturate(1); transform: scale(1.025); }
.beauty-hero-image span { position: absolute; right: 24px; bottom: 22px; color: white; font: 10px Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.beauty-hero-copy .beauty-button.secondary { border-color: rgba(36,34,32,.32); color: var(--beauty-ink); }
.beauty-hero-copy .beauty-button.secondary:hover { background: rgba(36,34,32,.08); }
.beauty-section-heading { grid-template-columns: 1.2fr .8fr; gap: 70px; }
.beauty-treatment-grid { grid-template-columns: 1.15fr .85fr .85fr; margin-top: 64px; }
.beauty-treatment:first-child { min-height: 345px; background: var(--beauty-soft); }
.beauty-treatment:first-child h3 { font-size: 43px; }
.beauty-split { grid-template-columns: .88fr 1.12fr; }
.beauty-split-copy { order: 0; background: var(--beauty-deep); }
.beauty-split-image { order: 1; }
.beauty-gallery { grid-template-columns: .72fr 1.28fr; }
.beauty-gallery figure:first-child img { height: 360px; }
.beauty-gallery figure:last-child img { height: 510px; }
.beauty-services-hero { background: var(--beauty-soft); }

@media (max-width: 760px) {
  .beauty-header, .beauty-services-page .beauty-header { top: auto; left: auto; width: calc(100% - 28px); padding: 76px 0 22px; }
  .beauty-hero-inner { grid-template-columns: 1fr; }
  .beauty-hero-copy { padding: 70px 14px 78px; }
  .beauty-hero-copy h1 { font-size: clamp(4rem, 18vw, 7rem); }
  .beauty-hero-image { min-height: 430px; }
  .beauty-treatment-grid, .beauty-section-heading { grid-template-columns: 1fr; }
  .beauty-treatment:first-child { min-height: 260px; }
  .beauty-split { grid-template-columns: 1fr; }
  .beauty-split-copy, .beauty-split-image { order: initial; }
  .beauty-team { grid-template-columns: 1fr; margin: 0; }
  .beauty-team-image { min-height: 430px; }
  .beauty-team-copy { padding: 70px 14px 78px; }
  .beauty-gallery { grid-template-columns: 1fr; }
  .beauty-gallery figure:first-child img, .beauty-gallery figure:last-child img { height: 300px; }
}
