/* ===== Scoped Reset ===== */
.pf-wrapper,
.pf-wrapper *,
.pf-wrapper *::before,
.pf-wrapper *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-style: normal;
  text-decoration: none;
  list-style: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ===== Product Features — Main Wrapper (full width) ===== */
.pf-wrapper {
  width: 100%;
  position: relative;
  overflow: visible;
}

/* ─── Skew background ─── */
.pf-skew {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 0;
  transform: skew(0, -3deg);
  transform-origin: left top;
  background-color: #fff;
}

.pf-inner {
  width: 100%;
  position: relative;
  z-index: 2;
  transform: skew(0, -3deg);
  transform-origin: left top;
}

/* ===== Feature Content ===== */
.pf-content {
  padding: 0;
}

/* ─── Feature Item Grid (full width, equal columns) ─── */
.pf-feature-grid {
  display: flex;
  justify-content: stretch;
  align-items: stretch;
  min-height: 400px;
  position: relative;
  width: 100%;
}

.pf-feature-grid::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  z-index: 1;
  background-color: #dcdcdc;
}

/* ─── Single Feature Item (flex: equal share) ─── */
.pf-feature-item {
  display: flex;
  flex: 1 1 0;
  min-height: 380px;
  position: relative;
  padding: 0 2%;
  transition: all 0.3s cubic-bezier(0.7, 0.01, 0.3, 1);
  cursor: pointer;
  border-top: none !important;
  border-right: none !important;
  border-left: none !important;
}

.pf-feature-item .pf-feature-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  text-align: center;
  position: relative;
  z-index: 100;
  text-decoration: none;
  cursor: default;
  transform: skew(0, 3deg);
}

/* Icon */
.pf-feature-icon {
  display: block;
  width: 60px;
  height: 60px;
  margin: 0 auto 30px auto;
  object-fit: contain;
}

/* Text */
.pf-feature-title {
  font-size: 18px;
  color: #303a43;
  text-align: center;
  display: block;
  line-height: 1.6;
}

.pf-feature-desc {
  font-size: 14px;
  color: #808080;
  text-align: center;
  display: block;
  margin-top: 8px;
  line-height: 1.6;
}

/* ─── Active / Hover state ─── */
.pf-feature-item.active,
.pf-feature-item:hover {
  background-color: #2640bf;
  filter: drop-shadow(0 20px 30px rgba(0, 96, 229, 0.5));
}

.pf-feature-item.active .pf-feature-title,
.pf-feature-item:hover .pf-feature-title {
  color: #fff;
}

.pf-feature-item.active .pf-feature-desc,
.pf-feature-item:hover .pf-feature-desc {
  color: rgba(255, 255, 255, 0.7);
}

/* Image icon invert on active */
.pf-feature-item.active .pf-feature-icon,
.pf-feature-item:hover .pf-feature-icon {
  filter: brightness(0) invert(1);
}


/* ===== Entrance Animations ===== */
@keyframes pf-fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.pf-animate-in .pf-feature-item {
  opacity: 0;
  animation: pf-fadeInUp 0.6s ease forwards;
}

.pf-animate-in .pf-feature-item:nth-child(1) { animation-delay: 0s; }
.pf-animate-in .pf-feature-item:nth-child(2) { animation-delay: 0.1s; }
.pf-animate-in .pf-feature-item:nth-child(3) { animation-delay: 0.2s; }
.pf-animate-in .pf-feature-item:nth-child(4) { animation-delay: 0.3s; }
.pf-animate-in .pf-feature-item:nth-child(5) { animation-delay: 0.4s; }
.pf-animate-in .pf-feature-item:nth-child(6) { animation-delay: 0.5s; }
.pf-animate-in .pf-feature-item:nth-child(7) { animation-delay: 0.6s; }
.pf-animate-in .pf-feature-item:nth-child(8) { animation-delay: 0.7s; }


/* ===== Large Desktop ≤ 1440px ===== */
@media screen and (max-width: 1440px) {
  .pf-feature-item {
    min-height: 380px;
  }
}

/* ===== Small Desktop ≤ 1280px ===== */
@media screen and (max-width: 1280px) {
  .pf-feature-item {
    min-height: 340px;
  }
  .pf-feature-item .pf-feature-link {
    padding: 35px 15px;
  }
}

/* ===== Tablet Landscape ≤ 1024px ===== */
@media screen and (max-width: 1024px) {
  .pf-feature-item {
    min-height: 300px;
  }
  .pf-feature-item .pf-feature-link {
    padding: 30px 12px;
  }
}

/* ===== Tablet Portrait ≤ 800px ===== */
@media screen and (max-width: 800px) {
  .pf-feature-grid {
    flex-wrap: wrap;
    min-height: auto;
  }

  .pf-feature-item {
    flex: 0 0 46%;
    min-height: auto;
    height: auto;
    margin: 0 2% 30px 2%;
  }

  .pf-feature-item .pf-feature-link {
    padding: 30px 10px;
  }
}

/* ===== Large Phone ≤ 640px ===== */
@media screen and (max-width: 640px) {
  .pf-feature-item {
    flex: 0 0 46%;
    margin: 0 2% 20px 2%;
  }
  .pf-feature-item .pf-feature-link {
    padding: 24px 8px;
  }
  .pf-feature-item .pf-feature-title {
    font-size: 14px;
  }
  .pf-feature-item .pf-feature-desc {
    font-size: 11px;
  }
}

/* ===== Phone ≤ 480px ===== */
@media screen and (max-width: 480px) {
  .pf-feature-item {
    flex: 0 0 100%;
    margin: 0 0 20px 0;
  }
}

/* ===== Small Phone ≤ 375px ===== */
@media screen and (max-width: 375px) {
  .pf-feature-item .pf-feature-link {
    padding: 20px 8px;
  }
  .pf-feature-item .pf-feature-title {
    font-size: 13px;
  }
}

/* ===== Accessibility: Reduced Motion ===== */
@media (prefers-reduced-motion: reduce) {
  .pf-feature-item {
    transition: none !important;
  }
  .pf-feature-item .pf-feature-link {
    transition: none !important;
  }
  .pf-animate-in .pf-feature-item {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
