/* ==========================================================================
   Prime Medical Revenue — Elementor page extras (elementor-extras.css)
   Everything Elementor V4 Global Classes cannot hold for the page sections
   built in Elementor (Home first): pseudo-elements, parent-hover effects,
   JS state classes, keyframes and icon masks. Class-level styles (layout,
   colors, spacing, hover, breakpoints) live in Elementor → Global Classes.
   Source: website/assets/css/site.css section 18/19 (approved prototype).
   Design-system rules already in Customizer → Additional CSS (.btn sheen,
   .location-showcase ring, .area-card photo zoom) are not repeated here.
   ========================================================================== */

/* ---------- Icons drawn with CSS masks (buttons/links stay plain, editable text) ---------- */
.btn-icon-arrow::after,
.text-link::after,
.area-link::after {
  content: "";
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("../img/ui/arrow.svg") center / contain no-repeat;
  mask: url("../img/ui/arrow.svg") center / contain no-repeat;
  transition: transform var(--ease);
}
.text-link::after,
.area-link::after { width: 16px; height: 16px; }
.btn-icon-phone::after,
.faq-help-link::before {
  content: "";
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("../img/ui/phone.svg") center / contain no-repeat;
  mask: url("../img/ui/phone.svg") center / contain no-repeat;
}
/* .btn::before is taken by the design-system sheen, so the phone icon uses ::after moved to the front. */
.btn-icon-phone::after { order: -1; }
.text-link:hover::after,
.service-card:hover .text-link::after,
.area-card:hover .area-link::after { transform: translateX(3px); }

/* ---------- Links set on a Paragraph/Heading render as an inner <a>: let it take the element's color ---------- */
.elementor .e-paragraph-base > .e-paragraph-link-base,
.elementor .e-paragraph-base > .e-paragraph-link-base:hover,
.elementor .e-heading-base > a,
.elementor .e-heading-base > a:hover { color: inherit; text-decoration: none; }

/* ---------- Screen-reader-only text (e.g. labels inside icon buttons) ---------- */
.elementor .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* ---------- Kicker dashes ---------- */
.kicker::before { content: ""; width: 26px; height: 2px; background: currentColor; }
.section-head-center .kicker::after { content: ""; width: 26px; height: 2px; background: currentColor; }

/* ---------- Hero ---------- */
.sec-hero::after { content: ""; position: absolute; z-index: -1; left: -140px; top: -160px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--aqua-500) 28%, transparent), transparent 65%); }
/* Highlight: wrap words in <span> inside the hero heading (Elementor strips classes from inline spans). */
.hero-title span { color: var(--teal-500); }

/* ---------- Platforms marquee ---------- */
.platforms-title span { color: var(--teal-700); }
.marquee-track { animation: pmr-marquee 60s linear infinite; }
@keyframes pmr-marquee { to { transform: translateX(-100%); } }

/* ---------- Services ---------- */
.service-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--aqua-500); }
.service-card-feature::after { content: ""; position: absolute; right: -70px; bottom: -110px; width: 300px; height: 300px; border: 48px solid rgba(255, 255, 255, .05); border-radius: 50%; pointer-events: none; }

/* ---------- Process connector lines ---------- */
.process-step:not(:last-child)::after { content: ""; position: absolute; top: 56px; left: calc(50% + 64px); width: calc(100% - 108px); height: 2px; background: repeating-linear-gradient(90deg, var(--teal-200) 0 8px, transparent 8px 14px); }

/* ---------- Stats ---------- */
.stat-value::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 4px; border-radius: 4px; background: var(--aqua-500); }

/* ---------- Locations ---------- */
.location-note a { color: white; font-weight: 600; text-decoration: none; }
.location-note a:hover { color: var(--aqua-200); }
.location-track::-webkit-scrollbar { display: none; }
.area-card::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--teal-900) 4%, transparent) 30%, color-mix(in srgb, var(--teal-900) 92%, transparent) 100%); }
.round-control:disabled { opacity: .35; cursor: default; transform: none; background: rgba(255, 255, 255, .07); }

/* ---------- FAQ accordion (state class toggled by assets/js/site.js) ---------- */
.faq-item.is-open { border-color: var(--teal-200); box-shadow: 0 14px 32px rgba(15, 23, 27, .08); }
.faq-item.is-open .faq-panel { display: flex; }
.faq-item.is-open .faq-icon { transform: rotate(45deg); }
.faq-item.is-open .faq-icon-wrap { background: var(--aqua-500); color: #fff; }

/* ---------- CTA band decoration ---------- */
.cta-band::before { content: ""; position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 34px 34px; -webkit-mask-image: linear-gradient(90deg, transparent 20%, #000); mask-image: linear-gradient(90deg, transparent 20%, #000); }
.cta-band::after { content: ""; position: absolute; z-index: -1; right: -90px; bottom: -150px; width: 340px; height: 340px; border: 52px solid rgba(255, 255, 255, .04); border-radius: 50%; box-shadow: 0 0 70px rgba(0, 0, 0, .12); }

/* ---------- Scroll reveal (active only once site.js adds .js-reveal to <html>) ---------- */
.js-reveal .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
.js-reveal .reveal.is-visible { opacity: 1; transform: none; }
/* Never hide content inside the Elementor editor. */
.elementor-editor-active .reveal, .elementor-editor-preview .reveal { opacity: 1 !important; transform: none !important; }

/* ---------- Responsive (Elementor breakpoints: tablet <= 1024, mobile <= 767) ---------- */
@media (max-width: 1024px) {
  .process-step:nth-child(3)::after { display: none; }
  .stat-item:nth-child(n+3) { border-top: 1px solid var(--gray-200); }
}
@media (max-width: 767px) {
  .process-step:not(:last-child)::after { display: block; top: 92px; left: 41px; width: 2px; height: calc(100% - 64px); background: repeating-linear-gradient(180deg, var(--teal-200) 0 8px, transparent 8px 14px); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
  .js-reveal .reveal { opacity: 1; transform: none; }
}

/* =====================================================================
   Inner pages (services, locations, about, contact, faq, specialties…)
   ===================================================================== */

/* Atomic flexboxes size like plain block/flex items (prototype behaviour) instead of Elementor's width:100% default.
   Classes that set an explicit width still win. */
.elementor .e-flexbox-base { --width: auto; }

/* Page hero */
.elementor .page-hero::after { content: ""; position: absolute; z-index: -1; right: -120px; top: -160px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--aqua-500) 30%, transparent), transparent 65%); }
.elementor .page-hero-center .page-hero-inner { justify-content: center; }
.elementor .page-hero-center .page-hero-content { align-items: center; max-width: 820px; text-align: center; }

/* Step list connector */
.elementor .step-row:not(:last-child)::before { content: ""; position: absolute; top: 48px; bottom: 0; left: 23px; width: 2px; background: var(--teal-100); }

/* Service photo cards */
.elementor .service-photo-card::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--teal-900) 0%, transparent) 25%, color-mix(in srgb, var(--teal-900) 92%, transparent) 100%); }
.elementor .service-photo-card:hover .service-photo { transform: scale(1.045); }
.elementor .service-photo-card .text-link, .elementor .service-photo-card:hover .text-link { color: var(--teal-100); }
.elementor .service-photo-card:hover .text-link::after { transform: translateX(3px); }
.elementor .related-card:hover .text-link::after { transform: translateX(3px); }

/* Statement cards */
.elementor .statement-card::after { content: ""; position: absolute; z-index: -1; right: -60px; bottom: -90px; width: 240px; height: 240px; border: 42px solid rgba(255, 255, 255, .05); border-radius: 50%; }
.elementor .statement-card-light::after { border-color: color-mix(in srgb, var(--teal-500) 5%, transparent); }
.elementor .statement-card.statement-card-light { background-image: none; } /* converter split the base card's background shorthand, so the gradient leaked onto the light card */

/* Specialty directory (filtered by site.js) */
.elementor .specialty-tile.is-hidden { display: none; }
.elementor .directory-empty.is-visible { display: block; }

/* Long-form text (privacy policy) */
.elementor .prose.prose > * + * { margin-top: 1.1em; }
.elementor .prose.prose h2 { margin-top: 1.8em; font-size: clamp(1.45rem, 1.3rem + .6vw, 1.85rem); }
.elementor .prose.prose h3 { margin-top: 1.5em; font-size: 1.25rem; }
.elementor .prose ul, .elementor .prose ol { padding-left: 1.3em; }
.elementor .prose li + li { margin-top: .45em; }
.elementor .prose li::marker { color: var(--teal-500); }
.elementor .prose a { font-weight: 600; }
.elementor .toc-link.is-active { border-left-color: var(--aqua-500); color: var(--teal-500); }

/* Map embed (HTML widget) */
.elementor .elementor-widget-html:has(> .elementor-widget-container > .map-frame), .elementor .elementor-widget-html:has(> .map-frame) { width: 100%; }
.elementor iframe.map-frame { display: block; width: 100%; height: 380px; border: 0; border-radius: 24px; background: var(--teal-50); box-shadow: var(--shadow-sm); }

/* Contact form (Elementor atomic form) */
.elementor .form-check label { color: inherit; font-size: inherit; font-weight: 400; line-height: inherit; }
.elementor .form-card select.form-input { appearance: auto; }


/* ---------- Content pages: tables, lists, long-form (added 2026-09-30) ---------- */
.pmr-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--teal-200); border-radius: var(--r-md); background: var(--gray-0); box-shadow: var(--shadow-xs); }
.pmr-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: var(--small); line-height: 1.5; color: var(--gray-700); }
.pmr-table caption { caption-side: bottom; padding: 10px 14px; text-align: left; font-size: var(--caption); color: var(--gray-500); }
.pmr-table th, .pmr-table td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--gray-100); }
.pmr-table thead th { background: var(--teal-500); color: #fff; font-weight: 600; font-size: var(--caption); letter-spacing: .02em; }
.pmr-table tbody th { font-weight: 600; color: var(--teal-700); background: var(--teal-50); }
.pmr-table tbody tr:last-child th, .pmr-table tbody tr:last-child td { border-bottom: 0; }
.pmr-table a { color: var(--teal-500); font-weight: 600; }
.pmr-list { margin: 0; padding-left: 1.25em; display: grid; gap: .5em; }
.pmr-list li::marker { color: var(--teal-500); font-weight: 600; }
.pmr-list strong { color: var(--teal-700); }
.elementor .prose.prose > .e-paragraph-base + .e-paragraph-base { margin-top: 0; }

.elementor .body-text a, .elementor .section-lede a, .elementor .info-card-text a, .elementor .faq-answer a, .elementor .step-text a, .elementor .pmr-list a, .elementor .callout-text a, .elementor .prose a { color: var(--teal-500); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.elementor .body-text a:hover, .elementor .section-lede a:hover, .elementor .info-card-text a:hover, .elementor .faq-answer a:hover, .elementor .step-text a:hover, .elementor .pmr-list a:hover, .elementor .callout-text a:hover, .elementor .prose a:hover { color: var(--maroon-500); }
.elementor .prose .pmr-table-wrap { margin: 4px 0; }

/* ==========================================================================
   Visual refresh – images, gradients, motion (2026-10-01)
   ========================================================================== */

/* ---- Inner page hero: dark teal texture ---- */
body .elementor .page-hero {
  background: linear-gradient(112deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-700) 88%, transparent) 50%, color-mix(in srgb, var(--teal-500) 60%, transparent) 100%), url("/wp-content/uploads/2026/09/bg-hero-texture.webp") center / cover no-repeat;
  border-bottom: 0;
}
body .elementor .page-hero::after { background: radial-gradient(circle, color-mix(in srgb, var(--aqua-500) 22%, transparent), transparent 65%); right: -80px; top: auto; bottom: -220px; }
body .elementor .page-hero .page-title { color: #fff; }
body .elementor .page-hero .page-lede { color: rgba(255, 255, 255, .84); }
body .elementor .page-hero .kicker { color: var(--aqua-200); }
body .elementor .page-hero .breadcrumb, body .elementor .page-hero .breadcrumb a, body .elementor .page-hero .breadcrumb p, body .elementor .page-hero .breadcrumb span { color: rgba(255, 255, 255, .72); }
body .elementor .page-hero .breadcrumb .breadcrumb-item:last-child p, body .elementor .page-hero .breadcrumb .breadcrumb-item:last-child span { color: #fff; }
body .elementor .page-hero .breadcrumb svg, body .elementor .page-hero .breadcrumb svg * { fill: rgba(255, 255, 255, .6); stroke: rgba(255, 255, 255, .6); }
body .elementor .page-hero .btn-outline { color: #fff; background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .45); }
body .elementor .page-hero .btn-outline:hover { background: rgba(255, 255, 255, .14); border-color: #fff; }
body .elementor .page-hero-photo { box-shadow: 0 34px 70px -28px rgba(0, 0, 0, .65); }
body .elementor .page-hero-card { animation: pmr-float 6s ease-in-out infinite; }
@keyframes pmr-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* ---- Stats band: photo under dark teal ---- */
body .elementor .sec-stats {
  background: linear-gradient(180deg, color-mix(in srgb, var(--teal-800) 90%, transparent) 0%, color-mix(in srgb, var(--teal-700) 86%, transparent) 100%), url("/wp-content/uploads/2026/09/bg-stats-band.webp") center / cover no-repeat;
  padding-block: clamp(56px, 7vw, 88px);
}
body .elementor .sec-stats .stats-grid { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .14); box-shadow: none; backdrop-filter: blur(2px); }
body .elementor .sec-stats .stat-item { border-color: rgba(255, 255, 255, .14); }
body .elementor .sec-stats .stat-value { color: #fff; }
body .elementor .sec-stats .stat-label { color: rgba(255, 255, 255, .78); }

/* ---- Closing CTA band: Austin skyline ---- */
body .elementor .cta-band {
  background: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 96%, transparent) 0%, color-mix(in srgb, var(--teal-700) 90%, transparent) 42%, color-mix(in srgb, var(--teal-700) 42%, transparent) 100%), url("/wp-content/uploads/2026/09/bg-cta-austin.webp") center 62% / cover no-repeat;
}

/* ---- Process and step sections: light line pattern ---- */
body .elementor .sec-process,
body .elementor section:has(.step-list) {
  background-image: url("/wp-content/uploads/2026/09/bg-process-pattern.webp");
  background-size: cover;
  background-position: center;
}

/* ---- Feature photos inside sections ---- */
body .elementor .feature-photo {
  display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover;
  border-radius: 20px; margin-top: 28px;
  box-shadow: 0 26px 52px -26px rgba(15, 23, 27, .5);
  transition: transform .6s cubic-bezier(.2, .8, .2, 1), box-shadow .6s ease;
}
body .elementor .feature-photo:hover { transform: translateY(-4px) scale(1.01); box-shadow: 0 34px 64px -26px rgba(15, 23, 27, .55); }
body .elementor .section-head:has(> .feature-photo) {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: clamp(32px, 5vw, 72px); row-gap: 14px; align-items: center; align-content: center;
  max-width: none; width: 100%; text-align: left; justify-items: start;
}
body .elementor .section-head:has(> .feature-photo) > * { grid-column: 1; }
body .elementor .section-head:has(> .feature-photo) > .feature-photo { grid-column: 2; grid-row: 1 / span 6; margin-top: 0; }
body .elementor .section-head-center:has(> .feature-photo) .kicker::after { display: none; }

/* ---- Card hover lift ---- */
body .elementor .card-grid > *, body .elementor .services-grid > *, body .elementor .related-grid > * {
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
}
body .elementor .card-grid > *:hover, body .elementor .services-grid > *:hover, body .elementor .related-grid > *:hover {
  transform: translateY(-6px); box-shadow: 0 22px 44px -24px rgba(15, 23, 27, .35);
}

@media (max-width: 1024px) {
  body .elementor .section-head:has(> .feature-photo) { grid-template-columns: minmax(0, 1fr); }
  body .elementor .section-head:has(> .feature-photo) > .feature-photo { grid-column: 1; grid-row: auto; margin-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  body .elementor .page-hero-card { animation: none; }
  body .elementor .feature-photo, body .elementor .card-grid > *, body .elementor .services-grid > * { transition: none; }
}
/* ==========================================================================
   Premium tables + centered table sections (2026-10-01)
   ========================================================================== */
body .elementor .pmr-table-wrap {
  position: relative; overflow-x: auto; background: #fff;
  border: 1px solid var(--teal-100); border-radius: 22px;
  box-shadow: 0 34px 64px -40px rgba(15, 23, 27, .5), 0 2px 8px rgba(15, 23, 27, .05);
}
body .elementor .pmr-table { min-width: 640px; border-collapse: separate; border-spacing: 0; font-size: 15px; line-height: 1.55; }
body .elementor .pmr-table th, body .elementor .pmr-table td { padding: 18px 24px; border-bottom: 1px solid var(--gray-100); }
body .elementor .pmr-table thead th {
  background: linear-gradient(135deg, var(--teal-800) 0%, var(--teal-500) 62%, var(--teal-mid) 100%); color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; padding-block: 20px; border-bottom: 0;
}
body .elementor .pmr-table tbody th { background: var(--teal-50); color: var(--teal-700); font-weight: 600; }
body .elementor .pmr-table tbody tr:nth-child(even) td { background: var(--gray-25); }
body .elementor .pmr-table tbody tr:last-child th, body .elementor .pmr-table tbody tr:last-child td { border-bottom: 0; }
body .elementor .pmr-table tbody th, body .elementor .pmr-table tbody td { transition: background-color .2s ease; }
body .elementor .pmr-table tbody tr:hover th, body .elementor .pmr-table tbody tr:hover td { background: var(--teal-50); }
body .elementor .pmr-table caption { padding: 14px 24px; font-size: 13px; color: var(--gray-500); }

/* Comparison tables: highlight our column */
body .elementor .pmr-table--compare thead th:last-child { background: var(--teal-500); box-shadow: inset 0 -3px 0 var(--aqua-500); }
body .elementor .pmr-table--compare thead th:last-child::after {
  content: "Recommended"; display: inline-block; margin-left: 10px; padding: 3px 9px; border-radius: 999px;
  background: rgba(255, 255, 255, .18); font-size: 10px; letter-spacing: .08em; vertical-align: 1px;
}
body .elementor .pmr-table--compare tbody td { position: relative; padding-left: 56px; }
body .elementor .pmr-table--compare tbody td::before {
  content: ""; position: absolute; left: 22px; top: 19px; width: 20px; height: 20px; border-radius: 50%;
  background-position: center; background-repeat: no-repeat; background-size: 12px;
}
body .elementor .pmr-table--compare tbody td:nth-child(2) { color: var(--gray-500); }
body .elementor .pmr-table--compare tbody td:nth-child(2)::before {
  background-color: var(--gray-100);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6h6' stroke='%23929f9d' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
body .elementor .pmr-table--compare tbody td:last-child { color: var(--teal-700); font-weight: 600; background: var(--aqua-50); }
body .elementor .pmr-table--compare tbody tr:nth-child(even) td:last-child { background: color-mix(in srgb, var(--aqua-100) 55%, var(--aqua-50)); }
body .elementor .pmr-table--compare tbody td:last-child::before {
  background-color: var(--teal-500);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  box-shadow: 0 4px 10px -4px rgba(15, 23, 27, .6);
}

/* Sections built around a table: center the heading, table and note */
body .elementor .container:has(> .reveal .pmr-table-wrap) > .section-head {
  align-items: center; text-align: center; margin-inline: auto; max-width: 860px;
}
body .elementor .container:has(> .reveal .pmr-table-wrap) > .section-head .kicker::after { content: ""; display: block; width: 26px; height: 2px; background: currentColor; }
body .elementor .container:has(> .reveal .pmr-table-wrap) > .reveal { width: 100%; max-width: 1040px; margin-inline: auto; }
body .elementor .container:has(> .reveal .pmr-table-wrap) > .services-foot { display: flex; justify-content: center; width: 100%; max-width: 1040px; margin-inline: auto; }
body .elementor .container:has(> .reveal .pmr-table-wrap) .callout { margin-inline: auto; }

@media (max-width: 767px) {
  body .elementor .pmr-table th, body .elementor .pmr-table td { padding: 14px 16px; }
  body .elementor .pmr-table--compare tbody td { padding-left: 46px; }
  body .elementor .pmr-table--compare tbody td::before { left: 16px; top: 15px; }
}
/* Table polish: remove theme default table borders and margin */
body .elementor .pmr-table { margin: 0; border: 0; }
body .elementor .pmr-table th, body .elementor .pmr-table td { border-top: 0; border-left: 0; border-right: 1px solid var(--gray-100); }
body .elementor .pmr-table th:last-child, body .elementor .pmr-table td:last-child { border-right: 0; }
body .elementor .pmr-table thead th { border-right-color: rgba(255, 255, 255, .12); }
body .elementor .pmr-table--compare tbody td:last-child { box-shadow: inset 3px 0 0 var(--aqua-500); }
/* ==========================================================================
   Centered card and grid sections (2026-10-01)
   ========================================================================== */
body .elementor .container > .section-head:not(.section-head-split):not(:has(> .feature-photo)):has(+ :is(.related-grid, .card-grid, .facility-grid, .service-photo-grid, .state-grid, .directory-tools)) {
  align-items: center; text-align: center; margin-inline: auto; max-width: 860px;
}
body .elementor .container > .section-head:not(.section-head-split):not(:has(> .feature-photo)):has(+ :is(.related-grid, .card-grid, .facility-grid, .service-photo-grid, .state-grid, .directory-tools)) .kicker::after {
  content: ""; display: block; width: 26px; height: 2px; background: currentColor;
}
body .elementor .container > .section-head:has(+ :is(.related-grid, .card-grid, .facility-grid, .service-photo-grid, .state-grid)) .section-lede { margin-inline: auto; }
body .elementor .container:has(> .section-head + :is(.related-grid, .card-grid, .facility-grid, .service-photo-grid, .state-grid)) > .services-foot { display: flex; justify-content: center; text-align: center; }

/* Center the last, incomplete row of each grid (desktop) */
@media (min-width: 1025px) {
  body .elementor :is(.related-grid, .card-grid, .facility-grid, .service-photo-grid, .state-grid) { display: flex; flex-wrap: wrap; justify-content: center; }
  body .elementor .related-grid > * { flex: 0 0 calc((100% - 2 * 18px) / 3); }
  body .elementor .related-grid-4 > * { flex: 0 0 calc((100% - 3 * 18px) / 4); }
  body .elementor .card-grid > *, body .elementor .service-photo-grid > * { flex: 0 0 calc((100% - 2 * 20px) / 3); }
  body .elementor .card-grid-4 > * { flex: 0 0 calc((100% - 3 * 20px) / 4); }
  body .elementor .facility-grid > * { flex: 0 0 calc((100% - 2 * 14px) / 3); }
  body .elementor .state-grid > * { flex: 0 0 calc((100% - 4 * 12px) / 5); }
}
/* ==========================================================================
   Two-column text sections: card layout, styled lists, closing note (2026-10-01)
   ========================================================================== */
body .elementor section:has(.two-col-main.split-content) {
  background-image:
    radial-gradient(620px 420px at 100% 0%, color-mix(in srgb, var(--teal-500) 7%, transparent), transparent 70%),
    radial-gradient(520px 380px at 0% 100%, color-mix(in srgb, var(--aqua-500) 5%, transparent), transparent 70%);
}
body .elementor .two-col-aside .section-title::after {
  content: ""; display: block; width: 64px; height: 4px; margin-top: 22px; border-radius: 4px;
  background: var(--aqua-500);
}
body .elementor .two-col-main.split-content {
  position: relative; overflow: hidden; background: #fff;
  border: 1px solid var(--teal-100); border-radius: 24px;
  padding: clamp(26px, 3.4vw, 44px);
  box-shadow: 0 34px 64px -44px rgba(15, 23, 27, .5), 0 2px 6px rgba(15, 23, 27, .04);
}
body .elementor .two-col-main.split-content::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px;
  background: var(--aqua-500);
}
body .elementor .two-col-main.split-content > .body-text:first-child { font-size: 1.06em; color: var(--gray-700); }

/* Lists as check tiles (bullets) or numbered tiles */
body .elementor :is(.split-content, .prose) :is(ul, ol) { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 10px; counter-reset: pmr; }
body .elementor :is(.split-content, .prose) :is(ul, ol) li {
  position: relative; margin: 0; padding: 12px 16px 12px 52px; line-height: 1.55; color: var(--gray-700);
  background: var(--teal-50); border: 1px solid var(--teal-100); border-radius: 12px;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
body .elementor :is(.split-content, .prose) :is(ul, ol) li::before {
  content: ""; position: absolute; left: 15px; top: 13px; width: 22px; height: 22px; border-radius: 50%;
  background: var(--teal-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
  box-shadow: 0 4px 10px -4px rgba(15, 23, 27, .6);
}
body .elementor :is(.split-content, .prose) ol li::before {
  counter-increment: pmr; content: counter(pmr); background: var(--teal-500); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
  box-shadow: 0 4px 10px -4px rgba(15, 23, 27, .45);
}
body .elementor :is(.split-content, .prose) :is(ul, ol) li:hover {
  background: #fff; border-color: var(--teal-200); transform: translateX(4px);
  box-shadow: 0 12px 24px -18px rgba(15, 23, 27, .45);
}

/* Paragraph that closes a list: highlighted note */
body .elementor .split-content > .body-text:has(ul, ol) ~ .body-text:last-child {
  margin-top: 6px; padding: 16px 20px; border-left: 3px solid var(--aqua-500); border-radius: 0 12px 12px 0;
  background: var(--aqua-50); color: var(--gray-700);
}

@media (prefers-reduced-motion: reduce) {
  body .elementor :is(.split-content, .prose) :is(ul, ol) li { transition: none; }
  body .elementor :is(.split-content, .prose) :is(ul, ol) li:hover { transform: none; }
}
/* ==========================================================================
   Dark texture bands + patterned muted sections (2026-10-01)
   ========================================================================== */
body .elementor section.sec-dark.sec-dark {
  background-color: var(--teal-800);
  background-image: linear-gradient(120deg, color-mix(in srgb, var(--teal-900) 94%, transparent) 0%, color-mix(in srgb, var(--teal-700) 86%, transparent) 55%, color-mix(in srgb, var(--teal-500) 70%, transparent) 100%), url("/wp-content/uploads/2026/09/bg-hero-texture.webp");
  background-size: cover; background-position: center;
}
body .elementor section.sec-dark .section-title { color: #fff; }
body .elementor section.sec-dark .kicker { color: var(--aqua-200); }
body .elementor section.sec-dark .section-lede, body .elementor section.sec-dark .two-col-aside p { color: rgba(255, 255, 255, .8); }
body .elementor section.sec-dark .two-col-aside .section-title::after { background: var(--aqua-500); }
body .elementor section.sec-dark .two-col-main.split-content { border-color: rgba(255, 255, 255, .2); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6); }

body .elementor section.sec-muted:not(.sec-dark) {
  background-image: url("/wp-content/uploads/2026/09/bg-process-pattern.webp");
  background-size: cover; background-position: center; background-blend-mode: multiply;
}body .elementor section.sec-dark .step-title, body .elementor section.sec-dark .two-col-main:not(.split-content) h3 { color: #fff; }
body .elementor section.sec-dark .step-text, body .elementor section.sec-dark .two-col-main:not(.split-content) p { color: rgba(255, 255, 255, .78); }
body .elementor section.sec-dark .step-row { border-color: rgba(255, 255, 255, .16); }
body .elementor section.sec-dark .step-list .step-row:hover .step-marker { background: var(--aqua-500); color: #fff; border-color: var(--aqua-500); }
body .elementor section.sec-dark .check-item span { color: #fff; }
/* PHOTO-BANDS-START */
/* Dark bands with a page-relevant photo under a teal gradient (2026-10-01) */
body .elementor section.sec-dark.elementor-element-2dd1651 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/denials-feature-work-a-denial.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-17fc35a { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/google-ads-feature-budget.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-5239a4e { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/rcm-feature-kpis.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-5009cda { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/austin-feature-walk-in.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-f58dac0 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/about-feature-principles.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-ad55ed6 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/specialties-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-50c774f { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/audit-feature-review.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-e0ac9b6 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/contact-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-72d0cb6 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/small-practice-feature-struggle.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-8c3d2c1 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/eligibility-feature-card-check.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-7b2bba2 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/coding-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-4e0df06 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/audit-feature-review.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-fd20bcb { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/locations-feature-texas-payers.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-25fa8c1 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/about-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-706c28d { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/audit-feature-review.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-f2360e7 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/claims-feature-scrubbing.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-0436b4d { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/claims-feature-scrubbing.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-86a3077 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/rcm-feature-kpis.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-463b69d { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/services-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-2207a3b { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/coding-feature-errors.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-2f3e82d { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/houston-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-55bdc15 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/austin-feature-walk-in.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-d7b535e { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/coding-feature-errors.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-934587e { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/dallas-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-866e5b9 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/small-practice-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-e517a47 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/austin-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-72a1bad { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/location-nationwide.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-a42bd45 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/services-feature-why-outsource.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-cd7a1b9 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/locations-texas-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-c50acc6 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/home-feature-outsourcing.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-97fbdde { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/small-practice-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-8fcf646 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/claims-feature-scrubbing.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-78bbb71 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/audit-feature-review.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-305616e { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/meta-ads-feature-campaigns.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-8654c56 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/google-ads-hero.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-16b1475 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/mental-health-feature-privacy.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-28bca04 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/reputation-feature-reply.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-c097ebf { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/seo-feature-ai-search.webp"); background-position: center, right center; }
body .elementor section.sec-dark.elementor-element-413d11c { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/eligibility-feature-card-check.webp"); background-position: center, right center; }
body .elementor section.sec-dark { background-size: cover; }
@media (max-width: 1024px) { body .elementor section.sec-dark[class] { background-position: center; } }
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) { body .elementor section.sec-dark, body .elementor .cta-band { background-attachment: fixed; } }
body .elementor section.sec-dark.elementor-element-772eae7 { background-image: linear-gradient(100deg, color-mix(in srgb, var(--teal-900) 95%, transparent) 0%, color-mix(in srgb, var(--teal-900) 88%, transparent) 42%, color-mix(in srgb, var(--teal-700) 55%, transparent) 100%), url("/wp-content/uploads/2026/09/reputation-feature-reply.webp"); background-position: center, right center; }
/* PHOTO-BANDS-END */

/* ==========================================================================
   Info cards redesign: badge numbers, glow, fill-on-hover (2026-10-01)
   ========================================================================== */
body .elementor .info-card {
  position: relative; overflow: hidden; isolation: isolate;
  padding: 34px 30px 32px; border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--teal-500) 10%, transparent);
  background: linear-gradient(160deg, #ffffff 0%, var(--teal-50) 100%);
  box-shadow: 0 18px 40px -28px rgba(15, 23, 27, .35);
  transition: transform .45s cubic-bezier(.2, .8, .2, 1), box-shadow .45s ease, border-color .45s ease;
}
/* soft glow in the corner */
body .elementor .info-card::before {
  content: ""; position: absolute; z-index: -1; top: -70px; right: -70px; width: 190px; height: 190px; border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--teal-500) 12%, transparent) 0%, color-mix(in srgb, var(--aqua-500) 6%, transparent) 45%, transparent 70%);
  transition: transform .6s ease, opacity .6s ease;
}
/* dark fill that slides in on hover */
body .elementor .info-card::after {
  content: ""; position: absolute; z-index: -2; inset: 0;
  background: linear-gradient(150deg, var(--teal-800) 0%, var(--teal-500) 60%, var(--teal-mid) 100%);
  opacity: 0; transition: opacity .45s ease;
}
body .elementor .info-card-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; margin-bottom: 6px; border-radius: 16px;
  background: linear-gradient(135deg, var(--teal-500) 0%, var(--teal-mid) 100%); color: #fff;
  font-size: 15px; font-weight: 700; letter-spacing: .02em;
  box-shadow: 0 12px 22px -10px rgba(15, 23, 27, .65);
  transition: background .45s ease, transform .45s ease;
}
body .elementor .info-card-title { color: var(--teal-800, var(--teal-800)); font-size: 19px; line-height: 1.3; transition: color .45s ease; }
body .elementor .info-card-text { color: var(--gray-600); transition: color .45s ease; }
/* cards without a number get a small check badge before the title */
body .elementor .info-card:not(:has(.info-card-num)) .info-card-title::before {
  content: ""; display: block; width: 44px; height: 44px; margin-bottom: 16px; border-radius: 14px;
  background: var(--teal-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
  box-shadow: 0 12px 22px -10px rgba(15, 23, 27, .45);
}
/* hover state */
body .elementor .info-card:hover { transform: translateY(-8px); border-color: transparent; box-shadow: 0 34px 60px -30px rgba(15, 23, 27, .7); }
body .elementor .info-card:hover::after { opacity: 1; }
body .elementor .info-card:hover::before { transform: scale(1.35); opacity: .9; background: radial-gradient(circle, color-mix(in srgb, var(--aqua-500) 14%, transparent) 0%, transparent 70%); }
body .elementor .info-card:hover .info-card-title { color: #fff; }
body .elementor .info-card:hover .info-card-text { color: rgba(255, 255, 255, .82); }
body .elementor .info-card:hover .info-card-num { background: var(--aqua-500); color: #fff; transform: rotate(-6deg); }
@media (prefers-reduced-motion: reduce) {
  body .elementor .info-card, body .elementor .info-card * { transition: none; }
  body .elementor .info-card:hover { transform: none; }
}
body .elementor .info-card::before { top: auto; bottom: -90px; right: -90px; width: 220px; height: 220px; background: radial-gradient(circle, color-mix(in srgb, var(--teal-500) 12%, transparent) 0%, transparent 68%); }
body .elementor .info-card::before { left: auto; opacity: 0; }
body .elementor .info-card:hover::before { opacity: .9; }
body .elementor .info-card { border-top: 3px solid var(--teal-500); }
body .elementor .info-card:nth-child(even) { border-top-color: var(--aqua-500); }

/* ==========================================================================
   Text sections without an image: heading on top, full-width two-column card (2026-10-01)
   ========================================================================== */
@media (min-width: 1025px) {
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) {
    display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px;
  }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside {
    position: static; max-width: 900px; width: 100%;
  }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside .section-title { max-width: 900px; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside .section-title::after { margin-top: 18px; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content {
    display: block; column-count: 2; column-gap: 56px; column-rule: 1px solid var(--teal-100);
    padding: 40px 44px 34px;
  }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content > * {
    break-inside: avoid; margin-bottom: 18px;
  }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content > *:first-child { margin-top: 0; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) .check-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
}@media (min-width: 1025px) {
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content > :is(div.body-text, .check-list) { break-inside: auto; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content :is(ul, ol) { display: block; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content li { break-inside: avoid; margin-bottom: 10px; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) .check-list { display: block; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) .check-item { break-inside: avoid; margin-bottom: 10px; }
}

/* Centered H2 headings for stacked text sections and full-width text sections (2026-10-01) */
@media (min-width: 1025px) {
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside {
    margin-inline: auto; text-align: center; align-items: center; display: flex; flex-direction: column;
  }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside .section-title { margin-inline: auto; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside .section-title::after { margin-inline: auto; }
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-aside .kicker::after { content: ""; display: block; width: 26px; height: 2px; background: currentColor; }
}
body .elementor .container > .section-head:not(.section-head-split):not(:has(> .feature-photo)):has(+ .prose) {
  align-items: center; text-align: center; margin-inline: auto; max-width: 860px;
}
body .elementor .container > .section-head:not(.section-head-split):not(:has(> .feature-photo)):has(+ .prose) .kicker::after { content: ""; display: block; width: 26px; height: 2px; background: currentColor; }
body .elementor .container > .section-head:has(+ .prose) .section-lede { margin-inline: auto; }
/* Real icons on cards (2026-10-01) */
body .elementor .info-card .card-icon { display: block; width: 64px; height: 64px; object-fit: contain; margin-bottom: 14px; padding: 8px; border-radius: 18px; background: #fff; box-shadow: 0 12px 24px -14px rgba(15, 23, 27, .45); transition: transform .45s ease; }
body .elementor .info-card:has(.card-icon) .info-card-title::before { display: none; }
body .elementor .info-card:hover .card-icon { transform: scale(1.06) rotate(-4deg); }
body .elementor .info-card .card-icon { width: 84px; height: 84px; padding: 4px; border-radius: 22px; }

/* Austin service area map (2026-10-01) */
body .elementor .area-map { display: block; width: 100%; height: auto; border-radius: 24px; border: 1px solid var(--teal-100); box-shadow: 0 34px 64px -40px rgba(15, 23, 27, .5); background: #fff; }
body .elementor .area-map + p { margin-top: 18px; text-align: center; max-width: 900px; margin-inline: auto; font-size: 15px; }
body .elementor div:has(> .area-map) { display: flex; flex-direction: column; align-items: stretch; width: 100%; gap: 0; }
body .elementor .area-map { max-width: 1180px; margin-inline: auto; }

/* ==========================================================================
   Tables never scroll: full-width inside text cards, stacked on phones (2026-10-01)
   ========================================================================== */
body .elementor .split-content > :has(.pmr-table-wrap) { column-span: all; margin-block: 8px 26px; }
body .elementor .pmr-table-wrap { overflow-x: visible; }
body .elementor .pmr-table { min-width: 0; width: 100%; table-layout: auto; }
body .elementor .pmr-table th, body .elementor .pmr-table td { word-break: normal; overflow-wrap: anywhere; }
@media (max-width: 1024px) {
  body .elementor .pmr-table th, body .elementor .pmr-table td { padding: 14px 16px; font-size: 14px; }
}
/* Phones: each row becomes a small card, labels come from the table header */
@media (max-width: 767px) {
  body .elementor .pmr-table-wrap { border: 0; box-shadow: none; background: transparent; border-radius: 0; }
  body .elementor .pmr-table, body .elementor .pmr-table tbody, body .elementor .pmr-table tr, body .elementor .pmr-table th, body .elementor .pmr-table td { display: block; width: 100%; }
  body .elementor .pmr-table thead { display: none; }
  body .elementor .pmr-table tbody tr { margin-bottom: 14px; border: 1px solid var(--teal-100); border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 14px 28px -22px rgba(15, 23, 27, .45); }
  body .elementor .pmr-table tbody th { background: linear-gradient(135deg, var(--teal-800), var(--teal-500)); color: #fff; padding: 14px 16px; border: 0; }
  body .elementor .pmr-table tbody td { border: 0; border-top: 1px solid var(--gray-100); padding: 12px 16px; background: #fff !important; }
  body .elementor .pmr-table tbody td::before { content: attr(data-label); display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--teal-500); }
  body .elementor .pmr-table--compare tbody td { padding-left: 16px; }
  body .elementor .pmr-table--compare tbody td::before { position: static; width: auto; height: auto; border-radius: 0; background: none; box-shadow: none; }
  body .elementor .pmr-table--compare tbody td:last-child { box-shadow: inset 3px 0 0 var(--aqua-500); }
}@media (max-width: 767px) { body .elementor .pmr-table--compare tbody td:is(:nth-child(2), :last-child)::before { position: static; width: auto; height: auto; background: none !important; box-shadow: none !important; border-radius: 0; } }
@media (min-width: 1025px) { body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content:has(.pmr-table-wrap) { column-count: 1; column-rule: none; } body .elementor .split-content:has(.pmr-table-wrap) > p { max-width: none; } }

/* ==========================================================================
   Card grids for code, issue and fix data (replaces tables) (2026-10-01)
   ========================================================================== */
body .elementor .pmr-cards { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 6px 0; }
body .elementor .pmr-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .elementor .pmr-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .elementor .pmr-card {
  position: relative; display: flex; flex-direction: column; gap: 12px; padding: 22px 22px 20px;
  background: linear-gradient(160deg, #ffffff 0%, var(--teal-50) 100%); border: 1px solid var(--teal-100); border-radius: 18px;
  box-shadow: 0 16px 36px -28px rgba(15, 23, 27, .45); transition: transform .35s ease, box-shadow .35s ease;
}
body .elementor .pmr-card:hover { transform: translateY(-5px); box-shadow: 0 28px 50px -30px rgba(15, 23, 27, .55); }
body .elementor .pmr-card-badge {
  align-self: flex-start; padding: 6px 14px; border-radius: 999px; white-space: nowrap;
  background: var(--maroon-500); color: #fff; font-weight: 700; font-size: 14px; letter-spacing: .04em;
  box-shadow: 0 10px 20px -10px rgba(15, 23, 27, .4);
}
body .elementor .pmr-card-title { margin: 0; font-weight: 700; font-size: 17px; line-height: 1.35; color: var(--teal-800, var(--teal-800)); padding-bottom: 10px; border-bottom: 2px solid var(--teal-100); }
body .elementor .pmr-card-row p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--gray-700); }
body .elementor .pmr-card-label { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
body .elementor .pmr-card-fix { margin-top: auto; padding: 12px 14px 12px 44px; border-radius: 12px; background: var(--teal-50); position: relative; }
body .elementor .pmr-card-fix .pmr-card-label { color: var(--teal-500); }
body .elementor .pmr-card-fix p { color: var(--teal-800, var(--teal-800)); font-weight: 500; }
body .elementor .pmr-card-fix::before {
  content: ""; position: absolute; left: 13px; top: 14px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--teal-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat;
}
body .elementor .split-content > :has(.pmr-cards) { column-span: all; margin-block: 8px 26px; }
@media (min-width: 1025px) {
  body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) > .two-col-main.split-content:has(.pmr-cards) { column-count: 1; column-rule: none; }
}
body .elementor .two-col-main.split-content .pmr-cards--3, body .elementor .two-col:has(> .two-col-aside img) .pmr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .elementor .two-col:has(> .two-col-main.split-content):not(:has(> .two-col-aside img)) .pmr-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { body .elementor .pmr-cards, body .elementor .pmr-cards--4, body .elementor .pmr-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body .elementor .pmr-cards, body .elementor .pmr-cards--2, body .elementor .pmr-cards--3, body .elementor .pmr-cards--4 { grid-template-columns: minmax(0, 1fr); } }
/* ==========================================================================
   Paired sections: two short topics side by side in one section (2026-10-01)
   ========================================================================== */
body .elementor .pair-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: stretch; }
body .elementor .pair-col { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
body .elementor .pair-col > .two-col-aside { position: static; text-align: center; align-items: center; display: flex; flex-direction: column; max-width: 560px; margin-inline: auto; }
body .elementor .pair-col > .two-col-aside .section-title { font-size: clamp(26px, 2.4vw, 34px); }
body .elementor .pair-col > .two-col-aside .section-title::after { margin-inline: auto; }
body .elementor .pair-col > .two-col-aside .kicker::after { content: ""; display: block; width: 26px; height: 2px; background: currentColor; }
body .elementor .pair-col > .two-col-main { flex: 1; }
@media (max-width: 1024px) { body .elementor .pair-grid { grid-template-columns: minmax(0, 1fr); gap: 56px; } }body .elementor .pair-col > .two-col-aside { flex: 0 0 auto; height: auto; width: 100%; max-width: 560px; }
body .elementor .pair-col > .two-col-main { flex: 1 0 auto; height: auto; width: 100%; max-width: none; }

/* LEGAL-PROSE-START: spacing for legal pages (privacy policy) */
body .elementor .article-main .prose{row-gap:14px;}
body .elementor .article-main .prose > h2:not(:first-child){margin-top:22px;}
body .elementor .article-main .prose .pmr-table-wrap{margin:4px 0;}
body .elementor .article-main .pmr-table th{word-break:normal;overflow-wrap:normal;hyphens:none;}
body .elementor .article-main .pmr-table th[scope=row]{min-width:150px;}
/* LEGAL-PROSE-END */


/* HERO-BG-SLIDES-START (2026-10-06): homepage hero background slideshow */
.hero-media{overflow:hidden}
.hero-media .elementor-widget-html{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pmr-hbg{position:absolute;inset:0}
.pmr-hbg .pmr-hbg__img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:70% center;opacity:0;transform:scale(1.06);transition:opacity 1.6s ease,transform 8s ease-out}
.pmr-hbg .pmr-hbg__img.is-on{opacity:1;transform:scale(1)}
.hero-media .hero-photo-desktop{transition:transform 8s ease-out}
@media (max-width:767px){.pmr-hbg{display:none}}
@media (prefers-reduced-motion:reduce){.pmr-hbg{display:none}}
/* HERO-BG-SLIDES-END */
/* TOPBAR-SALES (2026-10-06) */
.site-topbar .topbar-inner--sales{justify-content:center!important}
.site-topbar .topbar-sales{font-weight:600;letter-spacing:.02em}

/* MOTION-PACK-START (2026-10-06): opacity/transform only, so no CLS */
.js-reveal .reveal{transition-delay:var(--rv-delay,0ms)}
.js-reveal .reveal.reveal-now{transition:none}
@media (min-width:1024px){
  .js-reveal .two-col-aside.reveal:not(.is-visible){transform:translateX(-22px)}
  .js-reveal .two-col-main.reveal:not(.is-visible){transform:translateX(22px)}
}
/* heading underline draws in */
.section-title::after{transform-origin:left center;transition:transform .8s cubic-bezier(.2,.8,.2,1) .25s}
.section-head-center .section-title::after,.text-center .section-title::after{transform-origin:center}
.js-reveal .reveal:not(.is-visible) .section-title::after{transform:scaleX(0)}
/* card icons pop in, then tilt on hover */
.js-reveal .reveal .card-icon{transition:transform .65s cubic-bezier(.34,1.56,.64,1) calc(var(--rv-delay,0ms) + .18s),opacity .45s ease calc(var(--rv-delay,0ms) + .18s)}
.js-reveal .reveal:not(.is-visible) .card-icon{transform:scale(.6) rotate(-10deg);opacity:0}
body .elementor .info-card:hover .card-icon{transform:translateY(-4px) rotate(-4deg);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
/* step markers pop one by one */
.js-reveal .step-list .step-marker{transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .4s ease}
.js-reveal .step-list .step-row:nth-child(2) .step-marker{transition-delay:.12s}
.js-reveal .step-list .step-row:nth-child(3) .step-marker{transition-delay:.24s}
.js-reveal .step-list .step-row:nth-child(4) .step-marker{transition-delay:.36s}
.js-reveal .step-list .step-row:nth-child(n+5) .step-marker{transition-delay:.48s}
.js-reveal .step-list.reveal:not(.is-visible) .step-marker{transform:scale(.4);opacity:0}
/* photos settle in */
.js-reveal .reveal .feature-photo{transition:transform 1s cubic-bezier(.2,.8,.2,1) .1s}
.js-reveal .reveal:not(.is-visible) .feature-photo{transform:scale(.95)}
/* buttons: arrow nudge + light sweep */
.btn-icon-arrow::after,.btn-icon-arrow svg{transition:transform .25s ease}
.btn-icon-arrow:hover::after,.btn-icon-arrow:hover svg{transform:translateX(4px)}
.btn-primary{position:relative;overflow:hidden;isolation:isolate}
.btn-primary::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%)}
.btn-primary:hover::before{transform:translateX(120%);transition:transform .8s ease}
/* reading progress bar */
.pmr-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100000;pointer-events:none;background:var(--aqua-500);transform:scaleX(0);transform-origin:left center}
body.admin-bar .pmr-progress{top:32px}
@media (max-width:782px){body.admin-bar .pmr-progress{top:46px}}
@media (prefers-reduced-motion:reduce){
  .js-reveal .reveal .card-icon,.js-reveal .reveal .feature-photo,.js-reveal .step-list .step-marker,.section-title::after{transform:none!important;opacity:1!important;transition:none!important}
  .btn-primary::before,.pmr-progress{display:none}
}
.elementor-editor-active .card-icon,.elementor-editor-active .feature-photo,.elementor-editor-active .step-marker,.elementor-editor-active .section-title::after{transform:none!important;opacity:1!important}
/* MOTION-PACK-END */
/* COMPARE-CARDS-START (2026-10-06): replaces in-house vs outsourced tables */
.pmr-compare{display:grid;gap:0;width:100%;margin:8px 0 4px;font-family:var(--font);filter:drop-shadow(0 18px 40px rgba(15, 23, 27, .10))}
.pmr-compare__row{display:grid;grid-template-columns:1fr 1.08fr}
.pmr-compare__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:18px 22px;font-weight:700;font-size:var(--small);letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
.pmr-compare__head--them{background:linear-gradient(135deg,var(--teal-700),var(--teal-500));color:#fff;border-radius:18px 0 0 0}
.pmr-compare__head--us{background:var(--teal-500);box-shadow:inset 0 -3px 0 var(--aqua-500);color:#fff;border-radius:0 18px 0 0}
.pmr-compare__badge{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.18);font-size:.68rem;letter-spacing:.08em}
.pmr-compare__cell{position:relative;padding:16px 22px 16px 56px;border-bottom:1px solid color-mix(in srgb, var(--teal-500) 8%, transparent)}
.pmr-compare__cell p{margin:0;font-size:var(--small);line-height:1.6;overflow-wrap:normal;word-break:normal;hyphens:manual}
.pmr-compare__cell--them{background:var(--gray-50);color:var(--gray-600)}
.pmr-compare__cell--us{background:#fff;color:var(--teal-700);font-weight:600;border-left:3px solid var(--aqua-500)}
.pmr-compare__cell::before{content:"";position:absolute;left:20px;top:19px;width:22px;height:22px;border-radius:50%;background-position:center;background-repeat:no-repeat;background-size:12px}
.pmr-compare__cell--them::before{background-color:var(--gray-100);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12h12' stroke='%23667371' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E")}
.pmr-compare__cell--us::before{background-color:var(--teal-500);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.5 12.5l4.2 4.2L18.5 7.8' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.pmr-compare__area{display:block;margin-bottom:3px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--maroon-500);opacity:.85}
.pmr-compare__cell--them .pmr-compare__area{color:var(--gray-600)}
.pmr-compare__row:last-child .pmr-compare__cell{border-bottom:0}
.pmr-compare__row:last-child .pmr-compare__cell--them{border-radius:0 0 0 18px}
.pmr-compare__row:last-child .pmr-compare__cell--us{border-radius:0 0 18px 0}
@media (max-width:560px){
  .pmr-compare__row{grid-template-columns:1fr}
  .pmr-compare__row--head .pmr-compare__head--them{display:none}
  .pmr-compare__head--us{border-radius:18px 18px 0 0}
  .pmr-compare__row:not(.pmr-compare__row--head){margin-top:0}
  .pmr-compare__cell--them{border-bottom:0;padding-bottom:10px}
  .pmr-compare__cell--them .pmr-compare__area{display:block}
  .pmr-compare__cell--us .pmr-compare__area{display:none}
  .pmr-compare__cell--us{border-left:3px solid var(--aqua-500)}
  .pmr-compare__row:last-child .pmr-compare__cell--them{border-radius:0}
  .pmr-compare__row:last-child .pmr-compare__cell--us{border-radius:0 0 18px 18px}
  .pmr-compare__cell--them p::before{content:"In-house: ";font-weight:600}
}
/* all remaining tables: never split a word */
.pmr-table th,.pmr-table td{word-break:normal!important;overflow-wrap:normal!important;hyphens:manual!important}
.pmr-table tbody th[scope=row]{min-width:120px}
/* COMPARE-CARDS-END */
/* SPECIALTY-TILES-START (2026-10-06): Specialties mega menu with icons */
.mega-menu--tiles .mega-tiles-wrap{display:flex;flex-direction:column;gap:12px;min-width:0;flex:1 1 auto}
.mega-menu--tiles .mega-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px}
.mega-tile{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;text-decoration:none!important;color:inherit;transition:background .18s ease,transform .18s ease}
.mega-tile:hover,.mega-tile:focus-visible{background:var(--teal-50);transform:translateX(2px)}
.mega-tile[aria-current="page"]{background:var(--teal-100)}
.mega-tile-icon{flex:0 0 46px;width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#fff;box-shadow:0 4px 14px rgba(15, 23, 27, .10);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.mega-tile:hover .mega-tile-icon{transform:scale(1.08) rotate(-4deg)}
.mega-tile-icon img.mega-tile-img{width:36px;height:36px;object-fit:contain;display:block}
.mega-tile .mega-name{display:block;font-weight:600;font-size:.95rem;color:var(--teal-700);line-height:1.3}
.mega-tile .mega-desc{display:block;font-size:.8rem;color:var(--gray-500);line-height:1.35;margin-top:2px}
.mega-tiles-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-radius:14px;background:linear-gradient(135deg,var(--teal-50),var(--teal-100));color:var(--teal-700)!important;text-decoration:none!important;font-size:.88rem}
.mega-tiles-foot strong{color:var(--maroon-500)}
.mega-tiles-foot-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap}
.mega-tiles-foot:hover .mega-tiles-foot-link{color:var(--maroon-500)}
@media (max-width:1180px){.mega-menu--tiles .mega-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* anchored specialty headings clear the sticky header */
.elementor h3[id],.elementor h2[id]{scroll-margin-top:130px}
.mega-menu--tiles{width:min(1010px,calc(100vw - 32px));right:16px}
.mega-menu--tiles .mega-intro{flex-basis:232px;padding:30px 26px}
.mega-menu--tiles .mega-title{font-size:18px}
.mega-menu--tiles .mega-tiles-wrap{padding:18px 18px 18px 16px}
@media (max-width:1180px){.mega-menu--tiles{left:16px;right:16px;width:auto}.mega-menu--tiles .mega-intro{flex-basis:200px;padding:26px 22px}}
/* SPECIALTY-TILES-END */
/* MEGA-ANIM-START (2026-10-06): animated dropdowns (panel rise, staggered items, live intro panel) */
@property --pmr-ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes pmrMegaIn{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@keyframes pmrMegaUp{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:none}}
@keyframes pmrSpin{to{--pmr-ang:360deg}}
@keyframes pmrBreathe{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
@keyframes pmrFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(-10px,12px)}}
@keyframes pmrShine{0%{transform:rotate(12deg) translateX(-150%)}100%{transform:rotate(12deg) translateX(520%)}}
@keyframes pmrTextShimmer{to{background-position:200% center}}
.mega-menu.is-open{animation:pmrMegaIn .32s cubic-bezier(.22,1,.36,1) both}
/* staggered contents */
.mega-menu.is-open .mega-intro-body > *,
.mega-menu.is-open .mega-cta,
.mega-menu.is-open .mega-links > .mega-link,
.mega-menu.is-open .mega-group-head,
.mega-menu.is-open .mega-group-links > li,
.mega-menu.is-open .mega-group-all,
.mega-menu.is-open .mega-promo,
.mega-menu.is-open .mega-tiles > .mega-tile,
.mega-menu.is-open .mega-tiles-foot{animation:pmrMegaUp .45s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(.06s + var(--pmr-i,0) * .04s)}
/* intro panel: glowing border that travels round, breathing circle, floating glow, sweep, cursor spotlight */
.mega-intro::before{content:"";position:absolute;inset:0;z-index:2;padding:1.5px;border-radius:inherit;pointer-events:none;
  background:conic-gradient(from var(--pmr-ang),color-mix(in srgb, var(--aqua-200) 0%, transparent) 0deg,color-mix(in srgb, var(--aqua-200) 0%, transparent) 230deg,var(--aqua-200) 300deg,var(--aqua-300) 330deg,color-mix(in srgb, var(--aqua-200) 0%, transparent) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:pmrSpin 6s linear infinite}
.mega-intro::after{animation:pmrBreathe 5s ease-in-out infinite;transform-origin:center}
.pmr-mega-orb{position:absolute;z-index:-1;top:-46px;right:-36px;width:150px;height:150px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb, var(--aqua-200) 28%, transparent),color-mix(in srgb, var(--aqua-200) 0%, transparent) 70%);filter:blur(6px);animation:pmrFloat 7s ease-in-out infinite}
.pmr-mega-shine{position:absolute;z-index:1;top:-50%;left:-60%;width:40%;height:200%;pointer-events:none;background:linear-gradient(105deg,rgba(255,255,255,0),rgba(255,255,255,.16),rgba(255,255,255,0));transform:rotate(12deg) translateX(-150%)}
.mega-menu.is-open .pmr-mega-shine{animation:pmrShine 1.7s cubic-bezier(.22,1,.36,1) .3s 1 both}
.pmr-mega-spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .3s ease;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.14),transparent 60%)}
.mega-intro.is-tracking .pmr-mega-spot{opacity:1}
.mega-intro-body,.mega-cta{position:relative;z-index:3}
.mega-kicker{background:linear-gradient(90deg,var(--aqua-200) 0%,#ffffff 50%,var(--aqua-200) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:pmrTextShimmer 4.5s linear infinite}
/* link hover: diagonal arrow appears */
.mega-link .mega-name,.mega-tile .mega-name{transition:color .2s ease}
.mega-links .mega-link{position:relative}
.mega-links .mega-link::after,.mega-tile::after{content:"\2197";margin-left:auto;align-self:center;font-size:14px;color:var(--teal-400);opacity:0;transform:translate(-4px,4px);transition:opacity .2s ease,transform .2s ease}
.mega-links .mega-link:hover::after,.mega-tile:hover::after,.mega-links .mega-link:focus-visible::after,.mega-tile:focus-visible::after{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .mega-menu.is-open,.mega-menu.is-open *,.mega-intro::before,.mega-intro::after,.pmr-mega-orb,.mega-kicker{animation:none!important}
  .pmr-mega-shine,.pmr-mega-spot{display:none}
}
/* MEGA-ANIM-END */