/* ==========================================================================
   Ange Security — feuille unique du thème
   1. Réglages  2. Base  3. En-tête  4. Pied de page  5. Boutons et formulaires
   6. Contenu (blocs)  7. Composants de page as-*  8. Blog  9. Barre d'appel mobile
   ========================================================================== */

/* 1. Réglages ------------------------------------------------------------ */
:root {
	--or: #ff7c2c;          /* orange de marque (décor, fonds) */
	--or-t: #e2620c;        /* orange des titres et liens (contraste suffisant sur blanc) */
	--or-b: #d9600b;        /* fond des boutons */
	--or-b2: #b94f07;       /* survol des boutons */
	--nuit: #0b0b1b;
	--nuit2: #15152a;
	--encre: #1b1b24;
	--txt: #4a4a53;
	--muted: #6b6b74;
	--gris: #4f5059;
	--ligne: #e6e6ea;
	--clair: #f4f4f6;
	--wrap: 1180px;
	--gut: 20px;
	--r: 4px;
	--ombre: 0 12px 32px rgba(11, 11, 27, .09);
	--ff: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--hdr-top: 72px;

	--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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%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='2.2' 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-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%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.6' 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-home: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
	--i-warehouse: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 8.35V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8.35A2 2 0 0 1 3.26 6.5l8-3.2a2 2 0 0 1 1.48 0l8 3.2A2 2 0 0 1 22 8.35Z'/%3E%3Cpath d='M6 18h12M6 14h12'/%3E%3Crect x='6' y='10' width='12' height='12'/%3E%3C/svg%3E");
	--i-glass: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 22h8M12 11v11M19 3l-7 8-7-8Z'/%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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='7'/%3E%3Cpolyline points='8.21 13.89 7 23 12 20 17 23 15.79 13.88'/%3E%3C/svg%3E");
	--i-heart: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
	--i-thumb: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3'/%3E%3C/svg%3E");
	--i-flame: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.07-2.14-.22-4.05 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.15.43-2.29 1-3a2.5 2.5 0 0 0 2.5 2.5z'/%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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	--i-usercheck: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='8.5' cy='7' r='4'/%3E%3Cpolyline points='17 11 19 13 23 9'/%3E%3C/svg%3E");
}

/* 2. Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font: 400 1rem/1.7 var(--ff); color: var(--txt); background: #fff; overflow-x: clip; }
img, svg, video { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--or-t); text-underline-offset: .18em; }
a:hover { color: var(--or-b2); }
h1, h2, h3, h4, h5, h6 { color: var(--encre); font-weight: 700; line-height: 1.2; margin: 0 0 .6em; text-wrap: balance; }
h1 { font-size: clamp(2rem, 1.35rem + 2.6vw, 3.25rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.35rem); }
h3 { font-size: clamp(1.2rem, 1.1rem + .45vw, 1.45rem); }
h4 { font-size: 1.1rem; }
p, ul, ol, figure, blockquote, table { margin: 0 0 1.1em; }
strong { color: var(--encre); }
:focus-visible { outline: 3px solid var(--or); outline-offset: 2px; }
.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--nuit); color: #fff; padding: 10px 16px; border-radius: var(--r); }
.skip-link:focus { top: 8px; color: #fff; }
.ico { width: 1.15em; height: 1.15em; flex: none; }

/* 3. En-tête ------------------------------------------------------------- */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 1px 0 var(--ligne); overflow-x: clip; }
/* Imagify enveloppe les images dans <picture> : les classes posées sur l'image passent sur l'enveloppe.
   Pas de display: contents (les images en chargement différé ne se chargent plus). */
.brand-logo, .ftr-logo, .wp-post-image, .card-img { display: block; }
.card-img img, picture.entry-cover img { width: 100%; height: 100%; object-fit: cover; }
.hdr-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: var(--hdr-top); }
.brand { display: flex; align-items: center; flex: none; text-decoration: none; }
.brand-logo, .brand-logo img { width: auto; height: 54px; }
.brand-text { font-weight: 800; font-size: 1.3rem; color: var(--encre); }
.hdr-info { display: none; }
.hdr-mobile { display: flex; align-items: center; gap: 8px; }
.hdr-call, .nav-toggle {
	display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
	border: 0; cursor: pointer; color: #fff; background: var(--or-b);
}
.nav-toggle { background: var(--encre); }
.nav-toggle .ico { width: 22px; height: 22px; }
.nav-toggle .when-open, .nav-open .nav-toggle .when-closed { display: none; }
.nav-open .nav-toggle .when-open { display: block; }

/* Menu mobile : panneau plein écran sous l'en-tête */
.hdr-nav { display: none; }
.nav-open .hdr-nav {
	display: block; position: fixed; inset: var(--hdr-top) 0 0; background: #fff; overflow-y: auto;
	border-top: 1px solid var(--ligne); overscroll-behavior: contain;
}
.nav-open { overflow: hidden; }
.menu, .menu ul { list-style: none; margin: 0; padding: 0; }
.menu a { display: block; padding: 13px 0; color: var(--encre); font-weight: 600; text-decoration: none; }
.menu li { position: relative; border-bottom: 1px solid var(--ligne); }
.menu .sub-menu { display: none; padding-left: 14px; border-top: 1px solid var(--ligne); }
.menu .sub-menu li:last-child { border-bottom: 0; }
.menu .sub-menu a { font-weight: 500; padding: 10px 0; }
.menu li.is-open > .sub-menu { display: block; }
.menu .current-menu-item > a, .menu .current-menu-ancestor > a { color: var(--or-t); }
.sub-toggle {
	position: absolute; right: 0; top: 4px; width: 44px; height: 44px; border: 0; background: transparent;
	color: var(--encre); cursor: pointer; display: grid; place-items: center;
}
.sub-toggle .ico { transition: transform .2s; }
.is-open > .sub-toggle .ico { transform: rotate(180deg); }
.menu-item-has-children > a { padding-right: 48px; }
.hdr-nav-side { display: flex; flex-direction: column; gap: 18px; padding: 22px 0 40px; }
.nav-call {
	display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 20px; border-radius: var(--r);
	background: var(--or-b); color: #fff; font-weight: 700; text-decoration: none;
}
.nav-call:hover { background: var(--or-b2); color: #fff; }

.social { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.social a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--encre); }
.social a:hover { color: var(--or-t); background: var(--clair); }
.social .ico { width: 18px; height: 18px; }

@media (min-width: 1100px) {
	:root { --hdr-top: 104px; }
	/* En-tête collant : seule la barre de menu reste visible au défilement */
	.site-header { top: calc(-1 * var(--hdr-top)); }
	.brand-logo, .brand-logo img { height: 82px; }
	.hdr-mobile { display: none; }
	.hdr-top { align-items: stretch; }
	.hdr-info {
		display: flex; align-items: center; gap: 40px; position: relative; color: #fff;
		padding: 0 0 0 80px; isolation: isolate;
	}
	.hdr-info::before {
		content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: calc(-50vw + 50%);
		background: var(--or); clip-path: polygon(46px 0, 100% 0, 100% 100%, 0 100%);
	}
	.hdr-zone, .hdr-phone { display: flex; align-items: center; gap: 12px; margin: 0; color: #fff; text-decoration: none; line-height: 1.25; }
	.hdr-zone span, .hdr-phone span { display: flex; flex-direction: column; }
	.hdr-zone strong, .hdr-phone strong { color: #fff; font-size: 1.15rem; }
	.hdr-phone strong { font-size: 1.6rem; letter-spacing: .01em; }
	.hdr-info small { font-size: .82rem; opacity: .95; }
	.hdr-info .ico { width: 24px; height: 24px; }
	.hdr-phone:hover { color: #fff; }
	.hdr-phone:hover strong { text-decoration: underline; }

	.hdr-nav { display: block; border-top: 1px solid var(--ligne); }
	.hdr-nav-in { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
	.menu { display: flex; flex-wrap: wrap; }
	.menu li { border: 0; }
	.menu > li > a { padding: 15px 13px; font-size: .97rem; }
	.menu > li:first-child > a { padding-left: 0; }
	.menu-item-has-children > a { padding-right: 13px; }
	.menu > .menu-item-has-children > a::after {
		content: ""; display: inline-block; width: 8px; height: 8px; margin-left: 8px; vertical-align: .2em;
		border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-2px);
	}
	.sub-toggle { display: none; }
	.menu .sub-menu {
		display: block; position: absolute; top: 100%; left: -6px; min-width: 270px; padding: 8px 0; z-index: 10;
		background: #fff; border-top: 3px solid var(--or); box-shadow: var(--ombre);
		opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s;
	}
	.menu .sub-menu .sub-menu { top: -8px; left: 100%; }
	.menu li:hover > .sub-menu, .menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
	.menu .sub-menu a { padding: 8px 20px; font-size: .93rem; }
	.menu .sub-menu a:hover { color: var(--or-t); background: var(--clair); }
	.menu .sub-menu .menu-item-has-children > a::after { content: "›"; float: right; margin-left: 12px; }
	.hdr-nav-side { flex-direction: row; align-items: center; padding: 0; gap: 14px; }
	.nav-call { padding: 9px 16px; font-size: .95rem; }
}

/* 4. Pied de page -------------------------------------------------------- */
.cta-callback { position: relative; z-index: 2; margin-top: clamp(40px, 6vw, 80px); }
.cta-callback::after { content: ""; position: absolute; z-index: -1; left: 0; right: 0; bottom: 0; height: 50%; background: var(--nuit); }
.cta-card {
	display: grid; gap: 24px; background: #fff; box-shadow: var(--ombre); padding: clamp(24px, 4vw, 48px) clamp(20px, 5vw, 64px);
	border-top: 4px solid var(--or);
}
.cta-card h2 { margin-bottom: .3em; }
.cta-card-text p:last-child { margin-bottom: 0; }
.cta-card-or { font-size: .95rem; }
.cta-card-or a { font-weight: 700; white-space: nowrap; }
@media (min-width: 860px) { .cta-card { grid-template-columns: 1fr 1.05fr; align-items: center; gap: 56px; } }

.site-footer {
	color: #d7d7e0; padding: clamp(48px, 6vw, 72px) 0 24px; font-size: .97rem;
	background: linear-gradient(rgba(11, 11, 27, .93), rgba(11, 11, 27, .93)), var(--ftr-bg, none) center / cover var(--nuit);
}
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--or); text-decoration: underline; }
.ftr-grid { display: grid; gap: 40px; }
@media (min-width: 760px) { .ftr-grid { grid-template-columns: 1.4fr 1fr 1fr; gap: 56px; } }
.ftr-logo, .ftr-logo img { display: block; width: 150px; height: auto; margin-bottom: 18px; }
.ftr-title { color: #fff; font-size: 1.25rem; margin: 0 0 .9em; }
.ftr-title:not(:first-child) { margin-top: 1.6em; }
.ftr-contact, .ftr-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ftr-contact li { display: flex; gap: 12px; align-items: flex-start; }
.ftr-contact .ico, .ftr-hours .ico { color: var(--or); margin-top: .25em; }
.ftr-links a::before { content: "›"; color: var(--or); margin-right: 10px; font-weight: 700; }
.ftr-hours { display: flex; gap: 12px; align-items: center; color: #fff; }
.social--footer a { color: #fff; border: 1px solid rgba(255, 255, 255, .2); }
.social--footer a:hover { background: var(--or); border-color: var(--or); color: #fff; }
.ftr-legal { margin-top: 48px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .14); text-align: center; font-size: .85rem; color: #b5b5c2; }
.ftr-legal p { margin: 0 0 .3em; }

/* 5. Boutons et formulaires --------------------------------------------- */
.btn, body .wp-block-button__link, body .wp-element-button, .wp-block-search__button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 14px 26px; border: 2px solid var(--or-b); border-radius: var(--r);
	background: var(--or-b); color: #fff; font: 700 1rem/1.2 var(--ff); text-decoration: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.btn:hover, body .wp-block-button__link:hover, body .wp-element-button:hover { background: var(--or-b2); border-color: var(--or-b2); color: #fff; }
body .is-style-outline > .wp-block-button__link, .btn--ghost-dark { background: transparent; border-color: var(--encre); color: var(--encre); }
body .is-style-outline > .wp-block-button__link:hover, .btn--ghost-dark:hover { background: var(--encre); border-color: var(--encre); color: #fff; }
.btn--ghost, body .as-hero .is-style-outline > .wp-block-button__link, body .as-dark .is-style-outline > .wp-block-button__link { background: transparent; border-color: #fff; color: #fff; }
.btn--ghost:hover, body .as-hero .is-style-outline > .wp-block-button__link:hover, body .as-dark .is-style-outline > .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--encre); }
.as-btn-call > .wp-block-button__link::before {
	content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--i-phone) center / contain no-repeat; mask: var(--i-phone) center / contain no-repeat;
}
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

.cb-form { display: grid; gap: 14px; }
.cb-fields { display: grid; gap: 14px; }
@media (min-width: 560px) { .cb-fields { grid-template-columns: 1fr 1fr; } }
.cb-field { display: grid; gap: 6px; font-weight: 600; color: var(--encre); font-size: .92rem; }
.cb-field abbr { color: var(--or-t); text-decoration: none; }
.cb-field input, .cb-field select {
	width: 100%; min-height: 50px; padding: 12px 14px; font: 400 1rem var(--ff); color: var(--encre);
	background: #fafafb; border: 1px solid #cfcfd6; border-radius: var(--r);
}
.cb-field input:focus, .cb-field select:focus { outline: 0; border-color: var(--or); box-shadow: 0 0 0 3px rgba(255, 124, 44, .25); background: #fff; }
.cb-submit { width: 100%; padding-block: 15px; font-size: 1.05rem; }
.cb-note { margin: 0; font-size: .82rem; color: var(--muted); }
.cb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cb-msg { margin: 0; padding: 14px 18px; border-radius: var(--r); font-weight: 600; }
.cb-msg--ok { background: #e9f7ee; color: #17633a; border-left: 4px solid #22a05a; }
.cb-msg--err { background: #fdeeee; color: #8a1f1f; border-left: 4px solid #d23b3b; margin-bottom: 4px; }

/* 6. Contenu (blocs) ---------------------------------------------------- */
.entry > * { max-width: min(var(--wrap) - 2 * var(--gut), 100% - 2 * var(--gut)); margin-inline: auto; }
.entry > .alignfull, .entry--builder > * { max-width: none; }
.entry > .alignwide { max-width: min(1280px, 100% - 2 * var(--gut)); }
.entry--page, .entry--article { padding-top: clamp(32px, 5vw, 56px); }
.entry--page > :not(.alignfull):not(.alignwide), .entry--article > :not(.alignfull):not(.alignwide):not(.entry-cover) { max-width: min(860px, 100% - 2 * var(--gut)); }
.entry h2 { margin-top: 1.4em; }
.entry h3 { margin-top: 1.2em; }
.entry ul:not([class]), .entry ol:not([class]), .entry .wp-block-list:not([class*="as-"]) { padding-left: 1.3em; }
.entry li { margin-bottom: .35em; }
.entry table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.entry th, .entry td { padding: 10px 12px; border: 1px solid var(--ligne); text-align: left; }
.entry th { background: var(--clair); color: var(--encre); }
.entry blockquote { margin-inline: 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--or); font-style: italic; }
.entry figcaption, .wp-element-caption { font-size: .88rem; color: var(--muted); margin-top: 8px; }
.entry .wp-block-image img { border-radius: 2px; }
.entry-cover { display: block; width: min(var(--wrap) - 2 * var(--gut), 100% - 2 * var(--gut)); max-width: 1000px !important; height: auto; margin: 0 auto 32px; }
.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.aligncenter { margin-inline: auto; text-align: center; }

.page-hero {
	position: relative; overflow: hidden; isolation: isolate; color: #e6e6ee;
	background: var(--nuit); padding: clamp(36px, 6vw, 64px) 0 clamp(30px, 5vw, 52px);
}
.page-hero::after {
	content: ""; position: absolute; z-index: -1; right: 0; top: 0; bottom: 0; width: 22%;
	background: var(--or); clip-path: polygon(45% 0, 100% 0, 100% 100%, 0 100%);
}
.page-hero h1 { color: #fff; max-width: 900px; margin-bottom: .3em; }
.page-hero-sub { margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.crumbs { font-size: .85rem; margin-bottom: 14px; color: #b9b9c6; }
.crumbs a { color: #fff; }
@media (max-width: 700px) { .page-hero::after { width: 14%; } }

.cta-box {
	display: grid; gap: 18px; align-items: center; margin-top: 48px !important; padding: 26px 28px;
	background: var(--nuit); color: #e6e6ee; border-left: 5px solid var(--or);
}
.cta-box-title { color: #fff; font-weight: 700; font-size: 1.25rem; margin: 0 0 .2em; }
.cta-box p { margin: 0; }
.cta-box-actions { display: flex; flex-wrap: wrap; gap: 10px; }
@media (min-width: 760px) { .cta-box { grid-template-columns: 1fr auto; } }

/* 7. Composants de page (classes as-* posées sur les blocs) -------------- */
.as-section { padding-block: clamp(52px, 7vw, 96px); }
.as-section > :first-child { margin-top: 0; }
.alignfull.as-section, .alignfull.wp-block-cover { padding-inline: var(--gut); }
.as-center { text-align: center; }
.as-center .wp-block-buttons { justify-content: center; }
.as-kicker {
	display: inline-block; margin-bottom: .7em; color: var(--or-t); font-weight: 700; font-size: .9rem;
	letter-spacing: .08em; text-transform: uppercase;
}
.as-lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); }
.as-title-or { color: var(--or-t) !important; }
.entry h2.as-title-or, .entry .as-intro h2 { margin-top: 0; }

/* Accueil : bandeau principal */
.as-hero.wp-block-cover { min-height: clamp(520px, 72vh, 680px) !important; align-items: center; padding-block: 72px; }
.as-hero .wp-block-cover__inner-container { width: 100%; max-width: var(--wrap); color: #fff; }
.as-hero .wp-block-cover__inner-container > * { max-width: 720px; margin-left: 0 !important; }
.as-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(11, 11, 27, .92) 0%, rgba(11, 11, 27, .75) 45%, rgba(11, 11, 27, .25) 100%) !important; opacity: 1 !important; }
.as-hero h1 { color: #fff; }
.as-hero h1::after { content: ""; display: block; width: 72px; height: 4px; margin-top: 18px; background: var(--or); }
.as-hero .as-kicker { color: var(--or); }
.as-hero .as-lead { color: #ececf3; }
.as-hero .wp-block-buttons { margin-block: 28px 26px; }
.as-chips { display: flex; flex-wrap: wrap; gap: 10px 22px; list-style: none; padding: 0 !important; margin: 0; font-size: .95rem; color: #fff; }
.as-chips li { display: flex; align-items: center; gap: 8px; margin: 0; }
.as-chips li::before { content: ""; width: 16px; height: 16px; background: var(--or); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
@media (max-width: 700px) {
	.as-hero.wp-block-cover { min-height: 0 !important; padding-block: 48px 40px; }
	.as-hero .wp-block-cover__background { background: rgba(11, 11, 27, .82) !important; }
	.as-hero .wp-block-button { flex: 1 1 100%; }
	.as-hero .wp-block-button__link { width: 100%; }
}

/* Cartes à coin orange */
.as-cards { gap: 24px !important; margin-top: 32px; }
.as-cards > .wp-block-column { display: flex; }
.as-card {
	position: relative; width: 100%; background: #fff; box-shadow: var(--ombre); padding: 30px 26px 34px;
	border-radius: 2px; overflow: hidden;
}
.as-card::after {
	content: ""; position: absolute; right: 0; bottom: 0; width: 30px; height: 64px; background: var(--or);
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.as-card > *:last-child { margin-bottom: 0; }
.as-card:has(> .as-more) { display: flex; flex-direction: column; } /* lien « Découvrir » aligné en bas des cartes d'une même rangée */
.as-card > .as-more { margin-top: auto; padding-top: .4em; }
.as-card h3 { margin: 0 0 .45em; }
.as-card p { margin-bottom: .8em; }
.as-card[class*="as-ico-"]::before {
	content: ""; display: block; width: 44px; height: 44px; margin-bottom: 18px; background: var(--or);
	-webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.as-ico-award { --ico: var(--i-award); }
.as-ico-heart { --ico: var(--i-heart); }
.as-ico-thumb { --ico: var(--i-thumb); }
.as-ico-flame { --ico: var(--i-flame); }
.as-ico-shield { --ico: var(--i-shield); }
.as-ico-users { --ico: var(--i-users); }
.as-ico-usercheck { --ico: var(--i-usercheck); }
.as-ico-pin { --ico: var(--i-pin); }
.as-ico-mail { --ico: var(--i-mail); }
.as-ico-clock { --ico: var(--i-clock); }
.as-ico-phone { --ico: var(--i-phone); }
.as-more a { font-weight: 700; text-decoration: none; }
.as-more a::after { content: ""; display: inline-block; vertical-align: -2px; margin-left: 8px; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat; transition: transform .15s; }
.as-more a:hover::after { transform: translateX(4px); }

/* Sections sombres sur photo */
.as-dark.wp-block-cover { color: #e9e9f1; padding-block: clamp(56px, 8vw, 104px); }
.as-dark .wp-block-cover__inner-container { width: 100%; }
.as-dark h2, .as-dark h3 { color: #fff; }
.as-dark h2.as-title-or { color: var(--or) !important; }
.as-dark p { color: #e3e3ec; }
.as-dark .as-card { background: rgba(11, 11, 27, .55); box-shadow: none; border: 1px solid rgba(255, 255, 255, .16); text-align: center; backdrop-filter: blur(2px); }
.as-dark .as-card::before { margin-inline: auto; }
.as-dark .as-card h3 { font-size: 1.15rem; letter-spacing: .03em; text-transform: uppercase; }
.as-dark .as-more a { color: var(--or); }
.as-dark .as-more a:hover { color: #fff; }

/* Bandeau 7j/7 avec biseau orange à gauche */
.as-band.wp-block-cover::before {
	content: ""; position: absolute; z-index: 1; left: 0; top: 0; bottom: 0; width: 12%;
	background: var(--or); clip-path: polygon(0 0, 45% 0, 100% 100%, 0 100%);
}
.as-band.wp-block-cover::before { z-index: 2; }
.as-band .wp-block-cover__inner-container { z-index: 3; }
@media (max-width: 760px) { .as-band.wp-block-cover::before { width: 6px; clip-path: none; } }

/* Texte + visuel sur panneau orange en biais */
.as-split { gap: clamp(28px, 5vw, 72px) !important; align-items: center; }
.as-media { position: relative; isolation: isolate; padding: 34px 0 34px 30px; }
.as-media::before {
	content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 20%; right: -12px;
	background: var(--or); clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}
.as-media .wp-block-image { margin-bottom: 28px; }
.as-media .wp-block-image:last-child { margin-bottom: 0; }
.as-media img { width: 100%; box-shadow: var(--ombre); }
.as-media figcaption { font-style: italic; color: var(--encre); background: rgba(255, 255, 255, .92); display: inline-block; padding: 4px 10px; margin-top: 8px; }
@media (max-width: 781px) { .as-media { padding: 22px 0 22px 18px; } .as-media::before { left: 30%; right: 0; } }

/* Listes à coches */
.as-checks { list-style: none; padding: 0 !important; display: grid; gap: 8px 28px; }
/* Deux colonnes seulement si la place le permet (jamais de mots coupés dans une colonne étroite) */
.as-checks { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
.as-checks li { position: relative; padding-left: 30px; margin: 0; color: var(--encre); font-weight: 500; }
.as-checks li::before {
	content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; background: var(--or);
	-webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat;
}

/* Logos clients */
.as-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px clamp(28px, 5vw, 64px); margin-top: 36px; }
.as-logos .wp-block-image { margin: 0; flex: 0 1 auto; }
.as-logos img { max-height: 78px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.as-logos img:hover { filter: none; opacity: 1; }

/* Fond clair avec biseau orange */
.as-soft { position: relative; isolation: isolate; background: var(--clair); }
.as-soft::before {
	content: ""; position: absolute; z-index: -1; left: 0; bottom: 0; width: 9%; height: 70%;
	background: var(--or); clip-path: polygon(0 0, 30% 0, 100% 100%, 0 100%);
}
@media (max-width: 760px) { .as-soft::before { display: none; } }

/* Étapes numérotées */
.as-steps { list-style: none; padding: 0 !important; margin: 28px 0 0; counter-reset: etape; display: grid; gap: 22px; }
.as-steps li { counter-increment: etape; position: relative; padding-left: 78px; min-height: 58px; margin: 0; }
.as-steps li::before {
	content: counter(etape, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 58px; height: 58px;
	display: grid; place-items: center; background: #fff; color: var(--or-t); font-weight: 800; font-size: 1.2rem;
	border: 1px solid var(--ligne); box-shadow: var(--ombre);
}
.as-steps li:not(:last-child)::after { content: ""; position: absolute; left: 28px; top: 62px; bottom: -22px; border-left: 2px dashed #d9d9df; }
.as-steps strong { display: block; font-size: 1.15rem; margin-bottom: 2px; }

/* Témoignages */
.as-quotes { gap: 22px !important; margin-top: 28px; }
.as-quote { position: relative; background: #fff; padding: 30px 26px 24px; box-shadow: var(--ombre); border-top: 3px solid var(--or); }
.as-quote::before { content: "“"; position: absolute; top: 4px; right: 18px; font: 700 4.5rem/1 Georgia, serif; color: var(--or); opacity: .3; }
.as-quote p { margin-bottom: .9em; }
.as-quote-who { margin: 0 !important; font-size: .92rem; color: var(--muted); }
.as-quote-who strong { display: block; font-size: 1rem; }
.as-quotes > .wp-block-column { display: flex; }
.as-quotes .as-quote { width: 100%; }

/* Questions fréquentes */
.as-faq { max-width: 900px !important; }
.as-faq .wp-block-details { border-bottom: 1px solid var(--ligne); margin: 0; }
.as-faq summary {
	position: relative; list-style: none; cursor: pointer; padding: 20px 48px 20px 0;
	color: var(--encre); font-weight: 700; font-size: 1.08rem;
}
.as-faq summary::-webkit-details-marker { display: none; }
.as-faq summary::after {
	content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px;
	display: grid; place-items: center; border-radius: 50%; background: var(--clair); color: var(--or-t); font-size: 1.3rem; font-weight: 600;
}
.as-faq details[open] summary::after { content: "−"; background: var(--or); color: #fff; }
.as-faq summary:hover { color: var(--or-t); }
.as-faq details > :not(summary) { padding-right: 48px; }

/* Derniers articles (bloc Derniers articles) */
.as-posts-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 32px; }
.as-posts-head h2 { margin: 0; }
.as-posts.wp-block-latest-posts { display: grid !important; gap: 26px; padding: 0; margin-top: 32px !important; list-style: none; }
@media (min-width: 700px) { .as-posts.wp-block-latest-posts { grid-template-columns: repeat(3, 1fr); } }
.as-posts.wp-block-latest-posts li { margin: 0 !important; width: auto !important; display: flex; flex-direction: column; background: #fff; box-shadow: var(--ombre); }
.as-posts .wp-block-latest-posts__featured-image { margin: 0 !important; aspect-ratio: 16 / 10; overflow: hidden; background: var(--clair); }
.as-posts .wp-block-latest-posts__featured-image img { width: 100%; height: 100%; object-fit: cover; }
.as-posts .wp-block-latest-posts__post-title { display: block; padding: 18px 22px 0; color: var(--encre); font-weight: 700; font-size: 1.08rem; line-height: 1.35; text-decoration: none; }
.as-posts .wp-block-latest-posts__post-title:hover { color: var(--or-t); }
.as-posts .wp-block-latest-posts__featured-image:not(:has(img)) { display: none; }
.as-posts .wp-block-latest-posts__featured-image a, .as-posts .wp-block-latest-posts__featured-image picture { display: block; height: 100%; }
.as-posts .wp-block-latest-posts__post-date { padding: 6px 22px 0; font-size: .85rem; color: var(--muted); }
.as-posts .wp-block-latest-posts__post-excerpt { padding: 8px 22px 22px; margin: 0; font-size: .95rem; }

/* 8. Blog ---------------------------------------------------------------- */
.posts-wrap { padding-block: clamp(36px, 5vw, 64px); }
.cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 26px; }
@media (min-width: 640px) { .cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .cards { grid-template-columns: repeat(3, 1fr); } }
.card-link { display: flex; flex-direction: column; height: 100%; background: #fff; box-shadow: var(--ombre); text-decoration: none; color: var(--txt); transition: transform .15s; }
.card-link:hover { transform: translateY(-3px); color: var(--txt); }
.card-img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--clair); }
.card-body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 24px; }
.card-meta { font-size: .85rem; color: var(--muted); }
.card-title { color: var(--encre); font-weight: 700; font-size: 1.12rem; line-height: 1.35; }
.card-link:hover .card-title { color: var(--or-t); }
.card-excerpt { font-size: .95rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 40px; }
.page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--ligne); color: var(--encre); text-decoration: none; font-weight: 600; }
.page-numbers.current, .page-numbers:hover { background: var(--or-b); border-color: var(--or-b); color: #fff; }
.notfound { padding-block: 48px; }
.notfound-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* 9. Barre d'appel mobile ------------------------------------------------ */
.callbar {
	position: fixed; z-index: 60; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 1.2fr 1fr;
	box-shadow: 0 -4px 18px rgba(11, 11, 27, .18); padding-bottom: env(safe-area-inset-bottom); background: var(--encre);
}
.callbar a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 58px; font-weight: 700; text-decoration: none; color: #fff; }
.callbar-call { background: var(--or-b); }
.callbar-cb { background: var(--encre); }
.callbar a:hover { color: #fff; }
body { padding-bottom: 58px; }
.nav-open .callbar { display: none; }
@media (min-width: 1100px) { .callbar { display: none; } body { padding-bottom: 0; } }

@media print {
	.site-header, .callbar, .cta-callback, .site-footer { display: none; }
}

/* 10. Gabarits : prestation, lecture (articles, pages légales), listes ---- */
.pg-hero {
	position: relative; isolation: isolate; overflow: hidden; color: #dcdce6;
	background: var(--nuit); padding: clamp(32px, 5vw, 60px) 0 clamp(36px, 5vw, 64px);
}
.pg-hero::after {
	content: ""; position: absolute; z-index: -1; right: 0; top: 0; bottom: 0; width: 18%;
	background: var(--or); clip-path: polygon(55% 0, 100% 0, 100% 100%, 0 100%);
}
.pg-hero h1 { color: #fff; max-width: 860px; margin-bottom: .35em; }
.pg-hero .as-kicker { color: var(--or); }
.pg-zone { display: block; color: var(--or); }
.pg-chapo { max-width: 680px; font-size: 1.08rem; color: #e4e4ec; }
.pg-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: .92rem; color: #c4c4d0; }
.pg-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; }
.pg-hero-grille { display: grid; gap: 32px; align-items: end; }
@media (min-width: 980px) { .pg-hero-grille { grid-template-columns: 1fr 330px; gap: 56px; } }
@media (max-width: 700px) { .pg-hero::after { width: 10%; } .pg-actions .btn { flex: 1 1 100%; } }
.crumbs { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: .85rem; color: #a9a9b8; margin-bottom: 18px; }
.crumbs a { color: #fff; text-decoration: none; }
.crumbs a:hover { color: var(--or); text-decoration: underline; }
.crumbs [aria-current] { color: #c4c4d0; }

.habil { position: relative; z-index: 1; background: var(--nuit2); border: 1px solid rgba(255, 255, 255, .16); border-top: 3px solid var(--or); padding: 22px 24px; }
.habil-titre, .toc-titre { margin: 0 0 12px; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--or-t); }
.habil .habil-titre { color: var(--or); }
.habil dl, .fiche dl { margin: 0; display: grid; gap: 4px; font-size: .92rem; }
.habil dt, .fiche dt { font-size: .78rem; color: #a9a9b8; margin-top: 8px; }
.fiche dt { color: var(--muted); }
.habil dd, .fiche dd { margin: 0; color: #fff; font-weight: 600; }
.fiche dd { color: var(--encre); }
.num { font-variant-numeric: tabular-nums; letter-spacing: .02em; word-break: break-all; }

.atouts { border-bottom: 1px solid var(--ligne); background: #fff; }
.atouts ul { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .atouts ul { grid-template-columns: repeat(4, 1fr); } }
.atouts li { padding: 4px 16px 4px 18px; border-left: 3px solid var(--or); margin: 18px 0; font-size: .88rem; color: var(--muted); line-height: 1.4; }
.atouts strong { display: block; font-size: 1rem; color: var(--encre); }

.entry--prestation { padding-bottom: clamp(32px, 5vw, 56px); }
.zones { background: var(--clair); padding: clamp(40px, 6vw, 72px) 0; }
.zones h2 { margin: 0 0 .2em; color: var(--or-t); }
.zones-sous { color: var(--muted); }
.communes { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.communes a { display: inline-block; padding: 8px 16px; background: #fff; border: 1px solid var(--ligne); border-radius: 999px; color: var(--encre); font-weight: 600; font-size: .93rem; text-decoration: none; }
.communes a:hover { border-color: var(--or); color: var(--or-t); }

/* Colonne de lecture */
.lecture { display: grid; gap: 40px; padding-block: clamp(32px, 5vw, 64px); }
@media (min-width: 1000px) { .lecture { grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; } }
.lecture-texte { max-width: 760px; min-width: 0; font-size: 1.04rem; }
.lecture-texte > :first-child { margin-top: 0; }
.lecture-illu { margin: 0 0 28px; }
.lecture-illu img { width: 100%; height: auto; }
.lecture-aside { display: grid; gap: 22px; align-content: start; }
@media (min-width: 1000px) { .lecture-aside { position: sticky; top: 80px; align-self: start; } }
.toc { border-left: 3px solid var(--or); padding: 4px 0 4px 18px; }
.toc-liste, .toc-simple { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; font-size: .93rem; }
.toc-simple { list-style: none; padding: 0; }
.toc a { color: var(--encre); text-decoration: none; }
.toc a:hover { color: var(--or-t); text-decoration: underline; }
.fiche { background: var(--clair); padding: 20px 22px; }
.encart { background: var(--nuit); color: #d9d9e3; padding: 24px; border-top: 3px solid var(--or); }
.encart-titre { color: #fff; font-weight: 800; font-size: 1.15rem; margin-bottom: .4em; }
.encart .btn { width: 100%; margin: 6px 0 10px; }
.encart-aut { margin: 0; font-size: .78rem; color: #a9a9b8; }
.tags { list-style: none; padding: 0; margin: 36px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tags a { display: inline-block; padding: 5px 12px; background: var(--clair); border-radius: 999px; font-size: .85rem; color: var(--encre); text-decoration: none; }
.lies { background: var(--clair); padding: clamp(40px, 6vw, 72px) 0; }
.lies h2 { margin-top: 0; }
.progression { position: fixed; z-index: 70; top: 0; left: 0; right: 0; height: 3px; pointer-events: none; }
.progression span { display: block; width: 0; height: 100%; background: var(--or); }

/* Typographie commune aux contenus */
.entry-content h2, .entry-content h3 { margin-top: 1.5em; }
.entry-content ul:not([class]), .entry-content ol:not([class]) { padding-left: 1.3em; }
.entry-content li { margin-bottom: .35em; }
.entry-content img { height: auto; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.entry-content .wp-block-table, .entry-content > table { display: block; overflow-x: auto; }
.entry-content .wp-block-table:has(th:nth-child(4)) table { min-width: 620px; } /* 4 colonnes et plus : défilement horizontal sur mobile plutôt que des mots coupés */
.entry-content th, .entry-content td { padding: 10px 12px; border: 1px solid var(--ligne); text-align: left; }
.entry-content th { background: var(--clair); color: var(--encre); }
.entry-content blockquote { margin-inline: 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--or); font-style: italic; }
.entry-content figure { margin-block: 1.5em; margin-inline: 0; }
.entry-content iframe { max-width: 100%; }

/* Formulaire complet (Contact, Recrutement) */
.contact-form { background: #fff; box-shadow: var(--ombre); border-top: 4px solid var(--or); padding: clamp(22px, 4vw, 40px); }
.cb-field--full { grid-column: 1 / -1; }
.cb-field textarea { width: 100%; padding: 12px 14px; font: 400 1rem/1.5 var(--ff); color: var(--encre); background: #fafafb; border: 1px solid #cfcfd6; border-radius: var(--r); resize: vertical; }
.cb-field textarea:focus { outline: 0; border-color: var(--or); box-shadow: 0 0 0 3px rgba(255, 124, 44, .25); background: #fff; }

/* Composants issus de la conversion Elementor */
.as-pagehero.wp-block-cover { min-height: 0 !important; padding-block: clamp(48px, 7vw, 96px); }
.as-pagehero h1 { color: #fff; }
.as-stat { text-align: center; padding: 18px; }
.as-stat-num { margin: 0; font-size: clamp(2rem, 1.6rem + 1.6vw, 2.8rem); font-weight: 800; color: var(--or-t); line-height: 1.1; }
.as-stat-label { margin: 4px 0 0; color: var(--encre); font-weight: 600; }
.as-cta { background: var(--nuit); color: #e3e3ec; padding: clamp(24px, 4vw, 40px); border-left: 5px solid var(--or); margin-block: 2em; }
.as-cta h2, .as-cta h3 { color: #fff; margin-top: 0; }
.as-cta p { color: #e3e3ec; }
.as-map { display: block; width: 100%; height: 360px; border: 0; }
.as-navy { background: var(--nuit); color: #e3e3ec; }
.as-navy h2, .as-navy h3, .as-navy strong { color: #fff; }
.as-clair { background: var(--clair); }
.wp-block-gallery.has-nested-images figure.wp-block-image img { height: 100%; object-fit: cover; }
.wp-block-separator { border: 0; border-top: 1px solid var(--ligne); margin-block: 2em; }

/* Contenu qui commence par un bandeau pleine largeur : pas de marge au-dessus */
.entry--page:has(> .alignfull:first-child) { padding-top: 0; }
.entry > .alignfull:first-child { margin-top: 0; }
.as-map--facade { display: grid; place-content: center; justify-items: center; gap: 10px; height: 360px; text-align: center;
	background: var(--clair) linear-gradient(135deg, rgba(255, 124, 44, .08) 25%, transparent 25%, transparent 50%, rgba(255, 124, 44, .08) 50%, rgba(255, 124, 44, .08) 75%, transparent 75%) 0 0 / 28px 28px; }
.as-map--facade p { margin: 0; color: var(--muted); font-size: .92rem; }

/* Fiches d'équipe (photo, nom, fonction) */
.wp-block-column:has(> .as-member-name) { text-align: center; }
.wp-block-column:has(> .as-member-name) .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: var(--ombre); }
.as-member-name { margin: 14px 0 2px !important; font-size: 1.2rem; }
.as-member-name + p { color: var(--or-t); font-weight: 600; }
.wp-block-column:has(> .as-member-name) .wp-block-image { max-width: 320px; margin-inline: auto; margin-bottom: 0; }

/* Gras lisible sur fond sombre */
.wp-block-cover strong, .as-navy strong, .as-cta strong, .encart strong, .pg-hero strong, .site-footer strong { color: #fff; }
.wp-block-gallery.is-cropped figure.wp-block-image img { aspect-ratio: 4 / 3; }

/* Pictogrammes supplémentaires */
.as-ico-building { --ico: var(--i-building); }
.as-ico-home { --ico: var(--i-home); }
.as-ico-warehouse { --ico: var(--i-warehouse); }
.as-ico-glass { --ico: var(--i-glass); }

/* Carte centrée (pictogramme, titre, bouton) */
.as-card--centre { text-align: center; }
.as-card--centre::before { margin-inline: auto; }
.as-card--centre .wp-block-buttons { justify-content: center; }
.as-card--centre h3 { font-size: 1.15rem; letter-spacing: .03em; text-transform: uppercase; }

/* Bandeau gris d'appel à l'action */
.as-gris { background: var(--gris); color: #ececf2; }
.as-gris h2, .as-gris h3, .as-gris strong { color: #fff; }
.as-gris.as-section { padding-block: clamp(36px, 5vw, 56px); }

/* Alignements centrés repris d'Elementor */
.has-text-align-center { text-align: center; }
.wp-block-buttons.is-content-justification-center { justify-content: center; }

/* Pages de prestation : colonne de lecture centrée, comme sur le site d'origine */
.entry--prestation .is-layout-constrained > :not(.alignfull):not(.alignwide),
.entry--prestation > :not(.alignfull):not(.alignwide) { max-width: min(860px, 100%); }
.entry--prestation > :not(.alignfull):not(.alignwide) { max-width: min(860px, 100% - 2 * var(--gut)); }

/* Rangée de logos : vignettes */
.as-logos img { max-height: 96px; width: auto; }

/* Mobile : la carte Habilitation ne garde que le numéro CNAPS (téléphone et adresse sont dans la barre d'appel et le pied de page) */
@media (max-width: 979px) { .habil dl > :nth-child(n+3) { display: none; } .habil { padding: 16px 20px; } }

/* 11. Pages de prestation : colonne de lecture, bandeau d'appel, autres services ---------- */
.lecture--prestation { padding-top: clamp(36px, 5vw, 64px); }
.prest-texte { font-size: 1.05rem; }
.prest-texte > p:first-of-type { font-size: 1.14rem; color: var(--encre); }
.prest-texte h2, .prest-texte h3 { position: relative; padding-left: 18px; color: var(--encre); }
.prest-texte h2::before, .prest-texte h3::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 4px; background: var(--or); }
.prest-texte h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem); }
.prest-texte h3 { font-size: clamp(1.15rem, 1.05rem + .4vw, 1.35rem); }
.prest-texte ul:not([class]), .prest-texte .wp-block-list:not([class*="as-"]) { list-style: none; padding-left: 0 !important; }
.prest-texte ul:not([class]) > li, .prest-texte .wp-block-list:not([class*="as-"]):not(ol) > li { position: relative; padding-left: 30px; }
.prest-texte ul:not([class]) > li::before, .prest-texte .wp-block-list:not([class*="as-"]):not(ol) > li::before {
	content: ""; position: absolute; left: 0; top: .38em; width: 18px; height: 18px; background: var(--or);
	-webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat;
}
.prest-texte img { box-shadow: var(--ombre); }
.prest-texte .alignleft, .prest-texte .alignright { max-width: min(46%, 340px); }
.prest-texte .alignleft { float: left; margin: .35em 28px 14px 0; }
.prest-texte .alignright { float: right; margin: .35em 0 14px 28px; }
.prest-texte .wp-caption, .prest-texte figure { max-width: 100%; }
.prest-texte .wp-caption-text, .prest-texte figcaption { font-size: .85rem; color: var(--muted); margin-top: 8px; }
.prest-texte h2, .prest-texte h3, .prest-texte .as-map { clear: both; }
@media (max-width: 640px) {
	.prest-texte .alignleft, .prest-texte .alignright { float: none; max-width: 100%; margin: 0 0 18px; }
}
.encart-lien { display: block; text-align: center; color: #fff; font-weight: 600; margin-bottom: 12px; }
.encart-lien:hover { color: var(--or); }
.lecture--prestation .encart .btn { margin-bottom: 12px; }

.prest-cta { background: var(--nuit); color: #dcdce6; position: relative; overflow: hidden; isolation: isolate; }
.prest-cta::before { content: ""; position: absolute; z-index: -1; left: 0; top: 0; bottom: 0; width: 10px; background: var(--or); }
.prest-cta-in { display: grid; gap: 18px; align-items: center; padding-block: clamp(32px, 5vw, 48px); }
@media (min-width: 900px) { .prest-cta-in { grid-template-columns: 1fr auto; gap: 40px; } }
.prest-cta-titre { color: #fff; font-weight: 800; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); line-height: 1.25; margin: 0 0 .3em; }
.prest-cta p { margin: 0; }
.prest-cta .pg-actions { margin: 0; }

.services-lies { padding: clamp(44px, 6vw, 80px) 0; }
.services-lies h2 { margin: 0 0 28px; }
.services-grille { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.services-grille .as-card { margin: 0; }
.services-grille h3 { font-size: 1.12rem; margin-bottom: .4em; }
.services-grille h3 a { color: var(--encre); text-decoration: none; }
.services-grille h3 a::after { content: ""; position: absolute; inset: 0; } /* carte entière cliquable */
.services-grille .as-card:hover h3 a { color: var(--or-t); }
.services-grille .as-card:hover { transform: translateY(-3px); }
.services-grille .as-card { transition: transform .15s; }
.services-grille p { font-size: .95rem; margin: 0; }
.zones + .services-lies { padding-top: clamp(44px, 6vw, 72px); }

/* Aperçu de carte plus compact ; sur mobile, la colonne latérale des prestations est masquée (bandeau d'appel et barre fixe déjà présents) */
.as-map--facade { height: 220px; }
@media (max-width: 999px) { .lecture--prestation .lecture-aside { display: none; } }

/* 12. Pages de prestation converties : pleine largeur pour les blocs, colonne de lecture à gauche pour le texte */
.entry--prestation .is-layout-constrained > :not(.alignfull):not(.alignwide),
.entry--prestation > :not(.alignfull):not(.alignwide) { max-width: min(var(--wrap) - 2 * var(--gut), 100%); }
.entry--prestation .is-layout-constrained > :is(p, h2, h3, h4, ul, ol, blockquote, .wp-block-buttons, .wp-block-quote, .wp-block-table):not(.alignfull):not(.alignwide):not(.as-points):not(.has-text-align-center) {
	max-width: 820px; margin-left: max(0px, (100% - (var(--wrap) - 2 * var(--gut))) / 2) !important; margin-right: auto !important;
}
.entry--prestation .is-layout-constrained > :is(h2, h3) { position: relative; padding-left: 18px; color: var(--encre); }
.entry--prestation .is-layout-constrained > :is(h2, h3)::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 4px; background: var(--or); }
.entry--prestation .is-layout-constrained > :is(h2, h3).has-text-align-center { padding-left: 0; }
.entry--prestation .is-layout-constrained > :is(h2, h3).has-text-align-center::before { display: none; }
.entry--prestation .is-layout-constrained > h2 { font-size: clamp(1.45rem, 1.2rem + .9vw, 1.95rem); margin-top: 1.6em; }
.entry--prestation .wp-block-list:not([class*="as-"]) { list-style: none; padding-left: 0 !important; }
.entry--prestation .wp-block-list:not([class*="as-"]):not(ol) > li { position: relative; padding-left: 30px; }
.entry--prestation .wp-block-list:not([class*="as-"]):not(ol) > li::before {
	content: ""; position: absolute; left: 0; top: .38em; width: 18px; height: 18px; background: var(--or);
	-webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat;
}
.entry--prestation .wp-block-columns { gap: clamp(24px, 4vw, 56px); align-items: center; }
.entry--prestation .wp-block-column .wp-block-image img { box-shadow: var(--ombre); }
.entry--prestation .is-layout-constrained > .wp-block-table:not(.alignfull) { max-width: 900px; }
.entry--prestation table { box-shadow: var(--ombre); }
.entry--prestation thead th, .entry--prestation tr:first-child th { background: var(--nuit); color: #fff; border-color: var(--nuit); }
.entry--prestation tbody tr:nth-child(even) td { background: #fafafb; }

/* Grille de points clés (rangées de petites colonnes Elementor) */
.as-points { list-style: none; padding: 0 !important; margin-top: 24px !important; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.as-points li { position: relative; margin: 0; padding: 18px 18px 18px 56px; background: #fff; box-shadow: var(--ombre); border-left: 3px solid var(--or); font-weight: 700; color: var(--encre); line-height: 1.35; }
.as-points li::before {
	content: ""; position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; background: var(--or);
	-webkit-mask: var(--i-shield) center / contain no-repeat; mask: var(--i-shield) center / contain no-repeat;
}
.as-points + .as-points { margin-top: 14px !important; }

/* Titre « sujet : promesse » */
.pg-zone--sous { margin-top: .35em; font-size: .52em; line-height: 1.25; font-weight: 700; }

/* Cartes de niveaux (SSIAP 1, 2, 3) */
.as-niveaux .as-card { padding-top: 26px; }
.as-niveau { display: inline-block; margin: 0 0 10px !important; padding: 4px 12px; border-radius: 999px; background: var(--or); color: #fff; font-weight: 800; font-size: .85rem; letter-spacing: .06em; }
.as-niveaux .as-card[class*="as-ico-"]::before { position: absolute; top: 24px; right: 24px; margin: 0; width: 36px; height: 36px; opacity: .9; }
.as-card .as-checks { grid-template-columns: 1fr !important; gap: 6px; font-size: .95rem; margin-top: 14px; }
.as-card .as-checks li { font-weight: 500; }
.wp-block-column > .as-cta { margin-block: 0; }
.as-cta .wp-block-buttons { margin-top: 16px; }
.as-clair .as-card { background: #fff; }

/* Titres centrés dans les pages de prestation : pleine largeur, centrés */
.entry--prestation .is-layout-constrained > .has-text-align-center:not(.alignfull) { max-width: min(var(--wrap) - 2 * var(--gut), 100%); margin-left: auto !important; margin-right: auto !important; }
/* Surtitre immédiatement suivi de son titre */
.as-kicker + .wp-block-heading, .entry--prestation .is-layout-constrained > .as-kicker + h2 { margin-top: 0 !important; }
/* Boutons secondaires sur fond sombre (encarts d'appel) */
body .as-cta .is-style-outline > .wp-block-button__link, body .as-navy .is-style-outline > .wp-block-button__link, body .as-gris .is-style-outline > .wp-block-button__link { color: #fff; border-color: #fff; }
body .as-cta .is-style-outline > .wp-block-button__link:hover, body .as-navy .is-style-outline > .wp-block-button__link:hover, body .as-gris .is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--encre); }
.entry .has-text-align-center { text-align: center !important; }
.as-kicker.has-text-align-center { display: block; }
.entry--prestation .is-layout-constrained > h2.has-text-align-center { padding-left: 0; }
/* Piliers : 4 cartes sur 2 colonnes en tablette */
@media (min-width: 782px) and (max-width: 1099px) { .as-piliers { flex-wrap: wrap !important; } .as-piliers > .wp-block-column { flex-basis: calc(50% - 12px) !important; } }

/* Fiches d'équipe (page Équipe recomposée) */
.as-equipe { gap: 24px !important; margin-top: 32px; }
.as-membre { background: #fff; box-shadow: var(--ombre); text-align: center; padding-bottom: 22px; height: 100%; }
.as-membre .wp-block-image { margin: 0 0 18px; }
.as-membre img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.as-membre h3 { margin: 0 0 4px !important; padding: 0 !important; font-size: 1.25rem; }
.as-membre h3::before { display: none !important; }
.as-membre-role { margin: 0; color: var(--or-t); font-weight: 700; }
.as-equipe > .wp-block-column { display: flex; }
.as-equipe .as-membre { width: 100%; }
@media (min-width: 782px) { .as-equipe { max-width: 960px; margin-inline: auto !important; } }

/* Surtitre seul dans une section : bloc, pour suivre l'alignement du contenu */
.is-layout-constrained > .as-kicker { display: block; }

/* Photo des colonnes texte + visuel : hauteur bornée (photos portrait) */
.as-media .wp-block-image img { max-height: 480px; object-fit: cover; }
/* Liens et listes lisibles dans les encarts sombres */
.as-cta a:not(.wp-block-button__link), .as-cta li { color: #fff; }
.as-cta a:not(.wp-block-button__link):hover { color: var(--or); }
.as-cta-mail { font-weight: 700; }

/* Contenu qui se termine par une section pleine largeur : pas de marge en dessous */
.entry--prestation:has(> .alignfull:last-child) { padding-bottom: 0; }

/* Encadré « À lire aussi » posé par _source/cluster/maillage.php */
.as-maillage:not(.as-section) { border-top: 3px solid var(--or); background: var(--clair); padding: clamp(18px, 3vw, 28px); margin-block: 2.5em; }
.as-maillage.as-section { background: var(--clair); border-top: 1px solid var(--ligne); padding-block: clamp(36px, 5vw, 56px); }
.as-maillage h2 { font-size: 1.25rem; margin: 0 0 .7em; }
.as-liens { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: 10px 28px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.as-liens li { position: relative; padding-left: 26px; margin: 0; }
.as-liens li::before { content: ""; position: absolute; left: 0; top: .3em; width: 16px; height: 16px; background: var(--or-t); -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat; }
.as-liens a { color: var(--encre); font-weight: 600; text-decoration: none; }
.as-liens a:hover, .as-liens a:focus-visible { color: var(--or-t); text-decoration: underline; }
