/* ==========================================================
   BASE CARDS
========================================================== */

.card-base {
    position: relative;
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    border-radius: clamp(1.25rem, 2vw, 1.75rem);
    border: 2px solid rgba(85, 142, 136, .38);

    background: rgba(255, 255, 255, .88);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .07);

    transition:
        transform var(--transition-fast),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        background var(--transition-fast);
}

.card-base.card--interactive:hover,
.card-base.card--interactive:has(a:focus-visible) {
    transform: translateY(-4px);

    border-color: var(--wp--preset--color--primary);

    background: rgba(255, 255, 255, .96);

    box-shadow:
        0 14px 32px rgba(0, 0, 0, .18),
        0 0 0 1px rgba(242, 154, 58, .25);
}

.card-base:has(.feature-card__link:focus-visible) {
    transform: translateY(-4px);

    outline: 3px solid var(--wp--preset--color--primary);
    outline-offset: 4px;

    box-shadow:
        0 0 0 6px rgba(242, 154, 58, .22),
        0 14px 32px rgba(0, 0, 0, .18);
}

/* ==========================================================
   CLICKABLE BASE GRID
========================================================== */

.card--interactive {
    position: relative;

    cursor: pointer;
}

.card--interactive .card-link {
    position: absolute;
    inset: 0;

    z-index: 3;

    display: block;
    overflow: hidden;

    text-indent: -9999px;

    background: transparent !important;
    color: transparent !important;

    text-decoration: none !important;
}

.card--interactive:has(.card-link:focus-visible) {
    outline: 3px solid var(--wp--preset--color--primary);
    outline-offset: 4px;

    box-shadow:
        0 0 0 6px rgba(242, 154, 58, .22),
        0 18px 42px rgba(0, 0, 0, .18);
}

.card--interactive:hover .card-title,
.card--interactive:has(.card-link:focus-visible) .card-title {
    color: var(--wp--preset--color--primary);

    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: .12em;
}


/* ==========================================================
   FALLBACK CARD – STRETCHED LINK
========================================================== */

.card--interactive {
    position: relative;
}

.card-fallback__title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}


/* ==========================================================
   CARD BASE
========================================================== */

.card {
    position: relative;

    height: 100%;

    padding: clamp(1.5rem, 3vw, 3rem);

    border-radius: var(--radius-lg);

    overflow: hidden;

    transition:
        transform var(--transition-base),
        box-shadow var(--transition-base),
        border-color var(--transition-base),
        background var(--transition-base);
}

.card::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        radial-gradient(circle at top right,
            rgba(255, 255, 255, .16),
            transparent 42%);

    pointer-events: none;
}

.card--glass {
    background: var(--surface-card);
    border: 1px solid var(--border-card);

    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);

    box-shadow: var(--shadow-md);
}

.card--solid {
    background: var(--wp--preset--color--surface);
    box-shadow: var(--shadow-sm);
}

.card--outline {
    border: 1px solid var(--border-soft);
}

.card a {
    text-underline-offset: .18em;
}


/* ==========================================================
   INTERACTIVE CARD
========================================================== */

.card--interactive {
    position: relative;
}

.card--interactive::after {
    content: "↗";

    position: absolute;
    right: 1rem;
    bottom: 1rem;

    opacity: 0;

    color: var(--wp--preset--color--primary);

    font-size: .95rem;
    font-weight: 700;

    transform: translate(0, 0);

    transition:
        opacity var(--transition-fast),
        transform var(--transition-fast);
}

.card--interactive:hover::after {
    opacity: .72;

    transform: translate(2px, -2px);
}