/* Catalogue grid-card media (peaknetwork.se).
 *
 * This modifier makes only catalogue listing cards edge-to-edge.  The shared
 * .kd-card remains padded and overflow-visible for all other callers. */
.kd-pn-product--edge-media {
    padding: 0;
    overflow: hidden;
}

.kd-pn-product__link {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

.kd-pn-product--edge-media .kd-pn-product__link:focus-visible {
    outline: 2px solid var(--kd-accent);
    outline-offset: -2px;
}

.kd-pn-product__media {
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--kd-bg-sunken);
    border-radius: calc(var(--kd-radius) - var(--kd-border-w)) calc(var(--kd-radius) - var(--kd-border-w)) 0 0;
}

.kd-pn-product__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kd-pn-product__media .kd-product-media__placeholder {
    display: none;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: var(--kd-s-3);
    color: var(--kd-fg-muted);
    font-family: var(--kd-font-mono);
    font-size: var(--kd-text-0);
    letter-spacing: var(--kd-track-mono);
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
}

.kd-pn-product__media.is-fallback > img { display: none; }
.kd-pn-product__media.is-fallback > .kd-product-media__placeholder { display: flex; }

.kd-pn-product__body {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    padding: var(--kd-pad-card);
}

.kd-pn-product__body .kd-pn-price-stack {
    margin-top: auto;
}

.kd-pn-product--edge-media > .kd-pn-actions {
    margin: 0;
}
