/* ==========================================================================
   AIM Strong Icon System
   Linked last across the site.
   Goal: make icons visually stronger, clearer, and more consistent without
   disturbing page layouts or prior fixes.
   ========================================================================== */

/* Global inline SVG normalization. Applies to the site’s UI icons, not logo images. */
main svg[viewBox="0 0 24 24"],
.site-header svg[viewBox="0 0 24 24"],
.site-footer svg[viewBox="0 0 24 24"] {
  display: block;
  flex-shrink: 0;
}

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-width: 2.15 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke;
}

/* Shared icon container treatment. */
.service-icon,
.card-icon,
.feature-icon,
.patient-option-icon,
.service-detail-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 {
  width: 54px !important;
  height: 54px !important;
  display: grid !important;
  place-items: center !important;
  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,
.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 {
  width: 27px !important;
  height: 27px !important;
}

/* Inline old-style icon spans in older pages become proper icon circles too. */
main a > span[style*="color:var(--aim-olive)"][style*="display:block"],
main div > span[style*="color:var(--aim-olive)"][style*="display:block"],
main span[style*="color:var(--aim-olive)"][style*="margin-bottom"] {
  width: 54px !important;
  height: 54px !important;
  display: grid !important;
  place-items: center !important;
  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;
  margin-bottom: 16px !important;
  box-shadow:
    0 6px 16px rgba(4, 34, 73, 0.055),
    inset 0 0 0 1px rgba(255, 255, 255, 0.72) !important;
}

/* Icons on dark panels need higher contrast and warmth. */
.trust-panel .trust-icon,
.credential-panel .credential-icon,
.about-trust-panel .about-trust-icon,
.about-trust-strip .about-trust-icon,
.site-footer .footer-icon {
  background: rgba(111, 127, 88, 0.92) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

/* Footer glyphs are text icons, so make them clearer but do not turn them into circles. */
.site-footer .footer-icon {
  display: inline-block !important;
  width: 20px !important;
  height: auto !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--aim-sky-300, #a9d5ee) !important;
  font-weight: 800 !important;
  font-size: 15px !important;
}

/* Button icons should be crisp but not oversized. */
.btn svg,
.button svg,
.nav-cta svg,
.footer-cta svg {
  width: 17px !important;
  height: 17px !important;
}

.btn svg path,
.btn svg rect,
.btn svg circle,
.button svg path,
.button svg rect,
.button svg circle,
.nav-cta svg path,
.nav-cta svg rect,
.nav-cta svg circle,
.footer-cta svg path,
.footer-cta svg rect,
.footer-cta svg circle {
  stroke-width: 2.05 !important;
}

/* Small list/check icons should not become huge. */
.check-list li::before,
.credentials-list li::before,
.services-portal-list span::before,
.patient-large-card li::before,
.condition-card-list li::before {
  font-weight: 900 !important;
  color: var(--aim-olive-900, #4f5d3c) !important;
}

/* Make the card interaction icons feel active and intentional. */
.service-detail-card:hover .service-detail-icon,
.resource-category-card:hover .resource-category-icon,
.patient-option-card:hover .patient-option-icon,
.service-card:hover .service-icon,
.condition-card:hover .condition-card-icon {
  background: #ffffff !important;
  border-color: rgba(79, 163, 217, 0.48) !important;
  color: var(--aim-blue, #042249) !important;
  transform: translateY(-1px);
}

/* Preserve the delicate leaf/large decorative illustrations. */
.cta-leaf svg,
.leaf-mark svg,
.pre-footer-mark svg,
.about-left-leaf-accent,
.about-quote-boat {
  filter: none !important;
}

/* Mobile: slightly smaller icon circles. */
@media (max-width: 720px) {
  .service-icon,
  .card-icon,
  .feature-icon,
  .patient-option-icon,
  .service-detail-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 {
    width: 50px !important;
    height: 50px !important;
  }

  .service-icon svg,
  .card-icon svg,
  .feature-icon svg,
  .patient-option-icon svg,
  .service-detail-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 {
    width: 25px !important;
    height: 25px !important;
  }
}


/* Symbol sprite icon rendering */
.aim-icon-svg {
  width: 28px;
  height: 28px;
  stroke: currentColor;
  stroke-width: 2.15;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}

.aim-icon-svg path,
.aim-icon-svg circle,
.aim-icon-svg rect,
.aim-icon-svg line,
.aim-icon-svg polyline,
.aim-icon-svg polygon {
  vector-effect: non-scaling-stroke;
}


/* Inline generated icon rendering - no external sprite required */
.aim-icon-svg {
  width: 28px !important;
  height: 28px !important;
  stroke: currentColor !important;
  stroke-width: 2.15 !important;
  fill: none !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  display: block !important;
}

.aim-icon-svg path,
.aim-icon-svg circle,
.aim-icon-svg rect,
.aim-icon-svg line,
.aim-icon-svg polyline,
.aim-icon-svg polygon {
  vector-effect: non-scaling-stroke;
}

/* Defensive: hide any broken empty SVGs that somehow remain, then show generated ones. */
svg:empty {
  display: none !important;
}

.aim-icon-svg:empty {
  display: block !important;
}
