/* ==========================================================================
   Custom theme overrides (loaded LAST, after style.css & responsive.css)
   Safe / additive only — no existing files are modified.
   To revert: empty this file or restore custom.css.bak-*.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Global soft shadow for cards
   - Applies only to .card that don't already opt into a shadow utility
     (.shadow-card / .shadow-xs) so existing styled cards stay untouched.
   - Add the .no-shadow class to any card that should stay flat.
   -------------------------------------------------------------------------- */
.card:not(.shadow-card):not(.shadow-xs):not(.no-shadow) {
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.04),
    0 4px 16px rgba(16, 24, 40, 0.06);
  border-radius: 0.85rem;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

/* Keep top/bottom media flush with the card's rounded corners.
   Scoped to the same cards; no global overflow change so badges/
   dropdowns inside cards are never clipped. */
.card:not(.shadow-card):not(.shadow-xs):not(.no-shadow) > .card-img-top,
.card:not(.shadow-card):not(.shadow-xs):not(.no-shadow) > img:first-child {
  border-top-left-radius: 0.85rem;
  border-top-right-radius: 0.85rem;
}
.card:not(.shadow-card):not(.shadow-xs):not(.no-shadow) > .card-img-bottom,
.card:not(.shadow-card):not(.shadow-xs):not(.no-shadow) > img:last-child {
  border-bottom-left-radius: 0.85rem;
  border-bottom-right-radius: 0.85rem;
}

/* Subtle lift on hover for interactive feel (only where a shadow is applied) */
.card:not(.shadow-card):not(.shadow-xs):not(.no-shadow):hover {
  box-shadow:
    0 4px 12px rgba(16, 24, 40, 0.08),
    0 12px 28px rgba(16, 24, 40, 0.10);
  transform: translateY(-2px);
}

/* Opt-out helper: keep a card visually flat */
.card.no-shadow {
  box-shadow: none !important;
  transform: none !important;
}
