/* One SVG family, with optical sizes tuned to each interface element. */
.site-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  vertical-align: middle;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.button { gap: 12px; }
.button .site-icon,
.inline-link .site-icon { width: 17px; height: 17px; }
.inline-link:has(.site-icon) { display: inline-flex; align-items: center; gap: 10px; }
.button .site-icon,
.inline-link .site-icon,
.footer-social-link > .site-icon { transition: transform .2s ease; }
.button:hover .site-icon,
.inline-link:hover .site-icon { transform: translateX(2px); }
.footer-social-link:hover > .site-icon { transform: translate(2px, -2px); }

.site-header .menu-toggle { color: var(--ink); }
.site-header .menu-toggle .site-icon { width: 24px; height: 24px; }
.site-header .menu-toggle .menu-icon-close { display: none; }
.site-header .menu-toggle[aria-expanded="true"] .menu-icon-open { display: none; }
.site-header .menu-toggle[aria-expanded="true"] .menu-icon-close { display: block; }
.page-home .site-header .menu-toggle { color: #fffaf4; }
.page-home .site-header .menu-toggle[aria-expanded="true"] { color: var(--ink); }

.home-pulse-card .home-pulse-icon {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid currentColor;
  border-color: color-mix(in srgb, currentColor 22%, transparent);
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  color: inherit;
  opacity: 1;
}
.home-pulse-icon .site-icon { width: 26px; height: 26px; }
.page-home .hero-banner-features .site-icon { width: 17px; height: 17px; color: #dce9be; }
.space-card-top .site-icon { width: 28px; height: 28px; }
.space-masthead-note > .site-icon { width: 28px; height: 28px; margin-left: auto; color: var(--gold); }
.icon-label { display: inline-flex; align-items: center; gap: 9px; }
.icon-label .site-icon { width: 17px; height: 17px; }
.site-footer-wrap .footer-details dt { display: inline-flex; align-items: center; gap: 8px; }
.site-footer-wrap .footer-details dt .site-icon { width: 15px; height: 15px; color: var(--gold); }
.site-footer-wrap .footer-social-icon .site-icon { width: 22px; height: 22px; stroke-width: 1.75; }
.footer-social-link > .site-icon { width: 17px; height: 17px; color: var(--gold); }

/* Keep the WhatsApp brand silhouette filled, without an extra outline. */
.site-icon[data-icon="whatsapp"] {
  color: #25d366;
  fill: currentColor;
  stroke: none;
}

.site-icon[data-icon="whatsapp"] path {
  fill: currentColor;
  stroke: none;
}

.admin-dashboard-page .nav-icon .site-icon { width: 20px; height: 20px; stroke-width: 1.75; }
.admin-dashboard-page .sidebar-logo-mark .site-icon { width: 24px; height: 24px; stroke-width: 1.75; }
.admin-dashboard-page .metric-icon .site-icon { width: 22px; height: 22px; stroke-width: 1.75; }
.admin-dashboard-page .profile-menu-link-icon .site-icon { width: 17px; height: 17px; stroke-width: 1.75; }
.admin-dashboard-page .dashboard-profile-button .profile-icon .site-icon { width: 22px; height: 22px; stroke-width: 1.75; }
.admin-dashboard-page .account-heading-icon .site-icon { stroke-width: 1.75; }
.admin-dashboard-page .menu-row-action .site-icon,
.admin-dashboard-page .user-delete-button .site-icon { stroke-width: 1.75; }
.admin-body .password-toggle .site-icon { width: 19px; height: 19px; stroke-width: 1.75; }
.admin-body .password-toggle .password-icon-hide { display: none; }
.admin-body .password-toggle.is-visible .password-icon-show { display: none; }
.admin-body .password-toggle.is-visible .password-icon-hide { display: inline-block; }
.admin-body .account-form-footer p > .site-icon { width: 16px; height: 16px; margin-right: 6px; }
.admin-mobile-toggle .site-icon,
.sidebar-close .site-icon { width: 22px; height: 22px; }
.sidebar-close { min-width: 44px; min-height: 44px; }
.form-success span > .site-icon { width: 15px; height: 15px; }

@media (min-width:901px) {
  .home-pulse-card .home-pulse-icon {
    color: var(--terracotta);
    background: rgba(184,102,72,.06);
    border-color: rgba(184,102,72,.16);
  }
}

@media (max-width:760px) {
  .admin-dashboard-page .admin-mobile-toggle { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion:reduce) {
  .site-icon { transition: none !important; }
  .button:hover .site-icon,
  .inline-link:hover .site-icon,
  .footer-social-link:hover > .site-icon { transform: none; }
}
