:root{--ast-global-color-0:#046bd2;--ast-global-color-1:#045cb4;--ast-global-color-2:#1e293b;--ast-global-color-3:#334155;--ast-global-color-4:#FFFFFF;--ast-global-color-5:#F0F5FA;--ast-global-color-6:#111111;--ast-global-color-7:#D1D5DB;--ast-global-color-8:#111111;--ast-container-default-xlg-padding:3em;--ast-container-default-lg-padding:3em;--ast-container-default-slg-padding:2em;--ast-container-default-md-padding:3em;--ast-container-default-sm-padding:3em;--ast-container-default-xs-padding:2.4em;--ast-container-default-xxs-padding:1.8em;}
.elementor-kit-6,:root{--e-global-color-astglobalcolor0:#046bd2;--e-global-color-astglobalcolor1:#045cb4;--e-global-color-astglobalcolor2:#1e293b;--e-global-color-astglobalcolor3:#334155;--e-global-color-astglobalcolor4:#FFFFFF;--e-global-color-astglobalcolor5:#F0F5FA;--e-global-color-astglobalcolor6:#111111;--e-global-color-astglobalcolor7:#D1D5DB;--e-global-color-astglobalcolor8:#111111;}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:hidden}
img{max-width:100%;height:auto}
.elementor-background-video-container{position:absolute;inset:0;overflow:hidden;z-index:0;direction:ltr;pointer-events:none}
.elementor-background-video-embed{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%}
.elementor-background-video-embed iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.77vh;transform:translate(-50%,-50%);border:0}
.elementor-background-video-hosted{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:100%;min-height:100%;object-fit:cover}
.elementor-274 .elementor-element-cinfointro{font-family:"Inter",Sans-serif;font-size:14px;font-weight:400;line-height:1.5em;letter-spacing:-0.4px;color:var(--e-global-color-astglobalcolor7)}
.elementor-274 .elementor-element-cinfointro p{margin:0 0 2px}
.elementor-274 .elementor-element-449f8f9c strong{display:inline-block;margin-bottom:1px;font-weight:600;color:var(--e-global-color-astglobalcolor4)}

/* >>> mecan hero video (generated by tools/build.py) */
.mecan-hero{background-color:#234556 !important}
.mecan-hero::before{background-image:none !important;background-color:transparent !important}
.mecan-hero > .mecan-hero-video-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0;pointer-events:none}
/* cover the hero at every viewport. Sizing the video by width alone matches
   home on a normal desktop window, but leaves bands of bare background above
   and below it whenever the hero is proportionally taller than the video -
   which is what phones and very tall windows get. #videohome is the home
   page's own hero video, styled here too so all five behave identically. */
.mecan-hero-video,
#videohome{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;object-fit:cover;opacity:.75}
/* home's video sits in an Elementor widget, which is position:relative and
   collapses to no height once the video is taken out of flow - so the widget
   itself has to become the full-hero layer for height:100% to mean anything */
.elementor-11 .elementor-element.elementor-element-566e1fa{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}
/* one hero title treatment everywhere: the contact page's was near-black with
   a purple shadow, for the light ground it used to have */
.mecan-hero .elementor-heading-title{color:#F0F5FA !important;text-shadow:1px 2px 0px #000000 !important}
/* <<< mecan hero video */

/* >>> mecan contact form (generated by tools/build.py) */
.mecan-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.elementor-message[hidden],.elementor-form-spinner[hidden],.mecan-thanks[hidden]{display:none!important}
.elementor-form .elementor-button[disabled]{opacity:.65;cursor:progress}
.elementor-form .elementor-form-spinner{display:inline-flex;align-items:center;margin-inline-start:.5em}

/* the confirmation that replaces the form once a message is sent */
.mecan-thanks{text-align:center;padding:28px 20px 32px;animation:mecan-thanks-in .35s ease-out both;
  font-family:var(--e-global-typography-primary-font-family,"Poppins"),Sans-serif}
.mecan-thanks__icon{display:inline-flex;color:#16A34A;background:#E9F7EE;border-radius:50%;padding:10px;line-height:0}
.mecan-thanks__title{margin:18px 0 8px;font-size:24px;line-height:1.25;font-weight:600;color:#234556}
.mecan-thanks__text{margin:0 auto;max-width:30em;font-size:16px;line-height:1.6;color:#475569}
.mecan-thanks__again{margin-top:24px;padding:12px 24px;border:0;border-radius:4px;background:#046BD2;
  color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .2s}
.mecan-thanks__again:hover,.mecan-thanks__again:focus-visible{background:#234556}
.mecan-thanks__title:focus{outline:none}
@keyframes mecan-thanks-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.mecan-thanks{animation:none}}
/* <<< mecan contact form */

/* >>> mecan mobile menu (generated by tools/build.py) */
/* Elementor's own open/closed rules animate the dropdown with scaleY plus a
   max-height taken from --menu-height, a variable its JavaScript sets at
   runtime. Without that script the panel never opens, so the state is driven
   here instead: max-height only, no transform, and the panel hangs under the
   header rather than stretching the header row and shoving the logo about. */
@media (max-width:1024px){
  .elementor-260 .elementor-element.elementor-element-27426e8d{position:relative}
  .elementor-260 .elementor-element.elementor-element-491f5742{position:static}
  .elementor-260 .elementor-element.elementor-element-491f5742 .elementor-nav-menu--dropdown.elementor-nav-menu__container{
    position:absolute;top:100%;left:0;right:0;z-index:99;margin-top:0;
    max-height:0;overflow:hidden;transform:none!important;
    transition:max-height .3s ease;box-shadow:0 12px 24px rgba(0,0,0,.18)}
  .elementor-260 .elementor-element.elementor-element-491f5742 .elementor-menu-toggle.elementor-active+.elementor-nav-menu--dropdown.elementor-nav-menu__container{
    max-height:80vh;overflow-y:auto}
  .elementor-260 .elementor-element.elementor-element-491f5742 .elementor-nav-menu--dropdown .elementor-item{
    justify-content:flex-start}
}
/* <<< mecan mobile menu */
