/* ==========================================================
   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;
}





/* ==========================================================
   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;
}

@media (max-width: 900px) {

    .card-grid-row {
        display: flex !important;
        position: relative;

        align-items: stretch;

        cursor: grab;

        overflow-x: auto;
        overflow-y: hidden;

        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;

        gap: 1rem;
        padding-bottom: .5rem;

        scrollbar-width: none;
    }

    .card-grid-row:active {
        cursor: grabbing;
    }

    .card-grid-row::-webkit-scrollbar {
        display: none;
    }

    .card-grid-row>* {
        flex: 0 0 min(82vw, 320px);

        display: flex;
        align-self: stretch;

        scroll-snap-align: start;
    }

    .card-grid-row .card-base {
        width: 100%;
        height: 100%;

        display: flex;
        flex-direction: column;
    }

}

/* ==========================================================
   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);
}

/* ==========================================================
   SHARED CONTENT WIDTH
========================================================== */

.layout-section,
.feature-section {
    width: min(100% - 2rem, var(--container-content));
    margin-inline: auto;
}

.layout-section-spacing {
    padding-block: 0;
}

.layout-section+.layout-section {
    margin-top: var(--section-gap);
}

.card-grid-row,
.cta-banner,
.card--latest-post {
    box-sizing: border-box;
}

/* Gemeinsame Basis */
.section-eyebrow,
.cta-eyebrow {
    display: inline-flex;
    align-items: center;

    width: fit-content;

    padding: .5rem 1.05rem;
    margin-bottom: 1rem;

    border-radius: 999px;

    background: #FBE5D3;
    color: #C86A12;

    font-size: 1rem;
    font-weight: 700;
    line-height: 1;

    letter-spacing: .015em;
    text-transform: lowercase;

    box-shadow:
        0 4px 14px rgba(0, 0, 0, .06);
}

/* Nur CTA-spezifischer Abstand */
.cta-eyebrow {
    width: fit-content;

    max-width: max-content;

    align-self: flex-start;

    white-space: nowrap;

    margin-bottom: 1rem;
}

.cta-content .cta-eyebrow {
    display: inline-flex !important;

    width: auto !important;
    max-width: max-content !important;

    align-self: flex-start;

    white-space: nowrap;
}