/* EFM 1.1 — architectural composition; native Elementor content stays editable. */
:root {
  --efm-ink: var(--e-global-color-efm_ink, #081c5b);
  --efm-surface: var(--e-global-color-efm_surface, #12326e);
  --efm-ice: var(--e-global-color-efm_ice, #b5d7ff);
  --efm-paper: var(--e-global-color-efm_paper, #f1f2f4);
  --efm-header-height: 92px;
}
body { background: var(--efm-paper); }
/* Elementor defines kit tokens on body; resolve aliases in that same scope. */
body {
  --efm-navy: var(--e-global-color-primary, #081c5b);
  --efm-blue: var(--e-global-color-accent, #0066cc);
  --efm-text: var(--e-global-color-text, #414754);
  --efm-heading: var(--e-global-typography-primary-font-family, Heebo);
  --efm-body: var(--e-global-typography-text-font-family, Heebo);
  --efm-ink: var(--e-global-color-efm_ink, #081c5b);
  --efm-surface: var(--e-global-color-efm_surface, #12326e);
  --efm-ice: var(--e-global-color-efm_ice, #b5d7ff);
  --efm-paper: var(--e-global-color-efm_paper, #f1f2f4);
}
.efm-section.e-con { padding-block: 104px; }
.efm-section .elementor-heading-title { font-size: 2.9rem; font-weight: 550; line-height: 1.22; }
.efm-kicker p { font-size: .82rem; font-weight: 550; }
.efm-main .elementor-button, .efm-header .elementor-button { border-radius: 0; }
.elementor-location-header { background: var(--efm-ink); box-shadow: 0 1px 0 #ffffff20; }
.efm-header.e-con { background: var(--efm-ink); border: 0; }
.efm-header-inner.e-con { min-height: 92px; }
.efm-header .efm-logo { height: 72px; width: 130px; flex-basis: 130px; background: #fff; }
.efm-header .efm-logo .elementor-widget-container { height: 72px; }
.efm-header .efm-logo img { width: 134px; height: 134px; }
.efm-main-nav .elementor-nav-menu--main .elementor-item { color: #e2ebf3; font-size: .91rem; }
.efm-main-nav .elementor-nav-menu--main .elementor-item:hover,
.efm-main-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--efm-ice); }
.efm-main-nav .elementor-nav-menu--main .elementor-item:after { background: var(--efm-ice); }
.efm-main-nav .elementor-menu-toggle { color: #fff; }
.efm-main-nav .elementor-menu-toggle svg { fill: #fff; }
.efm-header .efm-header-cta .elementor-button { background: transparent; border: 1px solid #8da4ba; color: #fff; padding-inline: 22px; }
.efm-header .efm-header-cta .elementor-button:hover { background: var(--efm-blue); border-color: var(--efm-blue); }
.efm-header .efm-icon-button .elementor-button { background: #163973; color: #fff; }
:where(.efm-header, .efm-hero, .efm-services, .efm-developers, .efm-contact-copy) :focus-visible { outline-color: #fff; box-shadow: 0 0 0 6px #0066cc; }

/* The film owns the canvas. A directional scrim protects only the reading area. */
.efm-hero.e-con { min-height: 670px; padding: 0; background: var(--efm-ink); color: #fff; }
.efm-hero:after { background: linear-gradient(270deg, #081c5bea 0%, #081c5bce 27%, #081c5b78 50%, #081c5b12 76%, #081c5b00 100%), linear-gradient(0deg, #081c5b80, transparent 28%); }
.efm-hero-video.elementor-widget { top: 0; height: 100%; }
.efm-hero-video video.elementor-video { object-position: 42% center; }
.efm-hero-inner.e-con { min-height: 670px; padding-block: 76px 96px; justify-content: center; }
.efm-hero-copy.e-con { width: 59%; max-width: 750px; padding-right: 28px; border-right: 1px solid #b5d7ff75; }
.efm-hero .efm-kicker p { color: #daeeff; font-size: .86rem; }
.efm-hero .efm-kicker p:before { display: none; }
.efm-hero .efm-hero-title .elementor-heading-title { color: #fff; font-size: 3.45rem; line-height: 1.25; font-weight: 550; text-shadow: 0 2px 24px #081c5b30; }
.efm-hero .efm-hero-title .elementor-heading-title span { color: var(--efm-ice); }
.efm-hero-description { color: #edf4fa; font-size: 1.14rem; line-height: 1.8; max-width: 500px; margin-bottom: 30px; }
.efm-hero-note { color: #cfdae4; font-size: .8rem; margin-top: 21px; }
.efm-hero .efm-primary-cta .elementor-button { background: var(--efm-blue); border-color: #5d9de0; padding: 17px 25px; box-shadow: 0 6px 24px #081c5b30; }
.efm-hero .efm-primary-cta .elementor-button:hover { background: #005ab3; }
.efm-hero-controls.e-con { bottom: 25px; left: 0; right: auto; }
.efm-main .efm-video-toggle .elementor-button { background: #081c5bcc; color: #fff; border-color: #ffffff85; box-shadow: none; border-radius: 0; font-size: .78rem; backdrop-filter: blur(8px); }
.efm-main .efm-video-toggle .elementor-button:hover { background: #081c5b; }

/* A continuous service strip anchors the cinematic opening. */
.efm-trust.e-con { background: var(--efm-ink); border-bottom: 0; color: #fff; }
.efm-trust-grid.e-con { padding-block: 34px; }
.efm-trust-item.e-con { border-color: #ffffff25; min-height: 74px; }
.efm-trust-item .elementor-heading-title { color: #fff; font-size: 1.15rem; font-weight: 500; }
.efm-trust-item p { color: #bbcbd9; }
.efm-trust-item .elementor-icon { color: var(--efm-ice); }

/* About: a material neutral, a tall architectural crop and a precise inset. */
.efm-about.e-con { background: var(--efm-paper); overflow: hidden; }
.efm-about-grid.e-con { grid-template-columns: 1fr 1fr; gap: 100px; }
.efm-about-copy { padding-block: 15px; }
.efm-about .elementor-heading-title { font-size: 3.4rem; }
.efm-about-text { line-height: 1.95; }
.efm-founder-quote { margin-top: 34px; }
.efm-founder-quote blockquote { border-color: var(--efm-blue); font-size: 1.12rem; padding-right: 22px; }
.efm-about-visual.e-con { padding: 0 0 34px 27px; }
.efm-about-visual:before { content: ''; position: absolute; inset: 34px 32px 0 0; border: 1px solid #8b9d9f; pointer-events: none; }
.efm-about-image img { height: 560px; border-radius: 0; clip-path: polygon(0 0,100% 0,100% 92%,91% 100%,0 100%); object-position: 50% 50%; }
.efm-experience.e-con { right: -30px; bottom: 64px; background: var(--efm-ink); color: #d5e4ef; border: 0; box-shadow: none; padding: 27px 30px; max-width: 285px; }
.efm-experience .elementor-heading-title { color: var(--efm-ice); font-size: 3.45rem; font-weight: 400; }
.efm-experience p { font-size: .87rem; }

/* Services: one architectural grid, with an unmistakable human 24/7 entry. */
.efm-services.e-con { background: var(--efm-ink); color: #bfcedc; }
.efm-services .elementor-heading-title { color: #fff; }
.efm-services .efm-kicker p { color: var(--efm-ice); }
.efm-section-heading.e-con { margin-bottom: 42px; }
.efm-services .efm-section-intro { color: #bfcedc; }
.efm-service-featured.e-con { padding: 27px 32px; background: var(--efm-blue); color: #fff; margin-bottom: 0; border-radius: 0; }
.efm-service-featured p { color: #fff; }
.efm-services-grid.e-con { gap: 0; border-right: 1px solid #ffffff25; border-bottom: 1px solid #ffffff25; }
.efm-services .efm-service.elementor-widget { background: transparent; border: 0; border-left: 1px solid #ffffff25; border-top: 1px solid #ffffff25; border-radius: 0; padding: 32px 30px 34px; transition: background .2s; }
.efm-services .efm-service:hover { transform: none; background: #12326e; }
.efm-services .efm-service .elementor-icon { color: var(--efm-ice); }
.efm-services .efm-service .elementor-icon-box-title { color: #fff; font-size: 1.2rem; font-weight: 500; }
.efm-services .efm-service .elementor-icon-box-description { color: #bdcedd; font-size: .94rem; }
.efm-service .elementor-icon-box-wrapper { gap: 19px; }

/* Developers: a photo-bearing narrative panel paired with compact capabilities. */
.efm-developers.e-con { background: #12326e; padding-block: 90px; }
.efm-developer-layout.e-con { grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.efm-developers .elementor-heading-title { font-size: 2.6rem; line-height: 1.3; }
.efm-developers .efm-kicker p { color: var(--efm-ice); }
.efm-developer-intro { font-size: 1.06rem; max-width: 485px; line-height: 1.85; }
.efm-developer-scene { width: 100%; margin-top: 34px; }
.efm-developer-scene img { height: 250px; width: 100%; object-fit: cover; object-position: center 52%; border-radius: 0; }
.efm-developer-grid.e-con { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; }
.efm-developer-item.elementor-widget { padding: 28px 0; border-top: 1px solid #ffffff30; }
.efm-developer-item .elementor-icon-box-title { font-size: 1.13rem; font-weight: 500; }
.efm-developer-item .elementor-icon-box-description { font-size: .92rem; }
.efm-developer-item:hover { transform: none; }

/* Process: large ordered numerals replace generic numbered bubbles. */
.efm-process.e-con { background: var(--efm-paper); }
.efm-process-grid.e-con { margin-top: 44px; gap: 32px; }
.efm-process-grid.e-con:before { display: none; }
.efm-step.e-con { border-top: 1px solid #92a6b5; padding-top: 24px; }
.efm-step-number.elementor-widget { width: auto; margin-bottom: 28px; }
.efm-step-number p { background: none; border: 0; border-radius: 0; color: var(--efm-blue); font-size: 3.1rem; font-weight: 350; height: auto; width: auto; line-height: 1; justify-content: flex-end; }
.efm-step h3.elementor-heading-title { font-size: 1.25rem; }

/* Quotes stay open on the page, separated by fine architectural rules. */
.efm-testimonials.e-con { background: #dfe7ed; padding-block: 82px 94px; }
.efm-testimonials .efm-kicker p { color: #005ab3; }
.efm-reviews-grid.e-con { gap: 0; margin-top: 22px; }
.efm-review.e-con { background: transparent; border: 0; border-left: 1px solid #a6b8c7; border-radius: 0; padding: 20px 34px 0; }
.efm-review:first-child { padding-right: 0; }
.efm-review:last-child { border-left: 0; }
.efm-review-quote blockquote { font-size: 1.3rem; padding-top: 34px; }
.efm-review-quote blockquote:before { font-size: 3.4rem; font-weight: 400; }
.efm-review-author { border: 0; padding-top: 0; margin-top: 28px; color: #344e66; }

/* Contact: the lobby is visible behind the invitation; the form has its own plane. */
.efm-contact.e-con { background: var(--efm-ink); overflow: hidden; }
.efm-contact-scene.elementor-widget { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.efm-contact-scene .elementor-widget-container { height: 100%; }
.efm-contact-scene img { height: 100%; width: 100%; object-fit: cover; object-position: center; }
.efm-contact:after { content: ''; position: absolute; inset: 0; background: linear-gradient(270deg,#081c5bde 0%,#081c5bd6 40%,#081c5b80 100%); pointer-events: none; }
.efm-contact-layout.e-con { position: relative; z-index: 1; gap: 95px; grid-template-columns: .9fr 1.1fr; align-items: center; }
.efm-contact-copy.e-con { color: #e1eaf1; padding-top: 0; }
.efm-contact-copy .elementor-heading-title { color: #fff; font-size: 3.65rem; line-height: 1.25; }
.efm-contact-copy .elementor-heading-title span, .efm-contact-copy .efm-kicker p { color: var(--efm-ice); }
.efm-contact-copy .elementor-widget-text-editor:not(.efm-kicker) { font-size: 1.05rem; }
.efm-contact-details.e-con { margin-top: 38px; padding-top: 23px; border-top: 1px solid #ffffff45; }
.efm-main .efm-contact-detail .elementor-button { color: #fff; }
.efm-main .efm-contact-detail .elementor-button-icon, .efm-area .elementor-icon { color: var(--efm-ice); }
.efm-area .elementor-icon-box-title { color: #fff; }
.efm-area .elementor-icon-box-description { color: #d0dce6; }
.efm-form-panel.e-con { border: 0; border-top: 4px solid var(--efm-blue); border-radius: 0; background: #f6f8f7; padding: 38px 40px; box-shadow: 0 15px 55px #00000025; }
.efm-form-panel .elementor-heading-title { font-size: 1.45rem; }
.efm-contact-form .elementor-field { border-radius: 0; }
.efm-footer.e-con { background: #051320; border-top: 1px solid #ffffff24; }
.efm-footer-top.e-con { padding-bottom: 42px; }
.efm-footer .efm-footer-logo { border-radius: 0; }
.efm-footer .efm-footer-logo img { width: 152px; height: 152px; }
.efm-legal.e-con { background: var(--efm-paper); }

@media (min-width:1800px) {
  .efm-shell.e-con { max-width: 1440px; }
  .efm-hero.e-con,.efm-hero-inner.e-con { min-height: 760px; }
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 3.95rem; }
  .efm-hero-copy.e-con { max-width: 790px; width: 58%; }
  .efm-hero-description { font-size: 1.2rem; }
}
@media (max-width:1200px) {
  .efm-hero-copy.e-con { width: 65%; }
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 3.05rem; }
  .efm-about-grid.e-con { gap: 65px; }
  .efm-developer-layout.e-con { gap: 50px; }
  .efm-contact-layout.e-con { gap: 55px; }
  .efm-contact-copy .elementor-heading-title { font-size: 3.1rem; }
}
@media (max-width:1024px) {
  :root { --efm-header-height: 84px; }
  .efm-header-inner.e-con { min-height: 84px; }
  .efm-header .efm-logo { height: 64px; width: 116px; flex-basis: 116px; }
  .efm-header .efm-logo .elementor-widget-container { height: 64px; }
  .efm-header .efm-logo img { height: 118px; width: 118px; }
  .efm-section.e-con { padding-block: 76px; }
  .efm-section .elementor-heading-title { font-size: 2.5rem; }
  .efm-hero.e-con { padding: 0; }
  .efm-hero-copy.e-con { width: 83%; padding-right: 23px; }
  .efm-hero:after { background: linear-gradient(270deg,#081c5be8 0%,#081c5bc4 35%,#081c5b52 72%,#081c5b0a); }
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 3rem; }
  .efm-trust-item .elementor-heading-title { font-size: 1.02rem; }
  .efm-trust-grid.e-con { padding-block: 28px; }
  .efm-about-grid.e-con { gap: 35px; align-items: start; }
  .efm-about .elementor-heading-title { font-size: 2.6rem; }
  .efm-about-image img { height: 580px; }
  .efm-experience.e-con { right: -15px; bottom: 55px; padding: 22px; }
  .efm-experience .elementor-heading-title { font-size: 3rem; }
  .efm-services .efm-service.elementor-widget { padding: 28px 20px; }
  .efm-services .efm-service .elementor-icon-box-title { font-size: 1.07rem; }
  .efm-services .efm-service .elementor-icon-box-description { font-size: .9rem; }
  .efm-developer-layout.e-con { grid-template-columns: 1fr; gap: 38px; }
  .efm-developer-copy.e-con { max-width: none; }
  .efm-developer-scene img { height: 280px; }
  .efm-developer-grid.e-con { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 28px; }
  .efm-developer-intro { max-width: 650px; }
  .efm-process-grid.e-con { gap: 24px; }
  .efm-step h3.elementor-heading-title { font-size: 1.08rem; }
  .efm-review.e-con { padding-inline: 23px; }
  .efm-review-quote blockquote { font-size: 1.13rem; }
  .efm-contact-layout.e-con { gap: 38px; grid-template-columns: .8fr 1.2fr; }
  .efm-contact-copy .elementor-heading-title { font-size: 2.65rem; }
  .efm-form-panel.e-con { padding: 30px 26px; }
  .efm-form-panel .elementor-heading-title { font-size: 1.3rem; }
}
@media (max-width:767px) {
  .efm-header-inner.e-con { min-height: 76px; }
  .efm-header .efm-logo { width: 106px; flex-basis: 106px; height: 58px; }
  .efm-header .efm-logo .elementor-widget-container { height: 58px; }
  .efm-header .efm-logo img { width: 107px; height: 107px; }
  .efm-section.e-con { padding-block: 64px; }
  .efm-section .elementor-heading-title { font-size: 2.25rem; line-height: 1.28; }
  .efm-hero.e-con { min-height: 720px; padding: 0; }
  .efm-hero-inner.e-con { min-height: 720px; padding-block: 51px 200px; justify-content: flex-start; }
  .efm-hero-copy.e-con { width: 100%; max-width: none; border: 0; padding-right: 0; }
  .efm-hero .efm-kicker { margin-bottom: 22px; }
  .efm-hero .efm-kicker p { font-size: .78rem; }
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 2.12rem; line-height: 1.34; font-weight: 550; }
  .efm-hero-description { font-size: 1rem; line-height: 1.8; max-width: 370px; margin-bottom: 27px; }
  .efm-hero .efm-primary-cta .elementor-button { font-size: .94rem; padding: 16px 20px; }
  .efm-hero-note { font-size: .76rem; max-width: 300px; margin-top: 20px; color: #e0eaf3; }
  .efm-hero-video.elementor-widget { top: 0; bottom: 0; height: 100%; }
  .efm-hero-video video.elementor-video { object-position: 40% center; }
  .efm-hero:after { background: linear-gradient(180deg,#081c5beb 0%,#081c5bdb 31%,#081c5bc9 53%,#081c5b46 76%,#081c5b05 100%); }
  .efm-hero-controls.e-con { right: 0; left: auto; bottom: 22px; }
  .efm-main .efm-video-toggle .elementor-button { font-size: .75rem; padding: 9px 12px; }
  .efm-trust-grid.e-con { padding-block: 4px; }
  .efm-trust-item.e-con { min-height: 94px; padding-block: 23px; border-bottom: 1px solid #ffffff25; }
  .efm-trust-item p { font-size: .86rem; }
  .efm-trust-item .elementor-heading-title { font-size: 1.07rem; }
  .efm-about-grid.e-con { grid-template-columns: 1fr; gap: 36px; }
  .efm-about .elementor-heading-title { font-size: 2.65rem; }
  .efm-about-visual.e-con { padding: 0 0 23px 19px; }
  .efm-about-visual:before { inset: 22px 22px 0 0; }
  .efm-about-image img { height: 395px; }
  .efm-experience.e-con { right: -1px; bottom: 48px; padding: 21px 23px; }
  .efm-experience .elementor-heading-title { font-size: 2.9rem; }
  .efm-experience p { font-size: .8rem; }
  .efm-founder-quote blockquote { font-size: 1.05rem; }
  .efm-section-heading.e-con { margin-bottom: 30px; }
  .efm-service-featured.e-con { padding: 25px 19px; margin: 0; }
  .efm-service-featured .elementor-heading-title { font-size: 1.12rem; }
  .efm-services-grid.e-con { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .efm-services .efm-service.elementor-widget { padding: 27px 16px; }
  .efm-services .efm-service .elementor-icon-box-title { font-size: 1rem; line-height: 1.55; }
  .efm-services .efm-service .elementor-icon-box-description { font-size: .86rem; line-height: 1.75; }
  .efm-developer-layout.e-con { gap: 32px; }
  .efm-developers .elementor-heading-title { font-size: 2.18rem; }
  .efm-developer-intro { font-size: 1rem; }
  .efm-developer-scene { margin-top: 30px; }
  .efm-developer-scene img { height: 220px; }
  .efm-developer-grid.e-con { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 23px; }
  .efm-developer-item.elementor-widget { padding: 25px 0; }
  .efm-developer-item .elementor-icon-box-title { font-size: 1rem; }
  .efm-process-grid.e-con { grid-template-columns: 1fr; gap: 0; margin-top: 26px; }
  .efm-step.e-con { padding: 25px 70px 28px 0; min-height: 138px; }
  .efm-step-number.elementor-widget { top: 29px; width: 50px; margin: 0; }
  .efm-step-number p { width: auto; height: auto; font-size: 2.4rem; justify-content: center; }
  .efm-step h3.elementor-heading-title { font-size: 1.2rem; }
  .efm-reviews-grid.e-con { grid-template-columns: 1fr; gap: 0; }
  .efm-review.e-con { padding: 30px 0; border-left: 0; border-bottom: 1px solid #a6b8c7; }
  .efm-review:last-child { border-bottom: 0; padding-bottom: 0; }
  .efm-review-quote blockquote { font-size: 1.22rem; }
  .efm-review-author { margin-top: 20px; }
  .efm-contact-layout.e-con { grid-template-columns: 1fr; gap: 38px; }
  .efm-contact-copy .elementor-heading-title { font-size: 3rem; }
  .efm-contact-scene img { object-position: 42% center; }
  .efm-contact:after { background: #081c5bd9; }
  .efm-contact-details.e-con { margin-top: 27px; padding-top: 16px; }
  .efm-form-panel.e-con { padding: 27px 22px; }
  .efm-form-panel h3.elementor-heading-title { font-size: 1.24rem; }
  .efm-footer-top.e-con { padding-bottom: 28px; }
  .efm-large-text .efm-hero-inner.e-con { padding-bottom: 210px; }
  .efm-large-text .efm-hero:after { background: linear-gradient(180deg,#081c5bef 0%,#081c5bee calc(100% - 180px),#081c5b30 100%); }
  .efm-large-text .efm-services-grid.e-con,.efm-large-text .efm-developer-grid.e-con { grid-template-columns: 1fr; }
}
@media(max-width:430px) {
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 1.93rem; }
}
@media(max-width:375px) {
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 1.76rem; }
}
@media(max-width:359px) {
  .efm-hero .efm-hero-title .elementor-heading-title { font-size: 1.62rem; }
  .efm-hero .efm-primary-cta .elementor-button { font-size: .88rem; padding-inline: 14px; }
  .efm-services-grid.e-con { grid-template-columns: 1fr; }
}

/* Optional high contrast mode keeps the same dark/light reading surfaces. */
.efm-contrast { --efm-ink:#000; --efm-surface:#000; --efm-paper:#fff; --efm-ice:#fff; }
.efm-contrast :where(.efm-hero,.efm-trust,.efm-services,.efm-developers,.efm-contact,.efm-footer) { background:#000; }
.efm-contrast .efm-main :where(.efm-hero,.efm-trust,.efm-services,.efm-developers,.efm-contact-copy) :where(p,.elementor-heading-title,.elementor-heading-title span,.elementor-icon-box-title,.elementor-icon-box-description,.elementor-icon,.elementor-button) { color:#fff; }
.efm-contrast .efm-hero:after,.efm-contrast.efm-large-text .efm-hero:after,.efm-contrast .efm-contact:after { background:#000000ef; }
.efm-contrast :where(.efm-service-featured,.efm-hero .elementor-button) { border:1px solid #fff; }
.efm-contrast .efm-services .efm-service.elementor-widget { border-color:#aaa; }
.efm-contrast .efm-services .efm-service:hover { background:#171717; }
.efm-contrast .efm-experience { background:#000; color:#fff; }
.efm-contrast .efm-experience p,.efm-contrast .efm-experience .elementor-heading-title { color:#fff; }
.efm-contrast .efm-form-panel,.efm-contrast .efm-testimonials { background:#fff; }
.efm-contrast .efm-main .efm-light-cta .elementor-button { color:#000; }
@media(forced-colors:active) {
  .efm-hero:after,.efm-contact:after { background:Canvas; }
  .efm-contact-scene { display:none; }
}
