/* Polymage · version premium
   Principe : tout le site passe en violet profond (#302C80). Les sections « .section-soft » deviennent
   des respirations crème. Les couleurs de base sont redéfinies par contexte, les composants suivent. */

body.premium {
  --marine: #FFFFFF;
  --ink: #E6E4FF;
  --muted: #C9C7F2;
  --subtle: #A9A6DD;
  --line: rgba(255, 255, 255, .14);
  --line-soft: rgba(255, 255, 255, .08);
  --soft: rgba(255, 255, 255, .05);
  --white: #3A3690;
  --violet-text: #C4C0FF;
  --rose-text: #FF94C2;
  --corail-text: #FFB199;
  --shadow-soft: 0 30px 60px -30px rgba(0, 0, 0, .55);
  --shadow-float: 0 50px 100px -30px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .08);
  --deep: #26226E;
  --cream: #FBF6F3;
  background: #302C80;
  color: var(--ink);
}
body.premium .section-soft, body.premium .p-light {
  --marine: #302C80;
  --ink: #333E48;
  --muted: #4B5563;
  --subtle: #6B7280;
  --line: #EADFE2;
  --line-soft: #F1E8EA;
  --soft: #FFFFFF;
  --white: #FFFFFF;
  --violet-text: #4F48D6;
  --rose-text: #C9416F;
  --corail-text: #B4462A;
  --shadow-soft: 0 24px 48px -28px rgba(48, 44, 128, .25);
  background: var(--cream);
  color: var(--ink);
}
body.premium .section-dark { background: radial-gradient(800px 480px at 90% 0%, rgba(248, 87, 141, .22), rgba(248, 87, 141, 0) 70%), radial-gradient(700px 460px at 0% 100%, rgba(79, 72, 214, .5), rgba(79, 72, 214, 0) 70%), var(--deep); }
body.premium .btn-primary { background: #FFFFFF; color: #302C80; }
body.premium .btn-primary:hover { background: var(--rose-3); color: #302C80; }
body.premium .section-soft .btn-primary, body.premium .p-light .btn-primary { background: #302C80; color: #FFFFFF; }
body.premium .section-soft .btn-primary:hover, body.premium .p-light .btn-primary:hover { background: #4F48D6; }
body.premium .btn-light { background: #FFFFFF; color: #302C80; }
body.premium .btn-outline { border: 1px solid rgba(255, 255, 255, .4); color: #FFFFFF; background: transparent; }
body.premium .btn-outline:hover { background: rgba(255, 255, 255, .1); color: #FFFFFF; }
body.premium .card { background: rgba(255, 255, 255, .04); }
body.premium .section-soft .card, body.premium .p-light .card { background: #FFFFFF; }
body.premium .meter-bar { background: rgba(255, 255, 255, .12); }
body.premium .ui-card { background: rgba(58, 54, 144, .72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255, 255, 255, .14); }
body.premium .p-light .ui-card, body.premium .section-soft .ui-card { background: #FFFFFF; }
body.premium .step-chip { background: rgba(255, 255, 255, .06) !important; }
body.premium .ui-row.hl { background: rgba(248, 87, 141, .16); }
body.premium .status { background: rgba(31, 122, 77, .25); color: #9BE3BD; }
body.premium .b-now { background: rgba(248, 87, 141, .2); color: #FFB3CF; }
body.premium .b-soon { background: rgba(255, 132, 101, .2); color: #FFC2B0; }
body.premium .b-info { background: rgba(196, 192, 255, .16); color: #D9D6FF; }
body.premium .b-ok { background: rgba(155, 227, 189, .16); color: #9BE3BD; }
body.premium .section-soft .b-now, body.premium .p-light .b-now { background: #FFEAF2; color: #C9416F; }
body.premium .section-soft .b-info, body.premium .p-light .b-info { background: #EEEDFC; color: #4F48D6; }
body.premium .kv span:last-child { color: #9BE3BD; }
body.premium .field input, body.premium .field select, body.premium .field textarea { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .22); color: #FFFFFF; }
body.premium .section-soft .field input, body.premium .section-soft .field select, body.premium .section-soft .field textarea,
body.premium .p-light .field input, body.premium .p-light .field select, body.premium .p-light .field textarea,
body.premium .lead-form .field input, body.premium .lead-form .field select { background: #FFFFFF; border-color: #D5D3E8; color: #333E48; }
body.premium .radios label { border-color: rgba(255, 255, 255, .22); }
body.premium .radios label:has(input:checked) { background: rgba(255, 255, 255, .1); border-color: #FF94C2; }
body.premium .lead-form { --marine: #302C80; --ink: #333E48; --muted: #4B5563; --subtle: #6B7280; --line: #E6E5F2; --white: #FFFFFF; --rose-text: #C9416F; background: #FFFFFF; color: #333E48; }
body.premium .lead-form .radios label { border-color: #D5D3E8; }
body.premium .lead-form .radios label:has(input:checked) { background: #F3F2FB; border-color: #4F48D6; }
body.premium .lead-form .btn-primary { background: #302C80; color: #FFFFFF; }
body.premium th { background: rgba(255, 255, 255, .06); }
body.premium .section-soft th { background: #F7F1EF; }
body.premium .fil-rouge { background: rgba(255, 255, 255, .06); }
body.premium .i-violet { background: rgba(196, 192, 255, .14); color: #C4C0FF; }
body.premium .i-corail { background: rgba(255, 132, 101, .16); color: #FFB199; }
body.premium .i-rose { background: rgba(248, 87, 141, .16); color: #FF94C2; }
body.premium .section-soft .i-violet { background: #EEEDFC; color: #4F48D6; }
body.premium .section-soft .i-corail { background: #FFEDE7; color: #B4462A; }
body.premium .section-soft .i-rose { background: #FFEAF2; color: #C9416F; }
body.premium .tag { background: rgba(248, 87, 141, .18); color: #FFB3CF; }
body.premium .dropdown { background: #2A2675; box-shadow: 0 40px 80px -24px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .1); }
body.premium .dd-link:hover { background: rgba(255, 255, 255, .06); }
body.premium .dd-feature { background: radial-gradient(260px 180px at 100% 0%, rgba(248, 87, 141, .45), rgba(248, 87, 141, 0) 70%), #1F1C5E; }
body.premium .mobile-menu { background: #2A2675; }
body.premium .mm-cta { background: #2A2675; }
body.premium .mm-panel a:hover { background: rgba(255, 255, 255, .06); }
body.premium .hero.page { background: transparent; }
body.premium .hero.page .hero-band { opacity: .55; filter: saturate(1.1); }
body.premium .hero::before { display: none; }
body.premium .site-footer { background: #1F1C5E; }
body.premium .cert-strip { border-color: rgba(255, 255, 255, .08); }
body.premium .cert-inner span { color: rgba(255, 255, 255, .45); }
body.premium .login-card { background: rgba(255, 255, 255, .05); backdrop-filter: blur(12px); }
body.premium .energy-visual { background: #FFFFFF; }
body.premium .todo { color: #FF94C2; }
body.premium .section-soft .todo { color: #C9416F; }
body.premium .profile { background: rgba(255, 255, 255, .05); }
body.premium .profile:hover { background: rgba(255, 255, 255, .09); }

/* ---------- En-tête premium ---------- */
body.premium .site-header, body.premium .site-header.scrolled, body.premium .site-header.menu-open { background: rgba(48, 44, 128, .72); box-shadow: 0 1px 0 rgba(255, 255, 255, .08); }
body.premium .site-header.scrolled { background: rgba(38, 34, 110, .9); }
.icon-btn { position: relative; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #FFFFFF; border: 1px solid rgba(255, 255, 255, .22); }
.icon-btn svg { width: 18px; height: 18px; }
.icon-btn:hover { background: rgba(255, 255, 255, .1); color: #FFFFFF; }
.icon-btn .tip { position: absolute; top: calc(100% + 10px); right: 0; white-space: nowrap; padding: 6px 10px; border-radius: 6px; background: #FFFFFF; color: #302C80; font-size: 12px; font-weight: 600; opacity: 0; transform: translateY(-4px); pointer-events: none; transition: opacity .15s, transform .15s; }
.icon-btn:hover .tip, .icon-btn:focus-visible .tip { opacity: 1; transform: none; }
@media (max-width: 1439px) { .site-header .icon-btn { display: none; } }

/* ---------- Héros premium ---------- */
.p-hero { position: relative; overflow: hidden; margin-top: -72px; padding-top: 72px; background: #302C80; }
.p-aurora { position: absolute; inset: -20% -10% auto -10%; height: 140%; pointer-events: none; filter: blur(60px); opacity: .85; }
.p-aurora i { position: absolute; border-radius: 50%; mix-blend-mode: screen; animation: float 22s ease-in-out infinite alternate; }
.p-aurora i:nth-child(1) { width: 46vw; height: 46vw; right: -6vw; top: 6%; background: radial-gradient(circle, rgba(248, 87, 141, .55), rgba(248, 87, 141, 0) 65%); }
.p-aurora i:nth-child(2) { width: 38vw; height: 38vw; right: 18vw; top: 30%; background: radial-gradient(circle, rgba(255, 132, 101, .4), rgba(255, 132, 101, 0) 65%); animation-duration: 28s; }
.p-aurora i:nth-child(3) { width: 50vw; height: 50vw; left: -14vw; top: 40%; background: radial-gradient(circle, rgba(79, 72, 214, .7), rgba(79, 72, 214, 0) 65%); animation-duration: 32s; }
@keyframes float { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-4vw, 3vw, 0) scale(1.08); } }
.p-grid-lines { position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(180deg, #000, transparent 85%); -webkit-mask-image: linear-gradient(180deg, #000, transparent 85%); pointer-events: none; }
.p-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; align-items: center; padding-block: 96px 64px; }
.p-hero-copy { display: flex; flex-direction: column; gap: 30px; min-width: 0; }
.p-kicker { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: #C9C7F2; }
.p-kicker i { width: 4px; height: 4px; border-radius: 50%; background: #F8578D; }
.p-display { font-size: clamp(56px, 9vw, 128px); line-height: .92; letter-spacing: -0.035em; font-weight: 600; color: #FFFFFF; margin: 0; }
.p-display em { font-style: italic; background: linear-gradient(90deg, #FF94C2, #F8578D 40%, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .06em; }
.p-lead { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.65; color: #C9C7F2; max-width: 54ch; }
.p-visual { position: relative; min-height: 520px; }
.p-building { width: 100%; max-width: 460px; height: auto; margin-left: auto; display: block; }
.p-building .w { animation: glow 6s ease-in-out infinite; }
@keyframes glow { 0%, 100% { opacity: .35; } 45% { opacity: 1; } }
.p-building .scan { animation: scan 7s linear infinite; }
@keyframes scan { from { transform: translateY(0); } to { transform: translateY(420px); } }
.p-chip { position: absolute; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 12px; background: rgba(38, 34, 110, .72); border: 1px solid rgba(255, 255, 255, .16); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); min-width: 210px; }
.p-chip small { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #A9A6DD; }
.p-chip strong { font-size: 15px; font-weight: 600; color: #FFFFFF; }
.p-chip .badge { align-self: flex-start; }
.p-chip.c1 { top: 16%; left: -2%; }
.p-chip.c2 { top: 44%; right: -4%; }
.p-chip.c3 { bottom: 4%; left: 0; }
.p-trust { position: relative; display: flex; flex-wrap: wrap; gap: 14px 36px; align-items: center; padding-block: 28px 40px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13px; color: #A9A6DD; }
.p-trust b { font-weight: 600; color: rgba(255, 255, 255, .7); letter-spacing: .02em; }

/* ---------- Bandeau de chiffres ---------- */
.p-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid rgba(255, 255, 255, .1); }
.p-figures div { padding: 36px 28px; display: flex; flex-direction: column; gap: 6px; border-left: 1px solid rgba(255, 255, 255, .1); }
.p-figures div:first-child { border-left: 0; padding-left: 0; }
.p-figures b { white-space: nowrap; font-size: clamp(34px, 3.6vw, 52px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; color: #FFFFFF; font-variant-numeric: tabular-nums; }
.p-figures b em { font-style: normal; background: linear-gradient(90deg, #FF94C2, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
.p-figures span { font-size: 14px; color: #A9A6DD; line-height: 1.5; }

/* ---------- Chapitres ---------- */
.chap { display: flex; align-items: center; gap: 14px; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--rose-text); }
.chap b { font-weight: 600; color: var(--marine); }
.chap::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .6; }
.p-h2 { font-size: clamp(34px, 4.6vw, 64px); line-height: 1.02; letter-spacing: -0.03em; font-weight: 600; color: var(--marine); margin: 0; text-wrap: balance; }
.p-sticky { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 24px; align-self: start; }

.p-rows { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.p-rows a { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 8px 24px; align-items: center; padding: 22px 4px; border-bottom: 1px solid var(--line); color: var(--ink); transition: padding .25s, background .25s; }
.p-rows a:hover { padding-left: 14px; background: linear-gradient(90deg, rgba(248, 87, 141, .06), transparent 70%); color: var(--ink); }
.p-rows .n { font-size: 13px; font-weight: 600; color: var(--rose-text); font-variant-numeric: tabular-nums; }
.p-rows strong { display: block; font-size: clamp(18px, 1.8vw, 22px); font-weight: 600; color: var(--marine); letter-spacing: -0.01em; }
.p-rows small { display: block; font-size: 14px; color: var(--muted); margin-top: 2px; }
.p-rows .arr { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: var(--marine); transition: background .25s, color .25s, transform .25s; }
.p-rows .arr svg { width: 14px; height: 14px; }
.p-rows a:hover .arr { background: var(--marine); color: var(--cream); transform: rotate(-45deg); }

.p-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.p-steps::before { content: ""; position: absolute; top: 28px; left: 28px; right: 28px; height: 1px; background: linear-gradient(90deg, #4F48D6, #F8578D, #FF8465); opacity: .8; }
.p-step { position: relative; display: flex; flex-direction: column; gap: 12px; }
.p-step .dot { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #26226E; border: 1px solid rgba(255, 255, 255, .22); font-size: 18px; font-weight: 600; color: #FFFFFF; box-shadow: 0 0 0 8px #26226E; }
.p-step:last-child .dot { background: linear-gradient(135deg, #F8578D, #FF8465); border: 0; color: #302C80; }
.p-step strong { font-size: 20px; font-weight: 600; color: #FFFFFF; margin-top: 8px; }
.p-step p { font-size: 15px; line-height: 1.6; color: #C9C7F2; }

.p-big { font-size: clamp(72px, 12vw, 180px); line-height: .9; letter-spacing: -0.04em; font-weight: 600; margin: 0; background: linear-gradient(180deg, #FFFFFF 30%, rgba(255, 255, 255, .35)); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; }
.p-impact { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 56px; }

.p-others { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.p-others a { display: flex; flex-direction: column; gap: 10px; padding: 28px; border-radius: 16px; border: 1px solid var(--line); background: #FFFFFF; color: var(--ink); transition: transform .25s, box-shadow .25s; }
.p-others a:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); color: var(--ink); }
.p-others strong { font-size: 19px; font-weight: 600; color: var(--marine); }
.p-others span { font-size: 14px; color: var(--muted); }
.p-others em { margin-top: auto; font-style: normal; font-size: 14px; font-weight: 600; color: var(--violet-text); }

.p-guide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 80px); align-items: center; }
.p-book { position: relative; width: min(320px, 80%); aspect-ratio: 3 / 4; margin-inline: auto; border-radius: 6px 14px 14px 6px; background: linear-gradient(160deg, #FF94C2 0%, #F8578D 35%, #FF8465 65%, #4F48D6 100%); box-shadow: 30px 40px 80px -30px rgba(0, 0, 0, .7), inset 8px 0 0 rgba(0, 0, 0, .12); transform: perspective(900px) rotateY(-14deg) rotateX(4deg); padding: 32px 28px; display: flex; flex-direction: column; justify-content: space-between; color: #FFFFFF; }
.p-book small { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; opacity: .9; }
.p-book strong { font-size: 28px; line-height: 1.1; font-weight: 600; letter-spacing: -0.02em; }
.p-book img { width: 120px; height: auto; }
.p-guide-copy { display: flex; flex-direction: column; gap: 22px; }

.p-foot-slogan { padding-block: 72px 48px; border-bottom: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 32px; }
.p-foot-slogan p { font-size: clamp(40px, 7vw, 96px); line-height: .95; letter-spacing: -0.035em; font-weight: 600; color: #FFFFFF; margin: 0; }
.p-foot-slogan p em { font-style: italic; background: linear-gradient(90deg, #FF94C2, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
.foot-discreet { display: flex; gap: 16px; font-size: 12px; }
.foot-discreet a { color: #8F8BCF; }
.foot-discreet a:hover { color: #FFFFFF; }

@media (max-width: 1000px) {
  .p-hero-grid, .p-impact, .p-guide { grid-template-columns: minmax(0, 1fr); }
  .p-visual { min-height: 0; }
  .p-building { margin-inline: auto; max-width: 360px; }
  .p-chip { position: static; margin-top: 10px; }
  .p-visual { display: flex; flex-direction: column; }
  .p-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-figures div:nth-child(3) { border-left: 0; padding-left: 0; }
  .p-figures div:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .1); }
  .p-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
  .p-steps::before { display: none; }
  .p-others { grid-template-columns: minmax(0, 1fr); }
  .p-sticky { position: static; }
}
@media (max-width: 560px) {
  .p-figures { grid-template-columns: minmax(0, 1fr); }
  .p-figures div { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, .1); }
  .p-figures div:first-child { border-top: 0; }
  .p-steps { grid-template-columns: minmax(0, 1fr); }
  .p-rows a { grid-template-columns: 36px minmax(0, 1fr) auto; }
  .p-chip { min-width: 0; }
}
body.premium .hero .btn-primary { background: #FFFFFF; color: #302C80; }

/* Menus déroulants clairs, légèrement transparents */
body.premium .dropdown {
  --marine: #302C80; --ink: #333E48; --muted: #4B5563; --subtle: #6B7280; --line: #E6E3F1; --line-soft: #EEEBF5; --soft: #F3F2FB; --rose-text: #C9416F; --violet-text: #4F48D6;
  background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4);
  box-shadow: 0 40px 80px -24px rgba(10, 8, 40, .55), 0 0 0 1px rgba(255, 255, 255, .6); color: var(--ink);
}
body.premium .dropdown .dd-link:hover { background: rgba(48, 44, 128, .06); }
body.premium .dropdown .dd-feature { background: radial-gradient(260px 180px at 100% 0%, rgba(248, 87, 141, .45), rgba(248, 87, 141, 0) 70%), #302C80; }
body.premium .dropdown .dd-feature strong, body.premium .dropdown .dd-feature a { color: #FFFFFF; }
body.premium .dropdown .dd-feature p { color: #C9C7F2; }
body.premium .dropdown .dd-foot a { color: #C9416F; }
body.premium .dropdown .i-violet { background: #EEEDFC; color: #4F48D6; }
body.premium .dropdown .i-corail { background: #FFEDE7; color: #B4462A; }
body.premium .dropdown .i-rose { background: #FFEAF2; color: #C9416F; }

/* Séparateur entre deux sections violettes qui se suivent */
body.premium main > section:not(.section-soft):not(.p-light) + section:not(.section-soft):not(.p-light):not([style*="padding-top:0"]) { position: relative; }
body.premium main > section:not(.section-soft):not(.p-light) + section:not(.section-soft):not(.p-light):not([style*="padding-top:0"])::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: min(1120px, calc(100% - 2 * var(--gutter))); height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 148, 194, .55) 30%, rgba(255, 177, 153, .55) 70%, rgba(255, 255, 255, 0));
}
body.premium main > section:not(.section-soft):not(.p-light):not(.section-dark):not(.hero):not(.p-hero) + section.section:not(.section-soft):not(.p-light):not(.section-dark):not([style]) { background: #2B2779; }
body.premium main > .hero + section.section:not(.section-soft):not(.p-light):not(.section-dark) { background: #2B2779; }

/* Articles, régions, formulaires en premium */
body.premium .art-cta { background: radial-gradient(320px 220px at 100% 0%, rgba(248, 87, 141, .45), rgba(248, 87, 141, 0) 70%), #4F48D6; }
body.premium .art-bref { background: rgba(255, 255, 255, .06); }
body.premium .art-tip { background: linear-gradient(135deg, rgba(255, 132, 101, .16), rgba(248, 87, 141, .16)); }
body.premium .art-body a { color: #FFB3CF; }
body.premium .grid-details { background: #FFFFFF; }
body.premium .callback { background: rgba(255, 255, 255, .05); }
body.premium .mobile-bar { background: rgba(31, 28, 94, .94); }
body.premium .portrait.has-photo { background: #26226E; }
body.premium .btn-outline { border-color: rgba(255, 255, 255, .4); }
body.premium .section-soft .btn-outline, body.premium .p-light .btn-outline { color: #302C80; border-color: #D5D3E8; }

/* Contrastes : composants qui utilisaient var(--marine) comme fond (blanc en premium) */
body.premium .cta-band, body.premium .badge-dark, body.premium .ui-card.dark {
  background: radial-gradient(420px 260px at 100% 0%, rgba(248, 87, 141, .45), rgba(248, 87, 141, 0) 70%), linear-gradient(135deg, #4F48D6, #3A3690);
  color: #FFFFFF; border: 1px solid rgba(255, 255, 255, .14);
}
body.premium .cta-band h3, body.premium .badge-dark strong { color: #FFFFFF; }
body.premium .cta-band p, body.premium .badge-dark span, body.premium .badge-dark small { color: #E6E4FF; }
body.premium .cta-band .btn-light { background: #FFFFFF; color: #302C80; }
body.premium .guide .cover { color: #FFFFFF; background: linear-gradient(160deg, #FF8465, #F8578D 55%, #4F48D6); }
body.premium .guide .cover.cool { background: linear-gradient(160deg, #4F48D6, #1F1C5E); }
body.premium .lead-form a, body.premium .p-light a:not(.btn), body.premium .section-soft .rgpd a { color: #302C80; text-decoration: underline; text-underline-offset: 3px; }
/* Pas de vert sur violet : chiffres en blanc sur fond sombre */
body.premium td .good { color: #FFFFFF; }
body.premium .fs-nums b.g { color: #FFFFFF; }
body.premium .section-soft .fs-nums b.g, body.premium .p-light .fs-nums b.g, body.premium .section-soft td .good { color: #1F7A4D; }
body.premium td { color: #FFFFFF; }
body.premium .section-soft td, body.premium .p-light td, body.premium .grid-details td { color: #333E48; }
body.premium .submit-row .delay::before { background: #FF94C2; }
/* Bloc « Une question sur votre copropriété ? » des articles : carte crème */
body.premium .art-cta { background: radial-gradient(360px 240px at 100% 0%, rgba(248, 87, 141, .22), rgba(248, 87, 141, 0) 70%), #FBF6F3; color: #302C80; border: 0; }
body.premium .art-cta strong { color: #302C80; }
body.premium .art-cta p { color: #4B5563; }
body.premium .art-cta .btn { background: #302C80; color: #FFFFFF; }
body.premium .art-cta .btn:hover { background: #4F48D6; }
body.premium .art-side-cta .btn { background: #302C80; color: #FFFFFF; }
body.premium .art-side-cta .btn:hover { background: #4F48D6; }
body.premium .art-toc { border-color: rgba(255, 255, 255, .14); }
body.premium .art-toc a { color: #C9C7F2; }
body.premium .art-toc a:hover { color: #FFFFFF; }
body.premium .notion { background: rgba(255, 255, 255, .05); border-color: #FF94C2; }
body.premium .notion:hover { border-color: #F8578D; box-shadow: 0 0 0 1px #F8578D; background: rgba(255, 255, 255, .08); }
body.premium .notion em { color: #FF94C2; }
body.premium .sim-mail { background: rgba(255, 255, 255, .04); border-top-color: rgba(255, 255, 255, .12); }
body.premium .lex-block { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .12); }
body.premium .lex-full { color: #FFFFFF; }
body.premium .lex-jump a { color: #FFFFFF; border-color: rgba(255, 255, 255, .22); }
body.premium .lex-cta-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); }

/* ---------- Refonte V3 (octobre 2026) ---------- */
.p-display.p-display-sm { font-size: clamp(42px, 5.6vw, 80px); line-height: 1; }
.p-hero-link { color: #FFFFFF; margin-top: 4px; align-self: flex-start; }
.p-steps.p-steps-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.p-others.p-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.p-rows-years .n { font-size: 15px; }
.todo { font-style: italic; color: #C2185B; font-weight: 500; }
.todo-box { border: 1px dashed #F8578D; border-radius: 12px; padding: 12px 16px; background: rgba(248, 87, 141, .06); font-size: 14px; line-height: 1.5; }
.section-dark .todo, [style*="#26226E"] .todo { color: #FFB9D7; }
.phase-card { gap: 16px; }
.phase-card .phase-num { width: 48px; height: 48px; font-size: 20px; }
.card > .icon { margin-bottom: 4px; }
.nav-v3 > a, .nav-v3 .nav-trigger { font-size: 14.5px; padding: 0 7px; }
body.premium .site-header .container.header-inner { max-width: 1680px; }
@media (max-width: 1000px) {
  .p-steps.p-steps-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
  .p-others.p-four { grid-template-columns: minmax(0, 1fr); }
}
body.premium .p-glass a { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); }
body.premium .p-glass a:hover { background: rgba(255, 255, 255, .1); }
body.premium .p-glass strong { color: #FFFFFF; }
body.premium .p-glass span { color: #C9C7F2; }
body.premium .p-glass em { color: #FFB9D7; }
.p-display.p-display-sm { font-size: clamp(40px, 4.6vw, 66px); line-height: 1.02; }
.p-display em { -webkit-box-decoration-break: clone; box-decoration-break: clone; padding-right: .12em; }
html, body.premium { overflow-x: clip; }

/* ---------- Maquette V4 : accueil ---------- */
.lp-wrap { display: flex; align-items: center; justify-content: center; }
.lp { width: min(100%, 520px); aspect-ratio: 1; }
.lp-svg { width: 100%; height: 100%; overflow: visible; }
.lp-mark { transform-origin: 200px 200px; animation: lpFloat 7s ease-in-out infinite; filter: drop-shadow(0 30px 50px rgba(248, 87, 141, .35)); }
.lp-waves path { transform-origin: 200px 200px; stroke-width: 1.5; opacity: 0; animation: lpWave 6s ease-out infinite; }
.lp-waves .w2 { animation-delay: 2s; } .lp-waves .w3 { animation-delay: 4s; }
.lp-orbit { transform-origin: 200px 200px; }
.lp-step circle { fill: #3E3A96; stroke: #FF94C2; stroke-width: 1.5; animation: lpDot 10s infinite; animation-delay: calc(var(--i) * 2s); }
.lp-step text { font: 600 13px/1 Inter, system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; fill: #A9A6DD; animation: lpTxt 10s infinite; animation-delay: calc(var(--i) * 2s); }
@keyframes lpFloat { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(1.5deg); } }
@keyframes lpWave { 0% { transform: scale(.42); opacity: .55; } 100% { transform: scale(1.05); opacity: 0; } }
@keyframes lpDot { 0%, 18% { fill: #F8578D; r: 8; } 22%, 100% { fill: #3E3A96; r: 5; } }
@keyframes lpTxt { 0%, 18% { fill: #FFFFFF; } 22%, 100% { fill: #A9A6DD; } }
@media (prefers-reduced-motion: reduce) { .lp-mark, .lp-waves path, .lp-step circle, .lp-step text { animation: none; } .lp-waves path { opacity: .15; } }

.mk-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.mk-stat { margin: 0; padding: 28px 24px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.mk-stat b { font-size: clamp(40px, 4.4vw, 60px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; color: #302C80; font-variant-numeric: tabular-nums; }
.mk-stat b em { font-style: normal; font-size: .42em; margin-left: 6px; letter-spacing: 0; background: linear-gradient(90deg, #F8578D, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mk-stat figcaption { display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.5; color: #333E48; }
.mk-stat figcaption a { font-size: 12px; color: #5E58C9; text-decoration: underline; text-underline-offset: 2px; }

.kf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255, 255, 255, .14); }
.kf { padding: 28px 24px 28px 0; display: flex; flex-direction: column; gap: 8px; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.kf b { font-size: clamp(36px, 3.6vw, 52px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; color: #FFFFFF; font-variant-numeric: tabular-nums; }
.kf b em { font-style: normal; font-size: .5em; color: #FF94C2; }
.kf span { font-size: 14px; color: #C9C7F2; }
.kf-todo b { color: rgba(255, 185, 215, .55); }
.kf small { font-size: 12px; }

.pr-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 20px; align-items: start; }
.pr-card { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.pr-paper { background: #F4F1E8; padding: 10px; border-radius: 4px; box-shadow: 0 24px 48px -24px rgba(48, 44, 128, .45), 0 0 0 1px rgba(48, 44, 128, .08); transform: rotate(-1.2deg); transition: transform .3s; }
.pr-card:nth-child(2) .pr-paper { transform: rotate(1deg); }
.pr-card:nth-child(3) .pr-paper { transform: rotate(-.6deg); }
.pr-card:hover .pr-paper { transform: rotate(0) translateY(-4px); }
.pr-paper img { display: block; width: 100%; height: auto; filter: sepia(.15) contrast(1.05); }
.pr-card strong { font-size: 17px; color: #302C80; font-weight: 600; }
.pr-card span { font-size: 14px; color: #5B6170; }
.pr-card figcaption { display: flex; flex-direction: column; gap: 4px; }
@media (max-width: 1000px) {
  .mk-stats, .kf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pr-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) { .mk-stats { grid-template-columns: minmax(0, 1fr); } }
.bs { width: min(100%, 540px); height: auto; overflow: visible; }

/* ===== V5 : menu final, pages offres, urgences, géothermie ===== */
.dt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dt-card { display: flex; flex-direction: column; gap: 12px; padding: 28px; scroll-margin-top: 120px; }
.dt-row { margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--muted); }
.dt-row b { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--violet-text); margin-bottom: 2px; }
.dt-card .more { margin-top: auto; padding-top: 6px; }
.ph-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ph-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--line); background: #fff; }
.ph-list li span { font-weight: 600; color: var(--marine); }
.ph-list li a { font-weight: 700; color: var(--rose-text); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ph-list.on-dark li { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); }
.ph-list.on-dark li span { color: var(--on-dark-muted); }
.ph-list.on-dark li a { color: #fff; }
.of-num { display: block; font-size: 13px; font-weight: 700; letter-spacing: .1em; color: var(--rose-text); margin-bottom: 6px; }
.p-services strong { display: block; }
.geo-figure { border-radius: 20px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .14); padding: 16px; }
.geo-svg { display: block; width: 100%; height: auto; }
.geo-heat circle { animation: geoUp 2.4s ease-in-out infinite; transform-box: fill-box; }
@keyframes geoUp { 0% { opacity: 0; transform: translateY(14px); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(-26px); } }
@media (prefers-reduced-motion: reduce) { .geo-heat circle { animation: none; } }
.tel-item { position: relative; }
.dropdown.dd-tel { left: auto !important; right: 0; width: 300px; padding: 12px; }
.tel-item.nav-item:has(.dd-tel.open) .tip { display: none; }
.dd-tel a { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; }
.dd-tel a > span:last-child { display: flex; flex-direction: column; }
.dd-tel a:hover { background: rgba(255, 255, 255, .08); }
@media (max-width: 860px) { .dt-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1799px) {
  body.premium .nav-v3 > a, body.premium .nav-v3 .nav-trigger { font-size: 14px; padding: 0 6px; }
  body.premium .site-header .header-inner { gap: 14px; }
  body.premium .site-header .header-cta { gap: 8px; }
  body.premium .site-header .header-cta .btn { padding-inline: 16px; }
}
.sim-anchor { display: block; position: relative; top: -110px; height: 0; }
.kf-grid.kf-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kf-grid.kf-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kf-grid.kf-2 .kf, .kf-grid.kf-3 .kf { padding-right: 20px; }
@media (max-width: 640px) { .kf-grid.kf-2, .kf-grid.kf-3 { grid-template-columns: minmax(0, 1fr); } }

/* ===== V7 : logos, presse, FAQ, pièces jointes ===== */
.lg-trust { flex-wrap: nowrap; gap: 24px; }
.lg-trust > span { flex: none; }
.lg-marquee { flex: 1; min-width: 0; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.lg-track { display: flex; width: max-content; animation: lgScroll 32s linear infinite; }
.lg-marquee:hover .lg-track { animation-play-state: paused; }
.lg-row { display: flex; gap: 16px; padding-right: 16px; }
.lg { flex: none; display: flex; align-items: center; justify-content: center; width: 112px; height: 72px; padding: 8px 10px; background: #FFFFFF; border-radius: 12px; box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .5); }
.lg img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
@keyframes lgScroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .lg-track { animation: none; } .lg-row[aria-hidden="true"] { display: none; } .lg-marquee { overflow-x: auto; } }
@media (max-width: 720px) { .lg-trust { flex-direction: column; align-items: flex-start; } .lg-marquee { width: 100%; } }
a.pr-paper { display: block; position: relative; cursor: zoom-in; }
.pr-zoom { position: absolute; right: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(48, 44, 128, .92); color: #fff; font-size: 12px; font-weight: 600; opacity: 0; transform: translateY(4px); transition: opacity .2s, transform .2s; }
a.pr-paper:hover .pr-zoom, a.pr-paper:focus-visible .pr-zoom { opacity: 1; transform: none; }
@media (hover: none) { .pr-zoom { opacity: 1; transform: none; } }
.zoom-box { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(20, 18, 60, .9); cursor: zoom-out; }
.zoom-box img { width: min(1200px, 100%); height: auto; max-height: calc(100vh - 48px); object-fit: contain; border-radius: 4px; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); background: #F4F1E8; }
.zoom-box button { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: #302C80; font-size: 22px; cursor: pointer; }
.faq { display: flex; flex-direction: column; gap: 10px; }
.faq-item { background: #FFFFFF; border: 1px solid var(--line); border-radius: 14px; }
.faq-item summary { list-style: none; cursor: pointer; padding: 18px 52px 18px 20px; position: relative; font-weight: 600; color: var(--marine); font-size: 16px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--rose-text); }
.faq-item[open] summary::after { content: '−'; }
.faq-a { padding: 0 20px 18px; display: flex; flex-direction: column; gap: 10px; }
.faq-a p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.file-field input[type=file] { padding: 10px; background: var(--soft); border-style: dashed; cursor: pointer; }
.file-field small { font-weight: 400; color: var(--subtle); font-size: 13px; }

/* ===== V8 ===== */
/* logos : aller-retour sans doublon */
.lg-track { animation: none; }
.lg-marquee { -webkit-mask-image: none; mask-image: none; }
.lg-marquee.is-moving { -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.lg-marquee.is-moving .lg-track { animation: lgPing var(--lg-dur, 14s) ease-in-out infinite alternate; }
@keyframes lgPing { 0%, 8% { transform: translateX(0); } 92%, 100% { transform: translateX(var(--lg-shift, 0)); } }
.lg-row { padding-right: 0; }
a.lg { transition: transform .2s; } a.lg:hover { transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .lg-marquee.is-moving .lg-track { animation: none; } .lg-marquee { overflow-x: auto; } }

/* transitions entre deux sections de même couleur */
.sec-sep { position: relative; }
.sec-sep::after { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: min(1100px, 86%); height: 1px; background: linear-gradient(90deg, transparent, rgba(248, 87, 141, .55), rgba(255, 132, 101, .5), transparent); box-shadow: 0 0 14px 1px rgba(248, 87, 141, .28); pointer-events: none; z-index: 1; }

/* liens de sources : discrets */
.mk-stat figcaption a, .note a, .src-note a, p.note a { color: #9C9AAF !important; text-decoration: underline; text-decoration-color: rgba(156, 154, 175, .45); text-underline-offset: 2px; font-weight: 400; }
.mk-stat figcaption a:hover, .note a:hover { color: #6B6980 !important; }
.section-dark .note a, .tx-section .note a, .section-dark p.note a { color: #8E8BB8 !important; }
.cert-link { display: inline-block; margin-top: 10px; font-size: 13px; color: #A9A6DD; text-decoration: underline; text-underline-offset: 2px; }

/* vous êtes */
.vx-section { position: relative; overflow: hidden; }
.vx-section::before { content: ''; position: absolute; width: 620px; height: 620px; right: -180px; top: -120px; border-radius: 50%; background: radial-gradient(closest-side, rgba(248, 87, 141, .16), transparent); pointer-events: none; }
.vx-grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.vx { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 12px; min-height: 340px; padding: 28px 24px 24px; border-radius: 20px; color: #fff; isolation: isolate; box-shadow: 0 28px 50px -28px rgba(48, 44, 128, .6); transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
.vx::after { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 80% at 100% 0%, rgba(255, 255, 255, .22), transparent 55%); opacity: .7; transition: opacity .3s; }
.vx:hover { transform: translateY(-6px); box-shadow: 0 36px 60px -26px rgba(48, 44, 128, .75); color: #fff; }
.vx:hover::after { opacity: 1; }
.vx-1 { background: linear-gradient(155deg, #4F48D6, #302C80); }
.vx-2 { background: linear-gradient(155deg, #F8578D, #4F48D6); }
.vx-3 { background: linear-gradient(155deg, #FF8465, #F8578D); }
.vx-4 { background: linear-gradient(155deg, #3E3A96, #1F1C5E); }
.vx-ico { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .28); }
.vx-ico svg { width: 26px; height: 26px; color: #fff; }
.vx-num { position: absolute; right: 18px; top: 8px; font-size: 76px; font-weight: 700; letter-spacing: -.04em; color: rgba(255, 255, 255, .13); line-height: 1; transition: transform .4s; }
.vx:hover .vx-num { transform: translateY(6px) scale(1.06); }
.vx strong { font-size: 21px; line-height: 1.25; font-weight: 600; margin-top: 8px; }
.vx-txt { font-size: 15px; line-height: 1.5; color: rgba(255, 255, 255, .85); }
.vx-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.vx-chips i { font-style: normal; font-size: 12px; font-weight: 500; padding: 5px 10px; border-radius: 999px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .22); }
.vx em { font-style: normal; font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 8px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .2); }
.vx em b { transition: transform .25s; } .vx:hover em b { transform: translateX(5px); }
@media (max-width: 1100px) { .vx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .vx-grid { grid-template-columns: minmax(0, 1fr); } .vx { min-height: 0; } }

/* tertiaire 70 / 30 */
.tx-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); gap: 56px; align-items: center; }
.tx-main { display: flex; flex-direction: column; gap: 22px; }
.tx-title { color: #fff; max-width: none; font-size: clamp(36px, 4.4vw, 64px); line-height: 1.04; }
.tx-hl { color: #FF7FAE; -webkit-text-stroke: 1px rgba(255, 255, 255, .55); paint-order: stroke fill; }
.tx-side { display: flex; flex-direction: column; gap: 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.tx-side .kf { padding-right: 0; }
.tx-side .note { margin-top: 14px; font-size: 12px; color: #8E8BB8; }
@media (max-width: 900px) { .tx-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } }

/* équipe : deux portraits */
.team2 { display: grid; grid-template-columns: repeat(2, minmax(0, 320px)); gap: 32px; }
@media (max-width: 640px) { .team2 { grid-template-columns: minmax(0, 1fr); } }

/* urgences : étapes sur fond clair */
.p-steps.p-steps-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.p-steps.on-light .p-step strong { color: #302C80; }
.p-steps.on-light .p-step p { color: var(--muted); }
.p-steps.on-light .p-step .dot { background: #302C80; box-shadow: 0 0 0 8px #F7F6FC; }
@media (max-width: 860px) { .p-steps.p-steps-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* fiche signalétique : programme des travaux */
.fs-prog { display: flex; flex-direction: column; gap: 8px; }
.fs-sub { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #A9A6DD; }
.fs-none { margin: 0; font-size: 14px; color: #FFFFFF; }

/* téléphones : toujours les trois agences */
.tel-3 { display: inline-flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; font-size: 14px; color: inherit; }
.tel-3 a { font-weight: 600; white-space: nowrap; }
p.side-tel { font-size: 13px; line-height: 1.6; margin: 4px 0 0; }
.mb-tel { position: relative; }
.mb-tel summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; height: 100%; }
.mb-tel summary::-webkit-details-marker { display: none; }
.mb-tel-list { position: absolute; left: 0; bottom: calc(100% + 12px); min-width: 230px; display: flex; flex-direction: column; gap: 4px; padding: 8px; border-radius: 14px; background: #26226E; box-shadow: 0 20px 40px -10px rgba(0, 0, 0, .5); }
.mb-tel-list a { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #fff; font-weight: 600; }
.mb-tel-list a b { color: #FF94C2; font-weight: 600; }
.mb-tel-list a:hover { background: rgba(255, 255, 255, .08); }
.p-steps.on-light .p-step .dot { color: #FFFFFF !important; background: #302C80 !important; }

/* ===== V9 : liens « en savoir plus » mis en valeur ===== */
.more { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 600; line-height: 1.2; color: #C9416F !important; background: rgba(248, 87, 141, .1); border: 1px solid rgba(248, 87, 141, .32); text-decoration: none; transition: background .2s, color .2s, transform .2s, box-shadow .2s; }
a.more:hover, a:hover > .more, .card:hover .more { background: linear-gradient(120deg, #F8578D, #FF8465); color: #FFFFFF !important; border-color: transparent; box-shadow: 0 10px 22px -12px rgba(248, 87, 141, .8); transform: translateX(2px); }
.is-dark .more, .p-glass .more, .section-dark .more { color: #FFB9D7 !important; background: rgba(248, 87, 141, .16); border-color: rgba(255, 148, 194, .4); }
.dt-card .more { margin-top: auto; }

/* ===== V9 : page Tertiaire ===== */
.mk-stats.mk-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.act-list { display: flex; flex-direction: column; gap: 10px; }
.act { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; padding: 16px 18px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--line); }
.act strong { color: var(--marine); font-size: 16px; }
.act span { grid-column: 1; font-size: 14px; color: var(--muted); line-height: 1.5; }
.act b { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 20px; font-weight: 600; background: linear-gradient(90deg, #F8578D, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; white-space: nowrap; }
.act small { grid-column: 1 / -1; font-size: 12px; color: var(--subtle); }
.act-list .more { margin-top: 6px; }
.cert9 { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 16px; }
.c9 { display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 16px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); }
.c9 strong { color: #fff; font-size: 16px; }
.c9 > span:not(.c9-logo) { color: #C9C7F2; font-size: 14px; line-height: 1.5; }
.c9-logo { display: flex; align-items: center; justify-content: center; height: 96px; padding: 10px; border-radius: 12px; background: #fff; margin-bottom: 6px; }
.c9-logo img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.c9-main { background: linear-gradient(155deg, rgba(248, 87, 141, .28), rgba(79, 72, 214, .3)); border-color: rgba(255, 148, 194, .45); }
.c9-main .c9-logo { height: 120px; }
@media (max-width: 1000px) { .cert9 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mk-stats.mk-3 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .cert9 { grid-template-columns: minmax(0, 1fr); } }
.is-dark .act, .section-dark .act { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); }
.is-dark .act strong, .section-dark .act strong { color: #FFFFFF; }
.is-dark .act span, .section-dark .act span { color: #C9C7F2; }
.is-dark .act small, .section-dark .act small { color: #A9A6DD; }
.is-dark .act b, .section-dark .act b { background: linear-gradient(90deg, #FF94C2, #FF8465); -webkit-background-clip: text; background-clip: text; }

/* ===== Bandeau cookies ===== */
.ck { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 300; display: flex; justify-content: center; pointer-events: none; }
.ck-in { pointer-events: auto; width: min(760px, 100%); background: #FFFFFF; color: var(--ink); border-radius: 18px; padding: 22px 24px; box-shadow: 0 30px 70px -20px rgba(20, 18, 60, .55), 0 0 0 1px rgba(48, 44, 128, .1); display: flex; flex-direction: column; gap: 12px; }
.ck-title { font-size: 17px; color: var(--marine); }
.ck-in p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--muted); }
.ck-in p a { color: var(--violet-text); text-decoration: underline; }
.ck-detail { display: none; flex-direction: column; gap: 8px; }
.ck-open .ck-detail { display: flex; }
.ck-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border-radius: 12px; background: var(--soft); border: 1px solid var(--line); cursor: pointer; }
.ck-row span { display: flex; flex-direction: column; gap: 2px; }
.ck-row b { font-size: 14px; color: var(--marine); }
.ck-row small { font-size: 12px; color: var(--muted); }
.ck-row input { width: 20px; height: 20px; accent-color: #F8578D; flex: none; }
.ck-btns { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.ck-b { font: inherit; font-size: 14px; font-weight: 600; padding: 10px 18px; border-radius: 999px; border: 1px solid #302C80; background: #302C80; color: #fff; cursor: pointer; }
.ck-b[data-a="perso"] { background: transparent; color: #302C80; }
.ck-save { display: none; }
.ck-open .ck-save { display: inline-block; background: transparent; color: #302C80; }
.ck-open .ck-perso { display: none; }
@media (max-width: 560px) { .ck-btns .ck-b { flex: 1 1 45%; } }

/* ===== Pages légales en pleine largeur ===== */
.legal.legal-full { max-width: calc(var(--container) + 2 * var(--gutter)); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.legal-full .lg-block { padding: 28px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 10px; }
.legal-full .lg-block h2 { margin: 0; }
.legal-full .lg-block p { margin: 0; }
.legal-full .lg-wide { grid-column: 1 / -1; }
.is-dark .legal-full .lg-block { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); }
.is-dark .legal-full .lg-block h2 { color: #fff; }
.is-dark .legal-full .lg-block, .is-dark .legal-full .lg-block p, .is-dark .legal-full td { color: #E4E3F7; }
.is-dark .legal-full a { color: #FFB9D7; }
@media (max-width: 800px) { .legal.legal-full { grid-template-columns: minmax(0, 1fr); } }
body .ck-in { background: #FFFFFF !important; color: #333E48 !important; }
body .ck-in .ck-title { color: #302C80 !important; }
body .ck-in p { color: #4B5563 !important; }
body .ck-in p a { color: #4F48D6 !important; }
body .ck-in .ck-row { background: #F7F6FC !important; border-color: #E6E5F2 !important; }
body .ck-in .ck-row b { color: #302C80 !important; }
body .ck-in .ck-row small { color: #4B5563 !important; }

/* ---------- Géothermie V10 : schémas, étude de cas, démarche ---------- */
.geo-figure { margin: 0; padding: 0; border: 0; background: none; }
.geo-figure figcaption { margin-top: 12px; font-size: 13px; color: var(--muted); }
.section-dark .geo-figure figcaption { color: #A9A6DD; }
.geo-scroll-in { border-radius: 18px; overflow: hidden; box-shadow: 0 1px 0 rgba(48, 44, 128, .06), 0 12px 32px -18px rgba(48, 44, 128, .35); }
.geo-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 8px; }
.geo-kpi { display: flex; flex-direction: column; gap: 6px; padding: 20px; border-radius: 14px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); }
.geo-kpi b { font-size: 30px; font-weight: 600; color: #FF94C2; line-height: 1.1; }
.geo-kpi span { font-size: 14px; color: #C9C7F2; }
.geo-phases { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; counter-reset: ph; }
.geo-phases li { counter-increment: ph; display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border-radius: 14px; border: 1px solid var(--line); background: var(--white); }
.geo-phases li::before { content: counter(ph, decimal-leading-zero); font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--rose-text); }
.geo-phases b { font-size: 16px; font-weight: 600; color: var(--marine); }
.geo-phases span { font-size: 14px; line-height: 1.55; color: var(--muted); }
.geo-combo { margin-top: 24px; padding: 20px 22px; border-radius: 14px; background: var(--white); border: 1px solid #FF94C2; display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 900px) { .geo-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .geo-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .geo-scroll { margin-left: -16px; margin-right: -16px; }
  .geo-scroll-in { overflow-x: auto; border-radius: 0; -webkit-overflow-scrolling: touch; }
  .geo-scroll-in .geo-svg { width: 720px; max-width: none; }
  .geo-scroll figcaption { padding: 0 16px; }
  .geo-scroll figcaption::before { content: "Faites glisser pour voir tout le schéma. "; font-weight: 600; }
  .geo-phases { grid-template-columns: minmax(0, 1fr); }
}
#enr .notions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { #enr .notions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { #enr .notions { grid-template-columns: minmax(0, 1fr); } }

/* ---------- V11 : guides, expertises ---------- */
.guides-2 { max-width: 980px; }
.guide .cover.cover-img, body.premium .guide .cover.cover-img { background: none; border: 0; padding: 0; aspect-ratio: 4 / 3; overflow: visible; }
.guide .cover-img img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .25s ease; }
.guide:hover .cover-img img { transform: translateY(-4px); }
.exp-geo { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 20px 24px; border-radius: 16px; border: 1px solid #FF94C2; text-decoration: none; color: inherit; }
.exp-geo strong { font-size: 17px; font-weight: 600; }
.exp-geo em { margin-left: auto; font-style: normal; font-weight: 600; color: #FF94C2; }
.exp-geo:hover { border-color: #F8578D; box-shadow: 0 0 0 1px #F8578D; }
#energies-renouvelables .notions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.enr-steps { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; counter-reset: es; }
.enr-steps li { counter-increment: es; display: flex; gap: 10px; align-items: baseline; font-size: 15px; }
.enr-steps li::before { content: counter(es, decimal-leading-zero); font-size: 13px; font-weight: 700; color: var(--rose-text); }
@media (max-width: 1000px) { #energies-renouvelables .notions, .enr-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { #energies-renouvelables .notions, .enr-steps { grid-template-columns: minmax(0, 1fr); } }
body.premium a.chip.lg { background: rgba(255, 255, 255, .08); color: #FFFFFF; border-color: rgba(255, 255, 255, .22); text-decoration: none; }
body.premium a.chip.lg:hover { border-color: #FF94C2; }

/* ---------- V12 : simulation tertiaire, menus ---------- */
.sim-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sim-step { display: flex; flex-direction: column; gap: 10px; padding: 28px; border-radius: 18px; background: #FFFFFF; border: 1px solid #FF94C2; text-decoration: none; color: #333E48; transition: border-color .2s, box-shadow .2s, transform .2s; }
.sim-step:hover { border-color: #F8578D; box-shadow: 0 0 0 1px #F8578D; transform: translateY(-2px); }
.sim-step .sim-num { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #C9416F; }
.sim-step strong { font-size: 22px; font-weight: 600; color: #302C80; }
.sim-step > span:not(.sim-num) { font-size: 15px; line-height: 1.6; color: #4B5563; }
.sim-step em { font-style: normal; align-self: flex-start; margin-top: auto; }
.sim-step .btn-ghost-dark { background: none; color: #302C80; border: 1.5px solid #302C80; }
@media (max-width: 760px) { .sim-steps { grid-template-columns: minmax(0, 1fr); } }
a.nav-trigger { text-decoration: none; }
#realisation .geo-kpi { padding: 16px; } #realisation .geo-kpi b { font-size: 20px; }

/* ---------- V13 : pages régions, AMO, MOE ---------- */
.rc2 { gap: 18px; }
.rc2-agency { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); text-decoration: none; color: #FFFFFF; }
.rc2-agency small { display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #C9C7F2; }
.rc2-agency strong { font-size: 22px; font-weight: 600; letter-spacing: .01em; }
.rc2-agency em { font-style: normal; font-size: 13px; font-weight: 600; color: #FF94C2; white-space: nowrap; }
.rc2-agency:hover { border-color: #FF94C2; }
.rc2-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rc2-stats div { display: flex; flex-direction: column; gap: 4px; padding: 4px 12px; border-left: 1px solid rgba(255, 255, 255, .16); }
.rc2-stats div:first-child { padding-left: 0; border-left: 0; }
.rc2-stats b { font-size: 24px; font-weight: 600; color: #FFFFFF; white-space: nowrap; }
.rc2-stats span { font-size: 13px; line-height: 1.4; color: #C9C7F2; }
.rc2 .btn { justify-content: center; }
.est-out .ui-label sup { font-size: .8em; }
.est-out .est-note { font-size: 12px; line-height: 1.5; color: #C9C7F2; margin-top: 4px; }
.rg-contact { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: center; }
.rg-contact-copy { display: flex; flex-direction: column; gap: 16px; }
.rg-agency { display: flex; flex-direction: column; gap: 8px; padding: 28px; border-radius: 20px; background: radial-gradient(320px 220px at 100% 0%, rgba(248, 87, 141, .35), rgba(248, 87, 141, 0) 70%), rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); }
.rg-agency strong { font-size: 20px; font-weight: 600; color: #FFFFFF; }
.rg-agency p { margin: 0; font-size: 15px; color: #C9C7F2; }
.rg-tel { font-size: 30px; font-weight: 600; color: #FFFFFF; text-decoration: none; letter-spacing: .01em; margin-top: 6px; }
.rg-tel:hover { color: #FF94C2; }
.rg-sub { font-size: 14px; color: #C9C7F2; }
.rg-more { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 36px; }
.rg-card { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .05); text-decoration: none; color: inherit; transition: border-color .2s, transform .2s; }
.rg-card:hover { border-color: #FF94C2; transform: translateY(-2px); }
.rg-card strong { font-size: 17px; font-weight: 600; color: #FFFFFF; }
.rg-card > span:not(.card-label) { font-size: 14px; line-height: 1.5; color: #C9C7F2; }
.rg-card em { font-style: normal; font-size: 14px; font-weight: 600; color: #FF94C2; margin-top: auto; padding-top: 6px; }
@media (max-width: 1000px) { .rg-contact { grid-template-columns: minmax(0, 1fr); } .rg-more { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rg-more { grid-template-columns: minmax(0, 1fr); } .rc2-stats b { font-size: 20px; } }

.mission-cards { margin-top: 8px; }
.grid.g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.mission-card { display: flex; flex-direction: column; gap: 10px; }
.mission-card .h3 { font-size: 19px; }
.mc-label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #FF94C2; }
.mc-label.corail { color: #FF8465; } .mc-label.violet { color: #A9A6FF; }
.link-band { margin-top: 24px; display: flex; flex-direction: column; gap: 6px; padding: 20px 24px; border-radius: 16px; border: 1px solid #FF94C2; }
.link-band strong { font-size: 17px; font-weight: 600; }
.link-band p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--muted); }
.aid-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.aid-table th, .aid-table td { padding: 16px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.aid-table thead th { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #C9C7F2; font-weight: 600; background: rgba(255, 255, 255, .05); }
.aid-table tbody th { font-weight: 600; color: #FFFFFF; }
.aid-table td { color: #C9C7F2; } .aid-table td b { color: #FF94C2; font-weight: 600; }
.aid-table tbody tr:last-child > * { border-bottom: 0; }
.aid-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 20px; }
.aid-figures div { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border-radius: 14px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); }
.aid-figures b { font-size: 26px; font-weight: 600; color: #FF94C2; white-space: nowrap; }
.aid-figures span { font-size: 14px; color: #C9C7F2; line-height: 1.45; }
@media (max-width: 1000px) { .grid.g4, .aid-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); } .aid-table table { min-width: 640px; } }
@media (max-width: 560px) { .grid.g4, .aid-figures { grid-template-columns: minmax(0, 1fr); } }

/* ---------- V14 : bandeau cookies, accent sur « Tout accepter » ---------- */
.ck-in:focus { outline: none; }
.ck-b[data-a="no"] { background: transparent; color: #302C80; }
.ck-b[data-a="yes"] { background: linear-gradient(90deg, #F8578D, #FF8465); border-color: transparent; color: #FFFFFF; box-shadow: 0 8px 20px -8px rgba(248, 87, 141, .7); }
.ck-b[data-a="yes"]:hover { filter: brightness(1.05); }
.ck-b:focus-visible { outline: 2px solid #4F48D6; outline-offset: 2px; }

/* ---------- V14 : « Ils parlent de nous », cartes alignées ---------- */
.pr-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.pr-card { position: relative; gap: 24px; padding: 28px 28px 0; border-radius: 18px; background: #FFFFFF; border: 1px solid #E6E5F2; overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.pr-card:hover { border-color: #FF94C2; box-shadow: 0 20px 40px -24px rgba(48, 44, 128, .35); }
.pr-card figcaption { order: -1; gap: 10px; padding-right: 48px; }
.pr-card strong { font-size: 20px; line-height: 1.25; letter-spacing: -.01em; }
.pr-card figcaption span { font-size: 14px; line-height: 1.55; }
a.pr-paper, .pr-card:nth-child(2) .pr-paper, .pr-card:nth-child(3) .pr-paper { position: static; margin: auto -28px 0; padding: 24px 24px 0; height: 230px; display: flex; align-items: flex-end; justify-content: center; border-radius: 0; background: radial-gradient(120% 90% at 50% 110%, rgba(248, 87, 141, .16), rgba(255, 132, 101, .08) 45%, rgba(247, 246, 252, 0) 75%), #FBF8F7; box-shadow: none; transform: none; overflow: hidden; }
.pr-paper img { width: auto; max-width: 100%; height: auto; max-height: 100%; object-fit: contain; object-position: bottom; background: #F4F1E8; padding: 8px 8px 0; border-radius: 6px 6px 0 0; box-shadow: 0 -2px 30px -10px rgba(48, 44, 128, .35); transform: translateY(8px); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.pr-card:hover .pr-paper img, .pr-card:hover .pr-paper { transform: none; }
.pr-card .pr-zoom, a.pr-paper:hover .pr-zoom, a.pr-paper:focus-visible .pr-zoom { position: absolute; top: 24px; right: 24px; bottom: auto; width: 36px; height: 36px; padding: 0; border-radius: 10px; font-size: 0; opacity: 1; transform: none; background: #F2F0FB url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234F48D6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-6 6M4 20l6-6'/%3E%3C/svg%3E") center / 16px no-repeat; transition: background-color .2s; }
.pr-card:hover .pr-zoom { background-color: #FFE3EE; }
a.pr-paper:focus-visible { outline: none; }
a.pr-paper:focus-visible .pr-zoom { outline: 2px solid #4F48D6; outline-offset: 2px; }
@media (max-width: 1000px) { .pr-grid { grid-template-columns: minmax(0, 1fr); } a.pr-paper, .pr-card:nth-child(2) .pr-paper, .pr-card:nth-child(3) .pr-paper { height: 220px; } }

/* Polymage · animations de l'accueil */
.sec-head.has-art { position: relative; }
.sec-art { position: absolute; top: -24px; right: 0; width: min(46%, 560px); height: calc(100% + 24px); pointer-events: none; }
.has-fond { position: relative; overflow: hidden; }
.sec-fond { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.has-fond > .container { position: relative; z-index: 1; }
@media (max-width: 1100px) { .sec-art { display: none; } }

/* frise : fondu de gauche à droite */
.reveal-lr { -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 var(--m, 0%), transparent calc(var(--m, 0%) + 18%)); mask-image: linear-gradient(90deg, #000 0%, #000 var(--m, 0%), transparent calc(var(--m, 0%) + 18%)); }
@property --m { syntax: "<percentage>"; inherits: false; initial-value: 0%; }
.reveal-lr { --m: -18%; transition: --m 1.8s cubic-bezier(.45, 0, .2, 1); }
.reveal-lr.is-in { --m: 100%; }
.reveal-lr .p-step { opacity: .0; transform: translateX(-12px); transition: opacity .7s ease, transform .7s ease; }
.reveal-lr.is-in .p-step { opacity: 1; transform: none; }
.reveal-lr.is-in .p-step:nth-child(2) { transition-delay: .25s; } .reveal-lr.is-in .p-step:nth-child(3) { transition-delay: .5s; }
.reveal-lr.is-in .p-step:nth-child(4) { transition-delay: .75s; } .reveal-lr.is-in .p-step:nth-child(5) { transition-delay: 1s; }
.reveal-lr.is-in .p-step .dot { animation: dotPop .6s cubic-bezier(.2, .9, .3, 1.4) both; animation-delay: inherit; }
@keyframes dotPop { from { transform: scale(.6); } }
.kf b, .mk-stat b { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .reveal-lr, .reveal-lr .p-step { -webkit-mask-image: none; mask-image: none; opacity: 1; transform: none; transition: none; } }
.sec-head.has-art .sec-art.is-map { top: -40px; height: calc(100% + 120px); width: min(42%, 480px); }

/* ---------- V14 : Aides façon Stripe ---------- */
.fi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.fi-card { display: flex; flex-direction: column; border-radius: 18px; background: #FFFFFF; border: 1px solid #ECEAF5; overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 1px 2px rgba(48, 44, 128, .04), 0 18px 40px -30px rgba(48, 44, 128, .35); transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s; }
.fi-card:hover { transform: translateY(-4px); box-shadow: 0 1px 2px rgba(48, 44, 128, .04), 0 30px 50px -28px rgba(48, 44, 128, .45); }
.fi-vis { position: relative; height: 232px; padding: 22px 0 0 22px; overflow: hidden; display: flex; align-items: flex-end; }
.fi-vis.t-rose { background: radial-gradient(120% 120% at 100% 0%, #FFD3E3 0%, #FBF4FA 55%, #F7F6FC 100%); }
.fi-vis.t-corail { background: radial-gradient(120% 120% at 100% 0%, #FFDCCF 0%, #FCF6F3 55%, #F7F6FC 100%); }
.fi-vis.t-violet { background: radial-gradient(120% 120% at 100% 0%, #DCD6FF 0%, #F5F3FD 55%, #F7F6FC 100%); }
.fi-vis.t-lilas { background: radial-gradient(120% 120% at 100% 0%, #E9D9FF 0%, #F8F4FD 55%, #F7F6FC 100%); }
.mu { width: 100%; height: 100%; background: #FFFFFF; border-radius: 12px 0 0 0; box-shadow: 0 10px 30px -12px rgba(48, 44, 128, .3); padding: 14px 16px; display: flex; flex-direction: column; gap: 7px; font-size: 12.5px; color: #333E48; transform: translateY(6px); transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.fi-card:hover .mu { transform: none; }
.mu-l { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #8A87B5; }
.mu-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; border: 1px solid #EEEDF6; color: #6B7280; }
.mu-row i { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid #C9C7E8; flex: none; }
.mu-row.ok { border-color: #F8578D; color: #302C80; font-weight: 600; } .mu-row.ok i { border: 0; background: #F8578D url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/10px no-repeat; }
.mu-pill { align-self: flex-start; margin-top: 2px; padding: 4px 10px; border-radius: 999px; background: linear-gradient(90deg, #F8578D, #FF8465); color: #FFFFFF; font-weight: 600; font-size: 11.5px; }
.mu-chip { align-self: flex-start; padding: 6px 10px; border-radius: 8px; font-weight: 600; font-size: 12px; }
.mu-chip.c1 { background: #F1EEFF; color: #4F48D6; } .mu-chip.c2 { background: #FFF1EA; color: #C2502F; margin-left: 18px; } .mu-chip.c3 { background: #FFEAF1; color: #C9416F; margin-left: 36px; }
.mu-foot { margin-top: auto; font-size: 11.5px; color: #8A87B5; }
.mu-bar { display: flex; height: 8px; border-radius: 999px; background: #EEEDF6; overflow: hidden; margin-top: 6px; }
.mu-bar b { display: block; background: linear-gradient(90deg, #7A63F0, #A78BFF); } .mu-bar b.b2 { background: linear-gradient(90deg, #F8578D, #FF8465); }
.mu-ticks { display: flex; font-size: 11px; color: #8A87B5; } .mu-ticks { position: relative; height: 14px; } .mu-ticks span { position: absolute; transform: translateX(-50%); } .mu-ticks span:first-child { left: 35%; } .mu-ticks span:last-child { left: 50%; margin-left: 14px; }
.mu-two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; }
.mu-two div { display: flex; flex-direction: column; padding: 8px 10px; border-radius: 8px; background: #F7F6FC; }
.mu-two small { font-size: 10.5px; color: #8A87B5; } .mu-two strong { font-size: 20px; color: #302C80; font-weight: 600; }
.mu-two div:last-child strong { background: linear-gradient(90deg, #F8578D, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mu-big { font-size: 28px; font-weight: 600; letter-spacing: -.02em; color: #302C80; line-height: 1.1; }
.mu-kv { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #EEEDF6; } .mu-kv span { color: #8A87B5; } .mu-kv b { color: #302C80; }
.fi-body { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 24px; flex: 1; }
.fi-body h3 { margin: 0; font-size: 19px; line-height: 1.25; font-weight: 600; color: #302C80; letter-spacing: -.01em; }
.fi-body p { margin: 0; font-size: 14.5px; line-height: 1.55; color: #4B5563; }
.fi-body ul { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.fi-body li { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: #4B5563; }
.fi-body li svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.fi-body em { margin-top: auto; padding-top: 8px; font-style: normal; font-weight: 600; font-size: 14.5px; color: #C9416F; }
@media (max-width: 1100px) { .fi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fi-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- V14 : Agences ---------- */
.ag-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ag-card { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 6px; padding: 28px; border-radius: 18px; background: linear-gradient(160deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .03)); border: 1px solid rgba(255, 255, 255, .14); transition: border-color .3s, transform .3s; }
.ag-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, #7A63F0, #F8578D, #FF8465); opacity: .8; }
.ag-card:hover { border-color: rgba(255, 148, 194, .6); transform: translateY(-3px); }
.ag-lines { position: absolute; right: -40px; top: -40px; width: 220px; height: 220px; border-radius: 50%; pointer-events: none; background: repeating-radial-gradient(circle at center, rgba(201, 199, 242, .16) 0 1px, transparent 1px 12px); -webkit-mask-image: radial-gradient(circle, #000 30%, transparent 70%); mask-image: radial-gradient(circle, #000 30%, transparent 70%); transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.ag-card:hover .ag-lines { transform: scale(1.15); }
.ag-tag { position: relative; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #FF94C2; }
.ag-card h3 { position: relative; margin: 0; min-height: 2.4em; font-size: 22px; line-height: 1.2; font-weight: 600; color: #FFFFFF; letter-spacing: -.01em; }
.ag-tel { position: relative; margin-top: 10px; font-size: 30px; font-weight: 600; letter-spacing: .01em; color: #FFFFFF; text-decoration: none; font-variant-numeric: tabular-nums; }
.ag-tel:hover { color: #FF94C2; }
.ag-cta { position: relative; margin-top: 18px; }
@media (max-width: 1000px) { .ag-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- V14 : Presse, article entier et carte qui s'agrandit ---------- */
.pr-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.pr-card { position: relative; display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 28px 28px 0; border-radius: 18px; background: #FFFFFF; border: 1px solid #E6E5F2; overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.pr-card:hover { border-color: #FF94C2; box-shadow: 0 20px 40px -24px rgba(48, 44, 128, .35); }
.pr-card figcaption { display: flex; flex-direction: column; gap: 10px; padding-right: 48px; }
.pr-card strong { font-size: 20px; line-height: 1.25; letter-spacing: -.01em; color: #302C80; font-weight: 600; }
.pr-card figcaption span { font-size: 14px; line-height: 1.55; color: #5B6170; }
.pr-open { position: absolute; top: 24px; right: 24px; width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 10px; background: #F2F0FB; color: #4F48D6; cursor: pointer; transition: background .2s, color .2s; }
.pr-open svg { width: 16px; height: 16px; }
.pr-card:hover .pr-open, .pr-open:focus-visible { background: #4F48D6; color: #FFFFFF; }
.pr-open:focus-visible { outline: 2px solid #F8578D; outline-offset: 2px; }
.pr-card .pr-paper { margin: auto -28px 0; padding: 22px; height: 250px; display: flex; align-items: center; justify-content: center; background: radial-gradient(120% 100% at 50% 110%, rgba(248, 87, 141, .16), rgba(255, 132, 101, .07) 45%, rgba(247, 246, 252, 0) 75%), #FBF8F7; transform: none; box-shadow: none; border-radius: 0; }
.pr-card .pr-paper img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; padding: 6px; background: #F4F1E8; border-radius: 4px; box-shadow: 0 14px 30px -14px rgba(48, 44, 128, .45); transform: none; transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.pr-card:hover .pr-paper img { transform: translateY(-3px) scale(1.02); }
/* état agrandi */
.pr-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 24px; background: rgba(27, 24, 80, .45); -webkit-backdrop-filter: blur(1.5px); backdrop-filter: blur(1.5px); opacity: 0; transition: opacity .3s ease; }
.pr-modal.open { opacity: 1; }
.pr-box { position: relative; width: min(1080px, 100%); max-height: calc(100vh - 48px); overflow: auto; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px; padding: 40px; border-radius: 22px; background: #FFFFFF; box-shadow: 0 40px 100px -30px rgba(20, 18, 70, .6); transform: translateY(16px) scale(.97); transition: transform .4s cubic-bezier(.2, .8, .2, 1); }
.pr-modal.open .pr-box { transform: none; }
.pr-box .pr-txt { display: flex; flex-direction: column; gap: 14px; }
.pr-box .pr-txt small { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #C9416F; }
.pr-box h3 { margin: 0; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; letter-spacing: -.02em; color: #302C80; font-weight: 600; }
.pr-box p { margin: 0; font-size: 16px; line-height: 1.6; color: #4B5563; }
.pr-box .pr-big { border-radius: 14px; padding: 24px; display: grid; place-items: center; background: radial-gradient(120% 100% at 50% 110%, rgba(248, 87, 141, .2), rgba(255, 132, 101, .08) 45%, rgba(247, 246, 252, 0) 75%), #FBF8F7; }
.pr-box .pr-big img { max-width: 100%; height: auto; padding: 8px; background: #F4F1E8; border-radius: 4px; box-shadow: 0 20px 40px -18px rgba(48, 44, 128, .5); }
.pr-close { position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border: 0; border-radius: 10px; background: #F2F0FB; color: #4F48D6; font-size: 22px; line-height: 1; cursor: pointer; }
.pr-close:hover { background: #4F48D6; color: #FFFFFF; } .pr-close:focus-visible { outline: 2px solid #F8578D; outline-offset: 2px; }
body.pr-lock { overflow: hidden; }
@media (max-width: 1000px) { .pr-grid { grid-template-columns: minmax(0, 1fr); } .pr-box { grid-template-columns: minmax(0, 1fr); padding: 28px 22px; } }
@media (prefers-reduced-motion: reduce) { .pr-modal, .pr-box { transition: none; } }

/* ---------- V15 : fiche signalétique et animations légères ---------- */
.fs-link { margin-top: 14px; }
/* trois niveaux de boutons : plein, contour, texte avec › (même style que « Découvrir ») */
.btn-link { display: inline-flex; align-items: center; gap: 6px; min-height: 0; padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 600; color: #C9416F !important; background: rgba(248, 87, 141, .1); border: 1px solid rgba(248, 87, 141, .32); }
.btn-link:hover { background: linear-gradient(120deg, #F8578D, #FF8465); color: #FFFFFF !important; border-color: transparent; }
.section-dark .btn-link, .hero .btn-link, .p-hero .btn-link, .tx-section .btn-link { color: #FFB9D7 !important; background: rgba(248, 87, 141, .16); border-color: rgba(255, 148, 194, .4); }
.life .rv { transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--rd, 0s); }
.life .rv:not(.in) { opacity: 0; transform: translateY(22px); }
.life .mu-bar b { transform-origin: 0 50%; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1) .5s; }
.life .fi-card.rv:not(.in) .mu-bar b { transform: scaleX(0); }
.life .fi-card .mu-pill, .life .fi-card .mu-row.ok { transition: opacity .5s ease .9s, transform .5s ease .9s; }
.life .fi-card.rv:not(.in) .mu-pill { opacity: 0; transform: translateY(6px); }
.ag-lines { animation: agBreath 7s ease-in-out infinite; }
.ag-card:nth-child(2) .ag-lines { animation-delay: -2.3s; } .ag-card:nth-child(3) .ag-lines { animation-delay: -4.6s; }
@keyframes agBreath { 50% { transform: scale(1.12); opacity: .7; } }
.life .fs-card .dpe { transition: transform .6s cubic-bezier(.2, .9, .3, 1.4), opacity .6s; }
.life .fs-card .fs-arrow { display: inline-block; transition: transform .6s ease .35s, opacity .6s ease .35s; }
.life .fs-labels > div:last-child .dpe { transition-delay: .7s; }
.life .fs-card.rv:not(.in) .dpe { transform: scale(.6); opacity: 0; }
.life .fs-card.rv:not(.in) .fs-arrow { transform: translateX(-12px); opacity: 0; }
.life .fs-card.in .fs-arrow { animation: fsNudge 2.4s ease-in-out 1.6s infinite; }
@keyframes fsNudge { 50% { transform: translateX(4px); } }
.life .fs-works li { transition: opacity .5s ease, transform .5s ease; }
.life .fs-card.rv:not(.in) .fs-works li { opacity: 0; transform: translateY(8px); }
.life .fs-works li:nth-child(2) { transition-delay: .1s; } .life .fs-works li:nth-child(3) { transition-delay: .2s; } .life .fs-works li:nth-child(4) { transition-delay: .3s; }
@media (prefers-reduced-motion: reduce) { .life .rv, .life .rv * { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; } .ag-lines { animation: none; } }
.ag-card .more, .fs-card .more { color: #FFB9D7 !important; background: rgba(248, 87, 141, .16); border-color: rgba(255, 148, 194, .4); }
.ag-card .more:hover, .fs-card .more:hover { color: #FFFFFF !important; background: linear-gradient(120deg, #F8578D, #FF8465); border-color: transparent; }

/* ---------- V15 : halos doux en mouvement lent ---------- */
.has-halo { position: relative; isolation: isolate; overflow: hidden; }
.st-halo { position: absolute; inset: 0; z-index: -1; pointer-events: none; filter: blur(70px); }
.st-halo i { position: absolute; border-radius: 50%; animation: float 24s ease-in-out infinite alternate; }
.st-halo i:nth-child(1) { width: 36vw; height: 36vw; right: -10vw; top: -12vw; background: radial-gradient(circle, rgba(248, 87, 141, .22), rgba(248, 87, 141, 0) 65%); }
.st-halo i:nth-child(2) { width: 28vw; height: 28vw; left: -10vw; bottom: -12vw; background: radial-gradient(circle, rgba(79, 72, 214, .18), rgba(79, 72, 214, 0) 65%); animation-duration: 30s; }
.st-halo.alt i:nth-child(1) { right: auto; left: -8vw; top: 30%; background: radial-gradient(circle, rgba(255, 132, 101, .2), rgba(255, 132, 101, 0) 65%); }
.st-halo.alt i:nth-child(2) { left: auto; right: -8vw; bottom: -14vw; background: radial-gradient(circle, rgba(248, 87, 141, .2), rgba(248, 87, 141, 0) 65%); }
.section-dark .st-halo i, #implantations .st-halo i, #simulation .st-halo i { opacity: 1.6; }
@media (prefers-reduced-motion: reduce) { .st-halo i { animation: none; } }

/* ---------- V15 : menu façon Stripe, un seul bloc avec l'en-tête ---------- */
.brand .brand-dark { display: none; }
@media (min-width: 1600px) {
  .site-header.has-morph .header-inner { position: static; }
  .site-header.has-morph > .container { position: relative; z-index: 2; }
  .dd-sheet { position: absolute; left: 0; right: 0; top: 100%; height: 0; z-index: 1; background: #FFFFFF; box-shadow: 0 40px 80px -30px rgba(20, 18, 70, .45); border-top: 1px solid #ECEAF5; opacity: 0; pointer-events: none; transition: height .38s cubic-bezier(.3, .8, .25, 1), opacity .2s ease; }
  .site-header.st-open .dd-sheet { opacity: 1; }
  body.premium .site-header.has-morph.st-open { background: #FFFFFF !important; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .site-header.st-open .brand .brand-light { display: none; } .site-header.st-open .brand .brand-dark { display: block; }
  body.premium .site-header.st-open .nav-v3 > a, body.premium .site-header.st-open .nav-v3 .nav-trigger { color: #6B7280; background: none; box-shadow: none; }
  body.premium .site-header.st-open .nav-v3 .nav-trigger[aria-expanded="true"] { color: #302C80; }
  body.premium .site-header.st-open .icon-btn, body.premium .site-header.st-open .burger { color: #302C80; border-color: #E6E3F1; background: #F7F6FC; }
  body.premium .site-header.st-open .header-cta .btn-outline { color: #302C80; border-color: #D9D6EC; }
  body.premium .site-header.has-morph .nav-v3 .dropdown, body.premium .site-header.has-morph .nav-v3 .dropdown.narrow {
    position: absolute; top: 100%; left: 50% !important; right: auto; width: min(1200px, calc(100vw - 48px)); transform: translateX(-50%); margin: 0; z-index: 3;
    padding: 36px 0 32px; border-radius: 0; background: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none;
    transition: opacity .2s ease; }
  .site-header.has-morph .nav-v3 .dropdown .dd-grid.profiles { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 0; row-gap: 6px;
    background-image: linear-gradient(#ECEAF5, #ECEAF5), linear-gradient(#ECEAF5, #ECEAF5); background-size: 1px 100%; background-repeat: no-repeat; background-position: 33.333% 0, 66.666% 0; }
  .site-header.has-morph .nav-v3 .dropdown .dd-grid.profiles .dd-link { margin: 0 24px; }
  .site-header.has-morph .nav-v3 .dropdown .dd-foot { margin: 22px 24px 0; }
  .site-header.has-morph .nav-v3 .dropdown.open.from-r { animation: ddFromR .34s cubic-bezier(.3, .8, .25, 1); }
  .site-header.has-morph .nav-v3 .dropdown.open.from-l { animation: ddFromL .34s cubic-bezier(.3, .8, .25, 1); }
  @keyframes ddFromR { from { opacity: 0; transform: translateX(calc(-50% + 50px)); } to { transform: translateX(-50%); } }
  @keyframes ddFromL { from { opacity: 0; transform: translateX(calc(-50% - 50px)); } to { transform: translateX(-50%); } }
  .nav-v3 > a, .nav-v3 .nav-trigger { transition: opacity .2s ease, color .2s ease, background .2s ease; }
  .nav-v3:hover > a:not(:hover), .nav-v3:hover > .nav-item:not(:hover) > .nav-trigger { opacity: .62; }
  .nav-v3 .dd-link .icon { transition: transform .25s cubic-bezier(.3, .8, .25, 1); }
  .nav-v3 .dd-link:hover .icon { transform: translateY(-2px) scale(1.06); }
}
@media (prefers-reduced-motion: reduce) { .dd-sheet { transition: none; } }

/* ---------- V16 : menu en bleu Polymage, opacité 97 % ---------- */
@media (min-width: 1600px) {
  body.premium .site-header.has-morph.st-open { background: rgba(38, 34, 110, 1) !important; -webkit-backdrop-filter: blur(22px) saturate(1.5) !important; backdrop-filter: blur(22px) saturate(1.5) !important; }
  .dd-sheet { background: rgba(38, 34, 110, 1); -webkit-backdrop-filter: blur(22px) saturate(1.5); backdrop-filter: blur(22px) saturate(1.5); border-top-color: rgba(255, 255, 255, .1); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55); }
  .site-header.st-open .brand .brand-light { display: block; } .site-header.st-open .brand .brand-dark { display: none; }
  body.premium .site-header.st-open .nav-v3 > a, body.premium .site-header.st-open .nav-v3 .nav-trigger { color: #C9C7F2; }
  body.premium .site-header.st-open .nav-v3 .nav-trigger[aria-expanded="true"] { color: #FFFFFF; }
  body.premium .site-header.st-open .icon-btn, body.premium .site-header.st-open .burger { color: #FFFFFF; border-color: rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .08); }
  body.premium .site-header.st-open .header-cta .btn-outline { color: #FFFFFF; border-color: rgba(255, 255, 255, .4); }
  body.premium .site-header .nav-v3 .dropdown { --marine: #FFFFFF; --ink: #FFFFFF; --muted: #C9C7F2; --subtle: #C9C7F2; color: #FFFFFF; }
  body.premium .site-header .nav-v3 .dropdown .dd-link, body.premium .site-header .nav-v3 .dropdown .dd-link strong { color: #FFFFFF; }
  body.premium .site-header .nav-v3 .dropdown .dd-link small, body.premium .site-header .nav-v3 .dropdown .dd-foot { color: #C9C7F2; }
  body.premium .site-header .nav-v3 .dropdown .dd-link:hover { background: rgba(255, 255, 255, .08); }
  body.premium .site-header .nav-v3 .dropdown .dd-foot { border-top-color: rgba(255, 255, 255, .14); }
  body.premium .site-header .nav-v3 .dropdown .dd-foot a { color: #FF94C2; }
  .site-header.has-morph .nav-v3 .dropdown .dd-grid.profiles { background-image: linear-gradient(rgba(255,255,255,.14), rgba(255,255,255,.14)), linear-gradient(rgba(255,255,255,.14), rgba(255,255,255,.14)); }
  body.premium .site-header .nav-v3 .dropdown .icon { background: rgba(255, 255, 255, .1); color: #FFB9D7; }
}

/* ---------- V16 : bouton du simulateur de prix (pages régions), visible au repos ---------- */
body.premium .section-soft .est-out .btn.btn-primary, body.premium .est-out .btn.btn-primary { background: #FFFFFF; color: #302C80; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); }
body.premium .section-soft .est-out .btn.btn-primary:hover, body.premium .est-out .btn.btn-primary:hover { background: #4F48D6; color: #FFFFFF; }
/* V17 : agence de la région mise en avant */
.ag-card.is-here { border-color: rgba(255, 148, 194, .55); background: linear-gradient(160deg, rgba(248, 87, 141, .16), rgba(255, 255, 255, .04)); }
.ag-card.is-here::before { opacity: 1; height: 3px; }
.fi-grid.fi-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) { .fi-grid.fi-3 { grid-template-columns: minmax(0, 1fr); max-width: 520px; } }
.fi-grid + .note { margin-top: 28px !important; }
/* V18 : schémas géothermie en image */
.geo-scroll-in .geo-img { display: block; width: 100%; height: auto; background: #FFFFFF; }
.geo-scroll-in a { display: block; cursor: zoom-in; }
/* schémas : pleine largeur, agrandissement au clic */
/* V18 : logos de qualification cliquables */
a.cq-link { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 0; border-radius: inherit; }
a.cq-link img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; transition: transform .2s; }
a.cq-link:hover img { transform: scale(1.04); }
/* V19 : portraits sur fond blanc avec halos de couleur, façon Stripe */
body.premium .portrait.has-photo, .portrait.has-photo { position: relative; isolation: isolate; background: #FFFFFF; }
.portrait.has-photo img { position: relative; z-index: 1; mix-blend-mode: normal; filter: grayscale(1) contrast(1.04); }
.pt-halo { position: absolute; inset: -15%; z-index: 0; filter: blur(42px); opacity: 0; transition: opacity .8s ease, transform 1.4s cubic-bezier(.2, .7, .2, 1); transform: translate3d(var(--hx, 0), var(--hy, 0), 0); }
.pt-halo i { position: absolute; width: 58%; height: 58%; border-radius: 50%; animation: ptDrift 16s ease-in-out infinite alternate; }
.pt-halo i:nth-child(1) { left: 0; top: 34%; }
.pt-halo i:nth-child(2) { left: 40%; top: 2%; animation-duration: 19s; animation-delay: -6s; }
.pt-halo i:nth-child(3) { left: 46%; top: 50%; animation-duration: 22s; animation-delay: -11s; }
.member:nth-child(1) .pt-halo i { background: #7A8CFF; }
.member:nth-child(2) .pt-halo i { background: #FF9A6B; }
@keyframes ptDrift { 0% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(8%, -6%, 0) scale(1.1); } 100% { transform: translate3d(-6%, 5%, 0) scale(.95); } }
.member:hover .pt-halo { opacity: .3; }
@media (prefers-reduced-motion: reduce) { .pt-halo, .pt-halo i { animation: none; transition: none; } }
@media (max-width: 760px) { .geo-scroll-in .geo-svg { width: 940px; } }
/* V20 : diagnostics et études sur une page */
@media (min-width: 1001px) { .p-services > a.ps-wide { grid-column: span 2; } }
.dg-jump { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 8px; }
.dg-chip { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; font-size: 14px; font-weight: 600; background: rgba(255, 255, 255, .1); color: #FFFFFF; border: 1px solid rgba(255, 255, 255, .25); text-decoration: none; transition: border-color .2s, background .2s; }
.dg-chip:hover { border-color: #FF94C2; background: rgba(248, 87, 141, .16); color: #FFFFFF; }
/* V21 : chapitres des pages générales */
.of-chap { position: relative; overflow: hidden; }
.of-chap-in { display: flex; gap: 32px; align-items: flex-start; max-width: 900px; }
.of-chap-in > div { display: flex; flex-direction: column; gap: 14px; }
.of-big { font-size: clamp(64px, 9vw, 120px); line-height: .85; font-weight: 700; letter-spacing: -.04em; background: linear-gradient(160deg, #FFB9D7, #F8578D 50%, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (max-width: 600px) { .of-chap-in { flex-direction: column; gap: 8px; } }

/* V22 : listes déroulantes lisibles sous Windows (options sur fond blanc) */
select option, select optgroup { color: #302C80; background-color: #FFFFFF; }
button[type=submit].is-sending { opacity: .75; cursor: progress; }
/* V23 : menu mobile plein écran, page figée derrière, en-tête toujours en haut */
body.mm-locked { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
@media (max-width: 1599px) {
  .site-header.mm-fixed { position: fixed; top: 0; left: 0; right: 0; z-index: 61; padding-top: env(safe-area-inset-top, 0px); }
  body.premium .site-header.mm-fixed { background: #2A2675; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: 0 1px 0 rgba(255, 255, 255, .1); }
  .mobile-menu { position: fixed; left: 0; right: 0; bottom: 0; top: calc(var(--menu-top, 72px) + env(safe-area-inset-top, 0px)); z-index: 60; height: auto; }
  .mobile-menu.open { display: flex; animation: mmIn .22s ease-out both; }
  @keyframes mmIn { from { opacity: 0; transform: translate3d(0, -8px, 0); } to { opacity: 1; transform: none; } }
  .mm-scroll { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .mm-toggle, .mm-link, .mm-panel a, .burger { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
  .mm-toggle .caret { transition: transform .25s ease; }
  .mm-panel:not([hidden]) { animation: mmPanel .22s ease-out both; }
  @keyframes mmPanel { from { opacity: 0; transform: translate3d(0, -4px, 0); } to { opacity: 1; transform: none; } }
  .mm-panel a { min-height: 44px; display: flex; align-items: center; }
  .mm-cta { padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .mobile-menu.open, .mm-panel:not([hidden]) { animation: none; } }
/* V23 : en-têtes mobiles compacts, visuel en fond derrière le texte */
@media (max-width: 1000px) {
  body .p-hero .p-bld { inset: 0; width: 100%; height: 100%; opacity: .5;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.55) 45%, transparent 92%); mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.55) 45%, transparent 92%); }
  .p-bld .p-bld-in img { object-position: 50% 0%; }
  body .p-hero .p-halos { height: 100%; }
  body .p-hero .p-hero-grid .p-hero-copy { padding-top: 0; }
  .p-hero .p-hero-grid { padding-block: 56px 40px; }
  .p-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(38, 34, 110, .1) 0%, rgba(38, 34, 110, .55) 55%, rgba(38, 34, 110, .2) 100%); }
}
@media (max-width: 900px) {
  .hero-band, .hero.page .hero-band { top: -20px; right: -55%; left: auto; width: 110%; height: calc(100% + 40px); transform: skewX(-14deg); opacity: .32 !important; }
  .hero-grid, .hero.page .hero-grid { padding-block: 48px 48px; gap: 28px; }
}
/* V24 : guides centrés, liens « more » lisibles sur fond sombre */
.guides-2 { margin-inline: auto; }
#guides .sec-head { max-width: 1200px; margin-inline: auto; }
body.premium section:not(.section-soft):not(.p-light) .more:not(.ag-cta) { color: #FFB9D7 !important; background: rgba(248, 87, 141, .14); border-color: rgba(255, 148, 194, .38); }
body.premium section:not(.section-soft):not(.p-light) .more:not(.ag-cta):hover { color: #FFFFFF; background: linear-gradient(120deg, #F8578D, #FF8465); border-color: transparent; }
/* V24 : motifs animés dans l'espace libre à droite des titres (pages intérieures) */
.sec-head.side-art .sec-art { width: var(--art-w, 42%); top: -36px; height: calc(100% + 72px); min-height: 220px; opacity: .9; }
.sec-head.side-art .sec-art.is-map { width: min(var(--art-w, 42%), 420px); }
@media (max-width: 1099px) { .sec-head.side-art .sec-art { display: none; } }
/* V25 : schémas géothermie lisibles sur téléphone, agrandis au toucher */
@media (max-width: 900px) {
  .geo-scroll { margin-left: 0 !important; margin-right: 0 !important; }
  .geo-scroll-in { overflow: hidden !important; border-radius: 14px !important; }
  .geo-scroll-in .geo-img { width: 100% !important; max-width: 100% !important; }
  .geo-scroll figcaption { padding: 0 !important; }
  .geo-scroll figcaption::before { content: "Touchez le schéma pour l’agrandir. " !important; }
}
.geo-scroll-in a { position: relative; }
.geo-scroll-in a::after { content: ""; position: absolute; right: 12px; top: 12px; width: 36px; height: 36px; border-radius: 10px; background: rgba(48, 44, 128, .85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-6 6M4 20l6-6'/%3E%3C/svg%3E") center / 18px no-repeat; box-shadow: 0 6px 18px -6px rgba(0,0,0,.4); }
.zm { position: fixed; inset: 0; z-index: 200; background: rgba(20, 18, 60, .92); display: flex; flex-direction: column; opacity: 0; transition: opacity .25s; }
.zm.open { opacity: 1; }
.zm-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: calc(10px + env(safe-area-inset-top, 0px)) 16px 10px; color: #FFFFFF; font-size: 14px; }
.zm-close { width: 44px; height: 44px; border-radius: 22px; border: 0; background: rgba(255, 255, 255, .14); color: #FFFFFF; font-size: 22px; cursor: pointer; }
.zm-scroll { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; display: flex; }
.zm-scroll img { margin: auto; max-width: none; width: min(1700px, 220vw); height: auto; background: #FFFFFF; }
@media (min-width: 901px) { .zm-scroll img { width: min(1600px, 94vw); } }
body.zm-lock { overflow: hidden; }
/* V25 : chiffres clés qui ne débordent plus */
.geo-kpis { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important; }
.geo-kpi { min-width: 0; }
.geo-kpi b { font-size: clamp(22px, 2.2vw, 30px) !important; white-space: nowrap; overflow-wrap: normal; }
.sec-head.side-art .sec-art { top: -56px; }
.guides-3 { max-width: 1200px; margin-inline: auto; }
@media (max-width: 900px) { .guides-3 { grid-template-columns: minmax(0, 1fr); } }

/* Simulateur d'obligations : mobile (1.9.8) */
@media (max-width: 640px) {
  .sim .seg { display: grid; grid-template-columns: 1fr 1fr; width: 100%; border-radius: 14px; gap: 4px; }
  .sim .seg button { border-radius: 10px; padding: 8px 10px; min-height: 48px; line-height: 1.25; white-space: normal; text-align: center; font-size: 13.5px; }
  section#simulateur { padding-top: 20px !important; }
  #audit-entreprises { padding-bottom: 40px; }
  #simulateur, #simulateur-copro, #simulateur-tertiaire { scroll-margin-top: 84px; }
  .sim .oblig-top { flex-wrap: nowrap; align-items: flex-start; }
  .sim .oblig-top .badge { flex: none; }
}

/* V27 · Expertises : quatre chapitres numérotés, méthode unique, mission 2 + 2 */
#energies-renouvelables .notion .of-num { display: block; font-size: 30px; line-height: 1; font-weight: 700; letter-spacing: -.02em; margin: 0 0 4px; background: var(--gradient-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.enr-steps-l { margin: 36px 0 0; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--subtle); }
.enr-steps-l + .enr-steps { margin-top: 12px; }
.geo-case { margin-top: 40px; padding: clamp(22px, 3vw, 32px); border-radius: 18px; background: linear-gradient(135deg, #302C80 0%, #4F48D6 100%); color: #fff; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 32px; align-items: center; box-shadow: var(--shadow-soft); }
.geo-case .ui-label { grid-column: 1 / -1; color: #FFB9D7; }
.geo-case-k { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.geo-case-k strong { display: block; font-size: clamp(26px, 3vw, 36px); line-height: 1.05; font-weight: 700; letter-spacing: -.02em; background: linear-gradient(90deg, #FFB9D7, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
.geo-case-k span { display: block; margin-top: 6px; font-size: 14px; line-height: 1.45; color: var(--on-dark-muted); }
.geo-case .btn-primary { background: #fff; color: var(--marine); white-space: nowrap; }
@media (max-width: 900px) { .geo-case { grid-template-columns: minmax(0, 1fr); } .geo-case .btn-primary { justify-self: start; } }
@media (max-width: 560px) { .geo-case-k { grid-template-columns: minmax(0, 1fr); gap: 16px; } }

.mis-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; margin-top: 8px; align-items: stretch; }
.mis-duo { position: relative; overflow: hidden; border-radius: 20px; padding: clamp(24px, 3vw, 36px); background: linear-gradient(150deg, #302C80 0%, #4F48D6 70%, #7B4FC9 100%); color: #fff; display: flex; flex-direction: column; gap: 18px; box-shadow: var(--shadow-soft); }
.mis-duo::after { content: ""; position: absolute; right: -80px; top: -80px; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle, rgba(248, 87, 141, .45), rgba(248, 87, 141, 0) 70%); pointer-events: none; }
.mis-duo .ui-label { color: #FFB9D7; position: relative; }
.mis-big { margin: 0; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; font-weight: 700; letter-spacing: -.02em; position: relative; }
.mis-people { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; position: relative; }
.mis-p { display: flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22); }
.mis-p i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #F8578D, #FF8465); }
.mis-p i svg { width: 18px; height: 18px; color: #fff; }
.mis-p strong { font-size: 15px; font-weight: 600; }
.mis-plus { font-size: 20px; font-weight: 700; color: #FFB9D7; }
.mis-links { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px 18px; position: relative; }
.mis-links a { color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(255, 185, 215, .6); padding-bottom: 2px; }
.mis-links a:hover { color: #FFB9D7; }
.mis-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.mis-steps li { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 6px; padding: 22px 22px 24px; border-radius: 16px; background: #fff; border: 1px solid var(--line); }
.mis-steps li::before { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: var(--gradient-text); transform-origin: left; }
.mis-steps b { font-size: 28px; line-height: 1; font-weight: 700; letter-spacing: -.02em; background: var(--gradient-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mis-steps strong { font-size: 17px; line-height: 1.3; font-weight: 600; color: var(--marine); margin-top: 6px; }
.mis-steps span { font-size: 15px; line-height: 1.55; color: var(--muted); }
@media (max-width: 1000px) { .mis-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .mis-steps { grid-template-columns: minmax(0, 1fr); } }
/* animation : les étapes s'enchaînent, la barre se remplit de l'une à l'autre */
.life .mis-steps.mis-anim li { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1); }
.life .mis-steps.mis-anim li::before { transform: scaleX(0); transition: transform .7s cubic-bezier(.45, 0, .2, 1); }
.life .mis-steps.mis-anim.is-in li { opacity: 1; transform: none; }
.life .mis-steps.mis-anim.is-in li::before { transform: scaleX(1); }
.life .mis-steps.mis-anim.is-in li:nth-child(2), .life .mis-steps.mis-anim.is-in li:nth-child(2)::before { transition-delay: .35s; }
.life .mis-steps.mis-anim.is-in li:nth-child(3), .life .mis-steps.mis-anim.is-in li:nth-child(3)::before { transition-delay: .7s; }
.life .mis-steps.mis-anim.is-in li:nth-child(4), .life .mis-steps.mis-anim.is-in li:nth-child(4)::before { transition-delay: 1.05s; }
.life .mis-people .mis-p { transition: transform .5s cubic-bezier(.2, .7, .2, 1), opacity .5s; }
.life .mis-duo.mis-anim .mis-p { opacity: 0; transform: translateX(-12px); }
.life .mis-duo.mis-anim.is-in .mis-p { opacity: 1; transform: none; }
.life .mis-duo.mis-anim.is-in .mis-p + .mis-plus + .mis-p { transition-delay: .25s; }
@media (prefers-reduced-motion: reduce) { .life .mis-anim li, .life .mis-anim .mis-p { opacity: 1 !important; transform: none !important; } .life .mis-anim li::before { transform: none !important; } }

/* V28 · Expertises : le nom de l'énergie en grand, l'animation à côté */
.xp-chap .sec-head { margin-bottom: 0; min-height: 230px; align-items: center; }
.xp-chap .sec-head > div { max-width: 640px; gap: 14px; }
.xp-word { display: block; font-size: clamp(44px, 6.4vw, 88px); line-height: .98; font-weight: 700; letter-spacing: -.035em; padding-bottom: 4px; background: linear-gradient(160deg, #FFB9D7, #F8578D 50%, #FF8465); -webkit-background-clip: text; background-clip: text; color: transparent; }
.xp-chap .h2 { font-size: clamp(24px, 2.6vw, 32px); }
.xp-chap .sec-head.side-art .sec-art { top: -24px; height: calc(100% + 48px); }

/* vue d'ensemble : la méthode à gauche, les quatre énergies à droite */
.enr-x { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.enr-x-l { display: flex; flex-direction: column; gap: 16px; }
.enr-flow { list-style: none; margin: 12px 0 0; padding: 0; position: relative; display: flex; flex-direction: column; gap: 18px; }
.enr-flow::before { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 2px; background: linear-gradient(#F8578D, #FF8465 60%, rgba(79, 72, 214, .3)); border-radius: 2px; transform-origin: top; }
.enr-flow li { position: relative; display: flex; align-items: center; gap: 16px; font-size: 16px; font-weight: 600; color: var(--marine); }
.enr-flow b { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #F8578D, #FF8465); box-shadow: 0 0 0 5px var(--soft-bg, #FCF3F1); }
.enr-x-r { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.enr-card { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 18px; background: #fff; border: 1px solid var(--line); color: inherit; text-decoration: none; transition: transform .25s cubic-bezier(.2, .7, .2, 1), box-shadow .25s, border-color .25s; }
.enr-card:hover { transform: translateY(-3px); border-color: #FF94C2; box-shadow: var(--shadow-soft); }
.enr-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #302C80, #4F48D6); margin-bottom: 6px; }
.enr-card:nth-child(2) .enr-ic { background: linear-gradient(135deg, #4F48D6, #F8578D); }
.enr-card:nth-child(3) .enr-ic { background: linear-gradient(135deg, #F8578D, #FF8465); }
.enr-card:nth-child(4) .enr-ic { background: linear-gradient(135deg, #FF8465, #FFB36B); }
.enr-ic svg { width: 24px; height: 24px; }
.enr-card strong { font-size: 18px; font-weight: 600; color: var(--marine); }
.enr-card span { font-size: 14.5px; line-height: 1.55; color: var(--muted); }
.enr-card em { margin-top: auto; padding-top: 6px; font-style: normal; font-size: 14px; font-weight: 600; color: var(--rose-text); }
@media (max-width: 1000px) { .enr-x { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
@media (max-width: 560px) { .enr-x-r { grid-template-columns: minmax(0, 1fr); } }
.life .enr-flow.mis-anim::before { transform: scaleY(0); transition: transform 1.2s cubic-bezier(.45, 0, .2, 1); }
.life .enr-flow.mis-anim.is-in::before { transform: scaleY(1); }
.life .enr-flow.mis-anim li { opacity: 0; transform: translateX(-10px); transition: opacity .5s, transform .5s cubic-bezier(.2, .7, .2, 1); }
.life .enr-flow.mis-anim.is-in li { opacity: 1; transform: none; }
.life .enr-flow.mis-anim.is-in li:nth-child(2) { transition-delay: .25s; } .life .enr-flow.mis-anim.is-in li:nth-child(3) { transition-delay: .5s; } .life .enr-flow.mis-anim.is-in li:nth-child(4) { transition-delay: .75s; }

/* cartes « mission » à trois colonnes, sans numéro (gestion de projet) */
.mis-steps.mis-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mis-steps.mis-3 strong { margin-top: 2px; }
@media (max-width: 1000px) { .mis-steps.mis-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .mis-steps.mis-3 { grid-template-columns: minmax(0, 1fr); } }
.life .mis-steps.mis-anim.is-in li:nth-child(5), .life .mis-steps.mis-anim.is-in li:nth-child(5)::before { transition-delay: 1.4s; }
.life .mis-steps.mis-anim.is-in li:nth-child(6), .life .mis-steps.mis-anim.is-in li:nth-child(6)::before { transition-delay: 1.75s; }
/* format « mission » en section sombre (tertiaire) */
.section-dark .mis-steps li, body.premium .section-dark .mis-steps li { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); }
.section-dark .mis-steps strong { color: #fff; }
.section-dark .mis-steps span { color: var(--on-dark-muted); }
.mis-duo .mis-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; position: relative; }
.mis-duo .mis-list li { position: relative; padding-left: 26px; font-size: 15px; line-height: 1.45; color: #E9E7FF; }
.mis-duo .mis-list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: linear-gradient(135deg, #F8578D, #FF8465); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E"); }
.mis-duo .mis-list li::after { content: ""; position: absolute; left: 5px; top: 6px; width: 6px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.mis-right { display: flex; flex-direction: column; gap: 12px; }
.mis-lab { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #FFB9D7; }
.section-soft .mis-lab, .mis-lab.on-light { color: var(--rose-text); }
.mis-right .mis-steps { flex: 1; }

/* partenaires : Polymage au centre, les spécialistes autour */
.pt-hub { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 280px) minmax(0, 1fr); grid-template-rows: auto auto; gap: 20px 72px; align-items: center; }
.pt-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.pt-lines path { fill: none; stroke: rgba(255, 148, 194, .55); stroke-width: 1.4; stroke-dasharray: 5 7; vector-effect: non-scaling-stroke; animation: pt-flow 1.6s linear infinite; }
@keyframes pt-flow { to { stroke-dashoffset: -24; } }
.pt-card { position: relative; z-index: 1; display: flex; gap: 14px; align-items: flex-start; padding: 20px; border-radius: 16px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: border-color .25s, transform .25s; }
.pt-card:hover { border-color: #FF94C2; transform: translateY(-2px); }
.pt-card strong { display: block; font-size: 17px; font-weight: 600; color: #fff; }
.pt-card span { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.5; color: var(--on-dark-muted); }
.pt-ic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #F8578D, #FF8465); }
.pt-ic svg { width: 22px; height: 22px; }
.pt-0 { grid-column: 1; grid-row: 1; } .pt-1 { grid-column: 1; grid-row: 2; } .pt-2 { grid-column: 3; grid-row: 1; } .pt-3 { grid-column: 3; grid-row: 2; }
.pt-core { position: relative; z-index: 1; grid-column: 2; grid-row: 1 / 3; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 30px 24px; border-radius: 24px; background: linear-gradient(150deg, #302C80, #4F48D6 70%, #7B4FC9); box-shadow: 0 0 0 8px rgba(248, 87, 141, .12), 0 30px 60px -30px rgba(0, 0, 0, .5); }
.pt-core img { width: 44px; height: 44px; animation: pt-pulse 3s ease-in-out infinite; }
@keyframes pt-pulse { 50% { transform: scale(1.08); } }
.pt-core strong { font-size: 20px; font-weight: 700; color: #fff; }
.pt-core span { font-size: 14px; line-height: 1.5; color: #D5D3F5; }
@media (max-width: 900px) {
  .pt-hub { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .pt-lines { display: none; }
  .pt-core { grid-column: 1; grid-row: auto; order: -1; }
  .pt-0, .pt-1, .pt-2, .pt-3 { grid-column: 1; grid-row: auto; }
}
@media (prefers-reduced-motion: reduce) { .pt-lines path, .pt-core img { animation: none; } }

/* urgences : pathologie et structure */
.ur-ic { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #302C80, #4F48D6); }
.ur-ic svg { width: 23px; height: 23px; }
.ur-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 18px; background: #fff; border: 1px solid var(--line); }
.ur-card strong { font-size: 17px; font-weight: 600; color: var(--marine); margin-top: 6px; }
.ur-card span { font-size: 14.5px; line-height: 1.55; color: var(--muted); }
.ur-path { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 28px minmax(0, 1.15fr); gap: 16px; align-items: stretch; }
.ur-arrow { display: grid; place-items: center; color: var(--rose); }
.ur-arrow svg { width: 26px; height: 26px; }
.ur-card.ur-out { background: linear-gradient(150deg, #302C80, #4F48D6 75%, #7B4FC9); border-color: transparent; box-shadow: var(--shadow-soft); }
.ur-card.ur-out .ur-ic { background: linear-gradient(135deg, #F8578D, #FF8465); }
.ur-card.ur-out strong { color: #fff; } .ur-card.ur-out span { color: #E3E1FF; }
@media (max-width: 1000px) { .ur-path { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ur-arrow { display: none; } .ur-out { grid-column: 1 / -1; } }
@media (max-width: 640px) { .ur-path { grid-template-columns: minmax(0, 1fr); } }
.ur-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ur-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-content: start; padding: 22px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .03); }
.ur-lab { grid-column: 1 / -1; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-muted); }
.ur-col-b { border-color: rgba(255, 148, 194, .45); background: linear-gradient(160deg, rgba(248, 87, 141, .12), rgba(79, 72, 214, .1)); }
.ur-col-b .ur-lab { color: #FFB9D7; }
.ur-col .ur-card { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); }
.ur-col .ur-card strong { color: #fff; } .ur-col .ur-card span { color: var(--on-dark-muted); }
.ur-col-b .ur-ic { background: linear-gradient(135deg, #F8578D, #FF8465); }
@media (max-width: 900px) { .ur-split { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .ur-col { grid-template-columns: minmax(0, 1fr); } }
.life .ur-path.mis-anim > * { opacity: 0; transform: translateY(12px); transition: opacity .5s, transform .5s cubic-bezier(.2, .7, .2, 1); }
.life .ur-path.mis-anim.is-in > * { opacity: 1; transform: none; }
.life .ur-path.mis-anim.is-in > :nth-child(2) { transition-delay: .15s; } .life .ur-path.mis-anim.is-in > :nth-child(3) { transition-delay: .3s; } .life .ur-path.mis-anim.is-in > :nth-child(4) { transition-delay: .5s; } .life .ur-path.mis-anim.is-in > :nth-child(5) { transition-delay: .65s; }
.xp-word { font-size: clamp(40px, 5vw, 66px); }
.enr-x-l .h2 { font-size: clamp(28px, 3vw, 38px); }

/* V30 · simulateur de prix : bâtiments et options */
.est-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
@media (max-width: 560px) { .est-row { grid-template-columns: minmax(0, 1fr); } }
.est-lines { list-style: none; margin: 4px 0 2px; padding: 10px 0 0; border-top: 1px solid rgba(255, 255, 255, .16); display: flex; flex-direction: column; gap: 6px; }
.est-lines:empty { display: none; }
.est-lines li { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; line-height: 1.4; color: #D5D3F5; }
.est-out .est-lines span { font-size: 13.5px; }
.est-lines b { font-size: 13.5px !important; font-weight: 600; color: #fff; letter-spacing: 0 !important; white-space: nowrap; line-height: 1.4 !important; }
/* V31 · simulateur : adresse et options à cocher */
.est-loc { position: relative; display: flex; flex-direction: column; gap: 8px; }
.est-sugg { position: absolute; z-index: 20; left: 0; right: 0; top: 76px; margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-soft); max-height: 260px; overflow: auto; }
.est-sugg li { padding: 9px 12px; border-radius: 8px; font-size: 14.5px; color: var(--marine); cursor: pointer; }
.est-sugg li:hover, .est-sugg li[aria-selected="true"] { background: var(--soft); }
.est-route { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.est-route b { color: var(--marine); }
.est-route a { color: var(--rose-text); font-weight: 600; white-space: nowrap; }
.est-checks { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.est-checks legend { padding: 0; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: var(--marine); }
.est-checks .check { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; font-size: 14.5px; color: var(--ink); transition: border-color .2s, background .2s; }
.est-checks .check:hover { border-color: #FF94C2; }
.est-checks .check:has(input:checked) { border-color: var(--rose); background: #FFF4F8; }
.est-checks input { width: 18px; height: 18px; accent-color: #F8578D; flex: none; margin: 0; }
.est-checks b { color: var(--rose-text); font-weight: 600; white-space: nowrap; }
.foot-contact .fc-r { font-weight: 600; color: #fff; }
.foot-contact .nw { white-space: nowrap; }
.foot-contact br + a { display: inline-block; margin-bottom: 6px; }
.est-route em { font-style: italic; }

/* V33 · demande de proposition depuis le simulateur de prix */
.est-out button.btn { align-self: flex-start; border: 0; cursor: pointer; font: inherit; font-weight: 600; }
.devis-dlg { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 22px; background: #fff; box-shadow: 0 40px 100px -20px rgba(20, 18, 60, .55); overflow: auto; }
.devis-dlg::backdrop { background: rgba(20, 18, 60, .6); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.devis-form { position: relative; display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 4vw, 34px); box-shadow: none !important; border: 0 !important; background: transparent !important; }
.devis-form .h3 { font-size: clamp(20px, 2.4vw, 24px); color: var(--marine); margin: -4px 0 0; padding-right: 36px; }
.devis-x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--marine); font-size: 22px; line-height: 1; cursor: pointer; }
.devis-x:hover { border-color: #FF94C2; }
.devis-recap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 14px 18px; border-radius: 14px; background: radial-gradient(220px 140px at 100% 0%, rgba(248, 87, 141, .35), rgba(248, 87, 141, 0) 70%), #302C80; color: #fff; }
.devis-recap span { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #FFB9D7; flex-basis: 100%; }
.devis-recap b { font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
.devis-recap small { font-size: 13.5px; color: #D5D3F5; }
.devis-form textarea { resize: vertical; }
@media (max-width: 560px) { .devis-dlg { border-radius: 18px; } }

/* V34 · Contact : accès au simulateur de prix */
.ct-left { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.ct-sim { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 3vw, 30px); border-radius: 20px; background: radial-gradient(320px 220px at 100% 0%, rgba(248, 87, 141, .35), rgba(248, 87, 141, 0) 70%), linear-gradient(150deg, #302C80, #4F48D6); color: #fff; box-shadow: var(--shadow-soft); }
.ct-sim .ui-label { color: #FFB9D7; }
.ct-sim-t { font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.ct-sim .small { color: #D5D3F5; max-width: 560px; }
.ct-sim-r { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 6px; }
.ct-sim-r span { flex-direction: row !important; align-items: baseline; gap: 10px; flex-wrap: wrap; } .ct-sim-r small { font-size: 15px !important; color: #fff !important; font-weight: 600; } .ct-sim-r b { font-size: 13.5px !important; font-weight: 500 !important; color: #FFB9D7; }
.ct-sim-r a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); color: #fff; text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
.ct-sim-r a:hover { border-color: #FF94C2; background: rgba(255, 255, 255, .13); transform: translateY(-2px); }
.ct-sim-r i { flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: linear-gradient(135deg, #F8578D, #FF8465); }
.ct-sim-r i svg { width: 19px; height: 19px; color: #fff; }
.ct-sim-r span { display: flex; flex-direction: column; min-width: 0; }
.ct-sim-r small { font-size: 12.5px; line-height: 1.3; color: #D5D3F5; }
.ct-sim-r b { font-size: 14.5px; font-weight: 600; }
.ct-sim-r em { margin-left: auto; font-style: normal; color: #FFB9D7; font-size: 18px; }
@media (max-width: 1100px) { .ct-sim-r { grid-template-columns: minmax(0, 1fr); } }

/* Polymage · haut de l'accueil : l'immeuble en lignes, posé à droite et fondu dans le violet */
.p-hero { position: relative; overflow: hidden; }
.p-hero .p-visual { display: none !important; }
.p-hero .p-aurora, .p-hero .p-grid-lines { z-index: 0; }
.p-hero > .container { position: relative; z-index: 2; }
.p-bld { position: absolute; top: 0; right: 0; bottom: 0; width: min(62vw, 1100px); z-index: 1; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 52%), linear-gradient(0deg, transparent 0%, rgba(0,0,0,.6) 22%, #000 42%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 52%), linear-gradient(0deg, transparent 0%, rgba(0,0,0,.6) 22%, #000 42%);
  -webkit-mask-composite: source-in; mask-composite: intersect; }
.p-bld-in { position: absolute; inset: 0; opacity: 0; transform: scale(1.05); transition: opacity 1.6s ease, transform 2.4s cubic-bezier(.2, .7, .2, 1); }
.p-bld.on .p-bld-in { transform: none; }
.p-bld-in img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; max-width: none; }
/* halos en mouvement continu derrière l'immeuble */
.p-halos { position: absolute; top: 0; right: 0; bottom: 0; width: min(70vw, 1200px); z-index: 0; pointer-events: none; filter: blur(70px); }
.p-halos i { position: absolute; border-radius: 50%; opacity: .55; animation: pHalo 18s ease-in-out infinite alternate; }
.p-halos i:nth-child(1) { width: 46%; height: 52%; left: 30%; top: 4%; background: #F8578D; }
.p-halos i:nth-child(2) { width: 40%; height: 46%; left: 58%; top: 34%; background: #7A63F0; animation-duration: 23s; animation-delay: -8s; }
.p-halos i:nth-child(3) { width: 36%; height: 40%; left: 18%; top: 46%; background: #FF8465; opacity: .4; animation-duration: 27s; animation-delay: -14s; }
@keyframes pHalo { 0% { transform: translate3d(0, 0, 0) scale(1); } 33% { transform: translate3d(-12%, 10%, 0) scale(1.15); } 66% { transform: translate3d(10%, -8%, 0) scale(.9); } 100% { transform: translate3d(-4%, 14%, 0) scale(1.08); } }
.p-bld.on .p-bld-in { opacity: .72; }
/* immeuble vivant : corniche qui s'éclaire, fenêtres qui s'allument, faisceaux, balayage */
.p-bld-fx { position: absolute; inset: 0; width: 100%; height: 100%; mix-blend-mode: screen; pointer-events: none; }
.fx-win rect { fill: url(#pfx-win); opacity: 0; animation: fxWin 9s ease-in-out infinite; }
.fx-win rect:nth-child(2) { animation-delay: 1.4s; } .fx-win rect:nth-child(3) { animation-delay: 2.8s; } .fx-win rect:nth-child(4) { animation-delay: 4.2s; }
.fx-win rect:nth-child(5) { animation-delay: 5.6s; animation-duration: 11s; } .fx-win rect:nth-child(6) { animation-delay: 7s; animation-duration: 11s; }
@keyframes fxWin { 0%, 100% { opacity: 0; } 12%, 38% { opacity: .55; } 50% { opacity: 0; } }
.fx-roof { fill: none; stroke: #FFE3EF; stroke-width: 4; stroke-linecap: round; stroke-dasharray: 9 91; stroke-dashoffset: 100; animation: fxRoof 7s linear infinite; }
.fx-roof.r2 { stroke: #FFB199; stroke-width: 3; animation-delay: -3.5s; animation-direction: reverse; opacity: .8; }
@keyframes fxRoof { to { stroke-dashoffset: 0; } }
.fx-dot { fill: #FFD3E3; animation: fxDot 6s ease-in infinite; }
.fx-dot.d2 { animation-duration: 8s; animation-delay: -3s; }
@keyframes fxDot { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 80% { opacity: .9; } 100% { transform: translateY(-720px); opacity: 0; } }
.fx-scan { fill: #FF94C2; opacity: 0; animation: fxScan 12s ease-in-out infinite; }
@keyframes fxScan { 0% { transform: translateY(0); opacity: 0; } 8% { opacity: .35; } 60% { opacity: .2; } 70%, 100% { transform: translateY(1091px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .p-bld-fx { display: none; } }
@media (min-width: 1001px) { .p-hero .p-hero-grid { grid-template-columns: minmax(0, 1fr); } .p-hero .p-hero-copy { max-width: 600px; } }
@media (max-width: 1000px) {
  .p-bld { left: 0; width: 100%; bottom: auto; height: 92vw;
    -webkit-mask-image: linear-gradient(0deg, transparent 0%, #000 45%); mask-image: linear-gradient(0deg, transparent 0%, #000 45%); }
  .p-halos { width: 100%; height: 92vw; bottom: auto; }
  .p-hero .p-hero-copy { padding-top: 58vw; }
}
/* halos roses : dérive lente dans l'espace */
.p-hero .p-aurora { transition: transform 1.6s cubic-bezier(.2, .7, .2, 1); }
.p-hero .p-aurora i { animation: heroDrift 26s ease-in-out infinite; }
.p-hero .p-aurora i:nth-child(2) { animation-duration: 32s; animation-delay: -9s; }
.p-hero .p-aurora i:nth-child(3) { animation-duration: 38s; animation-delay: -17s; }
@keyframes heroDrift {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  25% { transform: translate3d(-5vw, 3vw, 0) scale(1.08); }
  50% { transform: translate3d(-2vw, 6vw, 0) scale(.96); }
  75% { transform: translate3d(3vw, 2vw, 0) scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  .p-hero .p-aurora i { animation: none; }
  .p-bld-in { opacity: .72; transform: none; transition: none; } .p-halos i { animation: none; }
}
