/* Client review, October 2026. Native Elementor content with responsive styling. */
.efm-about-visual.efm-founder-visual.e-con { width:100%; max-width:440px; margin-inline:auto; padding:0; gap:0; }
.efm-founder-visual .efm-founder-portrait img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:0; clip-path:none; }
.efm-founder-portrait figure { margin:0; }
.efm-founder-portrait .widget-image-caption { padding:16px 20px; margin:0; background:#fff; color:var(--efm-navy); font-size:1.1rem; font-weight:600; font-style:normal; text-align:right; }
.efm-founder-visual .efm-experience.e-con { position:static; inset:auto; width:100%; max-width:none; margin:0; padding:14px 20px; flex-direction:row; align-items:center; justify-content:flex-start; gap:18px; }
.efm-founder-visual .efm-experience .elementor-widget { width:auto; margin:0; }
.efm-founder-visual .efm-experience p { margin:0; }
.efm-founder-visual .efm-experience .elementor-heading-title { font-size:2.45rem; line-height:1.2; }
.efm-hero-title .elementor-heading-title span { color:#b5d7ff; }
.efm-home-services .efm-services-grid .elementor-icon-box-title { color:var(--efm-navy); }
.efm-home-services .efm-services-grid .elementor-icon-box-description { color:var(--efm-text); }
.efm-home-services .efm-services-grid .elementor-icon { color:var(--efm-blue); }
/* Keep each card's background, text and outline artwork in the same state.
   These selectors also outrank Elementor kit hover defaults. */
.efm-main .efm-services-grid .efm-service.elementor-widget,
.efm-main .efm-services-grid .efm-service.elementor-widget :is(.elementor-icon,.elementor-icon-box-title,.elementor-icon-box-description) { transition:none; }
.efm-main .efm-services-grid .efm-service.elementor-widget:is(:hover,:focus-within) { background:#12326e; }
.efm-main .efm-services-grid .efm-service.elementor-widget:is(:hover,:focus-within) .elementor-icon-box-title,
.efm-main .efm-services-grid .efm-service.elementor-widget:is(:hover,:focus-within) .elementor-icon-box-title :is(a,span) { color:#fff; }
.efm-main .efm-services-grid .efm-service.elementor-widget:is(:hover,:focus-within) .elementor-icon-box-description { color:#e6efff; }
.efm-main .efm-services-grid .efm-service.elementor-widget:is(:hover,:focus-within) .elementor-icon { color:#b5d7ff; border-color:#b5d7ff; }
.efm-main .efm-services-grid .efm-service.elementor-widget:is(:hover,:focus-within) .elementor-icon svg { fill:none; stroke:currentColor; }
.efm-home-developer-points.e-con { grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 40px; }
.efm-home-developer-grid.e-con { align-items:start; }
.efm-home-developer-image img { height:370px; object-position:center; }
.efm-developer-item .elementor-icon-box-title { line-height:1.45; }
.efm-developer-grid .elementor-icon { color:#b5d7ff; }
.efm-developer-grid .elementor-icon svg { width:38px; height:38px; fill:none; stroke:currentColor; }
/* Elementor Pro 4.2.3 adds global icon and hover colors with higher specificity. */
.efm-main .efm-developer-grid .elementor-widget-icon-box.elementor-view-default .elementor-icon { color:#b5d7ff; }
.efm-main .efm-developer-grid .elementor-widget-icon-box .elementor-icon-box-title,
.efm-main .efm-developer-grid .elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
.efm-main .efm-developer-grid .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title { color:#fff; }
.efm-process-sequence.e-con { gap:34px; }
.efm-process-sequence:before { display:none; }
.efm-process-sequence .efm-step.e-con { border-top:0; }
.efm-process-sequence .efm-step:not(:last-child):after { content:'←'; position:absolute; inset-inline-end:-29px; top:43px; color:var(--efm-blue); font-size:1.6rem; line-height:1; }
.efm-testimonial-carousel { margin-top:28px; width:100%; min-width:0; }
.efm-testimonial-carousel .swiper { padding-bottom:48px; }
.efm-testimonial-carousel .swiper-slide { background:#fff; border-top:3px solid var(--efm-blue); height:auto; }
.efm-testimonial-carousel .elementor-testimonial { padding:32px; text-align:right; }
.efm-testimonial-carousel .elementor-testimonial__content { min-height:100px; }
.efm-testimonial-carousel .elementor-testimonial__text { font-family:Heebo,sans-serif; font-size:1.35rem; line-height:1.8; color:var(--efm-navy); font-style:normal; }
.efm-testimonial-carousel .elementor-testimonial__name { color:var(--efm-navy); font-weight:600; font-family:Heebo,sans-serif; }
.efm-testimonial-carousel .elementor-testimonial__title { color:#414754; font-size:.95rem; font-family:Heebo,sans-serif; }
.elementor .elementor-widget.efm-testimonial-carousel .elementor-swiper-button { width:44px; height:44px; padding:12px; border:1px solid #a9b7cb; background:#fff; border-radius:50%; color:var(--efm-navy); top:auto; bottom:0; transform:none; }
.elementor .elementor-widget.efm-testimonial-carousel .elementor-swiper-button-prev { left:52px; right:auto; }
.elementor .elementor-widget.efm-testimonial-carousel .elementor-swiper-button-next { left:0; right:auto; }
.elementor .elementor-widget.efm-testimonial-carousel .elementor-swiper-button svg { fill:currentColor; }
.efm-testimonial-carousel .swiper-pagination { width:auto; right:0; left:auto; bottom:10px; }
.efm-testimonial-carousel .swiper-pagination-bullet { width:10px; height:10px; }
.efm-header-actions.e-con { gap:2px; }
.efm-header .efm-icon-button .elementor-button { min-width:44px; min-height:44px; padding:11px; color:var(--efm-navy); background:transparent; border:0; }
.efm-header .efm-icon-button .elementor-button:hover { background:#e7ebf2; }
.efm-header .efm-icon-button svg { fill:none; stroke:currentColor; width:20px; height:20px; }
.efm-footer-contact-section.e-con { background:#e7ebf2; color:var(--efm-navy); padding-block:58px; }
.efm-footer-contact-section:after { display:none; }
.efm-footer-contact-section > .efm-shell { position:relative; z-index:1; }
.efm-footer-contact-section .elementor-heading-title { color:var(--efm-navy); }
.efm-footer-contact-section .elementor-widget-text-editor { margin-bottom:25px; }
.efm-footer-form .elementor-form-fields-wrapper { align-items:flex-end; column-gap:0; }
.efm-footer-form textarea.elementor-field { min-height:70px; }
.efm-footer-form .elementor-field-type-submit { padding-bottom:18px; }
.efm-footer-form .elementor-button { margin-top:0; min-height:70px; color:#fff; background:var(--efm-blue); }
.efm-footer > .efm-shell > .efm-footer-brand.e-con { display:flex; flex-direction:row; align-items:center; gap:32px; padding-bottom:32px; }
.efm-footer-top.e-con { grid-template-columns:.8fr 1.3fr 1.15fr 1fr; gap:35px; }
.efm-footer-cities .elementor-heading-title { max-width:230px; line-height:1.7; }
.efm-footer-cities ul { list-style:none; padding:0; margin:0; }
.efm-footer-top ul { list-style:none; padding:0; margin:0; }
/* Use the same typography for plain city names and linked footer services. */
.efm-footer .efm-footer-links a,
.efm-footer .efm-footer-cities li {
 font-family:var(--efm-body),sans-serif;
 font-size:.9rem;
 font-weight:400;
 line-height:2.5;
 color:var(--efm-navy);
}
.efm-footer .efm-footer-cities li { margin:0; }
.efm-footer .efm-footer-links a:hover { color:#005ab3; }
.efm-footer .efm-contact-phone-number .elementor-button-text { direction:ltr; unicode-bidi:isolate; }
@media(max-width:1024px) {
 .efm-home-developer-points.e-con { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .efm-footer-top.e-con { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
 .efm-home-developer-points.e-con { gap:30px 24px; }
 .efm-home-developer-image img { height:270px; }
 .efm-process-sequence.e-con { gap:22px; }
 .efm-process-sequence .efm-step.e-con { padding-block:16px; }
 .efm-process-sequence .efm-step:not(:last-child):after { content:'↓'; top:auto; bottom:-20px; inset-inline-end:auto; inset-inline-start:18px; }
 .efm-testimonial-carousel .elementor-testimonial { padding:26px; }
 .efm-testimonial-carousel .elementor-testimonial__text { font-size:1.2rem; }
 .efm-testimonial-carousel .elementor-testimonial__content { min-height:140px; }
 .efm-footer-contact-section.e-con { padding-block:42px; }
 .efm-footer-form .elementor-button { min-height:54px; }
 .efm-footer > .efm-shell > .efm-footer-brand.e-con { flex-direction:column; align-items:flex-start; gap:14px; }
 .efm-footer-bottom.e-con { padding-block:12px 0; gap:3px; }
 .efm-footer.e-con { padding-bottom:14px; }
 .efm-footer-top.e-con { gap:28px 22px; }
 .efm-footer .elementor-button-icon svg { fill:none; stroke:currentColor; }
}
@media(max-width:479px) {
 .efm-home-developer-points.e-con { grid-template-columns:minmax(0,1fr); }
 .efm-header-inner.e-con { display:grid; grid-template-columns:1fr auto; gap:0 8px; padding-block:5px; }
 .efm-header .efm-logo { grid-column:1; grid-row:1; }
 .efm-header .efm-main-nav { grid-column:2; grid-row:1; }
 .efm-header-actions.e-con { grid-column:1/-1; grid-row:2; margin:0; width:100%; justify-content:flex-start; gap:8px; }
 .efm-header-actions:not(:has(.efm-channel-phone)):not(:has(.efm-channel-whatsapp)):not(:has(.efm-channel-facebook)):not(:has(.efm-channel-instagram)) { grid-column:1; grid-row:1; justify-self:end; width:auto; margin-inline-end:0; }
 .efm-header-inner:has(.efm-header-actions .efm-channel-phone) { min-height:120px; }
 .efm-footer-top.e-con { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .efm-testimonial-carousel .swiper-wrapper { transition-duration:0ms!important; } }
