/* EFM 2.2.5: keep outline artwork and component sizing independent of kit defaults. */
.efm-main .elementor-widget-icon.elementor-view-default .elementor-icon {
  color: var(--efm-icon-color, var(--efm-blue));
}
.efm-main .elementor-icon svg[stroke="currentColor"][fill="none"],
.efm-header .elementor-icon svg[stroke="currentColor"][fill="none"],
.efm-footer .elementor-icon svg[stroke="currentColor"][fill="none"] {
  fill: none;
  stroke: currentColor;
}
.efm-main :is(.efm-brand-statement, .efm-role, .efm-domain-index, .efm-developers, .efm-contact) {
  --efm-icon-color: var(--efm-ice, #b5d7ff);
}
.efm-main .efm-service-featured { --efm-icon-color: #fff; }
.efm-main .efm-page-hero { --efm-icon-color: var(--efm-blue); }

/* Section headings must not enlarge the headings inside individual cards. */
.efm-main .efm-domain-card .elementor-heading-title { font-size: 1.37rem; line-height: 1.45; }
.efm-main .efm-home-services .efm-domain-card .elementor-heading-title { font-size: 1.28rem; }
.efm-main .elementor-button-text { min-width: 0; overflow-wrap: anywhere; }
.efm-main .elementor-button-icon, .efm-header .elementor-button-icon, .efm-footer .elementor-button-icon { flex-shrink: 0; }

@media (max-width: 767px) {
  .efm-main .efm-domain-card .elementor-heading-title { font-size: 1.2rem; }
  .efm-main .efm-home-services .efm-domain-card .elementor-heading-title { font-size: 1.13rem; }
  .efm-main .efm-brand-statement .elementor-heading-title { font-size: 1.55rem; }
  .efm-main .efm-process-detail .elementor-heading-title { font-size: 1.5rem; }
  .efm-main .efm-role .elementor-heading-title { font-size: 1.45rem; }
  .efm-main .efm-service-featured .elementor-heading-title { font-size: 1.25rem; }
  .efm-footer .elementor-button-icon { display: inline-flex; }
  .efm-footer .elementor-button-content-wrapper { gap: 8px; }
  .efm-footer .elementor-button-text { min-width: 0; overflow-wrap: anywhere; }
}

@media (max-width: 1024px) {
  .efm-header .efm-main-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
  .efm-header .efm-main-nav .elementor-nav-menu--dropdown .elementor-item.highlighted,
  .efm-header .efm-main-nav .elementor-nav-menu--dropdown .elementor-item:hover,
  .efm-header .efm-main-nav .elementor-nav-menu--dropdown .elementor-item:focus {
    background: #e4ecf8;
    color: #081c5b !important;
  }
}

@media (max-width: 479px) {
  .efm-main .efm-domains-grid.e-con,
  .efm-main .efm-services-grid.e-con,
  .efm-main .efm-developer-grid.e-con { grid-template-columns: minmax(0, 1fr); }
  .efm-main .efm-domain-card.e-con { padding: 25px 22px; }
  .efm-main .efm-home-services .efm-domain-card.e-con { padding: 24px 0; }
  .efm-main .efm-domain-card .elementor-widget-text-editor { font-size: 1rem; }
  .efm-main .efm-domain-card .elementor-heading-title,
  .efm-main .efm-home-services .efm-domain-card .elementor-heading-title { font-size: 1.25rem; }
  .efm-main .efm-service .elementor-icon-box-title { font-size: 1.15rem; }
  .efm-main .efm-service .elementor-icon-box-description,
  .efm-main .efm-developer-item .elementor-icon-box-description { font-size: 1rem; line-height: 1.8; }
  .efm-main .efm-process-detail.e-con { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .efm-main .efm-process-mark.e-con { border: 0; padding: 0; }
  .efm-main .efm-related-link .elementor-button { padding: 15px; }
}
