/* ============================================================
   Firebrand Custom Cards — fcc-style.css
   ============================================================ */

/* ── Grid ─────────────────────────────────────────────────── */

.fcc-wrapper {
    width: 100%;
    box-sizing: border-box;
}

.fcc-grid {
    display: grid;
    grid-template-columns: repeat(var(--fcc-cols-desktop, 4), 1fr);
    gap: var(--fcc-gap, 24px);
}

/* ── Card base ────────────────────────────────────────────── */

.fcc-card {
    background-color: var(--fcc-card-bg, rgba(242,239,235,0.2));
    border: var(--fcc-card-border-width, 2px) solid var(--fcc-card-border-color, #f2efeb);
    border-radius: var(--fcc-card-radius, 12px);
    padding: var(--fcc-card-padding, 32px);
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-sizing: border-box;
    text-decoration: none;
    color: inherit;
    cursor: default;
    transition:
        background-color var(--fcc-transition, 300ms) ease,
        border-color     var(--fcc-transition, 300ms) ease,
        box-shadow       var(--fcc-transition, 300ms) ease;
}

a.fcc-card {
    cursor: pointer;
}

/* ── Icon ─────────────────────────────────────────────────── */

.fcc-icon-wrap {
    flex-shrink: 0;
}

.fcc-icon-bg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--fcc-icon-bg, rgba(255,85,0,0.13));
    border-radius: var(--fcc-icon-radius, 6px);
    padding: 8px 12px;
}

.fcc-icon-img {
    display: block;
    width: var(--fcc-icon-size, 40px);
    height: auto;
    max-height: calc(var(--fcc-icon-size, 40px) * 0.8);
    object-fit: contain;
}

.fcc-lottie {
    width: var(--fcc-icon-size, 40px);
    height: calc(var(--fcc-icon-size, 40px) * 0.8);
    display: block;
}

/* ── Typography ───────────────────────────────────────────── */

.fcc-card-content {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fcc-card-title {
    margin: 0;
    padding: 0;
    font-weight: 700;
    line-height: 1.4;
}

.fcc-card-subtitle {
    margin: 0;
    padding: 0;
    line-height: 1.5;
}

.fcc-card-body {
    margin: 0;
    line-height: 1.6;
}

.fcc-card-body p {
    margin-bottom: 0.6em;
}

.fcc-card-body p:last-child {
    margin-bottom: 0;
}

/* ── Hover: desktop (pointer device) ─────────────────────── */

@media (hover: hover) and (pointer: fine) {
    .fcc-card:hover {
        background-color: var(--fcc-hover-bg);
        border-color:     var(--fcc-hover-border);
        box-shadow:       var(--fcc-hover-shadow, none);
    }

    /* Image icon animations on hover */
    .fcc-card:hover .fcc-icon-img[data-anim="spin"]   { animation: fcc-spin   0.8s linear      infinite; }
    .fcc-card:hover .fcc-icon-img[data-anim="pulse"]  { animation: fcc-pulse  0.8s ease-in-out infinite; }
    .fcc-card:hover .fcc-icon-img[data-anim="bounce"] { animation: fcc-bounce 0.9s ease-in-out infinite; }
    .fcc-card:hover .fcc-icon-img[data-anim="float"]  { animation: fcc-float  2s   ease-in-out infinite; }
    .fcc-card:hover .fcc-icon-img[data-anim="shake"]  { animation: fcc-shake  0.5s ease-in-out infinite; }
}

/* ── Active state: JS-driven (mobile click, and Lottie on desktop) ── */

.fcc-card.fcc-active {
    background-color: var(--fcc-hover-bg);
    border-color:     var(--fcc-hover-border);
    box-shadow:       var(--fcc-hover-shadow, none);
}

/* Image icon animations on active (mobile) */
.fcc-active .fcc-icon-img[data-anim="spin"]   { animation: fcc-spin   0.8s linear      infinite; }
.fcc-active .fcc-icon-img[data-anim="pulse"]  { animation: fcc-pulse  0.8s ease-in-out infinite; }
.fcc-active .fcc-icon-img[data-anim="bounce"] { animation: fcc-bounce 0.9s ease-in-out infinite; }
.fcc-active .fcc-icon-img[data-anim="float"]  { animation: fcc-float  2s   ease-in-out infinite; }
.fcc-active .fcc-icon-img[data-anim="shake"]  { animation: fcc-shake  0.5s ease-in-out infinite; }

/* ── Keyframes ────────────────────────────────────────────── */

@keyframes fcc-spin {
    to { transform: rotate(360deg); }
}

@keyframes fcc-pulse {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.2); }
}

@keyframes fcc-bounce {
    0%, 100% { transform: translateY(0); }
    40%       { transform: translateY(-10px); }
    70%       { transform: translateY(-5px); }
}

@keyframes fcc-float {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-7px); }
}

@keyframes fcc-shake {
    0%, 100%  { transform: rotate(0deg); }
    20%, 60%  { transform: rotate(-9deg); }
    40%, 80%  { transform: rotate(9deg); }
}

/* ── Responsive ───────────────────────────────────────────── */

@media (max-width: 980px) {
    .fcc-grid {
        grid-template-columns: repeat(var(--fcc-cols-tablet, 2), 1fr);
    }
}

@media (max-width: 767px) {
    .fcc-grid {
        grid-template-columns: repeat(var(--fcc-cols-mobile, 1), 1fr);
    }
}
