/* ==========================================================================
   AIM Icon Render Fix
   Final safety layer: prevents blank icons by forcing inline SVG shapes to draw.
   ========================================================================== */

/* If an inline SVG has paths without stroke attributes, render them anyway. */
main svg[viewBox="0 0 24 24"] path,
main svg[viewBox="0 0 24 24"] circle,
main svg[viewBox="0 0 24 24"] rect,
main svg[viewBox="0 0 24 24"] line,
main svg[viewBox="0 0 24 24"] polyline,
main svg[viewBox="0 0 24 24"] polygon,
.site-header svg[viewBox="0 0 24 24"] path,
.site-header svg[viewBox="0 0 24 24"] circle,
.site-header svg[viewBox="0 0 24 24"] rect,
.site-header svg[viewBox="0 0 24 24"] line,
.site-header svg[viewBox="0 0 24 24"] polyline,
.site-header svg[viewBox="0 0 24 24"] polygon {
  stroke: currentColor !important;
  fill: none !important;
  stroke-width: 2.15 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke;
}

/* Full list of icon containers used across the site. */
.service-icon,
.card-icon,
.feature-icon,
.patient-option-icon,
.service-detail-icon,
.service-feature-icon,
.service-visual-icon,
.resource-category-icon,
.resource-quick-icon,
.services-choice-icon,
.condition-card-icon,
.credential-mini-icon,
.about-trust-icon,
.trust-icon,
.credential-icon,
.office-icon,
.contact-quick-icon,
.side-card-icon,
.notice-icon,
.mini-contact-icon,
.visit-step-icon,
.services-hero-card-icon,
.resources-hero-callout-icon,
.philosophy-card-icon,
.what-step-icon,
.before-icon,
.approach-icon {
  width: 54px !important;
  height: 54px !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 auto;
  border-radius: 50% !important;
  background:
    radial-gradient(circle at 30% 25%, #ffffff 0%, var(--aim-sky-soft, #eaf5fb) 74%) !important;
  border: 1px solid rgba(79, 163, 217, 0.30) !important;
  color: var(--aim-sky-700, #2f7fb3) !important;
  box-shadow:
    0 6px 16px rgba(4, 34, 73, 0.055),
    inset 0 0 0 1px rgba(255, 255, 255, 0.72) !important;
}

.service-icon svg,
.card-icon svg,
.feature-icon svg,
.patient-option-icon svg,
.service-detail-icon svg,
.service-feature-icon svg,
.service-visual-icon svg,
.resource-category-icon svg,
.resource-quick-icon svg,
.services-choice-icon svg,
.condition-card-icon svg,
.credential-mini-icon svg,
.about-trust-icon svg,
.trust-icon svg,
.credential-icon svg,
.office-icon svg,
.contact-quick-icon svg,
.side-card-icon svg,
.notice-icon svg,
.mini-contact-icon svg,
.visit-step-icon svg,
.services-hero-card-icon svg,
.resources-hero-callout-icon svg,
.philosophy-card-icon svg,
.what-step-icon svg,
.before-icon svg,
.approach-icon svg {
  width: 28px !important;
  height: 28px !important;
}

/* Larger hero/visual icons stay intentionally larger. */
.service-visual-icon {
  width: 92px !important;
  height: 92px !important;
}

.service-visual-icon svg {
  width: 46px !important;
  height: 46px !important;
}

/* Dark panels: keep icons high contrast. */
.trust-panel .trust-icon,
.credential-panel .credential-icon,
.about-trust-panel .about-trust-icon,
.about-trust-strip .about-trust-icon,
.before-visit-section .before-icon,
.services-blue-cta .services-blue-leaf {
  color: #ffffff !important;
}

/* Footer glyphs are intentional text symbols, not missing icons. */
.site-footer .footer-icon {
  display: inline-block !important;
  width: 20px !important;
  height: auto !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--aim-sky-300, #a9d5ee) !important;
  font-weight: 800 !important;
  font-size: 15px !important;
}

/* Buttons should have compact icons. */
.btn svg,
.button svg,
.nav-cta svg,
.footer-cta svg {
  width: 17px !important;
  height: 17px !important;
}
