/* ==========================================================================
   Cormoran — feuille de style unique (front + éditeur)
   Charte : Montserrat (titres) / Lato (texte) · navy #1b3968 · cyan #2fbffc
   · bleu nuit #002133 · footer #001c26 · tricolore #1b3968 / #fff / #e1000f
   ========================================================================== */

:root {
	--navy: #1b3968; --cyan: #2fbffc; --night: #002133; --night-2: #0b2b45; --night-3: #0e3350;
	--footer: #001c26; --footer-line: #143a4d; --footer-text: #c9d6e4; --footer-muted: #8fa6b8;
	--text: #2d2d2d; --muted: #5f6b7a; --line: #e3e8ef; --surface: #f4f6fa; --white: #fff; --rouge: #e1000f;
	--font-h: 'Montserrat', sans-serif; --font-b: 'Lato', sans-serif;
	--container: 1440px; --gutter: clamp(20px, 3vw, 40px); --radius: 10px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-b); font-size: 17px; line-height: 1.65; color: var(--text); background: var(--white); }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-decoration: none; }
a:hover { color: var(--cyan); }
h1, h2, h3, h4 { font-family: var(--font-h); font-weight: 600; line-height: 1.2; color: var(--navy); margin: 0; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
strong { font-weight: 700; }
button { font: inherit; }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.skip-link { position: absolute; left: -9999px; top: 8px; background: var(--cyan); color: #fff; padding: 8px 14px; border-radius: 6px; z-index: 1000; }
.skip-link:focus { left: 8px; }

.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.container-narrow { max-width: 860px; margin: 0 auto; padding: 0 var(--gutter); }
.site-main > * { margin-block: 0; }

/* ---------- Composants ---------- */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 26px; border-radius: 6px; font-weight: 700; font-size: 15px; line-height: 1.2; border: 1px solid transparent; cursor: pointer; transition: transform .15s, background .15s, color .15s; }
.btn:hover { transform: translateY(-1px); }
.btn--cyan { background: var(--cyan); color: #fff; }
.btn--cyan:hover { background: #17aef0; color: #fff; }
.btn--outline { border-color: var(--navy); color: var(--navy); background: transparent; }
.btn--outline:hover { background: var(--navy); color: #fff; }
.btn--outline-white { border-color: #fff; color: #fff; background: transparent; }
.btn--outline-white:hover { background: #fff; color: var(--navy); }
.link-underline { display: inline-block; font-weight: 700; font-size: 15px; color: var(--navy); border-bottom: 2px solid var(--cyan); padding-bottom: 3px; }
.link-underline:hover { color: var(--cyan); }
.eyebrow { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin: 0 0 14px; }
.eyebrow--cyan { color: var(--cyan); }
.eyebrow--navy { color: var(--navy); }
.eyebrow--white { color: #fff; }
.hl { background: linear-gradient(transparent 55%, rgba(47,191,252,.45) 55%); }
.hl--rouge, .mif__title em { font-style: normal; background: linear-gradient(transparent 55%, rgba(225,0,15,.18) 55%); }
.flag { display: inline-block; vertical-align: middle; flex-shrink: 0; }
.tricolor { display: flex; height: 5px; }
.tricolor span { flex: 1; }
.tricolor span:nth-child(1) { background: var(--navy); }
.tricolor span:nth-child(2) { background: #fff; }
.tricolor span:nth-child(3) { background: var(--rouge); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { background: var(--surface); color: var(--navy); font-size: 13px; padding: 6px 10px; border-radius: 4px; }
.list-dots { list-style: none; margin: 0; padding: 0; font-size: 15px; line-height: 1.5; }
.list-dots li { position: relative; padding-left: 16px; margin-bottom: 6px; }
.list-dots li::before { content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); }
.photo { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; background: var(--surface); }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.photo--contain { background: #fff; }
.photo--contain img { object-fit: contain; }
.photo--tall { aspect-ratio: 440 / 520; }
.photo--tall img { height: 100%; }
.photo--packshot { aspect-ratio: 16 / 9; margin-top: 8px; }
/* Légende « cartouche technique » : repères de cadrage cyan + cartouche bleu nuit */
.photo:has(> .photo__cap)::before, .photo:has(> .photo__cap)::after { content: ""; position: absolute; z-index: 2; width: 22px; height: 22px; border: 1.5px solid var(--cyan); pointer-events: none; }
.photo:has(> .photo__cap)::before { top: 14px; left: 14px; border-right: 0; border-bottom: 0; }
.photo:has(> .photo__cap)::after { right: 14px; bottom: 14px; border-left: 0; border-top: 0; }
.photo__cap { position: absolute; z-index: 2; left: 28px; bottom: 30px; max-width: calc(100% - 80px); background: rgba(0, 33, 51, .88); color: #fff; font-family: var(--font-h); font-size: 13px; font-weight: 600; line-height: 1.35; padding: 10px 14px; border-left: 2px solid var(--cyan); border-radius: 0; }
.photo--menu:has(> .photo__cap)::before, .photo--menu:has(> .photo__cap)::after { width: 16px; height: 16px; }
.photo--menu .photo__cap { left: 20px; bottom: 22px; font-size: 12px; padding: 8px 12px; }
@media (max-width: 700px) { .photo__cap { left: 22px; bottom: 24px; font-size: 12px; padding: 8px 12px; } }

/* ---------- Header + mega menu ---------- */
/* Header « double niveau » : barre d'infos gris perle (non collante) + barre blanche collante. */
.topbar { background: var(--surface); border-bottom: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 40px; }
.topbar__facts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 0; padding: 0; list-style: none; }
.topbar__facts li { display: inline-flex; align-items: center; gap: 8px; }
.topbar__facts li + li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--cyan); margin: 0 18px; }
.topbar__facts .flag { width: 18px; height: 12px; }
.topbar__links { display: flex; align-items: center; gap: 24px; font-family: var(--font-h); font-weight: 600; font-size: 13px; }
.topbar__links a { color: var(--navy); display: inline-flex; align-items: center; gap: 7px; }
.topbar__links a:hover { color: var(--cyan); }
.topbar__links .ic { color: var(--cyan); }
/* Icônes métier : le détail « ac » (bagues, jet, tuyau) est toujours cyan. */
.ic .ac { stroke: var(--cyan); }
.site-header { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid var(--line); transition: box-shadow .2s; }
.site-header.is-scrolled { box-shadow: 0 8px 24px -16px rgba(0, 33, 51, .35); }
.site-header__inner { position: relative; display: flex; align-items: center; justify-content: space-between; height: 80px; gap: 24px; }
.site-header__brand img, .site-logo { height: 46px; width: auto; max-width: 260px; object-fit: contain; }
.site-header__brand .site-logo { height: 40px; }
.site-nav { display: flex; align-items: center; gap: 24px; }
.nav { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 26px; }
.nav__item { position: static; }
.nav__link { display: inline-flex; align-items: center; gap: 6px; padding: 28px 0; white-space: nowrap; color: var(--navy); font-family: var(--font-h); font-weight: 500; font-size: 15px; border-bottom: 2px solid transparent; }
.nav__link .ic--chevron { opacity: .55; }
.nav__link .ic--chevron { transition: transform .2s; }
.nav__item:hover > .nav__link, .nav__item.is-open > .nav__link, .nav__item.is-current > .nav__link { color: var(--cyan); border-bottom-color: var(--cyan); }
.nav__item.is-open > .nav__link .ic--chevron { transform: rotate(180deg); }
.site-header__cta { padding: 12px 20px; border-radius: 4px; }

.mega { position: absolute; left: var(--gutter); right: var(--gutter); top: 100%; transform: translateY(8px); display: grid; grid-template-columns: 260px 1fr 340px; background: #fff; color: var(--text); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 6px 6px; box-shadow: 0 24px 48px -12px rgba(0,28,38,.22); opacity: 0; visibility: hidden; transition: opacity .18s, transform .18s, visibility .18s; overflow: hidden; }
.nav__item.has-mega:hover > .mega, .nav__item.is-open > .mega, .nav__item:focus-within > .mega { opacity: 1; visibility: visible; transform: translateY(0); }
.mega__intro { padding: 32px 28px; background: var(--surface); border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.mega__title { font-family: var(--font-h); font-size: 22px; font-weight: 600; color: var(--navy); line-height: 1.2; }
.mega__lead { font-size: 14px; line-height: 1.6; margin: 0; }
.mega__cta { margin-top: auto; align-self: flex-start; font-size: 14px; }
.mega__links { list-style: none; margin: 0; padding: 20px 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 4px; align-content: start; }
.mega__link { display: flex; gap: 12px; align-items: flex-start; padding: 12px 12px; border-radius: 8px; color: var(--text); }
.mega__link:hover { background: var(--surface); color: var(--text); }
.mega__icon { flex-shrink: 0; width: 40px; height: 40px; border-radius: 8px; background: var(--surface); color: var(--navy); display: flex; align-items: center; justify-content: center; }
.mega__link:hover .mega__icon { background: #fff; }
.mega__text { display: flex; flex-direction: column; gap: 2px; }
.mega__name { font-family: var(--font-h); font-size: 15px; font-weight: 600; color: var(--navy); }
.mega__desc { font-size: 13px; color: var(--muted); line-height: 1.45; }
.mega__visual { padding: 20px; border-left: 1px solid var(--line); }
.photo--menu { aspect-ratio: 340 / 250; }
.mega__mif { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; font-weight: 700; color: var(--navy); }
/* Mega menu de 2 pages ou moins : « photo immersive » */
.mega.mega--duo { grid-template-columns: 1.1fr 1fr; }
.mega__hero { position: relative; min-height: 300px; overflow: hidden; background: var(--night); }
.mega__hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mega__hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,33,51,.92) 0%, rgba(0,33,51,.7) 45%, rgba(0,33,51,.15) 100%); }
.mega__hero-txt { position: relative; z-index: 1; height: 100%; max-width: 380px; padding: 30px; display: flex; flex-direction: column; gap: 12px; }
.mega--duo .mega__title { color: #fff; }
.mega--duo .mega__lead { color: rgba(255,255,255,.82); }
.mega--duo .mega__mif { color: #fff; font-size: 12px; margin-top: 2px; }
.mega--duo .mega__cta { color: #fff; margin-top: auto; }
.mega--duo .mega__cta:hover { color: var(--cyan); }
.mega__side { padding: 22px 26px; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.mega--duo .mega__links { grid-template-columns: 1fr; padding: 0; gap: 0; }
.mega--duo .mega__link { padding: 18px 8px; border-radius: 0; border-bottom: 1px solid var(--line); }
.mega--duo .mega__item:first-child .mega__link { padding-top: 8px; }
.mega--duo .mega__link:hover { background: none; }
.mega--duo .mega__link:hover .mega__icon { background: var(--surface); }
.mega--duo .mega__text { flex: 1; min-width: 0; }
.mega--duo .mega__name { font-size: 17px; }
.mega--duo .mega__link:hover .mega__name { color: var(--cyan); }
.mega--duo .mega__links--cards { grid-template-columns: 1fr 1fr; gap: 14px; }
.mega__card { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; color: var(--text); transition: border-color .15s, box-shadow .15s; }
.mega__card:hover { border-color: var(--cyan); box-shadow: 0 10px 24px -16px rgba(0, 33, 51, .4); }
.mega__card-img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--surface); }
.mega__card-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.mega__card:hover .mega__card-img img { transform: scale(1.04); }
.mega__card-b { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 12px 14px; }
.mega__card .mega__name { font-size: 14.5px; line-height: 1.3; }
.mega__card-b .mega__arrow { flex: none; }
.mega__card:hover .mega__name { color: var(--cyan); }
.mega__card .mega__arrow { align-self: center; }
.mega__card:hover .mega__arrow { transform: translateX(4px); }
.mega__arrow { color: var(--cyan); font-weight: 700; font-size: 17px; align-self: center; transition: transform .15s; }
.mega__link:hover .mega__arrow { transform: translateX(4px); }
.mega__box { margin-top: auto; background: var(--surface); border-radius: 8px; padding: 14px 16px; display: flex; align-items: center; gap: 14px; }
.mega__box p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--muted); flex: 1; }
.mega__box strong { display: block; color: var(--navy); font-size: 14px; }
.mega__box a { font-weight: 700; font-size: 13px; color: var(--navy); white-space: nowrap; }
.mega__box a:hover { color: var(--cyan); }
.nav-toggle { display: none; background: none; border: 0; color: var(--navy); padding: 8px; cursor: pointer; }
.nav-toggle .ic--close { display: none; }
.nav-toggle[aria-expanded="true"] .ic--menu { display: none; }
.nav-toggle[aria-expanded="true"] .ic--close { display: block; }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; background: var(--night); color: #fff; min-height: 640px; display: flex; align-items: flex-end; }
.hero__media, .hero__media img, .band__media, .band__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,33,51,.1) 0%, rgba(0,33,51,.85) 100%); }
.hero > .tricolor { position: absolute; top: 0; left: 0; right: 0; z-index: 2; }
.hero__inner { position: relative; z-index: 2; padding-top: 96px; padding-bottom: 64px; max-width: calc(var(--container)); width: 100%; }
.hero__inner > * { max-width: 800px; }
.hero__title { font-size: clamp(30px, 3.2vw, 46px); font-weight: 600; line-height: 1.12; letter-spacing: -.015em; color: #fff; margin-bottom: 22px; }
.hero__inner > .hero__title { max-width: 680px; }
.hero__text { font-size: 17px; line-height: 1.6; color: #d5deea; max-width: 58ch; margin-bottom: 30px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero__mif { display: inline-flex; align-items: center; gap: 8px; margin-left: 8px; color: #fff; font-size: 14px; font-weight: 700; }
.hero--light { background: #fff; color: var(--text); min-height: 0; }
.hero--light .hero__inner { padding-top: 56px; padding-bottom: 24px; }
.hero--light::after { display: none; }
.hero--light .hero__title { color: var(--navy); }
.hero--light .hero__text { color: var(--text); }
.hero--light .eyebrow--white, .hero--light .hero__mif { color: var(--navy); }

/* ---------- Hero « split » : produit en studio à droite ---------- */
.hero--split { display: block; min-height: 0; background: linear-gradient(90deg, var(--night) 0%, #00131d 42%, #000 70%); isolation: isolate; }
.hero--split::after { display: none; }
.hero--split > .tricolor { top: auto; bottom: 0; }
.hero__split { display: grid; grid-template-columns: minmax(0, 560px); grid-template-areas: "content"; align-items: center; min-height: 620px; padding-top: 56px; padding-bottom: 48px; }
.hero__content { grid-area: content; position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; }
.hero--split .eyebrow { margin-bottom: 22px; }
.hero--split .hero__title { font-size: clamp(30px, 3.2vw, 46px); font-weight: 600; line-height: 1.12; letter-spacing: -.015em; margin-bottom: 22px; }
.hero__accent { display: block; color: var(--cyan); }
.hero--split .hero__text { font-size: 17px; line-height: 1.6; color: #c6d6e0; max-width: 46ch; margin-bottom: 30px; }
/* Le drone est centré entre la colonne de texte et le rail de chiffres. */
.hero__stage { position: absolute; top: 0; bottom: 0; left: min(50% - 242px, 75% - 592px); aspect-ratio: 3 / 2; height: 100%; pointer-events: none; }
.hero__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; filter: brightness(1.18) contrast(1.06); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 26%); mask-image: linear-gradient(90deg, transparent 0%, #000 26%); }
.hero__rail { position: absolute; z-index: 2; right: max(var(--gutter), (100% - var(--container)) / 2 + var(--gutter)); top: calc(50% - 30px); transform: translateY(-50%); list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 26px; }
.hero__rail li { border-left: 1px solid var(--cyan); padding-left: 14px; }
.hero__rail strong { display: block; font-family: var(--font-h); font-size: 24px; font-weight: 600; color: #fff; line-height: 1.2; font-variant-numeric: tabular-nums; }
.hero__rail span { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #8fa9b8; }
.hero__foot { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 8px 24px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.12); padding-top: 18px; padding-bottom: 26px; font-size: 13px; color: #8fa9b8; }
.hero__foot p { margin: 0; }
.hero__foot b, .hero__foot strong { color: #fff; font-weight: 700; }
/* Tablette et mobile : texte, puis drone, puis chiffres. */
@media (max-width: 1100px) {
	.hero--split { min-height: 0 !important; }
	.hero--split { background: var(--night); }
	.hero__split { grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "media" "rail"; min-height: 0; padding-top: 40px; padding-bottom: 28px; }
	.hero--split .hero__text { max-width: 58ch; }
	.hero__stage { grid-area: media; position: relative; left: auto; top: auto; bottom: auto; height: auto; width: calc(100% + 2 * var(--gutter)); max-width: none; margin: 12px calc(-1 * var(--gutter)) 0; aspect-ratio: 16 / 8; }
	.hero__stage img { object-position: 50% 60%; -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 28%, #000 76%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 28%, #000 76%, transparent 100%); }
	.hero__rail { grid-area: rail; position: static; transform: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 16px; margin-top: 4px; }
}
@media (max-width: 700px) {
	.hero__split { padding-top: 30px; }
	.hero--split .eyebrow { margin-bottom: 16px; font-size: 11px; letter-spacing: .14em; }
	.hero__title, .hero--split .hero__title { font-size: clamp(27px, 7.6vw, 34px); margin-bottom: 16px; }
	.hero--split .hero__text { font-size: 16px; margin-bottom: 22px; }
	.hero--split .hero__actions { width: 100%; }
	.hero__stage { aspect-ratio: 5 / 4; margin-top: 0; }
	.hero__stage img { object-position: 50% 62%; }
	.hero__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hero__rail strong { font-size: 22px; }
	.hero__rail span { font-size: 10.5px; letter-spacing: .1em; line-height: 1.4; margin-top: 2px; }
	.hero__foot { flex-direction: column; padding-bottom: 24px; }
}
@media (max-width: 480px) {
	.hero--split .hero__actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* ---------- Bloc « Devis — Studio » ---------- */
.devis-studio { position: relative; overflow: hidden; overflow: clip; isolation: isolate; color: #fff; background: linear-gradient(90deg, var(--night) 0%, #00131d 50%, #000 100%); }
.devis-studio > .tricolor { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; }
.devis-studio__photo { position: absolute; top: 120px; height: 660px; left: 26%; right: 26%; z-index: 0; pointer-events: none; }
.devis-studio__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; filter: brightness(1.15) contrast(1.05); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 72%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 25%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 72%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 25%); mask-composite: intersect; }
.devis-studio__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 48px; align-items: start; min-height: 720px; padding-top: 56px; padding-bottom: 64px; }
.devis-studio__content { display: flex; flex-direction: column; align-items: flex-start; position: sticky; top: 120px; padding-top: 24px; }
.devis-studio .eyebrow { margin-bottom: 22px; }
.devis-studio__title { font-size: clamp(30px, 3.2vw, 46px); font-weight: 600; line-height: 1.12; letter-spacing: -.015em; color: #fff; margin: 0 0 22px; max-width: 20ch; }
.devis-studio__title span { display: block; color: var(--cyan); }
.devis-studio__text { font-size: 17px; line-height: 1.6; color: #c6d6e0; max-width: 46ch; margin: 0; }
.devis-studio__steps { list-style: none; margin: 0; padding: 220px 0 0; display: flex; flex-direction: column; gap: 16px; max-width: 380px; }
.devis-studio__steps li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; }
.devis-studio__n { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--cyan); color: var(--cyan); display: grid; place-items: center; font-family: var(--font-h); font-size: 13px; font-weight: 600; }
.devis-studio__steps strong { display: block; font-family: var(--font-h); font-size: 15px; font-weight: 600; color: #fff; }
.devis-studio__steps small { display: block; font-size: 13.5px; color: #9fb8c8; }
.devis-studio__phone { margin: 22px 0 0; font-size: 14px; color: #9fb8c8; }
.devis-studio__phone a { color: #fff; font-family: var(--font-h); font-weight: 600; font-size: 18px; margin-left: 6px; }
.devis-studio__card { background: #fff; color: var(--text); border-radius: 10px; padding: 28px 28px 20px; box-shadow: 0 30px 60px rgba(0, 0, 0, .45); }
.devis-studio__ftitle { font-size: 20px; color: var(--navy); margin: 0 0 4px; }
.devis-studio__ftext { font-size: 14px; color: var(--muted); margin: 0 0 14px; }
.devis-studio__card .pipedriveWebForms { min-height: 420px; }
.devis-studio__placeholder { display: grid; place-items: center; min-height: 320px; border: 1px dashed #b9c4cf; border-radius: 6px; color: var(--muted); font-size: 14px; }
@media (max-width: 1100px) {
	.devis-studio__grid { grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; }
	.devis-studio__photo { left: 20%; right: 30%; }
}
@media (max-width: 900px) {
	.devis-studio { background: var(--night); }
	.devis-studio__photo { display: none; }
	.devis-studio__grid { grid-template-columns: 1fr; min-height: 0; padding-top: 32px; padding-bottom: 36px; gap: 28px; }
	.devis-studio__steps { padding-top: 26px; }
	.devis-studio__content { position: static; padding-top: 0; }
	.devis-studio__card { padding: 22px 18px 14px; margin: 0 calc(-1 * var(--gutter) + 8px); }
}

/* ---------- Bloc « Contact — Studio » ---------- */
.contact-studio__band { position: relative; overflow: hidden; isolation: isolate; color: #fff; background: linear-gradient(90deg, var(--night) 0%, #00131d 50%, #000 100%); }
.contact-studio__band > .tricolor { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; }
.contact-studio__photo { position: absolute; top: 0; bottom: 0; left: 55%; right: -4%; z-index: 0; pointer-events: none; }
.contact-studio__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; filter: brightness(1.15) contrast(1.05); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 75%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 75%, transparent 100%); }
.contact-studio__head { position: relative; z-index: 2; padding-top: 48px; padding-bottom: 44px; }
.contact-studio .eyebrow { margin-bottom: 18px; }
.contact-studio__title { font-size: clamp(30px, 3.2vw, 46px); font-weight: 600; line-height: 1.12; letter-spacing: -.015em; color: #fff; margin: 0 0 24px; }
.contact-studio__title span { color: var(--cyan); }
.contact-studio__pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.contact-studio__pills a, .contact-studio__pills span { display: inline-flex; align-items: center; gap: 10px; padding: 11px 16px; border-radius: 6px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); color: #fff; font-weight: 700; font-size: 15px; text-decoration: none; transition: border-color .15s, background .15s; }
.contact-studio__pills a:hover { border-color: var(--cyan); background: rgba(47,191,252,.12); }
.contact-studio__pills svg { color: var(--cyan); flex: none; }
.contact-studio__pills small { font-weight: 400; color: #a9c2d1; font-size: 14px; }
.contact-studio__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.contact-studio__left { background: var(--surface); padding: 44px max(var(--gutter), (100vw - var(--container)) / 2 + var(--gutter)) 56px; padding-right: 48px; }
.contact-studio__sticky { position: sticky; top: 110px; }
.contact-studio__left h2, .contact-studio__right h2 { font-size: 24px; color: var(--navy); margin: 0 0 14px; }
.contact-studio__links { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.contact-studio__links a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line); color: var(--navy); font-weight: 700; font-size: 15.5px; text-decoration: none; }
.contact-studio__links a span { color: var(--cyan); transition: transform .15s; }
.contact-studio__links a:hover span { transform: translateX(4px); }
.contact-studio__right { padding: 44px 48px 56px; padding-right: max(var(--gutter), (100vw - var(--container)) / 2 + var(--gutter)); }
.contact-studio__right h2 { margin-bottom: 4px; }
.contact-studio__ftext { color: var(--muted); margin: 0 0 16px; }
.contact-studio__right .pipedriveWebForms { min-height: 420px; }
@media (max-width: 900px) {
	.contact-studio__photo { display: none; }
	.contact-studio__head { padding-top: 32px; padding-bottom: 30px; }
	.contact-studio__pills a, .contact-studio__pills span { width: 100%; }
	.contact-studio__cols { grid-template-columns: 1fr; }
	.contact-studio__right { order: -1; padding: 28px var(--gutter) 32px; }
	.contact-studio__left { padding: 28px var(--gutter) 36px; }
	.contact-studio__sticky { position: static; }
}

/* ---------- Démonstrations : carte + tableau des départs + inscription ---------- */
.demos { --mono: 'IBM Plex Mono', ui-monospace, monospace; }
.demos__board-wrap { position: relative; overflow: hidden; color: #fff; padding: 88px 0 96px; background: radial-gradient(120% 90% at 15% 10%, #0b3550 0%, var(--night) 45%, #00121c 100%); }
.demos__board-wrap > .tricolor { position: absolute; left: 0; right: 0; bottom: 0; }
.demos__head { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 64px; align-items: end; margin-bottom: 48px; }
.demos__head .eyebrow { margin-bottom: 16px; }
.demos__title { font-size: clamp(30px, 3.2vw, 46px); font-weight: 600; line-height: 1.12; letter-spacing: -.015em; color: #fff; }
.demos__title span { color: var(--cyan); }
.demos__intro { color: rgba(255,255,255,.72); margin: 0; max-width: 540px; }
.demos__notice { background: rgba(255,181,71,.12); border: 1px solid rgba(255,181,71,.5); color: #ffd79b; padding: 14px 18px; border-radius: 8px; margin-bottom: 24px; }
.demos__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.demos__grid--nomap { grid-template-columns: 1fr; }

/* Carte */
.demos__map { margin: 0; position: sticky; top: 110px; border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius); background: rgba(255,255,255,.02); overflow: hidden; }
.demos__map svg { width: 100%; height: auto; display: block; }
.demos__land { fill: rgba(47,191,252,.06); stroke: rgba(47,191,252,.6); stroke-width: 1.2; stroke-linejoin: round; }
.demos__hatch path { stroke: rgba(255,255,255,.035); stroke-width: 1; }
.demos__route { fill: none; stroke: rgba(47,191,252,.55); stroke-width: 1.4; stroke-dasharray: 4 6; animation: demos-dash 1.4s linear infinite; transition: opacity .2s, stroke .2s, stroke-width .2s; }
.demos__route.is-active, .demos__route.is-hover { stroke: var(--cyan); stroke-width: 2.2; }
.demos__route.is-dim { opacity: .12; }
@keyframes demos-dash { to { stroke-dashoffset: -20; } }
.demos__base rect { fill: #fff; }
.demos__base text, .demos__pin text { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; paint-order: stroke; stroke: #001a29; stroke-width: 4px; stroke-linejoin: round; }
.demos__base text { fill: rgba(255,255,255,.62); font-size: 11px; }
.demos__pin { cursor: pointer; outline: none; transition: opacity .2s; }
.demos__pin text { fill: #fff; }
.demos__count { fill: var(--cyan); }
.demos__dot { fill: var(--cyan); stroke: #001a29; stroke-width: 3; transform-box: fill-box; transform-origin: center; transition: transform .2s; }
.demos__pulse { fill: none; stroke: var(--cyan); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
.demos__pin.is-next .demos__pulse { animation: demos-pulse 2s ease-out infinite; }
@keyframes demos-pulse { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(3.2); } }
.demos__pin:hover .demos__dot, .demos__pin:focus-visible .demos__dot, .demos__pin.is-active .demos__dot, .demos__pin.is-hover .demos__dot { transform: scale(1.45); }
.demos__pin:focus-visible text { fill: var(--cyan); }
.demos__pin.is-dim { opacity: .35; }
.demos__cartouche { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.1); font-family: var(--mono); }
.demos__cartouche span { padding: 12px 16px; font-size: 15px; font-weight: 600; color: #fff; }
.demos__cartouche span + span { border-left: 1px solid rgba(255,255,255,.1); }
.demos__cartouche small { display: block; font-size: 10px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 2px; }

/* Tableau des départs */
.demos__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.demos__chip { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; padding: 8px 13px; border-radius: 4px; border: 1px solid rgba(255,255,255,.2); background: transparent; color: rgba(255,255,255,.78); cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.demos__chip:hover { border-color: var(--cyan); color: #fff; }
.demos__chip.is-active { background: var(--cyan); border-color: var(--cyan); color: var(--night); font-weight: 600; }
.demos__chip--city { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--night); border-color: #fff; font-weight: 600; }
.demos__chip--city[hidden] { display: none; }
.demos__cols { display: flex; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45); padding: 0 18px 10px; border-bottom: 1px solid rgba(255,255,255,.14); }
.demos__row { display: grid; grid-template-columns: 96px auto minmax(0, 1fr) auto; grid-template-areas: "date city city act" "date time seats act"; gap: 8px 22px; align-items: center; }
.demos__date { grid-area: date; } .demos__city { grid-area: city; } .demos__time { grid-area: time; } .demos__seats { grid-area: seats; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; min-width: 0; } .demos__act { grid-area: act; }
.demos__list { list-style: none; margin: 0; padding: 0; }
.demos__row { padding: 18px; border-bottom: 1px solid rgba(255,255,255,.08); transition: background .15s, box-shadow .15s; }
.demos__row:hover { background: rgba(255,255,255,.04); box-shadow: inset 3px 0 0 var(--cyan); }
.demos__row[hidden] { display: none; }
.demos__date { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; }
.demos__d { grid-row: 1 / 3; display: flex; gap: 3px; }
.demos__d b { position: relative; display: grid; place-items: center; width: 24px; height: 36px; border-radius: 3px; background: linear-gradient(180deg, #13405e 0 50%, #0e3550 50% 100%); font-family: var(--mono); font-size: 22px; font-weight: 600; color: #fff; box-shadow: inset 0 -1px 0 rgba(0,0,0,.35); }
.demos__d b::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0,0,0,.55); }
.demos__m { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan); align-self: end; line-height: 1.2; }
.demos__w { font-family: var(--mono); font-size: 11px; color: rgba(255,255,255,.5); align-self: start; line-height: 1.2; }
.demos__city strong { display: block; font-family: var(--font-h); font-weight: 600; font-size: 19px; letter-spacing: .05em; text-transform: uppercase; color: #fff; line-height: 1.2; }
.demos__city small { display: block; font-size: 13px; color: rgba(255,255,255,.6); margin-top: 3px; line-height: 1.4; }
.demos__time { font-family: var(--mono); font-size: 14px; color: #fff; white-space: nowrap; }
.demos__time i { font-style: normal; color: var(--cyan); margin: 0 6px; }
.demos__seatmap { display: flex; flex-wrap: wrap; flex: 0 0 auto; gap: 3px; max-width: 176px; }
.demos__seatmap i { width: 8px; height: 8px; border-radius: 2px; background: rgba(255,255,255,.14); }
.demos__seatmap i.on { background: var(--cyan); }
.demos__state { font-family: var(--mono); font-size: 12px; color: rgba(255,255,255,.78); white-space: nowrap; }
.demos__row.is-last .demos__state { color: #ffb547; }
.demos__row.is-last .demos__seatmap i.on { background: #ffb547; }
.demos__row.is-full .demos__state { color: #ff7a7a; }
.demos__row.is-full .demos__city strong, .demos__row.is-full .demos__d b { opacity: .6; }
.demos__row.is-cancelled { opacity: .5; }
.demos__row.is-cancelled .demos__city strong { text-decoration: line-through; }
.demos__row.is-soon .demos__state { color: var(--cyan); }
.demos__act { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.demos__book { padding: 10px 18px; font-size: 14px; }
.demos__cal { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: rgba(255,255,255,.5); }
.demos__cal a { color: rgba(255,255,255,.72); text-decoration: underline; text-decoration-color: rgba(255,255,255,.25); text-underline-offset: 3px; }
.demos__cal a:hover { color: var(--cyan); }
.demos__empty { border: 1px dashed rgba(255,255,255,.22); border-radius: var(--radius); padding: 48px 32px; text-align: center; }
.demos__empty-board { display: inline-flex; gap: 4px; margin-bottom: 22px; }
.demos__empty-board i { position: relative; display: grid; place-items: center; width: 34px; height: 46px; border-radius: 3px; background: linear-gradient(180deg, #13405e 0 50%, #0e3550 50% 100%); font-family: var(--mono); font-style: normal; font-size: 26px; font-weight: 600; color: #fff; }
.demos__empty-board i::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0,0,0,.55); }
.demos__empty h3 { color: #fff; font-size: 22px; margin-bottom: 10px; }
.demos__empty p { color: rgba(255,255,255,.7); max-width: 520px; margin: 0 auto 22px; }

/* Inscription */
.demos__form { background: var(--surface); padding: 88px 0; scroll-margin-top: 90px; }
.demos__form-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.demos__form-text { position: sticky; top: 120px; }
.demos__ftitle { font-size: clamp(26px, 2.6vw, 36px); margin: 6px 0 18px; }
.demos__ftext { color: var(--muted); }
.demos__picked { background: #fff; border: 1px solid var(--cyan); border-left-width: 4px; border-radius: 8px; padding: 14px 18px; margin-bottom: 20px; }
.demos__picked[hidden] { display: none; }
.demos__picked small { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.demos__picked strong { display: block; font-family: var(--font-h); font-weight: 600; font-size: 18px; color: var(--navy); margin: 2px 0 6px; }
.demos__copy { background: none; border: 0; padding: 0; color: var(--cyan); font-weight: 700; font-size: 14px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.demos__points { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.demos__points li { display: flex; gap: 10px; align-items: center; font-weight: 700; color: var(--navy); }
.demos__points svg { color: var(--cyan); flex: none; }
.demos__card { background: #fff; border-radius: 12px; padding: 28px; box-shadow: 0 20px 50px -24px rgba(0,33,51,.28); border: 1px solid var(--line); }

@media (max-width: 1000px) {
	.demos__board-wrap { padding: 64px 0 72px; }
	.demos__head, .demos__grid, .demos__form-grid { grid-template-columns: 1fr; }
	.demos__head { gap: 16px; margin-bottom: 32px; }
	.demos__map { position: static; max-width: 480px; width: 100%; margin: 0 auto; }
	.demos__form-text { position: static; }
	.demos__form { padding: 64px 0; }
}
@media (max-width: 640px) {
	.demos__row { grid-template-columns: 66px minmax(0, 1fr); grid-template-areas: "date city" "date time" "date seats" "act act"; gap: 6px 14px; padding: 18px 4px; }
	.demos__row:hover { box-shadow: none; }
	.demos__d b { width: 20px; height: 32px; font-size: 19px; }
	.demos__date { grid-template-columns: auto; justify-items: start; row-gap: 4px; align-self: start; }
	.demos__d { grid-row: auto; }
	.demos__seats { flex-wrap: wrap; gap: 8px; }
	.demos__act { flex-direction: row; align-items: center; justify-content: space-between; margin-top: 10px; }
	.demos__card { padding: 18px 12px; }
	.demos__cartouche span { padding: 10px 12px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	.demos__route, .demos__pin.is-next .demos__pulse { animation: none; }
}

/* ---------- Packs : comparatif 2 colonnes ---------- */
.packs { padding: 88px 0; background: #fff; }
.packs__head { margin-bottom: 36px; max-width: 760px; }
.packs__head .eyebrow { margin-bottom: 12px; }
.packs__title { font-size: clamp(26px, 2.8vw, 38px); }
.packs__intro { color: var(--muted); margin-top: 12px; }
.packs__scroll { overflow-x: auto; }
.packs__table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 16px; }
.packs__corner { width: 38%; }
.packs__col { vertical-align: bottom; text-align: left; padding: 26px 24px 22px; font-weight: 400; }
.packs__col--a { background: var(--surface); border-radius: 12px 12px 0 0; }
.packs__col--b { background: var(--night); border-radius: 12px 12px 0 0; color: #fff; }
.packs__for { display: block; font-weight: 700; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--navy); }
.packs__col--b .packs__for { color: var(--cyan); }
.packs__name { display: block; font-family: var(--font-h); font-weight: 600; font-size: 26px; line-height: 1.2; color: var(--navy); margin: 6px 0 6px; }
.packs__col--b .packs__name { color: #fff; }
.packs__sub { display: block; font-size: 14px; color: var(--muted); margin-bottom: 14px; }
.packs__col--b .packs__sub { color: rgba(255,255,255,.65); }
.packs__price { font-family: var(--font-h); font-weight: 600; font-size: 30px; line-height: 1; color: var(--navy); letter-spacing: -.01em; white-space: nowrap; }
.packs__price small { font-size: 14px; font-weight: 500; color: var(--muted); margin-left: 5px; }
.packs__col--b .packs__price { color: #fff; }
.packs__col--b .packs__price small { color: rgba(255,255,255,.6); }
.packs__ph { color: var(--cyan); }
.packs__table tbody th { text-align: left; font-weight: 400; padding: 15px 20px 15px 0; border-bottom: 1px solid var(--line); color: var(--text); }
.packs__table tbody td { padding: 15px 24px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.packs__a { background: var(--surface); color: var(--text); }
.packs__b { background: #eef8fe; font-weight: 700; color: var(--navy); }
.packs__grp th { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted) !important; padding-top: 30px !important; border-bottom: 1px solid var(--navy) !important; }
.packs__grp td { padding-top: 30px !important; border-bottom: 1px solid var(--navy) !important; }
.packs__yes { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgba(47,191,252,.16); color: #0b7fb5; vertical-align: middle; }
.packs__no { color: #9aa6b4; }
.packs__opt { color: var(--muted); font-weight: 400; font-style: italic; }
.packs__diff { display: inline-block; margin-left: 8px; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; font-weight: 600; color: #0b7fb5; background: rgba(47,191,252,.16); border-radius: 3px; padding: 2px 7px; vertical-align: middle; }
.packs__foot { padding: 22px 24px 0; }
.packs__note { margin-top: 26px; font-size: 14px; color: var(--muted); }
@media (max-width: 700px) {
	.packs { padding: 60px 0; }
	.packs__table { font-size: 14px; }
	.packs__corner { width: 34%; }
	.packs__col { padding: 16px 10px 14px; }
	.packs__for, .packs__sub { display: none; }
	.packs__name { font-size: 18px; margin: 0 0 6px; }
	.packs__price { font-size: 17px; white-space: normal; }
	.packs__price small { font-size: 11px; margin-left: 2px; }
	.packs__table tbody th { padding: 12px 8px 12px 0; font-size: 13.5px; }
	.packs__table .packs__grp th { font-size: 10px; letter-spacing: .1em; line-height: 1.5; }
	.packs__table tbody td { padding: 12px 10px; }
	.packs__diff { display: block; margin: 4px 0 0; width: max-content; }
	.packs__foot { padding: 16px 6px 0; }
	.packs__foot .btn { width: 100%; padding: 12px 8px; font-size: 13px; }
}

/* Barre d'admin WordPress (connecté) : le menu fixe se cale dessous. */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

/* ---------- Blog : liste « À la une » ---------- */
.blog-list { padding: 56px 0 72px; }
.blog-list__head { margin-bottom: 30px; max-width: 760px; }
.blog-list__kicker, .blog-cat { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #0b7fb5; margin: 0 0 8px; }
.blog-list__title { font-size: clamp(30px, 3.2vw, 46px); }
.blog-list__lead { color: var(--muted); font-size: 17px; margin-top: 10px; }
.blog-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 13px; color: var(--muted); margin: 0; }
.blog-meta__dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .55; }
.blog-lead { display: grid; grid-template-columns: 1.35fr 1fr; border-radius: 14px; overflow: hidden; background: var(--night); color: #fff; margin-bottom: 44px; }
.blog-lead__media { display: block; min-height: 360px; position: relative; background: var(--night-2); }
.blog-lead__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.blog-lead:hover .blog-lead__media img { transform: scale(1.03); }
.blog-lead__body { padding: 38px 36px; display: flex; flex-direction: column; gap: 14px; }
.blog-lead .blog-cat { color: var(--cyan); margin: 0; }
.blog-lead__title { font-size: clamp(22px, 2.2vw, 30px); line-height: 1.22; }
.blog-lead__title a { color: #fff; }
.blog-lead__title a:hover { color: var(--cyan); }
.blog-lead__excerpt { color: rgba(255,255,255,.75); margin: 0; }
.blog-lead .blog-meta { color: rgba(255,255,255,.62); }
.blog-lead__more { color: #fff; margin-top: auto; align-self: flex-start; }
.blog-lead__more:hover { color: var(--cyan); }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 30px; }
.blog-card { display: flex; flex-direction: column; }
.blog-card__media { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 10; background: var(--surface); margin-bottom: 16px; }
.blog-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.blog-card:hover .blog-card__media img { transform: scale(1.04); }
.blog-card__title { font-size: 18px; line-height: 1.32; margin: 0 0 10px; }
.blog-card__title a { color: var(--navy); }
.blog-card__title a:hover { color: #0b7fb5; }
.blog-list .pagination, .blog-list .navigation.pagination { margin-top: 48px; padding-bottom: 0; }
.blog-list .nav-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }

/* ---------- Article « Magazine » ---------- */
.mag-cover { position: relative; min-height: 560px; display: flex; align-items: flex-end; background: var(--night); color: #fff; overflow: hidden; }
.mag-cover--plain { min-height: 380px; }
.mag-cover__img { position: absolute; inset: 0; }
.mag-cover__img img { width: 100%; height: 100%; object-fit: cover; }
.mag-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,33,51,.15) 15%, rgba(0,33,51,.55) 55%, rgba(0,33,51,.94) 100%); }
.mag-cover__inner { position: relative; z-index: 1; padding-top: 80px; padding-bottom: 54px; }
.mag-cover__title { color: #fff; font-size: clamp(32px, 4.2vw, 54px); line-height: 1.08; letter-spacing: -.015em; max-width: 920px; margin: 10px 0 18px; }
.blog-cat--light { color: var(--cyan); }
.blog-meta--light { color: rgba(255,255,255,.78); }
.mag-body { max-width: 680px; margin: 0 auto; padding: 56px var(--gutter) 24px; box-sizing: content-box; font-size: 18px; line-height: 1.75; color: #2a2f36; }
.mag-body > * { margin-top: 0; margin-bottom: 22px; }
.mag-body > p:first-of-type::first-letter { float: left; font-family: var(--font-h); font-weight: 700; font-size: 4.3em; line-height: .82; padding: 6px 12px 0 0; color: var(--navy); }
.mag-body > p.is-style-chapo:first-child::first-letter { float: none; font: inherit; padding: 0; color: inherit; }
.mag-body > p.is-style-chapo + p::first-letter { float: left; font-family: var(--font-h); font-weight: 700; font-size: 4.3em; line-height: .82; padding: 6px 12px 0 0; color: var(--navy); }
.mag-body .is-style-chapo { font-size: 21px; line-height: 1.55; color: var(--navy); font-family: var(--font-h); font-weight: 500; }
.mag-body h2 { font-size: clamp(24px, 2.4vw, 30px); line-height: 1.25; margin: 48px 0 16px; }
.mag-body h3 { font-size: 21px; line-height: 1.3; margin: 34px 0 12px; }
.mag-body h4 { font-size: 18px; margin: 26px 0 10px; }
.mag-body a { color: var(--navy); border-bottom: 1px solid var(--cyan); }
.mag-body ul, .mag-body ol { padding-left: 22px; }
.mag-body li { margin-bottom: 8px; }
.mag-body li::marker { color: #0b7fb5; }
.mag-body img { border-radius: 8px; height: auto; }
.mag-body figure { margin-left: 0; margin-right: 0; }
.mag-body figcaption { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 12px; color: var(--muted); margin-top: 8px; }
.mag-body .alignwide { width: min(1040px, calc(100vw - 2 * var(--gutter))); margin-left: 50%; transform: translateX(-50%); }
.mag-body .alignfull { width: 100vw; margin-left: 50%; transform: translateX(-50%); }
.mag-body .alignfull img { border-radius: 0; width: 100%; }
.mag-body blockquote, .mag-body .wp-block-pullquote { margin: 40px 0; padding: 28px 0; border: 0; border-top: 2px solid var(--navy); border-bottom: 1px solid var(--line); font-family: var(--font-h); font-weight: 600; font-size: clamp(21px, 2.2vw, 27px); line-height: 1.35; color: var(--navy); text-align: left; }
.mag-body blockquote p { margin: 0; }
.mag-body blockquote cite, .mag-body .wp-block-pullquote cite { display: block; margin-top: 12px; font-family: var(--font-b); font-size: 14px; font-weight: 400; font-style: normal; color: var(--muted); }
.mag-body .is-style-marge { font-size: 13.5px; line-height: 1.55; color: var(--muted); border-top: 2px solid var(--cyan); padding-top: 8px; }
.mag-body .is-style-marge strong:first-child { display: block; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--navy); }
.mag-body table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.mag-body th, .mag-body td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.mag-body th { background: var(--surface); color: var(--navy); }
.mag-body .wp-block-html, .mag-body > div:not([class]) { max-width: 100%; overflow-x: auto; }
.mag-cta { padding: 24px var(--gutter) 70px; }
.mag-cta__box { max-width: 1040px; margin: 0 auto; background: var(--night); color: #fff; border-radius: 14px; padding: 28px 32px; display: flex; justify-content: space-between; align-items: center; gap: 20px 32px; flex-wrap: wrap; position: relative; overflow: hidden; }
.mag-cta__box::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--navy) 0 33.33%, #fff 33.33% 66.66%, var(--rouge) 66.66% 100%); }
.mag-cta__title { font-family: var(--font-h); font-weight: 600; font-size: 20px; margin: 0 0 4px; color: #fff; }
.mag-cta__text { margin: 0; color: rgba(255,255,255,.72); font-size: 15px; }
.mag-cta__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.mag-related { background: var(--surface); padding: 64px 0 76px; }
.mag-related__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.mag-related__title { font-size: clamp(24px, 2.4vw, 30px); }
@media (min-width: 1180px) {
	.mag-body .is-style-marge { float: right; clear: right; width: 200px; margin: 6px -250px 16px 0; }
}
@media (max-width: 900px) {
	.blog-lead { grid-template-columns: 1fr; }
	.blog-lead__media { min-height: 0; aspect-ratio: 16 / 9; }
	.blog-lead__body { padding: 26px 22px; }
	.blog-grid { grid-template-columns: 1fr 1fr; gap: 32px 22px; }
	.mag-cover { min-height: 460px; }
}
@media (max-width: 600px) {
	.blog-list { padding: 36px 0 56px; }
	.blog-grid { grid-template-columns: 1fr; }
	.mag-cover { min-height: 420px; }
	.mag-cover__inner { padding-bottom: 36px; }
	.mag-body { padding-top: 36px; font-size: 17px; }
	.mag-body .is-style-chapo { font-size: 19px; }
	.mag-cta__box { padding: 24px 20px 28px; }
	.mag-cta__btns .btn { width: 100%; justify-content: center; }
}

/* ---------- Chiffres ---------- */
.stats__row { display: flex; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stats--inline { container-type: inline-size; }
.stats--inline .stats__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stats--inline .stats__cell { padding: 14px 16px; margin-right: 0; min-width: 0; border-right: 1px solid var(--line); }
.stats--inline .stats__cell:first-child { padding-left: 0; }
.stats--inline .stats__cell:last-child { border-right: 0; }
.stats--inline .stats__value { font-size: clamp(17px, 1.45vw, 22px); line-height: 1.2; gap: 7px; white-space: normal; flex-wrap: nowrap; align-items: center; }
.stats--inline .stats__value > span { min-width: 0; overflow-wrap: anywhere; }
.stats--inline .stats__value .flag { flex: none; }
@container (max-width: 720px) {
	.stats--inline .stats__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.stats--inline .stats__cell:nth-child(odd) { padding-left: 0; }
	.stats--inline .stats__cell:nth-child(even) { border-right: 0; }
	.stats--inline .stats__cell:nth-child(n+3) { border-top: 1px solid var(--line); }
}
.stats--inline .stats__label { font-size: 12px; line-height: 1.35; }
.stats__cell { padding: 18px 28px 18px 0; margin-right: 28px; border-right: 1px solid var(--line); flex: 1 1 0; min-width: 0; }
.stats__cell:last-child { border-right: 0; margin-right: 0; }
.stats__value { font-family: var(--font-h); font-size: 30px; font-weight: 600; color: var(--navy); display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.stats__label { font-size: 13px; color: var(--muted); }
.stats--dark { background: var(--night); }
.stats--dark .stats__row, .stats--dark .stats__cell { border-color: var(--night-3); }
.stats--dark .stats__value { color: #fff; }
.stats--dark .stats__label { color: #9fb3c8; }

/* ---------- Intro ---------- */
.intro { padding: 64px 0 48px; }
.intro__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.intro__text h2 { font-size: 34px; margin-bottom: 18px; }
.intro__text p { font-size: 17px; }
.intro__side { display: flex; flex-direction: column; gap: 24px; }
.intro__side .photo { aspect-ratio: 536 / 300; }
/* Intro « plan coté » : packshot sur trame de dessin industriel, cotes et repères */
.intro--plan .intro__grid { align-items: center; }
.plan { margin: 0; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background-color: #fff; background-image: linear-gradient(rgba(27,57,104,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(27,57,104,.045) 1px, transparent 1px); background-size: 24px 24px; }
.plan__draw { position: relative; }
.plan__draw img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.plan__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.plan__v { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 24px; font-weight: 600; fill: var(--navy); }
.plan__l { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 18px; fill: var(--muted); }
.plan__legend { display: none; }
.plan__cart { display: grid; grid-template-columns: 1.4fr 1fr 1fr; border-top: 1px solid var(--navy); font-family: "IBM Plex Mono", ui-monospace, monospace; }
.plan__cart div { padding: 9px 12px; border-right: 1px solid var(--line); }
.plan__cart div:last-child { border-right: 0; }
.plan__cart span { display: block; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.plan__cart b { display: block; font-size: 13px; color: var(--navy); font-weight: 600; }
@media (max-width: 700px) {
	.plan__lbl { display: none; }
	.plan__legend { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line); font-family: "IBM Plex Mono", ui-monospace, monospace; }
	.plan__legend div { padding: 10px 12px; border-bottom: 1px solid var(--line); }
	.plan__legend div:nth-child(odd) { border-right: 1px solid var(--line); }
	.plan__legend dt { font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
	.plan__legend dd { margin: 2px 0 0; font-size: 15px; font-weight: 600; color: var(--navy); }
	.plan__cart { grid-template-columns: 1fr; }
	.plan__cart div { border-right: 0; border-bottom: 1px solid var(--line); }
	.plan__cart div:last-child { border-bottom: 0; }
}
.intro--dark { background: var(--night); color: #d5deea; }
.intro--dark h2 { color: #fff; }

/* ---------- Fabriqué en France ---------- */
.mif { padding: 64px 0; background: var(--surface); }
.mif__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.mif__title { font-size: 40px; line-height: 1.15; margin-bottom: 18px; }
.mif__grid .photo { aspect-ratio: 536 / 340; }
.mif__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 48px; }
.mif__col { padding-top: 16px; border-top: 3px solid var(--navy); }
.mif__col--grey { border-top-color: #c7d0dc; }
.mif__col--rouge { border-top-color: var(--rouge); }
.mif__col h3 { font-size: 19px; margin-bottom: 8px; }
.mif__col p { font-size: 15px; }

/* ---------- Chapitre ---------- */
.chapter { padding: 56px 0; }
.chapter + .chapter .chapter__grid { border-top: 1px solid var(--line); padding-top: 56px; }
.chapter__grid { display: grid; grid-template-columns: 100px 1fr 440px; gap: 40px; align-items: start; }
.chapter--image-left .chapter__grid { grid-template-columns: 440px 1fr 100px; }
.chapter--image-left .chapter__media { order: -1; }
.chapter--image-left .chapter__num { order: 3; }
.chapter__number { font-family: var(--font-h); font-size: 64px; font-weight: 300; color: #c7d0dc; line-height: 1; }
.chapter__verb { font-size: 13px; font-weight: 700; color: #3aa0d8; margin-top: 4px; }
.chapter__body { display: flex; flex-direction: column; gap: 18px; }
.chapter__title { font-size: 34px; }
.chapter__content p { font-size: 17px; }
.chapter__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 6px; }
.chapter__subtitle { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--navy); margin-bottom: 10px; }
.chapter__body .link-underline { align-self: flex-start; margin-top: 6px; }
.chapter--dark { background: var(--night); color: #d5deea; }
.chapter--dark .chapter__title, .chapter--dark .chapter__subtitle, .chapter--dark .link-underline { color: #fff; }
.chapter--dark .chapter__number { color: #2a4a6b; }
.chapter--dark .chapter__verb { color: var(--cyan); }
.chapter--dark .chip { background: var(--night-3); color: #fff; }
.chapter--dark + .chapter--dark .chapter__grid { border-top-color: var(--night-3); }

/* ---------- Bandeau ---------- */
.band { position: relative; overflow: hidden; min-height: 560px; display: flex; align-items: center; background: var(--night); color: #fff; }
.band::after { content: ""; position: absolute; inset: 0; background: rgba(0,33,51,.62); }
.band__inner { position: relative; z-index: 2; padding-top: 72px; padding-bottom: 72px; width: 100%; }
.band__inner > * { max-width: 760px; }
.band__title { font-size: 44px; color: #fff; line-height: 1.15; margin-bottom: 28px; }
.band__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 40px; }
.band__item { display: flex; gap: 14px; align-items: flex-start; }
.band__icon { flex-shrink: 0; width: 44px; height: 44px; border-radius: 8px; background: rgba(47,191,252,.25); border: 1px solid rgba(47,191,252,.5); display: flex; align-items: center; justify-content: center; }
.band__item-title { font-size: 17px; font-weight: 700; }
.band__item-desc { font-size: 14px; color: #c9d6e4; }

/* ---------- Caractéristiques ---------- */
.specs { padding: 64px 0; }
.specs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.specs__title { font-size: 34px; margin-bottom: 18px; }
.specs__text { display: flex; flex-direction: column; gap: 18px; }
.specs__text p { margin: 0; }
.specs__table { width: 100%; border-collapse: collapse; font-size: 15px; border-top: 1px solid var(--line); }
.specs__table th, .specs__table td { padding: 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.specs__table th { text-align: left; font-weight: 400; color: var(--muted); padding-right: 24px; }
.specs__table td { text-align: right; font-weight: 700; }
.specs--dark { background: var(--night); color: #d5deea; }
.specs--dark .specs__title, .specs--dark .link-underline { color: #fff; }
.specs--dark .specs__table, .specs--dark .specs__table th, .specs--dark .specs__table td { border-color: var(--night-3); }
.specs--dark .specs__table th { color: #9fb3c8; }
.specs--dark .specs__table td { color: #fff; }

/* ---------- Prix ---------- */
.price { padding: 56px 0 64px; }
.price__bar { display: flex; align-items: center; gap: 18px 30px; flex-wrap: wrap; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 14px 14px 14px 28px; }
.price__amount { font-family: var(--font-h); font-weight: 600; font-size: 26px; line-height: 1.1; color: var(--navy); margin: 0; white-space: nowrap; }
.price__amount small { font-size: 14px; font-weight: 500; color: var(--muted); }
.price__line { flex: 1; min-width: 240px; margin: 0; font-size: 15px; color: var(--muted); }
.price__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.price__actions .btn { justify-content: center; border-radius: 6px; }
.price__box--compact { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding: 28px 32px; margin-top: 48px; background: var(--surface); border-radius: 6px; }
.price__facts { list-style: none; margin: 14px 0 0; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 26px; font-size: 13.5px; color: var(--muted); }
.price__facts a { color: var(--navy); }
.price__facts a:hover { color: var(--cyan); }
.price--dark { background: var(--night); }
.price--dark .price__bar { background: var(--night-3); border-color: var(--night-3); }
.price--dark .price__amount, .price--dark .price__facts a { color: #fff; }
.price--dark .price__line, .price--dark .price__facts, .price--dark .price__amount small { color: rgba(255,255,255,.7); }
.price--dark .btn--outline { border-color: #fff; color: #fff; }

/* ---------- Pages, articles ---------- */
.breadcrumbs { font-size: 13px; color: var(--muted); padding: 14px var(--gutter); max-width: var(--container); margin: 0 auto; }
.breadcrumbs a { color: var(--muted); }
.page-header { padding: 56px 0 24px; }
.page-header__title { font-size: clamp(32px, 4vw, 48px); }
.page-header__lead { font-size: 18px; color: var(--muted); margin-top: 12px; max-width: 760px; }
.page-content .wp-block-group, .page-content > .wp-block-paragraph { max-width: var(--container); margin-left: auto; margin-right: auto; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding: 24px 0 64px; }
.post-card__media img { border-radius: var(--radius); aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.post-card__body { padding: 16px 0; display: flex; flex-direction: column; gap: 8px; }
.post-card__date { font-size: 13px; color: var(--muted); }
.post-card__title { font-size: 20px; }
.single__header { padding: 56px var(--gutter) 24px; }
.single__title { font-size: clamp(32px, 4vw, 44px); margin: 10px 0 14px; }
.single__lead { font-size: 19px; color: var(--muted); }
.single__media img { border-radius: var(--radius); }
.single__content { padding: 32px var(--gutter) 24px; font-size: 18px; }
.entry-content h2 { font-size: 30px; margin: 40px 0 14px; }
.entry-content h3 { font-size: 23px; margin: 28px 0 10px; }
.entry-content img { border-radius: var(--radius); }
.entry-content a { border-bottom: 1px solid var(--cyan); }
.entry-content ul, .entry-content ol { padding-left: 22px; }
.entry-content blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--cyan); color: var(--muted); }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; }
.entry-content th { background: var(--surface); color: var(--navy); }
.single__footer { padding-bottom: 64px; }
.page-404 { padding: 96px var(--gutter); text-align: center; }
.page-404 h1 { font-size: 40px; margin-bottom: 16px; }
.page-404 .eyebrow { justify-content: center; }
.pagination { display: flex; justify-content: center; gap: 8px; padding-bottom: 64px; }
.pagination .page-numbers { padding: 8px 14px; border: 1px solid var(--line); border-radius: 6px; }
.pagination .current { background: var(--navy); color: #fff; border-color: var(--navy); }

/* ---------- Footer ---------- */
.site-footer { position: relative; isolation: isolate; overflow: hidden; background: var(--footer); color: #fff; font-size: 16px; line-height: 1.6; }
.site-footer::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px); background-size: 48px 48px; pointer-events: none; z-index: 1; }
.site-footer__wrap { position: relative; z-index: 2; }
.site-footer a { color: var(--footer-text); text-decoration: none; transition: color .15s; }
.site-footer a:hover { color: var(--cyan); }
.site-footer__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.site-footer__brand { padding: 56px 56px 48px 0; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.site-footer__logo img { height: 44px; width: auto; max-width: 240px; object-fit: contain; display: block; }
.site-footer__logo { margin-bottom: 6px; }
.site-footer__tagline { font-family: var(--font-h); font-size: 19px; font-weight: 600; letter-spacing: -.01em; color: #fff; margin: 0; }
.site-footer__desc { font-size: 15.5px; line-height: 1.65; color: var(--footer-text); max-width: 470px; margin: 0; }
.socials { list-style: none; display: flex; gap: 10px; margin: 10px 0 0; padding: 0; }
.socials__link { width: 48px; height: 48px; border-radius: 8px; background: #06283a; border: 1px solid var(--footer-line); color: #fff; display: flex; align-items: center; justify-content: center; transition: background .15s, border-color .15s, transform .15s; }
.socials__link:hover { background: var(--cyan); border-color: var(--cyan); color: var(--night); transform: translateY(-2px); }
.site-footer__mif { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; font-size: 13px; color: var(--footer-muted); }
.site-footer__panel { position: relative; padding: 48px 0 40px 52px; border-left: 1px solid var(--footer-line); }
.site-footer__panel::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; right: -50vw; background: rgba(0, 0, 0, .22); z-index: 0; }
.site-footer__panel > * { position: relative; z-index: 1; }
.site-footer__menus { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.footer-col__title { display: flex; align-items: center; gap: 9px; font-family: var(--font-body); font-size: 16px; font-weight: 700; color: #fff; margin: 0 0 14px; line-height: 1.2; }
.footer-col__title .ic { flex: none; }
.footer-col__list { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 1px solid var(--footer-line); }
.footer-col__list + .footer-col__list { padding-top: 0; }
.footer-col__list--follow { margin-top: -2px; }
.footer-col__list li { margin: 0; }
.footer-col__list li a { display: block; padding: 3px 0; font-size: 15.5px; line-height: 1.5; color: var(--footer-text); }
.footer-col__list li.is-strong a { color: #fff; font-size: 17px; font-weight: 700; padding-bottom: 6px; }
.newsletter { border-top: 1px solid var(--footer-line); margin-top: 32px; padding-top: 28px; }
.newsletter__form { display: flex; gap: 10px; align-items: stretch; }
.newsletter__form input { flex: 1; min-width: 0; height: 48px; padding: 0 16px; border-radius: 6px; border: 1px solid #1f5c74; background: #06283a; color: #fff; font: inherit; font-size: 15.5px; transition: border-color .15s, box-shadow .15s; }
.newsletter__form input::placeholder { color: var(--footer-muted); }
.newsletter__form input:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(47,191,252,.18); }
.newsletter__btn { height: 48px; padding: 0 22px; border: 0; border-radius: 6px; background: var(--cyan); color: var(--night); font-family: var(--font-body); font-size: 15.5px; font-weight: 700; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; transition: filter .15s; }
.newsletter__btn:hover { filter: brightness(1.08); }
/* Formulaire Brevo ([sibwp_form]) intégré dans le footer */
.newsletter__embed .sib_signup_form { margin: 0; padding: 0; }
.newsletter__embed [class^="sib_signup_box_inside"] { display: flex; flex-direction: column; }
.newsletter__embed .sib_msg_disp { order: 2; }
.newsletter__embed .sib_msg_disp:empty { display: none; }
.newsletter__embed .sib-alert-message { margin: 12px 0 0; padding: 11px 14px; border-radius: 6px; font-size: 14px; line-height: 1.45; color: #fff; background: rgba(47,191,252,.12); border: 1px solid rgba(47,191,252,.45); }
.newsletter__embed .sib-alert-message-error, .newsletter__embed .sib-alert-message-warning { background: rgba(225,0,15,.12); border-color: rgba(225,0,15,.5); }
.newsletter__embed .sib_loader { position: absolute; margin-top: 14px; right: 0; }
.newsletter__embed .sib_loader img { width: 20px; height: 20px; }
.newsletter__embed .sib_signup_form { position: relative; }
.newsletter__note a { color: var(--footer-text); text-decoration: underline; text-underline-offset: 2px; }
.newsletter__note { font-size: 13px; line-height: 1.5; color: var(--footer-muted); margin: 12px 0 0; }
.site-footer__bottom { border-top: 1px solid var(--footer-line); padding: 18px 0 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 14px; color: var(--footer-muted); }
.site-footer__legal { display: flex; align-items: center; gap: 4px 8px; flex-wrap: wrap; }
.site-footer__legal .legal-list { display: contents; list-style: none; margin: 0; padding: 0; }
.site-footer__legal .legal-list li::before, .site-footer__dronelis::before { content: "·"; margin-right: 8px; color: var(--footer-muted); }
.site-footer__bottom a { color: var(--footer-text); }
.totop { flex: none; width: 36px; height: 36px; border-radius: 6px; border: 1px solid var(--footer-line); display: flex; align-items: center; justify-content: center; color: var(--footer-text); }
.totop:hover { border-color: var(--cyan); color: var(--cyan); }

/* ---------- Éditeur ---------- */
.editor-styles-wrapper .cormoran-editor-block { max-width: none; }
.editor-styles-wrapper .cormoran-editor-block .hero, .editor-styles-wrapper .cormoran-editor-block .band { min-height: 420px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.chapter__grid, .chapter--image-left .chapter__grid { grid-template-columns: 80px 1fr; }
	.chapter__media { grid-column: 2; }
	.chapter--image-left .chapter__media { order: 0; }
	.chapter--image-left .chapter__num { order: 0; }
	.photo--tall { aspect-ratio: 16 / 9; }
	.mega { grid-template-columns: 240px 1fr; }
	.mega__visual { display: none; }
	.mega.mega--duo { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.site-header__inner { height: 72px; }
	.nav-toggle { display: block; }
	.topbar { display: none; }
	.site-nav { display: none; position: fixed; top: 72px; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 0; padding: 12px 24px 32px; overflow-y: auto; z-index: 99; }
	.site-nav.is-open { display: flex; }
	.nav { flex-direction: column; align-items: stretch; gap: 0; }
	.nav__link { padding: 16px 0; border-bottom: 1px solid var(--line); width: 100%; justify-content: space-between; font-size: 17px; }
	.mega { position: static; transform: none; display: none; grid-template-columns: 1fr; box-shadow: none; border-radius: 8px; margin: 8px 0 12px; }
	.nav__item.is-open > .mega { display: block; opacity: 1; visibility: visible; }
	.nav__item.has-mega:hover > .mega { display: none; }
	.nav__item.has-mega.is-open:hover > .mega { display: block; }
	.mega__intro { border-right: 0; padding: 20px; }
	.mega__links { grid-template-columns: 1fr; padding: 8px; }
	.mega__hero { min-height: 0; background: var(--surface); }
	.mega__hero img, .mega__hero::after, .mega--duo .mega__mif { display: none; }
	.mega__hero-txt { padding: 20px; max-width: none; }
	.mega--duo .mega__title { color: var(--navy); }
	.mega--duo .mega__lead { color: var(--text); }
	.mega--duo .mega__cta { color: var(--navy); }
	.mega__side { padding: 8px 12px 16px; }
	.mega--duo .mega__link, .mega--duo .mega__item:first-child .mega__link { padding: 14px 8px; }
	.mega--duo .mega__links--cards { grid-template-columns: 1fr; gap: 10px; }
	.mega__card-img { display: none; }
	.mega__box { margin-top: 12px; flex-wrap: wrap; }
	.site-header__cta { margin-top: 20px; justify-content: center; }
	.intro__grid, .mif__grid, .specs__grid, .price__box, .site-footer__grid, .site-footer__menus, .band__grid, .chapter__cols { grid-template-columns: 1fr; }
	.chapter__grid, .chapter--image-left .chapter__grid { grid-template-columns: 1fr; }
	.chapter__media { grid-column: auto; }
	.chapter__num { display: flex; align-items: baseline; gap: 12px; }
	.chapter__number { font-size: 44px; }
	.mif__cols, .post-grid { grid-template-columns: 1fr; gap: 24px; }
	.stats__row { flex-wrap: wrap; }
	.stats__cell { flex: 1 1 45%; }
	.hero { min-height: 520px; }
	.hero__inner { padding-top: 72px; padding-bottom: 40px; }
	.band__title { font-size: 32px; }
	.mif__title { font-size: 30px; }
	.site-footer__brand { padding: 40px 0 28px; }
	.site-footer__panel { padding: 32px 0 32px; border-left: 0; border-top: 1px solid var(--footer-line); }
	.site-footer__panel::before { display: none; }
	.price__bar { padding: 20px; }
	.price__actions { width: 100%; }
	.price__actions .btn { flex: 1 1 200px; }
	.newsletter__form { flex-direction: column; }
}

/* ---------- Cartes, logos, FAQ ---------- */
.cards { padding: 64px 0; }
.cards__title { font-size: 34px; margin-bottom: 12px; max-width: 760px; }
.cards__intro { font-size: 17px; max-width: 760px; margin-bottom: 8px; }
.cards__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 32px; }
.cards__item { padding-top: 20px; border-top: 3px solid var(--navy); display: flex; flex-direction: column; gap: 10px; }
.cards__icon { width: 44px; height: 44px; border-radius: 8px; background: var(--surface); color: var(--navy); display: flex; align-items: center; justify-content: center; }
.cards__item h3 { font-size: 20px; }
.cards__item p { font-size: 15px; margin: 0; }
.cards--dark { background: var(--night); color: #d5deea; }
.cards--dark .cards__title, .cards--dark .cards__item h3 { color: #fff; }
.cards--dark .cards__item { border-top-color: var(--cyan); }
.cards--dark .cards__icon { background: var(--night-3); color: #fff; }
.logos { padding: 48px 0; border-top: 1px solid var(--line); }
.logos__title { font-size: 14px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); text-align: center; margin-bottom: 28px; font-family: var(--font-b); }
.logos__row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px 48px; }
.logos__row img { height: 44px; width: auto; max-width: 160px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: .2s; }
.logos__row img:hover { filter: none; opacity: 1; }
.faq { padding: 72px 0; background: linear-gradient(120deg, var(--night) 0%, #00131d 100%); color: rgba(255, 255, 255, .8); }
.faq__title { font-size: 34px; margin-bottom: 28px; color: #fff; }
.faq__item { border-top: 1px solid rgba(255, 255, 255, .14); }
.faq__item:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.faq__item summary h3 { font-size: 19px; margin: 0; color: #fff; }
.faq__pm { flex: none; position: relative; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .3); transition: background .2s, border-color .2s; }
.faq__pm::before, .faq__pm::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 2px; background: #fff; transform: translate(-50%, -50%); transition: transform .2s; }
.faq__pm::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq__item summary:hover .faq__pm { border-color: var(--cyan); }
.faq__item[open] .faq__pm { background: var(--cyan); border-color: var(--cyan); }
.faq__item[open] .faq__pm::after { transform: translate(-50%, -50%) rotate(0); }
.faq__answer { padding: 0 44px 22px 0; font-size: 16px; line-height: 1.7; }
.faq__answer p { margin: 0; }
.faq__answer a { color: var(--cyan); text-decoration: underline; text-underline-offset: 3px; }
.faq__answer a:hover { color: #fff; }
@media (max-width: 900px) { .faq { padding: 56px 0; } .faq__title { font-size: 28px; } .faq__answer { padding-right: 0; } }
.form-embed { max-width: 760px; margin: 0 auto; padding: 0 var(--gutter) 64px; }
.page-header--hero { padding: 64px 0 40px; }
@media (max-width: 900px) { .cards__grid { grid-template-columns: 1fr; gap: 24px; } }
.section-text { padding: 48px var(--gutter); font-size: 17px; } .section-text h2 { font-size: 30px; margin: 32px 0 12px; } .section-text h3 { font-size: 22px; margin: 24px 0 8px; } .section-text ul { padding-left: 22px; } .section-text li { margin-bottom: 6px; }

/* ---------- Bloc « Système au sol » (schéma + légende) ---------- */
.sys { padding: 64px 0; }
.sys__title { font-size: 34px; margin-bottom: 12px; max-width: 760px; }
.sys__intro { font-size: 17px; max-width: 760px; margin: 0; }
.sys__grid { margin-top: 36px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.sys__fig svg { display: block; width: 100%; max-width: 100%; height: auto; }
.sys__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.sys__item { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; }
.sys__n { width: 34px; height: 34px; border-radius: 50%; background: var(--navy); color: #fff; font-family: var(--font-h); font-weight: 700; font-size: 14px; display: grid; place-items: center; }
.sys__name { font-size: 19px; margin: 3px 0 4px; }
.sys__text { margin: 0; font-size: 16px; line-height: 1.6; }
.sys__note { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 12px; font-family: var(--font-h); font-weight: 600; font-size: 15px; color: var(--navy); }
.sys__note .ic { flex: none; color: var(--navy); }
.sys--dark { background: var(--night); color: #d5deea; }
.sys--dark .sys__title, .sys--dark .sys__name, .sys--dark .sys__note { color: #fff; }
.sys--dark .sys__fig { background: #fff; border-radius: 6px; padding: 16px; }
@media (max-width: 900px) {
	.sys { padding: 48px 0; }
	.sys__title { font-size: 28px; }
	.sys__grid { grid-template-columns: 1fr; gap: 28px; }
}
