@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Manrope:wght@400;500;600;700;800&display=swap");

/*
 * Modern light theme v4
 * Shared by the home page, AirTouch, keratin and price list.
 */
:root {
  --paper: #fbfaf7;
  --cream: #f7eeee;
  --cream2: #eedfe0;
  --ink: #241c20;
  --muted: #756a6f;
  --gold: #9a3657;
  --gold2: #d9a5b5;
  --wine: #8c2f4e;
  --wine-dark: #661a36;
  --rose: #f4e7ea;
  --line: rgba(71, 45, 55, .13);
  --shadow: 0 28px 80px rgba(73, 44, 54, .12);
  --shadow-soft: 0 14px 40px rgba(73, 44, 54, .08);
  --display: "Cormorant Garamond", Georgia, serif;
  --body: "Manrope", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
::selection { background: #e8c8d1; color: var(--ink); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
a, button, input, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid rgba(140, 47, 78, .28); outline-offset: 3px; }
.shell { width: min(calc(100% - 3rem), 1200px); margin-inline: auto; }
.skip { position: fixed; z-index: 300; top: -5rem; left: 1rem; padding: .7rem 1rem; border-radius: 10px; background: var(--ink); color: #fff; }
.skip:focus { top: 1rem; }

/* Shared header */
header,
.header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(67, 43, 51, .08);
  background: rgba(251, 250, 247, .9);
  box-shadow: none;
  backdrop-filter: blur(18px) saturate(150%);
  transition: box-shadow .25s ease, background .25s ease;
}
header.is-scrolled { background: rgba(255, 255, 255, .94); box-shadow: 0 10px 30px rgba(59, 38, 46, .07); }
.navrow { min-height: 78px; display: grid; grid-template-columns: minmax(220px, 1fr) auto minmax(150px, 1fr); align-items: center; gap: 2rem; }
.logo { width: fit-content; color: var(--ink); font: 600 2.25rem/1 var(--display); letter-spacing: -.065em; }
.logo span { color: var(--wine); }
.brand { display: inline-flex; width: max-content; align-items: center; gap: .75rem; }
.brand img { width: 48px; height: 48px; border: 1px solid rgba(140, 47, 78, .13); border-radius: 50%; box-shadow: 0 7px 20px rgba(74, 44, 54, .1); }
.brand span { display: grid; gap: .06rem; }
.brand b { color: var(--ink); font: 600 1.05rem/1.05 var(--display); letter-spacing: .01em; }
.brand small { color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.desktopnav { display: flex; align-items: center; gap: clamp(1.1rem, 2.1vw, 2rem); }
.desktopnav a { position: relative; padding: 1rem 0; color: #4f4448; font-size: .78rem; font-weight: 700; }
.desktopnav a::after { position: absolute; right: 100%; bottom: .74rem; left: 0; height: 1.5px; background: var(--wine); content: ""; transition: right .22s ease; }
.desktopnav a:hover,
.desktopnav a.active { color: var(--wine); }
.desktopnav a:hover::after,
.desktopnav a.active::after { right: 0; }
.desktopcta { justify-self: end; }
.menubtn { display: none; width: 48px; height: 48px; place-items: center; justify-self: end; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); cursor: pointer; }
.menubtn i { font-size: 1.3rem; }
.mobilenav { position: absolute; top: 70px; right: 1rem; left: 1rem; display: grid; gap: .15rem; padding: .9rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(255, 255, 255, .98); box-shadow: var(--shadow); }
.mobilenav[hidden] { display: none; }
.mobilenav > a:not(.btn) { padding: .82rem .9rem; border-radius: 10px; color: #4f4448; font-size: .9rem; font-weight: 700; }
.mobilenav > a:not(.btn):hover { background: var(--rose); color: var(--wine); }

/* Buttons and common type */
.btn,
.hero-section .btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .82rem 1.35rem;
  border: 1px solid var(--wine);
  border-radius: 13px;
  background: var(--wine);
  color: #fff;
  box-shadow: 0 12px 28px rgba(119, 34, 65, .18);
  font-size: .84rem;
  font-weight: 800;
  line-height: 1.2;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.btn:hover { background: var(--wine-dark); transform: translateY(-2px); box-shadow: 0 16px 32px rgba(119, 34, 65, .22); }
.btn.small { min-height: 44px; padding: .72rem 1.15rem; border-radius: 11px; }
.btn.ghost,
.hero-section .btn-ghost { border-color: var(--line); background: rgba(255, 255, 255, .55); color: var(--ink); box-shadow: none; }
.btn.ghost:hover,
.hero-section .btn-ghost:hover { border-color: rgba(140, 47, 78, .25); background: #fff; color: var(--wine); }
.eyebrow,
.section-tag { display: block; margin: 0 0 .75rem; color: var(--wine); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.section h2,
.booking h2,
.visit h2,
.about-title,
.section-title,
.subHero h1,
.priceHero h1 { color: var(--ink); font-family: var(--display); font-weight: 600; letter-spacing: -.045em; }
.section h2,
.booking h2,
.visit h2 { margin: 0; font-size: clamp(3rem, 5.1vw, 5rem); line-height: .94; }
h1 em,
h2 em,
.highlight { color: var(--wine) !important; font-family: var(--display); font-style: italic; font-weight: 500; }
.lead { color: var(--muted); font-size: 1rem; line-height: 1.8; }
.section { padding: clamp(5rem, 8vw, 8rem) 0; }
.sectionHead { display: grid; grid-template-columns: 1.08fr .92fr; align-items: end; gap: clamp(2.5rem, 7vw, 6rem); margin-bottom: 2.8rem; }
.sectionHead > p { max-width: 560px; margin: 0 0 .25rem; color: var(--muted); line-height: 1.8; }

/* Home hero */
.hero-section {
  position: relative;
  overflow: hidden;
  padding: clamp(3.8rem, 7vw, 6.6rem) 1.5rem;
  background:
    radial-gradient(circle at 8% 5%, rgba(209, 154, 171, .24), transparent 29%),
    radial-gradient(circle at 92% 90%, rgba(232, 205, 191, .28), transparent 34%),
    linear-gradient(135deg, #fbfaf7 0%, #f8f1ef 100%);
  color: var(--ink);
}
.hero-section::before { position: absolute; right: -250px; bottom: -340px; width: 650px; height: 650px; border: 1px solid rgba(140, 47, 78, .12); border-radius: 50%; content: ""; }
.hero-container { position: relative; z-index: 1; width: min(100%, 1200px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(390px, .94fr); align-items: center; gap: clamp(3rem, 7vw, 6.8rem); }
.hero-content { max-width: 680px; }
.hero-location { width: fit-content; display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.4rem; padding: .52rem .78rem; border: 1px solid rgba(140, 47, 78, .13); border-radius: 999px; background: rgba(255, 255, 255, .65); color: #6c5d63; font-size: .72rem; font-weight: 700; backdrop-filter: blur(10px); }
.hero-location i { color: var(--wine); }
.hero-title { max-width: 740px; margin: 0; color: var(--ink); font: 600 clamp(4rem, 6.8vw, 6.7rem)/.88 var(--display); letter-spacing: -.055em; text-wrap: balance; }
.hero-title .highlight { display: inline; font-size: 1.04em; }
.hero-lead { max-width: 620px; margin: 1.55rem 0 0; color: #665a5f; font-size: clamp(.95rem, 1.2vw, 1.08rem); line-height: 1.78; }
.hero-tags { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.35rem 0 0; }
.tag-pill { min-height: 38px; display: inline-flex; align-items: center; gap: .4rem; padding: .48rem .72rem; border: 1px solid var(--line); border-radius: 999px; background: rgba(255, 255, 255, .72); color: #51454a; font-size: .68rem; font-weight: 800; transition: border-color .2s ease, transform .2s ease, background .2s ease; }
.tag-pill:hover { border-color: rgba(140, 47, 78, .25); background: #fff; color: var(--wine); transform: translateY(-1px); }
.tag-pill i,
.tag-pill .badge-dot { color: var(--wine); }
.tag-pill--accent .badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--wine); box-shadow: 0 0 0 4px rgba(140, 47, 78, .09); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin: 1.65rem 0 0; }
.hero-trust { margin-top: 1.35rem; }
.google-review-card { width: fit-content; display: inline-flex; align-items: center; gap: .75rem; padding: .7rem .85rem; border: 1px solid var(--line); border-radius: 13px; background: rgba(255, 255, 255, .72); box-shadow: 0 7px 22px rgba(65, 40, 49, .05); color: inherit; }
.google-review-card:hover { border-color: rgba(140, 47, 78, .22); background: #fff; }
.google-icon { display: grid; place-items: center; }
.rating-stars { display: flex; align-items: center; gap: .35rem; }
.rating-num { color: var(--ink); font-size: .78rem; font-weight: 800; }
.stars { color: #e8a228; font-size: .72rem; letter-spacing: .08em; }
.review-label { display: block; margin-top: .08rem; color: var(--muted); font-size: .6rem; }
.hero-visual { position: relative; display: flex; justify-content: center; }
.hero-visual::before { position: absolute; inset: 5% 0 7% 5%; border: 1px solid rgba(140, 47, 78, .24); border-radius: 45% 45% 30px 30px; content: ""; transform: rotate(2.8deg); }
.image-card { position: relative; overflow: hidden; width: min(100%, 480px); aspect-ratio: .79; border: 8px solid rgba(255, 255, 255, .72); border-radius: 45% 45% 28px 28px; background: #e7dedc; box-shadow: var(--shadow); }
.image-card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.floating-stylist-card { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; display: flex; align-items: center; gap: .75rem; padding: .72rem .8rem; border: 1px solid rgba(255, 255, 255, .62); border-radius: 16px; background: rgba(255, 255, 255, .88); box-shadow: 0 14px 35px rgba(55, 34, 42, .14); backdrop-filter: blur(14px); }
.stylist-avatar-icon { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 13px; background: var(--wine); color: #fff; }
.stylist-meta strong { display: block; color: var(--ink); font: 600 1.06rem/1.1 var(--display); }
.stylist-meta span { display: block; margin-top: .12rem; color: var(--muted); font-size: .58rem; }

/* Home sections */
.ticker-bar { min-height: 60px; display: flex; overflow: hidden; padding: 0; background: var(--wine); color: #fff; white-space: nowrap; user-select: none; }
.ticker-track { display: flex; width: max-content; animation: ticker-scroll 32s linear infinite; }
.ticker-group { display: flex; align-items: center; gap: 1.8rem; padding-right: 1.8rem; }
.ticker-group span { color: #fff; font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ticker-group i { color: #eabccc; font-size: .55rem; }
.ticker-bar:hover .ticker-track { animation-play-state: paused; }
.about-section { padding: clamp(5rem, 8vw, 8rem) 1.5rem; background: #fff; color: var(--ink); }
.about-container { width: min(100%, 1200px); margin: 0 auto; display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: clamp(3rem, 8vw, 7rem); }
.about-content { position: sticky; top: 115px; }
.about-title { margin: 0; font-size: clamp(3.1rem, 5vw, 4.9rem); line-height: .94; }
.about-lead { margin: 1.35rem 0 0; color: var(--muted); font-size: .98rem; line-height: 1.82; }
.about-cta-link,
.link { width: fit-content; display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.6rem; padding-bottom: .25rem; border-bottom: 1.5px solid var(--wine); color: var(--wine); font-size: .76rem; font-weight: 800; }
.about-cta-link i,
.link i { transition: transform .2s ease; }
.about-cta-link:hover i,
.link:hover i { transform: translateX(4px); }
.about-cards-grid { display: grid; gap: .85rem; }
.feature-card { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 1rem; padding: 1.35rem; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.feature-card:hover { border-color: rgba(140, 47, 78, .22); box-shadow: var(--shadow-soft); transform: translateY(-3px); }
.feature-card--highlight { margin-left: 2rem; background: var(--rose); }
.card-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: #fff; color: var(--wine); box-shadow: 0 8px 20px rgba(80, 46, 59, .07); }
.feature-card h3 { margin: .05rem 0 .25rem; color: var(--ink); font: 600 1.45rem/1.05 var(--display); }
.feature-card p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.72; }
.signature-section { padding: clamp(5rem, 8vw, 8rem) 1.5rem; background: var(--rose); color: var(--ink); }
.signature-container { width: min(100%, 1200px); margin: 0 auto; }
.section-header { display: grid; grid-template-columns: 1.08fr .92fr; align-items: end; gap: clamp(2.5rem, 7vw, 6rem); margin-bottom: 2.8rem; }
.section-title { max-width: 680px; margin: 0; font-size: clamp(3.1rem, 5vw, 5rem); line-height: .94; }
.section-desc { max-width: 560px; margin: 0 0 .2rem; color: var(--muted); line-height: 1.8; }
.signature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.signature-card { min-height: 430px; display: flex; flex-direction: column; padding: clamp(1.6rem, 3.5vw, 2.6rem); border: 1px solid var(--line); border-radius: 24px; box-shadow: none; transition: transform .25s ease, box-shadow .25s ease; }
.signature-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-4px); }
.signature-card.card-dark { border-color: rgba(140, 47, 78, .16); background: linear-gradient(145deg, #ead7dd, #f5e9ec); color: var(--ink); }
.signature-card.card-light { background: rgba(255, 255, 255, .84); color: var(--ink); }
.signature-card.card-dark .card-body h3 { color: var(--ink); }
.signature-card.card-dark .card-text { color: var(--muted); }
.signature-card.card-dark .card-features li { color: #5d5156; }
.signature-card.card-dark .card-features i,
.signature-card.card-dark .card-action { color: var(--wine); }
.signature-card .card-top { display: flex; align-items: center; justify-content: space-between; }
.signature-card .card-num { color: var(--wine); font: 600 1.1rem var(--display); }
.signature-card .card-badge { width: fit-content; padding: .36rem .55rem; border: 0; border-radius: 999px; background: var(--wine); color: #fff; font-size: .5rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.signature-card .card-body { margin-top: auto; padding-top: 3rem; }
.signature-card h3 { max-width: 540px; margin: 0; color: var(--ink); font: 600 clamp(2.5rem, 4.4vw, 4.25rem)/.92 var(--display); letter-spacing: -.04em; }
.signature-card .card-text { max-width: 560px; margin: 1rem 0 0; color: var(--muted); font-size: .82rem; line-height: 1.75; }
.signature-card .card-features { display: grid; gap: .55rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.signature-card .card-features li { display: flex; align-items: flex-start; gap: .55rem; color: #5d5156; font-size: .7rem; }
.signature-card .card-features i { color: var(--wine); }
.signature-card .card-footer { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.signature-card .card-action { display: flex; align-items: center; justify-content: space-between; color: var(--wine); font-size: .74rem; font-weight: 800; }
.signature-card .card-action i { transition: transform .2s ease; }
.signature-card .card-action:hover i { transform: translateX(5px); }
.transformation { background: #fff; color: var(--ink); }
.resultsIntro { display: grid; grid-template-columns: 1.08fr .92fr; align-items: end; gap: clamp(2.5rem, 7vw, 6rem); margin-bottom: 2.8rem; }
.resultsIntro .lead { max-width: 560px; margin: 0 0 .2rem; }
.resultsGallery { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.resultShot { position: relative; overflow: hidden; min-height: 560px; border-radius: 24px; background: #ddd; box-shadow: var(--shadow-soft); }
.resultShot::after { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(36, 24, 30, .68)); content: ""; }
.resultShot img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.resultShot:hover img { transform: scale(1.035); }
.resultShot > span { position: absolute; z-index: 2; right: 1.2rem; bottom: 1.2rem; left: 1.2rem; display: grid; grid-template-columns: 1fr auto; align-items: end; color: #fff; }
.resultShot small { grid-column: 1; color: rgba(255, 255, 255, .76); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.resultShot b { grid-column: 1; margin-top: .15rem; font: 600 2rem/1 var(--display); }
.resultShot i { grid-row: 1 / 3; grid-column: 2; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .35); border-radius: 13px; background: rgba(255, 255, 255, .12); backdrop-filter: blur(10px); }
.prices { background: var(--paper); }
.priceGrid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; border: 0; }
.priceGrid article { min-height: 92px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid var(--line) !important; border-radius: 16px; background: #fff; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.priceGrid article:hover { border-color: rgba(140, 47, 78, .22) !important; box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.priceGrid article > i { width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 12px; background: var(--rose); color: var(--wine); }
.priceGrid article > span { display: grid; }
.priceGrid article b { color: var(--ink); font: 600 1.2rem/1.05 var(--display); }
.priceGrid article small { margin-top: .15rem; color: var(--muted); font-size: .56rem; }
.priceGrid article strong { color: var(--wine); font: 600 1.05rem var(--display); text-align: right; }

/* Booking, FAQ, contact */
.booking { padding: clamp(5rem, 8vw, 8rem) 0; background: linear-gradient(135deg, #f3e4e7, #f9f3f1); color: var(--ink); }
.bookingGrid { display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: clamp(3rem, 7vw, 6.5rem); }
.booking .eyebrow { color: var(--wine); }
.booking .lead { color: var(--muted); }
.phone { width: fit-content; display: flex; align-items: center; gap: .75rem; margin-top: 1.4rem; }
.phone > i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: #fff; color: var(--wine); box-shadow: var(--shadow-soft); }
.phone span { display: grid; }
.phone small { color: var(--muted); font-size: .58rem; }
.phone b { color: var(--ink); font-size: .9rem; }
.bookingCard { border: 1px solid rgba(140, 47, 78, .13); border-radius: 22px; background: rgba(255, 255, 255, .92); box-shadow: var(--shadow); }
.bookingWidget { overflow: hidden; }
.bookingWidget .widgetTop { border-color: rgba(255,255,255,.12); background: var(--wine-dark); color: rgba(255,255,255,.82); }
.bookingWidget .widgetProgress { background: #fffdfd; }
.bookingWidget .widgetProgress .active { color: var(--wine); }
.bookingWidget .widgetProgress .active b { border-color: var(--wine); background: var(--wine); color: #fff; box-shadow: 0 0 0 4px rgba(140,47,78,.12); }
.bookingWidget .widgetHeading p { color: var(--wine); }
.bookingWidget .widgetService > i:first-child { background: var(--rose); color: var(--wine); }
.bookingWidget .widgetService:hover { border-color: rgba(140,47,78,.42); background: #fff8fa; box-shadow: 0 8px 22px rgba(91,40,58,.09); }
.bookingWidget .widgetMore,
.bookingWidget .widgetMoreDays,
.bookingWidget .widgetLoadError a,
.bookingWidget .widgetSuccess > button { color: var(--wine); }
.bookingWidget .widgetSelected,
.bookingWidget .widgetNotice,
.bookingWidget .widgetSummary { border-color: rgba(140,47,78,.2); background: #fbf1f4; }
.bookingWidget .widgetSelected > i,
.bookingWidget .widgetNotice > i,
.bookingWidget .widgetEmpty > i { background: #edd7de; color: var(--wine); }
.bookingWidget .widgetSelected em,
.bookingWidget .widgetSummary em { color: var(--wine); }
.bookingWidget .widgetDateFields input:focus,
.bookingWidget .widgetContactGrid input:focus,
.bookingWidget .widgetNotes textarea:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(140,47,78,.12); }
.bookingWidget .widgetTimeChoice input:checked + span,
.bookingWidget .widgetDay:hover,
.bookingWidget .widgetDay.active,
.bookingWidget .widgetSlot:hover,
.bookingWidget .widgetSlot.active { border-color: var(--wine); background: var(--wine); color: #fff; }
.bookingWidget .widgetDay.active small,
.bookingWidget .widgetDay.active span,
.bookingWidget .widgetSlot.active small { color: #f2dbe2; }
.bookingWidget .widgetPrimary,
.bookingWidget .widgetLoadError button,
.bookingWidget .widgetSuccess > a { border-color: var(--wine); background: var(--wine); box-shadow: 0 10px 24px rgba(102,26,54,.18); }
.bookingWidget .widgetPrimary:hover { background: var(--wine-dark); }
.bookingWidget .widgetLegal input { accent-color: var(--wine); }
.bookingWidget .widgetLegal a { color: var(--wine); }
.faq { background: #fff; }
.faqGrid { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(3rem, 7vw, 6.5rem); }
.faqGrid > div:first-child { position: sticky; top: 115px; }
.faqList,
.faqGrid > div:last-child { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--ink); cursor: pointer; list-style: none; font: 600 1.18rem var(--display); }
summary::-webkit-details-marker { display: none; }
summary span { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--wine); font: 500 1rem var(--body); transition: transform .2s ease, background .2s ease, color .2s ease; }
details[open] summary span { background: var(--wine); color: #fff; transform: rotate(45deg); }
details p { max-width: 700px; margin: -.15rem 4rem 1.4rem 0; color: var(--muted); font-size: .78rem; line-height: 1.75; }
.visit { padding: clamp(4rem, 7vw, 6rem) 0; background: var(--rose); }
.visitGrid { display: grid; grid-template-columns: 1.05fr 1fr .78fr; align-items: stretch; gap: .8rem; }
.visit h2 { font-size: clamp(2.8rem, 4.2vw, 4.4rem); }
.visitGrid > div:first-child > p:last-child { color: var(--muted); line-height: 1.7; }
.visitGrid > a,
.hours { display: flex; align-items: center; gap: .75rem; padding: 1.1rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(255, 255, 255, .72); }
.visitGrid > a:hover { border-color: rgba(140, 47, 78, .22); background: #fff; }
.visitGrid > a > i:first-child,
.hours > i { color: var(--wine); font-size: 1.2rem; }
.visitGrid > a > i:last-child { margin-left: auto; }
.visitGrid > a span,
.hours span { display: grid; }
.visitGrid > a b,
.hours b { color: var(--ink); font-size: .68rem; }
.visitGrid > a small,
.hours small { margin-top: .18rem; color: var(--muted); font-size: .58rem; line-height: 1.45; }

/* Footer */
footer { padding: 4rem 0 1.4rem; background: #2d2025; color: #fff; }
.foot { display: grid; grid-template-columns: 1.1fr 1fr .65fr auto; align-items: start; gap: 2.5rem; }
.foot .logo { color: #fff; font-size: 3rem; }
.footerBrand img { width: 68px; height: 68px; border-radius: 50%; }
.foot > div:first-child p { color: #bbaeb3; font-size: .66rem; line-height: 1.7; }
.foot > div:not(:first-child) { display: grid; gap: .55rem; }
.foot > div:not(:first-child) > b { color: #e5b6c5; font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.foot > div:not(:first-child) > a,
.foot > div:not(:first-child) > span { color: #c4b9bd; font-size: .66rem; line-height: 1.6; }
.foot > .btn { border-color: #fff; background: #fff; color: var(--wine-dark); box-shadow: none; }
.foot > .btn:hover { background: #f2dde4; }
.social { display: flex !important; gap: .45rem; }
.social a { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .16); border-radius: 12px; color: #fff; }
.social a:hover { border-color: rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .06); }
.copyright { display: flex; justify-content: space-between; margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid rgba(255, 255, 255, .1); color: #887a80; font-size: .56rem; }

/* Service pages */
.subHero { position: relative; overflow: hidden; padding: clamp(3.8rem, 7vw, 6.8rem) 0; background: radial-gradient(circle at 86% 5%, rgba(219, 167, 183, .25), transparent 35%), linear-gradient(135deg, #fbfaf7, #f6edec); }
.subHero.keratinHero { background: radial-gradient(circle at 82% 4%, rgba(224, 190, 172, .32), transparent 37%), linear-gradient(135deg, #fbfaf7, #f5ece8); }
.subHeroGrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .78fr); align-items: center; gap: clamp(3rem, 7vw, 6.5rem); }
.backLink { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: 2rem; color: var(--muted); font-size: .67rem; font-weight: 800; }
.backLink:hover { color: var(--wine); }
.subHero h1,
.priceHero h1 { max-width: 780px; margin: 0; font-size: clamp(4rem, 6.4vw, 6.7rem); line-height: .88; }
.subHero .lead { max-width: 650px; margin-top: 1.4rem; }
.heroFacts { display: flex; gap: 2rem; margin-top: 1.45rem; }
.heroFacts span { display: grid; padding-left: .8rem; border-left: 2px solid var(--wine); }
.heroFacts b { color: var(--ink); font: 600 1.35rem var(--display); }
.heroFacts small { color: var(--muted); font-size: .56rem; }
.actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.7rem; }
.subHeroVisual { position: relative; width: min(100%, 490px); justify-self: end; }
.subHeroVisual::before { position: absolute; inset: 5% -3% 4% 4%; border: 1px solid rgba(140, 47, 78, .22); border-radius: 44% 44% 25px 25px; content: ""; transform: rotate(2deg); }
.subPhoto { position: relative; overflow: hidden; aspect-ratio: .8; border: 7px solid rgba(255, 255, 255, .7); border-radius: 44% 44% 24px 24px; background: #e7dedc; box-shadow: var(--shadow); }
.subPhoto img { width: 100%; height: 100%; object-fit: cover; }
.photoBadge { position: absolute; bottom: 7%; left: -1.5rem; display: flex; align-items: center; gap: .7rem; padding: .7rem .85rem; border: 1px solid rgba(255, 255, 255, .64); border-radius: 15px; background: rgba(255, 255, 255, .91); box-shadow: var(--shadow-soft); backdrop-filter: blur(14px); }
.photoBadge > i { color: var(--wine); font-size: 1.1rem; }
.photoBadge span { display: grid; }
.photoBadge small { color: var(--muted); font-size: .54rem; }
.photoBadge b { color: var(--ink); font: 600 .98rem var(--display); }
.ribbon { background: var(--wine); color: #fff; }
.ribbon span { color: #fff; font-family: var(--display); }
.ribbon i { color: #e9b9c8; }
.proseGrid { display: grid; grid-template-columns: .78fr 1.22fr; align-items: start; gap: clamp(3rem, 8vw, 7rem); }
.richText p { margin: 0 0 1rem; color: var(--muted); font-size: .96rem; line-height: 1.85; }
.benefitGrid,
.audienceGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-top: 3rem; }
.benefitGrid article,
.audienceGrid article { padding: 1.55rem; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.benefitGrid i,
.audienceGrid > article > i { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: var(--rose); color: var(--wine); font-size: 1.1rem; }
.benefitGrid h3,
.audienceGrid h3,
.processGrid h3 { margin: 1.1rem 0 .35rem; color: var(--ink); font: 600 1.45rem var(--display); }
.benefitGrid p,
.audienceGrid p,
.processGrid p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.72; }
.darkSection { background: var(--rose); color: var(--ink); }
.darkSection .eyebrow { color: var(--wine); }
.darkSection h2 em { color: var(--wine); }
.darkSection .sectionHead > p,
.darkSection .audienceGrid p { color: var(--muted); }
.darkSection .audienceGrid article { border-color: var(--line); background: rgba(255, 255, 255, .72); }
.darkSection .audienceGrid > article > i { color: var(--wine); }
.processGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; border: 0; }
.processGrid article { min-height: 240px; padding: 1.5rem; border: 1px solid var(--line) !important; border-radius: 18px; background: #fff; }
.processGrid > article > span { color: var(--wine); font-size: .6rem; font-weight: 800; letter-spacing: .12em; }
.creamSection { background: #f6eeee; }
.packageGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.packageGrid article { min-height: 330px; display: flex; flex-direction: column; padding: 1.7rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(255, 255, 255, .7); }
.packageGrid article.featured { border-color: rgba(140, 47, 78, .32); background: #fff; box-shadow: var(--shadow-soft); transform: translateY(-.7rem); }
.packageGrid article > span,
.popular { border: 0; background: var(--wine); color: #fff; }
.packageGrid h3 { margin: auto 0 .35rem; color: var(--ink); font: 600 1.6rem var(--display); }
.packageGrid p { color: var(--muted); }
.packageGrid strong { color: var(--wine); }
.packageGrid a,
.treatmentGrid a,
.keratinPrices a { border-bottom-color: var(--wine); color: var(--wine); }
.priceNotice { border-color: var(--line); background: rgba(255, 255, 255, .66); }
.priceNotice i { color: var(--wine); }
.subCta { position: relative; overflow: hidden; padding: clamp(5rem, 8vw, 7.5rem) 0; background: linear-gradient(135deg, var(--wine), var(--wine-dark)); color: #fff; }
.subCta::after { color: rgba(255, 255, 255, .08); }
.subCta h2 { color: #fff; }
.subCta h2 em { color: #f2cbd7 !important; }
.subCta .eyebrow { color: #f0bfce; }
.subCta p:not(.eyebrow) { color: rgba(255, 255, 255, .74); }
.subCta .btn { border-color: #fff; background: #fff; color: var(--wine-dark); box-shadow: none; }
.treatmentGrid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.treatmentGrid article { padding: clamp(1.7rem, 3.5vw, 3rem); border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.treatmentGrid article.featured { border-color: rgba(140, 47, 78, .28); background: var(--rose); }
.treatmentIcon { background: var(--rose); color: var(--wine); }
.treatmentGrid h3 { color: var(--ink); }
.treatmentGrid strong { color: var(--wine); }
.treatmentGrid li i { color: var(--wine); }
.keratinPrices { display: grid; grid-template-columns: .72fr 1.28fr; gap: .8rem; }
.keratinPrices article { border: 1px solid var(--line); border-radius: 18px; background: rgba(255, 255, 255, .74); }
.keratinPrices h3 { color: var(--ink); }
.keratinPrices strong,
.keratinPrices li b { color: var(--wine); }
.aftercare { background: #2d2025; color: #fff; }
.aftercare .eyebrow { color: #e8b7c6; }
.aftercare h2 { color: #fff; }
.aftercare p:last-child { color: #c5b7bc; }
.aftercareGrid > i { color: #e8b7c6; }

/* Full price page */
.priceHero { padding: clamp(4.5rem, 8vw, 7.5rem) 0; background: radial-gradient(circle at 86% 7%, rgba(215, 162, 179, .28), transparent 35%), linear-gradient(135deg, #fbfaf7, #f5eaea); }
.priceHero .place { border-color: rgba(140, 47, 78, .13); background: rgba(255, 255, 255, .62); color: #6c5d63; }
.priceHero .place i { color: var(--wine); }
.priceHero .lead { max-width: 760px; margin-top: 1.35rem; }
.priceBrowser { padding: clamp(4rem, 7vw, 6.5rem) 0; background: #fff; }
.priceTools { display: grid; gap: 1rem; margin-bottom: 1.6rem; }
.priceTools > label { position: relative; display: flex; align-items: center; }
.priceTools > label > i { position: absolute; left: 1rem; color: var(--wine); }
.priceTools input { width: 100%; min-height: 56px; padding: .9rem 1rem .9rem 3rem; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); color: var(--ink); outline: 0; }
.priceTools input:focus { border-color: rgba(140, 47, 78, .42); box-shadow: 0 0 0 4px rgba(140, 47, 78, .09); }
.categoryTabs { display: flex; flex-wrap: wrap; gap: .45rem; }
.categoryTabs button { min-height: 40px; padding: .55rem .82rem; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--muted); font-size: .63rem; font-weight: 800; cursor: pointer; }
.categoryTabs button:hover { border-color: rgba(140, 47, 78, .22); color: var(--wine); }
.categoryTabs button.active { border-color: var(--wine); background: var(--wine); color: #fff; }
.fullPriceList { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; border: 0; }
.fullPriceList article { min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--line) !important; border-radius: 15px; background: var(--paper); }
.fullPriceList article:hover { border-color: rgba(140, 47, 78, .22) !important; background: #fff; }
.fullPriceList article.featured::before { top: .55rem; right: .7rem; color: var(--wine); }
.fullPriceList small { color: var(--wine); }
.fullPriceList b { color: var(--ink); font-family: var(--display); }
.fullPriceList em { color: var(--muted); }
.fullPriceList strong { color: var(--wine); font-family: var(--display); }
.noResults > i { color: var(--wine); }
.pricePromo { padding: 2rem 0; background: var(--rose); color: var(--ink); }
.pricePromo > .shell > div > i { color: var(--wine); }
.pricePromo h2 { color: var(--ink); }
.pricePromo p:not(.eyebrow) { color: var(--muted); }
.pricePromo .eyebrow { color: var(--wine); }
.pricePromo .btn { border-color: var(--wine); background: var(--wine); color: #fff; }
.priceNotes li i { color: var(--wine); }

/* Mobile call-to-action and cookies */
.mobilebar { display: none; }
.cookies { position: fixed; z-index: 150; bottom: 1rem; left: 1rem; max-width: 410px; display: flex; align-items: center; gap: 1rem; padding: .9rem; border: 1px solid rgba(255, 255, 255, .15); border-radius: 15px; background: rgba(45, 32, 37, .97); color: #fff; box-shadow: var(--shadow); }
.cookies[hidden] { display: none; }
.cookies > span { display: grid; flex: 1; }
.cookies b { font-size: .68rem; }
.cookies small { margin-top: .12rem; color: #bdb0b5; font-size: .55rem; }
.cookies button { padding: .55rem .72rem; border: 0; border-radius: 10px; background: #f0c3d0; color: var(--wine-dark); font-size: .6rem; font-weight: 800; cursor: pointer; }

/* Progressive reveal: content stays visible when JavaScript is disabled. */
.reveal-ready [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .navrow { grid-template-columns: 1fr auto; min-height: 72px; }
  .desktopnav, .desktopcta { display: none; }
  .menubtn { display: grid; }
  .hero-container, .subHeroGrid { grid-template-columns: 1fr; }
  .hero-content, .subHeroCopy { max-width: 760px; }
  .hero-visual, .subHeroVisual { width: min(100%, 610px); justify-self: center; }
  .about-container, .bookingGrid, .faqGrid, .proseGrid, .priceNotes { grid-template-columns: 1fr; }
  .about-content, .faqGrid > div:first-child { position: static; }
  .feature-card--highlight { margin-left: 0; }
  .visitGrid { grid-template-columns: 1fr 1fr; }
  .visitGrid > div:first-child { grid-column: 1 / -1; }
  .foot { grid-template-columns: 1fr 1fr; }
  .subHeroVisual { margin-top: .5rem; }
  .photoBadge { left: 1rem; }
  .processGrid { grid-template-columns: 1fr 1fr; }
  .keratinPrices { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  html { scroll-padding-top: 76px; }
  body { padding-bottom: calc(71px + env(safe-area-inset-bottom)); }
  .shell { width: min(calc(100% - 2rem), 1200px); }
  .brand b { font-size: .95rem; }
  .brand small { font-size: .52rem; }
  .hero-section { padding: 2.7rem 1rem 3.4rem; }
  .hero-container { gap: 2.7rem; }
  .hero-title { font-size: clamp(3.3rem, 15.5vw, 5rem); }
  .hero-lead { font-size: .92rem; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-actions .btn { width: 100%; padding-inline: .8rem; }
  .hero-visual { width: min(100%, 520px); }
  .image-card { aspect-ratio: .82; border-width: 6px; }
  .floating-stylist-card { right: .7rem; bottom: .7rem; left: .7rem; }
  .ticker-bar { min-height: 54px; }
  .ticker-group { gap: 1.25rem; padding-right: 1.25rem; }
  .ticker-group span { font-size: .61rem; }
  .section, .about-section, .signature-section { padding-top: 4.7rem; padding-bottom: 4.7rem; }
  .section h2, .booking h2, .visit h2, .about-title, .section-title { font-size: clamp(2.9rem, 13.5vw, 4.1rem); }
  .sectionHead, .section-header, .resultsIntro { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 2rem; }
  .signature-grid, .resultsGallery, .priceGrid, .treatmentGrid, .benefitGrid, .audienceGrid, .packageGrid, .fullPriceList { grid-template-columns: 1fr; }
  .signature-card { min-height: 390px; border-radius: 20px; }
  .signature-card .card-body { padding-top: 2.5rem; }
  .signature-card h3 { font-size: 2.8rem; }
  .resultShot { min-height: 470px; border-radius: 20px; }
  .resultShot b { font-size: 1.75rem; }
  .priceGrid article { min-height: 86px; }
  .booking { padding: 4.7rem 0; }
  .bookingGrid { gap: 2rem; }
  .faqGrid { gap: 2rem; }
  summary { min-height: 72px; font-size: 1.08rem; }
  details p { margin-right: 0; font-size: .75rem; }
  .visitGrid, .foot { grid-template-columns: 1fr; }
  .visitGrid > div:first-child { grid-column: auto; }
  .foot { gap: 2rem; }
  .foot > .btn { width: 100%; }
  .copyright { flex-direction: column; gap: .4rem; }
  .subHero { padding: 2.8rem 0 4rem; }
  .subHero h1, .priceHero h1 { font-size: clamp(3.45rem, 15.5vw, 5rem); }
  .heroFacts { gap: 1rem; }
  .subPhoto { border-width: 6px; }
  .processGrid { grid-template-columns: 1fr; }
  .processGrid article { min-height: auto; }
  .packageGrid article.featured { transform: none; }
  .pricePromo > .shell { align-items: flex-start; flex-direction: column; }
  .pricePromo .btn { width: 100%; }
  .categoryTabs { flex-wrap: nowrap; margin-right: -1rem; padding-right: 1rem; overflow-x: auto; scrollbar-width: none; }
  .categoryTabs::-webkit-scrollbar { display: none; }
  .categoryTabs button { flex: 0 0 auto; }
  .fullPriceList article { padding: .9rem; }
  .mobilebar { position: fixed; z-index: 120; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: .78fr 1.22fr; gap: .5rem; padding: .55rem max(.8rem, env(safe-area-inset-right)) calc(.55rem + env(safe-area-inset-bottom)) max(.8rem, env(safe-area-inset-left)); border-top: 1px solid var(--line); background: rgba(255, 255, 255, .96); backdrop-filter: blur(16px); }
  .mobilebar > a { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font-size: .73rem; font-weight: 800; }
  .mobilebar > a.btn { border-color: var(--wine); background: var(--wine); color: #fff; box-shadow: none; }
  .cookies { right: .8rem; bottom: calc(5.1rem + env(safe-area-inset-bottom)); left: .8rem; max-width: none; }
}

@media (max-width: 430px) {
  .brand span { display: none; }
  .hero-actions { grid-template-columns: 1fr; }
  .hero-location { align-items: flex-start; border-radius: 12px; }
  .google-review-card { width: 100%; }
  .hero-trust { width: 100%; }
  .image-card { aspect-ratio: .78; border-radius: 42% 42% 21px 21px; }
  .floating-stylist-card { align-items: center; }
  .stylist-meta span { font-size: .53rem; }
  .resultShot { min-height: 410px; }
  .priceGrid article { grid-template-columns: auto 1fr; }
  .priceGrid article strong { grid-column: 2; text-align: left; }
  .heroFacts { display: grid; grid-template-columns: 1fr 1fr; }
  .subHero .actions { display: grid; }
  .subHero .actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal-ready [data-reveal] { opacity: 1; transform: none; }
}
