/* EFM corporate pages: shared navigation, content hierarchy and service iconography. */
.efm-header .efm-header-email .elementor-button { background:transparent; border-color:#5b748b; }
.efm-main-nav .current-menu-item > a,.efm-main-nav .current-menu-ancestor > a { color:var(--efm-ice)!important; }
.efm-hero-secondary.elementor-widget { margin-top:12px; }
.efm-hero .efm-hero-secondary .elementor-button { background:transparent; border-color:#b4c8d8; color:#fff; padding:10px 20px; min-height:44px; font-size:.88rem; box-shadow:none; }
.efm-hero .efm-hero-secondary .elementor-button:hover { background:#081c5b; }
.efm-main .efm-text-link .elementor-button { background:none; color:var(--efm-blue); padding:12px 0; text-align:right; border:0; font-size:.95rem; box-shadow:none; }
.efm-main .efm-text-link .elementor-button:hover { text-decoration:underline; text-underline-offset:5px; }
.efm-about .efm-text-link,.efm-process .efm-text-link { margin-top:25px; }
.efm-home-services .elementor-widget-heading { margin-bottom:34px; }
.efm-home-services .efm-service-featured .elementor-widget-heading { margin:0; }
.efm-home-services .efm-service-featured { margin-bottom:24px; }
.efm-domains-grid.e-con { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border-top:1px solid #ffffff35; border-right:1px solid #ffffff35; }
.efm-domain-card.e-con { position:relative; padding:30px 26px; border-left:1px solid #ffffff35; border-bottom:1px solid #ffffff35; align-items:flex-start; }
.efm-main .efm-domain-card .elementor-icon { color:var(--efm-ice); }
.efm-main .efm-domain-card .elementor-icon svg { width:45px; height:45px; stroke-width:1.4; }
.efm-domain-card .elementor-widget-icon { margin-bottom:22px; }
.efm-domain-card .elementor-widget-heading { margin-bottom:12px; }
.efm-domain-card .elementor-heading-title { font-size:1.37rem; color:#fff; line-height:1.45; }
.efm-domain-card .elementor-widget-text-editor { font-size:.96rem; color:#c5d5e2; line-height:1.85; margin-bottom:20px; }
.efm-domain-card .efm-text-link { margin-top:auto; }
.efm-main .efm-domain-card .efm-text-link .elementor-button { color:var(--efm-ice); font-size:.86rem; }
.efm-all-services { margin-top:32px; }
.efm-home-developer-grid.e-con { display:grid; grid-template-columns:1fr 1.1fr; gap:80px; align-items:center; }
.efm-home-developer-image img { width:100%; height:365px; object-fit:cover; }
.efm-step-icon.elementor-widget { margin-bottom:20px; }
.efm-step-icon .elementor-icon { border:1px solid #95aec2; border-radius:50%; padding:16px; background:var(--efm-paper); }
.efm-main .efm-step-icon .elementor-icon svg { width:32px; height:32px; }
.efm-step-number.elementor-widget { margin-bottom:15px; }
.efm-step-number p { font-size:1.4rem; font-weight:450; justify-content:flex-end; }
.efm-closing.e-con { background:#12326e; color:#e2ecf4; padding-block:66px; }
.efm-closing-grid.e-con { display:grid; grid-template-columns:1fr auto; gap:70px; align-items:center; }
.efm-closing .efm-kicker p { color:var(--efm-ice); }
.efm-closing .elementor-heading-title { color:#fff; font-size:2.5rem; }
.efm-closing .elementor-widget-heading { margin-bottom:14px; }
.efm-closing .elementor-widget-text-editor { max-width:610px; }
.efm-footer-top.e-con { grid-template-columns:1.2fr 1fr 1fr 1fr; gap:45px; }

/* Each inner page has one compact photographic introduction and one H1. */
.efm-page-hero.e-con { background:var(--efm-ink); color:#dce7f0; padding-block:54px 62px; }
.efm-page-hero-grid.e-con { display:grid; grid-template-columns:1.1fr .9fr; gap:76px; align-items:center; }
.efm-page-hero-copy.e-con { align-items:flex-start; }
.efm-breadcrumbs.elementor-widget { margin-bottom:26px; font-size:.79rem!important; line-height:1.7; }
.efm-breadcrumbs p { display:flex; align-items:center; flex-wrap:wrap; gap:11px; }
.efm-breadcrumbs a { text-decoration:underline; text-underline-offset:4px; }
.efm-breadcrumbs span[aria-hidden] { color:#94aabf; }
.efm-page-symbol.elementor-widget { margin-bottom:22px; }
.efm-main .efm-page-symbol .elementor-icon { color:var(--efm-ice); }
.efm-main .efm-page-symbol .elementor-icon svg { width:44px; height:44px; stroke-width:1.4; }
.efm-page-hero .efm-page-title .elementor-heading-title { color:#fff; font-size:3rem; font-weight:550; line-height:1.3; }
.efm-page-hero .efm-page-title { margin-bottom:20px; }
.efm-page-lead { font-size:1.08rem; line-height:1.85; max-width:590px; }
.efm-page-hero-image img { height:345px; width:100%; object-fit:cover; clip-path:polygon(0 0,100% 0,100% 91%,92% 100%,0 100%); }
:where(.efm-page-hero,.efm-closing,.efm-domain-index) :focus-visible { outline-color:#fff; box-shadow:0 0 0 6px #0066cc; }
.efm-domain-index.e-con { background:#12326e; padding-block:55px; }
.efm-domain-index .efm-domains-grid { border-color:#ffffff30; }
.efm-services .efm-service .elementor-icon { display:inline-flex; padding:8px; border:1px solid #6c8da7; }
.efm-services .efm-service .elementor-icon svg { width:36px; height:36px; }
.efm-services .efm-service .elementor-icon-box-title a { color:#fff; text-decoration:underline; text-decoration-color:#6792b3; text-underline-offset:5px; }
.efm-services .efm-service .elementor-icon-box-title a:hover { color:var(--efm-ice); }

/* Long-form service pages prioritize scope, practical context and related paths. */
.efm-service-overview.e-con { background:var(--efm-paper); padding-block:75px; }
.efm-reading.e-con { max-width:930px; }
.efm-reading .elementor-widget-text-editor { font-size:1.13rem; line-height:1.95; }
.efm-reading .elementor-heading-title { font-size:2.6rem; }
.efm-detail-section.e-con { padding-block:20px 80px; background:var(--efm-paper); }
.efm-detail-list.e-con { border-top:1px solid #a8b9c7; }
.efm-detail-row.e-con { display:grid; grid-template-columns:80px 1fr; gap:32px; padding-block:38px; border-bottom:1px solid #a8b9c7; scroll-margin-top:calc(var(--efm-header-height) + 22px); }
.efm-detail-icon .elementor-icon { border:1px solid #8da6bc; padding:18px; }
.efm-main .efm-detail-icon .elementor-icon svg { width:40px; height:40px; }
.efm-detail-row .elementor-heading-title { font-size:1.8rem; }
.efm-detail-row .elementor-widget-heading { margin-bottom:13px; }
.efm-detail-row .elementor-widget-text-editor { font-size:1.07rem; max-width:920px; line-height:1.95; }
.efm-preparation.e-con { background:#dfe7ed; padding-block:70px; }
.efm-prep-grid.e-con { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.efm-prep-grid .elementor-heading-title { font-size:2.35rem; }
.efm-prep-grid .elementor-widget-text-editor { max-width:550px; }
.efm-checklist.e-con { gap:18px; }
.efm-check-item.elementor-widget { border:0; border-bottom:1px solid #a6b8c7; background:none; border-radius:0; padding:5px 0 24px; }
.efm-check-item:hover { transform:none; }
.efm-check-item .elementor-icon-box-wrapper { display:flex!important; flex-direction:row; align-items:center; text-align:right; gap:22px; }
.efm-check-item .elementor-icon-box-title { font-size:1.08rem; font-weight:500; margin:0; }
.efm-check-item .elementor-icon-box-description:empty { display:none; }
.efm-related.e-con { background:var(--efm-paper); padding-block:60px; }
.efm-related .elementor-heading-title { font-size:2.15rem; }
.efm-related-links.e-con { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:8px; }
.efm-main .efm-related-link .elementor-button { width:100%; background:none; color:var(--efm-navy); border:1px solid #a6b8c7; text-align:right; padding:19px; font-size:.98rem; }
.efm-main .efm-related-link .elementor-button-content-wrapper { justify-content:space-between; }
.efm-main .efm-related-link .elementor-button:hover { background:#dfe7ed; }
.efm-values.e-con { background:#dfe7ed; padding-block:80px; }
.efm-values .efm-kicker p,.efm-preparation .efm-kicker p { color:#005ab3; }
.efm-values-grid.e-con { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:25px; margin-top:20px; }
.efm-three-grid.e-con { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin-top:20px; }
.efm-values .efm-service.elementor-widget { background:none; border:0; border-top:1px solid #91a8bb; border-radius:0; padding:28px 0 0; }
.efm-values .efm-service:hover { transform:none; }
.efm-values .efm-service .elementor-icon svg { width:46px; height:46px; stroke-width:1.4; }
.efm-values .efm-service .elementor-icon-box-title { font-size:1.23rem; }
.efm-values .efm-service .elementor-icon-box-description { font-size:1rem; }

/* Questions remain readable without opening accordions one at a time. */
.efm-questions.e-con { background:#f6f8f7; padding-block:78px; }
.efm-questions .elementor-heading-title { font-size:2.4rem; }
.efm-questions-grid.e-con { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 65px; margin-top:17px; }
.efm-question.e-con { padding:30px 0; border-top:1px solid #b2c1cd; }
.efm-question-icon.elementor-widget { margin-bottom:17px; }
.efm-main .efm-question-icon .elementor-icon svg { width:29px; height:29px; }
.efm-question h3.elementor-heading-title { font-size:1.28rem; line-height:1.5; }
.efm-question .elementor-widget-heading { margin-bottom:14px; }
.efm-question .elementor-widget-text-editor { font-size:1rem; line-height:1.9; }
.efm-process-expanded.e-con { background:var(--efm-paper); padding-block:60px; }
.efm-process-details.e-con { max-width:1100px; margin-inline:auto; }
.efm-process-detail.e-con { display:grid; grid-template-columns:125px 1fr; gap:38px; padding-block:40px; border-bottom:1px solid #a8b9c7; }
.efm-process-detail:last-child { border-bottom:0; }
.efm-process-mark.e-con { align-items:center; border-left:1px solid #a8b9c7; padding-left:27px; }
.efm-process-index { font-size:2.8rem; font-weight:350; line-height:1.1; color:var(--efm-blue); margin-bottom:20px; }
.efm-main .efm-process-mark .elementor-icon svg { width:48px; height:48px; }
.efm-process-detail .elementor-heading-title { font-size:2.1rem; }
.efm-process-detail .elementor-widget-text-editor { font-size:1.07rem; line-height:1.9; }
.efm-process-points { margin-top:20px; }
.efm-process-points ul { list-style:none; display:flex; flex-wrap:wrap; gap:10px 25px; padding:0; margin:0; }
.efm-process-points li { border-right:2px solid var(--efm-blue); padding-right:12px; font-size:.95rem; }
.efm-contact .efm-breadcrumbs { font-size:.8rem!important; color:#d9e7f2; margin-bottom:32px; }
.efm-contact .efm-form-panel .elementor-heading-title { font-size:1.4rem; line-height:1.45; }

@media(max-width:1200px) {
 .efm-domains-grid.e-con { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .efm-domain-card .elementor-widget-text-editor { max-width:480px; }
 .efm-home-developer-grid.e-con { gap:45px; }
 .efm-main-nav .elementor-nav-menu--main .elementor-item { font-size:.85rem; padding-inline:10px; }
 .efm-page-hero-grid.e-con { gap:42px; }
 .efm-page-hero .efm-page-title .elementor-heading-title { font-size:2.65rem; }
 .efm-prep-grid.e-con { gap:55px; }
 .efm-footer-top.e-con { gap:28px; }
}
@media(max-width:1024px) {
 .efm-values-grid.e-con { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
 .efm-page-hero.e-con { padding-block:40px; }
 .efm-page-hero-grid.e-con { gap:30px; grid-template-columns:1.2fr .8fr; }
 .efm-page-hero-image img { height:370px; }
 .efm-page-hero .efm-page-title .elementor-heading-title { font-size:2.3rem; }
 .efm-page-lead { font-size:1rem; }
 .efm-page-symbol { margin-bottom:17px; }
 .efm-home-developer-grid.e-con { grid-template-columns:1fr 1fr; gap:35px; }
 .efm-home-developer-image img { height:370px; }
 .efm-closing-grid.e-con { grid-template-columns:1fr; gap:25px; }
 .efm-related-links.e-con { grid-template-columns:1fr; gap:12px; }
 .efm-footer-top.e-con { grid-template-columns:1fr 1fr; gap:36px; }
}
@media(max-width:767px) {
 .efm-hero-inner.e-con { padding-bottom:160px; min-height:720px; }
 .efm-hero .efm-hero-secondary .elementor-button { padding:9px 17px; font-size:.84rem; }
 .efm-hero-note { margin-top:17px; }
 .efm-domains-grid.e-con { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .efm-domain-card.e-con { padding:25px 17px; }
 .efm-domain-card .elementor-heading-title { font-size:1.15rem; }
 .efm-domain-card .elementor-widget-text-editor { font-size:.88rem; line-height:1.75; }
 .efm-main .efm-domain-card .elementor-icon svg { width:39px; height:39px; }
 .efm-domain-card .elementor-widget-icon { margin-bottom:18px; }
 .efm-main .efm-domain-card .efm-text-link .elementor-button { font-size:.83rem; padding-block:9px; }
 .efm-domain-card .elementor-button-content-wrapper { gap:9px; }
 .efm-home-services .elementor-widget-heading { margin-bottom:26px; }
 .efm-home-services .efm-service-featured { margin-bottom:17px; }
 .efm-home-services .efm-service-featured .elementor-widget-heading { margin:0; }
 .efm-home-developer-grid.e-con { grid-template-columns:1fr; gap:30px; }
 .efm-home-developer-image img { height:240px; }
 .efm-step-icon.elementor-widget { position:absolute; right:0; top:24px; width:52px; margin:0; }
 .efm-step-icon .elementor-icon { padding:11px; }
 .efm-main .efm-step-icon .elementor-icon svg { width:28px; height:28px; }
 .efm-step-number.elementor-widget { display:none; }
 .efm-step.e-con { min-height:135px; }
 .efm-closing.e-con { padding-block:55px; }
 .efm-closing .elementor-heading-title { font-size:2.05rem; }
 .efm-closing .elementor-widget-text-editor { font-size:1rem; }
 .efm-page-hero.e-con { padding-block:29px 35px; }
 .efm-page-hero-grid.e-con { grid-template-columns:1fr; gap:28px; }
 .efm-breadcrumbs.elementor-widget { font-size:.73rem!important; margin-bottom:23px; }
 .efm-breadcrumbs p { gap:8px; }
 .efm-page-hero .efm-page-title .elementor-heading-title { font-size:2.25rem; }
 .efm-page-symbol.elementor-widget { margin-bottom:17px; }
 .efm-main .efm-page-symbol .elementor-icon svg { width:35px; height:35px; }
 .efm-page-hero-image img { height:170px; object-position:50% 52%; }
 .efm-page-lead { font-size:1rem; }
 .efm-domain-index.e-con { padding-block:40px; }
 .efm-service-overview.e-con { padding-block:50px; }
 .efm-reading .elementor-heading-title { font-size:2.1rem; }
 .efm-reading .elementor-widget-text-editor { font-size:1.02rem; }
 .efm-detail-section.e-con { padding-block:0 50px; }
 .efm-detail-row.e-con { grid-template-columns:1fr; gap:18px; padding-block:30px; }
 .efm-detail-icon .elementor-icon { padding:13px; }
 .efm-main .efm-detail-icon .elementor-icon svg { width:33px; height:33px; }
 .efm-detail-row .elementor-heading-title { font-size:1.65rem; }
 .efm-detail-row .elementor-widget-text-editor { font-size:1rem; }
 .efm-preparation.e-con { padding-block:55px; }
 .efm-prep-grid.e-con { grid-template-columns:1fr; gap:30px; }
 .efm-prep-grid .elementor-heading-title { font-size:2.1rem; }
 .efm-prep-grid .elementor-widget-text-editor { font-size:1rem; }
 .efm-check-item .elementor-icon-box-title { font-size:1rem; }
 .efm-values.e-con { padding-block:55px; }
 .efm-values-grid.e-con,.efm-three-grid.e-con { grid-template-columns:1fr; gap:30px; }
 .efm-values .efm-service .elementor-icon-box-wrapper { text-align:right; align-items:flex-start; }
 .efm-values .efm-service .elementor-icon-box-title { font-size:1.22rem; }
 .efm-questions.e-con { padding-block:55px; }
 .efm-questions .elementor-heading-title { font-size:2.1rem; }
 .efm-questions-grid.e-con { grid-template-columns:1fr; gap:0; }
 .efm-question h3.elementor-heading-title { font-size:1.22rem; }
 .efm-question .elementor-widget-text-editor { font-size:1rem; }
 .efm-process-expanded.e-con { padding-block:22px; }
 .efm-process-detail.e-con { grid-template-columns:64px 1fr; gap:22px; padding-block:32px; }
 .efm-process-mark.e-con { padding-left:16px; }
 .efm-process-index { font-size:2.1rem; }
 .efm-main .efm-process-mark .elementor-icon svg { width:33px; height:33px; }
 .efm-process-detail .elementor-heading-title { font-size:1.55rem; line-height:1.4; }
 .efm-process-detail .elementor-widget-text-editor { font-size:1rem; }
 .efm-process-points ul { flex-direction:column; gap:10px; }
 .efm-related.e-con { padding-block:50px; }
 .efm-related .elementor-heading-title { font-size:1.9rem; }
 .efm-contact .efm-breadcrumbs { margin-bottom:25px; }
 .efm-contact .efm-form-panel .elementor-heading-title { font-size:1.25rem; }
 .efm-footer-brand.e-con { grid-column:auto; }
 .efm-footer-top.e-con { grid-template-columns:1fr 1fr; gap:30px 20px; }
 .efm-footer-brand.e-con { grid-column:1/-1; }
 .efm-large-text .efm-domains-grid.e-con,.efm-large-text .efm-values-grid.e-con,.efm-large-text .efm-footer-top.e-con { grid-template-columns:1fr; }
 .efm-large-text .efm-process-detail.e-con { grid-template-columns:1fr; }
 .efm-large-text .efm-process-mark.e-con { flex-direction:row; gap:22px; border:0; justify-content:flex-start; }
 .efm-large-text .efm-process-index { margin-bottom:0; }
}
@media(max-width:430px) {
 .efm-header .efm-logo { width:96px; flex-basis:96px; }
}
@media(max-width:359px) {
 .efm-domains-grid.e-con { grid-template-columns:1fr; }
 .efm-header .efm-logo { width:80px; flex-basis:80px; height:48px; }
 .efm-header .efm-logo .elementor-widget-container { height:48px; }
 .efm-header .efm-logo img { width:88px; height:88px; }
 .efm-header-inner.e-con { gap:4px; }
 .efm-header-actions.e-con { gap:0; }
 .efm-page-hero .efm-page-title .elementor-heading-title { font-size:2.05rem; }
}
.efm-contrast .efm-main :where(.efm-page-hero,.efm-domain-index,.efm-closing) :where(p,.elementor-heading-title,.elementor-icon,.elementor-button) { color:#fff; }
.efm-contrast :where(.efm-closing,.efm-domain-index) { background:#000; }
.efm-contrast :where(.efm-values,.efm-preparation,.efm-questions,.efm-related) { background:#fff; }
.efm-contrast .efm-main .efm-domain-card :where(p,.elementor-heading-title,.elementor-button) { color:#fff; }
