/* ==================================================
   EVOKE DESIGN TOKENS
================================================== */

:root {
  --evoke-vellum: #f7f2e8;
  --evoke-vellum-deep: #eee6d7;
  --evoke-celadon: #d7e2d6;
  --evoke-celadon-deep: #b7c8b8;
  --evoke-moss: #52685f;
  --evoke-moss-deep: #3e5049;
  --evoke-sepia: #544a42;
  --evoke-ink: #544a42;
  --evoke-ink-soft: #6d6258;
  --evoke-coral: #e9b9a9;
  --evoke-coral-deep: #c98978;
  --evoke-coral-soft: #f5ddd3;
  --evoke-brass: #cfab66;
  --evoke-white: #fbf7f0;

  --evoke-font-display: "Cormorant Garamond", "Times New Roman", serif;
  --evoke-font-body: "Outfit", "Helvetica Neue", sans-serif;

  --evoke-measure: 38rem;
  --evoke-container: min(1180px, calc(100% - 2.5rem));
  --evoke-container-wide: min(1380px, calc(100% - 2rem));
  --evoke-space-xs: clamp(0.5rem, 1vw, 0.75rem);
  --evoke-space-sm: clamp(1rem, 2vw, 1.5rem);
  --evoke-space-md: clamp(1.75rem, 4vw, 3rem);
  --evoke-space-lg: clamp(3rem, 8vw, 6.5rem);
  --evoke-space-xl: clamp(4.5rem, 12vw, 9rem);

  --evoke-header-h: 8.65rem;
  --evoke-glass: color-mix(in srgb, var(--evoke-vellum) 64%, transparent);
  --evoke-glass-dark: color-mix(in srgb, var(--evoke-moss) 52%, transparent);
  --evoke-glass-border: color-mix(in srgb, var(--evoke-white) 58%, var(--evoke-coral));
  --evoke-glass-shadow: 0 18px 48px color-mix(in srgb, var(--evoke-sepia) 12%, transparent);
  --evoke-radius-organic: 58% 42% 47% 53% / 44% 51% 49% 56%;
  --evoke-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ==================================================
   GLOBAL / RESET
================================================== */

.evoke-root,
.evoke-root * {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-size: 16px !important;
}

.evoke-root h1,
.evoke-root h2,
.evoke-root h3 {
  color: inherit;
}

.evoke-root {
  margin: 0;
  background: var(--evoke-vellum);
  color: var(--evoke-ink);
  font-family: var(--evoke-font-body);
  font-weight: 400;
  font-size: 17px;
  scroll-padding-top: calc(var(--evoke-header-h) + 0.75rem);
  line-height: 1.65;
  letter-spacing: 0.01em;
}

.evoke-root img {
  max-width: 100%;
  height: auto;
  display: block;
}

.evoke-root a {
  color: inherit;
}

.evoke-skip {
  position: absolute;
  left: 1rem;
  top: -100px;
  background: var(--evoke-moss);
  color: var(--evoke-vellum);
  padding: 0.75rem 1rem;
  z-index: 10000;
}

.evoke-skip:focus {
  top: 1rem;
}

.evoke-wrap {
  width: var(--evoke-container);
  margin-inline: auto;
}

.evoke-wrap-wide {
  width: var(--evoke-container-wide);
  margin-inline: auto;
}

.evoke-root :focus-visible {
  outline: 2px solid var(--evoke-coral);
  outline-offset: 3px;
}

body.evoke-menu-open {
  overflow: hidden;
}

/* Hide leftover WP/theme chrome on the custom homepage */
.evoke-home .bde-header,
.evoke-home .breakdance-header,
.evoke-home #wpadminbar + .evoke-site {
  scroll-margin-top: 32px;
}

/* ==================================================
   TYPOGRAPHY
================================================== */

.evoke-eyebrow {
  font-family: var(--evoke-font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--evoke-coral-deep);
  margin: 0 0 0.85rem;
}

.evoke-display {
  font-family: var(--evoke-font-display);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 0.92;
  margin: 0;
}

.evoke-kicker {
  font-size: clamp(2.15rem, 4.6vw, 4.15rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.evoke-statement {
  font-size: clamp(1.85rem, 3.1vw, 3rem);
  line-height: 1.18;
  letter-spacing: -0.02em;
  max-width: 34rem;
}

.evoke-lede,
.evoke-body {
  max-width: var(--evoke-measure);
  color: var(--evoke-ink-soft);
}

.evoke-lede {
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.7;
}

.evoke-logo {
  display: block;
  width: clamp(10.5rem, 20vw, 14.75rem);
  line-height: 0;
  text-decoration: none;
}

.evoke-header .evoke-logo {
  width: clamp(10.5rem, 28vw, 17rem);
  flex: 0 1 auto;
  min-width: 0;
  padding: 0;
}

.evoke-logo img {
  width: 100%;
  height: auto;
  display: block;
}

.evoke-logo-on-light,
.evoke-logo-on-dark {
  width: clamp(13.5rem, 26vw, 18.5rem);
  background: transparent;
  padding: 0;
  margin-bottom: 1.1rem;
}

.evoke-mark-e {
  display: block;
  width: 3.5rem;
  height: auto;
}

.evoke-mark-e-circle {
  width: 3.75rem;
}

.evoke-mark-e-light {
  width: min(16rem, 40vw);
}

.evoke-italic {
  font-style: italic;
  font-weight: 500;
}

/* ==================================================
   BUTTONS + LINKS
================================================== */

.evoke-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.1rem;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  text-decoration: none;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
  transition: background-color 0.25s var(--evoke-ease), color 0.25s var(--evoke-ease), transform 0.25s var(--evoke-ease);
}

a.evoke-btn-primary {
  background: var(--evoke-moss);
  color: var(--evoke-vellum);
}

.evoke-btn-primary:hover {
  background: var(--evoke-moss-deep);
}

.evoke-btn-ghost {
  border: 1px solid currentColor;
  background: transparent;
}

.evoke-btn-ghost:hover {
  background: var(--evoke-moss);
  color: var(--evoke-vellum);
  border-color: var(--evoke-moss);
}

.evoke-btn-outline {
  border: 1px solid var(--evoke-ink);
  background: transparent;
  color: var(--evoke-ink);
  border-radius: 2px;
  min-height: 2.6rem;
  padding: 0.55rem 1.15rem;
}

.evoke-btn-outline:hover {
  background: var(--evoke-ink);
  color: var(--evoke-vellum);
}

.evoke-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
  border-bottom: 1px solid var(--evoke-coral-soft);
  padding-bottom: 0.2rem;
}

.evoke-text-link:hover {
  color: var(--evoke-moss);
}

.evoke-btn:hover {
  transform: translateY(-1px);
}

/* ==================================================
   HEADER
================================================== */

.admin-bar .evoke-header {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .evoke-header {
    top: 46px;
  }
}

#services,
#art-of-softening,
#about,
#visit,
#enlighten,
#hair-removal,
#brows-lashes,
#skin-care,
#bio,
#path,
#recognition,
#details,
#arrive,
#map,
#studio,
#Precautions,
#HairRemoval,
#Tinting,
#Skincare,
#my-tabs-10,
#recent,
#studio-photos,
#disclaimer,
#returns,
#guarantee,
#facial-treatments,
#color-lift,
#waxing {
  scroll-margin-top: calc(var(--evoke-header-h) + 0.6rem);
}

.evoke-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 80;
  height: var(--evoke-header-h);
  display: flex;
  align-items: center;
  background: color-mix(in srgb, var(--evoke-vellum) 78%, transparent);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  border-bottom: 1px solid color-mix(in srgb, var(--evoke-coral) 42%, transparent);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--evoke-sepia) 6%, transparent);
  transition: transform 0.45s var(--evoke-ease), box-shadow 0.35s ease, background 0.35s ease;
}

.evoke-header.is-hidden {
  transform: translateY(-110%);
}

.evoke-header.is-scrolled {
  background: color-mix(in srgb, var(--evoke-vellum) 88%, transparent);
  box-shadow: 0 10px 32px color-mix(in srgb, var(--evoke-sepia) 10%, transparent);
}

.evoke-header-inner {
  width: var(--evoke-container);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: clamp(0.75rem, 1.6vw, 1.5rem);
  padding-block: 0.2rem;
}

.evoke-header-end {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: clamp(0.85rem, 1.8vw, 1.65rem);
  flex: 0 0 auto;
}

.evoke-nav {
  display: flex;
  gap: clamp(0.7rem, 1.6vw, 1.45rem);
  justify-content: flex-end;
}

.evoke-nav a {
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.evoke-header-cta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 0 0 auto;
}

.evoke-cart-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.evoke-cart-icon {
  display: none;
  width: 1.4rem;
  height: 1.4rem;
}

.evoke-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.15rem;
  height: 1.15rem;
  margin-left: 0.35rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--evoke-coral);
  color: var(--evoke-sepia);
  font-size: 0.62rem;
  letter-spacing: 0;
}

.evoke-menu-toggle {
  display: none;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--evoke-sepia);
  cursor: pointer;
}

.evoke-menu-toggle span,
.evoke-menu-toggle span::before,
.evoke-menu-toggle span::after {
  display: block;
  width: 1.2rem;
  height: 1px;
  background: var(--evoke-sepia);
  position: relative;
}

.evoke-menu-toggle span::before,
.evoke-menu-toggle span::after {
  content: "";
  position: absolute;
  left: 0;
}

.evoke-menu-toggle span::before { top: -6px; }
.evoke-menu-toggle span::after { top: 6px; }

.evoke-mobile-panel[hidden] {
  display: none !important;
}

.evoke-mobile-panel {
  position: fixed;
  inset: 0;
  background: var(--evoke-moss-deep);
  color: var(--evoke-vellum);
  z-index: 90;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 5rem 2rem 3rem;
  gap: 1.4rem;
}

.evoke-mobile-panel .evoke-mark-e {
  width: 4.4rem;
  margin-bottom: 0.25rem;
}

.evoke-mobile-panel a {
  text-decoration: none;
  font-family: var(--evoke-font-display);
  font-size: clamp(2rem, 8vw, 3rem);
}

.evoke-mobile-close {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  background: transparent;
  border: 0;
  color: inherit;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
}

/* ==================================================
   HERO
================================================== */

.evoke-hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  background: var(--evoke-ink);
  padding-top: var(--evoke-header-h);
}

.evoke-hero-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  max-width: min(36rem, 92vw);
  min-height: calc(100svh - var(--evoke-header-h));
  padding: clamp(2rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 5.5rem) clamp(3rem, 7vw, 6rem);
  color: var(--evoke-vellum);
}

.evoke-hero-copy .evoke-eyebrow {
  color: var(--evoke-coral-soft);
}

.evoke-hero-copy h1 {
  font-size: clamp(3.6rem, 9vw, 8rem);
  margin: 0.15rem 0 1.1rem;
  color: var(--evoke-vellum);
}

.evoke-hero-copy .evoke-lede {
  color: color-mix(in srgb, var(--evoke-vellum) 88%, white);
}

.evoke-hero-copy .evoke-btn-ghost {
  align-self: flex-start;
  border-radius: 2px;
  color: var(--evoke-vellum);
  border-color: color-mix(in srgb, var(--evoke-vellum) 80%, transparent);
}

.evoke-hero-copy .evoke-btn-ghost:hover {
  background: var(--evoke-vellum);
  color: var(--evoke-ink);
  border-color: var(--evoke-vellum);
}

.evoke-place {
  margin: 0 0 1.5rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.72rem;
  color: color-mix(in srgb, var(--evoke-vellum) 72%, transparent);
}

.evoke-hero-media {
  position: absolute;
  inset: 0;
}

.evoke-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
  position: absolute;
  inset: 0;
}

.evoke-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--evoke-ink) 62%, transparent) 0%, color-mix(in srgb, var(--evoke-ink) 18%, transparent) 46%, transparent 72%),
    linear-gradient(180deg, color-mix(in srgb, var(--evoke-ink) 18%, transparent) 0%, transparent 28%, color-mix(in srgb, var(--evoke-ink) 42%, transparent) 100%);
  pointer-events: none;
}

.evoke-stem {
  width: 1px;
  height: 3.5rem;
  background: var(--evoke-coral);
  margin: 0 0 1.4rem;
}

/* ==================================================
   NEW CLIENT
================================================== */

.evoke-enlighten {
  background: var(--evoke-celadon);
  padding: var(--evoke-space-lg) 0;
  position: relative;
}

.evoke-enlighten-inner {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}

.evoke-enlighten figure {
  margin: 0;
  overflow: hidden;
  border-radius: 0;
  max-width: 28rem;
}

.evoke-enlighten img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 50%;
}

.evoke-homecare {
  background: var(--evoke-vellum-deep);
  padding: var(--evoke-space-lg) 0;
}

.evoke-homecare-inner {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}

.evoke-homecare figure {
  margin: 0;
  overflow: hidden;
  max-width: 420px;
}

.evoke-homecare img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 20% 20%;
}

.evoke-rule {
  width: 3.5rem;
  height: 1px;
  background: var(--evoke-coral);
  margin: 1.1rem 0 1.4rem;
}

/* ==================================================
   SERVICES
================================================== */

.evoke-services {
  background: var(--evoke-vellum);
  padding: var(--evoke-space-xl) 0 var(--evoke-space-lg);
}

.evoke-services-intro {
  text-align: center;
  margin: 0 auto var(--evoke-space-md);
}

.evoke-services-intro .evoke-kicker {
  font-size: clamp(1.75rem, 3.2vw, 3.25rem);
  line-height: 1.12;
  white-space: nowrap;
}

.evoke-services-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.9fr;
  gap: 1.25rem;
}

.evoke-service {
  position: relative;
  overflow: hidden;
  min-height: 28rem;
  color: var(--evoke-vellum);
  display: flex;
  align-items: flex-end;
}

.evoke-service img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  transition: transform 1.1s var(--evoke-ease);
}

.evoke-service-facial img { object-position: 46% 28%; }
.evoke-service-transform img { object-position: 78% 32%; }
.evoke-service-lift img { object-position: 48% 40%; }
.evoke-service-wax img { object-position: 50% 36%; }

.evoke-service:hover img {
  transform: scale(1.04);
}

.evoke-service-body {
  position: relative;
  z-index: 1;
  margin: 0.85rem;
  padding: 1.05rem 1.15rem 1.15rem;
  width: min(30rem, calc(100% - 1.7rem));
  background: linear-gradient(180deg, color-mix(in srgb, var(--evoke-sepia) 28%, transparent), color-mix(in srgb, var(--evoke-sepia) 62%, transparent));
  backdrop-filter: blur(5px) saturate(1.15);
  -webkit-backdrop-filter: blur(5px) saturate(1.15);
  border: 1px solid color-mix(in srgb, var(--evoke-coral) 28%, transparent);
  box-shadow: none;
}

.evoke-service h3 {
  font-family: var(--evoke-font-display);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 500;
  margin: 0 0 0.5rem;
  line-height: 1.05;
}

.evoke-service p {
  margin: 0 0 1rem;
  max-width: 28rem;
  color: color-mix(in srgb, var(--evoke-vellum) 88%, white);
}

.evoke-service-stack {
  display: grid;
  gap: 1.25rem;
}

.evoke-service-stack .evoke-service {
  min-height: 17.5rem;
}

.evoke-service-stack .evoke-service-body {
  width: calc(100% - 1.7rem);
  padding: 0.85rem 0.95rem 0.95rem;
}

.evoke-service-stack .evoke-service h3 {
  font-size: clamp(1.45rem, 2vw, 1.9rem);
}

.evoke-service-stack .evoke-service p {
  font-size: 0.92rem;
  line-height: 1.45;
  margin-bottom: 0.65rem;
}

/* ==================================================
   ART OF SOFTENING
================================================== */

.evoke-softening {
  background: var(--evoke-moss);
  color: var(--evoke-vellum);
  padding: var(--evoke-space-xl) 0;
  position: relative;
  overflow: hidden;
}

.evoke-softening .evoke-eyebrow {
  color: var(--evoke-coral-soft);
}

.evoke-softening-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}

.evoke-softening p {
  color: color-mix(in srgb, var(--evoke-vellum) 82%, #c7d6c8);
}

.evoke-softening figure img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 20%;
  clip-path: ellipse(88% 92% at 50% 55%);
}

.evoke-softening .evoke-mark-e-light {
  position: absolute;
  right: -1.5rem;
  bottom: -2.5rem;
  width: min(18rem, 46vw);
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  clip-path: none;
  opacity: 0.12;
  pointer-events: none;
}

.evoke-vine {
  position: absolute;
  left: -40px;
  top: 12%;
  width: 180px;
  height: 420px;
  opacity: 0.18;
  pointer-events: none;
}

/* ==================================================
   SLO FLO GLO
================================================== */

.evoke-slo {
  background: var(--evoke-vellum);
  padding: 0;
}

.evoke-slo-stage {
  position: relative;
  display: grid;
  min-height: 78svh;
}

.evoke-slo-stage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 46% 18%;
  min-height: 34rem;
  grid-column: 1;
  grid-row: 1;
}

.evoke-slo-panel {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  justify-self: end;
  width: min(23rem, 34%);
  margin: 1.1rem 1.15rem;
  background: linear-gradient(180deg, color-mix(in srgb, var(--evoke-moss) 26%, transparent), color-mix(in srgb, var(--evoke-moss) 56%, transparent));
  color: var(--evoke-vellum);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem 1.15rem 1.1rem;
  backdrop-filter: blur(5px) saturate(1.15);
  -webkit-backdrop-filter: blur(5px) saturate(1.15);
  border: 1px solid color-mix(in srgb, var(--evoke-coral) 32%, transparent);
  box-shadow: none;
}

.evoke-slo-panel h2 {
  font-size: clamp(2.15rem, 3.2vw, 3.45rem);
  margin: 0.1rem 0 0.45rem;
}

.evoke-slo-panel .evoke-eyebrow {
  color: var(--evoke-coral-soft);
}

.evoke-slo-panel p {
  color: color-mix(in srgb, var(--evoke-vellum) 84%, white);
}

.evoke-slo-panel .evoke-lede {
  font-size: 0.95rem;
  line-height: 1.45;
  margin: 0 0 0.75rem;
}

/* ==================================================
   QUOTE
================================================== */

.evoke-quote {
  background: var(--evoke-coral-soft);
  padding: var(--evoke-space-md) 0;
  text-align: center;
}

.evoke-quote blockquote {
  margin: 0 auto;
  max-width: 52rem;
  padding: 0;
  border: 0;
  font-family: var(--evoke-font-display);
  font-size: clamp(1.7rem, 3.2vw, 2.45rem);
  font-style: italic;
  line-height: 1.4;
  font-weight: 500;
}

.evoke-quote .evoke-flourish {
  margin: 0 auto 1rem;
  color: var(--evoke-brass);
}

/* ==================================================
   ABOUT
================================================== */

.evoke-about {
  background: var(--evoke-celadon);
  padding: var(--evoke-space-lg) 0;
}

.evoke-about-layout {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: center;
}

.evoke-about figure {
  margin: 0;
}

.evoke-about img {
  width: 100%;
  min-height: 34rem;
  object-fit: cover;
  object-position: 18% 20%;
}

.evoke-about h2 {
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  margin: 0 0 1rem;
}

/* ==================================================
   TESTIMONIALS
================================================== */

.evoke-voices {
  background: var(--evoke-vellum);
  padding: var(--evoke-space-xl) 0;
}

.evoke-voices-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 2rem;
  align-items: start;
}

.evoke-quote-card {
  max-width: 40rem;
}

.evoke-quote-card p {
  font-family: var(--evoke-font-display);
  font-size: clamp(1.5rem, 2.8vw, 2.15rem);
  line-height: 1.35;
  margin: 0 0 1rem;
}

.evoke-cite {
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--evoke-ink-soft);
}

.evoke-voice-list {
  display: grid;
  gap: 1.5rem;
  padding-top: 2.5rem;
}

.evoke-voice-list p {
  margin: 0 0 0.5rem;
  color: var(--evoke-ink-soft);
}

/* ==================================================
   LOCATION
================================================== */

.evoke-visit {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  min-height: 70svh;
  background: var(--evoke-moss);
  color: var(--evoke-vellum);
}

.evoke-visit img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 28rem;
}

.evoke-visit-copy {
  padding: clamp(2rem, 5vw, 4.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.evoke-visit h2 {
  font-size: clamp(2.4rem, 5vw, 4.6rem);
  margin: 0 0 1rem;
}

.evoke-visit address {
  font-style: normal;
  margin: 1.25rem 0;
  color: color-mix(in srgb, var(--evoke-vellum) 86%, white);
}

.evoke-visit .evoke-eyebrow {
  color: var(--evoke-coral-soft);
}

.evoke-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.5rem;
}

.evoke-visit .evoke-btn-primary {
  background: var(--evoke-vellum);
  color: var(--evoke-moss-deep);
}

.evoke-visit .evoke-btn-ghost {
  color: var(--evoke-vellum);
}

/* ==================================================
   CREDENTIALS
================================================== */

.evoke-creds {
  background: var(--evoke-vellum-deep);
  padding: var(--evoke-space-md) 0;
}

.evoke-creds-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.35rem, 3vw, 2.5rem) clamp(1rem, 4vw, 3.25rem);
  align-items: center;
  justify-items: center;
  max-width: 68rem;
  margin-inline: auto;
}

.evoke-creds img {
  width: min(100%, 16.5rem);
  height: auto;
  opacity: 1;
}

.evoke-creds h2 {
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin: 0 0 1.75rem;
  font-weight: 500;
  text-align: center;
}

/* ==================================================
   FOOTER
================================================== */

.evoke-footer {
  background: #53675f;
  color: var(--evoke-vellum);
  padding: var(--evoke-space-lg) 0 1.5rem;
  position: relative;
}

.evoke-footer-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.85fr 0.85fr 1fr;
  gap: 2rem 1.5rem;
  align-items: start;
}

.evoke-footer a {
  color: var(--evoke-vellum);
  text-decoration: none;
}

.evoke-footer a:hover {
  color: var(--evoke-coral);
}

.evoke-footer-col {
  display: grid;
  align-content: start;
  gap: 0.55rem;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
}

.evoke-footer-brand {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.evoke-footer-label {
  font-size: 0.68rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--evoke-brass);
  margin: 0 0 0.25rem;
}

.evoke-footer nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
}

.evoke-footer nav a,
.evoke-footer-col a {
  display: inline-block;
  font-size: 0.95rem;
  line-height: 1.35;
}

.evoke-footer-col p {
  margin: 0;
  line-height: 1.55;
}

.evoke-footer .evoke-social {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: center !important;
  gap: 0.55rem;
  margin-top: 0.35rem;
}

.evoke-footer .evoke-social a {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--evoke-vellum) 42%, transparent);
  border-radius: 50%;
  line-height: 0;
}

.evoke-footer .evoke-social a:hover {
  color: var(--evoke-sepia);
  background: var(--evoke-coral);
  border-color: var(--evoke-coral);
}

.evoke-footer .evoke-social svg {
  width: 0.95rem;
  height: 0.95rem;
  fill: currentColor;
}

.evoke-footer-meta {
  margin-top: var(--evoke-space-md);
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--evoke-vellum) 18%, transparent);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.85rem;
  color: color-mix(in srgb, var(--evoke-vellum) 72%, transparent);
}

.evoke-footer .evoke-lede {
  color: color-mix(in srgb, var(--evoke-vellum) 82%, transparent);
  max-width: 28rem;
}

.evoke-footer .evoke-logo img,
.evoke-footer .evoke-mark-e {
  filter: brightness(0) invert(1);
}

.evoke-footer .evoke-mark-e {
  display: none;
}

.evoke-footer-meta .evoke-flourish {
  flex: 0 0 auto;
  width: 2.25rem;
  margin: 0 auto 0.85rem;
  color: var(--evoke-brass);
}

.evoke-footer-meta .evoke-flourish-diamond {
  width: 2.25rem;
}

/* ==================================================
   RESPONSIVE
================================================== */

@media (max-width: 1024px) {
  .evoke-hero,
  .evoke-slo-stage,
  .evoke-softening-layout,
  .evoke-about-layout,
  .evoke-voices-grid,
  .evoke-visit,
  .evoke-services-grid,
  .evoke-enlighten-inner,
  .evoke-homecare-inner,
  .evoke-footer-grid,
  .evoke-page-hero-inner,
  .evoke-bio-layout,
  .evoke-path-layout {
    grid-template-columns: 1fr;
  }

  .evoke-hero-copy {
    max-width: none;
    padding-right: clamp(1.2rem, 6vw, 2.5rem);
  }

  .evoke-service,
  .evoke-service-stack .evoke-service {
    min-height: 22rem;
  }

  .evoke-about img {
    min-height: 26rem;
  }

  .evoke-softening figure {
    transform: none;
    max-width: 28rem;
  }
}

@media (max-width: 768px) {
  .evoke-nav {
    display: none;
  }

  .evoke-services-intro .evoke-kicker {
    white-space: normal;
  }

  .evoke-menu-toggle {
    display: grid;
    place-items: center;
  }

  .evoke-header .evoke-logo {
    width: clamp(9.6rem, 46vw, 12.25rem);
  }

  .evoke-header-cta .evoke-btn {
    min-height: 2.6rem;
    padding: 0.6rem 1rem;
  }

  .evoke-header-cta .evoke-cart-link {
    width: 2.6rem;
    height: 2.6rem;
    justify-content: center;
    font-size: 0;
    letter-spacing: 0;
  }

  .evoke-header-cta .evoke-cart-icon {
    display: block;
  }

  .evoke-header-cta .evoke-cart-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }

  .evoke-header-cta .evoke-cart-link::before {
    content: "";
    width: 1.4rem;
    height: 1.4rem;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 8V7a5 5 0 0110 0v1h3.2l-1.3 13.2A2 2 0 0116.91 22H7.09a2 2 0 01-1.99-1.8L3.8 8H7zm2 0h6V7a3 3 0 00-6 0v1z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 8V7a5 5 0 0110 0v1h3.2l-1.3 13.2A2 2 0 0116.91 22H7.09a2 2 0 01-1.99-1.8L3.8 8H7zm2 0h6V7a3 3 0 00-6 0v1z'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  .evoke-header-cta .evoke-cart-link:has(.evoke-cart-icon)::before {
    content: none;
  }

  .evoke-header-cta .evoke-cart-count {
    position: absolute;
    top: 0.15rem;
    right: 0;
    margin: 0;
    font-size: 0.58rem;
  }

  .evoke-eyebrow,
  .evoke-display,
  .evoke-kicker,
  .evoke-statement,
  .evoke-page-hero h1,
  .evoke-menu-intro .evoke-kicker,
  .evoke-services-intro .evoke-kicker,
  .evoke-enlighten .evoke-kicker,
  .evoke-softening .evoke-statement,
  .evoke-homecare .evoke-kicker,
  .evoke-about .evoke-kicker,
  .evoke-visit .evoke-kicker,
  .evoke-creds h2,
  .evoke-menu-cta .evoke-display {
    text-align: center;
  }

  .evoke-statement,
  .evoke-enlighten .evoke-flourish,
  .evoke-page-hero .evoke-flourish,
  .evoke-menu-intro .evoke-flourish,
  .evoke-homecare .evoke-flourish {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 430px) {
  :root {
    --evoke-container: min(1180px, calc(100% - 1.4rem));
    --evoke-container-wide: min(1380px, calc(100% - 1.2rem));
  }

  .evoke-root {
    font-size: 16px;
  }

  .evoke-hero-copy {
    padding-bottom: 2rem;
  }
}

.evoke-nav a[aria-current="page"] {
  border-bottom: 1px solid var(--evoke-coral);
  padding-bottom: 0.15rem;
}

/* ==================================================
   TREATMENTS PAGE
================================================== */

.evoke-page-hero {
  background: var(--evoke-vellum);
  padding: calc(var(--evoke-header-h) + 2.5rem) 0 var(--evoke-space-lg);
}

.evoke-page-hero-inner {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}

.evoke-page-hero h1 {
  font-size: clamp(3rem, 7vw, 5.5rem);
  margin: 0.15rem 0 1rem;
}

.evoke-page-hero figure {
  margin: 0;
  overflow: hidden;
}

.evoke-page-hero img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: 50% 40%;
}

.evoke-post-hero .evoke-wrap {
  max-width: 46rem;
}

.evoke-post-hero h1 {
  font-size: clamp(2.4rem, 5.5vw, 4.4rem);
  line-height: 1.02;
}

.evoke-post-body {
  max-width: 42rem;
  margin: 0 auto;
  padding: var(--evoke-space-md) 0 var(--evoke-space-lg);
  color: var(--evoke-ink-soft);
  font-size: 1.05rem;
  line-height: 1.75;
}

.evoke-post-body p,
.evoke-post-body li {
  margin: 0 0 1.1rem;
}

.evoke-post-body h2,
.evoke-post-body h3,
.evoke-post-body h4 {
  margin: 2rem 0 0.75rem;
  color: var(--evoke-sepia);
  font-family: var(--evoke-font-display);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.evoke-post-body h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.evoke-post-body h3 { font-size: clamp(1.4rem, 2.2vw, 1.8rem); }

.evoke-post-body a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--evoke-coral);
}

.evoke-post-body img,
.evoke-post-figure img {
  display: block;
  width: 100%;
  height: auto;
  margin: 1.4rem 0;
}

.evoke-post-figure {
  margin: 0 0 1.5rem;
}

.evoke-post-body ul,
.evoke-post-body ol {
  margin: 0 0 1.2rem;
  padding-left: 1.2rem;
}

.evoke-journal-hero {
  text-align: center;
  padding-bottom: var(--evoke-space-md);
}

.evoke-journal-hero .evoke-wrap {
  max-width: 40rem;
}

.evoke-journal-hero .evoke-flourish {
  margin-left: auto;
  margin-right: auto;
}

.evoke-journal-hero .evoke-lede {
  margin: 0.2rem auto 0;
}

.evoke-journal {
  padding: 0 0 var(--evoke-space-lg);
}

.evoke-journal-feature,
.evoke-journal-card {
  color: inherit;
  text-decoration: none;
}

.evoke-journal-feature {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  margin-bottom: var(--evoke-space-lg);
}

.evoke-journal-feature img,
.evoke-journal-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.evoke-journal-copy h2,
.evoke-journal-card h2 {
  margin: 0.2rem 0 0.75rem;
  line-height: 1.08;
}

.evoke-journal-copy h2 {
  font-size: clamp(2rem, 4vw, 3.3rem);
}

.evoke-journal-copy p,
.evoke-journal-card p {
  margin: 0 0 1rem;
  color: var(--evoke-ink-soft);
}

.evoke-journal-feature:hover h2,
.evoke-journal-card:hover h2 {
  color: var(--evoke-moss);
}

.evoke-journal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 3.25rem) clamp(1.25rem, 3vw, 2.75rem);
}

.evoke-journal-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.evoke-journal-card img {
  margin-bottom: 0.95rem;
}

.evoke-journal-card h2 {
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.evoke-journal-card .evoke-text-link {
  margin-top: auto;
  align-self: flex-start;
}

.evoke-journal-pages {
  margin-top: var(--evoke-space-md);
}

.evoke-journal-pages ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem 1.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.evoke-journal-pages a,
.evoke-journal-pages span {
  text-decoration: none;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.72rem;
}

.evoke-journal-pages .current {
  border-bottom: 1px solid var(--evoke-coral);
}

@media (max-width: 768px) {
  .evoke-journal-feature,
  .evoke-journal-grid {
    grid-template-columns: 1fr;
  }

  .evoke-journal-feature,
  .evoke-journal-card {
    text-align: center;
  }

  .evoke-journal-card .evoke-text-link,
  .evoke-journal-feature .evoke-text-link {
    align-self: center;
  }
}

.evoke-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.4rem;
  margin-top: 1.6rem;
}

.evoke-jump a {
  text-decoration: none;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
  border-bottom: 1px solid var(--evoke-coral-soft);
  padding-bottom: 0.15rem;
}

.evoke-menu-section {
  background: var(--evoke-vellum);
  padding: var(--evoke-space-lg) 0;
}

.evoke-menu-section-alt {
  background: var(--evoke-celadon);
}

.evoke-menu-intro {
  max-width: 46rem;
  margin-bottom: var(--evoke-space-md);
}

.evoke-menu-intro .evoke-kicker {
  font-size: clamp(1.8rem, 3.4vw, 3.2rem);
  white-space: normal;
  margin: 0.2rem 0 1rem;
}

.evoke-offerings {
  display: grid;
  gap: 0;
  border-top: 1px solid color-mix(in srgb, var(--evoke-ink) 12%, transparent);
}

.evoke-offering {
  padding: 1.6rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--evoke-ink) 12%, transparent);
}

.evoke-offering-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 1.5rem;
  margin-bottom: 0.55rem;
}

.evoke-offering h3 {
  font-family: var(--evoke-font-display);
  font-size: clamp(1.45rem, 2.4vw, 1.9rem);
  font-weight: 500;
  margin: 0;
  line-height: 1.15;
}

.evoke-price {
  margin: 0;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--evoke-moss);
  align-self: center;
}

.evoke-offering p {
  margin: 0 0 0.7rem;
  max-width: 46rem;
  color: var(--evoke-ink-soft);
}

.evoke-offering p:last-child {
  margin-bottom: 0;
}

.evoke-note {
  font-size: 0.92rem;
  font-style: italic;
}

.evoke-sublist {
  margin: 0.4rem 0 0;
  padding-left: 1.1rem;
  max-width: 46rem;
  color: var(--evoke-ink-soft);
}

.evoke-sublist li {
  margin: 0.35rem 0;
}

.evoke-menu-cta {
  background: var(--evoke-coral-soft);
  color: var(--evoke-sepia);
  padding: var(--evoke-space-lg) 0;
}

.evoke-menu-cta .evoke-eyebrow {
  color: var(--evoke-moss);
}

.evoke-menu-cta a {
  color: inherit;
}

.evoke-menu-cta .evoke-lede {
  color: var(--evoke-ink-soft);
}

.evoke-menu-cta .evoke-btn-primary {
  color: var(--evoke-vellum);
}

.evoke-menu-cta .evoke-btn-outline {
  border-color: var(--evoke-ink);
  color: var(--evoke-ink);
}

.evoke-menu-cta .evoke-btn-outline:hover {
  background: var(--evoke-ink);
  color: var(--evoke-vellum);
}

.evoke-menu-cta-inner h2 {
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  margin: 0.2rem 0 1rem;
}

.evoke-page-hero-portrait img {
  aspect-ratio: 4 / 5;
  object-position: 18% 18%;
}

.evoke-bio {
  background: var(--evoke-celadon);
  padding: var(--evoke-space-lg) 0;
}

.evoke-bio-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
}

.evoke-bio .evoke-kicker,
.evoke-path .evoke-kicker {
  font-size: clamp(1.8rem, 3.4vw, 3.2rem);
  white-space: normal;
  margin: 0.2rem 0 1rem;
}

.evoke-bio p,
.evoke-path p {
  color: var(--evoke-ink-soft);
  max-width: 38rem;
}

.evoke-path {
  background: var(--evoke-vellum);
  padding: var(--evoke-space-lg) 0;
}

.evoke-path-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: center;
}

.evoke-path figure {
  margin: 0;
}

.evoke-path img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 80%;
}

.evoke-about-page .evoke-voices {
  background: var(--evoke-celadon);
}

.evoke-contact-card {
  background: color-mix(in srgb, var(--evoke-vellum) 70%, transparent);
  padding: clamp(1.25rem, 3vw, 2rem);
}

.evoke-contact-card address {
  font-style: normal;
  font-family: var(--evoke-font-display);
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  line-height: 1.35;
  margin: 0 0 1rem;
  color: var(--evoke-ink);
}

.evoke-contact-card p {
  margin: 0 0 0.75rem;
}

.evoke-contact-card p:last-child {
  margin-bottom: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.4rem;
}

.evoke-arrive-list {
  margin: 0 0 1.4rem;
  padding: 0;
  list-style: none;
  max-width: 38rem;
  color: var(--evoke-ink-soft);
}

.evoke-arrive-list li {
  padding: 0.7rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--evoke-ink) 12%, transparent);
}

.evoke-arrive-list li:first-child {
  border-top: 1px solid color-mix(in srgb, var(--evoke-ink) 12%, transparent);
}

.evoke-map {
  background: var(--evoke-vellum);
  padding-top: var(--evoke-space-md);
}

.evoke-map .evoke-kicker {
  font-size: clamp(1.8rem, 3.4vw, 3.2rem);
  white-space: normal;
  margin: 0.2rem 0 1.5rem;
}

.evoke-map-frame {
  width: 100%;
  height: min(32rem, 70vh);
  overflow: hidden;
}

.evoke-map-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: saturate(0.75) contrast(0.95);
}

.evoke-home .sbi-critical-notice,
.evoke-treatments .sbi-critical-notice,
.evoke-about-page .sbi-critical-notice,
.evoke-contact-page .sbi-critical-notice,
.evoke-faqs-page .sbi-critical-notice,
.evoke-gallery-page .sbi-critical-notice,
.evoke-terms-page .sbi-critical-notice,
.evoke-home #sbi-notice-bar,
.evoke-treatments #sbi-notice-bar,
.evoke-about-page #sbi-notice-bar,
.evoke-contact-page #sbi-notice-bar,
.evoke-faqs-page #sbi-notice-bar,
.evoke-gallery-page #sbi-notice-bar,
.evoke-terms-page #sbi-notice-bar {
  display: none !important;
}

.evoke-legal {
  background: var(--evoke-vellum);
  padding: var(--evoke-space-lg) 0;
}

.evoke-legal-alt {
  background: var(--evoke-celadon);
}

.evoke-legal-inner {
  max-width: 42rem;
}

.evoke-legal .evoke-kicker {
  font-size: clamp(1.8rem, 3.4vw, 3.2rem);
  white-space: normal;
  margin: 0.2rem 0 1rem;
}

.evoke-legal p {
  color: var(--evoke-ink-soft);
}

.evoke-gallery {
  background: var(--evoke-vellum);
  padding: 0 0 var(--evoke-space-lg);
}

.evoke-gallery-alt {
  background: var(--evoke-celadon);
  padding: var(--evoke-space-lg) 0;
}

.evoke-gallery .evoke-kicker {
  font-size: clamp(1.8rem, 3.4vw, 3.2rem);
  white-space: normal;
  margin: 0.2rem 0 1rem;
}

.evoke-gallery-grid {
  columns: 3;
  column-gap: 0.75rem;
}

.evoke-gallery-grid figure {
  margin: 0 0 0.75rem;
  break-inside: avoid;
}

.evoke-gallery-grid button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.evoke-gallery-grid img {
  width: 100%;
  height: auto;
}

.evoke-lightbox {
  border: 0;
  padding: 0;
  max-width: min(92vw, 1100px);
  max-height: 92vh;
  background: transparent;
}

.evoke-lightbox::backdrop {
  background: color-mix(in srgb, var(--evoke-ink) 72%, transparent);
}

.evoke-lightbox img {
  max-width: 92vw;
  max-height: 86vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

.evoke-lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  background: var(--evoke-vellum);
  color: var(--evoke-ink);
  border: 0;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
  padding: 0.55rem 0.85rem;
  cursor: pointer;
}

@media (max-width: 900px) {
  .evoke-gallery-grid {
    columns: 2;
  }
}

@media (max-width: 560px) {
  .evoke-gallery-grid {
    columns: 1;
  }
}

.evoke-flourish {
  display: block;
  width: 3.35rem;
  height: auto;
  color: var(--evoke-brass);
  margin: 0.45rem 0 1.05rem;
}

.evoke-flourish-sun {
  width: 5.4rem;
}

.evoke-flourish-diamond {
  width: 11rem;
}

.evoke-mantra {
  margin: 0.85rem 0 1.25rem;
  max-width: 34rem;
  font-family: var(--evoke-font-body);
  font-size: clamp(0.62rem, 1.1vw, 0.72rem);
  font-weight: 500;
  letter-spacing: 0.26em;
  line-height: 1.85;
  text-transform: uppercase;
  color: var(--evoke-coral);
}

.evoke-softening .evoke-flourish {
  color: var(--evoke-brass);
}

.evoke-vine {
  display: none;
}

.evoke-cat-break {
  position: relative;
  min-height: min(72svh, 38rem);
  display: grid;
  align-items: end;
  color: var(--evoke-vellum);
  overflow: hidden;
}

.evoke-cat-break img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.evoke-cat-break::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, color-mix(in srgb, var(--evoke-sepia) 8%, transparent) 0%, color-mix(in srgb, var(--evoke-sepia) 42%, transparent) 100%);
  pointer-events: none;
}

.evoke-cat-break .evoke-wrap {
  position: relative;
  z-index: 1;
  width: var(--evoke-container);
  margin: 0 auto 2.2rem;
}

.evoke-cat-panel {
  max-width: 36rem;
  padding: 1.5rem 1.6rem 1.7rem;
  background: var(--evoke-glass);
  color: var(--evoke-sepia);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border: 1px solid var(--evoke-glass-border);
  box-shadow: var(--evoke-glass-shadow);
}

.evoke-cat-panel .evoke-eyebrow {
  color: var(--evoke-coral-deep);
}

.evoke-cat-panel h2 {
  font-size: clamp(1.85rem, 3.4vw, 3.1rem);
  line-height: 1.08;
  margin: 0.15rem 0 0.85rem;
}

.evoke-cat-panel p {
  margin: 0;
  color: var(--evoke-ink-soft);
}

.evoke-cat-panel .evoke-text-link {
  display: inline-block;
  margin-top: 0.9rem;
  color: var(--evoke-sepia);
}

#facial-treatments {
  align-items: start;
}

#facial-treatments .evoke-wrap {
  width: min(34rem, 40%);
  margin: 1.35rem 0 0 1.15rem;
}

.evoke-menu-section-alt {
  background: color-mix(in srgb, var(--evoke-coral-soft) 42%, var(--evoke-vellum));
}

.evoke-voices {
  background: color-mix(in srgb, var(--evoke-celadon) 28%, var(--evoke-vellum));
}

.evoke-enlighten {
  background: color-mix(in srgb, var(--evoke-coral-soft) 38%, var(--evoke-celadon));
}

.evoke-visit-copy {
  background: var(--evoke-glass-dark);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-left: 1px solid color-mix(in srgb, var(--evoke-coral) 35%, transparent);
}

.evoke-text-link {
  border-bottom-color: var(--evoke-brass);
}

.evoke-jump a {
  border-bottom-color: var(--evoke-coral-deep);
}

.evoke-price {
  color: var(--evoke-brass);
}

/* ==================================================
   SHOP / WOOCOMMERCE
================================================== */

.evoke-shop-stage {
  padding: 0 0 var(--evoke-space-lg);
}

.evoke-product .evoke-shop-stage,
.evoke-cart .evoke-shop-stage,
.evoke-checkout .evoke-shop-stage,
.evoke-account .evoke-shop-stage {
  padding-top: calc(var(--evoke-header-h) + 2.5rem);
}

.evoke-shop .woocommerce-breadcrumb,
.evoke-shop .woocommerce-result-count,
.evoke-shop .woocommerce-ordering,
.evoke-shop .fl-page-bar,
.evoke-shop .fl-page-header,
.evoke-shop #sbi_images,
.evoke-shop .sbi_moderation_mode,
.evoke-root .fl-page-bar,
.evoke-root .fl-page-header {
  display: none !important;
}

.evoke-shop ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.evoke-shop ul.products::before,
.evoke-shop ul.products::after {
  display: none !important;
}

.evoke-shop ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 1rem 1rem 1.25rem;
  background: color-mix(in srgb, var(--evoke-white) 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--evoke-coral) 34%, transparent);
  box-shadow: var(--evoke-glass-shadow);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  text-align: left;
}

.evoke-shop ul.products li.product a img,
.evoke-shop ul.products li.product img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--evoke-white);
  margin: 0 0 1rem;
}

.evoke-shop ul.products li.product .woocommerce-loop-product__title,
.evoke-shop ul.products li.product h2 {
  font-family: var(--evoke-font-display);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 0.4rem;
  color: var(--evoke-sepia);
}

.evoke-shop ul.products li.product .price {
  display: block;
  margin: 0 0 0.85rem;
  color: var(--evoke-brass);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.evoke-shop ul.products .quantity,
.evoke-shop ul.products .quantity--number,
.evoke-shop ul.products .qty,
.evoke-shop ul.products .qib-button,
.evoke-shop ul.products .plus,
.evoke-shop ul.products .minus,
.evoke-shop ul.products .bde-quantity-button {
  display: none !important;
}

.evoke-shop ul.products a.button,
.evoke-shop ul.products a.added_to_cart,
.evoke-shop ul.products .button,
.evoke-shop ul.products .single_add_to_cart_button,
.evoke-shop ul.products .price a,
.evoke-shop ul.products .bde-woo-product-footer a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 2.65rem;
  margin: 0.15rem 0.4rem 0.15rem 0;
  padding: 0.55rem 1.2rem !important;
  background: var(--evoke-moss) !important;
  color: var(--evoke-vellum) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-size: 0.7rem !important;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none !important;
}

.evoke-shop ul.products a.button:hover,
.evoke-shop ul.products a.added_to_cart:hover,
.evoke-shop ul.products .price a:hover,
.evoke-shop ul.products .bde-woo-product-footer a:hover {
  background: var(--evoke-moss-deep) !important;
  color: var(--evoke-vellum) !important;
}

.evoke-shop ul.products .onsale {
  background: var(--evoke-coral);
  color: var(--evoke-sepia);
  border-radius: 999px;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.evoke-shop .woocommerce-pagination {
  margin-top: 2.5rem;
}

.evoke-shop .woocommerce-pagination ul {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 0;
}

.evoke-shop .woocommerce-pagination li {
  border: 0;
}

.evoke-shop .woocommerce-pagination a,
.evoke-shop .woocommerce-pagination span {
  display: inline-flex;
  min-width: 2.4rem;
  min-height: 2.4rem;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--evoke-coral) 40%, transparent);
  color: var(--evoke-sepia);
}

.evoke-shop .woocommerce-pagination .current {
  background: var(--evoke-moss);
  color: var(--evoke-vellum);
  border-color: var(--evoke-moss);
}

.evoke-product div.product {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
}

.evoke-product .woocommerce-product-gallery {
  margin: 0;
}

.evoke-product .woocommerce-product-gallery img {
  background: var(--evoke-white);
}

.evoke-product .product_title {
  font-family: var(--evoke-font-display);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: 500;
  line-height: 1.05;
  margin: 0 0 0.75rem;
}

.evoke-product .summary .price {
  color: var(--evoke-brass);
  font-size: 1rem;
  letter-spacing: 0.08em;
}

.evoke-product .summary .cart {
  margin-top: 1.5rem;
}

.evoke-product .summary .single_add_to_cart_button,
.evoke-cart .checkout-button,
.evoke-cart button[name="update_cart"],
.evoke-checkout #place_order,
.evoke-account .woocommerce-button,
.evoke-shop .woocommerce-Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.1rem;
  padding: 0.85rem 1.6rem;
  border: 0;
  border-radius: 999px;
  background: var(--evoke-moss) !important;
  color: var(--evoke-vellum) !important;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
}

.evoke-product .woocommerce-tabs,
.evoke-product .related.products,
.evoke-product .upsells.products {
  grid-column: 1 / -1;
  margin-top: 2.5rem;
}

.evoke-shop .woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 0 0 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--evoke-sepia) 12%, transparent);
}

.evoke-shop .woocommerce-info,
.evoke-shop .woocommerce-message,
.evoke-shop .woocommerce-error {
  background: color-mix(in srgb, var(--evoke-celadon) 55%, var(--evoke-vellum));
  border-top: 0;
  border-left: 3px solid var(--evoke-coral);
  color: var(--evoke-sepia);
}

.evoke-shop table.shop_table {
  border: 1px solid color-mix(in srgb, var(--evoke-coral) 28%, transparent);
  background: color-mix(in srgb, var(--evoke-white) 72%, transparent);
}

.evoke-shop table.shop_table th,
.evoke-shop table.shop_table td {
  border-color: color-mix(in srgb, var(--evoke-sepia) 10%, transparent);
}

@media (max-width: 900px) {
  .evoke-shop ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .evoke-product div.product {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .evoke-shop ul.products {
    grid-template-columns: 1fr;
  }
}

.evoke-root .ot-floating-button,
.evoke-root .onetap-launcher,
.evoke-root #ot-floating-btn,
.evoke-root .onetap-fab,
.onetap-root .ot-btn,
body.onetap-root .ot-sbutton {
  right: 6px !important;
  bottom: 10px !important;
  transform: scale(0.82);
  transform-origin: bottom right;
}

@media (max-width: 1024px) {
  .evoke-footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .evoke-footer-brand {
    grid-column: 1 / -1;
  }

  .evoke-cat-break {
    min-height: 28rem;
  }
}

@media (max-width: 860px) {
  .evoke-cat-break,
  #facial-treatments {
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .evoke-cat-break img {
    position: relative;
    inset: auto;
    width: 100%;
    height: 18rem;
    object-position: center 40%;
  }

  #facial-treatments img {
    object-position: 68% 38%;
  }

  .evoke-cat-break::after {
    display: none;
  }

  .evoke-cat-break .evoke-wrap,
  #facial-treatments .evoke-wrap {
    width: min(40rem, calc(100% - 1.5rem));
    margin: -1.35rem auto 0;
  }

  .evoke-slo-stage {
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .evoke-slo-stage img {
    height: 20rem;
    min-height: 0;
    object-position: 42% 30%;
  }

  .evoke-slo-panel {
    align-self: center;
    width: min(40rem, calc(100% - 1.5rem));
    margin: -1.25rem auto 1.35rem;
  }
}

@media (max-width: 640px) {
  .evoke-footer-grid {
    grid-template-columns: 1fr;
  }

  .evoke-creds-row {
    gap: 1.15rem 0.75rem;
  }

  .evoke-creds img {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .evoke-header,
  .evoke-service img,
  .evoke-btn {
    transition: none;
  }
}
