/* ==================================================
   ROOT
================================================== */

.es-footer-component{

  --es-bg:#061426;
  --es-bg-deep:#04101f;

  --es-white:#ffffff;
  --es-heading:#ffffff;

  --es-text:#d6dee8;
  --es-muted:#9aabba;

  --es-soft:#7f91a5;

  --es-line:rgba(255,255,255,.14);

  --es-blue:#0d548e;
  --es-red:#ef3c51;

  --es-radius:38px;

  width:100%;
  max-width:100%;

  margin:0;
  padding:0;

  font-family:"DM Sans",Arial,sans-serif;

  color:var(--es-white);

  isolation:isolate;

}


/* ==================================================
   GLOBAL RESET
================================================== */

.es-footer-component *,
.es-footer-component *::before,
.es-footer-component *::after{

  box-sizing:border-box;

}


.es-footer-component a{

  color:inherit;

  text-decoration:none;

}


.es-footer-component img{

  display:block;

  max-width:100%;

}


/* ==================================================
   MAIN FOOTER
================================================== */

.es-footer-component .big-footer{

  width:100%;
  margin:18px 0 0;
  padding:0;

  background:var(--es-bg);
  color:var(--es-white);

  overflow:hidden;

  border-radius:
    var(--es-radius)
    var(--es-radius)
    0
    0;
}


/* ==================================================
   CTA SECTION
   SAME WIDTH AS FOOTER
================================================== */

.es-footer-component .footer-signal{

  position:relative;

  width:auto;

  min-height:470px;

  margin:
    40px
    18px
    0;

  padding:100px 70px;

  background:
    linear-gradient(
      125deg,
      #0d3e6c 0%,
      #13233d 60%,
      #542d49 100%
    );

  border-radius:var(--es-radius);

  overflow:hidden;

  display:flex;

  align-items:center;

}


/* CTA CONTENT */

.es-footer-component .footer-signal-content{

  position:relative;

  z-index:2;

  width:100%;

}


/* ==================================================
   CTA SMALL HEADING
================================================== */

.es-footer-component .footer-signal p{

  position:relative;

  z-index:2;

  margin:0 0 24px;

  color:#ff9aa5;

  font-size:14px;

  font-weight:700;

  line-height:1.4;

  letter-spacing:.14em;

  text-transform:uppercase;

}


/* ==================================================
   CTA MAIN HEADING
================================================== */

.es-footer-component .footer-signal h2{

  position:relative;

  z-index:2;

  max-width:900px;

  margin:0;

  color:#ffffff !important;

  font-family:"Manrope",Arial,sans-serif;

  font-size:clamp(45px,5vw,74px);

  font-weight:500;

  line-height:1.03;

  letter-spacing:-.045em;

}


/* ==================================================
   CTA BUTTON
================================================== */

.es-footer-component .footer-cta{

  position:relative;

  z-index:5;

  display:inline-flex;

  align-items:center;

  justify-content:center;

  min-height:56px;

  margin-top:38px;

  padding:17px 22px;

  background:#ffffff;

  color:#091a32 !important;

  border-radius:999px;

  font-size:14px;

  font-weight:700;

  line-height:1;

  box-shadow:
    0 16px 40px rgba(0,0,0,.18);

  transition:
    transform .25s ease,
    box-shadow .25s ease,
    background .25s ease;

}


.es-footer-component .footer-cta .cta-text{

  color:#091a32 !important;

}


.es-footer-component .footer-cta .cta-arrow{

  margin-left:15px;

  color:#091a32 !important;

  font-size:18px;

  line-height:1;

  transition:transform .25s ease;

}


.es-footer-component .footer-cta:hover{

  transform:translateY(-4px);

  background:#f5f7f9;

  box-shadow:
    0 22px 50px rgba(0,0,0,.25);

}


.es-footer-component .footer-cta:hover .cta-arrow{

  transform:rotate(45deg);

}


/* ==================================================
   ORBIT DECORATION
================================================== */

.es-footer-component .footer-signal-orbit{

  position:absolute;

  width:500px;

  height:500px;

  right:-120px;

  top:-160px;

  border:
    1px solid rgba(255,255,255,.12);

  border-radius:50%;

  pointer-events:none;

  box-shadow:
    0 0 0 90px rgba(255,255,255,.025),
    0 0 0 180px rgba(255,255,255,.015);

  animation:
    esFooterOrbit 16s linear infinite;

}


.es-footer-component .footer-signal-orbit::before,
.es-footer-component .footer-signal-orbit::after{

  content:"";

  position:absolute;

  border-radius:50%;

}


.es-footer-component .footer-signal-orbit::before{

  width:12px;
  height:12px;

  left:46px;
  top:145px;

  background:#ef3c51;

  box-shadow:
    0 0 0 9px rgba(239,60,81,.12);

}


.es-footer-component .footer-signal-orbit::after{

  width:9px;
  height:9px;

  right:38px;
  bottom:145px;

  background:#ffffff;

  box-shadow:
    0 0 0 8px rgba(255,255,255,.08);

}


@keyframes esFooterOrbit{

  from{
    transform:rotate(0deg);
  }

  to{
    transform:rotate(360deg);
  }

}


/* ==================================================
   DIRECTORY
================================================== */

.es-footer-component .footer-directory{

  width:100%;

  max-width:1240px;

  margin:0 auto;

  padding:80px 28px;

  display:grid;

  grid-template-columns:
    1.35fr
    repeat(4,1fr);

  gap:45px;

}


/* ==================================================
   DIRECTORY COLUMNS
================================================== */

.es-footer-component .footer-directory > div{

  display:flex;

  flex-direction:column;

  align-items:flex-start;

  gap:12px;

}


/* ==================================================
   LOGO
================================================== */

.es-footer-component .footer-logo-image{

  display:flex;

  align-items:center;

  justify-content:flex-start;

  width:210px;

  min-width:210px;

  height:58px;

  padding:0;

  background:transparent;

  border-radius:9px;

}


.es-footer-component .footer-logo-image img{

  width:100%;

  height:100%;

  max-width:100%;

  object-fit:contain;

  object-position:left center;

  

  opacity:1 !important;

}


/* ==================================================
   BRAND TEXT
================================================== */

.es-footer-component .footer-brand-block p{

  margin:25px 0 4px;

  color:#ffffff !important;

  font-family:"Manrope",Arial,sans-serif;

  font-size:25px !important;

  font-weight:500;

  line-height:1.4;

  letter-spacing:-.035em;

}


.es-footer-component .footer-location{

  display:block;

  color:#aab8c7 !important;

  font-size:14px;

  font-weight:500;

  line-height:1.6;

  text-transform:uppercase;

  letter-spacing:.1em;

}


/* ==================================================
   COLUMN HEADINGS
================================================== */

.es-footer-component .footer-directory h4{

  margin:0 0 15px;

  color:#aebdcb !important;

  font-size:14px;

  font-weight:700;

  line-height:1.4;

  text-transform:uppercase;

  letter-spacing:.12em;

}


/* ==================================================
   COLUMN LINKS
================================================== */

.es-footer-component .es-footer-column a{

  display:block;

  width:max-content;

  max-width:100%;

  color:#cbd5df !important;

  font-size:14px;

  font-weight:400;

  line-height:1.45;

  transition:
    color .2s ease,
    transform .2s ease;

}


.es-footer-component .es-footer-column a:hover{

  color:#ffffff !important;

  transform:translateX(5px);

}


/* ==================================================
   FOCUS
================================================== */

.es-footer-component
.footer-cta:focus-visible,
.es-footer-component
.footer-logo-image:focus-visible,
.es-footer-component
.es-footer-column a:focus-visible{

  outline:3px solid #ff9aa5;

  outline-offset:4px;

}


/* ==================================================
   LEGAL
================================================== */

.es-footer-component .footer-legal{

  width:100%;

  max-width:1184px;

  margin:0 auto;

  padding:25px 0;

  border-top:1px solid var(--es-line);

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:25px;

  color:#91a2b5 !important;

  font-size:13px;

  line-height:1.5;

}


.es-footer-component .footer-legal span{

  color:#91a2b5 !important;

}


.es-footer-component .footer-legal b{

  color:#ffffff !important;

  font-weight:400;

}


/* ==================================================
   ANIMATION
================================================== */

.es-footer-component .es-footer-reveal{

  opacity:0;

  transform:translateY(28px);

  transition:
    opacity .7s cubic-bezier(.2,.7,.2,1),
    transform .7s cubic-bezier(.2,.7,.2,1);

}


.es-footer-component .es-footer-reveal.is-visible{

  opacity:1;

  transform:none;

}


/* STAGGER */

.es-footer-component
.footer-directory
> .es-footer-reveal:nth-child(2){

  transition-delay:70ms;

}


.es-footer-component
.footer-directory
> .es-footer-reveal:nth-child(3){

  transition-delay:140ms;

}


.es-footer-component
.footer-directory
> .es-footer-reveal:nth-child(4){

  transition-delay:210ms;

}


.es-footer-component
.footer-directory
> .es-footer-reveal:nth-child(5){

  transition-delay:280ms;

}


/* ==================================================
   TABLET
================================================== */

@media (max-width:1100px){

  .es-footer-component .footer-directory{

    grid-template-columns:
      1.2fr
      repeat(2,1fr);

  }


  .es-footer-component .footer-brand-block{

    grid-row:span 2;

  }


  .es-footer-component .footer-signal{

    min-height:430px;

  }


  .es-footer-component .footer-signal-orbit{

    opacity:.72;

  }


  .es-footer-component .footer-legal{

    max-width:none;

    margin:0 28px;

  }

}


/* ==================================================
   TABLET / MOBILE
================================================== */

@media (max-width:820px){

  .es-footer-component .footer-directory{

    grid-template-columns:1fr 1fr;

    gap:45px 32px;

  }


  .es-footer-component .footer-brand-block{

    grid-column:1/-1;

    grid-row:auto;

    padding-bottom:20px;

  }


  .es-footer-component .footer-signal{

    min-height:400px;

    padding-top:85px;

    padding-bottom:85px;

  }


  .es-footer-component .footer-signal-orbit{

    right:-250px;

  }


  .es-footer-component .footer-legal{

    flex-direction:column;

    align-items:flex-start;

    gap:10px;

  }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width:560px){

  .es-footer-component{

    --es-radius:24px;

  }


  .es-footer-component .big-footer{

    margin-top:8px;

  }


  /* CTA INSET */

  .es-footer-component .footer-signal{

    width:auto;

    margin:20px 20px 0;

    min-height:410px;

    padding:
      75px
      20px;

    border-radius:
      var(--es-radius);

  }


  .es-footer-component .footer-signal h2{

    font-size:41px;

    line-height:1.06;

  }


  .es-footer-component
  .footer-signal
  h2 br{

    display:none;

  }


  /* CTA BUTTON FULL WIDTH */

  .es-footer-component .footer-cta{

    width:100%;

    justify-content:center;

  }


  /* DIRECTORY */

  .es-footer-component .footer-directory{

    width:100%;

    padding:
      60px
      20px;

    grid-template-columns:1fr;

    gap:42px;

  }


  .es-footer-component .footer-brand-block{

    grid-column:auto;

  }


  /* LOGO MOBILE */

  .es-footer-component .footer-logo-image{

    width:190px;

    min-width:190px;

    height:55px;

  }


  .es-footer-component .footer-brand-block p{

    font-size:23px;

  }


  /* LEGAL */

  .es-footer-component .footer-legal{

    width:auto;

    margin:0 20px;

    padding:
      24px 0
      30px;

  }


  .es-footer-component .footer-signal-orbit{

    width:360px;

    height:360px;

    right:-220px;

    top:-100px;

    box-shadow:
      0 0 0 60px rgba(255,255,255,.025),
      0 0 0 120px rgba(255,255,255,.015);

  }

}


/* ==================================================
   REDUCED MOTION
================================================== */

@media (prefers-reduced-motion:reduce){

  .es-footer-component *{

    scroll-behavior:auto !important;

    animation-duration:.01ms !important;

    animation-iteration-count:1 !important;

    transition-duration:.01ms !important;

  }


  .es-footer-component .es-footer-reveal{

    opacity:1;

    transform:none;

  }

}