/* ==========================================================================
   Syner'JE Conseils : feuille de style principale
   Les couleurs et polices se règlent dans theme.json (Apparence > Éditeur > Styles).
   Ce fichier gère la mise en page des composants : en-tête, carrousel, tuiles, etc.
   ========================================================================== */

:root {
	--sj-radius: var(--wp--custom--radius, 14px);
	--sj-header-h: 84px;
	--sj-ease: cubic-bezier(.2, .7, .2, 1);
	--sj-rainbow: linear-gradient(90deg,
		#47608B 0 14.28%, #4D7DA5 14.28% 28.57%, #53953D 28.57% 42.85%,
		#4F945C 42.85% 57.14%, #FFA91F 57.14% 71.42%, #FD89FA 71.42% 85.71%, #FF3131 85.71% 100%);
	--sj-arcs: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='%23fff' stroke-width='16'%3E%3Cpath d='M392 392 A384 384 0 0 0 8 8' opacity='.16'/%3E%3Cpath d='M392 392 A330 330 0 0 0 62 62' opacity='.14'/%3E%3Cpath d='M392 392 A276 276 0 0 0 116 116' opacity='.12'/%3E%3Cpath d='M392 392 A222 222 0 0 0 170 170' opacity='.10'/%3E%3Cpath d='M392 392 A168 168 0 0 0 224 224' opacity='.09'/%3E%3Cpath d='M392 392 A114 114 0 0 0 278 278' opacity='.08'/%3E%3Cpath d='M392 392 A60 60 0 0 0 332 332' opacity='.07'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--sj-header-h) + 1rem); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; overflow-x: clip; }
::selection { background: #FFA91F; color: #1F2B44; }
img { height: auto; }
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid #FFA91F; outline-offset: 3px; border-radius: 4px;
}
.wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.wp-site-blocks > main { flex: 1 0 auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Les bandes pleine largeur s'enchaînent sans espace blanc parasite */
.wp-block-post-content > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-block-post-content > .alignfull:last-child { margin-bottom: 0; }
.wp-block-post-content:has(> .alignfull:last-child) { padding-bottom: 0 !important; }
.wp-block-post-content > :not(.alignfull) + .alignfull { margin-block-start: var(--wp--preset--spacing--50) !important; }

/* Lien d'évitement (accessibilité clavier) */
.sj-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #1F2B44; color: #fff; padding: .75rem 1rem; }
.sj-skip:focus { left: 1rem; top: 1rem; }

/* ---------- En-tête ancré ---------- */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
/* Le flou est porté par un pseudo-élément : sur l'en-tête lui-même, il enfermait le menu mobile plein écran dans la hauteur de l'en-tête (bug iPhone). */
.sj-header {
	position: relative; isolation: isolate;
	background: #fff;
	transition: box-shadow .25s var(--sj-ease);
}
.sj-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--sj-rainbow); }
.sj-header.is-scrolled { box-shadow: 0 6px 24px rgba(31, 43, 68, .10); }
.sj-header__inner { min-height: var(--sj-header-h); gap: 1.25rem; }
.sj-header .wp-block-site-logo img { width: auto; max-height: 58px; }
.sj-header .wp-block-site-logo { flex-shrink: 0; line-height: 0; }
.sj-header__right { gap: 1.25rem !important; }

/* Menu : rubrique active soulignée et en gras */
.sj-header .wp-block-navigation .wp-block-navigation-item__content { padding: .5rem 0; position: relative; color: var(--wp--preset--color--marine); text-decoration: none; }
.sj-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px;
	background: var(--wp--preset--color--ciel); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--sj-ease);
}
.sj-header .wp-block-navigation-item__content:hover::after,
.sj-header .current-menu-item > .wp-block-navigation-item__content::after,
.sj-header .current-menu-ancestor > .wp-block-navigation-item__content::after,
.sj-header .is-section > .wp-block-navigation-item__content::after { transform: scaleX(1) !important; }
.sj-header .current-menu-item > .wp-block-navigation-item__content,
.sj-header .current-menu-ancestor > .wp-block-navigation-item__content,
.sj-header .is-section > .wp-block-navigation-item__content { font-weight: 700; }
.sj-header .wp-block-navigation__submenu-container {
	border: 0 !important; border-radius: 12px; padding: .5rem !important; min-width: 250px !important;
	box-shadow: 0 18px 40px rgba(31, 43, 68, .16); background: #fff !important;
}
.sj-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .75rem !important; border-radius: 8px; font-weight: 500; }
.sj-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--ciel-clair); }
.sj-header .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { background: var(--wp--preset--color--ciel-clair); font-weight: 700; }
.sj-header .wp-block-social-links { gap: .35rem; }
.sj-header .wp-block-social-links .wp-social-link { color: var(--wp--preset--color--marine); }
.sj-header .wp-block-social-links .wp-social-link svg { width: 22px; height: 22px; }
.sj-header .sj-cta .wp-block-button__link { padding: .75rem 1.25rem; white-space: nowrap; }

/* Menu mobile et tablette : panneau plein écran sous 1080 px */
@media (min-width: 600px) and (max-width: 1079px) {
	.sj-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.sj-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.sj-header .wp-block-navigation__responsive-container.is-menu-open { display: flex; position: fixed; inset: 0; }
	.sj-header .wp-block-navigation__responsive-container-close { display: flex; }
}
@media (max-width: 1079px) {
	.sj-header .sj-cta, .sj-header .wp-block-social-links { display: none; }
	.sj-header .wp-block-site-logo img { max-height: 48px; }
	.sj-header__inner { min-height: 72px; }
	:root { --sj-header-h: 72px; }
}
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--marine) !important; color: #fff !important;
	padding: clamp(1.5rem, 5vw, 3rem) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-size: 1.375rem; font-weight: 600; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.0625rem; font-weight: 400; opacity: .9; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; box-shadow: none; padding: .25rem 0 .5rem 1rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 3px; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--marine); }
.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.sj-mobile-extra { display: none; }
.is-menu-open .sj-mobile-extra { display: block; margin-top: 2rem; }

/* ---------- Bandeau titre des pages (bleu clair, texte blanc en défonce) ---------- */
.sj-page-hero { position: relative; overflow: hidden; isolation: isolate; }
.sj-page-hero::before {
	content: ""; position: absolute; right: -40px; bottom: -40px; width: min(46vw, 420px); aspect-ratio: 1;
	background: var(--sj-arcs) no-repeat right bottom / contain; z-index: -1; pointer-events: none;
}
.sj-page-hero h1 { font-style: normal; margin: 0; }
.sj-page-hero ~ .wp-block-post-content { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.sj-page-hero .sj-intro { max-width: 60ch; font-size: var(--wp--preset--font-size--large); opacity: .95; }
.sj-breadcrumb { font-size: .9375rem; margin: 0 0 .75rem; }
.sj-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.sj-breadcrumb li + li::before { content: "›"; margin-right: .35rem; opacity: .7; }
.sj-breadcrumb a { color: inherit; text-decoration: none; opacity: .85; }
.sj-breadcrumb a:hover { text-decoration: underline; opacity: 1; }
.sj-breadcrumb [aria-current] { font-weight: 600; }

/* ---------- Carrousel d'accueil ---------- */
.sj-carousel { position: relative; }
body:not(.block-editor-page) .sj-carousel:not(.block-editor-block-list__block) > .sj-track,
.sj-carousel.is-ready > .sj-track {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; overscroll-behavior-x: contain;
}
.sj-carousel .sj-track::-webkit-scrollbar { display: none; }
.sj-slide {
	position: relative; isolation: isolate; overflow: hidden;
	flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always;
	min-height: clamp(520px, calc(100vh - var(--sj-header-h) - 40px), 760px);
	min-height: clamp(520px, calc(100svh - var(--sj-header-h) - 40px), 760px);
	display: flex; flex-direction: column; justify-content: center;
}
.sj-slide > * { width: 100%; }
.sj-slide.sj-slide { padding-left: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2.5rem)) !important; padding-right: var(--wp--style--root--padding-right, clamp(1rem, 4vw, 2.5rem)) !important; box-sizing: border-box; }
.sj-slide::before {
	content: ""; position: absolute; right: -6%; bottom: -12%; width: min(70vw, 720px); aspect-ratio: 1;
	background: var(--sj-arcs) no-repeat right bottom / contain; z-index: -1; pointer-events: none;
}
.sj-slide .sj-kicker { text-transform: uppercase; letter-spacing: .12em; font-weight: 600; font-size: .875rem; margin: 0; display: inline-flex; align-items: center; gap: .6rem; }
.sj-slide .sj-kicker::before { content: ""; width: 28px; height: 3px; background: currentColor; border-radius: 2px; }
.sj-slide h2, .sj-slide .sj-slide__title { font-style: normal; font-weight: 800; line-height: 1.02; letter-spacing: -0.02em; max-width: 16ch; margin: 1rem 0 0; }
.sj-slide .sj-slide__text { max-width: 46ch; font-size: var(--wp--preset--font-size--large); font-style: italic; margin-top: 1.25rem; }
.sj-slide .wp-block-buttons { margin-top: 2rem; }
.sj-slide .wp-block-button.is-style-outline .wp-block-button__link { border: 2px solid currentColor; background: transparent; color: inherit; }
.sj-slide .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--wp--preset--color--marine); }
.sj-slide .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--wp--preset--color--marine); color: #fff; }
.sj-slide .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--marine); border-color: #fff; }
.sj-carousel__nav {
	position: absolute; left: 0; right: 0; bottom: clamp(1rem, 3vw, 2rem); z-index: 5;
	display: flex; align-items: center; justify-content: center; gap: .75rem; pointer-events: none;
}
.sj-carousel__nav > * { pointer-events: auto; }
.sj-carousel__dots { display: flex; gap: .5rem; padding: .4rem .6rem; border-radius: 999px; background: rgba(0, 0, 0, .14); }
.sj-carousel__dot {
	width: 12px; height: 12px; padding: 0; border-radius: 999px; border: 0; cursor: pointer;
	background: rgba(255, 255, 255, .55); transition: width .3s var(--sj-ease), background .3s;
}
.sj-carousel__dot[aria-current="true"] { width: 32px; background: #fff; }
.sj-carousel__btn {
	width: 44px; height: 44px; border-radius: 999px; border: 2px solid rgba(255, 255, 255, .8); background: rgba(0, 0, 0, .12);
	color: #fff; cursor: pointer; display: grid; place-items: center; transition: background .2s;
}
.sj-carousel__btn:hover { background: rgba(255, 255, 255, .25); }
.sj-carousel__btn svg { width: 20px; height: 20px; }
.sj-carousel__pause { font-size: .8rem; }
@media (max-width: 600px) { .sj-carousel__btn--prev, .sj-carousel__btn--next { display: none; } }
/* Dans l'éditeur : diapositives empilées pour une modification facile */
.block-editor-block-list__layout .sj-slide, .editor-styles-wrapper .sj-slide { min-height: 420px; margin-bottom: 1rem; }

/* ---------- Grilles de tuiles (pages de niveau 1 : 4 visuels max par ligne) ---------- */
.sj-tiles { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem) !important; }
@media (max-width: 1080px) { .sj-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sj-tiles { grid-template-columns: 1fr; } }
.sj-tiles > * { margin: 0 !important; }
.sj-tile {
	position: relative; overflow: hidden; isolation: isolate; border-radius: var(--sj-radius);
	display: flex; flex-direction: column; gap: .75rem; min-height: 250px;
	transition: transform .3s var(--sj-ease), box-shadow .3s var(--sj-ease);
}
.sj-tile::before {
	content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; aspect-ratio: 1;
	background: var(--sj-arcs) no-repeat right bottom / contain; z-index: -1; opacity: .9; transition: transform .5s var(--sj-ease);
}
.sj-tile:hover, .sj-tile:focus-within { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(31, 43, 68, .18); }
.sj-tile:hover::before { transform: scale(1.08) rotate(-4deg); }
.sj-tile h3, .sj-tile h2 { font-size: 1.375rem; margin: 0; font-style: italic; }
.sj-tile h3 a, .sj-tile h2 a { color: inherit; text-decoration: none; }
.sj-tile h3 a::after, .sj-tile h2 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sj-tile p { margin: 0; font-size: .98rem; line-height: 1.5; }
.sj-tile .sj-tile__more { margin-top: auto; font-weight: 600; font-size: .95rem; display: inline-flex; gap: .4rem; align-items: center; }
.sj-tile .sj-tile__more::after { content: "→"; transition: transform .25s var(--sj-ease); }
.sj-tile:hover .sj-tile__more::after { transform: translateX(4px); }
.sj-tile .wp-block-image { margin: 0; }
.sj-tile .sj-icon img { width: 52px; height: 52px; border-radius: 0; }
/* Tuile photo : visuel pleine largeur en haut */
.sj-tile--photo { background: var(--wp--preset--color--ciel-clair); color: var(--wp--preset--color--marine); padding: 0 !important; }
.sj-tile--photo::before { display: none; }
.sj-tile--photo .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; display: block; }
.sj-tile--photo .sj-tile__body { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.sj-tile--photo.sj-tile--logo .wp-block-image img { object-fit: contain; background: #fff; padding: 1.5rem; }

/* ---------- Bloc 60 / 40 (pages de niveau 2 et 3) ---------- */
.sj-split { gap: clamp(1.5rem, 5vw, 4.5rem) !important; align-items: center !important; }
.sj-split .wp-block-image img { width: 100%; object-fit: cover; }
.sj-split .wp-block-image.sj-contain img { object-fit: contain; }
.sj-list { padding-left: 0; list-style: none; display: grid; gap: .65rem; }
.sj-list li { position: relative; padding-left: 1.9rem; }
.sj-list li::before {
	content: ""; position: absolute; left: 0; top: .5em; width: 14px; height: 14px; border-radius: 50%;
	border: 3px solid var(--sj-accent, var(--wp--preset--color--ciel));
}
.sj-accent-tc { --sj-accent: var(--wp--preset--color--tc); }
.sj-accent-gea { --sj-accent: var(--wp--preset--color--gea); }
.sj-accent-gc { --sj-accent: var(--wp--preset--color--gc); }
.sj-accent-gb { --sj-accent: var(--wp--preset--color--gb); }
.sj-accent-rt { --sj-accent: var(--wp--preset--color--rt); }
.sj-accent-cs { --sj-accent: var(--wp--preset--color--cs); }
.sj-accent-hse { --sj-accent: var(--wp--preset--color--hse); }
.sj-chip { display: inline-block; padding: .3rem .8rem; border-radius: 999px; font-size: .85rem; font-weight: 600; background: var(--sj-accent, var(--wp--preset--color--ciel)); color: #fff; margin: 0; }

.sj-split--top { align-items: flex-start !important; }
.sj-split--top > .wp-block-column:last-child { position: sticky; top: calc(var(--sj-header-h) + 1.5rem); }
@media (max-width: 781px) { .sj-split--top > .wp-block-column:last-child { position: static; } }
.sj-visual { min-height: 360px; justify-content: flex-end; gap: .5rem; }
.sj-visual::before { width: 340px; right: -70px; bottom: -70px; }
.sj-visual:hover { transform: none; box-shadow: none; }
.sj-icon--xl img { width: 84px !important; height: 84px !important; margin-bottom: auto; }
.sj-visual .sj-icon--xl { margin-bottom: auto !important; }
.sj-intro { max-width: 60ch; margin-top: 0; margin-bottom: var(--wp--preset--spacing--30) !important; }
.sj-tile--photo > .sj-tile__body { margin-top: 0 !important; }
.sj-split h3 { margin-top: 2rem; }
.sj-split .sj-chip + p { margin-top: 1rem; }
.sj-card .sj-list li::before { border-color: currentColor; }

/* ---------- Étapes de la méthode ---------- */
.sj-steps { counter-reset: sj-step; }
.sj-step { counter-increment: sj-step; position: relative; }
.sj-step::after {
	content: "0" counter(sj-step); position: absolute; top: 1.25rem; right: 1.5rem;
	font-weight: 800; font-size: 2.5rem; line-height: 1; letter-spacing: -0.02em; opacity: .35;
}
.sj-step:hover { transform: none; box-shadow: none; }

/* ---------- Chiffres clés ---------- */
.sj-stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem !important; }
@media (max-width: 860px) { .sj-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sj-stat { margin: 0 !important; }
.sj-stat strong { display: block; font-size: clamp(2.25rem, 5vw, 3.25rem); font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
.sj-stat span { display: block; margin-top: .4rem; font-size: .98rem; opacity: .95; }

/* ---------- Logos clients ---------- */
.sj-logos { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem !important; align-items: stretch; }
@media (max-width: 860px) { .sj-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sj-logos > * { margin: 0 !important; }
.sj-logos .wp-block-image { background: #fff; border-radius: var(--sj-radius); display: grid; place-items: center; padding: 1.25rem; min-height: 140px; transition: transform .25s var(--sj-ease), box-shadow .25s; }
.sj-logos .wp-block-image:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(31, 43, 68, .12); }
.sj-logos .wp-block-image img { max-height: 90px; width: auto; max-width: 100%; object-fit: contain; border-radius: 0; }
.sj-logos figcaption { text-align: center; margin-top: .5rem; }

/* ---------- Texte blanc en défonce : liens et boutons adaptés ---------- */
.has-blanc-color a:where(:not(.wp-element-button)) { color: inherit; }
.has-blanc-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: #fff; color: var(--wp--preset--color--marine); }
.has-blanc-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--wp--preset--color--ciel-clair); }
.has-blanc-color .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border: 2px solid #fff; }
.has-blanc-color .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--marine); }
.wp-block-button.is-style-outline > .wp-block-button__link { border-width: 2px; padding-top: calc(.9rem - 2px); padding-bottom: calc(.9rem - 2px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--marine); color: #fff; border-color: var(--wp--preset--color--marine); }
.wp-block-button__link { transition: background .2s, color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }

/* ---------- Bandes, cartes et éléments divers ---------- */
.sj-band { position: relative; overflow: hidden; isolation: isolate; }
.sj-band--arcs::before {
	content: ""; position: absolute; right: -80px; top: 50%; transform: translateY(-50%); width: min(50vw, 520px); aspect-ratio: 1;
	background: var(--sj-arcs) no-repeat center / contain; z-index: -1; pointer-events: none;
}
.sj-card { border-radius: var(--sj-radius); }
.sj-rainbow-bar { height: 6px; border-radius: 6px; background: var(--sj-rainbow); border: 0; max-width: 140px; margin-left: 0; }
.sj-eyebrow { text-transform: uppercase; letter-spacing: .14em; font-weight: 600; font-size: .85rem; margin-bottom: .25rem !important; }
.wp-block-details summary { cursor: pointer; font-weight: 600; font-size: 1.125rem; list-style: none; position: relative; padding-right: 2rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: .25rem; top: -.1rem; font-size: 1.5rem; font-weight: 400; transition: transform .25s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; }
.wp-block-image.is-style-rounded img { border-radius: 999px; }

/* Vidéo YouTube allégée (chargée au clic) */
.sj-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--sj-radius); overflow: hidden; background: #0d1424; }
.sj-video button { position: absolute; inset: 0; width: 100%; border: 0; padding: 0; cursor: pointer; background: transparent; }
.sj-video img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .85; transition: opacity .25s; }
.sj-video button:hover img { opacity: 1; }
.sj-video .sj-video__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: 50%;
	background: #D91F26; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}
.sj-video .sj-video__play svg { width: 30px; height: 30px; fill: #fff; margin-left: 4px; }
.sj-video .sj-video__label { position: absolute; left: 1rem; bottom: 1rem; color: #fff; font-weight: 600; text-shadow: 0 1px 8px rgba(0, 0, 0, .6); }
.sj-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Carte Google Maps */
.sj-map { border-radius: var(--sj-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--wp--preset--color--ciel-clair); position: relative; }
.sj-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.sj-map__load {
	position: absolute; inset: 0; width: 100%; border: 0; cursor: pointer; font: inherit; text-align: center; padding: 1.5rem;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem;
	color: var(--wp--preset--color--marine);
	background:
		radial-gradient(circle at 30% 40%, rgba(43, 120, 168, .10) 0 18%, transparent 19%),
		repeating-linear-gradient(0deg, transparent 0 38px, rgba(43, 120, 168, .08) 38px 40px),
		repeating-linear-gradient(90deg, transparent 0 38px, rgba(43, 120, 168, .08) 38px 40px),
		var(--wp--preset--color--ciel-clair);
}
.sj-map__load strong { font-size: 1.125rem; }
.sj-map__load small { color: var(--wp--preset--color--gris); }
.sj-map__note { font-size: .8rem; }
.sj-map__pin { width: 34px; height: 34px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: #D91F26; margin-bottom: .6rem; box-shadow: 0 6px 14px rgba(217, 31, 38, .35); }
.sj-map__load:hover strong { text-decoration: underline; }

/* ---------- Formulaire de contact ---------- */
.sj-form { display: grid; gap: 1.1rem; min-width: 0; }
.sj-form p, .sj-form__row > * { margin: 0 !important; min-width: 0; }
.sj-form input, .sj-form select, .sj-form textarea { max-width: 100%; min-width: 0; box-sizing: border-box; }
.sj-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 640px) { .sj-form__row { grid-template-columns: 1fr; } }
.sj-form label { display: block; font-weight: 600; margin-bottom: .35rem; font-size: .98rem; }
.sj-form .sj-req { color: #D91F26; }
.sj-form input[type="text"], .sj-form input[type="email"], .sj-form input[type="tel"], .sj-form select, .sj-form textarea {
	width: 100%; font: inherit; color: var(--wp--preset--color--marine); background: #fff;
	border: 1.5px solid #C9D6E3; border-radius: 10px; padding: .8rem .95rem; min-height: 48px;
	transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none;
}
.sj-form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%231F2B44'%3E%3Cpath d='M5.3 7.3a1 1 0 0 1 1.4 0L10 10.6l3.3-3.3a1 1 0 1 1 1.4 1.4l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 18px; padding-right: 2.5rem; }
.sj-form textarea { min-height: 160px; resize: vertical; }
.sj-form input:focus, .sj-form select:focus, .sj-form textarea:focus { outline: none; border-color: var(--wp--preset--color--ciel); box-shadow: 0 0 0 4px rgba(43, 120, 168, .18); }
.sj-form .sj-consent { display: flex; gap: .7rem; align-items: flex-start; font-weight: 400; font-size: .92rem; line-height: 1.45; }
.sj-form .sj-consent input { width: 20px; height: 20px; margin-top: .1rem; flex-shrink: 0; accent-color: var(--wp--preset--color--ciel); }
.sj-form .sj-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.sj-form button[type="submit"] {
	justify-self: start; font: inherit; font-weight: 600; border: 0; cursor: pointer; border-radius: 999px;
	padding: 1rem 1.9rem; background: var(--wp--preset--color--marine); color: #fff; transition: background .2s, transform .2s;
}
.sj-form button[type="submit"]:hover { background: var(--wp--preset--color--ardoise); }
.sj-form button[disabled] { opacity: .6; cursor: progress; }
.sj-form__note { font-size: .85rem; color: var(--wp--preset--color--gris); margin: 0; }
.sj-notice { border-radius: 12px; padding: 1rem 1.2rem; font-weight: 500; margin-bottom: 1rem; }
.sj-notice--ok { background: #E7F4EA; color: #1D5A2E; border-left: 5px solid #2F7A45; }
.sj-notice--err { background: #FDECEC; color: #8A1116; border-left: 5px solid #D91F26; }

/* ---------- Pied de page ---------- */
.sj-footer { position: relative; }
.sj-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--sj-rainbow); }
.sj-footer a { color: var(--wp--preset--color--marine); text-decoration: none; }
.sj-footer a:hover { text-decoration: underline; color: var(--wp--preset--color--ciel); }
.sj-footer .wp-block-site-logo img { max-height: 70px; width: auto; }
.sj-footer h2 { font-size: 1.0625rem; font-style: normal; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .75rem; }
.sj-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.sj-footer .wp-block-social-links .wp-social-link { color: var(--wp--preset--color--marine); }
.sj-footer__bottom { font-size: .9rem; color: var(--wp--preset--color--gris); }
.sj-footer__bottom a { color: var(--wp--preset--color--gris); }

/* Apparition douce au défilement (désactivée si l'utilisateur limite les animations) */
.sj-reveal-ready { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--sj-ease), transform .7s var(--sj-ease); }
	.sj-reveal-ready.is-visible { opacity: 1; transform: none; }

/* Impression */
@media print {
	.sj-header, .sj-footer, .sj-carousel__nav { display: none !important; }
	.sj-slide { min-height: 0; color: #000 !important; background: #fff !important; }
}

/* Couleur d'accent déduite de la couleur de fond (utilisée par la piste B) */
.has-tc-background-color { --sj-accent: var(--wp--preset--color--tc); }
.has-gea-background-color { --sj-accent: var(--wp--preset--color--gea); }
.has-gc-background-color { --sj-accent: var(--wp--preset--color--gc); }
.has-gb-background-color { --sj-accent: var(--wp--preset--color--gb); }
.has-rt-background-color { --sj-accent: var(--wp--preset--color--rt); }
.has-cs-background-color { --sj-accent: var(--wp--preset--color--cs); }
.has-hse-background-color { --sj-accent: var(--wp--preset--color--hse); }
.has-marine-background-color { --sj-accent: var(--wp--preset--color--marine); }
.has-ciel-background-color { --sj-accent: var(--wp--preset--color--ciel); }
.has-ardoise-background-color { --sj-accent: var(--wp--preset--color--ardoise); }

/* ==========================================================================
   Motion et conversion (version 1.1)
   Seuls transform et opacity sont animés ; tout s'arrête si l'utilisateur limite les animations.
   ========================================================================== */

/* En-tête qui se compacte */
.sj-header .wp-block-site-logo img { transform-origin: left center; transition: transform .35s var(--sj-ease); }
.sj-header.is-compact .wp-block-site-logo img { transform: scale(.86); }
/* Sous-menu des expertises sur deux colonnes */
@media (min-width: 1080px) {
	.sj-header .wp-block-navigation__submenu-container:has(> li:nth-child(6)) { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 520px !important; gap: .15rem; }
}

/* Boutons du thème (formulaire, barre mobile) */
.sj-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: .85rem 1.6rem; border-radius: 999px; font: inherit; font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer; border: 2px solid var(--wp--preset--color--marine); background: var(--wp--preset--color--marine); color: #fff; transition: background .2s, color .2s, transform .2s, border-color .2s; }
.sj-btn:hover { background: var(--wp--preset--color--ardoise); border-color: var(--wp--preset--color--ardoise); color: #fff; transform: translateY(-1px); }
.sj-btn--outline { background: transparent; color: var(--wp--preset--color--marine); }
.sj-btn--ghost { background: transparent; border-color: transparent; color: var(--wp--preset--color--marine); padding-inline: .5rem; }
.sj-btn--ghost:hover { background: var(--wp--preset--color--ciel-clair); border-color: var(--wp--preset--color--ciel-clair); color: var(--wp--preset--color--marine); }
.sj-btn--cta { background: var(--wp--preset--color--tc); border-color: var(--wp--preset--color--tc); }
.sj-btn--cta:hover { background: #B3141B; border-color: #B3141B; }
.sj-btn::after, .wp-block-button__link::after { content: ""; display: inline-block; width: 0; transition: transform .25s var(--sj-ease); }

/* Titres de section : soulignement arc-en-ciel */
.sj-eyebrow + .wp-block-heading { position: relative; padding-bottom: .55rem; }
.sj-eyebrow + .wp-block-heading::after { content: ""; position: absolute; left: 0; bottom: 0; width: 120px; height: 5px; border-radius: 5px; background: var(--sj-rainbow); transform-origin: left; transition: transform .9s var(--sj-ease) .2s; }
.sj-reveal-ready .sj-eyebrow + .wp-block-heading::after { transform: scaleX(0); }
.sj-reveal-ready.is-visible .sj-eyebrow + .wp-block-heading::after { transform: scaleX(1); }

/* Carrousel : arcs dessinés, code du département, texte en cascade, progression */
.sj-slide::before { display: none; }
.sj-slide > .sj-slide-code, .sj-slide > .sj-slide-arcs { max-width: none !important; margin: 0 !important; }
.sj-slide > .sj-slide-code { width: auto !important; }
.sj-slide > .wp-block-group { position: relative; z-index: 1; }
.sj-slide-arcs { position: absolute; right: -4%; bottom: -14%; width: min(74vw, 760px); aspect-ratio: 1; z-index: 0; pointer-events: none; }
.sj-slide-arcs path { fill: none; stroke: #fff; stroke-width: 16; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.sj-slide-code { position: absolute; right: clamp(1rem, 6vw, 6rem); top: 50%; transform: translateY(-50%); z-index: 0; font-weight: 800; font-size: clamp(6rem, 22vw, 20rem); line-height: .8; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, .22); pointer-events: none; user-select: none; }
@media (max-width: 760px) { .sj-slide-code { top: auto; bottom: 4.5rem; transform: none; font-size: 7rem; -webkit-text-stroke-width: 1.5px; } }
.sj-slide .sj-w { display: inline-block; }
.sj-carousel.is-ready .sj-slide:not(.is-active) .sj-w { opacity: 0; transform: translateY(.45em); }
	.sj-carousel.is-ready .sj-slide.is-active .sj-w { opacity: 1; transform: none; transition: opacity .6s var(--sj-ease), transform .6s var(--sj-ease); transition-delay: calc(var(--d, 0) * 45ms + 120ms); }
	.sj-carousel.is-ready .sj-slide:not(.is-active) .sj-kicker, .sj-carousel.is-ready .sj-slide:not(.is-active) .sj-slide__text, .sj-carousel.is-ready .sj-slide:not(.is-active) .wp-block-buttons { opacity: 0; transform: translateY(16px); }
	.sj-carousel.is-ready .sj-slide.is-active .sj-kicker { opacity: 1; transform: none; transition: opacity .5s var(--sj-ease), transform .5s var(--sj-ease); }
	.sj-carousel.is-ready .sj-slide.is-active .sj-slide__text { opacity: 1; transform: none; transition: opacity .7s var(--sj-ease) .45s, transform .7s var(--sj-ease) .45s; }
	.sj-carousel.is-ready .sj-slide.is-active .wp-block-buttons { opacity: 1; transform: none; transition: opacity .7s var(--sj-ease) .6s, transform .7s var(--sj-ease) .6s; }
	.sj-carousel.is-ready .sj-slide:not(.is-active) .sj-slide-arcs path { stroke-dashoffset: 1; }
	.sj-carousel.is-ready .sj-slide.is-active .sj-slide-arcs path { stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--sj-ease); transition-delay: calc(var(--a, 0) * 90ms); }
	.sj-carousel.is-ready .sj-slide:not(.is-active) .sj-slide-code { opacity: 0; }
	.sj-carousel.is-ready .sj-slide.is-active .sj-slide-code { opacity: 1; transition: opacity 1s var(--sj-ease) .2s; }
.sj-carousel__dot { position: relative; overflow: hidden; }
.sj-carousel__dot[aria-current="true"]::after { content: ""; position: absolute; inset: 0; background: #FFA91F; transform-origin: left; transform: scaleX(0); }
.sj-carousel.is-playing .sj-carousel__dot[aria-current="true"]::after { animation: sj-dotfill 6500ms linear forwards; }
@keyframes sj-dotfill { to { transform: scaleX(1); } }
.sj-carousel__count { color: #fff; font-weight: 600; font-size: .9rem; font-variant-numeric: tabular-nums; min-width: 3.5em; text-align: center; }

/* Bandeau défilant */
.sj-ticker-wrap { margin-top: 0 !important; margin-bottom: 0 !important; }
@property --sj-tick { syntax: "<color>"; inherits: true; initial-value: #1F2B44; }
.sj-ticker { --sj-tick: #1F2B44; background-color: var(--sj-tick); color: #fff; overflow: hidden; padding-block: .95rem; position: relative; transition: --sj-tick .7s var(--sj-ease), background-color .7s var(--sj-ease); }
.sj-ticker::before, .sj-ticker::after { content: ""; position: absolute; top: 0; bottom: 0; width: 60px; z-index: 1; pointer-events: none; }
.sj-ticker::before { left: 0; background: linear-gradient(90deg, var(--sj-tick), transparent); }
.sj-ticker::after { right: 0; background: linear-gradient(-90deg, var(--sj-tick), transparent); }
.sj-ticker__track { display: flex; width: max-content; animation: sj-ticker 48s linear infinite; }
.sj-ticker__track > div { display: flex; }
.sj-ticker:hover .sj-ticker__track { animation-play-state: paused; }
.sj-ticker__item { display: inline-flex; align-items: center; gap: .7rem; padding-inline: 1.4rem; font-weight: 500; font-size: 1.0625rem; white-space: nowrap; }
.sj-ticker__item i { width: 10px; height: 10px; border-radius: 99px; flex-shrink: 0; box-shadow: 0 0 0 2px rgba(255, 255, 255, .9); }
@keyframes sj-ticker { to { transform: translateX(-50%); } }


/* Orienteur en 2 clics */
.sj-finder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: start; margin-top: var(--wp--preset--spacing--30); }
@media (max-width: 900px) { .sj-finder { grid-template-columns: 1fr; } }
.sj-finder__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 480px) { .sj-finder__choices { grid-template-columns: 1fr; } }
.sj-choice { display: flex; align-items: center; gap: .75rem; min-height: 64px; padding: .85rem 1rem; text-align: left; font: inherit; font-weight: 500; line-height: 1.3; color: var(--wp--preset--color--marine); background: #fff; border: 2px solid #D5E2EE; border-radius: 14px; cursor: pointer; transition: border-color .2s, transform .2s var(--sj-ease), box-shadow .2s; }
.sj-choice:hover { border-color: var(--sj-accent, var(--wp--preset--color--ciel)); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(31, 43, 68, .08); }
.sj-sw { flex-shrink: 0; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--sj-accent, var(--wp--preset--color--ardoise)); transition: transform .3s var(--sj-ease); }
.sj-sw img { width: 22px; height: 22px; border-radius: 0; }
.sj-choice[aria-checked="true"] { border-color: var(--sj-accent, var(--wp--preset--color--ciel)); background: var(--wp--preset--color--ciel-clair); box-shadow: inset 0 0 0 1px var(--sj-accent, var(--wp--preset--color--ciel)); }
.sj-choice[aria-checked="true"] .sj-sw { transform: scale(1.08) rotate(-6deg); }
.sj-finder__result { position: relative; min-height: 340px; border-radius: 20px; overflow: hidden; isolation: isolate; color: #fff; padding: var(--wp--preset--spacing--40); display: flex; flex-direction: column; gap: .9rem; background: var(--sj-accent, #1F2B44); transition: background-color .5s var(--sj-ease); }
.sj-finder__result::before { content: ""; position: absolute; right: -60px; bottom: -60px; width: 320px; aspect-ratio: 1; background: var(--sj-arcs) no-repeat right bottom / contain; z-index: -1; }
.sj-finder__ico { width: 64px; height: 64px; border-radius: 0; }
.sj-finder__result h3 { font-size: var(--wp--preset--font-size--x-large); margin: 0; color: #fff; }
.sj-finder__result .sj-eyebrow, .sj-finder__result p, .sj-finder__result li { color: #fff; margin: 0; }
.sj-finder__result .sj-list li::before { border-color: #fff; }
.sj-finder__btns { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: auto; padding-top: .5rem; }
.sj-finder__btns .sj-btn { background: #fff; color: var(--wp--preset--color--marine); border-color: #fff; }
.sj-finder__btns .sj-btn--outline { background: transparent; color: #fff; }
.sj-finder__btns .sj-btn--outline:hover { background: #fff; color: var(--wp--preset--color--marine); }
.sj-finder__result.swap > * { animation: sj-resin .55s var(--sj-ease) both; } .sj-finder__result.swap > *:nth-child(2) { animation-delay: .05s; } .sj-finder__result.swap > *:nth-child(3) { animation-delay: .1s; } .sj-finder__result.swap > *:nth-child(4) { animation-delay: .15s; } .sj-finder__result.swap > *:nth-child(5) { animation-delay: .2s; }
@keyframes sj-resin { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Frise de la méthode */
.sj-timeline { list-style: none; margin: var(--wp--preset--spacing--30) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; position: relative; }
.sj-timeline::before, .sj-timeline::after { content: ""; position: absolute; left: 32px; right: 32px; top: 31px; height: 4px; border-radius: 4px; }
.sj-timeline::before { background: #D5E2EE; }
.sj-timeline::after { background: var(--sj-rainbow); transform-origin: left; }
.sj-tl { position: relative; display: flex; flex-direction: column; gap: .5rem; }
.sj-tl__dot { position: relative; z-index: 1; width: 66px; height: 66px; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--ciel); box-shadow: 0 0 0 8px var(--wp--preset--color--ciel-clair); }
.sj-tl__dot img { width: 28px; height: 28px; border-radius: 0; }
.sj-tl__num { font-weight: 800; color: var(--wp--preset--color--ciel); letter-spacing: .08em; font-size: .85rem; }
.sj-tl h3 { font-size: 1.25rem; margin: 0; }
.sj-tl p { margin: 0; }
.sj-js .sj-timeline.is-armed::after { transform: scaleX(0); }
	.sj-js .sj-timeline.is-armed.is-visible::after { transform: scaleX(1); transition: transform 1.6s var(--sj-ease) .2s; }
	.sj-js .sj-timeline.is-armed .sj-tl { opacity: 0; transform: translateY(20px); }
	.sj-js .sj-timeline.is-armed.is-visible .sj-tl { opacity: 1; transform: none; transition: opacity .6s var(--sj-ease), transform .6s var(--sj-ease); transition-delay: calc(var(--i, 0) * 280ms + 200ms); }
@media (max-width: 860px) {
	.sj-timeline { grid-template-columns: 1fr; gap: 1.75rem; }
	.sj-timeline::before, .sj-timeline::after { left: 31px; right: auto; top: 33px; bottom: 33px; width: 4px; height: auto; }
	.sj-timeline::after { transform-origin: top; background: linear-gradient(180deg, #47608B, #4D7DA5, #53953D, #4F945C, #FFA91F, #FD89FA, #FF3131); }
	.sj-js .sj-timeline.is-armed::after { transform: scaleY(0); }
	.sj-js .sj-timeline.is-armed.is-visible::after { transform: scaleY(1); }
	.sj-tl { display: grid; grid-template-columns: 66px minmax(0, 1fr); column-gap: 1.1rem; row-gap: .25rem; }
	.sj-tl .sj-tl__dot { grid-row: 1 / span 3; }
}

/* Tuiles : inclinaison 3D et reflet qui suit la souris */
.sj-tiles { perspective: 1200px; }
.sj-tile .sj-glow { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0; transition: opacity .3s; background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .18), transparent 45%); }
.sj-tile:hover .sj-glow { opacity: 1; }
.sj-tile:not(.sj-tile--photo) > *:not(.sj-glow) { position: relative; z-index: 1; }
.sj-tile h3 a::after, .sj-tile h2 a::after { z-index: 2; }
@media (hover: hover) { .sj-logos img { filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; } .sj-logos .wp-block-image:hover img { filter: none; opacity: 1; } }

/* Barre d'action mobile et retour en haut */
.sj-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 140; display: none; gap: .6rem; padding: .7rem clamp(1rem, 4vw, 2.5rem) calc(.7rem + env(safe-area-inset-bottom, 0px)); background: #fff; box-shadow: 0 -8px 24px rgba(31, 43, 68, .12); transform: translateY(110%); transition: transform .35s var(--sj-ease); }
.sj-mobile-cta .sj-btn { flex: 1; min-height: 46px; padding: .6rem .9rem; white-space: nowrap; font-size: .95rem; }
.sj-mobile-cta .sj-btn--cta { flex: 1.5; }
.sj-mobile-cta.is-on { transform: none; }
@media (max-width: 760px) { .sj-mobile-cta { display: flex; } body.sj-has-cta .sj-footer { padding-bottom: calc(var(--wp--preset--spacing--30) + 80px) !important; } }
.sj-to-top { position: fixed; right: max(1rem, env(safe-area-inset-right, 0px)); bottom: calc(env(safe-area-inset-bottom, 0px) + 1rem); z-index: 141; width: 52px; height: 52px; border: 0; padding: 0; border-radius: 50%; background: #fff; color: var(--wp--preset--color--marine); cursor: pointer; box-shadow: 0 10px 26px rgba(31, 43, 68, .2); display: grid; place-items: center; opacity: 0; transform: translateY(16px) scale(.9); pointer-events: none; transition: opacity .3s, transform .3s var(--sj-ease); }
.sj-to-top.is-on { opacity: 1; transform: none; pointer-events: auto; }
.sj-ring { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.sj-ring circle { fill: none; stroke-width: 4; }
.sj-ring .bg { stroke: #D5E2EE; }
.sj-ring .fg { stroke: var(--wp--preset--color--ciel); stroke-dasharray: 1; stroke-dashoffset: 1; }
.sj-chev { width: 20px; height: 20px; }
@media (max-width: 760px) { .sj-to-top { bottom: calc(env(safe-area-inset-bottom, 0px) + 84px); width: 46px; height: 46px; } }

/* Formulaire en 3 étapes */
.sj-stepper { display: grid; gap: .6rem; }
.sj-stepper__bar { height: 6px; border-radius: 6px; background: #D5E2EE; overflow: hidden; }
.sj-stepper__bar span { display: block; height: 100%; background: var(--sj-rainbow); transform-origin: left; transform: scaleX(.3333); transition: transform .5s var(--sj-ease); }
.sj-stepper__labels { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); font-size: .85rem; font-weight: 600; color: var(--wp--preset--color--gris); }
.sj-stepper__labels li:nth-child(2) { text-align: center; } .sj-stepper__labels li:nth-child(3) { text-align: right; }
.sj-stepper__labels .is-on { color: var(--wp--preset--color--marine); }
.sj-fstep { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 1.1rem; }
.sj-fstep__title { font-size: var(--wp--preset--font-size--large); font-weight: 700; font-style: italic; padding: 0; margin-bottom: .25rem; }
.sj-form.is-stepper .sj-fstep:not(.is-current) { display: none; }
.sj-form.is-stepper .sj-fstep.is-current { animation: sj-stepin .45s var(--sj-ease); }
@keyframes sj-stepin { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
.sj-form:not(.is-stepper) [data-next], .sj-form:not(.is-stepper) [data-prev] { display: none; }
.sj-fstep__nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; align-items: center; }
.sj-fstep__nav .sj-btn:only-child { margin-left: auto; }
.sj-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
@media (max-width: 520px) { .sj-choices { grid-template-columns: 1fr; } }
.sj-form .sj-choices label { position: relative; display: flex; align-items: center; gap: .7rem; min-height: 58px; margin: 0; padding: .7rem .9rem; border: 2px solid #D5E2EE; border-radius: 12px; cursor: pointer; font-weight: 500; line-height: 1.3; transition: border-color .2s, background .2s; }
.sj-choices input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sj-choices .sj-sw { width: 34px; height: 34px; border-radius: 9px; }
.sj-choices .sj-sw img { width: 20px; height: 20px; }
.sj-form .sj-choices label:hover { border-color: var(--sj-accent, var(--wp--preset--color--ciel)); }
.sj-form .sj-choices label:has(input:checked) { border-color: var(--sj-accent, var(--wp--preset--color--ciel)); background: var(--wp--preset--color--ciel-clair); font-weight: 700; }
.sj-form .sj-choices label:has(input:focus-visible) { outline: 3px solid #FFA91F; outline-offset: 2px; }
.sj-err { color: #A3161C; font-size: .875rem; margin: 0; }
.sj-form .has-error input, .sj-form .has-error textarea { border-color: var(--wp--preset--color--tc); }
.sj-trust { font-size: .85rem; }
.sj-trust::before { content: ""; display: inline-block; width: .9em; height: .9em; margin-right: .4em; vertical-align: -0.1em; background: var(--wp--preset--color--hse); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6l8-3z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6l8-3z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center / contain no-repeat; }
.sj-err--field { display: block; margin-top: .35rem; }
.sj-form .has-error .sj-consent { color: #A3161C; }

/* ==========================================================================
   Version 1.2 : menu mobile, réseaux sociaux, transitions et finitions
   ========================================================================== */

/* Réseaux sociaux */
.sj-social__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.sj-social__link { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--wp--preset--color--marine); background: transparent; border: 1.5px solid #D5E2EE; transition: background-color .2s, color .2s, border-color .2s, transform .25s var(--sj-ease); }
.sj-social__link svg { width: 18px; height: 18px; }
.sj-social__link:hover, .sj-social__link:focus-visible { color: #fff; transform: translateY(-2px); }
.sj-social__link--linkedin:hover, .sj-social__link--linkedin:focus-visible { background: #0A66C2; border-color: #0A66C2; }
.sj-social__link--instagram:hover, .sj-social__link--instagram:focus-visible { background: #C13584; border-color: #C13584; }
.sj-social__link--facebook:hover, .sj-social__link--facebook:focus-visible { background: #1877F2; border-color: #1877F2; }
.sj-social__title { font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 .6rem; }
.sj-header .sj-social__list { gap: .3rem; flex-wrap: nowrap; }
.sj-header .sj-social__link { width: 36px; height: 36px; border: 0; }
.sj-header .sj-social__link svg { width: 19px; height: 19px; }
.sj-header .wp-block-shortcode, .sj-header__right > p:empty { margin: 0; }
@media (max-width: 1279px) and (min-width: 1080px) { .sj-header .sj-social { display: none; } }
@media (max-width: 1079px) { .sj-header .sj-social { display: none; } }
.sj-social--footer { margin-top: 1.25rem; }
.sj-social--contact { margin: 1.25rem 0; }
.sj-social--contact .sj-social__link { width: 46px; height: 46px; background: #fff; border-color: #fff; }
.sj-social--contact .sj-social__link svg { width: 20px; height: 20px; }

/* Menu mobile maison : plein écran, sous-menus en accordéon, réseaux et devis à portée de pouce */
.sj-burger { display: none; position: relative; width: 48px; height: 48px; margin-right: -8px; border: 0; padding: 0; background: transparent; color: var(--wp--preset--color--marine); cursor: pointer; border-radius: 12px; }
.sj-burger span { position: absolute; left: 12px; right: 12px; height: 2.5px; border-radius: 3px; background: currentColor; transition: transform .35s var(--sj-ease), opacity .2s; }
.sj-burger span:nth-child(1) { top: 16px; } .sj-burger span:nth-child(2) { top: 23px; } .sj-burger span:nth-child(3) { top: 30px; }
@media (max-width: 1079px) {
	.sj-js .sj-burger { display: block; }
	.sj-js .sj-header .wp-block-navigation__responsive-container-open { display: none !important; }
}
.sj-drawer { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; background: var(--wp--preset--color--marine); color: #fff; padding: 0 clamp(1.25rem, 6vw, 3rem) calc(1.25rem + env(safe-area-inset-bottom, 0px)); overflow-y: auto; overscroll-behavior: contain; visibility: hidden; opacity: 0; transition: opacity .3s var(--sj-ease), visibility 0s linear .3s; }
.sj-drawer.is-open { visibility: visible; opacity: 1; transition: opacity .3s var(--sj-ease); }
.sj-drawer::before { content: ""; position: absolute; right: -80px; bottom: -80px; width: 340px; aspect-ratio: 1; background: var(--sj-arcs) no-repeat right bottom / contain; opacity: .5; pointer-events: none; }
.sj-drawer__top { display: flex; align-items: center; justify-content: space-between; min-height: 72px; padding-top: env(safe-area-inset-top, 0px); position: sticky; top: 0; background: var(--wp--preset--color--marine); z-index: 2; }
.sj-drawer__title { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #BFD3E8; }
.sj-drawer__close { width: 48px; height: 48px; margin-right: -8px; border: 0; border-radius: 12px; background: rgba(255, 255, 255, .08); color: #fff; display: grid; place-items: center; cursor: pointer; }
.sj-drawer__close svg { width: 24px; height: 24px; }
.sj-drawer__nav { position: relative; z-index: 1; flex: 1; padding-top: .5rem; }
.sj-drawer__nav ul { list-style: none; margin: 0; padding: 0; }
.sj-drawer__nav > ul > li { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.sj-drawer__row { display: flex; align-items: center; gap: .5rem; }
.sj-drawer__nav a { color: #fff; text-decoration: none; }
.sj-drawer__nav > ul > li > .sj-drawer__row > a, .sj-drawer__nav > ul > li > a { flex: 1; display: block; padding: 1rem 0; font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.sj-drawer__nav a[aria-current] { color: #FFA91F; }
.sj-drawer__toggle { width: 48px; height: 48px; flex-shrink: 0; border: 0; border-radius: 12px; background: rgba(255, 255, 255, .08); color: #fff; display: grid; place-items: center; cursor: pointer; }
.sj-drawer__toggle svg { width: 20px; height: 20px; transition: transform .3s var(--sj-ease); }
.sj-drawer__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.sj-drawer__sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s var(--sj-ease); }
.sj-drawer__sub > ul { overflow: hidden; }
.sj-drawer__sub.is-open { grid-template-rows: 1fr; }
.sj-drawer__sub li a { display: flex; align-items: center; gap: .75rem; padding: .6rem 0; font-size: 1.05rem; font-weight: 500; color: rgba(255, 255, 255, .92); }
.sj-drawer__sub li:last-child a { padding-bottom: 1.1rem; }
.sj-drawer__sw { flex-shrink: 0; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--c, #4D7DA5); }
.sj-drawer__sw img { width: 17px; height: 17px; border-radius: 0; }
.sj-drawer__foot { position: relative; z-index: 1; display: grid; gap: 1.25rem; padding-top: 1.5rem; }
.sj-drawer__foot .sj-btn { width: 100%; }
.sj-drawer .sj-social__title { color: #BFD3E8; }
.sj-drawer .sj-social__link { color: #fff; border-color: rgba(255, 255, 255, .3); width: 48px; height: 48px; }
.sj-drawer .sj-social__link svg { width: 20px; height: 20px; }
.sj-drawer__addr { font-size: .9rem; color: #BFD3E8; margin: 0; }
html.sj-lock, html.sj-lock body { overflow: hidden; }
.sj-drawer__nav > ul > li, .sj-drawer__foot > * { opacity: 0; transform: translateY(18px); }
	.sj-drawer.is-open .sj-drawer__nav > ul > li, .sj-drawer.is-open .sj-drawer__foot > * { opacity: 1; transform: none; transition: opacity .5s var(--sj-ease), transform .5s var(--sj-ease); transition-delay: calc(var(--i, 0) * 55ms + 80ms); }
@media (min-width: 1080px) { .sj-drawer { display: none; } }

/* Transition entre les pages : balayage arc-en-ciel */
.sj-wipe { position: fixed; inset: 0; z-index: 9999; display: grid; grid-template-columns: repeat(7, 1fr); pointer-events: none; }
.sj-wipe i { transform: scaleY(0); transform-origin: bottom; }
.sj-wipe i:nth-child(1) { background: #47608B; } .sj-wipe i:nth-child(2) { background: #4D7DA5; } .sj-wipe i:nth-child(3) { background: #53953D; } .sj-wipe i:nth-child(4) { background: #4F945C; } .sj-wipe i:nth-child(5) { background: #FFA91F; } .sj-wipe i:nth-child(6) { background: #FD89FA; } .sj-wipe i:nth-child(7) { background: #FF3131; }
.sj-wipe.is-in i { animation: sj-wipein .28s cubic-bezier(.7, 0, .3, 1) forwards; animation-delay: calc(var(--n) * 22ms); }
html.sj-wipe-out .sj-wipe i { transform: scaleY(1); transform-origin: top; animation: sj-wipeout .42s cubic-bezier(.7, 0, .3, 1) forwards; animation-delay: calc(var(--n) * 30ms + 60ms); }
@keyframes sj-wipein { to { transform: scaleY(1); } }
@keyframes sj-wipeout { to { transform: scaleY(0); } }


/* Titres de page : mots en cascade, fil d'Ariane qui glisse */
.sj-page-hero h1 .sj-w { display: inline-block; }
.sj-page-hero h1 .sj-w { animation: sj-wordin .7s var(--sj-ease) both; animation-delay: calc(var(--d, 0) * 55ms + 120ms); }
	.sj-page-hero .sj-breadcrumb, .sj-page-hero .sj-intro, .sj-page-hero p { animation: sj-resin .7s var(--sj-ease) both .1s; }
	html.sj-wipe-out .sj-page-hero h1 .sj-w { animation-delay: calc(var(--d, 0) * 55ms + 420ms); }
@keyframes sj-wordin { from { opacity: 0; transform: translateY(.5em); } to { opacity: 1; transform: none; } }

/* Apparition en cascade des grilles (tuiles, logos, chiffres) */
.sj-stagger > * { opacity: 0; transform: translateY(26px) scale(.98); }
	.sj-stagger.is-visible > * { opacity: 1; transform: none; transition: opacity .7s var(--sj-ease), transform .7s var(--sj-ease); transition-delay: calc(var(--i, 0) * 70ms); }

/* Boutons : flèche qui glisse au survol */
.wp-block-buttons > .wp-block-button:first-child .wp-block-button__link::after, .sj-btn--arrow::after, .sj-finder__btns .sj-btn:first-child::after {
	content: ""; display: inline-block; width: 1em; height: 1em; margin-left: .45rem; vertical-align: -0.15em; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .25s var(--sj-ease);
}
.wp-block-button__link:hover::after, .sj-btn:hover::after { transform: translateX(4px); }
.sj-header .wp-block-button__link::after { display: none !important; }

/* Badge flottant sur la photo d'accueil */
.sj-photo-badge { position: relative; }
.sj-badge { position: absolute; left: -1rem; bottom: -1.25rem; display: flex; align-items: center; gap: .75rem; padding: .9rem 1.2rem; border-radius: 16px; background: #fff; color: var(--wp--preset--color--marine); box-shadow: 0 18px 40px rgba(31, 43, 68, .18); line-height: 1.2; }
.sj-badge strong { font-size: 2.25rem; font-weight: 800; color: var(--wp--preset--color--tc); line-height: 1; }
.sj-badge sup { font-size: .5em; color: #B8161D; }
.sj-badge span { font-size: .9rem; font-weight: 600; }
.sj-badge { animation: sj-bob 5s ease-in-out infinite; }
@keyframes sj-bob { 50% { transform: translateY(-6px); } }
@media (max-width: 781px) { .sj-badge { left: .75rem; bottom: .75rem; padding: .7rem 1rem; } .sj-badge strong { font-size: 1.8rem; } }

/* Icônes des tuiles qui se dessinent au survol */
.sj-icon svg { width: 52px; height: 52px; display: block; overflow: visible; }
.sj-icon--xl svg { width: 72px; height: 72px; }
.sj-icon svg [pathLength] { stroke-dasharray: 1; stroke-dashoffset: 0; }
.sj-tile:hover .sj-icon svg [pathLength] { animation: sj-draw 1s var(--sj-ease); }
	.sj-stagger.is-visible .sj-icon svg [pathLength] { animation: sj-draw 1.2s var(--sj-ease) both; animation-delay: calc(var(--i, 0) * 70ms + 250ms); }
@keyframes sj-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }

/* Sous-menu des expertises : pastilles colorées et accroche */
.sj-header .sj-mega-sw { flex-shrink: 0; width: 30px; height: 30px; border-radius: 9px; display: inline-grid; place-items: center; background: var(--c, #4D7DA5); margin-right: .65rem; vertical-align: middle; }
.sj-header .sj-mega-sw img { width: 17px; height: 17px; border-radius: 0; }
.sj-header .sj-mega-item { display: flex !important; align-items: flex-start; }
.sj-header .sj-mega-item b { display: block; font-weight: 600; line-height: 1.25; }
.sj-header .sj-mega-item small { display: block; color: var(--wp--preset--color--gris); font-size: .8rem; line-height: 1.35; margin-top: .15rem; font-weight: 400; white-space: normal; }
@media (min-width: 1080px) { .sj-header .wp-block-navigation__submenu-container:has(.sj-mega-item) { min-width: 600px !important; } }

/* Encadrés colorés des pages de niveau 2 : arcs et code du département */
.sj-visual { position: relative; overflow: hidden; isolation: isolate; }
.sj-visual::before { display: none; }
.sj-tile.sj-visual > .sj-slide-arcs { position: absolute; width: min(110%, 520px); right: -22%; bottom: -26%; z-index: -1; aspect-ratio: 1; pointer-events: none; }
.sj-visual .sj-slide-arcs path { fill: none; stroke: #fff; stroke-width: 16; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.sj-visual.sj-arcs-armed .sj-slide-arcs path { stroke-dashoffset: 1; }
	.sj-visual.sj-arcs-armed.is-visible .sj-slide-arcs path { stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--sj-ease); transition-delay: calc(var(--a, 0) * 90ms + 200ms); }

/* Message envoyé : coche animée */
.sj-success { display: grid; gap: .8rem; justify-items: start; padding: var(--wp--preset--spacing--40); border-radius: 18px; background: #E7F4EA; color: #1D5A2E; }
.sj-success svg { width: 64px; height: 64px; }
.sj-success circle, .sj-success path { fill: none; stroke: #2F7A45; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.sj-success circle { animation: sj-draw .7s var(--sj-ease) both; } .sj-success path { animation: sj-draw .45s var(--sj-ease) .55s both; }
.sj-success h3 { color: var(--wp--preset--color--marine); margin: 0; font-size: 1.5rem; }
.sj-success p { margin: 0; }
html.sj-scroll-tint { scrollbar-color: var(--sj-scroll, #1F2B44) transparent; }
.sj-btn { box-sizing: border-box; max-width: 100%; }
.sj-footer .sj-social__list { display: flex !important; flex-direction: row; gap: .5rem; padding: 0; }
.sj-footer .sj-social__list li { display: block; width: auto; margin: 0; padding: 0; }
.sj-footer .sj-social__list li::before { display: none; }
/* Points du carrousel : zone de tap de 24 px sans changer le visuel */
.sj-carousel__dots { gap: .1rem; padding: .1rem .35rem; }
.sj-carousel__dot { box-sizing: content-box; border: 6px solid transparent; background-clip: padding-box; }

/* ==========================================================================
   Version 1.3 : fluidité et animations sur toutes les plateformes
   ========================================================================== */
/* Inclinaison des tuiles : suit le pointeur sans à-coups, revient en douceur */
.sj-tile.is-tilting { transition: transform .12s linear, box-shadow .3s var(--sj-ease); }
.sj-header.is-compact { box-shadow: 0 6px 24px rgba(31, 43, 68, .10); }

/* Mouvements adoucis quand l'ordinateur demande moins d'animations
   (réglage « Effets d'animation » coupé, fréquent sous Windows) :
   les animations restent visibles, mais en fondus, sans grands déplacements. */
@media (prefers-reduced-motion: reduce) {
	.sj-reveal-ready, .sj-stagger > *, .sj-js .sj-timeline.is-armed .sj-tl, .sj-finder__result.swap > *,
	.sj-drawer__nav > ul > li, .sj-drawer__foot > *, .sj-form.is-stepper .sj-fstep.is-current { transform: none !important; }
	.sj-carousel.is-ready .sj-slide .sj-w, .sj-carousel.is-ready .sj-slide .sj-kicker, .sj-carousel.is-ready .sj-slide .sj-slide__text, .sj-carousel.is-ready .sj-slide .wp-block-buttons { transform: none !important; }
	.sj-page-hero h1 .sj-w, .sj-page-hero .sj-breadcrumb, .sj-page-hero p { animation-name: sj-fadein !important; }
	.sj-badge { animation: none; }
	.sj-ticker__track { animation-duration: 110s; }
	.sj-tile:hover, .sj-tile:focus-within { transform: none; }
	.sj-wipe i, html.sj-wipe-out .sj-wipe i { transform: none !important; }
	.sj-wipe.is-in i { animation: sj-fadein .25s ease forwards; opacity: 0; animation-delay: 0s; }
	html.sj-wipe-out .sj-wipe i { animation: sj-fadeout .35s ease .05s forwards; opacity: 1; }
	.sj-wipe i { opacity: 0; }
}
@keyframes sj-fadein { from { opacity: 0; } to { opacity: 1; } }
@keyframes sj-fadeout { from { opacity: 1; } to { opacity: 0; } }
.sj-social__link--tiktok:hover, .sj-social__link--tiktok:focus-visible { background: #111; border-color: #111; }

/* v1.4 : mention de soutien IUT et DOFIPE dans le pied de page */
.sj-soutien { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "iut texte dofipe"; align-items: center; gap: clamp(1.5rem, 4vw, 3.5rem); margin-top: var(--wp--preset--spacing--40, 2.5rem); padding: clamp(2rem, 4vw, 2.75rem) 0; margin-bottom: var(--wp--preset--spacing--20, 1rem); border-top: 1px solid #D5E2EE; border-bottom: 1px solid #D5E2EE; }
.sj-soutien__logo { display: flex; align-items: center; justify-content: center; background: #FFFFFF; border-radius: 14px; padding: .7rem 1rem; box-shadow: 0 8px 22px rgba(31, 43, 68, .07); }
.sj-soutien__logo img { display: block; height: 58px; width: auto; max-width: 100%; }
.sj-soutien__logo--iut { grid-area: iut; }
.sj-soutien__logo--dofipe { grid-area: dofipe; }
.sj-soutien__texte { grid-area: texte; justify-self: center; max-width: 36ch; margin: 0; text-align: center; text-wrap: balance; font-size: clamp(1.0625rem, 1.5vw, 1.25rem); font-weight: 600; font-style: italic; line-height: 1.45; color: var(--wp--preset--color--marine); }
.sj-soutien__texte strong { font-weight: 700; color: #1F5E88; }
@media (max-width: 900px) {
	.sj-soutien { grid-template-columns: 1fr 1fr; grid-template-areas: "texte texte" "iut dofipe"; gap: 1.25rem; }
	.sj-soutien__logo img { height: 46px; }
}
@media (max-width: 420px) {
	.sj-soutien { grid-template-columns: 1fr; grid-template-areas: "texte" "iut" "dofipe"; }
	.sj-soutien__logo { justify-self: center; width: 100%; max-width: 300px; box-sizing: border-box; }
}
@media (max-width: 1400px) { .sj-footer__bottom { padding-right: 72px; } }

/* ==========================================================================
   v1.5 : respiration, typographie, menu des expertises, photos, appels à l'action
   ========================================================================== */

/* Logo Syner'JE : plus d'air en haut et en bas */
:root { --sj-header-h: 96px; }
.sj-header .wp-block-site-logo { padding-block: .85rem; }
.sj-header .wp-block-site-logo img { max-height: 60px; }
.sj-footer .wp-block-site-logo { margin-block: .5rem 1rem !important; }
@media (max-width: 1079px) {
	:root { --sj-header-h: 80px; }
	.sj-header__inner { min-height: 80px; }
	.sj-header .wp-block-site-logo { padding-block: .7rem; }
	.sj-header .wp-block-site-logo img { max-height: 50px; }
}

/* Typographie : titres un peu moins massifs, lignes plus lisibles */
.sj-slide h2, .sj-slide .sj-slide__title { line-height: 1.06; max-width: 15ch; }
.sj-slide .sj-slide__text { font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); line-height: 1.55; }
.sj-band p.has-large-font-size, .sj-split p.has-large-font-size, .sj-intro { font-size: clamp(1.0625rem, 1.5vw, 1.1875rem) !important; line-height: 1.6; }
h2.wp-block-heading { text-wrap: balance; }
.sj-page-hero h1 { font-size: clamp(2rem, 4.2vw, 3rem); }

/* Menu « Nos expertises » élargi (ordinateur) */
@media (min-width: 1080px) {
	.sj-header__inner { position: relative; }
	.sj-header .wp-block-navigation, .sj-header .wp-block-navigation__container, .sj-header .sj-header__right,
	.sj-header .wp-block-navigation__responsive-container, .sj-header .wp-block-navigation__responsive-close,
	.sj-header .wp-block-navigation__responsive-dialog, .sj-header .wp-block-navigation__responsive-container-content,
	.sj-header .wp-block-navigation .wp-block-navigation-item.sj-mega { position: static !important; }
	.sj-header .sj-mega > .wp-block-navigation__submenu-container { left: 50% !important; right: auto !important; top: calc(100% - 6px) !important; transform: translateX(-50%); }
	.sj-header .sj-mega:not(:hover):not(:focus-within) > .wp-block-navigation__submenu-container:not(.sj-open) { pointer-events: none; }
	.sj-header .sj-mega:is(:hover, :focus-within) > .wp-block-navigation__submenu-container,
	.sj-header .sj-mega > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
		display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) 290px !important; grid-auto-rows: min-content;
		gap: .2rem 1rem; width: min(920px, calc(100vw - 48px)) !important; height: auto !important; min-width: 0 !important; overflow: visible !important;
		padding: 1.25rem !important; border-radius: 18px;
	}
	.sj-header .sj-mega > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -20px; height: 20px; }
	.sj-header .sj-mega-promo { grid-column: 3; grid-row: 1 / span 5; display: flex !important; flex-direction: column; gap: .5rem; padding: 0 0 .25rem; margin-left: .25rem; border-left: 1px solid #E3ECF5; padding-left: 1.1rem; }
	.sj-header .sj-mega-all { grid-column: 1 / span 2; border-top: 1px solid #E3ECF5; margin-top: .35rem; padding-top: .35rem; }
	.sj-header .sj-mega-all .wp-block-navigation-item__content { font-weight: 700 !important; color: var(--wp--preset--color--ciel) !important; }
}
.sj-mega-promo, .sj-mega-all { display: none !important; }
@media (min-width: 1080px) { .sj-header .sj-mega-promo { display: flex !important; } .sj-header .sj-mega-all { display: list-item !important; list-style: none; } }
.is-menu-open .sj-mega-promo { display: none !important; }
.sj-mega-promo__photo { border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 10; background: #E3ECF5; }
.sj-mega-promo__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--sj-ease); }
.sj-mega-promo:hover .sj-mega-promo__photo img { transform: scale(1.04); }
.sj-mega-promo__t { font-weight: 700; font-size: 1rem; line-height: 1.3; margin: .35rem 0 0; color: var(--wp--preset--color--marine); white-space: normal; }
.sj-mega-promo__p { font-size: .875rem; line-height: 1.45; margin: 0; color: var(--wp--preset--color--gris); white-space: normal; }
.sj-mega-promo__cta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin: .35rem 0 0; }
.sj-header .sj-mega-promo__btn { display: inline-flex; padding: .55rem 1rem !important; border-radius: 999px; background: var(--wp--preset--color--marine); color: #fff !important; font-weight: 600; font-size: .875rem; text-decoration: none; }
.sj-header .sj-mega-promo__btn:hover { background: var(--wp--preset--color--ciel); }
.sj-header .sj-mega-promo__link { font-weight: 600; font-size: .875rem; color: var(--wp--preset--color--ciel) !important; text-decoration: underline; text-underline-offset: 3px; padding: 0 !important; }

/* Encadré « Pour qui ? » des expertises : photo du département */
.sj-visual.has-photo { padding-top: 0 !important; }
.sj-visual__photo { margin: 0 -40px 1.75rem !important; aspect-ratio: 4 / 3; overflow: hidden; position: relative; }
.sj-visual__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.sj-visual__photo::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .25)); }
@media (max-width: 781px) { .sj-visual__photo { margin: 0 calc(var(--wp--preset--spacing--40, 2rem) * -1) 1.5rem !important; } }

/* Bandeau titre des pages : photo teintée */
.sj-page-hero.has-photo { padding-top: clamp(6rem, 13vw, 10rem) !important; }
.sj-page-hero__bg { position: absolute; inset: 0; margin: 0; z-index: -2; }
.sj-page-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }
.sj-page-hero.has-photo::after { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(31, 43, 68, .92) 0%, rgba(43, 120, 168, .78) 55%, rgba(43, 120, 168, .35) 100%); }
@media (max-width: 781px) { .sj-page-hero.has-photo::after { background: linear-gradient(180deg, rgba(31, 43, 68, .7), rgba(31, 43, 68, .92)); } }

/* Bandeau « Un projet, une question ? » : photo de fond et appels variés */
.sj-band.has-photo { isolation: isolate; }
.sj-band__bg { position: absolute; inset: 0; margin: 0; z-index: -2; }
.sj-band__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; display: block; }
.sj-band.has-photo::after { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(31, 43, 68, .96) 0%, rgba(31, 43, 68, .88) 45%, rgba(31, 43, 68, .45) 100%); }
@media (max-width: 781px) { .sj-band.has-photo::after { background: rgba(31, 43, 68, .9); } }
.sj-cta-alt { margin-top: 1.25rem !important; font-size: .9375rem; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; opacity: .95; }
.sj-cta-alt a { color: #fff !important; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.sj-cta-alt a:hover { text-decoration-color: #FFA91F; }
.sj-cta-alt span { opacity: .6; }

/* Encadré « On vous rappelle » (page Contact) */
.sj-rappel-card { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 1.25rem; align-items: center; padding: 1.1rem 1.25rem; border-radius: 18px; background: var(--wp--preset--color--ciel-clair); margin-bottom: 1.75rem; }
.sj-rappel-card__photo { border-radius: 14px; overflow: hidden; aspect-ratio: 3 / 4; }
.sj-rappel-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sj-rappel-card p { margin: 0 0 .4rem; }
.sj-rappel-card__t { font-weight: 700; font-size: 1.125rem; color: var(--wp--preset--color--marine); }
.sj-rappel-card__p { font-size: .9375rem; }
@media (max-width: 480px) { .sj-rappel-card { grid-template-columns: 84px minmax(0, 1fr); gap: .9rem; } }

/* Fenêtre « On vous rappelle » */
.sj-rappel { border: 0; padding: 0; border-radius: 22px; width: min(820px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; color: var(--wp--preset--color--marine); background: #fff; box-shadow: 0 40px 80px rgba(15, 25, 45, .35); }
.sj-rappel[open] { display: grid; grid-template-columns: 300px minmax(0, 1fr); }
.sj-rappel::backdrop { background: rgba(15, 25, 45, .55); backdrop-filter: blur(3px); }
.sj-rappel[open] { animation: sj-pop .35s var(--sj-ease); }
@keyframes sj-pop { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
.sj-rappel__media { position: relative; min-height: 100%; }
.sj-rappel__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sj-rappel__body { position: relative; padding: 2rem 2rem 1.5rem; }
.sj-rappel__body h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); font-style: normal; margin: .25rem 0 .5rem; line-height: 1.2; }
.sj-rappel__intro { margin: 0 0 1rem; color: var(--wp--preset--color--gris); }
.sj-rappel__close { position: absolute; top: .75rem; right: .75rem; width: 42px; height: 42px; border-radius: 999px; border: 0; background: #EEF3F8; color: var(--wp--preset--color--marine); cursor: pointer; display: grid; place-items: center; }
.sj-rappel__close:hover { background: #DCE7F2; }
.sj-rappel__close svg { width: 20px; height: 20px; }
.sj-rappel__form p { margin: 0 0 .8rem; }
.sj-rappel__form label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .3rem; }
.sj-rappel__form input[type="text"], .sj-rappel__form input[type="tel"], .sj-rappel__form select { width: 100%; box-sizing: border-box; min-height: 46px; padding: .6rem .8rem; border: 1.5px solid #C9D7E6; border-radius: 10px; font: inherit; background: #fff; color: inherit; }
.sj-rappel__form input:focus, .sj-rappel__form select:focus { outline: 3px solid rgba(43, 120, 168, .35); border-color: var(--wp--preset--color--ciel); }
.sj-rappel__form .sj-consent { display: flex; gap: .55rem; align-items: flex-start; font-weight: 400; font-size: .875rem; }
.sj-rappel__form .sj-consent input { margin-top: .2rem; width: 18px; height: 18px; flex-shrink: 0; }
.sj-rappel__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin: .5rem 0 .75rem; }
.sj-rappel__alt { font-size: .9rem; font-weight: 600; color: var(--wp--preset--color--ciel); }
.sj-rappel .sj-form__note { font-size: .8rem; color: var(--wp--preset--color--gris); margin: 0; }
.sj-rappel .sj-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .9rem; }
.sj-rappel__ok { display: grid; gap: .6rem; justify-items: start; padding-top: 1rem; }
.sj-rappel__ok[hidden] { display: none; }
.sj-rappel__ok h2 { margin: 0; }
.sj-rappel__check { width: 64px; height: 64px; }
.sj-rappel__check circle, .sj-rappel__check path { fill: none; stroke: #2F7A45; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.sj-rappel__ok:not([hidden]) .sj-rappel__check circle { animation: sj-draw .7s var(--sj-ease) both; }
.sj-rappel__ok:not([hidden]) .sj-rappel__check path { animation: sj-draw .45s var(--sj-ease) .55s both; }
@media (max-width: 760px) {
	.sj-rappel[open] { grid-template-columns: 1fr; }
	.sj-rappel__media { display: none; }
	.sj-rappel__body { padding: 1.5rem 1.25rem 1.25rem; }
	.sj-rappel .sj-form__row { grid-template-columns: 1fr; }
}
html.sj-dialog-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
	.sj-rappel[open] { animation: sj-fadein .2s ease; }
}
@media print { .sj-slide__media, .sj-band__bg, .sj-page-hero__bg, .sj-rappel, .sj-rappel-card { display: none !important; } }
.sj-band__bg, .sj-page-hero__bg { max-width: none !important; width: auto !important; margin: 0 !important; }
.sj-band.has-photo { border-bottom: 0; }
.sj-rappel .sj-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sj-rappel__intro { font-size: 1rem; line-height: 1.5; }
.sj-rappel .sj-eyebrow { color: var(--wp--preset--color--ciel); margin: 0; }
.sj-split--top > .wp-block-column:last-child { align-self: flex-start !important; }

/* Les photos restent sous les éléments existants : arcs, codes des départements, textes, boutons */
.sj-page-hero.has-photo > :not(.sj-page-hero__bg) { position: relative; z-index: 1; }
.sj-band.has-photo > :not(.sj-band__bg) { position: relative; z-index: 1; }
/* Respiration : marges régulières en haut et en bas de chaque bloc */
.wp-block-post-content > .wp-block-group:not(.alignfull):not(.sj-carousel), .wp-block-post-content > .wp-block-columns, .wp-block-post-content > .wp-block-buttons { margin-block: var(--wp--preset--spacing--40) !important; }
.wp-block-post-content > section.alignfull + section.alignfull { margin-top: 0 !important; }
.sj-split { row-gap: var(--wp--preset--spacing--40); }
.sj-tiles { margin-top: var(--wp--preset--spacing--40) !important; }

/* ==========================================================================
   v1.6 : diapositives lisibles, rythme des sections, images sans conflit, mobile
   ========================================================================== */

/* --- Diapositives : la photo a sa propre colonne, elle ne passe jamais sous le texte --- */
.sj-slide__visual { position: relative; z-index: 2; margin: 0; pointer-events: none; }
.sj-slide__media { position: relative; z-index: 1; margin: 0; overflow: hidden; background: rgba(255, 255, 255, .08); }
.sj-slide__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* v1.6.1 : le code du département retrouve son grand contour blanc (le même trait que les arcs),
   posé à cheval sur le coin de la photo, avec une ombre pour rester lisible sur l'image. */
.sj-carousel .sj-slide .sj-slide-code.sj-slide-code--photo {
	position: absolute; z-index: 3; top: auto; right: auto; transform: none; margin: 0;
	font-weight: 800; line-height: .8; letter-spacing: -0.03em; white-space: nowrap;
	color: rgba(255, 255, 255, .08); -webkit-text-stroke: 2.5px rgba(255, 255, 255, .95);
	filter: drop-shadow(0 3px 10px rgba(0, 0, 0, .4));
}
.sj-slide.has-photo > .wp-block-group { position: relative; z-index: 3; }
.sj-carousel { --sj-nav-zone: calc(44px + clamp(1.25rem, 3vw, 2rem) + clamp(1.25rem, 3vw, 2rem)); }
.sj-carousel .sj-slide.has-photo { padding-bottom: max(var(--sj-nav-zone), 5.5rem) !important; }
/* Textes des diapositives : un peu plus grands, lisibles d'un coup d'œil */
.sj-slide.has-photo .sj-kicker { font-size: clamp(.875rem, .8rem + .25vw, 1rem); }
.sj-slide.has-photo .sj-slide__text { font-size: clamp(1.0625rem, .95rem + .45vw, 1.3125rem); line-height: 1.55; max-width: 44ch; }

@media (min-width: 760px) {
	.sj-carousel .sj-slide.sj-slide.has-photo {
		--sj-ph-w: clamp(230px, 32vw, 420px);
		display: grid; grid-template-columns: minmax(0, 1fr) var(--sj-ph-w); grid-template-areas: "texte photo";
		align-items: center; column-gap: clamp(2.5rem, 6vw, 6rem);
		padding-left: max(var(--wp--style--root--padding-left, 2.5rem), calc((100% - 1240px) / 2)) !important;
		padding-right: max(var(--wp--style--root--padding-right, 2.5rem), calc((100% - 1240px) / 2)) !important;
		padding-top: clamp(3rem, 6vw, 4.5rem) !important;
	}
	.sj-slide.has-photo > .wp-block-group { grid-area: texte; width: auto; max-width: none !important; margin: 0 !important; }
	.sj-slide.has-photo > .sj-slide__visual { grid-area: photo; width: auto; }
	.sj-slide__media { aspect-ratio: 2 / 3; max-height: min(560px, calc(100svh - var(--sj-header-h) - 10rem)); width: 100%; border-radius: 999px 999px 28px 28px; box-shadow: 0 30px 60px rgba(0, 0, 0, .28); }
	/* Les arcs de la charte entourent l'arche de la photo (au lieu de passer derrière et de dépasser) */
	.sj-slide.has-photo > .sj-slide-arcs { display: none; }
	.sj-slide__visual::before, .sj-slide__visual::after {
		content: ""; position: absolute; z-index: 0; pointer-events: none; border-style: solid; border-color: #fff; border-bottom: 0;
		border-radius: 999px 999px 0 0;
		-webkit-mask-image: linear-gradient(180deg, #000 45%, transparent 92%); mask-image: linear-gradient(180deg, #000 45%, transparent 92%);
	}
	.sj-slide__visual::before { inset: -22px -22px 18% -22px; border-width: 12px; opacity: .2; }
	.sj-slide__visual::after { inset: -50px -50px 30% -50px; border-width: 12px; opacity: .11; }
	.sj-carousel .sj-slide .sj-slide-code.sj-slide-code--photo { left: -.45em; bottom: 1.75rem; font-size: clamp(4.25rem, 7vw, 7.5rem); }
	.sj-slide.has-photo .sj-slide__title { max-width: 14ch; }
	.sj-carousel__nav { justify-content: flex-start; padding-left: max(var(--wp--style--root--padding-left, 2.5rem), calc((100% - 1240px) / 2)); padding-right: 1rem; }
	.sj-carousel.is-ready .sj-slide.has-photo:not(.is-active) .sj-slide__visual { opacity: 0; transform: translateY(18px) scale(.97); }
	.sj-carousel.is-ready .sj-slide.has-photo.is-active .sj-slide__visual { opacity: 1; transform: none; transition: opacity .8s var(--sj-ease) .15s, transform .9s var(--sj-ease) .15s; }
	.sj-carousel.is-ready .sj-slide.has-photo:not(.is-active) .sj-slide__visual::before, .sj-carousel.is-ready .sj-slide.has-photo:not(.is-active) .sj-slide__visual::after { transform: scale(.94); opacity: 0; }
	.sj-carousel.is-ready .sj-slide.has-photo.is-active .sj-slide__visual::before { transition: transform 1s var(--sj-ease) .35s, opacity 1s var(--sj-ease) .35s; }
	.sj-carousel.is-ready .sj-slide.has-photo.is-active .sj-slide__visual::after { transition: transform 1.1s var(--sj-ease) .55s, opacity 1.1s var(--sj-ease) .55s; }
	.sj-carousel.is-ready .sj-slide.is-active .sj-slide__media img { animation: sj-kenburns 9s ease-out both; }
}
@keyframes sj-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
@media (min-width: 760px) and (max-width: 1099px) {
	.sj-slide.has-photo .sj-slide__title { font-size: clamp(2rem, 4.6vw, 3rem) !important; }
	.sj-slide.has-photo .sj-slide__text { font-size: 1.125rem; }
	.sj-slide__visual::before { inset: -16px -16px 18% -16px; border-width: 9px; }
	.sj-slide__visual::after { inset: -36px -36px 30% -36px; border-width: 9px; }
	.sj-carousel .sj-slide .sj-slide-code.sj-slide-code--photo { -webkit-text-stroke-width: 2px; }
}

/* Mobile : la photo reste en arrière-plan, en haut de la diapositive, et se fond dans la couleur
   du département là où se trouve le texte : la photo se voit, le texte reste lisible. */
@media (max-width: 759px) {
	.sj-carousel .sj-slide.has-photo { min-height: clamp(560px, calc(100svh - var(--sj-header-h) - 20px), 720px); justify-content: flex-end; padding-top: 9rem !important; }
	.sj-slide.has-photo > .sj-slide__visual { position: absolute; inset: 0; z-index: 0; width: auto; margin: 0; }
	.sj-slide__media { position: absolute; inset: 0; height: auto; border-radius: 0; background: none;
		-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 24%, rgba(0, 0, 0, .5) 44%, rgba(0, 0, 0, .14) 62%, transparent 80%);
		mask-image: linear-gradient(180deg, #000 0%, #000 24%, rgba(0, 0, 0, .5) 44%, rgba(0, 0, 0, .14) 62%, transparent 80%); }
	.sj-slide__media img { object-position: center 22%; }
	.sj-slide__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, .3) 55%, rgba(0, 0, 0, .1) 100%); }
	.sj-slide.has-photo .sj-slide-arcs { z-index: 1; opacity: .7; }
	.sj-carousel .sj-slide .sj-slide-code.sj-slide-code--photo { top: 1.1rem; right: 1rem; left: auto; bottom: auto; font-size: 3.75rem; -webkit-text-stroke-width: 2px; }
	.sj-slide.has-photo .sj-kicker, .sj-slide.has-photo .sj-slide__title, .sj-slide.has-photo .sj-slide__text { text-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 18px rgba(0, 0, 0, .35); }
	.sj-slide.has-photo .sj-slide__title { font-size: clamp(1.75rem, 8vw, 2.25rem) !important; line-height: 1.08; max-width: none; margin-top: .75rem; }
	.sj-slide.has-photo .sj-slide__text { font-size: 1.0625rem; line-height: 1.5; margin-top: .9rem; font-weight: 500; }
	.sj-slide.has-photo .wp-block-buttons { margin-top: 1.5rem; gap: .65rem; }
	.sj-slide.has-photo .wp-block-button { flex: 1 1 auto; }
	.sj-slide.has-photo .wp-block-button__link { width: 100%; min-height: 48px; box-sizing: border-box; justify-content: center; }
	.sj-slide.has-photo .wp-block-button.is-style-outline .wp-block-button__link { background: rgba(0, 0, 0, .18); }
	.sj-carousel.is-ready .sj-slide.has-photo:not(.is-active) .sj-slide__visual { opacity: 0; }
	.sj-carousel.is-ready .sj-slide.has-photo.is-active .sj-slide__visual { opacity: 1; transition: opacity .6s var(--sj-ease); }
}
@media (prefers-reduced-motion: reduce) {
	.sj-carousel.is-ready .sj-slide.is-active .sj-slide__media img { animation: none; }
	.sj-carousel.is-ready .sj-slide.has-photo .sj-slide__visual, .sj-carousel.is-ready .sj-slide.has-photo .sj-slide__visual::before, .sj-carousel.is-ready .sj-slide.has-photo .sj-slide__visual::after { transform: none !important; }
}

/* --- Rythme vertical : chaque section respire en haut ET en bas --- */
.wp-block-post-content > .alignfull.sj-band:not(.has-photo) { padding-top: clamp(3rem, 6vw, 4.5rem) !important; padding-bottom: clamp(3rem, 6vw, 4.5rem) !important; }
.wp-block-post-content > .alignfull.sj-band.has-photo { padding-top: clamp(4rem, 8vw, 6.5rem) !important; padding-bottom: clamp(4rem, 8vw, 6.5rem) !important; }
.wp-block-post-content > :not(.alignfull) + .alignfull, .wp-block-post-content > .alignfull + :not(.alignfull) { margin-top: var(--wp--preset--spacing--50) !important; }
.wp-block-post-content:has(> .alignfull:last-child) { padding-bottom: 0 !important; }
.wp-block-post-content:has(> .alignfull:first-child) { padding-top: 0 !important; }
.wp-block-post-content > .wp-block-group:not(.alignfull):not(.sj-carousel), .wp-block-post-content > .wp-block-columns, .wp-block-post-content > .wp-block-buttons { margin-block: var(--wp--preset--spacing--40) !important; }
.wp-block-post-content > :first-child:not(.alignfull) { margin-top: 0 !important; }
.sj-reveal > * + *, .alignfull > .alignwide + .alignwide { margin-top: clamp(1.75rem, 3.5vw, 2.75rem); }
.sj-eyebrow + h2, .sj-eyebrow + .wp-block-heading { margin-top: .5rem !important; }
/* Cartes : leur rembourrage ne dépend plus du rythme des sections */
.sj-tile.sj-visual { --sj-pad: clamp(1.5rem, 3vw, 2.5rem); padding: var(--sj-pad) !important; }
.sj-tile.sj-visual.has-photo { padding-top: 0 !important; }
.sj-visual__photo { margin: 0 calc(var(--sj-pad, 2rem) * -1) 1.5rem !important; }
.sj-card[style*="spacing--40"] { padding: clamp(1.5rem, 3vw, 2.5rem) !important; }

/* --- Bandeau titre des pages : plus haut, plus aéré, lisible sur mobile --- */
.sj-page-hero { padding-top: clamp(3.5rem, 7vw, 5.5rem) !important; padding-bottom: clamp(3.5rem, 7vw, 5.5rem) !important; }
.sj-page-hero.has-photo { padding-top: clamp(5.5rem, 12vw, 9rem) !important; }
.sj-page-hero h1 { margin-top: .35rem !important; }
@media (max-width: 781px) {
	.sj-page-hero.has-photo { padding-top: 7rem !important; padding-bottom: 2.5rem !important; }
	.sj-page-hero__bg img { object-position: center 30%; }
}

/* --- Images : jamais d'image qui déborde, recouvre ou se déforme --- */
.wp-block-post-content img { max-width: 100%; height: auto; }
.sj-visual__photo img, .sj-band__bg img, .sj-page-hero__bg img, .sj-slide__media img, .sj-mega-promo__photo img, .sj-rappel-card__photo img { height: 100% !important; }
.sj-band.has-photo .sj-cta-alt { position: relative; z-index: 1; }

/* --- Mobile soigné --- */
@media (max-width: 760px) {
	.sj-to-top { display: none !important; }
	.sj-footer li a:not(.sj-social__link), .sj-footer__bottom a { display: inline-block; padding-block: .45rem; }
	.sj-footer ul { gap: 0 !important; }
	.sj-band .wp-block-buttons, .sj-split .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.sj-band .wp-block-button__link, .sj-split .wp-block-button__link { width: 100%; box-sizing: border-box; justify-content: center; text-align: center; }
	.sj-cta-alt { flex-direction: column; align-items: flex-start; gap: .5rem; }
	.sj-cta-alt span[aria-hidden] { display: none; }
	.sj-cta-alt a { padding-block: .35rem; }
	.sj-carousel__nav { gap: .5rem; }
	.sj-carousel__count { display: none; }
	main h2.wp-block-heading:not(.sj-slide__title) { font-size: clamp(1.5rem, 6.4vw, 1.875rem); }
}
.sj-band.has-photo > .sj-band__bg + * { margin-top: 0 !important; }
.sj-drawer__rappel { color: #fff !important; text-decoration: none; font-size: 1rem; text-align: center; padding: .35rem 0; margin-top: -.5rem; }
.sj-drawer__rappel strong { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
@media (max-width: 760px) {
	.sj-footer__bottom { flex-direction: column; align-items: flex-start !important; gap: 1rem !important; padding-right: 0 !important; }
	.sj-footer__bottom p:last-child { font-size: 0; display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin: 0; }
	.sj-footer__bottom p:last-child a { font-size: .9375rem; }
}
.wp-block-heading.sj-h3 { font-size: var(--wp--preset--font-size--large) !important; margin-top: 2rem; }
.sj-fstep { min-width: 0; max-width: 100%; box-sizing: border-box; } .sj-choices { min-width: 0; } .sj-choices label { min-width: 0; box-sizing: border-box; }
.sj-form.is-stepper { overflow-x: clip; }
.sj-tile .wp-block-heading.sj-h3 { font-size: 1.375rem !important; margin-top: 0; }
/* v1.6.1 : toutes les diapositives démarrent au même niveau (la marge automatique de WordPress entre blocs décalait les diapositives 2 à 8) */
.sj-carousel .sj-track > .sj-slide { margin: 0 !important; }
.wp-block-post-content p, .sj-slide__text { text-wrap: pretty; }

/* v1.6.2 : code du département sur la photo des pages d'expertise (même contour que l'accueil) */
.sj-visual__photo .sj-slide-code.sj-visual__code {
	position: absolute; z-index: 2; top: auto; left: auto; right: 1.1rem; bottom: .9rem; transform: none; margin: 0;
	font-size: clamp(3.5rem, 6vw, 5.5rem); font-weight: 800; line-height: .8; letter-spacing: -0.03em; white-space: nowrap;
	color: rgba(255, 255, 255, .08); -webkit-text-stroke: 2.5px rgba(255, 255, 255, .95); filter: drop-shadow(0 3px 10px rgba(0, 0, 0, .45)); opacity: 1;
}
@media (max-width: 781px) { .sj-visual__photo .sj-slide-code.sj-visual__code { font-size: 3.75rem; -webkit-text-stroke-width: 2px; } }
/* v1.6.2 : réseaux sociaux du pied de page sur mobile (le rembourrage des liens ne s'applique plus aux pastilles) */
@media (max-width: 760px) {
	.sj-footer li a.sj-social__link { display: grid; padding: 0; width: 44px; height: 44px; }
}
