/* =========================================================
   INTENSTRA CONSULTING — Feuille de style principale
   Palette : #ffbd59 (or) · #5db4c2 (sarcelle) · #0f1f33 (marine)
             #fdeacf (fond clair)
   Typo : Montserrat (titres) / Open Sans (texte courant)
   ========================================================= */

:root{
  --gold:        #ffbd59;
  --gold-dark:   #e6a53f;
  --teal:        #5db4c2;
  --teal-dark:   #3f8a97;
  --navy:        #0f1f33;
  --navy-soft:   #1a3049;
  --cream:       #fdeacf;
  --cream-soft:  #fff6e6;
  --white:       #ffffff;
  --ink:         #0f1f33;
  --ink-muted:   #5b6779;
  --line:        rgba(15,31,51,0.10);
  --line-light:  rgba(255,255,255,0.14);

  --font-head: 'Montserrat', sans-serif;
  --font-body: 'Open Sans', sans-serif;

  --radius-s: 10px;
  --radius-m: 18px;
  --radius-l: 28px;
  --radius-full: 999px;

  --container: 1200px;
  --shadow-soft: 0 20px 45px -20px rgba(15,31,51,0.35);
  --shadow-card: 0 12px 30px -12px rgba(15,31,51,0.18);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input{ font-family:inherit; }
h1,h2,h3,h4{
  font-family: var(--font-head);
  color: var(--navy);
  margin:0;
  line-height:1.12;
  letter-spacing:-0.01em;
}
p{ margin:0; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

:focus-visible{
  outline: 3px solid var(--teal);
  outline-offset: 3px;
  border-radius: 4px;
}

.container{
  width:100%;
  max-width: var(--container);
  margin-inline:auto;
  padding-inline: 24px;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family: var(--font-head);
  font-size: 12.5px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color: var(--teal-dark);
}
.eyebrow::before{
  content:"";
  width:26px; height:2px;
  background: var(--gold);
  display:inline-block;
}
.on-dark .eyebrow{ color: var(--gold); }
.on-dark .eyebrow::before{ background: var(--teal); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family: var(--font-head);
  font-weight:700;
  font-size:14px;
  letter-spacing:0.02em;
  padding:16px 30px;
  border-radius: var(--radius-full);
  border:2px solid transparent;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn-primary{
  background: var(--gold);
  color: var(--navy);
  box-shadow: 0 12px 24px -10px rgba(255,189,89,0.65);
}
.btn-primary:hover{ background: var(--gold-dark); transform: translateY(-2px); }

.btn-outline{
  background: transparent;
  border-color: currentColor;
  color: var(--navy);
}
.btn-outline:hover{ background: var(--navy); color: var(--white); }
.on-dark .btn-outline{ color: var(--white); }
.on-dark .btn-outline:hover{ background: var(--white); color: var(--navy); }

.btn-ghost-light{
  background: rgba(255,255,255,0.08);
  color: var(--white);
  border-color: rgba(255,255,255,0.35);
}
.btn-ghost-light:hover{ background: var(--white); color: var(--navy); border-color: var(--white); }

.btn-sm{ padding:12px 22px; font-size:13px; }

.link-arrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family: var(--font-head);
  font-weight:700;
  font-size:14px;
  color: var(--navy);
}
.link-arrow .circle{
  width:36px; height:36px;
  border-radius:50%;
  border:1.5px solid var(--line);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
  flex-shrink:0;
}
.link-arrow .circle svg{ width:15px; height:15px; }
.link-arrow:hover .circle{ background: var(--gold); border-color: var(--gold); transform: rotate(45deg); }
.on-dark .link-arrow{ color: var(--white); }
.on-dark .link-arrow .circle{ border-color: rgba(255,255,255,0.3); }

/* ---------- Header ---------- */
.site-header{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 4000;
  padding: 18px 0;
  transition: background-color .35s ease, box-shadow .35s ease, padding .35s ease;
}
.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 24px;
}
.site-header.is-scrolled{
  background: rgba(15,31,51,0.94);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px -18px rgba(0,0,0,0.5);
  padding: 12px 0;
}

.header-search{
  display:flex;
  align-items:center;
  gap:10px;
  background: rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.22);
  border-radius: var(--radius-full);
  padding: 11px 18px;
  width: 220px;
  flex-shrink:0;
  transition: border-color .2s ease, width .2s ease;
}
.header-search:focus-within{ border-color: var(--gold); width:250px; }
.header-search svg{ width:15px; height:15px; color: rgba(255,255,255,0.6); flex-shrink:0; }
.header-search input{
  background:none; border:none; outline:none;
  color: var(--white); font-size:13px; width:100%;
}
.header-search input::placeholder{ color: rgba(255,255,255,0.5); }

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
.brand img{ height:40px; width:auto; }
.brand-word{
  font-family: var(--font-head);
  font-weight:800;
  font-size:16px;
  letter-spacing:0.06em;
  color: var(--white);
  line-height:1.15;
}
.brand-word span{
  display:block;
  font-family: var(--font-body);
  font-weight:600;
  font-size:9.5px;
  letter-spacing:0.28em;
  color: var(--teal);
  margin-top:2px;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:36px;
}
.nav-links a{
  font-family: var(--font-head);
  font-size:13.5px;
  font-weight:600;
  color: rgba(255,255,255,0.86);
  position:relative;
  padding:6px 0;
  transition: color .2s ease;
}
.nav-links a::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:0;
  height:2px; background: var(--gold);
  transition: right .25s ease;
}
.nav-links a:hover, .nav-links a.is-active{ color: var(--white); }
.nav-links a:hover::after, .nav-links a.is-active::after{ right:0; }

.header-actions{ display:flex; align-items:center; gap:18px; flex-shrink:0; }

.nav-toggle{
  display:inline-flex;
  width:44px; height:44px;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,0.3);
  background:transparent;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:"";
  display:block;
  width:18px; height:2px;
  background: var(--white);
  position:relative;
  transition: all .25s ease;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background: linear-gradient(175deg, var(--navy) 0%, var(--navy-soft) 60%, #223f5c 100%);
  padding-top: 128px;
  overflow:hidden;
  color: var(--white);
  min-height: 780px;
  display:flex;
  flex-direction:column;
}
.hero-bg-word{
  position:absolute;
  top:44%; left:50%;
  transform: translate(-50%,-50%);
  width:100%;
  text-align:center;
  font-family: var(--font-head);
  font-weight:800;
  font-size: clamp(70px, 13.5vw, 200px);
  letter-spacing: 0.02em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,0.09);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
  z-index:0;
}

/* Photo plein cadre, centrée, qui mord jusqu'en bas du hero */
.hero-photo{
  position:absolute;
  left:50%;
  bottom:0;
  transform: translateX(-50%);
  width: min(30%, 420px);
  height: 72%;
  z-index:1;
  border-radius: var(--radius-l) var(--radius-l) 0 0;
  overflow:hidden;
  background:
    radial-gradient(circle at 32% 20%, rgba(255,255,255,0.20), transparent 48%),
    linear-gradient(160deg, var(--teal) 0%, #2c6a76 55%, var(--navy) 100%);
  box-shadow: 0 -10px 60px -20px rgba(0,0,0,0.5);
  display:flex; align-items:center; justify-content:center;
}
.hero-photo-motif{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.hero-photo .motif-ring{
  width:60%; aspect-ratio:1;
  border-radius:50%;
  border: 9px solid rgba(255,255,255,0.92);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 25px 50px -15px rgba(0,0,0,0.4);
}
.hero-photo .motif-sphere{
  width:56%; aspect-ratio:1; border-radius:50%;
  background: radial-gradient(circle at 34% 28%, #fff1cf 0%, #ffcf6e 20%, var(--gold) 48%, var(--gold-dark) 76%, #c9791f 100%);
  box-shadow: inset -14px -14px 30px rgba(0,0,0,0.22), 0 18px 30px -10px rgba(0,0,0,0.35);
}

.hero-trust{
  position:relative;
  z-index:2;
  margin: 26px auto 0;
  width: 230px;
}
.hero-trust-avatars{ display:flex; justify-content:flex-end; }
.hero-trust-avatars span{
  width:38px; height:38px; border-radius:50%;
  background: var(--navy-soft);
  border:2px solid var(--navy);
  outline: 1px solid rgba(255,255,255,0.25);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-head); font-weight:700; font-size:11px;
  color: var(--gold);
  margin-left:-10px;
}
.hero-trust-avatars span:first-child{ margin-left:0; }
.hero-trust-text{ position:relative; padding-left:38px; margin-top:8px; }
.trust-connector{ position:absolute; left:2px; top:-28px; }
.hero-trust p{ font-size:12px; color: rgba(255,255,255,0.6); line-height:1.4; }
.hero-trust strong{ color: var(--white); }

.hero-bottom{
  position:relative;
  z-index:2;
  flex:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 20px;
  padding-bottom: 54px;
}
.hero-copy{ max-width: 440px; }
.hero-copy .eyebrow{ margin-bottom:18px; }
.hero-copy h1{
  font-size: clamp(26px, 3vw, 36px);
  font-weight:800;
  margin-bottom:26px;
}
.hero-play{
  display:inline-flex; align-items:center; gap:12px;
  font-family: var(--font-head); font-weight:700; font-size:13px;
  color: var(--white);
  flex-shrink:0;
  margin-bottom:6px;
}
.hero-play .disc{
  width:50px; height:50px; border-radius:50%;
  background: rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.3);
  display:inline-flex; align-items:center; justify-content:center;
  transition: background .25s ease, transform .25s ease;
  flex-shrink:0;
}
.hero-play:hover .disc{ background: var(--gold); transform: scale(1.06); }
.hero-play svg{ width:13px; height:13px; }

.hero-stat{ max-width:190px; flex-shrink:0; display:flex; align-items:center; gap:12px; }
.hero-stat .num-wrap{ display:flex; align-items:baseline; flex-shrink:0; }
.hero-stat .num, .hero-stat .pct{
  font-family: var(--font-head); font-weight:800;
  font-size: 40px; color: var(--white);
  line-height:1;
}
.hero-stat .pct{ font-size:22px; }
.hero-stat .label{
  font-size:12.5px; color: rgba(255,255,255,0.6);
  line-height:1.4;
}
.hero-stat-right{ justify-content:flex-end; }

/* ---------- Section shells ---------- */
section{ position:relative; }
.section-pad{ padding: 110px 0; }
.on-light{ background: var(--white); }
.on-cream{ background: var(--cream); }
.on-dark{ background: var(--navy); color: var(--white); }
.on-dark h2, .on-dark h3, .on-dark h4{ color: var(--white); }
.section-head{ max-width: 680px; margin-bottom: 56px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ font-size: clamp(28px,3.4vw,42px); font-weight:800; margin-top:16px; }
.section-head p{ margin-top:18px; font-size:15.5px; line-height:1.75; color: var(--ink-muted); }
.on-dark .section-head p{ color: rgba(255,255,255,0.68); }

/* ---------- About / carousel section ---------- */
.about-grid{
  display:grid;
  grid-template-columns: 1fr 0.86fr;
  gap:60px;
  align-items:center;
}
.about-copy p.lead{
  font-size:15.5px; line-height:1.8; color: var(--ink-muted);
  max-width: 460px; margin: 20px 0 34px;
}
.about-stats{ display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; }
.stat-card{
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  padding: 22px 20px;
  min-width:130px;
  box-shadow: var(--shadow-card);
}
.stat-card .num{ font-family:var(--font-head); font-weight:800; font-size:28px; color: var(--navy); }
.stat-card .lbl{ font-size:12.5px; color: var(--ink-muted); margin-top:6px; line-height:1.4; }

.about-visual{ position:relative; }
.about-portrait{
  border-radius: var(--radius-l);
  aspect-ratio: 3/3.35;
  background:
    radial-gradient(circle at 70% 20%, rgba(255,189,89,0.35), transparent 50%),
    linear-gradient(160deg, var(--navy) 0%, var(--navy-soft) 55%, var(--teal-dark) 100%);
  box-shadow: var(--shadow-soft);
  display:flex; align-items:center; justify-content:center;
  position:relative;
  overflow:hidden;
}
.about-portrait::before{
  content:"";
  position:absolute; width:230%; aspect-ratio:1;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,0.1);
  top:-40%; left:-60%;
}
.about-portrait .ring-mark{
  width:46%; aspect-ratio:1; border-radius:50%;
  border: 9px solid rgba(255,255,255,0.92);
  display:flex; align-items:center; justify-content:center;
}
.about-portrait .ring-mark .sphere{
  width:58%; aspect-ratio:1; border-radius:50%;
  background: radial-gradient(circle at 34% 28%, #cdeef1 0%, var(--teal) 45%, var(--teal-dark) 100%);
  box-shadow: inset -10px -10px 22px rgba(0,0,0,0.18);
}
.about-dots{
  position:absolute; top:20px; right:20px;
  display:flex; gap:8px;
}
.about-dots span{ width:8px; height:8px; border-radius:50%; background: rgba(255,255,255,0.4); }
.about-dots span.active{ background: var(--gold); width:22px; border-radius:6px; }
.about-links{
  display:flex; flex-direction:column; gap:18px;
  margin-top:26px;
}

/* ---------- Services ---------- */
.services-grid{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--line-light);
}
.service-card{
  padding: 52px 34px;
  border-right: 1px solid var(--line-light);
}
.service-card:last-child{ border-right:none; }
.service-icon{
  width:78px; height:78px; border-radius:50%;
  background: rgba(255,189,89,0.14);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:28px;
  transition: background .3s ease, transform .3s ease;
}
.service-icon svg{ width:32px; height:32px; color: var(--gold); }
.service-card:hover .service-icon{ background: var(--gold); transform: translateY(-4px); }
.service-card:hover .service-icon svg{ color: var(--navy); }
.service-card h3{ font-size:21px; font-weight:800; margin-bottom:14px; }
.service-card p{ font-size:14.5px; line-height:1.75; color: rgba(255,255,255,0.66); margin-bottom:28px; }

/* ---------- Success / progress section ---------- */
.success-grid{
  display:grid;
  grid-template-columns: 0.85fr 1fr;
  gap:70px;
  align-items:center;
}
.success-visual{ position:relative; }
.success-portrait{
  border-radius: var(--radius-l);
  aspect-ratio: 3/3.5;
  background: linear-gradient(160deg, var(--cream-soft), var(--cream) 60%, #f6dcae 100%);
  border: 1px solid rgba(15,31,51,0.06);
  display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-card);
}
.success-portrait .ring-mark{
  width:56%; aspect-ratio:1; border-radius:50%;
  border: 9px solid var(--navy);
  display:flex; align-items:center; justify-content:center;
}
.success-portrait .ring-mark .sphere{
  width:58%; aspect-ratio:1; border-radius:50%;
  background: radial-gradient(circle at 34% 28%, #fff1cf 0%, #ffcf6e 22%, var(--gold) 50%, var(--gold-dark) 80%, #c9791f 100%);
  box-shadow: inset -10px -10px 22px rgba(0,0,0,0.2);
}
.success-badge{
  position:absolute; left:-26px; bottom:26px;
  background: var(--navy); color:var(--white);
  border-radius: var(--radius-m);
  padding:20px 22px;
  box-shadow: var(--shadow-soft);
}
.success-badge .num{ font-family:var(--font-head); font-weight:800; font-size:26px; color: var(--gold); }
.success-badge .lbl{ font-size:12px; color: rgba(255,255,255,0.7); margin-top:4px; }

.success-copy p.lead{ font-size:15.5px; line-height:1.8; color: var(--ink-muted); max-width:520px; margin:18px 0 30px; }
.progress-row{ margin-top:26px; max-width:480px; }
.progress-row + .progress-row{ margin-top:24px; }
.progress-row .head{ display:flex; justify-content:space-between; margin-bottom:10px; }
.progress-row .head span:first-child{ font-family:var(--font-head); font-weight:700; font-size:13.5px; letter-spacing:0.02em; }
.progress-row .head span:last-child{ font-family:var(--font-head); font-weight:700; font-size:13.5px; color: var(--teal-dark); }
.progress-track{ height:8px; border-radius: var(--radius-full); background: var(--line); overflow:hidden; }
.progress-fill{
  height:100%; border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--teal), var(--gold));
  width:0%;
  transition: width 1.4s cubic-bezier(.22,.9,.3,1);
}

/* ---------- Process ---------- */
.process-head{
  display:grid; grid-template-columns: 1fr 1fr;
  gap:40px; align-items:end; margin-bottom:70px;
}
.process-head p{ font-size:14.5px; line-height:1.8; color: rgba(255,255,255,0.65); }
.process-steps{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  position:relative;
}
.process-steps::before{
  content:"";
  position:absolute; left:0; right:0; top:14px;
  height:1px; background: rgba(255,255,255,0.16);
}
.process-step{ position:relative; padding-top:52px; }
.process-step .dot{
  position:absolute; top:0; left:0;
  width:14px; height:14px; border-radius:50%;
  background: var(--gold);
  box-shadow: 0 0 0 6px rgba(255,189,89,0.16);
}
.process-step .num{
  font-family:var(--font-head); font-weight:800;
  font-size: 64px; color: rgba(255,255,255,0.14);
  line-height:1; margin-bottom:16px;
  -webkit-text-stroke: 1px rgba(255,255,255,0.35);
}
.process-step h3{ font-size:18.5px; font-weight:800; margin-bottom:12px; }
.process-step p{ font-size:14px; line-height:1.75; color: rgba(255,255,255,0.62); }

/* ---------- FAQ ---------- */
.faq-grid{
  display:grid;
  grid-template-columns: 0.72fr 1fr;
  gap: 56px;
  align-items:start;
}
.faq-visual{
  border-radius: var(--radius-l);
  aspect-ratio: 3/3.3;
  background: linear-gradient(155deg, var(--navy), var(--teal-dark));
  position:relative;
  overflow:hidden;
  box-shadow: var(--shadow-card);
}
.faq-visual::after{
  content:"";
  position:absolute; width:180%; aspect-ratio:1; border-radius:50%;
  border:1.5px solid rgba(255,255,255,0.12);
  bottom:-70%; right:-50%;
}
.faq-caption{ margin-top:24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.faq-caption p{ font-family:var(--font-head); font-weight:700; font-size:16px; max-width:220px; line-height:1.4; }

.accordion-item{
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  margin-bottom:16px;
  overflow:hidden;
  transition: border-color .25s ease, background-color .25s ease;
}
.accordion-item.is-open{ background: var(--navy); border-color: var(--navy); }
.accordion-trigger{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
  background:none; border:none;
  text-align:left;
  padding: 22px 26px;
  font-family: var(--font-head);
  font-weight:700;
  font-size:15px;
  color: var(--navy);
}
.accordion-item.is-open .accordion-trigger{ color: var(--white); }
.accordion-trigger .chev{
  flex-shrink:0;
  width:30px; height:30px; border-radius:50%;
  border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  transition: transform .3s ease, background .3s ease, border-color .3s ease;
}
.accordion-item.is-open .accordion-trigger .chev{ background: var(--gold); border-color: var(--gold); transform: rotate(180deg); }
.accordion-trigger .chev svg{ width:12px; height:12px; color: var(--navy); }
.accordion-panel{
  max-height:0;
  overflow:hidden;
  transition: max-height .35s ease;
}
.accordion-panel .inner{ padding: 0 26px 24px; }
.accordion-panel p{ font-size:14px; line-height:1.75; color: rgba(255,255,255,0.72); }

/* ---------- Footer ---------- */
.site-footer{ background: var(--navy); color: var(--white); padding-top: 90px; }
.footer-top{
  display:grid;
  grid-template-columns: 1.1fr 0.8fr 0.8fr 1fr;
  gap: 40px;
  padding-bottom: 60px;
}
.footer-brand img{ height:44px; margin-bottom:18px; }
.footer-brand p{ font-size:14px; line-height:1.75; color: rgba(255,255,255,0.6); max-width:280px; }
.footer-col h4{ font-size:14px; font-weight:800; margin-bottom:22px; letter-spacing:0.02em; }
.footer-col ul li{ margin-bottom:13px; }
.footer-col ul a{ font-size:14px; color: rgba(255,255,255,0.62); transition: color .2s ease, padding-left .2s ease; }
.footer-col ul a:hover{ color: var(--gold); padding-left:4px; }

.footer-news h4{ font-size:14px; font-weight:800; margin-bottom:18px; }
.newsletter-form{ display:flex; gap:0; margin-bottom:20px; }
.newsletter-form input{
  flex:1;
  background: rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.18);
  border-right:none;
  color: var(--white);
  padding: 15px 18px;
  border-radius: var(--radius-full) 0 0 var(--radius-full);
  font-size:13.5px;
}
.newsletter-form input::placeholder{ color: rgba(255,255,255,0.45); }
.newsletter-form button{
  border:none;
  background: var(--gold);
  color: var(--navy);
  font-family:var(--font-head); font-weight:700; font-size:13px;
  padding: 0 24px;
  border-radius: 0 var(--radius-full) var(--radius-full) 0;
  white-space:nowrap;
}
.newsletter-form button:hover{ background: var(--gold-dark); }
.social-row{ display:flex; gap:12px; }
.social-row a{
  width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(255,255,255,0.2);
  display:flex; align-items:center; justify-content:center;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.social-row a svg{ width:16px; height:16px; }
.social-row a:hover{ background: var(--gold); border-color: var(--gold); color: var(--navy); transform: translateY(-3px); }

.footer-divider{ border:none; border-top:1px solid rgba(255,255,255,0.12); margin:0; }
.footer-bottom{
  padding: 26px 0 34px;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
  font-size:13px; color: rgba(255,255,255,0.55);
}
.footer-bottom-info{ display:flex; gap:30px; flex-wrap:wrap; }
.footer-bottom-info span{ display:inline-flex; align-items:center; gap:8px; }
.footer-bottom-info svg{ width:15px; height:15px; color: var(--teal); flex-shrink:0; }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .header-search{ display:none; }
  .hero-bottom{ flex-wrap:wrap; align-items:flex-start; gap:34px; }
  .hero-photo{ width:52%; }
  .about-grid{ grid-template-columns:1fr; }
  .about-visual{ max-width:460px; }
  .success-grid{ grid-template-columns:1fr; }
  .success-visual{ max-width:420px; }
  .faq-grid{ grid-template-columns:1fr; }
  .faq-visual{ max-width:380px; }
  .services-grid{ grid-template-columns:1fr 1fr; }
  .service-card:nth-child(2){ border-right:none; }
  .service-card:nth-child(2n){ border-right:none; }
  .footer-top{ grid-template-columns:1fr 1fr; }
}

@media (max-width: 860px){
  .nav-links{
    position:fixed; top:0; right:0; bottom:0;
    width:min(320px, 82vw);
    background: var(--navy);
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    padding: 110px 34px 40px;
    gap:26px;
    transform: translateX(100%);
    transition: transform .4s ease;
    box-shadow: -20px 0 50px rgba(0,0,0,0.35);
  }
  .nav-links.is-open{ transform:translateX(0); }
  .nav-toggle{ display:inline-flex; }
  .header-actions .btn-primary{ display:none; }
  .process-head{ grid-template-columns:1fr; }
  .process-steps{ grid-template-columns:1fr; gap:44px; }
  .process-steps::before{ display:none; }
  .services-grid{ grid-template-columns:1fr; }
  .service-card{ border-right:none !important; border-bottom:1px solid var(--line-light); }
  .footer-top{ grid-template-columns:1fr; }
}

@media (max-width: 640px){
  .hero-photo{ position:static; transform:none; width:100%; height:280px; margin-top:26px; border-radius: var(--radius-l); order:1; }
  .hero-bottom{ flex-direction:column; align-items:stretch; }
  .hero-copy{ order:0; max-width:none; }
  .hero-play{ order:2; }
  .hero-stat{ order:3; max-width:none; }
  .hero-stat-right{ justify-content:flex-start; }
  .hero-bg-word{ display:none; }
}

@media (max-width: 560px){
  .section-pad{ padding:76px 0; }
  .hero{ padding-top:120px; }
  .newsletter-form{ flex-direction:column; gap:10px; }
  .newsletter-form input{ border-radius: var(--radius-full); border-right:1px solid rgba(255,255,255,0.18); }
  .newsletter-form button{ border-radius: var(--radius-full); padding:14px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}

/* =========================================================
   NOUVEAU CONTENU — Home (contenu réel client) + Contact
   ========================================================= */

.container.narrow{ max-width: 760px; }

/* ---------- Hero simplifié (sans stats/trust fictifs) ---------- */
.hero-bottom-simple{ justify-content:center; padding-bottom: 64px; }
.hero-copy-wide{ max-width: 620px; text-align:left; }
.hero-copy-wide h1{ font-size: clamp(28px, 4vw, 44px); margin-bottom:22px; }
.hero-copy-wide p{ font-size:15.5px; line-height:1.8; color: rgba(255,255,255,0.72); max-width:520px; margin-bottom:30px; }

/* ---------- Hero v2 : disposition deux colonnes (texte / photo), sans chevauchement ---------- */
.hero-v2{ display:block; min-height:auto; padding-top:150px; padding-bottom:0; }
.hero-flex{
  position:relative; z-index:2;
  display:flex;
  align-items:flex-end;
  gap: 50px;
  padding-bottom:0;
}
.hero-v2 .hero-copy-wide{ flex:1; padding-bottom:90px; max-width:560px; }
.hero-photo-col{ width: 380px; flex-shrink:0; position:relative; }
.hero-photo-col .hero-photo{
  position:relative;
  left:auto; bottom:auto; transform:none;
  width:100%; height:480px;
}
.hero-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
}
/* Visuel flottant : pas de cadre, pas d'ombre de boîte — juste l'image au fondu doux */
.hero-photo-blend{
  background:none; box-shadow:none; border-radius:0; overflow:visible;
  height:560px;
  position:relative;
}
.hero-photo-blend::before{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:260px; height:260px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(255,189,89,0.35) 0%, rgba(255,189,89,0) 70%);
  animation: heroGlow 5s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.hero-photo-blend img{
  width:130%; max-width:none; height:100%; object-fit:contain;
  position:relative; left:-15%;
  filter: drop-shadow(0 25px 40px rgba(0,0,0,0.35));
  animation: heroFloat 7s ease-in-out infinite;
  z-index:1;
}
@keyframes heroFloat{
  0%, 100%{ transform: translateY(0) rotate(-0.6deg); }
  50%{ transform: translateY(-16px) rotate(0.6deg); }
}
@keyframes heroGlow{
  0%, 100%{ opacity:0.55; transform: translate(-50%,-50%) scale(1); }
  50%{ opacity:0.9; transform: translate(-50%,-50%) scale(1.15); }
}
.hero-badge{
  position:absolute;
  left:-28px; bottom:44px;
  z-index:3;
  background: var(--white);
  color: var(--navy);
  border-radius: var(--radius-m);
  padding: 18px 22px;
  box-shadow: var(--shadow-card);
  display:flex; align-items:center; gap:12px;
}
.hero-badge .num-wrap{ display:flex; align-items:baseline; flex-shrink:0; }
.hero-badge .num, .hero-badge .pct{
  font-family: var(--font-head); font-weight:800;
  font-size:30px; color: var(--navy); line-height:1;
}
.hero-badge .pct{ font-size:17px; }
.hero-badge .label{ font-size:12px; color: var(--ink-muted); max-width:90px; line-height:1.35; }
@media (max-width: 900px){
  .hero-badge{ left:16px; bottom:16px; }
}
@media (max-width: 900px){
  .hero-flex{ flex-direction:column; align-items:stretch; gap:36px; }
  .hero-v2 .hero-copy-wide{ padding-bottom:0; max-width:none; }
  .hero-photo-col{ width:100%; }
  .hero-photo-col .hero-photo{ height:320px; border-radius: var(--radius-l); }
  .examine-banner{ aspect-ratio: 16/10; }
}

/* ---------- Check list (Recognition) ---------- */
.check-list{ margin: 30px 0 40px; }
.check-list li{
  position:relative;
  padding: 18px 0 18px 34px;
  border-bottom: 1px solid var(--line);
  font-size:15.5px; line-height:1.7; color: var(--ink-muted);
}
.check-list li:first-child{ padding-top:0; }
.check-list li::before{
  content:"";
  position:absolute; left:0; top:25px;
  width:9px; height:9px; border-radius:50%;
  background: var(--gold);
}

.pull-quote{
  background: var(--navy);
  border-radius: var(--radius-l);
  padding: 40px 44px;
  margin-top: 8px;
}
.pull-quote p{
  font-family: var(--font-head);
  font-weight:700;
  font-size: clamp(18px, 2.2vw, 24px);
  color: var(--white);
  line-height:1.5;
}
.on-dark .pull-quote, .on-cream .pull-quote{ background: var(--navy); }

/* ---------- Half the story ---------- */
.story-lines{ margin-bottom: 34px; }
.story-lines p{
  font-family: var(--font-head);
  font-weight:600;
  font-size: clamp(16px, 2vw, 19px);
  color: var(--ink-muted);
  line-height:1.6;
  padding-left:20px;
  border-left: 3px solid var(--teal);
  margin-bottom:18px;
}
.story-heading{ font-size: clamp(24px,3vw,34px); font-weight:800; margin-bottom:18px; }
.story-body{ font-size:15.5px; line-height:1.8; color: var(--ink-muted); max-width:640px; }

/* ---------- What We Examine : bannière avec texte posé dessus ---------- */
.examine-hero{
  position:relative;
  margin: -20px -24px 44px;
  min-height: 340px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.examine-hero img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  z-index:0;
  animation: kenBurns 16s ease-in-out infinite alternate;
}
@keyframes kenBurns{
  0%{ transform: scale(1); }
  100%{ transform: scale(1.08); }
}
.examine-hero-copy{
  position:relative; z-index:1;
  padding: 0 48px;
  max-width: 480px;
}
.examine-hero-copy h2{ margin-top:16px; }
.examine-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-l);
  overflow:hidden;
}
.examine-card{
  background: var(--navy);
  padding: 40px 32px;
}
.examine-icon{
  width:52px; height:52px; border-radius:50%;
  background: rgba(255,189,89,0.14);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:22px;
}
.examine-icon svg{ width:22px; height:22px; color: var(--gold); }
.examine-card h3{ font-size:17px; font-weight:800; margin-bottom:10px; }
.examine-card p{ font-size:13.5px; line-height:1.7; color: rgba(255,255,255,0.62); }
.examine-closing{
  text-align:center; margin-top:46px;
  font-family: var(--font-head); font-weight:700;
  font-size: clamp(16px,2vw,20px);
}
.on-dark .examine-closing{ color: var(--white); }
.on-cream .examine-closing, .on-light .examine-closing{ color: var(--navy); }

/* ---------- Our Method (liste verticale 5 étapes) ---------- */
.method-list{ position:relative; margin: 10px 0 44px; }
.method-list::before{
  content:"";
  position:absolute; left:29px; top:10px; bottom:10px;
  width:1px; background: var(--line);
}
.method-row{
  position:relative;
  display:flex;
  gap:28px;
  padding: 26px 0;
}
.method-num{
  position:relative;
  z-index:1;
  flex-shrink:0;
  width:60px; height:60px;
  border-radius:50%;
  background: var(--cream);
  border: 1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-head); font-weight:800; font-size:15px;
  color: var(--navy);
}
.method-copy h3{ font-size:19px; font-weight:800; margin-bottom:8px; }
.method-copy p{ font-size:14.5px; line-height:1.75; color: var(--ink-muted); max-width:520px; }

/* ---------- Outcome checklist ---------- */
.outcome-list{ margin: 34px 0 40px; display:grid; gap:16px; }
.outcome-list li{
  display:flex; align-items:flex-start; gap:16px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  padding: 20px 24px;
}
.outcome-list svg{
  width:22px; height:22px; flex-shrink:0; margin-top:2px;
  color: var(--teal-dark);
}
.outcome-list span{ font-size:15px; line-height:1.6; color: var(--ink-muted); }
.outcome-list strong{ color: var(--navy); }

/* ---------- CTA band ---------- */
.cta-band{
  background: linear-gradient(120deg, var(--teal) 0%, var(--gold) 100%);
  padding: 90px 0;
}
.cta-band-inner{ max-width:680px; margin-inline:auto; text-align:center; }
.cta-band-inner h2{ font-size: clamp(26px,3.4vw,38px); font-weight:800; margin-bottom:18px; }
.cta-band-inner p{ font-size:15.5px; line-height:1.75; color: rgba(15,31,51,0.75); margin-bottom:32px; }
.btn-dark{ background: var(--navy); color: var(--white); }
.btn-dark:hover{ background: #060f1c; transform: translateY(-2px); }

/* ---------- Footer (version simplifiée, 3 colonnes) ---------- */
.footer-top-simple{ grid-template-columns: 1.2fr 0.8fr 1fr; }
.footer-static{ font-size:14px; color: rgba(255,255,255,0.62); line-height:1.6; }
.footer-brand-mark{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.footer-brand-mark img{ height:40px; width:auto; margin-bottom:0; }
.footer-brand-mark .brand-word{ margin:0; }

/* ---------- Placeholder pages (Diagnostic / How We Work / About) ---------- */
.placeholder-hero{
  padding: 170px 0 130px;
  text-align:center;
  background: var(--navy);
  color: var(--white);
}
.placeholder-hero .eyebrow{ justify-content:center; margin-bottom:18px; }
.placeholder-hero h1{ font-size: clamp(30px,4vw,46px); font-weight:800; margin-bottom:20px; color: var(--white); }
.placeholder-hero p{ font-size:15.5px; line-height:1.8; color: rgba(255,255,255,0.68); max-width:520px; margin:0 auto 32px; }
.placeholder-hero .btn-outline{ color: var(--white); }
.placeholder-hero .btn-outline:hover{ background: var(--white); color: var(--navy); }

/* ---------- Contact page ---------- */
.contact-hero{
  position:relative;
  background: var(--navy);
  color: var(--white);
  padding: 170px 0 70px;
  overflow:hidden;
}
.hero-bg-word.small{
  position:absolute; top:36%; left:50%; transform:translate(-50%,-50%);
  font-family: var(--font-head); font-weight:800;
  font-size: clamp(60px,11vw,150px);
  color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,0.08);
  white-space:nowrap; pointer-events:none; user-select:none;
}
.contact-hero .section-head{ position:relative; z-index:1; margin-bottom:0; }
.contact-hero h1{ color: var(--white); font-size: clamp(30px,4.4vw,46px); margin: 16px 0 18px; }
.contact-hero p{ color: rgba(255,255,255,0.68); font-size:15.5px; line-height:1.75; max-width:480px; }

.contact-section{ padding-top:80px; }
.contact-grid{ display:grid; grid-template-columns: 1.15fr 0.85fr; gap:64px; align-items:start; }

.contact-form .form-row{ margin-bottom:22px; }
.contact-form label{
  display:block; font-family:var(--font-head); font-weight:700; font-size:13px;
  margin-bottom:9px; color: var(--navy);
}
.contact-form .req{ color: var(--gold-dark); }
.contact-form input, .contact-form textarea{
  width:100%;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-s);
  padding: 14px 16px;
  font-size:14.5px;
  color: var(--ink);
  background: var(--white);
  transition: border-color .2s ease;
  resize: vertical;
}
.contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color: var(--teal); }
.btn-block{ width:100%; margin-top:6px; }
.btn-block svg{ width:16px; height:16px; }
.form-note{ margin-top:18px; font-size:13px; color: var(--ink-muted); line-height:1.6; }
.form-success{
  display:none;
  margin-top:18px;
  padding: 14px 18px;
  border-radius: var(--radius-m);
  background: rgba(93,180,194,0.14);
  color: var(--teal-dark);
  font-size:13.5px;
  font-weight:600;
}
.form-success.is-visible{ display:block; }

.contact-side-block{ margin-bottom:44px; }
.contact-side-block h3{ font-size:16px; font-weight:800; margin-bottom:22px; }
.contact-method{ display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.contact-method .ic{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background: var(--cream);
  display:flex; align-items:center; justify-content:center;
}
.contact-method .ic svg{ width:18px; height:18px; color: var(--teal-dark); }
.contact-method .lbl{ display:block; font-size:12px; color: var(--ink-muted); margin-bottom:2px; }
.contact-method a{ font-family:var(--font-head); font-weight:700; font-size:14.5px; color: var(--navy); }
.contact-method a:hover{ color: var(--teal-dark); }
.contact-method .static{ font-family:var(--font-head); font-weight:700; font-size:14.5px; color: var(--navy); }

.next-steps li{ display:flex; align-items:flex-start; gap:16px; margin-bottom:18px; }
.next-steps .n{
  width:28px; height:28px; border-radius:50%; flex-shrink:0;
  background: var(--navy); color: var(--white);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head); font-weight:700; font-size:12.5px;
}
.next-steps span:last-child{ font-size:14.5px; color: var(--ink-muted); line-height:1.6; padding-top:4px; }

/* ---------- Responsive ajouts ---------- */
@media (max-width: 860px){
  .examine-grid{ grid-template-columns: 1fr 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .footer-top-simple{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .examine-grid{ grid-template-columns: 1fr; }
  .method-row{ gap:18px; }
  .method-num{ width:48px; height:48px; font-size:13px; }
  .method-list::before{ left:23px; }
  .pull-quote{ padding:28px 26px; }
}

/* =========================================================
   ANIMATIONS EN CASCADE — cartes / étapes / checklist
   Chaque enfant part masqué et apparaît avec un léger délai
   progressif quand son conteneur .reveal devient visible.
   ========================================================= */
.examine-grid .examine-card,
.method-list .method-row,
.outcome-list li,
.check-list li{
  opacity:0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
.examine-grid.is-visible .examine-card,
.method-list.is-visible .method-row,
.outcome-list.is-visible li,
.check-list.is-visible li{
  opacity:1;
  transform:none;
}
.examine-grid .examine-card:nth-child(1){ transition-delay:.05s; }
.examine-grid .examine-card:nth-child(2){ transition-delay:.13s; }
.examine-grid .examine-card:nth-child(3){ transition-delay:.21s; }
.examine-grid .examine-card:nth-child(4){ transition-delay:.29s; }
.examine-grid .examine-card:nth-child(5){ transition-delay:.37s; }
.examine-grid .examine-card:nth-child(6){ transition-delay:.45s; }

.method-list .method-row:nth-child(1){ transition-delay:.05s; }
.method-list .method-row:nth-child(2){ transition-delay:.15s; }
.method-list .method-row:nth-child(3){ transition-delay:.25s; }
.method-list .method-row:nth-child(4){ transition-delay:.35s; }
.method-list .method-row:nth-child(5){ transition-delay:.45s; }

.outcome-list li:nth-child(1){ transition-delay:.05s; }
.outcome-list li:nth-child(2){ transition-delay:.14s; }
.outcome-list li:nth-child(3){ transition-delay:.23s; }
.outcome-list li:nth-child(4){ transition-delay:.32s; }
.outcome-list li:nth-child(5){ transition-delay:.41s; }

.check-list li:nth-child(1){ transition-delay:.04s; }
.check-list li:nth-child(2){ transition-delay:.1s; }
.check-list li:nth-child(3){ transition-delay:.16s; }
.check-list li:nth-child(4){ transition-delay:.22s; }
.check-list li:nth-child(5){ transition-delay:.28s; }

/* ---------- CTA band : dégradé qui respire lentement ---------- */
.cta-band{
  background-size: 200% 200%;
  animation: gradientDrift 10s ease-in-out infinite;
}
@keyframes gradientDrift{
  0%, 100%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
}

/* ---------- Mot géant en fond : légère respiration ---------- */
.hero-bg-word{ animation: wordBreathe 8s ease-in-out infinite; }
@keyframes wordBreathe{
  0%, 100%{ opacity:1; }
  50%{ opacity:0.55; }
}

/* =========================================================
   MENU PLEIN ÉCRAN (façon "mega menu" élégant, sans rubriques
   fictives — juste les 5 pages réelles du site, en grand format)
   ========================================================= */
.header-row-simple{ justify-content:space-between; }

/* Le bouton burger se transforme en croix quand le menu est ouvert */
.nav-toggle{ position:relative; z-index:3100; transition: border-color .3s ease; }
.nav-toggle span{ transition: background .2s ease .15s; }
.nav-toggle span::before,
.nav-toggle span::after{ transition: transform .35s ease, top .2s ease; }
.nav-toggle.is-open{ border-color: rgba(255,255,255,0.6); }
.nav-toggle.is-open span{ background: transparent; }
.nav-toggle.is-open span::before{ top:0; transform: rotate(45deg); }
.nav-toggle.is-open span::after{ top:0; transform: rotate(-45deg); }

.mega-menu{
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  transform: translateY(-16px);
  transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s;
}
.mega-menu.is-open{
  opacity:1; visibility:visible; transform:none;
  transition: opacity .45s ease, transform .45s ease, visibility 0s;
}
.mega-menu-ring{
  position:absolute;
  width:900px; height:900px;
  border-radius:50%;
  border:1.5px solid rgba(93,180,194,0.18);
  right:-260px; top:-260px;
  pointer-events:none;
}
.mega-menu-ring::after{
  content:"";
  position:absolute; inset:90px;
  border-radius:50%;
  border:1.5px solid rgba(255,189,89,0.14);
}
.mega-menu-inner{
  position:relative; z-index:1;
  width:100%; max-width:720px;
  padding: 40px 24px;
  text-align:center;
}
.mega-menu-links li{
  opacity:0;
  transform: translateY(26px);
  transition: opacity .5s ease, transform .5s ease;
  transition-delay: calc(var(--i, 0) * 0.07s);
}
.mega-menu.is-open .mega-menu-links li{ opacity:1; transform:none; }
.mega-menu-links a{
  display:inline-block;
  font-family: var(--font-head);
  font-weight:800;
  font-size: clamp(38px, 7vw, 74px);
  line-height:1.25;
  color: rgba(255,255,255,0.5);
  transition: color .25s ease;
}
.mega-menu-links a:hover,
.mega-menu-links a.is-active{ color: var(--white); }
.mega-menu-links a.is-active::after{
  content:"";
  display:block;
  width:46px; height:3px;
  background: var(--gold);
  margin: 8px auto 0;
  border-radius: var(--radius-full);
}
.mega-menu-footer{
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid rgba(255,255,255,0.12);
  opacity:0;
  transition: opacity .6s ease .35s;
}
.mega-menu.is-open .mega-menu-footer{ opacity:1; }
.mega-menu-contact{ display:flex; justify-content:center; gap:28px; flex-wrap:wrap; margin-bottom:12px; }
.mega-menu-contact a{
  font-family: var(--font-head); font-weight:700; font-size:13.5px;
  color: rgba(255,255,255,0.75);
}
.mega-menu-contact a:hover{ color: var(--gold); }
.mega-menu-note{ font-size:12.5px; color: rgba(255,255,255,0.45); }

body.menu-open{ overflow:hidden; }

@media (max-width: 560px){
  .mega-menu-links a{ font-size: clamp(30px, 9vw, 46px); }
  .mega-menu-footer{ margin-top:36px; padding-top:24px; }
}
