/* ローディングアニメーション */
.spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f0fdf4;
    border-top: 4px solid #84cc16;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* 検索条件の開閉アニメーション */
#filter-form-container {
    transition: max-height 0.3s ease-out, opacity 0.2s ease-in-out, margin-top 0.3s ease-out;
    overflow: hidden;
}
#filter-form-container.closed {
    max-height: 0 !important;
    opacity: 0;
    margin-top: 0 !important;
}

/* カードのデザイン（画像拡大エフェクト） */
.mushi-card {
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
    position: relative;
}
.mushi-card:hover {
    box-shadow: 0 20px 40px -10px rgba(20, 83, 45, 0.15);
    border-color: #84cc16;
}
.mushi-card-img-wrapper {
    overflow: hidden;
}
.mushi-card-img-wrapper img {
    transition: transform 0.5s ease-out;
}
.mushi-card:hover .mushi-card-img-wrapper img {
    transform: scale(1.15);
}

/* 追加：内部個別リンクの重なり順とホバー制御 */
.mushi-card a[href^="/events/prefectures/"],
.mushi-card .pointer-events-auto a {
    z-index: 10;
    transition: all 0.2s ease;
}

.mushi-card a[href^="/events/prefectures/"]:hover,
.mushi-card .pointer-events-auto a:hover {
    transform: translateY(-2px);
    filter: brightness(1.05);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}