/*
  Entopy CTA Section v2.0.3
  Production standard:
  - layout elements are separate from reveal elements
  - offsets apply only to item wrappers
  - reveal animation applies only to inner elements
*/

.entopy-cta-section{
  --cta-bg:#d9d7d5;
  --cta-colour:#202020;
  --cta-divider:rgba(0,0,0,0.16);
  --cta-text-soft:rgba(0,0,0,0.74);
  --cta-text-muted:rgba(0,0,0,0.84);

  --cta-padding-top:25px;
  --cta-padding-right:0px;
  --cta-padding-bottom:40px;
  --cta-padding-left:0px;

  --cta-grid-label-width:240px;
  --cta-grid-gap:28px;
  --cta-grid-top-spacing:30px;
  --cta-top-padding-bottom:22px;
  --cta-content-min-height:260px;
  --cta-bottom-gap:40px;
  --cta-left-align:flex-end;
  --cta-right-align:space-between;

  --cta-headline-max-width:760px;
  --cta-title-max-width:520px;
  --cta-body-max-width:380px;
  --cta-button-max-width:260px;

  --cta-font-headline:clamp(42px,5vw,60px);
  --cta-font-title:clamp(30px,3vw,40px);
  --cta-font-body:15px;
  --cta-font-small:clamp(12px,0.9vw,14px);
  --cta-font-button:14px;

  --cta-weight-headline:600;
  --cta-weight-title:700;
  --cta-weight-body:400;
  --cta-weight-meta:500;
  --cta-weight-button:500;

  --cta-button-height:44px;
  --cta-button-radius:4px;
  --cta-button-border-width:1px;
  --cta-button-border:rgba(0,0,0,0.7);
  --cta-button-hover-bg:#202020;
  --cta-button-hover-colour:#f4f4f1;

  --cta-radius:4px;

  --cta-top-left-x:0px;
  --cta-top-left-y:0px;
  --cta-top-arrow-x:0px;
  --cta-top-arrow-y:0px;
  --cta-top-right-x:0px;
  --cta-top-right-y:0px;
  --cta-headline-x:0px;
  --cta-headline-y:0px;
  --cta-title-x:0px;
  --cta-title-y:0px;
  --cta-body-x:0px;
  --cta-body-y:0px;
  --cta-button-x:0px;
  --cta-button-y:0px;

  --cta-transition-fast:0.35s ease;
  --cta-reveal-distance:18px;
  --cta-reveal-duration:0.9s;
  --cta-delay-1:0.08s;
  --cta-delay-2:0.12s;
  --cta-delay-3:0.16s;
  --cta-delay-4:0.18s;
  --cta-delay-5:0.30s;
  --cta-delay-6:0.42s;
  --cta-delay-7:0.52s;

  width:100%;
  padding:
    var(--cta-padding-top)
    var(--cta-padding-right)
    var(--cta-padding-bottom)
    var(--cta-padding-left);
  box-sizing:border-box;
  font-family:Montserrat,Arial,sans-serif;
  color:var(--cta-colour);
  background:var(--cta-bg);
  border-radius:var(--cta-radius);
  overflow:hidden;
}

.entopy-cta-section *,
.entopy-cta-section *::before,
.entopy-cta-section *::after{
  box-sizing:border-box;
}

.entopy-cta-top{
  display:grid;
  grid-template-columns:var(--cta-grid-label-width) repeat(3,minmax(0,1fr));
  gap:var(--cta-grid-gap);
  padding-bottom:var(--cta-top-padding-bottom);
  border-bottom:1px solid var(--cta-divider);
  font-size:var(--cta-font-small);
  line-height:1.4;
  font-weight:var(--cta-weight-meta);
  color:var(--cta-text-soft);
}

.entopy-cta-item{
  min-width:0;
}

.entopy-cta-top-left{
  grid-column:1;
  transform:translate(var(--cta-top-left-x),var(--cta-top-left-y));
}

.entopy-cta-top-arrow{
  grid-column:2;
  transform:translate(var(--cta-top-arrow-x),var(--cta-top-arrow-y));
}

.entopy-cta-top-right{
  grid-column:3 / span 2;
  transform:translate(var(--cta-top-right-x),var(--cta-top-right-y));
}

.entopy-cta-grid{
  display:grid;
  grid-template-columns:var(--cta-grid-label-width) repeat(3,minmax(0,1fr));
  gap:var(--cta-grid-gap);
  padding-top:var(--cta-grid-top-spacing);
  align-items:stretch;
}

.entopy-cta-left{
  grid-column:1 / span 2;
  min-height:var(--cta-content-min-height);
  display:flex;
  align-items:var(--cta-left-align);
  transform:translate(var(--cta-headline-x),var(--cta-headline-y));
}

.entopy-cta-left h1,
.entopy-cta-left h2,
.entopy-cta-left h3,
.entopy-cta-left div{
  margin:0;
  max-width:var(--cta-headline-max-width);
  font-size:var(--cta-font-headline);
  line-height:1.02;
  letter-spacing:-0.045em;
  font-weight:var(--cta-weight-headline);
  color:var(--cta-colour);
}

.entopy-cta-right{
  grid-column:3 / span 2;
  min-height:var(--cta-content-min-height);
  display:flex;
  flex-direction:column;
  justify-content:var(--cta-right-align);
}

.entopy-cta-title-wrap{
  transform:translate(var(--cta-title-x),var(--cta-title-y));
}

.entopy-cta-title-wrap h2,
.entopy-cta-title-wrap h3,
.entopy-cta-title-wrap h4,
.entopy-cta-title-wrap div{
  margin:0;
  max-width:var(--cta-title-max-width);
  font-size:var(--cta-font-title);
  line-height:1;
  letter-spacing:-0.04em;
  font-weight:var(--cta-weight-title);
  color:var(--cta-colour);
}

.entopy-cta-bottom{
  display:grid;
  grid-template-columns:minmax(0,var(--cta-body-max-width)) auto;
  gap:var(--cta-bottom-gap);
  align-items:end;
  margin-top:auto;
}

.entopy-cta-body-wrap{
  transform:translate(var(--cta-body-x),var(--cta-body-y));
}

.entopy-cta-bottom p{
  margin:0;
  max-width:var(--cta-body-max-width);
  font-size:var(--cta-font-body);
  line-height:1.45;
  font-weight:var(--cta-weight-body);
  color:var(--cta-text-muted);
}

.entopy-cta-button-wrap{
  justify-self:end;
  transform:translate(var(--cta-button-x),var(--cta-button-y));
}

.entopy-cta-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:var(--cta-button-height);
  max-width:var(--cta-button-max-width);
  padding:0 18px;
  border:var(--cta-button-border-width) solid var(--cta-button-border);
  border-radius:var(--cta-button-radius);
  color:var(--cta-colour);
  text-decoration:none;
  font-size:var(--cta-font-button);
  line-height:1;
  font-weight:var(--cta-weight-button);
  transition:
    background var(--cta-transition-fast),
    color var(--cta-transition-fast),
    border-color var(--cta-transition-fast),
    transform var(--cta-transition-fast);
}

.entopy-cta-button:hover{
  background:var(--cta-button-hover-bg);
  border-color:var(--cta-button-hover-bg);
  color:var(--cta-button-hover-colour);
  transform:translateY(-1px);
}

.entopy-cta-reveal{
  opacity:0;
  display:inline-block;
  will-change:transform,opacity;
}

.entopy-cta-section.is-visible .entopy-cta-reveal{
  animation:entopyCtaReveal var(--cta-reveal-duration) cubic-bezier(0.22,1,0.36,1) forwards;
}

.entopy-cta-section.is-visible .entopy-cta-delay-1{animation-delay:var(--cta-delay-1);}
.entopy-cta-section.is-visible .entopy-cta-delay-2{animation-delay:var(--cta-delay-2);}
.entopy-cta-section.is-visible .entopy-cta-delay-3{animation-delay:var(--cta-delay-3);}
.entopy-cta-section.is-visible .entopy-cta-delay-4{animation-delay:var(--cta-delay-4);}
.entopy-cta-section.is-visible .entopy-cta-delay-5{animation-delay:var(--cta-delay-5);}
.entopy-cta-section.is-visible .entopy-cta-delay-6{animation-delay:var(--cta-delay-6);}
.entopy-cta-section.is-visible .entopy-cta-delay-7{animation-delay:var(--cta-delay-7);}

@keyframes entopyCtaReveal{
  from{
    opacity:0;
    transform:translateY(var(--cta-reveal-distance));
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

body.elementor-editor-active .entopy-cta-reveal,
body.elementor-editor-preview .entopy-cta-reveal,
.elementor-editor-active .entopy-cta-reveal{
  opacity:1!important;
  transform:translateY(0)!important;
  animation:none!important;
}

@media(max-width:1024px){
  .entopy-cta-section{
    --cta-padding-top:80px;
    --cta-padding-bottom:36px;
    --cta-grid-label-width:180px;
    --cta-grid-gap:22px;
    --cta-bottom-gap:24px;
  }

  .entopy-cta-left,
  .entopy-cta-right{
    min-height:var(--cta-content-min-height);
  }

  .entopy-cta-bottom{
    grid-template-columns:1fr;
  }

  .entopy-cta-button-wrap{
    justify-self:start;
  }
}

@media(max-width:767px){
  .entopy-cta-section{
    --cta-padding-top:48px;
    --cta-padding-right:0px;
    --cta-padding-bottom:32px;
    --cta-padding-left:0px;
    --cta-grid-gap:18px;
    --cta-content-min-height:0px;
    --cta-bottom-gap:22px;
  }

  .entopy-cta-top{
    grid-template-columns:1fr auto;
    gap:10px;
    padding-bottom:18px;
  }

  .entopy-cta-top-arrow{
    display:none;
  }

  .entopy-cta-top-right{
    grid-column:auto;
    text-align:right;
  }

  .entopy-cta-grid{
    grid-template-columns:1fr;
    gap:var(--cta-grid-gap);
    padding-top:24px;
  }

  .entopy-cta-left,
  .entopy-cta-right{
    grid-column:auto;
    min-height:auto;
  }

  .entopy-cta-left h1,
  .entopy-cta-left h2,
  .entopy-cta-left h3,
  .entopy-cta-left div{
    max-width:none;
    font-size:clamp(32px,10vw,42px);
    line-height:1.05;
    letter-spacing:-0.04em;
  }

  .entopy-cta-title-wrap h2,
  .entopy-cta-title-wrap h3,
  .entopy-cta-title-wrap h4,
  .entopy-cta-title-wrap div{
    max-width:none;
    font-size:32px;
    line-height:1;
    letter-spacing:-0.04em;
  }

  .entopy-cta-bottom{
    grid-template-columns:1fr;
  }

  .entopy-cta-bottom p{
    max-width:none;
  }

  .entopy-cta-button-wrap{
    justify-self:start;
  }

  .entopy-cta-button{
    width:fit-content;
  }
}

@media(prefers-reduced-motion:reduce){
  .entopy-cta-reveal{
    opacity:1!important;
    animation:none!important;
    transform:none!important;
  }
}


/*
  v2.0.1 Button reset fix
  Prevents theme/Elementor link styles from adding extra vertical padding
  while keeping Elementor padding controls active.
*/
.entopy-cta-section .entopy-cta-button{
  height:var(--cta-button-height);
  min-height:0;
  max-height:none;
  box-sizing:border-box;
  line-height:1 !important;
  vertical-align:middle;
  white-space:nowrap;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none;
}

.entopy-cta-section .entopy-cta-button,
.entopy-cta-section .entopy-cta-button:hover,
.entopy-cta-section .entopy-cta-button:focus,
.entopy-cta-section .entopy-cta-button:visited{
  text-decoration:none;
}

.entopy-cta-section .entopy-cta-button-wrap{
  line-height:0;
}

.entopy-cta-section .entopy-cta-button span{
  line-height:1;
}


/* v2.0.2 button center fix */
.entopy-cta-section .entopy-cta-button{
height:var(--cta-button-height)!important;
min-height:0!important;
padding-top:0!important;
padding-bottom:0!important;
display:inline-flex!important;
align-items:center!important;
justify-content:center!important;
line-height:1!important;
}

.entopy-cta-section .entopy-cta-button span,
.entopy-cta-section .entopy-cta-button .elementor-button-text{
height:100%!important;
display:flex!important;
align-items:center!important;
justify-content:center!important;
line-height:1!important;
}
