/*
Theme Name: Cabinet Gras
Theme URI: https://cabinet-gras.fr
Author: Cabinet Gras
Description: Site vitrine Cabinet Gras - Expert-comptable Sud-Ouest - DA Sketchnote pro Bordeaux
Version: 4.0
*/

/* ===== POLICE INTER (self-hébergée, variable 100-900) ===== */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('assets/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('assets/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Palette (planche) : teal foncé + petrol + sable + terracotta + brun brique. Noms de variables conservés. */
  --bordeaux:       #b0493a;                /* TERRACOTTA = primaire (nom conservé pour compat) */
  --bordeaux-dark:  #5c2a22;                /* brun brique : sections foncées / hover */
  --bordeaux-light: #c25d4d;
  --bordeaux-soft:  rgba(176,73,58,0.08);
  --terracotta:     #356b79;                /* PETROL = accent (nom conservé) */
  --terracotta-dark:#2b3d3b;
  --turquoise:      #356b79;                /* petrol */
  --sand:           #e4d8c8;                /* sable clair (accent sur fonds foncés UNIQUEMENT — pas en surface) */
  --stabilo:        rgba(53,107,121,0.16);  /* surlignage doux petrol */
  /* marqueur pétrole incliné qui ne remplit pas tout (surlignage du logo dans le méga) */
  --stabilo-icon:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 44' preserveAspectRatio='none'%3E%3Cg transform='rotate(-12 24 22)'%3E%3Cpath d='M7 11 C 19 7 33 8 43 11 C 46 18 45 29 42 34 C 30 38 15 37 7 33 C 4 27 4 17 7 11 Z' fill='%23426975' fill-opacity='0.92'/%3E%3Cpath d='M12 16 Q 26 12 40 16' fill='none' stroke='%23335863' stroke-opacity='0.30' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M10 29 Q 26 33 38 28' fill='none' stroke='%23538291' stroke-opacity='0.30' stroke-width='3' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");
  /* marqueur pétrole quasi plein #426975, bords faits main qui débordent (surlignage header) */
  --stabilo-petrol: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 44' preserveAspectRatio='none'%3E%3Cpath d='M5 11 C 60 4 130 9 200 5 C 262 2 312 8 336 6 C 339 16 338 30 335 39 C 280 43 200 39 130 42 C 78 45 30 41 5 40 C 2 30 2 19 5 11 Z' fill='%23426975' fill-opacity='0.93'/%3E%3Cpath d='M14 16 Q 150 11 332 15' fill='none' stroke='%23335863' stroke-opacity='0.30' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M10 31 Q 170 36 330 30' fill='none' stroke='%23538291' stroke-opacity='0.28' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
  /* coup de feutre bleu texturé (stries translucides) — surlignage des éléments de la photo hero */
  --stabilo-blue:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 40' preserveAspectRatio='none'%3E%3Cdefs%3E%3CclipPath id='sb'%3E%3Cpath d='M5 19 C 34 12 86 16 132 12 C 196 8 256 15 322 11 C 333 13 337 17 334 21 C 336 27 326 31 315 30 C 250 33 150 27 82 31 C 46 33 18 31 9 30 C 2 27 1 23 5 19 Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23sb)' fill='%232f6ff0'%3E%3Crect width='340' height='40' opacity='0.36'/%3E%3Crect x='10' y='3' width='320' height='3' opacity='0.24'/%3E%3Crect x='24' y='9' width='300' height='2' opacity='0.18'/%3E%3Crect x='6' y='14' width='330' height='4' opacity='0.30'/%3E%3Crect x='40' y='22' width='278' height='2' opacity='0.20'/%3E%3Crect x='14' y='27' width='318' height='4' opacity='0.30'/%3E%3Crect x='28' y='34' width='296' height='3' opacity='0.22'/%3E%3C/g%3E%3C/svg%3E");
  /* aplat rond gribouillé (grande roue), blob circulaire à bords ondulés + stries de feutre */
  --stabilo-wheel:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' preserveAspectRatio='none'%3E%3Cdefs%3E%3CclipPath id='w'%3E%3Cpath d='M100 14 C140 9 169 33 179 70 C189 105 184 141 157 167 C129 193 89 191 59 175 C27 159 9 121 15 85 C20 49 60 19 100 14 Z'/%3E%3C/clipPath%3E%3ClinearGradient id='g1'%3E%3Cstop offset='0' stop-color='%232f6ff0' stop-opacity='0.08'/%3E%3Cstop offset='0.3' stop-color='%232f6ff0' stop-opacity='0.27'/%3E%3Cstop offset='0.55' stop-color='%232f6ff0' stop-opacity='0.11'/%3E%3Cstop offset='0.78' stop-color='%232f6ff0' stop-opacity='0.24'/%3E%3Cstop offset='1' stop-color='%232f6ff0' stop-opacity='0.09'/%3E%3C/linearGradient%3E%3ClinearGradient id='g2'%3E%3Cstop offset='0' stop-color='%232f6ff0' stop-opacity='0.23'/%3E%3Cstop offset='0.35' stop-color='%232f6ff0' stop-opacity='0.09'/%3E%3Cstop offset='0.6' stop-color='%232f6ff0' stop-opacity='0.28'/%3E%3Cstop offset='0.85' stop-color='%232f6ff0' stop-opacity='0.12'/%3E%3Cstop offset='1' stop-color='%232f6ff0' stop-opacity='0.19'/%3E%3C/linearGradient%3E%3ClinearGradient id='g3'%3E%3Cstop offset='0' stop-color='%232f6ff0' stop-opacity='0.13'/%3E%3Cstop offset='0.45' stop-color='%232f6ff0' stop-opacity='0.26'/%3E%3Cstop offset='0.72' stop-color='%232f6ff0' stop-opacity='0.10'/%3E%3Cstop offset='1' stop-color='%232f6ff0' stop-opacity='0.22'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg clip-path='url(%23w)'%3E%3Crect x='0' y='0' width='200' height='200' fill='%232f6ff0' opacity='0.06'/%3E%3Cg transform='rotate(-16 100 100)' fill='none' stroke-linecap='round'%3E%3Cpath d='M-12 12 Q 70 4 120 14 T 224 10' stroke='url(%23g1)' stroke-width='12'/%3E%3Cpath d='M22 27 Q 90 33 150 25 T 214 29' stroke='url(%23g2)' stroke-width='10'/%3E%3Cpath d='M-26 43 Q 60 35 130 45 T 226 39' stroke='url(%23g3)' stroke-width='13'/%3E%3Cpath d='M14 58 Q 88 64 150 56 T 210 60' stroke='url(%23g1)' stroke-width='9'/%3E%3Cpath d='M-16 73 Q 70 65 132 75 T 224 69' stroke='url(%23g2)' stroke-width='12'/%3E%3Cpath d='M28 89 Q 96 95 156 85 T 206 91' stroke='url(%23g3)' stroke-width='11'/%3E%3Cpath d='M-22 105 Q 64 97 132 107 T 224 101' stroke='url(%23g1)' stroke-width='14'/%3E%3Cpath d='M10 121 Q 84 127 150 119 T 214 123' stroke='url(%23g2)' stroke-width='10'/%3E%3Cpath d='M-18 137 Q 70 129 134 139 T 226 133' stroke='url(%23g3)' stroke-width='12'/%3E%3Cpath d='M26 153 Q 92 159 152 149 T 206 155' stroke='url(%23g1)' stroke-width='11'/%3E%3Cpath d='M-14 169 Q 66 161 132 171 T 224 165' stroke='url(%23g2)' stroke-width='12'/%3E%3Cpath d='M16 185 Q 86 191 150 183 T 214 187' stroke='url(%23g3)' stroke-width='11'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  /* trait vertical texturé (colonne du monument), bords irréguliers + bristles verticaux */
  --stabilo-tour:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 360' preserveAspectRatio='none'%3E%3Cdefs%3E%3CclipPath id='t'%3E%3Cpath d='M25 4 C35 5 40 32 39 74 C38 124 42 174 39 224 C37 274 41 322 27 357 C14 330 8 288 10 238 C11 188 6 138 9 88 C10 48 17 20 25 4 Z'/%3E%3C/clipPath%3E%3ClinearGradient id='v1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%232f6ff0' stop-opacity='0.12'/%3E%3Cstop offset='0.28' stop-color='%232f6ff0' stop-opacity='0.28'/%3E%3Cstop offset='0.55' stop-color='%232f6ff0' stop-opacity='0.11'/%3E%3Cstop offset='0.8' stop-color='%232f6ff0' stop-opacity='0.26'/%3E%3Cstop offset='1' stop-color='%232f6ff0' stop-opacity='0.13'/%3E%3C/linearGradient%3E%3ClinearGradient id='v2' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%232f6ff0' stop-opacity='0.25'/%3E%3Cstop offset='0.35' stop-color='%232f6ff0' stop-opacity='0.10'/%3E%3Cstop offset='0.62' stop-color='%232f6ff0' stop-opacity='0.28'/%3E%3Cstop offset='0.85' stop-color='%232f6ff0' stop-opacity='0.12'/%3E%3Cstop offset='1' stop-color='%232f6ff0' stop-opacity='0.21'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg clip-path='url(%23t)'%3E%3Crect x='0' y='0' width='50' height='360' fill='%232f6ff0' opacity='0.08'/%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M13 8 Q 7 90 14 180 T 12 352' stroke='url(%23v1)' stroke-width='9'/%3E%3Cpath d='M24 4 Q 30 100 21 200 T 25 356' stroke='url(%23v2)' stroke-width='10'/%3E%3Cpath d='M34 12 Q 28 110 35 210 T 31 348' stroke='url(%23v1)' stroke-width='9'/%3E%3Cpath d='M42 16 Q 36 120 43 230 T 39 342' stroke='url(%23v2)' stroke-width='7'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  --paper:          #ffffff;
  --paper-white:    #ffffff;
  --surface:        #f6ebea;                /* blush rosé très doux (dérivé du terracotta, PAS beige) — sections alternées */
  --cream-soft:     #fbf4f4;                /* blush plus pâle (fond hero) */
  --line:           #293a38;                /* teal foncé : texte + bordures */
  --line-soft:      rgba(41,58,56,0.13);
  --ink:            #293a38;
  --ink-soft:       #54635f;
  --gray:           #8a9794;
  --ivory:          #e4d8c8;                /* sable : accent clair sur fond foncé */
  --dot:            transparent;
  --radius:         16px;
  --radius-sm:      12px;
  --border:         1px solid var(--line-soft);
  --shadow-xs:      0 1px 2px rgba(41,58,56,0.06);
  --shadow-sm:      0 1px 2px rgba(41,58,56,0.05), 0 4px 16px rgba(41,58,56,0.07);
  --shadow:         0 4px 10px rgba(41,58,56,0.06), 0 24px 50px rgba(41,58,56,0.12);
  --shadow-lg:      0 8px 22px rgba(41,58,56,0.08), 0 40px 84px rgba(41,58,56,0.17);
  --shadow-offset:  0 8px 22px rgba(176,73,58,0.30); /* ombre colorée sous boutons primaires */
  --grad:           var(--bordeaux);
  --transition:     0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background-color: var(--paper);
}

/* Grain subtil — texture tactile qui réchauffe le flat design */
body::before {
  content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  opacity: 0.05; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch' result='t'/%3E%3CfeColorMatrix in='t' type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1, h2, h3, h4, h5 {
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  line-height: 1.14;
  color: var(--ink);
  letter-spacing: -0.028em;
  text-wrap: balance;
}

a { color: var(--bordeaux); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: var(--bordeaux-dark); }
img { max-width: 100%; height: auto; display: block; }
.container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* Focus accessible & moderne */
a:focus-visible, button:focus-visible, .btn:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--bordeaux); outline-offset: 3px; border-radius: 6px;
}

/* Icône esquisse */
.sketch-ico { display: inline-flex; }
.sketch-ico svg { stroke: var(--bordeaux); stroke-width: 1.85; fill: none; stroke-linecap: round; stroke-linejoin: round; }


/* Surligneur stabilo fin */
.stabilo {
  color: var(--bordeaux);
  /* coup de feutre texturé, forme organique, en ambre/jaune (stries + bords irréguliers) */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 40' preserveAspectRatio='none'%3E%3Cdefs%3E%3CclipPath id='tx'%3E%3Cpath d='M5 19 C 34 12 86 16 132 12 C 196 8 256 15 322 11 C 333 13 337 17 334 21 C 336 27 326 31 315 30 C 250 33 150 27 82 31 C 46 33 18 31 9 30 C 2 27 1 23 5 19 Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23tx)' fill='%23d9a24b'%3E%3Crect width='340' height='40' opacity='0.30'/%3E%3Crect x='10' y='3' width='320' height='3' opacity='0.16'/%3E%3Crect x='24' y='9' width='300' height='2' opacity='0.14'/%3E%3Crect x='6' y='14' width='330' height='4' opacity='0.22'/%3E%3Crect x='40' y='22' width='278' height='2' opacity='0.15'/%3E%3Crect x='14' y='27' width='318' height='4' opacity='0.22'/%3E%3Crect x='28' y='34' width='296' height='3' opacity='0.16'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 100% 0.7em;
  background-position: 0 88%;
  padding: 0 0.2em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Accents décoratifs esquissés — masqués en DA moderne */
.doodle { display: none; }
.doodle-legacy { position: absolute; pointer-events: none; z-index: 0; }
.doodle svg { stroke: var(--bordeaux); stroke-width: 1.85; fill: none; stroke-linecap: round; stroke-linejoin: round; opacity: 0.7; }
.doodle-bordeaux svg { stroke: var(--bordeaux); opacity: 0.22; }
.doodle-terracotta svg { stroke: var(--terracotta); opacity: 0.85; }
.doodle-turquoise svg { stroke: var(--turquoise); opacity: 0.9; }
.doodle-sand svg { stroke: var(--sand); opacity: 0.95; }
@media (max-width: 900px) { .doodle.hide-mobile { display: none; } }

/* ===== LOGO CG ===== */
.logo-cg {
  width: 48px; height: 48px;
  background: var(--bordeaux);
  border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 900;
  font-size: 18px;
  color: var(--paper);
  letter-spacing: 0.5px;
  flex-shrink: 0;
  box-shadow: 0 6px 16px rgba(176,73,58,0.28);
}

/* ===== LOGO IMAGE (monogramme Cabinet Gras) ===== */
.brand-mark { height: 42px; width: auto; display: block; }
.brand-mark--light { filter: brightness(0) invert(1); }

/* ===== ESPACE CLIENT PENNYLANE (header) ===== */
.header-pennylane {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 7px 13px; border-radius: 100px;
  border: 1px solid var(--line-soft);
  background-color: #fff;
  background-image: var(--stabilo-petrol);
  background-repeat: no-repeat;
  background-position: 0 50%;
  background-size: 0% 100%;
  font-size: 12.5px; font-weight: 600; color: var(--ink-soft);
  transition: background-size 0.5s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.25s ease;
}
.header-pennylane:hover { background-size: 100% 100%; color: #fff; }
.header-pennylane:hover .pl-logo { filter: brightness(0) invert(1); }
.header-pennylane .pl-logo { height: 15px; width: auto; display: block; transition: filter 0.25s ease; }
.header-pennylane .pl-label { white-space: nowrap; }
@media (max-width: 1120px) { .header-pennylane .pl-label { display: none; } }
@media (max-width: 768px)  { .header-pennylane { display: none; } }

/* Logo Pennylane dans le footer (blanc sur fond foncé) */
.footer-pl { display: inline-block; margin: 2px 0 7px; }
.footer-pl-logo { height: 22px; width: auto; display: block; opacity: 0.9; transition: opacity var(--transition); }
.footer-pl:hover .footer-pl-logo { opacity: 1; }

/* ===== HEADER ===== */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,0.82);
  backdrop-filter: saturate(1.4) blur(14px);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--line-soft);
  box-shadow: 0 1px 0 rgba(41,58,56,0.03), 0 6px 24px rgba(41,58,56,0.05);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 15px 24px;
  max-width: 1180px; margin: 0 auto;
}
.header-brand { display: flex; align-items: center; gap: 13px; flex-shrink: 0; }
.header-brand-text .name { font-weight: 800; font-size: 18px; color: var(--ink); line-height: 1.05; letter-spacing: -0.02em; white-space: nowrap; }
.header-brand-text .tagline { font-size: 11px; color: var(--bordeaux); font-weight: 600; margin-top: 4px; letter-spacing: 1.5px; text-transform: uppercase; white-space: nowrap; }

.site-nav { display: flex; align-items: center; gap: 24px; margin-left: 28px; }
.site-nav > a, .site-nav .mega-toggle { white-space: nowrap; }
.site-nav a { font-size: 14px; font-weight: 500; color: var(--ink-soft); position: relative; }
/* surlignage stabilo naturel qui balaie de gauche à droite au survol (et page active) */
.site-nav > a:not(.btn-rdv-header):not(.header-pennylane),
.site-nav .mega-toggle {
  background-image: var(--stabilo-petrol);
  background-repeat: no-repeat;
  background-position: 0 50%;
  background-size: 0% 1.95em;
  padding: 0 6px;
  transition: background-size 0.5s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.25s ease;
}
.site-nav > a:not(.btn-rdv-header):not(.header-pennylane):hover,
.site-nav > a.active:not(.btn-rdv-header):not(.header-pennylane),
.site-nav .mega-toggle:hover,
.site-nav .mega-toggle.active,
.has-mega:hover > .mega-toggle,
.has-mega:focus-within > .mega-toggle { background-size: 100% 1.95em; color: #fff; }
.site-nav .mega-menu a:hover { color: var(--bordeaux); }

/* ===== MÉGA-MENU "Vos activités" ===== */
.nav-item { display: inline-flex; align-items: center; }
.has-mega > .mega-toggle { display: inline-flex; align-items: center; gap: 6px; }
.has-mega > .mega-toggle .caret {
  width: 9px; height: 9px; display: inline-block; flex-shrink: 0;
  border-right: 1.7px solid currentColor; border-bottom: 1.7px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform var(--transition);
}
.has-mega:hover > .mega-toggle .caret,
.has-mega:focus-within > .mega-toggle .caret { transform: translateY(0) rotate(225deg); }

.mega-menu {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--paper);
  border-top: 1px solid var(--line-soft);
  box-shadow: 0 24px 48px -12px rgba(41,58,56,0.18);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
  z-index: 90;
}
/* pont invisible : évite que le menu se ferme dans l'espace onglet ↔ panneau */
.mega-menu::before { content: ''; position: absolute; top: -22px; left: 0; right: 0; height: 22px; }
.has-mega:hover .mega-menu,
.has-mega:focus-within .mega-menu,
.mega-menu:hover { opacity: 1; visibility: visible; transform: translateY(0); }
.mega-inner {
  max-width: 1200px; margin: 0 auto; padding: 14px 20px 18px;
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.mega-col {
  display: flex; flex-direction: column;
  padding: 22px 22px;
  border-left: 1px solid var(--line-soft);
  transition: background var(--transition);
}
.mega-col:nth-child(4n+1) { border-left: none; }
.mega-col:nth-child(n+5)  { border-top: 1px solid var(--line-soft); }
.mega-col:hover { background: rgba(53, 107, 121, 0.07); }
.mega-ico {
  width: 40px; height: 40px; flex-shrink: 0; border-radius: 11px; margin-bottom: 14px;
  background-color: var(--bordeaux-soft);
  background-image: var(--stabilo-icon);
  background-repeat: no-repeat;
  background-position: 0 50%;
  background-size: 0% 100%;
  display: flex; align-items: center; justify-content: center;
  transition: background-size 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.mega-col:hover .mega-ico { background-size: 100% 100%; }
.mega-ico svg { width: 21px; height: 21px; fill: none; stroke: var(--bordeaux); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: stroke var(--transition); }
.mega-col:hover .mega-ico svg { stroke: #fff; }
.mega-over {
  font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase;
  color: var(--bordeaux); margin-bottom: 4px;
}
.mega-title {
  font-size: 16px; font-weight: 800; color: var(--ink); letter-spacing: -0.01em; line-height: 1.2;
  display: inline-flex; align-items: center; gap: 7px; flex-wrap: wrap;
}
.mega-title:hover { color: var(--bordeaux); }
.mega-badge {
  font-size: 8.5px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase;
  background: var(--bordeaux); color: #fff; padding: 2.5px 7px; border-radius: 100px;
}
.mega-tag { font-size: 12px; color: var(--ink-soft); margin: 8px 0 0; line-height: 1.5; }
.mega-links { display: flex; flex-direction: column; margin-top: 12px; }
.mega-links a {
  display: flex; align-items: center; gap: 9px;
  font-size: 13px; font-weight: 500; color: var(--ink-soft); padding: 5px 0;
}
.mega-links a::before {
  content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--bordeaux);
  opacity: 0.35; flex-shrink: 0; transition: opacity var(--transition), transform var(--transition);
}
.mega-links a:hover { color: var(--bordeaux); }
.mega-links a:hover::before { opacity: 1; transform: scale(1.4); }
.mega-more {
  display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 14px;
  font-size: 12.5px; font-weight: 700; color: var(--bordeaux); letter-spacing: 0.2px;
}
.mega-more:not(span)::after { content: '→'; transition: transform var(--transition); }
.mega-col:hover .mega-more:not(span)::after { transform: translateX(4px); }
/* encart promo (8e case) */
.mega-col--cta {
  background: var(--bordeaux); color: #fff; border: none !important;
  border-radius: 14px; margin: 10px; padding: 22px;
}
.mega-col--cta:hover { background: var(--bordeaux); }
.mega-cta-over { font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: rgba(255,255,255,0.72); }
.mega-cta-title { font-size: 16px; font-weight: 800; line-height: 1.2; margin-top: 9px; }
.mega-cta-text { font-size: 12px; color: rgba(255,255,255,0.85); line-height: 1.5; margin-top: 9px; }
.mega-cta-btn { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 16px; font-size: 13px; font-weight: 700; color: #fff; }
.mega-col--cta:hover .mega-cta-btn { gap: 9px; }
/* le méga vit dans .site-nav : on neutralise la règle générique `.site-nav a`
   (poids 500 / gris + soulignement) qui écrasait les liens du menu */
.site-nav .mega-menu a::after { display: none !important; }
.site-nav .mega-menu .mega-title { font-weight: 800; color: var(--ink); }
.site-nav .mega-menu .mega-title:hover { color: var(--bordeaux); }
.site-nav .mega-menu .mega-links a { font-weight: 500; color: var(--ink-soft); }
.site-nav .mega-menu .mega-links a:hover { color: var(--bordeaux); }
.site-nav .mega-menu .mega-more { font-weight: 700; color: var(--bordeaux); }
.site-nav .mega-menu .mega-cta-btn { color: #fff; }
.mega-foot {
  background: var(--surface); border-top: 1px solid var(--line-soft);
}
.mega-foot-in {
  max-width: 1180px; margin: 0 auto; padding: 14px 30px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.mega-foot p { font-size: 13px; color: var(--ink-soft); margin: 0; }
.mega-foot a { font-size: 13px; font-weight: 700; color: var(--bordeaux); }
@media (max-width: 900px) { .mega-menu { display: none; } }

/* ===== LISTE DE SÉLECTION (drill-down activités) ===== */
.select-wrap { max-width: 680px; margin: 0 auto; }
.select-wrap.wide { max-width: 880px; }
.select-list {
  background: #fff; border: 1px solid var(--line-soft); border-radius: 22px;
  box-shadow: var(--shadow-sm); padding: 10px;
}
.select-list.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.select-item {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 18px 24px; border-radius: 14px;
  font-size: 20px; font-weight: 800; color: var(--ink); letter-spacing: -0.01em;
  transition: background var(--transition), color var(--transition);
}
.select-item .sel-txt { display: flex; flex-direction: column; }
.select-item .sel-sub { font-size: 12.5px; font-weight: 500; color: var(--ink-soft); margin-top: 3px; letter-spacing: 0; }
.select-item .sel-arrow {
  color: var(--bordeaux); font-weight: 700; font-size: 18px; flex-shrink: 0;
  opacity: 0; transform: translateX(-6px); transition: opacity var(--transition), transform var(--transition);
}
.select-item:hover { background: var(--cream-soft); color: var(--bordeaux); }
.select-item:hover .sel-sub { color: var(--bordeaux); }
.select-item:hover .sel-arrow { opacity: 1; transform: translateX(0); }
.select-item.is-soon { color: var(--gray); cursor: default; }
.select-item.is-soon:hover { background: transparent; color: var(--gray); }
.select-item.is-soon .sel-sub { color: var(--gray); }
@media (max-width: 640px) { .select-list.cols { grid-template-columns: 1fr; } .select-item { font-size: 17px; padding: 16px 18px; } }

.btn-rdv-header {
  background: var(--grad);
  color: #fff !important;
  font-weight: 600;
  padding: 11px 18px;
  border: none;
  border-radius: 10px;
  font-size: 14px;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(176,73,58,0.26);
  transition: transform var(--transition), box-shadow var(--transition);
}
.btn-rdv-header:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(176,73,58,0.34); color: #fff !important; }

.burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.burger span { display: block; width: 26px; height: 2px; background: var(--ink); border-radius: 2px; }

/* ===== BOUTONS ===== */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 28px;
  border: none;
  border-radius: 12px;
  font-weight: 600; font-size: 15px;
  cursor: pointer;
  transition: transform var(--transition), box-shadow var(--transition), filter var(--transition);
  text-decoration: none;
}
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--grad); color: #fff; box-shadow: var(--shadow-offset); }
.btn-primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(176,73,58,0.36); filter: saturate(1.08); }
.btn-cream { background: var(--paper-white); color: var(--ink); border: 1px solid var(--line-soft); box-shadow: var(--shadow-sm); }
.btn-cream:hover { color: var(--ink); transform: translateY(-2px); box-shadow: var(--shadow); }
.btn-gold { background: var(--grad); color: #fff; box-shadow: var(--shadow-offset); }
.btn-gold:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(176,73,58,0.36); }
.btn-lg { padding: 16px 34px; font-size: 16px; border-radius: 14px; }
.btn .sketch-ico svg { stroke: currentColor; stroke-width: 1.85; }

/* ===== HERO ===== */
.hero {
  padding: 96px 0 88px; position: relative; overflow: hidden;
  background: var(--cream-soft);
}
.hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; position: relative; z-index: 1; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--paper-white);
  border: 1px solid rgba(53,107,121,0.45);
  color: var(--bordeaux);
  padding: 8px 18px; border-radius: 100px;
  font-size: 12.5px; font-weight: 600; letter-spacing: 0.2px;
  margin-bottom: 26px;
  box-shadow: var(--shadow-sm);
}
.hero-badge .sketch-ico svg { stroke: var(--bordeaux); }
.hero h1 { font-size: clamp(40px, 5.6vw, 70px); font-weight: 800; margin-bottom: 24px; letter-spacing: -0.035em; line-height: 1.05; }
.hero-sub { font-size: 18px; color: var(--ink-soft); max-width: 520px; margin-bottom: 36px; line-height: 1.7; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; position: relative; }
.hero-locations { display: flex; gap: 14px; margin-top: 44px; }
.hero-loc {
  display: flex; align-items: center; gap: 8px;
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  padding: 9px 16px; border-radius: 8px;
  font-size: 13.5px; font-weight: 500; color: var(--ink);
  box-shadow: var(--shadow-sm);
}
.hero-loc .sketch-ico svg { stroke: var(--bordeaux); width: 16px; height: 16px; }

/* Hero — visuel tableau de bord esquissé */
.hero-visual { position: relative; }
.hv-card {
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  padding: 26px;
  box-shadow: var(--shadow);
  position: relative;
}
.hv-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.hv-head .hv-title { font-weight: 800; font-size: 15px; color: var(--ink); }
.hv-dots { display: flex; gap: 6px; }
.hv-dots span { width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--line-soft); }
.hv-dots span:nth-child(1) { background: var(--bordeaux); border-color: var(--bordeaux); }
.hv-dots span:nth-child(2) { background: var(--bordeaux); border-color: var(--bordeaux); }
.hv-rows { display: flex; flex-direction: column; gap: 12px; margin-bottom: 22px; }
.hv-row { display: flex; align-items: center; justify-content: space-between; padding-bottom: 11px; border-bottom: 1px dashed var(--line-soft); }
.hv-row:last-child { border-bottom: none; }
.hv-row .lbl { font-size: 13px; color: var(--ink-soft); display: flex; align-items: center; gap: 8px; }
.hv-row .lbl .sketch-ico svg { width: 16px; height: 16px; }
.hv-row .val { font-weight: 800; font-size: 14px; color: var(--bordeaux); }
.hv-bars { display: flex; align-items: flex-end; gap: 10px; height: 88px; padding-top: 6px; }
.hv-bars .bar { flex: 1; background: var(--bordeaux-soft); border: 1px solid var(--line-soft); border-bottom: none; border-radius: 6px 6px 0 0; position: relative; }
.hv-bars .bar::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; background: var(--bordeaux); border-radius: 6px 6px 0 0; }
.hv-bars .bar.b1::after { height: 45%; }
.hv-bars .bar.b2::after { height: 65%; }
.hv-bars .bar.b3::after { height: 52%; }
.hv-bars .bar.b4::after { height: 80%; background: var(--bordeaux); }
.hv-bars .bar.b5::after { height: 70%; }
.hv-badge {
  position: absolute;
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  padding: 10px 14px;
  box-shadow: var(--shadow);
  display: flex; align-items: center; gap: 9px;
  font-size: 12.5px; font-weight: 600; color: var(--ink);
}
.hv-badge .sketch-ico svg { width: 18px; height: 18px; }
.hv-badge.top { top: -18px; right: -14px; }
.hv-badge.bottom { bottom: -16px; left: -16px; }
.hv-badge .ok { color: var(--bordeaux); }

/* Flèche gracieuse pointant vers le CTA (ancrée et centrée sur le bouton) */
.cta-with-arrow { position: relative; display: inline-flex; }
.hero-arrow { display: none; }
.hero-arrow--legacy { position: absolute; top: -52px; left: 50%; transform: translateX(-50%); width: 82px; height: 70px; pointer-events: none; z-index: 2; }
.hero-arrow svg { width: 100%; height: 100%; stroke: var(--terracotta); stroke-width: 2.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* Hero — emplacement photo équipe */
.hero-photo-frame {
  position: relative;
  border: 1px solid var(--line-soft); border-radius: 16px; overflow: hidden;
  box-shadow: var(--shadow); aspect-ratio: 4/5;
  background: var(--bordeaux-dark);
}
.hero-photo-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
/* coup de stabilo (petrol) par-dessus la grande roue de la photo */
/* coups de stabilo bleus texturés sur les éléments clés de la photo (roue + tour) */
.hero-photo-stabilo, .hero-photo-stabilo--tour {
  position: absolute; z-index: 2; pointer-events: none;
  mix-blend-mode: multiply;
  background: no-repeat center / 100% 100%;
}
/* grande roue (droite) : aplat rond gribouillé qui colorie tout le disque */
.hero-photo-stabilo {
  top: 44%; left: 44%; right: auto; width: 58%; height: 52%;
  transform: rotate(-8deg);
  background-image: var(--stabilo-wheel);
}
/* la tour / colonne du monument (gauche) : coup de feutre vertical le long du fût */
.hero-photo-stabilo--tour {
  top: 15%; left: 18%; width: 17%; height: 66%;
  transform: rotate(-1.5deg);
  background-image: var(--stabilo-tour);
}
.hero-photo {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 30px;
}
.hero-photo .ph-ico {
  width: 66px; height: 66px; border: 1.5px solid rgba(255,255,255,0.4);
  border-radius: 14px; display: flex; align-items: center; justify-content: center;
}
.hero-photo .ph-ico svg { width: 34px; height: 34px; stroke: rgba(255,255,255,0.9); stroke-width: 1.85; fill: none; }
.hero-photo .ph-title { font-weight: 800; font-size: 18px; color: #fff; letter-spacing: -0.01em; }
.hero-photo .ph-note { font-size: 12.5px; color: rgba(255,255,255,0.7); }
.hero-photo-badge {
  position: absolute; bottom: -16px; left: -16px;
  background: var(--paper-white); border: 1px solid var(--line-soft); border-radius: 10px;
  padding: 11px 15px; box-shadow: var(--shadow);
  display: flex; align-items: center; gap: 9px; font-size: 12.5px; font-weight: 600; color: var(--ink);
}
.hero-photo-badge .sketch-ico svg { width: 18px; height: 18px; stroke: var(--bordeaux); }

/* ===== PARTENAIRES / CONFIANCE ===== */
.partners { padding: 40px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); background: var(--surface); }
.partners-eyebrow { text-align: center; font-size: 11.5px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--gray); margin-bottom: 26px; }
.partners-logos { display: flex; align-items: center; justify-content: center; gap: 44px; flex-wrap: wrap; }
.partner-logo {
  display: flex; align-items: center; gap: 9px;
  color: var(--ink); font-weight: 800; font-size: 16px; letter-spacing: -0.01em;
  opacity: 1; transition: opacity var(--transition);
}
.partner-logo .sketch-ico svg { stroke: var(--ink); width: 22px; height: 22px; }
.partner-logo small { display: block; font-size: 9.5px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--gray); }

/* ===== STATS ===== */
.stats {
  background: var(--turquoise);
  padding: 52px 0;
}
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.stat-item { text-align: center; position: relative; }
.stat-item:not(:last-child)::after { content: ''; position: absolute; right: -12px; top: 12%; height: 76%; width: 1px; background: rgba(255,255,255,0.18); }
.stat-number { font-size: 48px; font-weight: 900; color: var(--paper); line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.stat-label { font-size: 13px; color: rgba(255,255,255,0.82); margin-top: 10px; font-weight: 500; letter-spacing: 0.2px; line-height: 1.45; }

/* ===== SECTIONS ===== */
.section { padding: 100px 0; position: relative; overflow: hidden; }
.section-alt { background: var(--surface); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.section-header { text-align: center; margin-bottom: 56px; max-width: 660px; margin-left: auto; margin-right: auto; position: relative; z-index: 1; }
.section-tag {
  display: table;
  margin-left: auto; margin-right: auto;
  color: var(--bordeaux);
  background: var(--bordeaux-soft);
  font-size: 12px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; margin-bottom: 18px;
  padding: 6px 14px 6px 12px; border-radius: 100px;
}
.section-tag::before {
  content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--terracotta); margin-right: 8px; vertical-align: middle; position: relative; top: -1px;
}
.section-header h2 { font-size: clamp(30px, 4vw, 48px); font-weight: 800; margin-bottom: 18px; display: inline-block; }
.section-header h2::after {
  content: ""; display: block; width: 72px; height: 12px; margin: 18px auto 0;
  background:
    linear-gradient(var(--bordeaux), var(--bordeaux)) left center / 46px 5px no-repeat,
    radial-gradient(circle at center, var(--terracotta) 0 5px, transparent 6px) right center / 12px 12px no-repeat;
}
.section-header p { font-size: 17px; color: var(--ink-soft); }

/* ===== SERVICES CARDS ===== */
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; z-index: 1; }
.services-grid--two { grid-template-columns: repeat(2, 1fr); max-width: 900px; margin: 0 auto; }
.container--narrow { max-width: 820px; }
.service-card-role { font-weight: 700; color: var(--bordeaux, #b0493a); margin: -6px 0 12px; font-size: .95rem; }

/* ===== CTA RENDEZ-VOUS ARTICLE + MODALE CAL.COM ===== */
.cg-cta-rdv { position: relative; overflow: hidden; margin: 52px 0; padding: 44px 34px; text-align: center; background: var(--cta-color, #b0493a); border: 2.5px solid #111; border-radius: 16px; box-shadow: 9px 9px 0 #111; }
.cg-cta-rdv::before, .cg-cta-rdv::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.cg-cta-rdv::before { width: 300px; height: 300px; top: -110px; right: -90px; background: rgba(255,255,255,.08); }
.cg-cta-rdv::after { width: 210px; height: 210px; bottom: -95px; left: -65px; background: rgba(0,0,0,.10); }
.cg-cta-rdv > * { position: relative; z-index: 1; }
.cg-cta-rdv .section-tag { color: #fff; background: rgba(255,255,255,.16); }
.cg-cta-rdv .section-tag::before { background-color: #fff; }
.cg-cta-rdv .cg-cta-h { font-size: 1.7rem; font-weight: 800; line-height: 1.25; margin: 14px 0 10px; color: #fff; }
.cg-cta-rdv .cg-cta-h .stabilo { color: #fff; }
.cg-cta-rdv .cg-cta-p { color: rgba(255,255,255,.92); margin: 0 auto 24px; max-width: 540px; font-size: 1.05rem; }
.cg-cta-rdv .cg-cta-btn { background: #fff; border: 2px solid #fff; color: var(--cta-color, #b0493a); text-decoration: none; font-weight: 800; }
.cg-cta-rdv .cg-cta-btn:hover { background: #f4efe9; color: var(--cta-color, #b0493a); text-decoration: none; filter: none; }
.cg-cal-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.cg-cal-modal[hidden] { display: none; }
.cg-cal-backdrop { position: absolute; inset: 0; background: rgba(26,26,26,.62); }
.cg-cal-dialog { position: relative; width: min(940px, 100%); height: min(88vh, 840px); background: #fff; border: 3px solid #111; border-radius: 16px; box-shadow: 10px 10px 0 #111; overflow: hidden; display: flex; flex-direction: column; }
.cg-cal-close { position: absolute; top: 10px; right: 12px; z-index: 2; width: 42px; height: 42px; padding: 0; border: 2px solid #111; border-radius: 50%; background: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.cg-cal-close:hover { background: #f3f4f6; }
.cg-cal-body { flex: 1; min-height: 0; }
.cg-cal-body iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 560px) { .cg-cta-rdv { padding: 26px 20px; } .cg-cal-modal { padding: 10px; } .cg-cal-dialog { height: 92vh; box-shadow: 6px 6px 0 #111; } }

/* ===== BANDEAU COOKIES (barre classique en bas ; CNIL : refuser aussi simple qu'accepter) ===== */
.cg-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999; background: #fff; border-top: 2.5px solid #111; box-shadow: 0 -4px 20px rgba(0, 0, 0, .1); }
.cg-cookie[hidden] { display: none; }
.cg-cookie-in { max-width: 1180px; margin: 0 auto; display: flex; gap: 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 16px 24px; }
.cg-cookie-txt { flex: 1 1 340px; margin: 0; font-size: 14px; line-height: 1.5; color: #222; }
.cg-cookie-txt a { color: var(--bordeaux, #b0493a); text-decoration: underline; }
.cg-cookie-btns { display: flex; gap: 12px; flex: 0 0 auto; }
.cg-cookie-btn { cursor: pointer; font: inherit; font-weight: 700; font-size: 14px; padding: 10px 22px; border: 2px solid #111; border-radius: 8px; transition: transform .12s ease, background .12s ease; }
.cg-cookie-btn:hover { transform: translateY(-1px); }
.cg-cookie-refuse { background: #fff; color: #111; }
.cg-cookie-refuse:hover { background: #f3f4f6; }
.cg-cookie-accept { background: var(--bordeaux, #b0493a); border-color: var(--bordeaux, #b0493a); color: #fff; }
.cg-cookie-accept:hover { background: var(--bordeaux-dark, #5c2a22); border-color: var(--bordeaux-dark, #5c2a22); }
@media (max-width: 560px) { .cg-cookie-in { padding: 14px 16px; } .cg-cookie-btns { width: 100%; } .cg-cookie-btn { flex: 1; } }
.service-card {
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 32px 30px;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition), box-shadow var(--transition);
}
.service-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: rgba(176,73,58,0.28); }
.service-icon {
  width: 58px; height: 58px;
  background: var(--bordeaux-soft);
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px;
  transition: transform var(--transition), background var(--transition);
}
.service-card:hover .service-icon { transform: scale(1.06); background: rgba(176,73,58,0.12); }
.service-icon svg { width: 28px; height: 28px; stroke: var(--bordeaux); stroke-width: 1.85; }
.service-card h3 { font-size: 20px; font-weight: 800; margin-bottom: 11px; letter-spacing: -0.02em; }
.service-card p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.7; }

/* ===== SECTEURS ACCOMPAGNÉS ===== */
.sectors-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; position: relative; z-index: 1; }
.sector-card {
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 24px;
  display: flex; align-items: center; gap: 16px;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  position: relative;
}
.sector-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); border-color: rgba(176,73,58,0.28); }
.sector-card .sector-ico {
  width: 50px; height: 50px; flex-shrink: 0;
  background: var(--bordeaux-soft);
  border-radius: 13px; display: flex; align-items: center; justify-content: center;
}
.sector-card .sector-ico svg { width: 24px; height: 24px; stroke: var(--bordeaux); stroke-width: 1.85; }
.sector-card h4 { font-size: 15.5px; font-weight: 700; margin-bottom: 3px; letter-spacing: -0.01em; }
.sector-card p { font-size: 12.5px; color: var(--ink-soft); line-height: 1.5; }
.sector-card--link { text-decoration: none; color: inherit; cursor: pointer; }
.sector-card--link:hover { color: inherit; }
.sector-link { display: inline-block; margin-top: 9px; font-size: 13px; font-weight: 700; color: var(--bordeaux); }
.sector-card--link:hover .sector-link { color: var(--bordeaux-dark); }
.sector-card.is-expert { border-color: var(--terracotta); border-width: 2.5px; }
.sector-card.is-expert:hover { border-color: var(--terracotta-dark); }
.sector-card.is-expert .sector-ico { background: var(--terracotta); }
.sector-card.is-expert .sector-ico svg { stroke: #fff; }
.sector-badge {
  position: absolute; top: -10px; right: 16px;
  background: var(--terracotta); color: #fff;
  font-size: 10px; font-weight: 800; letter-spacing: 0.6px; text-transform: uppercase;
  padding: 5px 13px; border-radius: 100px; border: none;
  box-shadow: var(--shadow-sm);
}

/* ===== APPROCHE / SPÉCIALITÉ (bloc bordeaux) ===== */
.specialite {
  background: var(--bordeaux-dark);
  padding: 100px 0; color: var(--paper);
}
.specialite-inner { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: center; }
.specialite-tag {
  display: inline-block; color: var(--ivory);
  background: rgba(255,255,255,0.13);
  font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  margin-bottom: 18px; padding: 6px 14px; border-radius: 100px;
}
.specialite h2 { color: var(--paper); font-size: clamp(28px, 3.4vw, 40px); font-weight: 800; margin-bottom: 20px; letter-spacing: -0.02em; }
.specialite h2::after {
  content: ""; display: block; width: 72px; height: 12px; margin: 18px 0 0;
  background:
    linear-gradient(var(--ivory), var(--ivory)) left center / 46px 5px no-repeat,
    radial-gradient(circle at center, var(--terracotta) 0 5px, transparent 6px) right center / 12px 12px no-repeat;
}
.specialite p { color: rgba(255,255,255,0.82); font-size: 16px; line-height: 1.8; margin-bottom: 14px; }
.specialite-points { list-style: none; margin: 26px 0 34px; }
.specialite-points li {
  display: flex; align-items: flex-start; gap: 13px;
  color: rgba(255,255,255,0.9); font-size: 15px;
  padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,0.12);
}
.specialite-points li::before {
  content: ''; flex-shrink: 0; width: 19px; height: 19px; margin-top: 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%23e4d8c8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 9.5 17 19 6.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center;
}
.specialite-visual {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--radius);
  padding: 34px;
  backdrop-filter: blur(2px);
}
.specialite-visual .mini-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 22px; }
.mini-stat {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px; padding: 20px; text-align: center;
}
.mini-stat .big { font-size: 30px; font-weight: 900; color: var(--ivory); letter-spacing: -0.02em; }
.mini-stat .small { font-size: 12.5px; color: rgba(255,255,255,0.65); margin-top: 5px; }
.pennylane-badge {
  display: flex; align-items: center; gap: 13px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px; padding: 17px;
}
.pennylane-badge .sketch-ico svg { stroke: var(--ivory); width: 26px; height: 26px; flex-shrink: 0; stroke-width: 1.85; }
.pennylane-badge p { color: rgba(255,255,255,0.85); font-size: 13.5px; margin: 0; line-height: 1.55; }
.pennylane-badge strong { color: var(--ivory); font-weight: 600; }

/* ===== MÉTHODE / PARTENARIAT ===== */
.partner-inner { display: grid; grid-template-columns: 0.92fr 1.08fr; gap: 56px; align-items: center; position: relative; z-index: 1; }
.method-steps { list-style: none; display: flex; flex-direction: column; gap: 20px; margin-bottom: 26px; }
.method-step { display: flex; gap: 16px; align-items: flex-start; }
.method-num {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 13px;
  background: var(--bordeaux); color: #fff; display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 17px;
  box-shadow: 0 0 0 4px var(--bordeaux-soft), 0 6px 14px rgba(176,73,58,0.24);
}
.method-step h4 { font-size: 16.5px; font-weight: 800; margin-bottom: 4px; letter-spacing: -0.01em; }
.method-step p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; }
.partner-claim {
  display: flex; align-items: center; gap: 16px;
  margin: 10px 0 28px; padding: 0;
  font-size: 18px; font-weight: 600; line-height: 1.55;
  color: var(--ink-soft); letter-spacing: -0.005em;
}
.partner-claim-ico {
  flex-shrink: 0; width: 48px; height: 48px; border-radius: 14px;
  background: var(--bordeaux-soft);
  display: inline-flex; align-items: center; justify-content: center;
}
.partner-claim-ico svg { width: 25px; height: 25px; stroke: var(--bordeaux); }
.partner-claim strong { color: var(--bordeaux); font-weight: 800; }
.partner-visual { position: relative; }
.browser-frame {
  border: 1px solid var(--line-soft); border-radius: 12px; overflow: hidden;
  box-shadow: var(--shadow); background: #fff; margin: 0;
}
.browser-bar { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--surface); border-bottom: 1px solid var(--line-soft); }
.browser-dots { display: flex; gap: 6px; }
.browser-dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--line-soft); }
.browser-dots i:nth-child(1) { background: var(--bordeaux); }
.browser-dots i:nth-child(2) { background: var(--terracotta); }
.browser-url { font-size: 12px; color: var(--gray); font-weight: 500; display: flex; align-items: center; gap: 7px; }
.browser-url .sketch-ico svg { width: 13px; height: 13px; stroke: var(--gray); }
.browser-frame img { display: block; width: 100%; height: auto; }
.partner-mock { position: relative; }
.partner-cap { font-size: 12.5px; color: var(--gray); margin-top: 30px; text-align: center; }
.partner-float {
  position: absolute; bottom: -10px; right: -18px;
  background: var(--paper-white); border: 1px solid var(--line-soft); border-radius: 10px;
  padding: 11px 15px; box-shadow: var(--shadow); display: flex; align-items: center; gap: 9px;
  font-size: 12.5px; font-weight: 600; color: var(--ink);
}
.partner-float .sketch-ico svg { width: 18px; height: 18px; stroke: var(--turquoise); }

/* ===== TÉMOIGNAGES ===== */
.testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; z-index: 1; }
.testi-card {
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 30px;
  box-shadow: var(--shadow-sm);
  position: relative;
  transition: transform var(--transition), box-shadow var(--transition);
}
.testi-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.testi-card::before {
  content: "\201C"; position: absolute; top: 8px; right: 24px;
  font-family: Georgia, 'Times New Roman', serif; font-size: 84px; line-height: 1;
  color: var(--bordeaux); opacity: 0.12; pointer-events: none;
}
.testi-quote { color: var(--bordeaux); opacity: 0.18; margin-bottom: 10px; }
.testi-quote svg { width: 38px; height: 38px; }
.testi-text { font-size: 15px; color: var(--ink); line-height: 1.7; margin-bottom: 22px; font-style: italic; }
.testi-author { display: flex; align-items: center; gap: 12px; }
.testi-avatar {
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--bordeaux-soft);
  box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px rgba(53,107,121,0.55);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; color: var(--bordeaux); font-size: 15px;
}
.testi-author .name { font-weight: 700; font-size: 14px; color: var(--ink); }
.testi-author .role { font-size: 12.5px; color: var(--gray); }
.testi-stars { display: flex; gap: 2px; margin-bottom: 14px; }
.testi-stars svg { width: 15px; height: 15px; fill: var(--bordeaux); stroke: var(--bordeaux-dark); }

/* ===== BLOG ===== */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; z-index: 1; }
.article-card {
  position: relative;
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition), box-shadow var(--transition);
}
.article-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
/* Toute la carte (vignette comprise) cliquable via le lien du titre */
.article-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.article-card .article-tag { position: relative; z-index: 2; }
.article-thumb, .article-card .article-body { cursor: pointer; }
.article-thumb {
  aspect-ratio: 16/9;
  background: var(--grad);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.22);
  font-size: 50px; font-weight: 900;
}
.article-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.article-body { padding: 24px; }
.article-tag {
  display: inline-block; color: var(--bordeaux);
  font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 12px;
}
/* Une couleur de tag par catégorie (assortie à la couverture) */
.article-tag a { color: var(--bordeaux); text-decoration: none; }
.article-tag a[href*="/category/fiscalite"]            { color: #356b79; }
.article-tag a[href*="/category/comptabilite"]         { color: #2a3a39; }
.article-tag a[href*="/category/conseil"]              { color: #b0493a; }
.article-tag a[href*="/category/sante"]                { color: #5c2a23; }
.article-tag a[href*="/category/medecins"]             { color: #5c2a23; }
.article-tag a[href*="/category/professions-de-sante"] { color: #5c2a23; }
.article-tag a[href*="/category/creation-reprise"]     { color: #965f28; }
.article-tag a[href*="/category/digital-outils"]       { color: #2b5560; }
.article-tag a[href*="/category/droit-conseil"]        { color: #8a3a2e; }
.article-tag a[href*="/category/btp-construction"]     { color: #b0493a; }
.article-tag a[href*="/category/grande-distribution"]  { color: #2a3a39; }
.article-tag a[href*="/category/vos-activites"]        { color: #356b79; }
.article-tag a[href*="/category/bordeaux-metropole"]   { color: #b0493a; }
.article-card h3 { font-size: 18px; font-weight: 800; margin-bottom: 11px; line-height: 1.32; letter-spacing: -0.02em; }
.article-card h3 a { color: var(--ink); }
.article-card h3 a:hover { color: var(--bordeaux); }
.article-card p { font-size: 14px; color: var(--ink-soft); line-height: 1.65; margin-bottom: 18px; }
.article-meta { font-size: 12.5px; color: var(--gray); display: flex; align-items: center; gap: 7px; font-weight: 500; }

/* ===== RDV SECTION ===== */
.rdv-section { padding: 90px 0; background: var(--surface); border-top: 1px solid var(--line-soft); }
.rdv-inner { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 48px; align-items: start; }
/* La carte qui contient le calendrier Cal.com sur la home */
.rdv-form-wrap--cal { padding: 28px; }
.rdv-form-wrap--cal > p { margin-bottom: 18px; }
.rdv-form-wrap--cal .cg-cal-inline { width: 100%; min-height: 600px; overflow: auto; }
@media (max-width: 900px) { .rdv-inner { grid-template-columns: 1fr; gap: 32px; } }
.rdv-form-wrap {
  background: var(--paper-white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 40px;
  box-shadow: var(--shadow);
}
.rdv-form-wrap h3 { font-size: 25px; font-weight: 800; margin-bottom: 6px; letter-spacing: -0.02em; }
.rdv-form-wrap > p { color: var(--ink-soft); font-size: 15px; margin-bottom: 28px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 7px; }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; padding: 13px 15px;
  border: 1px solid var(--line-soft);
  border-radius: 8px; font-size: 15px; font-family: inherit; color: var(--ink);
  background: var(--surface); transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px var(--bordeaux-soft);
}
.form-group textarea { height: 112px; resize: vertical; }
.form-submit { width: 100%; justify-content: center; }

.rdv-info h3 { font-size: 32px; font-weight: 800; margin-bottom: 16px; letter-spacing: -0.02em; }
.rdv-info > p { font-size: 16px; color: var(--ink-soft); margin-bottom: 34px; line-height: 1.7; }
.bureau-photo {
  margin: 0 0 30px; border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--line-soft); box-shadow: var(--shadow-sm);
}
.bureau-photo img { width: 100%; display: block; aspect-ratio: 16/10; object-fit: cover; }
.rdv-points { list-style: none; margin-bottom: 34px; }
.rdv-points li {
  display: flex; align-items: flex-start; gap: 16px; padding: 16px 0;
  border-bottom: 1px solid var(--line-soft);
}
.rdv-points li:last-child { border-bottom: none; }
.rdv-point-icon {
  width: 46px; height: 46px;
  background: var(--bordeaux-soft);
  border-radius: 13px; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.rdv-point-icon svg { width: 21px; height: 21px; stroke: var(--bordeaux); stroke-width: 1.85; }
.rdv-point-text strong { display: block; font-size: 15px; font-weight: 700; margin-bottom: 3px; }
.rdv-point-text span { font-size: 13.5px; color: var(--ink-soft); }
.agences { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.agence-card {
  background: var(--paper-white); border: 1px solid var(--line-soft);
  border-radius: 10px; padding: 20px; box-shadow: var(--shadow-sm);
}
.agence-card h4 { font-size: 15px; color: var(--bordeaux); margin-bottom: 9px; display: flex; align-items: center; gap: 7px; font-weight: 700; }
.agence-card h4 svg { width: 16px; height: 16px; stroke: var(--bordeaux); stroke-width: 1.85; }
.agence-card p { font-size: 13px; color: var(--ink-soft); line-height: 1.6; }

/* ===== PENNYLANE CTA ===== */
.pennylane-cta {
  background: var(--bordeaux-dark);
  border: 1px solid var(--line-soft); border-radius: var(--radius);
  padding: 40px; display: flex; align-items: center; justify-content: space-between;
  gap: 28px; flex-wrap: wrap; box-shadow: var(--shadow);
}
.pennylane-cta h3 { color: var(--paper); font-size: 24px; font-weight: 800; margin-bottom: 7px; letter-spacing: -0.02em; }
.pennylane-cta p { color: rgba(255,255,255,0.72); font-size: 15px; margin: 0; max-width: 560px; }

/* ===== FOOTER ===== */
.site-footer {
  background: var(--ink); color: rgba(255,255,255,0.62);
  padding: 84px 0 30px; position: relative; overflow: hidden;
  border-top: 3px solid var(--bordeaux);
}
.site-footer::before {
  content: ""; position: absolute; top: -160px; right: -140px;
  width: 460px; height: 460px; z-index: 0; opacity: 0.05; transform: rotate(16deg);
  background: var(--m-blob-white) center/contain no-repeat;
}
.site-footer .container { position: relative; z-index: 1; }

.footer-top {
  display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 48px;
  padding-bottom: 44px; border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-id { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.footer-id .fb-name { display: block; color: #fff; font-weight: 800; font-size: 19px; letter-spacing: -0.02em; line-height: 1; }
.footer-id .fb-tag { display: block; color: var(--bordeaux-light); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; margin-top: 5px; }
.footer-brand p { font-size: 14px; line-height: 1.75; margin-bottom: 24px; max-width: 360px; }
/* Réassurance : logo Ordre des Experts-Comptables */
.footer-oec { display: flex; align-items: center; gap: 14px; margin-top: 26px; }
.footer-oec-logo { width: 104px; height: auto; border-radius: 3px; flex-shrink: 0; }
.footer-oec span { font-size: 12.5px; line-height: 1.35; font-weight: 600; color: rgba(255, 255, 255, 0.72); }
.footer-col h4 { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 18px; display: flex; align-items: center; gap: 8px; }
.footer-col h4::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--bordeaux-light); }
.footer-col ul { list-style: none; }
.footer-col ul li { margin-bottom: 12px; }
.footer-col ul li a { font-size: 14px; color: rgba(255,255,255,0.6); transition: color var(--transition), padding-left var(--transition); }
.footer-col ul li a:hover { color: var(--bordeaux-light); padding-left: 5px; }

.footer-contact {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  padding: 34px 0; border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-agence { display: flex; gap: 14px; align-items: flex-start; }
.footer-agence .fa-ico {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px;
  background: rgba(255,255,255,0.07); display: inline-flex; align-items: center; justify-content: center;
}
.footer-agence .fa-ico svg { width: 21px; height: 21px; stroke: var(--bordeaux-light); }
.footer-agence h5 { color: #fff; font-size: 15px; font-weight: 700; margin-bottom: 5px; }
.footer-agence h5 span { color: rgba(255,255,255,0.45); font-weight: 500; font-size: 12.5px; }
.footer-agence p { font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,0.6); }
.footer-agence p a { color: var(--bordeaux-light); font-weight: 600; }

.footer-bottom {
  padding-top: 24px; display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 12px; font-size: 13px;
}
.footer-bottom p { color: rgba(255,255,255,0.5); }
.footer-legal { display: flex; gap: 18px; }
.footer-bottom a { color: rgba(255,255,255,0.5); }
.footer-bottom a:hover { color: var(--bordeaux-light); }

/* ===== HEADER PHONE (bouton icône + bulle au survol) ===== */
.header-phone {
  position: relative; flex-shrink: 0;
  width: 40px; height: 40px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; border: 1px solid var(--line-soft);
  background-color: #fff;
  background-image: var(--stabilo-petrol);
  background-repeat: no-repeat;
  background-position: 0 50%;
  background-size: 0% 100%;
  color: var(--ink);
  transition: background-size 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.header-phone svg { width: 17px; height: 17px; stroke: var(--bordeaux); stroke-width: 1.9; fill: none; transition: stroke 0.25s ease; }
.header-phone:hover { background-size: 100% 100%; }
.header-phone:hover svg { stroke: #fff; }
.header-phone .num {
  position: absolute; top: calc(100% + 9px); right: 0;
  background: var(--ink); color: #fff;
  font-size: 13px; font-weight: 700; white-space: nowrap;
  padding: 6px 11px; border-radius: 8px;
  box-shadow: 0 8px 20px rgba(41,58,56,0.18);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
  pointer-events: none;
}
.header-phone .num::before {
  content: ""; position: absolute; bottom: 100%; right: 14px;
  border: 5px solid transparent; border-bottom-color: var(--ink);
}
.header-phone:hover .num, .header-phone:focus-visible .num {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.header-right { display: flex; align-items: center; gap: 11px; flex-shrink: 0; }

/* ===== HERO — LIGNE DE RÉASSURANCE ===== */
.hero-trust {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px;
  margin-top: 22px; font-size: 13.5px; color: var(--ink-soft); font-weight: 500;
}
.hero-trust span { display: inline-flex; align-items: center; gap: 7px; }
.hero-trust span svg { width: 15px; height: 15px; stroke: var(--bordeaux); stroke-width: 2; fill: none; }
.hero-trust .sep { width: 4px; height: 4px; border-radius: 50%; background: var(--line-soft); padding: 0; }

/* ===== NOTE / RATING ===== */
.rating-banner {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  margin-bottom: 40px; flex-wrap: wrap; text-align: center;
}
.rating-banner .stars { display: flex; gap: 2px; }
.rating-banner .stars svg { width: 19px; height: 19px; fill: var(--bordeaux); stroke: var(--bordeaux-dark); }
.rating-banner .rating-text { font-size: 14.5px; color: var(--ink-soft); font-weight: 500; }
.rating-banner .rating-text strong { color: var(--ink); font-weight: 800; }

/* ===== POURQUOI (objections) — réutilise .specialite ===== */
.specialite-visual .reassure-badge {
  display: flex; align-items: flex-start; gap: 13px;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px; padding: 16px; margin-top: 4px;
}
.specialite-visual .reassure-badge .sketch-ico svg { stroke: var(--ivory); width: 24px; height: 24px; flex-shrink: 0; }
.specialite-visual .reassure-badge p { color: rgba(255,255,255,0.85); font-size: 13.5px; margin: 0; line-height: 1.55; }
.specialite-visual .reassure-badge strong { color: var(--ivory); font-weight: 600; }

/* ===== FAQ ===== */
.faq-list { max-width: 820px; margin: 0 auto; position: relative; z-index: 1; }
.faq-item {
  background: var(--paper-white); border: 1px solid var(--line-soft);
  border-radius: var(--radius); margin-bottom: 14px; overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.faq-item summary {
  list-style: none; cursor: pointer; padding: 20px 24px;
  font-size: 16px; font-weight: 700; color: var(--ink);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary .faq-plus {
  flex-shrink: 0; width: 26px; height: 26px; position: relative; transition: transform var(--transition);
}
.faq-item summary .faq-plus::before, .faq-item summary .faq-plus::after {
  content: ''; position: absolute; background: var(--bordeaux); border-radius: 2px;
}
.faq-item summary .faq-plus::before { top: 12px; left: 4px; right: 4px; height: 2.5px; }
.faq-item summary .faq-plus::after { left: 12px; top: 4px; bottom: 4px; width: 2.5px; transition: transform var(--transition); }
.faq-item[open] summary .faq-plus::after { transform: rotate(90deg); opacity: 0; }
.faq-item .faq-answer { padding: 0 24px 22px; font-size: 14.5px; color: var(--ink-soft); line-height: 1.7; }

/* Bloc FAQ d'article (shortcode [cg_faq]) */
.faq-block { max-width: 760px; margin: 56px auto 0; }
.faq-block-title { font-size: clamp(24px, 3vw, 30px); font-weight: 800; letter-spacing: -0.02em; margin-bottom: 22px; }
.faq-block .faq-answer p { margin: 0 0 10px; }
.faq-block .faq-answer p:last-child { margin-bottom: 0; }
.prose .faq-block-title::after {
  content: ""; display: block; width: 54px; height: 4px; border-radius: 4px; margin-top: 14px;
  background: var(--bordeaux);
}

/* ===== BANDEAU CTA PROSPECT ===== */
.cta-band {
  background: var(--grad);
  border-radius: 24px;
  padding: 64px 40px; text-align: center; box-shadow: var(--shadow-lg);
  position: relative; overflow: hidden;
}
.cta-band h2 { color: var(--paper); font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; margin-bottom: 14px; letter-spacing: -0.02em; display: inline-block; }
.cta-band h2::after {
  content: ""; display: block; width: 72px; height: 12px; margin: 16px auto 0;
  background:
    linear-gradient(var(--ivory), var(--ivory)) left center / 46px 5px no-repeat,
    radial-gradient(circle at center, var(--terracotta) 0 5px, transparent 6px) right center / 12px 12px no-repeat;
}
.cta-band p { color: rgba(255,255,255,0.82); font-size: 17px; max-width: 560px; margin: 0 auto 30px; line-height: 1.6; }
.cta-band .btn-cream { background: var(--paper); }

/* ===== HERO DE PAGE / ARTICLE ===== */
.page-hero { background: var(--surface); border-bottom: 1px solid var(--line-soft); padding: 64px 0 40px; position: relative; overflow: hidden; }
.page-hero::before { content: ""; position: absolute; top: -130px; right: -110px; width: 400px; height: 400px; background: var(--m-blob-crimson) center/contain no-repeat; opacity: 0.05; transform: rotate(-12deg); z-index: 0; pointer-events: none; }
.page-hero::after { content: ""; position: absolute; bottom: -70px; left: -70px; width: 250px; height: 135px; background: var(--m-graph-ochre) center/contain no-repeat; opacity: 0.13; z-index: 0; pointer-events: none; }
.page-hero .container { max-width: 860px; position: relative; z-index: 1; }
.page-hero-back { display: inline-block; font-size: 13px; font-weight: 600; color: var(--bordeaux); margin-bottom: 16px; }
.page-hero-tag { display: inline-block; color: var(--bordeaux); font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 14px; }
.page-hero h1 { font-size: clamp(28px, 4.4vw, 46px); font-weight: 800; letter-spacing: -0.025em; line-height: 1.12; }
.page-hero-sub { font-size: 17px; color: var(--ink-soft); margin-top: 14px; max-width: 640px; }
.page-hero-meta { margin-top: 16px; display: flex; gap: 8px; font-size: 13.5px; color: var(--gray); font-weight: 500; }
.page-hero-meta a { color: var(--gray); }
.page-hero--article { background: var(--surface); padding-bottom: 92px; border-bottom: none; }

.single-cover { max-width: 920px; margin: -64px auto 52px; position: relative; z-index: 2; }
.single-cover img { width: 100%; border-radius: var(--radius); border: 1px solid var(--line-soft); box-shadow: var(--shadow); display: block; }

/* ===== ENCADRÉS (callouts) + finitions ===== */
.callout { display: flex; gap: 15px; align-items: flex-start; margin: 28px 0; padding: 20px 24px; border: none; border-radius: 0; background-color: var(--paper); background-repeat: no-repeat; background-position: center; background-size: 100% 100%; }
.callout-ico { flex-shrink: 0; }
.callout-ico svg { width: 26px; height: 26px; fill: none; }
.callout > div { font-size: 15px; line-height: 1.6; color: var(--ink); }
/* contour effet stabilo "fait main" : 4 traits de feutre séparés qui débordent aux coins
   (encart non fermé), + un second passage léger pour l'effet "bave" / trait irrégulier */
.callout { padding: 22px 26px; }
.callout-warn { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 160' preserveAspectRatio='none'%3E%3Cg stroke='%23d98a2b' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 16 C 95 9 205 15 300 11' stroke-width='4.5' stroke-opacity='0.55' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M297 6 C 300 56 299 105 298 154' stroke-width='4.5' stroke-opacity='0.55' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M300 146 C 205 153 80 148 0 145' stroke-width='4.5' stroke-opacity='0.55' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M4 152 C 1 100 7 50 3 12' stroke-width='4.5' stroke-opacity='0.55' vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E"); }
.callout-warn .callout-ico { color: #c47e22; }
.callout-tip { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 160' preserveAspectRatio='none'%3E%3Cg stroke='%23d98a2b' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 16 C 95 9 205 15 300 11' stroke-width='4.5' stroke-opacity='0.5' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M297 6 C 300 56 299 105 298 154' stroke-width='4.5' stroke-opacity='0.5' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M300 146 C 205 153 80 148 0 145' stroke-width='4.5' stroke-opacity='0.5' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M4 152 C 1 100 7 50 3 12' stroke-width='4.5' stroke-opacity='0.5' vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E"); }
.callout-tip .callout-ico { color: #c47e22; }
/* icône esquisse en ligne (ex-emoji ⚠️ en milieu de phrase) */
.ico-cw { display: inline-block; color: var(--bordeaux); vertical-align: -3px; }
.ico-cw svg { width: 16px; height: 16px; fill: none; }
/* espace avant le pied de page sur les pages de contenu */
.container > .cta-band, .single-article .cta-band { margin-bottom: 72px; }

/* ===== PROSE (contenu éditorial) ===== */
.prose { max-width: 760px; margin: 48px auto 0; font-size: 17px; line-height: 1.8; color: var(--ink); }
.prose > * + * { margin-top: 1.2em; }
.prose h2 { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; margin-top: 1.8em; }
.prose h3 { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; margin-top: 1.5em; }
.prose h4 { font-size: 18px; font-weight: 700; margin-top: 1.3em; }
.prose p { color: var(--ink-soft); }
.prose a { color: var(--bordeaux); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.prose a:hover { color: var(--bordeaux-dark); }
/* Boutons dans le contenu d'article : ne pas hériter du style des liens prose */
.prose a.btn { text-decoration: none; }
.prose .btn-primary, .prose .btn-gold { color: #fff; }
.prose .btn-primary:hover, .prose .btn-gold:hover { color: #fff; }
.prose .btn-cream { color: var(--ink); }
.prose .btn-cream:hover { color: var(--ink); }
.prose strong { color: var(--ink); font-weight: 700; }
.prose ul, .prose ol { padding-left: 1.4em; color: var(--ink-soft); }
.prose li { margin-top: 0.5em; }
.prose ul li::marker { color: var(--bordeaux); }
.prose blockquote {
  border-left: 3px solid var(--bordeaux); background: var(--surface);
  padding: 18px 24px; border-radius: 0 10px 10px 0; font-style: italic; color: var(--ink);
}
.prose img, .prose figure img { border-radius: var(--radius); border: 1px solid var(--line-soft); }
.prose figure { margin-top: 1.6em; }
.prose figcaption { font-size: 13px; color: var(--gray); text-align: center; margin-top: 8px; }
.prose .article-figure { margin: 32px 0; }
.prose .article-figure img { width: 100%; height: auto; }
.prose hr { border: none; height: 1px; background: var(--line-soft); width: 64px; margin: 2.4em 0; opacity: 0.7; }
.cg-table { margin: 2.2em 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 14px; }
.prose table {
  width: 100%; min-width: 560px;
  border-collapse: separate; border-spacing: 0;
  font-size: 14.5px; color: var(--ink-soft);
  border: 1px solid var(--line-soft);
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 6px 22px rgba(41,58,56,0.07);
  margin: 0;
}
.prose thead th {
  background: var(--terracotta); color: #fff;
  font-weight: 700; text-align: left; vertical-align: bottom;
  padding: 13px 16px; font-size: 13.5px; line-height: 1.3;
  letter-spacing: 0.01em; border: none; white-space: nowrap;
}
.prose tbody td {
  padding: 12px 16px; vertical-align: top; text-align: left;
  line-height: 1.5; border: none; border-top: 1px solid var(--line-soft);
}
.prose tbody tr:nth-child(even) { background: var(--cream-soft); }
.prose tbody tr:hover { background: rgba(53, 107, 121, 0.06); }
.prose tbody td:first-child { font-weight: 700; color: var(--ink); }
.prose thead th:first-child, .prose tbody td:first-child { border-right: 2px solid var(--ink); }
@media (max-width: 700px) {
  .prose table { font-size: 13px; }
  .prose thead th, .prose tbody td { padding: 10px 12px; }
}

/* ===== SIMULATEUR MICRO / RÉEL ===== */
.cg-simulateur {
  max-width: 760px; margin: 32px auto; background: var(--paper-white);
  border: 1px solid var(--line-soft); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 34px 36px; position: relative; overflow: hidden;
}
.cg-simu-head { margin-bottom: 24px; }
.cg-simu-head h3 { font-size: clamp(22px, 3vw, 28px); font-weight: 800; letter-spacing: -0.02em; margin: 4px 0 8px; }
.cg-simu-head p { color: var(--ink-soft); font-size: 15px; }
.cg-simu-form { display: grid; grid-template-columns: 1fr; gap: 22px; }
.cg-simu-form label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 600; color: var(--ink); }
.cg-simu-form select {
  padding: 13px 15px; border: 1px solid var(--line-soft); border-radius: 10px;
  font-size: 15px; font-family: inherit; color: var(--ink); background: var(--surface);
}
.cg-simu-form select:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px var(--bordeaux-soft); }
.cg-simu-hint { font-size: 12.5px; font-weight: 400; color: var(--ink-soft); line-height: 1.5; margin: -12px 0 0; }
.simu-slider-top { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 11px; }
.simu-val { color: var(--bordeaux); font-weight: 800; font-size: 16px; font-variant-numeric: tabular-nums; }
.simu-val.editable { cursor: text; border-bottom: 1px dashed rgba(176, 73, 58, 0.45); border-radius: 3px; padding: 0 3px; outline: none; }
.simu-val.editable:hover { border-bottom-color: var(--terracotta); }
.simu-val.editable:focus { border-bottom-color: var(--terracotta); background: rgba(176, 73, 58, 0.07); }
.cg-sig { margin: 0 0 4px; }
.cg-sig-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(41, 58, 56, 0.10); }
.cg-sig-row > span { font-size: 14.5px; color: var(--ink); line-height: 1.35; }
.cg-sig-row input { width: 128px; flex: none; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; border: 1.5px solid rgba(41, 58, 56, 0.18); border-radius: 9px; padding: 7px 10px; font-size: 15px; color: var(--bordeaux); background: #fff; }
.cg-sig-row input:focus { outline: none; border-color: var(--terracotta); box-shadow: 0 0 0 3px rgba(176, 73, 58, 0.10); }
.cg-sig-subtotal { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px dashed rgba(41, 58, 56, 0.20); }
.cg-sig-subtotal > span:first-child { font-size: 14px; font-weight: 700; color: var(--ink-soft); }
.cg-sig-subtotal .simu-val { font-size: 15px; }
.cg-sig-calc > span:last-child { color: var(--bordeaux); font-weight: 700; font-variant-numeric: tabular-nums; }
.cg-sig-total { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0 4px; }
.cg-sig-total > span:first-child { font-size: 15px; font-weight: 800; color: var(--ink); }
.cg-sig-input { margin-top: 10px; border-bottom: none; }
.cg-ph-services { margin-top: 8px; }
.cg-ph-title { font-weight: 700; font-size: 14px; margin: 0 0 6px; color: var(--ink); }
.cg-ph-check { display: flex; align-items: center; gap: 11px; padding: 9px 0; font-size: 14.5px; color: var(--ink); cursor: pointer; border-bottom: 1px solid rgba(41, 58, 56, 0.08); }
.cg-ph-check input { width: 18px; height: 18px; accent-color: var(--terracotta); cursor: pointer; flex: none; }
.cg-ph-hint { display: block; font-style: normal; font-size: 12px; color: var(--ink-soft); line-height: 1.3; margin-top: 2px; }
.cg-simu-verdict.ph-yes { border: 2px solid #356b79; background: rgba(53, 107, 121, 0.09); }
.cg-simu-verdict.ph-no { border: 2px solid var(--terracotta); background: rgba(176, 73, 58, 0.07); }
.cg-simu-verdict .ph-detail { display: block; margin-top: 6px; font-size: 13px; font-weight: 500; color: var(--ink-soft); }
.cg-iris-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.cg-iris-col { background: #fff; border: 1px solid rgba(41, 58, 56, 0.10); border-radius: 12px; padding: 14px 16px; }
.cg-iris-h { font-weight: 800; margin: 0 0 8px; color: #356b79; font-size: 15px; }
.cg-iris-line { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; font-size: 13.5px; color: var(--ink); border-bottom: 1px solid rgba(41, 58, 56, 0.06); }
.cg-iris-line > span:last-child { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--bordeaux); white-space: nowrap; }
.cg-iris-line.clickable { cursor: pointer; }
.cg-iris-line.clickable:hover { background: rgba(176, 73, 58, 0.04); }
.cg-iris-line.clickable em { font-style: normal; font-size: 11.5px; color: var(--terracotta); }
.cg-iris-brk-lbl { margin: 8px 0 3px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: var(--ink-soft); }
.cg-iris-brackets { margin: 3px 0 2px; padding: 8px 10px; background: rgba(53, 107, 121, 0.05); border-radius: 8px; }
.cg-iris-brackets .brk-row { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; font-size: 12.5px; color: var(--ink-soft); }
.cg-iris-brackets .brk-row > span:last-child { font-weight: 700; color: var(--bordeaux); }
.cg-iris-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
.cg-iris-col.win { border-color: #356b79; box-shadow: 0 0 0 2px rgba(53, 107, 121, 0.15); }
.cg-iris-clk { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; text-align: left; background: none; border: none; border-bottom: 1px solid rgba(41, 58, 56, 0.08); padding: 8px 0; font-size: 13.5px; color: var(--ink); cursor: pointer; font-family: inherit; }
.cg-iris-clk > span { position: relative; padding-left: 16px; }
.cg-iris-clk > span::before { content: "▸"; position: absolute; left: 0; top: 1px; color: var(--terracotta); font-size: 10px; transition: transform 0.15s ease; }
.cg-iris-clk.open > span::before { transform: rotate(90deg); }
.cg-iris-clk > b { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--bordeaux); white-space: nowrap; }
.cg-iris-tot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; padding: 10px 12px; background: rgba(53, 107, 121, 0.08); border-radius: 9px; font-weight: 800; font-size: 14.5px; color: var(--ink); }
.cg-iris-tot > b { color: #356b79; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cg-iris-clk.cg-iris-warn > span, .cg-iris-clk.cg-iris-warn > span::before, .cg-iris-clk.cg-iris-warn > b { color: var(--terracotta); }
.cg-iris-caveat { margin: 0 0 16px; padding: 14px 16px; border-left: 4px solid #356b79; background: rgba(53, 107, 121, 0.06); border-radius: 0 10px 10px 0; font-size: 14px; line-height: 1.55; color: var(--ink); }
.cg-tns-alert { margin: 0 0 16px; padding: 13px 16px; border-left: 4px solid var(--terracotta); background: rgba(176, 73, 58, 0.07); border-radius: 0 10px 10px 0; font-size: 14px; line-height: 1.55; color: var(--ink); }
.cg-mix { margin: 14px 0 18px; }
.cg-simulateur.cg-tool-collapsible.is-collapsed > *:not(.cg-simu-head):not(.cg-tool-toggle) { display: none !important; }
.cg-tool-toggle { display: block; width: 100%; margin-top: 18px; padding: 13px 20px; border: 2px dashed rgba(176, 73, 58, 0.4); border-radius: 12px; background: rgba(176, 73, 58, 0.05); color: var(--bordeaux); font-family: inherit; font-size: 15px; font-weight: 800; cursor: pointer; transition: background 0.2s; }
.cg-tool-toggle:hover { background: rgba(176, 73, 58, 0.1); }
.cg-iris-reveal { display: block; width: 100%; margin-top: 18px; padding: 15px 20px; border: 2px dashed rgba(176, 73, 58, 0.4); border-radius: 12px; background: rgba(176, 73, 58, 0.04); color: var(--bordeaux); font-family: inherit; font-size: 15.5px; font-weight: 800; cursor: pointer; transition: background var(--transition), border-color var(--transition); }
.cg-iris-reveal:hover { background: rgba(176, 73, 58, 0.09); border-color: var(--terracotta); }
.cg-iris-reveal span { font-weight: 700; }
.cg-iris-brackets .brk-tot { border-top: 1px solid rgba(41, 58, 56, 0.15); margin-top: 3px; padding-top: 5px; font-weight: 800; }
.cg-iris-brackets .brk-tot > span:last-child { color: var(--bordeaux); }
@media (max-width: 640px) { .cg-iris-detail { grid-template-columns: 1fr; } }
.cg-simulateur input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 8px; background: var(--line-soft); outline: none; margin: 0; }
.cg-simulateur input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 50%; background: var(--bordeaux); border: 3px solid #fff; box-shadow: var(--shadow-sm); cursor: pointer; }
.cg-simulateur input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--bordeaux); border: 3px solid #fff; box-shadow: var(--shadow-sm); cursor: pointer; }
.cg-simu-result { margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--line-soft); }
.cg-simu-verdict {
  background: var(--bordeaux-soft); border-radius: 12px; padding: 16px 20px; margin-bottom: 18px;
  font-size: 16px; color: var(--ink); line-height: 1.5;
}
.cg-simu-verdict strong { color: var(--bordeaux); text-transform: capitalize; }
.cg-simu-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cg-simu-card { border: 1.5px solid var(--line-soft); border-radius: 14px; padding: 20px; text-align: center; transition: border-color var(--transition), background var(--transition); }
.cg-simu-card.win { border-color: var(--bordeaux); background: var(--bordeaux-soft); box-shadow: var(--shadow-sm); }
.simu-card-label { font-size: 12px; font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 8px; }
.cg-simu-card.win .simu-card-label { color: var(--bordeaux); }
.simu-card-val { font-size: 30px; font-weight: 900; letter-spacing: -0.03em; color: var(--ink); font-variant-numeric: tabular-nums; }
.cg-simu-card.win .simu-card-val { color: var(--bordeaux); }
.simu-card-sub { font-size: 12.5px; color: var(--ink-soft); margin-top: 6px; line-height: 1.45; }
.cg-simu-be { font-size: 13.5px; color: var(--ink-soft); margin: 18px 0 0; }
.cg-simu-note { font-size: 12.5px; color: var(--gray); line-height: 1.55; margin: 14px 0 18px; }
/* montant € sous un slider en pourcentage */
.simu-subval { font-size: 12.5px; font-weight: 700; color: var(--ink-soft); margin-top: 8px; text-align: right; font-variant-numeric: tabular-nums; }
/* détail des cotisations + échéancier provisionnel (outil complet) */
.cg-detail { margin-top: 16px; font-size: 13.5px; }
.cg-detail .row { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--line-soft); }
.cg-detail .row span:last-child { font-weight: 800; font-variant-numeric: tabular-nums; color: var(--ink); }
.cg-echeancier { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.eche-card { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 12px; padding: 16px 18px; text-align: center; }
.eche-card .lbl { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; color: var(--ink-soft); }
.eche-card .val { font-size: 24px; font-weight: 900; color: var(--bordeaux); margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.eche-card .per { font-size: 11.5px; color: var(--gray); line-height: 1.4; }
@media (max-width: 560px) { .cg-simu-form, .cg-simu-cards, .cg-echeancier { grid-template-columns: 1fr; } .cg-simulateur { padding: 26px 22px; } }

/* ===== ARTICLE : progression, layout, sommaire/plan, résumé, author box ===== */
.reading-progress {
  position: fixed; left: 0; right: 0; top: 70px; height: 3px;
  background: rgba(41,58,56,0.08); z-index: 99;
}
.reading-progress > span { display: block; height: 100%; width: 0; background: var(--bordeaux); transition: width 0.1s linear; }

.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 52px; align-items: start; }
.article-main { min-width: 0; }
.single-article .prose { max-width: none; margin: 30px 0 0; }
.prose h2, .prose h3 { scroll-margin-top: 104px; }

/* Résumé */
.article-summary { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 14px; padding: 22px 26px; margin-bottom: 28px; }
.article-summary-label { font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--bordeaux); margin: 0 0 10px; display: inline-block; padding: 0 0.3em; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 34' preserveAspectRatio='none'%3E%3Cpath d='M7 13 C 70 7 150 15 232 9 C 272 6 300 12 314 12 C 318 16 317 22 312 25 C 248 30 150 23 68 29 C 44 31 17 28 7 26 C 2 22 2 17 7 13 Z' fill='%23356b79' fill-opacity='0.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 100% 1.05em; background-position: 0 72%; }
.article-summary p:last-child { font-size: 16px; color: var(--ink); line-height: 1.6; margin: 0; }

/* Sommaire (en-tête de contenu) + Plan (colonne sticky) */
.toc-title { font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 12px; }
.article-sommaire { background: var(--surface); border: 1px solid var(--line-soft); border-radius: 14px; padding: 20px 24px; margin-bottom: 32px; }
.article-toc { position: sticky; top: 104px; align-self: start; }
.toc-list { list-style: none; margin: 0; padding: 0; }
.toc-list a { display: block; padding: 6px 0 6px 14px; font-size: 14px; line-height: 1.4; color: var(--ink-soft); border-left: 2px solid var(--line-soft); transition: color 0.2s, border-color 0.2s; }
.toc-list a:hover { color: var(--cat-color, var(--bordeaux)); }
.toc-list a.active { color: var(--cat-color, var(--bordeaux)); border-color: var(--cat-color, var(--bordeaux)); font-weight: 600; }
.toc-list .toc-h3 a { padding-left: 26px; font-size: 13px; }
.toc-list .toc-item { position: relative; }
.toc-sub { list-style: none; margin: 0; padding: 0; overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.toc-item.open > .toc-sub { max-height: 640px; }
.toc-item.has-sub > .toc-h2 { padding-left: 30px; }
.toc-caret { position: absolute; top: 3px; left: 4px; z-index: 2; width: 22px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; color: var(--ink-soft); }
.toc-caret::before { content: ''; display: block; width: 6px; height: 6px; margin: 0 auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 0.2s; }
.toc-caret:hover { color: var(--cat-color, var(--bordeaux)); }
.toc-item.open > .toc-caret::before { transform: rotate(45deg); }

/* Author box */
.author-box { display: flex; gap: 20px; align-items: flex-start; margin-top: 48px; padding: 26px 28px; border: 1px solid var(--line-soft); border-radius: 16px; background: var(--surface); }
.author-avatar { width: 60px; height: auto; flex-shrink: 0; }
.author-name { font-weight: 800; font-size: 17px; letter-spacing: -0.01em; margin: 0 0 3px; }
.author-role { font-size: 13px; font-weight: 600; color: var(--bordeaux); margin: 0 0 9px; letter-spacing: 0.2px; }
.author-bio { font-size: 14.5px; color: var(--ink-soft); line-height: 1.65; margin: 0 0 12px; }
.author-bio strong { color: var(--ink); }
.author-link { font-weight: 700; font-size: 14px; color: var(--bordeaux); }
.author-link:hover { color: var(--bordeaux-dark); }

@media (min-width: 1001px) { .article-sommaire { display: none; } }
@media (max-width: 1000px) {
  .article-layout { grid-template-columns: 1fr; }
  .article-toc { display: none; }
  .author-box { flex-direction: column; gap: 14px; }
}

/* Encadré "info" réutilisable dans les articles (classe .cg-callout) */
.prose .cg-callout {
  background: var(--bordeaux-soft); border: 1px solid var(--line-soft); border-left: 3px solid var(--bordeaux);
  border-radius: 0 10px 10px 0; padding: 18px 22px; font-size: 15.5px;
}

/* ===== À LIRE AUSSI ===== */
.related { max-width: 1100px; margin: 64px auto 88px; }
/* Encart Références (format stabilo pétrole) */
.cg-refs { max-width: 760px; margin: 40px auto 0; padding: 34px 40px; border: 18px solid transparent; border-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 160' preserveAspectRatio='none'%3E%3Cg stroke='%23356b79' fill='none' stroke-linecap='round' stroke-linejoin='round' stroke-width='5' stroke-opacity='0.75'%3E%3Cpath d='M7 11 C 100 6 200 14 295 8'/%3E%3Cpath d='M293 5 C 297 56 296 106 294 155'/%3E%3Cpath d='M296 150 C 200 155 90 149 6 148'/%3E%3Cpath d='M9 154 C 5 100 11 50 7 4'/%3E%3C/g%3E%3C/svg%3E") 26 / 18px / 0 stretch; border-radius: 0; background: transparent; }
.cg-refs-title { font-size: 20px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 16px; }
.cg-refs-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.cg-refs-list li { position: relative; padding-left: 20px; font-size: 14.5px; color: var(--ink-soft); line-height: 1.5; }
.cg-refs-list li::before { content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px; border-radius: 2px; background: var(--terracotta); }
.cg-refs-note { margin: 16px 0 0; font-size: 12.5px; color: var(--gray); line-height: 1.5; }
.related-title { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 24px; text-align: center; }

/* ===== PAGINATION ===== */
.cg-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.cg-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px;
  border: 1px solid var(--line-soft); border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--ink);
  background: var(--paper-white); transition: all var(--transition);
}
.cg-pagination .page-numbers.current { background: var(--bordeaux); color: #fff; border-color: var(--line); }
.cg-pagination a.page-numbers:hover { border-color: var(--bordeaux); color: var(--bordeaux); }

/* ===== FORMULAIRE DE RECHERCHE ===== */
.cg-searchform { display: flex; gap: 8px; }
.cg-searchform input { flex: 1; padding: 13px 16px; border: 1px solid var(--line-soft); border-radius: 8px; font-size: 15px; font-family: inherit; background: var(--paper-white); }
.cg-searchform input:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px var(--bordeaux-soft); }
.cg-searchform button { background: var(--bordeaux); color: #fff; border: 1px solid var(--line-soft); border-radius: 8px; padding: 0 16px; cursor: pointer; display: flex; align-items: center; }
.cg-searchform button svg { stroke: #fff; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ===== FORMES DÉCORATIVES (ambiance moderne) ===== */
.stats, .specialite { position: relative; overflow: hidden; }
/* .hero et .cta-band ont déjà position:relative + overflow:hidden */

:root {
  --m-blob-crimson: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M108 22 C152 16 186 58 178 104 C171 146 150 188 99 182 C57 177 16 158 23 107 C29 60 58 30 108 22 Z' fill='%23b0493a'/%3E%3C/svg%3E");
  --m-blob-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M108 22 C152 16 186 58 178 104 C171 146 150 188 99 182 C57 177 16 158 23 107 C29 60 58 30 108 22 Z' fill='%23ffffff'/%3E%3C/svg%3E");
  --m-graph-ochre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 140'%3E%3Cpath d='M12 112 C60 84 82 96 116 64 S188 36 250 20' fill='none' stroke='%23356b79' stroke-width='5' stroke-linecap='round'/%3E%3Ccircle cx='116' cy='64' r='7' fill='%23356b79'/%3E%3Ccircle cx='250' cy='20' r='7' fill='%23356b79'/%3E%3C/svg%3E");
  --m-graph-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 140'%3E%3Cpath d='M12 112 C60 84 82 96 116 64 S188 36 250 20' fill='none' stroke='%23ffffff' stroke-width='5' stroke-linecap='round'/%3E%3Ccircle cx='116' cy='64' r='7' fill='%23ffffff'/%3E%3Ccircle cx='250' cy='20' r='7' fill='%23ffffff'/%3E%3C/svg%3E");
  --m-coins-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='5'%3E%3Cellipse cx='100' cy='66' rx='54' ry='20'/%3E%3Cpath d='M46 66 v36 a54 20 0 0 0 108 0 v-36'/%3E%3Cpath d='M46 84 a54 20 0 0 0 108 0'/%3E%3C/g%3E%3C/svg%3E");
}

.hero::before, .hero::after,
.section-alt::before,
.stats::before, .stats::after,
.specialite::before, .specialite::after,
.cta-band::before, .cta-band::after {
  content: ""; position: absolute; pointer-events: none; z-index: 0;
  background-repeat: no-repeat; background-size: contain; background-position: center;
}

/* Hero — blob organique cramoisi + courbe de croissance ocre */
.hero::before { width: 560px; height: 560px; top: -200px; right: -190px; background-image: var(--m-blob-crimson); opacity: 0.06; transform: rotate(-12deg); }
.hero::after  { width: 380px; height: 205px; bottom: 24px; left: -70px; background-image: var(--m-graph-ochre); opacity: 0.16; transform: rotate(-4deg); }

/* Sections alternées claires — un blob souple qui les rythme */
.section-alt::before { width: 460px; height: 460px; top: -160px; right: -150px; background-image: var(--m-blob-crimson); opacity: 0.04; transform: rotate(26deg) scaleX(-1); }

/* Bandes cramoisi / lie-de-vin — motifs clairs (pièces, courbe, blob) */
.stats::before      { width: 240px; height: 240px; top: -70px; left: -40px; background-image: var(--m-coins-white); opacity: 0.10; transform: rotate(-8deg); }
.stats::after       { width: 360px; height: 194px; bottom: -46px; right: 4%; background-image: var(--m-graph-white); opacity: 0.12; }
.specialite::before { width: 520px; height: 520px; top: -200px; right: -160px; background-image: var(--m-blob-white); opacity: 0.05; transform: rotate(18deg); }
.specialite::after  { width: 240px; height: 240px; bottom: -56px; left: -50px; background-image: var(--m-coins-white); opacity: 0.08; transform: rotate(10deg); }
.cta-band::before   { width: 360px; height: 360px; top: -150px; left: -90px; background-image: var(--m-blob-white); opacity: 0.07; transform: rotate(-20deg); }
.cta-band::after    { width: 320px; height: 172px; bottom: -28px; right: -40px; background-image: var(--m-graph-white); opacity: 0.10; }

/* Contenu au-dessus des formes */
.stats-grid, .specialite-inner { position: relative; z-index: 1; }
.cta-band > * { position: relative; z-index: 1; }

/* --- Couche supplémentaire : plus de sections, plus de silhouettes/motifs --- */
:root {
  --m-blob2-crimson: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 18 C140 20 176 44 182 88 C188 130 168 176 122 184 C82 191 40 174 26 132 C12 92 26 50 62 30 C76 22 88 17 100 18 Z' fill='%23b0493a'/%3E%3C/svg%3E");
  --m-blob3-crimson: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M96 24 C146 14 188 52 176 100 C166 142 184 180 132 188 C92 194 44 182 24 140 C6 102 14 54 52 34 C66 26 82 27 96 24 Z' fill='%23b0493a'/%3E%3C/svg%3E");
  --m-bars-crimson: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 160'%3E%3Cg stroke='%23b0493a' stroke-width='14' stroke-linecap='round'%3E%3Cline x1='40' y1='140' x2='40' y2='104'/%3E%3Cline x1='80' y1='140' x2='80' y2='72'/%3E%3Cline x1='120' y1='140' x2='120' y2='92'/%3E%3Cline x1='160' y1='140' x2='160' y2='48'/%3E%3C/g%3E%3C/svg%3E");
  --m-percent-crimson: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23b0493a' stroke-width='9' stroke-linecap='round'%3E%3Ccircle cx='38' cy='40' r='13'/%3E%3Ccircle cx='82' cy='80' r='13'/%3E%3Cline x1='30' y1='92' x2='90' y2='28'/%3E%3C/g%3E%3C/svg%3E");
  --m-euro-crimson: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23b0493a' stroke-width='9' stroke-linecap='round'%3E%3Cpath d='M84 38 a34 38 0 1 0 0 44'/%3E%3Cline x1='28' y1='54' x2='74' y2='54'/%3E%3Cline x1='24' y1='70' x2='64' y2='70'/%3E%3C/g%3E%3C/svg%3E");
}

.rdv-section { position: relative; overflow: hidden; }

.section-alt::after,
.section:not(.section-alt)::before, .section:not(.section-alt)::after,
.rdv-section::before, .rdv-section::after {
  content: ""; position: absolute; pointer-events: none; z-index: 0;
  background-repeat: no-repeat; background-size: contain; background-position: center;
}
.section:not(.section-alt) > .container,
.rdv-section > .container { position: relative; z-index: 1; }

.section-alt::after { width: 220px; height: 176px; bottom: -40px; left: -50px; background-image: var(--m-bars-crimson); opacity: 0.05; transform: rotate(-6deg); }

.section:not(.section-alt)::before { width: 460px; height: 460px; top: -150px; left: -160px; background-image: var(--m-blob2-crimson); opacity: 0.04; transform: rotate(-14deg); }
.section:not(.section-alt)::after  { width: 150px; height: 150px; bottom: -26px; right: -26px; background-image: var(--m-percent-crimson); opacity: 0.06; transform: rotate(8deg); }

.rdv-section::before { width: 420px; height: 420px; top: -130px; right: -150px; background-image: var(--m-blob3-crimson); opacity: 0.04; transform: rotate(20deg); }
.rdv-section::after  { width: 150px; height: 150px; bottom: -22px; left: -24px; background-image: var(--m-euro-crimson); opacity: 0.06; }

/* Illustration hero au trait (dans le cadre) */
.hero-illu { width: 100%; height: 100%; display: block; }
.hero-illu-cap {
  position: absolute; left: 0; right: 0; bottom: 20px; text-align: center;
  font-size: 12.5px; font-weight: 600; letter-spacing: 0.3px; color: rgba(255,255,255,0.82);
}

/* ===== BARRE CTA MOBILE (conversion) ===== */
.mobile-cta { display: none; }
@media (max-width: 768px) {
  .mobile-cta {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 200;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,0.93);
    backdrop-filter: saturate(1.4) blur(12px);
    -webkit-backdrop-filter: saturate(1.4) blur(12px);
    border-top: 1px solid var(--line-soft);
  }
  .mobile-cta-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 13px; border-radius: 12px; font-weight: 700; font-size: 14.5px;
  }
  .mcta-ghost { background: #fff; color: var(--bordeaux); border: 1px solid var(--line-soft); }
  .mcta-primary { background: var(--bordeaux); color: #fff; box-shadow: var(--shadow-offset); }
  .mobile-cta-btn .sketch-ico svg { width: 18px; height: 18px; }
  .mcta-ghost .sketch-ico svg { stroke: var(--bordeaux); }
  .mcta-primary .sketch-ico svg { stroke: #fff; }
  /* (barre CTA mobile retirée : plus de padding-bottom réservé) */
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .services-grid, .sectors-grid, .testi-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-contact { grid-template-columns: 1fr; }
  .hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .hero-visual { max-width: 460px; }
}
@media (max-width: 768px) {
  /* Header mobile plus présent et opaque. backdrop-filter retiré : sinon il devient le
     bloc conteneur du menu en position:fixed et l'empêche de couvrir tout l'écran. */
  .site-header { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .header-inner { padding: 14px 18px; }
  .header-brand-text .name { font-size: 17px; }
  .burger span { width: 24px; }

  .site-nav { display: none; }
  .site-nav.open {
    display: flex; flex-direction: column; align-items: stretch;
    position: fixed; top: 66px; left: 0; right: 0; bottom: 0; margin: 0; gap: 0;
    background: #fff; padding: 8px 22px 96px; z-index: 95; overflow-y: auto;
    border-top: 1px solid var(--line-soft); box-shadow: 0 16px 30px rgba(41,58,56,0.12);
  }
  .site-nav.open > a,
  .site-nav.open .nav-item .mega-toggle {
    display: block; width: 100%; font-size: 17px; font-weight: 600; color: var(--ink);
    padding: 17px 2px; border-bottom: 1px solid var(--line-soft);
  }
  .site-nav.open .nav-item { width: 100%; }
  .site-nav.open .mega-menu { display: none !important; }
  .site-nav.open .header-pennylane { display: none; }
  .site-nav.open .btn-rdv-header {
    margin-top: 20px; text-align: center; border-bottom: none;
    padding: 15px 24px; font-size: 16px; border-radius: 12px;
  }
  .site-nav.open a:not(.btn-rdv-header)::after { display: none; }
  /* Menu mobile : on neutralise le stabilo de survol (pas de souris au tactile) */
  .site-nav.open > a:not(.btn-rdv-header),
  .site-nav.open .mega-toggle {
    background-image: none !important;
    background-color: transparent !important;
    padding: 16px 4px !important;
    color: var(--ink) !important;
    display: flex; align-items: center; justify-content: space-between;
  }
  /* le méga ne s'ouvre pas au tap (il renvoie vers la page) : caret inutile */
  .site-nav.open .has-mega .caret { display: none; }
  /* retour visuel au toucher */
  .site-nav.open > a:not(.btn-rdv-header):active,
  .site-nav.open .mega-toggle:active { background-color: rgba(53, 107, 121, 0.09) !important; }
  /* page active : pas de stabilo sur mobile, juste le texte en accent + gras */
  .site-nav.open > a.active,
  .site-nav.open .mega-toggle.active {
    background-image: none !important;
    color: var(--bordeaux) !important;
    font-weight: 800 !important;
  }
  .burger { display: flex; }
  .hero { padding: 56px 0 56px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
  .stat-item:not(:last-child)::after { display: none; }
  .specialite-inner { grid-template-columns: 1fr; gap: 44px; }
  .partner-inner { grid-template-columns: 1fr; gap: 40px; }
  .partner-float { right: 12px; }
  .header-phone .num { display: none; }
  .header-right { gap: 12px; }
  .cta-band { padding: 40px 24px; }
  .hero-arrow { display: none; }
  .hero-photo-frame { max-width: 340px; margin: 0 auto; aspect-ratio: 5/4; }
  .section { padding: 64px 0; }
  .specialite, .rdv-section { padding: 64px 0; }
  .section-header { margin-bottom: 40px; }
  .partner-float { font-size: 11.5px; padding: 9px 12px; }
  .services-grid, .sectors-grid, .testi-grid, .blog-grid { grid-template-columns: 1fr; }
  .rdv-inner { grid-template-columns: 1fr; gap: 44px; }
  .form-row { grid-template-columns: 1fr; }
  .agences { grid-template-columns: 1fr; }
  .hero-locations { flex-wrap: wrap; }
  .partners-logos { gap: 28px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 30px; }
  .footer-bottom { flex-direction: column; gap: 10px; text-align: center; }
  .pennylane-cta { flex-direction: column; text-align: center; }
}

/* ===== PAGE SERVICES (composants home) ===== */
.page-hero--services { padding: 70px 0 52px; }

/* puces des cartes de service */
.service-points { list-style: none; margin: 16px 0 0; padding: 15px 0 0; border-top: 1px solid var(--line-soft); display: flex; flex-direction: column; gap: 8px; }
.service-points li { position: relative; padding-left: 24px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.45; }
.service-points li::before {
  content: ""; position: absolute; left: 0; top: 2px; width: 15px; height: 15px;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23356b79' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4 4 10-11'/%3E%3C/svg%3E");
}

/* méthode en 3 colonnes (réutilise method-step/method-num de la home) */
.method-steps--grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin: 0 auto 34px; max-width: 1000px; }
.method-steps--grid .method-step { background: var(--paper-white); border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 26px 24px; }

.cta-band--services { max-width: 1180px; width: calc(100% - 48px); margin: 40px auto 84px; }

@media (max-width: 820px) {
  .method-steps--grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ===== PAGE RENDEZ-VOUS (Cal.com) ===== */
.rdv2-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 44px; align-items: start; }
.rdv2-aside h2 { font-size: clamp(22px,2.6vw,28px); font-weight: 800; letter-spacing: -0.02em; margin-bottom: 18px; }
.rdv2-aside .svc-points { border-top: none; padding-top: 0; margin-top: 0; gap: 12px; }
.rdv2-aside .svc-points li { font-size: 15px; color: var(--ink); }
.rdv2-tel { margin-top: 26px; font-size: 14px; color: var(--ink-soft); line-height: 1.9; }
.rdv2-cal { background: var(--paper-white); border: 1px solid var(--line-soft); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 10px; min-height: 640px; }
.cg-cal-inline { width: 100%; min-height: 620px; overflow: auto; }
.rdv2-placeholder { padding: 40px 28px; text-align: center; }
.rdv2-ph-title { font-weight: 800; font-size: 18px; margin-bottom: 10px; }
.rdv2-placeholder p { color: var(--ink-soft); line-height: 1.7; margin-bottom: 18px; max-width: 460px; margin-left: auto; margin-right: auto; }
@media (max-width: 880px) { .rdv2-grid { grid-template-columns: 1fr; gap: 30px; } }

/* CTA prise de RDV sur la home (remplace l'ancien formulaire) */
.rdv-form-wrap--cta { display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: center; gap: 6px; }
.rdv-form-wrap--cta .rdv-cta-ico { width: 60px; height: 60px; border-radius: 16px; background: rgba(176,73,58,0.1); display: flex; align-items: center; justify-content: center; margin-bottom: 8px; }
.rdv-form-wrap--cta .rdv-cta-ico svg { width: 30px; height: 30px; stroke: var(--bordeaux); }
.rdv-form-wrap--cta h3 { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.rdv-form-wrap--cta > p { color: var(--ink-soft); line-height: 1.7; max-width: 360px; margin-bottom: 12px; }
.rdv-form-wrap--cta .btn-lg { margin-top: 4px; }
.rdv-form-wrap--cta .rdv-cta-note { font-size: 12.5px; color: #8c8377; margin-top: 12px; }

/* Section RDV home : réassurance en ligne + calendrier pleine largeur */
.rdv-reassure { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; max-width: 980px; margin: 0 auto 38px; padding: 0; }
.rdv-reassure li { display: flex; gap: 13px; align-items: flex-start; }
.rdv-reassure .rdv-point-text strong { display: block; font-size: 15px; font-weight: 800; margin-bottom: 2px; letter-spacing: -0.01em; }
.rdv-reassure .rdv-point-text span { font-size: 13px; color: var(--ink-soft); line-height: 1.5; }
.rdv-cal-full { max-width: 1000px; margin: 0 auto; background: var(--paper-white); border: 1px solid var(--line-soft); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 14px; }
.rdv-cal-full .cg-cal-inline { width: 100%; min-height: 540px; }
.rdv-phone-line { text-align: center; margin-top: 22px; font-size: 15px; color: var(--ink-soft); }
.rdv-phone-line a { font-weight: 700; color: var(--bordeaux); }
@media (max-width: 760px) { .rdv-reassure { grid-template-columns: 1fr; gap: 14px; max-width: 420px; } }
