/*
	Theme Name:  Elume 2026
	Theme URI:   https://elumemedspa.com/
	Description: Store-matched redesign of elumemedspa.com (vault ticket SR-2), forked from Showcase Pro 2.0.233. Source of truth: the vault, site-revamp-2026-10/theme/elume-2026/. Rollback: re-activate Showcase Pro.
	Author:      Elume Medspa
	Version:     0.6.10
	Template:    genesis
	Text Domain: elume-2026
	License:     GPL-2.0+
*/

/* ==========================================================================
   Elume Medspa — .com revamp prototype, round 2 (2026-10-01)
   Aligned to shop.elumemedspa.com (Prestige theme) for continuity between the
   two sites: Jost throughout, uppercase section titles with a sentence-case
   line above, square uppercase buttons, white pages, deep teal (#123845)
   bands and footer, pale blue (#d6f1fa) feature band, cyan (#00cbff) bar.
   Tokens sampled from the live store 2026-10-01. Round 1 is in round1/.
   ========================================================================== */

:root {
  --white: #ffffff;
  --cream: #ffffff;            /* page background (name kept from round 1) */
  --sand: #f2f9fc;             /* alt section tint, a lighter step of the store's pale blue */
  --sand-2: #e4eef2;
  --tint: #d6f1fa;             /* the store's feature band */
  --slate: #7a858a;            /* the store's grey band */
  --line: #dcdedf;
  --line-soft: #e8ebec;

  --ink: #16232b;
  --ink-2: #3d4a52;
  --ink-3: #59646b;

  --teal-950: #0b2731;
  --teal-900: #123845;
  --teal-800: #123845;
  --teal-700: #1d5c70;
  --teal-100: #d6f1fa;
  --cyan: #00cbff;
  --gold: #c9a13b;             /* the store's star colour */

  --font-display: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --radius-sm: 0;
  --radius: 0;
  --radius-lg: 0;
  --arch: 0;

  --shadow-sm: 0 2px 8px rgb(0 0 0 / .05);
  --shadow: 0 5px 15px rgb(0 0 0 / .06);
  --shadow-lg: 0 10px 40px rgb(0 0 0 / .14);

  --wrap: 1280px;
  --gutter: clamp(16px, 4vw, 48px);
  --section: clamp(64px, 8vw, 112px);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink-2);
  font: 400 16px/1.7 var(--font-body);
  letter-spacing: .01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
:focus-visible { outline: 2px solid var(--teal-700); outline-offset: 3px; }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }
ul { margin: 0; padding: 0; list-style: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--teal-900); color: #fff; padding: 10px 16px; }
.skip:focus { top: 12px; }

/* ---------- type ---------- */
h1, h2, h3, h4, .display {
  font-family: var(--font-display);
  color: var(--ink);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .01em;
  margin: 0 0 .5em;
}
h1, .display-xl { font-size: clamp(2.1rem, 3.6vw, 3.1rem); text-transform: uppercase; }
h2 { font-size: clamp(1.6rem, 2.5vw, 2.15rem); text-transform: uppercase; }
h3 { font-size: clamp(1.1rem, 1.4vw, 1.3rem); font-weight: 500; line-height: 1.35; }
h4 { font-size: 1.05rem; font-weight: 500; }
h1 em, h2 em, h3 em, .display em { font-style: normal; color: inherit; }
.lead { font-size: clamp(1.02rem, 1.2vw, 1.12rem); line-height: 1.7; color: var(--ink-2); max-width: 38em; }
.small { font-size: .875rem; }
.muted { color: var(--ink-3); }

/* the store's sentence-case line above every section title */
.eyebrow { display: block; font: 400 .95rem/1.5 var(--font-body); color: var(--ink-2); margin: 0 0 10px; letter-spacing: .01em; }
.eyebrow.center { text-align: center; }
.on-dark .eyebrow { color: rgba(255, 255, 255, .8); }

/* ---------- layout ---------- */
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.wrap-narrow { max-width: 900px; }
.section { padding: var(--section) 0; position: relative; }
.section-sm { padding: calc(var(--section) * .6) 0; }
.bg-sand { background: var(--sand); }
.bg-tint { background: var(--tint); }
.bg-ivory { background: var(--white); }
.bg-teal { background: var(--teal-900); }
.bg-slate { background: var(--slate); }
.on-dark { color: rgba(255, 255, 255, .82); }
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4 { color: #fff; }
.section-head { max-width: 760px; margin-bottom: clamp(36px, 4.5vw, 56px); }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head .lead { margin-top: 4px; }
.section-head.center .lead { margin-left: auto; margin-right: auto; }
.head-row { display: flex; align-items: end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(32px, 4vw, 48px); }
.head-row .section-head { margin-bottom: 0; }
.more-row { display: flex; justify-content: center; margin-top: clamp(32px, 4vw, 48px); }

.grid { display: grid; gap: clamp(16px, 2vw, 28px); }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
.split.wide-left { grid-template-columns: 1.15fr .85fr; }
.split.wide-right { grid-template-columns: .85fr 1.15fr; }
.split.top { align-items: start; }

/* ---------- buttons & links (the store's square uppercase buttons) ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 28px;
  border: 1px solid transparent; border-radius: 0;
  font: 400 .84rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase;
  transition: background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.btn-primary { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.btn-primary:hover { background: var(--teal-950); border-color: var(--teal-950); }
.btn-ghost { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn-ghost:hover { background: var(--ink); color: #fff; }
.btn-light { background: #fff; border-color: #fff; color: var(--ink); }
.btn-light:hover { background: transparent; color: #fff; }
.btn-outline-light { border-color: #fff; color: #fff; }
.btn-outline-light:hover { background: #fff; color: var(--ink); }
.btn-sm { min-height: 42px; padding: 0 20px; font-size: .78rem; }
.btn-block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

.link-arrow { display: inline-flex; align-items: center; gap: 10px; font: 400 .82rem/1.3 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.link-arrow span:first-child { background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 3px; }
.link-arrow .arr { transition: transform .3s var(--ease); }
.link-arrow:hover .arr { transform: translateX(4px); }
.on-dark .link-arrow, .cta-band .link-arrow { color: #fff; }
.text-link { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.text-link:hover { color: var(--ink); }
.on-dark .text-link, .cta-band .text-link { color: #fff; }

/* ---------- announcement bar (the store's cyan bar) ---------- */
.utility { background: var(--cyan); color: var(--ink); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.utility .wrap { display: flex; justify-content: space-between; gap: 20px; min-height: 42px; align-items: center; }
.utility .u-items { display: flex; gap: 26px; }
.utility .u-items span, .utility .u-items a { display: inline-flex; align-items: center; gap: 8px; }
.utility a:hover { text-decoration: underline; text-underline-offset: 3px; }
.utility svg { width: 13px; height: 13px; }
.utility .u-offer { display: inline; font-weight: 500; }
.utility .u-offer b { font-weight: 600; }

/* ---------- header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s; }
.site-header.scrolled { border-bottom-color: var(--line); box-shadow: 0 5px 15px rgb(0 0 0 / .05); }
.site-header .wrap { display: flex; align-items: center; gap: 28px; min-height: 92px; transition: min-height .3s var(--ease); }
.site-header.scrolled .wrap { min-height: 74px; }
.brand { flex: none; }
.brand img { width: 118px; height: auto; transition: width .3s var(--ease); }
.site-header.scrolled .brand img { width: 98px; }

.nav { display: flex; align-items: center; gap: 2px; margin-left: 24px; }
.nav > li { position: relative; }
.nav > li > a, .nav > li > button {
  display: inline-flex; align-items: center; gap: 6px; padding: 10px 13px;
  font: 400 .95rem/1 var(--font-body); color: var(--ink); white-space: nowrap;
  background: linear-gradient(currentColor, currentColor) 13px calc(100% - 4px) / 0 1px no-repeat;
  transition: background-size .25s var(--ease);
}
.nav > li > a:hover, .nav > li > button:hover, .nav > li.open > button, .nav > li > .active { background-size: calc(100% - 26px) 1px; }
.nav .chev { width: 10px; height: 10px; transition: transform .25s var(--ease); opacity: .6; }
.nav li.open .chev { transform: rotate(180deg); }
.nav .ext { width: 11px; height: 11px; opacity: .55; }

.mega {
  position: absolute; top: calc(100% + 22px); left: 0;
  width: min(640px, 90vw);
  background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-lg);
  padding: 28px; display: grid; grid-template-columns: 1.25fr 1fr; gap: 26px;
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(6px);
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -24px; height: 24px; }
.nav li.open .mega { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.mega .mega-h { margin: 0 0 12px; font: 500 .74rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.mega-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.mega-list a { display: block; padding: 7px 0; font-size: .93rem; color: var(--ink-2); }
.mega-list a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.mega-all { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.mega-feature { position: relative; overflow: hidden; min-height: 230px; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; color: #fff; isolation: isolate; }
.mega-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s var(--ease); }
.mega-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 0) 35%, rgb(18 56 69 / .85)); z-index: -1; }
.mega-feature:hover img { transform: scale(1.04); }
.mega-feature small { font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.mega-feature strong { font: 400 1.35rem/1.15 var(--font-display); text-transform: uppercase; margin: 6px 0 2px; }
.mega-feature span { font-size: .86rem; opacity: .9; }

.header-actions { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.header-phone { display: inline-flex; align-items: center; gap: 8px; font: 400 .95rem/1 var(--font-body); color: var(--ink); white-space: nowrap; }
.header-phone svg { width: 17px; height: 17px; }
.header-phone:hover { text-decoration: underline; text-underline-offset: 3px; }

.menu-toggle { display: none; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line); background: #fff; align-items: center; justify-content: center; margin-left: auto; }
.menu-toggle[aria-expanded="true"] { border-color: var(--teal-700); }
.menu-toggle .bars { position: relative; width: 20px; height: 14px; }
.menu-toggle .bars i { position: absolute; left: 0; width: 100%; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease), opacity .2s, top .3s var(--ease); }
.menu-toggle .bars i:nth-child(1) { top: 0; }
.menu-toggle .bars i:nth-child(2) { top: 6px; }
.menu-toggle .bars i:nth-child(3) { top: 12px; }
.menu-toggle[aria-expanded="true"] .bars i:nth-child(1) { top: 6px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .bars i:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .bars i:nth-child(3) { top: 6px; transform: rotate(-45deg); }

.drawer { position: fixed; inset: 0; top: var(--drawer-top, 72px); z-index: 45; background: #fff; overflow-y: auto; padding: 8px var(--gutter) 140px; opacity: 0; visibility: hidden; transition: opacity .2s var(--ease), visibility .2s; }
.drawer.open { opacity: 1; visibility: visible; }
.drawer details { border-bottom: 1px solid var(--line); }
.drawer summary, .drawer > a { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; list-style: none; cursor: pointer; font: 400 1.05rem/1.2 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.drawer > a { border-bottom: 1px solid var(--line); }
.drawer summary::-webkit-details-marker { display: none; }
.drawer summary .plus { width: 12px; height: 12px; position: relative; }
.drawer summary .plus::before, .drawer summary .plus::after { content: ""; position: absolute; background: var(--ink); left: 0; top: 5.5px; width: 12px; height: 1px; transition: transform .25s; }
.drawer summary .plus::after { transform: rotate(90deg); }
.drawer details[open] .plus::after { transform: rotate(0); }
.drawer details ul { padding: 0 0 16px; }
.drawer details li a { display: block; padding: 8px 0; font-size: 1rem; color: var(--ink-2); }
.drawer .drawer-cta { display: grid; gap: 10px; margin-top: 28px; }
.drawer .drawer-meta { margin-top: 28px; font-size: .92rem; color: var(--ink-3); line-height: 1.8; }
body.nav-open { overflow: hidden; }

/* mobile action bar: flush to the bottom edge, square */
.action-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: none; grid-template-columns: 1fr 1.5fr; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -5px 15px rgb(0 0 0 / .06); transform: translateY(110%); transition: transform .3s var(--ease); }
.action-bar.show { transform: none; }

/* ---------- hero (home): full-bleed photo, as on the store ---------- */
.hero-full { position: relative; min-height: clamp(560px, 74vh, 760px); display: flex; align-items: center; color: #fff; isolation: isolate; overflow: hidden; }
.hero-full .hero-bg { position: absolute; inset: 0; z-index: -2; }
.hero-full .hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; animation: heroIn 1.6s var(--ease) both; }
@keyframes heroIn { from { transform: scale(1.06); } to { transform: scale(1); } }
.hero-full::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(22 35 43 / .78) 0%, rgb(22 35 43 / .55) 38%, rgb(22 35 43 / .08) 70%); }
.hero-full .wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; padding-top: 56px; padding-bottom: 56px; }
.hero-full .kicker { font: 400 .9rem/1.4 var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: #fff; margin: 0 0 18px; }
.hero-full .display { color: #fff; font-size: clamp(2.3rem, 4.6vw, 3.9rem); line-height: 1.1; text-transform: uppercase; margin-bottom: 22px; }
.hero-full .lead { color: rgba(255, 255, 255, .9); margin-bottom: 32px; }
.hero-full .trust-row { border-top-color: rgba(255, 255, 255, .3); color: rgba(255, 255, 255, .9); }
.hero-full .trust-row svg { color: #fff; }
.hero-full .trust-row .stars svg { color: var(--gold); }
.hero-offers { display: grid; gap: 14px; justify-self: end; width: min(360px, 100%); }

.trust-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--ink-2); }
.trust-row li { display: inline-flex; align-items: center; gap: 8px; }
.trust-row svg { width: 16px; height: 16px; color: var(--teal-700); flex: none; }
.stars { display: inline-flex; gap: 1px; color: var(--gold); }
.stars svg { width: 14px; height: 14px; color: var(--gold); }

.hero-media { position: relative; }
.arch-frame { position: relative; }
.arch { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--sand-2); }
.arch img { width: 100%; height: 100%; object-fit: cover; }

.offer-card { position: relative; background: #fff; color: var(--ink-2); padding: 22px 24px; box-shadow: var(--shadow-lg); }
.offer-card .tag { display: inline-flex; align-items: center; gap: 8px; font: 500 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); }
.offer-card .tag i { width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 4px rgb(0 203 255 / .2); animation: pulse 2.4s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 7px rgb(0 203 255 / 0); } }
.offer-card .o-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 12px 0 2px; }
.offer-card .o-title strong { font: 400 1.6rem/1 var(--font-display); text-transform: uppercase; color: var(--ink); }
.offer-card .o-title span { font: 500 1.5rem/1 var(--font-display); color: var(--ink); white-space: nowrap; }
.offer-card .o-title span small { font: 400 .8rem var(--font-body); color: var(--ink-3); }
.offer-card ul { margin: 10px 0 16px; font-size: .9rem; }
.offer-card li { display: flex; gap: 8px; align-items: center; padding: 3px 0; }
.offer-card li svg { width: 14px; height: 14px; color: var(--teal-700); }
.offer-card .o-note { font-size: .8rem; color: var(--ink-3); margin-top: 10px; text-align: center; }

.offer-chip { display: flex; align-items: center; gap: 14px; background: var(--teal-900); color: #fff; padding: 14px 18px 14px 14px; box-shadow: var(--shadow-lg); transition: background .2s; }
.offer-chip:hover { background: var(--teal-950); }
.offer-chip img { width: 56px; height: 56px; object-fit: cover; }
.offer-chip small { display: block; font: 400 .7rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .8); margin-bottom: 6px; }
.offer-chip strong { display: block; font: 400 1.15rem/1.15 var(--font-display); text-transform: uppercase; }
.offer-chip span { font-size: .85rem; opacity: .9; }

/* ---------- marquee (the store's teal band) ---------- */
.strip { background: var(--teal-900); overflow: hidden; }
.strip-track { display: flex; gap: 64px; padding: 26px 0; width: max-content; animation: marquee 48s linear infinite; }
.strip-track span { font: 400 1.35rem/1 var(--font-display); letter-spacing: .02em; text-transform: uppercase; color: #fff; white-space: nowrap; }
.strip:hover .strip-track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- treatment cards ---------- */
.t-card { position: relative; display: block; }
.t-card .t-img { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--sand-2); }
.t-card .t-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.t-card:hover .t-img img { transform: scale(1.04); }
.t-card .price-chip { position: absolute; left: 0; top: 14px; background: var(--teal-900); color: #fff; font: 400 .74rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; padding: 8px 12px; }
.t-card .price-chip b { font-weight: 500; }
.t-card .t-body { padding: 16px 0 0; display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.t-card .t-body > div { min-width: 0; }
.t-card h3 { margin: 0 0 4px; font-size: 1.15rem; font-weight: 500; }
.t-card p { font-size: .93rem; color: var(--ink-3); margin: 0; line-height: 1.6; }
.t-card .circle-arrow { flex: none; width: 40px; height: 40px; border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink); transition: background .2s, color .2s, border-color .2s; }
.t-card .circle-arrow svg { width: 15px; height: 15px; }
.t-card:hover .circle-arrow { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }

/* ---------- reviews ---------- */
.reviews { display: grid; grid-template-columns: .75fr 2fr; gap: clamp(32px, 5vw, 64px); align-items: start; }
.rating-big { font: 300 clamp(4.4rem, 8vw, 6.4rem)/.95 var(--font-display); color: var(--ink); }
.rating-big + .stars svg { width: 20px; height: 20px; }
.rating-meta { margin: 12px 0 24px; }
.review-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review { background: #fff; padding: 28px 26px 24px; border: 1px solid var(--line); display: flex; flex-direction: column; }
.review .q { font: 400 3rem/.6 Georgia, serif; color: var(--cyan); height: 22px; }
.review blockquote { margin: 10px 0 20px; font: 400 1.05rem/1.6 var(--font-body); color: var(--ink); flex: 1; }
.review footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 16px; border-top: 1px solid var(--line); font-size: .86rem; }
.review footer strong { color: var(--ink); font-weight: 500; display: block; }
.review footer span { color: var(--ink-3); }
.g-badge { display: inline-flex; align-items: center; }
.g-badge svg { width: 16px; height: 16px; }

/* ---------- treatment menu (pricing) ---------- */
.menu-panel { position: relative; background: #fff; border: 1px solid var(--line); padding: clamp(28px, 4.5vw, 64px); }
.menu-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(40px, 6vw, 88px); }
.menu-item { padding: 22px 0; border-bottom: 1px solid var(--line); }
.menu-item .mi-top { display: flex; align-items: baseline; gap: 14px; }
.menu-item .mi-top h3 { margin: 0; font-size: 1.12rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.menu-item .mi-top .dots { flex: 1; border-bottom: 1px dotted rgb(22 35 43 / .35); transform: translateY(-5px); min-width: 20px; }
.menu-item .mi-top .mi-price { font: 500 1.2rem/1 var(--font-display); color: var(--ink); white-space: nowrap; }
.menu-item .mi-top .mi-price small { font: 400 .8rem var(--font-body); color: var(--ink-3); margin-right: 4px; }
.menu-item .mi-sub { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-top: 6px; font-size: .92rem; color: var(--ink-3); }
.menu-item .mi-sub a { flex: none; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.menu-foot { margin-top: 28px; text-align: center; font-size: .9rem; color: var(--ink-3); }

/* ---------- pillars (the store's pale blue icon band) ---------- */
.pillars-band { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; text-align: center; }
.pillars-band .p-ic { width: 34px; height: 34px; margin: 0 auto 16px; color: var(--ink); }
.pillars-band .p-ic svg { width: 34px; height: 34px; }
.pillars-band h3 { font-size: .95rem; font-weight: 400; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 10px; }
.pillars-band p { font-size: .95rem; color: var(--ink); margin: 0 auto; max-width: 280px; }

/* ---------- founder ---------- */
.founder-media { position: relative; max-width: 400px; justify-self: center; width: 100%; }
.founder-media .sig { position: absolute; right: -16px; bottom: 28px; z-index: 3; background: #fff; padding: 14px 18px; box-shadow: var(--shadow); font-size: .82rem; color: var(--ink-3); }
.founder-media .sig strong { display: block; font: 400 1rem/1.2 var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.pullquote { margin: 26px 0 30px; padding-left: 22px; border-left: 2px solid var(--cyan); font: 400 clamp(1.15rem, 1.6vw, 1.35rem)/1.55 var(--font-display); color: var(--ink); }

/* ---------- shelf / products (mirrors the store's product cards) ---------- */
.collections { display: grid; border-top: 1px solid var(--line); }
.collections a { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); transition: padding .3s var(--ease); }
.collections a:hover { padding-left: 10px; }
.collections strong { display: block; font: 400 1.05rem/1.3 var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.collections span { font-size: .9rem; color: var(--ink-3); }
.collections svg { width: 18px; height: 18px; color: var(--ink); transition: transform .3s var(--ease); }
.collections a:hover svg { transform: translateX(4px); }
.p-card { display: block; background: #fff; }
.p-card .p-img { aspect-ratio: 1; background: #fff; overflow: hidden; border: 1px solid var(--line-soft); }
.p-card .p-img img { width: 100%; height: 100%; object-fit: contain; transition: transform .8s var(--ease); }
.p-card:hover .p-img img { transform: scale(1.04); }
.p-card .p-body { padding: 14px 0 0; text-align: center; }
.p-card h3 { font-size: 1rem; font-weight: 400; margin: 0 0 4px; }
.p-card .p-row { display: flex; justify-content: center; gap: 14px; align-items: center; font-size: .95rem; }
.p-card .p-row b { font-weight: 400; color: var(--ink-2); }
.p-card .p-row span { display: none; }

/* ---------- FAQ (the store's plain plus accordion) ---------- */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; font: 400 1.08rem/1.4 var(--font-body); color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--teal-700); }
.faq .pm { flex: none; width: 14px; height: 14px; position: relative; }
.faq .pm::before, .faq .pm::after { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 1px; background: var(--ink); transition: transform .3s var(--ease); }
.faq .pm::after { transform: rotate(90deg); }
.faq details[open] .pm::after { transform: rotate(0); }
.faq .answer { padding: 0 48px 24px 0; color: var(--ink-2); font-size: 1rem; }

/* ---------- visit ---------- */
.visit { display: grid; grid-template-columns: 1.1fr .9fr; background: var(--sand); }
.visit-img { position: relative; min-height: 420px; }
.visit-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.visit-body { padding: clamp(32px, 4.5vw, 64px); }
.visit-list { display: grid; gap: 20px; margin: 26px 0 30px; }
.visit-list li { display: grid; grid-template-columns: 26px 1fr; gap: 14px; align-items: start; }
.visit-list .ic { width: 26px; height: 26px; display: grid; place-items: center; color: var(--ink); }
.visit-list .ic svg { width: 20px; height: 20px; }
.visit-list strong { display: block; color: var(--ink); font-weight: 500; font-size: .98rem; }
.visit-list span { font-size: .95rem; }
.hours { display: grid; grid-template-columns: auto 1fr; gap: 4px 20px; font-size: .93rem; }
.hours dt { color: var(--ink); }
.hours dd { margin: 0; text-align: right; }

/* ---------- footer (the store's teal footer, newsletter included) ---------- */
.site-footer { background: var(--teal-900); color: rgba(255, 255, 255, .78); padding: clamp(56px, 6vw, 80px) 0 28px; font-size: .95rem; }
.f-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid rgba(255, 255, 255, .15); }
.site-footer .f-h { margin: 0 0 18px; font: 500 .98rem/1.3 var(--font-body); color: #fff; }
.site-footer li { padding: 4px 0; }
.site-footer li a, .site-footer p a { color: rgba(255, 255, 255, .78); transition: color .2s; }
.site-footer li a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.f-brand p { max-width: 300px; }
.socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.socials a { width: 36px; height: 36px; border: 1px solid rgba(255, 255, 255, .3); display: grid; place-items: center; color: #fff; transition: background .2s, color .2s; }
.socials a:hover { background: #fff; color: var(--teal-900); }
.socials svg { width: 15px; height: 15px; }
.social-label { font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .6); margin: 20px 0 4px; }
.f-news input { width: 100%; min-height: 48px; padding: 0 14px; background: transparent; border: 1px solid rgba(255, 255, 255, .35); color: #fff; font: 400 .95rem var(--font-body); margin: 14px 0 12px; }
.f-news input::placeholder { color: rgba(255, 255, 255, .6); }
.f-news input:focus { outline: none; border-color: #fff; }
.f-news .fine { font-size: .8rem; color: rgba(255, 255, 255, .6); margin-top: 12px; }
.f-areas { display: flex; flex-wrap: wrap; gap: 8px 10px; padding: 26px 0; border-bottom: 1px solid rgba(255, 255, 255, .15); align-items: center; }
.f-areas .f-h { margin: 0 0 6px; flex-basis: 100%; }
.f-areas a { font-size: .86rem; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, .25); color: rgba(255, 255, 255, .85); transition: background .2s, color .2s; }
.f-areas a:hover { background: #fff; color: var(--teal-900); }
.f-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 22px; font-size: .82rem; color: rgba(255, 255, 255, .62); }
.f-bottom a:hover { color: #fff; }
.f-bottom nav { display: flex; gap: 18px; flex-wrap: wrap; }

/* ---------- page hero (interior) ---------- */
.page-hero { padding: clamp(24px, 3vw, 40px) 0 clamp(52px, 6vw, 88px); }
.crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); margin-bottom: clamp(24px, 3.5vw, 44px); }
.crumbs a:hover { color: var(--ink); }
.crumbs span[aria-hidden] { opacity: .5; }
.page-hero h1 { margin-bottom: 18px; }
.price-block { display: flex; flex-wrap: wrap; margin: 28px 0 32px; border: 1px solid var(--line); width: fit-content; max-width: 100%; }
.price-block > div { padding: 16px 24px; }
.price-block > div + div { border-left: 1px solid var(--line); }
.price-block small { display: block; font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 8px; }
.price-block strong { font: 500 1.7rem/1 var(--font-display); color: var(--ink); }
.price-block .badge { background: var(--teal-900); color: #fff; display: flex; flex-direction: column; justify-content: center; }
.price-block .badge small { color: rgba(255, 255, 255, .8); }
.price-block .badge strong { color: #fff; font-size: 1rem; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }

.subnav { position: sticky; top: 74px; z-index: 30; background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.subnav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.subnav ul { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.subnav ul::-webkit-scrollbar { display: none; }
.subnav ul a { display: block; padding: 18px 12px 16px; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); white-space: nowrap; border-bottom: 2px solid transparent; }
.subnav ul a:hover { color: var(--ink); }
.subnav ul a.active { color: var(--ink); border-bottom-color: var(--teal-900); }
.subnav .btn { flex: none; }

.prose h2 { margin-bottom: 18px; }
.facts { background: var(--sand); padding: 30px; }
.facts h4 { font: 500 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin-bottom: 6px; }
.facts .row { padding: 15px 0; border-bottom: 1px solid var(--line); }
.facts .row:last-child { border-bottom: 0; padding-bottom: 0; }
.facts dl { margin: 0; }
.facts dt { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.facts dd { margin: 0; font: 400 1.05rem/1.45 var(--font-display); color: var(--ink); }

.benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.benefit { padding: 30px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.benefit .b-ic { width: 28px; height: 28px; color: var(--teal-700); margin-bottom: 14px; display: block; }
.benefit .b-ic svg { width: 26px; height: 26px; }
.benefit p { margin: 0; color: var(--ink); font-size: 1rem; line-height: 1.55; }

.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.step .s-img { overflow: hidden; aspect-ratio: 4 / 3; margin-bottom: 20px; background: var(--sand-2); }
.step .s-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.step:hover .s-img img { transform: scale(1.04); }
.step .s-num { font: 400 .74rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin-bottom: 10px; }
.step h3 { margin-bottom: 8px; }
.step p { font-size: .94rem; }

.price-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 28px 0; }
.price-tile { border: 1px solid rgba(255, 255, 255, .3); padding: 24px; }
.price-tile small { display: block; font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .8); margin-bottom: 12px; }
.price-tile strong { font: 300 2.8rem/1 var(--font-display); color: #fff; }
.price-tile span { font-size: .86rem; color: rgba(255, 255, 255, .75); margin-left: 6px; }

.guide-links { display: flex; flex-wrap: wrap; gap: 10px; }
.guide-links a { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; background: #fff; border: 1px solid var(--line); font-size: .93rem; color: var(--ink); transition: border-color .2s, background .2s, color .2s; }
.guide-links a:hover { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.guide-links a svg { width: 14px; height: 14px; }

.home-care { display: grid; grid-template-columns: 220px 1fr; gap: 36px; align-items: center; background: var(--sand); padding: 28px; }
.home-care img { background: #fff; aspect-ratio: 1; object-fit: contain; }

.post-card { display: flex; flex-direction: column; background: #fff; padding: 28px; border: 1px solid var(--line); min-height: 220px; transition: border-color .2s; }
.post-card:hover { border-color: var(--ink); }
.post-card .cat { font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin-bottom: 16px; }
.post-card h3 { flex: 1; }
.post-card .link-arrow { margin-top: 16px; }

.cta-band { position: relative; padding: clamp(44px, 6vw, 88px) clamp(24px, 6vw, 80px); background: var(--teal-900); color: rgba(255, 255, 255, .82); }
.cta-band h2, .cta-band h3 { color: #fff; }

.book-card { position: relative; display: flex; flex-direction: column; background: #fff; padding: 28px; border: 1px solid var(--line); transition: border-color .2s; }
.book-card:hover { border-color: var(--ink); }
.book-card .bc-tag { font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin-bottom: 12px; }
.book-card h3 { font-size: 1.3rem; text-transform: uppercase; font-weight: 400; letter-spacing: .03em; margin-bottom: 6px; }
.book-card .bc-meta { display: flex; align-items: flex-start; gap: 8px; font-size: .9rem; color: var(--ink-3); margin-bottom: 18px; }
.book-card .bc-meta svg { width: 15px; height: 15px; flex: none; margin-top: 4px; }
.book-card .bc-price { font: 400 1.05rem/1.5 var(--font-display); color: var(--ink); padding: 14px 0; border-top: 1px solid var(--line); margin-top: auto; margin-bottom: 18px; }
.book-card.flash { background: var(--teal-900); color: rgba(255, 255, 255, .82); border-color: var(--teal-900); }
.book-card.flash h3, .book-card.flash .bc-price { color: #fff; }
.book-card.flash .bc-tag { color: var(--cyan); }
.book-card.flash .bc-meta { color: rgba(255, 255, 255, .75); }
.dates { display: grid; gap: 8px; margin: 4px 0 18px; }
.dates li { display: flex; align-items: center; gap: 12px; font-size: .93rem; padding: 10px 14px; border: 1px solid rgba(255, 255, 255, .22); color: #fff; }
.dates li b { font-weight: 500; min-width: 92px; }
.big-price { font: 300 3rem/1 var(--font-display); color: #fff; margin: 4px 0 8px; }
.big-price small { font: 400 .95rem var(--font-body); color: rgba(255, 255, 255, .75); margin-left: 4px; }

.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid var(--line); font-size: .9rem; color: var(--ink); }
.chip svg { width: 15px; height: 15px; color: var(--teal-700); }

.form-card { background: #fff; padding: clamp(26px, 4vw, 44px); border: 1px solid var(--line); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 8px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 0; background: #fff; font: 400 1rem var(--font-body); color: var(--ink); transition: border-color .2s; }
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--ink); }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: .9rem; color: var(--ink-2); }
.check input { width: 16px; height: 16px; margin-top: 4px; accent-color: var(--teal-900); flex: none; }
.form-fine { font-size: .82rem; color: var(--ink-3); }

.consult { display: flex; flex-direction: column; padding: 30px; background: #fff; border: 1px solid var(--line); }
.consult .c-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.consult .c-ic { width: 30px; height: 30px; color: var(--ink); }
.consult .c-ic svg { width: 28px; height: 28px; }
.consult .c-dur { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); padding: 6px 10px; border: 1px solid var(--line); }
.consult h3 { font-size: 1.3rem; text-transform: uppercase; font-weight: 400; letter-spacing: .03em; margin-bottom: 8px; }
.consult p { flex: 1; margin-bottom: 22px; }

.quote-list { columns: 2; column-gap: 20px; }
.quote-list .review { break-inside: avoid; margin-bottom: 20px; }

/* reveal */
.js .reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; } .reveal.d3 { transition-delay: .24s; } .reveal.d4 { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .strip-track, .hero-full .hero-bg img, .offer-card .tag i { animation: none; }
  * { transition-duration: .01ms !important; }
}


/* ---------- responsive ---------- */
/* Header widths (0.6.9, 2026-10-02): with the 5th top link (Pelvic Floor Therapy) the full header needs ~1600px.
   Measured on live with Playwright 1221-1620px: no overflow, tightest slack 14px. Below 1221 the menu button takes over. */
@media (max-width: 1600px) { .header-phone span { display: none; } }
@media (max-width: 1360px) { .nav > li > a, .nav > li > button { padding: 10px 9px; font-size: .9rem; } .nav { margin-left: 8px; } }
@media (max-width: 1220px) {
  .nav, .header-actions { display: none; }
  .menu-toggle { display: inline-flex; }
  .site-header .wrap, .site-header.scrolled .wrap { min-height: 72px; }
  .brand img, .site-header.scrolled .brand img { width: 96px; }
}
@media (max-width: 1040px) {
  .nav, .header-actions { display: none; }
  .menu-toggle { display: inline-flex; }
  .site-header .wrap, .site-header.scrolled .wrap { min-height: 72px; }
  .brand img, .site-header.scrolled .brand img { width: 96px; }
  .utility .u-items .u-hide { display: none; }
  .split, .split.wide-left, .split.wide-right { grid-template-columns: 1fr; }
  .hero-full .wrap { grid-template-columns: 1fr; }
  .hero-offers { justify-self: start; }
  .hero-media { max-width: 520px; width: 100%; }
  .reviews { grid-template-columns: 1fr; }
  .f-top { grid-template-columns: 1fr 1fr 1fr; }
  .f-brand { grid-column: 1 / -1; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visit { grid-template-columns: 1fr; }
  .visit-img { min-height: 300px; }
  .g-4, .pillars-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subnav { top: 72px; }
}
@media (max-width: 860px) {
  .action-bar { display: grid; }
  .site-footer { padding-bottom: 100px; }
  .g-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-cols { grid-template-columns: 1fr; }
  .review-track { grid-template-columns: 1fr; }
  .benefits { grid-template-columns: 1fr 1fr; }
  .quote-list { columns: 1; }
  .subnav .btn { display: none; }
  }
@media (max-width: 640px) {
  .utility { font-size: .68rem; }
  .utility .u-items { gap: 14px; }
  .utility .u-offer { display: none; }
  .utility .wrap { justify-content: center; }
  .g-2, .g-4, .benefits, .form-grid, .price-tiles { grid-template-columns: 1fr; }
  .g-3.scroll-mobile { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter) 8px; scroll-padding-inline: var(--gutter); scrollbar-width: none; }
  .g-3.scroll-mobile::-webkit-scrollbar { display: none; }
  .g-3.scroll-mobile > * { flex: 0 0 76%; scroll-snap-align: start; }
  .g-3:not(.scroll-mobile) { grid-template-columns: 1fr; }
  .hero-full { min-height: 0; }
  .hero-full::after { background: linear-gradient(180deg, rgb(22 35 43 / .45) 0%, rgb(22 35 43 / .8) 60%); }
  .hero-full .wrap { padding-top: 64px; padding-bottom: 40px; }
  .hero-offers { width: 100%; }
  .trust-row { gap: 10px 18px; }
  .pillars-band { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .menu-item .mi-top .dots { display: none; }
  .menu-item .mi-top { justify-content: space-between; }
  .menu-item .mi-top h3 { font-size: 1rem; white-space: normal; }
  .f-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .steps { grid-template-columns: 1fr; }
  .home-care { grid-template-columns: 1fr; }
  .home-care img { max-width: 200px; }
  .price-block { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .price-block .badge { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; }
  .price-block .badge small { margin: 0; }
  .price-block > div + div { border-left: 0; }
  .price-block > div:last-child { border-left: 1px solid var(--line); }
  .price-block > div { padding: 14px 18px; }
  .page-hero .hero-media { max-width: 340px; }
  .faq .answer { padding-right: 0; }
  .founder-media .sig { right: 8px; }
  .quote-list .review, .review { padding: 24px 22px 20px; }
}

/* ==========================================================================
   Round 2b: remaining templates (archive, blog, article, city, about,
   contact, FAQ hub, specials, gift certificates, products, legal, 404)
   ========================================================================== */
.nav > li:nth-last-child(2) .mega { left: auto; right: 0; }

/* page intro band used by simple pages */
.page-intro { padding: clamp(24px, 3vw, 40px) 0 clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--line); }
.page-intro .lead { margin-top: 6px; }
.page-intro.center { text-align: center; }
.page-intro.center .crumbs { justify-content: center; }
.page-intro.center .lead { margin-left: auto; margin-right: auto; }

/* filter chips (treatments archive, blog) */
.filters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: clamp(28px, 4vw, 44px); }
.filters a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid var(--line); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.filters a:hover { border-color: var(--ink); color: var(--ink); }
.filters a[aria-current="page"] { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.filters button { min-height: 40px; padding: 0 16px; border: 1px solid var(--line); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); transition: background .2s, color .2s, border-color .2s; }
.filters button:hover { border-color: var(--ink); color: var(--ink); }
.filters button[aria-pressed="true"] { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.t-card .t-cat { display: block; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin-bottom: 6px; }
.t-card[hidden], .b-card[hidden] { display: none; }
.t-card.compact .t-img { aspect-ratio: 1; }

/* blog index */
.blog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(32px, 4vw, 56px); align-items: start; }
.post-feature { display: grid; grid-template-columns: 1.15fr 1fr; gap: 0; border: 1px solid var(--line); margin-bottom: 28px; }
.post-feature .pf-img { position: relative; min-height: 300px; overflow: hidden; background: var(--sand-2); }
.post-feature .pf-img img { position: absolute; inset: 0; }
.post-feature .pf-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.post-feature:hover .pf-img img { transform: scale(1.03); }
.post-feature .pf-body { padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; justify-content: center; }
.post-feature h2 { font-size: clamp(1.35rem, 2vw, 1.75rem); text-transform: none; font-weight: 500; }
.meta { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin-bottom: 12px; display: block; }
.meta .sep { margin: 0 8px; color: var(--ink-3); }
.b-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
.b-card { display: flex; flex-direction: column; }
.b-card .b-img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--sand-2); margin-bottom: 16px; position: relative; }
.b-card .b-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.b-card:hover .b-img img { transform: scale(1.04); }
.b-card .b-img.noimg { background: var(--teal-900); display: grid; place-items: center; color: #fff; font-size: 1.25rem; letter-spacing: .14em; text-transform: uppercase; }
.b-card .b-img.noimg::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255, 255, 255, .2); }
.b-card h3 { font-size: 1.15rem; margin-bottom: 8px; }
.b-card p { font-size: .94rem; color: var(--ink-3); margin-bottom: 12px; }
.b-card .link-arrow { margin-top: auto; }
.pager { display: flex; justify-content: center; gap: 6px; margin-top: 48px; flex-wrap: wrap; }
.pager a, .pager span { min-width: 42px; height: 42px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); font-size: .85rem; color: var(--ink-2); }
.pager a:hover { border-color: var(--ink); color: var(--ink); }
.pager .current { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.pager .gap { border: 0; }
.side-card { border: 1px solid var(--line); padding: 24px; margin-bottom: 20px; }
.side-card h4 { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 16px; }
.side-card.teal { background: var(--teal-900); border-color: var(--teal-900); color: rgba(255, 255, 255, .85); }
.side-card.teal h4 { color: #fff; }
.mini-product { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.mini-product:first-of-type { border-top: 0; padding-top: 0; }
.mini-product img { width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--line-soft); background: #fff; }
.mini-product strong { display: block; font-weight: 400; color: var(--ink); font-size: .95rem; line-height: 1.35; }
.mini-product span { font-size: .9rem; color: var(--ink-3); }
.side-links a { display: flex; justify-content: space-between; padding: 9px 0; border-top: 1px solid var(--line); font-size: .93rem; color: var(--ink-2); }
.side-links a:first-child { border-top: 0; }
.side-links a:hover { color: var(--ink); }
.sticky-aside { position: sticky; top: 104px; }

/* article */
.article-head { max-width: 860px; margin: 0 auto; text-align: center; padding: clamp(24px, 3vw, 40px) 0 clamp(28px, 3.5vw, 44px); }
.article-head .crumbs { justify-content: center; }
.article-head h1 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); text-transform: none; font-weight: 400; }
.byline { display: inline-flex; align-items: center; gap: 14px; margin-top: 12px; text-align: left; }
.byline img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.byline strong { display: block; color: var(--ink); font-weight: 500; font-size: .95rem; }
.byline span { font-size: .85rem; color: var(--ink-3); }
.share { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.share a { width: 36px; height: 36px; border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink); }
.share a:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.share svg { width: 15px; height: 15px; }
.article-layout { display: grid; grid-template-columns: minmax(0, 720px) 300px; gap: clamp(32px, 5vw, 72px); justify-content: center; align-items: start; padding-bottom: clamp(48px, 6vw, 80px); }
.article { font-size: 1.06rem; line-height: 1.8; color: var(--ink-2); }
.article .standfirst { font-size: 1.2rem; line-height: 1.7; color: var(--ink); padding-bottom: 28px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.article h2 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); text-transform: none; font-weight: 500; margin: 44px 0 14px; scroll-margin-top: 110px; }
.article h3 { margin: 28px 0 10px; }
.article a:not(.btn) { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.article .note { font-size: .95rem; color: var(--ink-3); }
.table-wrap { overflow-x: auto; margin: 24px 0; border: 1px solid var(--line); }
.table-wrap table { width: 100%; border-collapse: collapse; font-size: .92rem; line-height: 1.55; min-width: 640px; }
.table-wrap th { background: var(--teal-900); color: #fff; font-weight: 400; text-align: left; padding: 12px 14px; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; }
.table-wrap td { padding: 14px; border-top: 1px solid var(--line); vertical-align: top; }
.table-wrap tr:nth-child(even) td { background: var(--sand); }
.table-wrap td:first-child { color: var(--ink); font-weight: 500; white-space: nowrap; }
.inline-cta { background: var(--teal-900); color: rgba(255, 255, 255, .85); padding: 32px; margin: 40px 0; }
.inline-cta h3 { color: #fff; text-transform: uppercase; font-weight: 400; letter-spacing: .03em; margin-top: 0; }
.inline-cta .prices { display: flex; gap: 28px; margin: 14px 0 20px; flex-wrap: wrap; }
.inline-cta .prices div { border-left: 1px solid rgba(255, 255, 255, .3); padding-left: 14px; }
.inline-cta .prices small { display: block; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.inline-cta .prices strong { font-weight: 300; font-size: 2rem; color: #fff; }
.filed { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin: 36px 0 0; padding-top: 20px; border-top: 1px solid var(--line); }
.filed a { color: var(--teal-700); }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.post-nav a { padding: 26px 0; display: block; }
.post-nav a + a { text-align: right; border-left: 1px solid var(--line); padding-left: 24px; }
.post-nav small { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 6px; }
.post-nav strong { font-weight: 400; color: var(--ink); font-size: 1.05rem; }
.toc a { display: block; padding: 7px 0 7px 12px; border-left: 2px solid var(--line); font-size: .9rem; color: var(--ink-3); line-height: 1.4; }
.toc a:hover, .toc a.active { color: var(--ink); border-left-color: var(--teal-900); }

/* city page */
.drive-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); margin: 28px 0; }
.drive-facts div { padding: 20px 22px; }
.drive-facts div + div { border-left: 1px solid var(--line); }
.drive-facts small { display: block; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 6px; }
.drive-facts strong { font-weight: 400; font-size: 1.35rem; color: var(--ink); }
.check-list li { position: relative; padding: 12px 0 12px 34px; border-bottom: 1px solid var(--line); }
.check-list li::before { content: ""; position: absolute; left: 4px; top: 19px; width: 14px; height: 8px; border-left: 1.5px solid var(--teal-700); border-bottom: 1.5px solid var(--teal-700); transform: rotate(-45deg); }
.check-list a { color: var(--ink); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.map-embed { position: relative; aspect-ratio: 16 / 10; background: var(--sand-2); border: 1px solid var(--line); }
.map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.25); }

/* about / contact */
.stat-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stat-row div { padding: 26px 20px; text-align: center; }
.stat-row div + div { border-left: 1px solid var(--line); }
.stat-row strong { display: block; font-weight: 300; font-size: clamp(2rem, 3.4vw, 2.8rem); color: var(--ink); line-height: 1.1; }
.stat-row span { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.contact-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.contact-card { border: 1px solid var(--line); padding: 26px; }
.contact-card .ci { width: 26px; height: 26px; color: var(--ink); margin-bottom: 14px; display: block; }
.contact-card .ci svg { width: 24px; height: 24px; }
.contact-card h3 { font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500; margin-bottom: 8px; }
.contact-card p { margin: 0; color: var(--ink); }
.area-links { display: flex; flex-wrap: wrap; gap: 8px; }
.area-links a { padding: 8px 14px; border: 1px solid var(--line); font-size: .9rem; color: var(--ink-2); }
.area-links a:hover { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }

/* FAQ hub */
.faq-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.faq-group { margin-bottom: 48px; scroll-margin-top: 110px; }
.faq-group h2 { font-size: clamp(1.2rem, 1.8vw, 1.45rem); margin-bottom: 12px; }
.faq .answer a { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }

/* specials */
.special { display: grid; grid-template-columns: 200px 1fr; border: 1px solid var(--line); }
.special .s-val { background: var(--teal-900); color: #fff; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 24px; text-align: center; }
.special .s-val strong { font-weight: 300; font-size: 3rem; line-height: 1; }
.special .s-val span { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .8); margin-top: 8px; }
.special .s-body { padding: 28px 30px; }
.special .s-body h3 { text-transform: uppercase; font-weight: 400; letter-spacing: .03em; font-size: 1.25rem; }
.special .s-fine { font-size: .82rem; color: var(--ink-3); margin-top: 10px; }
.special .s-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.special .s-tags span { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; padding: 6px 10px; border: 1px solid var(--line); color: var(--ink-2); }
.special.featured .s-val { background: var(--cyan); color: var(--ink); }
.special.featured .s-val span { color: var(--ink); }
.gift-embed { border: 1px dashed var(--line); background: #fff; padding: 40px; text-align: center; color: var(--ink-3); }
.gift-steps { counter-reset: gs; display: grid; gap: 0; border-top: 1px solid var(--line); }
.gift-steps li { counter-increment: gs; display: grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: center; color: var(--ink); }
.gift-steps li::before { content: counter(gs, decimal-leading-zero); font-weight: 300; font-size: 1.5rem; color: var(--teal-700); }

/* products */
.brand-card { display: flex; flex-direction: column; border: 1px solid var(--line); background: #fff; transition: border-color .2s; }
.brand-card:hover { border-color: var(--ink); }
.brand-card .bc-logo { height: 150px; display: grid; place-items: center; border-bottom: 1px solid var(--line); padding: 24px; }
.brand-card .bc-logo img { max-height: 70px; width: auto; object-fit: contain; }
.brand-card .bc-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.brand-card h3 { text-transform: uppercase; font-weight: 400; letter-spacing: .04em; font-size: 1.1rem; }
.brand-card p { font-size: .94rem; flex: 1; }
.brand-card .ship { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin: 6px 0 16px; }
.concern-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.concern-grid a { padding: 22px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--ink); font-size: .98rem; transition: background .2s, color .2s; }
.concern-grid a:hover { background: var(--teal-900); color: #fff; }
.concern-grid svg { width: 16px; height: 16px; flex: none; }

/* legal */
.legal-layout { display: grid; grid-template-columns: 260px minmax(0, 760px); gap: clamp(32px, 5vw, 72px); align-items: start; padding-bottom: clamp(56px, 7vw, 96px); }
.legal h2 { font-size: clamp(1.1rem, 1.6vw, 1.3rem); text-transform: none; font-weight: 500; margin: 40px 0 12px; scroll-margin-top: 110px; }
.legal h3 { font-size: 1.02rem; margin: 22px 0 8px; }
.legal p, .legal li { font-size: 1rem; line-height: 1.75; }
.legal ul { list-style: disc; padding-left: 22px; margin: 0 0 1.1em; }
.legal a { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }

/* 404 */
.notfound { min-height: 60vh; display: grid; place-items: center; text-align: center; padding: 80px 0; }
.notfound .big { font-weight: 300; font-size: clamp(6rem, 16vw, 11rem); line-height: 1; color: var(--tint); -webkit-text-stroke: 1px var(--teal-900); letter-spacing: .04em; }
.notfound .search { display: flex; max-width: 480px; margin: 28px auto 0; border: 1px solid var(--ink); }
.notfound .search input { flex: 1; min-width: 0; border: 0; padding: 0 16px; font: 400 1rem var(--font-body); min-height: 48px; }
.notfound .search input:focus { outline: none; }
.notfound .search button { border-left: 1px solid var(--ink); padding: 0 20px; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }

/* ==========================================================================
   WordPress / Genesis integration (theme only; not in the prototype)
   ========================================================================== */

/* Genesis wrappers: sections are full bleed and carry their own .wrap */
.site-container { overflow: visible; }
.site-inner, .content-sidebar-wrap, .content { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.screen-reader-text, .screen-reader-shortcut { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nowrap { white-space: nowrap; }

/* headings that are styled labels, not document outline */
.site-footer .f-h { margin: 0 0 18px; font: 500 .98rem/1.3 var(--font-body); color: #fff; }
.f-areas .f-h { margin: 0 0 6px; flex-basis: 100%; }
.mega .mega-h { margin: 0 0 12px; font: 500 .74rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }

/* homepage bits that carried inline styles in the prototype */
.review-links { margin-top: 28px; }
.g-ic { width: 15px; height: 15px; display: inline-flex; }
.g-ic svg { width: 15px; height: 15px; }
.shelf-intro { margin-bottom: 56px; }
.visit-section { padding-top: 0; }
.hero-full .stars svg { width: 14px; height: 14px; }
.faq .answer p { margin: 0; }

/* footer credit line comes from Genesis settings (footer_text), which holds the ZoHa credit and legal links */
.f-bottom { display: block; }
.f-bottom p { margin: 0; }
.f-bottom a { color: rgba(255, 255, 255, .8); text-decoration: underline; text-underline-offset: 3px; }

/* Klaviyo signup band (elume-klaviyo-forms.php) above the footer: its markup and reveal logic are the plugin's;
   only the band itself is restyled. The embedded form's own design is Klaviyo-side and left alone. */
.elume-signup-band { background: var(--sand) !important; border-top: 0 !important; padding: var(--section) var(--gutter) !important; }
.elume-signup-band__inner { max-width: 760px !important; }
.elume-signup-band h2 { font: 400 clamp(1.6rem, 2.5vw, 2.15rem)/1.2 var(--font-display) !important; text-transform: uppercase; letter-spacing: .01em; color: var(--ink) !important; margin: 0 0 10px !important; }
.elume-signup-band p { font: 400 1rem/1.7 var(--font-body) !important; color: var(--ink-2) !important; margin: 0 0 24px !important; }
.elume-signup-band .klaviyo-form { max-width: 100%; }

/* Google Reviews widget (google-reviews-business plugin) restyled to the store's review cards */
.review-widget { min-width: 0; }
.review-widget .wp-gr, .review-widget .wp-gr * { font-family: var(--font-body) !important; }
.review-widget .wp-google-place { display: flex; justify-content: flex-end; margin: 0 0 14px; }
.review-widget .wp-google-place .wp-google-left, .review-widget .wp-google-place .wp-google-name, .review-widget .wp-google-place .wp-google-right > div:not(.wp-google-powered) { display: none !important; }
.review-widget .wp-google-powered img { height: 16px; width: auto; }
.review-widget .wp-google-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review-widget .wp-google-review { display: grid !important; grid-template-columns: 40px 1fr; column-gap: 12px; align-content: start; margin: 0 !important; padding: 26px 24px 22px !important; background: #fff; border: 1px solid var(--line); }
.review-widget .wp-gr .wp-google-review .wp-google-right { display: contents !important; }
.review-widget .wp-gr .wp-google-review .wp-google-right > *, .review-widget .wp-gr .wp-google-text { width: auto !important; max-width: 100% !important; float: none !important; }
.review-widget .wp-gr .wp-google-review .wp-google-left { float: none !important; width: auto !important; }
.review-widget .wp-google-feedback { grid-column: 1 / -1; grid-row: 1; padding-bottom: 18px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.review-widget .wp-google-text { display: block; margin-top: 10px; font-size: 1rem !important; line-height: 1.6 !important; color: var(--ink) !important; }
.review-widget .wp-star svg { width: 14px; height: 14px; }
.review-widget .wp-star svg path { fill: var(--gold); }
.review-widget .wp-google-review .wp-google-left { grid-column: 1; grid-row: 2 / span 2; }
.review-widget .wp-google-review .wp-google-left img { width: 40px !important; height: 40px !important; border-radius: 50%; }
.review-widget .wp-google-review .wp-google-name { grid-column: 2; grid-row: 2; font-size: .9rem !important; font-weight: 500 !important; color: var(--ink) !important; text-decoration: none; }
.review-widget .wp-google-review .wp-google-time { grid-column: 2; grid-row: 3; font-size: .8rem !important; }
.review-widget a.wp-google-url { display: inline-block; margin-top: 22px; font-size: .8rem !important; letter-spacing: .1em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; }
/* the plugin's own hide rule is written "wp-google-hide{display:none}" (no dot) and matches nothing */
.review-widget .wp-gr .wp-google-reviews .wp-google-review.wp-google-hide { display: none !important; }
.review-widget .wp-gr .wp-google-reviews { padding: 0 !important; }
.review-widget .wp-gr .wp-google-reviews .wp-google-review { border: 1px solid var(--line) !important; background: #fff !important; padding: 26px 24px 22px !important; margin: 0 !important; }
@media (max-width: 1040px) { .review-widget .wp-google-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .review-widget .wp-google-reviews { grid-template-columns: 1fr; } }

/* entry content defaults for pages still on generic templates */
.entry-content { font-size: 1.02rem; }
.entry-content a:not(.btn) { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.entry-content ul { list-style: disc; padding-left: 1.3em; margin: 0 0 1.1em; }
.entry-content ol { padding-left: 1.3em; margin: 0 0 1.1em; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content h3 { margin-top: 1.4em; }
.entry-content img { margin: 1.4em 0; }

/* Google Reviews widget contrast (ported from showcase-pro's Additional CSS post 1438, T-4.8 + HOVER-BC):
   the plugin's #9a9a9a and #2c7cff fail AA on white. Same values, now theme-owned. */
.wp-gr .wp-google-place .wp-google-name a, .wp-gr .wp-google-place .wp-google-name a span, .wp-gr .wp-google-time { color: #59646b !important; }
.wp-gr a.wp-google-url, .wp-gr .wp-more-toggle, .wp-gr .wp-google-place .wp-google-name a:hover, .wp-gr a.wp-google-url:hover { color: var(--teal-700) !important; }

/* ==========================================================================
   Treatment template (new-service-template.php)
   ========================================================================== */
.crumbs-wrap .breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); margin-bottom: clamp(24px, 3.5vw, 44px); }
.crumbs-wrap .breadcrumb a:hover { color: var(--ink); }
.crumbs-wrap .breadcrumb .sep { opacity: .5; }
.t-hero .lead p { margin: 0; }
.t-hero .trust-row b { color: var(--ink); font-weight: 600; }
.t-hero .hero-media { justify-self: end; width: 100%; max-width: 520px; }
.t-hero .arch { aspect-ratio: 1; }
.how-media { max-width: 420px; justify-self: center; width: 100%; }
.prose-narrow { max-width: 820px; }
.facts .facts-h { font: 500 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin: 0 0 6px; }
ul.benefits { list-style: none; margin: 0; padding: 0; }
.steps.steps-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.steps.steps-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.step .s-img img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.step .s-copy p { font-size: .94rem; margin: 0 0 .8em; }
.step .s-extra { font-size: .94rem; }
.t-book .cta-band { text-align: center; }
.t-book .cta-band .eyebrow { color: rgba(255, 255, 255, .8); }
.t-book .cta-band .btn-row { justify-content: center; margin-top: 28px; }
.t-book .t-book-offer { font: 500 1.15rem/1.4 var(--font-display); color: #fff; margin-bottom: 8px; }
.t-book { padding-top: 0; }
.t-book .t-book-consult { margin: 18px 0 0; }
#faqs .section-head .btn { margin-top: 16px; }

/* results_section_html: stored content restyled, never rewritten (see the template header) */
.e26-results { max-width: 1000px; }
.e26-results > h2, .e26-results > h3 { text-align: center !important; margin: 0 0 18px; }
.e26-results h3 { font-size: clamp(1.6rem, 2.5vw, 2.15rem); font-weight: 400; text-transform: uppercase; }
.e26-results > p { max-width: none; }
.e26-results a:not(.btn) { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.e26-results h3 + p, .e26-results p + h3 { margin-top: 1.2em; }
.e26-results ul[class$="-hub"] { display: flex !important; flex-wrap: wrap; gap: 10px !important; justify-content: center; margin: 22px 0 48px !important; }
.e26-results ul[class$="-hub"] a { display: inline-flex !important; min-height: 0 !important; height: auto !important; padding: 12px 18px !important; background: #fff !important; border: 1px solid var(--line) !important; border-radius: 0 !important; color: var(--ink) !important; font-weight: 400 !important; font-size: .93rem; text-decoration: none !important; transition: background .2s, color .2s, border-color .2s; }
.e26-results ul[class$="-hub"] a:hover { background: var(--teal-900) !important; border-color: var(--teal-900) !important; color: #fff !important; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) { background: var(--teal-900) !important; border-top: 0 !important; color: rgba(255, 255, 255, .82); padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 64px) !important; margin: 48px 0 0 !important; text-align: center; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) h2 { color: #fff; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) p { color: rgba(255, 255, 255, .82) !important; font-size: 1rem !important; max-width: 720px; margin-left: auto !important; margin-right: auto !important; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) p[style*="font-weight:700"] { font: 500 1.25rem/1.4 var(--font-display) !important; color: #fff !important; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) ul { display: inline-block; text-align: left !important; color: #fff; list-style: disc; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) a { color: #fff !important; }
.e26-results :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) a[style*="display:inline-block"] { display: inline-flex !important; align-items: center; min-height: 48px; padding: 0 28px !important; background: #fff !important; color: var(--ink) !important; border-radius: 0 !important; font: 400 .84rem/1 var(--font-body) !important; letter-spacing: .1em; text-transform: uppercase; text-decoration: none !important; margin: 8px 0; }

/* N-7 aftercare band (elume-treatment-aftercare-products.php), placed by the template */
.t-aftercare .elume-n7-aftercare { background: #fff; border-top: 0; padding: calc(var(--section) * .6) var(--gutter); }
.t-aftercare .elume-n7-aftercare .elume-n7-inner { max-width: 1000px; background: var(--sand); padding: clamp(28px, 4vw, 48px); }
.t-aftercare .elume-n7-aftercare h2.elume-n7-title { font-size: clamp(1.4rem, 2.2vw, 1.9rem); color: var(--ink); }
.t-aftercare .elume-n7-aftercare p.elume-n7-copy { color: var(--ink-2); font-size: 1rem; }
.t-aftercare .elume-n7-aftercare a.elume-n7-link { border-radius: 0; border-color: var(--teal-900); background: var(--teal-900); color: #fff; font: 400 .84rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; padding: 16px 24px; }
.t-aftercare .elume-n7-aftercare a.elume-n7-link:hover { background: var(--teal-950); }

/* Restore Innovations page (elume-restore-innovations.php). Its CSS was written for showcase-pro's 10px root
   font, so every rem size there is 1.6x too big here; these rules bring them back to the design's scale. */
.e26 .elume-ri-badge { font-size: .95rem; margin: 14px 0 22px; padding: 12px 16px; border-left-color: var(--teal-700); background: var(--sand); }
.e26 .elume-ri-badge strong, .e26 .elume-ri-badge a { color: var(--teal-700); }
.e26 .elume-ri-cta { max-width: var(--wrap); margin: 0 auto; padding: calc(var(--section) * .6) var(--gutter); }
.e26 .elume-ri-cta .container_service-center { background: var(--teal-900); color: rgba(255, 255, 255, .82); padding: clamp(36px, 5vw, 72px) clamp(24px, 5vw, 64px); }
.e26 .elume-ri-cta h2 { color: #fff; }
.e26 .elume-ri-cta-lead { max-width: 640px; }
.e26 .elume-ri-cta .elume-ri-cta-btn { background: #fff; color: var(--ink); border: 1px solid #fff; border-radius: 0; padding: 0 28px; min-height: 48px; display: inline-flex; align-items: center; font: 400 .84rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.e26 .elume-ri-cta .elume-ri-cta-btn.elume-ri-cta-alt { background: transparent; color: #fff; }
.e26 .elume-ri-cta .elume-ri-cta-btn:hover { background: var(--teal-950); border-color: #fff; color: #fff; }
.e26 .elume-ri-cta-call { font-size: 1rem; color: #fff; text-decoration: underline; }
.e26 .elume-ri-cta-note { font-size: .9rem; color: rgba(255, 255, 255, .7); }
.e26 .pelvic-selfcheck li { font-size: 1rem; padding-left: 2.2rem !important; }
.e26 .pelvic-selfcheck li::before { width: 1.2rem; height: 1.2rem; top: .3rem; border-color: var(--teal-700); border-radius: 0; }
.e26 .pelvic-facts { font-size: .95rem; }
.e26 .pelvic-facts th { background: #fff; color: var(--ink); }
.e26 .pelvic-callout, .e26 .pelvic-provider { border-radius: 0; border-left-color: var(--teal-700); background: #fff; }

@media (max-width: 1040px) {
  .steps.steps-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .t-hero .hero-media { justify-self: start; }
}
@media (max-width: 640px) {
  .steps.steps-3, .steps.steps-2 { grid-template-columns: 1fr; }
  .e26 .pelvic-facts th { font-size: .8rem; }
}

/* RI badge lands inside the hero .btn-row (see the template header): give it its own full row */
.t-hero .btn-row > .elume-ri-badge { flex-basis: 100%; margin: 0 0 10px; }

/* results content: one readable column, headings centred, nested paragraphs aligned with the rest */
.e26-results { max-width: 900px; }
.e26-results p, .e26-results li { font-size: 1rem; }
.e26-results > ul:not([class]), .e26-results > ol { padding-left: 1.3em; list-style: disc; margin: 0 0 1.2em; }
.e26 .pelvic-selfcheck { list-style: none; margin: 24px 0 8px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 36px; text-align: left; }
.e26 .pelvic-selfcheck li { position: relative; margin: 0; padding: 0 0 0 30px !important; line-height: 1.55; }
.e26 .pelvic-selfcheck li::before { content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px; border: 1.5px solid var(--teal-700); background: #fff; }
.e26 .pelvic-video { border-radius: 0; margin: 16px 0 6px; }
.e26 .pelvic-video-credit { font-size: .82rem !important; color: var(--ink-3); margin: 0 0 32px; }
.e26 .pelvic-callout { margin: 24px 0; padding: 18px 22px; }
.e26 .pelvic-learn-more { list-style: none; padding: 0; margin: 16px 0 32px; display: grid; gap: 8px; }
.e26 .pelvic-provider { margin: 40px 0 0; gap: 28px; }
@media (max-width: 640px) { .e26 .pelvic-selfcheck { grid-template-columns: 1fr; } }

/* ==========================================================================
   Archives: /treatments/ (archive-treatments.php) and the hubs (new-archive-template.php)
   ========================================================================== */
.page-intro.center .crumbs-wrap .breadcrumb { justify-content: center; }
.t-card .t-name { margin: 0 0 4px; font-size: 1.15rem; font-weight: 500; line-height: 1.35; text-transform: none; }
.t-card.compact .t-name { font-size: 1.02rem; }
.t-card .t-desc, .t-card .t-desc p { font-size: .93rem; color: var(--ink-3); margin: 0; line-height: 1.6; }
.t-card.compact .t-desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.t-archive { padding-top: clamp(36px, 4vw, 56px); }
.split > .side-card { background: #fff; margin: 0; }
.side-card .side-h { font: 500 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin: 0 0 16px; }
.hub-actions { margin-top: 32px; }
.hub-chips { margin-top: 36px; }
.hub-intro { margin-bottom: clamp(40px, 5vw, 64px); }
.hub-intro .lead { padding-top: 8px; }
.hub-consult { display: flex; }
.hub-consult .cta-band { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 4vw, 56px); }
.hub-consult .eyebrow { color: rgba(255, 255, 255, .8); }
.hub-consult h3 { color: #fff; font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 400; text-transform: uppercase; }
.hub-consult p { max-width: 34em; }
.hub-consult .btn-row { margin-top: 12px; }
.hours-wrap { width: 100%; max-width: 300px; }
.hours-wrap .hours { margin-top: 8px; }
.hub-content table { width: 100%; border-collapse: collapse; font-size: .95rem !important; margin: 24px 0 40px !important; }
.hub-content th, .hub-content td { border: 1px solid var(--line) !important; padding: 12px 14px !important; text-align: left; vertical-align: top; }
.hub-content th { background: var(--sand) !important; color: var(--ink); font-weight: 500; }
.hub-content h2 { text-align: left !important; }
@media (max-width: 860px) { .hub-consult { grid-column: 1 / -1 !important; } }
@media (max-width: 640px) { .hub-content table { display: block; overflow-x: auto; } }

/* Gravity Forms (request form on the hubs, /schedule/, /contact/): the design's .field look */
.gform_wrapper { font-family: var(--font-body); }
.gform_wrapper .gform_fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; list-style: none; margin: 0; padding: 0; }
.gform_wrapper .gfield { grid-column: 1 / -1; margin: 0; padding: 0; }
.gform_wrapper .gfield--width-half, .gform_wrapper .gf_left_half, .gform_wrapper .gf_right_half { grid-column: span 1; }
.gform_wrapper .gfield_label, .gform_wrapper legend.gfield_label { display: block; font: 400 .78rem/1.3 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin: 0 0 8px; }
.gform_wrapper input[type="text"], .gform_wrapper input[type="email"], .gform_wrapper input[type="tel"], .gform_wrapper input[type="number"], .gform_wrapper input[type="date"], .gform_wrapper select, .gform_wrapper textarea { width: 100% !important; min-height: 48px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 0; background: #fff; font: 400 1rem var(--font-body); color: var(--ink); }
.gform_wrapper textarea { min-height: 120px; }
.gform_wrapper input:focus, .gform_wrapper select:focus, .gform_wrapper textarea:focus { outline: none; border-color: var(--ink); }
.gform_wrapper .ginput_complex { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gform_wrapper .ginput_complex label, .gform_wrapper .gfield_description { font-size: .8rem; color: var(--ink-3); }
.gform_wrapper .gfield_checkbox, .gform_wrapper .gfield_radio { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gform_wrapper .gchoice { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; }
.gform_wrapper .gchoice input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--teal-900); flex: none; }
.gform_wrapper .gform_footer { margin-top: 20px; }
.gform_wrapper .gform_footer input[type="submit"], .gform_wrapper .gform_button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; border: 1px solid var(--teal-900); background: var(--teal-900); color: #fff; font: 400 .84rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; border-radius: 0; cursor: pointer; }
.gform_wrapper .gform_footer input[type="submit"]:hover { background: var(--teal-950); }
.gform_wrapper .gfield_required { color: var(--teal-700); }
.gform_wrapper .validation_message, .gform_wrapper .gfield_validation_message { color: #a12a2a; font-size: .85rem; margin-top: 6px; }
@media (max-width: 640px) { .gform_wrapper .gform_fields, .gform_wrapper .ginput_complex { grid-template-columns: 1fr; } .gform_wrapper .gfield--width-half { grid-column: 1 / -1; } }
.gform_wrapper .gchoice label, .gform_wrapper .gfield_consent_label { font-size: .9rem !important; line-height: 1.5; color: var(--ink-2); }
.gform_wrapper .gsection_title, .gform_wrapper h3.gsection_title { font: 500 .82rem/1.3 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin: 8px 0 0; }

/* ==========================================================================
   Blog: index (home.php) and single posts (single.php)
   ========================================================================== */
.blog-index { padding-top: clamp(36px, 4vw, 56px); }
.b-card .b-title { font-size: 1.15rem; font-weight: 500; line-height: 1.35; text-transform: none; margin: 0 0 8px; }
.b-card .meta, .post-feature .meta, .article-head .meta { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); margin-bottom: 8px; }
.meta .sep { margin: 0 8px; opacity: .6; }
.post-feature .link-arrow { margin-top: 12px; }
.pager .page-numbers { min-width: 42px; height: 42px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); font-size: .85rem; color: var(--ink-2); }
.pager .page-numbers.current { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.pager .page-numbers.dots { border: 0; }
.side-card .side-h { margin-bottom: 16px; }
.side-card.teal .side-h { color: #fff; }
.side-card.teal p { color: rgba(255, 255, 255, .85); }
.side-card .side-more { margin: 12px 0 0; font-size: .85rem; }
.side-card.teal .side-more a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.shelf-note { margin: 14px 0 0; }
.post-nav a.next { text-align: right; }
.post-nav a.next:only-of-type { grid-column: 2; }
.article-head .crumbs-wrap .breadcrumb { justify-content: center; }
.article-layout.no-aside { grid-template-columns: minmax(0, 760px); }

/* post content (classic-editor HTML) */
.article .entry-content > p:first-child { font-size: 1.2rem; line-height: 1.7; color: var(--ink); padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.article .entry-content h2 { font-size: clamp(1.4rem, 2.2vw, 1.75rem); text-transform: none; font-weight: 500; margin: 1.8em 0 .6em; scroll-margin-top: 110px; }
.article .entry-content h3 { font-size: 1.15rem; margin: 1.5em 0 .5em; }
.article .entry-content table { width: 100%; border-collapse: collapse; font-size: .92rem; line-height: 1.55; margin: 24px 0; display: block; overflow-x: auto; }
.article .entry-content th { background: var(--teal-900); color: #fff; font-weight: 400; text-align: left; padding: 12px 14px; }
.article .entry-content td { padding: 12px 14px; border-top: 1px solid var(--line); vertical-align: top; }
.article .entry-content tr:nth-child(even) td { background: var(--sand); }
.article .entry-content img { height: auto; }
.article .entry-content blockquote { margin: 28px 0; padding-left: 22px; border-left: 2px solid var(--cyan); color: var(--ink); font-size: 1.1rem; }
.article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) { background: var(--teal-900) !important; border-top: 0 !important; color: rgba(255, 255, 255, .85); padding: 32px !important; margin: 40px 0 !important; }
.article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) h2, .article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) h3 { color: #fff; margin-top: 0; text-transform: uppercase; font-weight: 400; }
.article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) p, .article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) li { color: rgba(255, 255, 255, .85) !important; }
.article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) p[style*="font-weight:700"] { font: 500 1.2rem/1.4 var(--font-display) !important; color: #fff !important; }
.article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) a { color: #fff !important; }
.article .entry-content :is([class$="-book-panel"], div[style*="border-top:3px solid #00c9fc"]) a[style*="display:inline-block"] { display: inline-flex !important; align-items: center; min-height: 48px; padding: 0 28px !important; background: #fff !important; color: var(--ink) !important; border-radius: 0 !important; font: 400 .84rem/1 var(--font-body) !important; letter-spacing: .1em; text-transform: uppercase; text-decoration: none !important; }
@media (max-width: 1040px) { .article-layout, .blog-layout { grid-template-columns: 1fr; } .sticky-aside { position: static; } }

/* ==========================================================================
   Pages (page.php + page-<slug>.php, theme 0.5). Stored page content is printed as is and restyled here,
   including its inline styles (matched by class or by attribute). Visual specs: about.html, city-vienna.html,
   legal.html and friends in site-revamp-2026-10/.
   ========================================================================== */

/* stored "button" links and Font Awesome icons (Font Awesome is not loaded in this theme) */
.e26 .entry-content a.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; background: var(--teal-900); border: 1px solid var(--teal-900); color: #fff; font: 400 .84rem/1.2 var(--font-body); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; transition: background .2s; }
.e26 .entry-content a.button:hover { background: var(--teal-950); }
.e26 .entry-content i[class*="fa-"] { display: inline-block; width: 26px; height: 26px; background: currentColor; -webkit-mask: var(--fa) center / contain no-repeat; mask: var(--fa) center / contain no-repeat; color: var(--ink); }
.e26 .entry-content i.fa-map-marker-alt { --fa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.e26 .entry-content i.fa-phone { --fa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.e26 .entry-content i.fa-clock { --fa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.e26 .entry-content i.fa-envelope { --fa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='13'/%3E%3Cpath d='M3.5 6.5l8.5 6.5 8.5-6.5'/%3E%3C/svg%3E"); }

/* default page: intro band + readable column */
.page-intro h1 { margin-bottom: 0; }
.page-intro .eyebrow + h1 { margin-top: 4px; }
.page-lead { margin-top: 16px; max-width: 46em; }
.page-lead p { font-size: 1.02rem; color: var(--ink-2); }
.page-body { padding-top: clamp(36px, 4vw, 56px); padding-bottom: clamp(56px, 7vw, 96px); }
.page-article { max-width: 780px; font-size: 1.04rem; line-height: 1.8; }
.page-article h2 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); text-transform: none; font-weight: 500; margin: 1.8em 0 .6em; scroll-margin-top: 110px; }
.page-article h3 { font-size: 1.12rem; margin: 1.5em 0 .5em; }
.page-article > :first-child { margin-top: 0; }
.page-article img { height: auto; }
.page-article table { width: 100%; border-collapse: collapse; font-size: .94rem; margin: 24px 0; }
.page-article th, .page-article td { padding: 12px 14px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.page-article th { background: var(--teal-900); color: #fff; font-weight: 400; }

/* stored h2 sections (e26_page_section) */
.e26-sec .sec-head h2 { margin: 0; }
.e26-sec .sec-body > :first-child { margin-top: 0; }
.e26-sec .sec-body { font-size: 1.04rem; line-height: 1.8; }
.e26-sec .sec-body h3 { font-size: 1.12rem; margin: 1.4em 0 .4em; text-transform: none; }
.sec-split .sec-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 6vw, 88px); align-items: start; }
.sec-split .sec-body { max-width: 720px; }
.sec-split .sec-body ul { list-style: none; padding: 0; margin: 8px 0 24px; border-top: 1px solid var(--line); }
.sec-split .sec-body ul li { position: relative; padding: 13px 0 13px 34px; border-bottom: 1px solid var(--line); }
.sec-split .sec-body ul li::before { content: ""; position: absolute; left: 4px; top: 21px; width: 14px; height: 8px; border-left: 1.5px solid var(--teal-700); border-bottom: 1.5px solid var(--teal-700); transform: rotate(-45deg); }
.sec-split .sec-body ul li > a:first-child { color: var(--ink); font-weight: 500; }
.sec-center .sec-grid, .sec-cta .sec-grid { max-width: 820px; text-align: center; }
.sec-center .sec-head, .sec-cta .sec-head { margin-bottom: 20px; }
.sec-cta .sec-body p[style*="text-align:center"] { margin-bottom: 1.2em; }
.sec-cta .sec-body a.button { margin: 6px 0 10px; }
.sec-faq .sec-grid { max-width: 900px; }
.sec-faq .sec-head { text-align: center; margin-bottom: clamp(24px, 3vw, 40px); }
.sec-faq .sec-body { border-top: 1px solid var(--line); }
.sec-faq .sec-body h3 { margin: 0; padding: 24px 0 8px; font: 500 1.08rem/1.4 var(--font-body); color: var(--ink); }
.sec-faq .sec-body h3 + p { margin: 0; padding-bottom: 24px; border-bottom: 1px solid var(--line); color: var(--ink-2); }

/* location + map section (city pages: stored .contact-info + .contact-map) */
.sec-visit .sec-head { text-align: center; margin-bottom: clamp(24px, 3vw, 36px); }
.e26 .contact-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; }
.e26 .contact-info .contact-item { background: #fff; border: 1px solid var(--line); padding: 24px 22px; text-align: center; color: var(--ink); line-height: 1.5; }
.e26 .contact-info .contact-item i { display: block; margin: 0 auto 12px; }
.e26 .contact-info .address span { display: block; }
.e26 .contact-info .contact-item a { color: var(--ink); text-decoration: none; }
.e26 .contact-map { border: 1px solid var(--line); background: var(--sand-2); }
.e26 .contact-map iframe { display: block; width: 100% !important; height: clamp(280px, 34vw, 400px) !important; border: 0; filter: grayscale(.25); }

/* city pages: hero */
.city-hero { min-height: clamp(460px, 62vh, 620px); }
.city-hero .hero-bg img { object-position: 50% 55%; }
.city-hero .wrap { grid-template-columns: 1fr; }
.city-hero-copy { max-width: 780px; }
.city-hero .display { font-size: clamp(2.1rem, 4vw, 3.3rem); }
.city-hero .lead p { color: inherit; font-size: inherit; line-height: inherit; }
.city-hero .lead a { color: #fff; text-decoration: underline; }
.city-hero .crumbs-wrap .breadcrumb { color: rgba(255, 255, 255, .8); margin-bottom: 20px; }
.city-hero .crumbs-wrap .breadcrumb a:hover { color: #fff; }
.city-intro-rest { padding-bottom: 0; max-width: 820px; }

/* legal */
.legal-layout.no-aside { grid-template-columns: minmax(0, 780px); }
.legal-layout { padding-top: clamp(36px, 4vw, 56px); }
.legal ol { padding-left: 22px; margin: 0 0 1.1em; }
.legal ol > li { margin-bottom: .9em; }
.legal-toc h2 { font: 500 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin: 0 0 16px; }
.legal-toc ol { list-style: none; padding: 0; margin: 0; counter-reset: toc; }
.legal-toc ol li { counter-increment: toc; }
.legal-toc ol li a, .legal-toc .toc a { display: block; padding: 7px 0 7px 12px; border-left: 2px solid var(--line); font-size: .9rem; color: var(--ink-3); line-height: 1.4; text-decoration: none; }
.legal-toc ol li a::before { content: counter(toc) ". "; }
.legal-toc ol li a:hover, .legal-toc .toc a:hover { color: var(--ink); border-left-color: var(--teal-900); }
.legal-toc { max-height: calc(100vh - 140px); overflow: auto; }

@media (max-width: 1040px) {
  .sec-split .sec-grid { grid-template-columns: 1fr; gap: 20px; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-layout .sticky-aside { position: static; }
  .legal-toc { max-height: none; }
}
@media (max-width: 640px) {
  .e26 .contact-info { grid-template-columns: 1fr; }
  .city-hero .crumbs-wrap .breadcrumb { margin-bottom: 14px; }
}

/* mobile: compact contact items (icon left) */
@media (max-width: 640px) {
  .e26 .contact-info { gap: 10px; }
  .e26 .contact-info .contact-item { display: flex; align-items: center; gap: 16px; text-align: left; padding: 16px 18px; }
  .e26 .contact-info .contact-item i { margin: 0; flex: none; }
}

/* About (page-about.php) */
.about-hero .lead { margin-bottom: 0; }
.about-hero .lead p { font-size: inherit; line-height: inherit; color: inherit; }
.about-hero .btn-row { margin-top: 28px; }
.about-stats { padding-top: 0; }
.stat-row.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.about-prose { font-size: 1.04rem; line-height: 1.8; }
.about-prose > p:first-child { font-size: clamp(1.02rem, 1.2vw, 1.12rem); color: var(--ink); }
.about-areas { text-align: center; }
.about-areas p { font-size: 1.06rem; line-height: 1.9; max-width: 44em; margin: 0 auto; }
@media (max-width: 640px) {
  .stat-row, .stat-row.n3 { grid-template-columns: 1fr 1fr; }
  .stat-row div:nth-child(3) { border-left: 0; }
  .stat-row div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .stat-row.n3 div:nth-child(3) { grid-column: 1 / -1; }
}

/* Shaheen (page-shaheen.php): stored content carries inline styles, overridden here */
.shaheen-hero .founder-media { max-width: 420px; }
.shaheen-hero .arch img { width: 100% !important; height: 100% !important; border-radius: 0 !important; display: block !important; object-fit: cover; }
.shaheen-intro p { margin: 0 0 1.1em !important; font-size: 1rem !important; }
.shaheen-intro p:first-child { font-size: clamp(1.02rem, 1.2vw, 1.12rem) !important; color: var(--ink); }
.shaheen-hero .btn-row { margin-top: 28px; }
.e26-sec .sec-head h2[style] { margin: 0 !important; }
.e26-sec .sec-body p[style*="margin"] { margin: 0 0 1.1em !important; }
.e26-sec .sec-body > p:last-child { margin-bottom: 0 !important; }

.sec-quote .sec-grid { max-width: 900px; text-align: center; }
.sec-quote .sec-head { margin-bottom: 20px; }
.sec-quote .sec-head h2 { font-size: .95rem; letter-spacing: .12em; color: rgba(255, 255, 255, .8); }
.sec-quote .sec-body blockquote { margin: 0 0 36px !important; padding: 0 !important; border: 0 !important; background: none !important; }
.sec-quote .sec-body blockquote p { font: 300 clamp(1.4rem, 2.5vw, 2.1rem)/1.45 var(--font-display) !important; font-style: normal !important; color: #fff; }
.sec-quote .sec-body > p { max-width: 40em; margin: 0 auto !important; color: rgba(255, 255, 255, .85); }

.sec-reviews .sec-head { margin-bottom: 18px; }
.sec-reviews .sec-body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: start; }
.sec-reviews .sec-body > p { grid-column: 1 / -1; margin: 0 !important; }
.sec-reviews .sec-body > p:first-child { margin-bottom: 16px !important; color: var(--ink-2); }
.sec-reviews .sec-body > p:last-child { margin-top: 12px !important; }
.sec-reviews .sec-body blockquote { margin: 0 !important; padding: 28px 26px 24px !important; background: #fff !important; border: 1px solid var(--line) !important; display: flex; flex-direction: column; height: 100%; }
.sec-reviews .sec-body blockquote p:first-child { margin: 0 0 20px !important; font-size: 1.02rem; line-height: 1.6 !important; color: var(--ink); flex: 1; }
.sec-reviews .sec-body blockquote p:last-child { margin: 0 !important; padding-top: 16px; border-top: 1px solid var(--line); font-size: .74rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3) !important; }

.sec-consult .sec-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 20px clamp(36px, 6vw, 88px); align-items: start; }
.sec-consult .sec-head, .sec-consult .sec-body { grid-column: 1; }
.sec-consult .sec-side { grid-column: 2; grid-row: 1 / span 2; }
.sec-consult .sec-side .row { display: grid; gap: 16px; margin: 0; }
.sec-consult .sec-side .row > [class*="col-"] { width: auto; max-width: none; flex: none; padding: 0; }
.e26 .entry-content div[style*="border-top:4px solid"] { background: #fff !important; border: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 30px !important; margin: 0 !important; height: auto !important; }
.e26 .entry-content div[style*="border-top:4px solid"] p[style*="text-transform:uppercase"] { font: 400 .95rem/1.5 var(--font-body) !important; letter-spacing: .01em !important; text-transform: none !important; color: var(--ink-2) !important; margin: 0 0 6px !important; }
.e26 .entry-content div[style*="border-top:4px solid"] h3 { font-size: 1.3rem !important; text-transform: uppercase; font-weight: 400; letter-spacing: .03em; margin: 0 0 6px !important; }
.e26 .entry-content div[style*="border-top:4px solid"] p[style*="color:#4a4a4a"] { display: inline-block; align-self: flex-start; font-size: .74rem !important; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3) !important; padding: 6px 10px; border: 1px solid var(--line); margin: 0 0 14px !important; }
.e26 .entry-content div[style*="border-top:4px solid"] a[style*="display:block"] { display: flex !important; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px !important; background: var(--teal-900) !important; color: #fff !important; border-radius: 0 !important; font: 400 .84rem/1.2 var(--font-body) !important; letter-spacing: .1em; text-transform: uppercase; text-decoration: none !important; }
.e26 .entry-content div[style*="border-top:4px solid"] a[style*="display:block"]:hover { background: var(--teal-950) !important; }

.sec-visitcard .sec-grid { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: auto 1fr; background: var(--sand); padding: 0; }
.sec-visitcard .visit-img { grid-column: 1; grid-row: 1 / span 2; }
.sec-visitcard .sec-head { grid-column: 2; padding: clamp(32px, 4.5vw, 64px) clamp(32px, 4.5vw, 64px) 16px; }
.sec-visitcard .sec-body { grid-column: 2; padding: 0 clamp(32px, 4.5vw, 64px) clamp(32px, 4.5vw, 64px); }
.sec-visitcard .sec-body .btn-row { margin-top: 24px; }
.sec-visitcard .sec-grid.wrap { padding: 0; max-width: calc(var(--wrap) - 2 * var(--gutter)); width: calc(100% - 2 * var(--gutter)); }

@media (max-width: 1040px) {
  .sec-reviews .sec-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sec-consult .sec-grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .sec-consult .sec-side { grid-column: 1; grid-row: auto; }
  .sec-visitcard .sec-grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .sec-visitcard .visit-img { grid-column: 1; grid-row: auto; min-height: 280px; }
  .sec-visitcard .sec-head, .sec-visitcard .sec-body { grid-column: 1; }
}
@media (max-width: 1040px) {
  .shaheen-hero .founder-media { max-width: 320px; justify-self: start; }
}
@media (max-width: 640px) {
  .sec-reviews .sec-body { grid-template-columns: 1fr; }
  .stat-row div { padding: 20px 12px; }
  .stat-row span { display: block; line-height: 1.5; margin-top: 4px; }
}

/* Contact (page-contact.php) */
.contact-top { padding-bottom: 0; }
.contact-top .contact-info { margin: 0; }
.contact-top .contact-info .contact-item { text-align: left; padding: 26px; }
.contact-top .contact-info .contact-item i { margin: 0 0 14px; }
.contact-left > p { margin-bottom: 20px; font-size: 1.04rem; }
.contact-left .contact-map iframe { height: clamp(300px, 34vw, 440px) !important; }
.contact-form-card .gform_heading { margin-bottom: 18px; }
.contact-form-card .gform_title { font: 400 clamp(1.4rem, 2.2vw, 1.8rem)/1.2 var(--font-display); text-transform: uppercase; color: var(--ink); margin: 0 0 8px; }
.contact-form-card .gform_description { display: block; color: var(--ink-2); }
.contact-form-card .contact-second-half { margin: 0; }

/* Questions (page-questions.php) */
.page-intro.center .page-lead { margin-left: auto; margin-right: auto; }
.questions-sec { padding-top: clamp(40px, 5vw, 64px); }
.questions-sec .sticky-aside .toc a { text-decoration: none; }
.faq-group h2 { text-transform: none; font-weight: 500; }
.faq-open { border-top: 1px solid var(--line); }
.faq-open h3 { margin: 0; padding: 22px 0 6px; font: 500 1.06rem/1.4 var(--font-body); color: var(--ink); text-transform: none; }
.faq-open h3 + p { margin: 0; padding-bottom: 22px; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.questions-cta h2 { font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
.questions-cta .entry-content a:not(.btn) { color: #fff; }
.questions-cta .btn-row { margin-top: 20px; }
@media (max-width: 1040px) {
  .faq-layout { grid-template-columns: 1fr; }
  .faq-layout > .sticky-aside { position: static; }
  .faq-layout .toc { display: flex; flex-wrap: wrap; gap: 8px; }
  .faq-layout .toc a { border: 1px solid var(--line); padding: 8px 12px; }
}
@media (max-width: 640px) {
  .contact-top .contact-info .contact-item { padding: 16px 18px; }
  .contact-top .contact-info .contact-item i { margin: 0; }
}

/* contact fixes: keep the stored <br> in the hours line; only the one right after an icon is a spacer */
.e26 .contact-info .contact-item br { display: inline; }
.e26 .contact-info .contact-item > i + br { display: none; }
.contact-left > p[style] { text-align: left !important; }

/* Specials (page-specials.php): stored .special cards (and [specials] output) as value + body cards */
.specials-page { padding-top: clamp(40px, 5vw, 64px); }
.specials-head { margin: 0 0 24px; }
.specials-head h2 { margin: 0; }
.specials-standing { margin-bottom: 0; }
.specials-limited + .specials-head, .specials-standing { margin-top: 0; }
.specials-limited + .specials-head { margin-top: 64px; }
.specials-page .specials, .specials-page .row { margin: 0; }
.specials-page .row { display: grid; gap: 16px; }
.specials-page .row > [class*="col-"] { width: auto; max-width: none; flex: none; padding: 0; }
.specials-page .special { display: grid; grid-template-columns: 200px minmax(0, 1fr); border: 1px solid var(--line); background: #fff; }
.specials-page .special:not(:has(.special--banner)) { grid-template-columns: minmax(0, 1fr); border-left: 4px solid var(--cyan); }
.specials-page .special > * { grid-column: -2; margin: 0 30px; }
.specials-page .special > p:empty { display: none; }
.specials-page .special--banner { grid-column: 1; grid-row: 1 / span 8; margin: 0; padding: 24px; background: var(--teal-900); color: #fff; display: flex; align-items: center; justify-content: center; text-align: center; font: 300 2.2rem/1.1 var(--font-display); }
.specials-page .special--name { margin-top: 28px; margin-bottom: 8px; text-transform: uppercase; font-weight: 400; letter-spacing: .03em; font-size: 1.25rem; }
.specials-page .special--description { color: var(--ink-2); }
.specials-page .special--end-date { font-size: .82rem; color: var(--ink-3); margin-top: 10px; }
.specials-page .special--products-or-treatments { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.specials-page .special--products-or-treatments__title { margin: 0; font: 400 .72rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.specials-page .special--products-or-treatments ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.specials-page .special--products-or-treatments li { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; padding: 6px 10px; border: 1px solid var(--line); color: var(--ink-2); }
.specials-page .specials-limited .special--banner { background: var(--cyan); color: var(--ink); }
.specials-book { margin-top: 64px; }
.specials-book > div[style*="border-top:3px solid #00c9fc"] { background: var(--teal-900) !important; border: 0 !important; border-radius: 0 !important; padding: clamp(36px, 5vw, 64px) clamp(24px, 5vw, 64px) !important; margin: 0 !important; color: rgba(255, 255, 255, .85); }
.specials-book h2 { color: #fff; font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
.specials-book p { color: rgba(255, 255, 255, .85); }
.specials-book a[style*="color:#00699a"] { color: #fff !important; text-decoration: underline; }
.specials-book a[style*="display:inline-block"] { display: inline-flex !important; align-items: center; min-height: 48px; padding: 0 28px !important; margin-top: 8px; background: #fff !important; color: var(--ink) !important; border-radius: 0 !important; font: 400 .84rem/1 var(--font-body) !important; letter-spacing: .1em; text-transform: uppercase; text-decoration: none !important; }
.specials-gift { text-align: center; margin-top: 28px; }
@media (max-width: 640px) {
  .specials-page .special { grid-template-columns: 1fr; }
  .specials-page .special > * { grid-column: 1; margin: 0 22px; }
  .specials-page .special--banner { grid-row: auto; margin: 0; padding: 18px; font-size: 1.8rem; }
  .specials-page .special--name { margin-top: 20px; }
}

/* Gift certificates (page-gift-certificates.php) */
.gift-hero h1 { margin-bottom: 18px; }
.gift-intro .row { display: block; margin: 0; }
.gift-intro .row > [class*="col-"] { width: auto; max-width: none; flex: none; padding: 0; }
.gift-intro .row > [class*="col-"]:first-child { font-size: clamp(1.02rem, 1.2vw, 1.12rem); line-height: 1.7; color: var(--ink-2); max-width: 38em; }
.gift-intro ol { counter-reset: gs; list-style: none; padding: 0; margin: 28px 0 0; border-top: 1px solid var(--line); }
.gift-intro ol li { counter-increment: gs; display: grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: center; color: var(--ink); }
.gift-intro ol li::before { content: counter(gs, decimal-leading-zero); font-weight: 300; font-size: 1.5rem; color: var(--teal-700); }
.gift-embed-live { border: 1px solid var(--line); background: #fff; padding: clamp(16px, 2.5vw, 28px); min-height: 360px; }
.gift-embed-live iframe { width: 100% !important; }

/* specials: bottom space via a grid item, so the value column still spans the full card */
.specials-page .special::after { content: ""; grid-column: -2; height: 28px; }

/* stored booking cards (inline-styled div with a 4px top border; /schedule/ and /about/shaheen/) */
.e26 .entry-content div[style*="border-top:4px solid"] { display: flex !important; flex-direction: column; }
.e26 .entry-content div[style*="border-top:4px solid"] p[style*="font-size:28px"] { font: 300 2.2rem/1.1 var(--font-display) !important; color: var(--ink) !important; margin: 6px 0 4px !important; }
.e26 .entry-content div[style*="border-top:4px solid"] p[style*="font-weight:700;color:#00699a"] { font-weight: 500 !important; color: var(--ink) !important; }
.e26 .entry-content div[style*="border-top:4px solid"] p[style*="margin:0 0 18px"] { color: var(--ink); padding-top: 12px; margin: 8px 0 18px !important; border-top: 1px solid var(--line); }
.e26 .entry-content div[style*="border-top:4px solid"] p[style*="margin:auto 0 0"] { margin: auto 0 0 !important; }

/* Schedule (page-schedule.php) */
.sched-hero { padding-bottom: clamp(36px, 5vw, 56px); }
.sched-hero .split { align-items: end; }
.sched-intro > div[style] { background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; }
.sched-intro h2 { font: 500 .78rem/1 var(--font-body) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin: 6px 0 12px !important; }
.sched-intro p:first-of-type { font-size: clamp(1.02rem, 1.2vw, 1.12rem); color: var(--ink-2); }
.sched-intro p { font-size: .94rem; color: var(--ink-3); margin: 0 0 10px !important; max-width: 40em; }
.sched-intro a { color: var(--teal-700) !important; font-weight: 500 !important; }
.sched-chips { justify-content: flex-end; }
.sched-chips .chip { background: #fff; }
.sched-flash { padding-top: 0; }
.sched-grid .row { display: contents; }
.sched-grid .row > [class*="col-"] { width: auto; max-width: none; flex: none; padding: 0; }
.sched-grid { display: grid; gap: 16px; align-items: stretch; }
.sched-grid.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sched-grid.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sched-grid .row > [class*="col-"] > div[style] { height: 100% !important; margin: 0 !important; }
.e26 .sched-flash div[style*="border-top:4px solid"] { background: var(--teal-900) !important; border-color: var(--teal-900) !important; color: rgba(255, 255, 255, .82); }
.e26 .sched-flash div[style*="border-top:4px solid"] h3 { color: #fff; }
.e26 .sched-flash div[style*="border-top:4px solid"] p[style*="text-transform:uppercase"] { color: var(--cyan) !important; font-size: .74rem !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
.e26 .sched-flash div[style*="border-top:4px solid"] p[style*="font-size:28px"],
.e26 .sched-flash div[style*="border-top:4px solid"] p[style*="font-weight:700;color:#00699a"],
.e26 .sched-flash div[style*="border-top:4px solid"] p[style*="margin:0 0 18px"] { color: #fff !important; }
.e26 .sched-flash div[style*="border-top:4px solid"] p[style*="color:#4a4a4a"] { color: rgba(255, 255, 255, .75) !important; border-color: rgba(255, 255, 255, .3); }
.e26 .sched-flash div[style*="border-top:4px solid"] p[style*="margin:0 0 18px"] { border-top-color: rgba(255, 255, 255, .25); }
.e26 .sched-flash div[style*="border-top:4px solid"] a[style*="display:block"] { background: #fff !important; color: var(--ink) !important; }
.e26 .sched-flash div[style*="border-top:4px solid"] a[style*="display:block"]:hover { background: var(--tint) !important; }
.sched-other .entry-content > div[style] { background: #fff !important; border: 1px solid var(--line) !important; border-radius: 0 !important; padding: clamp(26px, 4vw, 44px) !important; margin: 0 !important; }
.sched-other h2 { margin-top: 0; }
.sched-other .row { display: block; margin: 0; }
.sched-other .row > [class*="col-"] { width: auto; max-width: none; flex: none; padding: 0; }
.sched-other .row > [class*="col-"]:empty { display: none; }
@media (max-width: 1040px) {
  .sched-grid.g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sched-chips { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .sched-grid.g2, .sched-grid.g3 { grid-template-columns: 1fr; }
}

/* Products hub (archive-products.php + elume-products-hub.php output, restyled; the plugin owns the copy) */
.e26 .elume-hero { background: #fff !important; background-image: none !important; padding: clamp(32px, 4vw, 56px) 0 clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--line); text-align: center; min-height: 0; color: var(--ink-2); }
.e26 .elume-hero .elume-hero-content { max-width: 780px; margin: 0 auto; }
.e26 .elume-hero .elume-hero-eyebrow { font: 400 .95rem/1.5 var(--font-body); color: var(--ink-2); margin: 0 0 10px; }
.e26 .elume-hero h1 { color: var(--ink); margin: 0 0 16px; }
.e26 .elume-hero .elume-hero-lead { font-size: clamp(1.02rem, 1.2vw, 1.12rem); line-height: 1.7; color: var(--ink-2); margin: 0 auto 28px; max-width: 40em; }
.e26 .elume-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.e26 .elume-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; border: 1px solid var(--teal-900); font: 400 .84rem/1.2 var(--font-body); letter-spacing: .1em; text-transform: uppercase; transition: background .2s, color .2s; }
.e26 .elume-btn--primary { background: var(--teal-900); color: #fff; }
.e26 .elume-btn--primary:hover { background: var(--teal-950); }
.e26 .elume-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.e26 .elume-btn--ghost:hover { background: var(--ink); color: #fff; }
.products-cards { padding-top: clamp(40px, 5vw, 64px); }
.products-cards .brand-card .bc-logo img { max-height: 90px; }
.e26 .elume-badge { display: block; width: fit-content; margin-top: 12px; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); }
.e26 .elume-wrap { overflow: hidden; }
.e26 .elume-sec { max-width: var(--wrap); margin: 0 auto; padding: var(--section) var(--gutter); }
.e26 .elume-sec:nth-child(odd) { background: var(--sand); box-shadow: 0 0 0 100vmax var(--sand); clip-path: inset(0 -100vmax); }
.e26 .elume-h { text-align: center; margin: 0 0 8px; }
.e26 .elume-sub { text-align: center; max-width: 40em; margin: 0 auto clamp(28px, 4vw, 44px); color: var(--ink-2); }
.e26 .elume-sub a { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.e26 .elume-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: #fff; list-style: none; margin: 0; padding: 0; }
.e26 .elume-grid li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.e26 .elume-tile { display: flex; align-items: center; gap: 14px; height: 100%; padding: 22px 20px; color: var(--ink); transition: background .2s, color .2s; }
.e26 .elume-tile:hover { background: var(--teal-900); color: #fff; }
.e26 .elume-ico { width: 24px; height: 24px; flex: none; color: var(--teal-700); }
.e26 .elume-tile:hover .elume-ico { color: #fff; }
.e26 .elume-ico svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.e26 .elume-feat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: clamp(28px, 4vw, 44px); }
.e26 .elume-featcard { display: flex; flex-direction: column; gap: 10px; padding: 32px; border: 1px solid var(--line); background: #fff; color: var(--ink-2); transition: border-color .2s; }
.e26 .elume-featcard:hover { border-color: var(--ink); }
.e26 .elume-featcard strong { font: 500 .82rem/1.2 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.e26 .elume-featcard em { font-style: normal; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-top: 6px; }
.e26 .elume-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.e26 .elume-chip { display: inline-block; padding: 10px 16px; border: 1px solid var(--line); background: #fff; color: var(--ink-2); font-size: .92rem; }
.e26 .elume-chip:hover { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.e26 .elume-band { max-width: var(--wrap); margin: 0 auto var(--section); padding: clamp(44px, 6vw, 88px) clamp(24px, 6vw, 80px); background: var(--teal-900); color: rgba(255, 255, 255, .85); text-align: center; width: calc(100% - 2 * var(--gutter)); max-width: calc(var(--wrap) - 2 * var(--gutter)); }
.e26 .elume-band .elume-h { color: #fff; }
.e26 .elume-band p { max-width: 40em; margin: 0 auto 24px; }
.e26 .elume-band p a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.e26 .elume-band .elume-btn--primary { background: #fff; border-color: #fff; color: var(--ink); }
.e26 .elume-band .elume-btn--primary:hover { background: transparent; color: #fff; }
.e26 .elume-band .elume-btn--ghost { border-color: #fff; color: #fff; }
.e26 .elume-band .elume-btn--ghost:hover { background: #fff; color: var(--ink); }

/* product singles */
.product-single .product-logo { max-width: 320px; border: 1px solid var(--line); padding: 24px; background: #fff; }
.product-single .split { align-items: center; }
.product-single .btn-row { margin-top: 24px; }
.product-desc h3:first-child { margin-top: 0; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 1040px) { .e26 .elume-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .e26 .elume-feat { grid-template-columns: 1fr; } .e26 .elume-tile { padding: 18px 14px; gap: 10px; font-size: .92rem; } }

/* 404 (404.php) */
.notfound h1 { margin-top: 12px; }
.notfound .lead { margin: 0 auto; }
.notfound .btn-row { justify-content: center; margin-top: 28px; }
.notfound-home { margin-top: 22px; }

/* stored tables: inline font sizes assumed showcase-pro's 10px root (1.8rem = 18px there, 29px here); header cells
   carry an inline pale background, so the teal header needs !important (e.g. /dermal-fillers/) */
.e26 .entry-content table[style*="font-size"] { font-size: .94rem !important; line-height: 1.55; }
.page-article th[style] { background: var(--teal-900) !important; color: #fff; border-color: var(--teal-900) !important; font-weight: 400; }
.page-article td[style] { border-color: var(--line) !important; }
/* homepage menu: an inline link inside the description (Morpheus8 cost guide) reads as text, not as the row CTA */
.menu-item .mi-sub span a { font: inherit; letter-spacing: normal; text-transform: none; color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; white-space: normal; border: 0; padding: 0; background: none; }

/* search results (search.php) */
.search-inline { display: flex; max-width: 520px; margin-top: 20px; border: 1px solid var(--ink); }
.search-inline input { flex: 1; min-width: 0; border: 0; padding: 0 16px; font: 400 1rem var(--font-body); min-height: 48px; }
.search-inline input:focus { outline: none; }
.search-inline button { border-left: 1px solid var(--ink); padding: 0 20px; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.search-results .search-row { display: block; padding: 24px 0; border-bottom: 1px solid var(--line); }
.search-results .search-row:first-child { border-top: 1px solid var(--line); }
.search-results .search-row h2 { font-size: clamp(1.15rem, 1.6vw, 1.35rem); text-transform: none; font-weight: 500; margin: 6px 0 8px; }
.search-results .search-row:hover h2 { color: var(--teal-700); }
.search-results .search-row p { margin: 0; color: var(--ink-2); }
.search-results .pager { margin-top: 32px; }
.search-results .search-row, .search-results .lead { max-width: 820px; }

/* Above-the-fold heroes (and the first blog / treatments cards, which can be the LCP element) fade in with CSS alone. The generic .reveal waits for the deferred e26.js and an
   IntersectionObserver, which kept the homepage H1, lead and offer card invisible until scripts ran (late on slow
   phones, never in a background tab). Same look, no script dependency. */
@keyframes e26rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.js .hero-full .reveal, .js .page-hero .reveal, .js .post-feature.reveal, .js .t-card.reveal:nth-of-type(-n+3), .js .b-card.reveal:nth-of-type(-n+2) { opacity: 1; transform: none; transition: none; animation: e26rise .8s var(--ease) both; }
.js .hero-full .reveal.d1, .js .page-hero .reveal.d1 { animation-delay: .08s; }
.js .hero-full .reveal.d2, .js .page-hero .reveal.d2 { animation-delay: .16s; }
.js .hero-full .reveal.d3, .js .page-hero .reveal.d3 { animation-delay: .24s; }
.js .hero-full .reveal.d4, .js .page-hero .reveal.d4 { animation-delay: .32s; }
@media (prefers-reduced-motion: reduce) { .js .hero-full .reveal, .js .page-hero .reveal, .js .post-feature.reveal, .js .t-card.reveal, .js .b-card.reveal { animation: none; } }
