/* ANIFELT Publications : styles front
   Sélecteurs volontairement précis (.anp .x) pour ne pas être écrasés
   par le thème ou Elementor (boutons, titres h3, liens). */

.anp {
	container-type: inline-size;
	container-name: anp;
	--anp-col-gap: 77px;
	--anp-row-gap: 40px;
	--anp-dl-width: 58px;
	--anp-dl-gap: 11px;
	--anp-card-h: 150px;
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	text-align: left;
}
.anp *, .anp *::before, .anp *::after { box-sizing: border-box; }

/* ---------- Barre d'onglets ---------- */
.anp .anp-tabs-band {
	position: relative;
	padding: calc(44px * var(--anp-tab-scale, 1)) 20px calc(55px * var(--anp-tab-scale, 1));
	margin: 0 0 calc(105px * var(--anp-card-scale, 1));
	background: transparent;
}
.anp .anp-tabs-band--shadow::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -30px;
	height: 30px;
	background: linear-gradient(to bottom, rgba(0,0,0,.36) 0, rgba(0,0,0,.16) 30%, rgba(0,0,0,.04) 70%, rgba(0,0,0,0) 100%);
	pointer-events: none;
}
/* Bande qui sort du conteneur et couvre tout l'écran */
.anp .anp-tabs-band--full.anp-tabs-band--shadow::after {
	left: 50%;
	right: auto;
	width: calc(100vw - var(--anp-sbw, 0px));
	transform: translateX(-50%);
}

.anp .anp-tabs {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: stretch;
	gap: calc(46px * var(--anp-tab-scale, 1));
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.anp .anp-tabs .anp-tab,
.anp .anp-tabs .anp-tab:hover,
.anp .anp-tabs .anp-tab:focus,
.anp .anp-tabs .anp-tab:active {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: auto;
	height: calc(64px * var(--anp-tab-scale, 1));
	min-height: 0;
	margin: 0;
	padding: 0 calc(36px * var(--anp-tab-scale, 1));
	border: 3px solid transparent;
	border-radius: 0;
	background: linear-gradient(to bottom, var(--anp-tab-top) 0%, var(--anp-tab-top) 15%, var(--anp-tab-bottom) 100%);
	background-clip: padding-box;
	box-shadow: 0 -6px 8px -5px rgba(0,0,0,.05);
	color: var(--anp-tab-text);
	font-family: var(--anp-font-tabs);
	font-size: var(--anp-size-tabs);
	font-weight: var(--anp-weight-tabs);
	font-style: normal;
	letter-spacing: .01em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	text-shadow: none;
	white-space: nowrap;
	cursor: pointer;
	outline: none;
	transition: color .2s ease;
}
.anp .anp-tabs .anp-tab:hover { color: var(--anp-primary); }

.anp .anp-tabs .anp-tab.is-active,
.anp .anp-tabs .anp-tab.is-active:hover,
.anp .anp-tabs .anp-tab.is-active:focus {
	background: var(--anp-primary);
	border-color: var(--anp-primary-border);
	box-shadow: none;
	color: var(--anp-tab-text-active);
}
.anp .anp-tabs .anp-tab:focus-visible {
	outline: 2px solid var(--anp-primary);
	outline-offset: 3px;
}
.anp .anp-tabs .anp-tab[hidden] { display: none; }

/* ---------- Grille ---------- */
.anp .anp-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: calc(var(--anp-row-gap) * var(--anp-card-scale, 1)) var(--anp-col-gap);
	max-width: var(--anp-max, 1100px);
	margin: 0 auto;
	padding: 0 0 80px;
}

/* ---------- Carte ---------- */
.anp .anp-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) calc(var(--anp-dl-width) * var(--anp-card-scale, 1));
	gap: var(--anp-dl-gap);
	min-height: calc(var(--anp-card-h) * var(--anp-card-scale, 1));
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.anp .anp-card[hidden] { display: none; }

.anp .anp-card__main,
.anp .anp-card__dl {
	background: linear-gradient(to bottom, var(--anp-card-top) 0%, var(--anp-card-top) 10%, var(--anp-card-bottom) 100%);
	box-shadow: 0 -12px 16px -10px rgba(0,0,0,.06);
}

.anp .anp-card__main {
	display: flex;
	align-items: flex-start;
	gap: calc(22px * var(--anp-card-scale, 1));
	padding: calc(40px * var(--anp-card-scale, 1)) calc(20px * var(--anp-card-scale, 1)) calc(24px * var(--anp-card-scale, 1)) calc(21px * var(--anp-card-scale, 1));
}

.anp .anp-card__file {
	display: block;
	flex: 0 0 auto;
	width: calc(56px * var(--anp-card-scale, 1));
	height: calc(72px * var(--anp-card-scale, 1));
	margin: 0;
	color: var(--anp-file-icon);
}

.anp .anp-card__text { min-width: 0; padding: 0; margin: 0; }

.anp .anp-card .anp-card__title {
	display: block;
	margin: -2px 0 7px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--anp-title);
	font-family: var(--anp-font-title);
	font-size: var(--anp-size-title);
	font-weight: var(--anp-weight-title);
	font-style: normal;
	line-height: 1.05;
	letter-spacing: .005em;
	text-align: left;
	text-transform: var(--anp-title-transform);
	text-shadow: none;
	overflow-wrap: break-word;
	hyphens: auto;
	-webkit-hyphens: auto;
	visibility: visible;
	opacity: 1;
}
.anp .anp-card .anp-card__title::before,
.anp .anp-card .anp-card__title::after { content: none; }

.anp .anp-card .anp-card__date {
	margin: 0;
	padding: 0;
	color: var(--anp-date);
	font-family: var(--anp-font-date);
	font-size: var(--anp-size-date);
	font-style: var(--anp-date-style);
	font-weight: var(--anp-weight-date);
	line-height: 1.35;
	letter-spacing: .01em;
}

.anp .anp-card .anp-card__dl,
.anp .anp-card .anp-card__dl:hover,
.anp .anp-card .anp-card__dl:focus {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: calc(39px * var(--anp-card-scale, 1)) 0 0;
	border: 0;
	color: var(--anp-dl-icon);
	text-decoration: none;
	outline: none;
}
.anp .anp-card__dl-icon {
	display: block;
	width: calc(42px * var(--anp-card-scale, 1));
	height: calc(42px * var(--anp-card-scale, 1));
	transition: transform .2s ease;
}
.anp a.anp-card__dl:hover .anp-card__dl-icon { transform: translateY(2px); }
.anp a.anp-card__dl:focus-visible { outline: 2px solid var(--anp-primary); outline-offset: -4px; }
.anp .anp-card__dl--empty { opacity: .35; }

.anp .anp-empty {
	max-width: var(--anp-max, 1100px);
	margin: 0 auto;
	padding: 0 0 80px;
	text-align: center;
	color: var(--anp-date);
	font-family: var(--anp-font-date);
}
.anp .anp-empty[hidden] { display: none; }

/* ---------- Bouton « Voir plus » ---------- */
.anp .anp-more-wrap {
	display: flex;
	justify-content: center;
	max-width: var(--anp-max, 1100px);
	margin: calc(-40px * var(--anp-card-scale, 1)) auto 0;
	padding: 0 0 80px;
}
.anp .anp-more-wrap .anp-more,
.anp .anp-more-wrap .anp-more:hover,
.anp .anp-more-wrap .anp-more:focus {
	-webkit-appearance: none;
	appearance: none;
	height: calc(56px * var(--anp-tab-scale, 1));
	margin: 0;
	padding: 0 calc(40px * var(--anp-tab-scale, 1));
	border: 3px solid var(--anp-primary-border);
	border-radius: 0;
	background: var(--anp-primary);
	box-shadow: none;
	color: var(--anp-tab-text-active);
	font-family: var(--anp-font-tabs);
	font-size: var(--anp-size-tabs);
	font-weight: var(--anp-weight-tabs);
	letter-spacing: .01em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	outline: none;
}
.anp .anp-more-wrap .anp-more:hover { filter: brightness(1.08); }
.anp .anp-more-wrap .anp-more:focus-visible { outline: 2px solid var(--anp-primary); outline-offset: 3px; }
.anp .anp-more-wrap .anp-more[hidden],
.anp .anp-more-wrap[hidden] { display: none; }

/* ---------- Responsive ---------- */
/* La grille s'adapte à la largeur réelle de la section (et pas seulement de l'écran) */
@container anp (max-width: 900px) {
	.anp .anp-grid { grid-template-columns: 1fr; max-width: 640px; }
	.anp .anp-more-wrap { max-width: 640px; }
}

@media (max-width: 1200px) {
	.anp .anp-tabs { flex-wrap: wrap; gap: 16px 24px; }
	.anp .anp-tabs .anp-tab,
	.anp .anp-tabs .anp-tab:hover,
	.anp .anp-tabs .anp-tab:focus { padding: 0 calc(26px * var(--anp-tab-scale, 1)); }
	.anp { --anp-col-gap: 40px; }
	.anp .anp-grid { padding-left: 20px; padding-right: 20px; }
}

@media (max-width: 820px) {
	.anp .anp-grid { grid-template-columns: 1fr; }
	.anp .anp-tabs-band { margin-bottom: 70px; padding: 32px 16px 40px; }
}

@media (max-width: 520px) {
	.anp {
		--anp-dl-width: 50px;
		--anp-dl-gap: 8px;
		--anp-card-h: 0px;
	}
	.anp .anp-tabs .anp-tab,
	.anp .anp-tabs .anp-tab:hover,
	.anp .anp-tabs .anp-tab:focus { width: 100%; height: 54px; white-space: normal; text-align: center; }
	.anp .anp-card__main { gap: 16px; padding: 26px 14px 22px; }
	.anp .anp-card__file { width: 42px; height: 54px; }
	.anp .anp-card .anp-card__dl { padding-top: 26px; }
	.anp .anp-card__dl-icon { width: 36px; height: 36px; }
	.anp .anp-card .anp-card__title { font-size: calc(var(--anp-size-title) * .85); }
	.anp .anp-card .anp-card__date { font-size: calc(var(--anp-size-date) * .9); }
}

@media (prefers-reduced-motion: reduce) {
	.anp .anp-tabs .anp-tab, .anp .anp-card__dl-icon { transition: none; }
}

/* Petits écrans : plus de place pour le titre, taille adaptée à la largeur */
@container anp (max-width: 480px) {
	.anp .anp-card__file { display: none; }
	.anp .anp-card__main { padding-left: 16px; padding-right: 12px; }
	.anp .anp-card .anp-card__title { font-size: min(var(--anp-size-title), 5cqi); }
	.anp .anp-card .anp-card__date { font-size: min(var(--anp-size-date), 4cqi); }
}
