/*
 * Forum EIC – compléments de style aux templates Elementor.
 * Les couleurs et typographies sont gérées dans le Kit Elementor (Styles globaux) ;
 * ce fichier ne couvre que ce qu'Elementor ne sait pas régler nativement.
 */

/* ---------- Header ----------
 * Le positionnement du header (superposé au hero sur l'accueil) est dans le
 * CSS personnalisé du template « FEIC – Header 2027 » (Elementor > Avancé).
 */

/* ---------- Icônes ----------
 * Le widget Icône d'Elementor garde un interligne sous l'icône (≈ 7 px) :
 * dans les pastilles et listes, l'icône paraît alors plus haute que le texte.
 */
.elementor-widget-icon .elementor-icon-wrapper { line-height: 0; }

/* ---------- Bloc logo (header et footer) ----------
 * Les deux lignes forment un bloc compact, de la hauteur du logo.
 */
.feic-brand .elementor-heading-title { display: block; }
.feic-brand .elementor-widget-heading:first-child .elementor-heading-title { line-height: 1; }
.feic-brand .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { margin-top: 3px; line-height: 1.2; }
@media (max-width: 767px) {
	.feic-brand .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { margin-top: 2px; font-size: 12px; }
}

/* ---------- Bouton « Découvrir le programme » (header) ----------
 * Lien = PDF choisi dans Réglages du forum ; masqué tant qu'aucun PDF n'est renseigné.
 */
.feic-header-cta:has(a:not([href])),
.feic-header-cta:has(a[href=""]),
.feic-header-cta:has(a[href="#"]) { display: none; }
@media (max-width: 1024px) {
	/* Tablette et mobile : le bouton passe avant le menu burger */
	.feic-header-cta { order: -1; }
}
@media (max-width: 767px), (min-width: 1025px) and (max-width: 1180px) {
	/* Mobile, et ordinateurs très étroits où le menu complet occupe la place :
	   bouton rond, icône seule centrée (l'intitulé reste dans aria-label et title) */
	.feic-header-cta .elementor-button { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0 !important; }
	.feic-header-cta .elementor-button-content-wrapper { display: flex; align-items: center; justify-content: center; gap: 0 !important; line-height: 0; }
	.feic-header-cta .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.feic-header-cta .elementor-button-icon { display: flex; margin: 0 !important; line-height: 0; }
	.feic-header-cta .elementor-button-icon svg { width: 18px; height: 18px; }
}
@media (max-width: 767px) {
	/* Mobile : le bouton rond passe avant le burger */

	/* Bloc logo un peu plus compact pour laisser la place aux deux boutons */
	.feic-header { column-gap: 12px !important; }
	.feic-header .feic-brand { gap: 10px !important; }
	.feic-header .feic-brand img { width: 84px !important; }
	.feic-header .feic-brand .elementor-widget-heading:first-child .elementor-heading-title { font-size: 18px; }
	.feic-header .feic-brand .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { font-size: 11px; }
	.feic-header .elementor-menu-toggle { margin-left: 0; }
}

/* ---------- Page « Bientôt en ligne » (mode Coming soon) ---------- */
.feic-emblem { position: relative; }
.feic-emblem > .feic-ring,
.feic-emblem > .feic-emblem-disk { position: absolute; inset: 0; width: auto !important; min-height: 0 !important; }
.feic-emblem > .feic-emblem-disk { inset: 28px; }
.feic-emblem > .feic-emblem-logo { position: relative; z-index: 1; }
.feic-cs-lead { max-width: 520px; }

/* ---------- Hero ---------- */
.feic-hero h1 { text-wrap: balance; }
.feic-float-pill { white-space: nowrap; }
/* Pastilles de la boîte de Petri : verre dépoli sur la photo (version Figma) */
.feic-float-pill.e-con {
	background-color: rgba(255, 255, 255, .16) !important;
	border: 1px solid rgba(255, 255, 255, .22);
	box-shadow: none !important;
	-webkit-backdrop-filter: blur(10px) saturate(120%);
	backdrop-filter: blur(10px) saturate(120%);
}
.feic-float-pill .elementor-heading-title { color: #fff !important; }

/* Anneau pointillé de la boîte de Petri : rotation lente et continue (un tour en 80 s).
 * L'anneau est le premier élément de .feic-petri (accueil et pages intérieures).
 * Coupée si l'internaute a demandé à réduire les animations. */
@keyframes feic-petri-ring { to { transform: rotate(360deg); } }
.feic-petri > .e-con:first-child,
.feic-ring {
	animation: feic-petri-ring 80s linear infinite;
	transform-origin: 50% 50%;
	will-change: transform;
}
/* En tournant, les coins du cadre carré de l'anneau débordent : on les contient dans le hero. */
.feic-hero { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
	.feic-petri > .e-con:first-child,
	.feic-ring { animation: none; }
}

/* ---------- Cartes ---------- */
.feic-max-440 { max-width: 480px; }

.feic-lift { transition: transform .3s ease, box-shadow .3s ease; }
.feic-lift:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(46, 59, 26, .12); }

.feic-atelier-title { min-height: 96px; }
.feic-atelier-title .elementor-heading-title { text-wrap: pretty; }

/* Village des exposants (accueil) : logos en bulles, légèrement décalés */
.feic-logo-bubbles { max-width: 336px; }
.feic-logo-bubbles > .e-con:nth-child(even) { transform: translateY(18px); }
.feic-bubble-logo img { width: 100%; height: 100%; max-height: 56px; object-fit: contain; }
@media (max-width: 767px) {
	.feic-logo-bubbles { max-width: none; }
	.feic-logo-bubbles > .e-con:nth-child(even) { transform: none; }
}

.feic-cta-card { text-decoration: none; transition: background-color .2s ease; }

.feic-video-tile { text-decoration: none; }
.feic-video-tile .feic-play .elementor-icon { transition: transform .2s ease; }
.feic-video-tile:hover .feic-play .elementor-icon { transform: scale(1.06); }
.feic-play .elementor-icon i { margin-left: 4px; } /* centrage optique du triangle */
.feic-play .elementor-icon svg { margin-left: 4px; }

/* ---------- Conférences : onglets Jeudi / Vendredi ---------- */
.feic-conf-row { transition: background-color .2s ease; }
.feic-conf-row h3 a { color: inherit; }
.feic-conf-row h3 a:hover { color: var(--e-global-color-primary); }

.feic-day-panel:not(.is-active) { display: none !important; }
.elementor-editor-active .feic-day-panel { display: flex !important; } /* tout éditer dans Elementor */
.elementor-editor-active .feic-day-panel + .feic-day-panel { border-top: 2px dashed var(--e-global-color-secondary); }

/* !important : doit primer sur le style "contour" défini dans Elementor */
.feic-day-tab.is-active .elementor-button {
	background-color: var(--e-global-color-primary) !important;
	border-color: var(--e-global-color-primary) !important;
	color: #fff !important;
}

/* ---------- Carte ---------- */
.feic-map .elementor-widget-google_maps,
.feic-map .elementor-custom-embed { height: 100%; }
.feic-map iframe { display: block; width: 100%; min-height: 100%; }
.feic-map > .elementor-widget-google_maps { flex-grow: 1; }

/* ---------- Footer ---------- */
.feic-footer-link a { color: inherit; text-decoration: none; }
.feic-footer-link a:hover { color: #fff; text-decoration: underline; }
.feic-partners img { width: auto; max-width: 100%; object-fit: contain; transition: opacity .2s ease; }
.feic-partners .feic-partner a:hover img { opacity: .8; }
.feic-partners .feic-partner a:focus-visible { display: inline-block; outline: 2px solid #fff; outline-offset: 4px; border-radius: 4px; }


/* ---------- Pages intérieures ---------- */
.feic-balance .elementor-heading-title { text-wrap: balance; }
.feic-back a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.feic-back a:hover { color: #fff; }
.feic-step-num .elementor-heading-title { line-height: 1; }

/* Carte conférence (Loop Item) : toute la ligne est cliquable */
.feic-conf-card { text-decoration: none; color: inherit; transition: background-color .2s ease; }
.feic-conf-card .feic-cc-title .elementor-heading-title { text-wrap: pretty; transition: color .2s ease; }
.feic-conf-card:hover .feic-cc-title .elementor-heading-title { color: var(--e-global-color-primary); }
.feic-conf-card .feic-cc-arrow .elementor-icon { transition: transform .2s ease; }
.feic-conf-card:hover .feic-cc-arrow .elementor-icon { transform: translateX(4px); }
.feic-conf-card:focus-visible { outline: 3px solid var(--e-global-color-secondary); outline-offset: 2px; }

/* Carte atelier (Loop Item) */
.feic-atelier-grid .e-loop-item,
.feic-atelier-grid .e-loop-item > .e-con { height: 100%; }
.feic-ac-title a { color: inherit; }
.feic-ac-title a:hover { color: var(--e-global-color-primary); }

/* Fiche conférence */
.feic-bio img { float: left; max-width: 140px; height: auto; margin: 4px 24px 12px 0; border-radius: 24px; }
.feic-bio p:empty { display: none; }
.feic-books:not(:has(img)) { display: none; }
.feic-post-content { font-size: 20px; line-height: 32px; }
.feic-post-content p:empty { display: none; }
.feic-post-content p:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .feic-post-content { font-size: 18px; line-height: 28px; } }
.feic-books img { height: 150px; width: auto; border-radius: 8px; box-shadow: 0 8px 20px rgba(30, 36, 24, .15); }
@media (min-width: 1025px) {
	.feic-aside { position: sticky; top: 24px; align-self: start; }
}

/* Mur de logos (galerie) */
.feic-logo-wall .gallery { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; margin: 0; }
.feic-logo-wall .gallery br { display: none; }
.feic-logo-wall .gallery-item { display: flex; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
@media (max-width: 1024px) { .feic-logo-wall .gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .feic-logo-wall .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.feic-logo-wall .gallery-icon { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 3 / 2; padding: 20px; background: #fff; border-radius: 24px; }
.feic-logo-wall .gallery-icon img { width: 100%; height: 100%; object-fit: contain; border: 0 !important; }

/* Formulaire exposants */
.feic-form .elementor-field-textual:focus { border-color: var(--e-global-color-primary) !important; box-shadow: 0 0 0 3px rgba(78, 95, 43, .15); outline: 0; }
.feic-form .elementor-field-type-acceptance label a { color: var(--e-global-color-primary); text-decoration: underline; }
.feic-form .elementor-field-subgroup .elementor-field-option { margin-right: 20px; }

/* ---------- Réservation MEC intégrée (fiches conférence / atelier) ----------
 * Habillage du module [mec-booking] aux couleurs du site. Les étapes et la date
 * sont masquées : elles font doublon avec la fiche (date, horaire, salle).
 */
.feic-resa .mec-wrap,
.feic-resa .mec-booking { margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; border: 0 !important; font-family: inherit !important; color: var(--e-global-color-text); }
.feic-resa .mec-booking-progress-bar,
.feic-resa .mec-booking > form > h4,
.feic-resa .mec-ticket-icon-wrapper,
.feic-resa [id^="mec_booking_quantity_wrapper"] { display: none !important; }
.feic-resa .mec-event-tickets-list { margin: 0 0 20px !important; }
.feic-resa .mec-ticket-style-row { display: flex !important; align-items: center; justify-content: space-between; gap: 16px; margin: 0 !important; padding: 18px 22px !important; border: 1px solid #CDD0C6 !important; border-radius: 20px !important; background: #FBF9F4 !important; box-shadow: none !important; }
.feic-resa .mec-event-ticket-name { font-weight: 600; font-size: 14px !important; color: #5B6152 !important; }
.feic-resa .mec-event-ticket-price { font-family: "Chau Philomene One", sans-serif !important; font-size: 22px !important; color: var(--e-global-color-primary) !important; }
.feic-resa .mec-ticket-style-row-section-3 p { margin: 0 !important; font-size: 14px !important; color: #5B6152 !important; }
.feic-resa label,
.feic-resa .mec-book-reg-field-name label,
.feic-resa .mec-form-row label { font-family: inherit !important; font-size: 14px !important; font-weight: 600 !important; color: var(--e-global-color-text) !important; text-transform: none !important; letter-spacing: 0 !important; }
.feic-resa input[type="text"],
.feic-resa input[type="email"],
.feic-resa input[type="tel"],
.feic-resa input[type="number"],
.feic-resa select,
.feic-resa textarea { width: 100% !important; min-height: 48px; padding: 10px 16px !important; border: 1px solid #CDD0C6 !important; border-radius: 16px !important; background: #FBF9F4 !important; box-shadow: none !important; font-family: inherit !important; font-size: 16px !important; color: var(--e-global-color-text) !important; }
.feic-resa input:focus,
.feic-resa select:focus,
.feic-resa textarea:focus { border-color: var(--e-global-color-primary) !important; box-shadow: 0 0 0 3px rgba(78, 95, 43, .15) !important; outline: 0; }
.feic-resa .mec-book-form-btn-wrap { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.feic-resa button,
.feic-resa .button,
.feic-resa input[type="submit"] { display: inline-flex !important; align-items: center; gap: 8px; width: auto !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 14px 28px !important; border: 2px solid var(--e-global-color-secondary) !important; border-radius: 999px !important; background: var(--e-global-color-secondary) !important; box-shadow: none !important; font-family: inherit !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1.2 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--e-global-color-text) !important; cursor: pointer; transition: background-color .2s ease; }
.feic-resa button:hover,
.feic-resa .button:hover { background: #F8EBCF !important; }
.feic-resa button svg { width: 14px; height: 14px; fill: currentColor; }
.feic-resa .mec-book-form-back-button,
.feic-resa button[class*="back"] { border-color: #CDD0C6 !important; background: transparent !important; color: var(--e-global-color-primary) !important; }
.feic-resa .mec-google-recaptcha { margin: 0 0 20px !important; }
.feic-resa .mec-success,
.feic-resa .mec-error,
.feic-resa .warning-msg,
.feic-resa .info-msg { border-radius: 16px !important; font-family: inherit !important; }
/* Étape « Participant » : une seule place gratuite, on retire le récapitulatif de billet */
.feic-resa .mec-ticket-subtotal-wrapper,
.feic-resa .mec-ticket-detail,
.feic-resa .mec-field-icon { display: none !important; }
.feic-resa .mec-book-tickets-container,
.feic-resa .mec-book-bfixed-fields-container { margin: 0 !important; padding: 0 !important; list-style: none; }
.feic-resa .mec-book-ticket-container { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.feic-resa .mec-book-tickets-reg-fields-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; margin: 0 0 28px !important; padding: 0 !important; list-style: none; }
.feic-resa .mec-book-tickets-reg-fields-container > li { grid-column: 1 / -1; float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.feic-resa .mec-book-tickets-reg-fields-container > li:nth-child(-n+2) { grid-column: auto; }
.feic-resa .mec-book-tickets-reg-fields-container label { display: block; margin: 0 0 8px !important; }
.feic-resa .mec-field-wrapper { display: block !important; width: 100% !important; }
.feic-resa .mec-field-wrapper input { min-width: 100% !important; } /* MEC impose width: 95% !important en ligne */
.feic-resa .wbmec-mandatory { margin-left: 2px; color: #B4532A !important; }
.feic-resa .mec-book-reg-field-agreement label { display: block !important; position: relative; padding-left: 32px; font-weight: 400 !important; line-height: 22px !important; }
.feic-resa .mec-book-reg-field-agreement input[type="checkbox"] { position: absolute; top: 1px; left: 0; width: 20px; height: 20px; margin: 0 !important; accent-color: var(--e-global-color-primary); }
.feic-resa .mec-book-reg-field-agreement a { color: var(--e-global-color-primary); text-decoration: underline; }
@media (max-width: 767px) {
	.feic-resa .mec-book-tickets-reg-fields-container { grid-template-columns: 1fr; }
	.feic-resa .mec-book-tickets-reg-fields-container > li:nth-child(-n+2) { grid-column: 1 / -1; }
}
.feic-resa-closed { margin: 0; padding: 20px 24px; border-radius: 20px; background: #F3F6EC; color: var(--e-global-color-text); }

/* ---------- Éditions précédentes ---------- */
.feic-edition-card { text-decoration: none; color: inherit; }
.feic-edition-card .feic-cc-arrow .elementor-icon { transition: transform .2s ease; }
.feic-edition-card:hover .feic-cc-arrow .elementor-icon { transform: translateX(4px); }
.feic-edition-card:focus-visible { outline: 3px solid var(--e-global-color-secondary); outline-offset: 3px; }

/* Chiffres : une case sans valeur disparaît ; filets entre les cases visibles */
.feic-stat:not(:has(.feic-stat-num .elementor-heading-title)) { display: none; }
.feic-stats > .feic-stat { flex: 1 1 0 !important; width: auto !important; min-width: 0; }
.feic-stats > .feic-stat + .feic-stat { border-left: 1px solid #EEEFEA; }
@media (max-width: 767px) { .feic-stats > .feic-stat { flex-basis: 100% !important; } .feic-stats > .feic-stat + .feic-stat { border-left: 0; } }

/* Vidéo principale : bloc masqué si aucune vidéo n'est renseignée */
.feic-ed-video:not(:has(.elementor-video, iframe, video)) { display: none; }
.feic-video .elementor-wrapper { border-radius: 40px; overflow: hidden; }
.feic-pdf-btn:not(:has(a[href$=".pdf"])) { display: none; }

/* Galerie (champ ACF « galerie » → widget Galerie Elementor Pro) : section masquée si vide */
.feic-ed-gallery:not(:has(.e-gallery-item)) { display: none; }
.feic-gallery .e-gallery-item { overflow: hidden; }
.feic-gallery .e-gallery-image { transition: transform .4s ease, filter .2s ease; }
.feic-gallery .e-gallery-item:hover .e-gallery-image { transform: scale(1.03); filter: brightness(.92); }
.feic-gallery .e-gallery-item:focus-visible { outline: 3px solid var(--e-global-color-secondary); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .feic-gallery .e-gallery-image { transition: none; } .feic-gallery .e-gallery-item:hover .e-gallery-image { transform: none; } }

/* ---------- Petits écrans d'ordinateur (1025 à 1360 px) ----------
 * Le hero (colonne texte + boîte de Petri, largeurs fixes) et le header (menu + bouton)
 * ne tenaient pas sur une ligne : on resserre.
 */
@media (min-width: 1025px) and (max-width: 1360px) {
	.feic-hero > .e-con:not(.feic-petri),
	.feic-hero > .e-con-inner > .e-con:not(.feic-petri) { flex: 1 1 0 !important; min-width: 0; }
	.feic-petri { zoom: .8; }
	/* Accueil : les pastilles dépassent la boîte de Petri à droite, on la décale du bord */
	.feic-hero:not(.feic-hero--inner) .feic-petri { margin-right: 70px !important; }
	.feic-header .elementor-widget-nav-menu { --e-nav-menu-horizontal-menu-item-margin: calc(20px / 2) !important; }
	/* Accueil, en-tête de la section Ateliers : le texte et le bouton passent sous le titre */
	.feic-head-ateliers { flex-wrap: wrap !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.feic-conf-card .feic-cc-arrow { display: none; }
}
@media (max-width: 767px) {
	.feic-conf-card .feic-cc-photo { grid-column: 1; grid-row: 1; }
	.feic-conf-card .feic-cc-time { grid-column: 2; grid-row: 1; align-self: center; }
	.feic-conf-card .feic-cc-text { grid-column: 1 / -1; }
}

@media (max-width: 1024px) {
	.feic-conf-row .feic-conf-speaker { display: none; }
}
@media (max-width: 767px) {
	.feic-atelier-title { min-height: 0; }
	.feic-head-ateliers .elementor-widget-button { align-self: flex-start; }
}
