.pubgrid-block {
	--pubgrid-navy: rgba(7, 21, 84, 1);
	--pubgrid-navy-light: rgba(7, 21, 84, 1);
	--pubgrid-bg-soft: #f2f4f7;
	--pubgrid-accent: rgba(255, 43, 108, 1);
	--pubgrid-border: #e3e6ec;
	font-family: inherit;
}

/* --- Filtres --- */
.pubgrid-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 28px;
}
.pubgrid-filter {
	    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    padding: 8px 10px 10px;
    border-radius: 999px;
    border: 1px solid rgba(7, 21, 84, 1);
    background: #fff;
    color: rgba(7, 21, 84, 1);
    cursor: pointer;
    transition: all .3s;
    white-space: nowrap;
}
.pubgrid-filter:hover {
	background: var(--pubgrid-bg-soft);
}
.pubgrid-filter.is-active {
	background: rgba(7, 21, 84, 1);
    color: #fff;
}

/* --- Cartes (3 premières) --- */
.pubgrid-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--small) var(--wp--preset--spacing--small);
	margin-bottom: 32px;
}
@media (max-width: 900px) {
	.pubgrid-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.pubgrid-cards { grid-template-columns: 1fr; }
	
}

.pubgrid-card {
	display: flex;
    text-decoration: none;
    border-radius: 5px;
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease;
    background: rgba(242, 243, 246, 1);
    flex-direction: column;
}
.pubgrid-card:hover {
	transform: translateY(-3px);
}
.pubgrid-card-media {
	position: relative;
    min-height: 280px;
    background-color: var(--pubgrid-navy);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    padding: 14px;
}
.pubgrid-badge {
	position: absolute;
    left: 14px;
    bottom: 14px;
    background: #fff;
    color: rgba(7, 21, 84, 1);
    font-size: 14px;
    font-weight: 700;
    padding: 4px 14px 6px;
    border-radius: 999px;
    border: 1px solid rgba(7, 21, 84, 1);
}
.pubgrid-card-body {
	background: var(--pubgrid-bg-soft);
    padding: 18px 18px 20px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.pubgrid-card-title {
	margin: 0 0 10px;
    font-size: 20px;
    font-weight: 700;
    color: var(--pubgrid-navy);
    line-height: 1.3;
}
.pubgrid-card-meta {
	margin: 0;
	font-size: 0.9rem;
	color: var(--pubgrid-navy);
}
.pubgrid-meta-name { font-weight: 700; }
.pubgrid-meta-year { color: #55607a; }

/* --- Liste (reste des articles) --- */
.pubgrid-list {
	border: 1px solid var(--pubgrid-border);
	border-radius: 8px;
	overflow: hidden;
}
.pubgrid-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	text-decoration: none;
	border-bottom: 1px solid var(--pubgrid-border);
	background: #fff;
	transition: background .15s ease;
}
.pubgrid-row:last-child { border-bottom: none; }
.pubgrid-row:hover { background: var(--pubgrid-bg-soft); }

.pubgrid-tag {
	flex: 0 0 auto;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--pubgrid-navy);
	border: 1.5px solid var(--pubgrid-navy);
	border-radius: 999px;
	padding: 4px 12px;
}
.pubgrid-row-title {
	flex: 1 1 auto;
	font-weight: 700;
	color: var(--pubgrid-navy);
	min-width: 180px;
	    font-size: 18px;
}
.pubgrid-row-name {
	flex: 0 0 auto;
	color: var(--pubgrid-navy);
	font-weight: 600;
	white-space: nowrap;
	font-size: 14px;
}
.pubgrid-row-year {
	flex: 0 0 auto;
    width: 46px;
    text-align: right;
    font-size: 14px;
}
.pubgrid-row-arrow {
	flex: 0 0 auto;
	color: var(--pubgrid-accent);
	font-size: 1rem;
}

@media (max-width: 640px) {
	.pubgrid-row { flex-wrap: wrap; }
	.pubgrid-row-title { min-width: 100%; order: -1; margin-bottom: 4px; }
	.pubgrid-row {
        flex-wrap: wrap;
        position: relative;
    }
	.pubgrid-tag {
		order: -1;
	}
	.pubgrid-row-arrow {
		position: absolute;
		right: 20px;
		bottom: 16px;
	}
}

/* --- Bouton charger plus --- */
.pubgrid-loadmore-wrap {
	display: flex;
	justify-content: center;
	margin-top: 32px;
}
.pubgrid-loadmore {
	display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(7, 21, 84, 1);
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: 14px 28px 17px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease;
}
.pubgrid-loadmore:hover { background: rgba(0, 120, 255, 1); }
.pubgrid-loadmore.is-loading { opacity: 0.6; cursor: default; }
.pubgrid-arrow { font-size: 0.8rem; }
