.elementor-42486 .elementor-element.elementor-element-589a17e{--e-image-carousel-slides-to-show:6;width:100%;max-width:100%;}.elementor-42486 .elementor-element.elementor-element-589a17e .swiper-wrapper{display:flex;align-items:center;}.elementor-42486 .elementor-element.elementor-element-hpjs0001{--display:flex;--min-height:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}@media(max-width:1024px){.elementor-42486 .elementor-element.elementor-element-589a17e{--e-image-carousel-slides-to-show:3;}}@media(max-width:767px){.elementor-42486 .elementor-element.elementor-element-589a17e{--e-image-carousel-slides-to-show:2;}}/* Start custom CSS *//* New Homepage (42301) shared interaction styles. Section styling lives on the elements themselves. */
.hp-track::-webkit-scrollbar { display: none; }
.hp-track > * { scroll-snap-align: start; flex-shrink: 0; }
.hp-track.hp-track-center > * { scroll-snap-align: center; }
.hp-dots .hp-dot { width: 8px; height: 8px; min-height: 0; padding: 0; margin: 0; border: 0; border-radius: 50%; background: #C9C9C9; cursor: pointer; transition: background-color .2s ease, transform .2s ease; }
.hp-dots .hp-dot.is-active { background: #087183; transform: scale(1.15); }
.hp-dots .hp-dot:focus-visible, .hp-prev:focus-visible, .hp-next:focus-visible { outline: 2px solid #EE7234; outline-offset: 2px; }
.hp-prev.is-disabled, .hp-next.is-disabled { opacity: .45; pointer-events: none; }
.hp-life-card .hp-life-hover { opacity: 0; }
.hp-life-card:hover .hp-life-hover, .hp-life-card:focus-within .hp-life-hover { opacity: 1; }
.hp-life-card .hp-life-desc { opacity: 0; max-height: 0; overflow: hidden; }
.hp-life-card:hover .hp-life-desc, .hp-life-card:focus-within .hp-life-desc { opacity: 1; max-height: 240px; }
.hp-chip-extra { display: none; }
.hp-spec-empty { display: none; }
input.hp-spec-input:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { .hp-track { scroll-behavior: auto; } .hp-life-hover, .hp-life-desc { transition: none; } }
/* "See More" inline expanders (09-results): the extra paragraph stays hidden until opened */
.elementor .hp-more:not(.is-open) { display: none; }

/* --- 02-proven.extra.css --- */
/* 02-proven: viewport ranges the per-element styles cannot express (only desktop/tablet/mobile exist). Scoped to slot 27941662. */
/* 1025-1439: tighten gutters so the three-card row keeps breathing room. */
@media (min-width: 1025px) and (max-width: 1439px) {
  .elementor [data-id="27941662"] > section { padding-left: 24px; padding-right: 24px; }
  .elementor [data-id="27941662"] > section > div > div:last-child { gap: 24px; }
  .elementor [data-id="27941662"] article:nth-child(1), .elementor [data-id="27941662"] article:nth-child(3) { padding-left: 28px; padding-right: 28px; }
  .elementor [data-id="27941662"] article:nth-child(1) > div:nth-child(2), .elementor [data-id="27941662"] article:nth-child(3) > div:nth-child(2) { width: 100%; }
}
/* 1025-1279: too narrow for one row; use the tablet arrangement (700+ card on top, two cards below). */
@media (min-width: 1025px) and (max-width: 1279px) {
  .elementor [data-id="27941662"] > section { padding-left: 32px; padding-right: 32px; }
  .elementor [data-id="27941662"] > section > div > div:last-child { flex-wrap: wrap; justify-content: center; align-items: stretch; }
  .elementor [data-id="27941662"] article:nth-child(2) { order: -1; }
  .elementor [data-id="27941662"] article:nth-child(1), .elementor [data-id="27941662"] article:nth-child(3) { max-width: none; min-width: calc(50% - 13px); padding-top: 32px; }
  .elementor [data-id="27941662"] article:nth-child(1) { padding-bottom: 112px; }
  .elementor [data-id="27941662"] article:nth-child(3) { padding-bottom: 96px; }
}
/* 1280-1365: the side-card label/body wrap one line more than in the design, so stretch both side cards to one shared height (avoids uneven card tops). */
@media (min-width: 1280px) and (max-width: 1365px) {
  .elementor [data-id="27941662"] article:nth-child(1), .elementor [data-id="27941662"] article:nth-child(3) { align-self: stretch; }
}
/* Phone: drop the forced line break in the H2 and let it wrap naturally. */
@media (max-width: 767px) {
  .elementor [data-id="27941662"] h2 br { display: none; }
}

/* --- 03-roles.extra.css --- */
/* 03-roles: dots colour per Figma (#BFC3C4); 4 dots on tablet/desktop (cards 1,3,5,7), 7 on phone */
[data-id="7fb1562d"] .hp-dots .hp-dot { background: #BFC3C4; }
[data-id="7fb1562d"] .hp-dots .hp-dot.is-active { background: #087183; }
@media (min-width: 768px) {
  [data-id="7fb1562d"] .hp-dots .hp-dot:nth-child(even) { display: none; }
  [data-id="7fb1562d"] .hp-dots .hp-dot:nth-child(odd):has(+ .hp-dot.is-active) { background: #087183; transform: scale(1.15); }
}
/* 03-roles: "Learn More" pills carry the role name as screen-reader-only text (<span> inside the label) */
[data-id="7fb1562d"] .hp-track a > .e-paragraph-base > span { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* --- 04-match.extra.css --- */
/* 04-match: accordion open state (native details[open]) and the 1025-1279 range, which per-element styles cannot express. Scoped to slot 50f82299. */
.elementor [data-id="50f82299"] summary::-webkit-details-marker { display: none; }
.elementor [data-id="50f82299"] details > summary .e-accordion-item-icon-base { transition: transform .25s ease; }
.elementor [data-id="50f82299"] details[open] > summary .e-accordion-item-icon-base { transform: rotate(180deg); }
.elementor [data-id="50f82299"] details > summary:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 4px; border-radius: 4px; }
/* Smooth body reveal where supported (Chromium); other browsers open instantly. */
.elementor [data-id="50f82299"] details { interpolate-size: allow-keywords; }
.elementor [data-id="50f82299"] details::details-content { block-size: 0; overflow-y: clip; transition: block-size .3s ease, content-visibility .3s allow-discrete; }
.elementor [data-id="50f82299"] details[open]::details-content { block-size: auto; }
/* 1025-1279: slightly smaller H2 and wider gutters so the two columns keep breathing room. */
@media (min-width: 1025px) and (max-width: 1279px) {
  .elementor [data-id="50f82299"] > section { padding: 96px 40px; }
  .elementor [data-id="50f82299"] h2 { font-size: 40px; letter-spacing: -0.8px; }
  .elementor [data-id="50f82299"] h3 { font-size: 17px; white-space: normal; }
}
/* Tablet/phone: balance the stacked H2 so it does not end on a one-word line ("Match"). */
@media (max-width: 1024px) {
  .elementor [data-id="50f82299"] h2 { text-wrap: balance; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor [data-id="50f82299"] details::details-content, .elementor [data-id="50f82299"] summary .e-accordion-item-icon-base { transition: none; }
}

/* --- 05-team.extra.css --- */
/* 05-team: accordion open state (native details[open]) that per-element styles cannot express. Scoped to slot f96f57d. */
.elementor [data-id="f96f57d"] details[open] { border-radius: 24px; padding-bottom: 0; }
.elementor [data-id="f96f57d"] details[open] > summary { min-height: 97px; }
.elementor [data-id="f96f57d"] details[open] > summary .e-accordion-item-icon-base > :last-child { transform: rotate(90deg); }
@media (max-width: 1024px) {
  .elementor [data-id="f96f57d"] details[open] > summary { min-height: 0; padding-bottom: 16px; }
}
@media (max-width: 767px) {
  .elementor [data-id="f96f57d"] details[open] { border-radius: 20px; }
  .elementor [data-id="f96f57d"] details[open] > summary { padding-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor [data-id="f96f57d"] details, .elementor [data-id="f96f57d"] details::details-content, .elementor [data-id="f96f57d"] summary, .elementor [data-id="f96f57d"] summary .e-accordion-item-icon-base > * { transition: none; }
}

/* --- 07-specialties.extra.css --- */
/* 07-specialties: rules the per-element styles cannot express. Scoped to slot 668cb983. */
.elementor [data-id="668cb983"] h2 span { color: #087183; font-weight: inherit; }
.elementor [data-id="668cb983"] input.hp-spec-input::placeholder { color: #809BA1; opacity: 1; }
.elementor [data-id="668cb983"] form:focus-within { border-color: #2195A8; }
/* Chips: the paragraph's inner link keeps the chip colour (theme a:hover is cyan) and its hit area covers the whole pill. */
.elementor [data-id="668cb983"] .hp-chip { position: relative; }
.elementor [data-id="668cb983"] .hp-chip a, .elementor [data-id="668cb983"] .hp-chip a:hover, .elementor [data-id="668cb983"] .hp-chip a:focus { color: inherit; text-decoration: none; outline: none; }
.elementor [data-id="668cb983"] .hp-chip a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.elementor [data-id="668cb983"] .hp-chip:has(a:focus-visible) { outline: 2px solid #087183; outline-offset: 2px; }

/* --- 08-hipaa.extra.css --- */
/* 08-hipaa: accordion open state (native details[open]) — chevron rotation, smooth reveal, focus ring. Scoped to slot 1f6b69eb. */
.elementor [data-id="1f6b69eb"] summary::-webkit-details-marker { display: none; }
.elementor [data-id="1f6b69eb"] details > summary .e-accordion-item-icon-base { transition: transform .25s ease; }
.elementor [data-id="1f6b69eb"] details[open] > summary .e-accordion-item-icon-base { transform: rotate(180deg); }
.elementor [data-id="1f6b69eb"] details > summary:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 4px; border-radius: 4px; }
.elementor [data-id="1f6b69eb"] details { interpolate-size: allow-keywords; }
.elementor [data-id="1f6b69eb"] details::details-content { block-size: 0; overflow-y: clip; transition: block-size .3s ease, content-visibility .3s allow-discrete; }
.elementor [data-id="1f6b69eb"] details[open]::details-content { block-size: auto; }
@media (prefers-reduced-motion: reduce) {
  .elementor [data-id="1f6b69eb"] details::details-content, .elementor [data-id="1f6b69eb"] summary .e-accordion-item-icon-base { transition: none; }
}

/* --- 09-results.extra.css --- */
/* 09-results: inline "See More" links inside the case-study excerpts (inline span styles are not allowed) + light hover feedback (none drawn in the design). Scoped to slot 352e0517. */
.elementor [data-id="352e0517"] p > a { color: inherit; text-decoration: none; white-space: nowrap; }
.elementor [data-id="352e0517"] p > a strong { font-size: 19px; font-weight: 700; line-height: 1; }
.elementor [data-id="352e0517"] > section > :last-child > :last-child p > a { color: #087183; }
.elementor [data-id="352e0517"] p > a:hover, .elementor [data-id="352e0517"] a:hover > p { text-decoration: underline; text-underline-offset: 3px; }
.elementor [data-id="352e0517"] a:hover > img + img { scale: 1.06; }
/* 1025-1180px laptops (spec 7): tighter cards so the text column keeps a readable measure */
@media (min-width: 1025px) and (max-width: 1180px) {
  .elementor [data-id="352e0517"] > section { padding-left: 32px; padding-right: 32px; }
  .elementor [data-id="352e0517"] > section > :last-child > * { gap: 24px; padding: 24px; }
  .elementor [data-id="352e0517"] > section > :last-child > :first-child { padding: 23px; }
  .elementor [data-id="352e0517"] > section > :last-child > * > a { flex-basis: 340px; width: 340px; }
  .elementor [data-id="352e0517"] > section > :last-child > * > a > img + img { left: 109px; top: 182px; width: 122px; height: 123px; }
  .elementor [data-id="352e0517"] > section > :last-child > * > :last-child { padding-left: 16px; padding-right: 16px; }
  .elementor [data-id="352e0517"] h3 { font-size: 32px; letter-spacing: -0.64px; }
}
@media (max-width: 1024px) { .elementor [data-id="352e0517"] p > a strong { font-size: 17px; } }
@media (max-width: 767px) { .elementor [data-id="352e0517"] p > a strong { font-size: 16px; } }
/* Scroll-stack (hp-stack-card = position:sticky) needs a non-scrolling <body>: the site-wide Elementor inline rule `html, body { overflow-x: hidden }` turns <body> into a scroll container and silently disables sticky. `clip` keeps the identical horizontal clipping without creating a scroll container (the theme's own used-CSS already sets body{overflow-x:clip}). Active only while this section's sticky card is on the page. */
html:has([data-id="352e0517"] .hp-stack-card), html:has([data-id="352e0517"] .hp-stack-card) > body { overflow-x: clip; }

/* --- 10-reviews.extra.css --- */
/* 10-reviews: band gradient (skewed radial SVG from Figma; a data-URI background cannot go in the inline element style) and the Figma disabled-arrow look. Scoped to slot 45b61d8. */
/* Reviews band is targeted by its element ID: a ":first-child" body.elementor-page-42486 also matched Elementor's editing overlay inside the editor and hid this whole section there (fixed 2026-11-05). */
.elementor [data-id="45b61d8"] [data-id="1247c0c9"] { background-color: #0B7894; background-repeat: no-repeat; background-position: 0 0; background-size: 100% 100%; background-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 1440 618' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Crect x='0' y='0' height='100%25' width='100%25' fill='url(%23grad)' opacity='1'/%3E%3Cdefs%3E%3CradialGradient id='grad' gradientUnits='userSpaceOnUse' cx='0' cy='0' r='10' gradientTransform='matrix(173.13 85.575 -191.11 163.69 -76.538 -43.239)'%3E%3Cstop stop-color='rgba(17,209,221,1)' offset='0'/%3E%3Cstop stop-color='rgba(33,149,168,1)' offset='0.27947'/%3E%3Cstop stop-color='rgba(17,128,154,1)' offset='0.36168'/%3E%3Cstop stop-color='rgba(0,107,139,1)' offset='0.4439'/%3E%3Cstop stop-color='rgba(15,107,134,1)' offset='0.47024'/%3E%3Cstop stop-color='rgba(30,108,128,1)' offset='0.49658'/%3E%3Cstop stop-color='rgba(60,109,117,1)' offset='0.54927'/%3E%3Cstop stop-color='rgba(89,110,107,1)' offset='0.60195'/%3E%3Cstop stop-color='rgba(119,110,96,1)' offset='0.65464'/%3E%3Cstop stop-color='rgba(179,112,74,1)' offset='0.76001'/%3E%3Cstop stop-color='rgba(238,114,52,1)' offset='0.86538'/%3E%3Cstop stop-color='rgba(238,114,52,1)' offset='1'/%3E%3C/radialGradient%3E%3C/defs%3E%3C/svg%3E"); }
.elementor [data-id="45b61d8"] .hp-prev.is-disabled, .elementor [data-id="45b61d8"] .hp-next.is-disabled { opacity: 1; background-color: rgba(255,255,255,0.24); }
.elementor [data-id="45b61d8"] .hp-prev.is-disabled img, .elementor [data-id="45b61d8"] .hp-next.is-disabled img { opacity: .29; }
.elementor [data-id="45b61d8"] h2 span { white-space: nowrap; }

/* --- 11-life.extra.css --- */
/* 11-life: dot colour per Figma (#BFC3C4, active teal); 3 dots (cards 1,4,7) on desktop, all 7 at <=1024px; hover crossfade. Scoped to slot 1d85f1af. */
[data-id="1d85f1af"] .hp-dots .hp-dot { background: #BFC3C4; }
[data-id="1d85f1af"] .hp-dots .hp-dot.is-active { background: #087183; }
@media (min-width: 1025px) {
  [data-id="1d85f1af"] .hp-dots .hp-dot { width: 8.32px; height: 8.32px; }
  [data-id="1d85f1af"] .hp-dots .hp-dot:not(:nth-child(3n+1)) { display: none; }
  [data-id="1d85f1af"] .hp-dots .hp-dot:nth-child(3n+1):has(+ .hp-dot.is-active),
  [data-id="1d85f1af"] .hp-dots .hp-dot:nth-child(3n+1):has(+ .hp-dot + .hp-dot.is-active) { background: #087183; transform: scale(1.15); }
}
[data-id="1d85f1af"] .hp-life-card .hp-life-hover { transition: opacity .35s ease; }
/* Hover state per Figma "Hover State" frames: bottom caption fades out, centred title + description fade in (tap on touch, focus via keyboard). */
[data-id="1d85f1af"] .hp-life-card .hp-life-desc { max-height: none; overflow: visible; opacity: 0; transition: opacity .35s ease; }
[data-id="1d85f1af"] .hp-life-card > .e-heading-base { transition: opacity .35s ease; }
[data-id="1d85f1af"] .hp-life-card:hover .hp-life-desc, [data-id="1d85f1af"] .hp-life-card:focus-within .hp-life-desc, [data-id="1d85f1af"] .hp-life-card.is-active .hp-life-desc { opacity: 1; max-height: none; }
[data-id="1d85f1af"] .hp-life-card:hover > .e-heading-base, [data-id="1d85f1af"] .hp-life-card:focus-within > .e-heading-base, [data-id="1d85f1af"] .hp-life-card.is-active > .e-heading-base { opacity: 0; }
[data-id="1d85f1af"] .hp-life-card.is-active .hp-life-hover { opacity: 1; }
[data-id="1d85f1af"] .hp-life-card:focus-visible { outline: 2px solid #EE7234; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { [data-id="1d85f1af"] .hp-life-card .hp-life-desc, [data-id="1d85f1af"] .hp-life-card > .e-heading-base { transition: none; } }

/* --- 12-benefits-cta.extra.css --- */
/* 12-benefits-cta: price span colour in the CTA heading (inline <span style> is not allowed). Scoped to slot 4d2f8f80. */
.elementor [data-id="4d2f8f80"] h2 strong { color: #C86839; font-weight: inherit; white-space: nowrap; }

/* --- zz-mobile.extra.css --- */
/* zz-mobile: phone fixes from the "Homepage v2" fixes doc (Oct 27). Element ids are those of sections that are not rebuilt (01, 02, 10). */
@media (max-width: 767px) {
  /* Hero: centred copy, rating pill, CTA and stats; 24px side spacing */
  .elementor.elementor-42486 [data-id="4f039b62"] { padding-left: 24px; padding-right: 24px; }
  .elementor.elementor-42486 [data-id="b0f0072"], .elementor.elementor-42486 [data-id="4b0eb308"], .elementor.elementor-42486 [data-id="53c5cdea"],
  .elementor.elementor-42486 [data-id="53c5cdea"] > * { align-items: center; text-align: center; }
  .elementor.elementor-42486 [data-id="762f9c74"] h1, .elementor.elementor-42486 [data-id="53c5cdea"] p { text-align: center; }
  .elementor.elementor-42486 [data-id="3ef99d0d"] { align-items: center; align-self: center; }
  .elementor.elementor-42486 [data-id="1a978e38"] { justify-items: center; text-align: center; }
  .elementor.elementor-42486 [data-id="1a978e38"] > * { align-items: center; text-align: center; }
  .elementor.elementor-42486 [data-id="44a1d9de"] { padding-left: 24px; padding-right: 24px; }
  /* Proven Results: 24px side spacing for the heading and cards */
  .elementor.elementor-42486 [data-id="5c9010f3"] { padding-left: 24px; padding-right: 24px; }
  /* Reviews: centre the title, lead and BBB / Google badges */
  .elementor.elementor-42486 [data-id="46dfd5a7"], .elementor.elementor-42486 [data-id="36921af3"] { align-items: center; text-align: center; }
  .elementor.elementor-42486 [data-id="50af256c"], .elementor.elementor-42486 [data-id="1f02c58a"] { text-align: center; }
  .elementor.elementor-42486 [data-id="28f28cbf"] { justify-content: center; }
}

/* --- zz-polish.extra.css --- */
/* zz-polish: final review polish (Oct 26), page 42486 only. Section-specific rules are scoped to the section's slot. */
/* Tablet/phone: balanced line breaks so headings, accordion titles and buttons don't end on a single word */
@media (max-width: 1024px) {
  [data-elementor-id="42486"] h2, [data-elementor-id="42486"] h3, [data-elementor-id="42486"] summary, [data-elementor-id="42486"] .e-button-base { text-wrap: balance; }
}
/* 08: the H2 is one line at 1440; balance it whenever it wraps */
.elementor [data-id="1f6b69eb"] h2 { text-wrap: balance; }
/* 04: tablet H2 matches the neighbouring section titles (hp-h2 tablet size) */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor [data-id="50f82299"] h2 { font-size: 38px; letter-spacing: -0.76px; }
}
/* Carousel dots (03, 10, 11): larger touch targets, same look */
.elementor .hp-dots .hp-dot { position: relative; }
.elementor .hp-dots .hp-dot::after { content: ""; position: absolute; inset: -10px -4px; }
@media (max-width: 1024px) {
  body .elementor .hp-dots { gap: 16px; }
  .elementor .hp-dots .hp-dot::after { inset: -16px -8px; }
}
/* 04 + 08 accordion rows, 09 inline links: larger tap areas without moving anything */
@media (max-width: 1024px) {
  .elementor [data-id="50f82299"] summary, .elementor [data-id="1f6b69eb"] summary { position: relative; }
  .elementor [data-id="50f82299"] summary::before, .elementor [data-id="1f6b69eb"] summary::before { content: ""; position: absolute; inset: -8px 0; }
  .elementor [data-id="352e0517"] p > a { padding-block: 10px; }
}
/* 03: "Learn More" pills readable and tappable on phones */
@media (max-width: 767px) {
  .elementor [data-id="7fb1562d"] .hp-track a { position: relative; }
  .elementor [data-id="7fb1562d"] .hp-track a::after { content: ""; position: absolute; inset: -8px -4px; }
  .elementor [data-id="7fb1562d"] .hp-track a > .e-paragraph-base { font-size: 12px; }
}
/* 07: meta row at 14px on phones; visible hover on "View all 66 specialties" */
@media (max-width: 767px) {
  .elementor [data-id="668cb983"] .hp-spec-count, .elementor [data-id="668cb983"] .hp-spec-count ~ a > .e-paragraph-base { font-size: 14px; line-height: 1.4; }
}
.elementor [data-id="668cb983"] .hp-spec-count ~ a:hover > .e-paragraph-base { text-decoration: underline; text-underline-offset: 3px; }
/* 09: on short laptop screens the 606px stacked card can't fit under the sticky offset, so don't pin it */
@media (min-width: 1025px) and (max-height: 800px) {
  .elementor [data-id="352e0517"] .hp-stack-card { position: relative; top: auto; }
}/* End custom CSS */