/* Le Carpe Consulting, feuille de style du site statique.
   Reconstruction fidele du site Wix www.lecarpe.com, octobre 2026.
   Polices libres auto-hebergees : Nunito Sans (remplace Avenir LT), Josefin Sans (remplace Brandon Grotesque), Roboto Thin. */

@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/nunito-sans-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/nunito-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/nunito-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/nunito-sans-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/nunito-sans-latin-800-normal.woff2") format("woff2"); }
@font-face { font-family: "Josefin Sans"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/josefin-sans-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Josefin Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/josefin-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Josefin Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/josefin-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Josefin Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/josefin-sans-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-style: normal; font-weight: 100; font-display: swap; src: url("../fonts/roboto-latin-100-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/roboto-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/roboto-latin-400-normal.woff2") format("woff2"); }

:root {
  --navy: #0C3B5F;
  --navy-2: #0C3C60;
  --ink: #072136;
  --red: #8B0000;
  --orange: #F0A408;
  --orange-2: #F2A407;
  --orange-3: #F7A708;
  --sky: #D8E8F2;
  --grey: #757575;
  --grey-2: #C7C7C7;
  --paper: #F7F7F7;
  --card: rgba(247, 247, 247, 0.8);
  --blue: #3179AF;
  --btn-text: #454545;
  --slate: #324158;
  --f-body: "Nunito Sans", "Avenir Next", "Avenir", "Segoe UI", Arial, sans-serif;
  --f-display: "Josefin Sans", "Brandon Grotesque", "Futura", "Trebuchet MS", sans-serif;
  --f-thin: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --site-w: 1351px;
  /* separateurs en biseau (formes Wix reproduites en SVG) */
  --wedge-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 100 1920 200'%3E%3Cpath fill='%230C3B5F' d='M1920 300 0 100v200h1920z'/%3E%3C/svg%3E");
  --wedge-black: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 100 1920 200'%3E%3Cpath fill='%23000000' d='M1920 300 0 100v200h1920z'/%3E%3C/svg%3E");
  --wedge-red: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 100 1920 200'%3E%3Cpath fill='%238B0000' d='M1920 300 0 100v200h1920z'/%3E%3C/svg%3E");
  --tri-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 100 1920 200'%3E%3Cpath fill='%23FFFFFF' d='m0 300 503.884-200L1920 300H0z'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: #000;
  font-family: var(--f-body);
  font-weight: 300;
  font-size: 14px;
  line-height: 1.4;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, h5, h6, p, ul, ol { margin: 0; }
ul, ol { padding: 0; }
.wrap { position: relative; width: 100%; max-width: var(--site-w); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.spacer { height: 19px; }
.c-navy { color: var(--navy); }
.c-ink { color: var(--ink); }
.c-red { color: var(--red); }
.c-orange { color: var(--orange); }
.c-white { color: #fff; }
.c-black { color: #000; }
.c-blue { color: var(--blue); }
.c-slate { color: var(--slate); }
.c-link { color: #3D9BE9; }
.c-grey { color: var(--grey); }
.c-grey2 { color: var(--grey-2); }
.c-btn { color: var(--btn-text); }
.nb { font-weight: 300; }
b, strong { font-weight: 600; }

/* ---------- separateurs ---------- */
.wedge { position: absolute; left: 0; right: 0; height: var(--h, 34px); background: var(--wedge-navy) 0 0 / 100% 100% no-repeat; pointer-events: none; }
.wedge.top { top: 0; transform: scaleY(-1); }
.wedge.bottom { bottom: 0; }
.wedge.black { background-image: var(--wedge-black); }
.wedge.red { background-image: var(--wedge-red); }
.tri { position: absolute; left: 0; right: 0; height: 200px; background: var(--tri-white) 0 0 / 100% 100% no-repeat; pointer-events: none; }
.tri.top { top: 0; transform: scaleY(-1); }
.tri.bottom { bottom: 0; }

/* ---------- en-tete ---------- */
.site-header { background: #fff; position: sticky; top: 0; z-index: 50; border-top: 3px solid var(--red); }
.site-header .wrap { display: flex; align-items: flex-start; justify-content: space-between; height: 94px; padding: 0 86px 0 80px; }
.site-header .logo { display: block; margin-top: 5px; width: 237px; }
.site-header .logo img { width: 237px; height: 89px; object-fit: cover; }
.nav { display: flex; flex-direction: column; align-items: flex-end; }
.nav ul { list-style: none; display: flex; }
.nav-main { margin: 2px 63px 0 0; height: 36px; align-items: center; }
.nav-main a { display: block; padding: 0 7px; font-size: 14px; font-weight: 700; color: var(--grey); line-height: 36px; white-space: nowrap; }
.nav-main a:hover, .nav-main a[aria-current="page"] { color: var(--navy); }
.nav-sub { margin-top: 9px; height: 20px; align-items: center; }
.nav-sub a { display: block; padding: 0 5px; font-size: 14px; font-weight: 700; color: var(--navy); line-height: 20px; white-space: nowrap; }
.nav-sub a.is-contact { color: var(--red); padding-right: 0; }
.nav-sub a:hover { text-decoration: underline; }
.nav-toggle { display: none; }

/* ---------- bandeau d'accueil (hero) ---------- */
.hero { position: relative; overflow: hidden; background: var(--sky); height: var(--hero-h, 441px); }
.hero-bg { position: absolute; inset: 0; background-color: var(--sky); background-position: center; background-size: cover; background-repeat: no-repeat; }
.hero-box { position: absolute; left: 50%; top: var(--box-top, 48px); width: 800px; height: var(--box-h, 345px); margin-left: -400px; background: #fff; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 0 19px; }
.hero-box h1 { font-family: var(--f-thin); font-weight: 100; font-size: 60px; line-height: 1.2; color: var(--ink); letter-spacing: 0; }
.hero-box .lede { margin-top: 10px; font-family: var(--f-display); font-weight: 600; font-size: 26px; line-height: 1.4; color: #000; max-width: 560px; }
.hero-box .sub { margin-top: 10px; font-size: 20px; line-height: 1.35; color: #000; max-width: 612px; }
.hero-box .sub + .sub { margin-top: 0; }
.hero-box .poem { margin-top: 8px; font-size: 20px; line-height: 1.6; color: #000; }

/* ---------- pages de services : offres en deux colonnes ---------- */
.offers { position: relative; background: #fff; padding-bottom: 20px; }
.offer-row { position: relative; display: grid; grid-template-columns: 1fr 1fr; padding-top: 34px; }
.offer-col { padding: 14px 40px 40px 151px; }
.offer-col + .offer-col { padding-left: 122px; }
.offer-col h2 { font-size: 18px; line-height: 25px; font-weight: 600; color: #000; margin-bottom: 4px; }
.offer-col .quote { font-size: 18px; line-height: 1.35; color: #000; margin-top: 22px; max-width: 452px; }
.offer-col .quote.small { font-size: 16px; }
.offer-col .label { font-size: 14px; line-height: 1.4; color: #000; margin-top: 22px; }
.offer-col .label.b { font-weight: 600; }
.offer-col ul { list-style: disc; padding-left: 23px; margin-top: 1px; font-size: 13px; line-height: 1.4; max-width: 420px; }
.offer-col ul.lg { font-size: 14px; }
.offer-col ul.xl { font-size: 14px; line-height: 1.6; }
.offer-col ul li { margin: 0; }
.offer-col .media { margin-top: 36px; }
.offer-col .cert { margin-top: 14px; }
.offer-col .cert + .cert { margin-top: 12px; }
.offer-col .cert img { width: 391px; height: 97px; object-fit: cover; }

/* ---------- bandeau de contact (CTA) ---------- */
.cta-band { position: relative; height: var(--cta-h, 277px); background: linear-gradient(270deg, rgba(240, 164, 8, 0.15) 0%, #fff 100%); overflow: hidden; }
.cta-band .inner { position: relative; width: 853px; height: 203px; margin: 36px auto 0; background: #000; color: #fff; }
.cta-band.home .inner { background: #fff; color: #000; margin-top: 23px; height: 200px; }
.cta-band .inner .title { position: absolute; left: 17px; top: 29px; font-family: var(--f-thin); font-weight: 100; font-size: 40px; line-height: 56px; color: #fff; white-space: nowrap; }
.cta-band .inner .title.xl { font-size: 56px; }
.cta-band.home .inner .title { color: #000; left: 8px; top: 31px; }
.cta-band .inner .lines { position: absolute; left: 15px; top: 92px; width: 600px; font-size: 18px; line-height: 25px; color: var(--orange); }
.cta-band .inner .lines.sm { font-size: 16px; line-height: 22px; top: 98px; }
.cta-band.home .inner .lines { left: 11px; top: 105px; width: 547px; font-weight: 600; }
.cta-band .inner .clock { position: absolute; right: 100px; top: 107px; display: flex; align-items: center; gap: 8px; }
.cta-band .inner .clock img { width: 29px; height: 31px; }
.cta-band .inner .clock span { font-family: var(--f-display); font-weight: 600; font-size: 32px; line-height: 45px; color: var(--orange); }
.cta-band.home .inner .clock { right: 90px; top: 94px; }
.btn { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 20px; border: 4px solid #fff; background: var(--orange-2); color: var(--btn-text); font-family: var(--f-body); font-weight: 800; font-size: 16px; line-height: 1; white-space: nowrap; cursor: pointer; }
.btn:hover { background: var(--orange-3); }
.cta-band .inner .btn { position: absolute; right: 131px; bottom: 15px; }
.cta-band.home .inner .btn { right: 74px; bottom: 10px; background: var(--orange-3); color: #474747; }

/* ---------- experts et partenaires ---------- */
.experts { position: relative; background: #fff; padding: 52px 0 50px; }
.experts > h2 { font-family: var(--f-thin); font-weight: 100; font-size: 56px; line-height: 1.2; color: var(--ink); text-align: center; margin: 0 auto 30px; max-width: 980px; }
.experts .cards { display: grid; grid-template-columns: repeat(2, 648px); justify-content: center; row-gap: 0; }
.experts .cards.one { grid-template-columns: 648px; }
.experts .cards.three > :nth-child(3) { grid-column: 1 / span 2; justify-self: center; }
.card { position: relative; background: var(--card); min-height: 314px; padding: 15px 16px 18px 195px; }
.card img.portrait { position: absolute; left: 0; top: 18px; width: 181px; height: 271px; object-fit: cover; }
.card img.portrait.tall { width: 198px; height: 294px; left: -17px; top: 15px; }
.card .name { font-size: 18px; font-weight: 600; color: #000; line-height: 1.2; margin-bottom: 20px; }
.card p { font-size: 13px; line-height: 18.2px; color: #000; margin-bottom: 18px; max-width: 442px; }
.card p.lg, .card ul.lg { font-size: 14px; line-height: 19.6px; }
.card ul { list-style: disc; padding-left: 23px; font-size: 13px; line-height: 18.2px; margin-bottom: 18px; max-width: 420px; }
.card p:last-child, .card ul:last-child { margin-bottom: 0; }

/* ---------- accueil ---------- */
.audiences { background: var(--navy-2); padding: 15px 80px 18px; }
.audiences .boxes { display: grid; grid-template-columns: 592px 596px; gap: 1px; justify-content: center; }
.audiences .box { background: var(--ink); min-height: 352px; padding: 21px 60px 20px 63px; }
.audiences .box h2 { font-family: var(--f-display); font-weight: 600; font-size: 26px; line-height: 1.4; color: var(--orange-2); text-align: center; }
.audiences .box h2 .l2 { display: block; color: #fff; font-size: 21px; }
.audiences .box.alt h2 .l2 { font-size: 18px; }
.audiences .box p { margin-top: 9px; font-family: var(--f-display); font-weight: 300; font-size: 21px; line-height: 1.4; color: #fff; text-align: justify; }
.kpis { background: var(--navy); height: 210px; }
.kpis .wrap { display: grid; grid-template-columns: repeat(4, 284px); justify-content: center; }
.kpi { height: 210px; margin-top: -15px; background: var(--navy); text-align: center; padding: 45px 29px 0; }
.kpi .num { font-family: var(--f-thin); font-weight: 300; font-size: 60px; line-height: 84px; color: var(--orange); }
.kpi .lbl { font-size: 16px; line-height: 28.8px; font-weight: 600; color: #fff; }
.services { position: relative; background: #fff; padding: 74px 0 60px; }
.services h2 { font-family: var(--f-display); font-weight: 300; font-size: 36px; line-height: 1.4; color: var(--navy); text-align: center; max-width: 927px; margin: 0 auto; }
.services .grid { display: grid; grid-template-columns: repeat(4, 300px); justify-content: center; margin-top: 24px; }
.scard { position: relative; width: 300px; height: 532px; display: block; }
.scard:nth-child(5) { grid-column: 2; }
.scard img { width: 286px; height: 335px; object-fit: cover; }
.scard .sbox { position: absolute; left: 21px; top: 280px; width: 279px; min-height: 213px; background: #fff; padding: 37px 18px 20px; }
.scard .sbox h3 { font-size: 18px; line-height: 25.2px; font-weight: 800; color: var(--ink); margin-bottom: 50px; }
.scard .sbox p { font-size: 14px; line-height: 19.6px; font-weight: 600; color: #000; }
.scard .sbox p + p { margin-top: 0; }
.scard:hover .sbox h3 { color: var(--red); }
.whitepapers { background: var(--navy-2); padding-bottom: 50px; }
.whitepapers .strip { position: relative; background: #fff; min-height: 1067px; padding: 13px 0 60px; }
.whitepapers h2 { font-family: var(--f-thin); font-weight: 100; font-size: 60px; line-height: 84px; color: var(--orange-3); text-align: center; }
.whitepapers .layout { position: relative; width: 902px; margin: 89px auto 0; min-height: 780px; }
.whitepapers .cover { position: absolute; width: 262px; height: 369px; display: block; }
.whitepapers .cover img { width: 262px; height: 369px; object-fit: cover; border-radius: 2px; }
.whitepapers .cover.lb4 { left: 0; top: 0; }
.whitepapers .cover.lb3 { left: 320px; top: 0; }
.whitepapers .cover.lb2 { left: 640px; top: 0; }
.whitepapers .cover.lb1 { left: 0; top: 402px; }
.whitepapers .text { position: absolute; left: 327px; top: 410px; width: 573px; }
.whitepapers .text h3 { font-family: var(--f-display); font-weight: 300; font-size: 36px; line-height: 50.4px; color: var(--slate); margin-bottom: 6px; }
.whitepapers .text p { font-size: 14px; line-height: 19.6px; font-weight: 600; color: #000; margin-top: 0; width: 564px; }
.whitepapers .text p.gap { margin-top: 20px; }
.references { background: #000; padding: 30px 0 7px; }
.references h2 { font-family: var(--f-thin); font-weight: 100; font-size: 60px; line-height: 84px; color: #fff; text-align: center; }
.references .logos { position: relative; width: 855px; max-width: 100%; height: 100px; margin: 0 auto; overflow: hidden; }
.references .track { display: flex; gap: 33px; width: max-content; padding-top: 2px; animation: logos-slide 32s linear infinite; }
.references .logos:hover .track { animation-play-state: paused; }
.references .track img { width: 189px; height: 95px; object-fit: cover; flex: 0 0 auto; }
@keyframes logos-slide { from { transform: translateX(0); } to { transform: translateX(-1776px); } }
@media (prefers-reduced-motion: reduce) { .references .track { animation: none; } }
.cta-band.home { height: 252px; background: linear-gradient(0deg, var(--navy-2) 0%, #000 100%); }

/* ---------- a propos ---------- */
.about-intro { position: relative; background: #fff; padding: 33px 0 27px; }
.about-intro .card.wide, .about-bio .card.wide { width: 969px; margin: 0 auto; padding: 15px 20px 20px 361px; min-height: 540px; }
.about-intro .card.wide img.calli { position: absolute; left: 0; top: 18px; width: 350px; height: 522px; object-fit: cover; }
.about-intro .card.wide h3 { font-size: 16px; line-height: 22.4px; font-weight: 800; color: var(--ink); }
.about-intro .card.wide p { margin-bottom: 0; max-width: 590px; }
.about-intro .card.wide p.gap { margin-top: 18px; }
.about-bio { position: relative; background: #fff; padding: 69px 0 0; }
.about-bio h2 { font-family: var(--f-thin); font-size: 60px; line-height: 84px; color: var(--ink); text-align: center; }
.about-bio h2.b { font-weight: 300; }
.about-bio h2.t { font-weight: 100; }
.about-bio .card.wide { margin-top: 20px; padding: 24px 16px 20px 362px; min-height: 828px; }
.about-bio .card.wide img.portrait { position: absolute; left: 5px; top: 23px; width: 340px; height: 613px; object-fit: cover; }
.about-bio .card.wide .bio { font-size: 13px; line-height: 18.2px; color: #000; max-width: 602px; }
.about-bio .card.wide .bio p { margin-bottom: 0; }
.about-bio .card.wide .bio p + p { margin-top: 18px; }
.about-bio .card.wide .linkedin { position: absolute; right: 6px; bottom: 7px; width: 69px; height: 69px; }
.cta-band.about { height: 301px; }
.cta-band.about .inner { height: 216px; margin-top: 34px; }
.cta-band.about .inner .title { font-size: 56px; top: 24px; left: 22px; }
.cta-band.about .inner .lines { top: 98px; left: 22px; }
.cta-band.about .inner .btn { right: 117px; bottom: 28px; }
.cta-band.about .inner .clock { right: 88px; top: 100px; }

/* ---------- pages juridiques ---------- */
.legal { background: var(--paper); padding: 10px 0 40px; }
.legal h1, .legal h2.title { font-family: var(--f-thin); font-weight: 100; font-size: 60px; line-height: 72px; color: #000; text-align: center; margin: 0 auto; max-width: 949px; padding: 0 0 144px; }
.legal.cgs h1 { padding-top: 21px; }
.legal h2.title { color: var(--ink); line-height: 84px; padding: 36px 0 168px; }
.legal p.h18 { font-size: 18px; line-height: 25.2px; }
.legal .cols { display: grid; grid-template-columns: 465px 460px; column-gap: 24px; justify-content: center; }
.legal .cols.narrow { grid-template-columns: 418px 418px; column-gap: 53px; }
.legal p { font-size: 16px; line-height: 22.4px; color: #000; }
.legal p.h { font-size: 18px; line-height: 25.2px; font-weight: 600; }
.legal p.h16 { font-weight: 600; }
.legal p.sp { height: 22px; }
.legal ul { list-style: disc; padding-left: 28px; font-size: 16px; line-height: 22.4px; }
.legal .intro { max-width: 949px; margin: 0 auto 10px; }
.legal .art { margin-bottom: 22px; }
.legal .art .t { font-weight: 600; }

/* ---------- contact ---------- */
.contact-hero { position: relative; min-height: 842px; background-color: var(--navy); background-position: center; background-size: cover; background-repeat: no-repeat; padding: 95px 0 90px; }
.contact-hero .panel { position: relative; width: 853px; min-height: 427px; margin: 0 auto; background: #fff; padding: 36px 20px 30px 9px; display: grid; grid-template-columns: 284px 1fr; column-gap: 9px; }
.contact-hero h1 { font-family: var(--f-thin); font-weight: 100; font-size: 56px; line-height: 56px; color: #000; }
.contact-hero .pitch { margin-top: 27px; font-size: 18px; line-height: 25.2px; font-weight: 600; color: var(--orange); }
.contact-hero .pitch p + p { margin-top: 25px; }

/* ---------- formulaires ---------- */
.form { display: grid; grid-template-columns: repeat(3, 157px); column-gap: 16px; row-gap: 22px; font-size: 14px; }
.form label { display: block; font-size: 14px; line-height: 14px; color: #000; margin-bottom: 8px; }
.form input, .form textarea { width: 100%; height: 40px; border: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.5); background: #fff; font: inherit; font-size: 14px; padding: 0 4px; color: #000; outline: none; }
.form textarea { height: 71px; resize: vertical; padding-top: 8px; }
.form input:focus, .form textarea:focus { border-bottom-color: var(--navy); }
.form .consent { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; line-height: 14px; }
.form .consent input { width: 14px; height: 14px; margin: 0; }
.form .consent a { text-decoration: underline; }
.form .submit { height: 31px; padding: 0 12px; background: #fff; border: 1.7px solid #000; font-family: var(--f-body); font-weight: 600; font-size: 14px; color: var(--btn-text); cursor: pointer; white-space: nowrap; }
.form .submit:hover { background: #000; color: #fff; }
.form .note { grid-column: 1 / -1; font-size: 12px; color: var(--grey); }
.hp { display: none !important; }

/* ---------- pro bono : appel a candidatures ---------- */
.probono-call { position: relative; background: var(--paper); padding: 38px 0 0; }
.probono-call .wrap { display: grid; grid-template-columns: 397px 543px; justify-content: center; }
.probono-call img { width: 397px; height: 506px; object-fit: cover; }
.probono-call .panel { background: var(--navy); color: #fff; height: 506px; padding: 27px 31px 20px 26px; }
.probono-call .panel h2, .probono-apply .panel h2 { font-family: var(--f-thin); font-weight: 100; font-size: 48px; line-height: 67.2px; color: #fff; }
.probono-call .panel .lines { margin-top: 87px; width: 474px; font-size: 16px; line-height: 22.4px; color: var(--orange); }
.probono-call .panel .lines p + p { margin-top: 0; }
.probono-apply { background: var(--paper); padding: 0 0 55px; }
.probono-apply .wrap { display: grid; grid-template-columns: 397px 535px; column-gap: 8px; justify-content: center; align-items: start; }
.probono-apply .panel { background: var(--navy); height: 428px; padding: 104px 28px 0; }
.probono-apply .panel h2 { line-height: 67.2px; }
.probono-apply .panel .lines { margin-top: 15px; font-size: 16px; line-height: 22.4px; color: var(--orange); width: 319px; }
.probono-apply .panel .lines p.gap { margin-top: 22px; }
.probono-apply form { margin-top: 31px; padding-left: 18px; }
.probono-apply .form { row-gap: 32px; }
.probono-apply .form input, .probono-apply .form textarea { border-bottom-color: rgba(139, 0, 0, 0.5); }
.probono-apply .form { grid-template-rows: auto auto auto auto; }
.probono-apply .form .wide-ta { grid-column: 1 / span 2; grid-row: 3 / span 2; }
.probono-apply .form .wide-ta textarea { height: 192px; width: 248px; }
.probono-apply .form .url { grid-column: 3; grid-row: 3; }
.probono-apply .form .url textarea { height: 90px; width: 232px; }
.probono-apply .form .tail { grid-column: 3; grid-row: 4; width: 226px; margin-top: -20px; }
.probono-apply .form .tail .consent { margin-bottom: 10px; }
.probono-apply .form .submit.blue { width: 226px; background: var(--blue); border: 1px solid var(--blue); color: #fff; }
.probono-apply .form .submit.blue:hover { background: var(--navy); border-color: var(--navy); }

/* ---------- pied de page ---------- */
.site-footer { position: relative; background: #fff; height: 251px; overflow: hidden; }
.site-footer .wrap { display: grid; grid-template-columns: 450px 451px 450px; height: 251px; }
.site-footer .col1 { position: relative; }
.site-footer .col1 .tea { position: absolute; left: 64px; top: 36px; width: 317px; height: 103px; border-radius: 4px; object-fit: cover; }
.site-footer .col1 .li { position: absolute; left: 76px; top: 98px; display: flex; align-items: center; gap: 12px; color: var(--blue); font-size: 14px; font-weight: 700; line-height: 19.6px; }
.site-footer .col1 .li img { width: 54px; height: 52px; }
.site-footer .col3 { padding: 40px 71px 0 96px; text-align: right; font-size: 14px; line-height: 19.6px; color: var(--grey-2); }
.site-footer .col3 .brand { font-size: 16px; line-height: 22.4px; font-weight: 700; color: var(--grey); }
.site-footer .col3 .links { margin-top: 19px; line-height: 17px; }
.site-footer .col3 .links a { display: block; color: var(--grey-2); }
.site-footer .col3 .links a:hover { color: var(--navy); }

/* ---------- pages livres blancs et quickstart (gabarit provisoire, en attente de capture) ---------- */
.lb { background: var(--paper); padding: 40px 0 60px; }
.lb .wrap { max-width: 949px; }
.lb h1 { font-family: var(--f-thin); font-weight: 100; font-size: 48px; line-height: 1.2; color: var(--ink); margin-bottom: 20px; }
.lb p { font-size: 16px; line-height: 22.4px; margin-bottom: 14px; }
.lb .btn { margin-top: 10px; }


/* ---------- quickstart ---------- */
.hero-box .qs-lede { margin-top: 32px; font-size: 24px; line-height: 1.4; font-weight: 600; color: var(--blue); max-width: 709px; }
.qs-pitch { position: relative; background: #fff; padding: 47px 0 20px; }
.qs-pitch h2 { font-family: var(--f-display); font-weight: 600; font-size: 26px; line-height: 36.4px; color: var(--blue); text-align: center; max-width: 805px; margin: 0 auto; }
.qs-pitch .visuals { display: flex; justify-content: center; align-items: flex-start; gap: 99px; margin: 35px auto 57px; max-width: 805px; }
.qs-pitch .visuals .cover img { width: 191px; height: 247px; object-fit: cover; border-radius: 3px; }
.qs-pitch .visuals .visual img { width: 501px; height: 249px; object-fit: cover; border-radius: 4px; }
.qs-more { position: relative; background: #fff; padding: 28px 0 40px; text-align: center; }
.qs-more h2 { font-family: var(--f-thin); font-weight: 100; font-size: 40px; line-height: 56px; color: var(--ink); max-width: 845px; margin: 0 auto 22px; }
.qs-more p { font-size: 18px; line-height: 25.2px; color: #000; }
.qs-more p a { text-decoration: underline; }
.btn-outline { display: inline-block; margin: 15px 0 28px; padding: 0 12px; height: 25px; line-height: 21px; border: 2px solid #000; background: #fff; font-size: 14px; font-weight: 700; color: var(--btn-text); }
.btn-outline:hover { background: #000; color: #fff; }
.experts.qs-about .cards { grid-template-columns: repeat(2, 656px); }
.card.qs { min-height: 325px; padding: 15px 16px 40px 195px; }
.card.qs img.portrait { width: 178px; height: 267px; top: 17px; }
.card.qs .li-badge { position: absolute; right: 52px; bottom: 0; }
.card.qs .li-badge img { width: 51px; height: 48px; }

/* ---------- livres blancs ---------- */
.lb-page { background: #fff; padding: 24px 0 40px; }
.lb-page .dl { font-family: var(--f-display); font-weight: 600; font-size: 26px; line-height: 36.4px; color: var(--red); text-align: center; margin: 0 auto 15px; max-width: 980px; }
.lb-page .dl a:hover { text-decoration: underline; }
.lb-page .viewer { max-width: 1351px; margin: 0 auto; }
.lb-page .viewer iframe { display: block; width: 100%; height: 1441px; border: 0; background: #525659; }
.lb-page .fallback { text-align: center; font-size: 14px; margin-top: 12px; color: var(--grey); }
.lb-page .fallback a { text-decoration: underline; }

/* ---------- partenaires ---------- */
.pt-intro { position: relative; background: #fff; padding: 37px 0 25px; }
.pt-intro .card.intro { width: 900px; min-height: 252px; margin: 0 auto; padding: 10px 3px 10px 258px; }
.pt-intro .card.intro img { position: absolute; left: 7px; top: 8px; width: 239px; height: 229px; object-fit: cover; }
.pt-intro .card.intro p { font-size: 18px; line-height: 25.2px; font-weight: 300; color: #000; max-width: 639px; margin: 0; }
.pt-grid { position: relative; background: #fff; padding: 19px 0 0; }
.pt-grid .grid { display: grid; grid-template-columns: repeat(6, 190px); column-gap: 20px; row-gap: 20px; justify-content: center; padding: 0 20px 0; }
.thumb { position: relative; display: block; width: 190px; height: 357px; }
.thumb img { position: absolute; left: -2px; top: 3px; width: 167px; height: 242px; object-fit: cover; }
.thumb .tbox { position: absolute; left: 23px; top: 158px; width: 167px; min-height: 118px; background: #fff; padding: 14px 10px 10px 13px; font-size: 12px; line-height: 16.8px; color: #000; }
.thumb .tbox b { display: block; font-weight: 700; }
.thumb .tbox > span { display: block; margin-top: 37px; }
.thumb:hover .tbox b { color: var(--red); }
.pt-band { position: relative; background: linear-gradient(270deg, rgba(255, 255, 255, 0.15) 0%, #fff 100%); height: 155px; padding-top: 53px; }
.pt-band h2 { font-family: var(--f-thin); font-weight: 100; font-size: 66px; line-height: 92.4px; color: var(--navy); text-align: center; }
.pt-profile { position: relative; background: #fff; padding: 75px 0 30px; }
.pt-profile h2 { font-family: var(--f-thin); color: var(--ink); text-align: center; font-size: 60px; line-height: 84px; max-width: 947px; margin: 0 auto; }
.pt-profile h2.name { font-weight: 300; display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.pt-profile h2.name img { display: inline-block; height: auto; }
.pt-profile h2.role { font-weight: 100; }
.pt-profile .card.wide { width: 969px; margin: 20px auto 0; padding: 24px 20px 24px 368px; min-height: 546px; }
.pt-profile .card.wide img.portrait { position: absolute; left: 7px; top: 24px; width: 350px; height: 522px; object-fit: cover; }
.pt-profile .card.wide .txt { font-size: 13px; line-height: 18.2px; color: #000; max-width: 590px; }
.pt-profile .card.wide .txt p { margin: 0 0 18px; max-width: 590px; }
.pt-profile .card.wide .txt p.b { font-weight: 600; margin-bottom: 0; }
.pt-profile .card.wide .txt p.lg { font-size: 14px; line-height: 19.6px; }
.pt-profile .card.wide .txt p.ext { color: #3D9BE9; font-weight: 600; text-decoration: underline; }
.pt-profile .card.wide .txt ul { list-style: disc; padding-left: 24px; margin: 0 0 18px; max-width: 567px; }
.pt-profile .card.wide .linkedin { position: absolute; right: 11px; bottom: 7px; width: 69px; height: 69px; }
.pt-join { position: relative; padding-top: 38px; padding-bottom: 60px; }
.pt-join .panel { height: 371px; padding: 45px 30px 0 58px; }
.pt-join .panel h2 { font-size: 56px; line-height: 84px; }
.pt-join .panel .lines { margin-top: 36px; }
.pt-join .form .url.single input { width: 240px; }
.pt-join .form .submit.blue.tall { width: 240px; height: 60px; }
.pt-join .form .tail { width: 240px; }

/* ---------- mobile ---------- */
@media (max-width: 1100px) {
  .site-header .wrap { padding: 0 24px; }
  .nav-main { margin-right: 0; }
  .experts .cards, .experts .cards.three > :nth-child(3), .experts.qs-about .cards { grid-template-columns: minmax(0, 648px); grid-column: auto; justify-self: auto; }
  .pt-grid .grid { grid-template-columns: repeat(3, 190px); }
  .pt-profile .card.wide, .pt-intro .card.intro { width: auto; margin-left: 16px; margin-right: 16px; }
  .audiences .boxes { grid-template-columns: minmax(0, 1fr); }
  .kpis { height: auto; padding-bottom: 20px; }
  .kpis .wrap { grid-template-columns: repeat(2, minmax(0, 284px)); }
  .kpi { margin-top: 0; }
  .services .grid { grid-template-columns: repeat(2, 300px); }
  .scard:nth-child(5) { grid-column: auto; }
  .whitepapers .layout { width: auto; min-height: 0; padding: 0 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(262px, 1fr)); gap: 32px; justify-items: center; }
  .whitepapers .cover, .whitepapers .text { position: static; }
  .whitepapers .text { grid-column: 1 / -1; width: auto; }
  .whitepapers .text p { width: auto; }
  .site-footer { height: auto; }
  .site-footer .wrap { grid-template-columns: 1fr; height: auto; }
  .site-footer .col1 { height: 180px; }
  .site-footer .col3 { padding: 0 24px 50px; text-align: left; }
  .legal .cols, .legal .cols.narrow { grid-template-columns: minmax(0, 1fr); padding: 0 16px; }
  .probono-call .wrap, .probono-apply .wrap { grid-template-columns: minmax(0, 1fr); padding: 0 16px; }
  .probono-call .panel, .probono-apply .panel { height: auto; padding: 24px; }
  .probono-call .panel .lines, .probono-apply .panel .lines { width: auto; margin-top: 24px; }
  .probono-apply form { padding: 0; }
  .contact-hero .panel { width: auto; margin: 0 16px; grid-template-columns: minmax(0, 1fr); row-gap: 24px; padding: 24px 16px; }
  .about-intro .card.wide, .about-bio .card.wide { width: auto; margin: 0 16px; padding: 16px; min-height: 0; }
  .about-intro .card.wide img.calli, .about-bio .card.wide img.portrait { position: static; width: 100%; max-width: 350px; height: auto; margin-bottom: 16px; }
  .about-bio .card.wide .linkedin { position: static; margin-top: 16px; }
}
@media (max-width: 900px) {
  body { border-top-width: 2px; }
  .site-header .wrap { height: 72px; align-items: center; padding: 0 16px; }
  .site-header .logo { margin-top: 0; width: 170px; }
  .site-header .logo img { width: 170px; height: 64px; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: 72px; background: #fff; padding: 8px 16px 16px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08); align-items: stretch; }
  .nav.open { display: flex; }
  .nav ul { flex-direction: column; height: auto; margin: 0; }
  .nav-main a, .nav-sub a { padding: 8px 0; line-height: 24px; }
  .nav-toggle { display: block; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 10px; }
  .nav-toggle span { display: block; height: 2px; background: var(--navy); margin: 5px 0; }
  .hero { height: auto; min-height: 0; padding: 60px 16px; }
  .tri { height: 60px; }
  .hero-box { position: relative; left: auto; top: auto; margin: 0 auto; width: 100%; max-width: 800px; height: auto; padding: 24px 16px; }
  .hero-box h1 { font-size: 34px; }
  .hero-box .lede { font-size: 20px; }
  .hero-box .sub, .hero-box .poem { font-size: 17px; }
  .offer-row { grid-template-columns: minmax(0, 1fr); padding-top: 20px; }
  .offer-col, .offer-col + .offer-col { padding: 16px 16px 24px; }
  .offer-col .cert img { width: 100%; height: auto; }
  .cta-band, .cta-band.home, .cta-band.about { height: auto; padding: 50px 16px; }
  .cta-band .inner, .cta-band.home .inner, .cta-band.about .inner { width: auto; height: auto; margin: 0; padding: 24px 16px 24px; }
  .cta-band .inner .title, .cta-band .inner .lines, .cta-band .inner .clock, .cta-band .inner .btn, .cta-band.home .inner .title, .cta-band.home .inner .lines, .cta-band.home .inner .btn, .cta-band.home .inner .clock, .cta-band.about .inner .title, .cta-band.about .inner .lines, .cta-band.about .inner .btn, .cta-band.about .inner .clock { position: static; width: auto; white-space: normal; }
  .cta-band .inner .title, .cta-band .inner .title.xl { font-size: 30px; line-height: 1.2; margin-bottom: 16px; }
  .cta-band .inner .clock { margin: 16px 0; }
  .experts { padding: 32px 0; }
  .experts > h2 { font-size: 34px; padding: 0 16px; }
  .experts .cards { padding: 0 16px; }
  .card { padding: 16px; min-height: 0; }
  .card img.portrait, .card img.portrait.tall { position: static; width: 140px; height: auto; margin-bottom: 12px; }
  .audiences { padding: 16px; }
  .audiences .box { padding: 20px; min-height: 0; }
  .kpis .wrap { grid-template-columns: minmax(0, 1fr); }
  .services { padding: 40px 0; }
  .services h2 { font-size: 26px; padding: 0 16px; }
  .services .grid { grid-template-columns: minmax(0, 300px); }
  .whitepapers .strip { min-height: 0; }
  .whitepapers h2, .references h2 { font-size: 38px; line-height: 1.2; padding: 0 16px; }
  .whitepapers .text h3 { font-size: 26px; line-height: 1.3; }
  .legal h1, .legal h2.title { font-size: 36px; line-height: 1.2; padding: 10px 16px 30px; }
  .contact-hero { padding: 40px 0; min-height: 0; }
  .contact-hero h1 { font-size: 40px; line-height: 1.1; }
  .form { grid-template-columns: minmax(0, 1fr); }
  .probono-apply .form .wide-ta, .probono-apply .form .consent { grid-column: auto; width: auto; }
  .probono-apply .form .wide-ta textarea, .probono-apply .form .url textarea { width: 100%; }
  .probono-call img { width: 100%; height: auto; }
  .site-footer .col1 .tea { left: 16px; }
  .site-footer .col1 .li { left: 28px; }
  .about-bio h2 { font-size: 34px; line-height: 1.2; padding: 0 16px; }
  .lb h1 { font-size: 32px; }
  .experts.qs-about .cards { grid-template-columns: minmax(0, 1fr); }
  .card.qs { padding: 16px; }
  .card.qs .li-badge { position: static; display: inline-block; margin-top: 12px; }
  .qs-pitch .visuals { flex-direction: column; align-items: center; gap: 24px; }
  .qs-pitch .visuals .visual img { width: 100%; height: auto; }
  .qs-pitch h2, .qs-more h2 { padding: 0 16px; font-size: 22px; line-height: 1.3; }
  .lb-page .viewer iframe { height: 70vh; }
  .pt-intro .card.intro { width: auto; margin: 0 16px; padding: 16px; }
  .pt-intro .card.intro img { position: static; width: 100%; max-width: 239px; height: auto; margin-bottom: 12px; }
  .pt-grid .grid { grid-template-columns: repeat(auto-fit, 190px); }
  .pt-band { height: auto; padding: 40px 16px; }
  .pt-band h2 { font-size: 36px; line-height: 1.2; }
  .pt-profile { padding: 40px 0 20px; }
  .pt-profile h2 { font-size: 30px; line-height: 1.2; padding: 0 16px; }
  .pt-profile h2.name img { max-width: 60%; }
  .pt-profile .card.wide { width: auto; margin: 16px; padding: 16px; min-height: 0; }
  .pt-profile .card.wide img.portrait { position: static; width: 100%; max-width: 350px; height: auto; margin-bottom: 16px; }
  .pt-profile .card.wide .linkedin { position: static; margin-top: 12px; }
  .pt-join .panel { height: auto; padding: 24px; }
  .pt-join .panel h2 { font-size: 36px; line-height: 1.2; }
  .pt-join .form .url.single input, .pt-join .form .submit.blue.tall, .pt-join .form .tail { width: 100%; }
}
