/*
 * Einheitlicher Kachel-Hover im ganzen Shop – Vorbild: Startseite / BHKW-Seite
 * (Page-Builder „Anheben + Schatten“): anheben, Rahmen in Primärfarbe + 2-px-Ring,
 * kräftiger Schatten, Bild leicht vergrößert.
 * Gilt für: Produktkarten (Kategorie-/Such-/Motor-/Typ-Listen, „Zuletzt angesehen“),
 * Page-Builder-Kategorie-Kacheln, Themen-Kacheln (cards + topic).
 * Wird nach allen anderen Styles geladen (base.html.twig).
 */
:root {
    --ps-hover-color: var(--pb-color-primary, #0b3fbf);
    --ps-hover-lift: -6px;
    --ps-hover-shadow: 0 18px 40px rgba(15, 31, 61, .25), 0 4px 12px rgba(15, 31, 61, .15);
    --ps-hover-ring: inset 0 0 0 2px var(--ps-hover-color);
    --ps-hover-img-scale: 1.03;
    --ps-hover-duration: .25s;
}

/* ---------- Produktkarten ---------- */
.product-card-shell > *,
.product-card--strong-border {
    position: relative !important;
    transition: transform var(--ps-hover-duration) ease, box-shadow var(--ps-hover-duration) ease, border-color var(--ps-hover-duration) ease !important;
}

/* Ring als eigene Ebene über Bild und Inhalt (wie Kategorie-Kacheln der Startseite). */
.product-card-shell > *::after,
.product-card--strong-border::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    box-shadow: var(--ps-hover-ring);
    opacity: 0;
    transition: opacity var(--ps-hover-duration) ease;
    pointer-events: none;
}

.product-card-shell .product-card__media,
.product-card--strong-border .product-card__media {
    overflow: hidden;
}

.product-card-shell .product-card__media img,
.product-card--strong-border .product-card__media img,
.product-card--strong-border .card-img-top {
    transition: transform .4s ease;
}

@media (hover: hover) {
    .product-card-shell:hover > *,
    .product-card-shell:focus-within > *,
    .products-grid--compact .product-card-shell:hover > *,
    .products-grid--compact .product-card-shell .card:hover,
    .product-card--strong-border:hover,
    .product-card--strong-border:focus-within,
    .products-grid--compact .product-card--strong-border:hover,
    .products-grid--compact .product-card--strong-border:focus-within {
        transform: translateY(var(--ps-hover-lift)) !important;
        border-color: var(--ps-hover-color) !important;
        box-shadow: var(--ps-hover-shadow) !important;
        outline: 0 !important;
        z-index: 30;
    }

    .product-card-shell:hover > *::after,
    .product-card-shell:focus-within > *::after,
    .product-card--strong-border:hover::after,
    .product-card--strong-border:focus-within::after {
        opacity: 1;
    }

    .product-card-shell:hover .product-card__media img,
    .product-card--strong-border:hover .product-card__media img,
    .product-card--strong-border:hover .card-img-top {
        transform: scale(var(--ps-hover-img-scale));
    }
}

/* ---------- Page-Builder: Themen-Kacheln (cards) – gleiche Optik wie Kategorie-Kacheln ---------- */
.pb-cards .pb-tcard__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    box-shadow: var(--ps-hover-ring);
    opacity: 0;
    transition: opacity var(--ps-hover-duration) ease;
    pointer-events: none;
}

.pb-cards--hover-lift .pb-tcard__link:hover,
.pb-cards--hover-zoom .pb-tcard__link:hover,
.pb-cards--hover-lift .pb-tcard__link:focus-visible,
.pb-cards--hover-zoom .pb-tcard__link:focus-visible {
    transform: translateY(var(--ps-hover-lift));
    border-color: var(--ps-hover-color);
    box-shadow: var(--ps-hover-shadow);
}

.pb-cards:not(.pb-cards--hover-none) .pb-tcard__link:hover::after,
.pb-cards:not(.pb-cards--hover-none) .pb-tcard__link:focus-visible::after {
    opacity: 1;
}

/* ---------- Page-Builder: Kategorie-Kacheln – Variablen statt fester Werte ---------- */
.pb-categories--hover-lift .pb-card__link:hover,
.pb-categories--hover-zoom .pb-card__link:hover,
.pb-categories--hover-lift .pb-card__link:focus-visible,
.pb-categories--hover-zoom .pb-card__link:focus-visible {
    transform: translateY(var(--ps-hover-lift));
    border-color: var(--ps-hover-color);
    box-shadow: var(--ps-hover-shadow);
}

/* ---------- Page-Builder: Themen-Kacheln (Bild-Variante) ---------- */
a.pb-topic__link {
    position: relative;
    transition: transform var(--ps-hover-duration) ease, box-shadow var(--ps-hover-duration) ease;
}

a.pb-topic__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    box-shadow: var(--ps-hover-ring);
    opacity: 0;
    transition: opacity var(--ps-hover-duration) ease;
    pointer-events: none;
}

@media (hover: hover) {
    a.pb-topic__link:hover,
    a.pb-topic__link:focus-visible {
        transform: translateY(var(--ps-hover-lift));
        box-shadow: var(--ps-hover-shadow);
    }

    a.pb-topic__link:hover::after,
    a.pb-topic__link:focus-visible::after {
        opacity: 1;
    }
}

/* Touch-Geräte: kein „klebender“ Hover beim Scrollen. */
@media (hover: none) {
    .product-card-shell > *::after,
    .product-card--strong-border::after,
    .pb-cards .pb-tcard__link::after,
    a.pb-topic__link::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .product-card-shell > *,
    .product-card--strong-border,
    .product-card-shell .product-card__media img,
    a.pb-topic__link {
        transition: none !important;
    }

    .product-card-shell:hover > *,
    .product-card--strong-border:hover,
    a.pb-topic__link:hover {
        transform: none !important;
    }
}

/* ---------- "Zuletzt angesehen"-Karten: ganze Karte klickbar (wie Kategorie-Karten) ---------- */
[data-rv-card] .rv-card-body {
    position: static !important;
}
[data-rv-card] .rv-card-body h3 a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}
[data-rv-card] .rv-remove-form,
[data-rv-card] .rv-add-to-cart-wrap {
    z-index: 3;
}
