.plr-showcase,
.plr-showcase *,
.plr-partnership-section,
.plr-partnership-section * {
    box-sizing: border-box;
}

/* Match the exact content width used by the theme search filter and article sections. */
.plr-container {
    width: min(calc(100% - 40px), var(--lsm-container, 1240px));
    margin-inline: auto;
}

.plr-partnership-section {
    width: 100%;
    padding: 58px 0;
    background: var(--sponsor-section-bg, #fff);
}

/* When the shortcode is rendered inside a theme sponsor slot, the outer slot owns spacing. */
.sm-sponsor-slot .plr-partnership-section {
    padding: 0;
    background: transparent;
}

/* Hide the theme's duplicate heading: the plugin prints a correctly aligned heading itself. */
.sm-sponsor-slot:has(.plr-partnership-section) > .sm-sponsor-slot__heading {
    display: none !important;
}

/* Fallback class added by JavaScript for browsers/layouts not using :has(). */
.sm-sponsor-slot.plr-partnership-slot > .sm-sponsor-slot__heading {
    display: none !important;
}

/* Make the outer sponsor slot behave exactly like a normal homepage section. */
.sm-sponsor-slot:has(.plr-partnership-section),
.sm-sponsor-slot.plr-partnership-slot {
    padding: 58px 0 !important;
    background: var(--sponsor-section-bg, #fff);
}

.plr-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 22px;
    text-align: left;
}

/* Same typography as .section-heading h2 / “ULTIMI ARTICOLI” in the theme. */
.plr-section-heading h2 {
    margin: 0;
    color: var(--sponsor-title-color, #111827);
    font: 800 21px/1.2 Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.plr-showcase {
    width: 100%;
}

.plr-grid {
    display: grid;
    grid-template-columns: repeat(var(--plr-columns, 1), minmax(0, 1fr));
    gap: 18px;
    width: 100%;
}

.plr-slot {
    height: 130px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--lsm-border, #e4e8ef);
    border-radius: var(--lsm-radius, 10px);
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .07);
    transition: opacity 320ms ease, transform 320ms ease, box-shadow 180ms ease;
}

.plr-slot.is-changing {
    opacity: 0;
    transform: translateY(5px);
}

.plr-link {
    display: flex;
    width: 100%;
    height: 100%;
    padding: 20px;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    outline-offset: -4px;
}

.plr-logo {
    display: block;
    max-width: 88%;
    max-height: 76px;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform 180ms ease;
}

.plr-link:not([aria-disabled="true"]):hover .plr-logo,
.plr-link:not([aria-disabled="true"]):focus-visible .plr-logo {
    transform: scale(1.04);
}

.plr-empty {
    width: min(calc(100% - 40px), var(--lsm-container, 1240px));
    margin-inline: auto;
    padding: 16px 18px;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
}

@media (max-width: 820px) {
    .plr-partnership-section,
    .sm-sponsor-slot:has(.plr-partnership-section),
    .sm-sponsor-slot.plr-partnership-slot {
        padding: 42px 0 !important;
    }

    .plr-grid {
        gap: 14px;
    }
}

@media (max-width: 560px) {
    .plr-container,
    .plr-empty {
        width: min(calc(100% - 28px), var(--lsm-container, 1240px));
    }

    .plr-grid {
        gap: 12px;
    }

    .plr-slot {
        height: 115px;
    }

    .plr-section-heading {
        margin-bottom: 18px;
    }

    .plr-section-heading h2 {
        font-size: 19px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .plr-slot,
    .plr-logo {
        transition: none !important;
    }
}
