/* ========================================
   BENEFITS SECTION – Airy & Flowing
======================================== */

.benefits {
  position: relative;
  padding-block: clamp(3rem, 6vw, 6rem);
  isolation: isolate;
  overflow: hidden;

  /* Soft Tai Chi “Qi” background */
  background:
    radial-gradient(
      1200px 600px at 10% -10%,
      rgba(242, 201, 105, 0.35),
      transparent 60%
    ),
    radial-gradient(
      1000px 600px at 95% 0%,
      rgba(108, 116, 66, 0.32),
      transparent 60%
    );
}

.benefits::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: soft-light;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.7),
      rgba(255, 255, 255, 0)
    );
  opacity: 0.8;
  z-index: 0;
}

/* Grid layout */

.benefits__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(var(--spacing-md), 3vw, var(--spacing-xl));
  align-items: stretch;
}

/* Benefit card */

.benefit-card {
  position: relative;
  z-index: 1;
  padding: clamp(1.25rem, 2.5vw, var(--spacing-lg));
  background: color-mix(in oklab, var(--color-white) 90%, transparent);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(86, 98, 49, 0.12);
  backdrop-filter: blur(10px);
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base),
    border-color var(--transition-base),
    background var(--transition-base);
  overflow: clip;
}

/* Soft top glow inside each card */
.benefit-card::before {
  content: "";
  position: absolute;
  inset: 0 0 55%;
  background:
    radial-gradient(
      200px 80px at 18% 0%,
      rgba(242, 201, 105, 0.24),
      transparent 70%
    ),
    radial-gradient(
      240px 80px at 80% 0%,
      rgba(108, 116, 66, 0.20),
      transparent 70%
    );
  opacity: 0.65;
  pointer-events: none;
}

/* Hover / focus: card “floats” up slightly */

.benefit-card:hover{
  transform: translateY(-1px) scale(1.1);
  box-shadow: 0 18px 80px rgba(0, 0, 0, 0.06);
}

.benefit-card:focus-within {
  transform: translateY(-8px) scale(1.5);
  box-shadow: var(--shadow-lg);
  border-color: rgba(242, 201, 105, 0.35);
  background: color-mix(in oklab, var(--color-white) 96%, transparent);
}

/* Slight staggered floating for a dreamy feel */
@keyframes benefit-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}

.benefit-card:nth-child(3n+1) {
  animation: benefit-float 18s ease-in-out infinite;
}
.benefit-card:nth-child(3n+2) {
  animation: benefit-float 20s ease-in-out infinite;
}
.benefit-card:nth-child(3n+3) {
  animation: benefit-float 22s ease-in-out infinite;
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .benefit-card {
    animation: none !important;
    transition: none;
  }
}

/* Icon */

.benefit-card__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--spacing-md);

  background: linear-gradient(
    135deg,
    rgba(242, 201, 105, 0.22),
    rgba(108, 116, 66, 0.18)
  );
  border-radius: var(--radius-md);
  color: var(--color-primary-olive);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
}

.benefit-card__icon svg {
  width: 32px;
  height: 32px;
}

/* Title & text */

.benefit-card__title {
  margin-bottom: var(--spacing-sm);
  color: var(--color-primary-olive);
  font-size: clamp(1.1rem, 0.95rem + 0.4vw, 1.35rem);
  letter-spacing: 0.02em;
}

.benefit-card__text {
  font-size: 1rem;
  line-height: 1.7;
  opacity: 0.88;
  text-wrap: balance;
}

/* Optional subtle divider under grid, if you use one */

.benefits__divider {
  margin-top: clamp(var(--spacing-lg), 4vw, var(--spacing-xxl));
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(86, 98, 49, 0.2),
    transparent
  );
  border-radius: 999px;
}

/* Small screens tweak */

@media (max-width: 640px) {
  .benefit-card {
    padding: var(--spacing-md);
  }

  .benefits {
    padding-block: 2.5rem 3.5rem;
  }
}
