/* SAVPLUS CONSEIL — design system */
:root{
  --navy-950:#060C1A;
  --navy-900:#0A1428;
  --navy-800:#0F1E3A;
  --navy-700:#17294C;
  --navy-line:#233258;
  --red-600:#FF1E33;
  --red-700:#D40C22;
  --red-050:#FFE7EA;
  --paper:#F6F7FA;
  --white:#FFFFFF;
  --ink:#0B1424;
  --ink-soft:#53607A;
  --ink-faint:#8792A6;
  --line:#E4E8F0;
  --shadow-sm:0 1px 2px rgba(6,12,26,.06);
  --shadow-md:0 10px 30px -14px rgba(6,12,26,.28);
  --shadow-lg:0 24px 60px -20px rgba(6,12,26,.35);
  --radius:14px;
  --radius-sm:9px;
  --container:1220px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:"Public Sans",-apple-system,"Segoe UI",sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:anywhere;
}
h1,h2,h3,h4{font-family:"Archivo",sans-serif; text-wrap:balance; margin:0 0 .5em; line-height:1.15; letter-spacing:-.01em;}
p{margin:0 0 1em; max-width:64ch;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{list-style:none; margin:0; padding:0;}
button{font:inherit; cursor:pointer;}
input,textarea,select{font:inherit;}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;}
.container{max-width:var(--container); margin:0 auto; padding:0 24px;}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

section{padding:88px 0;}
section.tight{padding:56px 0;}
@media (max-width:760px){
  section{padding:56px 0;}
  section.tight{padding:40px 0;}
}
.section-alt{background:var(--paper);}
.section-navy{position:relative; background-color:var(--navy-950); color:#EAF0FA; overflow:hidden;}
.section-navy-photo{position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;}
.section-navy-overlay{
  position:absolute; inset:0; z-index:0;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.09) 1px, transparent 0),
    linear-gradient(180deg, rgba(6,12,26,.92) 0%, rgba(6,12,26,.88) 100%);
  background-size: 28px 28px, auto;
}
.section-navy .ink-soft{color:#94A4C2;}
.section-navy h2,.section-navy h3{color:#fff;}
.section-navy .container{position:relative; z-index:1;}
.dot-grid, .hero, .page-hero, .cta-banner, .section-navy{
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.09) 1px, transparent 0);
  background-size: 28px 28px;
}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--red-600); margin-bottom:14px;
}
.eyebrow::before{content:""; width:20px; height:2px; background:var(--red-600); display:inline-block; border-radius:2px;}
.section-navy .eyebrow{color:#FF6B7A;}

.section-head{max-width:680px; margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3.6vw,38px); font-weight:800;}
.section-head p{color:var(--ink-soft); font-size:16px; margin:0;}
.section-navy .section-head p{color:#9FADC9;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:700; font-size:15px; padding:14px 26px; border-radius:999px;
  border:1.5px solid transparent; transition:transform .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-sm{padding:10px 20px; font-size:13.5px;}
.btn-primary{background:var(--red-600); color:#fff;}
.btn-primary:hover{background:var(--red-700);}
.btn-outline-light{border-color:rgba(255,255,255,.4); color:#fff; background:var(--navy-800);}
.btn-outline-light:hover{border-color:#fff; background:rgba(255,255,255,.12);}
.btn-outline-dark{border-color:var(--navy-900); color:var(--navy-900);}
.btn-outline-dark:hover{background:var(--navy-950); color:#fff; border-color:var(--navy-950);}
.btn-ghost{color:var(--ink); padding-left:0; padding-right:0;}
.btn-ghost::after{content:"→"; margin-left:6px; transition:transform .15s ease;}
.btn-ghost:hover::after{transform:translateX(3px);}
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:80; background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header.menu-open{
  /* backdrop-filter creates a containing block for descendant position:fixed elements,
     which would trap the full-screen mobile nav inside the header's own small box */
  backdrop-filter:none; background:#fff;
}
.site-header.scrolled{box-shadow:var(--shadow-sm);}
.header-inner{
  max-width:var(--container); margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; gap:28px;
}
.brand{display:flex; align-items:center; gap:10px; margin-right:auto;}
.brand-logo{width:38px; height:38px; border-radius:8px; object-fit:cover; box-shadow:var(--shadow-sm);}
.brand-name{font-family:"Archivo",sans-serif; font-weight:800; font-size:15px; letter-spacing:.01em; color:var(--navy-950);}
.brand-name b{color:var(--red-600); font-weight:900;}

.main-nav ul{display:flex; align-items:center; gap:6px;}
.main-nav > ul > li{position:relative;}
.main-nav a{
  display:flex; align-items:center; gap:6px; padding:10px 14px; border-radius:8px;
  font-weight:600; font-size:14.5px; color:var(--ink-soft);
}
/* :not(.btn) — le bouton d'appel à l'action du menu (mobile) doit garder son
   aspect de bouton, même quand le script le marque comme page courante */
.main-nav > ul > li > a:hover, .main-nav a[aria-current="page"]:not(.btn){color:var(--navy-950); background:var(--paper);}
.main-nav a[aria-current="page"]:not(.btn){position:relative;}
.main-nav a[aria-current="page"]:not(.btn)::after{content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px; background:var(--red-600); border-radius:2px;}
.chev{transition:transform .18s ease;}

.mega-panel{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  width:560px; padding-top:14px; background:transparent;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .16s ease;
}
.mega-panel-inner{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-lg); padding:12px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px;
  transform:translateY(-4px); transition:transform .16s ease;
}
.has-mega:hover .mega-panel, .has-mega:focus-within .mega-panel, .has-mega.open .mega-panel{
  opacity:1; visibility:visible; pointer-events:auto;
}
.has-mega:hover .mega-panel-inner, .has-mega:focus-within .mega-panel-inner, .has-mega.open .mega-panel-inner{transform:translateY(0);}
.has-mega:hover .chev, .has-mega.open .chev{transform:rotate(180deg);}
.mega-trigger.current{color:var(--navy-950); background:var(--paper);}
.mega-panel .mega-item{display:flex; flex-direction:column; gap:6px; padding:14px 12px; border-radius:10px; align-items:flex-start;}
.mega-item:hover{background:var(--paper);}
.mega-num{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--red-600); font-weight:600;}
.mega-item b{display:block; font-size:14px; color:var(--navy-950); margin-bottom:2px;}
.mega-item i{display:block; font-style:normal; font-size:12px; color:var(--ink-faint); font-weight:500;}

.header-cta{display:flex; align-items:center; gap:14px;}
.main-nav .mobile-nav-cta{display:none;}
.nav-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; background:none; border:none; padding:0;}
.nav-toggle span{width:22px; height:2px; background:var(--navy-950); border-radius:2px; transition:transform .2s ease, opacity .2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:960px){
  /* backdrop-filter turns .site-header into a containing block for position:fixed
     descendants on some mobile browsers (notably iOS Safari), which would trap
     .main-nav inside the header's own ~66px box instead of the full viewport.
     Disabling it outright on mobile removes that risk regardless of JS timing. */
  .site-header{backdrop-filter:none; background:#fff;}
  .header-cta .btn-primary{display:none;}
  .nav-toggle{display:flex;}
  .main-nav .mobile-nav-cta{display:block; margin-top:18px; text-align:center; width:100%; color:#fff;}
  .main-nav{
    position:fixed; inset:66px 0 0 0; background:#fff; padding:18px 24px; overflow-y:auto;
    transform:translateY(-8px); opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease;
    z-index:150;
  }
  .main-nav.open{opacity:1; visibility:visible; transform:translateY(0);}
  .main-nav ul{flex-direction:column; align-items:stretch; gap:2px;}
  .main-nav a{padding:14px 10px; font-size:16px;}
  .mega-panel{
    position:static; width:auto; padding-top:0; left:auto; transform:none;
    display:none; opacity:1; visibility:visible; pointer-events:auto;
  }
  .mega-panel-inner{
    background:none; border:none; box-shadow:none; grid-template-columns:1fr; padding:4px 0 4px 14px; transform:none;
  }
  .has-mega.open .mega-panel{display:block;}
  .main-nav a[aria-current="page"]::after{display:none;}
}

/* ---------- hero ---------- */
.hero{position:relative; background-color:var(--navy-950); color:#fff; overflow:hidden;}
.hero-photo{
  position:absolute; inset:0; z-index:0;
  background-image:url("../asset/images/accueil-hero-bureau-savplus.jpg");
  background-size:cover; background-position:center 25%;
}
.hero::before{
  content:""; position:absolute; top:-20%; right:-10%; width:60%; height:140%;
  background:var(--red-600); clip-path:polygon(38% 0,100% 0,72% 100%,20% 100%); opacity:.55; z-index:1;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 0),
    linear-gradient(100deg, rgba(6,12,26,.90) 38%, rgba(6,12,26,.62) 62%, rgba(6,12,26,.28) 100%);
  background-size: 28px 28px, auto;
}
.hero-inner{position:relative; z-index:2; padding-top:96px; padding-bottom:84px; max-width:660px;}
.hero h1{font-size:clamp(32px,5vw,54px); font-weight:900;}
.hero .lede{font-size:18px; color:#B9C4DC; margin-bottom:32px;}
.hero-meta{display:flex; margin-top:48px; padding-top:26px; border-top:1px solid rgba(255,255,255,.14);}
.hero-meta div{padding-right:28px; margin-right:28px; border-right:1px solid rgba(255,255,255,.14); white-space:nowrap;}
.hero-meta div:last-child{padding-right:0; margin-right:0; border-right:none;}
.hero-meta div .num{font-family:"Archivo",sans-serif; font-weight:900; font-size:27px; letter-spacing:-.01em;}
.hero-meta div .lbl{font-size:11px; color:#8FA0C0; text-transform:uppercase; letter-spacing:.07em; margin-top:2px;}
@media (max-width:760px){
  .hero-inner{padding-top:64px; padding-bottom:56px;}
  .hero::before{width:90%; right:-30%;}
  .hero-meta{flex-wrap:wrap; row-gap:20px;}
  .hero-meta div{flex:0 0 42%; padding-right:0; margin-right:0; border-right:none; white-space:normal;}
}

.page-hero{position:relative; background-color:var(--navy-950); color:#fff; overflow:hidden; padding:74px 0;}
.page-hero-photo{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
}
.page-hero::before{
  content:""; position:absolute; top:-40%; right:-6%; width:34%; height:220%;
  background:var(--red-600); clip-path:polygon(30% 0,100% 0,70% 100%,0 100%); opacity:.85; z-index:1;
}
.page-hero::after{
  content:""; position:absolute; inset:0; z-index:2;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.09) 1px, transparent 0),
    linear-gradient(100deg, rgba(6,12,26,.96) 42%, rgba(6,12,26,.8) 65%, rgba(6,12,26,.5) 100%);
  background-size: 28px 28px, auto;
}
.page-hero .container{position:relative; z-index:3;}
.page-hero h1{font-size:clamp(28px,4vw,42px); font-weight:900; max-width:680px;}
.page-hero p{color:#AEBADA; font-size:16.5px; max-width:58ch;}
.breadcrumb{font-family:"IBM Plex Mono",monospace; font-size:12px; color:#7C8CB2; margin-bottom:18px;}
.breadcrumb a{color:#AEBADA;}
.breadcrumb a:hover{color:#fff;}

/* ---------- trust bar ---------- */
.trust-bar{background:var(--white); border-bottom:1px solid var(--line);}
.trust-inner{display:flex; align-items:center; justify-content:space-between; padding-top:26px; padding-bottom:26px; flex-wrap:wrap; gap:22px;}
.trust-stats{display:flex; gap:34px; flex-wrap:wrap;}
.trust-stats .stat .num{font-family:"Archivo",sans-serif; font-weight:900; font-size:26px; color:var(--navy-950);}
.trust-stats .stat .lbl{font-size:11.5px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em;}
.trust-badges{display:flex; gap:10px; flex-wrap:wrap;}
.badge{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; font-weight:600; letter-spacing:.03em;
  padding:7px 14px; border-radius:999px; background:var(--paper); color:var(--navy-800); border:1px solid var(--line);
}

/* ---------- grids & cards ---------- */
.grid{display:grid; gap:20px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:920px){ .grid-3,.grid-4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;} }

.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:box-shadow .18s ease, transform .18s ease;}
a.card:hover, .card.hoverable:hover{box-shadow:var(--shadow-md); transform:translateY(-3px);}

.pole-card{padding:28px 24px; display:flex; flex-direction:column; gap:12px; border-top:3px solid var(--red-600);}
.pole-card .pn{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--red-600); font-weight:600;}
.pole-card h3{font-size:19px; font-weight:800;}
.pole-card p{font-size:14px; color:var(--ink-soft); margin-bottom:6px;}
.pole-card .link{font-weight:700; font-size:13.5px; color:var(--navy-950); margin-top:auto;}
.pole-card .link::after{content:"→"; margin-left:6px;}

.module-card{padding:24px 22px; display:flex; flex-direction:column; gap:8px;}
.module-icon{width:42px; height:42px; border-radius:10px; background:var(--navy-950); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Archivo",sans-serif; font-weight:800; font-size:15px; margin-bottom:6px;}
.module-card h3{font-size:16px; font-weight:800;}
.module-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}

.solution-card{padding:32px 24px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;}
.solution-card h3{font-size:16px; font-weight:800; margin:6px 0 0;}
.solution-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}
.solution-logo{width:56px; height:56px; border-radius:14px; background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; padding:9px; flex:0 0 auto;}
.solution-logo img{max-width:100%; max-height:100%; object-fit:contain;}
.solution-icon{width:56px; height:56px; border-radius:14px; background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--navy-800); flex:0 0 auto;}

.trust-logos-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:14px;}
@media (max-width:920px){ .trust-logos-grid{grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .trust-logos-grid{grid-template-columns:repeat(2,1fr); } }
.trust-logo-card{
  padding:18px 12px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; text-align:center; min-height:116px;
}
.trust-logo-card .tl-icon{
  width:40px; height:40px; border-radius:10px; background:var(--paper); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--navy-800); flex:0 0 auto;
}
.trust-logo-card span{font-size:11.5px; font-weight:600; color:var(--ink-soft); line-height:1.3;}
.trust-logo-card.placeholder{border-style:dashed; background:transparent;}
.trust-logo-card.placeholder .tl-icon{background:transparent; color:var(--ink-faint); border-style:dashed;}
.trust-logo-card.placeholder span{color:var(--ink-faint);}
.trust-logo-card.has-logo{padding:14px;}
.trust-logo-card.has-logo img{max-width:100%; max-height:56px; object-fit:contain;}

.solutions-marquee{overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);}
.solutions-track{display:flex; gap:20px; width:max-content; animation:solutions-marquee-scroll 28s linear infinite;}
.solutions-marquee:hover .solutions-track{animation-play-state:paused;}
.marquee-set{display:flex; gap:20px;}
.solution-card{flex:0 0 220px;}
.realisation-card{flex:0 0 300px;}
@keyframes solutions-marquee-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

.testimonial-card{padding:28px 26px; display:flex; flex-direction:column; gap:14px;}
.testimonial-stars{color:#F5B841; font-size:15px; letter-spacing:2px;}
.testimonial-quote{font-size:14.5px; color:var(--ink-soft); margin:0; flex:1;}
.testimonial-author{display:flex; align-items:center; gap:12px; padding-top:14px; border-top:1px solid var(--line);}
.testimonial-avatar{width:38px; height:38px; border-radius:50%; background:var(--navy-950); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Archivo",sans-serif; font-weight:800; font-size:14px; flex:0 0 auto;}
.testimonial-author b{display:block; font-size:13.5px; color:var(--navy-950);}
.testimonial-author span{display:block; font-size:12px; color:var(--ink-faint);}
.testimonial-logo{flex:1; display:flex; align-items:center; justify-content:center; padding:10px 0;}
.testimonial-logo img{max-width:100%; max-height:64px; object-fit:contain;}

.service-card{padding:28px 24px; display:flex; flex-direction:column; gap:14px;}
.service-icon{
  width:56px; height:56px; border-radius:14px; flex:0 0 auto;
  background:var(--red-050); color:var(--red-600);
  display:flex; align-items:center; justify-content:center;
}
.service-icon svg{width:26px; height:26px;}
.service-card h3{font-size:16px; font-weight:800; margin:0;}
.service-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}

.feature-list{display:flex; flex-direction:column; gap:14px;}
.feature-list li{display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--ink-soft);}
.feature-list .tick{flex:0 0 20px; width:20px; height:20px; border-radius:50%; background:var(--red-050); color:var(--red-600); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:900; margin-top:1px;}
.section-navy .feature-list li{color:#C3CDE3;}
.section-navy .feature-list .tick{background:#3A1620; color:#FF9AA3;}

/* ---------- offers / pricing ---------- */
.offer-card{padding:30px 26px; display:flex; flex-direction:column; gap:16px; position:relative;}
.offer-card.featured{background:var(--navy-950); color:#fff; border-color:var(--navy-950); transform:scale(1.03);}
.offer-card.featured .offer-price, .offer-card.featured h3{color:#fff;}
.offer-card.featured .feature-list li{color:#C3CDE3;}
.offer-card.featured .feature-list .tick{background:#3A1620; color:#FF9AA3;}
.offer-ribbon{position:absolute; top:-13px; right:24px; background:var(--red-600); color:#fff; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:6px 14px; border-radius:999px;}
.offer-card h3{font-size:18px; font-weight:800;}
.offer-price{font-family:"Archivo",sans-serif; font-weight:900; font-size:15px; color:var(--red-600);}
@media (max-width:920px){ .offer-card.featured{transform:none;} }

/* ---------- CTA banner ---------- */
.cta-banner{
  background-color:var(--navy-950); color:#fff; border-radius:20px; padding:56px 48px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; position:relative; overflow:hidden;
}
.cta-banner::before{content:""; position:absolute; right:-8%; top:-40%; width:40%; height:220%; background:var(--red-600); opacity:.85; clip-path:polygon(30% 0,100% 0,70% 100%,0 100%);}
.cta-banner > *{position:relative; z-index:1;}
.cta-banner h2{font-size:clamp(22px,3vw,30px); margin-bottom:6px;}
.cta-banner p{color:#AEBADA; margin:0;}
@media (max-width:760px){ .cta-banner{padding:36px 26px;} }

/* ---------- seminaires ---------- */
.seminar-card{padding:26px; display:flex; flex-direction:column; gap:10px;}
.seminar-card h3{font-size:17px; font-weight:800;}
.seminar-card p{font-size:14px; color:var(--ink-soft); margin:0;}
.info-tile{padding:20px; text-align:center;}
.info-tile .it-label{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--red-600); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px;}
.info-tile p{font-size:13.5px; color:var(--ink-soft); margin:0;}

/* ---------- realisations / ressources placeholders ---------- */
.placeholder-card{overflow:hidden;}
.placeholder-media{
  height:150px; background:
    linear-gradient(155deg, rgba(6,12,26,.92), rgba(6,12,26,.4) 55%, rgba(255,30,51,.35)),
    repeating-linear-gradient(135deg, var(--paper) 0 10px, #fff 10px 20px);
  background-size:cover; background-position:center;
}
.placeholder-media{height:170px;}
.placeholder-media.pm-formation-a{background-image:url("../asset/images/formation-adultes-classe.jpg");}
.placeholder-media.pm-formation-b{background-image:url("../asset/images/formation-workshop-it.jpg");}
.placeholder-media.pm-digital-a{background-image:url("../asset/images/digital-refonte-site.jpg");}
.placeholder-media.pm-digital-b{background-image:url("../asset/images/digital-social-media.jpg");}
.placeholder-media.pm-it-a{background-image:url("../asset/images/yvris-dashboard.jpg");}
.placeholder-media.pm-it-b{background-image:url("../asset/images/it-developer-office.jpg");}
.placeholder-body{padding:20px 22px;}
.placeholder-body .tag{display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--red-600); background:var(--red-050); padding:3px 9px; border-radius:999px; margin-bottom:10px;}
.placeholder-body h3{font-size:15.5px; font-weight:800; margin-bottom:6px;}
.placeholder-body p{font-size:13px; color:var(--ink-soft); margin:0;}
.empty-note{
  margin-top:32px; padding:22px 26px; border:1.5px dashed var(--line); border-radius:var(--radius);
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; background:var(--paper);
}
.empty-note p{margin:0; font-size:14px; color:var(--ink-soft); max-width:52ch;}

/* ---------- timeline (piliers / process) ---------- */
.piliers{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--navy-line); border:1px solid var(--navy-line); border-radius:var(--radius); overflow:hidden;
}
.pilier-row{display:grid; grid-template-columns:56px 1fr; gap:16px; padding:28px; background:var(--navy-950);}
.pilier-row .pi{font-family:"Archivo",sans-serif; font-weight:900; font-size:28px; color:var(--red-600); line-height:1;}
.pilier-row h3{font-size:17px; font-weight:800; margin-bottom:4px;}
.pilier-row p{font-size:14px; margin:0;}
@media (max-width:700px){ .piliers{grid-template-columns:1fr;} }

/* ---------- forms ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.field.full{grid-column:1/-1;}
.field label{font-size:12.5px; font-weight:700; color:var(--navy-950);}
.field input, .field select, .field textarea{
  border:1.5px solid var(--line); border-radius:10px; padding:12px 14px; font-size:14.5px; background:#fff; color:var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--red-600); box-shadow:0 0 0 3px var(--red-050);}
.field textarea{resize:vertical; min-height:120px;}
.form-note{font-size:12.5px; color:var(--ink-faint); margin-top:4px;}
@media (max-width:700px){ .form-grid{grid-template-columns:1fr;} }

.contact-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:32px; align-items:start;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }

.contact-panel{padding:30px 26px;}
.contact-panel h3{font-size:15.5px; font-weight:800; margin-bottom:14px;}
.contact-line{display:flex; gap:12px; align-items:flex-start; margin-bottom:16px; font-size:14px;}
.contact-line .ci{flex:0 0 34px; width:34px; height:34px; border-radius:9px; background:var(--red-050); color:var(--red-600); display:flex; align-items:center; justify-content:center; font-weight:800;}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-950); color:#B9C4DC; padding-top:64px;}
.footer-top{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1.2fr; gap:32px; padding-bottom:44px; border-bottom:1px solid var(--navy-line);}
.footer-brand .brand-logo{margin-bottom:14px; width:44px; height:44px; object-fit:contain; box-shadow:none; border-radius:0; background:transparent;}
.footer-brand p{font-size:13.5px; color:#93A1C2; max-width:34ch;}
.footer-partners{display:flex; gap:10px; margin-top:16px;}
.footer-partners a{
  display:flex; align-items:center; justify-content:center; height:40px; padding:6px 10px;
  background:#fff; border-radius:var(--radius-sm); box-shadow:var(--shadow-sm);
  transition:transform .15s ease, box-shadow .15s ease;
}
.footer-partners a:hover{transform:translateY(-2px); box-shadow:0 6px 16px rgba(6,12,26,.28);}
.footer-partners a.no-box{background:transparent; box-shadow:none; padding:0;}
.footer-partners a.no-box:hover{box-shadow:none;}
.footer-partners img{height:100%; width:auto; display:block; object-fit:contain;}
.footer-col h4{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px;}
.footer-col ul{display:flex; flex-direction:column; gap:10px;}
.footer-col a{font-size:14px; color:#AEBADA;}
.footer-col a:hover{color:#fff;}
.footer-hours{font-size:13.5px; color:#AEBADA; line-height:1.7;}
.footer-hours b{color:#fff; font-weight:600;}
.footer-social{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px;}
.footer-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:10px;
  background:var(--navy-900); border:1px solid var(--navy-line);
  color:#AEBADA; transition:all .18s ease;
}
.footer-social a:hover{color:#fff; background:var(--red-600); border-color:var(--red-600); transform:translateY(-2px);}
.footer-social svg{width:18px; height:18px;}
.mono-list li{font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:#AEBADA;}
.newsletter-form{display:flex; gap:8px; margin-top:6px;}
.newsletter-form input{flex:1; min-width:0; border-radius:999px; border:1px solid var(--navy-line); background:var(--navy-900); color:#fff; padding:10px 16px; font-size:13px;}
.newsletter-form input::placeholder{color:#6E7CA0;}
.newsletter-note{font-size:12px; color:#7FE0A0; margin-top:8px; display:none;}
.newsletter-note.show{display:block;}
.footer-bottom{
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:22px 24px 30px; max-width:var(--container); margin:0 auto;
  font-size:12px; color:#7482A6;
}
@media (max-width:960px){ .footer-top{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .footer-top{grid-template-columns:1fr;} .footer-brand{grid-column:1/-1;} }

/* ---------- content photos ---------- */
.img-card{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--line);}
.img-card img{width:100%; height:100%; object-fit:cover; display:block;}
.img-card.ratio-4-3{aspect-ratio:4/3;}
.img-card.ratio-16-9{aspect-ratio:16/9;}
.img-card.ratio-3-4{aspect-ratio:3/4;}
.locaux-gallery{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-top:8px;}
@media (max-width:900px){ .locaux-gallery{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .locaux-gallery{grid-template-columns:1fr;} }
.contact-map{margin-top:20px;}
.contact-map img{border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow-sm); width:100%;}
.contact-map iframe{width:100%; height:320px; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow-sm); display:block;}
@media (max-width:620px){ .contact-map iframe{height:260px;} }

/* ---------- misc ---------- */
.divider{height:1px; background:var(--line); margin:0;}
.two-col{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
@media (max-width:900px){ .two-col{grid-template-columns:1fr; gap:32px;} }
.kicker-list{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:8px;}
.kicker-list span{font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:999px; background:var(--paper); color:var(--navy-800); border:1px solid var(--line);}

/* ---------- scroll animations ---------- */
@keyframes fadeInUp{
  from{opacity:0; transform:translateY(24px);}
  to{opacity:1; transform:translateY(0);}
}
.animate-on-scroll{animation:fadeInUp .6s ease-out;}
section.animate-on-scroll > *{animation:fadeInUp .6s ease-out;}

/* improved hover states */
.btn:hover{transform:translateY(-1px);}
a.card:hover, .card.hoverable:hover{box-shadow:0 14px 40px -10px rgba(6,12,26,.24); transform:translateY(-4px);}
.footer-partners a:hover{transform:translateY(-3px); box-shadow:0 10px 24px rgba(6,12,26,.32);}

/* ============================================================
   ENHANCEMENTS — Professional polish / Design professional
   ============================================================ */

/* ----- Scroll Progress Bar */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--red-600),#FF7A88);
  z-index:100;transition:width .05s linear;
  box-shadow:0 0 8px rgba(255,30,51,.4);
}

.whatsapp-float{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(6,12,26,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.whatsapp-float:hover{transform:scale(1.08); box-shadow:0 12px 32px rgba(6,12,26,.45);}
.whatsapp-float img{width:30px; height:30px; filter:brightness(0) invert(1);}
@media (max-width:600px){
  .whatsapp-float{width:50px; height:50px; right:16px; bottom:16px;}
  .whatsapp-float img{width:26px; height:26px;}
}

/* ----- Custom Scrollbar */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#EDF0F7;}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--navy-700),var(--navy-900));border-radius:10px;border:2px solid #EDF0F7;}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--red-700),var(--red-600));}
html{scrollbar-width:thin;scrollbar-color:var(--navy-700) #EDF0F7;}

/* ----- Selection */
::selection{background:var(--red-600);color:#fff;}

/* ----- Enhanced Animations & Keyframes ----- */
@keyframes fadeInUpStagger{from{opacity:0;transform:translate3d(0,28px,0);}to{opacity:1;transform:translate3d(0,0,0);}}
@keyframes fadeInScale{from{opacity:0;transform:translate3d(0,0,0) scale(.96);}to{opacity:1;transform:translate3d(0,0,0) scale(1);}}
@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}
@keyframes floatSoft{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-8px,0);}}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(255,30,51,.4);}70%{box-shadow:0 0 0 14px rgba(255,30,51,0);}100%{box-shadow:0 0 0 0 rgba(255,30,51,0);}}
@keyframes slideInRight{from{opacity:0;transform:translate3d(-16px,0,0);}to{opacity:1;transform:translate3d(0,0,0);}}
@keyframes gradientShift{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}

/* Global rendering guards to avoid blurry text after transforms */
*, *::before, *::after{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.reveal, .reveal-group > *, h1, h2, h3, p, a, li, span, .eyebrow, .eyebrow-stroke::before{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* Stagger delays for reveal groups */
.reveal-group > *{opacity:0;transform:translate3d(0,24px,0);transition:opacity .6s ease,transform .6s ease;}
.reveal-group.is-visible > *{opacity:1;transform:none;}
.reveal-group.is-visible > *:nth-child(1){transition-delay:.05s;}
.reveal-group.is-visible > *:nth-child(2){transition-delay:.12s;}
.reveal-group.is-visible > *:nth-child(3){transition-delay:.19s;}
.reveal-group.is-visible > *:nth-child(4){transition-delay:.26s;}
.reveal-group.is-visible > *:nth-child(5){transition-delay:.33s;}
.reveal-group.is-visible > *:nth-child(6){transition-delay:.40s;}

/* ----- Enhanced Scroll Reveal (per-element) -----
   Will-change est volontairement absent : une fois la transition finie on
   repasse en transform:none, Chrome/Edge larguent la couche GPU et le texte
   redevient net (fini le faux contour rouge/bleu "anaglyphe"). */
.reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);}
.reveal.is-visible{opacity:1;transform:none;}
.reveal.delay-1{transition-delay:.08s;}
.reveal.delay-2{transition-delay:.16s;}
.reveal.delay-3{transition-delay:.24s;}
.reveal.delay-4{transition-delay:.32s;}

/* ----- Enhanced Buttons ----- */
.btn-primary{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--red-600) 0%,#FF4758 50%,var(--red-600) 100%);
  background-size:200% 100%;
  box-shadow:0 4px 14px -4px rgba(255,30,51,.45);
  transition:all .25s ease,background-position .6s ease;
}
.btn-primary:hover{
  background-position:100% 0;
  box-shadow:0 8px 22px -6px rgba(255,30,51,.55);
  transform:translateY(-2px);
}
.btn-primary::before{
  content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:skewX(-20deg);transition:left .6s ease;
}
.btn-primary:hover::before{left:150%;}
.btn-primary:active{transform:translateY(0);}

.btn-outline-dark{
  position:relative;transition:all .25s ease;
}
.btn-outline-dark:hover{transform:translateY(-2px);box-shadow:0 6px 18px -6px rgba(6,12,26,.25);}

.btn-outline-light{transition:all .25s ease;}
.btn-outline-light:hover{transform:translateY(-2px);box-shadow:0 6px 22px -6px rgba(0,0,0,.3);}

/* ----- Enhanced Cards ----- */
.card{
  position:relative;isolation:isolate;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s cubic-bezier(.2,.8,.2,1),border-color .25s ease;
}
.card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;
  background:linear-gradient(135deg,transparent 40%,rgba(255,30,51,.35) 60%,transparent 80%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:-1;
}
a.card:hover::before,.card.hoverable:hover::before{opacity:1;}

.pole-card{transition:all .35s cubic-bezier(.2,.8,.2,1);}
.pole-card:hover{border-color:transparent;}
.pole-card .service-icon{transition:transform .35s ease,background .35s ease;}
.pole-card:hover .service-icon{transform:rotate(-6deg) scale(1.08);background:linear-gradient(135deg,var(--red-600),#FF4758);color:#fff;}

.service-card{position:relative;overflow:hidden;}
.service-card::after{
  content:"";position:absolute;top:0;right:0;width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,30,51,.08),transparent 70%);
  transform:translate(40%,-40%);transition:transform .5s ease,opacity .5s ease;opacity:0;
}
.service-card:hover::after{transform:translate(20%,-20%);opacity:1;}

/* ----- Enhanced Module cards */
.module-card{transition:all .35s cubic-bezier(.2,.8,.2,1);}
.module-card:hover{transform:translateY(-4px);}
.module-icon{transition:all .35s ease;}
.module-card:hover .module-icon{transform:scale(1.1) rotate(-4deg);background:linear-gradient(135deg,var(--red-600),#FF4758);}

/* ----- Solution cards ----- */
.solution-card{transition:all .35s ease;}
.solution-card:hover{transform:translateY(-4px);}
.solution-logo,.solution-icon{transition:all .35s ease;}
.solution-card:hover .solution-logo,.solution-card:hover .solution-icon{
  transform:scale(1.08);border-color:var(--red-600);background:var(--red-050);
}

/* ----- Offer / Pricing cards ----- */
.offer-card{transition:all .4s cubic-bezier(.2,.8,.2,1);}
.offer-card:hover{transform:translateY(-4px);}
.offer-card.featured{
  position:relative;overflow:hidden;
  background:
    linear-gradient(160deg,var(--navy-950) 0%,#111f40 100%);
}
.offer-card.featured::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--red-600),#FF7A88,var(--red-600));
  background-size:200% 100%;animation:shimmer 3s linear infinite;
}
.offer-ribbon{
  animation:pulseRing 2.5s infinite;
  background:linear-gradient(135deg,var(--red-600),#FF4758);
  box-shadow:0 4px 14px -2px rgba(255,30,51,.5);
}

/* ----- Placeholder cards (realisations/ressources) ----- */
.placeholder-card{overflow:hidden;position:relative;}
.placeholder-card .placeholder-media{position:relative;overflow:hidden;}
.placeholder-card .placeholder-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(6,12,26,.6) 100%);
  opacity:.6;transition:opacity .4s ease;
}
.placeholder-card:hover .placeholder-media img,
.placeholder-card:hover .placeholder-media[style]{
  transform:scale(1.05);
}
.placeholder-card .placeholder-media[style*="background-image"]{
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
}
.placeholder-card:hover .placeholder-media[style*="background-image"]{
  transform:scale(1.04);
}
.placeholder-card .tag{transition:all .25s ease;}
.placeholder-card:hover .tag{background:var(--red-600);color:#fff;}

/* ----- Enhanced Image Cards ----- */
.img-card{
  position:relative;overflow:hidden;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease;
}
.img-card img{transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.img-card:hover{box-shadow:0 28px 60px -18px rgba(6,12,26,.35);}
.img-card:hover img{transform:scale(1.04);}
.img-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(12deg,rgba(6,12,26,.18) 0%,transparent 50%);
  opacity:0;transition:opacity .4s ease;pointer-events:none;
}

/* ----- Enhanced Page Hero ----- */
.page-hero{position:relative;}
.page-hero::before{
  clip-path:polygon(20% 0,100% 0,100% 100%,0% 100%);
  opacity:.55;
}
.page-hero p{position:relative;}

/* ----- Section Navy section head ----- */
.section-head h2{
  position:relative;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  backface-visibility:hidden;
  text-rendering:optimizeLegibility;
}
.section-head h2.with-underline{padding-bottom:16px;}
/* underline accent — ONLY when h2 has the explicit .with-underline class */
.section-head h2.with-underline::after{
  content:"";position:absolute;left:0;bottom:0;width:48px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--red-600),#FF7A88,transparent);
}
.section-head.center h2.with-underline::after{left:50%;transform:translateX(-50%);}
.section-navy .section-head h2.with-underline::after{
  background:linear-gradient(90deg,#FF7A88,#fff,transparent);
}
/* anti-doublon : si un h2 porte le soulignement signature, on retire les
   accents de l'eyebrow du même section-head pour garder UNE seule ligne rouge */
.section-head:has(h2.with-underline) .eyebrow::before{display:none;}

/* ----- Eyebrow enhanced ----- */
.eyebrow{
  position:relative;padding-left:32px;
}
.eyebrow::before{
  width:24px;transition:width .4s ease;
}
section:hover .eyebrow::before{width:36px;}

/* ----- Kicker list / badges ----- */
.kicker-list span{
  transition:all .25s ease;cursor:default;
  position:relative;overflow:hidden;
}
.kicker-list span:hover{
  background:var(--navy-950);color:#fff;border-color:var(--navy-950);
  transform:translateY(-1px);
  box-shadow:0 4px 12px -4px rgba(6,12,26,.25);
}
.badge{transition:all .25s ease;}
.badge:hover{background:var(--navy-950);color:#fff;border-color:var(--navy-950);transform:translateY(-1px);}

/* ----- Feature list tick ----- */
.feature-list .tick{
  transition:transform .35s ease,background .35s ease;
}
.feature-list li:hover .tick{
  transform:scale(1.15);
  background:linear-gradient(135deg,var(--red-600),#FF4758);
  color:#fff;
}

/* ----- Trust section with photo backdrop ----- */
.section-alt{
  position:relative;
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -20%,rgba(255,30,51,.05),transparent 60%),
    radial-gradient(ellipse 60% 40% at 100% 100%,rgba(15,30,58,.04),transparent 60%);
}

/* ----- CTA Banner enhanced ----- */
.cta-banner{
  position:relative;overflow:hidden;
  background:
    linear-gradient(135deg,var(--navy-950) 0%,#0d1a38 50%,var(--navy-900) 100%);
}
.cta-banner::after{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:
    radial-gradient(circle at 80% 120%,rgba(255,30,51,.25),transparent 50%),
    radial-gradient(circle at 10% -20%,rgba(80,120,200,.18),transparent 55%);
  opacity:.9;
}

/* ----- Contact form enhanced ----- */
.field input,.field select,.field textarea{
  transition:all .25s ease;
  background:#fff;
  position:relative;
}
.field input:hover,.field select:hover,.field textarea:hover{
  border-color:#cdd3e0;
}
.field input:focus,.field select:focus,.field textarea:focus{
  box-shadow:0 0 0 4px rgba(255,30,51,.1),0 8px 24px -8px rgba(255,30,51,.25);
}
.contact-panel{position:relative;}
.contact-line .ci{transition:all .3s ease;}
.contact-line:hover .ci{
  transform:scale(1.1) rotate(-4deg);
  background:linear-gradient(135deg,var(--red-600),#FF4758);color:#fff;
}

/* ----- Nav enhanced ----- */
.site-header{
  transition:box-shadow .3s ease,backdrop-filter .3s ease;
}
.site-header.scrolled{
  box-shadow:0 8px 30px -14px rgba(6,12,26,.12);
  border-bottom-color:#f0f2f8;
}
.main-nav a{
  position:relative;transition:color .2s ease;
}
.main-nav > ul > li > a::before{
  content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;background:var(--red-600);
  transform:scaleX(0);transform-origin:right;transition:transform .3s ease;border-radius:2px;
}
.main-nav > ul > li > a:hover::before{transform:scaleX(1);transform-origin:left;}
.main-nav a[aria-current="page"]:not(.btn)::before{display:none;}

/* Mega panel enhanced */
.mega-panel-inner{
  position:relative;
}
.mega-item{
  position:relative;transition:all .25s ease;
}
.mega-item::before{
  content:"";position:absolute;left:6px;top:50%;width:3px;height:0;border-radius:3px;
  background:var(--red-600);transform:translateY(-50%);transition:height .3s ease;
}
.mega-item:hover::before{height:60%;}
.mega-item:hover{padding-left:18px;background:linear-gradient(90deg,var(--paper),#fff);}

/* ----- Piliers enhanced ----- */
.pilier-row{
  position:relative;transition:background .35s ease;
}
.pilier-row:hover{background:#0c1a38;}
.pilier-row .pi{
  transition:transform .4s ease,color .4s ease;
}
.pilier-row:hover .pi{transform:scale(1.15) translateX(-2px);
  background:linear-gradient(135deg,var(--red-600),#FF7A88);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

/* ----- Trust stats enhanced ----- */
.trust-stats .stat .num{
  background:linear-gradient(135deg,var(--navy-950),var(--navy-700));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  display:inline-block;
}
.trust-stats .stat{position:relative;padding-left:18px;}
.trust-stats .stat::before{
  content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--red-600),transparent);
}
.trust-stats .stat:first-child::before{display:none;}
@media (max-width:620px){.trust-stats .stat::before{display:none;}}

/* ----- Testimonial enhanced ----- */
.testimonial-card{position:relative;}
.testimonial-card::before{
  content:"\201C";position:absolute;top:18px;right:24px;
  font-family:Georgia,serif;font-size:80px;line-height:1;color:var(--red-050);
  font-weight:900;pointer-events:none;z-index:0;
}
.testimonial-card > *{position:relative;z-index:1;}

/* ----- Newsletter enhanced ----- */
.newsletter-form input{
  transition:all .25s ease;
}
.newsletter-form input:focus{
  outline:none;border-color:var(--red-600);
  box-shadow:0 0 0 3px rgba(255,30,51,.15);
}

/* ----- Footer enhanced ----- */
.footer-col a{
  position:relative;padding-left:0;transition:all .25s ease;
}
.footer-col a::before{
  content:"";position:absolute;left:-12px;top:50%;width:0;height:2px;border-radius:2px;
  background:var(--red-600);transform:translateY(-50%);transition:width .3s ease,left .3s ease;
}
.footer-col a:hover{padding-left:14px;color:#fff;}
.footer-col a:hover::before{width:8px;left:0;}

.footer-social a{
  position:relative;overflow:hidden;
}
.footer-social a::before{
  content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 10%,rgba(255,255,255,.2),transparent 60%);
  opacity:0;transition:opacity .3s ease;
}
.footer-social a:hover::before{opacity:1;}

/* ----- Empty note enhanced ----- */
.empty-note{
  background:
    linear-gradient(135deg,var(--paper) 0%,#fff 100%);
  position:relative;overflow:hidden;
}
.empty-note::before{
  content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,30,51,.08),transparent 70%);
}

/* ----- Seminar cards ----- */
.seminar-card{
  position:relative;overflow:hidden;transition:transform .4s ease;
}
.seminar-card:hover{transform:translateY(-4px);}

/* ----- Info tiles ----- */
.info-tile{transition:all .35s ease;}
.info-tile:hover{transform:translateY(-3px);}
.info-tile .it-label{transition:all .3s ease;}
.info-tile:hover .it-label{letter-spacing:.12em;}

/* ----- Locaux gallery images subtle border on hover ----- */
.locaux-gallery .img-card{cursor:zoom-in;}

/* ----- Brand / Logo ----- */
.brand-logo{
  transition:transform .35s ease;
}
.brand:hover .brand-logo{transform:rotate(-4deg) scale(1.05);}
.brand-name{transition:color .25s ease;}
.brand:hover .brand-name{color:var(--red-600);}

/* ----- Contact maps ----- */
.contact-map iframe,.contact-map img{
  transition:box-shadow .35s ease;
}
.contact-map:hover iframe,.contact-map:hover img{
  box-shadow:0 20px 50px -16px rgba(6,12,26,.25);
}


