/* ================================================================
   Sim Vision Theme — Service Page Design
   ----------------------------------------------------------------
   BRAND-NEUTRAL. No colour or font is decided in this file.

   Every token in the .msvc block below resolves from Theme Options
   via the --svt-* custom properties printed in wp_head. Change a
   colour or font in Appearance > Theme Options and every Service
   Builder page follows. The literal after each comma is a
   last-resort fallback for when the theme CSS has not loaded.

   Type   : --fd / --fs (Heading Font)  ·  --fb (Body Font)
   Colour : accent family --coral / --coral-ink / --coral-btn,
            surfaces --ink / --cream / --sand / --line.

   CONTRAST IS THE SITE OWNER'S RESPONSIBILITY. The old fixed palette
   was AA-verified in place; because the palette is now editable, the
   Theme Options screen flags which fields carry small text and must
   reach 4.5:1. Re-check after any palette change.

   Scoped under .msvc so nothing leaks into Elementor pages.
   ================================================================ */
.msvc{
  /* ==========================================================
     Every token below inherits from Theme Options via the
     --svt-* custom properties emitted in wp_head.
     The value after the comma is a last-resort fallback only.
     Nothing here is a brand decision.
     ========================================================== */

  /* accent family */
  --coral:var(--svt-secondary,#B08661);
  --coral-ink:var(--svt-accent-text,#7A5A30);
  --coral-btn:var(--svt-cta,#B08661);
  --coral-dk:var(--svt-cta-hover,#997F54);
  --coral-text:var(--svt-cta-text,#1B1B1B);
  --nude:var(--svt-on-dark-accent,#CBB290);
  --peach:var(--svt-on-dark-accent,#CBB290);
  --blush:var(--svt-blush,#E6DDCB);

  /* surfaces & text */
  --ink:var(--svt-navy,#1B1B1B);
  --body:var(--svt-body-color,#4A4038);
  --muted:var(--svt-muted,#6B6055);
  --line:var(--svt-line,#E0D6C4);
  --cream:var(--svt-cream,#F5F1E7);
  --sand:var(--svt-sand,#E6DDCB);
  --white:#ffffff;
  --on-dark:var(--svt-on-dark,rgba(255,255,255,.80));
  --on-dark-2:var(--svt-on-dark-2,rgba(255,255,255,.64));

  /* legacy aliases kept alive for older markup */
  --charcoal:var(--ink);--dark:var(--svt-navy-light,#2A2A2A);
  --plum:var(--ink);--plum-2:var(--svt-navy-deep,#000);
  --mid:var(--body);--light:var(--cream);--border:var(--line);
  --border-lt:rgba(255,255,255,.16);
  --rose:var(--coral);--rose-dk:var(--coral-dk);
  --accent:var(--coral-ink);--accent-dk:var(--coral-dk);
  --gold-lt:var(--nude);--gold-dp:var(--coral-ink);

  /* type — driven by the Heading / Body font pickers */
  --fd:var(--svt-heading-font,Georgia,serif);
  --fs:var(--svt-heading-font,Georgia,serif);
  --fi:var(--svt-heading-font,Georgia,serif);
  --fb:var(--svt-body-font,system-ui,-apple-system,sans-serif);

  /* scale & metrics (not brand) */
  --t-label:.75rem;--t-xs:.8125rem;--t-sm:.9375rem;--t-body:1.0625rem;--t-h3:1.25rem;
  --pad:clamp(20px,5vw,72px);--gap:clamp(56px,7vw,104px);
  --max:1280px;--r:6px;--rl:16px;--rs:8px;
  --sh:0 24px 64px -30px rgba(20,18,20,.35);
  --sh-c:0 12px 40px color-mix(in srgb,var(--coral) 30%,transparent);
  color:var(--body);font-family:var(--fb);line-height:1.7;font-size:var(--t-body);
}
.msvc *{box-sizing:border-box}
.msvc img{display:block;max-width:100%;height:auto}
.msvc h1,.msvc h2{font-family:var(--fd);font-weight:400;color:var(--ink);line-height:1.1;letter-spacing:-.01em}
.msvc h3,.msvc h4{font-family:var(--fs);font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-.005em}
.msvc .ita{font-family:var(--fs);font-style:italic;font-weight:400;color:var(--coral-ink)}
.msvc .wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.msvc a:focus-visible,.msvc button:focus-visible,.msvc summary:focus-visible{outline:3px solid var(--coral-btn);outline-offset:3px}

.msvc .eyebrow{font-family:var(--fb);font-size:var(--t-label);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--coral-ink);display:inline-flex;align-items:center;gap:10px}
.msvc .eyebrow::before{content:'';width:28px;height:2px;background:currentColor;flex:none}
.msvc .eyebrow.c{justify-content:center}
.msvc .eyebrow.nude,.msvc .eyebrow.lt{color:var(--nude)}

.msvc .ph{background:#EFE7E1;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 18px,rgba(255,255,255,.55) 18px,rgba(255,255,255,.55) 19px);border:2px dashed rgba(140,90,78,.4);display:flex;align-items:center;justify-content:center;text-align:center;color:#6b5951;font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:12px}
.msvc .ph.dk{background:#1d1c1e;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 18px,rgba(255,255,255,.05) 18px,rgba(255,255,255,.05) 19px);border-color:color-mix(in srgb,var(--nude) 35%,transparent);color:var(--nude)}

/* ---------- BUTTONS (Glow spec) ---------- */
.msvc .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;font-family:var(--fb);font-size:var(--t-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:14px 30px;border-radius:var(--r);border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background .25s,color .25s,border-color .25s,transform .25s}
.msvc .btn.rose,.msvc .btn.primary{background:var(--coral-btn);color:var(--coral-text);border-color:var(--coral-btn);box-shadow:var(--sh-c)}
.msvc .btn.rose:hover,.msvc .btn.primary:hover{background:var(--coral-dk);border-color:var(--coral-dk);transform:translateY(-2px)}
.msvc .btn.out{background:transparent;border-color:var(--ink);color:var(--ink)}
.msvc .btn.out:hover{background:var(--blush);border-color:var(--ink)}
.msvc .btn.wh{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.msvc .btn.wh:hover{background:rgba(255,255,255,.14);border-color:#fff}
.msvc .btn.white{background:#fff;color:var(--coral-dk);border-color:#fff}
.msvc .btn.white:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.msvc .btn.sm{padding:11px 22px;min-height:44px;font-size:var(--t-label)}

/* ================= HERO — halo-laser-preview ================= */
.svt-hero{display:grid;grid-template-columns:1fr 1fr;min-height:92vh}
.svt-hero-img{position:relative;overflow:hidden;min-height:92vh}
.svt-hero-img img,.svt-hero-img .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.svt-badges{position:absolute;top:32px;left:32px;z-index:5;display:flex;flex-direction:column;gap:8px;max-width:84%}
.svt-badge{background:#fff;padding:10px 18px;border-radius:100px;font-size:var(--t-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;gap:8px;color:var(--ink);box-shadow:0 8px 32px rgba(0,0,0,.16)}
.svt-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--coral-btn);flex:none}
.svt-hero-txt{background:var(--ink);padding:clamp(56px,8vh,104px) clamp(32px,5vw,72px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.svt-hero-txt::before{content:'';position:absolute;top:-120px;right:-80px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--coral) 20%,transparent) 0%,transparent 70%);pointer-events:none}
.svt-hero-txt>*{position:relative;z-index:1}
.svt-hero-txt .eyebrow{color:var(--nude);margin-bottom:22px}
.svt-hero-txt h1{font-family:var(--fd);font-size:clamp(2.5rem,5vw,4.1rem);font-weight:400;color:#fff;line-height:1.08;margin-bottom:18px}
.svt-hero-txt h1 .ita{display:block;font-family:var(--fs);font-style:italic;font-size:.82em;color:var(--coral)}
.svt-hero-sub{font-size:var(--t-body);color:var(--on-dark);line-height:1.75;max-width:50ch;margin-bottom:22px}
.svt-special{display:inline-flex;align-items:center;gap:14px;background:color-mix(in srgb,var(--coral) 16%,transparent);border:1px solid color-mix(in srgb,var(--coral) 50%,transparent);border-radius:var(--r);padding:14px 20px;margin-bottom:30px;align-self:flex-start}
.svt-special .l{font-size:var(--t-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--nude)}
.svt-special .p{font-family:var(--fd);font-size:1.7rem;color:#fff;line-height:1.1}
.svt-special .s{font-size:var(--t-xs);color:var(--on-dark-2)}
.svt-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:38px}
.svt-hstats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);border-radius:var(--r);overflow:hidden}
.svt-hstat{padding:16px 12px;text-align:center;background:var(--ink)}
.svt-hstat .n{font-family:var(--fd);font-size:1.5rem;color:var(--coral);line-height:1.1}
.svt-hstat .k{font-size:var(--t-label);font-weight:500;letter-spacing:.05em;color:var(--on-dark-2);margin-top:5px;line-height:1.35}
.svt-cat-badge{display:inline-block;align-self:flex-start;background:color-mix(in srgb,var(--coral) 16%,transparent);border:1px solid color-mix(in srgb,var(--coral) 50%,transparent);color:var(--nude);font-family:var(--fb);font-size:var(--t-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:7px 16px;border-radius:100px;text-decoration:none;margin-bottom:18px;transition:.2s}
.svt-cat-badge:hover{background:var(--coral-btn);border-color:var(--coral-btn);color:#fff}
@media(max-width:960px){.svt-hero{grid-template-columns:1fr;min-height:0}.svt-hero-img{min-height:54vh;order:-1}}

/* ================= TRUST BAR — halo-carlsbad (icon + title + sub) ================= */
.svt-trust{width:100%;background:var(--white);border-bottom:1px solid var(--line);padding:28px var(--pad)}
.svt-trust .in{max-width:var(--max);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.svt-trust-i{display:flex;align-items:center;gap:11px}
.svt-trust-i .ic{width:38px;height:38px;border-radius:50%;background:color-mix(in srgb,var(--coral) 9%,transparent);display:grid;place-items:center;font-size:1rem;flex:none;color:var(--coral-ink)}
.svt-trust-i .t{font-size:var(--t-xs);font-weight:600;color:var(--ink);line-height:1.3}
.svt-trust-i .s{font-size:var(--t-label);color:var(--muted);line-height:1.4}
.svt-trust .sep{display:none}

/* ================= SECTION SCAFFOLD ================= */
.svt-sec{padding-block:var(--gap)}
.svt-sec.cream{background:var(--cream)}
.svt-sec.sand{background:var(--sand)}
.svt-sec.white{background:var(--white)}
.svt-sec.plum,.svt-sec.dark{background:var(--ink);color:var(--on-dark)}
.svt-sec.plum h2,.svt-sec.plum h3,.svt-sec.dark h2,.svt-sec.dark h3{color:#fff}
.svt-sec.plum p,.svt-sec.dark p{color:var(--on-dark)}
.svt-sec.plum .eyebrow,.svt-sec.dark .eyebrow{color:var(--nude)}
.svt-sec.plum .ita,.svt-sec.dark .ita{color:var(--coral)}
.svt-head{max-width:64ch;margin-bottom:44px}
.svt-head.center{margin-inline:auto;text-align:center}
.svt-head.center .eyebrow{justify-content:center}
.svt-head h2{margin-top:14px;font-size:clamp(1.9rem,3.6vw,2.9rem)}
.svt-head p{font-size:var(--t-sm);color:var(--body);line-height:1.8;margin-top:16px;max-width:60ch}
.svt-head.center p{margin-inline:auto}
.svt-sec.plum .svt-head p,.svt-sec.dark .svt-head p{color:var(--on-dark)}
.svt-prose p{margin-bottom:1.05em;line-height:1.85;font-size:var(--t-sm)}
.svt-prose p:last-child{margin:0}
.svt-prose strong{color:var(--ink);font-weight:600}
.svt-sec.plum .svt-prose p{color:var(--on-dark)}
.svt-sec.plum .svt-prose strong{color:#fff}

/* ---------- ABOUT / WHAT IS (halo-carlsbad) ---------- */
.svt-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:center}
.svt-two .ph{aspect-ratio:4/5;border-radius:var(--rl)}
@media(max-width:900px){.svt-two{grid-template-columns:1fr;gap:34px}}

/* ---------- AREAS / WHAT IT CORRECTS (halo-carlsbad · dark) ---------- */
.svt-ahead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;flex-wrap:wrap}
.svt-agrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.svt-area{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--rl);padding:26px 22px;transition:background .25s,border-color .25s,transform .25s}
.svt-area:hover{background:rgba(255,255,255,.1);border-color:var(--coral);transform:translateY(-4px)}
.svt-area h3{font-size:var(--t-h3);color:#fff;margin-bottom:6px}
.svt-area .m{font-size:var(--t-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--nude);margin:0 0 10px}
.svt-area p{font-size:var(--t-sm);color:var(--on-dark);line-height:1.7}
.svt-area .u{display:inline-block;margin-top:14px;background:color-mix(in srgb,var(--coral) 20%,transparent);border:1px solid color-mix(in srgb,var(--coral) 50%,transparent);border-radius:100px;padding:5px 13px;font-size:var(--t-label);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff}
.svt-area-ic{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:14px;border-radius:12px;background:color-mix(in srgb,var(--coral) 16%,transparent);color:var(--coral);transition:transform .3s,background .3s,color .3s}
.svt-area-ic.emoji{font-size:1.5rem;line-height:1}
.svt-area-ic.fa{font-size:1.3rem}
.svt-area-ic svg{width:58%;height:58%;stroke:currentColor;fill:none}
.svt-area-ic.img{background:transparent;width:100%;height:auto;overflow:hidden;padding:0}
.svt-area-ic.img img{width:100%;height:100%;object-fit:cover}
.svt-area:hover .svt-area-ic{transform:translateY(-2px) scale(1.06);background:var(--coral);color:#fff}
/* areas on light sections */
.svt-sec.cream .svt-area,.svt-sec.sand .svt-area,.svt-sec.white .svt-area{background:#fff;border-color:var(--line)}
.svt-sec.cream .svt-area h3,.svt-sec.sand .svt-area h3,.svt-sec.white .svt-area h3{color:var(--ink)}
.svt-sec.cream .svt-area p,.svt-sec.sand .svt-area p,.svt-sec.white .svt-area p{color:var(--body)}
.svt-sec.cream .svt-area .m,.svt-sec.sand .svt-area .m,.svt-sec.white .svt-area .m{color:var(--coral-ink)}
.svt-sec.cream .svt-area .u,.svt-sec.sand .svt-area .u,.svt-sec.white .svt-area .u{background:color-mix(in srgb,var(--coral-ink) 10%,transparent);border-color:color-mix(in srgb,var(--coral-ink) 30%,transparent);color:var(--coral-dk)}
@media(max-width:980px){.svt-ahead{flex-direction:column;align-items:flex-start}}
@media(max-width:520px){.svt-agrid{grid-template-columns:1fr}}

/* ---------- HOW IT WORKS / THE SCIENCE (halo-carlsbad · numbered cards) ---------- */
.svt-how{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.svt-howcard{background:var(--white);border-radius:var(--rl);padding:30px 26px;border:1px solid var(--line);position:relative;transition:transform .25s,box-shadow .25s}
.svt-howcard:hover{transform:translateY(-5px);box-shadow:var(--sh)}
.svt-howcard .n{position:absolute;top:-14px;left:26px;width:34px;height:34px;border-radius:50%;background:var(--coral-btn);color:#fff;display:grid;place-items:center;font-family:var(--fd);font-size:1rem;box-shadow:var(--sh-c)}
.svt-howcard .phase{font-size:var(--t-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-ink);margin:12px 0 8px}
.svt-howcard h3{font-size:var(--t-h3);margin-bottom:8px}
.svt-howcard p{font-size:var(--t-sm);color:var(--body);line-height:1.7}
@media(max-width:1000px){.svt-how{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svt-how{grid-template-columns:1fr}}

/* ---------- PROCESS / YOUR VISIT (halo-laser-preview · rule + number) ---------- */
.svt-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.svt-step{position:relative;padding-top:26px;background:none;border:0}
.svt-step::before{content:'';position:absolute;top:8px;left:0;right:0;height:1.5px;background:var(--line)}
.svt-step .num{position:static;width:auto;height:auto;border-radius:0;background:none;box-shadow:none;display:block;font-family:var(--fs);font-size:var(--t-sm);color:var(--coral-ink);font-weight:600;letter-spacing:.1em}
.svt-step .num::before{content:'';position:absolute;top:8px;left:0;width:34px;height:1.5px;background:var(--coral-btn)}
.svt-step h3{font-size:var(--t-h3);margin:12px 0 8px}
.svt-step p{font-size:var(--t-sm);color:var(--body);line-height:1.7}
.svt-step:hover{transform:none;box-shadow:none}
@media(max-width:900px){.svt-steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.svt-steps{grid-template-columns:1fr}}

/* ---------- RECOVERY / DAY BY DAY (halo-carlsbad · 4-across coral-edge cards) ---------- */
.svt-tl{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.svt-tl-i{background:var(--cream);border-radius:var(--rl);padding:26px 22px;border-left:3px solid var(--coral);transition:transform .25s,box-shadow .25s}
.svt-tl-i:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.svt-tl-i .dot{display:none}
.svt-tl-i .when{font-family:var(--fd);font-size:1.5rem;color:var(--coral-ink);line-height:1.1;margin-bottom:10px}
.svt-tl-i .what{font-size:var(--t-sm);color:var(--body);line-height:1.7}
.svt-tl-i .tag{display:inline-block;margin-top:12px;background:color-mix(in srgb,var(--coral-ink) 10%,transparent);color:var(--coral-dk);border-radius:100px;padding:4px 12px;font-size:var(--t-label);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.svt-sec.cream .svt-tl-i{background:#fff}
.svt-sec.plum .svt-tl-i,.svt-sec.dark .svt-tl-i{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-left:3px solid var(--coral)}
.svt-sec.plum .svt-tl-i .when,.svt-sec.dark .svt-tl-i .when{color:var(--coral)}
.svt-sec.plum .svt-tl-i .what,.svt-sec.dark .svt-tl-i .what{color:var(--on-dark)}
.svt-sec.plum .svt-tl-i .tag,.svt-sec.dark .svt-tl-i .tag{background:color-mix(in srgb,var(--coral) 20%,transparent);color:#fff}
.svt-tl-note{margin-top:22px;font-size:var(--t-sm);color:var(--muted);font-style:italic;text-align:center}
@media(max-width:1000px){.svt-tl{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svt-tl{grid-template-columns:1fr}}

/* ---------- PREP & AFTERCARE ---------- */
.svt-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.svt-col{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:32px 30px}
.svt-col h3{font-size:1.3rem;margin-bottom:6px}
.svt-col .sub{font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--coral-ink);font-weight:700;margin-bottom:18px}
.svt-checks{margin-top:16px;display:grid;gap:10px}
.svt-checks li{padding-left:30px;position:relative;color:var(--body);font-size:var(--t-sm);list-style:none;line-height:1.65}
.svt-checks li::before{content:'';position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--coral-ink) 10%,transparent)}
.svt-checks li::after{content:'';position:absolute;left:6px;top:10px;width:6px;height:4px;border-left:2px solid var(--coral-ink);border-bottom:2px solid var(--coral-ink);transform:rotate(-45deg)}
.svt-sec.plum .svt-checks li{color:var(--on-dark)}
.svt-sec.plum .svt-checks li::after{border-color:var(--coral)}
@media(max-width:820px){.svt-cols{grid-template-columns:1fr}}

/* ---------- PRICING (halo-laser-preview) ---------- */
.svt-pi{display:block;margin-bottom:0}
.svt-pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:40px 0 36px}
.svt-pcard{border:1px solid var(--line);border-radius:var(--rl);padding:26px;background:#fff;text-align:center}
.svt-pcard.feat,.svt-sec.cream .svt-pcard.feat,.svt-sec.sand .svt-pcard.feat{border-color:var(--coral);box-shadow:var(--sh);background:#fff}
.svt-pcard .b{font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--coral-ink);display:block}
.svt-pcard .l{font-family:var(--fs);font-size:1.15rem;font-weight:600;color:var(--ink);margin:10px 0 6px;letter-spacing:0;text-transform:none}
.svt-pcard .p{font-family:var(--fd);font-size:2rem;color:var(--ink);line-height:1.1}
.svt-pcard .u{font-size:var(--t-xs);color:var(--muted);margin-top:4px}
.svt-ptnote{font-size:var(--t-sm);color:var(--muted);font-style:italic;margin:0 0 14px}
.svt-ptable-wrap{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start}
.svt-ptable{background:#fff;border:1px solid var(--line);border-radius:var(--rl);overflow:hidden}
.svt-ptable table{width:100%;border-collapse:collapse}
.svt-ptable th{background:var(--ink);color:#fff;font-family:var(--fb);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:14px 18px;text-align:left}
.svt-ptable td{padding:14px 18px;border-top:1px solid var(--line);font-size:var(--t-sm);color:var(--body)}
.svt-ptable td:first-child{font-weight:600;color:var(--ink)}
.svt-ptable td.cost{color:var(--coral-ink);font-weight:600}
.svt-ptable caption{caption-side:bottom;text-align:left;font-size:var(--t-xs);color:var(--muted);padding:12px 4px 0;font-style:italic}
.svt-offerbox{background:var(--ink);color:#fff;border-radius:var(--rl);padding:34px 30px;text-align:center;position:relative;overflow:hidden}
.svt-offerbox::before{content:'';position:absolute;top:-60%;right:-30%;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--coral) 22%,transparent) 0%,transparent 70%);pointer-events:none}
.svt-offerbox>*{position:relative;z-index:1}
.svt-offerbox .eyebrow{color:var(--nude);justify-content:center}
.svt-offerbox .p{font-family:var(--fd);font-size:2.4rem;color:#fff;margin-top:10px;line-height:1}
.svt-offerbox .s{font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--nude);font-weight:600;margin-top:6px}
.svt-offerbox .hr{border:0;border-top:1px solid rgba(255,255,255,.15);margin:20px 0;height:0;width:100%;background:none}
.svt-offerbox p{font-size:var(--t-sm);color:var(--on-dark);margin-bottom:20px}
@media(max-width:900px){.svt-ptable-wrap{grid-template-columns:1fr}.svt-pcards{grid-template-columns:1fr}}
@media(max-width:760px){.svt-ptable{overflow-x:auto}.svt-ptable table{min-width:520px}}

/* ---------- OFFER BAND ---------- */
.svt-offerband{background:var(--coral-btn);padding-block:76px;position:relative;overflow:hidden;color:#fff;text-align:center}
.svt-offerband::before{content:'';position:absolute;top:-60%;right:-10%;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.svt-offerband>*{position:relative;z-index:1}
.svt-offerband .eyebrow{color:#fff;justify-content:center}
.svt-offerband h2{color:#fff}
.svt-offerband .ita{color:#fff}
.svt-offerband .big{font-family:var(--fd);font-size:clamp(3.2rem,8vw,5rem);color:#fff;line-height:1;margin:12px 0}
.svt-offerband p{max-width:52ch;margin:0 auto 24px;color:rgba(255,255,255,.92);font-size:var(--t-sm)}
.svt-offerband .btn.rose{background:#fff;color:var(--coral-dk);border-color:#fff;box-shadow:none}
.svt-offerband .btn.rose:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ---------- DETAIL BLOCKS ---------- */
.svt-detail{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:center}
.svt-detail+.svt-detail{margin-top:var(--gap)}
.svt-detail.rev .tx{order:2}
.svt-detail .ph{aspect-ratio:4/3;border-radius:var(--rl)}
.svt-detail .ph img{width:100%;height:100%;object-fit:cover;border-radius:var(--rl)}
@media(max-width:900px){.svt-detail{grid-template-columns:1fr;gap:30px}.svt-detail.rev .tx{order:0}}

/* ---------- BEFORE / AFTER (halo-carlsbad · single composite) ---------- */
.svt-ba{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svt-baf{position:relative;margin:0;border-radius:var(--rl);overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.svt-baf:hover{transform:translateY(-5px);box-shadow:var(--sh)}
.svt-baf img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}
.svt-batag{position:absolute;top:12px;left:12px;z-index:2;font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#fff;background:var(--coral-btn);padding:5px 11px;border-radius:100px}
.svt-bacap{padding:16px 20px;font-size:var(--t-xs);color:var(--body);line-height:1.6;background:#fff}
.svt-banote{font-size:var(--t-xs);font-style:italic;color:var(--muted);margin-top:18px;text-align:center}
.svt-ba-all{text-align:center;margin-top:28px}
.svt-ba-all a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--coral-ink);border-bottom:1px solid var(--coral);padding-bottom:4px;text-decoration:none}
.svt-ba-all a:hover{color:var(--coral-dk)}
.svt-sec.plum .svt-baf{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.svt-sec.plum .svt-bacap{background:rgba(255,255,255,.06);color:var(--on-dark)}
.svt-sec.plum .svt-banote{color:var(--on-dark-2)}
.svt-sec.plum .svt-ba-all a{color:var(--nude)}
@media(max-width:900px){.svt-ba{grid-template-columns:1fr}}

/* ---------- WHY + PROVIDER (halo-laser-preview) ---------- */

/* ---------- COMPARISON (halo-laser-preview) ---------- */

/* ---------- FAQ (halo-laser-preview · native details/summary) ---------- */
.svt-faq{max-width:820px;margin:44px auto 0}
.svt-faqi{border-bottom:1px solid var(--line)}
.svt-faqq{list-style:none;cursor:pointer;padding:22px 0;min-height:48px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-family:var(--fs);font-weight:600;font-size:var(--t-h3);color:var(--ink);background:none;border:0;width:100%;text-align:left}
.svt-faqq::-webkit-details-marker{display:none}
.svt-faqic{color:var(--coral-ink);font-size:1.5rem;font-family:var(--fb);transition:transform .25s;flex:none;line-height:1}
.svt-faqi[open] .svt-faqic{transform:rotate(45deg)}
.svt-faqa{padding:0 0 22px;color:var(--body);font-size:var(--t-sm);max-width:66ch;line-height:1.8}
.svt-faqa p{margin:0;color:var(--body);font-size:var(--t-sm);line-height:1.8}

/* ---------- REVIEWS (halo-laser-preview · white cards) ---------- */
.svt-revs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.svt-rev{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:28px;transition:transform .25s,box-shadow .25s}
.svt-rev:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.svt-rev .st{color:var(--coral);letter-spacing:2px;margin-bottom:14px;font-size:var(--t-sm)}
.svt-rev p{font-size:var(--t-sm);color:var(--body);font-style:italic;margin-bottom:18px;line-height:1.8}
.svt-rev .who{font-size:var(--t-xs);font-weight:600;color:var(--ink)}
.svt-rev .src{font-size:var(--t-label);color:var(--muted);margin-top:2px}
.svt-sec.plum .svt-rev{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.svt-sec.plum .svt-rev p{color:var(--on-dark)}
.svt-sec.plum .svt-rev .who{color:#fff}
.svt-sec.plum .svt-rev .src{color:var(--nude)}
@media(max-width:900px){.svt-revs{grid-template-columns:1fr}}

/* ---------- FINAL CTA (halo-carlsbad · coral) ---------- */
/* ---------- RELATED (halo-carlsbad) ---------- */
.svt-rel{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.svt-relc{border:1px solid var(--line);border-radius:var(--rl);overflow:hidden;background:#fff;transition:transform .25s,box-shadow .25s;text-decoration:none;color:var(--ink);display:block}
.svt-relc:hover{transform:translateY(-5px);box-shadow:var(--sh)}
.svt-relc .ph,.svt-relc .thumb{aspect-ratio:4/3;border:0;border-radius:0}
.svt-relc .thumb img{width:100%;height:100%;object-fit:cover}
.svt-relc .bd{padding:20px}
.svt-relc h3{font-size:1.05rem;margin-bottom:6px}
.svt-relc p{font-size:var(--t-xs);color:var(--muted);line-height:1.6}
.svt-relc .link{font-size:var(--t-label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--coral-ink);margin-top:12px;display:inline-block}
.svt-relc:hover h3{color:var(--coral-ink)}
@media(max-width:1000px){.svt-rel{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.svt-rel{grid-template-columns:1fr}}

/* Motion is handled by assets/service-motion.css. */

/* screen-reader-only helper (star ratings, table captions) */
.msvc .svt-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Emitted by hero-, offer-, feature- and why-layouts.php. The theme never defined it,
   so it relied on WP's wp-block-library sheet being present. Declared here instead. */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}

/* ================================================================
   2.48.0 — inline links inside authored copy.
   The global reset sets a{color:inherit;text-decoration:none}, which leaves
   author-written links (financing, privacy policy, in-copy cross links) with
   no affordance: same colour as body text, no underline.

   Every structural anchor the theme emits — cards, nav chips, tel: links,
   buttons — now carries a class, so :not([class]) isolates exactly the links
   typed into rich-text fields, wherever they appear on the page.

   --coral-dk (var(--coral-dk)) rather than --coral-ink because it is the only coral
   variant that also clears AA on the blush ground:
   7.01 white · 6.53 cream · 6.10 sand · 5.50 blush.
   GROUND RULE: .t-ink remaps to --nude (8.56 on ink).
   ================================================================ */
.msvc a:not([class]){
  color:var(--coral-dk);
  text-decoration:underline;
  text-underline-offset:.18em;
  text-decoration-thickness:.07em;
}
.msvc a:not([class]):hover{
  color:var(--coral);
  text-decoration-thickness:.14em;
}
.msvc a:not([class]):focus-visible{
  outline:2px solid var(--coral-dk);
  outline-offset:2px;
  border-radius:2px;
}
/* Dark grounds: the coral variants fail on ink, so use the documented accent. */
.msvc .t-ink a:not([class]),
.msvc.t-ink a:not([class]){ color:var(--nude); }
.msvc .t-ink a:not([class]):hover,
.msvc.t-ink a:not([class]):hover{ color:var(--peach); }
.msvc .t-ink a:not([class]):focus-visible,
.msvc.t-ink a:not([class]):focus-visible{ outline-color:var(--nude); }
