/*!**********************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./assets/css/blocks/feature_cards/view.css ***!
  \**********************************************************************************************************************************************************************************************/
/* Feature cards — responsive flex grid.
   - Mobile: 1 column.
   - Tablet (sm+): 2 columns.
   - Desktop (lg+): editor-chosen column count via --feature-columns.
   - Grid always uses justify-content: center so the lone card in a partial
     last row sits centered (3-over-2-centered, 4-over-3-centered, etc.).
     Full rows aren't affected because the cards' calc-based widths fully
     occupy the available width with the gap accounted for. The section's
     Alignment toggle controls only the header (heading + intro). */
.feature-cards__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.feature-cards__card {
  flex: 0 1 100%;
  max-width: 100%;
}

@media (min-width: 640px) {
  .feature-cards__card {
    flex: 0 1 calc((100% - 1.5rem) / 2);
    max-width: calc((100% - 1.5rem) / 2);
  }
}

/* At lg (≥1024px), cap effective columns at 3 so a 4-column choice doesn't
   wrap to 3+1 at narrow-desktop widths. The full editor choice kicks in at
   xl (≥1280px) where 4 columns has room to breathe. */
@media (min-width: 1024px) {
  .feature-cards__grid {
    gap: 2rem;
  }

  .feature-cards__card {
    --cols: min(var(--feature-columns, 3), 3);
    flex: 0 1 calc((100% - (var(--cols) - 1) * 2rem) / var(--cols));
    max-width: calc((100% - (var(--cols) - 1) * 2rem) / var(--cols));
    min-width: 16rem;
  }
}

@media (min-width: 1280px) {
  .feature-cards__card {
    --cols: var(--feature-columns, 3);
    flex: 0 1 calc((100% - (var(--cols) - 1) * 2rem) / var(--cols));
    max-width: calc((100% - (var(--cols) - 1) * 2rem) / var(--cols));
  }
}

/* Card media: fill the aspect ratio box. */
.feature-cards__media > :is(img, picture, picture img) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Stretched-link pattern: clicking anywhere on the card follows the button's
   link. The button's ::before is absolutely positioned relative to the card
   (which has position: relative), so inset: 0 covers the entire card surface.
   Only one interactive element exists per card (the <a>), so screen readers
   hear one link per card. The button itself must NOT be position: relative,
   or its ::before would only stretch across the button instead of the card.
   Text selection on the card is sacrificed for a larger tap target — the
   right trade-off for a 65+ audience. */
.feature-cards__card[data-clickable="true"] .feature-cards__button::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Subtle hover lift on clickable cards. Respect reduced-motion. */
@media (prefers-reduced-motion: reduce) {
  .feature-cards__card {
    transition: none;
  }
}

