/*
 * Thème « Memory Club », calqué sur memory-club.fr : aplats jaune / rose / cyan,
 * contours noirs épais, ombres dures, Russo One + Mansalva + Pixelify Sans.
 * - .bc-theme-memory : le calendrier ([borne_calendrier theme="memory"]).
 * - .mc-* : classes à mettre sur les blocs de la page (Bloc > Avancé > Classes CSS additionnelles).
 */

@font-face { font-family: "Russo One"; src: url("fonts/russo-one-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Mansalva"; src: url("fonts/mansalva-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Pixelify Sans"; src: url("fonts/pixelify-sans-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Pixelify Sans"; src: url("fonts/pixelify-sans-latin-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
	--mc-jaune: #faf533;
	--mc-jaune-pale: #fefecd;
	--mc-rose: #f545d4;
	--mc-cyan: #33c7ff;
	--mc-violet: #8240d1;
	--mc-rouge: #ef4343;
	--mc-noir: #000;
	--mc-titre: "Russo One", "Arial Black", sans-serif;
	--mc-pixel: "Pixelify Sans", "Courier New", monospace;
	--mc-main: "Mansalva", cursive;
	--mc-largeur: 1100px;
}

/* ---------- Page ---------- */

.mc-page {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding: 0 !important; /* Astra ajoute 48px aux groupes pleine largeur. */
	color: var(--mc-noir);
}
.mc-page > * { margin-top: 0 !important; margin-bottom: 0 !important; }

/* Sections pleine largeur, contenu centré. */
.mc-page .mc-hero,
.mc-page .mc-section {
	position: relative;
	overflow: hidden;
	padding: 3rem max(16px, calc((100% - var(--mc-largeur)) / 2));
}
.mc-page .mc-section {
	padding-top: 3.5rem;
	padding-bottom: 4.5rem;
	border-top: 4px solid var(--mc-noir);
	background-color: var(--mc-rose);
	background-image: radial-gradient(rgba(0, 0, 0, .22) 1.5px, transparent 2px);
	background-size: 18px 18px;
}

/* ---------- En-tête de page ---------- */

.mc-page .mc-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 3rem;
	align-items: center;
	background: var(--mc-jaune);
}
.mc-page .mc-hero > * { position: relative; z-index: 1; margin: 0; }

/* Formes décoratives, comme sur memory-club.fr. */
.mc-page .mc-hero::before,
.mc-page .mc-hero::after {
	content: "";
	position: absolute;
	border: 4px solid var(--mc-noir);
	pointer-events: none;
}
.mc-page .mc-hero::before { top: 18px; left: 18px; width: 48px; height: 48px; background: var(--mc-cyan); }
.mc-page .mc-hero::after { right: 24px; bottom: 28px; width: 64px; height: 64px; border-radius: 50%; background: var(--mc-rose); }
@media (max-width: 879px) {
	.mc-page .mc-hero::before { top: auto; bottom: 20px; left: 16px; width: 32px; height: 32px; }
	.mc-page .mc-hero::after { top: 22px; right: 16px; bottom: auto; width: 40px; height: 40px; }
}

.mc-page .mc-tagline {
	justify-self: start;
	margin-bottom: 1.2rem !important;
	padding: .2em .7em;
	border: 4px solid var(--mc-noir);
	background: #fff;
	box-shadow: 8px 8px 0 var(--mc-noir);
	font-family: var(--mc-main);
	font-size: clamp(1.2rem, 3.5vw, 1.7rem);
	line-height: 1.3;
	color: var(--mc-rose);
	transform: rotate(-2deg);
}

.mc-page .mc-surtitre {
	font-family: var(--mc-titre);
	font-size: clamp(2.2rem, 8vw, 3.6rem);
	line-height: 1;
	text-transform: uppercase;
	color: var(--mc-jaune);
	-webkit-text-stroke: 2px var(--mc-noir);
	text-shadow: 2px 2px 0 #000, 4px 4px 0 #000, 6px 6px 0 var(--mc-rose), 8px 8px 0 #000;
}

.mc-page .mc-titre.wp-block-heading {
	margin: .15em 0 .35em;
	font-family: var(--mc-titre);
	font-weight: 400;
	font-size: clamp(3rem, 12vw, 6.2rem);
	line-height: .95;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #fff;
	-webkit-text-stroke: 2px var(--mc-noir);
	text-shadow: 2px 2px 0 #000, 4px 4px 0 var(--mc-cyan), 6px 6px 0 #000, 8px 8px 0 var(--mc-rose);
}

.mc-page .mc-intro {
	max-width: 34em;
	font-family: var(--mc-pixel);
	font-size: 1.15rem;
	line-height: 1.5;
	color: var(--mc-noir);
}
.mc-page .mc-intro strong { font-weight: 700; background: var(--mc-noir); color: var(--mc-jaune); padding: 0 .25em; }

/* Photo façon polaroid. */
.mc-page .mc-photo {
	justify-self: center;
	max-width: 460px;
	margin-top: 2.5rem !important;
	padding: 12px 12px 6px;
	border: 4px solid var(--mc-noir);
	background: #fff;
	box-shadow: 12px 12px 0 var(--mc-noir);
	transform: rotate(2deg);
}
.mc-page .mc-photo img { display: block; width: 100%; height: auto; border: 2px solid var(--mc-noir); }
.mc-page .mc-photo figcaption {
	margin: .5em 0 0;
	font-family: var(--mc-pixel);
	font-size: .85rem;
	letter-spacing: .05em;
	text-align: center;
	text-transform: uppercase;
	color: var(--mc-noir);
}

@media (min-width: 880px) {
	.mc-page .mc-hero {
		grid-template-columns: 1.15fr .85fr;
		padding-top: 4.5rem;
		padding-bottom: 4.5rem;
	}
	.mc-page .mc-hero > * { grid-column: 1; }
	.mc-page .mc-hero > .mc-photo {
		grid-column: 2;
		grid-row: 1 / span 4;
		margin-top: 0 !important;
	}
}

/* ---------- Bandeau défilant ---------- */

.mc-page .mc-bandeau {
	overflow: hidden;
	border-top: 4px solid var(--mc-noir);
	background: var(--mc-noir);
	padding: .7rem 0;
}
.mc-page .mc-bandeau p {
	width: max-content;
	margin: 0;
	font-family: var(--mc-titre);
	font-size: clamp(1.1rem, 3vw, 1.6rem);
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--mc-jaune);
	animation: mc-defile 28s linear infinite;
}
@keyframes mc-defile { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.mc-page .mc-bandeau p { animation: none; }
}

/* ---------- Section calendrier ---------- */

.mc-page .mc-label {
	display: table;
	margin: 0 auto 1.5rem !important;
	padding: .3em .7em;
	background: var(--mc-noir);
	font-family: var(--mc-pixel);
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--mc-jaune);
}

/* ---------- Calendrier ---------- */

.borne-cal.bc-theme-memory {
	--bc-accent: var(--mc-rose);
	--bc-accent-fonce: var(--mc-violet);
	--bc-texte: #000;
	--bc-texte-doux: #333;
	--bc-fond: #fff;
	--bc-fond-doux: var(--mc-jaune-pale);
	--bc-bord: #000;
	--bc-note: var(--mc-cyan);
	--bc-rayon: 0;

	max-width: 1000px;
	padding: 1.4rem;
	border: 4px solid var(--mc-noir);
	background: var(--mc-jaune-pale);
	box-shadow: 12px 12px 0 var(--mc-noir);
}

.bc-theme-memory .bc-titre {
	font-family: var(--mc-titre);
	font-weight: 400;
	font-size: clamp(1.6rem, 5vw, 2.4rem);
	text-transform: uppercase;
	color: var(--mc-jaune);
	-webkit-text-stroke: 1.5px var(--mc-noir);
	text-shadow: 2px 2px 0 #000, 4px 4px 0 var(--mc-rose);
}
.borne-cal.bc-theme-memory .bc-nav {
	width: 2.6em;
	height: 2.6em;
	border: 3px solid var(--mc-noir);
	border-radius: 0;
	background: var(--mc-cyan);
	color: var(--mc-noir);
	font-weight: 700;
	box-shadow: 4px 4px 0 var(--mc-noir);
}
.borne-cal.bc-theme-memory .bc-nav:hover:not(:disabled) { background: var(--mc-rose); color: #fff; }
.borne-cal.bc-theme-memory .bc-nav:disabled { background: #fff; box-shadow: none; }

.bc-theme-memory .bc-lieu { font-family: var(--mc-pixel); font-size: 1rem; color: var(--mc-noir); }
.bc-theme-memory .bc-lieu svg { color: var(--mc-rose); }
.bc-theme-memory .bc-lieu a { color: var(--mc-noir); }

.bc-theme-memory .bc-annonce {
	border-radius: 0;
	background: var(--mc-noir);
	color: var(--mc-jaune);
	font-family: var(--mc-pixel);
	font-weight: 700;
	font-size: 1.05rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	box-shadow: 6px 6px 0 var(--mc-rose);
}
.bc-theme-memory .bc-annonce::before { content: "▣ "; }
.bc-theme-memory .bc-annonce strong { color: var(--mc-cyan); }

.bc-theme-memory .bc-grille { gap: 7px; }
.bc-theme-memory .bc-jsem { font-family: var(--mc-pixel); font-weight: 700; font-size: .9em; color: var(--mc-noir); }

.borne-cal.bc-theme-memory .bc-jour {
	border: 3px solid var(--mc-noir);
	border-radius: 0;
	background: #fff;
	box-shadow: 3px 3px 0 var(--mc-noir);
	transition: transform .12s, box-shadow .12s;
}
.borne-cal.bc-theme-memory .bc-jour:hover { background: #fff; transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--mc-noir); }
.borne-cal.bc-theme-memory .bc-jour.bc-ferme {
	border: 2px dashed rgba(0, 0, 0, .35);
	background: transparent;
	box-shadow: none;
	opacity: 1;
	color: rgba(0, 0, 0, .4);
	transform: none;
}
.borne-cal.bc-theme-memory .bc-jour.bc-n1 { background: #fcf98f; }
.borne-cal.bc-theme-memory .bc-jour.bc-n2 { background: var(--mc-jaune); }
.borne-cal.bc-theme-memory .bc-jour.bc-n3 { background: var(--mc-rose); color: #fff; }
.borne-cal.bc-theme-memory .bc-jour.bc-passe { opacity: .45; }
.borne-cal.bc-theme-memory .bc-jour.bc-moi { box-shadow: inset 0 0 0 3px var(--mc-cyan), 3px 3px 0 var(--mc-noir); }
.borne-cal.bc-theme-memory .bc-jour.bc-selection { outline: 3px solid var(--mc-violet); outline-offset: 2px; }

.bc-theme-memory .bc-num { font-family: var(--mc-titre); font-weight: 400; font-size: 1.05em; }
.bc-theme-memory .bc-aujourdhui .bc-num { border-radius: 0; background: var(--mc-noir); color: var(--mc-jaune); }
.bc-theme-memory .bc-compte {
	border-radius: 0;
	background: var(--mc-noir);
	color: var(--mc-jaune);
	font-family: var(--mc-pixel);
}
.bc-theme-memory .bc-noms { font-family: var(--mc-pixel); font-size: .8em; }
.bc-theme-memory .bc-avec-note::after { border-radius: 0; border: 1px solid #000; }

.bc-theme-memory .bc-legende { font-family: var(--mc-pixel); font-size: .85em; color: var(--mc-noir); }
.bc-theme-memory .bc-pastille { border: 2px solid #000; border-radius: 0; }
.bc-theme-memory .bc-pastille.bc-ferme { border: 2px dashed rgba(0, 0, 0, .4); }
.bc-theme-memory .bc-pastille.bc-n2 { background: var(--mc-jaune); }
.bc-theme-memory .bc-pastille.bc-moi { box-shadow: inset 0 0 0 2px var(--mc-cyan); }

.bc-theme-memory .bc-detail {
	border: 4px solid var(--mc-noir);
	border-radius: 0;
	background: #fff;
	box-shadow: 8px 8px 0 var(--mc-rose);
}
.bc-theme-memory .bc-detail-titre { font-family: var(--mc-titre); font-weight: 400; font-size: 1.5em; text-transform: uppercase; }
.bc-theme-memory .bc-horaires,
.bc-theme-memory .bc-resume,
.bc-theme-memory .bc-vide-msg,
.bc-theme-memory .bc-aide { font-family: var(--mc-pixel); font-size: 1.05em; color: var(--mc-noir); }
.bc-theme-memory .bc-resume strong { background: var(--mc-jaune); padding: 0 .2em; }
.bc-theme-memory .bc-graduation { font-family: var(--mc-pixel); color: var(--mc-noir); }
.bc-theme-memory .bc-pseudo { font-family: var(--mc-pixel); font-weight: 700; }
.bc-theme-memory .bc-pres .bc-piste { border: 2px solid var(--mc-noir); border-radius: 0; background: var(--mc-jaune-pale); }
.bc-theme-memory .bc-barre { border-radius: 0; background: var(--mc-rose); font-family: var(--mc-pixel); line-height: 1.75em; }
.bc-theme-memory .bc-pres-moi .bc-barre { background: var(--mc-cyan); color: var(--mc-noir); box-shadow: none; }
.borne-cal.bc-theme-memory .bc-suppr { border-radius: 0; color: var(--mc-noir); font-weight: 700; }
.borne-cal.bc-theme-memory .bc-suppr:hover { background: var(--mc-rouge); color: #fff; }

.bc-theme-memory .bc-form,
.bc-theme-memory .bc-inscrit { border-top: 3px dashed var(--mc-noir); }
.bc-theme-memory .bc-inscrit p { font-family: var(--mc-pixel); font-size: 1.05em; }
.borne-cal.bc-theme-memory .bc-form .bc-form-titre { font-family: var(--mc-titre); font-weight: 400; font-size: 1.3em; text-transform: uppercase; color: var(--mc-rose); }
.borne-cal.bc-theme-memory .bc-champ > span { font-family: var(--mc-pixel); font-weight: 700; font-size: 1.05em; color: var(--mc-noir); }
.bc-theme-memory .bc-champ input,
.bc-theme-memory .bc-champ select { border: 3px solid var(--mc-noir); border-radius: 0; background: #fff; color: #000; }
.bc-theme-memory .bc-champ input:focus,
.bc-theme-memory .bc-champ select:focus { outline: none; box-shadow: 4px 4px 0 var(--mc-cyan); }

/* Boutons « arcade » de memory-club.fr. */
.borne-cal.bc-theme-memory .bc-bouton {
	padding: .7em 1.4em;
	border: 3px solid var(--mc-noir);
	border-radius: 0;
	background: var(--mc-cyan);
	color: var(--mc-noir);
	font-family: var(--mc-titre);
	font-weight: 400;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: 6px 6px 0 var(--mc-noir);
	transition: all .12s;
}
.borne-cal.bc-theme-memory .bc-form [type=submit]::before { content: "▶ "; }
.borne-cal.bc-theme-memory .bc-bouton:hover { border-color: var(--mc-noir); background: var(--mc-rose); color: #fff; transform: translate(-2px, -2px); box-shadow: 9px 9px 0 var(--mc-noir); }
.borne-cal.bc-theme-memory .bc-bouton:active { transform: translate(4px, 4px); box-shadow: 2px 2px 0 var(--mc-noir); }
.borne-cal.bc-theme-memory .bc-bouton.bc-secondaire { background: var(--mc-jaune); color: var(--mc-noir); }
.borne-cal.bc-theme-memory .bc-bouton.bc-secondaire:hover { background: var(--mc-violet); color: #fff; }

.bc-theme-memory .bc-msg { border: 3px solid var(--mc-noir); border-radius: 0; font-family: var(--mc-pixel); font-weight: 700; }
.bc-theme-memory .bc-ok { background: var(--mc-cyan); color: var(--mc-noir); }
.bc-theme-memory .bc-erreur { background: var(--mc-rouge); color: #fff; }

@media (max-width: 480px) {
	.borne-cal.bc-theme-memory { padding: 1rem .7rem; box-shadow: 8px 8px 0 var(--mc-noir); }
	.bc-theme-memory .bc-grille { gap: 5px; }
	.borne-cal.bc-theme-memory .bc-jour { border-width: 2px; box-shadow: 2px 2px 0 var(--mc-noir); padding: .25em; }
}
