/* =====================================================================
   Stage Analytics – brand layer on top of Techex (de-AI pass, 2026-10-19)
   slate #0F172A · clinical blue #1E5BFF (single accent) · grey #F4F6FA
   IBM Plex Sans only. One radius system: 4px. No decorative grids, eyebrows,
   numbering, chips, gradients or glows.
   ===================================================================== */
:root {
  --sa-slate: #0F172A;
  --sa-blue: #1E5BFF;
  --sa-blue-d: #1749D6;
  --sa-grey: #F4F6FA;
  --sa-line: #E2E8F0;
  --sa-text: #475569;
  --sa-muted: #64748B;
  --sa-radius: 8px;
  --sa-sans: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --body-font: var(--sa-sans);
  --heading-font: var(--sa-sans);
  --accent-color: var(--sa-blue);
  --accent-color-2: var(--sa-blue);
  --heading-color: var(--sa-slate);
  --text-color: var(--sa-text);
  --e-global-color-primary: var(--sa-blue);
  --e-global-color-secondary: var(--sa-slate);
  --e-global-color-text: var(--sa-text);
  --e-global-color-accent: var(--sa-blue);
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body, body p, .elementor-widget-text-editor {
  font-family: var(--sa-sans); color: var(--sa-text); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .elementor-heading-title { font-family: var(--sa-sans); color: var(--sa-slate); letter-spacing: -0.01em; }
a { color: var(--sa-blue); }
a:hover { color: var(--sa-blue-d); }

/* Techex core.css zeroes widget spacing with !important – restore a rhythm */
.elementor-section .elementor-widget:not(:last-child) { margin-bottom: 20px !important; }
.elementor-section .elementor-widget.sa-h2:not(:last-child) { margin-bottom: 16px !important; }
.elementor-section .elementor-widget.sa-sub:not(:last-child) { margin-bottom: 40px !important; }
.elementor-section.sa-header .elementor-widget:not(:last-child),
.elementor-section.sa-megamenu .elementor-widget:not(:last-child),
.elementor-section.sa-card-row .elementor-widget,
.elementor-section.sa-btn-row .elementor-widget { margin-bottom: 0 !important; }
.elementor-section.sa-megamenu .elementor-widget-html:not(:last-child) { margin-bottom: 10px !important; }

/* back to top */
.scroll-to-top, .scroll-to-target { background: var(--sa-slate) !important; color: #fff !important; border-radius: var(--sa-radius) !important; box-shadow: none !important; }

/* ---------- type ---------- */
.sa-h2 .elementor-heading-title { font-size: 36px; line-height: 1.2; font-weight: 600; max-width: 780px; }
.sa-sub { max-width: 720px; }
.sa-sub p { font-size: 18px; line-height: 1.6; margin: 0; }
.sa-light .elementor-heading-title { color: #fff !important; }
.sa-sub.sa-light p { color: #CBD5E1 !important; }
.sa-body p { font-size: 17.5px; }
.sa-intro p { font-size: 19px; line-height: 1.6; color: var(--sa-slate); max-width: 820px; margin: 0 0 24px; }
.elementor-section.sa-sec--grey { background-color: var(--sa-grey); }
.elementor-section.sa-dark { background-color: var(--sa-slate); }
.elementor-section.sa-sec--border { border-bottom: 1px solid var(--sa-line); }

/* ---------- buttons (solid, one accent, one radius) ---------- */
.sa-btn .elementor-button {
  font-family: var(--sa-sans) !important; background: var(--sa-blue) !important; color: #fff !important;
  border: 1px solid var(--sa-blue) !important; border-radius: var(--sa-radius) !important;
  font-size: 15.5px !important; font-weight: 600 !important; text-transform: none !important;
  padding: 16px 26px !important; line-height: 1.2 !important; transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.sa-btn .elementor-button:hover { background: var(--sa-blue-d) !important; border-color: var(--sa-blue-d) !important; }
.sa-btn--outline .elementor-button { background: #fff !important; color: var(--sa-slate) !important; border-color: #CBD5E1 !important; }
.sa-btn--outline .elementor-button:hover { background: #fff !important; border-color: var(--sa-slate) !important; color: var(--sa-slate) !important; }
.sa-btn--light .elementor-button { background: #fff !important; color: var(--sa-slate) !important; border-color: #fff !important; }
.sa-btn--light .elementor-button:hover { background: var(--sa-grey) !important; border-color: var(--sa-grey) !important; color: var(--sa-slate) !important; }
.sa-btn-row > .elementor-container > .elementor-column > .elementor-widget-wrap { display: flex; flex-wrap: wrap; gap: 12px; padding: 0 !important; }
.sa-btn-row .elementor-widget { width: auto !important; margin: 0 !important; }
.sa-textlink { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 16px; color: var(--sa-blue); }
.sa-textlink i { font-size: 13px; transition: transform .2s ease; }
.sa-textlink:hover i { transform: translateX(3px); }
.theme-btn, .techex-btn { border-radius: var(--sa-radius) !important; }

/* ---------- header ---------- */
header.site-header.techex-elementor-header { position: sticky; top: 0; z-index: 999; background: #fff; border-bottom: 1px solid var(--sa-line); transition: box-shadow .3s ease; }
.admin-bar header.site-header.techex-elementor-header { top: 32px; }
body.sa-scrolled header.site-header.techex-elementor-header { box-shadow: 0 6px 20px -16px rgba(15, 23, 42, .35); }
.sa-header > .elementor-container { min-height: 80px; }
.sa-header .site-logo img, .sa-header .ama-site-logo img { width: 160px; max-width: 160px; height: auto; }
.sa-header .menu-style-inline .main-navigation ul.navbar-nav > li > a {
  font-family: var(--sa-sans) !important; font-size: 15.5px !important; font-weight: 500 !important; color: var(--sa-slate) !important;
  text-transform: none !important; padding-top: 29px !important; padding-bottom: 29px !important;
}
.sa-header .menu-style-inline .main-navigation ul.navbar-nav > li > a:hover,
.sa-header .menu-style-inline .main-navigation ul.navbar-nav > li.current-menu-item > a,
.sa-header .menu-style-inline .main-navigation ul.navbar-nav > li.current-page-ancestor > a,
.sa-header .menu-style-inline .main-navigation ul.navbar-nav > li.current_page_parent > a { color: var(--sa-blue) !important; }
.sa-header .main-navigation ul.navbar-nav > li > a .menu-item-text::after, .sa-header .main-navigation ul.navbar-nav > li > a::after { background: var(--sa-blue) !important; }
.sa-header-btn .rr-addons-btn, .sa-header-btn a { font-family: var(--sa-sans) !important; border-radius: var(--sa-radius) !important; text-transform: none !important; font-weight: 600 !important; }
.sa-header-btn .btn-icon, .sa-header-btn i { display: none !important; }

/* mega menu */
.techex-megamenu-builder-content-wrap.sub-menu { border-top: 1px solid var(--sa-line) !important; border-radius: 0 0 var(--sa-radius) var(--sa-radius) !important; box-shadow: 0 24px 40px -28px rgba(15, 23, 42, .35) !important; padding: 0 !important; }
.techex-megamenu-builder-content-wrap.sub-menu, .techex-megamenu-builder-content-wrap > li { background: #fff !important; }
.sa-megamenu { padding: 30px 20px 22px !important; background: #fff; }
.sa-megamenu > .elementor-container { max-width: 100% !important; }
.sa-mm-group { margin-bottom: 20px; }
.sa-mm-h { display: block !important; padding: 0 0 8px !important; margin-bottom: 6px; border-bottom: 1px solid var(--sa-line); font-family: var(--sa-sans) !important; font-size: 15px !important; font-weight: 600 !important; color: var(--sa-slate) !important; background: none !important; }
.sa-mm-h:hover { color: var(--sa-blue) !important; }
.sa-mm-group ul { list-style: none; margin: 0; padding: 0 !important; }
.sa-mm-group ul li { padding: 0 !important; margin: 0 !important; }
.sa-mm-group ul li a { display: block !important; padding: 5px 0 !important; font-family: var(--sa-sans) !important; font-size: 14.5px !important; font-weight: 400 !important; color: var(--sa-text) !important; background: none !important; }
.sa-mm-group ul li a:hover { color: var(--sa-blue) !important; }
.sa-mm-group ul li a::after, .sa-mm-h::after { display: none !important; }
.sa-mm-all { display: inline-block !important; margin-top: 4px; padding: 0 !important; color: var(--sa-blue) !important; font-size: 14.5px !important; font-weight: 600 !important; background: none !important; }

/* mobile flyout */
.sa-header .menu-style-flyout .navbar-inner { background: var(--sa-slate) !important; padding-top: 24px !important; overflow-y: auto; }
.sa-header .menu-style-flyout .main-navigation ul.navbar-nav > li { border-bottom: 1px solid rgba(148, 163, 184, .18); }
.sa-header .menu-style-flyout .main-navigation ul.navbar-nav > li > a { color: #fff !important; font-family: var(--sa-sans) !important; font-size: 19px !important; font-weight: 500 !important; padding: 15px 0 !important; text-transform: none !important; }
.sa-header .menu-style-flyout .main-navigation ul.navbar-nav > li.current-menu-item > a { color: #8FB0FF !important; }
.sa-header .menu-style-flyout .navbar-toggler i { color: #fff !important; }
.menu-style-flyout .techex-megamenu-builder-content-wrap.sub-menu, .menu-style-flyout .techex-megamenu-builder-content-wrap > li { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.menu-style-flyout .sa-megamenu { background: transparent !important; padding: 4px 0 10px !important; }
.menu-style-flyout .sa-megamenu .elementor-column { width: 100% !important; }
.menu-style-flyout .sa-megamenu .elementor-widget-wrap { padding: 0 !important; }
.menu-style-flyout .sa-mm-h { color: #fff !important; border-color: rgba(148, 163, 184, .18); }
.menu-style-flyout .sa-mm-group ul li a { color: #CBD5E1 !important; font-size: 15px !important; }
.menu-style-flyout .sa-mm-all { color: #8FB0FF !important; }

/* ---------- hero ---------- */
.sa-hero-title .elementor-heading-title { font-size: 50px; line-height: 1.1; font-weight: 600; letter-spacing: -0.02em; max-width: 640px; }
.sa-hero-lead p { font-size: 18.5px; line-height: 1.6; max-width: 600px; margin: 0; }
.sa-hero-copy > .elementor-widget-wrap { padding-right: 40px !important; }
.sa-img img { width: 100%; object-fit: cover; border-radius: var(--sa-radius); display: block; }
.sa-img--hero img { height: 520px; }
.sa-img--side img { height: 420px; }

/* ---------- lists ---------- */
.sa-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sa-line); }
.sa-list li { padding: 13px 0 13px 18px; border-bottom: 1px solid var(--sa-line); color: var(--sa-slate); font-size: 16.5px; line-height: 1.45; position: relative; }
.sa-list li::before { content: ""; position: absolute; left: 0; top: 21px; width: 6px; height: 6px; border-radius: 50%; background: var(--sa-blue); }
.sa-list--2col { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; border-top: 0; }
.sa-list--2col li:nth-child(-n+2) { border-top: 1px solid var(--sa-line); }
.sa-dark .sa-list li { color: #E2E8F0; }

/* lifecycle (ordered: the order is real) */
.sa-steps { list-style: none; counter-reset: s; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); gap: 24px; }
.sa-steps li { counter-increment: s; border-top: 1px solid rgba(203, 213, 225, .35); padding-top: 16px; display: flex; flex-direction: column; gap: 6px; }
.sa-steps li strong { color: #fff; font-size: 17px; font-weight: 600; line-height: 1.3; }
.sa-steps li strong::before { content: counter(s) ". "; color: #8FB0FF; font-weight: 500; }
.sa-steps li span { color: #94A3B8; font-size: 14.5px; line-height: 1.5; }

/* facts (submissions / EDC / data sources) */
.sa-fact h3 { font-size: 21px; font-weight: 600; margin: 0 0 10px; }
.sa-fact p { font-size: 16.5px; margin: 0 0 14px; }
.sa-fact-row .elementor-column > .elementor-widget-wrap { padding-right: 24px !important; }

/* ---------- cards ---------- */
.sa-card-row > .elementor-container { align-items: stretch; }
.sa-card-row .elementor-column > .elementor-widget-wrap { height: 100%; }
.sa-card-row .elementor-widget-html, .sa-card-row .elementor-widget-html > .elementor-widget-container { height: 100%; }
.sa-card-row .elementor-column { padding-bottom: 24px; }
.sa-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--sa-line); border-radius: var(--sa-radius); padding: 26px 24px 22px; color: var(--sa-text); transition: border-color .2s ease, box-shadow .2s ease; }
.sa-card h3 { font-size: 19px; line-height: 1.3; font-weight: 600; margin: 0 0 10px; color: var(--sa-slate); }
.sa-card p { font-size: 15.5px; line-height: 1.6; margin: 0 0 18px; color: var(--sa-text); }
.sa-card__more { margin-top: auto; font-weight: 600; font-size: 15px; color: var(--sa-blue); display: inline-flex; align-items: center; gap: 8px; }
.sa-card__more i { font-size: 12px; transition: transform .2s ease; }
.sa-card:hover { border-color: #94A3B8; box-shadow: 0 10px 24px -18px rgba(15, 23, 42, .35); color: var(--sa-text); }
.sa-card:hover h3 { color: var(--sa-blue); }
.sa-card:hover .sa-card__more i { transform: translateX(3px); }
.sa-card-end { height: 100%; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 24px; }
.sa-card-end p { margin: 0; font-size: 16px; color: var(--sa-slate); }

/* ---------- inner banner ---------- */
.elementor-section.sa-banner { background-color: var(--sa-slate); }
.sa-banner-title .elementor-heading-title { color: #fff !important; font-size: 46px; line-height: 1.12; font-weight: 600; letter-spacing: -0.02em; max-width: 880px; }
.sa-banner-lead p { color: #CBD5E1 !important; font-size: 18.5px; line-height: 1.6; max-width: 720px; margin: 14px 0 0; }
.sa-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; font-size: 14px; color: #94A3B8; }
.sa-crumbs li { display: inline-flex; align-items: center; gap: 8px; }
.sa-crumbs li + li::before { content: "/"; color: #64748B; }
.sa-crumbs a { color: #94A3B8; }
.sa-crumbs a:hover { color: #fff; }
.sa-crumbs li[aria-current] { color: #E2E8F0; }
.sa-group-link { display: inline-block; font-size: 15px; font-weight: 600; color: #8FB0FF; margin-bottom: 6px; }
.sa-group-link:hover { color: #fff; }

/* ---------- services hub ---------- */
.sa-jump-wrap { background: #fff; border-bottom: 1px solid var(--sa-line); position: sticky; top: 81px; z-index: 50; }
.admin-bar .sa-jump-wrap { top: 113px; }
.sa-jump-wrap > .elementor-container { padding: 0 15px; }
.sa-jump { display: flex; flex-wrap: wrap; gap: 4px 20px; padding: 16px 0; }
.sa-jump a { white-space: nowrap; }
.sa-jump a { font-size: 14.5px; font-weight: 500; color: var(--sa-slate); }
.sa-jump a:hover { color: var(--sa-blue); }
.sa-group-head > .elementor-widget-wrap { padding-right: 40px !important; }
.sa-group-head .sa-h2 .elementor-heading-title { font-size: 30px; }
.sa-group-head .sa-sub p { font-size: 16.5px; }
.sa-rows { border-top: 1px solid var(--sa-line); }
.sa-row { display: grid; grid-template-columns: 1fr 24px; grid-template-areas: "title go" "sum go"; gap: 4px 18px; padding: 18px 4px; border-bottom: 1px solid var(--sa-line); color: var(--sa-slate); transition: background .2s ease; }
.sa-row__title { grid-area: title; font-size: 18.5px; font-weight: 600; }
.sa-row__sum { grid-area: sum; font-size: 15.5px; color: var(--sa-text); line-height: 1.55; }
.sa-row__go { grid-area: go; align-self: center; color: var(--sa-muted); font-size: 13px; transition: transform .2s ease, color .2s ease; }
.sa-row:hover { color: var(--sa-slate); }
.sa-row:hover .sa-row__title, .sa-row:hover .sa-row__go { color: var(--sa-blue); }
.sa-row:hover .sa-row__go { transform: translateX(3px); }

/* ---------- service page ---------- */
.sa-copy-col > .elementor-widget-wrap { padding-right: 40px !important; }
.sa-media-col > .elementor-widget-wrap { padding-left: 10px !important; }
.sa-block-row { margin-top: 8px; }
.sa-block-row .elementor-column > .elementor-widget-wrap { padding-right: 28px !important; }
.sa-block-h { font-size: 20px; font-weight: 600; margin: 0 0 14px; }

/* principles / mission */
.sa-principle-row .elementor-column > .elementor-widget-wrap { padding-right: 28px !important; }
.sa-principle h3 { font-size: 19px; font-weight: 600; margin: 0 0 8px; }
.sa-principle p { font-size: 16px; margin: 0; }
.sa-mv { padding-right: 40px; }
.sa-mv h3 { font-size: 20px; font-weight: 600; margin: 0 0 10px; }
.sa-mv p { font-size: 22px; line-height: 1.45; color: var(--sa-slate); margin: 0; }

/* industries */
.sa-ind { background: #fff; border: 1px solid var(--sa-line); border-radius: var(--sa-radius); overflow: hidden; height: 100%; display: flex; flex-direction: column; }
.sa-ind img { width: 100%; height: 240px; object-fit: cover; display: block; }
.sa-ind__body { padding: 24px 26px 26px; }
.sa-ind h3 { font-size: 23px; font-weight: 600; margin: 0 0 10px; }
.sa-ind p { font-size: 16.5px; margin: 0; }

/* ---------- CTA band ---------- */
.elementor-section.sa-cta { background: var(--sa-slate); }
.sa-cta .sa-h2 .elementor-heading-title { font-size: 32px; }
.elementor-section.sa-cta .elementor-widget.sa-sub { margin-bottom: 0 !important; }
.sa-cta-actions > .elementor-widget-wrap { display: flex; justify-content: flex-end; }
.sa-cta-actions .elementor-widget-button { width: auto; margin: 0 !important; }

/* ---------- contact ---------- */
.sa-contact-info { margin: 24px 0 0; border-top: 1px solid var(--sa-line); }
.sa-contact-info > div { display: grid; grid-template-columns: 100px 1fr; padding: 14px 0; border-bottom: 1px solid var(--sa-line); align-items: center; }
.sa-contact-info dt { font-size: 14.5px; font-weight: 500; color: var(--sa-muted); }
.sa-contact-info dd { margin: 0; }
.sa-contact-info a { color: var(--sa-slate); font-weight: 600; font-size: 16.5px; }
.sa-contact-info a:hover { color: var(--sa-blue); }
.sa-form-col > .elementor-widget-wrap { background: var(--sa-grey); border-radius: var(--sa-radius); padding: 40px 36px 28px !important; }
.sa-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.sa-f--full { grid-column: 1 / -1; }
.sa-f label { display: block; font-size: 14.5px; font-weight: 500; color: var(--sa-slate); margin-bottom: 6px; }
.sa-form .wpcf7-form-control:not(.wpcf7-submit) {
  width: 100% !important; background: #fff !important; border: 1px solid #CBD5E1 !important; border-radius: var(--sa-radius) !important;
  padding: 13px 14px !important; font-family: var(--sa-sans) !important; font-size: 16px !important; color: var(--sa-slate) !important;
  height: auto !important; line-height: 1.4 !important; box-shadow: none !important;
}
.sa-form select { -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #0F172A 50%), linear-gradient(135deg, #0F172A 50%, transparent 50%) !important; background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50% !important; background-size: 5px 5px !important; background-repeat: no-repeat !important; }
.sa-form textarea { min-height: 150px !important; height: 150px !important; }
.sa-form .wpcf7-form-control:focus { border-color: var(--sa-blue) !important; outline: 2px solid rgba(30, 91, 255, .2); outline-offset: 0; }
.sa-form .wpcf7-submit { position: static !important; width: auto !important; background: var(--sa-blue) !important; color: #fff !important; border: 0 !important; border-radius: var(--sa-radius) !important; padding: 16px 28px !important; font-family: var(--sa-sans) !important; font-weight: 600 !important; font-size: 15.5px !important; cursor: pointer; height: auto !important; text-transform: none !important; }
.sa-form .wpcf7-submit:hover { background: var(--sa-blue-d) !important; }
.sa-form .nice-select { display: none !important; }
.sa-form select.wpcf7-select { display: block !important; }

/* ---------- footer ---------- */
.elementor-section.sa-footer, .elementor-section.sa-footer-bottom { background: var(--sa-slate); }
.sa-footer .sa-foot-logo img { width: 160px; }
.sa-foot-text p { color: #94A3B8 !important; font-size: 15.5px; line-height: 1.65; max-width: 360px; margin: 16px 0 20px; }
.sa-social { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(148, 163, 184, .35); color: #fff; border-radius: var(--sa-radius); }
.sa-social:hover { background: var(--sa-blue); border-color: var(--sa-blue); color: #fff; }
.sa-foot-h { font-family: var(--sa-sans); font-size: 15px; font-weight: 600; color: #fff; margin: 0 0 16px; letter-spacing: 0; }
.sa-foot-list { list-style: none; margin: 0; padding: 0; }
.sa-foot-list li { margin: 0 0 10px; }
.sa-foot-list a { color: #CBD5E1; font-size: 15.5px; }
.sa-foot-list a:hover { color: #fff; }
.sa-foot-bottom { border-top: 1px solid rgba(148, 163, 184, .18); padding: 22px 0 26px; color: #94A3B8; font-size: 14px; }

/* 404 */
.error-404 img { filter: hue-rotate(205deg) saturate(1.1); max-width: 240px; }

/* ---------- motion: quiet, and off for reduced-motion users ---------- */
.elementor-element.animated-fast { animation-duration: .6s !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .elementor-invisible { visibility: visible !important; }
  .animated, .elementor-element.animated { animation: none !important; transition: none !important; }
  * { transition-duration: 0s !important; }
}

/* ---------- responsive ---------- */
@media (max-width: 1199px) {
  .sa-steps { grid-template-columns: repeat(4, 1fr); row-gap: 28px; }
}
@media (max-width: 1024px) {
  .sa-h2 .elementor-heading-title { font-size: 32px; }
  .sa-hero-title .elementor-heading-title { font-size: 42px; }
  .sa-banner-title .elementor-heading-title { font-size: 40px; }
  .sa-copy-col > .elementor-widget-wrap, .sa-hero-copy > .elementor-widget-wrap, .sa-group-head > .elementor-widget-wrap { padding-right: 10px !important; }
  .sa-cta-actions > .elementor-widget-wrap { justify-content: flex-start; margin-top: 20px; }
  .sa-jump-wrap { position: static; }
}
@media (max-width: 767px) {
  body, body p { font-size: 16px; }
  .sa-hero-title .elementor-heading-title { font-size: 34px; }
  .sa-hero-lead p { font-size: 16.5px; }
  .sa-img--hero img { height: 280px; margin-top: 12px; }
  .sa-img--side img { height: 260px; }
  .sa-h2 .elementor-heading-title, .sa-group-head .sa-h2 .elementor-heading-title { font-size: 27px; }
  .sa-sub p { font-size: 16.5px; }
  .elementor-section .elementor-widget.sa-sub:not(:last-child) { margin-bottom: 28px !important; }
  .sa-banner-title .elementor-heading-title { font-size: 32px; }
  .sa-banner-lead p { font-size: 16.5px; }
  .sa-list--2col { grid-template-columns: 1fr; }
  .sa-list--2col li:nth-child(2) { border-top: 0; }
  .sa-steps { grid-template-columns: 1fr 1fr; }
  .sa-fact-row .elementor-column { margin-bottom: 28px; }
  .sa-cta .sa-h2 .elementor-heading-title { font-size: 26px; }
  .sa-mv p { font-size: 19px; }
  .sa-mv { padding: 0 0 20px; }
  .sa-form-grid { grid-template-columns: 1fr; }
  .sa-form-col > .elementor-widget-wrap { padding: 28px 18px 18px !important; }
  .sa-ind img { height: 200px; }
  .sa-contact-info > div { grid-template-columns: 80px 1fr; }
  .sa-contact-info a { font-size: 15.5px; word-break: break-word; }
  .sa-jump { gap: 4px 18px; }
}
.sa-nowrap { white-space: nowrap; }

/* ---------- home services directory ---------- */
.sa-dir .elementor-column > .elementor-widget-wrap { padding-right: 24px !important; }
.sa-dir__group { margin-bottom: 26px; }
.sa-dir__group h3 { font-size: 17px; font-weight: 600; margin: 0 0 8px; padding-bottom: 8px; border-bottom: 1px solid var(--sa-line); }
.sa-dir__group h3 a { color: var(--sa-slate); }
.sa-dir__group h3 a:hover { color: var(--sa-blue); }
.sa-dir__group ul { list-style: none; margin: 0; padding: 0; }
.sa-dir__group li { margin: 0; }
.sa-dir__group li a { display: block; padding: 5px 0; font-size: 15.5px; color: var(--sa-text); }
.sa-dir__group li a:hover { color: var(--sa-blue); }

/* ---------- FAQ (native details/summary) ---------- */
.sa-faq { border-top: 1px solid var(--sa-line); max-width: 900px; }
.sa-faq__item { border-bottom: 1px solid var(--sa-line); }
.sa-faq__item summary { list-style: none; cursor: pointer; padding: 18px 40px 18px 0; position: relative; font-size: 18px; font-weight: 600; color: var(--sa-slate); line-height: 1.4; }
.sa-faq__item summary::-webkit-details-marker { display: none; }
.sa-faq__item summary::after { content: "+"; position: absolute; right: 6px; top: 16px; font-size: 22px; font-weight: 400; color: var(--sa-blue); }
.sa-faq__item[open] summary::after { content: "\2212"; }
.sa-faq__item summary:hover { color: var(--sa-blue); }
.sa-faq__item summary:focus-visible { outline: 2px solid var(--sa-blue); outline-offset: 2px; }
.sa-faq__a p { margin: 0 0 20px; font-size: 16.5px; line-height: 1.65; max-width: 780px; }
@media (max-width: 767px) { .sa-faq__item summary { font-size: 16.5px; } }
.elementor-section.sa-sec--faq > .elementor-container { padding-top: 0; } .elementor-section.sa-sec--faq { padding-top: 10px !important; }
