/* Ardent Pêche — La prise du mois.
   Couleurs et polices reprises du thème (valeurs de repli sinon), mobile d'abord. */

.apm {
	--apm-papier: var(--ardent-papier, #fff);
	--apm-sable: var(--ardent-sable, #F4F5F3);
	--apm-ligne: var(--ardent-ligne, #DADDD8);
	--apm-encre: var(--ardent-encre, #13211D);
	--apm-douce: var(--ardent-encre-douce, #3E4A45);
	--apm-gris: var(--ardent-gris, #5E6A64);
	--apm-profond: var(--ardent-profond, #0F2A2A);
	--apm-brume: var(--ardent-brume, #A9B6B1);
	--apm-orange: var(--ardent-leurres, #E2622B);
	--apm-orange-texte: var(--ardent-leurres-texte, #B8431A);
	--apm-sur-accent: var(--ardent-sur-accent, #13211D); /* texte posé sur la couleur principale */
	--apm-survol: var(--ardent-accent-survol, #F07A45);
	--apm-vert: var(--ardent-mouche, #1F5C58);
	--apm-titre: var(--ardent-display, "industry", "Barlow Condensed", "Arial Narrow", sans-serif);
	--apm-mono: var(--ardent-mono, "Karla", "Segoe UI", sans-serif);
	--apm-rayon: 6px;
	--apm-g: var(--wp--style--root--padding-left, 16px);
	--apm-l: min(1440px, calc(100vw - 2 * var(--apm-g)));
	color: var(--apm-encre);
	container: apm / inline-size;
	-webkit-tap-highlight-color: transparent;
}
/* Filet de sécurité : la barre de défilement de Windows ne crée jamais de défilement horizontal. */
html:has(.apm), body:has(.apm) { overflow-x: clip; }

/* Le concours sort de la colonne de texte du thème (720 px) : jusqu'à 1440 px, centré.
   Sélecteur renforcé : il doit passer devant les règles de mise en page de WordPress. */
.apm.apm.apm:not(.apm--encart) {
	width: var(--apm-l);
	max-width: none !important;
	margin: 0 0 3rem calc((100% - var(--apm-l)) / 2) !important;
}
.apm *, .apm *::before, .apm *::after { box-sizing: border-box; }
.apm img { max-width: 100%; height: auto; display: block; }
.apm [hidden] { display: none !important; }
.apm button { font: inherit; color: inherit; }
.apm-visuel-cache { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }
.apm-ico { flex: none; }

/* Vues */
.apm.is-participer .apm-vue-concours { display: none; }

/* Typo commune */
.apm-titre {
	margin: 0;
	font-family: var(--apm-titre);
	font-style: italic;
	font-weight: 900;
	font-size: clamp(2rem, 6vw, 3.5rem);
	line-height: 0.95;
	text-transform: uppercase;
}
.apm-surtitre {
	margin: 0 0 0.4rem;
	font-family: var(--apm-mono);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--apm-gris);
}

/* Boutons */
.apm-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	min-height: 52px;
	padding: 0 1.5rem;
	border: 0;
	border-radius: 999px;
	font-family: var(--apm-mono);
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .15s ease, background-color .2s ease, box-shadow .2s ease;
	touch-action: manipulation;
}
.apm-bouton:active { transform: scale(0.98); }
.apm-bouton--principal { background: var(--apm-orange); color: var(--apm-sur-accent) !important; }
.apm-bouton--principal:hover { background: var(--apm-survol); }
.apm-bouton--contour { background: transparent; color: inherit !important; box-shadow: inset 0 0 0 2px currentColor; }
.apm-bouton--sombre { background: var(--apm-encre); color: var(--apm-papier) !important; }
.apm-bouton--large { width: 100%; min-height: 56px; font-size: 1rem; }
.apm-bouton[disabled] { opacity: 0.6; cursor: progress; }
.apm-lien { border: 0; background: none; color: var(--apm-orange-texte); font-family: var(--apm-mono); font-weight: 700; min-height: 44px; cursor: pointer; text-decoration: underline; }
.apm :focus-visible { outline: 3px solid var(--apm-orange); outline-offset: 2px; }

/* ---------- En-tête du concours ---------- */
.apm-hero {
	display: grid;
	gap: 1.75rem;
	padding: 1.75rem 1.25rem;
	margin-inline: calc((var(--apm-l) - 100vw) / 2); /* bord à bord sur mobile */
	background: var(--apm-profond);
	color: #F3EFE6;
}
.apm-hero__texte { display: flex; flex-direction: column; gap: 1rem; }
.apm-hero__sur {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font-family: var(--apm-mono);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--apm-brume);
}
.apm-hero__sur span { background: var(--apm-orange); color: var(--apm-sur-accent); padding: 0.3rem 0.55rem; }
.apm-hero__titre {
	margin: 0;
	font-family: var(--apm-titre);
	font-style: italic;
	font-weight: 900;
	font-size: clamp(3.5rem, 13vw, 8rem);
	line-height: 0.86;
	text-transform: uppercase;
	color: #fff;
}
.apm-hero__intro { margin: 0; max-width: 36rem; font-size: 1.0625rem; line-height: 1.55; color: #D6DDD9; }
.apm-hero__intro strong { color: #fff; }
.apm-hero__intro a { color: #fff; }
.apm-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.apm-hero__actions .apm-bouton--principal { flex: 1 1 100%; }
.apm-hero__actions .apm-bouton--contour { color: #F3EFE6 !important; box-shadow: inset 0 0 0 2px #3E5A56; flex: 1 1 100%; }
.apm-hero__chiffres { display: flex; gap: 2rem; margin: 0.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #3E5A56; }
.apm-hero__chiffres div { display: flex; flex-direction: column-reverse; gap: 0.1rem; }
.apm-hero__chiffres dt { font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--apm-brume); }
.apm-hero__chiffres dd { margin: 0; font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 2.5rem; line-height: 1; color: #fff; }
.apm-hero__chiffres dd.is-accent { color: var(--apm-orange); }

.apm-hero__leader {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	max-height: 70vh;
	overflow: hidden;
	border-radius: 4px;
	color: #fff !important;
	text-decoration: none !important;
}
.apm-hero__leader img { width: 100%; height: 100% !important; object-fit: cover; }
.apm-hero__leader::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,42,0) 45%, rgba(15,42,42,.92)); }
.apm-hero__badge {
	position: absolute; z-index: 1; top: 0.9rem; left: 0.9rem;
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.45rem 0.8rem 0.45rem 0.6rem; border-radius: 999px;
	background: #fff; color: #13211D;
	font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
}
.apm-hero__badge .apm-ico { color: var(--apm-orange); }
.apm-hero__leader-info { position: absolute; z-index: 1; left: 1.1rem; right: 1.1rem; bottom: 1rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.apm-hero__leader-info > span:first-child { display: flex; flex-direction: column; gap: 0.3rem; }
.apm-hero__leader-info small { font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--apm-brume); }
.apm-hero__leader-info strong { font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: clamp(1.75rem, 5vw, 2.75rem); line-height: 0.95; text-transform: uppercase; }
.apm-hero__votes { display: flex; flex-direction: column; align-items: flex-end; }
.apm-hero__votes strong { color: var(--apm-orange); font-size: clamp(2rem, 6vw, 3.25rem); }

/* Prise partagée */
.apm-avant { margin-top: 1.5rem; max-width: 26rem; }

/* ---------- Galerie ---------- */
.apm-galerie { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
.apm-galerie__tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.apm-tri { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--apm-sable); }
.apm-tri a { display: inline-flex; align-items: center; text-decoration: none !important; }
.apm-tri a, .apm-tri button { border: 0; background: transparent; min-height: 40px; padding: 0 0.85rem; white-space: nowrap; border-radius: 999px; font-family: var(--apm-mono); font-size: 0.875rem; font-weight: 700; cursor: pointer; color: var(--apm-douce); }
.apm-tri [aria-pressed="true"] { background: var(--apm-encre); color: var(--apm-papier); }

.apm-filtres {
	display: flex; gap: 0.5rem;
	overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch;
	margin-inline: calc((var(--apm-l) - 100vw) / 2);
	padding: 2px calc((100vw - var(--apm-l)) / 2);
}
.apm-filtres::-webkit-scrollbar { display: none; }
.apm-filtres button {
	flex: none; scroll-snap-align: start;
	min-height: 44px; padding: 0 1rem; border: 0; border-radius: 999px;
	background: color-mix(in srgb, var(--apm-encre) 7%, transparent);
	font-family: var(--apm-mono); font-size: 0.875rem; font-weight: 700; cursor: pointer;
}
.apm-filtres button span { opacity: 0.6; margin-left: 0.2rem; }
.apm-filtres button[aria-pressed="true"] { background: var(--apm-encre); color: var(--apm-papier); }

.apm-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 1.75rem 1.5rem; }

.apm-carte { display: flex; flex-direction: column; border: 1px solid var(--apm-ligne); background: var(--apm-papier); scroll-margin-top: 90px; }
.apm-carte.is-avant { border: 2px solid var(--apm-orange); }
.apm-carte.is-cache { display: none; }
.apm-carte__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--apm-sable); }
.apm-carte__photo img { width: 100%; height: 100% !important; object-fit: cover; }
.apm-tag { position: absolute; top: 0.75rem; left: 0.75rem; padding: 0.35rem 0.55rem; background: var(--apm-vert); color: #fff; font-family: var(--apm-mono); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.apm-rang { position: absolute; top: 0.6rem; right: 0.75rem; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: #13211D; font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 1.375rem; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.apm-relache { position: absolute; left: 0.75rem; bottom: 0.75rem; display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.65rem; border-radius: 999px; background: rgba(15,42,42,.85); color: #fff; font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 700; }
.apm-relache .apm-ico { color: #8FD3C8; }
.apm-carte__corps { display: flex; flex-direction: column; gap: 0.6rem; flex: 1; padding: 1rem 1rem 1.1rem; }
.apm-carte__corps > * { margin: 0; }
.apm-carte__qui { font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--apm-gris); }
.apm-carte__titre { margin: 0; font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 1.75rem; line-height: 0.95; text-transform: uppercase; }
.apm-carte__titre span { font-size: 0.6em; color: var(--apm-gris); }
.apm-carte__histoire { font-size: 0.9375rem; line-height: 1.5; color: var(--apm-douce); overflow-wrap: anywhere; }
.apm-carte__leurre { display: inline-flex; align-items: center; gap: 0.4rem; align-self: flex-start; min-height: 32px; font-family: var(--apm-mono); font-size: 0.8125rem; font-weight: 700; color: var(--apm-orange-texte) !important; text-decoration: none !important; }
.apm-carte__actions { display: flex; gap: 0.6rem; margin-top: auto !important; padding-top: 0.4rem; }
.apm-voter {
	flex: 1; display: flex; align-items: center; justify-content: space-between;
	min-height: 48px; padding: 0 1rem; border: 0; border-radius: 999px;
	background: color-mix(in srgb, var(--apm-encre) 7%, transparent);
	font-family: var(--apm-mono); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
	cursor: pointer; touch-action: manipulation; transition: background-color .2s ease, transform .15s ease;
}
.apm-voter__txt { display: inline-flex; align-items: center; gap: 0.5rem; }
.apm-voter__nb { font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 1.375rem; font-variant-numeric: tabular-nums; }
.apm-voter[aria-pressed="true"] { background: var(--apm-orange); color: var(--apm-sur-accent); }
.apm-voter[aria-pressed="true"] .apm-ico { fill: currentColor; }
.apm-voter.is-pop .apm-ico { animation: apm-pop .45s ease; }
.apm-voter[disabled] { opacity: 0.6; }
@keyframes apm-pop { 40% { transform: scale(1.45); } 100% { transform: scale(1); } }
.apm-partager { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; flex: none; min-width: 48px; height: 48px; padding: 0 1rem 0 0.85rem; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--apm-encre) 7%, transparent); color: var(--apm-encre); font-family: var(--apm-mono); font-weight: 800; font-size: 0.875rem; cursor: pointer; }
.apm-votes-fixes { display: inline-flex; align-items: center; gap: 0.4rem; flex: 1; margin: 0; font-family: var(--apm-mono); font-weight: 800; }

.apm-vide { margin: 0; padding: 2rem 1.25rem; text-align: center; background: var(--apm-sable); display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.apm-vide p { margin: 0; }

/* ---------- Étapes, tableau d'honneur, mentions ---------- */
.apm-etapes { margin-top: 3.5rem; padding: 1.75rem 1.25rem; background: var(--apm-sable); display: grid; gap: 1.75rem; }
.apm-etape { display: flex; flex-direction: column; gap: 0.4rem; }
.apm-etape > * { margin: 0; }
.apm-etape__num { font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 3rem; line-height: 1; color: var(--apm-orange); }
.apm-etape:nth-child(2) .apm-etape__num { color: var(--apm-vert); }
.apm-etape:nth-child(3) .apm-etape__num { color: var(--apm-encre); }
.apm-etape h3 { font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 1.5rem; text-transform: uppercase; }
.apm-etape p { color: var(--apm-douce); line-height: 1.55; }

.apm-honneur { margin-top: 3.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
.apm-honneur ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.apm-honneur a { display: flex; align-items: center; gap: 0.9rem; color: inherit !important; text-decoration: none !important; min-height: 44px; }
.apm-honneur img { width: 76px; height: 76px !important; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 3px var(--apm-papier), 0 0 0 5px var(--apm-orange); flex: none; }
.apm-honneur span { display: flex; flex-direction: column; gap: 0.15rem; }
.apm-honneur small { font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--apm-orange-texte); }
.apm-honneur strong { font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: 1.375rem; line-height: 1; text-transform: uppercase; }
.apm-honneur em { font-style: normal; font-size: 0.875rem; color: var(--apm-gris); }

.apm-mentions { margin-top: 3rem; padding-top: 1.25rem; border-top: 2px solid var(--apm-encre); }
.apm-mentions p { margin: 0; font-size: 0.875rem; line-height: 1.6; color: var(--apm-gris); }
.apm-mentions strong { color: var(--apm-encre); }

/* ---------- Formulaire ---------- */
.apm-vue-form { max-width: 40rem; margin-inline: auto; }
.apm-form__barre { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; min-height: 56px; margin-inline: calc(var(--wp--style--root--padding-left, 16px) * -1); padding: 0 calc(var(--wp--style--root--padding-left, 16px) - 12px); background: var(--apm-papier); border-bottom: 1px solid var(--apm-ligne); }
.apm-retour { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 44px; padding: 0 12px; color: inherit !important; text-decoration: none !important; font-family: var(--apm-mono); font-size: 0.875rem; font-weight: 700; }
.apm-form { display: flex; flex-direction: column; gap: 1.5rem; padding: 1.5rem 0 calc(2rem + env(safe-area-inset-bottom)); }
.apm-form__intro { display: flex; flex-direction: column; gap: 0.5rem; }
.apm-form__intro p { margin: 0; color: var(--apm-douce); }
.apm-alerte { margin: 0; padding: 0.9rem 1rem; border-left: 4px solid var(--apm-orange-texte); background: color-mix(in srgb, var(--apm-orange) 12%, var(--apm-papier)); font-weight: 600; }
.apm-alerte.is-info { border-color: var(--apm-vert); background: color-mix(in srgb, var(--apm-vert) 12%, var(--apm-papier)); }

.apm-champ { display: flex; flex-direction: column; gap: 0.4rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.apm-champ > label, .apm-champ > legend { padding: 0; font-family: var(--apm-mono); font-size: 0.9375rem; font-weight: 800; }
.apm-champ > legend { margin-bottom: 0.6rem; }
.apm-champ small { font-weight: 500; color: var(--apm-gris); }
.apm-form input[type="text"], .apm-form input[type="email"], .apm-form select, .apm-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 0 0.9rem;
	border: 1px solid var(--apm-brume);
	border-radius: var(--apm-rayon);
	background: var(--apm-papier);
	color: var(--apm-encre);
	font-family: inherit;
	font-size: 16px; /* 16 px : pas de zoom automatique sur iPhone */
	-webkit-appearance: none;
	appearance: none;
}
.apm-form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235E6A64' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.9rem center; padding-right: 2.5rem; }
.apm-form textarea { min-height: 7.5rem; padding: 0.75rem 0.9rem; line-height: 1.45; resize: vertical; }
.apm-form input:focus, .apm-form select:focus, .apm-form textarea:focus { outline: none; border-color: var(--apm-vert); box-shadow: 0 0 0 3px color-mix(in srgb, var(--apm-vert) 25%, transparent); }
.apm-form [aria-invalid="true"] { border-color: var(--apm-orange-texte) !important; }
.apm-aide { margin: 0; font-size: 0.8125rem; color: var(--apm-gris); }
.apm-aide--seule { margin-top: -0.9rem; }
.apm-compteur { align-self: flex-end; font-variant-numeric: tabular-nums; }
.apm-erreur { margin: 0; font-size: 0.875rem; font-weight: 700; color: var(--apm-orange-texte); }
.apm-duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.75rem; }

/* Zone photo */
.apm-photo {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	min-height: 220px;
	border: 2px dashed var(--apm-brume);
	border-radius: var(--apm-rayon);
	background: var(--apm-sable);
	cursor: pointer;
	overflow: hidden;
	text-align: center;
}
.apm-photo__vide { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; padding: 1.5rem; }
.apm-photo__vide .apm-ico { color: var(--apm-vert); }
.apm-photo__vide strong { font-family: var(--apm-mono); font-size: 1rem; }
.apm-photo__vide small { color: var(--apm-gris); font-size: 0.8125rem; }
.apm-photo.is-remplie { border-style: solid; border-color: transparent; min-height: 0; }
.apm-photo.is-remplie { background: #0b1413; }
/* Photo verticale ou carrée : fond flou tiré de la photo elle-même, au lieu de bandes noires. */
.apm-photo.is-remplie::before { content: ""; position: absolute; inset: -12%; background: var(--apm-apercu-fond, none) center / cover no-repeat; filter: blur(26px) brightness(0.75) saturate(1.1); }
.apm-photo__apercu { position: relative; z-index: 1; display: block; width: 100%; max-height: 60vh; object-fit: contain; background: transparent; }
.apm-photo__changer { z-index: 2; }
.apm-photo__changer { position: absolute; right: 0.75rem; bottom: 0.75rem; min-height: 44px; display: inline-flex; align-items: center; padding: 0 1rem; border-radius: 999px; background: #fff; color: #13211D; font-family: var(--apm-mono); font-size: 0.8125rem; font-weight: 800; box-shadow: 0 2px 10px rgba(0,0,0,.2); }
#apm-photo:focus-visible + .apm-erreur, .apm-photo:focus-within { outline: 3px solid var(--apm-orange); outline-offset: 2px; }
.apm-champ--photo:focus-within .apm-photo { outline: 3px solid var(--apm-orange); outline-offset: 2px; }

/* Puces espèces (boutons radio) */
.apm-puces { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.apm-puce { position: relative; cursor: pointer; }
.apm-puce input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.apm-puce span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: 999px; background: color-mix(in srgb, var(--apm-encre) 7%, transparent); font-family: var(--apm-mono); font-size: 0.875rem; font-weight: 700; }
.apm-puce input:checked + span { background: var(--apm-encre); color: var(--apm-papier); }
.apm-puce input:focus-visible + span { outline: 3px solid var(--apm-orange); outline-offset: 2px; }

/* Interrupteur « relâché » */
.apm-interrupteur { display: flex; align-items: center; gap: 0.9rem; padding: 0.9rem 1rem; border-radius: var(--apm-rayon); background: color-mix(in srgb, var(--apm-vert) 12%, var(--apm-papier)); cursor: pointer; }
.apm-interrupteur input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.apm-interrupteur__piste { position: relative; flex: none; width: 48px; height: 28px; border-radius: 999px; background: var(--apm-brume); transition: background-color .2s ease; }
.apm-interrupteur__piste::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s ease; }
.apm-interrupteur input:checked + .apm-interrupteur__piste { background: var(--apm-vert); }
.apm-interrupteur input:checked + .apm-interrupteur__piste::after { transform: translateX(20px); }
.apm-interrupteur input:focus-visible + .apm-interrupteur__piste { outline: 3px solid var(--apm-orange); outline-offset: 2px; }
.apm-interrupteur strong { display: block; font-family: var(--apm-mono); }
.apm-interrupteur small { font-size: 0.8125rem; color: var(--apm-douce); }

/* Cases d'accord */
.apm-accords { gap: 0.9rem; }
.apm-case { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.9375rem; line-height: 1.45; cursor: pointer; }
.apm-case input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--apm-vert); }

.apm-piege { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Barre d'envoi collée en bas de l'écran sur mobile */
.apm-form__envoi {
	position: sticky; bottom: 0; z-index: 5;
	display: flex; flex-direction: column; gap: 0.5rem;
	margin-inline: calc(var(--wp--style--root--padding-left, 16px) * -1);
	padding: 0.75rem var(--wp--style--root--padding-left, 16px) calc(0.75rem + env(safe-area-inset-bottom));
	background: color-mix(in srgb, var(--apm-papier) 92%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--apm-ligne);
}
.apm-etat { margin: 0; min-height: 1.2em; font-size: 0.875rem; font-weight: 600; text-align: center; color: var(--apm-douce); }
.apm-etat:empty { display: none; }
.apm-progression { height: 6px; border-radius: 999px; background: var(--apm-sable); overflow: hidden; }
.apm-progression span { display: block; height: 100%; width: 0; background: var(--apm-vert); transition: width .2s ease; }

/* Confirmation */
.apm-merci { display: flex; flex-direction: column; align-items: center; gap: 1.1rem; padding: 3rem 0.5rem calc(3rem + env(safe-area-inset-bottom)); text-align: center; outline: none; }
.apm-merci p { margin: 0; max-width: 28rem; line-height: 1.55; color: var(--apm-douce); }
.apm-merci__photo { position: relative; width: 190px; height: 190px; border-radius: 50%; background: var(--apm-sable); box-shadow: 0 0 0 4px var(--apm-papier), 0 0 0 7px var(--apm-orange); }
.apm-merci__photo img { width: 100%; height: 100% !important; object-fit: cover; border-radius: 50%; }
.apm-merci__photo span { position: absolute; right: 0; bottom: 6px; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--apm-vert); color: #fff; box-shadow: 0 0 0 4px var(--apm-papier); }

/* Message flottant */
.apm-toast {
	position: fixed; z-index: 99999; left: 50%; bottom: calc(1.25rem + env(safe-area-inset-bottom));
	transform: translate(-50%, 1rem); opacity: 0;
	max-width: calc(100vw - 2rem); padding: 0.8rem 1.2rem; border-radius: 12px;
	background: #13211D; color: #fff; font-weight: 600; font-size: 0.9375rem; box-shadow: 0 8px 28px rgba(0,0,0,.3);
	transition: opacity .2s ease, transform .2s ease; pointer-events: none;
}
.apm-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.apm-toast.has-action { display: flex; align-items: center; gap: 1rem; padding-right: 0.5rem; pointer-events: auto; }
.apm-toast button { flex: none; min-height: 40px; padding: 0 1rem; border: 0; border-radius: 999px; background: var(--ardent-leurres, #E2622B); color: var(--ardent-sur-accent, #13211D); font-weight: 800; cursor: pointer; }
.apm-toast:not(.is-visible) { pointer-events: none; }

/* ---------- Tablette et ordinateur (selon la largeur du concours) ---------- */
@container apm (min-width: 600px) {
	.apm-hero__actions .apm-bouton--principal, .apm-hero__actions .apm-bouton--contour { flex: 0 0 auto; }
	.apm-etapes { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 2.5rem; }
	.apm-honneur ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.apm-avant { max-width: 24rem; }
}
@container apm (min-width: 900px) {
	.apm-hero { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; gap: 4rem; margin-inline: 0; padding: 4rem; }
	.apm-hero__leader { max-height: 600px; }
	.apm-honneur ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.apm-form__envoi { position: static; margin-inline: 0; padding: 0.5rem 0 0; background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
	.apm-form__barre { position: static; margin-inline: 0; border: 0; padding: 0; }
	.apm-filtres { margin-inline: 0; padding-inline: 0; flex-wrap: wrap; overflow: visible; }
}

@media (hover: hover) {
	.apm-voter:hover { background: color-mix(in srgb, var(--apm-encre) 12%, transparent); }
	.apm-voter[aria-pressed="true"]:hover { background: var(--apm-survol); }
	.apm-partager:hover { background: color-mix(in srgb, var(--apm-encre) 12%, transparent); }
}

@media (prefers-reduced-motion: reduce) {
	.apm *, .apm-toast { transition: none !important; animation: none !important; }
}

/* Case facultative (localisation) */
.apm-case--option { padding: 0.8rem 0.9rem; border-radius: var(--apm-rayon); background: var(--apm-sable); font-size: 0.875rem; }
.apm-case--option small { display: block; margin-top: 0.3rem; font-weight: 700; color: var(--apm-vert); }
.apm-case--option small:empty { display: none; }
.apm-case span { font-weight: 400; }
.apm-case strong { font-weight: 800; }

/* ---------- Vote par e-mail ---------- */
.apm-voter.is-attente { background: transparent; box-shadow: inset 0 0 0 2px var(--apm-orange); }
.apm-voter.is-attente .apm-ico { fill: none; }

.apm-dialogue {
	width: min(30rem, calc(100vw - 2rem));
	max-height: calc(100dvh - 2rem);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: var(--apm-papier);
	color: var(--apm-encre);
	box-shadow: 0 24px 60px rgba(0,0,0,.35);
}
.apm-dialogue::backdrop { background: rgba(10, 20, 18, .6); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.apm-dialogue__form { position: relative; display: flex; flex-direction: column; gap: 0.75rem; padding: 1.75rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom)); }
.apm-dialogue__form > * { margin: 0; }
.apm-dialogue__form .apm-titre { font-size: 2rem; }
.apm-dialogue__pour { font-weight: 700; color: var(--apm-douce); }
.apm-dialogue__form label { font-family: var(--apm-mono); font-weight: 800; font-size: 0.9375rem; margin-top: 0.25rem; }
.apm-dialogue__form input[type="email"] { width: 100%; min-height: 52px; padding: 0 0.9rem; border: 1px solid var(--apm-brume); border-radius: var(--apm-rayon); font-size: 16px; background: var(--apm-papier); color: var(--apm-encre); }
.apm-dialogue__form input[type="email"]:focus { outline: none; border-color: var(--apm-vert); box-shadow: 0 0 0 3px color-mix(in srgb, var(--apm-vert) 25%, transparent); }
.apm-dialogue__fermer { position: absolute; top: 0.6rem; right: 0.6rem; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
/* Sur mobile : la fenêtre s'ouvre depuis le bas, comme une feuille native. */
@media (max-width: 599px) {
	.apm-dialogue { width: 100vw; max-width: 100vw; margin: auto 0 0; border-radius: 16px 16px 0 0; }
}

/* Encadré de confirmation (arrivée par le lien de l'e-mail) */
.apm-confirmation { display: flex; flex-direction: column; gap: 1rem; margin: 0 0 2rem; padding: 1.5rem; border: 2px solid var(--apm-orange); border-radius: 12px; background: color-mix(in srgb, var(--apm-orange) 8%, var(--apm-papier)); }
.apm-confirmation > *, .apm-confirmation p { margin: 0; }
.apm-confirmation__prise { display: flex; align-items: center; gap: 1rem; }
.apm-confirmation__prise img { width: 84px; height: 84px !important; object-fit: cover; border-radius: 50%; flex: none; }
.apm-confirmation .apm-titre { font-size: clamp(1.75rem, 5vw, 2.5rem); }
.apm-confirmation form { margin: 0; }

/* Turnstile : n'apparaît que si Cloudflare a un doute */
.apm-turnstile { position: fixed; z-index: 100000; left: 50%; bottom: calc(1rem + env(safe-area-inset-bottom)); transform: translateX(-50%); }

/* ---------- Visionneuse (photo en grand) ---------- */
.apm-carte__agrandir {
	position: absolute; inset: 0; z-index: 1;
	width: 100%; height: 100%; padding: 0; border: 0; background: transparent;
	cursor: zoom-in;
}
.apm-carte__agrandir:focus-visible { outline: 3px solid var(--apm-orange); outline-offset: -3px; }
.apm-carte__photo .apm-tag, .apm-carte__photo .apm-rang, .apm-carte__photo .apm-relache { z-index: 2; pointer-events: none; }
@media (hover: hover) {
	.apm-carte__photo img { transition: transform .35s ease; }
	.apm-carte__photo:hover img { transform: scale(1.03); }
}

html.apm-sans-defilement, html.apm-sans-defilement body { overflow: hidden !important; }

.apm-visionneuse {
	width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh;
	margin: 0; padding: 0; border: 0;
	background: transparent;
	overflow: hidden;
}
.apm-visionneuse::backdrop { background: rgba(6, 12, 11, .92); }
.apm-visionneuse[open] { display: flex; align-items: center; justify-content: center; animation: apm-apparait .2s ease; }
.apm-visionneuse__cadre {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem;
	width: 100%; height: 100%; margin: 0;
	padding: calc(3.75rem + env(safe-area-inset-top)) 1rem calc(1.25rem + env(safe-area-inset-bottom));
	cursor: zoom-out;
}
.apm-visionneuse__image {
	display: block;
	max-width: 100%; max-height: calc(100% - 2.5rem);
	width: auto; height: auto;
	object-fit: contain;
	border-radius: 4px;
	box-shadow: 0 20px 60px rgba(0,0,0,.5);
	cursor: default;
	touch-action: pinch-zoom;
}
.apm-visionneuse__legende { margin: 0; max-width: 60ch; text-align: center; color: #E9EEEC; font-family: var(--ardent-mono, "Karla", sans-serif); font-size: 0.875rem; font-weight: 700; }
.apm-visionneuse__fermer {
	position: absolute; z-index: 2;
	top: calc(0.75rem + env(safe-area-inset-top)); right: calc(0.75rem + env(safe-area-inset-right));
	display: grid; place-items: center;
	width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.95); color: #13211D;
	cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.35);
}
.apm-visionneuse__fermer:hover { background: #fff; }
.apm-visionneuse__fermer:focus-visible { outline: 3px solid var(--apm-orange, #E2622B); outline-offset: 2px; }
@keyframes apm-apparait { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .apm-visionneuse[open] { animation: none; } }

/* ---------- Gagnant du mois dernier ---------- */
.apm-gagnant { display: grid; gap: 0; margin-top: 2.5rem; max-height: none; border-radius: 16px; overflow: hidden; background: var(--apm-profond); color: #fff; }
.apm-gagnant__photo { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #000; }
.apm-gagnant__photo img { display: block; width: 100%; height: 100% !important; object-fit: cover; transition: transform .4s ease; }
.apm-gagnant__photo:hover img { transform: scale(1.03); }
.apm-gagnant__badge { position: absolute; top: 0.9rem; left: 0.9rem; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.45rem 0.8rem; border-radius: 999px; background: var(--apm-orange); color: var(--apm-sur-accent); font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.apm-gagnant__texte { display: flex; flex-direction: column; gap: 0.65rem; padding: 1.5rem 1.5rem 1.75rem; }
.apm-gagnant__texte > * { margin: 0; }
.apm-gagnant__sur { font-family: var(--apm-mono); font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--apm-orange); }
.apm-gagnant__titre { font-family: var(--apm-titre); font-style: italic; font-weight: 900; font-size: clamp(2rem, 5vw, 3.25rem); line-height: 0.95; text-transform: uppercase; color: #fff; }
.apm-gagnant__titre span { font-size: 0.55em; color: var(--apm-brume); }
.apm-gagnant__qui { font-weight: 700; color: var(--apm-brume); }
.apm-gagnant__histoire { font-style: italic; line-height: 1.55; color: #E9E3D6; }
.apm-gagnant__bravo { font-weight: 700; }
.apm-lien-fort { display: inline-flex; align-items: center; gap: 0.4rem; align-self: flex-start; min-height: 44px; color: #fff !important; font-family: var(--apm-mono); font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.apm-gagnant--compact { margin: 0; }
.apm-gagnant--compact .apm-gagnant__titre { font-size: 1.75rem; }
.apm-gagnant--compact .apm-bouton { align-self: stretch; justify-content: center; }
.apm.apm.apm.apm--encart { width: auto; max-width: 100%; margin: 0 0 1.5rem; }
@container apm (min-width: 760px) {
	.apm-gagnant:not(.apm-gagnant--compact) { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; }
	.apm-gagnant:not(.apm-gagnant--compact) .apm-gagnant__photo { aspect-ratio: 4 / 3; max-height: 460px; height: 100%; }
	.apm-gagnant:not(.apm-gagnant--compact) .apm-gagnant__texte { padding: 2.5rem 3rem; }
}

/* ---------- Rappel : vérifier les spams ---------- */
.apm-spam { display: flex; align-items: flex-start; gap: 0.6rem; margin: 0; max-width: 28rem; padding: 0.75rem 0.9rem; border-radius: 10px; background: var(--apm-sable); color: var(--apm-douce); font-size: 0.875rem; line-height: 1.5; text-align: left; }
.apm-spam .apm-ico { flex: none; margin-top: 2px; color: var(--apm-orange-texte); }
.apm-spam--fort { background: color-mix(in srgb, var(--apm-orange) 12%, var(--apm-papier)); border: 1px solid color-mix(in srgb, var(--apm-orange) 40%, transparent); color: var(--apm-encre); }
.apm-aide--spam { display: flex; align-items: center; gap: 0.4rem; }
.apm-dialogue__envoye { position: relative; display: flex; flex-direction: column; align-items: center; gap: 0.9rem; padding: 2rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom)); text-align: center; outline: none; }
.apm-dialogue__envoye[hidden] { display: none; }
.apm-dialogue__envoye > * { margin: 0; }
.apm-dialogue__envoye .apm-titre { font-size: 2rem; }
.apm-dialogue__icone { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--apm-orange); color: var(--apm-sur-accent); }
.apm-dialogue__a { line-height: 1.5; color: var(--apm-douce); word-break: break-word; }
.apm-dialogue__envoye .apm-bouton { align-self: stretch; }
.apm-dialogue__partager { display: inline-flex; align-items: center; gap: 0.4rem; }

/* ---------- Fenêtre de partage ---------- */
.apm-partage { width: min(34rem, calc(100vw - 2rem)); }
.apm-partage__corps { position: relative; display: flex; flex-direction: column; gap: 0.9rem; padding: 1.75rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom)); overflow-y: auto; max-height: calc(100dvh - 2rem); box-sizing: border-box; }
.apm-partage__corps > * { margin: 0; flex-shrink: 0; }
.apm-partage__corps .apm-titre { font-size: 2rem; padding-right: 2.5rem; }
.apm-partage__formats { display: inline-flex; align-self: flex-start; padding: 4px; border-radius: 999px; background: var(--apm-sable); }
.apm-partage__formats button { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 40px; padding: 0 1rem; border: 0; border-radius: 999px; background: transparent; color: var(--apm-douce); font-family: var(--apm-mono); font-weight: 800; font-size: 0.875rem; cursor: pointer; }
.apm-partage__formats button[aria-pressed="true"] { background: var(--apm-encre); color: var(--apm-papier); }
.apm-partage__forme { display: inline-block; width: 10px; height: 16px; border: 2px solid currentColor; border-radius: 3px; }
.apm-partage__forme--post { width: 13px; height: 16px; }
.apm-partage__apercu { position: relative; display: grid; place-items: center; align-self: center; width: min(100%, 15rem); aspect-ratio: 9 / 16; border-radius: 14px; overflow: hidden; background: var(--apm-sable); box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.apm-partage__apercu[data-format="post"] { width: min(100%, 19rem); aspect-ratio: 4 / 5; }
.apm-partage__apercu img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.apm-partage__charge { padding: 1rem; font-size: 0.875rem; color: var(--apm-gris); text-align: center; }
.apm-partage__actions { display: grid; gap: 0.6rem; }
.apm-partage__actions .apm-bouton { justify-content: center; }
.apm-partage__actions .is-inactif { opacity: .5; pointer-events: none; }
.apm-partage__astuce { font-size: 0.8125rem; line-height: 1.45; color: var(--apm-gris); }
.apm-partage__ou { font-family: var(--apm-mono); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--apm-gris); }
.apm-partage__reseaux { display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 0.5rem; }
.apm-reseau { display: flex; align-items: center; gap: 0.55rem; min-height: 48px; padding: 0 0.75rem; border: 1px solid var(--apm-ligne); border-radius: 12px; background: var(--apm-papier); color: var(--apm-encre) !important; font-size: 0.875rem; font-weight: 700; text-decoration: none !important; cursor: pointer; font-family: inherit; }
.apm-reseau[hidden] { display: none; }
.apm-reseau:hover { border-color: var(--apm-encre); }
.apm-reseau__pastille { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--apm-encre); color: #fff; font-weight: 800; font-size: 0.8125rem; }
.apm-reseau--whatsapp .apm-reseau__pastille { background: #1E8E4E; }
.apm-reseau--facebook .apm-reseau__pastille { background: #1F5FD1; }
.apm-reseau--messenger .apm-reseau__pastille { background: #6A3FD6; }
.apm-reseau--pinterest .apm-reseau__pastille { background: #C21A2E; }
.apm-reseau--email .apm-reseau__pastille, .apm-reseau--sms .apm-reseau__pastille { background: var(--apm-vert); }
@media (max-width: 599px) {
	.apm-partage { width: 100vw; max-width: 100vw; margin: auto 0 0; border-radius: 16px 16px 0 0; }
	.apm-partage__apercu { width: min(100%, 11rem); }
	.apm-partage__apercu[data-format="post"] { width: min(100%, 14rem); }
}

/* Fenêtre de vote : à quoi sert l'e-mail */
.apm-dialogue__explication { font-size: 0.9375rem; line-height: 1.5; color: var(--apm-douce); }
.apm-dialogue__usage { margin-top: -0.35rem !important; font-size: 0.875rem; font-weight: 700; line-height: 1.45; color: var(--apm-encre); }

/* Récit de la prise : 2 lignes, puis « Lire plus » */
.apm-carte__recit { display: flex; flex-direction: column; align-items: flex-start; gap: 0.2rem; }
.apm-carte__recit > * { margin: 0; }
.apm-carte__recit:not(.is-deplie) .apm-carte__histoire { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.apm-lire-plus { min-height: 32px; padding: 0; border: 0; background: none; color: var(--apm-orange-texte); font-family: var(--apm-mono); font-size: 0.8125rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.apm-lire-plus:hover { color: var(--apm-encre); }
