    /* =================================================================
       WPPM – Pet Manager Styles
       Modernes Design für Archiv + Einzelansicht

       Elementor-Kompatibilität:
       - Globale Elementor Fonts werden übernommen
       - Globale Primary-/Accent-/Text-Farben werden übernommen
       - Eigene Variablen können jederzeit überschrieben werden
       ================================================================= */

:root {
    /* -------------------------------------------------------------
       Typografie
       ------------------------------------------------------------- */

    --wppm-font-fallback:
            -apple-system,
            BlinkMacSystemFont,
            "Segoe UI",
            Roboto,
            Helvetica,
            Arial,
            sans-serif;

    --wppm-font:
            var(--e-global-typography-text-font-family, var(--wppm-font-fallback));

    --wppm-font-heading:
            var(
                    --e-global-typography-primary-font-family,
                    var(--wppm-font)
            );

    /* -------------------------------------------------------------
       Farben
       Elementor bleibt bewusst die erste Wahl.
       ------------------------------------------------------------- */

    --wppm-color-brand:
            var(--e-global-color-primary, #252a2e);

    --wppm-color-accent:
            var(--e-global-color-accent, var(--wppm-color-brand));

    --wppm-color-text:
            var(--e-global-color-text, #252a2e);

    --wppm-color-brand-contrast: #fff;

    --wppm-color-text-muted: #687078;
    --wppm-color-text-subtle: #9299a1;

    --wppm-color-bg: #fff;
    --wppm-color-bg-muted: #fbf8f5;
    --wppm-color-bg-soft: #fbf8f5;
    --wppm-color-bg-image: #e9ecef;

    --wppm-color-border: rgba(232,127,88,0.12);
    --wppm-color-border-soft: #d9dde0;

    /* Semantische Farben */

    --wppm-color-success: #19763a;
    --wppm-color-success-bg: #e8f6ed;
    --wppm-color-success-dot: #32a65a;

    --wppm-color-danger: #b42318;
    --wppm-color-danger-bg: #fdf0ef;
    --wppm-color-danger-dot: #e05248;

    --wppm-color-neutral-bg: #eef0f2;
    --wppm-color-neutral-text: #555d65;
    --wppm-color-neutral-dot: #aeb5bb;

    /* -------------------------------------------------------------
       Layout
       ------------------------------------------------------------- */

    --wppm-width-archive: 1240px;
    --wppm-width-single: 1080px;

    --wppm-radius-xl: 24px;
    --wppm-radius-lg: 18px;
    --wppm-radius-md: 14px;
    --wppm-radius-sm: 10px;
    --wppm-radius-pill: 999px;

    --wppm-shadow-card:
            0 2px 8px rgba(20, 30, 35, .04),
            0 12px 32px rgba(20, 30, 35, .06);

    --wppm-shadow-hover:
            0 8px 18px rgba(20, 30, 35, .08),
            0 22px 48px rgba(20, 30, 35, .10);

    --wppm-transition:
            180ms ease;
}


/* =================================================================
   Basis
   ================================================================= */

.wppm-archive,
.wppm-pet {
    font-family: var(--wppm-font);
    color: var(--wppm-color-text);
}

.wppm-archive *,
.wppm-pet *,
.wppm-archive *::before,
.wppm-archive *::after,
.wppm-pet *::before,
.wppm-pet *::after {
    box-sizing: border-box;
}


/* =================================================================
   Elementor-Kompatibilität
   ================================================================= */

body .wppm-archive h1,
body .wppm-archive h2,
body .wppm-pet h1,
body .wppm-pet h2 {
    font-family: var(--wppm-font-heading);
    text-transform: none;
    letter-spacing: normal;
}

body .wppm-archive a.wppm-card,
body .wppm-archive a.wppm-card:hover,
body .wppm-archive a.wppm-card:visited {
    color: inherit;
    text-decoration: none;
}

body .wppm-filters__submit,
body .wppm-pet__print-btn {
    text-transform: none;
    letter-spacing: normal;
    box-shadow: none;
}

body .wppm-filter select {
    line-height: normal;
    box-shadow: none;
}


/* Elementor / Theme img defaults überschreiben */

body .wppm-card__image img,
body .wppm-pet__hero img,
body .wppm-pet__thumbs img {
    height: 100% !important;
    max-width: none;
}


/* =================================================================
   Status
   ================================================================= */

.wppm-card__status,
.wppm-pet__status,
.wppm-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    padding: 7px 13px;

    border-radius: var(--wppm-radius-pill);

    background: var(--wppm-color-success-bg);
    color: var(--wppm-color-success);

    font-size: .76rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.wppm-card__status::before,
.wppm-pet__status::before,
.wppm-status-pill::before {
    content: "";
    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    border-radius: 50%;
    background: currentColor;
}


/* =================================================================
   ARCHIV
   ================================================================= */

.wppm-archive {
    width: 100%;
    max-width: var(--wppm-width-archive);

    margin: 0 auto;
    padding: 64px 24px 80px;
}


/* -------------------------------------------------------------
   Header
   ------------------------------------------------------------- */

.wppm-archive__header {
    max-width: 720px;
    margin-bottom: 38px;
}

.wppm-archive__header h1 {
    margin: 0 0 10px;

    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.wppm-archive__header p {
    margin: 0;

    color: var(--wppm-color-text-muted);

    font-size: 1.05rem;
    line-height: 1.6;
}


/* -------------------------------------------------------------
   Filter
   ------------------------------------------------------------- */

.wppm-filters {
    margin-bottom: 42px;
    padding: 24px;

    background:
            linear-gradient(
                    135deg,
                    var(--wppm-color-bg-muted),
                    var(--wppm-color-bg-soft)
            );

    border: 1px solid var(--wppm-color-border);
    border-radius: var(--wppm-radius-xl);
}

.wppm-filters__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.wppm-filter {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.wppm-filter label {
    color: var(--wppm-color-text);

    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .01em;
}

.wppm-filter select {
    width: 100%;
    min-height: 46px;

    padding: 0 14px;

    border: 1px solid var(--wppm-color-border-soft);
    border-radius: var(--wppm-radius-sm);

    background: var(--wppm-color-bg);
    color: var(--wppm-color-text);

    font-family: inherit;
    font-size: .9rem;

    outline: none;

    transition:
            border-color var(--wppm-transition),
            box-shadow var(--wppm-transition);
}

.wppm-filter select:hover {
    border-color: #c7ccd0;
}

.wppm-filter select:focus {
    border-color: var(--wppm-color-accent);

    box-shadow:
            0 0 0 3px
            color-mix(
                    in srgb,
                    var(--wppm-color-accent) 14%,
                    transparent
            );
}

.wppm-filter__age {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}


/* -------------------------------------------------------------
   Filter Actions
   ------------------------------------------------------------- */

.wppm-filters__actions {
    display: flex;
    align-items: center;
    gap: 14px;

    margin-top: 22px;
    padding-top: 20px;

    border-top: 1px solid var(--wppm-color-border);
}

.wppm-filters__submit {
    min-height: 46px;

    padding: 0 24px;

    border: 0;
    border-radius: var(--wppm-radius-sm);

    background: var(--wppm-color-brand);
    color: var(--wppm-color-brand-contrast);

    font-family: inherit;
    font-size: .9rem;
    font-weight: 700;

    cursor: pointer;

    transition:
            transform var(--wppm-transition),
            opacity var(--wppm-transition),
            box-shadow var(--wppm-transition);
}

.wppm-filters__submit:hover {
    opacity: .92;

    transform: translateY(-1px);

    box-shadow:
            0 5px 14px rgba(0, 0, 0, .12);
}

.wppm-filters__reset {
    color: var(--wppm-color-text-muted);

    font-size: .9rem;
    font-weight: 600;

    text-decoration: none;

    transition: color var(--wppm-transition);
}

.wppm-filters__reset:hover {
    color: var(--wppm-color-text);
}


/* -------------------------------------------------------------
   Empty
   ------------------------------------------------------------- */

.wppm-archive__empty {
    padding: 80px 24px;

    border: 1px dashed var(--wppm-color-border-soft);
    border-radius: var(--wppm-radius-xl);

    color: var(--wppm-color-text-subtle);

    text-align: center;
}


/* -------------------------------------------------------------
   Karten
   ------------------------------------------------------------- */

.wppm-archive__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.wppm-card {
    display: flex;
    flex-direction: column;

    min-width: 0;

    overflow: hidden;

    background: var(--wppm-color-bg);

    border: 1px solid var(--wppm-color-border);
    border-radius: var(--wppm-radius-lg);

    color: inherit;
    text-decoration: none;

    box-shadow: var(--wppm-shadow-card);

    transition:
            transform var(--wppm-transition),
            box-shadow var(--wppm-transition),
            border-color var(--wppm-transition);
}

.wppm-card:hover {
    transform: translateY(-5px);

    border-color: var(--wppm-color-border-soft);

    box-shadow: var(--wppm-shadow-hover);
}


/* -------------------------------------------------------------
   Kartenbild
   ------------------------------------------------------------- */

.wppm-card__image {
    position: relative;

    width: 100%;
    aspect-ratio: 4 / 4.5;

    overflow: hidden;

    background: var(--wppm-color-bg-image);
}

.wppm-card__image::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
            linear-gradient(
                    to top,
                    rgba(0, 0, 0, .14),
                    transparent 30%
            );
}

.wppm-card__image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
            transform 500ms cubic-bezier(.2, .7, .2, 1);
}

.wppm-card:hover .wppm-card__image img {
    transform: scale(1.045);
}

.wppm-card__status {
    position: absolute;
    z-index: 2;

    top: 14px;
    right: 14px;

    background: rgba(255, 255, 255, .94);

    backdrop-filter: blur(8px);
}


/* -------------------------------------------------------------
   Karteninhalt
   ------------------------------------------------------------- */

.wppm-card__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 5px;

    padding: 18px 18px 19px;
}

.wppm-card__name {
    margin: 0;

    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.2;
}

.wppm-card__meta {
    margin: 0;

    color: var(--wppm-color-text-muted);

    font-size: .86rem;
    line-height: 1.5;
}

.wppm-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-top: auto;
    padding-top: 15px;

    color: var(--wppm-color-text-muted);

    font-size: .82rem;
}

.wppm-card__fee {
    color: var(--wppm-color-text);

    font-size: .86rem;
    font-weight: 800;
}


/* =================================================================
   EINZELANSICHT
   ================================================================= */

.wppm-pet {
    width: 100%;
    max-width: var(--wppm-width-single);

    margin: 0 auto;
    padding: 48px 16px 80px;

    line-height: 1.6;
}


/* -------------------------------------------------------------
   Print Button
   ------------------------------------------------------------- */

.wppm-pet__print-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 24px;
    padding: 9px 15px;

    border: 1px solid var(--wppm-color-border);
    border-radius: var(--wppm-radius-pill);

    background: var(--wppm-color-bg);
    color: var(--wppm-color-text-muted);

    font-family: inherit;
    font-size: .82rem;
    font-weight: 700;

    cursor: pointer;

    transition:
            background var(--wppm-transition),
            border-color var(--wppm-transition),
            color var(--wppm-transition);
}

.wppm-pet__print-btn:hover {
    background: var(--wppm-color-bg-muted);
    border-color: var(--wppm-color-border-soft);
    color: var(--wppm-color-text);
}


/* -------------------------------------------------------------
   Hero + Informationen
   ------------------------------------------------------------- */

.wppm-pet__top {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: 42px;

    margin-bottom: 58px;
}

.wppm-pet__media {
    position: relative;
    min-width: 0;
}

.wppm-pet__hero {
    position: relative;

    width: 100%;
    aspect-ratio: 4 / 4.5;

    overflow: hidden;

    margin-bottom: 12px;

    background: var(--wppm-color-bg-image);

    border-radius: var(--wppm-radius-xl);

    box-shadow:
            0 16px 40px rgba(20, 30, 35, .08);
}

.wppm-pet__hero img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.wppm-pet__status--overlay {
    position: absolute;
    z-index: 2;

    top: 16px;
    right: 16px;

    background: rgba(255, 255, 255, .94);

    backdrop-filter: blur(8px);
}


/* -------------------------------------------------------------
   Thumbnails
   ------------------------------------------------------------- */

.wppm-pet__thumbs {
    display: flex;
    gap: 9px;

    overflow-x: auto;

    padding-bottom: 3px;
}

.wppm-pet__thumbs img {
    display: block;

    width: 76px;
    height: 76px;

    flex: 0 0 76px;

    object-fit: cover;

    border: 2px solid transparent;
    border-radius: var(--wppm-radius-sm);

    opacity: .72;

    cursor: pointer;

    transition:
            opacity var(--wppm-transition),
            border-color var(--wppm-transition),
            transform var(--wppm-transition);
}

.wppm-pet__thumbs img:hover {
    opacity: 1;
    border-color: var(--wppm-color-accent);
    transform: translateY(-2px);
}


/* -------------------------------------------------------------
   Pet Info
   ------------------------------------------------------------- */

.wppm-pet__info {
    min-width: 0;
    padding-top: 8px;
}

.wppm-pet__header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;

    margin-bottom: 8px;
}

.wppm-pet__header h1 {
    margin: 0;

    font-size: clamp(2.3rem, 5vw, 3.7rem);
    font-weight: 800;
    line-height: .98;

    letter-spacing: -.04em;
}

.wppm-pet__subline {
    margin: 0 0 28px;

    color: var(--wppm-color-text-muted);

    font-size: 1.05rem;
    line-height: 1.55;
}


/* -------------------------------------------------------------
   Fakten
   ------------------------------------------------------------- */

.wppm-pet__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;

    margin-bottom: 8px;
}

.wppm-pet__fact {
    min-width: 0;

    padding: 15px 16px;

    background: var(--wppm-color-bg-muted);

    border: 1px solid var(--wppm-color-border);

    border-radius: var(--wppm-radius-md);

    transition:
            border-color var(--wppm-transition),
            transform var(--wppm-transition);
}

.wppm-pet__fact:hover {
    border-color: var(--wppm-color-border-soft);
    transform: translateY(-1px);
}

.wppm-pet__fact-label {
    display: block;

    margin-bottom: 5px;

    color: var(--wppm-color-text-subtle);

    font-size: .7rem;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .07em;
}

.wppm-pet__fact-value {
    display: block;

    font-size: .98rem;
    font-weight: 700;

    line-height: 1.35;
}


/* =================================================================
   Inhaltsbereiche
   ================================================================= */

.wppm-pet__section {
    margin-bottom: 42px;
}

.wppm-pet__sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px;
}

.wppm-pet__section--full {
    width: 100%;
    margin-bottom: 42px;
}

.wppm-pet__section h2 {
    position: relative;

    margin: 0 0 17px;
    padding-bottom: 12px;

    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;

    letter-spacing: -.015em;
}

.wppm-pet__section h2::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: 0;

    width: 38px;
    height: 3px;

    border-radius: 3px;

    background: var(--wppm-color-accent);
}

.wppm-pet__description {
    margin: 0;

    color: var(--wppm-color-text);

    font-size: 1rem;
    line-height: 1.8;
}


/* =================================================================
   Attribute
   ================================================================= */

.wppm-attr-list {
    display: flex;
    flex-direction: column;
    gap: 8px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.wppm-attr-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;

    padding: 13px 15px;

    background: var(--wppm-color-bg-muted);

    border: 1px solid var(--wppm-color-border);
    border-radius: var(--wppm-radius-md);

    transition:
            background var(--wppm-transition),
            border-color var(--wppm-transition);
}

.wppm-attr-row:hover {
    background: var(--wppm-color-bg-soft);
    border-color: var(--wppm-color-border);
}

.wppm-attr-row__marker {
    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 22px;

    width: 22px;
    height: 22px;

    margin-top: 1px;

    border-radius: 50%;

    background: var(--wppm-color-neutral-bg);
    color: var(--wppm-color-neutral-text);

    font-size: .68rem;
    font-weight: 800;
    line-height: 1;
}

.wppm-attr-row__marker::before {
    content: "•";
}

.wppm-attr-row--yes .wppm-attr-row__marker {
    background: var(--wppm-color-success-bg);
    color: var(--wppm-color-success);
}

.wppm-attr-row--yes .wppm-attr-row__marker::before {
    content: "✓";
}

.wppm-attr-row--no .wppm-attr-row__marker {
    background: var(--wppm-color-danger-bg);
    color: var(--wppm-color-danger);
}

.wppm-attr-row--no .wppm-attr-row__marker::before {
    content: "×";
}

.wppm-attr-row__text {
    flex: 1 1 auto;
    min-width: 0;

    padding-top: 1px;
}

.wppm-attr-row__label {
    font-weight: 700;
}

.wppm-attr-row__value {
    color: var(--wppm-color-text);
}

.wppm-attr-row__label + .wppm-attr-row__value::before {
    content: " ";
}


/* =================================================================
   Schutzgebühr
   ================================================================= */

.wppm-pet__fee {
    display: inline-flex;
    align-items: center;

    padding: 12px 18px;

    background: var(--wppm-color-bg-muted);

    border: 1px solid var(--wppm-color-border);
    border-radius: var(--wppm-radius-md);

    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1;
}


/* =================================================================
   RESPONSIVE
   ================================================================= */

@media (max-width: 1100px) {

    .wppm-archive__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .wppm-pet__top {
        grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
        gap: 30px;
    }
}


@media (max-width: 820px) {

    .wppm-archive {
        padding-top: 44px;
    }

    .wppm-filters__grid {
        grid-template-columns: 1fr 1fr;
    }

    .wppm-archive__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wppm-pet {
        padding: 32px 16px 60px;
    }

    .wppm-pet__top {
        display: flex;
        flex-direction: column;
        gap: 28px;
    }

    .wppm-pet__media {
        width: 100%;
    }

    .wppm-pet__hero {
        aspect-ratio: 4 / 3;
    }

    .wppm-pet__info {
        padding-top: 0;
    }
}


@media (max-width: 560px) {

    .wppm-archive {
        padding: 34px 16px 60px;
    }

    .wppm-archive__header {
        margin-bottom: 28px;
    }

    .wppm-archive__header h1 {
        font-size: 2.2rem;
    }

    .wppm-filters {
        margin-bottom: 30px;
        padding: 17px;
        border-radius: var(--wppm-radius-lg);
    }

    .wppm-filters__grid {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .wppm-filters__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .wppm-filters__submit {
        width: 100%;
    }

    .wppm-filters__reset {
        padding: 7px;
        text-align: center;
    }

    .wppm-archive__grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .wppm-card__image {
        aspect-ratio: 4 / 3;
    }

    .wppm-pet {
        padding: 24px 16px 60px;
    }

    .wppm-pet__top {
        gap: 22px;
        margin-bottom: 42px;
    }

    .wppm-pet__hero {
        aspect-ratio: 4 / 3;
        border-radius: var(--wppm-radius-lg);
    }

    .wppm-pet__header h1 {
        font-size: 2.45rem;
    }

    .wppm-pet__facts {
        grid-template-columns: 1fr 1fr;
    }

    .wppm-pet__sections {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .wppm-pet__section,
    .wppm-pet__section--full {
        margin-bottom: 0;
    }

    .wppm-pet__section--full {
        margin-bottom: 34px;
    }
}


@media (max-width: 380px) {

    .wppm-pet__facts {
        grid-template-columns: 1fr;
    }

    .wppm-card__body {
        padding: 16px;
    }
}


/* =================================================================
   PRINT
   ================================================================= */

@media print {

    header,
    footer,
    nav,
    #masthead,
    #colophon,
    .site-header,
    .site-footer,
    .widget-area,
    #sidebar,
    .cookie-notice,
    .comments-area {
        display: none !important;
    }

    body {
        background: #fff !important;
    }

    .wppm-pet {
        max-width: 100%;
        margin: 0;
        padding: 0;

        color: #000;
        font-size: 12pt;
    }

    .wppm-pet__print-btn {
        display: none !important;
    }

    .wppm-pet__top {
        display: block;
        margin-bottom: 25px;
    }

    .wppm-pet__hero {
        width: 100%;
        height: 250px; /* Feste Container-Höhe für den Print */
        max-height: 250px;
        aspect-ratio: auto;
        overflow: hidden;

        border-radius: 0;
        box-shadow: none;
        break-inside: avoid;
    }

    .wppm-pet__hero img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
    }

    .wppm-pet__thumbs {
        display: none;
    }

    .wppm-pet__status,
    .wppm-pet__status--overlay,
    .wppm-status-pill {
        position: static;

        display: inline-flex;

        margin-bottom: 8px;

        border: 1px solid #000;

        background: none !important;
        color: #000 !important;

        backdrop-filter: none;
    }

    .wppm-pet__status::before,
    .wppm-status-pill::before {
        background: #000;
    }

    .wppm-pet__subline {
        color: #333;
    }

    .wppm-pet__facts {
        grid-template-columns: repeat(4, 1fr);
        gap: 8px;
    }

    .wppm-pet__fact {
        padding: 8px 10px;

        background: none;

        border: 1px solid #ccc;

        break-inside: avoid;
    }

    .wppm-pet__sections {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .wppm-pet__section {
        margin-bottom: 0;

        break-inside: avoid;
    }

    .wppm-pet__section--full {
        margin-bottom: 18px;

        break-inside: avoid;
    }

    .wppm-attr-row {
        background: none;
        border: 0;
    }

    .wppm-attr-row__marker {
        background: none !important;
        color: #000 !important;

        border: 1px solid #000;
    }

    .wppm-pet__fee {
        background: none;
        border: 1px solid #000;
    }

    a[href]::after {
        content: none !important;
    }

    h1,
    h2 {
        break-after: avoid;
    }
}
