/* Small additions on top of the original live-site CSS. */
.makeup-hero.makeup-hero--quote { padding-bottom: 7rem; }
.makeup-hero.makeup-hero--quote .makeup-hero__copy { bottom: 1.5rem; }
.makeup-hero.makeup-hero--quote picture { display: block; position: relative; overflow: hidden; background: #0a0a0a; isolation: isolate; }
.makeup-hero.makeup-hero--quote picture:before,
.makeup-hero.makeup-hero--quote picture:after { content: ""; inset: 0; z-index: 1; pointer-events: none; position: absolute; }
.makeup-hero.makeup-hero--quote picture:before { background: linear-gradient(108deg,transparent 28%,rgba(255,255,255,.02) 42%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.025) 58%,transparent 72%); mix-blend-mode: screen; transform: translate3d(-105%,0,0); animation: hero-light-sweep 13s cubic-bezier(.55,.08,.42,.92) infinite; }
.makeup-hero.makeup-hero--quote picture:after { background: #fff; mix-blend-mode: screen; opacity: 0; animation: hero-camera-flash 13s linear infinite; }
.makeup-hero.makeup-hero--quote .makeup-hero__img { animation: hero-portrait-drift 16s ease-in-out infinite alternate; transform-origin: 50% 38%; will-change: transform,filter; }
.makeup-hero.makeup-hero--quote:after { z-index: 1; }
.makeup-hero.makeup-hero--makeup .makeup-hero__copy { transform: translateY(4.25rem); }
.makeup-hero.makeup-hero--makeup + .band { padding-top: 7.85rem; }
.home-h1 { clip: rect(0,0,0,0); white-space: nowrap; width: 1px; height: 1px; position: absolute; overflow: hidden; }
@keyframes hero-portrait-drift {
  0% { transform: scale(1.01) translate3d(-.18%,.12%,0); filter: brightness(.98) contrast(1.01); }
  48% { transform: scale(1.024) translate3d(.16%,-.18%,0); filter: brightness(1.015) contrast(1.025); }
  100% { transform: scale(1.014) translate3d(.3%,0,0); filter: brightness(.99) contrast(1.015); }
}
@keyframes hero-light-sweep {
  0%,12% { opacity: 0; transform: translate3d(-105%,0,0); }
  18% { opacity: .62; }
  34% { opacity: 0; transform: translate3d(105%,0,0); }
  100% { opacity: 0; transform: translate3d(105%,0,0); }
}
@keyframes hero-camera-flash {
  0%,57%,60%,100% { opacity: 0; }
  57.25% { opacity: .085; }
  57.7% { opacity: .008; }
  58.15% { opacity: .045; }
  58.7% { opacity: 0; }
}
@media (width>=800px) {
  .makeup-hero.makeup-hero--quote .makeup-hero__img {
    object-position: center;
    -webkit-mask-image: linear-gradient(180deg,#000 0%,#000 54%,rgba(0,0,0,.96) 61%,rgba(0,0,0,.72) 74%,rgba(0,0,0,.34) 87%,transparent 100%);
    mask-image: linear-gradient(180deg,#000 0%,#000 54%,rgba(0,0,0,.96) 61%,rgba(0,0,0,.72) 74%,rgba(0,0,0,.34) 87%,transparent 100%);
  }
  .makeup-hero.makeup-hero--quote:after { height: 60%; background: linear-gradient(180deg,rgba(10,10,10,0) 0%,rgba(10,10,10,.1) 34%,rgba(10,10,10,.42) 72%,#0a0a0a 100%); }
}
@media (width<=799px) {
  .makeup-hero.makeup-hero--quote .makeup-hero__img {
    -webkit-mask-image: linear-gradient(180deg,#000 0%,#000 56%,rgba(0,0,0,.94) 64%,rgba(0,0,0,.64) 77%,rgba(0,0,0,.26) 90%,transparent 100%);
    mask-image: linear-gradient(180deg,#000 0%,#000 56%,rgba(0,0,0,.94) 64%,rgba(0,0,0,.64) 77%,rgba(0,0,0,.26) 90%,transparent 100%);
  }
  .makeup-hero.makeup-hero--quote:after { height: 58%; background: linear-gradient(180deg,rgba(10,10,10,0) 0%,rgba(10,10,10,.12) 30%,rgba(10,10,10,.48) 72%,#0a0a0a 100%); }
}
@media (prefers-reduced-motion: reduce) {
  .makeup-hero.makeup-hero--quote .makeup-hero__img,
  .makeup-hero.makeup-hero--quote picture:before,
  .makeup-hero.makeup-hero--quote picture:after { animation: none; }
}
.edit-band { padding-top: 2.5rem; }
.edit-band .mgrid { margin-top: .75rem; }
.edit-band .mcard { min-height: 9rem; justify-content: space-between; }
.edit-band .mcard h3 { text-transform: none; letter-spacing: .02em; font-size: 1.05rem; }
.edit-band .mcard .meta { letter-spacing: .1em; text-transform: uppercase; font-size: .65rem; }
.edit-band .mcard p { color: #cfcbc6; }
.edit-band .mcard--light { color: #111; background: #f2f0ee; border-color: #f2f0ee; }
.edit-band .mcard--light h3, .edit-band .mcard--light p, .edit-band .mcard--light .meta { color: #111; }
.edit-band .mcard--light:hover { color: #111; background: #d9d5cf; border-color: #fff; }
.mini-link { color: #fff; text-underline-offset: .25em; margin-top: .55rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: underline; }
.page-intro { padding-top: 2.2rem; }
.page-intro h1 { color: #fff; margin-bottom: .65rem; font-size: clamp(2rem,4vw,3.3rem); }
.page-intro p { color: #f2f0ee; line-height: 1.7; }
.live-prose { max-width: 39rem; margin: 0 auto; }
.live-prose h2 { margin-top: 2.5rem; font-size: 1.65rem; }
.live-prose p, .live-prose li { color: #f2f0ee; line-height: 1.58; }
.live-prose ul { padding-left: 1.2rem; }
.live-prose .guide-price { color: #fff; margin: .3rem 0; font-size: 2.4rem; }
.quiz { max-width: 42rem; min-height: 70vh; }
.reading-page .page-main { width: min(100%,72rem); max-width: 72rem; margin-inline: auto; padding-left: 1.25rem; padding-right: 1.25rem; box-sizing: border-box; }
.reading-page #reading-app { margin-inline: auto; }
.reading-page .quiz-intro { width: 100%; text-align: center; }
.quiz h1 { color: #fff; margin: .4rem 0 1rem; font-size: clamp(2rem,4vw,3rem); }
.quiz h2 { color: #fff; font-size: 1.7rem; }
.quiz h3 { color: #fff; font-size: 1.05rem; }
.quiz p { color: #f2f0ee; }
.quiz .eyebrow, .quiz__step { color: #cfcbc6; letter-spacing: .14em; text-transform: uppercase; font-size: .68rem; }
.quiz-intro__rules, .result-principles { grid-template-columns: repeat(3,1fr); gap: .55rem; margin: 1.5rem 0; display: grid; }
.quiz-intro__rules div, .result-principles div { border: 1px solid #ffffff59; padding: .8rem; }
.quiz-intro__rules strong, .result-principles strong { color: #fff; margin-bottom: .25rem; font-weight: 300; display: block; }
.quiz-intro__rules span, .result-principles span { color: #cfcbc6; font-size: .78rem; line-height: 1.45; }
.progress { background: #ffffff2e; height: 1px; margin: .8rem 0 1.5rem; }
.progress span { background: #fff; height: 1px; display: block; }
.quiz__question { margin: 0 0 .8rem; }
.choices { gap: .55rem; display: grid; }
.choice { color: #fff; text-align: left; background: transparent; border: 1px solid #ffffff59; min-height: 44px; padding: .75rem .9rem; }
.choice span { color: #cfcbc6; margin-top: .2rem; font-size: .78rem; display: block; }
.choice[aria-pressed=true] { color: #111; background: #fff; border-color: #fff; }
.choice[aria-pressed=true] span { color: #333; }
.choice[aria-pressed=true]:before { content: "✓"; float: right; }
.quiz__controls, .result-actions { flex-wrap: wrap; gap: .5rem; margin-top: 1rem; display: flex; }
.quiz .button { color: #fff; letter-spacing: .12em; text-transform: uppercase; background: transparent; border: 1px solid #ffffff59; min-height: 38px; padding: 0 .85rem; font-size: .68rem; }
.quiz .button:hover, .quiz .button--solid { color: #111; background: #fff; border-color: #fff; }
.quiz .button--quiet { border-color: transparent; color: #cfcbc6; }
.quiz__error, .notice { color: #cfcbc6; min-height: 1.2rem; margin-top: .5rem; font-size: .75rem; }
.resume-card, .save-edit, .save-panel { border: 1px solid #ffffff59; margin: 1.35rem 0; padding: 1rem; }
.reading-page .resume-card { width: min(100%,34rem); margin: .35rem auto 1rem; padding: clamp(1rem,3vw,1.5rem); display: flex; flex-direction: column; align-items: center; text-align: center; }
.reading-page .resume-card > p { max-width: 30rem; margin-inline: auto; }
.reading-page .resume-card .button { margin-top: .35rem; }
.reading-page.reading-resume-state .editorial-hero { padding-bottom: 1rem; }
.reading-page.reading-resume-state .editorial-hero .hero-signature-home { height: 3rem; margin-bottom: 1rem; }
.reading-page.reading-resume-state .editorial-hero .makeup-wall-hero__eyebrow { margin-bottom: .4rem; }
.reading-page.reading-resume-state .editorial-hero h1 { font-size: clamp(2.3rem,5vw,4.1rem); line-height: .9; }
.reading-page.reading-resume-state .editorial-hero .lede { margin-top: .75rem; font-size: clamp(.78rem,1.2vw,.92rem); line-height: 1.5; }
.reading-page.reading-resume-state .page-main { padding-top: 1rem; }
.reading-page.reading-resume-state .appointment-tray-launch { display: none; }

@media (width<=799px) and (height<=650px) {
  .reading-page.reading-resume-state .editorial-hero { padding-top: 5.75rem; padding-bottom: .65rem; }
  .reading-page.reading-resume-state .editorial-hero .hero-signature-home { height: 2.4rem; margin-bottom: .55rem; }
  .reading-page.reading-resume-state .editorial-hero h1 { font-size: 2rem; }
  .reading-page.reading-resume-state .editorial-hero .lede { margin-top: .5rem; font-size: .74rem; line-height: 1.4; }
  .reading-page.reading-resume-state .page-main { padding-top: .65rem; }
}
.resume-card h2, .save-edit h2 { margin: .2rem 0 .45rem; }
.edit-progress { margin: .8rem 0 1.2rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.edit-progress span { min-height: 3rem; border: 1px solid #ffffff59; padding: .7rem .8rem; color: #cfcbc6; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; display: flex; align-items: center; gap: .6rem; }
.edit-progress span b { color: #fff; font-weight: 300; }
.edit-progress span.is-current { border-color: #fff; color: #fff; }
.edit-progress span.is-complete { border-color: #54777d; color: #fff; background: #54777d; }
.result-stage { scroll-margin-top: 1rem; }
.result-stage.is-complete { border-color: #54777d; box-shadow: inset 3px 0 0 #54777d; }
.stage-actions { display: flex; flex-wrap: wrap; gap: .5rem; padding-top: .8rem; border-top: 1px solid #ffffff2e; }
.save-edit { margin-top: 2rem; }
.save-status { color: #fff; margin: .75rem 0; padding: .65rem .75rem; border-left: 3px solid #54777d; background: #54777d24; font-size: .8rem; }
.save-panel > p { max-width: 36rem; }
.save-panel label { color: #fff; margin: 1.2rem 0 .4rem; display: block; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.save-email-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.save-email-row input { min-height: 44px; border: 1px solid #ffffff59; border-radius: 0; padding: .6rem .75rem; color: #fff; background: transparent; font: inherit; }
.save-email-row input::placeholder { color: #9e9a95; }
.result-profile { color: #111; background: #f2f0ee; margin: 1.2rem 0 0; padding: 1rem; }
.result-profile p, .result-profile .eyebrow { color: #111; }
.result-shelf { border: 1px solid #ffffff59; margin-top: 1.3rem; padding: 1rem; }
.product { border-top: 1px solid #ffffff2e; padding: 1rem 0; }
.product:first-of-type { margin-top: .8rem; }
.routine { margin-top: 2rem; }
.routine ol { padding: 0; list-style: none; counter-reset: steps; }
.routine li { border-top: 1px solid #ffffff2e; padding: .9rem 0 .9rem 2.7rem; position: relative; counter-increment: steps; }
.routine li:before { content: counter(steps,decimal-leading-zero); color: #cfcbc6; position: absolute; left: 0; top: 1rem; font-size: .68rem; }
.quiz--result { width: min(100%,72rem); max-width: 72rem; }
.quiz--result > .eyebrow,.quiz--result > .notice { text-align: center; }
.quiz--result .result-profile { max-width: 54rem; margin-inline: auto; padding: clamp(1.1rem,3vw,2rem); }
.quiz--result .result-profile h2 { margin: .25rem 0 .65rem; color: #111; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,4.8vw,3.65rem); font-weight: 400; letter-spacing: -.045em; line-height: .98; }
.quiz--result .result-principles { max-width: 54rem; margin-inline: auto; }
.result-plan { margin-top: clamp(2.8rem,7vw,5.5rem); text-align: left; }
.result-plan > header { max-width: 48rem; margin: 0 auto 1.2rem; text-align: center; }
.result-plan > header h2,.product-checklist h2,.routine-order h2,.verified-gaps h2 { margin: .2rem 0 .7rem; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.2rem,5.8vw,4.5rem); font-weight: 400; letter-spacing: -.05em; line-height: .94; }
.result-plan > header > p:not(.eyebrow) { max-width: 42rem; margin: .7rem auto 0; line-height: 1.7; }
.plan-gap-note { margin: .9rem auto 0!important; padding: .75rem .9rem; border: 1px solid rgba(255,255,255,.24); color: #d9d4cf!important; font-size: .78rem; }
.routine-exception { max-width: 42rem; margin: 1rem auto 0; padding: 1rem; border-left: 2px solid #9eb8bd; background: rgba(4,10,12,.58); }
.routine-exception strong { color: #fff; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.routine-exception p { margin: .45rem 0 0; color: #d5d1cc; font-size: .78rem; line-height: 1.55; }
.routine-product-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,15.5rem),1fr)); gap: .8rem; align-items: stretch; }
.complete-plan { margin-top: clamp(1.8rem,4vw,3rem); }
.complete-plan .routine-product-grid { grid-template-columns: repeat(var(--plan-count),minmax(0,1fr)); gap: .65rem; }
.complete-plan__finish { max-width: 54rem; margin: 1rem auto 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.22); color: #d9d4cf; font-size: .78rem; line-height: 1.65; text-align: center; }
.complete-plan__finish strong { color: #fff; font-weight: 400; }
.complete-plan__recommendation { margin: .65rem 0 0; color: #fff; text-align: center; }
.complete-plan__recommendation span { display: block; color: #d9d4cf; font-family: Georgia,"Times New Roman",serif; font-size: 1rem; line-height: 1.55; }
.complete-plan__recommendation a { margin-top: .55rem; color: #fff; display: inline-block; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; text-underline-offset: .2em; }
.complete-plan__blocker { max-width: 44rem; margin: 0 auto; padding: clamp(1.1rem,3vw,1.7rem); border: 1px solid rgba(255,255,255,.3); background: rgba(5,9,11,.76); text-align: center; }
.complete-plan__blocker strong { color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.5rem,3vw,2.2rem); font-weight: 400; }
.complete-plan__blocker p { margin: .7rem 0 0; color: #d9d4cf; font-size: .78rem; line-height: 1.65; }
.complete-plan__blocker .button { margin-top: 1rem; display: inline-flex; }
.complete-plan__context { max-width: 48rem; margin: 0 auto 1.2rem; padding: .95rem 1rem; border-left: 2px solid #9eb8bd; background: rgba(4,10,12,.58); }
.complete-plan__context > div + div { margin-top: .85rem; padding-top: .85rem; border-top: 1px solid rgba(255,255,255,.16); }
.complete-plan__context strong { color: #fff; font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; }
.complete-plan__context p { margin: .35rem 0 0; color: #d5d1cc; font-size: .75rem; line-height: 1.55; }
.routine-product-grid:empty { display: none; }
.routine-product-card { min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.25); background: #eee9e1; color: #171717; display: flex; flex-direction: column; text-align: left; text-shadow: none; }
.routine-product-card__image { min-height: 18rem; padding: 1.4rem; overflow: hidden; background: #fff; display: grid; place-items: center; }
.routine-product-card__image img { width: 100%; height: 16rem; object-fit: contain; transition: transform .25s ease; }
.routine-product-card__image:hover img,.routine-product-card__image:focus-visible img { transform: scale(1.025); }
.routine-product-card__copy { min-height: 100%; padding: 1rem; display: flex; flex: 1; flex-direction: column; }
.routine-product-card__meta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; color: #5b5550; font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; }
.routine-product-card__meta b { padding: .28rem .4rem; border: 1px solid #aaa198; font-weight: 400; }
.routine-product-card__family { margin: .85rem 0 .3rem; color: #6d665f!important; font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.routine-product-card h3 { margin: 0 0 .65rem; color: #171717; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.45rem,2.6vw,2rem); font-weight: 400; line-height: 1.03; }
.routine-product-card__copy > p:not(.routine-product-card__family) { margin: 0 0 .7rem; color: #3f3a36; font-size: .75rem; line-height: 1.55; }
.routine-product-card__copy small { margin-bottom: 1rem; color: #655f59; font-size: .68rem; line-height: 1.55; }
.routine-product-card__shop { min-height: 2.65rem; margin-top: auto; padding: .7rem; border: 1px solid #292723; color: #171717; display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-size: .62rem; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.routine-product-card__shop:hover,.routine-product-card__shop:focus-visible { background: #171717; color: #fff; }
.complete-plan .routine-product-card__image { min-height: clamp(11rem,17vw,15rem); padding: 1rem; }
.complete-plan .routine-product-card__image img { height: clamp(10rem,15vw,13.5rem); }
.complete-plan .routine-product-card__copy { padding: .85rem; }
.complete-plan .routine-product-card__family { margin-top: .7rem; }
.complete-plan .routine-product-card h3 { font-size: clamp(1.15rem,1.8vw,1.65rem); }
.routine-gap-card { min-width: 0; padding: 1.2rem; border: 1px dashed rgba(255,255,255,.42); background: rgba(5,9,11,.72); text-align: left; }
.routine-gap-card > div { display: flex; align-items: center; justify-content: space-between; gap: .75rem; color: #c8d9dc; font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; }
.routine-gap-card > div b { font-weight: 400; }
.routine-gap-card h3 { margin: 1.1rem 0 .65rem; font-family: Georgia,"Times New Roman",serif; font-size: 1.85rem; font-weight: 400; }
.routine-gap-card p { color: #e2ded9; font-size: .78rem; line-height: 1.65; }
.routine-gap-card small { color: #bdb8b2; display: block; font-size: .7rem; line-height: 1.6; }
.routine-gap-card a { min-height: 2.65rem; margin-top: 1rem; padding: .7rem; border: 1px solid rgba(255,255,255,.42); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .62rem; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.product-checklist,.routine-order,.verified-gaps { margin-top: clamp(3rem,7vw,5.5rem); padding: clamp(1rem,3vw,1.6rem); border: 1px solid rgba(255,255,255,.28); background: rgba(5,9,11,.72); text-align: center; }
.product-checklist > div { margin-top: 1.2rem; }
.product-checklist article { min-width: 0; padding: .8rem 0; border-top: 1px solid rgba(255,255,255,.18); display: grid; grid-template-columns: 7rem minmax(0,1fr) auto; align-items: center; gap: .75rem; text-align: left; }
.product-checklist article span,.product-checklist article b { color: #aebdc0; font-size: .58rem; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; }
.product-checklist article strong { color: #fff; font-size: .78rem; font-weight: 300; line-height: 1.45; }
.routine-order { text-align: left; }
.routine-order > .eyebrow,.routine-order > h2 { text-align: center; }
.routine-order li h3 { margin: 0 0 .35rem; font-family: Georgia,"Times New Roman",serif; font-size: 1.25rem; font-weight: 400; }
.routine-order li p { color: #d4d0cb; font-size: .75rem; line-height: 1.6; }
.routine-order li p strong { color: #fff; font-weight: 400; }
.verified-gaps p:not(.eyebrow) { max-width: 45rem; margin: .65rem auto 0; color: #d6d1cc; font-size: .78rem; line-height: 1.65; }
.result-training-callout { max-width: 54rem; margin: clamp(2.3rem,6vw,4.5rem) auto 0; padding: clamp(1.4rem,4vw,2.5rem); border: 1px solid rgba(255,255,255,.38); background: linear-gradient(145deg,rgba(8,14,16,.95),rgba(25,35,37,.88)); box-shadow: 0 1.25rem 3rem rgba(0,0,0,.28); text-align: center; }
.result-training-callout h2 { margin: .35rem 0 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,5vw,3.6rem); font-weight: 400; line-height: 1; }
.result-training-callout > p:not(.eyebrow) { max-width: 46rem; margin: 1rem auto 0; color: #ddd8d2; font-size: clamp(.78rem,1.4vw,.9rem); line-height: 1.75; }
.result-training-callout .result-training-callout__review { color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(.95rem,1.8vw,1.15rem); }
.result-training-callout .button { min-height: 2.85rem; margin-top: 1.35rem; padding: .72rem 1.1rem; display: inline-flex; align-items: center; justify-content: center; text-align: center; line-height: 1.15; }
.result-training-callout .button > span { display: block; text-align: center; }
.result-cross-service { max-width: 42rem; margin: 1.25rem auto 0; padding: 1.1rem 0 0; border-top: 1px solid rgba(255,255,255,.24); text-align: center; }
.result-cross-service h3 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.25rem,2.4vw,1.75rem); font-weight: 400; line-height: 1.15; }
.result-cross-service p { margin: .45rem 0 0; color: #d5d0cb; font-size: .76rem; line-height: 1.6; }
.result-cross-service a { margin-top: .65rem; display: inline-block; color: #fff; border-bottom: 1px solid rgba(255,255,255,.58); font-size: .58rem; letter-spacing: .12em; line-height: 1.5; text-decoration: none; text-transform: uppercase; }
.result-cross-service a:hover,.result-cross-service a:focus-visible { border-bottom-color: #fff; outline: 2px solid #fff; outline-offset: 4px; }
@media (width<=799px) {
  .quiz--result { width: 100%; }
  .routine-product-grid { grid-template-columns: 1fr; }
  .complete-plan .routine-product-grid { grid-template-columns: 1fr; }
  .routine-product-card__image { min-height: 14rem; }
  .routine-product-card__image img { height: 12rem; }
  .product-checklist article { grid-template-columns: 5.3rem minmax(0,1fr); }
  .product-checklist article b { grid-column: 2; }
}
.faq { max-width: 42rem; margin: 2rem auto 0; text-align: left; }
.faq details { border-top: 1px solid #ffffff2e; }
.faq details:last-child { border-bottom: 1px solid #ffffff2e; }
.faq summary { color: #fff; cursor: pointer; padding: .9rem 0; }
.faq p { color: #cfcbc6; padding-bottom: .9rem; font-size: .88rem; }
.legal { max-width: 42rem; margin: 0 auto; padding: 6rem 1.2rem 2rem; }
.legal h1 { color: #fff; font-size: 2.4rem; }
.legal h2 { color: #fff; margin-top: 2rem; font-size: 1.35rem; }
.legal p { color: #f2f0ee; line-height: 1.65; }
.foot { padding-top: 2rem; padding-bottom: 5rem; }
.foot .sig__mark { width: 8.5rem; height: 4rem; }
.foot address { align-items: center; display: flex; flex-wrap: wrap; gap: .3rem 1rem; justify-content: center; margin-top: .35rem; }
.foot address span { flex: 0 0 100%; }
.foot address span { font-size: clamp(.67rem, 2.5vw, 1rem); white-space: nowrap; }
.foot address a, .foot address span { margin-top: 0; }
.foot address .ig { align-items: center; color: #fff; display: inline-flex; justify-content: center; transform: translateY(-.22rem); width: 1.65rem; height: 1.65rem; }
.foot address .ig svg { fill: none; stroke: currentColor; stroke-width: 1.5; width: 1.25rem; height: 1.25rem; }
.foot address .ig .ig__dot { fill: currentColor; stroke: none; }
.foot > .review-btn { margin-top: .75rem; }
.foot-privacy { margin: .65rem 0 0; }

/* unLTD. store */
.store-page { overflow-x: clip; background: #0a0a0a; color: #f6f1e8; }
.store-announcement { min-height: 2.65rem; padding: .42rem max(2.9rem,5vw) .42rem 5vw; border-bottom: 1px solid #ffffff26; background: #54777d; color: #f6f1e8; position: relative; z-index: 3; }
.store-announcement[hidden] { display: none; }
.store-announcement a { min-height: 1.8rem; display: flex; align-items: center; justify-content: center; gap: clamp(.6rem,2vw,1.8rem); color: inherit; text-align: center; }
.store-announcement span,.store-announcement em { font-size: .58rem; font-style: normal; letter-spacing: .18em; text-transform: uppercase; }
.store-announcement strong { font-family: "Cormorant Garamond",serif; font-size: clamp(1rem,2vw,1.35rem); font-weight: 600; letter-spacing: .01em; }
.store-announcement button { width: 2rem; height: 2rem; border: 0; background: transparent; color: inherit; position: absolute; top: 50%; right: 1rem; transform: translateY(-50%); font-size: 1.35rem; line-height: 1; cursor: pointer; }
.store-announcement--home { margin-top: 0; }
.store-hero { min-height: min(880px,92vh); overflow: hidden; position: relative; display: flex; align-items: flex-end; }
.store-hero__image { inset: 0; width: 100%; height: 100%; object-fit: cover; position: absolute; filter: saturate(.7) contrast(1.02); }
.store-hero__veil { inset: 0; position: absolute; background: linear-gradient(90deg,rgba(5,5,5,.9) 0%,rgba(5,5,5,.6) 38%,rgba(5,5,5,.12) 72%),linear-gradient(0deg,rgba(5,5,5,.76),transparent 58%); }
.store-hero__marks { top: clamp(6rem,10vw,9rem); left: 5vw; right: 5vw; z-index: 1; position: absolute; display: flex; align-items: center; justify-content: space-between; }
.store-hero__marks img { width: clamp(10rem,18vw,18rem); opacity: .9; }
.store-hero__marks span { font-size: clamp(2rem,6vw,5.8rem); font-weight: 200; letter-spacing: -.07em; }
.store-hero__copy { width: min(90%,42rem); z-index: 2; position: relative; padding: 0 0 clamp(3rem,7vw,6rem) 5vw; }
.store-kicker { color: #d6cfc4; margin: 0 0 .75rem; font-size: .64rem; letter-spacing: .22em; text-transform: uppercase; }
.store-hero h1 { font-size: clamp(3.3rem,8.5vw,8rem); font-weight: 200; line-height: .82; letter-spacing: -.07em; }
.store-hero h1 em { color: #f6f1e8; font-style: normal; }
.store-hero__copy > p:not(.store-kicker) { max-width: 33rem; margin: 1.35rem 0 0; color: #e3ded6; font-size: clamp(.95rem,1.5vw,1.15rem); line-height: 1.65; }
.store-cta { min-height: 44px; margin-top: 1.6rem; padding: .72rem 1rem; border: 1px solid #f6f1e8; display: inline-flex; align-items: center; color: #f6f1e8; font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; }
.store-cta:hover { color: #111; background: #f6f1e8; }
.store-manifesto { width: min(90%,68rem); margin: 0 auto; padding: clamp(4rem,10vw,8rem) 0; text-align: center; }
.store-manifesto__line { margin: 1.2rem 0; display: flex; align-items: center; justify-content: center; gap: clamp(.7rem,2.5vw,2.5rem); }
.store-manifesto__line b { font-weight: 200; opacity: .55; }
.store-script { font-family: "Mrs Saint Delafield",cursive; font-size: clamp(3.5rem,10vw,8rem); line-height: .8; }
.store-stamp { font-size: clamp(2.4rem,8vw,6.7rem); font-weight: 200; letter-spacing: -.08em; }
.store-manifesto > p:last-child { max-width: 44rem; margin: 1.5rem auto 0; color: #c9c3ba; line-height: 1.7; }
.store-drop { padding: 0 0 clamp(4rem,10vw,8rem); }
.store-section-head { width: min(90%,68rem); margin: 0 auto 2rem; }
.store-section-head h2 { color: #f6f1e8; font-size: clamp(2.7rem,7vw,6rem); font-weight: 200; letter-spacing: -.06em; }
.store-section-head > p:last-child { max-width: 46rem; color: #bbb5ac; line-height: 1.65; }
.store-product { width: min(92%,78rem); margin: 0 auto 2rem; background: #efe8dc; color: #151412; display: grid; grid-template-columns: minmax(0,1.65fr) minmax(17rem,.72fr); }
.store-product--reverse { grid-template-columns: minmax(17rem,.72fr) minmax(0,1.65fr); }
.store-product--reverse img { grid-column: 2; }
.store-product--reverse .store-product__copy { grid-column: 1; grid-row: 1; }
.store-product img { width: 100%; height: 100%; min-height: 30rem; object-fit: cover; }
.store-product__copy { padding: clamp(1.6rem,4vw,3.6rem); display: flex; justify-content: center; flex-direction: column; }
.store-product__copy .store-kicker { color: #655f57; }
.store-product h3 { font-family: "Cormorant Garamond",serif; font-size: clamp(2.1rem,4.5vw,4rem); font-weight: 500; line-height: .95; }
.store-product__copy > p:not(.store-kicker) { margin-top: 1.2rem; color: #514c46; line-height: 1.65; }
.store-status { margin-top: 2rem; padding-top: .7rem; border-top: 1px solid #bdb3a5; color: #49443e; font-size: .63rem; letter-spacing: .16em; text-transform: uppercase; }
.store-campaigns { padding: clamp(4rem,9vw,7rem) 0; background: #f0e9de; color: #151412; }
.store-campaigns .store-section-head h2 { color: #151412; }
.store-campaigns .store-section-head > p:last-child { color: #5d574f; }
.store-campaigns .store-kicker { color: #655f57; }
.store-campaign-grid { width: min(90%,68rem); margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; }
.store-campaign { min-height: clamp(22rem,38vw,31rem); padding: clamp(1.5rem,4vw,3.2rem); display: flex; flex-direction: column; border: 1px solid #151412; }
.store-campaign span { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; }
.store-campaign h3 { max-width: 34rem; margin-top: auto; font-family: "Cormorant Garamond",serif; font-size: clamp(2.4rem,5vw,4.7rem); font-weight: 500; line-height: .9; }
.store-campaign p { max-width: 28rem; margin-top: 1.2rem; line-height: 1.65; }
.store-campaign b { margin-top: 1.6rem; font-size: .66rem; font-weight: 300; letter-spacing: .14em; text-transform: uppercase; }
.store-campaign--ink { color: #f5efe6; background: #0a0a0a; border-color: #0a0a0a; }
.store-campaign--ink p,.store-campaign--ink span { color: #c5beb4; }
.store-campaign--paper { color: #151412; background: transparent; }
.store-shelf { padding: clamp(4rem,9vw,7rem) 0; color: #151412; background: #e8e1d6; }
.store-shelf .store-section-head h2 { color: #151412; }
.store-shelf .store-section-head > p:last-child { color: #5d574f; }
.store-shelf .store-kicker { color: #54777d; }
.store-shelf__routine { width: min(90%,68rem); margin: 0 auto 1.6rem; padding: .9rem 0; border-top: 1px solid #aaa195; border-bottom: 1px solid #aaa195; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; color: #4c4842; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.store-shelf__routine span:nth-child(2) { text-align: center; }
.store-shelf__routine span:last-child { text-align: right; }
.store-shelf__tabs { width: min(90%,68rem); margin: 0 auto 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.store-shelf__tabs button { min-height: 42px; padding: .65rem .85rem; border: 1px solid #777067; color: #292724; background: transparent; cursor: pointer; font: inherit; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.store-shelf__tabs button:hover,.store-shelf__tabs button:focus-visible,.store-shelf__tabs button.is-active { border-color: #54777d; color: #f6f1e8; background: #54777d; outline: none; }
.store-shelf__frame { width: min(94%,78rem); min-height: 43rem; margin: 0 auto; border: 1px solid #b7aea1; position: relative; overflow: hidden; background: #fff; }
.store-shelf__frame iframe { width: 100%; height: 48rem; border: 0; display: block; background: #fff; }
.store-shelf__loading { inset: 0; z-index: 1; position: absolute; display: grid; place-items: center; color: #655f57; background: #efe8dc; font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; transition: opacity .2s ease; pointer-events: none; }
.store-shelf__frame.is-loaded .store-shelf__loading { opacity: 0; }
.store-shelf__foot { width: min(90%,68rem); margin: 1.25rem auto 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.store-shelf__foot p { max-width: 43rem; color: #5a554e; font-size: .76rem; line-height: 1.65; }
.store-shelf__foot strong { color: #2e2b27; font-weight: 400; }
.store-shelf__foot a { flex: 0 0 auto; color: #2e2b27; border-bottom: 1px solid #54777d; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.store-links { padding: clamp(4rem,9vw,7rem) 0; background: #151515; }
.store-link-grid { width: min(90%,68rem); margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.store-link-card { min-height: 23rem; padding: clamp(1.4rem,4vw,3rem); border: 1px solid #ffffff40; display: flex; flex-direction: column; color: #f6f1e8; }
.store-link-card span { color: #aaa49b; font-size: .62rem; letter-spacing: .18em; }
.store-link-card h3 { margin-top: auto; font-family: "Cormorant Garamond",serif; font-size: clamp(2.2rem,4vw,3.8rem); font-weight: 500; line-height: 1; }
.store-link-card p { max-width: 26rem; margin-top: 1rem; color: #c9c3ba; line-height: 1.6; }
.store-link-card b { margin-top: 1.4rem; font-size: .68rem; font-weight: 300; letter-spacing: .14em; text-transform: uppercase; }
.store-link-card--light { background: #efe8dc; border-color: #efe8dc; color: #151412; }
.store-link-card--light span,.store-link-card--light p { color: #5e5850; }
.store-first-access { width: min(90%,68rem); margin: 0 auto; padding: clamp(4rem,9vw,7rem) 0; display: grid; grid-template-columns: minmax(12rem,.7fr) minmax(0,1fr); gap: 3rem; align-items: center; }
.store-first-access img { width: 100%; }
.store-first-access h2 { color: #f6f1e8; font-size: clamp(2.4rem,6vw,5rem); font-weight: 200; letter-spacing: -.06em; }
.store-first-access div > p:not(.store-kicker) { max-width: 32rem; margin-top: 1rem; color: #bbb5ac; line-height: 1.65; }
.store-cta--light { color: #111; background: #f6f1e8; }
.store-cta--light:hover { color: #f6f1e8; background: transparent; }

/* L’Oréal Professionnel is presented as a native unLTD edit; checkout stays on SalonInteractive. */
.shop-page { overflow-x: clip; background: #050505; }
.shop-page .site { z-index: 1; position: relative; background: transparent; }
.shop-motion-bg:after { background: linear-gradient(180deg,rgba(0,0,0,.76),rgba(3,8,11,.58) 34%,rgba(0,5,8,.72) 70%,rgba(0,0,0,.9)); }
.shop-motion-bg .home-wall-stage { inset: -13vh -2.5vw; gap: clamp(.15rem,.8vw,.7rem); filter: saturate(.72) contrast(1.08) brightness(.78); }
.shop-motion-bg .home-wall-column { overflow: visible; background: #071014; }
.shop-motion-bg .home-wall-track { animation-duration: 86s; }
.shop-motion-bg .home-wall-column:nth-child(2) .home-wall-track { animation-duration: 97s; }
.shop-motion-bg .home-wall-column:nth-child(3) .home-wall-track { animation-duration: 91s; }
.shop-motion-bg .home-wall-track img { width: 100%; height: clamp(10rem,17vw,16rem); min-height: 0; margin: 0 0 clamp(.4rem,.7vw,.7rem); padding: 0; position: relative; flex: none; display: block; object-fit: cover; object-position: 72% 50%; border: 1px solid rgba(194,221,229,.32); opacity: .7; background: linear-gradient(135deg,#829399,#c1cbcd); box-shadow: 0 .75rem 1.8rem rgba(0,0,0,.48); filter: saturate(.7) contrast(1.04) brightness(.82); }
.shop-motion-bg .home-wall-column:nth-child(1) .home-wall-track img { object-position: 70% 50%; }
.shop-motion-bg .home-wall-column:nth-child(2) .home-wall-track img { object-position: 73% 50%; }
.shop-motion-bg .home-wall-column:nth-child(3) .home-wall-track img { object-position: 68% 50%; }
.salon-shop { position: relative; z-index: 1; padding-bottom: clamp(2.5rem,6vw,5rem); }
.shop-hero { position: relative; z-index: 2; }
.shop-hero h1 { max-width: 15ch; }
.shop-hero .lede { max-width: 38rem; }
.shop-browse { width: min(92%,72rem); margin: 0 auto; padding: clamp(1rem,3vw,2.5rem) 0 clamp(3.25rem,7vw,6rem); position: relative; z-index: 2; color: #fff; }
.shop-browse__intro { width: min(100%,48rem); margin: 0 auto clamp(1.4rem,3vw,2.2rem); text-align: center; }
.shop-browse__intro > p { margin: 0 0 .5rem; color: #bcd0d6; font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; }
.shop-browse__intro h2 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.4rem,5.5vw,5rem); font-weight: 400; letter-spacing: -.05em; line-height: .92; }
.shop-browse__intro > span { max-width: 39rem; margin: .9rem auto 0; display: block; color: #d2d5d6; font-size: .76rem; line-height: 1.65; }
.shop-browse__columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(.8rem,2vw,1.35rem); align-items: start; }
.browse-column { min-width: 0; }
.browse-column > h3 { margin: 0 0 .65rem; padding: 0 0 .55rem; border-bottom: 1px solid rgba(197,216,222,.4); color: #edf3f4; font-size: .64rem; font-weight: 300; letter-spacing: .19em; text-transform: uppercase; }
.browse-story-list { display: grid; gap: .6rem; }
.browse-story { min-height: 6.8rem; position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; border: 1px solid rgba(214,229,233,.24); color: #fff; background: #12171a; text-decoration: none; box-shadow: 0 .85rem 2.3rem rgba(0,0,0,.18); transition: transform .22s ease,border-color .22s ease; }
.browse-story:before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(3,8,11,.12) 0%,rgba(3,8,11,.18) 48%,rgba(0,3,5,.68) 100%); }
.browse-story:after { content: none; }
.browse-story:nth-child(3n+2) { background: #182126; }
.browse-story:nth-child(3n) { background: #10171b; }
.browse-story__art { position: absolute; z-index: 0; inset: 0; overflow: hidden; background: linear-gradient(128deg,#11181c,#53636a); }
.browse-story__art img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .28s ease,filter .28s ease; }
.browse-story__art--product { background: linear-gradient(112deg,#10171b 0%,#4f6268 100%); }
.browse-story__art--product img { object-fit: contain; object-position: 76% 50%; mix-blend-mode: multiply; filter: saturate(.8) contrast(1.12) brightness(.92); transform: scale(.92); }
.browse-story__label { width: 100%; min-width: 0; padding: .4rem .8rem .6rem; position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; border: 0; color: #fff; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; text-shadow: 0 1px 10px rgba(0,0,0,.96); }
.browse-story__label strong { display: block; font-family: Poppins,"Century Gothic",Helvetica,sans-serif; font-size: .95rem; font-weight: 300; letter-spacing: 0; line-height: 1.25; text-transform: none; text-wrap: balance; }
.browse-story__label small { margin-top: .55rem; color: #d5e2e5; font-size: .49rem; letter-spacing: .13em; line-height: 1.4; text-transform: uppercase; }
.browse-story__label i { font-style: normal; }
.browse-story:hover,.browse-story:focus-visible { border-color: rgba(236,248,250,.88); transform: translateY(-2px); outline: 2px solid #fff; outline-offset: 3px; }
.browse-story:hover .browse-story__label,.browse-story:focus-visible .browse-story__label { border: 0; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.browse-story:hover .browse-story__art img,.browse-story:focus-visible .browse-story__art img { filter: brightness(1.04); transform: scale(1.025); }
.browse-story:hover .browse-story__art--product img,.browse-story:focus-visible .browse-story__art--product img { filter: saturate(.85) contrast(1.12) brightness(.96); transform: scale(.95); }
.shop-browse__utilities { margin-top: 1.1rem; display: flex; justify-content: center; flex-wrap: wrap; gap: .55rem; }
.shop-browse__utilities a { min-height: 2.75rem; padding: .7rem 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; border: 1px solid rgba(219,233,237,.38); color: #f0f5f6; background: rgba(11,16,18,.5); font-size: .54rem; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.shop-browse__utilities a:hover,.shop-browse__utilities a:focus-visible { color: #101517; background: #eef5f6; outline: 2px solid #fff; outline-offset: 3px; }
.shop-full-store { min-height: 5.7rem; margin-top: .65rem; }
.shop-full-store .browse-story__label { width: 100%; }
.shop-browse__assessment { margin: .95rem 0 0; color: #aeb9bc; font-size: .63rem; line-height: 1.6; text-align: center; }
.shop-browse__assessment a { color: #e8f0f1; text-underline-offset: .25em; }
.foot.foot--stacked { z-index: 1; position: relative; background: transparent; box-shadow: none; text-shadow: 0 2px 18px rgba(0,0,0,.92); }
.foot.foot--stacked:before { content: ""; inset: 0; z-index: -1; pointer-events: none; position: absolute; background: linear-gradient(180deg,rgba(4,4,4,0),rgba(4,4,4,.2)); }
.foot.foot--stacked { width: min(88%,42rem); margin: 0 auto; padding: 2.2rem 0 6rem; display: grid; grid-template-columns: 1fr; grid-template-areas: "signature" "contact" "signup" "privacy"; justify-items: center; row-gap: .25rem; text-align: center; }
.foot.foot--stacked .sig { grid-area: signature; justify-self: center; }
.foot.foot--stacked .sig__mark { width: 9.5rem; height: 4.25rem; }
.shop-page .foot.foot--stacked .sig { flex-direction: column; gap: 0; }
.shop-page .foot.foot--stacked .sig__suffix { margin-top: -.45rem; color: #fff; font-size: .72rem; letter-spacing: .2em; line-height: 1; }
.foot.foot--stacked address { grid-area: contact; margin: -.2rem 0 0; display: grid; justify-items: center; gap: .45rem; text-align: center; }
.foot.foot--stacked address a,.foot.foot--stacked address span { width: max-content; max-width: 100%; margin: 0; }
.foot.foot--stacked address .ig { width: 1.65rem; height: 1.65rem; margin: 0; transform: none; }
.foot.foot--stacked address .address-link { color: #cfcbc6; white-space: normal; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.42); padding-bottom: .12rem; }
.foot.foot--stacked address .address-link:hover,.foot.foot--stacked address .address-link:focus-visible { color: #fff; border-bottom-color: #fff; }
.foot.foot--stacked .foot-privacy { grid-area: privacy; margin: .65rem 0 0; display: flex; gap: .8rem; font-size: .5rem; letter-spacing: .08em; opacity: .48; }
.foot.foot--stacked .foot-privacy a { color: #fff; text-decoration: none; }
.foot.foot--stacked .text-signup { grid-area: signup; width: min(100%,31rem); margin: 1.55rem auto .45rem; padding: 1.2rem 1.25rem 1.1rem; border: 1px solid rgba(255,255,255,.2); border-radius: 1.15rem; background: rgba(8,8,8,.18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); text-align: center; }
.text-signup__eyebrow { margin: 0 0 .35rem; color: #cfcbc6; font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; }
.text-signup__offer { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.05rem,2.6vw,1.35rem); line-height: 1.3; }
.text-signup__offer strong { font-weight: 400; }
.text-signup__button { margin: .85rem auto .65rem; padding: .72rem 1rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: #fff; font-size: .68rem; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease,color .2s ease; }
.text-signup__button:hover,.text-signup__button:focus-visible { color: #080808; background: #fff; }
.text-signup__number { margin: 0; color: #e4e0db; font-size: .68rem; letter-spacing: .03em; }
.text-signup__number a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.text-signup__legal { max-width: 27rem; margin: .65rem auto 0; color: #c4bfb9; font-size: .5rem; line-height: 1.55; }
.shop-page > .site > .fixed { background: none; }
.shop-page > .site > .fixed .press { border: 1px solid rgba(255,255,255,.22); background: rgba(10,10,10,.34); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

/* Location choices sit inside the existing service cards; only verified formats link out. */
.makeup-page .service-card-formats { cursor: default; }
.makeup-page .service-card-formats:hover,.makeup-page .service-card-formats:focus-within { color: #f4f1ed; background: rgba(8,8,8,.38); border-color: rgba(255,255,255,.72); }
.service-format { width: 100%; margin-top: 1rem; border-top: 1px solid rgba(255,255,255,.23); color: #fff; }
.service-format summary { min-height: 2.8rem; padding: .7rem .1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; color: #fff; font-size: .57rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.service-format summary::-webkit-details-marker { display: none; }
.service-format summary:after { content: "+"; color: #c8dde1; font-size: 1rem; font-weight: 200; line-height: 1; }
.service-format[open] summary:after { content: "−"; }
.service-format summary:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.service-format__options { padding: .2rem 0 .1rem; display: grid; gap: .45rem; }
.service-format__options > a,.service-format__pending { min-height: 3.25rem; padding: .7rem .8rem; display: flex; align-items: center; justify-content: space-between; gap: .8rem; border: 1px solid rgba(255,255,255,.38); color: #fff; background: rgba(255,255,255,.045); text-decoration: none; }
.service-format__options > a:hover,.service-format__options > a:focus-visible { color: #090909; background: #fff; outline: 2px solid #fff; outline-offset: 2px; }
.service-format__options > a > span,.service-format__pending > span { font-size: .68rem; letter-spacing: .04em; }
.service-format__options b { font-size: .49rem; font-weight: 300; letter-spacing: .12em; text-align: right; text-transform: uppercase; }
.service-format__pending { color: #aaa39c; border-color: rgba(255,255,255,.16); }
.service-format__pending b { color: #8f8882; }
.service-checkin { max-width: 48rem; margin: clamp(1.6rem,4vw,2.8rem) auto 0; padding: clamp(1rem,2.4vw,1.45rem) 0 0; border-top: 1px solid rgba(255,255,255,.24); color: #fff; text-align: center; }
.service-checkin h2 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.65rem,3.4vw,2.45rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; text-transform: none; }
.service-checkin p { max-width: 40rem; margin: .75rem auto 0; color: #d9d3cc; font-size: .75rem; line-height: 1.65; }
.service-checkin__link { margin-top: .85rem; display: inline-block; color: #fff; border-bottom: 1px solid rgba(255,255,255,.6); font-size: .56rem; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.service-checkin__link:hover,.service-checkin__link:focus-visible { border-bottom-color: #fff; outline: 2px solid #fff; outline-offset: 4px; }
#makeup-teaching,#choose-how-we-meet { scroll-margin-top: 5rem; }

/* Review-only on-demand check-in: two truthful paths, with no invented Square link. */
.now-offer { width: min(92%,70rem); margin: 0 auto; padding: clamp(2.5rem,6vw,5rem) 0 clamp(2.5rem,5vw,4rem); position: relative; z-index: 2; color: #fff; }
.now-offer__intro { width: min(100%,48rem); margin: 0 auto clamp(1.5rem,3vw,2.4rem); text-align: center; }
.now-offer__intro > p { margin: 0 0 .5rem; color: #c8dde1; font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; }
.now-offer__intro h2 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.25rem,5vw,4.7rem); font-weight: 400; letter-spacing: -.05em; line-height: .94; text-transform: none; }
.now-offer__intro > span { max-width: 38rem; margin: .85rem auto 0; display: block; color: #d8d2cb; font-size: .75rem; line-height: 1.65; }
.now-choice-actions { width: min(100%,46rem); margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; }
.now-choice { min-width: 0; min-height: 21rem; padding: 1.25rem; display: grid; grid-template-rows: auto 1fr auto; align-content: start; border: 1px solid rgba(255,255,255,.28); background: rgba(8,8,8,.38); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); text-align: center; }
.now-choice h3 { margin: .2rem 0 1rem; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.55rem,3vw,2.15rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; text-transform: none; }
.now-choice__actions { display: grid; grid-template-columns: 1fr; gap: .55rem; align-content: center; }
.now-choice__actions a,.now-choice__actions span { min-height: 3rem; padding: .55rem .35rem; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.58); color: #fff; background: rgba(255,255,255,.04); font-size: .52rem; letter-spacing: .12em; line-height: 1.35; text-decoration: none; text-transform: uppercase; }
.now-choice__actions a:hover,.now-choice__actions a:focus-visible { color: #080808; background: #fff; outline: 2px solid #fff; outline-offset: 2px; }
.now-choice__actions span { color: #8f8882; border-color: rgba(255,255,255,.18); cursor: not-allowed; }
.now-choice > small { margin-top: .75rem; color: #c7c1bb; font-size: .62rem; line-height: 1.55; }
.now-offer__payment { max-width: 38rem; margin: 1rem auto 0; color: #edf4f5; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.05rem,2.2vw,1.4rem); line-height: 1.35; text-align: center; }
.now-offer__note { max-width: 44rem; margin: 1rem auto 0; color: #aaa39c; font-size: .63rem; line-height: 1.65; text-align: center; }
.now-access-paths { width: min(92%,46rem); margin: clamp(1.4rem,4vw,2.5rem) auto 0; padding: 0; position: relative; z-index: 3; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.now-access-paths a { min-width: 0; min-height: 6.5rem; padding: 1rem; display: grid; grid-template-columns: auto minmax(0,1fr); grid-template-rows: auto auto; column-gap: .75rem; align-content: center; border: 1px solid rgba(255,255,255,.35); color: #fff; background: rgba(8,8,8,.18); box-shadow: 0 .85rem 2.3rem rgba(0,0,0,.18); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); text-decoration: none; }
.now-access-paths a:hover,.now-access-paths a:focus-visible { border-color: #fff; color: #fff; background: rgba(8,8,8,.38); box-shadow: 0 1rem 2.6rem rgba(0,0,0,.24); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); outline: 2px solid #fff; outline-offset: 3px; }
.now-access-paths span { grid-row: 1 / 3; align-self: center; color: #91a9ae; font-size: .5rem; letter-spacing: .12em; }
.now-access-paths strong { min-width: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.2rem,2.5vw,1.7rem); font-weight: 400; letter-spacing: -.03em; line-height: 1; }
.now-access-paths small { margin-top: .35rem; color: #bdb9b4; font-size: .57rem; line-height: 1.35; }
#access-choice,#one-time-access,#monthly-membership { scroll-margin-top: 5rem; }
.now-membership { width: min(92%,70rem); margin: 0 auto; padding: 0 0 clamp(4rem,9vw,7rem); position: relative; z-index: 2; color: #fff; }
.now-membership__frame { padding: clamp(1.35rem,4vw,3rem); border: 1px solid rgba(223,235,238,.32); background: linear-gradient(135deg,rgba(8,11,13,.92),rgba(21,30,34,.72)); box-shadow: 0 1.8rem 5rem rgba(0,0,0,.28); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.now-membership__intro { max-width: 52rem; margin: 0 0 clamp(1.6rem,3vw,2.5rem); }
.now-membership__intro > p { margin: 0 0 .55rem; color: #bcd4d9; font-size: .56rem; letter-spacing: .2em; text-transform: uppercase; }
.now-membership__intro h2 { max-width: 15ch; margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.55rem,5.5vw,5rem); font-weight: 400; letter-spacing: -.055em; line-height: .92; }
.now-membership__intro > span { max-width: 40rem; margin-top: .8rem; display: block; color: #d7d4cf; font-size: .76rem; line-height: 1.65; }
.now-membership__grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(17rem,.8fr); gap: clamp(1.25rem,3vw,2.5rem); align-items: start; }
.now-membership__copy h3 { max-width: 17ch; margin: 0 0 1rem; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.55rem,3vw,2.4rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.02; }
.now-membership__copy > p { max-width: 45rem; margin: 0; color: #d5d1cc; font-size: .74rem; line-height: 1.75; }
.now-membership__copy > p + p { margin-top: 1.2rem; }
.now-membership__uses { margin: 1.4rem 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; list-style: none; }
.now-membership__uses li { min-height: 3.25rem; padding: .7rem .85rem; display: flex; align-items: center; border: 1px solid rgba(222,235,239,.22); color: #edf4f5; background: rgba(255,255,255,.025); font-family: Georgia,"Times New Roman",serif; font-size: 1rem; line-height: 1.15; }
.now-membership__terms { min-width: 0; padding: 1.2rem; border: 1px solid rgba(221,234,238,.26); background: rgba(0,0,0,.28); }
.now-membership__terms > p { margin: 0 0 .8rem; color: #dbe9ec; font-size: .54rem; letter-spacing: .18em; text-transform: uppercase; }
.now-membership__terms dl { margin: 0; }
.now-membership__terms dl > div { padding: .8rem 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .8rem; border-top: 1px solid rgba(255,255,255,.13); }
.now-membership__terms dt,.now-membership__terms dd { margin: 0; font-size: .61rem; line-height: 1.45; }
.now-membership__terms dt { color: #dedbd6; }
.now-membership__terms dd { color: #8f9b9d; text-align: right; }
.now-membership__terms button { width: 100%; min-height: 3.15rem; margin-top: 1rem; padding: .7rem .8rem; border: 1px solid rgba(255,255,255,.2); color: #8f999b; background: rgba(255,255,255,.035); font: inherit; font-size: .5rem; letter-spacing: .12em; text-transform: uppercase; cursor: not-allowed; }
.now-membership__terms small { margin-top: .8rem; display: block; color: #9e9a95; font-size: .57rem; line-height: 1.55; }
.now-remote-scope { width: min(92%,70rem); margin: 0 auto; padding: clamp(2.25rem,5vw,4rem); position: relative; z-index: 2; border: 1px solid rgba(223,235,238,.28); color: #fff; background: linear-gradient(135deg,rgba(8,11,13,.9),rgba(21,30,34,.7)); }
.now-remote-scope header > p,.membership-remote-scope header > p { margin: 0 0 .55rem; color: #bcd4d9; font-size: .54rem; letter-spacing: .2em; text-transform: uppercase; }
.now-remote-scope h2,.membership-remote-scope h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,4.5vw,3.6rem); font-weight: 400; letter-spacing: -.05em; line-height: .95; }
.now-remote-scope header > span,.membership-remote-scope header > span { max-width: 42rem; margin-top: .8rem; display: block; color: #d5d1cc; font-size: .7rem; line-height: 1.65; }
.now-remote-scope ul,.membership-remote-scope ul { margin: 1.35rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; list-style: none; }
.now-remote-scope li,.membership-remote-scope li { min-height: 3.4rem; padding: .75rem; display: flex; align-items: center; border: 1px solid rgba(222,235,239,.22); color: #edf4f5; background: rgba(255,255,255,.025); font-family: Georgia,"Times New Roman",serif; font-size: 1rem; line-height: 1.15; }
.now-remote-scope small,.membership-remote-scope small { margin-top: 1rem; display: block; color: #aaa6a1; font-size: .57rem; line-height: 1.6; }
.now-member-links { width: min(92%,46rem); margin: .65rem auto 0; position: relative; z-index: 3; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.now-member-links a { min-height: 2.8rem; padding: .65rem .8rem; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(225,237,240,.25); color: #eef5f6; background: rgba(7,10,12,.66); font-size: .54rem; letter-spacing: .14em; text-align: center; text-decoration: none; text-transform: uppercase; }
.now-member-links a:hover,.now-member-links a:focus-visible { color: #111; background: #fff; outline: 2px solid #fff; outline-offset: 3px; }
#request-now,#plan-ahead,#member-access,#membership-options,#member-credit-checkout { scroll-margin-top: 5rem; }
.member-entry { width: min(92%,70rem); margin: 0 auto; padding: 0 0 clamp(4rem,9vw,7rem); position: relative; z-index: 2; color: #fff; }
.member-entry__frame { padding: clamp(1.35rem,4vw,3rem); border: 1px solid rgba(223,235,238,.32); background: linear-gradient(135deg,rgba(8,11,13,.94),rgba(21,30,34,.78)); box-shadow: 0 1.8rem 5rem rgba(0,0,0,.28); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.member-entry__frame > header { max-width: 48rem; }
.member-entry__frame > header > p,.membership-section-head > p,.membership-tier > p,.membership-access-grid article > p { margin: 0 0 .55rem; color: #bcd4d9; font-size: .54rem; letter-spacing: .2em; text-transform: uppercase; }
.member-entry__frame > header h2,.membership-section-head h2 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.45rem,5.5vw,4.8rem); font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.member-entry__frame > header > span,.membership-section-head > span { max-width: 42rem; margin-top: .8rem; display: block; color: #d5d1cc; font-size: .73rem; line-height: 1.65; }
.member-preview-switch { margin: 1.6rem 0 1rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.member-preview-switch button { min-height: 2.9rem; padding: .65rem; border: 1px solid rgba(255,255,255,.28); color: #c4c0bb; background: rgba(255,255,255,.025); font: inherit; font-size: .53rem; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
.member-preview-switch button[aria-pressed="true"] { color: #101517; border-color: #eef5f6; background: #eef5f6; }
.member-preview-switch button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.member-preview-view { padding: clamp(1rem,2.5vw,1.6rem); border: 1px solid rgba(222,235,239,.22); background: rgba(0,0,0,.24); }
.member-preview-view[hidden] { display: none; }
.member-preview-view__eyebrow { margin: 0 0 .5rem; color: #9eb9be; font-size: .52rem; letter-spacing: .17em; text-transform: uppercase; }
.member-preview-view h3,.membership-tier h3,.membership-access-grid h3,.membership-architecture h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.35rem,2.7vw,2rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.05; }
.member-preview-view > p:not(.member-preview-view__eyebrow),.membership-access-grid article > span,.membership-architecture p { max-width: 42rem; margin: .75rem 0 0; display: block; color: #d2cec9; font-size: .68rem; line-height: 1.65; }
.member-login-choices { margin-top: 1rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.member-login-choices button { min-height: 3rem; padding: .65rem; border: 1px solid rgba(255,255,255,.18); color: #8f999b; background: rgba(255,255,255,.025); font: inherit; font-size: .48rem; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; cursor: not-allowed; }
.member-text-link { margin-top: 1rem; display: inline-block; color: #fff; border-bottom: 1px solid rgba(255,255,255,.6); font-size: .56rem; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.member-text-link:hover,.member-text-link:focus-visible { border-bottom-color: #fff; outline: 2px solid #fff; outline-offset: 4px; }
.member-direct-links { margin-top: 1rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.member-direct-links a { min-height: 3.1rem; padding: .7rem; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.5); color: #fff; font-size: .53rem; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.member-direct-links a:hover,.member-direct-links a:focus-visible { color: #111; background: #fff; outline: 2px solid #fff; outline-offset: 3px; }
.member-preview-view > small { margin-top: .8rem; display: block; color: #9d9994; font-size: .56rem; }
.membership-hero { min-height: 78svh; }
.membership-concept-note { margin-top: 1rem; display: block; color: #bcd4d9; font-size: .55rem; letter-spacing: .1em; line-height: 1.55; text-transform: uppercase; }
.membership-hero__links { margin-top: 1.2rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.membership-hero__links a { min-height: 2.8rem; padding: .65rem 1rem; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.48); color: #fff; font-size: .53rem; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.membership-hero__links a:hover,.membership-hero__links a:focus-visible { color: #111; background: #fff; outline: 2px solid #fff; outline-offset: 3px; }
.membership-options,.membership-checkout-plan,.membership-access-plan { width: min(92%,74rem); margin: 0 auto; padding: clamp(2.5rem,6vw,5rem) 0; position: relative; z-index: 2; color: #fff; }
.membership-section-head { max-width: 52rem; margin-bottom: clamp(1.4rem,3vw,2.2rem); }
.membership-section-head h2 { font-size: clamp(2.25rem,5vw,4.4rem); }
.membership-tier-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.membership-tier { min-width: 0; padding: clamp(1rem,2.2vw,1.5rem); display: flex; flex-direction: column; border: 1px solid rgba(222,235,239,.3); background: linear-gradient(145deg,rgba(7,10,12,.93),rgba(22,31,35,.78)); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.membership-tier h3 { min-height: 2.4em; }
.membership-tier dl { margin: 1rem 0; }
.membership-tier dl > div { padding: .72rem 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .65rem; border-top: 1px solid rgba(255,255,255,.13); }
.membership-tier dt,.membership-tier dd { margin: 0; font-size: .58rem; line-height: 1.45; }
.membership-tier dt { color: #dedbd6; }
.membership-tier dd { color: #8f999b; text-align: right; }
.membership-tier > .membership-tier__note { margin: 0 0 1rem; padding: .7rem 0 0; border-top: 1px solid rgba(255,255,255,.13); color: #cecac5; font-size: .58rem; letter-spacing: 0; line-height: 1.55; text-transform: none; }
.membership-tier__note span { color: #8f999b; white-space: nowrap; }
.membership-tier button { width: 100%; min-height: 3rem; margin-top: auto; padding: .65rem; border: 1px solid rgba(255,255,255,.18); color: #8f999b; background: rgba(255,255,255,.025); font: inherit; font-size: .48rem; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; cursor: not-allowed; }
.membership-shared-terms { margin-top: .75rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.membership-shared-terms article { min-width: 0; padding: clamp(1rem,2.2vw,1.4rem); border: 1px solid rgba(222,235,239,.22); background: rgba(8,12,14,.78); }
.membership-shared-terms p { margin: 0 0 .5rem; color: #a8c2c7; font-size: .51rem; letter-spacing: .17em; text-transform: uppercase; }
.membership-shared-terms h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.25rem,2.4vw,1.8rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.05; }
.membership-shared-terms span { margin-top: .7rem; display: block; color: #cecac5; font-size: .65rem; line-height: 1.65; }
.membership-remote-scope { margin-top: .75rem; padding: clamp(1rem,2.5vw,1.6rem); border: 1px solid rgba(222,235,239,.22); background: rgba(14,21,24,.82); }
.membership-remote-scope h3 { font-size: clamp(1.75rem,3.5vw,2.8rem); }
.membership-checkout-steps { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .55rem; list-style: none; counter-reset: none; }
.membership-checkout-steps li { min-width: 0; padding: 1rem; display: grid; align-content: start; gap: .8rem; border: 1px solid rgba(222,235,239,.25); background: linear-gradient(145deg,rgba(7,10,12,.92),rgba(22,31,35,.76)); }
.membership-checkout-steps li > span { color: #a8c2c7; font-family: Georgia,"Times New Roman",serif; font-size: 1.35rem; }
.membership-checkout-steps h3,.membership-ledger-note h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.15rem,2vw,1.55rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
.membership-checkout-steps p { margin: .65rem 0 0; color: #cecac5; font-size: .61rem; line-height: 1.65; }
.membership-checkout-steps strong { color: #fff; font-weight: 400; }
.membership-ledger-note { margin-top: .75rem; padding: clamp(1rem,2.5vw,1.6rem); border: 1px solid rgba(222,235,239,.22); background: rgba(14,21,24,.82); }
.membership-ledger-note > p { margin: 0 0 .55rem; color: #a8c2c7; font-size: .51rem; letter-spacing: .17em; text-transform: uppercase; }
.membership-ledger-note > span { max-width: 52rem; margin-top: .7rem; display: block; color: #cecac5; font-size: .65rem; line-height: 1.65; }
.membership-access-plan { padding-bottom: clamp(4rem,9vw,7rem); }
.membership-access-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.membership-access-grid article { min-width: 0; padding: clamp(1rem,2.5vw,1.6rem); border: 1px solid rgba(222,235,239,.27); background: rgba(6,9,11,.84); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.membership-architecture { margin-top: .75rem; padding: clamp(1rem,2.5vw,1.6rem); border: 1px solid rgba(222,235,239,.22); background: rgba(14,21,24,.82); }
.member-portal-main { width: min(92%,74rem); margin: 0 auto; padding: 0 0 clamp(4rem,9vw,7rem); position: relative; z-index: 2; color: #fff; }
.member-portal-hero { min-height: 58svh; padding: clamp(7rem,16vh,11rem) 0 clamp(2.5rem,7vw,5rem); display: flex; flex-direction: column; justify-content: flex-end; }
.member-portal-hero > p,.member-portal-shell > header > p,.member-portal-requirements > header > p { margin: 0 0 .55rem; color: #bcd4d9; font-size: .54rem; letter-spacing: .2em; text-transform: uppercase; }
.member-portal-hero h1,.member-portal-shell > header h2,.member-portal-requirements > header h2 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-weight: 400; letter-spacing: -.055em; line-height: .94; }
.member-portal-hero h1 { font-size: clamp(3.6rem,9vw,7.5rem); }
.member-portal-hero > span,.member-portal-shell > header > span { max-width: 44rem; margin-top: .9rem; color: #d5d1cc; font-size: .75rem; line-height: 1.7; }
.member-portal-shell { padding: clamp(1rem,3vw,2.2rem); scroll-margin-top: 4rem; border: 1px solid rgba(223,235,238,.32); background: linear-gradient(135deg,rgba(8,11,13,.95),rgba(21,30,34,.82)); box-shadow: 0 1.8rem 5rem rgba(0,0,0,.28); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.member-portal-shell > header h2 { max-width: 15ch; font-size: clamp(2.25rem,5vw,4.5rem); }
.member-portal-view { padding: clamp(1rem,2.5vw,1.6rem); border: 1px solid rgba(222,235,239,.22); background: rgba(0,0,0,.28); }
.member-portal-view[hidden] { display: none; }
.member-portal-view h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.7rem,3.4vw,2.8rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.02; }
.member-portal-view > p:not(.member-preview-view__eyebrow) { max-width: 46rem; margin: .75rem 0 0; color: #d2cec9; font-size: .68rem; line-height: 1.65; }
.member-portal-view > small { margin-top: .8rem; display: block; color: #9d9994; font-size: .56rem; line-height: 1.6; }
.member-portal-summary { margin-top: 1.25rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.member-portal-summary article { min-width: 0; padding: 1rem; border: 1px solid rgba(222,235,239,.22); background: rgba(255,255,255,.025); }
.member-portal-summary span,.member-portal-summary small { display: block; color: #a8c2c7; font-size: .5rem; letter-spacing: .12em; line-height: 1.45; text-transform: uppercase; }
.member-portal-summary strong { margin: .65rem 0 .5rem; display: block; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.2rem,2.4vw,1.8rem); font-weight: 400; line-height: 1.05; }
.member-portal-summary small { color: #9d9994; letter-spacing: 0; line-height: 1.55; text-transform: none; }
.member-portal-actions { margin-top: .65rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.member-portal-actions a,.member-portal-actions button { min-height: 3.1rem; padding: .7rem; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.34); color: #fff; background: rgba(255,255,255,.025); font: inherit; font-size: .52rem; letter-spacing: .11em; line-height: 1.35; text-align: center; text-decoration: none; text-transform: uppercase; }
.member-portal-actions a:hover,.member-portal-actions a:focus-visible { color: #111; background: #fff; outline: 2px solid #fff; outline-offset: 3px; }
.member-portal-actions button { color: #8f999b; border-color: rgba(255,255,255,.16); cursor: not-allowed; }
.member-portal-session-note { padding-top: .75rem; border-top: 1px solid rgba(255,255,255,.12); }
.member-portal-requirements { padding-top: clamp(3rem,7vw,5rem); }
.member-portal-requirements > header h2 { font-size: clamp(2.4rem,5.5vw,4.6rem); }
.member-portal-requirements > div { margin-top: 1.4rem; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .55rem; }
.member-portal-requirements article { min-width: 0; padding: 1rem; border: 1px solid rgba(222,235,239,.22); background: rgba(8,12,14,.82); }
.member-portal-requirements h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: 1.3rem; font-weight: 400; line-height: 1.05; }
.member-portal-requirements p { margin: .7rem 0 0; color: #cecac5; font-size: .62rem; line-height: 1.65; }

@media (width<=799px) {
  .makeup-page .makeup-services--stacked .mgrid { grid-template-columns: 1fr; }
  .makeup-page .makeup-services--stacked .mcard--wide { grid-column: auto; }
  .shop-browse { width: min(96%,42rem); }
  .shop-browse__columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
  .browse-column > h3 { font-size: .5rem; letter-spacing: .13em; }
  .browse-story-list { gap: .48rem; }
  .browse-story { min-height: 5.45rem; }
  .browse-story__label { width: 100%; padding: .4rem .8rem .6rem; }
  .browse-story__label strong { font-size: .95rem; }
  .browse-story__label small { margin-top: .28rem; font-size: .38rem; letter-spacing: .09em; }
  .shop-full-store .browse-story__label { width: 100%; }
  .foot.foot--stacked { width: min(88%,28rem); padding-top: 1.5rem; justify-items: center; text-align: center; row-gap: .55rem; }
  .foot.foot--stacked,.foot.foot--stacked * { box-sizing: border-box; min-width: 0; }
  .foot.foot--stacked .sig { justify-self: center; }
  .foot.foot--stacked address { width: 100%; justify-items: center; text-align: center; }
  .foot.foot--stacked address a,.foot.foot--stacked address span { width: auto; max-width: 100%; overflow-wrap: anywhere; }
  .foot.foot--stacked .text-signup { width: 100%; max-width: 31rem; }
  .now-membership__grid { grid-template-columns: 1fr; }
  .membership-tier-grid { grid-template-columns: 1fr; }
  .membership-shared-terms { grid-template-columns: 1fr; }
  .now-remote-scope ul,.membership-remote-scope ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .membership-checkout-steps { grid-template-columns: 1fr; }
  .membership-access-grid { grid-template-columns: 1fr; }
  .member-portal-summary { grid-template-columns: 1fr; }
  .member-portal-requirements > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (width<=430px) {
  .shop-browse { width: calc(100% - .75rem); }
  .shop-browse__columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .42rem; }
  .shop-browse__intro > span { font-size: .71rem; }
  .browse-story { min-height: 5.2rem; }
  .browse-story__label { width: 100%; padding: .4rem .8rem .6rem; }
  .browse-story__label strong { font-size: .95rem; }
  .browse-story__art img { width: 100%; }
  .shop-browse__utilities { display: grid; grid-template-columns: 1fr 1fr; }
  .shop-browse__utilities a { padding-inline: .55rem; text-align: center; }
  .now-offer { width: calc(100% - 1rem); padding-top: 1.5rem; }
  .now-choice-actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .42rem; }
  .now-choice { min-height: 19rem; padding: .65rem; }
  .now-choice h3 { margin-bottom: .7rem; font-size: clamp(1.2rem,6vw,1.55rem); }
  .now-choice__actions { gap: .45rem; }
  .now-choice__actions a,.now-choice__actions span { min-height: 2.8rem; padding-inline: .2rem; font-size: .48rem; letter-spacing: .08em; }
  .now-choice > small { font-size: .56rem; }
  .now-access-paths { width: calc(100% - 1rem); gap: .42rem; }
  .now-access-paths a { min-height: 6rem; padding: .7rem .6rem; column-gap: .45rem; }
  .now-access-paths strong { font-size: clamp(1rem,5.2vw,1.32rem); }
  .now-access-paths small { font-size: .51rem; }
  .now-member-links { width: calc(100% - 1rem); gap: .42rem; }
  .member-entry { width: calc(100% - 1rem); }
  .member-entry__frame { padding: 1rem; }
  .member-preview-switch { gap: .42rem; }
  .member-preview-switch button { padding-inline: .3rem; font-size: .47rem; letter-spacing: .08em; }
  .member-login-choices { grid-template-columns: 1fr; }
  .member-portal-main { width: calc(100% - 1rem); }
  .member-portal-hero { min-height: 52svh; }
  .member-portal-actions { grid-template-columns: 1fr; }
  .member-portal-requirements > div { grid-template-columns: 1fr; }
  .membership-options,.membership-checkout-plan,.membership-access-plan { width: calc(100% - 1rem); }
  .membership-hero h1 { font-size: clamp(3rem,15vw,4.4rem); }
  .now-remote-scope { width: calc(100% - 1rem); padding: 1rem; }
  .now-remote-scope ul,.membership-remote-scope ul { grid-template-columns: 1fr; }
  .now-membership { width: calc(100% - 1rem); }
  .now-membership__frame { padding: 1rem; }
  .now-membership__intro h2 { font-size: clamp(2.35rem,12vw,3.25rem); }
  .now-membership__intro > span { font-size: .7rem; }
  .now-membership__copy > p { font-size: .68rem; }
  .now-membership__uses { gap: .42rem; }
  .now-membership__uses li { min-height: 3rem; padding: .6rem; font-size: .92rem; }
  .now-membership__terms { padding: .9rem; }
}
.membership-nudge { max-width: 38rem; margin: 1rem auto 0; padding-top: .85rem; border-top: 1px solid rgba(255,255,255,.18); color: #bdb8b2; font-size: .62rem; line-height: 1.6; }
.membership-nudge span { color: #e7e0d9; }
.membership-nudge a { color: #fff; text-underline-offset: .23em; }
@media (prefers-reduced-motion: reduce) {
  .shop-motion-bg .home-wall-track { animation: none!important; transform: none!important; }
  .browse-story,.browse-story__art img { animation: none!important; transition: none; }
}
@media (width<=799px) {
  .shop-motion-bg .home-wall-stage { inset: -7vh -3vw; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .25rem; }
  .shop-motion-bg .home-wall-track img { height: 7.25rem; }
  .makeup-hero.makeup-hero--quote { padding-bottom: 8rem; }
  .makeup-hero.makeup-hero--quote .makeup-hero__copy { bottom: 3.25rem; }
  .hero-quote-lockup { width: min(38rem,84%); }
  .edit-band .mgrid, .quiz-intro__rules, .result-principles { grid-template-columns: 1fr; }
  .edit-progress, .save-email-row { grid-template-columns: 1fr; }
  .edit-band .mcard--wide { grid-column: auto; }
  .page-main { padding-right: 1.25rem; padding-top: 6.5rem; }
  .reading-page .page-bar { background: #0a0a0a; min-height: 15.5rem; position: relative; }
  .reading-page .page-main { padding-top: 1.5rem; }
  .foot { padding-top: 1.6rem; padding-bottom: 4.5rem; }
  .foot .sig__mark { width: 7.5rem; height: 3.4rem; }
  .store-hero { min-height: 760px; }
  .store-hero__image { object-position: 62% center; }
  .store-hero__veil { background: linear-gradient(0deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.58) 52%,rgba(5,5,5,.28) 100%); }
  .store-hero__marks { top: 11.5rem; }
  .store-hero__marks img { width: 8rem; }
  .store-hero__copy { width: 92%; padding-left: 4vw; padding-bottom: 3.2rem; }
  .store-product,.store-product--reverse { width: min(94%,38rem); grid-template-columns: 1fr; }
  .store-product img,.store-product--reverse img { min-height: 0; grid-column: 1; grid-row: 1; }
  .store-product .store-product__copy,.store-product--reverse .store-product__copy { grid-column: 1; grid-row: 2; }
  .store-link-grid,.store-first-access { grid-template-columns: 1fr; }
  .store-campaign-grid { grid-template-columns: 1fr; }
  .store-campaign { min-height: 22rem; }
  .store-shelf__routine { grid-template-columns: 1fr; }
  .store-shelf__routine span:nth-child(2),.store-shelf__routine span:last-child { text-align: left; }
  .store-shelf__frame { min-height: 38rem; }
  .store-shelf__frame iframe { height: 42rem; }
  .store-shelf__foot { flex-direction: column; gap: 1rem; }
  .store-link-card { min-height: 18rem; }
  .store-first-access { gap: 1.5rem; }
  .store-first-access img { width: min(16rem,72%); }
}

@media (max-width: 560px) {
  .store-announcement { padding-left: .7rem; padding-right: 2.7rem; }
  .store-announcement a { align-items: flex-start; flex-direction: column; gap: .05rem; text-align: left; }
  .store-announcement em { margin-top: .2rem; }
  .store-announcement button { right: .45rem; }
}

/* Shared navigation: the primary choices span the full top edge on every page. */
.page-bar {
  display: block;
  position: relative;
  z-index: 30;
  padding: .55rem clamp(1.25rem,5vw,5rem) .35rem;
  background: transparent;
}
.page-bar:after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: clamp(8rem,18vh,12rem);
  pointer-events: none;
  background: linear-gradient(180deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.66) 38%,rgba(0,0,0,.18) 76%,rgba(0,0,0,0) 100%);
}
.page-bar .site-head {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0;
  flex: auto;
}
.page-bar .site-head:before { display: none; }
.page-bar .site-nav {
  width: 100%;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0,1fr);
  align-items: center;
  justify-content: stretch;
  gap: 0;
}
.page-bar .site-nav > a,
.page-bar .nav-drop,
.page-bar .site-search { justify-self: stretch; }
.page-bar .site-nav > a,
.page-bar .nav-drop > button {
  width: 100%;
  height: 38px;
  padding: 0 .2rem;
  font-size: .84rem;
  letter-spacing: .18em;
}
.page-bar .member-login-nav { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .12rem; line-height: 1; text-decoration: none; }
.page-bar .member-login-nav span { font-size: .68rem; letter-spacing: .12em; white-space: nowrap; }
.page-bar .member-login-nav small { color: #9eb9be; font-size: .36rem; letter-spacing: .13em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.page-bar .member-login-nav[data-preview-state="active"] small { color: #fff; }
.page-bar .nav-drop { justify-content: center; }
.page-bar .site-search {
  width: 100%;
  margin: 0;
  justify-content: center;
}
.page-bar .site-search[data-open=true] { width: 100%; }
.page-bar .site-search__field { max-width: 10.5rem; margin: 0 auto; }
.page-bar .nav-menu {
  top: calc(100% - 3px);
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}
.page-bar > a:first-child:has(.ibe-logo) {
  z-index: 2;
  position: absolute;
  top: 3.1rem;
  left: .55rem;
}

/* Homepage: a continuous monochrome photo wall behind the complete page. */
.home-page { overflow-x: clip; background: #050505; }
.home-page .site { z-index: 1; position: relative; background: transparent; }
.home-motion-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #050505;
}
.home-motion-bg:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg,rgba(0,0,0,.48),rgba(0,0,0,.18) 31%,rgba(0,0,0,.36) 70%,rgba(0,0,0,.68));
}
.home-wall-stage {
  position: absolute;
  inset: -18vh 0;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 0;
  filter: grayscale(1) contrast(1.08) brightness(.88);
}
.home-wall-column { min-width: 0; overflow: hidden; background: #050505; }
.home-wall-track {
  width: 100%;
  display: flex;
  flex-direction: column;
  will-change: transform;
  animation: home-wall-up 62s linear infinite;
}
.home-wall-column:nth-child(2) .home-wall-track {
  transform: translateY(-50%);
  animation-name: home-wall-down;
  animation-duration: 71s;
}
.home-wall-column:nth-child(3) .home-wall-track { animation-duration: 67s; }
.home-wall-track img {
  width: 100%;
  height: 56vh;
  min-height: 390px;
  flex: none;
  display: block;
  object-fit: cover;
  object-position: center 24%;
}
.home-wall-hero {
  min-height: 82svh;
  padding: 3.75rem 1rem 3rem;
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  text-align: center;
}
.home-wall-hero__lockup { display: flex; flex-direction: column; align-items: center; transform: translateY(-8vh); }
.home-wall-quote { width: min(39rem,82vw); height: auto; filter: drop-shadow(0 2px 12px #000); }
.home-wall-signature { width: min(15rem,42vw); height: auto; margin-top: 1.25rem; filter: drop-shadow(0 2px 12px #000); }
.home-page .about,
.home-page .band,
.home-page .foot { position: relative; z-index: 2; text-shadow: 0 2px 18px rgba(0,0,0,.95); }
.home-page .about { padding-top: 2.4rem; text-align: center; }
.home-page .bio { margin-left: auto; margin-right: auto; text-align: center; }
.home-page .credential { text-align: center; }
.home-page .mcard { background: rgba(8,8,8,.16); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.home-page > .site > .fixed { background: none; }
.home-page > .site > .fixed .press { border: 1px solid rgba(255,255,255,.22); background: rgba(10,10,10,.34); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
@keyframes home-wall-up { to { transform: translateY(-50%); } }
@keyframes home-wall-down { to { transform: translateY(0); } }

@media (width<=799px) {
  .page-bar { padding: .35rem .25rem .2rem; }
  .page-bar .site-nav > a,
  .page-bar .nav-drop > button {
    height: 34px;
    padding: 0 .05rem;
    font-size: .64rem;
    letter-spacing: .1em;
  }
  .page-bar .member-login-nav span { font-size: .52rem; letter-spacing: .05em; }
  .page-bar .member-login-nav small { font-size: .29rem; letter-spacing: .06em; }
  .page-bar .site-search { height: 34px; }
  .page-bar .site-search__mark { width: 34px; height: 34px; flex-basis: 34px; }
  .page-bar .nav-menu { left: auto; right: 0; transform: none; max-width: calc(100vw - .5rem); }
  .page-bar > a:first-child:has(.ibe-logo) { top: 2.8rem; }
  .reading-page .page-bar { min-height: 3.7rem; position: relative; background: linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,0)); }
  .home-wall-stage { inset: -10vh 0; }
  .home-wall-track img { height: 42vh; min-height: 310px; }
  .home-wall-hero { min-height: 78svh; padding: 2.5rem .75rem 2rem; }
  .home-wall-hero__lockup { transform: translateY(-7vh); }
  .home-wall-quote { width: min(34rem,91vw); }
  .home-wall-signature { width: min(13rem,48vw); margin-top: 1rem; }
}

@media (width<=430px) {
  .page-bar .site-nav > a,
  .page-bar .nav-drop > button { font-size: .5rem; letter-spacing: .035em; }
  .page-bar .member-login-nav span { font-size: .46rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-wall-track { animation: none!important; transform: none!important; }
}

/* Makeup, Taught: keep the photography moving continuously behind the complete page. */
.makeup-page { overflow-x: clip; background: #050505; }
.makeup-page .site { z-index: 1; position: relative; background: transparent; }
.makeup-motion-bg:after { background: linear-gradient(180deg,rgba(0,0,0,.67),rgba(0,0,0,.35) 34%,rgba(0,0,0,.52) 72%,rgba(0,0,0,.78)); }
.makeup-wall-hero {
  min-height: 100svh;
  padding: 5rem 1rem 7vh;
  position: relative;
  z-index: 2;
  display: grid;
  place-items: end center;
  text-align: center;
}
.makeup-wall-hero:after,
.extension-wall-hero:after {
  content: none;
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: clamp(12rem,38svh,26rem);
  pointer-events: none;
  background: linear-gradient(180deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.58) 28%,rgba(0,0,0,.24) 64%,rgba(0,0,0,0) 100%);
}
.makeup-wall-hero__copy {
  z-index: 1;
  width: min(92%,56rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  isolation: isolate;
  text-shadow: 0 2px 18px #000;
}
.makeup-wall-hero__copy:before {
  content: none;
}
.makeup-wall-hero__eyebrow { margin: 0 0 .75rem; color: #d4cfca; font-size: .65rem; letter-spacing: .23em; text-transform: uppercase; }
.makeup-wall-hero h1 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(4.2rem,10vw,9rem); font-weight: 400; letter-spacing: -.06em; line-height: .78; }
.makeup-wall-hero .lede { max-width: 45rem; margin: 1.45rem auto 0; color: #f4f1ed; font-size: clamp(.88rem,1.45vw,1.08rem); line-height: 1.7; }
.makeup-wall-hero .makeup-sign { margin-top: 1.45rem; }
.makeup-page .makeup-services,
.makeup-page .foot { position: relative; z-index: 2; text-shadow: 0 2px 18px rgba(0,0,0,.95); }
.makeup-page .makeup-services { margin-top: 0; padding-top: clamp(3rem,7vw,6rem); }
.makeup-page .mcard { background: rgba(8,8,8,.18); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.makeup-page .makeup-services--stacked .mgrid { max-width: 48rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.makeup-page .makeup-services--stacked .mcard--wide { grid-column: 1 / -1; text-align: center; }
.makeup-page .note { max-width: 48rem; margin-left: auto; margin-right: auto; }
.makeup-page > .site > .fixed { background: none; }
.makeup-page > .site > .fixed .press { border: 1px solid rgba(255,255,255,.22); background: rgba(10,10,10,.34); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

/* Extensions: installation details move continuously behind the page. */
.extension-page { overflow-x: clip; background: #050505; }
.extension-page .site { z-index: 1; position: relative; background: transparent; }
.extension-motion-bg:after { background: linear-gradient(180deg,rgba(0,0,0,.67),rgba(0,0,0,.35) 34%,rgba(0,0,0,.52) 72%,rgba(0,0,0,.78)); }
.extension-wall-stage .home-wall-track img { object-position: center; }
.extension-wall-hero {
  min-height: 100svh;
  padding: 5rem 1rem 8vh;
  position: relative;
  z-index: 2;
  display: grid;
  place-items: end center;
  text-align: center;
}
.extension-wall-hero__copy {
  z-index: 1;
  width: min(92%,58rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  isolation: isolate;
  text-shadow: 0 2px 18px #000;
}
.extension-wall-hero__copy:before {
  content: none;
}
.extension-brand-logo { width: 5rem; margin: 0 0 1rem; display: block; }
.extension-brand-logo--below { width: 5.25rem; margin: 1.15rem 0 0; }
.extension-brand-logo--below + .lede { margin-top: 1rem; }
.extension-brand-logo .ibe-logo { width: 100%; height: auto; display: block; filter: drop-shadow(0 2px 14px rgba(0,0,0,.92)); }
.extension-wall-hero__eyebrow { margin: 0 0 .75rem; color: #d4cfca; font-size: .65rem; letter-spacing: .23em; text-transform: uppercase; }
.extension-wall-hero h1 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(3.8rem,8.8vw,8rem); font-weight: 400; letter-spacing: -.06em; line-height: .82; }
.extension-wall-hero h1 .registered { margin-left: .04em; font-size: .45em; letter-spacing: 0; vertical-align: super; }
.extension-wall-hero .lede { max-width: 44rem; margin: 1.45rem auto 0; color: #f4f1ed; font-size: clamp(.88rem,1.45vw,1.08rem); line-height: 1.7; }
.extension-wall-hero .makeup-sign { margin-top: 1.45rem; }
.extension-page .extension-services,
.extension-page .foot { position: relative; z-index: 2; text-shadow: 0 2px 18px rgba(0,0,0,.95); }
.extension-page .extension-services { padding-top: clamp(3rem,7vw,6rem); }
.extension-page .mcard,
.extension-page .faq details { background: rgba(8,8,8,.2); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.extension-page > .site > .fixed { background: none; }
.extension-page > .site > .fixed .press { border: 1px solid rgba(255,255,255,.22); background: rgba(10,10,10,.34); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

/* Guide + Reading: centered words over the same continuous monochrome wall. */
.guide-page,
.reading-page { overflow-x: clip; background: #050505; }
.guide-page .site,
.reading-page .site { z-index: 1; position: relative; background: transparent; }
.guide-motion-bg:after,
.reading-motion-bg:after { background: linear-gradient(180deg,rgba(0,0,0,.6),rgba(0,0,0,.34) 31%,rgba(0,0,0,.5) 70%,rgba(0,0,0,.78)); }
.guide-page .page-main,
.reading-page .page-main,
.guide-page .foot,
.reading-page .foot { position: relative; z-index: 2; text-shadow: 0 2px 18px rgba(0,0,0,.95); }
.guide-page .page-main,
.reading-page .page-main { margin-inline: auto; text-align: center; }
.guide-page .page-main { padding-top: clamp(5.6rem,9vw,8rem); }
.guide-page .page-main > *,
.reading-page .quiz { margin-left: auto; margin-right: auto; }
.guide-page .page-main ul { padding-left: 0; list-style: none; text-align: center; }
.guide-page .svc { margin-left: auto; margin-right: auto; text-align: center; background: rgba(8,8,8,.2); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.reading-page .page-main { padding-top: clamp(5.6rem,9vw,8rem); }
.reading-page .quiz { text-align: center; }
.reading-page .reading-intro span { display: block; }
.reading-page .reading-intro span + span { margin-top: .28rem; }
.reading-page .profile-choices { grid-template-columns: repeat(2,minmax(0,1fr)); }
.reading-page .profile-choice { min-height: 7rem; text-align: center; }
.reading-page .profile-choice--wide { grid-column: 1 / -1; }
.reading-page .choices,
.reading-page .quiz__controls,
.reading-page .result-actions,
.reading-page .actions,
.reading-page .stage-actions { justify-content: center; }
.reading-page .choice,
.reading-page .product,
.reading-page .result-profile,
.reading-page .result-shelf,
.reading-page .routine,
.reading-page .save-edit { text-align: center; background: rgba(8,8,8,.2); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.guide-page > .site > .fixed,
.reading-page > .site > .fixed { background: none; }
.guide-page > .site > .fixed .press,
.reading-page > .site > .fixed .press { border: 1px solid rgba(255,255,255,.22); background: rgba(10,10,10,.34); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

/* Booking: Square stays live inside the same continuous monochrome world. */
.booking-page { overflow-x: clip; background: #050505; }
.booking-page .site { z-index: 1; position: relative; background: transparent; }
.booking-motion-bg:after { background: linear-gradient(180deg,rgba(0,0,0,.68),rgba(0,0,0,.42) 32%,rgba(0,0,0,.58) 72%,rgba(0,0,0,.82)); }
.booking-wall-stage .home-wall-track img { object-position: center; }
.booking-main { max-width: 70rem; padding-top: clamp(5.6rem,9vw,8rem); position: relative; z-index: 2; text-align: center; text-shadow: 0 2px 18px rgba(0,0,0,.95); }
.booking-intro { width: min(100%,46rem); margin: 0 auto 1.75rem; }
.booking-intro h1 { margin: .3rem 0 .8rem; font-family: Georgia,"Times New Roman",serif; font-size: clamp(3.4rem,8vw,7.2rem); font-weight: 400; letter-spacing: -.055em; line-height: .88; }
.booking-intro p:last-child { color: #e7e2dc; line-height: 1.7; }
.booking-frame { width: min(100%,62rem); min-height: 760px; margin: 0 auto; overflow: hidden; border: 0; background: transparent; box-shadow: 0 24px 80px rgba(0,0,0,.2); -webkit-mask-image: linear-gradient(to bottom,transparent 0,#000 3.2rem,#000 calc(100% - 3.2rem),transparent 100%),linear-gradient(to right,transparent 0,#000 1.8rem,#000 calc(100% - 1.8rem),transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to bottom,transparent 0,#000 3.2rem,#000 calc(100% - 3.2rem),transparent 100%),linear-gradient(to right,transparent 0,#000 1.8rem,#000 calc(100% - 1.8rem),transparent 100%); mask-composite: intersect; }
.booking-frame iframe { width: 100%; min-height: 760px; display: block; border: 0; background: #f7f4ef; }
.booking-fallback { margin: 1rem auto 0; color: #e7e2dc; font-size: .78rem; }
.booking-fallback a { text-decoration: underline; text-underline-offset: .3em; }
.booking-page .foot { position: relative; z-index: 2; text-shadow: 0 2px 18px rgba(0,0,0,.95); }
.booking-page > .site > .fixed { background: none; }
.booking-page > .site > .fixed .press { border: 1px solid rgba(255,255,255,.22); background: rgba(10,10,10,.34); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

@media (width<=799px) {
  .booking-main { padding-inline: .75rem; }
  .booking-frame { min-height: 720px; }
  .booking-frame iframe { min-height: 720px; }
}

/* Booking becomes one on-site collection of every appointment family. */
.booking-collective-hero { min-height: auto; }
.booking-collective { width: min(94%,58rem); margin: 0 auto; padding: 2.5rem 0 clamp(3rem,7vw,6rem); position: relative; z-index: 2; }
.booking-category-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; align-items: start; }
.booking-category { min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.22); background: rgba(8,8,8,.18); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: border-color .2s ease,background .2s ease; }
.booking-category--wide,
.booking-category[open] { grid-column: 1 / -1; }
.booking-category:hover,
.booking-category[open] { border-color: rgba(255,255,255,.78); background: rgba(255,255,255,.12); }
.booking-category > summary { min-height: 8.25rem; padding: .85rem 1rem; display: flex; align-items: flex-end; cursor: pointer; list-style: none; text-align: left; }
.booking-category > summary::-webkit-details-marker { display: none; }
.booking-category > summary h2 { margin: 0; color: #fff; font-family: Poppins,"Century Gothic",Helvetica,sans-serif; font-size: .98rem; font-weight: 300; letter-spacing: 0; line-height: 1.25; }
.booking-category__body { padding: .8rem; display: grid; grid-template-columns: repeat(auto-fit,minmax(14rem,1fr)); gap: .7rem; border-top: 1px solid rgba(255,255,255,.22); background: rgba(0,0,0,.18); }
.booking-category__body--single { grid-template-columns: 1fr; }
.booking-service-section { min-width: 0; padding: .85rem 1rem 1rem; border: 1px solid rgba(255,255,255,.16); background: rgba(8,8,8,.16); }
.booking-service-section h3 { margin: 0 0 .65rem; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: 1.35rem; font-weight: 400; letter-spacing: -.025em; }
.booking-service-section ul { margin: 0; padding: 0; list-style: none; }
.booking-service-section li { padding: .48rem 0; border-top: 1px solid rgba(255,255,255,.14); color: #d7d1cb; font-size: .78rem; line-height: 1.45; }
.booking-page .appointment-tray-launch { position: static; width: max-content; margin: 0 0 .85rem auto; display: flex; justify-content: center; }
.booking-collective__note { width: min(92%,39rem); margin: 1.4rem auto 0; color: #d8d2cb; font-size: .74rem; line-height: 1.65; text-align: center; text-shadow: 0 2px 18px rgba(0,0,0,.95); }

@media (width<=799px) {
  .booking-collective { width: 96%; padding-top: 2rem; }
  .booking-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .booking-category > summary { min-height: 7rem; padding: .75rem .8rem; }
  .booking-category > summary h2 { font-size: .9rem; }
  .booking-category__body { grid-template-columns: 1fr; padding: .65rem; }
  .booking-page .appointment-tray-launch { width: 100%; margin-bottom: .65rem; }
}

/* Site-wide readability: soft contrast, never an opaque panel. */
.makeup-hero--ibe { isolation: isolate; overflow: hidden; }
.makeup-hero--ibe:before { content: ""; inset: 0; z-index: 1; pointer-events: none; position: absolute; background: rgba(0,0,0,.16); }
.makeup-hero--ibe:after { z-index: 1; }
.makeup-hero--ibe .makeup-hero__copy,
.site-pages .page-main,
.site-pages .legal,
.site > .page-main,
.site > main > .band { text-shadow: 0 2px 18px rgba(0,0,0,.82); }

@media (width<=799px) {
  .makeup-wall-hero { min-height: 84svh; padding: clamp(4.75rem,11vh,6.5rem) .75rem 2.25rem; place-items: start center; }
  .makeup-wall-hero h1 { font-size: clamp(3.8rem,18vw,6rem); }
  .makeup-wall-hero .lede { width: min(95%,37rem); margin-top: 1.1rem; line-height: 1.6; }
  .makeup-wall-hero .makeup-sign { margin-top: 1rem; }
  .makeup-page .makeup-services { padding-top: 2rem; }
  .makeup-page .makeup-services--stacked .mgrid { grid-template-columns: 1fr; }
  .makeup-page .makeup-services--stacked .mcard--wide { grid-column: auto; text-align: center; }
  .extension-wall-hero { padding-bottom: 9vh; }
  .extension-wall-hero h1 { font-size: clamp(3.15rem,15vw,5.4rem); }
  .extension-wall-hero .lede { width: min(95%,37rem); line-height: 1.6; }
}
@media print {
  .page-bar, .foot, .fixed, .result-actions { display: none!important; }
  .site { color: #111; background: #fff; }
  .quiz p, .quiz h1, .quiz h2, .quiz h3 { color: #111; }
  .result-shelf, .product, .routine li { border-color: #bbb; }
}

/* Hair service-family landing page. */
.hair-page { background: #0a0a0a; }
.hair-hero { min-height: min(100svh,960px); position: relative; display: grid; align-items: end; overflow: hidden; isolation: isolate; }
.hair-hero:after { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.04) 34%,rgba(0,0,0,.82) 84%,#0a0a0a 100%); }
.hair-hero__image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 52% 25%; filter: contrast(1.04); }
.hair-hero__copy { position: relative; z-index: 2; width: min(92%,72rem); margin: 0 auto; padding: 0 0 clamp(3.8rem,8vw,7rem); text-align: center; text-shadow: 0 2px 24px rgba(0,0,0,.9); }
.hair-eyebrow { margin: 0 0 .75rem; color: #d9d2ca; font-size: .63rem; letter-spacing: .23em; text-transform: uppercase; }
.hair-hero h1 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(5rem,15vw,12rem); font-weight: 400; letter-spacing: -.075em; line-height: .78; }
.hair-hero__copy > p:not(.hair-eyebrow) { max-width: 40rem; margin: 1.5rem auto 0; color: #f2f0ee; font-size: clamp(.9rem,1.4vw,1.08rem); line-height: 1.7; }
.hair-link { display: inline-flex; min-height: 42px; margin-top: 1.4rem; align-items: center; border-bottom: 1px solid rgba(255,255,255,.72); color: #fff; font-size: .65rem; letter-spacing: .16em; text-decoration: none; text-transform: uppercase; }
.hair-services { width: min(92%,78rem); margin: 0 auto; padding: clamp(3.5rem,8vw,7rem) 0 1rem; }
.hair-services__intro { max-width: 55rem; margin: 0 auto clamp(2rem,5vw,4.25rem); text-align: center; }
.hair-services__intro h2 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.35rem,6vw,5.5rem); font-weight: 400; letter-spacing: -.045em; line-height: .95; }
.hair-family-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(.75rem,1.6vw,1.3rem); }
.hair-family { min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.035); }
.hair-family img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; filter: grayscale(1) contrast(1.05); transition: filter .45s ease,transform .65s cubic-bezier(.22,1,.36,1); }
.hair-family:nth-child(2) img,.hair-family:nth-child(6) img { object-position: center; }
.hair-family:hover img { filter: grayscale(.25) contrast(1.02); transform: scale(1.025); }
.hair-family > div { padding: 1rem 1rem 1.25rem; }
.hair-family span { color: #9f9993; font-size: .58rem; letter-spacing: .18em; }
.hair-family h3 { margin: .35rem 0 .55rem; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.55rem,2.7vw,2.35rem); font-weight: 400; letter-spacing: -.035em; line-height: .96; }
.hair-family p { margin: 0; color: #d7d1cb; font-size: .82rem; line-height: 1.58; }
.hair-book { max-width: 47rem; margin: clamp(3rem,7vw,6rem) auto 0; padding: clamp(2rem,5vw,4rem); border: 1px solid rgba(255,255,255,.3); text-align: center; }
.hair-book p { max-width: 32rem; margin: 0 auto 1.25rem; color: #e0dad4; line-height: 1.65; }
.hair-book__button { display: inline-flex; min-height: 44px; padding: 0 1.25rem; align-items: center; justify-content: center; border: 1px solid #fff; color: #111; background: #fff; font-size: .68rem; letter-spacing: .16em; text-decoration: none; text-transform: uppercase; }
.hair-book__secondary { display: block; width: max-content; margin: 1rem auto 0; color: #fff; border-bottom: 1px solid rgba(255,255,255,.64); font-size: .62rem; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }

@media (width<=799px) {
  .hair-hero { min-height: 88svh; }
  .hair-hero__image { object-position: 52% 18%; }
  .hair-hero__copy { padding-bottom: 3.1rem; }
  .hair-family-grid { grid-template-columns: 1fr 1fr; gap: .65rem; }
  .hair-family > div { padding: .8rem .75rem 1rem; }
  .hair-family h3 { font-size: clamp(1.25rem,6.5vw,1.75rem); }
  .hair-family p { font-size: .72rem; line-height: 1.5; }
}

@media (width<=520px) {
  .hair-services { width: 94%; }
  .hair-family-grid { grid-template-columns: 1fr; gap: .9rem; }
  .hair-family { display: grid; grid-template-columns: 43% 1fr; min-height: 13rem; }
  .hair-family img { width: 100%; height: 100%; aspect-ratio: auto; }
  .hair-family > div { display: flex; flex-direction: column; justify-content: center; padding: .9rem; }
  .hair-family h3 { font-size: 1.65rem; }
}

@media (prefers-reduced-motion: reduce) {
  .hair-family img { transition: none; }
}

.hair-hold { min-height: 100svh; position: relative; display: grid; place-items: center; overflow: hidden; isolation: isolate; }
.hair-hold:after { content: ""; position: absolute; z-index: 1; inset: 0; background: rgba(6,6,6,.78); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.hair-hold__image { position: absolute; inset: -3%; width: 106%; height: 106%; object-fit: cover; object-position: center 22%; filter: grayscale(1); }
.hair-hold__copy { position: relative; z-index: 2; width: min(88%,42rem); padding: 7rem 1rem; text-align: center; }
.hair-hold__copy h1 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(3rem,8vw,6.5rem); font-weight: 400; letter-spacing: -.055em; line-height: .92; }
.hair-hold__copy > p:not(.hair-eyebrow) { max-width: 36rem; margin: 1.25rem auto 1.6rem; color: #ddd7d0; line-height: 1.7; }

.hair-family-grid--text { grid-template-columns: repeat(2,minmax(0,1fr)); }
.hair-family-grid--text .hair-family { min-height: 15rem; display: flex; align-items: flex-end; background: linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.018)); }
.hair-family-grid--text .hair-family > div { width: 100%; padding: clamp(1.25rem,3vw,2.25rem); }
.hair-family-grid--text .hair-family h3 { font-size: clamp(2rem,4.2vw,3.6rem); }
.hair-family-grid--text .hair-family p { max-width: 29rem; }

@media (width<=799px) {
  .hair-family-grid--text { grid-template-columns: 1fr; }
  .hair-family-grid--text .hair-family { min-height: 12.5rem; display: flex; }
}

.hair-page { overflow-x: clip; background: #050505; }
.hair-page .site { z-index: 1; position: relative; background: transparent; }
.hair-motion-bg:after { background: linear-gradient(180deg,rgba(0,0,0,.67),rgba(0,0,0,.35) 34%,rgba(0,0,0,.52) 72%,rgba(0,0,0,.78)); }
.hair-services { position: relative; z-index: 2; text-shadow: 0 2px 18px rgba(0,0,0,.96); }
.hair-family-grid--text .hair-family { background: rgba(8,8,8,.34); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.hair-book { background: rgba(8,8,8,.42); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

.hair-hero--wall { min-height: 72svh; }
.hair-hero--wall:after { content: none; }
.hair-hero--wall .hair-hero__copy { text-shadow: none; }

/* One vertical title anchor across every focused page. */
:root { --service-copy-top: clamp(11.5rem,31svh,19rem); --hero-signature-space: 7.35rem; }
.hero-signature-home { width: min(10rem,42vw); height: 4.35rem; display: block; margin: 0 auto 3rem; }
.hero-signature-home span { width: 100%; height: 100%; display: block; background: url(../site/hero-sign-white.png) center/contain no-repeat; filter: drop-shadow(0 1px 10px rgba(0,0,0,.88)); }
.home-wall-hero {
  min-height: 72svh;
  padding: var(--service-copy-top) 1rem 3rem;
  place-items: start center;
}
.home-wall-hero__lockup { transform: none; }
.hair-hero--wall { align-items: start; }
.hair-hero--wall .hair-hero__copy { padding-top: calc(var(--service-copy-top) - var(--hero-signature-space)); padding-bottom: 3rem; }
.makeup-wall-hero,
.extension-wall-hero {
  min-height: 72svh;
  padding: calc(var(--service-copy-top) - var(--hero-signature-space)) 1rem 3rem;
  place-items: start center;
}
.guide-page .page-main,
.reading-page .page-main,
.booking-main { padding-top: var(--service-copy-top); }
.hair-hero h1 { font-size: clamp(3.65rem,10.2vw,8.1rem); }
.makeup-wall-hero h1 { font-size: clamp(3.1rem,6.9vw,6rem); }
.extension-wall-hero h1 { font-size: clamp(2.9rem,6.2vw,5.5rem); }

@media (width<=799px) {
  :root { --hero-signature-space: 6.1rem; }
  .hero-signature-home { width: min(8.75rem,40vw); height: 3.65rem; margin-bottom: 2.45rem; }
  .hair-hero h1 { font-size: clamp(3.3rem,13vw,4.3rem); }
  .makeup-wall-hero h1 { font-size: clamp(2.75rem,12vw,4rem); }
  .extension-wall-hero h1 { font-size: clamp(2.45rem,10.8vw,3.7rem); }
}

/* A feathered reading halo lifts hero copy without looking like a panel. */
.home-wall-hero__lockup,
.hair-hero__copy,
.makeup-wall-hero__copy,
.extension-wall-hero__copy,
.store-hero__copy,
.routine-wall__copy {
  position: relative;
  isolation: isolate;
}
.home-wall-hero__lockup:before,
.hair-hero__copy:before,
.makeup-wall-hero__copy:before,
.extension-wall-hero__copy:before,
.store-hero__copy:before,
.routine-wall__copy:before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -1.4rem -3rem;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(ellipse at center,rgba(0,0,0,.28) 0%,rgba(0,0,0,.16) 52%,rgba(0,0,0,.05) 73%,rgba(0,0,0,0) 100%);
  filter: blur(12px);
}
.home-wall-hero__lockup:before {
  background: radial-gradient(ellipse at center,rgba(0,0,0,.43) 0%,rgba(0,0,0,.25) 52%,rgba(0,0,0,.09) 73%,rgba(0,0,0,0) 100%);
}

@media (width<=799px) {
  .home-wall-hero__lockup:before,
  .hair-hero__copy:before,
  .makeup-wall-hero__copy:before,
  .extension-wall-hero__copy:before,
  .store-hero__copy:before,
  .routine-wall__copy:before {
    inset: -1rem -.9rem;
    background: radial-gradient(ellipse at center,rgba(0,0,0,.31) 0%,rgba(0,0,0,.17) 54%,rgba(0,0,0,.04) 76%,rgba(0,0,0,0) 100%);
    filter: blur(10px);
  }
  .home-wall-hero__lockup:before {
    background: radial-gradient(ellipse at center,rgba(0,0,0,.45) 0%,rgba(0,0,0,.26) 54%,rgba(0,0,0,.08) 76%,rgba(0,0,0,0) 100%);
  }
}
.hair-booking-guide { width: min(94%,58rem); margin: 0 auto clamp(2rem,5vw,4rem); text-align: center; }
.hair-booking-guide h2 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.7rem,6.5vw,5.8rem); font-weight: 400; letter-spacing: -.05em; line-height: .94; }
.hair-booking-guide > p:last-child { max-width: 42rem; margin: 1rem auto 0; color: #ddd7d0; line-height: 1.7; }
.hair-family-grid--text details.hair-family { min-height: 0; display: block; }
.hair-family summary { cursor: pointer; list-style: none; }
.hair-family summary::-webkit-details-marker { display: none; }
.hair-family-grid--text .hair-family > summary > div { min-height: 15rem; padding: clamp(1.25rem,3vw,2.25rem); display: flex; flex-direction: column; justify-content: flex-end; }
.hair-family__cue { width: max-content; margin-top: 1.1rem; padding-bottom: .2rem; border-bottom: 1px solid rgba(255,255,255,.58); color: #eee9e3!important; font-size: .56rem!important; letter-spacing: .14em!important; text-transform: uppercase; }
.hair-family[open] .hair-family__cue { font-size: 0!important; }
.hair-family[open] .hair-family__cue:after { content: "Close"; font-size: .56rem; }
.hair-family__details { border-top: 1px solid rgba(255,255,255,.22); background: rgba(0,0,0,.22); }
.hair-family-grid--text .hair-family > .hair-family__details { padding: 1.2rem clamp(1.25rem,3vw,2.25rem) 1.5rem; }
.hair-family__details > p { margin: 0 0 .9rem; color: #fff; line-height: 1.6; }
.hair-family__details ul { margin: 0; padding: 0; list-style: none; }
.hair-family__details li { padding: .42rem 0; border-top: 1px solid rgba(255,255,255,.15); color: #d7d1cb; font-size: .78rem; line-height: 1.45; }
.hair-family[open] { border-color: rgba(255,255,255,.52); }

@media (width<=799px) {
  .hair-hero--wall { min-height: 68svh; }
  .hair-family-grid--text .hair-family > summary > div { min-height: 12.5rem; }
}

.hair-services { padding-top: clamp(1.2rem,3vw,2.5rem); }
.hair-family-grid--text { max-width: 42rem; margin: 0 auto; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.hair-family-grid--text details.hair-family { background: rgba(8,8,8,.18); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.hair-family-grid--text .hair-family > summary { min-height: 8.25rem; display: flex; align-items: flex-end; justify-content: flex-start; padding: .85rem 1rem; text-align: left; transition: background .2s,border-color .2s; }
.hair-family-grid--text .hair-family > summary h3 { margin: 0; color: #fff; font-family: Poppins,"Century Gothic",Helvetica,sans-serif; font-size: .95rem; font-weight: 300; letter-spacing: 0; line-height: 1.25; }
.hair-family-grid--text .hair-family > .hair-family__details { padding: .8rem 1rem 1rem; }
.hair-link--plain { cursor: default; border-bottom: 0; }
.hair-family-grid--text details.hair-family { transition: border-color .2s ease,background .2s ease; }
.hair-family-grid--text details.hair-family:hover,
.hair-family-grid--text details.hair-family[open] { border-color: #fff; background: rgba(255,255,255,.14); }
.hair-service-choice { display: flex; align-items: center; justify-content: space-between; gap: .8rem; color: #eee8e1; text-decoration: none; }
.hair-service-choice b { flex: none; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; padding: .18rem .48rem; color: #fff; font-size: .54rem; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; transition: background .18s ease,color .18s ease,border-color .18s ease; }
.hair-service-choice:hover b,.hair-service-choice:focus-visible b { border-color: #fff; background: #fff; color: #090909; }
.hair-service-choice:focus-visible { outline: 1px solid #fff; outline-offset: 3px; }

@media (width<=799px) {
  .hair-family-grid--text { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hair-family-grid--text .hair-family > summary { min-height: 7rem; }
}

/* The face landing page has two stable, touch-friendly service groups at every width. */
.hair-family-grid--face { max-width: 52rem; }
.hair-family-grid--face .hair-family > summary { cursor: pointer; }
.hair-family-grid--face .hair-service-choice { min-height: 2.75rem; }
.hair-family-grid--face .hair-service-choice span { min-width: 0; color: #eee8e1; font-size: .68rem; letter-spacing: .02em; line-height: 1.4; }
.brows-face-page .appointment-tray-launch { position: static; width: max-content; margin: 0 0 .85rem auto; display: flex; justify-content: center; }

@media (width<=520px) {
  .hair-family-grid--face { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
  .hair-family-grid--face .hair-family { display: block; min-height: 0; }
  .hair-family-grid--face .hair-family > summary { min-height: 6rem; padding: .7rem; }
  .hair-family-grid--face .hair-family > summary h3 { font-size: .82rem; }
  .hair-family-grid--face .hair-family > .hair-family__details { padding: .55rem .65rem .75rem; }
  .hair-family-grid--face .hair-service-choice { min-height: 2.75rem; gap: .35rem; }
  .hair-family-grid--face .hair-service-choice span { font-size: .7rem; letter-spacing: 0; line-height: 1.35; }
  .hair-family-grid--face .hair-service-choice b { padding: .2rem .35rem; font-size: .5rem; letter-spacing: .06em; }
  .brows-face-page .appointment-tray-launch { width: 100%; margin-bottom: .65rem; }
}

/* Shared appointment tray and secure Square booking flow. */
.appointment-tray-launch { position: fixed; z-index: 46; right: 1rem; bottom: max(3.65rem,calc(env(safe-area-inset-bottom) + 3.15rem)); display: inline-flex; min-height: 2.65rem; align-items: center; gap: .7rem; padding: .68rem .9rem; border: 1px solid rgba(255,255,255,.56); border-radius: 999px; color: #fff; background: rgba(8,8,8,.82); box-shadow: 0 .8rem 2.5rem rgba(0,0,0,.4); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); font: inherit; cursor: pointer; }
.appointment-tray-launch__label { font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.appointment-tray-launch__count { display: grid; min-width: 1.45rem; min-height: 1.45rem; place-items: center; border-radius: 999px; color: #0a0a0a; background: #fff; font-size: .67rem; }
.appointment-tray-launch[data-empty="true"] { opacity: .72; }
.appointment-tray-backdrop { position: fixed; z-index: 54; inset: 0; border: 0; opacity: 0; pointer-events: none; background: rgba(0,0,0,.58); transition: opacity .28s ease; }
.appointment-tray-backdrop[data-open="true"] { opacity: 1; pointer-events: auto; }
.appointment-tray { position: fixed; z-index: 55; top: 0; right: 0; width: min(92vw,28rem); height: 100dvh; display: flex; flex-direction: column; color: #f5f1ec; background: rgba(12,12,12,.96); box-shadow: -1.5rem 0 4rem rgba(0,0,0,.44); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); transform: translateX(105%); transition: transform .32s cubic-bezier(.22,1,.36,1); text-shadow: none; }
.appointment-tray[data-open="true"] { transform: translateX(0); }
.appointment-tray__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.35rem 1.15rem; border-bottom: 1px solid rgba(255,255,255,.18); }
.appointment-tray__eyebrow { margin: 0 0 .32rem; color: #aaa39c; font-size: .55rem; letter-spacing: .16em; text-transform: uppercase; }
.appointment-tray__header h2 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: 2rem; font-weight: 400; letter-spacing: -.035em; }
.appointment-tray__close { width: 2.3rem; height: 2.3rem; display: grid; place-items: center; flex: none; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: #fff; background: transparent; font: 300 1.25rem/1 Poppins,sans-serif; cursor: pointer; }
.appointment-tray__body { flex: 1; overflow-y: auto; padding: 1.15rem 1.35rem 1.5rem; }
.appointment-tray__empty { margin: 2rem 0; color: #c8c2bb; text-align: center; line-height: 1.65; }
.appointment-tray__list { margin: 0; padding: 0; list-style: none; }
.appointment-tray__item { display: grid; grid-template-columns: 1fr auto; gap: .3rem .8rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.appointment-tray__category { grid-column: 1; color: #99928c; font-size: .52rem; letter-spacing: .14em; text-transform: uppercase; }
.appointment-tray__name { grid-column: 1; color: #f5f1ec; font-family: Georgia,"Times New Roman",serif; font-size: 1.12rem; line-height: 1.2; }
.appointment-tray__remove { grid-column: 2; grid-row: 1 / span 2; align-self: center; border: 0; border-bottom: 1px solid rgba(255,255,255,.46); padding: .15rem 0; color: #d9d3cc; background: transparent; font: inherit; font-size: .52rem; letter-spacing: .11em; text-transform: uppercase; cursor: pointer; }
.appointment-tray__footer { padding: 1.15rem 1.35rem max(1.35rem,env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,.18); }
.appointment-tray__summary { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .85rem; color: #ccc5be; font-size: .68rem; }
.appointment-tray__continue,.appointment-tray__back { width: 100%; min-height: 3rem; border: 1px solid #fff; padding: .7rem 1rem; color: #080808; background: #fff; font: inherit; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.appointment-tray__continue:disabled { opacity: .35; cursor: not-allowed; }
.appointment-tray__note { margin: .75rem 0 0; color: #908982; font-size: .58rem; line-height: 1.55; text-align: center; }
.appointment-tray__next { min-height: 100%; display: grid; align-content: center; text-align: center; }
.appointment-tray__next h3 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: 2.2rem; font-weight: 400; letter-spacing: -.04em; }
.appointment-tray__next p { margin: 1rem auto 1.5rem; max-width: 20rem; color: #c9c2bb; line-height: 1.65; }
.appointment-tray__back { color: #fff; background: transparent; }
.appointment-tray__availability { align-content: start; padding-top: .2rem; text-align: left; }
.appointment-tray__availability h3 { font-size: 1.9rem; }
.appointment-tray__availability .appointment-tray__loading { margin: 1rem 0 1.4rem; }
.appointment-availability-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; margin: 1.25rem 0 1.1rem; }
.appointment-availability-list__time { min-height: 3.5rem; display: grid; gap: .12rem; align-content: center; border: 1px solid rgba(255,255,255,.3); border-radius: .15rem; padding: .5rem .65rem; color: #f5f1ec; background: rgba(255,255,255,.07); text-align: left; cursor: pointer; }
.appointment-availability-list__time:hover,.appointment-availability-list__time:focus-visible { border-color: #fff; background: rgba(255,255,255,.14); }
.appointment-availability-list__time span { color: #a8a19a; font: 400 .5rem/1.3 Poppins,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.appointment-availability-list__time strong { font: 400 1.05rem/1.2 Georgia,"Times New Roman",serif; }
.appointment-variation-list { display: grid; gap: .6rem; margin: 1.25rem 0 1rem; }
.appointment-variation-list button { min-height: 3.25rem; border: 1px solid rgba(255,255,255,.32); padding: .7rem 1rem; color: #f5f1ec; background: rgba(255,255,255,.07); font: 400 .7rem/1.25 Poppins,sans-serif; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.appointment-variation-list button:hover,.appointment-variation-list button:focus-visible { border-color: #fff; background: rgba(255,255,255,.14); }
.appointment-tray__booking-form { align-content: start; text-align: left; }
.appointment-tray__booking-form h3 { margin-bottom: 1.25rem; font-size: 1.7rem; }
.appointment-booking-form__client-links { display: grid; gap: .55rem; margin: 0 0 1.15rem; border: 1px solid rgba(255,255,255,.2); padding: .8rem; background: rgba(255,255,255,.04); }
.appointment-booking-form__client-links > span { color: #aaa39c; font-size: .54rem; letter-spacing: .14em; text-transform: uppercase; }
.appointment-booking-form__client-links > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
.appointment-booking-form__client-links a { min-height: 2.7rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.46); padding: .55rem .65rem; color: #f5f1ec; background: rgba(255,255,255,.07); font-size: .58rem; letter-spacing: .1em; text-align: center; text-decoration: none; text-transform: uppercase; }
.appointment-booking-form__client-links a:hover,.appointment-booking-form__client-links a:focus-visible { border-color: #fff; color: #090909; background: #fff; }
.appointment-booking-form { display: grid; gap: .85rem; }
.appointment-booking-form__names { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.appointment-booking-form label:not(.appointment-booking-form__consent) { display: grid; gap: .35rem; }
.appointment-booking-form label > span { color: #bbb3ac; font-size: .54rem; letter-spacing: .12em; text-transform: uppercase; }
.appointment-booking-form input:not([type="checkbox"]) { width: 100%; min-height: 2.7rem; border: 1px solid rgba(255,255,255,.26); border-radius: 0; padding: .6rem .7rem; color: #fff; background: rgba(255,255,255,.07); font: inherit; font-size: .78rem; outline: none; }
.appointment-booking-form input:not([type="checkbox"]):focus { border-color: #fff; }
.appointment-booking-form__consent { display: grid; grid-template-columns: auto 1fr; gap: .65rem; align-items: start; margin-top: .3rem; }
.appointment-booking-form__consent input { width: 1rem; height: 1rem; margin: .1rem 0 0; accent-color: #fff; }
.appointment-booking-form__consent span { letter-spacing: 0 !important; line-height: 1.45; text-transform: none !important; }
.appointment-booking-form__privacy { margin: -.25rem 0 .2rem !important; color: #918a83 !important; font-size: .57rem; text-align: left; }
.appointment-booking-form__privacy a { color: inherit; text-decoration: underline; }
.appointment-booking-form__error { margin: 0 !important; border: 1px solid rgba(255,160,160,.36); padding: .7rem; color: #ffd3d3 !important; background: rgba(140,20,20,.14); font-size: .65rem; text-align: left; }
.appointment-booking-form__submit { width: 100%; min-height: 3rem; border: 1px solid #fff; padding: .7rem 1rem; color: #080808; background: #fff; font: inherit; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.appointment-booking-form__submit:disabled { opacity: .5; cursor: wait; }
.appointment-booking-form .appointment-tray__back { margin-top: -.2rem; }
.appointment-booking-form__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.appointment-tray__confirmation { align-content: center; text-align: center; }
.hair-service-choice[aria-pressed="true"] b { border-color: #fff; color: #090909; background: #fff; }
.hair-service-choice[aria-pressed="true"] b:before { content: "✓ "; }
.appointment-service-action { display: inline-flex; min-height: 1.75rem; align-items: center; justify-content: center; margin-left: .65rem; padding: .25rem .65rem; border: 1px solid rgba(255,255,255,.48); border-radius: 999px; color: #fff; font-size: .54rem; font-weight: 400; letter-spacing: .12em; line-height: 1; text-transform: uppercase; transition: background .18s ease,color .18s ease,border-color .18s ease; }
.mcard.appointment-service-link .appointment-service-action { width: max-content; margin: .9rem 0 0; }
.appointment-service-link:hover .appointment-service-action,.appointment-service-link:focus-visible .appointment-service-action,.appointment-service-link[aria-pressed="true"] .appointment-service-action { border-color: #fff; color: #090909; background: #fff; }
.appointment-service-link[aria-pressed="true"] .appointment-service-action:before { content: "✓ "; margin-right: .18rem; }

/* A quiet final add-on offer before live availability. */
.bag-edit-offer {
  width: min(92vw,31rem);
  max-width: none;
  margin: auto;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: .2rem;
  padding: 0;
  color: #f5f1ec;
  background: rgba(12,12,12,.96);
  box-shadow: 0 1.8rem 6rem rgba(0,0,0,.58);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}
.bag-edit-offer::backdrop { background: rgba(0,0,0,.7); backdrop-filter: blur(3px); }
.bag-edit-offer__inner { position: relative; padding: clamp(2rem,6vw,3.3rem) clamp(1.25rem,5vw,2.7rem) clamp(1.5rem,5vw,2.35rem); text-align: center; }
.bag-edit-offer__close { position: absolute; top: .6rem; right: .7rem; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border: 0; color: #d9d3cc; background: transparent; font: 300 1.35rem/1 Poppins,sans-serif; cursor: pointer; }
.bag-edit-offer__eyebrow { margin: 0 0 .55rem; color: #aaa39c; font-size: .55rem; letter-spacing: .17em; text-transform: uppercase; }
.bag-edit-offer h2 { margin: 0; color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,7vw,3rem); font-weight: 400; letter-spacing: -.04em; line-height: 1; }
.bag-edit-offer__inner > p:not(.bag-edit-offer__eyebrow) { max-width: 23rem; margin: 1rem auto 0; color: #c9c2bb; font-size: .82rem; line-height: 1.65; }
.bag-edit-offer__outcome { max-width: 20rem !important; color: #f2eee9 !important; font-size: .78rem !important; line-height: 1.5 !important; }
.bag-edit-offer__price { margin-top: .55rem !important; color: #a9a39c !important; font-size: .66rem !important; letter-spacing: .16em; text-transform: uppercase; }
.bag-edit-offer__actions { display: grid; gap: .65rem; margin-top: 1rem; }
.bag-edit-offer__actions button { min-height: 3rem; border: 1px solid #fff; padding: .7rem 1rem; font: 400 .62rem/1.3 Poppins,sans-serif; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
.bag-edit-offer__add { color: #080808; background: #fff; }
.bag-edit-offer__skip { color: #fff; background: transparent; }
.bag-edit-offer__actions button:hover,.bag-edit-offer__actions button:focus-visible,.bag-edit-offer__close:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

@media (width<=640px) {
  .bag-edit-offer { width: calc(100vw - 1.25rem); }
  .bag-edit-offer__inner { padding-top: 2.4rem; }
}

.booking-client-links { width: min(92%,48rem); margin: 2rem auto 3rem; border: 1px solid rgba(255,255,255,.2); padding: 1.2rem; text-align: center; background: rgba(10,10,10,.7); }
.booking-client-links__eyebrow { margin: 0 0 .8rem; color: #aaa39c; font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; }
.booking-client-links__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.booking-client-links__actions a { min-width: 9.75rem; border: 1px solid rgba(255,255,255,.52); padding: .7rem 1rem; color: #fff; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.booking-client-links__actions a:hover,.booking-client-links__actions a:focus-visible { border-color: #fff; background: rgba(255,255,255,.08); outline: 2px solid #fff; outline-offset: 3px; }
.booking-client-links__note { max-width: 35rem; margin: .85rem auto 0; color: #aaa39c; font-size: .66rem; line-height: 1.55; }

/* Service squares rest as titles, then reveal details and booking controls. */
.mcard.appointment-service-link {
  min-height: 8.25rem;
  justify-content: flex-end;
  overflow: hidden;
  transition: min-height .28s ease,background .2s,border-color .2s;
}
.mcard.appointment-service-link > .meta,
.mcard.appointment-service-link > p,
.mcard.appointment-service-link > .appointment-service-action {
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(.35rem);
  transition: max-height .3s ease,opacity .2s ease,transform .3s ease,margin .3s ease;
}
.mcard.appointment-service-link:hover,
.mcard.appointment-service-link:focus-visible,
.mcard.appointment-service-link[data-expanded="true"] { min-height: 12rem; }

/* Keep glass service cards legible when the global light-hover treatment is active. */
.makeup-page .mcard.appointment-service-link:hover,
.makeup-page .mcard.appointment-service-link:focus-visible,
.makeup-page .mcard.appointment-service-link:active,
.makeup-page .mcard.appointment-service-link[data-expanded="true"],
.makeup-page .mcard.appointment-service-link[aria-pressed="true"] {
  color: #f4f1ed;
  background: rgba(8,8,8,.38);
  border-color: #fff;
}
.makeup-page .mcard.appointment-service-link:hover > h3,
.makeup-page .mcard.appointment-service-link:focus-visible > h3,
.makeup-page .mcard.appointment-service-link:active > h3,
.makeup-page .mcard.appointment-service-link[data-expanded="true"] > h3,
.makeup-page .mcard.appointment-service-link[aria-pressed="true"] > h3 { color: #fff; }
.makeup-page .mcard.appointment-service-link:hover > .meta,
.makeup-page .mcard.appointment-service-link:hover > p,
.makeup-page .mcard.appointment-service-link:focus-visible > .meta,
.makeup-page .mcard.appointment-service-link:focus-visible > p,
.makeup-page .mcard.appointment-service-link:active > .meta,
.makeup-page .mcard.appointment-service-link:active > p,
.makeup-page .mcard.appointment-service-link[data-expanded="true"] > .meta,
.makeup-page .mcard.appointment-service-link[data-expanded="true"] > p,
.makeup-page .mcard.appointment-service-link[aria-pressed="true"] > .meta,
.makeup-page .mcard.appointment-service-link[aria-pressed="true"] > p { color: #f2f0ee; }
.mcard.appointment-service-link:hover > .meta,
.mcard.appointment-service-link:hover > p,
.mcard.appointment-service-link:hover > .appointment-service-action,
.mcard.appointment-service-link:focus-visible > .meta,
.mcard.appointment-service-link:focus-visible > p,
.mcard.appointment-service-link:focus-visible > .appointment-service-action,
.mcard.appointment-service-link[data-expanded="true"] > .meta,
.mcard.appointment-service-link[data-expanded="true"] > p,
.mcard.appointment-service-link[data-expanded="true"] > .appointment-service-action {
  max-height: 12rem;
  opacity: 1;
  overflow: visible;
  transform: none;
}
.mcard.appointment-service-link:hover > .meta,
.mcard.appointment-service-link:focus-visible > .meta,
.mcard.appointment-service-link[data-expanded="true"] > .meta { margin-top: .2rem; margin-bottom: .35rem; }
.mcard.appointment-service-link:hover > p,
.mcard.appointment-service-link:focus-visible > p,
.mcard.appointment-service-link[data-expanded="true"] > p { margin-bottom: .35rem; }
.mcard.appointment-service-link:hover > .appointment-service-action,
.mcard.appointment-service-link:focus-visible > .appointment-service-action,
.mcard.appointment-service-link[data-expanded="true"] > .appointment-service-action { margin-top: .9rem; }

/* Routine Add-On stays fully readable, with its booking dependency first. */
.makeup-page .routine-addon-card:not(.reveal-service-card) { justify-content: flex-start; }
.makeup-page .routine-addon-card .routine-addon-warning { margin: .85rem 0 .7rem; padding: .75rem .8rem; border: 1px solid rgba(255,255,255,.52); color: #f6f2ed; background: rgba(0,0,0,.28); font-size: .66rem; line-height: 1.55; }
.makeup-page .routine-addon-card .routine-addon-warning strong { display: block; margin-bottom: .16rem; color: #fff; font-size: .57rem; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; }
.makeup-page .routine-addon-card:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Service cards stay compact until deliberate hover, keyboard focus, or touch reveal. */
.reveal-service-card { min-height: 8.25rem; justify-content: flex-start; overflow: hidden; cursor: pointer; transition: min-height .28s ease,background .2s,border-color .2s; }
.service-card-reveal-trigger { width: 100%; min-height: 2.75rem; margin: 0; padding: 0; display: flex; align-items: flex-start; border: 0; color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.reveal-service-card > h3 { width: 100%; min-height: 2.75rem; margin: 0; display: flex; align-items: flex-start; color: #fff; text-align: left; }
.service-card-reveal-trigger:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.reveal-service-card > .meta,
.reveal-service-card > p,
.reveal-service-card > .service-format,
.reveal-service-card > .service-card-booking-action { max-height: 0; margin-top: 0; margin-bottom: 0; opacity: 0; overflow: hidden; visibility: hidden; pointer-events: none; transform: translateY(.35rem); transition: max-height .35s ease,opacity .2s ease,transform .3s ease,margin .3s ease,visibility 0s linear .35s; }
.reveal-service-card:hover,
.reveal-service-card:focus-visible,
.reveal-service-card:focus-within,
.reveal-service-card[data-expanded="true"] { min-height: 12rem; border-color: #fff; background: rgba(8,8,8,.38); }
.reveal-service-card:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.reveal-service-card:hover > .meta,
.reveal-service-card:hover > p,
.reveal-service-card:hover > .service-format,
.reveal-service-card:hover > .service-card-booking-action,
.reveal-service-card:focus-visible > .meta,
.reveal-service-card:focus-visible > p,
.reveal-service-card:focus-visible > .service-format,
.reveal-service-card:focus-visible > .service-card-booking-action,
.reveal-service-card:focus-within > .meta,
.reveal-service-card:focus-within > p,
.reveal-service-card:focus-within > .service-format,
.reveal-service-card:focus-within > .service-card-booking-action,
.reveal-service-card[data-expanded="true"] > .meta,
.reveal-service-card[data-expanded="true"] > p,
.reveal-service-card[data-expanded="true"] > .service-format,
.reveal-service-card[data-expanded="true"] > .service-card-booking-action { max-height: 40rem; opacity: 1; overflow: visible; visibility: visible; pointer-events: auto; transform: none; transition-delay: 0s; }
.reveal-service-card:hover > .meta,
.reveal-service-card:focus-visible > .meta,
.reveal-service-card:focus-within > .meta,
.reveal-service-card[data-expanded="true"] > .meta { margin-top: .2rem; margin-bottom: .35rem; }
.reveal-service-card:hover > p,
.reveal-service-card:focus-visible > p,
.reveal-service-card:focus-within > p,
.reveal-service-card[data-expanded="true"] > p { margin-bottom: .35rem; }
.reveal-service-card:hover > .service-format,
.reveal-service-card:hover > .service-card-booking-action,
.reveal-service-card:focus-visible > .service-format,
.reveal-service-card:focus-visible > .service-card-booking-action,
.reveal-service-card:focus-within > .service-format,
.reveal-service-card:focus-within > .service-card-booking-action,
.reveal-service-card[data-expanded="true"] > .service-format,
.reveal-service-card[data-expanded="true"] > .service-card-booking-action { margin-top: 1rem; }
.service-card-booking-action { min-height: 3.25rem; padding: .7rem .8rem; display: flex; align-items: center; justify-content: space-between; gap: .8rem; border: 1px solid rgba(255,255,255,.5); color: #fff; background: rgba(255,255,255,.045); text-decoration: none; }
.service-card-booking-action:hover,.service-card-booking-action:focus-visible { color: #090909; background: #fff; outline: 2px solid #fff; outline-offset: 2px; }
.service-card-booking-action > span { font-size: .68rem; letter-spacing: .04em; }
.service-card-booking-action b { font-size: .49rem; font-weight: 300; letter-spacing: .12em; text-align: right; text-transform: uppercase; }
.look-service-page .look-service-card { justify-content: flex-end; text-align: left; }
.look-service-page .look-service-card > .meta,
.look-service-page .look-service-card > p { color: #f2f0ee; }
.look-service-page .look-service-card > h3,
.look-service-page .look-service-card .service-card-reveal-trigger { align-items: flex-end; justify-content: flex-start; text-align: left; }
.look-service-page .look-service-card:hover,
.look-service-page .look-service-card:focus-visible,
.look-service-page .look-service-card:focus-within,
.look-service-page .look-service-card[data-expanded="true"] { justify-content: flex-start; }
.look-service-page .look-service-card:hover > h3,
.look-service-page .look-service-card:focus-visible > h3,
.look-service-page .look-service-card:focus-within > h3,
.look-service-page .look-service-card[data-expanded="true"] > h3,
.look-service-page .look-service-card:hover .service-card-reveal-trigger,
.look-service-page .look-service-card:focus-visible .service-card-reveal-trigger,
.look-service-page .look-service-card:focus-within .service-card-reveal-trigger,
.look-service-page .look-service-card[data-expanded="true"] .service-card-reveal-trigger { align-items: flex-start; }
.look-service-page .look-service-card > .service-format { border-top-width: 0; }
.look-service-page .look-service-card:hover > .service-format,
.look-service-page .look-service-card:focus-visible > .service-format,
.look-service-page .look-service-card:focus-within > .service-format,
.look-service-page .look-service-card[data-expanded="true"] > .service-format { border-top-width: 1px; }
.look-service-page .look-service-card--addon { width: 100%; grid-column: 1 / -1; justify-self: stretch; }
.look-service-page .look-service-card--addon > p { width: min(100%,44rem); margin-left: auto; margin-right: auto; align-self: center; text-align: left; }
.look-service-page .look-service-card--addon > .routine-addon-warning { margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; border-width: 0; }
.look-service-page .look-service-card--addon:hover > .routine-addon-warning,
.look-service-page .look-service-card--addon:focus-visible > .routine-addon-warning,
.look-service-page .look-service-card--addon:focus-within > .routine-addon-warning,
.look-service-page .look-service-card--addon[data-expanded="true"] > .routine-addon-warning { margin-top: .85rem; margin-bottom: .7rem; padding: .75rem .8rem; border-width: 1px; }
.look-service-page .look-service-card--addon > .service-card-booking-action { width: min(100%,32rem); min-height: 0; margin-left: auto; margin-right: auto; padding-top: 0; padding-bottom: 0; border-width: 0; align-self: center; }
.look-service-page .look-service-card--addon:hover > .service-card-booking-action,
.look-service-page .look-service-card--addon:focus-visible > .service-card-booking-action,
.look-service-page .look-service-card--addon:focus-within > .service-card-booking-action,
.look-service-page .look-service-card--addon[data-expanded="true"] > .service-card-booking-action { min-height: 3.25rem; padding: .7rem .8rem; border-width: 1px; }
.style-wardrobe-page .wardrobe-service-card { justify-content: flex-end; text-align: left; }
.style-wardrobe-page .wardrobe-service-card > .meta,
.style-wardrobe-page .wardrobe-service-card > p { color: #f2f0ee; }
.style-wardrobe-page .wardrobe-service-card > h3,
.style-wardrobe-page .wardrobe-service-card .service-card-reveal-trigger { align-items: flex-end; justify-content: flex-start; text-align: left; }
.style-wardrobe-page .wardrobe-service-card:hover,
.style-wardrobe-page .wardrobe-service-card:focus-visible,
.style-wardrobe-page .wardrobe-service-card:focus-within,
.style-wardrobe-page .wardrobe-service-card[data-expanded="true"] { justify-content: flex-start; }
.style-wardrobe-page .wardrobe-service-card:hover > h3,
.style-wardrobe-page .wardrobe-service-card:focus-visible > h3,
.style-wardrobe-page .wardrobe-service-card:focus-within > h3,
.style-wardrobe-page .wardrobe-service-card[data-expanded="true"] > h3,
.style-wardrobe-page .wardrobe-service-card:hover .service-card-reveal-trigger,
.style-wardrobe-page .wardrobe-service-card:focus-visible .service-card-reveal-trigger,
.style-wardrobe-page .wardrobe-service-card:focus-within .service-card-reveal-trigger,
.style-wardrobe-page .wardrobe-service-card[data-expanded="true"] .service-card-reveal-trigger { align-items: flex-start; }
.style-wardrobe-page .wardrobe-service-card > .service-format { border-top-width: 0; }
.style-wardrobe-page .wardrobe-service-card:hover > .service-format,
.style-wardrobe-page .wardrobe-service-card:focus-visible > .service-format,
.style-wardrobe-page .wardrobe-service-card:focus-within > .service-format,
.style-wardrobe-page .wardrobe-service-card[data-expanded="true"] > .service-format { border-top-width: 1px; }
.style-wardrobe-page .appointment-tray-launch,
.look-service-page .appointment-tray-launch { position: static; width: max-content; margin: 0 0 .85rem auto; display: flex; justify-content: center; }

@media (width<=799px) {
  .style-wardrobe-page .appointment-tray-launch,
  .look-service-page .appointment-tray-launch { width: 100%; margin-bottom: .65rem; }
  .look-service-page .look-service-card--addon { width: 100%; grid-column: auto; }
}

/* Related-service path at the end of every focused page. */
.service-crosslink {
  width: min(92%,48rem);
  margin: clamp(2rem,5vw,4rem) auto 0;
  padding: 1.15rem 1.25rem 0;
  border-top: 1px solid rgba(255,255,255,.24);
  color: #e4ded8;
  font-size: .78rem;
  line-height: 1.65;
  text-align: center;
  text-shadow: 0 2px 18px rgba(0,0,0,.95);
}
.service-crosslink .mini-link { margin-left: .2rem; }

@media (width<=640px) {
  .appointment-tray { top: auto; bottom: 0; width: 100%; height: min(82dvh,42rem); border-radius: 1.1rem 1.1rem 0 0; transform: translateY(105%); }
  .appointment-tray[data-open="true"] { transform: translateY(0); }
  .appointment-tray-launch { right: .7rem; bottom: max(3.45rem,calc(env(safe-area-inset-bottom) + 3rem)); }
  .appointment-availability-list { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .appointment-tray,.appointment-tray-backdrop { transition: none; }
}

/* Keep the navigation and its top-down veil visible as the page scrolls. */
.page-bar,
.reading-page .page-bar {
  position: fixed;
  z-index: 50;
  top: 0;
  right: 0;
  left: 0;
  min-height: 0;
  background: transparent;
}

/* The pinned top navigation replaces the duplicate action bar at the bottom. */
.site > .fixed.inset-x-0.bottom-0 { display: none; }

/* One consistent transition from each service description into its choices. */
.hair-hero--wall,
.makeup-wall-hero,
.extension-wall-hero { min-height: auto; }
.hair-services,
.makeup-page .makeup-services,
.extension-page .extension-services { padding-top: 2.5rem; }

/* Give the guide and assessment the same title treatment as the service pages. */
.editorial-hero { min-height: auto; }
.editorial-hero h1 { max-width: 48rem; margin-inline: auto; font-size: clamp(3rem,6.2vw,5.6rem); }
.editorial-hero .lede { width: min(95%,42rem); }
.guide-page .page-main,
.reading-page .page-main { padding-top: 2.5rem; }
.guide-page .page-main > p:first-child,
.guide-page .page-main > h1:first-of-type,
.guide-page .page-main > h1:first-of-type + p { display: none; }
.reading-page .quiz-intro > .eyebrow:first-child,
.reading-page .quiz-intro > h1:first-of-type,
.reading-page .quiz-intro > .reading-intro { display: none; }

@media (width<=799px) {
  .editorial-hero { min-height: auto; padding-top: calc(var(--service-copy-top) - var(--hero-signature-space)); }
  .editorial-hero h1 { font-size: clamp(2.55rem,11.5vw,3.75rem); line-height: .94; }
  .editorial-hero--assessment h1 { font-size: clamp(2.35rem,10.6vw,3.5rem); }
  .guide-page .page-main,
  .reading-page .page-main { padding-top: 2rem; }
}
