/* ============================================================
   CESCHOD — Marck-Antoine Jr. HODONOU · Stratège Digital
   Feuille de style principale (FR + EN)
   ============================================================ */

:root{
  --navy:        #0E1C2E;
  --navy-2:      #16283F;
  --orange:      #EE7226;
  --orange-dark: #D55F15;
  --gold:        #C9A15A;
  --ink:         #17232F;
  --muted:       #5B6B7B;
  --line:        #E6EAF0;
  --bg:          #FFFFFF;
  --bg-soft:     #F5F7FA;
  --radius:      18px;
  --shadow:      0 10px 30px rgba(14,28,46,.08);
  --shadow-lg:   0 24px 60px rgba(14,28,46,.14);
  --header-h:    72px;
  --font-head:   "Poppins","Segoe UI",system-ui,sans-serif;
  --font-body:   "Inter","Segoe UI",system-ui,sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px); }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none!important; transition:none!important; }
}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16.5px; line-height:1.65;
  color:var(--ink); background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
h1,h2,h3{ font-family:var(--font-head); line-height:1.15; margin:0 0 .5em; }
h1{ font-size:clamp(2.1rem,4.6vw,3.4rem); font-weight:700; letter-spacing:-.02em; }
h2{ font-size:clamp(1.6rem,3vw,2.3rem); font-weight:700; letter-spacing:-.015em; }
h3{ font-size:1.15rem; font-weight:600; }
p{ margin:0 0 1em; }
a{ color:var(--orange-dark); }
:focus-visible{ outline:3px solid var(--orange); outline-offset:2px; border-radius:4px; }

.container{ width:min(1140px,92%); margin-inline:auto; }
.section{ padding:clamp(64px,9vw,110px) 0; }
.section-soft{ background:var(--bg-soft); }

/* Étiquette au-dessus des titres */
.eyebrow{
  display:inline-block; font-family:var(--font-head);
  font-size:.8rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--orange-dark); margin-bottom:14px;
}
.section-head{ max-width:640px; margin-bottom:clamp(32px,5vw,56px); }
.section-head p{ color:var(--muted); }

/* ---------- Liens d'évitement (accessibilité) ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--navy); color:#fff; padding:10px 18px; border-radius:0 0 10px 0;
}
.skip-link:focus{ left:0; }

/* ============================ HEADER ============================ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .25s, box-shadow .25s;
}
.site-header.is-scrolled{ border-bottom-color:var(--line); box-shadow:0 6px 24px rgba(14,28,46,.06); }
.header-inner{
  display:flex; align-items:center; gap:28px;
  height:var(--header-h);
}
.brand{
  font-family:var(--font-head); font-weight:700; font-size:1.22rem; letter-spacing:.16em;
  color:var(--navy); text-decoration:none; display:flex; align-items:center; gap:10px;
}
.brand .dot{ width:10px; height:10px; border-radius:50%; background:var(--orange); flex:none; }

.main-nav{ margin-left:auto; }
.main-nav ul{ display:flex; gap:26px; list-style:none; margin:0; padding:0; }
.main-nav a{
  text-decoration:none; color:var(--ink); font-weight:500; font-size:.95rem;
  padding:6px 2px; border-bottom:2px solid transparent; transition:color .2s,border-color .2s;
}
.main-nav a:hover{ color:var(--orange-dark); border-bottom-color:var(--orange); }

.lang-switch{
  display:flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; flex:none;
}
.lang-switch a,.lang-switch span{
  padding:5px 12px; font-size:.8rem; font-weight:600; text-decoration:none; color:var(--muted);
}
.lang-switch [aria-current]{ background:var(--navy); color:#fff; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--font-head); font-weight:600; font-size:.98rem;
  padding:13px 26px; border-radius:999px; text-decoration:none; border:2px solid transparent;
  cursor:pointer; transition:transform .15s, box-shadow .2s, background .2s, color .2s;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--orange); color:#fff; box-shadow:0 8px 22px rgba(238,114,38,.35); }
.btn-primary:hover{ background:var(--orange-dark); box-shadow:0 10px 26px rgba(238,114,38,.45); }
.btn-ghost{ border-color:var(--navy); color:var(--navy); background:transparent; }
.btn-ghost:hover{ background:var(--navy); color:#fff; }
.btn-light{ background:#fff; color:var(--navy); }
.btn-light:hover{ background:var(--bg-soft); }
.btn-wa{ background:#22c15e; color:#fff; box-shadow:0 8px 22px rgba(34,193,94,.35); }
.btn-wa:hover{ background:#1aa54f; }
.header-cta{ padding:10px 22px; font-size:.9rem; flex:none; }

/* Burger */
.nav-toggle{
  display:none; margin-left:auto; background:none; border:0; cursor:pointer; padding:8px;
}
.nav-toggle .bar{
  display:block; width:24px; height:2.5px; background:var(--navy); border-radius:2px;
  margin:5px 0; transition:transform .25s, opacity .2s;
}
.nav-toggle[aria-expanded="true"] .bar:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bar:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .bar:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ============================ HERO ============================ */
.hero{
  background:
    radial-gradient(1000px 500px at 85% -10%, rgba(238,114,38,.10), transparent 60%),
    linear-gradient(180deg,#FDFDFE 0%, var(--bg-soft) 100%);
  overflow:hidden;
}
.hero-inner{
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,64px);
  align-items:center; padding:clamp(48px,7vw,90px) 0 clamp(56px,8vw,100px);
}
.hero h1{ color:var(--navy); margin-bottom:.55em; }
.hero h1 .accent{ color:var(--orange); }
.hero .lead{ font-size:1.12rem; color:var(--muted); max-width:52ch; margin-bottom:1.6em; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.hero-points{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0; }
.hero-points li{
  display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:7px 15px; font-size:.85rem; font-weight:500; color:var(--ink);
  box-shadow:0 3px 10px rgba(14,28,46,.05);
}
.hero-points svg{ color:var(--orange); flex:none; }

.hero-figure{ position:relative; margin:0; justify-self:center; }
.hero-figure::before{
  content:""; position:absolute; inset:auto -8% -6% -8%; height:55%;
  background:linear-gradient(135deg,var(--navy),var(--navy-2));
  border-radius:28px; transform:rotate(-3deg); z-index:0;
}
.hero-figure img{
  position:relative; z-index:1; width:min(400px,80vw); aspect-ratio:4/5; object-fit:cover; object-position:top;
  border-radius:24px; box-shadow:var(--shadow-lg);
}
.hero-badge{
  position:absolute; z-index:2; left:-26px; bottom:34px;
  background:#fff; border-radius:16px; box-shadow:var(--shadow-lg);
  padding:12px 18px; display:flex; align-items:center; gap:12px;
}
.hero-badge .num{ font-family:var(--font-head); font-weight:700; font-size:1.45rem; color:var(--orange); line-height:1; }
.hero-badge .txt{ font-size:.78rem; color:var(--muted); line-height:1.3; }

/* ============================ LOGOS ============================ */
.trust{ padding:34px 0 40px; border-bottom:1px solid var(--line); background:#fff; }
.trust-label{
  text-align:center; font-size:.8rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); margin-bottom:22px;
}
.trust-logos{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap:clamp(22px,4vw,48px); list-style:none; margin:0; padding:0;
}
.trust-logos img{
  height:44px; width:auto; max-width:120px; object-fit:contain;
  filter:grayscale(1); opacity:.6; transition:filter .25s, opacity .25s;
}
.trust-logos a:hover img,.trust-logos li:hover img{ filter:none; opacity:1; }

/* ============================ À PROPOS ============================ */
.about-grid{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(36px,6vw,72px); align-items:center;
}
.about-figure{ position:relative; margin:0; }
.about-figure img{
  width:100%; max-width:420px; aspect-ratio:4/5; object-fit:cover; object-position:top;
  border-radius:24px; box-shadow:var(--shadow-lg);
}
.about-figure::after{
  content:""; position:absolute; top:-16px; right:6%; width:88px; height:88px;
  border-radius:50%; background:radial-gradient(circle at 35% 35%, var(--orange), var(--orange-dark));
  opacity:.14; z-index:-1;
}
.about-body .lead{ color:var(--muted); }
.skills{
  display:grid; grid-template-columns:1fr 1fr; gap:12px 22px;
  list-style:none; padding:0; margin:26px 0 30px;
}
.skills li{ display:flex; align-items:center; gap:10px; font-weight:500; font-size:.97rem; }
.skills svg{ color:var(--orange); flex:none; }
.about-quote{
  border-left:4px solid var(--orange); background:var(--bg-soft);
  padding:16px 20px; border-radius:0 14px 14px 0; font-style:italic; color:var(--ink);
  margin:0 0 30px;
}

/* ============================ SERVICES ============================ */
.services-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.service-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 28px; display:flex; flex-direction:column; gap:14px;
  transition:transform .2s, box-shadow .25s, border-color .25s;
}
.service-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:transparent; }
.service-icon{
  width:52px; height:52px; border-radius:14px; display:grid; place-items:center;
  background:linear-gradient(135deg,rgba(238,114,38,.14),rgba(238,114,38,.05));
  color:var(--orange-dark); flex:none;
}
.service-card h3{ margin:0; color:var(--navy); }
.service-card p{ color:var(--muted); font-size:.95rem; margin:0; flex-grow:1; }
.service-link{
  font-weight:600; font-size:.92rem; text-decoration:none; color:var(--orange-dark);
  display:inline-flex; align-items:center; gap:6px;
}
.service-link:hover{ text-decoration:underline; }

/* ============================ PROCESSUS ============================ */
.steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:step;
  list-style:none; margin:0; padding:0;
}
.steps li{
  background:var(--navy); color:#E8EDF4; border-radius:var(--radius);
  padding:30px 28px; position:relative; overflow:hidden;
}
.steps li::before{
  counter-increment:step; content:"0" counter(step);
  position:absolute; right:14px; top:2px;
  font-family:var(--font-head); font-weight:700; font-size:4.4rem;
  color:rgba(255,255,255,.07); line-height:1;
}
.steps h3{ color:#fff; margin-bottom:.4em; }
.steps p{ margin:0; font-size:.93rem; color:#B9C6D6; }

/* ============================ EN ACTION (galerie) ============================ */
.moments-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.moments-grid figure{
  margin:0; position:relative; border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow);
}
.moments-grid img{
  width:100%; aspect-ratio:4/5; object-fit:cover; display:block;
  transition:transform .35s ease;
}
.moments-grid figure:hover img{ transform:scale(1.04); }
.moments-grid figcaption{
  position:absolute; inset:auto 0 0 0; padding:36px 18px 14px;
  background:linear-gradient(180deg,transparent, rgba(10,18,28,.75));
  color:#fff; font-family:var(--font-head); font-weight:600; font-size:.95rem;
}

/* ============================ BANDE CTA ============================ */
.cta-band{
  background:linear-gradient(120deg,var(--navy) 0%, var(--navy-2) 100%);
  color:#fff; text-align:center;
}
.cta-band h2{ color:#fff; max-width:22ch; margin-inline:auto; }
.cta-band p{ color:#AEBDCE; max-width:56ch; margin:0 auto 32px; }
.cta-band .actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.cta-split{
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,64px);
  align-items:center; text-align:left;
}
.cta-split h2,.cta-split p{ margin-inline:0; max-width:none; }
.cta-split .actions{ justify-content:flex-start; }
.cta-split img{
  width:100%; max-width:380px; aspect-ratio:4/5; object-fit:cover;
  border-radius:20px; box-shadow:0 24px 60px rgba(0,0,0,.45); justify-self:end;
}

/* ============================ CONTACT ============================ */
.contact-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,6vw,64px); align-items:start; }
.contact-info h2{ margin-bottom:.4em; }
.contact-info > p{ color:var(--muted); margin-bottom:28px; }
.contact-list{ list-style:none; margin:0 0 30px; padding:0; display:grid; gap:18px; }
.contact-list li{ display:flex; gap:14px; align-items:flex-start; }
.contact-list .ico{
  width:44px; height:44px; border-radius:12px; background:var(--bg-soft);
  display:grid; place-items:center; color:var(--orange-dark); flex:none;
}
.contact-list .lbl{ font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.contact-list a{ color:var(--ink); text-decoration:none; font-weight:500; }
.contact-list a:hover{ color:var(--orange-dark); }
.socials{ display:flex; gap:10px; flex-wrap:wrap; list-style:none; padding:0; margin:0; }
.socials a{
  width:42px; height:42px; border-radius:12px; border:1px solid var(--line);
  display:grid; place-items:center; color:var(--navy); transition:all .2s;
}
.socials a:hover{ background:var(--navy); border-color:var(--navy); color:#fff; transform:translateY(-2px); }

.contact-form{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:clamp(24px,4vw,38px);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-weight:600; font-size:.88rem; margin-bottom:6px; }
.field input,.field select,.field textarea{
  width:100%; font:inherit; color:var(--ink);
  border:1.5px solid var(--line); border-radius:12px; background:var(--bg-soft);
  padding:12px 14px; transition:border-color .2s, background .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--orange); background:#fff;
}
.field textarea{ min-height:130px; resize:vertical; }
.hp{ position:absolute; left:-9999px; height:1px; width:1px; overflow:hidden; }
.form-note{ font-size:.8rem; color:var(--muted); margin:10px 0 0; }
.form-alert{ display:none; border-radius:12px; padding:14px 16px; margin-bottom:18px; font-weight:500; }
.form-alert.ok{ display:block; background:#E7F8EE; color:#116B3A; border:1px solid #B5E5C9; }
.form-alert.err{ display:block; background:#FCEBEA; color:#8F1D18; border:1px solid #F2C4C0; }

/* ============================ FOOTER ============================ */
.site-footer{ background:var(--navy); color:#9FB0C2; padding:54px 0 30px; }
.footer-grid{ display:flex; flex-wrap:wrap; gap:32px; align-items:center; justify-content:space-between; margin-bottom:34px; }
.site-footer .brand{ color:#fff; }
.footer-nav ul{ display:flex; flex-wrap:wrap; gap:22px; list-style:none; margin:0; padding:0; }
.footer-nav a{ color:#C4D1DF; text-decoration:none; font-size:.92rem; }
.footer-nav a:hover{ color:#fff; }
.site-footer .socials a{ border-color:rgba(255,255,255,.18); color:#C4D1DF; }
.site-footer .socials a:hover{ background:var(--orange); border-color:var(--orange); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12); padding-top:22px;
  display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; font-size:.85rem;
}
.footer-bottom a{ color:#C4D1DF; }

/* ============================ RÉVÉLATION AU DÉFILEMENT ============================ */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }

/* ============================ RESPONSIVE ============================ */
@media (max-width:980px){
  .hero-inner{ grid-template-columns:1fr; text-align:left; }
  .hero-figure{ justify-self:start; }
  .services-grid{ grid-template-columns:1fr 1fr; }
  .steps{ grid-template-columns:1fr; }
  .about-grid{ grid-template-columns:1fr; }
  .cta-split{ grid-template-columns:1fr; text-align:center; }
  .cta-split .actions{ justify-content:center; }
  .cta-split img{ justify-self:center; max-width:300px; }
  .moments-grid{ grid-template-columns:1fr 1fr; }
  .about-figure img{ max-width:340px; }
  .contact-grid{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  :root{ --header-h:64px; }
  .nav-toggle{ display:block; }
  .main-nav{
    position:fixed; inset:var(--header-h) 0 auto 0; z-index:99;
    background:#fff; border-bottom:1px solid var(--line);
    box-shadow:0 24px 40px rgba(14,28,46,.12);
    padding:10px 6vw 22px;
    transform:translateY(-130%); transition:transform .3s ease;
  }
  .main-nav.is-open{ transform:none; }
  .main-nav ul{ flex-direction:column; gap:4px; }
  .main-nav a{ display:block; padding:12px 4px; font-size:1.05rem; border-bottom:1px solid var(--line); }
  .header-cta{ display:none; }
  .hero-badge{ left:8px; bottom:18px; padding:10px 14px; }
  .services-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .skills{ grid-template-columns:1fr; }
  .moments-grid{ grid-template-columns:1fr; }
  .moments-grid img{ aspect-ratio:4/3; }
  .btn{ width:100%; }
  .hero-ctas .btn,.cta-band .actions .btn{ width:100%; }
  .footer-grid{ flex-direction:column; align-items:flex-start; }
}
@media (min-width:761px){
  .hero-ctas .btn,.cta-band .actions .btn{ width:auto; }
}

/* ============================================================
   COUCHE PREMIUM — dégradés animés, aurora, glow, glass
   Inspiration : bibliothèques de design haut de gamme
   ============================================================ */

/* --- Titre héro : dégradé orange animé + halo --- */
.hero h1 .accent{
  background:linear-gradient(100deg,#EE7226 0%, #FFB27A 35%, #EE7226 60%, #FF9248 100%);
  background-size:220% auto;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:shine 6s linear infinite;
  filter:drop-shadow(0 6px 26px rgba(238,114,38,.28));
}
@keyframes shine{ to{ background-position:220% center; } }

/* --- Héro : fond aurora animé --- */
.hero{ position:relative; isolation:isolate; }
.hero::before,.hero::after{
  content:""; position:absolute; z-index:-1; border-radius:50%;
  filter:blur(70px); opacity:.5; pointer-events:none;
}
.hero::before{
  width:520px; height:520px; top:-160px; right:-80px;
  background:radial-gradient(circle at 30% 30%, rgba(238,114,38,.55), transparent 70%);
  animation:float1 16s ease-in-out infinite;
}
.hero::after{
  width:440px; height:440px; bottom:-180px; left:-120px;
  background:radial-gradient(circle at 40% 40%, rgba(28,58,110,.40), transparent 70%);
  animation:float2 20s ease-in-out infinite;
}
@keyframes float1{ 50%{ transform:translate(-40px,40px) scale(1.1); } }
@keyframes float2{ 50%{ transform:translate(50px,-30px) scale(1.08); } }

/* --- Étiquette : point lumineux --- */
.eyebrow{ position:relative; padding-left:20px; }
.eyebrow::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:9px; height:9px; border-radius:50%; background:var(--orange);
  box-shadow:0 0 0 4px rgba(238,114,38,.18), 0 0 14px 2px rgba(238,114,38,.6);
}

/* --- Boutons premium : reflet + halo animé --- */
.btn-primary{
  position:relative; overflow:hidden;
  background:linear-gradient(120deg,#F0812F,#DC6014);
  box-shadow:0 10px 26px rgba(238,114,38,.40), inset 0 1px 0 rgba(255,255,255,.25);
}
.btn-primary::after{
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(100deg,transparent, rgba(255,255,255,.45), transparent);
  transform:skewX(-20deg); transition:left .6s ease;
}
.btn-primary:hover::after{ left:130%; }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(238,114,38,.5); }

/* --- Photo héro : anneau lumineux --- */
.hero-figure img{
  box-shadow:var(--shadow-lg), 0 0 0 1px rgba(255,255,255,.6),
             0 30px 80px -20px rgba(238,114,38,.35);
}

/* --- Cartes services : glass + bord dégradé au survol --- */
.service-card{
  position:relative; background:rgba(255,255,255,.72);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.service-card::before{
  content:""; position:absolute; inset:0; border-radius:var(--radius); padding:1.5px;
  background:linear-gradient(130deg, rgba(238,114,38,.7), rgba(28,58,110,.35));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0; transition:opacity .3s;
}
.service-card:hover::before{ opacity:1; }
.service-card:hover{ transform:translateY(-8px) scale(1.01); box-shadow:var(--shadow-lg); }
.service-icon{ transition:transform .3s, box-shadow .3s; }
.service-card:hover .service-icon{
  transform:translateY(-2px) scale(1.06);
  box-shadow:0 8px 22px rgba(238,114,38,.35);
}

/* --- Étapes : léger relief lumineux --- */
.steps li{ transition:transform .3s, box-shadow .3s; }
.steps li:hover{ transform:translateY(-4px); box-shadow:0 22px 48px rgba(14,28,46,.35); }

/* --- Logos de confiance : révélation douce --- */
.trust-logos img{ transition:filter .3s, opacity .3s, transform .3s; }
.trust-logos li:hover img,.trust-logos a:hover img{ transform:translateY(-3px); }

/* --- Bande CTA : aurora + titre dégradé --- */
.cta-band{ position:relative; overflow:hidden; isolation:isolate; }
.cta-band::before{
  content:""; position:absolute; z-index:-1; inset:auto -10% -60% -10%; height:120%;
  background:radial-gradient(60% 60% at 70% 20%, rgba(238,114,38,.30), transparent 70%),
            radial-gradient(50% 50% at 20% 80%, rgba(56,110,190,.28), transparent 70%);
  animation:float1 18s ease-in-out infinite;
}
.cta-band h2{
  background:linear-gradient(100deg,#fff 0%, #FFD9BE 50%, #fff 100%);
  background-size:200% auto; -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:shine 7s linear infinite;
}
.cta-split img{ box-shadow:0 30px 70px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.08); }

/* --- Galerie « En action » : overlay dégradé plus riche --- */
.moments-grid figcaption{
  background:linear-gradient(180deg,transparent, rgba(10,18,28,.82));
}
.moments-grid figure::after{
  content:""; position:absolute; inset:0; border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10); pointer-events:none;
}

/* --- En-tête : bouton CTA avec halo pulsé (discret) --- */
.header-cta{
  background:linear-gradient(120deg,#F0812F,#DC6014);
  box-shadow:0 6px 18px rgba(238,114,38,.4);
}

/* --- Révélation : léger décalage + fondu plus doux --- */
.reveal{ transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }

/* --- Respect de prefers-reduced-motion --- */
@media (prefers-reduced-motion:reduce){
  .hero h1 .accent,.cta-band h2{ animation:none; }
  .hero::before,.hero::after,.cta-band::before{ animation:none; }
}
