/*
  Entopy Product Cards Section v3.1.0
  Rebuilt from the approved source layout.
*/

.entopy-products{
  --product-colour:#1d3557;
  --product-bg:#ffffff;
  --product-bg-hover:#f1eee9;

  --grid-gap:20px;
  --columns-desktop:3;
  --columns-tablet:2;
  --columns-mobile:1;

  --card-padding-top:14px;
  --card-padding-right:14px;
  --card-padding-bottom:14px;
  --card-padding-left:14px;

  --card-radius:4px;
  --card-ratio-desktop:1.6 / 1;
  --card-ratio-tablet:1.8 / 1;
  --card-ratio-mobile:auto;
  --mobile-card-min-height:280px;

  --font-card-title:clamp(22px,2vw,28px);
  --font-body:clamp(13px,1vw,15px);
  --font-small:clamp(12px,0.9vw,14px);

  --top-padding-bottom:12px;
  --top-margin-bottom:16px;
  --title-margin-bottom:12px;
  --content-padding-right:34px;

  --arrow-size:24px;
  --arrow-right:10px;
  --arrow-bottom:10px;

  --top-x:0px;
  --top-y:0px;
  --title-x:0px;
  --title-y:0px;
  --body-x:0px;
  --body-y:0px;
  --arrow-x:0px;
  --arrow-y:0px;

  --reveal-duration:0.9s;

  display:grid;
  grid-template-columns:repeat(var(--columns-desktop),minmax(0,1fr));
  gap:var(--grid-gap);
  font-family:Montserrat,Arial,sans-serif;
}

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

.entopy-product-card{
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  aspect-ratio:var(--card-ratio-desktop);
  padding:
    var(--card-padding-top)
    var(--card-padding-right)
    var(--card-padding-bottom)
    var(--card-padding-left);
  background-color:var(--product-bg);
  border:1px solid var(--product-colour);
  border-radius:var(--card-radius);
  color:var(--product-colour);
  cursor:pointer;
  text-decoration:none;
  opacity:0;
  transform:translateY(20px);
  transition:
    background-color .4s ease,
    opacity var(--reveal-duration) ease,
    transform var(--reveal-duration) ease;
}

.entopy-product-card:hover,
.entopy-product-card:focus,
.entopy-product-card:visited{
  color:var(--product-colour);
  text-decoration:none;
}

.entopy-product-card:hover{
  background-color:var(--product-bg-hover);
}

.entopy-products.is-visible .entopy-product-card{
  animation:entopyProductReveal var(--reveal-duration) ease-out forwards;
}

.entopy-products.is-visible .entopy-product-card:nth-child(1){animation-delay:.45s;}
.entopy-products.is-visible .entopy-product-card:nth-child(2){animation-delay:.6s;}
.entopy-products.is-visible .entopy-product-card:nth-child(3){animation-delay:.75s;}
.entopy-products.is-visible .entopy-product-card:nth-child(4){animation-delay:.9s;}
.entopy-products.is-visible .entopy-product-card:nth-child(5){animation-delay:1.05s;}
.entopy-products.is-visible .entopy-product-card:nth-child(6){animation-delay:1.2s;}

@keyframes entopyProductReveal{
  from{
    opacity:0;
    transform:translateY(20px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.entopy-product-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:var(--top-padding-bottom);
  margin-bottom:var(--top-margin-bottom);
  border-bottom:1px solid var(--product-colour);
  font-size:var(--font-small);
  line-height:1.2;
  font-weight:500;
  color:var(--product-colour);
}

.entopy-product-offset-top{
  transform:translate(var(--top-x),var(--top-y));
}

.entopy-product-num{
  border:1px solid var(--product-colour);
  border-radius:5px;
  padding:3px 8px;
}

.entopy-product-main{
  position:relative;
  display:flex;
  flex:1;
  flex-direction:column;
  justify-content:center;
  padding-right:var(--content-padding-right);
}

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

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

.entopy-product-card h4{
  margin:0 0 var(--title-margin-bottom);
  max-width:95%;
  font-size:var(--font-card-title);
  line-height:1.18;
  font-weight:700;
  letter-spacing:-.035em;
  color:var(--product-colour);
}

.entopy-product-card p{
  margin:0;
  max-width:92%;
  font-size:var(--font-body);
  line-height:1.45;
  font-weight:400;
  color:var(--product-colour);
}

.entopy-product-arrow{
  position:absolute;
  right:var(--arrow-right);
  bottom:var(--arrow-bottom);
  width:var(--arrow-size);
  height:var(--arrow-size);
  fill:none;
  stroke:var(--product-colour);
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:1;
}

.entopy-product-offset-arrow{
  transform:translate(var(--arrow-x),var(--arrow-y));
}

body.elementor-editor-active .entopy-product-card,
body.elementor-editor-preview .entopy-product-card,
.elementor-editor-active .entopy-product-card{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
}

@media(max-width:1024px){
  .entopy-products{
    grid-template-columns:repeat(var(--columns-tablet),minmax(0,1fr));
  }

  .entopy-product-card{
    aspect-ratio:var(--card-ratio-tablet);
  }
}

@media(max-width:768px){
  .entopy-products{
    grid-template-columns:repeat(var(--columns-mobile),minmax(0,1fr));
  }

  .entopy-product-card{
    aspect-ratio:var(--card-ratio-mobile);
    min-height:var(--mobile-card-min-height);
  }

  .entopy-product-main{
    justify-content:center;
  }

  .entopy-product-card h4{
    max-width:100%;
  }

  .entopy-product-card p{
    max-width:95%;
  }
}

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