/* Southblooms Digital — site layer (generated; source: planning/build-tools/gen_sitecss.py).
   Only what Elementor cannot express cleanly: decorative flares/sparkles and
   overlays (pseudo-elements, no extra DOM), icon masks, and the map facade.
   Hooks onto Elementor global classes (rendered with their label as class).
   Values mirror design-previews/_src/system.css (approved v5). */

/* Headings: Fraunces optical size as in the approved previews */
.sb-h1, .sb-h2, .sb-h3, .sb-serif { font-variation-settings: "opsz" 72; }
h1 em, h2 em { font-style: italic; font-weight: 400; color: #B4236A; }

/* ---------- Icons (mask = currentColor) ---------- */
.sb-ico-phone::before, .sb-i::before, .sb-social::before { content: ""; flex: none; background-color: currentColor; -webkit-mask: var(--sb-icon) center / contain no-repeat; mask: var(--sb-icon) center / contain no-repeat; }
.sb-ico-phone { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2%22/%3E%3C/svg%3E"); }
.sb-ico-phone::before { width: 18px; height: 18px; }
.sb-btn-sm.sb-ico-phone::before { width: 16px; height: 16px; }
.sb-i-phone { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2%22/%3E%3C/svg%3E"); }
.sb-i-arrow { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E"); }
.sb-i-kit { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%227%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22M9 7V4.5h6V7M12 10.5v6M9 13.5h6%22/%3E%3C/svg%3E"); }
.sb-i-restorative { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M12 7.5v5M9.5 10h5%22/%3E%3C/svg%3E"); }
.sb-i-cosmetic { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M2.5 12c3-4.5 6-4.5 9.5-2.2 3.5-2.3 6.5-2.3 9.5 2.2-3 4-6 6-9.5 6s-6.5-2-9.5-6z%22/%3E%3Cpath d=%22M2.5 12h19%22/%3E%3C/svg%3E"); }
.sb-i-crown { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M5 9h14%22/%3E%3C/svg%3E"); }
.sb-i-root { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M10 9l.6 8M14 9l-.6 8%22/%3E%3C/svg%3E"); }
.sb-i-inlay { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Crect x=%229.5%22 y=%226.5%22 width=%225%22 height=%223.5%22 rx=%221%22/%3E%3C/svg%3E"); }
.sb-i-implant { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 3.5h12M8 3.5l1 4h6l1-4M9 11h6M9.5 14h5M10 17h4M11.5 20.5h1%22/%3E%3C/svg%3E"); }
.sb-i-denture { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3.5 8c0 6.5 3.8 11 8.5 11s8.5-4.5 8.5-11%22/%3E%3Cpath d=%22M3.5 8h17M8 8v3.5M12 8v4.5M16 8v3.5%22/%3E%3C/svg%3E"); }
.sb-i-extract { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 6c-1.6 0-2.5 1.2-2.5 2.8 0 2.3.9 3.8 1.4 6.4.3 1.4.6 2.8 1.5 2.8s1-1.6 1.3-3c.2-1 .7-1.4 1.8-1.4s1.6.4 1.8 1.4c.3 1.4.5 3 1.3 3s1.2-1.4 1.5-2.8c.5-2.6 1.4-4.1 1.4-6.4C14 7.2 13.1 6 11.5 6c-1.3 0-2.1.6-3.2.6S6.3 6 5 6z%22/%3E%3Cpath d=%22M19 15V4M16 7l3-3 3 3%22/%3E%3C/svg%3E"); }
.sb-i-pin { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 21s-7-6.2-7-11.5A7 7 0 0119 9.5C19 14.8 12 21 12 21z%22/%3E%3Ccircle cx=%2212%22 cy=%229.5%22 r=%222.5%22/%3E%3C/svg%3E"); }
.sb-i-calendar { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%225%22 width=%2216%22 height=%2215%22 rx=%222%22/%3E%3Cpath d=%22M4 10h16M9 3v4M15 3v4%22/%3E%3C/svg%3E"); }
.sb-i-sms { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5h16v11H9l-5 4z%22/%3E%3Cpath d=%22M8 10h8%22/%3E%3C/svg%3E"); }
.sb-i-mail { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2214%22 rx=%222%22/%3E%3Cpath d=%22M3.5 6.5l8.5 6.5 8.5-6.5%22/%3E%3C/svg%3E"); }
.sb-i-car { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 16v2.5M19 16v2.5M3.5 16h17v-4l-2-5.5h-13l-2 5.5z%22/%3E%3Cpath d=%22M3.5 12h17%22/%3E%3Ccircle cx=%227.5%22 cy=%2214%22 r=%22.6%22/%3E%3Ccircle cx=%2216.5%22 cy=%2214%22 r=%22.6%22/%3E%3C/svg%3E"); }
.sb-i-heart { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 20s-7.5-4.6-7.5-10.2A4.3 4.3 0 0112 7.3a4.3 4.3 0 017.5 2.5C19.5 15.4 12 20 12 20z%22/%3E%3C/svg%3E"); }
.sb-i-users { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%223.2%22/%3E%3Cpath d=%22M3 19.5c.6-3.4 3-5.3 6-5.3s5.4 1.9 6 5.3%22/%3E%3Cpath d=%22M15.5 4.9a3.2 3.2 0 010 6.2M17.5 14.5c1.9.7 3.1 2.4 3.5 5%22/%3E%3C/svg%3E"); }
.sb-i-receipt { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 3h12v18l-3-2-3 2-3-2-3 2z%22/%3E%3Cpath d=%22M9 8h6M9 12h6M9 16h3%22/%3E%3C/svg%3E"); }
.sb-i-clock { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%228.5%22/%3E%3Cpath d=%22M12 7.5V12l3 2%22/%3E%3C/svg%3E"); }
.sb-i-family { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%228%22 cy=%226.5%22 r=%222.6%22/%3E%3Ccircle cx=%2217%22 cy=%2210%22 r=%222%22/%3E%3Cpath d=%22M3.5 20v-2a4.5 4.5 0 019 0v2M13.5 20v-1.2a3.5 3.5 0 017 0V20%22/%3E%3C/svg%3E"); }
.sb-i-monitor { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%224%22 width=%2218%22 height=%2212%22 rx=%222%22/%3E%3Cpath d=%22M8 20h8M12 16v4M7 8h4M7 11h6%22/%3E%3C/svg%3E"); }
.sb-i-tools { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7.5 3.5C5.2 3.5 4 5.3 4 7.6c0 2.6 1 4.4 1.6 7.2.5 2.3.9 5.7 2.4 5.7 1.3 0 1.6-2.5 2-4.6.3-1.4.8-2.1 2-2.1s1.7.7 2 2.1c.4 2.1.7 4.6 2 4.6 1.5 0 1.9-3.4 2.4-5.7.6-2.8 1.6-4.6 1.6-7.2 0-2.3-1.2-4.1-3.5-4.1-1.8 0-2.7 1-4.5 1s-2.7-1-4.5-1z%22/%3E%3C/svg%3E"); }
.sb-i-card { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%226%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22M3 10h18M7 15h4%22/%3E%3C/svg%3E"); }
.sb-i-cash { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%227%22 width=%2218%22 height=%2210%22 rx=%222%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%222.5%22/%3E%3C/svg%3E"); }
.sb-i-shield { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z%22/%3E%3Cpath d=%22M8.5 12l2.5 2.5 4.5-5%22/%3E%3C/svg%3E"); }
.sb-i-tooth-check { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M9.5 10l2 2 3.5-3.5%22/%3E%3C/svg%3E"); }
.sb-i-tooth-plus { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M12 7.5v5M9.5 10h5%22/%3E%3C/svg%3E"); }
.sb-i-tooth-spark { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M20.5 1.5v3M19 3h3%22/%3E%3C/svg%3E"); }
.sb-i-baby { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2213%22 r=%227.5%22/%3E%3Cpath d=%22M9.5 12h.01M14.5 12h.01M9.5 15.5c1.4 1 3.6 1 5 0M12 5.5c0-1.6 1-2.5 2.3-2.5%22/%3E%3C/svg%3E"); }
.sb-i-instagram { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223.5%22 y=%223.5%22 width=%2217%22 height=%2217%22 rx=%225%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224%22/%3E%3Ccircle cx=%2217.3%22 cy=%226.7%22 r=%22.6%22/%3E%3C/svg%3E"); }
.sb-i { position: relative; flex: none; }
.sb-i::before { position: absolute; inset: 0; margin: auto; width: 22px; height: 22px; }
.sb-i-lg::before { width: 24px; height: 24px; }

/* Arrow chip on buttons */
.sb-ico-arrow::after { content: ""; flex: none; width: 30px; height: 30px; margin-right: -14px; border-radius: 50%; background: rgba(255,255,255,.18) url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23FFFFFF%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / 16px no-repeat; }
.sb-btn-sm.sb-ico-arrow::after { width: 26px; height: 26px; margin-right: -10px; }
.sb-btn-secondary.sb-ico-arrow::after { background-color: #D3F1EE; background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%231E2B2F%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E"); }
.sb-btn-secondary.sb-ico-arrow:hover::after { background-color: rgba(255,255,255,.18); background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23FFFFFF%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E"); }
.sb-btn-light.sb-ico-arrow::after { background-color: #F9E4EE; background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%238F1A54%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E"); }
.sb-link::after { content: " \2192"; }

/* Round arrow "go" chip on cards */
.sb-go { display: block; position: absolute; right: 22px; bottom: 24px; width: 40px; height: 40px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23B4236A%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / 18px no-repeat; pointer-events: none; }
.sb-mini .sb-go { right: 16px; top: 50%; bottom: auto; transform: translateY(-50%); width: 32px; height: 32px; background-color: #F4F8F7; }

/* Final CTA action rows: arrow chip */
.sb-arrow-chip { background: rgba(255,255,255,.14) url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23FFFFFF%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / 16px no-repeat; }
.sb-act-pri .sb-arrow-chip { background-color: #B4236A; }

/* Service rows without a page yet (Q4): not links, so no hover state */
div.sb-mini:hover { border-color: #DCE6E3; }

/* FAQ accordion: +/– indicator, as in the approved design */
.sb-faq-q::-webkit-details-marker { display: none; }
.sb-faq-q::after { content: "+"; flex: none; font: 400 28px/0.8 Figtree, sans-serif; color: #B4236A; }
details[open] > .sb-faq-q::after { content: "\2013"; }

/* Tick list */
.sb-tick { position: relative; padding-left: 34px !important; }
.sb-tick::before { content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: #D3F1EE url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22 fill=%22none%22 stroke=%22%231E2B2F%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 10.5l2.5 2.5L14 7.5%22/%3E%3C/svg%3E") center / 20px no-repeat; }

/* Photo card gradient (image sits behind the copy) */
.sb-card-photo { isolation: isolate; }
.sb-card-photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20,30,33,0) 35%, rgba(20,30,33,.88) 100%); pointer-events: none; }

/* ---------- Flares + sparkles ---------- */
.sb-hero, .sb-welcome, .sb-emerg, .sb-why-card, .sb-band, .sb-team, .sb-crew, .sb-final { position: relative; isolation: isolate; overflow: hidden; }
.sb-hero::before, .sb-welcome::before, .sb-band::before, .sb-team::before, .sb-crew::before, .sb-final::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-repeat: no-repeat; }

/* Hero: video, overlay strongest behind the copy, pink + mint blooms, 3 sparks */
.sb-hero .e-background-video__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.sb-hero::before { z-index: 1;
  background-image: radial-gradient(circle 396px at 100px 60px, rgba(245,126,182,.42) 0%, rgba(245,126,182,.12) 40%, transparent 70%),
    radial-gradient(circle 339px at calc(82% - 240px) calc(100% + 20px), rgba(211,241,238,.30) 0%, rgba(211,241,238,.08) 45%, transparent 70%),
    linear-gradient(90deg, rgba(18,27,30,.94) 0%, rgba(18,27,30,.82) 38%, rgba(18,27,30,.35) 72%, rgba(18,27,30,.15) 100%); }
.sb-hero { --sb-sparkle-z: 1; }
.sb-hero .e-background-video__content { position: relative; z-index: 2; }
.sb-hero h1 em { font-style: italic; font-weight: 400; color: #F57EB6; }
@media (max-width: 767px) {
  .sb-hero::before { background-image: radial-gradient(circle 255px at 100px 60px, rgba(245,126,182,.42) 0%, rgba(245,126,182,.12) 40%, transparent 70%),
    linear-gradient(180deg, rgba(18,27,30,.25) 0%, rgba(18,27,30,.75) 45%, rgba(18,27,30,.94) 100%); }
}

/* Welcome (light): soft pink bloom top-right + pink spark */
.sb-welcome::before { z-index: -1; background-image: radial-gradient(circle 396px at calc(100% - 60px) 120px, rgba(245,126,182,.23) 0%, rgba(245,126,182,.066) 40%, transparent 70%); }
.sb-welcome { --sb-sparkle-z: -1; --sb-sparkle-pos: right 8% top 70px; }

/* Emergency card + Why booking card: white spark */
.sb-emerg { --sb-sparkle-pos: right 26px top 28px; }
.sb-why-card { --sb-sparkle-pos: right 18px bottom 18px; }
.sb-emerg > *, .sb-why-card > * { position: relative; z-index: 1; }

/* Image band (QIP): overlay + pink bloom + spark (photo = section background image) */
.sb-band::before { z-index: -2; background-image: radial-gradient(circle 396px at 100px 60px, rgba(245,126,182,.42) 0%, rgba(245,126,182,.12) 40%, transparent 70%),
    linear-gradient(90deg, rgba(18,27,30,.90) 0%, rgba(18,27,30,.80) 55%, rgba(18,27,30,.62) 100%); }
.sb-band { --sb-sparkle-z: -1; --sb-sparkle-pos: right 8% top 18%; }

/* Team (light): bloom bottom-left */
.sb-team::before { z-index: -1; background-image: radial-gradient(circle 396px at 40px calc(100% - 20px), rgba(245,126,182,.23) 0%, rgba(245,126,182,.066) 40%, transparent 70%); }

/* Whole-team card (berry): white bloom + spark */
.sb-crew::before { z-index: -1; background-image: radial-gradient(circle 396px at calc(100% - 80px) 60px, rgba(255,255,255,.154) 0%, rgba(255,255,255,.044) 45%, transparent 70%); }
.sb-crew { --sb-sparkle-z: -1; --sb-sparkle-pos: right 34px top 34px; }

/* Final CTA panel (berry): white + mint blooms, ring, 3 white sparks */
.sb-final::before { z-index: -1;
  background-image: radial-gradient(circle 240px at calc(100% - 80px) 40px, transparent 175px, rgba(255,255,255,.07) 176px, rgba(255,255,255,.07) 239px, transparent 240px),
    radial-gradient(circle 396px at calc(90% - 280px) calc(100% + 20px), rgba(255,255,255,.22) 0%, rgba(255,255,255,.06) 45%, transparent 70%),
    radial-gradient(circle 339px at 40px -20px, rgba(211,241,238,.30) 0%, rgba(211,241,238,.08) 45%, transparent 70%); }
.sb-final { --sb-sparkle-z: -1; }
.sb-final.sb-sparkle-trio { --sb-sparkle-pos: left 47% top 18%, left 8% bottom 16%, right 6% top 14%; }

/* ---------- Sparkle utilities: glowing four-point stars, pure CSS ----------
   No extra elements: the star is the element's ::after (absolute, inset 0,
   pointer-events none). ::before stays free for blooms/overlays.
   .sb-sparkle          one star (18px, top-right, 28px inset)  ← required base
   .sb-sparkle-trio     three stars (26 / 16 / 18px); collapses to one on mobile
   tone   .sb-sparkle-pink (light backgrounds) · .sb-sparkle-white (berry/colour)
          default = pale pink-white (dark/photo backgrounds)
   size   .sb-sparkle-lg (26px single star)
   place  .sb-sparkle-tl · -tr · -bl · -br (28px inset corners)
   Fine-tune per element: --sb-sparkle-pos, --sb-sparkle-size, --sb-sparkle-z. */
.sb-sparkle { position: relative; isolation: isolate; --sb-spark: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23FFE3F0%22%3E%3Cpath d=%22M12 0c.6 6.6 5.4 11.4 12 12-6.6.6-11.4 5.4-12 12-.6-6.6-5.4-11.4-12-12C6.6 11.4 11.4 6.6 12 0z%22/%3E%3C/svg%3E");
  --sb-glow: drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(0 0 8px rgba(245,126,182,.95)) drop-shadow(0 0 22px rgba(245,126,182,.6)); }
.sb-sparkle::after { content: ""; position: absolute; inset: 0; z-index: var(--sb-sparkle-z, 0); pointer-events: none;
  background-image: var(--sb-sparkle-img, var(--sb-spark)); background-repeat: no-repeat;
  background-size: var(--sb-sparkle-size, 18px); background-position: var(--sb-sparkle-pos, right 28px top 28px);
  filter: var(--sb-glow); animation: sb-twinkle 3.6s ease-in-out infinite; }
.sb-sparkle-pink { --sb-spark: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23F57EB6%22%3E%3Cpath d=%22M12 0c.6 6.6 5.4 11.4 12 12-6.6.6-11.4 5.4-12 12-.6-6.6-5.4-11.4-12-12C6.6 11.4 11.4 6.6 12 0z%22/%3E%3C/svg%3E");
  --sb-glow: drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 0 7px rgba(245,126,182,.75)) drop-shadow(0 0 16px rgba(245,126,182,.45)); }
.sb-sparkle-white { --sb-spark: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23FFFFFF%22%3E%3Cpath d=%22M12 0c.6 6.6 5.4 11.4 12 12-6.6.6-11.4 5.4-12 12-.6-6.6-5.4-11.4-12-12C6.6 11.4 11.4 6.6 12 0z%22/%3E%3C/svg%3E");
  --sb-glow: drop-shadow(0 0 2px #fff) drop-shadow(0 0 8px rgba(255,255,255,.9)) drop-shadow(0 0 20px rgba(255,255,255,.55)); }
.sb-sparkle-lg { --sb-sparkle-size: 26px; }
.sb-sparkle-trio { --sb-sparkle-img: var(--sb-spark), var(--sb-spark), var(--sb-spark); --sb-sparkle-size: 26px, 16px, 18px;
  --sb-sparkle-pos: left 54% top 26%, left 8% bottom 16%, right 6% top 14%; }
.sb-sparkle-tl { --sb-sparkle-pos: left 28px top 28px; }
.sb-sparkle-tr { --sb-sparkle-pos: right 28px top 28px; }
.sb-sparkle-bl { --sb-sparkle-pos: left 28px bottom 28px; }
.sb-sparkle-br { --sb-sparkle-pos: right 28px bottom 28px; }
@keyframes sb-twinkle { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .sb-sparkle::after { animation: none; } }
@media (max-width: 767px) {
  .sb-sparkle-trio { --sb-sparkle-img: var(--sb-spark); --sb-sparkle-size: 18px; --sb-sparkle-pos: right 6% top 14%; }
}

@media (max-width: 767px) {
  .sb-final.sb-sparkle-trio { --sb-sparkle-pos: right 6% top 3%; }
  /* Button pairs go full width on mobile (approved mobile preview) */
  .sb-btns > .sb-btn { flex: 1 1 100%; }
}
/* Hero: keep the button pair side by side down to 601px; stack only at 600px and below */
@media (min-width: 601px) and (max-width: 767px) { .sb-hero .sb-btns > .sb-btn { flex: 0 0 auto; } }
/* Homepage services "Not sure where to start?" row (element 4760a60): text then buttons on one line on wide screens;
   <=1200px the buttons drop below the text and stay side by side; they stack full width only at 600px and below */
@media (max-width: 1200px) { .elementor .elementor-element-4760a60 { flex-direction: column; align-items: flex-start; } }
@media (min-width: 601px) and (max-width: 1200px) { .elementor .elementor-element-4760a60 .sb-btns > .sb-btn { flex: 0 0 auto; } }
@media (max-width: 600px) { .elementor .elementor-element-4760a60, .elementor .elementor-element-4760a60 .sb-btns { align-items: stretch; align-self: stretch; } }

/* ---------- Avatars ---------- */
img.sb-av { display: block; flex: none; box-sizing: border-box; width: 62px; height: 62px; border-radius: 50%; object-fit: cover; object-position: center 38%; border: 3px solid #B4236A; margin-left: -14px; background: #fff; }
img.sb-av:first-child { margin-left: 0; }
@media (max-width: 767px) { img.sb-av { width: 52px; height: 52px; } }
/* <=1200px: the overlapping avatar row wraps instead of overflowing its card. Every avatar (incl. the first)
   overlaps by 14px and the row is padded 14px, so each wrapped line stays flush left with the same overlap. */
@media (max-width: 1200px) {
  .e-flexbox-base:has(> img.sb-av) { flex-wrap: wrap; row-gap: 8px; padding-left: 14px; }
  .e-flexbox-base:has(> img.sb-av) > img.sb-av { margin-left: -14px; }
}

/* ---------- Social icon buttons ---------- */
.sb-social { position: relative; color: #fff; }
.sb-social::before { position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; }
.sb-social-fb { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000%22%3E%3Cpath d=%22M13.5 21v-7.5h2.6l.4-3h-3V8.6c0-.9.3-1.5 1.5-1.5h1.6V4.4c-.3 0-1.2-.1-2.3-.1-2.3 0-3.9 1.4-3.9 4v2.2H7.8v3h2.6V21z%22/%3E%3C/svg%3E"); }
.sb-social-ig { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223.5%22 y=%223.5%22 width=%2217%22 height=%2217%22 rx=%225%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224%22/%3E%3Ccircle cx=%2217.3%22 cy=%226.7%22 r=%22.6%22/%3E%3C/svg%3E"); }

/* ---------- Header navigation (Elementor Pro Nav Menu widget) ---------- */
.sb-header .elementor-widget-nav-menu { margin-left: auto; }
.sb-header .elementor-nav-menu--main .elementor-nav-menu { gap: 30px; }
/* Pro's a:hover/:focus/.highlighted rule (0,3,1) re-adds 13px 20px padding — lock every state so items never shift */
.sb-header .elementor-nav-menu--main .elementor-item,
.sb-header .elementor-nav-menu--main .elementor-item:hover,
.sb-header .elementor-nav-menu--main .elementor-item:focus,
.sb-header .elementor-nav-menu--main .elementor-item.highlighted { padding: 8px 0; font: 500 16px/1 Figtree, sans-serif; color: #1E2B2F; }
.sb-header .elementor-nav-menu--main .elementor-item:hover,
.sb-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #B4236A; }
.sb-header .elementor-nav-menu--main .sub-arrow { font-size: 11px; color: #5E6B70; padding-left: 6px; }
.sb-header .elementor-nav-menu--main .sub-menu { min-width: 240px !important; padding: 10px 0; background: #fff; border: 1px solid #DCE6E3; border-radius: 14px; box-shadow: 0 8px 28px rgba(30,43,47,.08); }
.sb-header .elementor-nav-menu--main .sub-menu .elementor-sub-item { padding: 10px 20px; font: 500 15px/1.3 Figtree, sans-serif; color: #1E2B2F; background: none; }
.sb-header .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover { color: #B4236A; background: #FDF0F6; }
.sb-header .elementor-menu-toggle { width: 44px; height: 44px; border: 1px solid #DCE6E3; border-radius: 8px; background: #fff; color: #1E2B2F; }
.sb-header .elementor-nav-menu--dropdown { background: #fff; border-top: 1px solid #DCE6E3; }
.sb-header .elementor-nav-menu--dropdown .elementor-item, .sb-header .elementor-nav-menu--dropdown .elementor-sub-item { font: 500 16px/1.3 Figtree, sans-serif; color: #1E2B2F; padding: 14px 24px; }
.sb-header .elementor-nav-menu--dropdown a:hover { background: #FDF0F6; color: #B4236A; }
/* 1025-1200px: logo + menu + both header buttons must fit on one line (the buttons were wrapping onto two lines) */
@media (min-width: 1025px) and (max-width: 1200px) {
  .sb-header .e-flexbox-base:has(> .elementor-widget-nav-menu) { gap: 24px; }
  .sb-header .elementor-nav-menu--main .elementor-nav-menu { gap: 22px; }
  .sb-header .sb-btns { flex-wrap: nowrap; }
}
/* Mobile/tablet menu (hamburger shows at <=1024px): the dropdown is taken out of the widget's flex column so the
   toggle centres in the bar, and it opens full width directly below the header instead of growing over the logo. */
@media (max-width: 1024px) {
  .sb-header .elementor-widget-nav-menu { position: static; align-self: center; gap: 0; }
  .sb-header .elementor-nav-menu--dropdown.elementor-nav-menu__container { position: absolute; top: 100%; left: 0; right: 0; width: auto !important; margin: 0; z-index: 60; box-shadow: 0 12px 24px rgba(30,43,47,.08); }
  .sb-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { max-height: calc(100vh - 72px); overflow-y: auto; }
}

/* ---------- Footer ---------- */
.sb-footer a { color: inherit; text-decoration: none; }
.sb-footer a:hover { color: #fff; }

/* ---------- Map facade: iframe injected by site.js when near the viewport ---------- */
.sb-map { position: relative; overflow: hidden; }
.sb-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Google reviews (slots filled by inc/reviews.php shortcodes; same markup placeholder or live) ---------- */
.sb-rv-top::after { content: ""; flex: none; width: 20px; height: 20px; margin-left: auto; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20fill%3D%22%23EA4335%22%20d%3D%22M24%209.5c3.5%200%206.6%201.2%209%203.5l6.7-6.7C35.6%202.4%2030.2%200%2024%200%2014.6%200%206.6%205.4%202.7%2013.3l7.8%206C12.4%2013.6%2017.7%209.5%2024%209.5z%22/%3E%3Cpath%20fill%3D%22%234285F4%22%20d%3D%22M46.5%2024.5c0-1.6-.1-3.1-.4-4.5H24v9h12.7c-.6%203-2.3%205.5-4.8%207.2l7.5%205.8c4.4-4%207.1-10%207.1-17.5z%22/%3E%3Cpath%20fill%3D%22%23FBBC05%22%20d%3D%22M10.5%2028.7c-.5-1.5-.8-3-.8-4.7s.3-3.2.8-4.7l-7.8-6C1%2016.6%200%2020.2%200%2024s1%207.4%202.7%2010.7l7.8-6z%22/%3E%3Cpath%20fill%3D%22%2334A853%22%20d%3D%22M24%2048c6.5%200%2011.9-2.1%2015.9-5.8l-7.5-5.8c-2.1%201.4-4.9%202.3-8.4%202.3-6.3%200-11.6-4.2-13.5-9.9l-7.8%206C6.6%2042.6%2014.6%2048%2024%2048z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.sb-rsum-g::before { content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20fill%3D%22%23EA4335%22%20d%3D%22M24%209.5c3.5%200%206.6%201.2%209%203.5l6.7-6.7C35.6%202.4%2030.2%200%2024%200%2014.6%200%206.6%205.4%202.7%2013.3l7.8%206C12.4%2013.6%2017.7%209.5%2024%209.5z%22/%3E%3Cpath%20fill%3D%22%234285F4%22%20d%3D%22M46.5%2024.5c0-1.6-.1-3.1-.4-4.5H24v9h12.7c-.6%203-2.3%205.5-4.8%207.2l7.5%205.8c4.4-4%207.1-10%207.1-17.5z%22/%3E%3Cpath%20fill%3D%22%23FBBC05%22%20d%3D%22M10.5%2028.7c-.5-1.5-.8-3-.8-4.7s.3-3.2.8-4.7l-7.8-6C1%2016.6%200%2020.2%200%2024s1%207.4%202.7%2010.7l7.8-6z%22/%3E%3Cpath%20fill%3D%22%2334A853%22%20d%3D%22M24%2048c6.5%200%2011.9-2.1%2015.9-5.8l-7.5-5.8c-2.1%201.4-4.9%202.3-8.4%202.3-6.3%200-11.6-4.2-13.5-9.9l-7.8%206C6.6%2042.6%2014.6%2048%2024%2048z%22/%3E%3C/svg%3E") center / 18px no-repeat; }
/* placeholder mode: skeleton shapes instead of any text */
.sb-rsum-num > span:empty { display: inline-block; width: 96px; height: 46px; border-radius: 10px; background: rgba(255,255,255,.12); vertical-align: middle; }
.sb-rsum-count { margin-bottom: 26px; }
.sb-rsum-count > span:empty { display: block; width: 190px; height: 12px; border-radius: 6px; background: rgba(255,255,255,.12); margin-top: 6px; }
.sb-rv-name > span:empty { display: block; width: 120px; height: 11px; border-radius: 6px; background: #E3EBE9; margin: 3px 0; }
.sb-rv-meta > span:empty { display: block; width: 84px; height: 9px; border-radius: 5px; background: #EDF2F1; margin-top: 6px; }
.sb-rv-av:empty::before { content: ""; }
.sb-rv-stars > span > span:first-child { color: #FBBC05; }
.sb-rv-stars > span > span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sb-rsum .sb-rv-stars { margin: 0; font-size: 20px; color: rgba(255,255,255,.28); }
/* placeholder skeleton: the text slot holds empty spans until live reviews load */
.sb-rv-text > span:only-child:empty, .sb-rv-text > span > span:empty { display: block; height: 10px; border-radius: 6px; background: #EDF2F1; }
.sb-rv-text > span:has(> span:empty) { display: grid; gap: 9px; }
.sb-rv-text > span > span:empty:last-child { width: 58%; }
.sb-review .sb-rv-text { margin-bottom: 18px; }
.sb-ph-tag:empty { display: none; }
.sb-rsum .sb-ph-tag { margin-top: 16px; background: rgba(255,255,255,.14); color: #FBE3EF; }

/* ---------- Patient stories: dark band + portrait video cards ---------- */
.sb-stories { position: relative; isolation: isolate; overflow: hidden; }
.sb-stories::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-repeat: no-repeat;
  background-image: radial-gradient(circle 396px at 100px 60px, rgba(245,126,182,.42) 0%, rgba(245,126,182,.12) 40%, transparent 70%),
    radial-gradient(circle 339px at calc(82% - 240px) calc(100% + 20px), rgba(211,241,238,.30) 0%, rgba(211,241,238,.08) 45%, transparent 70%); }
.sb-stories { --sb-sparkle-pos: right 8% top 90px; }
.sb-stories h2 em { color: #F57EB6; }
.elementor .sb-story video { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; aspect-ratio: auto; object-fit: cover; display: block; }
.sb-story::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(18,27,30,0) 50%, rgba(18,27,30,.9) 100%); transition: opacity .3s; }
.sb-story::after { content: ""; position: absolute; z-index: 3; left: 50%; top: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 50%; pointer-events: none;
  background: rgba(245,126,182,.28) url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M8%205v14l11-7z%22/%3E%3C/svg%3E") 54% 50% / 28px no-repeat; border: 1px solid rgba(255,255,255,.7);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow: 0 0 0 6px rgba(245,126,182,.18), 0 0 24px rgba(245,126,182,.85), 0 0 60px rgba(245,126,182,.55);
  animation: sb-play-pulse 2.4s ease-out infinite; transition: opacity .3s; }
@keyframes sb-play-pulse {
  0% { box-shadow: 0 0 0 0 rgba(245,126,182,.55), 0 0 24px rgba(245,126,182,.85), 0 0 60px rgba(245,126,182,.55); }
  100% { box-shadow: 0 0 0 22px rgba(245,126,182,0), 0 0 24px rgba(245,126,182,.85), 0 0 60px rgba(245,126,182,.55); }
}
.sb-story:hover::after { background-color: rgba(245,126,182,.45); }
.sb-story:focus-visible { outline: 3px solid #F57EB6; outline-offset: 4px; }
.sb-story.is-playing::before, .sb-story.is-playing::after, .sb-story.is-playing .sb-story-cap { opacity: 0; }
.sb-story-cap { transition: opacity .3s; }
@media (prefers-reduced-motion: reduce) { .sb-story::after { animation: none; } }
@media (max-width: 767px) {
  /* portrait cards swipe sideways so each stays a usable size */
  .sb-sgrid { grid-template-columns: repeat(3, 78%) !important; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
  .sb-story { scroll-snap-align: start; }
}

/* ---------- Inner hero (approved 2026-11-01): photo + homepage overlay + blooms, text only ---------- */
.sb-ihero { isolation: isolate; }
.sb-ihero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-repeat: no-repeat;
  background-image: radial-gradient(circle 396px at 100px 60px, rgba(245,126,182,.42) 0%, rgba(245,126,182,.12) 40%, transparent 70%),
    radial-gradient(circle 339px at calc(82% - 240px) calc(100% + 20px), rgba(211,241,238,.30) 0%, rgba(211,241,238,.08) 45%, transparent 70%),
    linear-gradient(90deg, rgba(18,27,30,.94) 0%, rgba(18,27,30,.82) 38%, rgba(18,27,30,.35) 72%, rgba(18,27,30,.15) 100%); }
.sb-ihero.sb-sparkle-trio { --sb-sparkle-pos: left 50% top 18%, left 8% bottom 16%, right 6% top 14%; }
.sb-ihero h1 em { font-style: italic; font-weight: 400; color: #F57EB6; }
.sb-crumbs::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #F57EB6; }
.sb-crumbs a { color: inherit; text-decoration: none; }
.sb-crumbs a:hover { color: #fff; }
.sb-crumbs b { color: #fff; font-weight: 600; }
@media (max-width: 767px) {
  .sb-ihero::before { background-image: radial-gradient(circle 255px at 100px 60px, rgba(245,126,182,.42) 0%, rgba(245,126,182,.12) 40%, transparent 70%),
    linear-gradient(180deg, rgba(18,27,30,.55) 0%, rgba(18,27,30,.82) 45%, rgba(18,27,30,.94) 100%); }
}

/* ---------- Google mark + dark CTA band (inner pages) ---------- */
.sb-gmark { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cpath%20fill%3D%22%23EA4335%22%20d%3D%22M24%209.5c3.5%200%206.6%201.2%209%203.5l6.7-6.7C35.6%202.4%2030.2%200%2024%200%2014.6%200%206.6%205.4%202.7%2013.3l7.8%206C12.4%2013.6%2017.7%209.5%2024%209.5z%22/%3E%3Cpath%20fill%3D%22%234285F4%22%20d%3D%22M46.5%2024.5c0-1.6-.1-3.1-.4-4.5H24v9h12.7c-.6%203-2.3%205.5-4.8%207.2l7.5%205.8c4.4-4%207.1-10%207.1-17.5z%22/%3E%3Cpath%20fill%3D%22%23FBBC05%22%20d%3D%22M10.5%2028.7c-.5-1.5-.8-3-.8-4.7s.3-3.2.8-4.7l-7.8-6C1%2016.6%200%2020.2%200%2024s1%207.4%202.7%2010.7l7.8-6z%22/%3E%3Cpath%20fill%3D%22%2334A853%22%20d%3D%22M24%2048c6.5%200%2011.9-2.1%2015.9-5.8l-7.5-5.8c-2.1%201.4-4.9%202.3-8.4%202.3-6.3%200-11.6-4.2-13.5-9.9l-7.8%206C6.6%2042.6%2014.6%2048%2024%2048z%22/%3E%3C/svg%3E"); background-position: center; background-size: 40px; background-repeat: no-repeat; }
.sb-cta-band { position: relative; isolation: isolate; }
.sb-cta-band::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(circle 160px at calc(100% - 80px) 40px, transparent 111px, rgba(245,126,182,.14) 112px, rgba(245,126,182,.14) 159px, transparent 160px) no-repeat; }

/* Story grid variant: 2-up wrap on mobile instead of side-swipe (Patient Stories page) */
@media (max-width: 767px) {
  .sb-sgrid.sb-sgrid-2m { grid-template-columns: 1fr 1fr !important; overflow: visible; gap: 14px; }
  .sb-sgrid-2m .sb-story-cap { left: 14px; right: 14px; bottom: 14px; }
  .sb-sgrid-2m .sb-story-title { font-size: 17px; }
  .sb-sgrid-2m .sb-story-sub { font-size: 12px; }
  .sb-sgrid-2m .sb-story::after { width: 56px; height: 56px; margin: -28px 0 0 -28px; background-size: 22px; }
}
/* Stacked button column (CTA band): buttons keep their natural height */
.sb-cta-band .sb-btns > .sb-btn { flex: 0 0 auto; }
/* CTA band ("Book your next visit"): the button pair always sits side by side. Wide = text | buttons on one row;
   <=1024px the band becomes one column (Elementor tablet style) so the buttons drop below the text, still inline;
   only at 600px and below do the buttons stack full width. */
.elementor .sb-cta-band .sb-btns { flex-direction: row; flex-wrap: nowrap; align-items: center; }
@media (max-width: 600px) {
  .elementor .sb-cta-band .sb-btns { flex-direction: column; align-self: stretch; align-items: stretch !important; }
  .elementor .sb-cta-band .sb-btns > .sb-btn { justify-content: center; }
}

/* ---------- Inner-page body patterns (service / team / content pages) ---------- */
/* Numbered steps: number is a CSS counter, not a backend element */
.sb-steps { counter-reset: sb-step; }
.sb-step::before { position: static; inset: auto; width: auto; height: auto; background: none; counter-increment: sb-step; content: counter(sb-step, decimal-leading-zero); font: 500 30px/1 Fraunces, serif; color: #B4236A; }
.sb-step:last-child { border-bottom: 1px solid #DCE6E3; }
.sb-step p { margin: 0; }
.sb-step b { color: #1E2B2F; font-weight: 600; }
@media (max-width: 767px) { .sb-step::before { font-size: 24px; } }
/* Inline links inside running text */
.sb-text a, .sb-card-text a, .sb-step a, .sb-notice a, .sb-aside a, .sb-faq-a a { color: #B4236A; font-weight: 600; text-decoration: none; }
.sb-text a:hover, .sb-step a:hover, .sb-notice a:hover, .sb-aside a:hover { text-decoration: underline; }
/* Hours rows: value column */
.sb-hours-row > :last-child { color: #1E2B2F; font-weight: 500; text-align: right; }
.sb-hours-row p { margin: 0; }
/* Services hero jump links */
.sb-jump b { color: #F57EB6; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; }
.sb-jump a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.3); padding-bottom: 2px; }
.sb-jump a:hover { border-color: #F57EB6; }
/* Group anchors clear the sticky header */
.sb-group { scroll-margin-top: 110px; }
/* Bulleted rows (one paragraph per item): bullet is a pseudo-element */
.sb-li { position: relative; }
.sb-li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: #B4236A; }
.sb-li b { color: #1E2B2F; }
.sb-toc a { display: block; padding: 8px 0; border-bottom: 1px solid #DCE6E3; color: #1E2B2F; font-size: 15px; text-decoration: none; }
.sb-toc a:hover { color: #B4236A; }
/* Member card without a photo (photo pending): neutral tile, no text */
.sb-member-ph { background-image: linear-gradient(160deg, #EAF7F4, #F4F8F7); }
.sb-member .sb-link { margin-top: 8px; font-size: 15px; }
.sb-badge:empty { display: none; }
.sb-why-ico::before { width: 26px; height: 26px; }
@media (max-width: 767px) { .sb-why-card .sb-btns { flex-direction: column; align-items: stretch; flex-wrap: nowrap; } .sb-why-card .sb-btns > * { width: 100%; flex: none; justify-content: center; } }
/* <=1200px: why-card and homepage emergency-card columns get narrow (~170-190px inside): buttons stack full width with
   tighter padding, and the label may wrap as a last resort instead of overflowing the card */
@media (max-width: 1200px) {
  .elementor .sb-why-card, .elementor .sb-emerg { padding-inline: 24px; }
  .sb-emerg > .sb-btn { align-self: stretch; max-width: 100%; padding-inline: 14px; gap: 8px; white-space: normal; height: auto; min-height: 52px; }
  .sb-why-card .sb-btns { flex-direction: column; flex-wrap: nowrap; align-items: stretch; align-self: stretch; }
  .sb-why-card .sb-btns > .sb-btn { flex: none; width: 100%; max-width: 100%; padding-inline: 14px; gap: 8px; white-space: normal; height: auto; min-height: 52px; }
}
/* Photo band (inner hero styling reused mid-page): even, darker overlay so text reads anywhere */
.sb-ihero.sb-photo-band::before { background-image: radial-gradient(circle 300px at 8% 20%, rgba(245,126,182,.30) 0%, transparent 70%), linear-gradient(90deg, rgba(18,27,30,.80) 0%, rgba(18,27,30,.86) 100%); }
.sb-group-head .sb-link { white-space: nowrap; }
/* Text links (paragraph + anchor; the arrow comes from .sb-link::after) */
.sb-link a { color: inherit; text-decoration: none; }
.sb-link a:hover { text-decoration: underline; }

/* ================= v12 Single Service template (approved 2026-11-02) ================= */
/* Panels: opaque section backgrounds (stacking motion removed 2026-11-02) */
:where(.sb-panel) { background: #fff; }
.sb-panel { overflow-x: clip; }
/* Atomic loop layouts (the layout element takes no classes; the wrapper class hooks it) */
.sb-loop-1 .e-collection-loop-layout-base { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 0; }
.sb-loop-3 .e-collection-loop-layout-base { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.sb-loop-t .e-collection-loop-layout-base { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; gap: 28px; align-items: start; }
.sb-loop-3 .e-collection-loop-layout-base > *, .sb-loop-1 .e-collection-loop-layout-base > * { display: flex; flex-direction: column; padding: 0; }
.sb-loop-3 .e-collection-loop-layout-base > * > *, .sb-loop-1 .e-collection-loop-layout-base > * > * { flex: 1 1 auto; }
.sb-loop-t .e-collection-loop-layout-base > * { padding: 0; }
:is(.sb-loop-1, .sb-loop-3, .sb-loop-t) :is(.e-collection-loop-base, .e-collection-loop-layout-base) { padding: 0; }
@media (max-width: 1024px) { .sb-loop-3 .e-collection-loop-layout-base, .sb-loop-t .e-collection-loop-layout-base { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .sb-loop-3 .e-collection-loop-layout-base, .sb-loop-t .e-collection-loop-layout-base { grid-template-columns: minmax(0, 1fr); gap: 18px; } }
/* Empty ACF slots / empty loops are hidden (each service fills only what it needs) */
.sb-notice:empty, .sb-svc-sec:has(> h2:empty), .sb-prac > h2:empty, .sb-prac > p:empty, .sb-prac:not(:has(.sb-prac-card)),
.sb-wte-intro:empty, .sb-wte-step:has(> h3:empty), .sb-wte:not(:has(.sb-wte-title:not(:empty))),
.sb-faq-item:has(.sb-faq-q p:empty), .sb-panel:has(.sb-faq):not(:has(.sb-faq-q p:not(:empty))),
.sb-panel:has(.sb-loop-t):not(:has(.sb-tcard)), .sb-panel:has(.sb-loop-3):not(:has(.sb-card)),
.sb-scta p:empty, .sb-panel:has(.sb-scta-h:empty) { display: none; }
/* Rich content (ACF WYSIWYG via Text Editor — a V3 widget, so the global class styles don't reach it) */
.sb-rich { font: 400 18px/1.75 Figtree, sans-serif; color: #3E4A4F; }
@media (max-width: 767px) { .sb-rich { font-size: 17px; } }
.sb-rich p, .sb-rich ul, .sb-rich ol, .sb-rich table { margin: 0 0 1.1em; }
.sb-rich > :last-child, .sb-rich > * > :last-child { margin-bottom: 0; }
.sb-rich h3 { font: 600 20px/1.35 Figtree, sans-serif; color: #1E2B2F; margin: 1.5em 0 .4em; }
.sb-rich > h3:first-child { margin-top: 0; }
.sb-rich b, .sb-rich strong { color: #1E2B2F; font-weight: 600; }
.sb-rich ul { list-style: none; padding: 0; }
.sb-rich ul li { position: relative; padding-left: 24px; margin: 0 0 .45em; }
.sb-rich ul li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: #B4236A; }
.sb-rich ol { padding-left: 1.3em; }
.sb-rich a { color: #B4236A; font-weight: 600; text-decoration: none; }
.sb-rich a:hover { text-decoration: underline; }
.sb-rich table { width: 100%; border-collapse: collapse; font-size: 16px; }
.sb-rich table, .sb-rich table tbody tr > td { border: 0; background: none; }
.sb-rich table tbody tr > td { padding: 10px 0; border-bottom: 1px solid #DCE6E3; }
.sb-rich td:last-child { text-align: right; color: #1E2B2F; font-weight: 500; }
/* Dentist card */
.sb-prac-card { color: inherit; text-decoration: none; transition: box-shadow .25s; }
.sb-prac-card:hover { box-shadow: 0 18px 40px -26px rgba(30,43,47,.45); }
.sb-prac-card .sb-stack { gap: 2px; }
.sb-prac-card .sb-link { margin-top: 6px; font-size: 15px; }
/* Sticky booking card: gradient bar + soft pink flare behind it */
/* 1025-1280px: the fixed 760px article column starved the sidebar (173px at 1100px); share the space instead */
@media (min-width: 1025px) and (max-width: 1280px) { .elementor .sb-svc-cols { grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; } }
.sb-svc-aside { isolation: isolate; }
.sb-svc-aside::before { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; right: -200px; top: -120px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(245,126,182,.20), rgba(245,126,182,0) 70%); }
.sb-book::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; background: linear-gradient(90deg, #B4236A, #F57EB6); }
.sb-book .sb-btns-col > .sb-btn { justify-content: center; }
.sb-book p { margin: 0; }
/* What to expect: ring flare + dashed connector between the numbered steps */
.sb-wte { overflow: hidden; isolation: isolate; }
.sb-wte::before { content: ""; position: absolute; z-index: -1; width: 560px; height: 560px; right: -180px; top: -220px; border-radius: 50%; border: 70px solid rgba(180,35,106,.18); pointer-events: none; }
.sb-wte .sb-eyebrow { color: #F57EB6; }
.sb-wte-steps::before { content: ""; position: absolute; left: 56px; right: 56px; top: 64px; border-top: 2px dashed rgba(255,255,255,.22); }
.sb-wte-step { z-index: 1; }
.sb-wte-step p { margin: 0; }
@media (max-width: 1024px) { .sb-wte-steps::before { display: none; } }
/* FAQ (service pages): open rows on mint, morphing +/- disc; GSAP tweens the panel (site.js) */
.sb-svc-prose .sb-faq { background: transparent; padding: 0; border-radius: 0; border-top: 1px solid rgba(31,42,46,.12); margin-top: 12px; }
.sb-svc-prose .sb-faq-item { border-bottom-color: rgba(31,42,46,.12); }
.sb-svc-prose .sb-faq-q { position: relative; }
.sb-svc-prose .sb-faq-q::after { content: ""; width: 36px; height: 36px; border-radius: 50%; transition: background-color .3s;
  background: #fff linear-gradient(#B4236A, #B4236A) center / 14px 2px no-repeat; }
.sb-svc-prose .sb-faq-q::before { content: ""; position: absolute; left: auto; right: 17px; top: 50%; width: 2px; height: 14px; margin-top: -7px; background: #B4236A; transition: transform .35s, opacity .3s; z-index: 1; }
.sb-svc-prose details[open] > .sb-faq-q::after { background-color: #B4236A; background-image: linear-gradient(#fff, #fff); }
.sb-svc-prose details[open] > .sb-faq-q::before { transform: rotate(90deg); opacity: 0; }
.sb-faq-a { overflow: hidden; }
.sb-faq-art.sb-sparkle::after { inset: -18px; --sb-sparkle-pos: left 0 top 48px; --sb-sparkle-size: 36px; }
.sb-team-cmp .sb-sparkle::after { inset: -17px; --sb-sparkle-pos: right 0 top 0; --sb-sparkle-size: 34px; }
/* Testimonials: clamp to 4 lines; "Read more" only when clamped (site.js); popup */
.sb-ttext { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
.sb-loop-t .sb-tcard .sb-tmore { display: none; cursor: pointer; }
.sb-loop-t .sb-tcard.is-clamped .sb-tmore { display: inline-flex; }
.sb-tby p, .sb-tq { margin: 0; }
.sb-tmodal.is-open { display: grid; }
.sb-tdialog .sb-ttext { display: block; -webkit-line-clamp: unset; overflow: visible; }
.sb-tdialog .sb-tmore { display: none !important; }
.sb-tdialog .sb-stack { gap: 14px; }
.sb-tclose { cursor: pointer; z-index: 1; }
html.sb-modal-open { overflow: hidden; }
/* Related service cards: icon badge straddles image and body 50/50 */
.sb-card-badge { flex: none; display: grid; place-items: center; }
.sb-card-badge::before { content: ""; position: absolute; inset: 0; margin: auto; width: 30px; height: 30px; background-color: currentColor; -webkit-mask: var(--sb-icon) center / contain no-repeat; mask: var(--sb-icon) center / contain no-repeat; }
.sb-card-badge::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; border: 1.5px dashed rgba(180,35,106,.3); }
.sb-card-badge + .sb-card-body { padding-top: 18px; }
.sb-card[href$="/dental-fillings/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Crect x=%229.5%22 y=%226.5%22 width=%225%22 height=%223.5%22 rx=%221%22/%3E%3C/svg%3E"); }
.sb-card[href$="/crowns-bridges/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M5 9h14%22/%3E%3C/svg%3E"); }
.sb-card[href$="/root-canal-treatment/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M10 9l.6 8M14 9l-.6 8%22/%3E%3C/svg%3E"); }
.sb-card[href$="/emergency-dentistry/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%227%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22M9 7V4.5h6V7M12 10.5v6M9 13.5h6%22/%3E%3C/svg%3E"); }
.sb-card[href$="/check-up-clean/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M9.5 10l2 2 3.5-3.5%22/%3E%3C/svg%3E"); }
.sb-card[href$="/childrens-dentistry/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2213%22 r=%227.5%22/%3E%3Cpath d=%22M9.5 12h.01M14.5 12h.01M9.5 15.5c1.4 1 3.6 1 5 0M12 5.5c0-1.6 1-2.5 2.3-2.5%22/%3E%3C/svg%3E"); }
.sb-card[href$="/dental-veneers/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M20.5 1.5v3M19 3h3%22/%3E%3C/svg%3E"); }
.sb-card[href$="/clear-aligners/"] .sb-card-badge { --sb-icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4c-2 0-3 1.6-3 3.6 0 3 1.2 5 1.8 8.4.3 1.8.8 4 2 4s1.4-2.2 1.8-4.2c.3-1.4 1-2 2.4-2s2.1.6 2.4 2c.4 2 .6 4.2 1.8 4.2s1.7-2.2 2-4C18.8 12.6 20 10.6 20 7.6 20 5.6 19 4 17 4c-1.8 0-3 1-5 1S8.8 4 7 4z%22/%3E%3Cpath d=%22M12 7.5v5M9.5 10h5%22/%3E%3C/svg%3E"); }
/* Payments page (2026-11-02): wide HICAPS tile, icon spans both text rows */
.sb-tile-wide > .sb-feat-ico { grid-row: span 2; margin: 0; }
.sb-tile-wide > * { margin: 0; }
@media (max-width: 767px) { .sb-tile-wide > .sb-feat-ico { grid-row: auto; } }
.sb-pay-split .sb-aside .sb-tick a { margin-left: 6px; font-size: 15px; color: #B4236A; font-weight: 600; text-decoration: none; }
@media (prefers-reduced-motion: reduce) { .sb-svc-prose .sb-faq-q::before, .sb-svc-prose .sb-faq-q::after { transition: none; } }
