/*
 * Zuri Beauty Lounge /book — visual redesign v2.0
 * Presentation only. Existing copy, bilingual attributes, booking URLs,
 * GTM hooks, WhatsApp attribution and interaction classes remain unchanged.
 */

:root {
  --ink: #2a211e;
  --ink-soft: #6b5f59;
  --cream: #f8f1e9;
  --cream-deep: #efe1d5;
  --white: #fffdf9;
  --rose: #d8a4a2;
  --rose-deep: #9f555d;
  --blush: #eed3ce;
  --gold: #ae8a55;
  --line: rgba(53, 39, 34, .13);
  --shadow: 0 28px 80px rgba(62, 40, 31, .13);
  --radius: 26px;
  --container: 1210px;
  --paper: #fffaf4;
  --clay: #b87566;
  --font-body: "Manrope", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
}

body.zuri-v2 {
  position: relative;
  color: var(--ink);
  background:
    radial-gradient(circle at 7% 4%, rgba(216, 164, 162, .24), transparent 25rem),
    radial-gradient(circle at 96% 27%, rgba(174, 138, 85, .10), transparent 31rem),
    var(--cream);
  font-family: var(--font-body);
  letter-spacing: -.008em;
  overflow-x: clip;
}

body.zuri-v2::before {
  content: "";
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
}

body.zuri-v2 h1,
body.zuri-v2 h2,
body.zuri-v2 .service-card h3,
body.zuri-v2 .package-card h3,
body.zuri-v2 .review-card p,
body.zuri-v2 .step h3,
body.zuri-v2 .faq-list summary,
body.zuri-v2 .map-experience__heading h3,
body.zuri-v2 .modal-heading h2,
body.zuri-v2 .reviews-score,
body.zuri-v2 .package-footer strong {
  font-family: var(--font-display);
}

body.zuri-v2 img,
body.zuri-v2 video {
  display: block;
}

body.zuri-v2 .container {
  width: min(calc(100% - 48px), var(--container));
}

/* Header */
body.zuri-v2 .offer-strip {
  position: relative;
  z-index: 102;
  color: rgba(255, 250, 246, .84);
  background: #2c211e;
  border-bottom: 1px solid rgba(255,255,255,.07);
}

body.zuri-v2 .offer-strip__inner {
  min-height: 43px;
}

body.zuri-v2 .offer-link {
  color: #f2c4c3;
}

body.zuri-v2 .site-header {
  background: rgba(248, 241, 233, .89);
  border-bottom: 1px solid rgba(53, 39, 34, .08);
  backdrop-filter: blur(18px) saturate(1.15);
}

body.zuri-v2 .site-header.is-scrolled {
  background: rgba(255, 250, 244, .95);
  box-shadow: 0 12px 42px rgba(52, 34, 28, .08);
}

body.zuri-v2 .nav-wrap {
  min-height: 82px;
}

body.zuri-v2 .brand-logo {
  width: 145px;
}

body.zuri-v2 .desktop-nav {
  gap: 29px;
}

body.zuri-v2 .desktop-nav a {
  position: relative;
  color: #594d48;
  font-size: 13px;
  font-weight: 750;
}

body.zuri-v2 .desktop-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 1px;
  background: var(--rose-deep);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}

body.zuri-v2 .desktop-nav a:hover::after {
  transform: scaleX(1);
}

body.zuri-v2 .lang-toggle {
  border-color: rgba(53,39,34,.13);
  border-radius: 14px 14px 14px 5px;
  background: rgba(255,253,249,.78);
}

/* Buttons */
body.zuri-v2 .btn {
  min-height: 51px;
  padding-inline: 25px;
  border-radius: 17px 17px 17px 6px;
  font-size: 14px;
  font-weight: 850;
  box-shadow: none;
}

body.zuri-v2 .btn--large {
  min-height: 58px;
  padding-inline: 28px;
}

body.zuri-v2 .btn--dark {
  color: #fffaf6;
  background: #2b211e;
  box-shadow: 0 12px 28px rgba(43, 33, 30, .17);
}

body.zuri-v2 .btn--primary {
  color: #fff;
  background: var(--rose-deep);
  box-shadow: 0 14px 31px rgba(159, 85, 93, .25);
}

body.zuri-v2 .btn--ghost {
  border-color: rgba(53,39,34,.16);
  background: rgba(255,253,249,.72);
}

body.zuri-v2 .btn--light {
  color: var(--ink);
  background: #fffaf4;
}

body.zuri-v2 .btn:hover {
  transform: translateY(-2px) rotate(-.15deg);
}

body.zuri-v2 .text-link {
  color: var(--rose-deep);
}

body.zuri-v2 .eyebrow {
  gap: 12px;
  color: var(--rose-deep);
  letter-spacing: .16em;
}

body.zuri-v2 .eyebrow::before {
  width: 38px;
  background: currentColor;
}

/* Hero */
body.zuri-v2 .hero {
  position: relative;
  padding: 86px 0 104px;
  background:
    linear-gradient(105deg, rgba(255,253,249,.48), transparent 54%),
    transparent;
}

body.zuri-v2 .hero::before {
  width: 570px;
  height: 570px;
  top: -255px;
  left: -265px;
  background: radial-gradient(circle, rgba(238,211,206,.90), transparent 69%);
}

body.zuri-v2 .hero::after {
  content: "";
  position: absolute;
  right: -115px;
  bottom: 50px;
  width: 290px;
  height: 290px;
  border: 1px solid rgba(159,85,93,.14);
  border-radius: 51% 49% 62% 38% / 42% 55% 45% 58%;
  transform: rotate(-12deg);
  pointer-events: none;
}

body.zuri-v2 .hero-grid {
  grid-template-columns: minmax(0, .92fr) minmax(430px, 1.08fr);
  gap: 82px;
}

body.zuri-v2 .hero-copy {
  z-index: 3;
}

body.zuri-v2 .hero-copy::after {
  width: 92px;
  margin-top: 35px;
  background: rgba(159,85,93,.48);
}

body.zuri-v2 .rating-pill {
  border-color: rgba(53,39,34,.10);
  border-radius: 16px 16px 16px 5px;
  background: rgba(255,253,249,.82);
  box-shadow: 0 11px 32px rgba(53,39,34,.07);
}

body.zuri-v2 h1 {
  max-width: 700px;
  margin-bottom: 25px;
  font-size: clamp(59px, 6.25vw, 92px);
  line-height: .92;
  letter-spacing: -.05em;
  text-wrap: balance;
}

body.zuri-v2 h1 em {
  color: var(--rose-deep);
  font-style: italic;
}

body.zuri-v2 .hero-lead {
  max-width: 610px;
  color: #625650;
  font-size: 17px;
  line-height: 1.78;
}

body.zuri-v2 .first-visit-offer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  max-width: 680px;
  margin: 26px 0 23px;
  padding: 13px 14px 13px 13px;
  border: 1px solid rgba(159, 85, 93, .20);
  border-radius: 22px 22px 22px 7px;
  background:
    linear-gradient(115deg, rgba(238, 211, 206, .72), rgba(255, 253, 249, .92) 55%),
    var(--white);
  box-shadow: 0 16px 42px rgba(94, 54, 48, .10);
}

body.zuri-v2 .first-visit-offer__discount {
  display: grid;
  place-items: center;
  align-content: center;
  width: 74px;
  min-height: 74px;
  padding: 8px;
  color: #fff;
  border-radius: 19px 19px 19px 6px;
  background: var(--rose-deep);
  box-shadow: 0 12px 24px rgba(159, 85, 93, .24);
  line-height: 1;
}

body.zuri-v2 .first-visit-offer__discount strong {
  font-family: var(--font-display);
  font-size: 32px;
  letter-spacing: -.04em;
}

body.zuri-v2 .first-visit-offer__discount span {
  margin-top: 3px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
}

body.zuri-v2 .first-visit-offer__content {
  display: grid;
  gap: 3px;
  min-width: 0;
}

body.zuri-v2 .first-visit-offer__eyebrow {
  color: var(--rose-deep);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.zuri-v2 .first-visit-offer__content > strong {
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 25px);
  line-height: 1.05;
}

body.zuri-v2 .first-visit-offer__content small {
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.45;
}

body.zuri-v2 .first-visit-offer__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 43px;
  padding: 0 16px;
  color: var(--ink);
  border: 1px solid rgba(53, 39, 34, .13);
  border-radius: 14px 14px 14px 5px;
  background: rgba(255, 253, 249, .88);
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

body.zuri-v2 .first-visit-offer__cta:hover {
  border-color: rgba(159, 85, 93, .38);
  background: #fff;
  transform: translateY(-2px);
}

body.zuri-v2 .first-visit-offer__cta .ui-icon {
  width: 16px;
  height: 16px;
}

html[dir="rtl"] body.zuri-v2 .first-visit-offer__cta .ui-icon {
  transform: scaleX(-1);
}

body.zuri-v2 .hero-actions {
  gap: 10px;
}

body.zuri-v2 .hero-proof {
  gap: 13px 23px;
  color: #655953;
}

body.zuri-v2 .hero-proof li {
  display: flex;
  align-items: center;
  gap: 5px;
}

body.zuri-v2 .hero-visual {
  position: relative;
  padding: 0 18px 24px 8px;
}

body.zuri-v2 .hero-image-wrap {
  position: relative;
  padding: 11px;
  border: 1px solid rgba(53,39,34,.10);
  border-radius: 210px 210px 34px 34px;
  background: rgba(255,253,249,.88);
  box-shadow: 0 34px 90px rgba(57,38,31,.16);
}

body.zuri-v2 .hero-image-wrap::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 20px -16px -17px 18px;
  border: 1px solid rgba(159,85,93,.22);
  border-radius: 205px 205px 34px 34px;
  transform: rotate(1.2deg);
}

body.zuri-v2 .hero-main-video {
  width: 100%;
  height: 625px;
  border-radius: 198px 198px 25px 25px;
  background: #d7c2b9;
  object-fit: cover;
  object-position: center center;
}

body.zuri-v2 .hero-card {
  padding: 13px 15px;
  border-color: rgba(255,255,255,.82);
  border-radius: 18px 18px 18px 6px;
  background: rgba(255,253,249,.93);
  box-shadow: 0 17px 42px rgba(47,31,26,.14);
}

body.zuri-v2 .hero-card--rating {
  top: 84px;
  left: -31px;
  transform: rotate(-1.2deg);
}

body.zuri-v2 .hero-card--location {
  right: -21px;
  bottom: 67px;
  transform: rotate(1.1deg);
}

body.zuri-v2 .hero-card--location:hover {
  transform: translateY(-3px) rotate(.4deg);
}

body.zuri-v2 .hero-card__icon {
  background: #efd7d1;
}

body.zuri-v2 .quick-prices {
  position: relative;
  z-index: 4;
  margin: -32px 40px 0;
  padding: 18px 7px;
  border: 1px solid rgba(53,39,34,.10);
  border-radius: 18px 18px 18px 6px;
  background: rgba(255,253,249,.96);
  box-shadow: 0 19px 44px rgba(53,39,34,.11);
}

body.zuri-v2 .quick-prices div {
  padding-inline: 15px;
}

body.zuri-v2 .quick-prices span {
  color: #776963;
}

/* Trust strip */
body.zuri-v2 .trust-bar {
  position: relative;
  z-index: 5;
  border: 0;
  background: transparent;
}

body.zuri-v2 .trust-grid {
  margin-top: -34px;
  border: 1px solid rgba(53,39,34,.10);
  border-radius: 24px 62px 24px 24px;
  background: rgba(255,253,249,.93);
  box-shadow: 0 24px 58px rgba(56,38,31,.09);
  overflow: hidden;
}

body.zuri-v2 .trust-grid > div {
  min-height: 105px;
  padding: 22px 30px;
}

body.zuri-v2 .trust-icon {
  border: 1px solid rgba(159,85,93,.12);
  background: #f1d9d4;
}

/* Shared sections */
body.zuri-v2 .section {
  position: relative;
  padding: 122px 0;
}

body.zuri-v2 .section-heading {
  grid-template-columns: 1.18fr .82fr;
  gap: 78px;
  margin-bottom: 58px;
}

body.zuri-v2 .section-heading h2 {
  max-width: 820px;
  font-size: clamp(47px, 5vw, 72px);
  line-height: .98;
  text-wrap: balance;
}

body.zuri-v2 .section-heading > p {
  max-width: 465px;
  color: var(--ink-soft);
  line-height: 1.76;
}

/* Services */
body.zuri-v2 #services {
  background:
    linear-gradient(180deg, rgba(255,253,249,.42), rgba(239,225,213,.35)),
    transparent;
}

body.zuri-v2 #services::before {
  content: "";
  position: absolute;
  top: 94px;
  right: -120px;
  width: 330px;
  height: 170px;
  border: 1px solid rgba(174,138,85,.16);
  border-radius: 50%;
  transform: rotate(-17deg);
}

body.zuri-v2 .service-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 22px;
  align-items: start;
}

body.zuri-v2 .service-card,
body.zuri-v2 .service-card:nth-child(2),
body.zuri-v2 .service-card:nth-child(5) {
  min-height: 490px;
  border: 1px solid rgba(255,255,255,.24);
  background: #2b211e;
  box-shadow: 0 20px 50px rgba(54,35,29,.14);
}

body.zuri-v2 .service-card:nth-child(1) {
  grid-column: span 5;
  border-radius: 30px 92px 30px 30px;
}

body.zuri-v2 .service-card:nth-child(2) {
  grid-column: span 3;
  margin-top: 42px;
  border-radius: 88px 28px 28px 28px;
}

body.zuri-v2 .service-card:nth-child(3) {
  grid-column: span 4;
  border-radius: 28px 28px 86px 28px;
}

body.zuri-v2 .service-card:nth-child(4) {
  grid-column: span 4;
  border-radius: 28px 82px 28px 28px;
}

body.zuri-v2 .service-card:nth-child(5) {
  grid-column: span 3;
  margin-top: 42px;
  border-radius: 28px 28px 84px 28px;
}

body.zuri-v2 .service-card:nth-child(6) {
  grid-column: span 5;
  border-radius: 84px 28px 28px 28px;
}

body.zuri-v2 .service-card__media img {
  filter: saturate(.86) contrast(.96);
}

body.zuri-v2 .service-card:hover .service-card__media img {
  filter: saturate(1) contrast(1);
  transform: scale(1.045);
}

body.zuri-v2 .service-card__shade {
  background:
    linear-gradient(180deg, rgba(25,17,15,.02) 0%, rgba(25,17,15,.10) 38%, rgba(25,17,15,.87) 79%, rgba(25,17,15,.97) 100%),
    linear-gradient(90deg, rgba(25,17,15,.20), transparent 64%);
}

body.zuri-v2 .service-card__body {
  min-height: 490px;
  padding: 34px 32px 31px;
}

body.zuri-v2 .service-card h3 {
  font-size: clamp(34px, 3.3vw, 45px);
}

body.zuri-v2 .service-card p {
  color: rgba(255,255,255,.78);
}

body.zuri-v2 .service-card .service-price {
  border-top-color: rgba(255,255,255,.22);
}

body.zuri-v2 .service-card .text-link {
  color: #f2c5c4;
}

body.zuri-v2 .services-cta {
  margin-top: 34px;
  padding: 27px 30px;
  border: 1px solid rgba(159,85,93,.13);
  border-radius: 22px 58px 22px 22px;
  background: linear-gradient(105deg, #efd5d0, rgba(255,253,249,.78));
  box-shadow: 0 16px 42px rgba(53,39,34,.06);
}

/* Packages */
body.zuri-v2 #packages {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 7%, rgba(216,164,162,.14), transparent 27rem),
    linear-gradient(135deg, #281e1b, #17110f 72%);
}

body.zuri-v2 #packages::before {
  content: "ZURI";
  position: absolute;
  right: -45px;
  bottom: -100px;
  color: rgba(255,255,255,.025);
  font-family: var(--font-display);
  font-size: 290px;
  line-height: 1;
  letter-spacing: .04em;
  pointer-events: none;
}

body.zuri-v2 .section-heading--light .eyebrow {
  color: #e9b9b7;
}

body.zuri-v2 .package-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}

body.zuri-v2 .package-card {
  grid-column: span 2;
  min-height: 500px;
  padding: 34px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 28px 70px 28px 28px;
  background: rgba(255,255,255,.052);
  backdrop-filter: blur(5px);
}

body.zuri-v2 .package-card:nth-child(2) {
  border-radius: 72px 28px 28px 28px;
}

body.zuri-v2 .package-card:nth-child(3) {
  border-radius: 28px 28px 72px 28px;
}

body.zuri-v2 .package-card:nth-child(n+4) {
  grid-column: span 3;
  min-height: 430px;
}

body.zuri-v2 .package-card:nth-child(4) {
  border-radius: 28px 74px 28px 28px;
}

body.zuri-v2 .package-card:nth-child(5) {
  border-radius: 74px 28px 28px 28px;
}

body.zuri-v2 .package-card--featured {
  color: var(--ink);
  background: linear-gradient(145deg, #f4deda, #e7bebd);
  box-shadow: 0 30px 78px rgba(0,0,0,.22);
}

body.zuri-v2 .package-tag {
  border-radius: 12px 12px 12px 4px;
  font-size: 10px;
}

body.zuri-v2 .package-card h3 {
  font-size: 38px;
}

body.zuri-v2 .package-footer strong {
  font-size: 50px;
}

/* Results + supplied nail video */
body.zuri-v2 #results {
  background:
    radial-gradient(circle at 8% 78%, rgba(216,164,162,.16), transparent 24rem),
    #efe3d8;
}

body.zuri-v2 #results .container {
  display: grid;
  grid-template-columns: minmax(280px, .40fr) minmax(0, .60fr);
  gap: 22px;
  align-items: stretch;
}

body.zuri-v2 #results .section-heading {
  grid-column: 1 / -1;
}

body.zuri-v2 .results-video-shell {
  position: relative;
  min-height: 828px;
  border: 10px solid rgba(255,253,249,.84);
  border-radius: 170px 28px 28px 28px;
  background: #d8c3b8;
  box-shadow: 0 27px 70px rgba(57,38,31,.15);
  overflow: hidden;
}

body.zuri-v2 .results-video-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: inherit;
  pointer-events: none;
}

body.zuri-v2 .results-video-shell video {
  width: 100%;
  height: 100%;
  min-height: 808px;
  object-fit: cover;
  object-position: center;
}

body.zuri-v2 .gallery-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.zuri-v2 .gallery-item,
body.zuri-v2 .gallery-item:nth-child(1),
body.zuri-v2 .gallery-item:nth-child(2),
body.zuri-v2 .gallery-item:nth-child(3) {
  grid-column: auto;
  height: 265px;
  border-radius: 24px;
  box-shadow: 0 17px 43px rgba(56,38,31,.11);
}

body.zuri-v2 .gallery-item:nth-child(1),
body.zuri-v2 .gallery-item:nth-child(4) {
  border-radius: 24px 64px 24px 24px;
}

body.zuri-v2 .gallery-item:nth-child(2),
body.zuri-v2 .gallery-item:nth-child(5) {
  border-radius: 62px 24px 24px 24px;
}

body.zuri-v2 .gallery-item:nth-child(3),
body.zuri-v2 .gallery-item:nth-child(6) {
  border-radius: 24px 24px 62px 24px;
}

body.zuri-v2 .gallery-item img {
  filter: saturate(.88) contrast(.97);
}

body.zuri-v2 .gallery-item:hover img {
  filter: saturate(1);
}

body.zuri-v2 .gallery-item figcaption {
  left: 13px;
  bottom: 13px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 12px 12px 12px 4px;
  background: rgba(255,253,249,.88);
}

/* Reviews */
body.zuri-v2 #reviews {
  background:
    linear-gradient(180deg, rgba(255,253,249,.44), rgba(239,225,213,.60)),
    var(--cream-deep);
}

body.zuri-v2 .reviews-summary {
  grid-template-columns: .62fr 1.38fr;
  gap: 76px;
}

body.zuri-v2 .reviews-summary > div:first-child {
  padding: 42px;
  border-radius: 86px 26px 26px 26px;
  background: #2b211e;
  box-shadow: 0 26px 62px rgba(50,33,27,.15);
}

body.zuri-v2 .reviews-score {
  font-size: 82px;
}

body.zuri-v2 .review-grid {
  gap: 20px;
  align-items: start;
}

body.zuri-v2 .review-card {
  min-height: 292px;
  padding: 37px;
  border: 1px solid rgba(53,39,34,.08);
  background: rgba(255,253,249,.92);
  box-shadow: 0 17px 45px rgba(53,39,34,.07);
}

body.zuri-v2 .review-card:nth-child(1) {
  border-radius: 28px 72px 28px 28px;
  transform: rotate(-.45deg);
}

body.zuri-v2 .review-card:nth-child(2) {
  border-radius: 70px 28px 28px 28px;
  transform: translateY(22px) rotate(.35deg);
}

body.zuri-v2 .review-card:nth-child(3) {
  border-radius: 28px 28px 70px 28px;
  transform: rotate(-.2deg);
}

body.zuri-v2 .review-card p {
  font-size: 27px;
}

body.zuri-v2 .quote-mark {
  color: rgba(216,164,162,.56);
}

/* Price menu */
body.zuri-v2 .price-section {
  background:
    radial-gradient(circle at 92% 12%, rgba(174,138,85,.09), transparent 28rem),
    #f8f1e9;
}

body.zuri-v2 .price-tabs {
  max-width: 1110px;
  margin-bottom: 22px;
  padding: 8px;
  border: 1px solid rgba(53,39,34,.10);
  border-radius: 22px 52px 22px 22px;
  background: rgba(255,253,249,.80);
  box-shadow: 0 12px 35px rgba(53,39,34,.045);
}

body.zuri-v2 .price-tab {
  min-height: 48px;
  border-radius: 15px 15px 15px 5px;
}

body.zuri-v2 .price-tab.is-active {
  background: #2c211e;
}

body.zuri-v2 .price-panels {
  max-width: 1010px;
  padding: 35px 43px;
  border: 1px solid rgba(53,39,34,.09);
  border-radius: 30px 76px 30px 30px;
  background: rgba(255,253,249,.94);
  box-shadow: 0 24px 66px rgba(53,39,34,.075);
}

body.zuri-v2 .price-panel {
  column-gap: 44px;
}

body.zuri-v2 .price-row {
  margin-inline: -8px;
  padding: 16px 8px;
  border-bottom-color: rgba(53,39,34,.13);
}

body.zuri-v2 .price-row:hover {
  background: rgba(238,211,206,.25);
}

body.zuri-v2 .price-whatsapp {
  border-radius: 10px 10px 10px 4px;
}

/* Booking steps */
body.zuri-v2 .booking-steps {
  padding-top: 86px;
  background: rgba(255,253,249,.56);
}

body.zuri-v2 .steps-grid {
  position: relative;
  gap: 22px;
}

body.zuri-v2 .steps-grid::before {
  content: "";
  position: absolute;
  top: 55px;
  right: 12%;
  left: 12%;
  height: 1px;
  background: rgba(159,85,93,.22);
}

body.zuri-v2 .step {
  position: relative;
  z-index: 1;
  min-height: 290px;
  padding: 34px;
  border: 1px solid rgba(53,39,34,.09);
  border-left: 1px solid rgba(53,39,34,.09);
  border-radius: 26px 66px 26px 26px;
  background: rgba(255,253,249,.92);
  box-shadow: 0 15px 42px rgba(53,39,34,.055);
}

body.zuri-v2 .step:nth-child(2) {
  border-radius: 64px 26px 26px 26px;
}

body.zuri-v2 .step:nth-child(3) {
  border-radius: 26px 26px 64px 26px;
}

body.zuri-v2 .step > span {
  width: 48px;
  height: 48px;
  border: 5px solid var(--cream);
  background: var(--rose-deep);
  box-shadow: 0 0 0 1px rgba(159,85,93,.14);
}

body.zuri-v2 .step h3 {
  font-size: 34px;
}

/* Location and map */
body.zuri-v2 .location-section {
  background: #fffdf9;
}

body.zuri-v2 .location-grid {
  grid-template-columns: 1.08fr .92fr;
  gap: 80px;
}

body.zuri-v2 .location-image::before {
  content: "";
  position: absolute;
  inset: 18px -18px -18px 18px;
  border: 1px solid rgba(159,85,93,.20);
  border-radius: 34px 140px 34px 34px;
  transform: rotate(.8deg);
}

body.zuri-v2 .location-image img {
  position: relative;
  z-index: 1;
  height: 590px;
  border-radius: 34px 142px 34px 34px;
  filter: saturate(.88) contrast(.97);
  box-shadow: 0 29px 72px rgba(53,39,34,.13);
}

body.zuri-v2 .location-badge {
  z-index: 2;
  right: -18px;
  bottom: 34px;
  width: 150px;
  border-radius: 22px 22px 22px 6px;
  background: #2b211e;
}

body.zuri-v2 .location-copy h2 {
  font-size: clamp(47px, 5vw, 70px);
}

body.zuri-v2 .location-copy dl > div {
  padding-block: 19px;
}

body.zuri-v2 .map-experience {
  border: 1px solid rgba(53,39,34,.09);
  border-radius: 32px 78px 32px 32px;
  background: #f8f1e9;
  box-shadow: 0 24px 66px rgba(53,39,34,.075);
}

body.zuri-v2 .embedded-map {
  border-radius: 23px 60px 23px 23px;
}

body.zuri-v2 .map-shortcuts > a,
body.zuri-v2 .map-options a {
  border-radius: 16px 16px 16px 5px;
  background: rgba(255,253,249,.82);
}

/* FAQ */
body.zuri-v2 .faq-section {
  background:
    linear-gradient(180deg, rgba(239,225,213,.44), rgba(248,241,233,.20)),
    var(--cream);
}

body.zuri-v2 .faq-grid {
  grid-template-columns: .74fr 1.26fr;
  gap: 82px;
}

body.zuri-v2 .faq-list {
  display: grid;
  gap: 12px;
}

body.zuri-v2 .faq-list details {
  border: 1px solid rgba(53,39,34,.09);
  border-radius: 19px 45px 19px 19px;
  background: rgba(255,253,249,.84);
  box-shadow: 0 9px 29px rgba(53,39,34,.035);
  overflow: hidden;
}

body.zuri-v2 .faq-list details:nth-child(even) {
  border-radius: 43px 19px 19px 19px;
}

body.zuri-v2 .faq-list details[open] {
  background: #fffdf9;
  box-shadow: 0 18px 42px rgba(53,39,34,.065);
}

body.zuri-v2 .faq-list summary {
  padding: 24px 58px 24px 24px;
  font-size: 27px;
}

body.zuri-v2 .faq-list summary::after {
  right: 17px;
  top: 19px;
  background: #efd6d1;
}

body.zuri-v2 .faq-list details p {
  padding: 0 58px 25px 24px;
}

/* Final CTA and footer */
body.zuri-v2 .final-cta {
  padding: 44px 0 106px;
}

body.zuri-v2 .final-cta__inner {
  padding: 72px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 38px 118px 38px 38px;
  background:
    radial-gradient(circle at 91% 5%, rgba(216,164,162,.20), transparent 27rem),
    linear-gradient(135deg, #2b211e, #17110f 75%);
  box-shadow: 0 30px 78px rgba(50,33,27,.19);
}

body.zuri-v2 .final-cta__inner::before {
  content: "";
  position: absolute;
  right: 64px;
  bottom: 42px;
  width: 130px;
  height: 68px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 50%;
  transform: rotate(-17deg);
}

body.zuri-v2 .final-cta h2 {
  font-size: clamp(45px, 5vw, 68px);
}

body.zuri-v2 .site-footer {
  background: #17110f;
}

body.zuri-v2 .footer-grid {
  gap: 56px;
}

body.zuri-v2 .footer-bottom {
  border-top-color: rgba(255,255,255,.10);
}

/* Modal, floating help and persistent mobile actions */
body.zuri-v2 .modal-panel {
  border: 1px solid rgba(53,39,34,.09);
  border-radius: 28px 72px 28px 28px;
  background: #fffaf4;
}

body.zuri-v2 .modal-close {
  border-radius: 13px 13px 13px 4px;
}

body.zuri-v2 .floating-help {
  border-color: rgba(53,39,34,.10);
  border-radius: 20px 48px 20px 20px;
  background: rgba(255,253,249,.95);
}

body.zuri-v2 .floating-help__close {
  border-radius: 10px 10px 10px 3px;
}

body.zuri-v2 .mobile-action-bar {
  border-radius: 19px 19px 19px 7px;
  background: rgba(39,29,26,.96);
}

/* RTL refinements */
html[dir="rtl"] body.zuri-v2,
html[dir="rtl"] body.zuri-v2 h1,
html[dir="rtl"] body.zuri-v2 h2,
html[dir="rtl"] body.zuri-v2 .service-card h3,
html[dir="rtl"] body.zuri-v2 .package-card h3,
html[dir="rtl"] body.zuri-v2 .review-card p,
html[dir="rtl"] body.zuri-v2 .step h3,
html[dir="rtl"] body.zuri-v2 .faq-list summary,
html[dir="rtl"] body.zuri-v2 .map-experience__heading h3,
html[dir="rtl"] body.zuri-v2 .modal-heading h2,
html[dir="rtl"] body.zuri-v2 .reviews-score,
html[dir="rtl"] body.zuri-v2 .package-footer strong {
  font-family: "Cairo", Tahoma, Arial, sans-serif;
  letter-spacing: 0;
}

html[dir="rtl"] body.zuri-v2 .desktop-nav a::after {
  transform-origin: center;
}

html[dir="rtl"] body.zuri-v2 .hero-card--rating {
  right: -31px;
  left: auto;
}

html[dir="rtl"] body.zuri-v2 .hero-card--location {
  right: auto;
  left: -21px;
}

html[dir="rtl"] body.zuri-v2 .gallery-item figcaption {
  right: 13px;
  left: auto;
}

html[dir="rtl"] body.zuri-v2 .faq-list summary {
  padding: 24px 24px 24px 58px;
}

html[dir="rtl"] body.zuri-v2 .faq-list summary::after {
  right: auto;
  left: 17px;
}

html[dir="rtl"] body.zuri-v2 .faq-list details p {
  padding: 0 24px 25px 58px;
}

/* Tablet */
@media (max-width: 1050px) {
  body.zuri-v2 .hero-grid {
    grid-template-columns: minmax(0, .92fr) minmax(390px, 1.08fr);
    gap: 44px;
  }

  body.zuri-v2 h1 {
    font-size: clamp(54px, 6.4vw, 76px);
  }

  body.zuri-v2 .hero-main-video {
    height: 555px;
  }

  body.zuri-v2 .service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.zuri-v2 .service-card,
  body.zuri-v2 .service-card:nth-child(n) {
    grid-column: auto;
    min-height: 455px;
    margin-top: 0;
  }

  body.zuri-v2 .service-card__body {
    min-height: 455px;
  }

  body.zuri-v2 .package-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.zuri-v2 .package-card,
  body.zuri-v2 .package-card:nth-child(n+4) {
    grid-column: auto;
    min-height: 450px;
  }

  body.zuri-v2 .package-card:last-child {
    grid-column: 1 / -1;
    min-height: 400px;
  }

  body.zuri-v2 #results .container {
    grid-template-columns: minmax(260px, .38fr) minmax(0, .62fr);
  }

  body.zuri-v2 .results-video-shell {
    min-height: 748px;
  }

  body.zuri-v2 .results-video-shell video {
    min-height: 728px;
  }

  body.zuri-v2 .gallery-item,
  body.zuri-v2 .gallery-item:nth-child(1),
  body.zuri-v2 .gallery-item:nth-child(2),
  body.zuri-v2 .gallery-item:nth-child(3) {
    height: 238px;
  }
}

/* Mobile and small tablet */
@media (max-width: 820px) {
  body.zuri-v2 .container {
    width: min(calc(100% - 30px), var(--container));
  }

  body.zuri-v2 .nav-wrap {
    min-height: 74px;
  }

  body.zuri-v2 .brand-logo {
    width: 128px;
  }

  body.zuri-v2 .menu-toggle {
    border-radius: 15px 15px 15px 5px;
    background: #2b211e;
  }

  body.zuri-v2 .mobile-nav {
    border-radius: 20px 48px 20px 20px;
    background: #fffaf4;
  }

  body.zuri-v2 .hero {
    padding: 59px 0 86px;
  }

  body.zuri-v2 .hero-grid,
  body.zuri-v2 .section-heading,
  body.zuri-v2 .reviews-summary,
  body.zuri-v2 .location-grid,
  body.zuri-v2 .faq-grid,
  body.zuri-v2 .final-cta__inner {
    grid-template-columns: 1fr;
  }

  body.zuri-v2 .hero-copy {
    text-align: center;
  }

  body.zuri-v2 .hero-copy .eyebrow,
  body.zuri-v2 .rating-pill,
  body.zuri-v2 .hero-actions,
  body.zuri-v2 .hero-proof {
    justify-content: center;
  }

  body.zuri-v2 .hero-copy::after {
    margin-inline: auto;
  }

  body.zuri-v2 .hero-visual {
    max-width: 620px;
    margin: 16px auto 0;
    padding-inline: 18px;
  }

  body.zuri-v2 .hero-main-video {
    height: 540px;
  }

  body.zuri-v2 .hero-card--rating {
    left: 6px;
  }

  body.zuri-v2 .hero-card--location {
    right: 4px;
  }

  html[dir="rtl"] body.zuri-v2 .hero-card--rating {
    right: 6px;
    left: auto;
  }

  html[dir="rtl"] body.zuri-v2 .hero-card--location {
    right: auto;
    left: 4px;
  }

  body.zuri-v2 .trust-grid {
    margin-top: -20px;
    border-radius: 22px 50px 22px 22px;
  }

  body.zuri-v2 .section {
    padding: 92px 0;
  }

  body.zuri-v2 .section-heading {
    gap: 22px;
    margin-bottom: 42px;
  }

  body.zuri-v2 .service-grid,
  body.zuri-v2 .package-grid,
  body.zuri-v2 .review-grid,
  body.zuri-v2 .steps-grid {
    grid-template-columns: 1fr;
  }

  body.zuri-v2 .service-card,
  body.zuri-v2 .service-card:nth-child(n) {
    min-height: 440px;
  }

  body.zuri-v2 .service-card__body {
    min-height: 440px;
  }

  body.zuri-v2 .package-card,
  body.zuri-v2 .package-card:nth-child(n+4),
  body.zuri-v2 .package-card:last-child {
    grid-column: auto;
    min-height: auto;
  }

  body.zuri-v2 #results .container {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.zuri-v2 #results .section-heading,
  body.zuri-v2 .results-video-shell,
  body.zuri-v2 .gallery-grid {
    grid-column: 1;
  }

  body.zuri-v2 .results-video-shell {
    min-height: 610px;
    border-radius: 130px 26px 26px 26px;
  }

  body.zuri-v2 .results-video-shell video {
    min-height: 590px;
  }

  body.zuri-v2 .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.zuri-v2 .gallery-item,
  body.zuri-v2 .gallery-item:nth-child(1),
  body.zuri-v2 .gallery-item:nth-child(2),
  body.zuri-v2 .gallery-item:nth-child(3) {
    height: 350px;
  }

  body.zuri-v2 .review-card:nth-child(n) {
    transform: none;
  }

  body.zuri-v2 .steps-grid::before {
    display: none;
  }

  body.zuri-v2 .location-image img {
    height: 520px;
  }

  body.zuri-v2 .faq-heading {
    position: static;
  }

  body.zuri-v2 .final-cta__inner {
    padding: 50px 31px;
    border-radius: 30px 74px 30px 30px;
  }
}

/* Small phones */
@media (max-width: 680px) {
  body.zuri-v2 .first-visit-offer {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    margin: 23px 0 20px;
    padding: 12px;
    text-align: left;
  }

  html[dir="rtl"] body.zuri-v2 .first-visit-offer {
    text-align: right;
  }

  body.zuri-v2 .first-visit-offer__discount {
    width: 64px;
    min-height: 64px;
  }

  body.zuri-v2 .first-visit-offer__discount strong {
    font-size: 28px;
  }

  body.zuri-v2 .first-visit-offer__content > strong {
    font-size: 20px;
  }

  body.zuri-v2 .first-visit-offer__cta {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 46px;
  }
}

@media (max-width: 560px) {
  body.zuri-v2 {
    font-size: 15px;
  }

  body.zuri-v2 .container {
    width: min(calc(100% - 24px), var(--container));
  }

  body.zuri-v2 h1 {
    font-size: 50px;
    line-height: .94;
  }

  body.zuri-v2 .hero {
    padding-top: 46px;
  }

  body.zuri-v2 .hero-actions {
    flex-direction: column;
  }

  body.zuri-v2 .hero-actions .btn {
    width: 100%;
  }

  body.zuri-v2 .hero-visual {
    padding-inline: 4px;
  }

  body.zuri-v2 .hero-image-wrap {
    border-radius: 104px 104px 24px 24px;
  }

  body.zuri-v2 .hero-image-wrap::before {
    inset: 14px -7px -10px 10px;
    border-radius: 100px 100px 24px 24px;
  }

  body.zuri-v2 .hero-main-video {
    height: 462px;
    border-radius: 94px 94px 17px 17px;
  }

  body.zuri-v2 .hero-card {
    max-width: 185px;
    padding: 10px 11px;
  }

  body.zuri-v2 .hero-card--rating {
    top: 38px;
    left: -1px;
  }

  body.zuri-v2 .hero-card--location {
    right: -1px;
    bottom: 48px;
  }

  html[dir="rtl"] body.zuri-v2 .hero-card--rating {
    right: -1px;
    left: auto;
  }

  html[dir="rtl"] body.zuri-v2 .hero-card--location {
    right: auto;
    left: -1px;
  }

  body.zuri-v2 .quick-prices {
    grid-template-columns: 1fr 1fr;
    margin: -25px 12px 0;
  }

  body.zuri-v2 .trust-grid > div {
    padding: 18px 21px;
  }

  body.zuri-v2 .section-heading h2 {
    font-size: 46px;
  }

  body.zuri-v2 .service-card,
  body.zuri-v2 .service-card:nth-child(n) {
    min-height: 420px;
    border-radius: 22px 58px 22px 22px;
  }

  body.zuri-v2 .service-card:nth-child(even) {
    border-radius: 56px 22px 22px 22px;
  }

  body.zuri-v2 .service-card__body {
    min-height: 420px;
    padding: 27px 24px 25px;
  }

  body.zuri-v2 .service-card h3 {
    font-size: 34px;
  }

  body.zuri-v2 .services-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  body.zuri-v2 .package-card {
    padding: 29px;
  }

  body.zuri-v2 .results-video-shell {
    min-height: 522px;
    border-width: 8px;
    border-radius: 98px 22px 22px 22px;
  }

  body.zuri-v2 .results-video-shell video {
    min-height: 506px;
  }

  body.zuri-v2 .gallery-grid {
    grid-template-columns: 1fr;
  }

  body.zuri-v2 .gallery-item,
  body.zuri-v2 .gallery-item:nth-child(1),
  body.zuri-v2 .gallery-item:nth-child(2),
  body.zuri-v2 .gallery-item:nth-child(3) {
    height: 410px;
  }

  body.zuri-v2 .reviews-summary > div:first-child {
    border-radius: 62px 22px 22px 22px;
  }

  body.zuri-v2 .review-card p {
    font-size: 24px;
  }

  body.zuri-v2 .price-tabs {
    border-radius: 18px 42px 18px 18px;
  }

  body.zuri-v2 .price-panels {
    padding: 22px;
    border-radius: 24px 54px 24px 24px;
  }

  body.zuri-v2 .price-panel {
    grid-template-columns: 1fr;
  }

  body.zuri-v2 .step {
    min-height: auto;
  }

  body.zuri-v2 .location-image::before {
    inset: 12px -8px -10px 10px;
    border-radius: 26px 78px 26px 26px;
  }

  body.zuri-v2 .location-image img {
    height: 420px;
    border-radius: 26px 80px 26px 26px;
  }

  body.zuri-v2 .location-badge {
    right: 9px;
  }

  html[dir="rtl"] body.zuri-v2 .location-badge {
    right: auto;
    left: 9px;
  }

  body.zuri-v2 .faq-list summary {
    padding: 22px 54px 22px 20px;
    font-size: 24px;
  }

  body.zuri-v2 .faq-list details p {
    padding: 0 54px 23px 20px;
  }

  html[dir="rtl"] body.zuri-v2 .faq-list summary {
    padding: 22px 20px 22px 54px;
  }

  html[dir="rtl"] body.zuri-v2 .faq-list details p {
    padding: 0 20px 23px 54px;
  }

  body.zuri-v2 .final-cta__inner {
    padding: 43px 24px;
    border-radius: 27px 58px 27px 27px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.zuri-v2 .service-card:hover .service-card__media img,
  body.zuri-v2 .gallery-item:hover img,
  body.zuri-v2 .btn:hover {
    transform: none;
  }
}

/* ========================================================================== 
   Mobile responsiveness and performance refinement — v2.1.0
   ========================================================================== */

/* Defer rendering work for substantial below-the-fold sections while keeping
   their DOM, copy, links and tracking hooks available to search and scripts. */
@supports (content-visibility: auto) {
  body.zuri-v2 #services,
  body.zuri-v2 #packages,
  body.zuri-v2 #results,
  body.zuri-v2 #reviews,
  body.zuri-v2 .price-section,
  body.zuri-v2 .booking-steps,
  body.zuri-v2 #location,
  body.zuri-v2 #faq,
  body.zuri-v2 .final-cta {
    content-visibility: auto;
    contain-intrinsic-size: auto 900px;
  }
}

body.zuri-v2 .hero-main-video,
body.zuri-v2 .results-video-shell video {
  background-color: #dfcbc2;
}

@media (max-width: 820px) {
  html {
    max-width: 100%;
    overflow-x: hidden;
  }

  body.zuri-v2 {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Remove the fixed grain layer and expensive live blur on mobile GPUs. */
  body.zuri-v2::before {
    display: none;
  }

  body.zuri-v2 .site-header,
  body.zuri-v2 .mobile-action-bar {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  body.zuri-v2 .site-header {
    background: rgba(255, 250, 244, .97);
  }

  body.zuri-v2 .container,
  body.zuri-v2 .hero-grid,
  body.zuri-v2 .location-grid,
  body.zuri-v2 .faq-grid,
  body.zuri-v2 .reviews-summary,
  body.zuri-v2 .section-heading,
  body.zuri-v2 .final-cta__inner {
    min-width: 0;
    max-width: 100%;
  }

  /* The copy is flattened into the hero grid so the real salon video can sit
     immediately after the heading on phones, before the supporting paragraph. */
  body.zuri-v2 .hero {
    padding: 34px 0 72px;
  }

  body.zuri-v2 .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 0;
    row-gap: 0;
  }

  body.zuri-v2 .hero-copy {
    display: contents;
  }

  body.zuri-v2 .hero-copy::after {
    display: none;
  }

  body.zuri-v2 .rating-pill {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    margin: 0 0 16px;
  }

  body.zuri-v2 .hero-copy .eyebrow {
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
    width: 100%;
    margin: 0 0 9px;
    text-align: center;
  }

  body.zuri-v2 .hero-copy h1 {
    grid-column: 1;
    grid-row: 3;
    width: 100%;
    max-width: 12ch;
    margin: 0 auto 22px;
    text-align: center;
  }

  body.zuri-v2 .hero-visual {
    grid-column: 1;
    grid-row: 4;
    width: 100%;
    max-width: 560px;
    min-width: 0;
    margin: 0 auto 30px;
    padding: 0;
  }

  body.zuri-v2 .hero-lead {
    grid-column: 1;
    grid-row: 5;
    width: 100%;
    max-width: 620px;
    margin: 0 auto 24px;
    text-align: center;
  }

  body.zuri-v2 .hero-actions {
    grid-column: 1;
    grid-row: 6;
    width: 100%;
    margin: 0;
  }

  body.zuri-v2 .hero-proof {
    grid-column: 1;
    grid-row: 7;
    width: 100%;
    margin-top: 20px;
  }

  body.zuri-v2 .hero-image-wrap {
    padding: 7px;
    border-radius: 32px 72px 32px 32px;
    box-shadow: 0 20px 54px rgba(57, 38, 31, .14);
  }

  body.zuri-v2 .hero-image-wrap::before {
    inset: 11px -6px -8px 8px;
    border-radius: 30px 70px 30px 30px;
  }

  body.zuri-v2 .hero-main-video {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    border-radius: 25px 64px 25px 25px;
    object-fit: cover;
    object-position: center 42%;
  }

  /* The rating is already stated above the heading and directions are in the
     persistent action bar, so duplicate floating cards are removed on mobile. */
  body.zuri-v2 .hero-card {
    display: none;
  }

  body.zuri-v2 .quick-prices {
    width: calc(100% - 20px);
    margin: -24px auto 0;
    padding: 13px 4px;
  }

  body.zuri-v2 .quick-prices div {
    min-width: 0;
    padding-inline: 8px;
  }

  body.zuri-v2 .quick-prices strong {
    overflow-wrap: anywhere;
  }

  /* Prevent intrinsic-width grid children from expanding the layout viewport.
     This was the root cause of the sticky bar appearing partly off-screen. */
  body.zuri-v2 .location-grid,
  body.zuri-v2 .faq-grid,
  body.zuri-v2 .reviews-summary,
  body.zuri-v2 .section-heading,
  body.zuri-v2 .final-cta__inner,
  body.zuri-v2 #results .container {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.zuri-v2 .location-grid > *,
  body.zuri-v2 .location-copy,
  body.zuri-v2 .location-image,
  body.zuri-v2 .location-actions,
  body.zuri-v2 .map-experience,
  body.zuri-v2 .map-experience > *,
  body.zuri-v2 .price-panels,
  body.zuri-v2 .price-panel,
  body.zuri-v2 .final-cta__inner > * {
    min-width: 0;
    max-width: 100%;
  }

  body.zuri-v2 .location-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  body.zuri-v2 .location-actions .btn {
    width: 100%;
  }

  body.zuri-v2 .price-tabs {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  body.zuri-v2 .modal {
    width: 100vw;
    max-width: 100vw;
  }

  body.zuri-v2 .modal-panel {
    width: min(calc(100vw - 24px), 620px);
    max-width: calc(100vw - 24px);
  }

  /* Use an explicit viewport width rather than auto width from left/right.
     That makes the bar immune to any accidental document-level overflow. */
  body.zuri-v2 .mobile-action-bar {
    left: 10px;
    right: auto;
    bottom: calc(8px + env(safe-area-inset-bottom));
    width: calc(100vw - 20px);
    max-width: none;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    padding: 5px;
    overflow: hidden;
    box-sizing: border-box;
    border-radius: 18px;
    background: #2c2320;
    box-shadow: 0 12px 32px rgba(0,0,0,.24);
  }

  @supports (width: calc(100vw - max(10px, env(safe-area-inset-left)))) {
    body.zuri-v2 .mobile-action-bar {
      left: max(10px, env(safe-area-inset-left));
      width: calc(100vw - max(10px, env(safe-area-inset-left)) - max(10px, env(safe-area-inset-right)));
    }
  }

  body.zuri-v2 .mobile-action-bar .mobile-action {
    min-width: 0;
    min-height: 56px;
    padding: 5px 2px;
  }

  body.zuri-v2 .mobile-action-bar .mobile-action b {
    width: 100%;
    max-width: 100%;
    font-size: 10px;
    text-align: center;
  }

  body.zuri-v2 .site-footer {
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }

  /* More restrained shadows reduce mobile paint cost without flattening the UI. */
  body.zuri-v2 .service-card,
  body.zuri-v2 .package-card,
  body.zuri-v2 .review-card,
  body.zuri-v2 .step,
  body.zuri-v2 .price-panels {
    box-shadow: 0 14px 38px rgba(50, 31, 24, .09);
  }
}

@media (max-width: 560px) {
  body.zuri-v2 .container {
    width: min(calc(100% - 24px), var(--container));
  }

  body.zuri-v2 h1,
  body.zuri-v2 .hero-copy h1 {
    font-size: clamp(42px, 12.2vw, 49px);
    line-height: .94;
  }

  body.zuri-v2 .hero-copy .eyebrow {
    font-size: 10px;
    letter-spacing: .12em;
  }

  body.zuri-v2 .hero-lead {
    font-size: 15px;
    line-height: 1.68;
  }

  body.zuri-v2 .hero-main-video {
    aspect-ratio: 4 / 5;
  }

  body.zuri-v2 .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  body.zuri-v2 .hero-actions .btn:first-child {
    grid-column: 1 / -1;
  }

  body.zuri-v2 .hero-actions .btn {
    min-width: 0;
    min-height: 52px;
    padding-inline: 10px;
    font-size: 12px;
  }

  body.zuri-v2 .hero-proof {
    align-items: center;
    flex-direction: column;
    gap: 8px;
  }

  body.zuri-v2 .section {
    padding: 76px 0;
  }

  body.zuri-v2 .results-video-shell {
    min-height: 0;
    aspect-ratio: 4 / 5;
    border-radius: 56px 20px 20px 20px;
  }

  body.zuri-v2 .results-video-shell video {
    min-height: 0;
    height: 100%;
  }

  body.zuri-v2 .location-image img {
    height: min(105vw, 420px);
  }
}

@media (max-width: 360px) {
  body.zuri-v2 .mobile-action-bar .mobile-action b {
    font-size: 9px;
  }

  body.zuri-v2 .mobile-action-bar .mobile-action .ui-icon {
    width: 19px;
    height: 19px;
  }
}


/* First-visit campaign mode v2.5
 * Activated by ?offer=first-visit or utm_campaign=first_visit_10.
 * The normal /book page remains unchanged without those parameters.
 */
body.zuri-v2 .first-visit-offer__code,
body.zuri-v2 .offer-redemption {
  display: none;
}

html.offer-mode body.zuri-v2 .offer-strip {
  background: linear-gradient(90deg, #34211f, #683c42 54%, #34211f);
}

html.offer-mode body.zuri-v2 .hero {
  padding-top: 68px;
  background:
    radial-gradient(circle at 12% 18%, rgba(238, 211, 206, .70), transparent 28rem),
    linear-gradient(105deg, rgba(255,253,249,.64), transparent 58%);
}

html.offer-mode body.zuri-v2 .hero-campaign-title {
  max-width: 760px;
  font-size: clamp(55px, 5.7vw, 84px);
}

html.offer-mode body.zuri-v2 .hero-campaign-lead {
  max-width: 650px;
  font-size: 18px;
}

html.offer-mode body.zuri-v2 .first-visit-offer {
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 15px;
  border-color: rgba(159, 85, 93, .28);
  background:
    linear-gradient(120deg, rgba(238, 211, 206, .86), rgba(255, 253, 249, .98) 58%),
    var(--white);
  box-shadow: 0 18px 48px rgba(94, 54, 48, .13);
}

html.offer-mode body.zuri-v2 .first-visit-offer__cta {
  display: none;
}

html.offer-mode body.zuri-v2 .first-visit-offer__code {
  display: grid;
  min-width: 112px;
  padding: 10px 15px;
  border: 1px dashed rgba(159, 85, 93, .42);
  border-radius: 15px 15px 15px 5px;
  background: rgba(255, 253, 249, .78);
  text-align: center;
}

html.offer-mode body.zuri-v2 .first-visit-offer__code span {
  color: var(--ink-soft);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}

html.offer-mode body.zuri-v2 .first-visit-offer__code strong {
  color: var(--rose-deep);
  font-size: 18px;
  letter-spacing: .06em;
}

html.offer-mode body.zuri-v2 .hero-actions .hero-online-offer {
  order: 1;
  color: #fff;
  border-color: var(--rose-deep);
  background: var(--rose-deep);
  box-shadow: 0 14px 31px rgba(159, 85, 93, .25);
}

html.offer-mode body.zuri-v2 .hero-actions .hero-whatsapp-offer {
  order: 2;
  color: var(--ink);
  border: 1px solid rgba(53,39,34,.16);
  background: rgba(255,253,249,.82);
  box-shadow: none;
}

html.offer-mode body.zuri-v2 .hero-actions .hero-whatsapp-offer .ui-icon {
  color: #219653;
}

html.offer-mode body.zuri-v2 .hero-actions .hero-directions,
html.offer-mode body.zuri-v2 .final-cta__actions .final-directions {
  display: none;
}

html.offer-mode body.zuri-v2 .offer-redemption {
  display: block;
  padding: 38px 0 72px;
}

body.zuri-v2 .offer-redemption__inner {
  padding: 42px;
  border: 1px solid rgba(159, 85, 93, .17);
  border-radius: 30px 30px 30px 9px;
  background:
    radial-gradient(circle at 100% 0, rgba(238,211,206,.65), transparent 25rem),
    rgba(255, 253, 249, .86);
  box-shadow: 0 22px 60px rgba(62, 40, 31, .09);
}

body.zuri-v2 .offer-redemption__heading {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .7fr);
  gap: 8px 55px;
  align-items: end;
}

body.zuri-v2 .offer-redemption__heading .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: 5px;
}

body.zuri-v2 .offer-redemption__heading h2 {
  margin: 0;
  font-size: clamp(38px, 4.2vw, 58px);
  line-height: .98;
}

body.zuri-v2 .offer-redemption__heading > p:last-child {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.7;
}

body.zuri-v2 .offer-redemption__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 30px;
}

body.zuri-v2 .offer-redemption__steps article {
  display: flex;
  gap: 14px;
  min-height: 150px;
  padding: 22px;
  border: 1px solid rgba(53,39,34,.10);
  border-radius: 22px 22px 22px 7px;
  background: rgba(255,255,255,.72);
}

body.zuri-v2 .offer-redemption__steps article > span {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  color: #fff;
  border-radius: 14px 14px 14px 5px;
  background: var(--rose-deep);
  font-weight: 900;
}

body.zuri-v2 .offer-redemption__steps h3 {
  margin: 1px 0 7px;
  font-family: var(--font-display);
  font-size: 25px;
  line-height: 1.05;
}

body.zuri-v2 .offer-redemption__steps p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.6;
}

body.zuri-v2 .offer-redemption__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.zuri-v2 .offer-terms {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(53,39,34,.10);
}

body.zuri-v2 .offer-terms summary {
  width: max-content;
  color: var(--rose-deep);
  font-weight: 850;
  cursor: pointer;
}

body.zuri-v2 .offer-terms p {
  max-width: 930px;
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.75;
}

@media (max-width: 900px) {
  body.zuri-v2 .offer-redemption__heading {
    grid-template-columns: 1fr;
  }

  body.zuri-v2 .offer-redemption__steps {
    grid-template-columns: 1fr;
  }

  body.zuri-v2 .offer-redemption__steps article {
    min-height: auto;
  }
}

@media (max-width: 680px) {
  html.offer-mode body.zuri-v2 .hero {
    padding-top: 40px;
  }

  html.offer-mode body.zuri-v2 .hero-campaign-title {
    font-size: clamp(47px, 14vw, 62px);
  }

  html.offer-mode body.zuri-v2 .first-visit-offer {
    grid-template-columns: auto minmax(0, 1fr);
  }

  html.offer-mode body.zuri-v2 .first-visit-offer__code {
    grid-column: 1 / -1;
    min-width: 0;
  }

  html.offer-mode body.zuri-v2 .hero-actions {
    flex-direction: column;
  }

  html.offer-mode body.zuri-v2 .hero-actions .btn {
    width: 100%;
  }

  html.offer-mode body.zuri-v2 .offer-redemption {
    padding: 18px 0 48px;
  }

  body.zuri-v2 .offer-redemption__inner {
    padding: 27px 20px;
    border-radius: 24px 24px 24px 7px;
  }

  body.zuri-v2 .offer-redemption__heading h2 {
    font-size: 39px;
  }

  body.zuri-v2 .offer-redemption__actions {
    flex-direction: column;
  }

  body.zuri-v2 .offer-redemption__actions .btn {
    width: 100%;
  }

  html.offer-mode body.zuri-v2 .mobile-action-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html.offer-mode body.zuri-v2 .mobile-action--call,
  html.offer-mode body.zuri-v2 .mobile-action--directions {
    display: none;
  }

  html.offer-mode body.zuri-v2 .mobile-action--whatsapp,
  html.offer-mode body.zuri-v2 .mobile-action--book {
    min-width: 0;
  }
}

/* Campaign mobile priority: keep the promise, code and booking actions above the salon visual. */
@media (max-width: 820px) {
  html.offer-mode body.zuri-v2 .hero-lead {
    grid-row: 4;
    margin-bottom: 18px;
  }

  html.offer-mode body.zuri-v2 .first-visit-offer {
    grid-column: 1;
    grid-row: 5;
    width: 100%;
    max-width: 620px;
    margin: 0 auto 18px;
  }

  html.offer-mode body.zuri-v2 .hero-actions {
    grid-row: 6;
    margin-bottom: 25px;
  }

  html.offer-mode body.zuri-v2 .hero-proof {
    display: none;
  }

  html.offer-mode body.zuri-v2 .hero-visual {
    grid-row: 7;
    margin-bottom: 0;
  }
}

@media (max-width: 560px) {
  html.offer-mode body.zuri-v2 .hero-campaign-title {
    max-width: 10.5ch;
    margin-bottom: 18px;
    font-size: clamp(43px, 12.5vw, 53px);
  }

  html.offer-mode body.zuri-v2 .hero-campaign-lead {
    font-size: 15px;
    line-height: 1.65;
  }
}

@media (max-width: 560px) {
  html.offer-mode body.zuri-v2 .hero-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  html.offer-mode body.zuri-v2 .hero-actions .btn:first-child {
    grid-column: auto;
  }
}
