.elementor-372 .elementor-element.elementor-element-ff3c7de{--display:flex;--min-height:100vh;--overflow:hidden;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-372 .elementor-element.elementor-element-caf6218{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}/* Start custom CSS for html, class: .elementor-element-b413a0f */.al-preloader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  background:linear-gradient(165deg,#04222f 0%,#0a3a4f 42%,#0e6e8c 100%);
  transition:opacity .8s ease, visibility .8s ease;
}

.al-preloader.done{
  opacity:0;
  visibility:hidden;
}

.al-pre-stage{
  position:relative;
  width:180px;
  height:280px;
}

.al-pre-drop{
  width:34px;
  height:50px;
  margin:0 auto;
  color:#39d8e6;
  animation:alDropFall 1s cubic-bezier(.55,0,.85,.4) forwards;
}

.al-pre-drop svg{
  width:100%;
  height:100%;
  display:block;
  filter:drop-shadow(0 0 10px rgba(57,216,230,.6));
}

.al-pre-surface{
  position:absolute;
  top:200px;
  left:50%;
  transform:translateX(-50%);
  width:8px;
  height:8px;
}

.al-pre-surface .ripple{
  position:absolute;
  left:50%;
  top:50%;
  width:8px;
  height:8px;
  border:2px solid rgba(57,216,230,.7);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(0);
  opacity:0;
  animation:alRipple 1.4s ease-out forwards .9s;
}

.al-pre-surface .r2{
  animation-delay:1.15s;
}

.al-splash{
  position:absolute;
  top:198px;
  left:50%;
  transform:translateX(-50%);
  width:1px;
  height:1px;
}

.al-splash i{
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#39d8e6;
  opacity:0;
  animation:alSp .7s ease-out forwards .9s;
}

.al-splash i:nth-child(1){ --tx:-34px; --ty:-30px; }
.al-splash i:nth-child(2){ --tx:34px; --ty:-30px; }
.al-splash i:nth-child(3){ --tx:-20px; --ty:-44px; }
.al-splash i:nth-child(4){ --tx:20px; --ty:-44px; }

.al-pre-word{
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%) translateY(20px);
  width:max-content;
  max-width:none;
  white-space:nowrap;
  text-align:center;
  font-family:"Bricolage Grotesque",sans-serif;
  font-size:1.7rem;
  font-weight:700;
  letter-spacing:.18em;
  color:#fff;
  opacity:0;
  animation:alPreWordIn .8s ease forwards 1.3s;
}

.al-pre-word span{
  color:#39d8e6;
}

@keyframes alPreWordIn{
  to{
    opacity:1;
    transform:translateX(-50%) translateY(0);
  }
}

@keyframes alDropFall{
  0%{
    transform:translateY(-130px) scaleY(.7);
    opacity:0;
  }
  20%{
    opacity:1;
  }
  80%{
    transform:translateY(120px) scaleY(1.15);
    opacity:1;
  }
  100%{
    transform:translateY(150px) scaleY(.4) scaleX(1.5);
    opacity:0;
  }
}

@keyframes alRipple{
  0%{
    transform:translate(-50%,-50%) scale(0);
    opacity:.9;
  }
  100%{
    transform:translate(-50%,-50%) scale(16);
    opacity:0;
  }
}

@keyframes alSp{
  0%{
    opacity:1;
    transform:translate(0,0) scale(1);
  }
  100%{
    opacity:0;
    transform:translate(var(--tx),var(--ty)) scale(.3);
  }
}

@media (max-width:767px){
  .al-pre-stage{
    width:160px;
    height:260px;
  }

  .al-pre-word{
    font-size:1.35rem;
    letter-spacing:.14em;
  }
}

@media (prefers-reduced-motion:reduce){
  .al-pre-drop,
  .al-pre-surface .ripple,
  .al-splash i,
  .al-pre-word{
    animation:none !important;
    transform:none !important;
    opacity:1 !important;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-8d6194d */.al-hero > .al-bubbles-wrap{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  z-index:12 !important;
  pointer-events:none !important;
}

.al-hero > .al-bubbles-wrap > .elementor-widget-container{
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
}

.al-bubbles{
  position:relative !important;
  width:100% !important;
  height:100% !important;
}

.al-bubbles span{
  position:absolute;
  bottom:-40px;
  left:var(--l);
  width:var(--s);
  height:var(--s);
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(255,255,255,.18) 55%, rgba(255,255,255,.05) 100%);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 0 8px rgba(255,255,255,.18), 0 0 12px rgba(120,220,255,.08);
  opacity:.0;
  animation:alBubbleRise var(--d) linear infinite;
  animation-delay:var(--dl);
}

@keyframes alBubbleRise{
  0%{
    transform:translateY(0) translateX(0) scale(.88);
    opacity:0;
  }
  10%{
    opacity:.5;
  }
  50%{
    transform:translateY(-42vh) translateX(8px) scale(1);
    opacity:.55;
  }
  100%{
    transform:translateY(-88vh) translateX(-10px) scale(1.08);
    opacity:0;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-c90f1f3 */.al-hero-inner .al-hero-cta{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  margin:28px 0 0 0 !important;
  padding:0 !important;
  flex-wrap:wrap !important;
}

.al-hero-inner .al-hero-cta a.al-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:54px !important;
  min-height:54px !important;
  padding:0 24px !important;
  border-radius:999px !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  font-family:"Bricolage Grotesque", sans-serif !important;
  font-size:.98rem !important;
  font-weight:600 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  box-shadow:none !important;
  transition:background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease !important;
}

.al-hero-inner .al-hero-cta a.al-btn-primary{
  background:linear-gradient(135deg, #ED6D7A 0%, #EE7D5E 100%) !important;
  background-color:transparent !important;
  color:#ffffff !important;
  border:1px solid rgba(255,255,255,.10) !important;
  box-shadow:0 10px 24px rgba(237,109,122,.28) !important;
}

.al-hero-inner .al-hero-cta a.al-btn-primary:hover{
  background:linear-gradient(135deg, #e56473 0%, #ec7655 100%) !important;
  background-color:transparent !important;
  color:#ffffff !important;
  border-color:rgba(255,255,255,.16) !important;
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(237,109,122,.34) !important;
}

.al-hero-inner .al-hero-cta a.al-btn-ghost{
  background:rgba(255,255,255,.08) !important;
  color:#ffffff !important;
  border:1px solid rgba(255,255,255,.22) !important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.al-hero-inner .al-hero-cta a.al-btn-ghost:hover{
  background:rgba(255,255,255,.14) !important;
  border-color:rgba(255,255,255,.34) !important;
  color:#ffffff !important;
  transform:translateY(-1px);
}

@media (max-width:767px){
  .al-hero-inner .al-hero-cta{
    gap:10px !important;
  }

.al-hero-inner .al-hero-cta a.al-btn{
    width:100% !important;
    justify-content:center !important;
  }
}

.al-hero-inner .al-hero-cta a.al-btn{
  gap:10px !important;
}

.al-hero-inner .al-hero-cta a.al-btn .al-btn-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
}

.al-hero-inner .al-hero-cta a.al-btn .al-btn-icon svg{
  width:20px !important;
  height:20px !important;
  display:block !important;
}

.al-hero-inner .al-hero-cta a.al-btn-primary:hover .al-btn-icon{
  transform:translateX(2px);
  transition:transform .25s ease;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-2cd82cb */.al-hero > .al-badge-wrap{
  position:absolute !important;
  right:24px !important;
  top:24% !important;
  z-index:35 !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

.al-hero > .al-badge-wrap > .elementor-widget-container{
  margin:0 !important;
  padding:0 !important;
}

.al-hero-badge{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  padding:14px 18px !important;
  border-radius:20px !important;
  background:rgba(255,255,255,.12) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:0 14px 34px rgba(4,34,47,.18) !important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:#ffffff !important;
}

.al-hero-badge-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:42px !important;
  height:42px !important;
  flex:0 0 42px !important;
  border-radius:50% !important;
  background:linear-gradient(135deg,#ED6D7A 0%, #EE7D5E 100%) !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(237,109,122,.28) !important;
}

.al-hero-badge-icon svg{
  width:22px !important;
  height:22px !important;
  display:block !important;
}

.al-hero-badge-copy{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}

.al-hero-badge-copy b{
  display:block !important;
  margin:0 !important;
  font-family:"Bricolage Grotesque", sans-serif !important;
  font-size:1.3rem !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:#ffffff !important;
}

.al-hero-badge-copy small{
  display:block !important;
  margin-top:4px !important;
  font-family:"Bricolage Grotesque", sans-serif !important;
  font-size:.72rem !important;
  line-height:1 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:rgba(255,255,255,.82) !important;
}

@media (max-width:1024px){
  .al-hero > .al-badge-wrap{
    right:20px !important;
    top:20% !important;
  }
}

@media (max-width:767px){
  .al-hero > .al-badge-wrap{
    position:relative !important;
    top:auto !important;
    right:auto !important;
    width:min(92%, 340px) !important;
    margin:24px auto 0 auto !important;
    z-index:35 !important;
  }

  .al-hero-badge{
    justify-content:flex-start !important;
  }
}

.al-hero-badge{
  animation:alBadgeFloat 4.8s ease-in-out infinite;
  will-change:transform;
}

@keyframes alBadgeFloat{
  0%, 100%{
    transform:translateY(0);
  }
  50%{
    transform:translateY(-10px);
  }
}

@media (prefers-reduced-motion:reduce){
  .al-hero-badge{
    animation:none !important;
    transform:none !important;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-037ebb7 */.al-hero > .al-scroll-wrap{
  position:absolute !important;
  left:50% !important;
  bottom:60px !important;
  transform:translateX(-50%) !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  z-index:32 !important;
}

.al-hero > .al-scroll-wrap > .elementor-widget-container{
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
}

.al-scroll-cue{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  color:rgba(255,255,255,.78) !important;
  font-family:"Bricolage Grotesque", sans-serif !important;
  font-size:.78rem !important;
  font-weight:600 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  text-align:center !important;
}

.al-scroll-cue i{
  display:block !important;
  width:1px !important;
  height:42px !important;
  background:linear-gradient(to bottom, rgba(255,255,255,.95), rgba(255,255,255,.12)) !important;
  animation:alScrollLine 1.6s ease-in-out infinite;
  transform-origin:top center;
}

@keyframes alScrollLine{
  0%, 100%{
    opacity:.45;
    transform:scaleY(.65);
  }
  50%{
    opacity:1;
    transform:scaleY(1);
  }
}

@media (max-width:767px){
  .al-hero > .al-scroll-wrap{
    bottom:18px !important;
  }

  .al-scroll-cue{
    font-size:.7rem !important;
    letter-spacing:.14em !important;
  }

  .al-scroll-cue i{
    height:30px !important;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ff3c7de */.al-hero{
  position:relative !important;
  width:100%;
  min-height:100vh;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:linear-gradient(165deg,#04222f 0%,#0a3a4f 42%,#0e6e8c 100%) !important;
}

.al-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 78% 18%, rgba(57,216,230,.35), transparent 30%),
    radial-gradient(circle at 12% 80%, rgba(22,184,212,.22), transparent 30%);
  opacity:.7;
  pointer-events:none;
}

/* WAVES */
.al-hero > .al-waves-wrap{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  max-width:none !important;
  height:170px !important;
  margin:0 !important;
  padding:0 !important;
  z-index:20 !important;
  pointer-events:none !important;
}

.al-hero > .al-waves-wrap > .elementor-widget-container{
  position:relative !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}

.al-hero-waves{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  line-height:0;
}

.al-hero-waves svg{
  display:block;
}

.al-hero-waves .wv{
  position:absolute;
  left:0;
  bottom:0;
  width:200%;
  min-width:200%;
  will-change:transform;
}

.al-hero-waves .wv1{
  height:160px;
  fill:rgba(22,184,212,.18);
  animation:alWaveMove 17s linear infinite;
}

.al-hero-waves .wv2{
  height:140px;
  fill:rgba(215,243,248,.30);
  animation:alWaveMove 12s linear infinite reverse;
}

.al-hero-waves .wv3{
  height:120px;
  fill:#f3fbfd;
  animation:alWaveMove 9s linear infinite;
}

.al-hero-waves .wv path{
  fill:inherit;
}

@keyframes alWaveMove{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

@media (max-width:767px){
  .al-hero > .al-waves-wrap{
    height:110px !important;
  }

  .al-hero-waves .wv1{ height:110px; }
  .al-hero-waves .wv2{ height:95px; }
  .al-hero-waves .wv3{ height:80px; }
}

/* HERO INNER */
.al-hero > .al-hero-inner,
.al-hero > .al-hero-inner.e-con,
.al-hero > .al-hero-inner.elementor-element{
  position:relative !important;
  z-index:30 !important;
  width:min(1180px, 92%) !important;
  max-width:1180px !important;
  margin:0 auto !important;
  padding:0 !important;
}

/* EYEBROW */
.al-eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:.55rem !important;
  margin:0 0 10px 0 !important;
  color:#39d8e6 !important;
  font-family:"Bricolage Grotesque", sans-serif !important;
  font-size:.74rem !important;
  font-weight:600 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  line-height:1 !important;
}

.al-eyebrow::before{
  content:"";
  display:block !important;
  width:26px;
  height:2px;
  border-radius:2px;
  background:linear-gradient(90deg,#39d8e6,transparent);
  transform:translateY(-7px);
  flex:0 0 26px;
}

/* H1 */
.al-title{
  max-width:860px;
  margin:0;
  color:#fff;
  font-family:"Bricolage Grotesque", sans-serif;
  font-size:clamp(2.6rem,6.2vw,5rem);
  line-height:1.02;
  font-weight:700;
  letter-spacing:-.02em;
}

.al-title-animated{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  column-gap:.18em !important;
  row-gap:.08em !important;
}

.al-title-animated .word{
  display:inline-block !important;
  overflow:hidden !important;
  line-height:1.05 !important;
}

.al-title-animated .word-in{
  display:inline-block !important;
  opacity:0;
  transform:translate3d(0,1.15em,0) rotate(4deg);
  animation:alWordIn .8s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:calc(var(--base-delay, 0s) + 0s);
  will-change:transform, opacity;
}

@keyframes alWordIn{
  0%{
    opacity:0;
    transform:translate3d(0,1.15em,0) rotate(4deg);
  }
  100%{
    opacity:1;
    transform:translate3d(0,0,0) rotate(0);
  }
}

@media (prefers-reduced-motion:reduce){
  .al-title-animated .word-in{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}

/* LEAD */
.al-hero-inner .al-lead{
  display:block !important;
  max-width:620px !important;
  margin:24px 0 0 0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.88) !important;
  font-family:"Bricolage Grotesque", sans-serif !important;
  font-size:clamp(1rem,1.3vw,1.12rem) !important;
  font-weight:400 !important;
  line-height:1.7 !important;
  letter-spacing:0 !important;
  text-align:left !important;
}

.al-hero-inner .al-lead p{
  margin:0 !important;
  padding:0 !important;
  color:inherit !important;
  font:inherit !important;
  line-height:inherit !important;
}/* End custom CSS */