/* ==========================================================================
   Univers des Compétences — styles complémentaires à theme.json
   Titres : Source Serif 4 · Texte : Source Sans 3
   ========================================================================== */

:root {
	--udc-ink: var(--wp--preset--color--ink);
	--udc-ink-soft: var(--wp--preset--color--ink-soft);
	--udc-muted: var(--wp--preset--color--muted);
	--udc-line: var(--wp--preset--color--line);
	--udc-paper: var(--wp--preset--color--paper);
	--udc-white: #fff;
	--udc-cyan: var(--wp--preset--color--cyan);
	--udc-cyan-deep: var(--wp--preset--color--cyan-deep);
	--udc-wash: var(--wp--preset--color--cyan-wash);
	--udc-night: var(--wp--preset--color--night);
	--udc-serif: var(--wp--preset--font-family--display);
	--udc-sans: var(--wp--preset--font-family--body);
	--udc-radius: 3px;
	--udc-gap: clamp(1.25rem, 3vw, 2.5rem);
	--udc-pad-lg: clamp(4.5rem, 8vw, 7rem);
	--udc-pad-md: clamp(3.75rem, 7vw, 5.5rem);
	--udc-pad-sm: clamp(3rem, 5vw, 4rem);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--udc-cyan); color: var(--udc-ink); }
:where(a) { text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid var(--udc-cyan-deep); outline-offset: 3px; }
img { height: auto; max-width: 100%; }
[id] { scroll-margin-top: 120px; }
.wp-block-post-content > * + * { margin-block-start: 0; }

/* Titres : serif pour H1/H2, sans pour les niveaux inférieurs. */
h1, h2 { text-wrap: balance; }
h3, h4, h5, h6 { font-family: var(--udc-sans); font-weight: 700; letter-spacing: 0; }
p { text-wrap: pretty; }

/* --- Sections : rythme variable ------------------------------------------ */
.udc-section { padding-block: var(--udc-pad-md) !important; margin-block: 0 !important; }
.udc-section.is-lg { padding-block: var(--udc-pad-lg) !important; }
.udc-section.is-sm { padding-block: var(--udc-pad-sm) !important; }
.udc-section-tint { background: var(--udc-white); border-block: 1px solid var(--udc-line); }
.udc-band { color: rgba(255, 255, 255, .86); }
.udc-band h2, .udc-band h3 { color: #fff; }
.udc-section-title { margin-bottom: 1.5rem; }
.udc-section > h2 + p, .udc-section > .wp-block-heading + .wp-block-paragraph { max-width: 62ch; }

/* --- Libellés de section -------------------------------------------------- */
.is-style-udc-eyebrow {
	font-family: var(--udc-sans);
	font-size: 0.9375rem !important;
	font-weight: 600;
	color: var(--udc-cyan-deep);
	margin-top: 0 !important;
	margin-bottom: 0.75rem !important;
	letter-spacing: 0;
	text-transform: none;
}
.udc-band .is-style-udc-eyebrow, .udc-dark .is-style-udc-eyebrow { color: #7FCBEE; }
.udc-num { font-size: 0.9375rem !important; font-weight: 600; color: var(--udc-cyan-deep); margin: 0; }
.udc-dark .udc-num, .udc-band .udc-num { color: #7FCBEE; }
.udc-lead { max-width: 62ch; color: var(--udc-ink-soft); }
.udc-band .udc-lead, .udc-dark .udc-lead { color: rgba(255, 255, 255, .8); }

/* --- Boutons ------------------------------------------------------------- */
.wp-block-button__link {
	min-height: 52px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.is-style-udc-ghost .wp-block-button__link { background: transparent !important; color: var(--udc-ink) !important; border-color: var(--udc-ink) !important; }
.is-style-udc-ghost .wp-block-button__link:hover { background: var(--udc-ink) !important; color: #fff !important; }
.udc-dark .is-style-udc-ghost .wp-block-button__link,
.udc-band .is-style-udc-ghost .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .6) !important; }
.udc-dark .is-style-udc-ghost .wp-block-button__link:hover,
.udc-band .is-style-udc-ghost .wp-block-button__link:hover { background: #fff !important; color: var(--udc-ink) !important; }
.is-style-udc-link .wp-block-button__link {
	min-height: 44px;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 2px solid var(--udc-cyan) !important;
	border-radius: 0;
	padding: 0.2rem 0 !important;
	color: var(--udc-ink) !important;
	justify-content: flex-start;
	text-align: left;
}
.is-style-udc-link .wp-block-button__link::after { content: "\00a0→"; }
.udc-dark .is-style-udc-link .wp-block-button__link, .udc-band .is-style-udc-link .wp-block-button__link { color: #fff !important; }

/* --- En-tête ------------------------------------------------------------- */
.udc-header { position: sticky; top: 0; z-index: 50; background: var(--udc-paper); border-bottom: 1px solid var(--udc-line); }
.admin-bar .udc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .udc-header { top: 0; } }
.udc-topbar { font-size: 0.9375rem; color: var(--udc-ink-soft); border-bottom: 1px solid var(--udc-line); }
.udc-topbar .wp-block-group { justify-content: flex-end !important; }
.udc-topbar a { color: inherit; text-decoration: none; }
.udc-topbar a:hover { color: var(--udc-ink); text-decoration: underline; }
.udc-brand { gap: 0.75rem !important; }
.udc-brand figure { flex: none; width: 44px; margin: 0; }
.udc-brand img { width: 44px; display: block; }
.udc-brand-name { font-family: var(--udc-serif); font-weight: 700; font-size: 1.1875rem; line-height: 1.1; margin: 0; }
.udc-brand-name a { color: var(--udc-ink); text-decoration: none; }
.udc-brand-name small { display: block; font-family: var(--udc-sans); font-weight: 400; font-size: 0.875rem; color: var(--udc-muted); margin-top: 0.15rem; }
.udc-header .wp-block-navigation { font-size: 1rem; }
.udc-header .wp-block-navigation__container { gap: 1.5rem; }
.udc-header .wp-block-navigation-item__content { text-decoration: none; padding-block: 0.5rem; white-space: nowrap; }
.udc-header .wp-block-navigation-item__content:hover { color: var(--udc-cyan-deep); }
.udc-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--udc-line) !important;
	border-radius: var(--udc-radius);
	padding: 0.4rem 0 !important;
	min-width: 260px !important;
	background: #fff;
	box-shadow: 0 8px 24px rgba(14, 34, 51, .08);
}
.udc-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 1.1rem !important; }
.udc-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--udc-wash); color: var(--udc-ink); }
.udc-header .udc-header-cta .wp-block-button__link { min-height: 46px; }
@media (min-width: 600px) and (max-width: 1180px) {
	.udc-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.udc-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 1180px) { .udc-header .udc-header-cta { display: none !important; } }
@media (max-width: 600px) { .udc-topbar { display: none !important; } .udc-brand-name small { display: none; } }

/* Menu mobile ouvert. */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem 1.25rem 2rem !important; background: var(--udc-paper) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.4rem !important; padding-top: 1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.125rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; background: transparent !important; min-width: 0 !important; padding: 0.2rem 0 0.9rem 1rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { font-size: 1.0625rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.4rem 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .has-child > .wp-block-navigation-item__content { font-weight: 600; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }

/* --- Héros --------------------------------------------------------------- */
.udc-hero { padding-block: clamp(3.5rem, 7vw, 6.5rem) clamp(3rem, 6vw, 5rem) !important; margin: 0 !important; }
.udc-hero-page { border-bottom: 1px solid var(--udc-line); }
.udc-hero-page h1 { max-width: 20ch; }
.udc-hero-home h1 { max-width: 13ch; margin: 0; }
.udc-hero-home .udc-hero-side { align-self: end; }
.udc-hero-home .udc-hero-side .wp-block-buttons { margin-top: 1.75rem; gap: 0.75rem; }

/* Bandeau de confiance sous le héros. */
.udc-trust { border-block: 1px solid var(--udc-line); background: var(--udc-white); padding-block: 1.75rem !important; margin: 0 !important; }
.udc-trust-row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr); gap: 0; align-items: center; }
.udc-trust-row > * { margin: 0 !important; padding: 0.25rem clamp(1rem, 2vw, 2rem); border-left: 1px solid var(--udc-line); }
.udc-trust-row > *:first-child { border-left: 0; padding-left: 0; }
.udc-trust-n { font-family: var(--udc-serif); font-weight: 700; font-size: clamp(1.75rem, 3vw, 2.375rem); line-height: 1.05; color: var(--udc-ink); display: block; }
.udc-trust-l { font-size: 0.9375rem; color: var(--udc-ink-soft); display: block; margin-top: 0.25rem; }
.udc-trust-badge { display: flex !important; align-items: center; gap: 1rem; }
.udc-trust-badge img { width: 160px; flex: none; }
@media (max-width: 900px) {
	.udc-trust-row { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.25rem; }
	.udc-trust-badge { grid-column: 1 / -1; border-left: 0 !important; padding-left: 0 !important; border-top: 1px solid var(--udc-line) !important; padding-top: 1.25rem !important; }
}
@media (max-width: 560px) {
	.udc-trust-row { grid-template-columns: 1fr 1fr; }
	.udc-trust-row > *:nth-child(3) { border-left: 0; padding-left: 0; }
}

/* --- Trois points de départ ---------------------------------------------- */
.udc-paths { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--udc-ink); margin-top: 2.5rem !important; }
.udc-path { position: relative; padding: 2rem clamp(1.25rem, 2.5vw, 2.25rem) 2.25rem !important; margin: 0 !important; border-left: 1px solid var(--udc-line); transition: background-color .15s ease; }
.udc-path:first-child { border-left: 0; padding-left: 0 !important; }
.udc-path:hover { background: var(--udc-white); }
.udc-path-n { font-family: var(--udc-serif); font-weight: 600; font-size: 2.75rem; line-height: 1; color: var(--udc-cyan-deep); margin: 0 0 1rem !important; }
.udc-path h3 { font-size: clamp(1.5rem, 2.2vw, 1.75rem); line-height: 1.2; margin: 0.35rem 0 0.75rem; }
.udc-path p { margin: 0 0 1rem; }
.udc-path .wp-block-buttons { margin-top: 0.5rem; }
/* Toute la zone est cliquable. */
.udc-path .is-style-udc-link .wp-block-button__link::before { content: ""; position: absolute; inset: 0; }
.udc-path:focus-within { outline: 3px solid var(--udc-cyan-deep); outline-offset: -3px; }
.udc-path .wp-block-button__link:focus-visible { outline: none; }
@media (max-width: 860px) {
	.udc-paths { grid-template-columns: 1fr; }
	.udc-path { border-left: 0; border-top: 1px solid var(--udc-line); padding-left: 0 !important; padding-right: 0 !important; }
	.udc-path:first-child { border-top: 0; }
}

/* --- Listes éditoriales (remplacent les grilles de cartes) --------------- */
.udc-list { display: grid !important; gap: 0 var(--udc-gap); margin-top: 2rem !important; }
.udc-list.cols-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.udc-list.cols-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.udc-list-item { border-top: 1px solid var(--udc-ink); padding: 1.35rem 0 1.75rem !important; margin: 0 !important; }
.udc-band .udc-list-item, .udc-dark .udc-list-item { border-color: rgba(255, 255, 255, .35); }
.udc-list-item h3 { font-size: clamp(1.375rem, 2vw, 1.625rem); margin: 0 0 0.6rem; }
.udc-list-item h3 a { color: inherit; text-decoration: none; }
.udc-list-item h3 a:hover { color: var(--udc-cyan-deep); text-decoration: underline; }
.udc-list-item p { margin: 0 0 0.75rem; }
.udc-list-item .has-muted-color { color: var(--udc-ink-soft) !important; }

/* --- Grilles (conservées pour les offres) --------------------------------- */
.udc-grid { display: grid !important; gap: var(--udc-gap); }
.udc-grid.cols-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.udc-grid.cols-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
.udc-grid > * { margin: 0 !important; }

/* --- Cartes (offres, formulaire) ------------------------------------------ */
.is-style-udc-card { background: var(--udc-white); border: 1px solid var(--udc-line); border-radius: var(--udc-radius); padding: clamp(1.5rem, 3vw, 2.25rem); }
.is-style-udc-card > * + * { margin-block-start: 0.9rem; }
.udc-grid > .is-style-udc-card, .wp-block-columns .is-style-udc-card { height: 100%; display: flex; flex-direction: column; }
.is-style-udc-card .wp-block-buttons { margin-top: auto; padding-top: 1rem; }
.udc-dark .is-style-udc-card { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .16); }

/* --- Listes à coches ------------------------------------------------------ */
.is-style-udc-check { list-style: none; padding-left: 0; }
.is-style-udc-check li { position: relative; padding: 0.55rem 0 0.55rem 1.85rem; border-bottom: 1px solid var(--udc-line); }
.is-style-udc-check li:last-child { border-bottom: 0; }
.is-style-udc-check li::before { content: ""; position: absolute; left: 0.1rem; top: 1.05rem; width: 0.75rem; height: 0.4rem; border-left: 2px solid var(--udc-cyan-deep); border-bottom: 2px solid var(--udc-cyan-deep); transform: rotate(-45deg); }
.udc-dark .is-style-udc-check li, .udc-band .is-style-udc-check li { border-color: rgba(255, 255, 255, .14); }
.udc-dark .is-style-udc-check li::before, .udc-band .is-style-udc-check li::before { border-color: #7FCBEE; }

/* --- Offres PME ----------------------------------------------------------- */
.udc-offer .udc-price { font-family: var(--udc-serif); font-weight: 700; font-size: 2.25rem; line-height: 1.1; margin: 0; }
.udc-offer .udc-price small { font-family: var(--udc-sans); font-size: 1rem; font-weight: 400; color: var(--udc-muted); }
.udc-offer .udc-from { font-size: 0.9375rem !important; color: var(--udc-muted); margin: 0; }
.udc-offer.is-featured { border: 2px solid var(--udc-ink) !important; }
.udc-badge { display: inline-block; align-self: flex-start; font-size: 0.9375rem !important; font-weight: 600; background: var(--udc-ink); color: #fff; padding: 0.3rem 0.65rem; border-radius: 2px; margin: 0 !important; }
.udc-for { color: var(--udc-ink-soft); border-top: 1px solid var(--udc-line); padding-top: 1rem; }

/* Tableau de services (prix alignés à droite). */
.udc-rows { border-top: 2px solid var(--udc-ink); }
.udc-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--udc-line); padding: 1.1rem 0 !important; margin: 0 !important; }
.udc-row > * { margin: 0 !important; }
.udc-row .udc-row-name { font-weight: 600; font-size: 1.125rem; }
.udc-row .udc-row-name span { font-size: 1rem !important; }
.udc-row .udc-row-price { font-size: 1rem; color: var(--udc-ink-soft); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .udc-row { flex-wrap: wrap !important; } .udc-row .udc-row-price { white-space: normal; } }

/* --- Étapes et méthode ---------------------------------------------------- */
.udc-step { border-top: 1px solid var(--udc-ink); padding-top: 1.1rem !important; }
.udc-step h3, .udc-step h4 { margin: 0.35rem 0 0.5rem; }
.udc-dark .udc-step, .udc-band .udc-step { border-color: rgba(255, 255, 255, .35); }
.udc-steps-list { list-style: none; counter-reset: s; padding: 0; margin: 0; border-top: 1px solid var(--udc-ink); }
.udc-steps-list li { counter-increment: s; position: relative; padding: 1.1rem 0 1.1rem 3rem; border-bottom: 1px solid var(--udc-line); }
.udc-steps-list li::before { content: counter(s); position: absolute; left: 0; top: 0.95rem; font-family: var(--udc-serif); font-weight: 600; font-size: 1.5rem; color: var(--udc-cyan-deep); }

/* Colonnes « titre / contenu ». */
.udc-split { gap: var(--udc-gap) !important; }
.udc-statement { font-family: var(--udc-serif); font-size: clamp(1.375rem, 2.2vw, 1.75rem); line-height: 1.4; font-weight: 600; }
.udc-person { font-size: 1.125rem; }

/* --- Prochaines sessions ------------------------------------------------- */
.udc-sessions { list-style: none; padding: 0; margin: 2rem 0 0; border-top: 2px solid var(--udc-ink); }
.udc-session { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto; grid-template-areas: "cat title status" "cat meta status"; column-gap: 1.75rem; row-gap: 0.25rem; padding: 1.25rem 0; border-bottom: 1px solid var(--udc-line); align-items: start; }
.udc-session > * { margin: 0; }
.udc-session-cat { grid-area: cat; font-size: 0.9375rem; font-weight: 600; color: var(--udc-cyan-deep); padding-top: 0.2rem; }
.udc-session-title { grid-area: title; font-size: 1.25rem; line-height: 1.35; }
.udc-session-title a { color: var(--udc-ink); text-decoration: none; }
.udc-session-title a:hover { color: var(--udc-cyan-deep); text-decoration: underline; }
.udc-session-meta { grid-area: meta; font-size: 1rem; color: var(--udc-ink-soft); }
.udc-session-status { grid-area: status; }
@media (max-width: 760px) {
	.udc-session { grid-template-columns: 1fr; grid-template-areas: "cat" "title" "meta" "status"; }
	.udc-session-status { margin-top: 0.4rem !important; }
}

/* Statut d'une session : étiquette discrète, pas de pastille. */
.udc-statut { display: inline-block; font-size: 0.9375rem; font-weight: 600; line-height: 1.3; padding: 0.3rem 0.6rem; border-radius: 2px; white-space: nowrap; }
.udc-statut.is-ouvert { background: #E3F1E8; color: #1D5E3A; }
.udc-statut.is-terminee { background: #ECE9E2; color: #4A525C; }
.udc-statut.is-complet, .udc-statut.is-reporte { background: #FBEEDB; color: #7A4306; }
.udc-statut.is-sur-demande { background: var(--udc-wash); color: var(--udc-cyan-deep); }

/* --- Catalogue ------------------------------------------------------------ */
.udc-formation-card { display: flex; flex-direction: column; gap: 0.6rem; }
.udc-formation-card > * { margin: 0 !important; }
.udc-formation-card .wp-block-post-title { font-family: var(--udc-sans); font-weight: 700; font-size: 1.1875rem; line-height: 1.35; }
.udc-formation-card .wp-block-post-title a { color: var(--udc-ink); text-decoration: none; }
.udc-formation-card .wp-block-post-title a:hover { color: var(--udc-cyan-deep); text-decoration: underline; }
.udc-formation-card .wp-block-post-terms { font-size: 0.9375rem; font-weight: 600; }
.udc-formation-card .wp-block-post-terms a { text-decoration: none; color: var(--udc-cyan-deep); }
.udc-formation-meta { font-size: 1rem; color: var(--udc-ink-soft); }
.udc-formation-card .udc-statut { align-self: flex-start; }
.udc-formation-card .wp-block-read-more { margin-top: auto !important; padding-top: 0.5rem; font-weight: 600; color: var(--udc-ink); text-decoration: none; border-bottom: 2px solid var(--udc-cyan); align-self: flex-start; }
.udc-formation-card .wp-block-read-more::after { content: "\00a0→"; }
.wp-block-tag-cloud a { display: inline-block; font-size: 0.9375rem !important; text-decoration: none; border: 1px solid var(--udc-line); border-radius: 2px; padding: 0.45rem 0.75rem; margin: 0 0.4rem 0.5rem 0; color: var(--udc-ink); background: #fff; }
.wp-block-tag-cloud a:hover { border-color: var(--udc-ink); }
.wp-block-search__input { border: 1px solid #BDB7AC !important; border-radius: var(--udc-radius) !important; padding: 0.8rem 1rem !important; background: #fff; font-size: 1.0625rem; min-height: 52px; }
.wp-block-search__button { margin-left: 0.5rem !important; min-height: 52px; }
.wp-block-query-pagination { font-size: 1rem; }
.wp-block-query-pagination a, .wp-block-query-pagination span { padding: 0.5rem 0.75rem; }

/* --- Fiche formation ------------------------------------------------------ */
.udc-facts { margin: 0; border-top: 1px solid var(--udc-ink); }
.udc-facts > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--udc-line); }
.udc-facts dt { font-size: 0.9375rem; color: var(--udc-muted); }
.udc-facts dd { margin: 0; font-weight: 600; text-align: right; }
.udc-fiche-section { margin-top: 2.5rem; }
.udc-fiche-section h2 { font-size: clamp(1.625rem, 2.6vw, 2.125rem); margin-bottom: 0.75rem; }
.udc-fiche-section ul { padding-left: 1.2rem; }
.udc-fiche-section li { margin-bottom: 0.4rem; }
.udc-liees { margin-top: 3rem; border-top: 2px solid var(--udc-ink); padding-top: 1.5rem; }
.udc-liees h2 { font-size: 1.625rem; }
.udc-liees ul { list-style: none; padding: 0; margin: 0; }
.udc-liees li { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 0.8rem 0; border-bottom: 1px solid var(--udc-line); }
.udc-closed { font-weight: 600; margin: 0 0 0.75rem; }

/* --- Événements, réalisations, témoignages -------------------------------- */
.udc-events { list-style: none; padding: 0; margin: 1.5rem 0 0; border-top: 2px solid var(--udc-ink); }
.udc-event { display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); gap: 1.75rem; padding: 1.5rem 0; border-bottom: 1px solid var(--udc-line); }
.udc-event h3 { margin: 0 0 0.3rem; font-size: 1.375rem; }
.udc-event h3 a { color: var(--udc-ink); text-decoration: none; }
.udc-event-date { font-family: var(--udc-serif); font-weight: 600; font-size: 1.25rem; margin: 0; }
.udc-event-lieu { color: var(--udc-ink-soft); margin: 0 0 0.5rem; }
@media (max-width: 640px) { .udc-event { grid-template-columns: 1fr; gap: 0.4rem; } }
.udc-empty { font-size: 1.125rem; color: var(--udc-ink-soft); border-top: 2px solid var(--udc-ink); padding-top: 1.25rem; }
.udc-temoignages { display: grid; gap: var(--udc-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.udc-temoignage { margin: 0; border-top: 1px solid var(--udc-ink); padding-top: 1.25rem; }
.udc-temoignage blockquote { margin: 0 0 1rem; font-family: var(--udc-serif); font-size: 1.25rem; line-height: 1.5; }
.udc-temoignage figcaption { color: var(--udc-ink-soft); }
.udc-realisations { list-style: none; padding: 0; margin: 0; display: grid; gap: 0 var(--udc-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.udc-realisations li { border-top: 1px solid var(--udc-ink); padding: 1.25rem 0; }

/* --- Encadré, tableau, FAQ ------------------------------------------------ */
.udc-notice { border-left: 3px solid var(--udc-cyan-deep); background: var(--udc-wash); padding: 1.25rem 1.5rem !important; border-radius: 0 var(--udc-radius) var(--udc-radius) 0; }
.udc-notice p { margin: 0 0 0.5rem; }
.udc-notice .has-xs-font-size { font-size: 0.9375rem !important; color: var(--udc-ink-soft) !important; }
.udc-table { margin-top: 1.5rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.udc-table table { border-collapse: collapse; width: 100%; min-width: 600px; font-size: 1rem; }
.udc-table thead { border-bottom: 2px solid var(--udc-ink) !important; }
.udc-table th { font-size: 0.9375rem; font-weight: 600; color: var(--udc-ink-soft); text-align: left; padding: 0.75rem 0.6rem; border: 0; }
.udc-table td { padding: 1rem 0.6rem; border: 0; border-bottom: 1px solid var(--udc-line); font-variant-numeric: tabular-nums; }
.udc-table td:first-child { font-weight: 600; }
.udc-faq .wp-block-details { border-bottom: 1px solid var(--udc-line); padding: 1.2rem 0; margin: 0 !important; }
.udc-faq .wp-block-details:first-of-type { border-top: 2px solid var(--udc-ink); }
.udc-faq summary { font-weight: 600; font-size: 1.1875rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; min-height: 44px; align-items: center; }
.udc-faq summary::-webkit-details-marker { display: none; }
.udc-faq summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--udc-cyan-deep); transition: transform .2s ease; }
.udc-faq details[open] summary::after { transform: rotate(45deg); }
.udc-faq details > :not(summary) { color: var(--udc-ink-soft); margin-top: 0.6rem; max-width: 68ch; }

/* Sections sombres. */
.udc-dark { color: rgba(255, 255, 255, .86); }
.udc-dark h1, .udc-dark h2, .udc-dark h3, .udc-dark h4 { color: #fff; }
.udc-dark a:not(.wp-block-button__link), .udc-band a:not(.wp-block-button__link) { color: #9ED8F2; }
.udc-dark .has-muted-color, .udc-band .has-muted-color { color: rgba(255, 255, 255, .72) !important; }

/* --- Formulaires ---------------------------------------------------------- */
.wpcf7 form { display: grid; gap: 1.1rem; }
.wpcf7 .udc-form-row { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.wpcf7 label { display: block; font-size: 1rem; font-weight: 600; color: var(--udc-ink); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; margin-top: 0.4rem; font: inherit; font-weight: 400; font-size: 1.0625rem; color: var(--udc-ink);
	background: #fff; border: 1px solid #BDB7AC; border-radius: var(--udc-radius); padding: 0.8rem 0.9rem; min-height: 52px; box-sizing: border-box;
}
.wpcf7 textarea { min-height: 150px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: 3px solid var(--udc-cyan-deep); outline-offset: 1px; border-color: var(--udc-ink); }
.wpcf7 input[type="submit"] { justify-self: start; font: inherit; font-weight: 600; font-size: 1rem; background: var(--udc-cyan); color: var(--udc-ink); border: 1.5px solid var(--udc-cyan); border-radius: var(--udc-radius); padding: 0 1.75rem; min-height: 52px; cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--udc-ink); color: #fff; border-color: var(--udc-ink); }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance { font-size: 1rem; color: var(--udc-ink-soft); }
.wpcf7-acceptance input { width: 20px; height: 20px; margin-right: 0.5rem; vertical-align: -3px; }
.wpcf7-not-valid-tip { font-size: 0.9375rem; color: #A32020; margin-top: 0.35rem; }
.wpcf7 .wpcf7-response-output { margin: 0 !important; padding: 0.9rem 1rem !important; border-radius: var(--udc-radius); font-size: 1rem; }
.udc-form-note { font-size: 0.9375rem; color: var(--udc-muted); }

/* --- Articles -------------------------------------------------------------- */
.udc-post-card { border-top: 1px solid var(--udc-ink); padding-top: 1.25rem; }
.udc-post-card .wp-block-post-title { font-family: var(--udc-sans); font-weight: 700; }
.udc-post-card .wp-block-post-title a { color: var(--udc-ink); text-decoration: none; }
.udc-post-card .wp-block-post-title a:hover { color: var(--udc-cyan-deep); text-decoration: underline; }
.udc-post-card .wp-block-post-excerpt { font-size: 1rem; }
.udc-byline { font-size: 0.9375rem !important; color: var(--udc-ink-soft); }
.udc-byline .wp-block-post-date { display: inline; }

/* --- Pied de page ---------------------------------------------------------- */
.udc-footer { color: rgba(255, 255, 255, .8); font-size: 1rem; }
.udc-footer .udc-footer-h { font-size: 1rem !important; font-weight: 700 !important; color: #fff !important; margin-bottom: 0.9rem; }
.udc-footer ul { list-style: none; padding: 0; margin: 0; }
.udc-footer li { margin: 0 0 0.6rem; }
.udc-footer a { color: rgba(255, 255, 255, .9); text-decoration: none; }
.udc-footer a:hover { color: #9ED8F2; text-decoration: underline; }
.udc-footer .udc-footer-logo img { width: 56px; background: #fff; border-radius: 50%; padding: 4px; }
.udc-footer .udc-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .14); font-size: 0.875rem; color: rgba(255, 255, 255, .6); }
.udc-footer .udc-footer-bottom a { color: rgba(255, 255, 255, .75); }
.udc-footer .udc-ccmm { display: inline-block; background: #fff; padding: 0.6rem 0.8rem; border-radius: 2px; margin-top: 0.5rem; }
.udc-footer .udc-ccmm img { width: 180px; display: block; }
.udc-social { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.udc-social a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.9rem; border: 1px solid rgba(255, 255, 255, .28); border-radius: 2px; font-size: 0.9375rem; }
.udc-social a:hover { border-color: #9ED8F2; text-decoration: none; }

/* ==========================================================================
   Assistant
   ========================================================================== */
.udc-assist-launch {
	position: fixed; right: 1rem; bottom: 1rem; z-index: 9990;
	display: flex; align-items: center; gap: 0.6rem;
	background: var(--udc-night); color: #fff; border: 0; border-radius: 6px;
	padding: 0.5rem 1rem 0.5rem 0.5rem; min-height: 52px;
	font-family: var(--udc-sans); font-weight: 600; font-size: 1rem; cursor: pointer;
	box-shadow: 0 6px 18px rgba(14, 34, 51, .2);
}
.udc-assist-launch:focus-visible { outline: 3px solid var(--udc-cyan); outline-offset: 3px; }
.udc-assist-launch .udc-assist-dot { width: 36px; height: 36px; border-radius: 50%; background: #fff url("../img/udc-mark-160.png") center/72% no-repeat; flex: none; }
.udc-assist-launch[aria-expanded="true"] { display: none; }
html.has-modal-open .udc-assist-launch { display: none; }
body:has(.udc-consent) .udc-assist-launch { display: none; }
@media (max-width: 600px) {
	.udc-assist-launch { padding: 0.4rem; min-height: 52px; min-width: 52px; justify-content: center; }
	.udc-assist-launch .udc-assist-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	body { padding-bottom: 5rem; }
}

.udc-assist {
	position: fixed; right: clamp(0.5rem, 2.5vw, 1.5rem); bottom: clamp(0.5rem, 2.5vw, 1.5rem); z-index: 9991;
	width: min(400px, calc(100vw - 1rem)); height: min(620px, calc(100dvh - 1rem));
	background: #fff; border: 1px solid var(--udc-line); border-radius: 6px;
	box-shadow: 0 20px 50px rgba(14, 34, 51, .22); display: flex; flex-direction: column; overflow: hidden; font-size: 1rem;
}
.udc-assist[hidden] { display: none; }
.udc-assist-head { display: flex; align-items: center; gap: 0.7rem; padding: 0.9rem 1rem; background: var(--udc-night); color: #fff; }
.udc-assist-head img { width: 36px; height: 36px; background: #fff; border-radius: 50%; padding: 4px; box-sizing: border-box; }
.udc-assist-head strong { display: block; font-size: 1.0625rem; }
.udc-assist-head span { display: block; font-size: 0.875rem; color: rgba(255, 255, 255, .72); }
.udc-assist-close { margin-left: auto; background: none; border: 0; color: #fff; font-size: 1.75rem; line-height: 1; cursor: pointer; min-width: 44px; min-height: 44px; }
.udc-assist-log { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.6rem; background: var(--udc-paper); }
.udc-msg { max-width: 90%; padding: 0.7rem 0.9rem; border-radius: 6px; line-height: 1.5; }
.udc-msg.bot { background: #fff; border: 1px solid var(--udc-line); align-self: flex-start; }
.udc-msg.user { background: var(--udc-night); color: #fff; align-self: flex-end; }
.udc-msg a { color: var(--udc-cyan-deep); }
.udc-choices { display: flex; flex-direction: column; gap: 0.45rem; align-self: stretch; }
.udc-choice { text-align: left; background: #fff; border: 1px solid #C9C3B8; border-radius: 4px; padding: 0.7rem 0.85rem; min-height: 44px; font: inherit; font-size: 1rem; color: var(--udc-ink); cursor: pointer; text-decoration: none; }
.udc-choice:hover { border-color: var(--udc-ink); background: var(--udc-wash); }
.udc-choice.primary { background: var(--udc-cyan); border-color: var(--udc-cyan); font-weight: 600; }
.udc-choice.primary:hover { background: var(--udc-ink); border-color: var(--udc-ink); color: #fff; }
.udc-assist-foot { display: flex; gap: 0.4rem; padding: 0.7rem; border-top: 1px solid var(--udc-line); background: #fff; }
.udc-assist-foot input { flex: 1; font: inherit; font-size: 1rem; border: 1px solid #BDB7AC; border-radius: 4px; padding: 0.6rem 0.75rem; min-width: 0; min-height: 44px; }
.udc-assist-foot button { background: var(--udc-night); color: #fff; border: 0; border-radius: 4px; padding: 0 1rem; font: inherit; font-weight: 600; cursor: pointer; min-height: 44px; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Tableaux insérés dans le contenu (grilles tarifaires, extension Formations) : défilement horizontal sur mobile. */
@media (max-width: 781px) {
	.wp-block-post-content table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Accueil : titre dans une colonne de 58 %, taille plafonnée pour rester sur quatre ou cinq lignes. */
.udc-hero-home h1 { font-size: clamp(2.5rem, 4.4vw, 4.25rem); }

/* ==========================================================================
   Icônes linéaires : un seul jeu (trait 1,75, bouts arrondis), en masques SVG.
   Usage : class="udc-ico udc-i-<nom>" ; la couleur suit la propriété color.
   ========================================================================== */
:root {
	--i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
	--i-clipboard: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2M12 11h4M12 16h4M8 11h.01M8 16h.01'/%3E%3C/svg%3E");
	--i-wrench: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");
	--i-chart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18M18 17V9M13 17V5M8 17v-3'/%3E%3C/svg%3E");
	--i-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");
	--i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 10 5-10 5L2 7zM2 17l10 5 10-5M2 12l10 5 10-5'/%3E%3C/svg%3E");
	--i-monitor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E");
	--i-target: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E");
	--i-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	--i-presentation: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h20M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3M7 21l5-5 5 5'/%3E%3C/svg%3E");
	--i-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01'/%3E%3C/svg%3E");
	--i-share: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cpath d='m8.6 13.5 6.8 4M15.4 6.5l-6.8 4'/%3E%3C/svg%3E");
	--i-award: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.48 12.89 17 22l-5-3-5 3 1.52-9.11'/%3E%3C/svg%3E");
	--i-compass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16.24 7.76-2.12 6.36-6.36 2.12 2.12-6.36z'/%3E%3C/svg%3E");
	--i-cap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5zM6 12v5c3 3 9 3 12 0v-5M22 10v6'/%3E%3C/svg%3E");
	--i-trending: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.5 8.5-5-5L2 17M16 7h6v6'/%3E%3C/svg%3E");
	--i-message: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
	--i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E");
	--i-audit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2M9 14l2 2 4-4'/%3E%3C/svg%3E");
	--i-list: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E");
	--i-kanban: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M8 7v7M12 7v4M16 7v9'/%3E%3C/svg%3E");
	--i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
	--i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22z'/%3E%3C/svg%3E");
	--i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
	--i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
	--i-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.59 2.59A2 2 0 0 0 11.17 2H4a2 2 0 0 0-2 2v7.17a2 2 0 0 0 .59 1.42l8.7 8.7a2.43 2.43 0 0 0 3.42 0l6.58-6.58a2.43 2.43 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E");
	--i-banknote: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/svg%3E");
	--i-folder: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z'/%3E%3C/svg%3E");
	--i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
	--i-briefcase: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");
	--i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1zM9 12l2 2 4-4'/%3E%3C/svg%3E");
	--i-cpu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Crect x='9' y='9' width='6' height='6'/%3E%3Cpath d='M15 2v2M15 20v2M2 15h2M2 9h2M20 15h2M20 9h2M9 2v2M9 20v2'/%3E%3C/svg%3E");
	--i-landmark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 22h18M6 18v-7M10 18v-7M14 18v-7M18 18v-7M12 2l8 5H4z'/%3E%3C/svg%3E");
	--i-sliders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 4h-7M10 4H3M21 12h-9M8 12H3M21 20h-5M12 20H3M14 2v4M8 10v4M16 18v4'/%3E%3C/svg%3E");
	--i-linechart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18M19 9l-5 5-4-4-3 3'/%3E%3C/svg%3E");
	--i-book: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2zM22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
	--i-bulb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5M9 18h6M10 22h4'/%3E%3C/svg%3E");
	--i-flag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7'/%3E%3C/svg%3E");
}
.udc-i-search { --udc-i: var(--i-search); }
.udc-i-clipboard { --udc-i: var(--i-clipboard); }
.udc-i-wrench { --udc-i: var(--i-wrench); }
.udc-i-chart { --udc-i: var(--i-chart); }
.udc-i-globe { --udc-i: var(--i-globe); }
.udc-i-layers { --udc-i: var(--i-layers); }
.udc-i-monitor, .udc-facts > .is-format { --udc-i: var(--i-monitor); }
.udc-i-target { --udc-i: var(--i-target); }
.udc-i-users, .udc-facts > .is-places { --udc-i: var(--i-users); }
.udc-i-presentation { --udc-i: var(--i-presentation); }
.udc-i-building { --udc-i: var(--i-building); }
.udc-i-share { --udc-i: var(--i-share); }
.udc-i-award { --udc-i: var(--i-award); }
.udc-i-compass { --udc-i: var(--i-compass); }
.udc-i-cap { --udc-i: var(--i-cap); }
.udc-i-trending { --udc-i: var(--i-trending); }
.udc-i-message { --udc-i: var(--i-message); }
.udc-i-file { --udc-i: var(--i-file); }
.udc-i-audit { --udc-i: var(--i-audit); }
.udc-i-list { --udc-i: var(--i-list); }
.udc-i-kanban { --udc-i: var(--i-kanban); }
.udc-i-phone { --udc-i: var(--i-phone); }
.udc-i-mail { --udc-i: var(--i-mail); }
.udc-i-chat { --udc-i: var(--i-chat); }
.udc-i-pin, .udc-facts > .is-lieu { --udc-i: var(--i-pin); }
.udc-i-calendar, .udc-facts > .is-dates { --udc-i: var(--i-calendar); }
.udc-i-clock, .udc-facts > .is-duree { --udc-i: var(--i-clock); }
.udc-i-tag, .udc-facts > .is-code { --udc-i: var(--i-tag); }
.udc-i-banknote, .udc-facts > .is-tarif { --udc-i: var(--i-banknote); }
.udc-i-folder, .udc-facts > .is-categorie { --udc-i: var(--i-folder); }
.udc-i-check, .udc-facts > .is-statut { --udc-i: var(--i-check); }
.udc-i-user, .udc-facts > .is-formateur { --udc-i: var(--i-user); }
.udc-i-briefcase { --udc-i: var(--i-briefcase); }
.udc-i-shield { --udc-i: var(--i-shield); }
.udc-i-cpu { --udc-i: var(--i-cpu); }
.udc-i-landmark { --udc-i: var(--i-landmark); }
.udc-i-sliders { --udc-i: var(--i-sliders); }
.udc-i-linechart { --udc-i: var(--i-linechart); }
.udc-i-book { --udc-i: var(--i-book); }
.udc-i-bulb { --udc-i: var(--i-bulb); }
.udc-i-flag { --udc-i: var(--i-flag); }

/* Placement des icônes. */
.udc-ico::before,
.udc-facts > div[class^="is-"] > dt::before,
.udc-footer a[href^="tel:"]::before,
.udc-footer a[href^="mailto:"]::before {
	content: "";
	flex: none;
	background-color: currentColor;
	-webkit-mask: var(--udc-i) center / contain no-repeat;
	mask: var(--udc-i) center / contain no-repeat;
}
.udc-ico::before { display: block; width: 1.75rem; height: 1.75rem; margin: 0 0 1rem; color: var(--udc-cyan-deep); }
p.udc-ico, h2.udc-ico { display: flex; align-items: center; gap: 0.55rem; }
p.udc-ico::before, h2.udc-ico::before { width: 1.15em; height: 1.15em; margin: 0; }
.udc-dark .udc-ico::before, .udc-band .udc-ico::before { color: #7FCBEE; }
.udc-facts > div[class^="is-"] > dt { display: flex; align-items: center; gap: 0.5rem; }
.udc-facts > div[class^="is-"] > dt::before { width: 1.05rem; height: 1.05rem; color: var(--udc-cyan-deep); }
.udc-footer a[href^="tel:"], .udc-footer a[href^="mailto:"] { display: inline-flex; align-items: center; gap: 0.55rem; }
.udc-footer a[href^="tel:"] { --udc-i: var(--i-phone); }
.udc-footer a[href^="mailto:"] { --udc-i: var(--i-mail); }
.udc-footer a[href^="tel:"]::before, .udc-footer a[href^="mailto:"]::before { width: 1rem; height: 1rem; color: #7FCBEE; }

/* ==========================================================================
   Demande d'inscription (formulaire de l'extension Formations)
   ========================================================================== */
.udc-insc-hero { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 4vw, 3rem) !important; }
.udc-insc-hero h1 { margin: 0 0 0.75rem; }
.udc-insc-hero .udc-lead { margin: 0; }
.udc-insc-wrap { padding-top: clamp(2rem, 4vw, 3rem) !important; }
.udc-insc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.udc-insc-main { grid-column: 1; grid-row: 1; min-width: 0; }
.udc-insc-aside { grid-column: 2; grid-row: 1; position: sticky; top: 132px; }
@media (max-width: 960px) {
	.udc-insc { grid-template-columns: minmax(0, 1fr); }
	.udc-insc-main, .udc-insc-aside { grid-column: 1; grid-row: auto; }
	.udc-insc-aside { position: static; }
}
.udc-insc-card { background: #fff; border: 1px solid var(--udc-line); border-top: 3px solid var(--udc-night); border-radius: var(--udc-radius); padding: 1.5rem; }
.udc-insc-kicker { font-size: 0.9375rem; font-weight: 600; color: var(--udc-cyan-deep); margin: 0 0 0.4rem; }
.udc-insc-title { font-family: var(--udc-sans); font-size: 1.25rem; font-weight: 700; line-height: 1.35; margin: 0 0 1rem; text-wrap: balance; }
.udc-insc-title a { color: var(--udc-ink); text-decoration: none; }
.udc-insc-title a:hover { color: var(--udc-cyan-deep); text-decoration: underline; }
.udc-insc-card .udc-facts > div { padding: 0.6rem 0; align-items: center; }
.udc-insc-card .udc-facts dd { font-size: 1rem; }
.udc-insc-links { margin: 1.1rem 0 0; font-weight: 600; }
.udc-insc-links a { color: var(--udc-ink); text-decoration: none; border-bottom: 2px solid var(--udc-cyan); }
.udc-insc-links a::after { content: "\00a0↓"; }
.udc-insc-help { margin: 0.75rem 0 0; font-size: 0.9375rem; color: var(--udc-ink-soft); }
.udc-insc-empty { max-width: 62ch; }
.udc-insc-empty p { font-size: 1.125rem; }

.udc-insc-required { font-size: 0.9375rem; color: var(--udc-ink-soft); margin: 0 0 1.5rem; }
.udc-insc .required-star { color: #A32020; font-weight: 700; }
.udc-insc-section { border-top: 1px solid var(--udc-ink); padding: 1.5rem 0 1.75rem; margin: 0; }
.udc-insc-h { font-family: var(--udc-sans); font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin: 0 0 1.25rem; }
.udc-insc .form-row { display: grid; gap: 1.1rem 1.25rem; margin: 0 0 1.1rem; }
.udc-insc .form-row-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.udc-insc .form-row-3 { grid-template-columns: minmax(0, 0.75fr) repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .udc-insc .form-row-2, .udc-insc .form-row-3 { grid-template-columns: minmax(0, 1fr); } }
.udc-insc .form-group { display: flex; flex-direction: column; gap: 0.4rem; margin: 0 0 1.1rem; min-width: 0; }
.udc-insc .form-row > .form-group { margin: 0; }
.udc-insc label { font-size: 1rem; font-weight: 600; color: var(--udc-ink); line-height: 1.4; }
.udc-insc input[type="text"], .udc-insc input[type="email"], .udc-insc input[type="tel"], .udc-insc select, .udc-insc textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1.0625rem; font-weight: 400; color: var(--udc-ink);
	background: #fff; border: 1px solid #BDB7AC; border-radius: var(--udc-radius); padding: 0.75rem 0.9rem; min-height: 52px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.udc-insc textarea { min-height: 130px; resize: vertical; }
.udc-insc select { appearance: none; padding-right: 2.5rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2337424F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 0.85rem center / 1.1rem no-repeat; }
.udc-insc ::placeholder { color: #666E78; opacity: 1; }
.udc-insc input:hover, .udc-insc select:hover, .udc-insc textarea:hover { border-color: var(--udc-ink-soft); }
.udc-insc input:focus-visible, .udc-insc select:focus-visible, .udc-insc textarea:focus-visible { outline: 3px solid var(--udc-cyan-deep); outline-offset: 1px; border-color: var(--udc-ink); }
.udc-insc .checkbox-group { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.6rem 0; }
.udc-insc .checkbox-group input { width: 1.25rem; height: 1.25rem; margin: 0.15rem 0 0; flex: none; accent-color: var(--udc-night); }
.udc-insc .checkbox-group label { font-weight: 400; color: var(--udc-ink-soft); }
.udc-insc .checkbox-group a { color: var(--udc-cyan-deep); }
.udc-insc .is-invalid input, .udc-insc .is-invalid select, .udc-insc .is-invalid textarea { border-color: #A32020; }
.udc-field-error { flex-basis: 100%; margin: 0.15rem 0 0; font-size: 0.9375rem; color: #A32020; }
.udc-insc .checkbox-group.is-invalid { flex-wrap: wrap; }
.udc-insc .checkbox-group .udc-field-error { padding-left: 2rem; }
.udc-insc-submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; border-top: 1px solid var(--udc-ink); padding-top: 1.5rem; }
.udc-insc-submit { min-height: 52px; cursor: pointer; }
.udc-insc-submit[disabled] { opacity: 0.7; cursor: progress; }
.udc-insc-note { margin: 0; font-size: 0.9375rem; color: var(--udc-ink-soft); }
.udc-insc-msg { border-left: 3px solid; border-radius: 0 var(--udc-radius) var(--udc-radius) 0; padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.udc-insc-msg.is-success { border-color: #1D5E3A; background: #E3F1E8; }
.udc-insc-msg.is-error { border-color: #A32020; background: #FBEAEA; }
.udc-insc-msg strong { display: block; margin-bottom: 0.25rem; }
.udc-insc-msg ul, .udc-insc-msg p { margin: 0.4rem 0 0; }
.udc-insc-msg + .wp-block-buttons { margin-top: 1rem; }

/* Tarifs des programmes. */
.udc-tarifs h2 { margin: 0 0 1.5rem; }
.udc-table-tarifs { margin-top: 0; }
.udc-table-tarifs table { min-width: 640px; }
.udc-table-tarifs th { color: var(--udc-ink); }
.udc-table-tarifs th, .udc-table-tarifs td { padding: 1rem 1rem; vertical-align: baseline; }
.udc-table-tarifs th:first-child, .udc-table-tarifs td:first-child { padding-left: 0; }
.udc-table-tarifs th:nth-child(n+3), .udc-table-tarifs td:nth-child(n+3) { text-align: right; white-space: nowrap; }
.udc-table-tarifs th:last-child, .udc-table-tarifs td:last-child { padding-right: 0; }
.udc-table-tarifs td:nth-child(3), .udc-table-tarifs td:nth-child(4) { font-weight: 600; color: var(--udc-ink); }
.udc-table-tarifs td:nth-child(2), .udc-table-tarifs td:nth-child(5) { color: var(--udc-ink-soft); }
.udc-table-tarifs tbody tr { transition: background-color .15s ease; }
.udc-table-tarifs tbody tr:hover { background: var(--udc-paper); }
@media (max-width: 720px) {
	.wp-block-post-content .udc-table-tarifs table, .udc-table-tarifs table { display: block; min-width: 0; overflow: visible; }
	.udc-table-tarifs thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.udc-table-tarifs tbody, .udc-table-tarifs tr, .udc-table-tarifs td { display: block; }
	.udc-table-tarifs tr { background: var(--udc-paper); border: 1px solid var(--udc-line); border-radius: var(--udc-radius); padding: 0.25rem 1.1rem; margin: 0 0 0.9rem; }
	.udc-table-tarifs tbody tr:hover { background: var(--udc-paper); }
	.udc-table-tarifs td, .udc-table-tarifs td:first-child, .udc-table-tarifs td:last-child { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.65rem 0; text-align: right; }
	.udc-table-tarifs td:last-child { border-bottom: 0; }
	.udc-table-tarifs td::before { font-weight: 400; color: var(--udc-ink-soft); text-align: left; white-space: normal; }
	.udc-table-tarifs td:nth-child(1) { display: block; text-align: left; font-family: var(--udc-serif); font-size: 1.1875rem; padding-top: 0.85rem; }
	.udc-table-tarifs td:nth-child(2)::before { content: "Durée disponible"; }
	.udc-table-tarifs td:nth-child(3)::before { content: "Option 1 (€)"; }
	.udc-table-tarifs td:nth-child(4)::before { content: "Option 2 (€)"; }
	.udc-table-tarifs td:nth-child(5)::before { content: "Différence (€)"; }
}
.udc-tarifs-options { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: var(--udc-gap); margin-top: 2.25rem !important; }
.udc-tarifs-option { border-top: 2px solid var(--udc-ink); padding-top: 1.1rem; margin: 0 !important; }
.udc-tarifs-option h3 { font-size: 1.25rem; margin: 0 0 0.25rem; }
.udc-tarifs-option .is-style-udc-check { margin: 0; }

/* ==========================================================================
   Finition générale
   ========================================================================== */

/* Rythme vertical commun à toutes les sections pleine largeur. */
.wp-block-post-content > .alignfull:not(.udc-hero):not(.udc-trust):not(.udc-section) { padding-block: var(--udc-pad-md) !important; margin-block: 0 !important; }

/* Titres sans mot isolé, paragraphes à longueur de ligne confortable. */
h3, h4 { text-wrap: balance; }
/* Alignement : dans les sections pleine largeur (colonne de 1240 px), un bloc plus étroit que la colonne
   reste calé sur son bord gauche au lieu d'être centré par la mise en page contrainte de WordPress. */
main .alignfull.is-layout-constrained > :is(p, h1, h2, h3, .udc-insc-empty) { margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }
main .alignfull.is-layout-constrained > p, .wp-block-column > p, .udc-step > p, .udc-list-item > p, .is-style-udc-card > p { max-width: 70ch; }
.udc-hero-home h1 { max-width: 16ch; }

/* Bandeau de confiance : trois chiffres et l'adhésion, alignés et de même hauteur. */
.udc-trust-row { align-items: stretch; }
.udc-trust-row > * { display: flex !important; flex-direction: column; justify-content: center; }
.udc-trust-l { max-width: 26ch; }
.udc-trust-badge { gap: 0.6rem !important; align-items: flex-start !important; }
.udc-trust-badge img { width: 150px; }
.udc-trust-badge .udc-trust-l { margin: 0; }
@media (max-width: 900px) {
	.udc-trust-badge { flex-direction: row !important; align-items: center !important; gap: 1.25rem !important; }
	.udc-trust-badge img { width: 130px; }
}
@media (max-width: 560px) {
	.udc-trust-row { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.udc-trust-row > *, .udc-trust-row > *:nth-child(3) { flex-direction: row; align-items: baseline; justify-content: flex-start; gap: 1rem; border-left: 0 !important; border-top: 1px solid var(--udc-line); padding: 0.85rem 0 !important; }
	.udc-trust-row > *:first-child { border-top: 0; }
	.udc-trust-n { min-width: 6.25rem; }
	.udc-trust-l { margin: 0; }
	.udc-trust-badge, .udc-trust-row > .udc-trust-badge { align-items: center !important; padding-top: 1rem !important; }
	.udc-trust-badge img { width: 112px; }
}

/* Cartes et étapes : icône en tête, alignements réguliers. */
.udc-step.udc-ico::before { margin-top: 0.35rem; }
.udc-list-item.udc-ico::before, .is-style-udc-card.udc-ico::before { margin-bottom: 0.9rem; }
.is-style-udc-card.udc-univers { display: flex; flex-direction: column; }
.is-style-udc-card.udc-univers .wp-block-buttons { margin-top: auto; padding-top: 0.75rem; }
.udc-offer .udc-num.udc-ico { font-size: 1rem !important; }

/* ==========================================================================
   Mouvements : discrets, jamais permanents, désactivés si l'utilisateur le demande
   ========================================================================== */
a { transition: color .15s ease, text-decoration-color .15s ease, border-color .15s ease; }
.wp-block-button__link, .udc-insc-submit, .wpcf7 input[type="submit"] { transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.is-style-udc-card, .udc-path, .udc-tarifs-option, .udc-session, .udc-event { transition: transform .25s ease, border-color .25s ease, background-color .25s ease; }
.udc-faq summary::after { transition: transform .25s ease; }
.udc-faq details[open] > :not(summary) { animation: udc-open .35s ease both; }
@keyframes udc-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.udc-reveal { opacity: 0; transform: translateY(16px); transition: opacity .45s ease, transform .45s cubic-bezier(.2, .7, .2, 1); }
.udc-reveal.is-in { opacity: 1; transform: none; }

/* Survol : c'est le contenu qui bouge, jamais la zone survolée (sinon le curseur « tremble » en bordure). */
@media (hover: hover) {
	.wp-block-button:hover > .wp-block-button__link { transform: translateY(-2px); }
	.is-style-udc-card:hover { border-color: #BDB7AC; }
	.udc-dark .is-style-udc-card:hover { border-color: rgba(255, 255, 255, .32); }
	.is-style-udc-link .wp-block-button__link::after { display: inline-block; transition: transform .2s ease; }
	.wp-block-button.is-style-udc-link:hover > .wp-block-button__link { transform: none; }
	.wp-block-button.is-style-udc-link:hover > .wp-block-button__link::after,
	.udc-path:hover .is-style-udc-link .wp-block-button__link::after { transform: translateX(3px); }
}

@media (prefers-reduced-motion: reduce) {
	.udc-reveal { opacity: 1 !important; transform: none !important; }
	.udc-faq details[open] > :not(summary) { animation: none; }
	.wp-block-button:hover > .wp-block-button__link, .is-style-udc-link .wp-block-button__link::after { transform: none !important; }
}

/* Inscription : textes d'aide de l'extension et case à cocher en erreur. */
.udc-insc .form-help-text { display: block; font-size: 0.9375rem; line-height: 1.45; color: var(--udc-ink-soft); }
.udc-insc .checkbox-group label { flex: 1 1 0; min-width: 0; }

/* ==========================================================================
   Assistant — robot conversationnel
   Complète le bloc « Assistant » plus haut : ces règles le remplacent
   là où elles se recoupent (même spécificité, déclarées après).
   ========================================================================== */

/* Ouverture du panneau */
.udc-assist { opacity: 0; transform: translateY(12px) scale(.985); transform-origin: 100% 100%; transition: opacity .22s ease, transform .22s ease; }
.udc-assist.is-open { opacity: 1; transform: none; }
.udc-assist-log { scroll-behavior: smooth; }

/* En-tête : état, recommencer, fermer */
.udc-assist-head > div { min-width: 0; }
.udc-assist-etat { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.udc-assist-etat::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #5ED89B; margin-right: 0.4rem; vertical-align: middle; }
.udc-assist-reset { margin-left: auto; background: none; border: 0; color: rgba(255, 255, 255, .78); font-size: 1.25rem; line-height: 1; cursor: pointer; min-width: 40px; min-height: 40px; }
.udc-assist-reset:hover { color: #fff; }
.udc-assist-close { margin-left: 0; }

/* Arrivée des bulles */
.udc-msg { opacity: 0; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease; }
.udc-msg.is-in { opacity: 1; transform: none; }
.udc-msg.bot { max-width: 92%; }
.udc-msg p:first-child { margin-top: 0; }
.udc-msg p:last-child { margin-bottom: 0; }

/* Indicateur de saisie */
.udc-typing { display: flex; align-items: center; gap: 5px; padding: 0.85rem 0.9rem; opacity: 1; transform: none; }
.udc-typing span { width: 7px; height: 7px; border-radius: 50%; background: #9AA3AC; animation: udc-typing 1.1s infinite ease-in-out; }
.udc-typing span:nth-child(2) { animation-delay: .15s; }
.udc-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes udc-typing {
	0%, 60%, 100% { transform: translateY(0); opacity: .45; }
	30% { transform: translateY(-5px); opacity: 1; }
}

/* Contenus enrichis dans une bulle */
.udc-msg-liste { margin: 0.45rem 0 0; padding-left: 1.1rem; }
.udc-msg-liste li { margin: 0.2rem 0; }
.udc-msg-note { margin: 0.65rem 0 0; padding-left: 0.65rem; border-left: 3px solid var(--udc-line); font-size: 0.875rem; color: var(--udc-ink-soft); }
.udc-offre { margin: 0 0 0.5rem; padding: 0.55rem 0.7rem; background: var(--udc-paper); border-radius: 4px; }
.udc-offre:last-child { margin-bottom: 0; }
.udc-offre strong { display: block; }
.udc-offre span { display: block; margin-top: 0.15rem; font-size: 0.875rem; color: var(--udc-ink-soft); }
.udc-msg-coord { list-style: none; margin: 0.45rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.32rem; }
.udc-msg-coord li { position: relative; padding-left: 1.5rem; }
.udc-msg-coord li::before,
.udc-fcard-meta li::before {
	content: ""; position: absolute; left: 0; top: 0.18em; width: 1em; height: 1em;
	-webkit-mask: var(--udc-i) center / contain no-repeat; mask: var(--udc-i) center / contain no-repeat;
	background-color: currentColor; opacity: .68;
}
.udc-msg-coord .is-tel { --udc-i: var(--i-phone); }
.udc-msg-coord .is-mail { --udc-i: var(--i-mail); }
.udc-msg-coord .is-lieu { --udc-i: var(--i-pin); }
.udc-msg-coord .is-nom { --udc-i: var(--i-user); }
.udc-msg-coord .is-note { --udc-i: var(--i-message); }

/* Fiches de formation renvoyées par la recherche */
.udc-msg.is-cartes { max-width: 100%; align-self: stretch; background: none; border: 0; padding: 0; }
.udc-fcards { display: flex; flex-direction: column; gap: 0.55rem; }
.udc-fcard { background: #fff; border: 1px solid var(--udc-line); border-radius: 4px; padding: 0.8rem 0.9rem; }
.udc-fcard-univers { margin: 0 0 0.25rem; font-family: var(--udc-mono, inherit); font-size: 0.8125rem; letter-spacing: .04em; text-transform: uppercase; color: var(--udc-muted); }
.udc-fcard h3 { margin: 0 0 0.45rem; font-size: 1rem; line-height: 1.35; font-weight: 700; }
.udc-fcard h3 a { color: var(--udc-ink); text-decoration: none; }
.udc-fcard h3 a:hover { text-decoration: underline; }
.udc-fcard-meta { list-style: none; margin: 0 0 0.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; font-size: 0.875rem; color: var(--udc-ink-soft); }
.udc-fcard-meta li { position: relative; padding-left: 1.3rem; }
.udc-fcard-meta .is-dates { --udc-i: var(--i-calendar); }
.udc-fcard-meta .is-lieu { --udc-i: var(--i-pin); }
.udc-fcard-meta .is-duree { --udc-i: var(--i-clock); }
.udc-fcard-meta .is-tarif { --udc-i: var(--i-banknote); }
.udc-fcard-meta .is-places { --udc-i: var(--i-users); }
.udc-fcard .udc-statut { font-size: 0.8125rem; }
.udc-fcard-act { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }
.udc-fcard-act .udc-choice { flex: 1 1 8rem; text-align: center; min-height: 40px; padding: 0.5rem 0.7rem; font-size: 0.9375rem; }

/* Boutons de réponse : apparition en cascade, aucun déplacement au survol */
.udc-choices .udc-choice { opacity: 0; transform: translateY(6px); transition: opacity .25s ease, transform .25s ease, background-color .15s ease, border-color .15s ease, color .15s ease; transition-delay: calc(var(--n, 0) * 45ms); }
.udc-choices.is-in .udc-choice { opacity: 1; transform: none; }
.udc-choices.is-discret { align-self: flex-start; }
.udc-choices.is-discret .udc-choice { border-style: dashed; color: var(--udc-ink-soft); font-size: 0.9375rem; min-height: 38px; padding: 0.4rem 0.7rem; }

/* Pastille « nouveau message » sur le lanceur */
.udc-assist-launch.has-news::after {
	content: ""; position: absolute; top: 5px; right: 5px; width: 10px; height: 10px; border-radius: 50%;
	background: #C8402F; animation: udc-pulse 2.6s ease-out infinite;
}
@keyframes udc-pulse {
	0% { box-shadow: 0 0 0 0 rgba(200, 64, 47, .55); }
	70% { box-shadow: 0 0 0 9px rgba(200, 64, 47, 0); }
	100% { box-shadow: 0 0 0 0 rgba(200, 64, 47, 0); }
}

/* Bulle d'accroche, une seule fois par visite */
.udc-assist-bulle {
	position: fixed; right: 1rem; bottom: calc(1rem + 62px); z-index: 9989;
	width: min(20rem, calc(100vw - 2rem));
	background: #fff; border: 1px solid var(--udc-line); border-radius: 6px;
	box-shadow: 0 12px 30px rgba(14, 34, 51, .18);
	padding: 0.85rem 2.2rem 0.85rem 0.95rem;
	opacity: 0; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease;
}
.udc-assist-bulle.is-in { opacity: 1; transform: none; }
.udc-assist-bulle p { margin: 0 0 0.6rem; font-size: 0.9375rem; line-height: 1.45; }
.udc-bulle-ok { background: var(--udc-cyan); border: 1px solid var(--udc-cyan); border-radius: 4px; padding: 0.45rem 0.8rem; font: inherit; font-size: 0.9375rem; font-weight: 600; color: var(--udc-ink); cursor: pointer; min-height: 40px; }
.udc-bulle-ok:hover { background: var(--udc-ink); border-color: var(--udc-ink); color: #fff; }
.udc-bulle-non { position: absolute; top: 0; right: 0; width: 36px; height: 36px; background: none; border: 0; font-size: 1.25rem; line-height: 1; color: var(--udc-muted); cursor: pointer; }
.udc-bulle-non:hover { color: var(--udc-ink); }
html.has-modal-open .udc-assist-bulle,
body:has(.udc-consent) .udc-assist-bulle { display: none; }
@media (max-width: 600px) {
	.udc-assist-bulle { right: 0.75rem; bottom: calc(0.75rem + 60px); }
}

@media (prefers-reduced-motion: reduce) {
	.udc-assist, .udc-msg, .udc-choices .udc-choice, .udc-assist-bulle { transition: none; opacity: 1; transform: none; }
	.udc-assist-log { scroll-behavior: auto; }
	.udc-typing span, .udc-assist-launch.has-news::after { animation: none; }
}

/* --- Assistant : raffinement -------------------------------------------- */
.udc-assist { --e: cubic-bezier(.22, .61, .36, 1); border-radius: 8px; box-shadow: 0 24px 60px rgba(14, 34, 51, .26); transition: opacity .24s var(--e), transform .24s var(--e); }
.udc-assist-head { padding: 0.85rem 0.9rem; gap: 0.65rem; }
.udc-assist-head img { box-shadow: 0 0 0 2px rgba(255, 255, 255, .22); }
.udc-assist-head strong { font-family: var(--udc-serif); font-weight: 600; font-size: 1.125rem; letter-spacing: -0.01em; }
.udc-assist-log { padding: 0.9rem 0.9rem 1.1rem; gap: 0.5rem; }

.udc-msg { border-radius: 10px; transition: opacity .3s var(--e, ease), transform .3s var(--e, ease); }
.udc-msg.bot { border-top-left-radius: 3px; }
.udc-msg.user { border-top-right-radius: 3px; }
.udc-msg-precision { display: block; margin-top: 0.35rem; font-size: 0.875rem; color: var(--udc-muted); }

/* Réponses suggérées : pastilles en ligne, jamais des barres pleine largeur */
.udc-choices { flex-direction: row; flex-wrap: wrap; align-self: flex-start; gap: 0.35rem; margin-top: 0.15rem; }
.udc-choice { box-sizing: border-box; }
.udc-choices .udc-choice { width: auto; min-height: 36px; padding: 0.4rem 0.75rem; font-size: 0.9375rem; line-height: 1.25; border-radius: 4px; border-color: #D4CEC3; background: #fff; transition-duration: .22s; transition-delay: calc(var(--n, 0) * 32ms); }
.udc-choices .udc-choice:hover { background: var(--udc-wash); border-color: var(--udc-cyan-deep); }
.udc-choices .udc-choice.primary { background: var(--udc-cyan); border-color: var(--udc-cyan); }
.udc-choices .udc-choice.primary:hover { background: var(--udc-ink); border-color: var(--udc-ink); color: #fff; }

/* Fiches : hiérarchie plus nette, une seule action pleine */
.udc-fcard { border-radius: 6px; padding: 0.85rem 0.95rem; border-color: #E2DCD1; }
.udc-fcard + .udc-fcard { margin-top: 0; }
.udc-fcard-univers { font-size: 0.75rem; letter-spacing: .08em; }
.udc-fcard h3 { font-size: 1.0625rem; letter-spacing: -0.01em; }
.udc-fcard-meta { gap: 0.15rem 0.85rem; margin-bottom: 0.45rem; }
.udc-fcard-etats { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0; }
.udc-fcard-quand, .udc-fcard-places { font-size: 0.8125rem; font-weight: 600; padding: 0.3rem 0.55rem; border-radius: 2px; background: var(--udc-wash); color: var(--udc-cyan-deep); white-space: nowrap; }
.udc-fcard-places { background: #F1EEE8; color: var(--udc-ink-soft); }
.udc-fcard-places.is-tendu { background: #FBEEDB; color: #7A4306; }
.udc-fcard-act { align-items: center; gap: 0.75rem; margin-top: 0.7rem; }
.udc-fcard-act .udc-choice { flex: 0 0 auto; padding: 0.5rem 0.95rem; border-radius: 4px; white-space: nowrap; }
.udc-fcard-lien { font-size: 0.9375rem; font-weight: 600; color: var(--udc-cyan-deep); text-decoration: none; }
.udc-fcard-lien::after { content: "→"; display: inline-block; margin-left: 0.3rem; transition: transform .2s ease; }
.udc-fcard-lien:hover { text-decoration: underline; }
.udc-fcard-lien:hover::after { transform: translateX(3px); }

/* La pastille du lanceur attire l'œil, puis se tait. */
.udc-assist-launch.has-news::after { animation-iteration-count: 4; }

@media (prefers-reduced-motion: reduce) {
	.udc-fcard-lien::after { transition: none; }
}

/* --- Ajustements de finition --------------------------------------------- */
/* Sur mobile, le lanceur est un cercle compact et remonte un peu : il ne doit
   jamais recouvrir un bouton en bas de page. */
@media (max-width: 600px) {
	.udc-assist-launch { width: 54px; height: 54px; min-width: 54px; min-height: 54px; padding: 0; border-radius: 50%; right: 0.9rem; bottom: 1.4rem; }
	.udc-assist-launch .udc-assist-dot { width: 34px; height: 34px; }
	body { padding-bottom: 5.5rem; }
}
/* Pas de pulsation : la pastille signale, elle ne clignote pas. */
.udc-assist-launch.has-news::after { animation: none; }

/* Page Contact : le formulaire arrive plus vite. */
.page-contact .udc-hero { padding-block: clamp(2rem, 3.4vw, 3.25rem) clamp(1.75rem, 3vw, 3rem) !important; }

/* --- Titres : présence conservée, hauteur maîtrisée ----------------------- */
/* « balance » n'a de sens que sur deux ou trois lignes : au-delà, le navigateur
   rétrécit la colonne et multiplie les lignes. Les titres de bandeau reprennent
   donc toute leur largeur. */
.udc-hero h1 { text-wrap: pretty; }
.udc-hero-home h1 { font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 1.05; max-width: 24ch; }
.udc-hero:not(.udc-hero-home) h1 { font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.1; }
.udc-hero-page h1 { font-size: clamp(1.875rem, 2.8vw, 2.75rem); line-height: 1.12; max-width: 26ch; }
.udc-hero { padding-block: clamp(2.5rem, 4.6vw, 4.5rem) clamp(2.25rem, 3.8vw, 3.75rem) !important; }
.udc-hero-page { padding-block: clamp(2rem, 3.4vw, 3.25rem) clamp(1.75rem, 3vw, 3rem) !important; }
/* Libellé d'univers : lisible plutôt que décoratif. */
.udc-fcard-univers { font-size: 0.8125rem; letter-spacing: .05em; }

/* --- Formulaire d'inscription : finition ---------------------------------- */
.udc-insc input:not([type="checkbox"]), .udc-insc select { box-sizing: border-box; height: 50px; padding-block: 0; }
.udc-insc textarea { min-height: 7rem; }
/* Renseignements facultatifs : repliés, jamais cachés. */
.udc-insc-plus { margin-top: 0.5rem; border-top: 1px solid var(--udc-line); }
.udc-insc-plus > summary { display: flex; align-items: center; gap: 0.45rem; min-height: 46px; cursor: pointer; font-weight: 600; color: var(--udc-cyan-deep); list-style: none; }
.udc-insc-plus > summary::-webkit-details-marker { display: none; }
.udc-insc-plus > summary::before { content: ""; flex: none; width: 0.5em; height: 0.5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .18s ease; }
.udc-insc-plus[open] > summary::before { transform: rotate(-135deg); }
.udc-insc-plus > summary:focus-visible { outline: 3px solid var(--udc-cyan-deep); outline-offset: 3px; }
.udc-insc-plus > *:not(summary) { margin-top: 0.9rem; }

/* Boutons : mêmes transitions courtes partout, sans déplacement de la zone survolée. */
.wp-block-button__link, .udc-choice, .udc-insc-submit, .udc-bulle-ok {
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
@media (prefers-reduced-motion: reduce) {
	.udc-insc-plus > summary::before { transition: none; }
}

/* --- Offres PME : le détail complet sans allonger la carte ---------------- */
.udc-plus { margin-top: 0.35rem; }
.udc-plus > summary { display: flex; align-items: center; gap: 0.45rem; min-height: 44px; cursor: pointer; font-weight: 600; font-size: 0.9375rem; color: var(--udc-cyan-deep); list-style: none; }
.udc-plus > summary::-webkit-details-marker { display: none; }
.udc-plus > summary::before { content: ""; flex: none; width: 0.5em; height: 0.5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .18s ease; }
.udc-plus[open] > summary::before { transform: rotate(-135deg); }
.udc-plus > summary:focus-visible { outline: 3px solid var(--udc-cyan-deep); outline-offset: 3px; }
.udc-plus .wp-block-list { margin-top: 0.6rem; }
@media (prefers-reduced-motion: reduce) {
	.udc-plus > summary::before { transition: none; }
}

/* Listes de services : le filet répétitif s'efface, l'espacement suffit à séparer. */
.is-style-udc-check li { border-bottom: 0; padding-top: 0.4rem; padding-bottom: 0.4rem; }
.is-style-udc-check li::before { top: 0.9rem; }
.udc-plus .is-style-udc-check { margin-bottom: 0; }
