/* ==========================================================================
   LAF CONSULTING — style.css (version consolidée & déboguée)
   ========================================================================== */

/* 01. VARIABLES & RESET */
:root {
  --navy: #1d2549; --navy-deep: #141a36; --navy-soft: #2b3565;
  --red: #dc0000; --red-dark: #b30000; --red-soft: rgba(220,0,0,.07);
  --ink: #1d2549; --txt: #4b5268; --muted: #7b8199;
  --bg: #fff; --bg-soft: #f6f7fb; --line: #e5e8f1;
  --font-display: "Manrope","Segoe UI",sans-serif;
  --font-body: "Instrument Sans","Segoe UI",sans-serif;
  --r-s: 8px; --r: 12px; --r-l: 18px;
  --sh-s: 0 2px 10px -4px rgba(29,37,73,.12);
  --sh-m: 0 14px 34px -18px rgba(29,37,73,.28);
  --sh-l: 0 30px 60px -25px rgba(29,37,73,.35);
  --header-h: 76px; --container: 1180px;
  --ease: cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--txt);background:var(--bg);-webkit-font-smoothing:antialiased}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
ul,ol{list-style:none}
a{color:var(--navy)}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:3px solid rgba(220,0,0,.55);outline-offset:3px;border-radius:4px}
section[id],h2[id]{scroll-margin-top:calc(var(--header-h) + 20px)}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 var(--r-s) 0}
.skip:focus{left:0}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}

/* 02. UTILITAIRES */
.container{width:min(var(--container),100% - 2.5rem);margin-inline:auto}
.section{padding:clamp(4rem,8vw,6.5rem) 0}
.section-alt{background:var(--bg-soft)}
.section-head{max-width:660px;margin-bottom:clamp(2.2rem,5vw,3.4rem)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.eyebrow{display:inline-flex;align-items:center;gap:.65rem;font:700 .78rem/1 var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:1rem}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--red)}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);line-height:1.15;letter-spacing:-.02em}
h2{font-size:clamp(1.75rem,3.4vw,2.5rem);font-weight:800}
h3{font-size:1.22rem;font-weight:800}
.section-head p{margin-top:.9rem;font-size:1.06rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font:700 .95rem/1 var(--font-display);padding:1rem 1.6rem;border-radius:999px;border:1.5px solid transparent;text-decoration:none;transition:transform .3s var(--ease),background .3s,color .3s,box-shadow .3s,border-color .3s;will-change:transform}
.btn .ic{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover .ic{transform:translateX(4px)}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 12px 26px -14px rgba(220,0,0,.65)}
.btn-primary:hover{background:var(--red-dark);transform:translateY(-2px)}
.btn-ghost{border-color:var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--sh-m)}
.btn-sm{padding:.7rem 1.2rem;font-size:.88rem}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic-fill{fill:currentColor;stroke:none}

/* 03. HEADER / NAVIGATION */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.is-scrolled{border-color:var(--line);box-shadow:0 8px 26px -20px rgba(29,37,73,.5)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--header-h)}
.brand{display:inline-flex;align-items:center;text-decoration:none}
.brand-logo{height:46px;width:auto}
/* Logo blanchi dans le footer (fond navy sombre) */
.site-footer .brand-logo {
  height: 42px;
  filter: brightness(0) invert(1);
}
@media (max-width:600px){.brand-logo{height:40px}}
.nav-list{display:flex;align-items:center;gap:.4rem}
.nav-list>li>a,.drop-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.6rem .85rem;font:600 .95rem var(--font-display);color:var(--ink);text-decoration:none;border-radius:var(--r-s);transition:color .25s,background .25s}
.nav-list>li>a:hover,.drop-btn:hover{color:var(--red)}
.nav-list>li>a.is-active{color:var(--red)}
.drop-btn .ic{width:15px;height:15px;transition:transform .3s var(--ease)}
.has-drop{position:relative}
.drop{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,8px);width:330px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-m);padding:.6rem;opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
.drop-link{display:flex;gap:.85rem;align-items:flex-start;padding:.75rem .8rem;border-radius:var(--r-s);text-decoration:none;transition:background .2s}
.drop-link:hover{background:var(--bg-soft)}
.drop-link .ic{width:20px;height:20px;color:var(--red);margin-top:.15rem}
.drop-link strong{display:block;font:700 .92rem var(--font-display);color:var(--ink)}
.drop-link small{color:var(--muted);font-size:.8rem;line-height:1.4;display:block}
.has-drop.is-open .drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.has-drop.is-open .drop-btn .ic{transform:rotate(180deg)}
@media (hover:hover) and (min-width:961px){
  .has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .has-drop:hover .drop-btn .ic{transform:rotate(180deg)}
}
.burger{display:none;position:relative;z-index:70;width:44px;height:44px;place-items:center}
.burger span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px;transition:transform .35s var(--ease),opacity .25s}
.burger span+span{margin-top:6px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.header-right{display:flex;align-items:center;gap:.8rem}
@media (max-width:960px){
  .burger{display:grid}
  .nav{position:fixed;inset:0 0 0 auto;z-index:65;width:min(84vw,380px);height:100dvh;background:#fff;padding:calc(var(--header-h) + 1.5rem) 1.6rem 2rem;overflow-y:auto;transform:translateX(105%);transition:transform .45s var(--ease);box-shadow:-20px 0 60px rgba(29,37,73,.18)}
  .nav.is-open{transform:translateX(0)}
  body.menu-open{overflow:hidden}
  body.menu-open::before{content:"";position:fixed;inset:0;z-index:55;background:rgba(20,26,54,.45);animation:fadeIn .3s var(--ease)}
  .nav-list{flex-direction:column;align-items:stretch;gap:.2rem}
  .nav-list>li>a,.drop-btn{width:100%;padding:.95rem .5rem;font-size:1.08rem;border-bottom:1px solid var(--line);border-radius:0}
  .has-drop .drop{position:static;transform:none;width:100%;box-shadow:none;border:0;padding:.3rem 0 .6rem;max-height:0;overflow:hidden;opacity:1;visibility:visible;transition:max-height .4s var(--ease)}
  .has-drop.is-open .drop{max-height:480px;transform:none}
  .nav-cta-mobile{margin-top:1.4rem;border:0!important}
  .nav-cta-mobile .btn{width:100%}
}
@media (min-width:961px){.nav-cta-mobile{display:none}}
@media (max-width:600px){.header-cta{display:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* 04. HERO ACCUEIL — plein écran, fond image, contenu centré */
.hero {
  position: relative;
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100svh - var(--header-h));
  display: flex; align-items: center;
  overflow: hidden;
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  background: var(--navy);
  color: #fff;
  text-align: center;
}
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.hero-bg::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(220, 0, 0, .15) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(43, 53, 101, .8) 0%, transparent 50%),
    linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);
}
.hero-bg::after {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px);
  background-size: 60px 60px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}
.hero-shape { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .4; }
.hero-shape-1 { width: 400px; height: 400px; background: var(--red); top: -100px; right: -100px; }
.hero-shape-2 { width: 300px; height: 300px; background: var(--navy-soft); bottom: -50px; left: 10%; }
.hero .container { position: relative; z-index: 3; }

/* Contenu : une seule colonne, tout centré */
.hero-content {
  max-width: 860px;
  margin-inline: auto;
  display: flex; flex-direction: column; align-items: center;
  gap: 1.5rem;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(220, 0, 0, .15);
  border: 1px solid rgba(220, 0, 0, .3);
  color: #fff; padding: .5rem 1rem; border-radius: 999px;
  font: 500 .85rem var(--font-body);
}
.hero-badge-dot { width: 8px; height: 8px; background: var(--red); border-radius: 50%; }

.hero h1 {
  color: #fff;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 800; line-height: 1.1; letter-spacing: -.02em;
  max-width: 22ch;
}
.hero h1 .highlight { color: #ff8080; position: relative; display: inline-block; }
.hero h1 .highlight::after {
  content: ""; position: absolute; bottom: 5px; left: 0; right: 0; height: 6px;
  background: var(--red); opacity: .35; border-radius: 3px;
}
.hero-subtitle {
  font-size: 1.12rem; line-height: 1.7;
  color: rgba(255, 255, 255, .85);
  max-width: 60ch;
}
.hero-ctas { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem; margin-top: .5rem; }
.btn-secondary { border-color: rgba(255, 255, 255, .55); color: #fff; }
.btn-secondary:hover { background: rgba(255, 255, 255, .12); transform: translateY(-2px); }

/* Animations (noms dédiés, sans conflit avec pulse/marquee) */
@keyframes heroFloat { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(30px, -30px); } }
@keyframes heroPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .6; transform: scale(1.3); } }
@media (prefers-reduced-motion: no-preference) {
  .hero-shape { animation: heroFloat 8s ease-in-out infinite; }
  .hero-shape-2 { animation-delay: -4s; }
  .hero-badge-dot { animation: heroPulse 2s ease-in-out infinite; }
}

/* Mobile */
@media (max-width: 959px) {
  .hero { padding: 4rem 0; }
  .hero-shape-1 { width: 260px; height: 260px; top: -80px; right: -80px; }
  .hero-shape-2 { width: 200px; height: 200px; bottom: -40px; }
}
/* Réglage final : boîte du hero intacte (fond inchangé), contenu remonté */
.hero {
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100svh - var(--header-h));
  padding: clamp(4rem, 8vw, 6rem) 0;
}
.hero-content {
  position: relative;
  top: clamp(-4rem, -7vh, -2rem); /* négatif = le contenu remonte */
}
@media (max-width: 959px) {
  .hero { padding: 4rem 0; }
  .hero-content { top: -1.5rem; }
}
.trust{border-block:1px solid var(--line);background:#fff;padding:1.7rem 0}
.trust-label{text-align:center;font:700 .74rem var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;align-items:center;gap:clamp(2.5rem,5vw,4.5rem);width:max-content;animation:marquee 30s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.logo-item{display:flex;align-items:center;gap:.55rem;font:700 1.05rem var(--font-display);white-space:nowrap;color:#a6acc0;transition:color .3s;cursor:default}
.logo-item:hover{color:var(--navy)}
.logo-item:hover .ic{color:var(--red)}
.logo-item .ic{width:13px;height:13px;color:#c9cddb;transition:color .3s}
.logo-item:nth-child(2n){font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.95rem}
.logo-item:nth-child(3n){font-style:italic;font-weight:600}

/* 05. STATS */
.stats{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.stats::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1.5px,transparent 2px);background-size:26px 26px;opacity:.35}
.stats-grid{position:relative;display:grid;gap:2.2rem;grid-template-columns:repeat(2,1fr);padding:clamp(2.6rem,5vw,3.6rem) 0}
@media (min-width:860px){.stats-grid{grid-template-columns:repeat(4,1fr)}}
.stat{text-align:center}
.stat-value{font:800 clamp(2rem,4vw,2.9rem)/1 var(--font-display);letter-spacing:-.02em}
.stat-value .stat-accent{color:var(--red)}
.stat-label{margin-top:.5rem;font-size:.9rem;color:#b9bed6}

/* 06. SERVICES */
.svc-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.svc-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.9rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:1.9rem 1.8rem 1.7rem;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.svc-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--sh-m);border-color:transparent}
.svc-card:hover::after{transform:scaleX(1)}
.svc-icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--navy);color:#fff;transition:background .3s,transform .3s var(--ease)}
.svc-icon .ic{width:26px;height:26px}
.svc-card:hover .svc-icon{background:var(--red);transform:rotate(-4deg) scale(1.05)}
.svc-num{position:absolute;top:1.5rem;right:1.7rem;font:800 .95rem var(--font-display);color:var(--line)}
.svc-card p{font-size:.95rem;flex-grow:1}
.svc-more{display:inline-flex;align-items:center;gap:.45rem;font:700 .92rem var(--font-display);color:var(--navy);text-decoration:none}
.svc-more .ic{width:17px;height:17px;transition:transform .3s var(--ease);color:var(--red)}
.svc-more:hover .ic{transform:translateX(5px)}
.svc-card-cta{background:var(--navy);border-color:var(--navy);color:#c9cede;justify-content:center}
.svc-card-cta h3{color:#fff}
.svc-card-cta .btn{align-self:flex-start;margin-top:.6rem}

/* 07. POURQUOI */
.why-grid{display:grid;gap:3rem}
@media (min-width:960px){.why-grid{grid-template-columns:.9fr 1.1fr;gap:5rem}.why-intro{position:sticky;top:calc(var(--header-h) + 2.5rem);align-self:start}}
.why-intro p{margin-top:1rem}
.why-intro .btn{margin-top:1.8rem}
.why-item{display:grid;grid-template-columns:74px 1fr;gap:1.3rem;padding:1.9rem 0;border-top:1px solid var(--line);transition:background .3s,padding-left .3s var(--ease)}
.why-item:last-child{border-bottom:1px solid var(--line)}
.why-item:hover{padding-left:.6rem}
.why-num{font:800 2.1rem/1 var(--font-display);color:transparent;-webkit-text-stroke:1.4px var(--red)}
.why-item h3{margin-bottom:.45rem}
.why-item p{font-size:.97rem}

/* 08. PROCESSUS */
.steps{display:grid;gap:1.4rem}
@media (min-width:900px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:1.9rem 1.6rem;transition:transform .35s var(--ease),box-shadow .35s}
.step:hover{transform:translateY(-5px);box-shadow:var(--sh-m)}
.step-badge{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin-bottom:1.1rem;background:var(--navy);color:#fff;font:800 1rem var(--font-display);transition:background .3s,transform .3s var(--ease)}
.step:hover .step-badge{background:var(--red);transform:scale(1.08)}
.step h3{font-size:1.08rem;margin-bottom:.5rem}
.step p{font-size:.92rem}
@media (min-width:900px){.step:not(:last-child)::after{content:"";position:absolute;top:42px;right:-1.45rem;width:1.45rem;border-top:2px dashed var(--line)}}

/* 09. TÉMOIGNAGES — cartes citation avec avatars à initiales */
.avis-grid { display: grid; gap: 1.6rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .avis-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .avis-grid { grid-template-columns: repeat(3, 1fr); } }

.avis-card {
  display: flex; flex-direction: column; gap: 1.1rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 1.9rem 1.8rem;
  box-shadow: var(--sh-s);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.avis-card:hover { transform: translateY(-6px); box-shadow: var(--sh-m); }

/* Guillemet rouge */
.avis-quote {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.4rem; line-height: .8; font-weight: 700;
  color: var(--red);
  user-select: none;
}

/* Citation en italique, hauteur flexible pour aligner les auteurs */
.avis-card blockquote {
  font-style: italic;
  font-size: .98rem; line-height: 1.75;
  color: var(--ink);
  flex-grow: 1;
}

/* Auteur : avatar initiales + nom + fonction */
.avis-author { display: flex; align-items: center; gap: .9rem; margin-top: auto; }
.avis-avatar {
  width: 46px; height: 46px; flex: none;
  border-radius: 50%;
  background: var(--navy); color: #fff;
  display: grid; place-items: center;
  font: 800 .92rem var(--font-display); letter-spacing: .02em;
}
.avis-author strong { display: block; font: 800 .98rem var(--font-display); color: var(--ink); }
.avis-role { display: block; font-size: .83rem; color: var(--muted); margin-top: .15rem; }

/* 10. CTA */
.cta-band{position:relative;overflow:hidden;background:var(--navy);color:#fff}
.cta-band::before{content:"";position:absolute;top:-140px;right:-120px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(220,0,0,.4),transparent 65%)}
.cta-band::after{content:"";position:absolute;bottom:-60px;left:-40px;width:300px;height:300px;background-image:radial-gradient(rgba(255,255,255,.2) 1.6px,transparent 2.1px);background-size:22px 22px}
.cta-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:1.2rem;align-items:flex-start;padding:clamp(3.5rem,7vw,5rem) 0}
@media (min-width:900px){.cta-inner{flex-direction:row;align-items:center;justify-content:space-between}}
.cta-inner h2{color:#fff;max-width:22ch}
.cta-inner p{color:#c0c5da;margin-top:.8rem;max-width:40ch}
.cta-actions{display:flex;flex-wrap:wrap;gap:.9rem}

/* 11. FOOTER */
.site-footer{background:var(--navy-deep);color:#b6bbd2}
.footer-grid{display:grid;gap:2.6rem;padding:clamp(3.2rem,6vw,4.5rem) 0 3rem}
@media (min-width:900px){.footer-grid{grid-template-columns:1.5fr 1fr 1.2fr 1.3fr}}
.footer-brand p{margin-top:1rem;font-size:.93rem;max-width:30ch}
.footer-brand .brand-txt{color:#fff}
.socials{display:flex;gap:.7rem;margin-top:1.4rem}
.socials a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);color:#d5d8e6;transition:background .3s,border-color .3s,transform .3s var(--ease),color .3s}
.socials a:hover{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-3px)}
.socials .ic{width:17px;height:17px}
.footer-col h3{color:#fff;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.1rem}
.footer-col li+li{margin-top:.6rem}
.footer-col a{color:#b6bbd2;text-decoration:none;font-size:.93rem;transition:color .25s,padding-left .25s var(--ease)}
.footer-col a:hover{color:#fff;padding-left:4px}
.footer-contact li{display:flex;gap:.8rem;align-items:flex-start;font-size:.93rem}
.footer-contact li+li{margin-top:.9rem}
.footer-contact .ic{width:18px;height:18px;color:var(--red);margin-top:.2rem}
.footer-contact a{color:#b6bbd2;text-decoration:none}
.footer-contact a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:1.25rem 0;font-size:.84rem}
.fb-inner{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between}
.footer-bottom a{color:#8d93b3;text-decoration:none}
.footer-bottom a:hover{color:#fff}

/* 12. PAGES INTÉRIEURES */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--navy) 55%,var(--navy-soft));color:#fff;padding:clamp(3.2rem,6vw,4.8rem) 0}
.page-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.13) 1.5px,transparent 2px);background-size:26px 26px;opacity:.4}
.page-hero::after{content:"";position:absolute;left:0;bottom:0;width:90px;height:4px;background:var(--red)}
.page-hero .container{position:relative;z-index:1}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.85rem;color:rgba(255,255,255,.65);margin-bottom:1.2rem}
.breadcrumb a{color:rgba(255,255,255,.85);text-decoration:none}
.breadcrumb a:hover{color:#fff;text-decoration:underline}
.breadcrumb [aria-current]{color:#fff}
.breadcrumb .sep{opacity:.5}
.page-title{color:#fff;font-size:clamp(2rem,4.6vw,3.1rem);max-width:22ch}
.page-lead{margin-top:1.1rem;color:#c4c9de;font-size:1.08rem;max-width:58ch}
.page-hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}

/* 13. PAGES SERVICES */
.svc-layout{display:grid;gap:3rem;padding:clamp(3.5rem,6vw,5rem) 0}
@media (min-width:1020px){.svc-layout{grid-template-columns:1fr 330px;gap:4rem}}
.svc-main section+section{margin-top:clamp(3rem,5vw,4.2rem)}
.svc-intro{display:grid;gap:2.4rem;align-items:center}
@media (min-width:720px){.svc-intro{grid-template-columns:1.15fr .85fr}}
.svc-intro p+p{margin-top:1rem}
.svc-media{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-m)}
.svc-media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.mini-cards{display:grid;gap:1rem;margin-top:1.8rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.mini-cards li{display:flex;gap:.85rem;background:var(--bg-soft);border:1px solid transparent;border-radius:var(--r);padding:1.15rem 1.2rem;transition:background .3s,border-color .3s,transform .3s var(--ease)}
.mini-cards li:hover{background:#fff;border-color:var(--line);transform:translateY(-3px);box-shadow:var(--sh-s)}
.mini-cards .ic{color:var(--red);margin-top:.2rem}
.mini-cards strong{display:block;font:700 .97rem var(--font-display);color:var(--ink);margin-bottom:.2rem}
.mini-cards span{font-size:.88rem}
.benefit-panel{background:var(--navy);color:#cfd3e4;border-radius:var(--r-l);padding:clamp(1.8rem,4vw,2.6rem);position:relative;overflow:hidden}
.benefit-panel::before{content:"";position:absolute;top:-80px;right:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(220,0,0,.35),transparent 65%)}
.benefit-panel h2{color:#fff;font-size:1.5rem;margin-bottom:1.4rem;position:relative}
.check-list{position:relative;display:grid;gap:.9rem}
.check-list li{display:flex;gap:.8rem;align-items:flex-start}
.check-list .ic{color:var(--red);margin-top:.2rem;width:21px;height:21px}
@media (min-width:720px){.check-list.cols{grid-template-columns:1fr 1fr}}
.svc-aside{display:grid;gap:1.4rem;align-content:start}
@media (min-width:1020px){.svc-aside{position:sticky;top:calc(var(--header-h) + 2rem)}}
.aside-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:1.6rem}
.aside-card h3{font-size:1.05rem;margin-bottom:.9rem}
.aside-cta{background:var(--navy);border-color:var(--navy);color:#c4c9de}
.aside-cta h3{color:#fff}
.aside-cta p{font-size:.92rem;margin-bottom:1.2rem}
.aside-cta .btn{width:100%}
.aside-phone{display:flex;align-items:center;gap:.6rem;margin-top:1.1rem!important;margin-bottom:0!important;font:700 .95rem var(--font-display);color:#fff}
.aside-phone .ic{width:17px;height:17px;color:var(--red)}
.aside-links li+li{margin-top:.35rem}
.aside-links a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem .4rem;border-radius:var(--r-s);font:600 .92rem var(--font-display);color:var(--ink);text-decoration:none;transition:background .25s,color .25s,padding-left .25s var(--ease)}
.aside-links a:hover{background:var(--bg-soft);color:var(--red);padding-left:.7rem}
.aside-links .ic{width:16px;height:16px;color:var(--muted)}
.aside-hours li{display:flex;gap:.7rem;font-size:.9rem}
.aside-hours li+li{margin-top:.6rem}
.aside-hours .ic{width:17px;height:17px;color:var(--red);margin-top:.15rem}
.cross-grid{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.cross-grid .svc-card{padding:1.5rem 1.4rem}
.cross-grid .svc-icon{width:46px;height:46px}
.cross-grid .svc-icon .ic{width:22px;height:22px}
.cross-grid h3{font-size:1.05rem}
.cross-grid p{font-size:.88rem}

/* 14. À PROPOS */
.about-story{display:grid;gap:3rem;align-items:start}
@media (min-width:960px){.about-story{grid-template-columns:.95fr 1.05fr;gap:4.5rem}}
.about-media{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-l);position:relative}
.about-media img{width:100%;aspect-ratio:5/6;object-fit:cover}
.about-media-tag{position:absolute;left:1.2rem;bottom:1.2rem;background:var(--red);color:#fff;font:800 .85rem var(--font-display);padding:.55rem 1rem;border-radius:999px}
.about-story p+p{margin-top:1rem}
.about-facts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.about-facts li{background:var(--bg-soft);border-radius:999px;padding:.5rem 1.1rem;font:700 .85rem var(--font-display);color:var(--navy)}
.about-facts b{color:var(--red)}
.values-grid{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.value-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:1.8rem 1.6rem;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.value-card:hover{transform:translateY(-5px);box-shadow:var(--sh-m);border-color:rgba(220,0,0,.35)}
.value-card .svc-icon{margin-bottom:1.1rem}
.value-card p{font-size:.93rem}
.team-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.member{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.member:hover{transform:translateY(-5px);box-shadow:var(--sh-m)}
.member-photo{overflow:hidden;aspect-ratio:5/5.6}
.member-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.member:hover .member-photo img{transform:scale(1.06)}
.member-body{padding:1.2rem 1.3rem 1.4rem}
.member-body strong{display:block;font:800 1.05rem var(--font-display);color:var(--ink)}
.member-body span{display:block;font-size:.87rem;color:var(--red);font-weight:600;margin-top:.2rem}
.member-body p{font-size:.86rem;color:var(--muted);margin-top:.5rem}
.loc-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:960px){.loc-grid{grid-template-columns:.9fr 1.1fr;gap:4rem}}
.loc-list{display:grid;gap:1.1rem;margin-top:1.6rem}
.loc-list li{display:flex;gap:.9rem;align-items:flex-start}
.loc-list .ic{color:var(--red);margin-top:.2rem}
.loc-list strong{display:block;font:700 .98rem var(--font-display);color:var(--ink)}
.loc-list span{font-size:.92rem}
.map-frame{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-m);border:1px solid var(--line);aspect-ratio:16/11}
.map-frame iframe{width:100%;height:100%;border:0}

/* 15. CONTACT */
.contact-cards{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-bottom:clamp(3rem,6vw,4.5rem)}
.c-card{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:1.5rem 1.4rem;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.c-card:hover{transform:translateY(-4px);box-shadow:var(--sh-m);border-color:rgba(220,0,0,.3)}
.c-card .svc-icon{width:48px;height:48px}
.c-card .svc-icon .ic{width:22px;height:22px}
.c-card h3{font-size:1rem;margin-bottom:.3rem}
.c-card p,.c-card a{font-size:.92rem;color:var(--txt);text-decoration:none}
.c-card a:hover{color:var(--red)}
.contact-grid{display:grid;gap:3rem}
@media (min-width:1020px){.contact-grid{grid-template-columns:1.15fr .85fr;gap:4rem;align-items:start}}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(1.6rem,4vw,2.6rem);box-shadow:var(--sh-s)}
.form-row{display:grid;gap:1.2rem}
@media (min-width:640px){.form-row.two{grid-template-columns:1fr 1fr}}
.field{margin-bottom:1.25rem}
.field label{display:block;font:700 .9rem var(--font-display);color:var(--navy);margin-bottom:.45rem}
.field label .req{color:var(--red)}
.field label small{color:var(--muted);font-weight:400;font-family:var(--font-body)}
.field input,.field select,.field textarea{width:100%;padding:.9rem 1rem;font:1rem var(--font-body);color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;transition:border-color .25s,box-shadow .25s}
.field textarea{resize:vertical;min-height:140px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(29,37,73,.09)}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--red);box-shadow:0 0 0 4px rgba(220,0,0,.08)}
.field-error{display:flex;align-items:center;gap:.4rem;color:var(--red);font-size:.83rem;margin-top:.45rem}
.field-error .ic{width:15px;height:15px}
.form-consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;color:var(--muted)}
.form-consent input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--red)}
.btn.is-loading{pointer-events:none;opacity:.9}
.spinner{width:17px;height:17px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-success{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;background:#f2faf4;border:1px solid #c4e5cd;color:#1d5e34;border-radius:var(--r-l);padding:2.2rem}
.form-success .big-check{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#1d9d54;color:#fff}
.form-success .big-check .ic{width:28px;height:28px}
.form-success h3{color:#1d5e34}
.form-status{font-size:.9rem;margin-top:1rem;color:var(--red)}
.form-status:empty{display:none}
.contact-map .map-frame{aspect-ratio:4/3}
.contact-map .btn{margin-top:1.4rem}
.faq-list{max-width:820px;margin-inline:auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.35rem .2rem;cursor:pointer;font:700 1.02rem var(--font-display);color:var(--ink);list-style:none;transition:color .25s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--red)}
.faq-item summary .ic{transition:transform .35s var(--ease);color:var(--red)}
.faq-item[open] summary .ic{transform:rotate(180deg)}
.faq-item .faq-body{padding:0 .2rem 1.4rem;font-size:.95rem;max-width:62ch}

/* 16. ANIMATIONS */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
[data-reveal].is-visible{opacity:1;transform:none}
.lm{display:block;overflow:hidden}
.lm>span{display:block;transform:translateY(112%);transition:transform .9s var(--ease);transition-delay:var(--d,0s)}
[data-reveal].is-visible .lm>span,.is-visible .lm>span{transform:none}
@media (prefers-reduced-motion:no-preference){
  .breathe img{animation:breathe 18s ease-in-out infinite alternate}
  @keyframes breathe{from{transform:scale(1)}to{transform:scale(1.07) translate(-1%,1%)}}
}

/* 17. MOUVEMENT RÉDUIT */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
  .lm>span{transform:none}
  .marquee-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
  .hero-card{animation:none}
  .news-track{animation:none}
  .news-viewport{overflow-x:auto}
  .news-dot{animation:none}
}

/* 18. ACTUALITÉS */
.news-bar{background:var(--navy-deep);border-bottom:1px solid rgba(255,255,255,.08)}
.news-inner{display:flex;align-items:center;gap:1.2rem;height:48px}
.news-label{flex:none;display:inline-flex;align-items:center;gap:.55rem;font:800 .72rem var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.news-dot{width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(220,0,0,.55)}50%{box-shadow:0 0 0 6px rgba(220,0,0,0)}}
.news-viewport{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.news-track{display:flex;width:max-content;animation:marquee 45s linear infinite}
.news-bar:hover .news-track{animation-play-state:paused}
.news-half{display:flex;align-items:center;gap:3rem;padding-right:3rem}
.news-item{display:inline-flex;align-items:center;gap:.7rem;white-space:nowrap;text-decoration:none}
.news-cat{font:800 .66rem var(--font-display);letter-spacing:.08em;text-transform:uppercase;background:var(--red);color:#fff;padding:.28rem .6rem;border-radius:999px}
.news-title{color:#e7e9f4;font:600 .9rem var(--font-body);transition:color .25s}
.news-item:hover .news-title{color:#fff;text-decoration:underline}
.news-date{color:#8d93b3;font-size:.78rem}
.news-all{flex:none;display:inline-flex;align-items:center;gap:.4rem;font:700 .8rem var(--font-display);color:#fff;text-decoration:none}
.news-all .ic{width:15px;height:15px}
.news-all:hover{text-decoration:underline}
.blog-tools{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:2.2rem}
.blog-search{position:relative;flex:1;min-width:230px;max-width:340px}
.blog-search .ic{position:absolute;left:.95rem;top:50%;translate:0 -50%;width:17px;height:17px;color:var(--muted)}
.blog-search input{width:100%;padding:.72rem 1.1rem .72rem 2.6rem;border:1.5px solid var(--line);border-radius:999px;font:.95rem var(--font-body);color:var(--ink)}
.blog-search input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(29,37,73,.09)}
.filter-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.filter-pill{padding:.55rem 1.05rem;border-radius:999px;border:1.5px solid var(--line);font:700 .8rem var(--font-display);color:var(--ink);transition:background .25s,color .25s,border-color .25s}
.filter-pill:hover{border-color:var(--navy)}
.filter-pill.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.post-featured{display:grid;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;margin-bottom:2.6rem}
@media (min-width:860px){.post-featured{grid-template-columns:1.1fr .9fr}}
.post-featured .post-media{aspect-ratio:auto;min-height:260px;height:100%}
.post-featured .post-body{padding:clamp(1.6rem,3.5vw,2.6rem)}
.post-featured .post-body h2{font-size:clamp(1.3rem,2.4vw,1.7rem)}
.blog-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--sh-m)}
.post-media{position:relative;display:block;overflow:hidden;aspect-ratio:16/10}
.post-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.post-card:hover .post-media img,.post-featured:hover .post-media img{transform:scale(1.06)}
.post-cat{position:absolute;top:.9rem;left:.9rem;background:var(--red);color:#fff;font:800 .66rem var(--font-display);letter-spacing:.08em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px}
.post-body{display:flex;flex-direction:column;gap:.6rem;padding:1.4rem 1.4rem 1.5rem;flex:1}
.post-date{font:600 .76rem var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.post-body h3{font-size:1.12rem;line-height:1.3}
.post-body h3 a{color:inherit;text-decoration:none;transition:color .25s}
.post-body h3 a:hover{color:var(--red)}
.post-body p{font-size:.92rem;flex:1}
.page-hero .eyebrow{color:#ff8080}
.page-hero .eyebrow::before{background:#ff8080}
.article-meta strong{color:#fff}
.article-cover{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-m);margin-bottom:2.4rem}
.article-cover img{width:100%;aspect-ratio:16/8;object-fit:cover}
.article-body{max-width:780px}
.article-body h2{font-size:1.45rem;margin:2.2rem 0 1rem}
.article-body p{margin-bottom:1.15rem;font-size:1.03rem}
.article-body .check-list{margin-bottom:1.5rem}
.article-body .check-list span{color:var(--txt)}
.author-box{display:flex;gap:1.1rem;align-items:center;background:var(--bg-soft);border-radius:var(--r-l);padding:1.5rem;margin-top:2.8rem}
.author-box img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.author-box strong{display:block;font:800 1rem var(--font-display);color:var(--ink)}
.author-box span{font-size:.87rem;color:var(--muted)}
.article-layout{display:grid;gap:3rem;grid-template-columns:1fr;margin-top:2rem}
@media (min-width:1020px){.article-layout{grid-template-columns:1fr 320px;gap:4rem;align-items:start}.article-sidebar{position:sticky;top:calc(var(--header-h) + 2rem)}}
.article-sidebar{display:flex;flex-direction:column;gap:2rem}
.sidebar-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:1.5rem}
.sidebar-card h3{font-size:1rem;margin-bottom:1.2rem;padding-bottom:.8rem;border-bottom:2px solid var(--line)}
.recent-posts{display:flex;flex-direction:column;gap:1rem}
.recent-post{display:flex;gap:.9rem;align-items:flex-start;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.recent-post:last-child{border-bottom:none;padding-bottom:0}
.recent-post-date{font:600 .78rem var(--font-body);color:var(--muted);white-space:nowrap;min-width:70px}
.recent-post-title{font:700 .95rem var(--font-display);line-height:1.4}
.recent-post-title a{color:var(--ink);text-decoration:none;transition:color .25s}
.recent-post-title a:hover{color:var(--red)}
.sidebar-categories{display:flex;flex-wrap:wrap;gap:.5rem}
.sidebar-cat-link{display:inline-block;padding:.5rem 1rem;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);font:700 .82rem var(--font-display);color:var(--ink);text-decoration:none;transition:background .25s,border-color .25s,color .25s}
.sidebar-cat-link:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.article-related-section{margin-top:4rem;padding-top:3rem;border-top:2px solid var(--line)}
}

/* 19. PAGE À PROPOS — histoire, valeurs, équipe managériale */
.story-grid { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 960px) { .story-grid { grid-template-columns: 1.1fr .9fr; gap: 4.5rem; } }
.story-text p + p { margin-top: 1.1rem; }
.story-punch {
  margin: 1.6rem 0;
  padding: 1.1rem 1.4rem;
  background: var(--red-soft);
  border-left: 4px solid var(--red);
  border-radius: 0 var(--r) var(--r) 0;
  font: 800 1.15rem/1.4 var(--font-display);
  color: var(--ink);
}
.ambition-panel { position: relative; overflow: hidden; background: var(--navy); color: #cfd3e4; border-radius: var(--r-l); padding: clamp(1.8rem, 4vw, 2.4rem); }
.ambition-panel::before { content: ""; position: absolute; top: -80px; right: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(220, 0, 0, .35), transparent 65%); }
.ambition-panel h3 { position: relative; color: #fff; margin-bottom: 1.2rem; }
.ambition-list { position: relative; display: grid; gap: .95rem; }
.ambition-list li { display: flex; gap: .8rem; align-items: flex-start; font-size: .95rem; }
.ambition-list .ic { width: 20px; height: 20px; color: #ff8080; margin-top: .15rem; flex: none; }
.ambition-list strong { color: #fff; }
.diff-grid { display: grid; gap: 1.3rem; margin-top: 2.8rem; }
@media (min-width: 720px) { .diff-grid { grid-template-columns: 1fr 1fr; } }
.diff-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); padding: 1.7rem 1.6rem; transition: transform .3s var(--ease), box-shadow .3s; }
.diff-card:hover { transform: translateY(-4px); box-shadow: var(--sh-m); }
.diff-card .no { display: block; color: var(--muted); font-size: .95rem; text-decoration: line-through; text-decoration-color: rgba(220, 0, 0, .6); margin-bottom: .6rem; }
.diff-card .yes { display: flex; gap: .7rem; align-items: flex-start; font: 700 1.02rem/1.45 var(--font-display); color: var(--ink); }
.diff-card .yes .ic { color: var(--red); flex: none; margin-top: .2rem; }
.diff-card p:not(.yes) { margin-top: .8rem; font-size: .93rem; }

/* Profils de l'équipe managériale */
.profiles { display: grid; gap: clamp(2.8rem, 6vw, 4.5rem); margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.profile { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 960px) {
  .profile { grid-template-columns: .8fr 1.2fr; gap: 3.5rem; }
  .profile--rev .profile-photo { order: 2; }
}
.profile-photo { position: relative; border-radius: var(--r-l); overflow: hidden; box-shadow: var(--sh-m); }
.profile-photo img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; transition: transform .8s var(--ease); }
.profile:hover .profile-photo img { transform: scale(1.05); }
.profile-index { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: var(--red); color: #fff; font: 800 .8rem var(--font-display); padding: .4rem .8rem; border-radius: 999px; }
.profile-body h3 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
.profile-role { display: block; font: 700 .78rem var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--red); margin: .55rem 0 .4rem; }
.profile-quote { margin: 1rem 0 1.2rem; padding: .9rem 1.2rem; background: var(--bg-soft); border-left: 3px solid var(--red); border-radius: 0 var(--r-s) var(--r-s) 0; font: 600 1.02rem/1.55 var(--font-display); color: var(--ink); }
.profile-body > p { font-size: .97rem; }
.profile-sub { font: 800 .95rem var(--font-display); color: var(--ink); margin: 1.3rem 0 .7rem; }
.profile-points { display: grid; gap: .55rem; }
.profile-points li { display: flex; gap: .65rem; align-items: flex-start; font-size: .93rem; }
.profile-points .ic { width: 17px; height: 17px; color: var(--red); margin-top: .2rem; flex: none; }
.profile-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.1rem; }
.profile-tags li { background: var(--bg-soft); border: 1px solid var(--line); border-radius: 999px; padding: .35rem .85rem; font: 600 .78rem var(--font-display); color: var(--navy); }

/* Équipe élargie */
.ext-team { background: var(--bg-soft); }
.ext-grid { display: grid; gap: 1.3rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); margin-top: .5rem; }
.ext-card { display: flex; gap: .9rem; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 1.4rem 1.3rem; transition: transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.ext-card:hover { transform: translateY(-4px); box-shadow: var(--sh-s); border-color: rgba(220, 0, 0, .3); }
.ext-card .ic { width: 22px; height: 22px; color: var(--red); flex: none; margin-top: .1rem; }
.ext-card strong { display: block; font: 700 .95rem var(--font-display); color: var(--ink); margin-bottom: .2rem; }
.ext-card span { font-size: .85rem; color: var(--muted); }
/* 22. UTILITAIRES DE RYTHME — resserre la couture entre deux sections */
.section.pad-bottom-s { padding-bottom: clamp(2rem, 5vw, 4rem); }
.section.pad-top-s    { padding-top:    clamp(2rem, 5vw, 4rem); }

/* 19. PAGES LÉGALES (Politique de confidentialité, Mentions légales) */
.legal { max-width: 780px; margin-inline: auto; }
.legal h2 { 
  font-size: 1.35rem; 
  margin: 2.5rem 0 1rem; 
  padding-left: 1.2rem; 
  border-left: 4px solid var(--red); 
}
.legal h2:first-child { margin-top: 0; }
.legal p { color: var(--txt); margin-bottom: 1.1rem; line-height: 1.7; }
.legal ul, .legal ol { 
  margin: 1.1rem 0 1.4rem 1.5rem; 
  display: grid; 
  gap: .6rem; 
}
.legal ul li, .legal ol li { 
  color: var(--txt); 
  font-size: .98rem; 
  line-height: 1.65;
}
.legal ul li { list-style-type: disc; }
.legal ol li { list-style-type: decimal; }
.legal a { color: var(--red); text-decoration: underline; }
.legal a:hover { color: var(--red-dark); }
.legal strong { color: var(--ink); font-weight: 700; }
.legal-date { 
  font-size: .88rem; 
  color: var(--muted); 
  margin-bottom: 2rem; 
  padding: 1rem 1.2rem;
  background: var(--bg-soft);
  border-radius: var(--r);
  border-left: 3px solid var(--red);
}
.legal-date strong { color: var(--ink); }
/* 23. SIGNATURE DÉVELOPPEUR (footer) */
.sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.footer-credit {
  display: inline-flex; align-items: center; gap: .4rem;
  color: #8d93b3; font-size: .84rem;
}
.footer-credit strong { color: #c3c8dd; font-weight: 700; }
.footer-credit a { color: #c3c8dd; text-decoration: none; border-bottom: 1px solid transparent; transition: color .25s, border-color .25s; }
.footer-credit a:hover { color: #fff; border-color: var(--red); }
.footer-credit .heart { color: var(--red); display: inline-block; line-height: 1; }
@keyframes heartbeat {
  0%, 100% { transform: scale(1); }
  20% { transform: scale(1.25); }
  35% { transform: scale(1); }
  50% { transform: scale(1.15); }
  70% { transform: scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
  .footer-credit .heart { animation: heartbeat 1.8s ease-in-out infinite; }
}