/*
 * ACHII Événements / Articles — layout + look of the cards.
 * The cards are real Elementor widgets built on the fly; Elementor only
 * compiles CSS for SAVED content, so per-element settings never reach them.
 * All their layout and styling therefore lives here, keyed to the classes
 * each element carries. Palette: Convention ACHII 2026 (navy / orange).
 */
.achii-grid { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important; gap: 28px !important; width: 100%; padding: 0 !important; }
/* Un widget dynamique en "boxed" (content_width=boxed) place ses vrais enfants dans un
   .e-con-inner séparé, qui porte alors le flex réel : la classe sur l'enveloppe extérieure
   ne suffit pas pour ces grilles-là. On répète les mêmes règles sur cet enfant. */
.achii-grid.e-con-boxed > .e-con-inner { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important; gap: 28px !important; padding: 0 !important; }
.achii-grid--row.e-con-boxed > .e-con-inner { flex-wrap: nowrap !important; }

/* descendant (pas enfant direct ">") : une grille "boxed" place ses vrais enfants dans un
   .e-con-inner intercalé par Elementor, ce qui casse un sélecteur ">" entre .achii-grid et
   .achii-card. */
.achii-grid .achii-card {
	position: relative; display: flex !important; flex-direction: column !important;
	flex: 0 0 calc(33.333% - 18.67px) !important; max-width: calc(33.333% - 18.67px) !important; min-width: 0;
	background: #fff; border-radius: 14px; overflow: hidden; padding: 0 0 26px !important;
	box-shadow: 0 2px 14px rgba(22, 59, 101, .10);
	transition: transform .3s ease, box-shadow .3s ease;
}
.achii-grid .achii-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(22, 59, 101, .16); }
@media (max-width: 1024px) { .achii-grid .achii-card { flex-basis: calc(50% - 14px) !important; max-width: calc(50% - 14px) !important; } }
@media (max-width: 767px)  { .achii-grid .achii-card { flex-basis: 100% !important; max-width: 100% !important; } }

/* media */
.achii-card__media { width: 100% !important; margin: 0 !important; overflow: hidden; }
.achii-card__media .elementor-widget-container, .achii-card__media a { display: block; }
.achii-card__media img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10 !important; object-fit: cover !important; display: block; transition: transform .5s ease; }
.achii-card:hover .achii-card__media img { transform: scale(1.06); }
.achii-grid .achii-card > .achii-card__media--fallback { min-height: 190px !important; height: 190px; flex: 0 0 190px !important; width: 100% !important; background: linear-gradient(135deg, #163B65, #24568f) !important; }

/* badge */
.achii-card__badge { position: absolute !important; top: 16px; left: 16px; z-index: 2; width: auto !important; background: #163B65; padding: 6px 12px; border-radius: 6px; line-height: 1; }
.achii-card__badge .elementor-heading-title { font: 700 11px/1 'Open Sans', sans-serif !important; letter-spacing: 1.2px; text-transform: uppercase; color: #fff !important; margin: 0; }

/* body */
.achii-card__meta, .achii-card__title, .achii-card__excerpt, .achii-card__cta { margin: 0 26px !important; width: auto !important; }
.achii-card__meta { margin-top: 20px !important; }
.achii-card__meta .elementor-icon-list-text { font: 600 13px/1.4 'Open Sans', sans-serif !important; color: #6A7686 !important; }
.achii-card__meta .elementor-icon-list-icon i { color: #E88935 !important; font-size: 13px; }
.achii-card__meta .elementor-icon-list-item { margin-right: 18px; }
.achii-card__title { margin-top: 12px !important; }
.achii-card__title .elementor-heading-title, .achii-card__title a { font: 700 19px/1.35 'Montserrat', sans-serif !important; color: #163B65 !important; text-decoration: none; margin: 0; }
.achii-card__excerpt { margin-top: 10px !important; }
.achii-card__excerpt, .achii-card__excerpt p { font: 400 15px/1.65 'Open Sans', sans-serif !important; color: #273444 !important; margin-bottom: 0; }
.achii-card__cta { margin-top: 16px !important; }
.achii-card__cta .elementor-button { padding: 0 !important; background: transparent !important; border: 0 !important; color: #E88935 !important; font: 700 13px/1 'Montserrat', sans-serif !important; letter-spacing: 1px; text-transform: uppercase; }
.achii-card__cta .elementor-button:hover { color: #163B65 !important; }

.achii-ev-empty { text-align: center; color: #6A7686; font-family: 'Open Sans', sans-serif; padding: 40px 0; }

/* ---- Programme (widget « ACHII — Programme ») ---- */
.achii-prog { display: flex !important; flex-direction: column !important; width: 100%; padding: 0 !important; gap: 0 !important; }
.achii-prog__row { display: flex !important; flex-direction: row !important; align-items: flex-start !important; gap: 24px !important; padding: 20px 0 !important; border-top: 1px solid #E3EAF0; width: 100%; }
.achii-prog__row:nth-last-child(1), .achii-prog__row:has(+ .achii-prog__note) { border-bottom: 1px solid #E3EAF0; }
.achii-prog__time { flex: 0 0 150px; width: 150px !important; margin: 0 !important; padding-top: 2px; }
.achii-prog__content { display: flex !important; flex-direction: column !important; flex: 1 1 auto; gap: 4px !important; min-width: 0; }
.achii-prog__label { margin: 0 !important; }
.achii-prog__desc { margin: 0 !important; }
.achii-prog__time .elementor-heading-title { font: 700 15px/1.3 'Montserrat', sans-serif !important; color: #E88935 !important; }
.achii-prog__label .elementor-heading-title { font: 600 16px/1.4 'Open Sans', sans-serif !important; color: #163B65 !important; }
.achii-prog__desc p { font: 400 14px/1.55 'Open Sans', sans-serif !important; color: #6A7686 !important; margin: 0 !important; }
.achii-prog__row--pause .achii-prog__time .elementor-heading-title { color: #9AA7B5 !important; }
.achii-prog__row--pause .achii-prog__label .elementor-heading-title { font-weight: 500 !important; color: #6A7686 !important; }
.achii-prog__note { background: #EAF3F8 !important; border-radius: 12px !important; padding: 22px 24px !important; margin-top: 32px !important; width: 100%; }
.achii-prog__note p { font: 400 15px/1.65 'Open Sans', sans-serif; color: #273444; margin: 0; }
@media (max-width: 600px) { .achii-prog__row { flex-direction: column !important; gap: 4px !important; } .achii-prog__time { flex-basis: auto; width: auto !important; } }

/* ---- Formulaire d'inscription (widget « ACHII — Formulaire d'inscription ») ---- */
.achii-reg { width: 100%; font-family: 'Open Sans', sans-serif; color: #273444; }
.achii-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.achii-form__grid { display: flex; flex-wrap: wrap; gap: 18px 16px; }
.achii-field { flex: 1 1 100%; min-width: 0; }
.achii-field--half { flex: 1 1 calc(50% - 8px); }
@media (max-width: 600px) { .achii-field--half { flex-basis: 100%; } }
.achii-field > label { display: block; margin: 0 0 7px; font: 600 14px/1.4 'Open Sans', sans-serif; color: #163B65; }
.achii-req { color: #E88935; }
.achii-field input[type=text], .achii-field input[type=email], .achii-field input[type=tel], .achii-field select, .achii-field textarea {
	display: block; width: 100%; box-sizing: border-box; margin: 0; padding: 13px 14px;
	font: 400 15px/1.4 'Open Sans', sans-serif; color: #273444; background: #F5F7F9;
	border: 1px solid #D7E0E8; border-radius: 6px; box-shadow: none; outline: none;
	transition: border-color .2s, box-shadow .2s, background .2s; -webkit-appearance: none; appearance: none;
}
.achii-field select { padding-right: 40px !important; cursor: pointer; }
.achii-select { position: relative; }
.achii-select::after { content: ''; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid #163B65; border-bottom: 2px solid #163B65; transform: rotate(45deg); pointer-events: none; }
.achii-field textarea { resize: vertical; min-height: 92px; }
.achii-field input:focus, .achii-field select:focus, .achii-field textarea:focus { background-color: #fff; border-color: #E88935; box-shadow: 0 0 0 3px rgba(232, 137, 53, .18); }
.achii-field.has-error input, .achii-field.has-error select, .achii-field.has-error textarea { border-color: #C0392B; background-color: #FDF3F1; }
.achii-field__err { margin: 6px 0 0; min-height: 0; font: 600 13px/1.4 'Open Sans', sans-serif; color: #C0392B; }
.achii-field__err:empty { display: none; }
.achii-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font: 400 14px/1.5 'Open Sans', sans-serif; color: #273444; }
.achii-check input { flex: 0 0 20px; width: 20px; height: 20px; margin: 1px 0 0; accent-color: #E88935; cursor: pointer; }
.achii-form__status { margin-top: 18px; font: 600 14px/1.5 'Open Sans', sans-serif; color: #C0392B; }
.achii-form__status:empty { display: none; }
.achii-form__submit {
	display: block; width: 100%; margin-top: 22px; padding: 16px 24px; cursor: pointer;
	font: 700 13px/1 'Montserrat', sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #fff;
	background: #E88935; border: 0; border-radius: 6px; transition: background .2s, transform .2s, box-shadow .2s;
}
.achii-form__submit:hover { background: #D2762A; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(232, 137, 53, .32); }
.achii-form__submit:focus-visible { outline: 3px solid rgba(22, 59, 101, .45); outline-offset: 2px; }
.achii-form__submit:disabled { opacity: .7; cursor: progress; transform: none; box-shadow: none; }
.achii-form__done { display: none; text-align: center; padding: 34px 20px; }
.achii-form__done.is-visible { display: block; }
.achii-form__done-icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 14px; border-radius: 50%; background: #E88935; color: #fff; font-size: 26px; font-weight: 700; }
.achii-form__done p { margin: 0; font: 600 17px/1.6 'Montserrat', sans-serif; color: #163B65; }

.achii-field > label.achii-check { display: flex; margin: 0; font: 400 14px/1.5 'Open Sans', sans-serif; color: #273444; }
.achii-field--check { margin-top: 2px; }
.achii-form__grid { align-items: flex-start; }

/* ---- Calendrier (widget « ACHII — Calendrier des événements ») ---- */
.achii-cal { width: 100%; font-family: 'Open Sans', sans-serif; color: #273444; }
.achii-cal__nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; min-height: 24px; }
.achii-cal__step { padding: 0; background: none; border: 0; cursor: pointer; font: 700 16px/1.2 'Montserrat', sans-serif; color: #E88935; transition: color .2s; }
.achii-cal__step:hover { color: #163B65; }
.achii-cal__step:focus-visible { outline: 2px solid #E88935; outline-offset: 4px; border-radius: 4px; }
.achii-cal__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 26px; }
.achii-cal__title { margin: 0; font: 700 clamp(30px, 4.2vw, 46px)/1.1 'Montserrat', sans-serif; color: #163B65; }
.achii-cal__pick { position: relative; }
.achii-cal__pick::after { content: ''; position: absolute; right: 16px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border-right: 2px solid #163B65; border-bottom: 2px solid #163B65; transform: rotate(45deg); pointer-events: none; }
.achii-cal__pick select { -webkit-appearance: none; appearance: none; padding: 12px 40px 12px 18px; font: 600 15px/1.2 'Open Sans', sans-serif; color: #163B65; background: #fff; border: 1px solid #D7E0E8; border-radius: 8px; cursor: pointer; }
.achii-cal__pick select:focus { outline: none; border-color: #E88935; box-shadow: 0 0 0 3px rgba(232, 137, 53, .18); }

.achii-cal__grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid #E3EAF0; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 14px rgba(22, 59, 101, .06); }
.achii-cal__grid th { padding: 14px 6px; background: #F5F7F9; border-bottom: 1px solid #E3EAF0; font: 700 12px/1 'Montserrat', sans-serif; letter-spacing: 1.3px; text-transform: uppercase; color: #163B65; text-align: center; }
.achii-cal__ds { display: none; }
.achii-cal__grid td { position: relative; height: 128px; padding: 8px; vertical-align: top; border-right: 1px solid #E3EAF0; border-bottom: 1px solid #E3EAF0; background: #fff; }
.achii-cal__grid td:last-child { border-right: 0; }
.achii-cal__grid tr:last-child td { border-bottom: 0; }
.achii-cal__grid td.is-empty { background: #F5F7F9; }
.achii-cal__day { display: block; margin: 0 2px 6px 0; text-align: right; font: 600 14px/1 'Open Sans', sans-serif; color: #6A7686; }
.achii-cal__grid td.is-today .achii-cal__day { display: block; margin-left: auto; width: 26px; height: 26px; line-height: 26px; text-align: center; border-radius: 50%; background: #163B65; color: #fff; }
.achii-cal__evs { display: flex; flex-direction: column; gap: 6px; }
.achii-cal__ev { display: block; padding: 7px 9px; background: #EAF3F8; border-left: 3px solid #E88935; border-radius: 6px; text-decoration: none; transition: background .2s, transform .2s, box-shadow .2s; }
.achii-cal__ev:hover { background: #fff; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(22, 59, 101, .14); }
.achii-cal__time { display: block; font: 700 12px/1.3 'Open Sans', sans-serif; color: #E88935; }
.achii-cal__name { display: block; font: 700 13px/1.3 'Montserrat', sans-serif; color: #163B65; }
.achii-cal__dot { display: none; }

.achii-cal__agenda { display: none; margin-top: 22px; }
.achii-cal__item { display: block; margin-bottom: 12px; padding: 16px 18px; background: #fff; border-left: 4px solid #E88935; border-radius: 10px; box-shadow: 0 2px 14px rgba(22, 59, 101, .08); text-decoration: none; }
.achii-cal__item strong { display: block; margin: 4px 0 2px; font: 700 16px/1.35 'Montserrat', sans-serif; color: #163B65; }
.achii-cal__when { display: block; font: 700 12px/1.3 'Open Sans', sans-serif; letter-spacing: .6px; text-transform: uppercase; color: #E88935; }
.achii-cal__where { display: block; font: 400 14px/1.4 'Open Sans', sans-serif; color: #6A7686; }
.achii-cal__none { margin: 0; padding: 18px; text-align: center; color: #6A7686; background: #F5F7F9; border-radius: 10px; }
.achii-cal__nojs { list-style: none; margin: 0; padding: 0; }

@media (max-width: 767px) {
	.achii-cal__dl { display: none; }
	.achii-cal__ds { display: inline; }
	.achii-cal__grid th { padding: 10px 2px; font-size: 10px; letter-spacing: .5px; }
	.achii-cal__grid td { height: 52px; padding: 5px 2px; text-align: center; }
	.achii-cal__day { margin: 0; text-align: center; font-size: 13px; }
	.achii-cal__grid td.is-today .achii-cal__day { margin: 0 auto; width: 24px; height: 24px; line-height: 24px; }
	.achii-cal__evs { display: none; }
	.achii-cal__grid td.has-events .achii-cal__day { color: #163B65; font-weight: 700; }
	.achii-cal__dot { display: block; width: 7px; height: 7px; margin: 5px auto 0; border-radius: 50%; background: #E88935; }
	.achii-cal__agenda { display: block; }
	.achii-cal__step { font-size: 14px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.achii-cal__grid td { height: 112px; padding: 6px; }
	.achii-cal__name { font-size: 12px; }
}

/* calendrier sur fond coloré (orange / foncé) */
.achii-cal--dark .achii-cal__step { color: #fff; }
.achii-cal--dark .achii-cal__step:hover { color: #163B65; }
.achii-cal--dark .achii-cal__title { color: #fff; }

/* ---- Onglets de filtre des cartes ---- */
.achii-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 auto 34px; padding: 0 16px; }
.achii-filter__tab { padding: 11px 22px; cursor: pointer; font: 700 12px/1 'Montserrat', sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #163B65; background: #fff; border: 1px solid #D7E0E8; border-radius: 6px; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.achii-filter__tab:hover { border-color: #E88935; transform: translateY(-1px); }
.achii-filter__tab.is-active { color: #fff; background: #163B65; border-color: #163B65; }
.achii-filter__tab:focus-visible { outline: 3px solid rgba(22, 59, 101, .45); outline-offset: 2px; }
.achii-filter--dark .achii-filter__tab { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .6); }
.achii-filter--dark .achii-filter__tab:hover { border-color: #fff; background: rgba(255, 255, 255, .12); }
.achii-filter--dark .achii-filter__tab.is-active { color: #163B65; background: #fff; border-color: #fff; }
.achii-grid > .achii-card.is-in { animation: achii-pop .35s ease both; }
@keyframes achii-pop { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 600px) { .achii-filter { justify-content: flex-start; } .achii-filter__tab { padding: 10px 16px; } }
.achii-grid > .achii-card.is-hidden { display: none !important; }

/* ---- Slider d'événements (une carte à la fois) ---- */
.achii-slide { width: 100%; }
.achii-slide .achii-grid { flex-wrap: nowrap !important; gap: 0 !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; justify-content: flex-start !important; padding: 6px 0 26px !important; }
.achii-slide .achii-grid::-webkit-scrollbar { display: none; }
.achii-slide .achii-grid > .achii-card { flex: 0 0 100% !important; max-width: 100% !important; scroll-snap-align: start; scroll-snap-stop: always; }
.achii-slide .achii-grid > .achii-card:hover { transform: none; }
.achii-slide .achii-card__media img { aspect-ratio: 4 / 3 !important; }
.achii-slide .achii-grid > .achii-card > .achii-card__media--fallback { min-height: 260px !important; height: 260px; flex-basis: 260px !important; }
.achii-slide__ctrl { display: flex; align-items: center; justify-content: center; gap: 18px; }
.achii-slide__btn { width: 42px; height: 42px; padding: 0; cursor: pointer; font: 700 18px/1 'Montserrat', sans-serif; color: #163B65; background: #fff; border: 1px solid #D7E0E8; border-radius: 50%; transition: background .2s, color .2s, border-color .2s; }
.achii-slide__btn:hover { color: #fff; background: #163B65; border-color: #163B65; }
.achii-slide__btn:focus-visible, .achii-slide__dot:focus-visible { outline: 3px solid rgba(232, 137, 53, .6); outline-offset: 2px; }
.achii-slide__dots { display: flex; gap: 8px; }
.achii-slide__dot { width: 10px; height: 10px; padding: 0; cursor: pointer; background: #C9D5E0; border: 0; border-radius: 99px; transition: width .25s, background .25s; }
.achii-slide__dot.is-active { width: 26px; background: #E88935; }

/* calendrier en colonne étroite (accueil : carte à gauche, calendrier à droite) */
.achii-cal__ev { padding: 6px 7px 6px 8px; }
.achii-cal__name { overflow-wrap: break-word; hyphens: auto; }
@media (min-width: 768px) and (max-width: 1280px) { .achii-cal__name { font-size: 12px; } .achii-cal__time { font-size: 11px; } }
@media (min-width: 1025px) { .achii-home-split .achii-cal__grid td { height: 112px; } .achii-home-split .achii-cal__title { font-size: clamp(28px, 3vw, 40px); } }
@media (min-width: 1025px) { .achii-home-split .achii-cal__grid td { padding: 6px; } .achii-home-split .achii-cal__name { font-size: 12px; letter-spacing: -.1px; } .achii-home-split .achii-cal__ev { padding: 6px 6px 6px 7px; } }
@media (max-width: 1024px) { .achii-slide .achii-card__media img { aspect-ratio: 16 / 10 !important; } }

/* ==================================================================
 * Page Kit — sections partagées des pages du site (hero, en-têtes,
 * rangées photo+texte, cartes à icône, bandeau CTA, FAQ, équipe).
 * ================================================================== */

/* hero compact des pages internes */
.achii-hero-page { position: relative; overflow: hidden; }
.achii-hero-page__crumbs a, .achii-hero-page__crumbs span { color: inherit; text-decoration: none; font-family: 'Open Sans', sans-serif; }
.achii-hero-page__crumbs a:hover { text-decoration: underline; }
.achii-hero-page__crumbs .achii-crumbs__sep { margin: 0 8px; opacity: .6; }
.achii-hero-page__eyebrow .elementor-heading-title { letter-spacing: 1.6px; text-transform: uppercase; }
.achii-hero-page__title .elementor-heading-title { margin: 0; }
.achii-hero-page__subtitle p { margin: 0; }

/* en-tête de section (eyebrow orange + titre navy + description) */
.achii-eyebrow .elementor-heading-title { letter-spacing: 1.6px; text-transform: uppercase; font: 700 13px/1 'Open Sans', sans-serif !important; }
.achii-section-header--center .elementor-widget-container { text-align: center; }
.achii-section-desc p { margin: 0; }

/* boutons partagés */
.achii-btn .elementor-button { display: inline-flex; align-items: center; justify-content: center; letter-spacing: 1px; text-transform: uppercase; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.achii-btn .elementor-button:hover { transform: translateY(-1px); }

/* rangée photo + texte — mise en page/fond portés par ces classes statiques (voir
   commentaire dans media_text_row(), class-page-kit.php) : indispensable pour
   l'usage en widget dynamique, sans effet sur l'usage en page sauvegardée. */
.achii-media-row-band--tint { background: #EAF3F8 !important; }
.achii-media-row-band--soft { background: #F5F7F9 !important; }
.achii-media-row-band--white { background: #FFFFFF !important; }
.achii-media-row { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; }
.achii-media-row.e-con-boxed > .e-con-inner { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; gap: 60px !important; }
.achii-media-row__col--media { flex: 0 0 calc(46% - 32.4px) !important; max-width: calc(46% - 32.4px) !important; }
.achii-media-row__col--text { flex: 0 0 calc(54% - 27.6px) !important; max-width: calc(54% - 27.6px) !important; }
@media (max-width: 1024px) {
	.achii-media-row { flex-direction: column !important; }
	.achii-media-row.e-con-boxed > .e-con-inner { flex-direction: column !important; }
	.achii-media-row__col--media, .achii-media-row__col--text { flex-basis: 100% !important; max-width: 100% !important; }
}
.achii-media-row__img img { width: 100%; height: auto; aspect-ratio: 4 / 3.1; object-fit: cover; border-radius: 16px; display: block; box-shadow: 0 18px 44px rgba(22, 59, 101, .16); }
.achii-media-row__img--fallback { border-radius: 16px; }
.achii-media-row__title .elementor-heading-title { font: 700 28px/1.3 'Montserrat', sans-serif !important; margin: 0 !important; }
.achii-media-row__p p { font: 400 16px/1.7 'Open Sans', sans-serif !important; margin: 0; }
@media (max-width: 1024px) { .achii-media-row__title .elementor-heading-title { font-size: 25px !important; } }
@media (max-width: 767px)  { .achii-media-row__title .elementor-heading-title { font-size: 22px !important; } }
.achii-media-row__bullets .elementor-icon-list-item { margin-bottom: 4px; }
.achii-media-row__bullets .elementor-icon-list-icon i { color: #E88935; }

/* cartes à icône (piliers / valeurs / services) : largeur explicite pour 3 par ligne, sans
   compter sur le calcul auto d'Elementor (peu fiable quand la grille est en "boxed"). */
.achii-grid .achii-icon-card { flex: 0 0 calc(33.333% - 18.67px) !important; max-width: calc(33.333% - 18.67px) !important; min-width: 0; }
@media (max-width: 1024px) { .achii-grid:not(.achii-grid--row) .achii-icon-card { flex-basis: calc(50% - 14px) !important; max-width: calc(50% - 14px) !important; } }
@media (max-width: 767px)  { .achii-grid:not(.achii-grid--row) .achii-icon-card { flex-basis: 100% !important; max-width: 100% !important; } }
/* variante "une seule ligne, toujours" : reste à 3 colonnes à toutes les tailles (le gap
   réel appliqué est 28px, comme .achii-grid, quelle que soit la valeur passée en PHP —
   les grilles "boxed" ne compilent pas ce réglage de façon fiable). */
.achii-grid--row .achii-icon-card { flex-basis: calc(33.333% - 18.67px) !important; max-width: calc(33.333% - 18.67px) !important; }
.achii-icon-card {
	background: #fff !important; border-radius: 14px !important; box-shadow: 0 2px 14px rgba(22, 59, 101, .08) !important;
	align-items: center !important; text-align: center !important;
	transition: transform .3s ease, box-shadow .3s ease;
}
.achii-icon-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(22, 59, 101, .14) !important; }
.achii-icon-card__chip { margin-bottom: 16px; }
.achii-icon-card__chip .elementor-icon { width: 52px; height: 52px; background: #FDF0E4 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.achii-icon-card__chip .elementor-icon i { font-size: 22px !important; line-height: 1 !important; color: #E88935 !important; }
.achii-icon-card__title .elementor-heading-title { font: 700 18px/1.35 'Montserrat', sans-serif !important; color: #163B65 !important; margin: 0 0 8px !important; }
.achii-icon-card__text p { font: 400 14.5px/1.6 'Open Sans', sans-serif !important; color: #6A7686 !important; margin: 0; }
@media (max-width: 1024px) { .achii-icon-card__title .elementor-heading-title { font-size: 17px !important; } }
.achii-icon-card__cta { margin-top: 16px !important; }
.achii-icon-card__cta .elementor-button { padding: 0 !important; background: transparent !important; border: 0 !important; color: #E88935 !important; font: 700 13px/1 'Montserrat', sans-serif !important; letter-spacing: 1px; text-transform: uppercase; }
.achii-icon-card__cta .elementor-button:hover { color: #163B65 !important; }

/* bandeau CTA plein largeur */
.achii-cta-banner .elementor-heading-title { margin: 0; }
.achii-cta-banner__sub p { margin: 0; }

/* FAQ (widget Accordion natif) */
.achii-faq .elementor-accordion-item { border: 1px solid #E3EAF0 !important; border-radius: 10px !important; margin-bottom: 12px; overflow: hidden; }
/* le titre par défaut d'Elementor flotte l'icône (float:left) : sur un titre qui passe à la
   ligne, le texte de la 2e ligne repasse SOUS l'icône. On repasse en flex pour que l'icône
   et le texte restent alignés côte à côte quel que soit le nombre de lignes. */
.achii-faq .elementor-tab-title { display: flex !important; align-items: flex-start !important; gap: 12px; padding: 18px 22px !important; background: #fff; cursor: pointer; }
.achii-faq .elementor-tab-title .elementor-accordion-icon { float: none !important; width: auto !important; flex: 0 0 auto; margin-top: 2px; }
.achii-faq .elementor-accordion-title {
	flex: 1 1 auto; min-width: 0; color: #163B65 !important; font-weight: 700 !important;
	font-family: 'Montserrat', sans-serif !important; font-size: 16px !important; line-height: 1.4 !important; margin: 0 !important;
}
.achii-faq .elementor-tab-content {
	padding: 0 22px 20px !important; color: #273444;
	font-family: 'Open Sans', sans-serif !important; font-size: 15px !important; line-height: 1.65 !important;
}
.achii-faq .elementor-tab-content p { margin: 0; }
@media (max-width: 767px) { .achii-faq .elementor-accordion-title { font-size: 15px !important; } }
.achii-faq .elementor-accordion-icon, .achii-faq .elementor-accordion-icon-opened, .achii-faq .elementor-accordion-icon-closed { color: #E88935 !important; font-size: 16px !important; }
.achii-faq .elementor-active .elementor-tab-title { border-bottom: 1px solid #E3EAF0; }

/* équipe */
/* la grille de gouvernance est un widget dynamique (rendu à la volée, sans CSS compilée) :
   sa largeur de carte vit ici, comme .achii-grid > .achii-card pour les événements/articles. */
.achii-grid .achii-team-card {
	/* le fond réel appliqué par .achii-grid est 28px (valeur fixe, partagée par toutes les
	   grilles dynamiques) : le calcul doit correspondre à CE gap, pas à celui passé en PHP
	   (26px), sans quoi la 3e carte déborde de quelques pixels et repasse à la ligne. */
	flex: 0 0 calc(33.333% - 18.67px) !important; max-width: calc(33.333% - 18.67px) !important; min-width: 0;
	background: #fff !important; border-radius: 14px !important; overflow: hidden;
	box-shadow: 0 2px 14px rgba(22, 59, 101, .08) !important;
}
@media (max-width: 1024px) { .achii-grid .achii-team-card { flex-basis: calc(50% - 14px) !important; max-width: calc(50% - 14px) !important; } }
@media (max-width: 767px)  { .achii-grid .achii-team-card { flex-basis: 100% !important; max-width: 100% !important; } }
.achii-team-card__img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.achii-team-card__img--fallback { min-height: 260px; }
.achii-team-card__name, .achii-team-card__role, .achii-team-card__bio, .achii-team-card__socials { margin: 0 22px !important; width: auto !important; }
.achii-team-card__name { margin-top: 18px !important; }
.achii-team-card__name .elementor-heading-title { margin: 0; }
.achii-team-card__role { margin-top: 4px !important; margin-bottom: 12px !important; }
.achii-team-card__role .elementor-heading-title { letter-spacing: 1.2px; text-transform: uppercase; }
.achii-team-card__bio { margin-bottom: 14px !important; }
.achii-team-card__bio p { margin: 0; }
.achii-team-card__socials { margin-top: 4px !important; margin-bottom: 22px !important; }
.achii-team-card__socials .elementor-social-icon { width: 32px !important; height: 32px !important; line-height: 32px !important; font-size: 13px !important; margin: 0 6px 0 0 !important; transition: background .2s, color .2s; }
.achii-team-card__socials .elementor-social-icon:hover { background-color: #E88935 !important; color: #fff !important; }
/* dernier élément visible d'une carte (rôle si ni bio ni réseaux) garde l'espace du bas */
.achii-team-card__role:last-child { margin-bottom: 22px !important; }

@media (max-width: 767px) {
	.achii-hero-page { padding-left: 20px !important; padding-right: 20px !important; }
}

/* ---- Carrousel du hero d'accueil (widget natif "image-carousel") ---- */
.achii-hero-carousel { border-radius: 16px; overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, .28); }
.achii-hero-carousel .swiper,
.achii-hero-carousel .elementor-image-carousel-wrapper { border-radius: 16px; overflow: hidden; }
.achii-hero-carousel .swiper-slide { height: auto; }
.achii-hero-carousel img { width: 100% !important; height: auto !important; aspect-ratio: 6 / 5; object-fit: cover !important; display: block; }
@media (max-width: 1024px) { .achii-hero-carousel img { aspect-ratio: 16 / 10; } }
.achii-hero-carousel .swiper-button-next, .achii-hero-carousel .swiper-button-prev {
	width: 40px; height: 40px; margin-top: -20px; background: rgba(22, 59, 101, .55); border-radius: 50%; backdrop-filter: blur(2px);
	transition: background .2s;
}
.achii-hero-carousel .swiper-button-next:hover, .achii-hero-carousel .swiper-button-prev:hover { background: #E88935; }
.achii-hero-carousel .swiper-button-next svg, .achii-hero-carousel .swiper-button-prev svg { width: 14px; height: 14px; fill: #fff; }
.achii-hero-carousel .swiper-pagination { bottom: 16px !important; }
.achii-hero-carousel .swiper-pagination-bullet { width: 8px; height: 8px; background: #fff; opacity: .55; }
.achii-hero-carousel .swiper-pagination-bullet-active { opacity: 1; background: #E88935; width: 22px; border-radius: 4px; transition: width .25s; }

/* ---- Hero d'accueil en diaporama plein écran (fond natif "Slideshow" du Container) ---- */
.achii-hero--slideshow { position: relative; }
.achii-hero--slideshow > .elementor-background-slideshow,
.achii-hero--slideshow > .e-con-inner > .elementor-background-slideshow { z-index: 0; }
.achii-hero--slideshow > .e-con-inner { position: relative; z-index: 1; }

/* ---- Cartes à icône forcées sur une seule ligne (achii-grid--row) ---- */
.achii-grid--row { flex-wrap: nowrap !important; }
.achii-icon-card--row { padding: 22px 16px !important; }
.achii-icon-card--row .achii-icon-card__chip { margin-bottom: 10px; }
.achii-icon-card--row .achii-icon-card__chip .elementor-icon { width: 40px; height: 40px; }
.achii-icon-card--row .achii-icon-card__chip .elementor-icon i { font-size: 18px !important; }
.achii-icon-card--row .achii-icon-card__title .elementor-heading-title { font-size: 15px !important; line-height: 1.3 !important; }
.achii-icon-card--row .achii-icon-card__text { display: none; }
@media (min-width: 601px) {
	.achii-icon-card--row .achii-icon-card__text { display: block; }
	.achii-icon-card--row .achii-icon-card__text p { font-size: 12.5px !important; line-height: 1.5 !important; }
}
@media (min-width: 1025px) {
	.achii-icon-card--row { padding: 30px 26px !important; }
	.achii-icon-card--row .achii-icon-card__chip .elementor-icon { width: 52px; height: 52px; }
	.achii-icon-card--row .achii-icon-card__title .elementor-heading-title { font-size: 18px !important; }
	.achii-icon-card--row .achii-icon-card__text p { font-size: 14.5px !important; line-height: 1.6 !important; }
}

/* ---- Bande parallaxe (fond fixe, native CSS background-attachment:fixed) ---- */
.achii-parallax { position: relative; }
.achii-parallax .elementor-heading-title { margin: 0; }

/* ---- Galerie photo (widget natif "image-gallery") ---- */
.achii-gallery .gallery-item img {
	border-radius: 10px;
	box-shadow: 0 2px 14px rgba(22,59,101,0.12);
	transition: transform .35s ease, box-shadow .35s ease;
}
.achii-gallery .gallery-item img:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(22,59,101,0.18);
}

/* ---- Grille de logos partenaires (widget dynamique achii-partners-grid) ---- */
.achii-partners-grid { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; justify-content: center !important; gap: 40px !important; }
.achii-partners-grid.e-con-boxed > .e-con-inner { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; justify-content: center !important; gap: 40px !important; }
.achii-partner-cell { flex: 0 0 calc(16.66% - 33.3px) !important; max-width: calc(16.66% - 33.3px) !important; }
@media (max-width: 1024px) { .achii-partner-cell { flex-basis: calc(33.33% - 26.7px) !important; max-width: calc(33.33% - 26.7px) !important; } }
@media (max-width: 600px)  { .achii-partner-cell { flex-basis: calc(50% - 20px) !important; max-width: calc(50% - 20px) !important; } }

/* ---- Bouton retour en haut ---- */
.achii-back-to-top {
	position: fixed; right: 40px; bottom: 50px; z-index: 999;
	width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
	background: #163B65; color: #FFFFFF; font-size: 15px; line-height: 1;
	cursor: pointer; box-shadow: 0 6px 18px rgba(22,59,101,0.28);
	opacity: 0; visibility: hidden; transform: translateY(10px);
	transition: opacity .25s ease, transform .25s ease, background .2s ease, visibility .25s;
}
.achii-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.achii-back-to-top:hover { background: #E88935; }
@media (max-width: 600px) { .achii-back-to-top { right: 18px; bottom: 18px; width: 40px; height: 40px; } }

/* ---- Liens du footer : curseur et retour visuel au survol ---- */
/* #colophon (landmark du footer Astra) plutôt qu'une classe Elementor : les IDs des widgets
   Elementor du footer diffèrent d'un environnement à l'autre (constaté entre local et prod),
   #colophon est le seul repère stable. Pas de couleur fixe (le fond du footer peut être
   clair ou sombre selon l'environnement) : juste un signal de survol qui marche partout. */
#colophon a { cursor: pointer; transition: opacity .2s ease, text-decoration-color .2s ease; }
#colophon a:hover, #colophon a:focus { opacity: .72; text-decoration: underline; }
