/* =========================================================
   Sylaris One — Med spas vertical (body.v-spa)
   Warm ivory, blush and stone; espresso ink; Cormorant
   Garamond display paired with Inter. Loaded after one.css.
   ========================================================= */

body.v-spa {
  --serif: "Cormorant Garamond", "Fraunces", Georgia, "Times New Roman", serif;
  --ivory: #f8f3ec;
  --cream: #fbf7f2;
  --linen: #f1e7de;
  --blush: #ecd5c8;
  --blush-deep: #d9b8a8;
  --rose: #8a6556;          /* accent text, 4.6:1 on ivory */
  --stone: #cfc4b8;
  --espresso: #2b211c;

  --paper: var(--ivory);
  --paper-2: #efe6dc;
  --text: var(--espresso);
  --text-2: #5b4c43;
  --text-3: #74645a;
  --line: #2b211c17;
  --line-2: #2b211c2b;

  --v-accent: var(--espresso);
  --v-accent-ink: #fbf6f1;
  --v-glow-1: #ecd5c855;
  --v-glow-2: #f3e6dc66;
  --v-glow-3: #e9d8c444;

  --shadow-1: 0 14px 40px #5a3a2a0f;
  --shadow-2: 0 40px 100px #5a3a2a24;

  background: var(--ivory);
}

/* ---------- type ---------- */
.v-spa main h1, .v-spa main h2, .v-spa main h3, .v-spa main h4 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.02;
}
.v-spa main h1 em, .v-spa main h2 em, .v-spa main h3 em, .v-spa .mini-h em { color: var(--rose); font-style: italic; font-weight: 400; }
.v-spa main .h-xl { font-size: clamp(3rem, 5.3vw, 5rem); letter-spacing: -0.025em; line-height: 0.96; }
.v-spa main .h-lg { font-size: clamp(2.4rem, 4.6vw, 3.9rem); }
.v-spa main .lead, .v-spa main .body { color: var(--text-2); }
.v-spa .spa-gap { margin-top: 22px; }
.v-spa .spa-gap-sm { margin-top: 14px; }

.v-spa main .kicker {
  gap: 14px;
  color: var(--text-3);
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
}
.v-spa main .kicker::before { width: 28px; height: 1px; border-radius: 0; background: currentColor; box-shadow: none; opacity: .7; }
.v-spa main .head.center .kicker::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }

/* ---------- buttons ---------- */
.v-spa main .btn { font-family: var(--font-body); font-weight: 500; letter-spacing: 0.01em; }
.v-spa main .btn-primary { box-shadow: 0 16px 36px #2b211c26; }
.v-spa main .btn-ghost { border-color: var(--line-2); background: #ffffffa6; color: var(--espresso); }
.v-spa .btn-light { background: #fbf6f1; color: var(--espresso); box-shadow: 0 16px 40px #00000033; }
.v-spa main .link-arrow { font-family: var(--font-body); font-weight: 600; }

/* ticks: blush disc, espresso check */
.v-spa main .ticks li { color: var(--espresso); }
.v-spa main .ticks li::before {
  background: var(--blush) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B211C' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- hero ---------- */
.spa-hero {
  position: relative;
  overflow: hidden;
  padding: 168px 0 110px;
  background:
    radial-gradient(60% 70% at 92% 10%, #efd9cc99, transparent 60%),
    radial-gradient(50% 60% at 0% 100%, #ede1d4, transparent 70%),
    linear-gradient(180deg, var(--cream), var(--ivory));
}
.spa-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); gap: clamp(40px, 5vw, 80px); align-items: center; }
.spa-hero-copy h1 { max-width: 10.5em; }
.spa-hero-copy h1 em { display: block; }
.spa-hero-copy .lead { margin-top: 26px; max-width: 50ch; }
.spa-facts { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 30px; color: var(--text-2); font-size: 0.9rem; }
.spa-facts li { display: inline-flex; align-items: center; gap: 10px; }
.spa-facts li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--blush-deep); box-shadow: 0 0 0 3px #d9b8a840; }

.spa-stage { position: relative; padding: 28px 0 0; }
.spa-arch {
  position: absolute; z-index: 0;
  top: -40px; right: -6%; width: 74%; height: calc(100% + 40px);
  border-radius: 999px 999px 36px 36px;
  background: linear-gradient(180deg, #ecd5c8 0%, #f2e3d9 55%, #f6ece4 100%);
  border: 1px solid #ffffff99;
}
.spa-window { position: relative; z-index: 1; border-color: #2b211c1f; border-radius: 24px; box-shadow: var(--shadow-2), 0 0 0 8px #ffffff8c; }
.spa-window .window-bar { background: var(--cream); border-color: var(--line); }
.spa-window .dots i { background: #e6dcd2; }
.spa-window .urlbar { background: #f1e9e1; color: var(--text-3); }
.spa-window .mini { border-radius: 0; box-shadow: none; }

/* enlarged Solenne preview */
.mini.t-spa { --m-ink-2: #6e5e54; }
.mini.is-xl { font-size: 11px; }
.mini.is-xl .mini-nav { padding: 4cqi 5cqi; border-bottom: 1px solid var(--m-line); }
.mini.is-xl .mini-logo { font-size: 4.6cqi; font-weight: 600; letter-spacing: 0.02em; }
.mini.is-xl .mini-links i { width: 6cqi; height: 0.8cqi; }
.mini.is-xl .mini-cta { padding: 1.8cqi 3.4cqi; font-family: var(--font-body); font-size: 2.2cqi; font-weight: 500; }
.mini.is-xl .mini-hero { padding: 7cqi 40cqi 8cqi 5cqi; }
.mini.is-xl .mini-eyebrow { font-family: var(--font-body); font-size: 1.9cqi; font-weight: 600; letter-spacing: .2em; }
.mini.is-xl .mini-h { max-width: none; margin-top: 2.6cqi; font-size: 8.4cqi; line-height: .98; letter-spacing: -0.02em; }
.mini.is-xl .mini-h em { display: block; }
.mini.is-xl .mini-p { max-width: 36ch; font-size: 2.3cqi; }
.mini.is-xl .mini-btns span { font-family: var(--font-body); font-size: 2.1cqi; font-weight: 500; }
.mx-arch {
  position: absolute; top: 5cqi; right: 5cqi; bottom: 3cqi; width: 30cqi;
  display: flex; align-items: flex-end; justify-content: center;
  padding-bottom: 5cqi;
  border-radius: 999px 999px 2cqi 2cqi;
  background:
    radial-gradient(60% 40% at 50% 30%, #fff7f1, transparent 70%),
    linear-gradient(180deg, #e8cfc2 0%, #dcbcad 60%, #cfa995 100%);
  overflow: hidden;
}
.mx-arch::before { content: ""; position: absolute; left: 50%; top: 22%; width: 44%; aspect-ratio: 1; border-radius: 50%; transform: translateX(-50%); background: radial-gradient(circle at 35% 35%, #fff, #f3e2d8 60%, #e6c7b7); box-shadow: 0 2cqi 5cqi #8a65563d; }
.mx-arch span { position: relative; color: #3b2c25; font-family: var(--serif); font-size: 2.5cqi; font-style: italic; line-height: 1.25; text-align: center; }
.mini.is-xl .mini-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2cqi; }
.mini.is-xl .mini-card { padding: 2.4cqi; border-radius: 2.4cqi; }
.mini.is-xl .mini-card i { height: 12cqi; border-radius: 99px 99px 1.6cqi 1.6cqi; }
.mini.is-xl .mini-card:nth-child(2) i { background: linear-gradient(160deg, #dccabb, #f3ebe3); }
.mini.is-xl .mini-card:nth-child(3) i { background: linear-gradient(160deg, #e3c9c0, #f7eeea); }
.mini.is-xl .mini-card:nth-child(4) i { background: linear-gradient(160deg, #cfc4b8, #f1ebe4); }
.mini.is-xl .mini-card b { font-size: 3cqi; font-weight: 600; }
.mini.is-xl .mini-card small { display: block; margin-top: .6cqi; font-size: 1.9cqi; }
.mx-member { display: flex; align-items: center; justify-content: space-between; gap: 3cqi; margin: 0 5cqi 5cqi; padding: 3.2cqi 4cqi; border-radius: 3cqi; background: #2b211c; color: #d9cbbf; }
.mx-member b { display: block; color: #fbf6f1; font-family: var(--serif); font-size: 3.6cqi; font-weight: 500; }
.mx-member small { font-size: 2cqi; }
.mx-member span { flex: none; padding: 1.6cqi 3.6cqi; border-radius: 99px; background: #fbf6f1; color: #2b211c; font-size: 2.1cqi; font-weight: 600; }

.spa-float {
  position: absolute; z-index: 2;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 18px 12px 12px;
  border: 1px solid #ffffffb3;
  border-radius: 20px;
  background: #fffcf8eb;
  backdrop-filter: blur(14px);
  box-shadow: 0 24px 60px #5a3a2a26;
  animation: floaty 7s ease-in-out infinite;
}
.spa-float .ic { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--blush); color: var(--espresso); font-weight: 700; }
.spa-float b { display: block; color: var(--espresso); font-family: var(--serif); font-size: 1.08rem; font-weight: 600; line-height: 1.15; }
.spa-float small { color: var(--text-3); font-size: .76rem; }
.sf-a { top: -2%; right: -4%; }
.sf-b { bottom: -5%; left: -8%; animation-delay: -3s; }
.spa-sample { position: relative; z-index: 1; margin-top: 16px; color: var(--text-3); font-size: .76rem; text-align: right; }
@media (max-width: 1180px) { .sf-b { left: -3%; } .sf-a { right: -2%; } }
@media (max-width: 1020px) {
  .spa-hero { padding: 140px 0 84px; }
  .spa-hero-grid { grid-template-columns: 1fr; }
  .spa-stage { max-width: 720px; }
}
@media (max-width: 900px) { .spa-float { display: none; } }
@media (max-width: 560px) {
  .spa-hero { padding: 124px 0 64px; }
  .spa-arch { top: -16px; right: -10%; width: 86%; }
  .spa-hero .btn-row .btn { flex: 1 1 100%; }
  .mini.is-xl .mini-p { display: none; }
}
@media (prefers-reduced-motion: reduce) { .spa-float { animation: none; } }

/* ---------- ribbon ---------- */
.spa-ribbon { padding: 26px 0; border-block: 1px solid var(--line); background: var(--linen); }
.spa-ribbon ul { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 0; }
.spa-ribbon li { display: inline-flex; align-items: center; color: var(--espresso); font-family: var(--serif); font-size: clamp(1.2rem, 1.9vw, 1.45rem); font-style: italic; }
.spa-ribbon li + li::before { content: ""; width: 5px; height: 5px; margin: 0 clamp(12px, 1.7vw, 24px); border-radius: 50%; background: var(--blush-deep); }

/* ---------- local to national ---------- */
.spa-national { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(36px, 6vw, 88px); align-items: center; }
.spa-national h2 em { display: block; }
.spa-map { margin: 0; padding: clamp(18px, 3vw, 34px); border: 1px solid var(--line); border-radius: 36px; background: var(--cream); box-shadow: var(--shadow-1); }
.spa-map-inner { position: relative; }
.spa-map img { width: 100%; height: auto; opacity: .55; filter: grayscale(1) sepia(.35); }
.pin { position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--blush-deep); box-shadow: 0 0 0 5px #d9b8a83d; }
.pin.home { width: 18px; height: 18px; margin: -9px 0 0 -9px; background: var(--espresso); box-shadow: 0 0 0 6px #2b211c1f; }
.pin.home::after { content: ""; position: absolute; inset: -22px; border: 1px solid #2b211c40; border-radius: 50%; animation: spa-pulse 3.2s ease-out infinite; }
@keyframes spa-pulse { 0% { transform: scale(.4); opacity: 1; } 100% { transform: scale(2.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .pin.home::after { animation: none; } }
.spa-map figcaption { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--text-2); font-size: .86rem; }
.spa-map figcaption span { display: inline-flex; align-items: center; gap: 10px; }
.spa-map .k { width: 10px; height: 10px; border-radius: 50%; background: var(--blush-deep); }
.spa-map .k.home { background: var(--espresso); }

.spa-angles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-top: clamp(64px, 8vw, 104px); }
.spa-angles li { padding-top: 24px; border-top: 1px solid var(--line-2); }
.spa-angles .n, .spa-steps .n { display: block; color: var(--rose); font-family: var(--serif); font-size: 1.6rem; font-style: italic; line-height: 1; }
.spa-angles h3 { margin: 18px 0 10px; font-size: 1.6rem; }
.spa-angles p { font-size: .95rem; }
@media (max-width: 920px) { .spa-national { grid-template-columns: 1fr; } .spa-angles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .spa-angles { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- programs ---------- */
.v-spa .is-white { background: var(--cream); }
.spa-programs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.spa-prog { position: relative; display: flex; flex-direction: column; min-height: 300px; padding: 30px; overflow: hidden; border: 1px solid var(--line); border-radius: 30px; background: #fff; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.spa-prog:hover { transform: translateY(-4px); box-shadow: var(--shadow-1); }
.spa-prog .orb { width: 64px; height: 64px; border-radius: 50%; box-shadow: inset -6px -8px 16px #ffffff80, 0 10px 24px #8a65562a; }
.o1 { background: radial-gradient(circle at 30% 30%, #fff6f0, #e8cfc2 70%); }
.o2 { background: radial-gradient(circle at 30% 30%, #fbf3ea, #dcc4ac 70%); }
.o3 { background: radial-gradient(circle at 30% 30%, #f6efe9, #c9b8aa 70%); }
.o4 { background: radial-gradient(circle at 30% 30%, #fff8f4, #e3c2b2 70%); }
.o5 { background: radial-gradient(circle at 30% 30%, #f7f2ec, #d4c7b6 70%); }
.o6 { background: radial-gradient(circle at 30% 30%, #fff7f1, #d9b8a8 70%); }
.spa-prog .ptag { width: fit-content; margin-top: 30px; padding: 5px 12px; border: 1px solid var(--line-2); border-radius: 99px; color: var(--text-2); font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.spa-prog h3 { margin: 16px 0 10px; font-size: 1.95rem; }
.spa-prog p { font-size: .95rem; }
.spa-prog.is-own { border-color: transparent; background: var(--espresso); color: #d9cbbf; }
.spa-prog.is-own h3 { color: #fbf6f1; }
.spa-prog.is-own .ptag { border-color: #ffffff33; color: #ecd5c8; }
.spa-compliance { max-width: 88ch; margin-top: 28px; }
@media (max-width: 1020px) { .spa-programs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .spa-programs { grid-template-columns: 1fr; } .spa-prog { min-height: 0; } }

/* ---------- steps ---------- */
.spa-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; border-top: 1px solid var(--line-2); }
.spa-steps li { position: relative; padding-top: 40px; }
.spa-steps li::before { content: ""; position: absolute; top: -7px; left: 0; width: 13px; height: 13px; border: 1px solid var(--espresso); border-radius: 50%; background: var(--ivory); }
.spa-steps li:last-child::before { border-color: var(--blush-deep); background: var(--blush-deep); box-shadow: 0 0 0 5px #d9b8a840; }
.spa-steps .n { font-size: 2.6rem; }
.spa-steps h3 { margin: 22px 0 10px; font-size: 1.75rem; }
.spa-steps p { font-size: .96rem; }
@media (max-width: 920px) { .spa-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; border-top: 0; } .spa-steps li { border-top: 1px solid var(--line-2); } }
@media (max-width: 560px) {
  .spa-steps { grid-template-columns: 1fr; gap: 0; padding-left: 26px; border-left: 1px solid var(--line-2); }
  .spa-steps li { padding: 0 0 36px; border-top: 0; }
  .spa-steps li::before { top: 8px; left: -33px; }
  .spa-steps h3 { margin-top: 10px; }
}

/* ---------- what stays yours (espresso) ---------- */
.v-spa .spa-dark { background: radial-gradient(60% 80% at 100% 0%, #3d2f28, transparent 60%), var(--espresso); color: #d9cbbf; }
.v-spa .spa-dark h2, .v-spa .spa-dark h3 { color: #fbf6f1; }
.v-spa .spa-dark h2 em { color: #e3c2b2; }
.v-spa .spa-dark .kicker { color: #c9b2a4; }
.v-spa .spa-dark .body { color: #d9cbbf; }
.spa-yours { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 100px); align-items: start; }
.spa-yours h2 em { display: block; }
.spa-yours-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 36px; }
.spa-yours-list li { padding: 26px 0 30px; border-top: 1px solid #ffffff21; }
.spa-yours-list h3 { margin-bottom: 10px; font-size: 1.75rem; }
.spa-yours-list p { font-size: .95rem; }
.spa-handled { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin-top: 64px; padding: 18px 22px; border: 1px solid #ffffff21; border-radius: 28px; background: #ffffff08; }
.spa-handled p { color: #c9b2a4; font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.spa-handled ul { display: flex; flex-wrap: wrap; gap: 8px; }
.spa-handled li { padding: 8px 14px; border: 1px solid #ffffff1f; border-radius: 99px; color: #f1e7de; font-size: .84rem; }
@media (max-width: 920px) { .spa-yours { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .spa-yours-list { grid-template-columns: 1fr; } }

/* ---------- showcase tabs ---------- */
.v-spa .tab { border-color: var(--line-2); background: transparent; color: var(--text-2); font-family: var(--font-body); font-weight: 500; }
.v-spa .tab[aria-selected="true"] { border-color: var(--espresso); background: var(--espresso); color: #fbf6f1; }
.v-spa .tab[aria-selected="true"]::before { background: var(--blush-deep); }
.v-spa .panel h3 { font-size: clamp(2rem, 3.2vw, 2.7rem); }
.v-spa .shot { border-color: var(--line); background: #fff; }
.v-spa .phone { background: var(--espresso); box-shadow: var(--shadow-2), inset 0 0 0 2px #4a3a32; }
.v-spa .phone-screen { background: #fffdfa; }
.v-spa .phone-top b { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; }
.v-spa .phone-body h4 { font-family: var(--serif); font-size: 1.45rem; font-weight: 600; letter-spacing: -0.01em; }
.v-spa .progress { background: #efe6dc; }
.v-spa .progress i, .v-spa .phone-next { background: var(--espresso); }
.v-spa .phone-next { color: #fbf6f1; font-family: var(--font-body); font-weight: 500; }
.v-spa .opt { border-color: #2b211c24; }
.v-spa .opt.on { border-color: var(--espresso); background: #f7efe8; }
.v-spa .opt.on i { border-color: var(--espresso); }

/* ---------- template ---------- */
.spa-tpl { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.spa-tpl h2 em { display: block; }
.spa-tpl-visual { position: relative; padding: clamp(24px, 4vw, 48px) clamp(20px, 3vw, 40px) clamp(64px, 8vw, 96px); border-radius: 36px; background: linear-gradient(170deg, #efdcd0, #f6ece4 70%); }
.spa-tpl-a { width: 82%; }
.spa-tpl-b { position: absolute; right: clamp(16px, 3vw, 36px); bottom: clamp(20px, 3vw, 36px); width: 46%; box-shadow: 0 30px 70px #5a3a2a33; }
.spa-tpl-b .mini-h { font-size: 8cqi; }
.mx-rows { display: grid; gap: 2cqi; padding: 0 5cqi 6cqi; }
.mx-rows span { display: flex; align-items: center; justify-content: space-between; padding: 3cqi 4cqi; border-radius: 3cqi; background: var(--m-card); }
.mx-rows b { color: var(--m-ink); font-family: var(--m-font); font-size: 4.2cqi; font-weight: 600; }
.mx-rows i { width: 4cqi; height: 4cqi; border-radius: 50%; background: var(--m-accent); }
.v-spa .spa-try { margin: 28px 0 0; background: var(--cream); }
.v-spa .spa-try label { font-family: var(--font-body); font-weight: 600; }
.v-spa .spa-try input { background: #fff; }
@media (max-width: 920px) { .spa-tpl { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .spa-tpl-a { width: 92%; }
  .spa-tpl-b { width: 58%; }
  .spa-try { width: 100%; border-radius: 24px; }
  .spa-try label { padding: 4px 0 0 8px; }
  .spa-try input { flex: 1 1 100%; width: 100%; max-width: none; }
}

/* ---------- pricing ---------- */
.v-spa .price { border-color: var(--line); border-radius: 32px; background: #fff; }
.v-spa .price-name h3 { font-size: 2rem; }
.v-spa .price-amt { font-family: var(--serif); font-size: 3.2rem; font-weight: 500; letter-spacing: -0.02em; }
.v-spa .price-amt small { font-family: var(--font-body); }
.v-spa .spa-call { font-size: 2.2rem; line-height: 1.2; }
.v-spa .price.is-featured { background: var(--espresso); color: #d9cbbf; }
.v-spa .price.is-featured .price-sub { color: #c9b2a4; }
.v-spa .price.is-featured .btn-primary { background: #fbf6f1; color: var(--espresso); }
.v-spa .badge { background: var(--blush); color: var(--espresso); font-family: var(--font-body); font-weight: 600; }

/* ---------- FAQ ---------- */
.v-spa .faq details { border-color: var(--line); border-radius: 22px; background: #fffdfa; }
.v-spa .faq summary { font-family: var(--serif); font-size: 1.32rem; font-weight: 600; letter-spacing: -0.005em; line-height: 1.25; }
.v-spa .faq summary::after { background: #efe6dc; color: var(--espresso); font-family: var(--font-body); }
.v-spa .faq details[open] summary::after { background: var(--blush); }
.v-spa .faq a { color: var(--espresso); text-underline-offset: 3px; }

/* ---------- CTA ---------- */
.v-spa .spa-cta { background: linear-gradient(160deg, #ecd5c8 0%, #f6ebe2 55%, #efe2d6 100%); color: var(--text-2); }
.v-spa .spa-cta::before { background: radial-gradient(50% 70% at 50% 0%, #ffffff8c, transparent 70%), radial-gradient(30% 50% at 100% 100%, #d9b8a866, transparent 70%); }
.v-spa .spa-cta h2 { color: var(--espresso); max-width: 13em; }
.v-spa .spa-cta .kicker { justify-content: center; color: var(--text-2); }
.v-spa .spa-cta .kicker::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.v-spa .spa-cta p { color: var(--text-2); }
.v-spa .spa-cta .btn-ghost { border-color: var(--line-2); background: #ffffffa6; color: var(--espresso); }
@media (max-width: 560px) { .v-spa .spa-cta .btn { flex: 1 1 100%; } }

/* ---------- sticky CTA ---------- */
.v-spa .sticky-cta { background: #fbf6f1eb; }
.v-spa .sticky-cta .btn { font-family: var(--font-body); font-weight: 500; }
