/*
 * Case study card (global) — template-parts/components/case-study-card/case-study-card.php
 * Figma "case study card", file TtcElVBB8zSMtMk2WR2VFf, node 22029:20856.
 * Type sizes come from the sd-type-* primitives (css/typography.css); this file only
 * does layout, colors and the Hover state. Classes are doubled
 * (.sd-case-card.sd-case-card) instead of !important so the card beats page-level
 * CSS on any template it is rendered on.
 */

/* The 1px frame is Figma's INSIDE stroke: it is painted ON TOP of the full-bleed image,
   not around it. A real `border` (even with box-sizing: border-box) sits outside the
   content box, so the image would start 1px in and the frame would ring it — hence the
   frame lives on an ::after overlay above the content instead. */
.sd-case-card.sd-case-card {
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: var(--sd-card-radius, 16px);
    background: #fff;
    color: #262626;
    text-decoration: none;
    font-family: 'Google Sans Flex', sans-serif;
    transition: box-shadow var(--sd-card-transition, .2s ease);
    -webkit-tap-highlight-color: transparent;
}

.sd-case-card.sd-case-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border: 1px solid var(--sd-card-border, rgba(0, 0, 0, .1));
    border-radius: inherit;
    pointer-events: none;
    transition: border-color var(--sd-card-transition, .2s ease);
}

.sd-case-card.sd-case-card * {
    font-family: 'Google Sans Flex', sans-serif;
}

/* Image: full-bleed inside the 16px shell (no inner inset), 409:200. */
.sd-case-card .sd-case-card__media {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 409 / 200;
    overflow: hidden;
    background: #faf7f5;
}

.sd-case-card .sd-case-card__media picture {
    display: block;
    width: 100%;
    height: 100%;
}

.sd-case-card .sd-case-card__image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    transition: transform .4s ease;
}

.sd-case-card .sd-case-card__body {
    box-sizing: border-box;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 24px;
    padding: 28px;
}

/* Heading grows so dividers and KPIs line up across a grid row. */
.sd-case-card .sd-case-card__heading {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}

.sd-case-card .sd-case-card__title {
    margin: 0;
    color: #262626;
    overflow-wrap: break-word;
}

.sd-case-card .sd-case-card__title-text {
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: text-decoration-color .2s ease;
}

.sd-case-card .sd-case-card__divider {
    display: block;
    width: 100%;
    height: 1px;
    background: rgba(0, 0, 0, .1);
}

.sd-case-card .sd-case-card__kpis {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    margin: 0;
}

.sd-case-card .sd-case-card__kpi {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.sd-case-card .sd-case-card__kpi-value,
.sd-case-card .sd-case-card__kpi-label {
    margin: 0;
    overflow-wrap: break-word;
}

.sd-case-card .sd-case-card__kpi-value {
    color: #262626;
}

.sd-case-card .sd-case-card__kpi-value span {
    font: inherit;
}

.sd-case-card .sd-case-card__kpi-label {
    color: rgba(0, 0, 0, .75);
}

/* Hover (desktop pointers only) — Figma State=Hover: black/20 border, 1px shadow,
   underlined title, image eases in (~5%). Border/shadow come from the shared card
   tokens in css/style.min.css :root (--sd-card-*), same as Solutions and Resource cards. */
@media (hover: hover) {
    .sd-case-card.sd-case-card:hover {
        box-shadow: var(--sd-card-shadow-hover, 0 1px 2px rgba(0, 0, 0, .1));
    }

    .sd-case-card.sd-case-card:hover::after {
        border-color: var(--sd-card-border-hover, rgba(0, 0, 0, .2));
    }

    .sd-case-card.sd-case-card:hover .sd-case-card__image {
        transform: scale(1.05);
    }

    .sd-case-card.sd-case-card:hover .sd-case-card__title-text {
        text-decoration-color: rgba(0, 0, 0, .4);
    }
}

.sd-case-card.sd-case-card:focus {
    outline: none;
}

.sd-case-card.sd-case-card:focus-visible {
    outline: 2px solid #262626;
    outline-offset: 2px;
}

.sd-case-card.sd-case-card:focus-visible::after {
    border-color: var(--sd-card-border-hover, rgba(0, 0, 0, .2));
}

.sd-case-card.sd-case-card:focus-visible .sd-case-card__title-text {
    text-decoration-color: rgba(0, 0, 0, .4);
}

@media (max-width: 767px) {
    .sd-case-card .sd-case-card__body {
        padding: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sd-case-card.sd-case-card,
    .sd-case-card .sd-case-card__image,
    .sd-case-card .sd-case-card__title-text {
        transition: none;
    }

    .sd-case-card.sd-case-card:hover .sd-case-card__image {
        transform: none;
    }
}
