/* Interactive Hover Card – Elementor (v1.0.1)
   - Solid color overlay (no gradient), slides bottom->top
   - Button fill is a solid color sliding top->bottom
   - Button width adjustable in % of card width
*/
.ihc-card{
  --card-bg:#f1f3f5;
  --overlay-color:rgba(0,0,0,0.2); /* set alpha for transparency */
  --hover-speed:600ms;
  --title-bg:#fff;
  --title-bg-hover:#e9eef7; /* solid overlay for button fill */
  --title-color:#212529;
  --title-color-hover:#111;
  --shadow-color: rgba(0,0,0,.25);
  --shadow-blur:28px;
  --img-scale:1.02;

  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-direction:column;
  overflow:hidden;
  background: var(--card-bg);
  border-radius: 16px;
  box-shadow: 0 12px var(--shadow-blur) -8px rgba(0,0,0,.12);
  min-height: 360px;
}

/* Image area */
.ihc-image{
  position:absolute;
  inset:0 0 96px 0;
  overflow:hidden;
  border-radius: inherit;
}
.ihc-image img{
  width:100%;
  height:100%;
  object-fit: contain;
  transform: translate3d(0,0,0);
  transition: transform var(--hover-speed) ease, filter var(--hover-speed) ease;
}

/* SOLID overlay that slides from bottom to top */
.ihc-overlay{
  position:absolute;
  inset:0;
  background: var(--overlay-color); /* Solid color, control opacity via alpha */
  transform: translateY(100%);
  transition: transform var(--hover-speed) ease;
  pointer-events:none;
}
.ihc-card:hover .ihc-overlay{ transform: translateY(0); }

/* Title area */
.ihc-title-wrap{
  position:absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:auto;
  width: 100%;
}
.ihc-title{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.2;
  padding: 16px 22px;
  border-radius: 12px;
  background: var(--title-bg);
  color: var(--title-color);
  transition:
    color var(--hover-speed) ease,
    box-shadow var(--hover-speed) ease,
    transform var(--hover-speed) ease;
  overflow:hidden; /* for sliding overlay */
}
.ihc-title-text{ position:relative; z-index:2; display:block; text-align:center; }

/* Solid fill from TOP to BOTTOM on hover using ::before */
.ihc-title::before{
  content:"";
  position:absolute;
  inset:0;
  background: var(--title-bg-hover);
  transform: translateY(-100%);
  transition: transform var(--hover-speed) ease;
  z-index:1;
}
.ihc-card:hover .ihc-title::before{ transform: translateY(0); }
.ihc-card:hover .ihc-title{ color: var(--title-color-hover); transform: translateY(-2px); }

/* Image hover micro interactions */
.ihc-card:hover img{
  transform: scale(var(--img-scale));
  filter: saturate(1.05) contrast(1.02);
}

/* Links reset */
.ihc-title-link, .ihc-img-link{ text-decoration:none; color:inherit; }
