/* ════════════════════════════════════════════════════════════
   Académie de Magie v8 — Accueil « vitrine de campagne »
   Chargé uniquement par template-parts/home-campaign.php.
   Tokens --am-* du thème ; survols réservés aux pointeurs ; aucun !important.
   ════════════════════════════════════════════════════════════ */

.am-home--campaign {
	padding-top: var(--am-space-6);
	padding-bottom: calc(var(--am-space-16) + var(--am-space-6)); /* place pour le chatbot et le réglage de texte */
}

/* Palette propre à l'accueil : panneaux blanc-gris translucides, coins arrondis, titres or champagne en Cinzel */
.am-home--campaign {
	--am-home-panel: rgba(244, 241, 236, 0.96);  /* blanc-gris presque opaque */
	--am-home-panel-border: rgba(255, 255, 255, 0.55);
	--am-home-well: rgba(255, 255, 255, 0.75);   /* derrière les couvertures et la photo */
	--am-home-radius: 16px;
	--am-home-shadow: 0 10px 30px rgba(26, 6, 8, 0.28);
	--am-home-ink: #2b1a1d;        /* texte : ≥ 11:1 sur le panneau */
	--am-home-ink-muted: #5e4a4d;  /* mentions : ≥ 5,6:1 */
	--am-home-accent: #6b1420;     /* bordeaux : surtitres, titre, liens : ≥ 8:1 */
	--am-home-gold-ink: #7a5a14;   /* or foncé pour les prix (grand texte) : ≥ 4,3:1 */
	--am-home-title: #f3dfa6;      /* titres de section sur le fond rouge */
	--am-home-font-title: 'Cinzel', Georgia, 'Times New Roman', serif;
}

/* ── Bandeau de campagne ── */
.am-campaign {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--am-space-4);
	align-items: center;
	padding: var(--am-space-4) var(--am-space-4) var(--am-space-6);
	background-color: var(--am-home-panel);
	border: 1px solid var(--am-border);
	border-radius: var(--am-radius-xl);
}

.am-campaign__text { display: flex; flex-direction: column; gap: var(--am-space-2); }

.am-campaign__kicker {
	margin: 0;
	font-family: var(--am-font-ui);
	font-size: var(--am-text-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--am-gold);
}

.am-home--campaign .am-campaign__title {
	margin: 0;
	font-family: var(--am-font-heading);
	font-size: clamp(2rem, 1.3rem + 3vw, 3.5rem);
	font-weight: 600;
	line-height: 1.05;
	color: var(--am-cream);
}

.am-home--campaign .am-campaign__subtitle {
	margin: 0;
	line-height: 1.25;
	font-family: var(--am-font-body);
	font-size: var(--am-text-lg);
	font-style: italic;
	color: var(--am-gold-light);
}

.am-home--campaign .am-campaign__lead {
	margin: 0;
	max-width: 36rem;
	font-family: var(--am-font-body);
	font-size: var(--am-text-base);
	line-height: 1.45;
	color: var(--am-cream);
}

.am-campaign__price {
	margin: var(--am-space-1) 0 0;
	font-family: var(--am-font-ui);
	font-size: var(--am-text-xl);
	font-weight: 600;
	color: var(--am-gold);
}
.am-campaign__price del { font-size: 0.6em; font-weight: 400; color: var(--am-muted); margin-right: var(--am-space-2); }
.am-campaign__price ins { text-decoration: none; }

.am-campaign__terms {
	margin: 0;
	font-family: var(--am-font-ui);
	font-size: var(--am-text-sm);
	line-height: 1.45;
	color: var(--am-muted);
}
.am-campaign__terms sup { font-size: 0.7em; }

.am-campaign__cta { align-self: flex-start; margin-top: var(--am-space-2); min-height: 48px; }

/* Visuel en vitrine : cadre or */
.am-campaign__visual {
	order: -1;
	margin: 0;
	padding: var(--am-space-1);
	background-color: var(--am-home-well);
	border: 2px solid var(--am-gold);
	border-radius: var(--am-radius-lg);
	box-shadow: 0 0 0 4px var(--am-home-panel), 0 0 0 5px var(--am-border-strong), var(--am-shadow-pop);
}
.am-campaign__visual a { display: block; }
.am-campaign__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--am-radius);
}

/* ── Rangées de produits ── */
.am-shelf, .am-entry, .am-about { margin-top: var(--am-space-12); }

.am-home--campaign .am-shelf__title,
.am-home--campaign .am-about__title {
	margin: 0 0 var(--am-space-6);
	font-family: var(--am-home-font-title);
	font-size: clamp(1.35rem, 1.05rem + 1.2vw, 2rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.2;
	color: var(--am-home-title);
	text-shadow: 0 2px 14px rgba(26, 6, 8, 0.45);
}

/* Petits téléphones : deux cartes par ligne sur l'accueil */
@media (max-width: 379px) {
	.am-home--campaign .am-product-grid { grid-template-columns: repeat(2, 1fr); gap: var(--am-space-2); }
}

/* ── Accès catalogue : boutons noirs, texte et cadre or ── */
.am-entry__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--am-space-3);
}
.am-entry__item:last-child:nth-child(odd) { grid-column: 1 / -1; } /* 5e bouton sur toute la largeur en deux colonnes */
.am-entry__link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	height: 100%;
	padding: var(--am-space-4) var(--am-space-3);
	background-color: var(--am-bg-0);
	border: 1px solid var(--am-gold);
	border-radius: var(--am-radius-lg);
	box-shadow: 0 0 0 3px var(--am-bg-0), 0 0 0 4px var(--am-border), var(--am-shadow-card);
	text-align: center;
	text-decoration: none;
	transition: background-color var(--am-transition), box-shadow var(--am-transition), transform var(--am-transition);
}
.am-entry__label {
	font-family: var(--am-font-heading);
	font-size: var(--am-text-lg);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	color: var(--am-gold);
}
.am-entry__link:focus-visible { outline: 2px solid var(--am-gold-light); outline-offset: 4px; }

/* ── Présentation ── */
.am-about {
	padding: var(--am-space-8) var(--am-space-4);
	background-color: var(--am-home-panel);
	border: 1px solid var(--am-border-soft);
	border-radius: var(--am-radius-xl);
	text-align: center;
}
.am-about__text {
	max-width: 40rem;
	margin: 0 auto var(--am-space-6);
	font-family: var(--am-font-body);
	font-size: var(--am-text-lg);
	line-height: 1.6;
	color: var(--am-cream);
}
.am-about__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--am-space-2);
}

/* ── Tablette ── */
@media (min-width: 768px) {
	.am-home--campaign { padding-bottom: var(--am-space-16); }
	.am-campaign {
		grid-template-columns: 5fr 6fr;
		gap: var(--am-space-10);
		padding: var(--am-space-10);
	}
	.am-campaign__visual { order: 0; padding: var(--am-space-2); }
	.am-campaign__text { gap: var(--am-space-3); }
	.am-home--campaign .am-campaign__subtitle { font-size: var(--am-text-xl); }
	.am-home--campaign .am-campaign__lead { font-size: var(--am-text-lg); line-height: 1.5; }
	.am-campaign__price { font-size: var(--am-text-2xl); margin-top: var(--am-space-2); }
	.am-campaign__cta { align-self: flex-start; }
	.am-entry__list { grid-template-columns: repeat(5, 1fr); gap: var(--am-space-4); }
	.am-entry__item:last-child:nth-child(odd) { grid-column: auto; }
	.am-entry__link { min-height: 88px; }
	.am-shelf, .am-entry, .am-about { margin-top: var(--am-space-16); }
}

/* ── Ordinateur : rangées alignées sur le nombre de produits ── */
@media (min-width: 1024px) {
	.am-shelf--4 .am-product-grid { grid-template-columns: repeat(4, 1fr); }
	.am-shelf--5 .am-product-grid { grid-template-columns: repeat(5, 1fr); }
	.am-campaign { padding: var(--am-space-12); }
}

/* ── Survols : seulement sur les appareils à pointeur ── */
@media (hover: hover) {
	.am-entry__link:hover {
		background-color: var(--am-bg-1);
		box-shadow: 0 0 0 3px var(--am-bg-0), 0 0 0 4px var(--am-gold), var(--am-shadow-pop);
		transform: translateY(-2px);
	}
	.am-entry__link:hover .am-entry__label { color: var(--am-gold-light); }
}

@media (prefers-reduced-motion: reduce) {
	.am-entry__link { transition: none; }
}

/* ════════════════════════════════════════════════════════════
   Panneaux clairs (bandeau, cartes produits, présentation)
   ════════════════════════════════════════════════════════════ */
.am-home--campaign .am-campaign,
.am-home--campaign .am-product-card,
.am-home--campaign .am-about {
	background-color: var(--am-home-panel);
	border: 1px solid var(--am-home-panel-border);
	border-radius: var(--am-home-radius);
	box-shadow: var(--am-home-shadow);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

/* Bandeau */
.am-home--campaign .am-campaign__kicker { color: var(--am-home-accent); }
.am-home--campaign .am-campaign__title {
	font-family: var(--am-home-font-title);
	font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); /* Cinzel est plus large que Cormorant : titre sur une ligne */
	letter-spacing: 0.02em;
	color: var(--am-home-accent);
}
.am-home--campaign .am-campaign__subtitle { color: var(--am-home-accent); }
.am-home--campaign .am-campaign__lead { color: var(--am-home-ink); }
.am-home--campaign .am-campaign__price { color: var(--am-home-gold-ink); }
.am-home--campaign .am-campaign__price del { color: var(--am-home-ink-muted); }
.am-home--campaign .am-campaign__terms { color: var(--am-home-ink-muted); }
/* Encart « cadeau » du bandeau (cartes truquées offertes) */
.am-campaign__gift {
	display: flex;
	align-items: center;
	gap: var(--am-space-3);
	max-width: 30rem;
	margin: var(--am-space-2) 0 0;
	padding: var(--am-space-2) var(--am-space-3);
	background-color: rgba(255, 255, 255, 0.55);
	border: 1px solid rgba(107, 20, 32, 0.25);
	border-radius: 12px;
}
.am-campaign__gift-img { width: 96px; height: auto; flex: 0 0 auto; }
.am-campaign__gift-text {
	font-family: var(--am-font-ui);
	font-size: var(--am-text-sm);
	line-height: 1.35;
	color: var(--am-home-accent);
}
@media (min-width: 768px) {
	.am-campaign__gift-img { width: 120px; }
}

/* Téléphone : l’encart cadeau passe sous le bouton pour ne pas le repousser hors du premier écran */
@media (max-width: 767px) {
	.am-campaign__gift { order: 1; margin-top: var(--am-space-3); }
}

.am-home--campaign .am-campaign__cta {
	background-color: var(--am-cinabre-dd, #5c0a14);
	border: 1px solid var(--am-gold);
	color: var(--am-home-title);
}
.am-home--campaign .am-campaign__visual {
	background-color: var(--am-home-well);
	border-radius: 12px;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.5), var(--am-home-shadow);
}
.am-home--campaign .am-campaign__img { border-radius: 8px; }

/* Cartes produits */
.am-home--campaign .am-product-card { overflow: hidden; }
.am-home--campaign .am-product-card__img { background-color: var(--am-home-well); }
.am-home--campaign .am-product-card__title { color: var(--am-home-ink) !important; } /* contre le !important de cinabre-bg.css */
.am-home--campaign .am-product-card__title { -webkit-line-clamp: 3; line-clamp: 3; } /* titres complets sur trois lignes */
.am-home--campaign .am-product-card__price,
.am-home--campaign .am-product-card__price .amount { color: var(--am-home-gold-ink); font-weight: 600; }
.am-home--campaign .am-product-card .am-btn--cart {
	color: var(--am-home-accent);
	border-color: rgba(107, 20, 32, 0.4);
}

/* Présentation */
.am-home--campaign .am-about__title { color: var(--am-home-accent); text-shadow: none; }
.am-home--campaign .am-about__text { color: var(--am-home-ink); }
.am-home--campaign .am-about .am-chip {
	color: var(--am-home-accent);
	background-color: rgba(255, 255, 255, 0.55);
	border-color: rgba(107, 20, 32, 0.35);
}

@media (hover: hover) {
	.am-home--campaign .am-product-card .am-btn--cart:hover { background-color: var(--am-home-accent); color: var(--am-home-title); border-color: var(--am-home-accent); }
	.am-home--campaign .am-about .am-chip:hover { background-color: #fff; }
}
