/* =========================================================================
   Artemis — Page flexible (sections ACF). Thème sombre, Montserrat.
   Portée : uniquement le template page-flexible.php (body.artemis-flex-page).
   ========================================================================= */

html { scroll-behavior: smooth; }
#programme, #contact { scroll-margin-top: 24px; }

/* Pré-masquage anti-FOUC : uniquement desktop, révélé par GSAP (voir animations.js).
   Sur mobile (et si JS/GSAP absent -> classe retirée) : rien n'est masqué. */
@media (min-width: 861px) {
	.artemis-flex.afx-anim .afx { visibility: hidden; }
}

.artemis-flex-page {
	margin: 0;
	background: #0a0a0a;
	color: #ffffff;
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.artemis-flex { padding-bottom: 60px; }

/* Masquer le badge Google reCAPTCHA */
.grecaptcha-badge { visibility: hidden !important; opacity: 0 !important; }
.artemis-flex * { box-sizing: border-box; }

.artemis-flex img { max-width: 100%; height: auto; display: block; }

.afx-container {
	width: 100%;
	max-width: 880px;
	margin: 0 auto;
	padding: 0 24px;
}

.afx {
	padding: 52px 0;
}

/* Titres de section */
.afx-title {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-weight: 500;
	font-size: clamp(16px, 2.2vw, 22px);
	margin: 0 0 36px;
	color: #ffffff;
}

/* ---------------- HERO ---------------- */
.afx-hero { padding-top: 40px; text-align: center; }
.afx-hero__logo img {
	width: 276px;
	max-width: 72%;
	margin: 0 auto 58px;
}
.afx-hero__title {
	text-transform: uppercase;
	font-weight: 300;
	font-size: clamp(26px, 4.4vw, 48px);
	letter-spacing: 0.04em;
	line-height: 1.15;
	margin: 0 0 28px;
}
.afx-hero__title strong { display: block; font-weight: 700; }
.afx-hero__title span { display: block; font-weight: 300; }
.afx-hero__intro {
	max-width: 760px;
	margin: 0 auto;
	color: rgba(255, 255, 255, 0.72);
	font-size: 15px;
	line-height: 1.7;
}
.afx-hero__intro p { margin: 0 0 12px; }

/* ------------- PROGRAMME ------------- */
.afx-schedule__list { width: 100%; }
.afx-schedule__row {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 24px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	align-items: start;
}
.afx-schedule__row:last-child { border-bottom: 0; }
.afx-schedule__time { color: rgba(255, 255, 255, 0.6); font-size: 14px; white-space: nowrap; padding-top: 1px; }
.afx-schedule__desc { color: #fff; font-size: 15px; }

.afx-programme__cta { text-align: center; }
.afx-programme__scroll { text-align: center; margin-top: 38px; }
.afx-tarifs__scroll { text-align: center; margin-top: 38px; }

/* Bouton générique */
.afx-btn {
	display: inline-block;
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 30px;
	padding: 14px 32px;
	font-family: inherit;
	font-size: 15px;
	letter-spacing: 0.05em;
	text-decoration: none;
	cursor: pointer;
	transition: all 0.2s ease;
}
.afx-btn:hover { background: #fff; color: #111; border-color: #fff; text-decoration: none; }

.afx-hero__cta { margin-top: 30px; }

/* Modal (programme popup) */
.afx-modal[hidden] { display: none; }
.afx-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.afx-modal__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.75); }
.afx-modal__dialog {
	position: relative;
	background: #111;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 12px;
	max-width: 860px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	padding: 40px;
}
.afx-modal__close {
	position: absolute;
	top: 14px;
	right: 18px;
	background: none;
	border: 0;
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}

/* ------------- INTERVENANTS ------------- */
.afx-speakers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px 40px;
}
.afx-speaker { margin: 0; text-align: center; width: calc((100% - 80px) / 3); max-width: 230px; }
.afx-speaker__photo { position: relative; margin: 0 auto 4px; line-height: 0; }
.afx-speaker__photo img { width: 100%; height: auto; display: block; }
.afx-speaker__photo::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 55%;
	background: linear-gradient(to bottom, rgba(10, 10, 10, 0) 0%, rgba(10, 10, 10, 0.85) 70%, #0a0a0a 100%);
	pointer-events: none;
}
.afx-speaker__name { font-size: 16px; font-weight: 500; color: #fff; }

/* ---------------- TARIFS ---------------- */
.afx-tarifs__table { max-width: 790px; margin: 0 auto; }
.afx-tarifs__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.afx-tarifs__row:last-child { border-bottom: 0; }
.afx-tarifs__label { font-size: 16px; color: rgba(255, 255, 255, 0.9); }
.afx-tarifs__price { font-size: clamp(24px, 3vw, 34px); font-weight: 300; color: #fff; white-space: nowrap; }

/* -------------- PARTENAIRES (marquee défilement infini) -------------- */
.afx-partenaires {
	background: transparent;
	padding: 52px 0;
	overflow: hidden;
}
.afx-partenaires .afx-title { margin-bottom: 30px; }

.afx-marquee {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.afx-marquee__track {
	display: flex;
	align-items: center;
	gap: 72px;
	width: max-content;
	animation: afx-marquee-scroll 50s linear infinite;
}
.afx-marquee:hover .afx-marquee__track { animation-play-state: paused; }
.afx-partner { flex: 0 0 auto; display: flex; align-items: center; }
.afx-partner img {
	height: 46px;
	width: auto;
	max-width: none;
	object-fit: contain;
}
@keyframes afx-marquee-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.afx-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; gap: 40px; }
}
@media (max-width: 560px) {
	.afx-marquee__track { gap: 44px; }
	.afx-partner img { height: 38px; }
}

/* ------------------ LIEU ------------------ */
.afx-lieu { text-align: center; }
.afx-lieu__date {
	text-align: center;
	color: rgba(255, 255, 255, 0.72);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 14px;
	margin: 0 0 20px;
}
.afx-lieu__media {
	position: relative;
	max-width: 480px;
	margin: 0 auto 22px;
	border-radius: 14px;
	overflow: hidden;
}
.afx-lieu__media img { width: 100%; height: auto; display: block; }
.afx-lieu__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.28);
}
.afx-lieu__badge {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	z-index: 2;
	line-height: 0;
}
.afx-lieu__badge svg { width: 100%; height: auto; display: block; }
.afx-lieu__place {
	font-size: clamp(17px, 2.2vw, 22px);
	color: #fff;
	margin: 0 0 24px;
}
.afx-lieu__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px; }

/* ---------------- CONTACT ---------------- */
.afx-contact__grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 48px;
	align-items: start;
}
.afx-contact__left { align-self: start; position: sticky; top: 40px; }
.afx-contact__text { color: rgba(255, 255, 255, 0.78); font-size: 15px; line-height: 1.7; }
.afx-contact__text h1,
.afx-contact__text h2,
.afx-contact__text h3 { color: #fff; font-size: clamp(19px, 2.2vw, 24px); font-weight: 400; line-height: 1.35; margin: 0 0 22px; letter-spacing: 0; text-transform: none; }
.afx-contact__text p { margin: 0 0 16px; }
.afx-contact__text p:last-child { margin-bottom: 0; }
.afx-contact__insta { margin-top: 24px; }
.afx-contact__insta p { color: rgba(255, 255, 255, 0.78); font-size: 15px; margin: 0 0 12px; }
.afx-insta-link { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.afx-insta-link:hover { opacity: 0.8; }

/* Formulaire CF7 — style maquette (bande sombre) */
.afx-form .wpcf7 { color: #fff; }
.afx-form .wpcf7 form > p { margin: 0; }
.afx-cf__field { margin-bottom: 24px; }
.afx-cf__tarif { margin-bottom: 28px; }
.afx-cf__row { display: flex; gap: 40px; }
.afx-cf__row .afx-cf__field { flex: 1; }
.afx-cf__label { display: block; font-size: 13px; letter-spacing: 0.02em; color: #fff; margin: 0 0 10px; }
.afx-cf__label span { color: #e0645f; }
.afx-cf input[type="text"],
.afx-cf input[type="email"],
.afx-cf input[type="tel"] {
	width: 100%;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 0;
	color: #fff;
	padding: 8px 2px;
	font-size: 16px;
	font-family: inherit;
	box-shadow: none;
}
.afx-cf input:focus { outline: none; border-bottom-color: #fff; }
.afx-cf textarea {
	width: 100%;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 12px;
	color: #fff;
	padding: 14px 16px;
	min-height: 150px;
	font-size: 16px;
	font-family: inherit;
	resize: vertical;
	box-shadow: none;
}
.afx-cf textarea:focus { outline: none; border-color: #fff; }
.afx-cf input::placeholder,
.afx-cf textarea::placeholder { color: rgba(255, 255, 255, 0.4); }
/* Radios en ligne */
.afx-cf__radios .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 14px 28px; }
.afx-cf__radios .wpcf7-list-item { margin: 0; }
.afx-cf__radios .wpcf7-list-item > label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.afx-cf__radios .wpcf7-list-item-label { color: #fff; font-size: 14px; }
.afx-cf__radios input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 50%;
	position: relative;
	background: transparent;
}
.afx-cf__radios input[type="radio"]:checked { border-color: #fff; }
.afx-cf__radios input[type="radio"]:checked::after { content: ""; position: absolute; inset: 3px; background: #fff; border-radius: 50%; }
/* Bouton */
.afx-cf__submit { margin-top: 6px; }
.afx-cf .wpcf7-submit {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 30px;
	padding: 14px 42px;
	font-size: 15px;
	font-family: inherit;
	cursor: pointer;
	transition: all 0.2s ease;
}
.afx-cf .wpcf7-submit:hover { background: #fff; color: #111; }
.afx-cf .wpcf7-spinner { margin: 0 0 0 8px; }
.afx-form .wpcf7-response-output { border-color: rgba(255, 255, 255, 0.4); color: #fff; margin: 16px 0 0; font-size: 14px; }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width: 860px) {
	.afx-contact__grid { grid-template-columns: 1fr; gap: 32px; }
	.afx-contact__left { position: static; }
	.afx-speakers { gap: 24px 32px; }
	.afx-speaker { width: calc((100% - 32px) / 2); }
}
@media (max-width: 560px) {
	.afx { padding: 40px 0; }
	.afx-schedule__row { grid-template-columns: 1fr; gap: 4px; padding: 12px 0; }
	.afx-tarifs__row { padding: 14px 0; }
	.afx-modal__dialog { padding: 28px 18px; }
	.afx-cf__row { flex-direction: column; gap: 0; }
}
@media (max-width: 480px) {
	.afx-speakers { gap: 18px 14px; }
	.afx-speaker { width: calc((100% - 14px) / 2); max-width: none; }
}
