/* Mamta Niketan: additive Facilities animation layer. */
.mn-facilities .mn-fac {
  position: relative;
  isolation: isolate;
  transition: opacity .7s ease,
    transform .7s cubic-bezier(.2,.8,.2,1),
    box-shadow .4s ease, border-color .4s ease;
}
/* Override the base stylesheet's unconditional hover transform. */
.mn-facilities .mn-fac:hover { transform: none; }
.mn-facilities .mn-fac-media { overflow: hidden; }
.mn-facilities .mn-fac.has-photo .mn-fac-media > img {
  transition: transform .7s cubic-bezier(.2,.7,.2,1);
}
.mn-facilities .mn-fac.has-photo .mn-fac-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,.16));
  opacity: 0;
  transition: opacity .45s ease;
  pointer-events: none;
  z-index: 2;
}
.mn-facilities .mn-fac-title {
  position: relative;
  display: inline-block;
}
.mn-facilities .mn-fac-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: min(45px, 100%);
  height: 2px;
  border-radius: 20px;
  background: var(--wels-accent, #a3560f);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s ease;
  pointer-events: none;
}
.mn-facilities .mn-fac-btn {
  position: relative;
  min-height: 44px;
  box-sizing: border-box;
  transition: background-color .3s ease, color .3s ease,
    transform .3s ease, box-shadow .3s ease;
}
.mn-facilities .mn-fac-btn span[aria-hidden="true"] {
  display: inline-block;
  transition: transform .3s ease;
}
.mn-facilities .mn-fac-btn:focus-visible {
  outline: 3px solid var(--mn-accent-text, #a3560f);
  outline-offset: 3px;
}
.mn-facilities .mn-fac-icon {
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
}

/* Fine-pointer hover only: no sticky touch-hover requirement. */
@media (hover: hover) and (pointer: fine) {
  .mn-facilities .mn-fac:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 45px rgba(36,31,28,.12), 0 5px 15px rgba(36,31,28,.05);
    border-color: var(--wels-accent, #a3560f);
    border-color: color-mix(in srgb, var(--wels-accent, #a3560f) 35%, var(--mn-line, #e5ddd5));
  }
  .mn-facilities .mn-fac.has-photo:hover .mn-fac-media > img { transform: scale(1.07); }
  .mn-facilities .mn-fac.has-photo:hover .mn-fac-media::after { opacity: 1; }
  .mn-facilities .mn-fac:hover .mn-fac-title::after { transform: scaleX(1); }
  .mn-facilities .mn-fac:hover .mn-fac-icon {
    transform: translateY(-5px) scale(1.07);
    box-shadow: 0 12px 26px rgba(163,86,15,.18);
  }
  .mn-facilities .mn-fac-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 18px rgba(163,86,15,.18);
  }
  .mn-facilities .mn-fac-btn:hover span[aria-hidden="true"] { transform: translateX(5px); }
}
/* Keyboard feedback without requiring a mouse. */
.mn-facilities .mn-fac:focus-within .mn-fac-title::after { transform: scaleX(1); }
.mn-facilities .mn-fac-btn:focus-visible span[aria-hidden="true"] { transform: translateX(5px); }

/* JS applies pending only after the observer is ready.
   Visible is the default when JS is absent or unsupported. */
.mn-facilities .mn-fac.mn-reveal-pending {
  opacity: 0;
  transform: translateY(35px) scale(.98);
}
@media (max-width: 860px) {
  .mn-facilities .mn-fac.mn-reveal-pending { transform: translateY(24px); }
}
@media (max-width: 480px) {
  .mn-facilities .mn-fac-btn { min-height: 48px; }
}

/* Optional shine: enabled only by the JS option below. */
@media (hover: hover) and (pointer: fine) {
  .mn-facilities.mn-enable-shine .mn-fac::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.18) 50%, transparent 65%);
    transform: translateX(-150%) skewX(-15deg);
    pointer-events: none;
    z-index: 5;
  }
  .mn-facilities.mn-enable-shine .mn-fac:hover::before {
    animation: mn-fac-shine .75s ease both;
  }
}
@keyframes mn-fac-shine {
  to { transform: translateX(150%) skewX(-15deg); }
}

/* Must remain last, including after any custom animation overrides. */
@media (prefers-reduced-motion: reduce) {
  .mn-facilities .mn-fac,
  .mn-facilities .mn-fac-media > img,
  .mn-facilities .mn-fac-icon,
  .mn-facilities .mn-fac-btn,
  .mn-facilities .mn-fac-btn span[aria-hidden="true"],
  .mn-facilities .mn-fac-title::after,
  .mn-facilities .mn-fac-media::after,
  .mn-facilities .mn-fac::before {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
  .mn-facilities .mn-fac.mn-reveal-pending { opacity: 1 !important; }
  .mn-facilities .mn-fac::before { display: none !important; }
}
