/*!
 * MC COURTAGE — Design System (Agency-grade)
 * Generated: 2025-12-12
 * Notes:
 * - Works with Bootstrap 5 (utility-first additions)
 * - Accessible focus styles + reduced motion support
 */

/* ========================================================================== */
/* 1) Design tokens                                                            */
/* ========================================================================== */
:root{
  --brand-50:#edf6ff;
  --brand-100:#d8ecff;
  --brand-200:#b7dcff;
  --brand-300:#86c4ff;
  --brand-400:#4aa2ff;
  --brand-500:#0b5a9f; /* logo blue */
  --brand-600:#084a85;
  --brand-700:#063b69;
  --brand-800:#042a4b;
  --brand-900:#021a2e;

  --accent-500:#c9a14a; /* warm gold accent (trust/premium) */
  --accent-600:#ad883d;

  --ink-900:#0b1220;
  --ink-800:#121b2d;
  --ink-700:#1f2a44;
  --muted-600:#5f6b7a;
  --muted-500:#718097;
  --muted-400:#93a2b7;

  --surface-0:#ffffff;
  --surface-50:#f7f9fc;
  --surface-100:#eef3fb;
  --surface-200:#e3ebf8;

  --border-100:rgba(15, 23, 42, .10);
  --border-200:rgba(15, 23, 42, .14);

  --shadow-xs:0 1px 2px rgba(2, 6, 23, .06);
  --shadow-sm:0 6px 16px rgba(2, 6, 23, .10);
  --shadow-md:0 18px 48px rgba(2, 6, 23, .14);
  --shadow-lg:0 30px 80px rgba(2, 6, 23, .18);

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:32px;

  --container-max:1180px;

  --header-h:88px; /* updated by JS */
  --topbar-h:34px; /* updated by CSS breakpoints */

  --e1:cubic-bezier(.2,.8,.2,1);
  --e2:cubic-bezier(.16,1,.3,1);

  --focus:0 0 0 4px rgba(11,90,159,.22);

  --grid-gap: clamp(16px, 2vw, 26px);
}
/* ========================================================================== */
/* 2) Base                                                                     */
/* ========================================================================== */
html{scroll-behavior:smooth;}
body{
  color:var(--ink-800);
  background:var(--surface-50);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
::selection{background:rgba(11,90,159,.18);}
a{color:var(--brand-600);text-decoration:none;}
a:hover{color:var(--brand-700);text-decoration:none;}
img{max-width:100%;height:auto;}
/* Accessible focus */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus);border-radius:12px;}
/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}

/* Bootstrap polish */
.container{max-width:var(--container-max);}
.lead{color:rgba(18,27,45,.82);}
.text-muted{color:var(--muted-500) !important;}
/* ========================================================================== */
/* 3) Layout: fixed header + main spacing                                      */
/* ========================================================================== */
.site-header{
  position:fixed; inset:0 0 auto 0;
  z-index:1100;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--border-100);
  transition:box-shadow .25s var(--e1), background .25s var(--e1);
}
.site-header.is-scrolled{box-shadow:var(--shadow-sm); background:rgba(255,255,255,.94);}

.site-topbar{
  height:var(--topbar-h);
  display:none;
  border-bottom:1px solid rgba(15,23,42,.06);
}
@media (min-width: 992px){
  .site-topbar{display:flex;align-items:center;}
}
.site-topbar .topbar-item{display:flex;align-items:center;gap:.5rem;color:rgba(18,27,45,.84);font-size:.925rem;}
.site-topbar a{color:inherit;}
.site-topbar a:hover{color:var(--brand-700);}
.site-topbar .topbar-sep{width:1px;height:16px;background:rgba(15,23,42,.12);margin:0 14px;}

.site-nav{
  min-height:calc(var(--header-h) - var(--topbar-h));
  display:flex;align-items:center;
}
.site-main{
  padding-top:var(--header-h);
}
/* ========================================================================== */
/* 4) Navigation                                                               */
/* ========================================================================== */
.navbar-brand{gap:.65rem;}
/* Logo navbar */
.brand-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  height:48px;
  background:none;
  box-shadow:none;
  border-radius:0;
}

.brand-mark img{
  display:block;
  height:48px;
  width:auto;
  max-width:none;
  filter:none;        /* IMPORTANT : ne pas altérer le JPEG */
}

.brand-name{line-height:1.05;}
.brand-name strong{font-weight:800;letter-spacing:-.02em;}
.brand-name small{display:block;color:rgba(18,27,45,.68);font-weight:600;margin-top:2px;}

.navbar .nav-link{
  font-weight:650;
  color:rgba(18,27,45,.82);
  padding:.65rem .9rem;
  border-radius:14px;
  transition:background .2s var(--e1), color .2s var(--e1), transform .2s var(--e1);
}
.navbar .nav-link:hover{background:rgba(11,90,159,.08); color:var(--brand-700); transform:translateY(-1px);}
.navbar .nav-link.active{background:rgba(11,90,159,.12); color:var(--brand-700);}

.nav-cta{display:flex;gap:.6rem;align-items:center;}
.btn-cta{
  --bs-btn-padding-y:.7rem;
  --bs-btn-padding-x:1rem;
  --bs-btn-border-radius:14px;
  font-weight:750;
}
.btn-cta-primary{
  background:linear-gradient(135deg,var(--brand-500),var(--brand-700));
  border:0;color:#fff;
  box-shadow:var(--shadow-sm);
}
.btn-cta-primary:hover{filter:brightness(1.02); box-shadow:var(--shadow-md); color:#fff;}
.btn-cta-outline{
  border:1px solid rgba(11,90,159,.28);
  background:rgba(11,90,159,.06);
  color:var(--brand-700);
}
.btn-cta-outline:hover{background:rgba(11,90,159,.10); color:var(--brand-800);}
.navbar-toggler{border-radius:14px;border:1px solid rgba(15,23,42,.12);}
/* ========================================================================== */
/* 5) Hero                                                                     */
/* ========================================================================== */
/* === FIX HERO : enlever le mask / overlay imposé par le thème === */
.hero{
  background: url("../img/hero.jpg") center/cover no-repeat !important;
  background-attachment: fixed !important;
}

/* kill les pseudo-elements qui masquent l'image */
.hero::before,
.hero::after{
  content:none !important;
  display:none !important;
  background:transparent !important;
}

.hero > *{position:relative; z-index:1;}
.hero-inner{padding:clamp(3.5rem, 7vw, 7rem) 0;}
.hero-kicker{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.45rem .75rem;
  border-radius:999px;
  background:rgba(11,90,159,.10);
  border:1px solid rgba(11,90,159,.14);
  color:var(--brand-700);
  font-weight:750;
  letter-spacing:.02em;
}
.hero-title{
  font-size:clamp(2.25rem, 4vw, 3.6rem);
  line-height:1.05;
  letter-spacing:-.03em;
  margin-top:1rem;
  margin-bottom:1rem;
  font-weight:900;
  color:var(--ink-900);
}
.hero-subtitle{
  font-size:clamp(1.05rem, 1.5vw, 1.25rem);
  color:rgba(18,27,45,.78);
  max-width:60ch;
}
.hero-actions{display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.6rem;}
.hero-trust{
  display:flex;flex-wrap:wrap;gap:14px;
  margin-top:2rem;
  color:rgba(18,27,45,.70);
  font-weight:650;
}
.trust-pill{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.55rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(15,23,42,.10);
  box-shadow:var(--shadow-xs);
}

.hero-card{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  overflow:hidden;
}
.hero-card .hero-card-head{
  padding:1.2rem 1.2rem .9rem;
  border-bottom:1px solid rgba(15,23,42,.10);
  background:linear-gradient(135deg, rgba(11,90,159,.10), rgba(201,161,74,.08));
}
.hero-card h3{margin:0;font-weight:900;letter-spacing:-.02em;}
.hero-card p{margin:.35rem 0 0;color:rgba(18,27,45,.72);}
.hero-card .hero-card-body{padding:1.1rem 1.2rem 1.2rem;}
.form-soft .form-control, .form-soft .form-select{
  border-radius:14px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.95);
  padding:.75rem .9rem;
}
.form-soft .form-control:focus, .form-soft .form-select:focus{
  border-color:rgba(11,90,159,.38);
  box-shadow:var(--focus);
}
.form-soft .form-label{font-weight:750;color:rgba(18,27,45,.82);}
.form-note{font-size:.9rem;color:rgba(95,107,122,.95);}
/* ========================================================================== */
/* 6) Sections + components                                                    */
/* ========================================================================== */
.section{padding:clamp(3.5rem, 6vw, 6.5rem) 0;}
.section-header{display:flex;flex-direction:column;gap:.8rem;margin-bottom:2.6rem;}
.section-kicker{color:var(--brand-700);font-weight:850;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;}
.section-title{font-weight:950;letter-spacing:-.03em;font-size:clamp(1.8rem, 2.6vw, 2.6rem);margin:0;color:var(--ink-900);}
.section-desc{color:rgba(18,27,45,.74);max-width:70ch;margin:0;}

.card-premium{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xs);
  overflow:hidden;
  transition:transform .25s var(--e2), box-shadow .25s var(--e2), border-color .25s var(--e2);
}
.card-premium:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(11,90,159,.20);}
.card-premium .card-body{padding:1.3rem 1.3rem 1.2rem;}
.card-premium .card-title{font-weight:900;letter-spacing:-.02em;margin-bottom:.35rem;}
.card-premium .card-text{color:rgba(18,27,45,.74);}
.card-icon{
  width:52px;height:52px;border-radius:16px;
  display:grid;place-items:center;
  background:rgba(11,90,159,.10);
  border:1px solid rgba(11,90,159,.14);
  color:var(--brand-700);
  box-shadow:var(--shadow-xs);
}

.grid-tiles{display:grid;gap:var(--grid-gap);}
@media (min-width: 992px){
  .grid-tiles.cols-3{grid-template-columns:repeat(3,1fr);}
  .grid-tiles.cols-4{grid-template-columns:repeat(4,1fr);}
}

.ribbon{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-500));
  color:#fff;
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  position:relative;
}
.ribbon::after{
  content:"";
  position:absolute; inset:-2px;
  background:radial-gradient(800px 400px at 70% 30%, rgba(201,161,74,.35), transparent 55%);
  pointer-events:none;
}
.ribbon > *{position:relative; z-index:1;}
.ribbon .ribbon-inner{padding:clamp(1.6rem, 3vw, 2.4rem);}
.ribbon h3{font-weight:950; letter-spacing:-.03em; margin:0;}
.ribbon p{margin:.4rem 0 0; opacity:.92;}
/* Steps */
.steps{display:grid;gap:var(--grid-gap);}
@media (min-width: 768px){.steps{grid-template-columns:repeat(2,1fr);}}
@media (min-width: 992px){.steps{grid-template-columns:repeat(4,1fr);}}
.step{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-lg);
  padding:1.2rem 1.2rem 1.1rem;
  box-shadow:var(--shadow-xs);
  position:relative;
}
.step .step-n{
  width:40px;height:40px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(11,90,159,.14), rgba(201,161,74,.12));
  border:1px solid rgba(15,23,42,.10);
  font-weight:900;color:var(--ink-900);
}
.step h4{margin:.9rem 0 .35rem;font-weight:900;letter-spacing:-.02em;}
.step p{margin:0;color:rgba(18,27,45,.74);}
/* Testimonials (Swiper) */
.testi{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  overflow:hidden;
}
.testi .testi-head{padding:1.2rem 1.3rem;border-bottom:1px solid rgba(15,23,42,.10);}
.testi .testi-head strong{font-weight:950;letter-spacing:-.02em;}
.testi-card{padding:1.2rem 1.3rem;}
.testi-quote{font-size:1.05rem;line-height:1.55;color:rgba(18,27,45,.80);margin:0;}
.testi-meta{margin-top:.9rem;display:flex;align-items:center;gap:.75rem;color:rgba(95,107,122,.95);font-weight:650;}
.avatar{
  width:42px;height:42px;border-radius:16px;
  background:linear-gradient(135deg,var(--brand-500),var(--brand-800));
  color:#fff;display:grid;place-items:center;font-weight:900;
}
.swiper-pagination-bullet{opacity:.25;}
.swiper-pagination-bullet-active{opacity:.85;}
/* FAQ */
.faq .accordion-item{
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-lg) !important;
  overflow:hidden;
  box-shadow:var(--shadow-xs);
  background:rgba(255,255,255,.9);
}
.faq .accordion-button{
  font-weight:850;
  letter-spacing:-.01em;
  padding:1.1rem 1.2rem;
}
.faq .accordion-button:not(.collapsed){
  background:rgba(11,90,159,.08);
  color:var(--brand-800);
}
.faq .accordion-body{color:rgba(18,27,45,.76);line-height:1.65;}
/* ========================================================================== */
/* 7) Footer                                                                    */
/* ========================================================================== */
.site-footer{
  background:linear-gradient(180deg, rgba(255,255,255,.0), rgba(255,255,255,.9));
  border-top:1px solid rgba(15,23,42,.10);
}
.footer-card{
  border-radius:var(--radius-xl);
  background:rgba(255,255,255,.9);
  border:1px solid rgba(15,23,42,.12);
  box-shadow:var(--shadow-sm);
  padding:1.4rem 1.4rem 1.2rem;
}
.footer-title{font-weight:950;letter-spacing:-.02em;margin-bottom:.6rem;}
.footer-link{display:block;color:rgba(18,27,45,.76);padding:.25rem 0;}
.footer-link:hover{color:var(--brand-800);}
.footer-badges{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.6rem;}
.badge-soft{
  background:rgba(11,90,159,.10);
  color:var(--brand-700);
  border:1px solid rgba(11,90,159,.14);
  border-radius:999px;
  padding:.45rem .7rem;
  font-weight:750;
}

/* ========================================================================== */
/* 8) Floating CTA + Back to top                                               */
/* ========================================================================== */
.fab-wrap{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:1200;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.fab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:52px;height:52px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-md);
  color:var(--brand-800);
  transition:transform .2s var(--e1), filter .2s var(--e1);
}
.fab:hover{transform:translateY(-2px);filter:brightness(1.02);}
.fab.primary{
  background:linear-gradient(135deg,var(--brand-600),var(--brand-800));
  color:#fff;border:0;
}
@media (min-width: 992px){
  .fab-wrap{right:22px;bottom:22px;}
}

/* ========================================================================== */
/* 9) Helpers (layout/spacing/typography)                                      */
/* ========================================================================== */
.bg-soft{background:rgba(255,255,255,.7);}
.round-xl{border-radius:var(--radius-xl)!important;}
.shadow-soft{box-shadow:var(--shadow-sm)!important;}
.shadow-lift{box-shadow:var(--shadow-md)!important;}
.border-soft{border:1px solid rgba(15,23,42,.10)!important;}
.text-ink{color:var(--ink-900)!important;}
.text-muted2{color:rgba(18,27,45,.70)!important;}
.u-m-0{margin:0px !important;}
.u-m-1{margin:4px !important;}
.u-m-2{margin:8px !important;}
.u-m-3{margin:12px !important;}
.u-m-4{margin:16px !important;}

/* ========================================================================== */
/* 11) Cabinet premium — Footer (dark) + Cookie banner                         */
/* ========================================================================== */
/* Footer: override previous light footer so it never looks "vide" */
.site-footer{
  background:radial-gradient(1200px 600px at 20% -10%, rgba(255,255,255,.10), transparent 55%),
             radial-gradient(900px 500px at 90% 10%, rgba(201,161,74,.16), transparent 60%),
             linear-gradient(180deg, #0B1B33 0%, #081226 100%);
  color:rgba(255,255,255,.86);
  border-top:1px solid rgba(255,255,255,.10);
}
.site-footer .footer-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:none;
}
.site-footer .footer-title{color:#fff;}
.site-footer .text-muted2{color:rgba(255,255,255,.72)!important;}
.site-footer a{color:rgba(255,255,255,.82);text-decoration:none;}
.site-footer a:hover{color:#fff;text-decoration:underline;}
.site-footer .badge-soft{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.92);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.10);}

/* Cookie banner */
.cookie-banner{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:1600;
  padding:14px 14px calc(14px + env(safe-area-inset-bottom));
  background:rgba(8,18,38,.78);
  backdrop-filter:blur(14px);
  border-top:1px solid rgba(255,255,255,.14);
}
.cookie-inner{
  display:flex;
  gap:16px;
  align-items:flex-start;
  justify-content:space-between;
}
.cookie-copy{max-width:760px;}
.cookie-title{font-weight:950;letter-spacing:-.02em;color:#fff;margin:0 0 .25rem;}
.cookie-text{color:rgba(255,255,255,.84);}
.cookie-banner a{color:rgba(255,255,255,.92);text-decoration:underline;}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.cookie-actions .btn{border-radius:14px;}
@media (max-width: 991.98px){
  .cookie-inner{flex-direction:column;}
  .cookie-actions{justify-content:flex-start;}
}

/* Cards/grid spacing hardening (when Bootstrap gutter is overridden by themes) */
.row.g-4{--bs-gutter-x:1.5rem;--bs-gutter-y:1.5rem;}
.row.g-3{--bs-gutter-x:1rem;--bs-gutter-y:1rem;}
.card{border-radius:var(--radius-xl);}
.card-shadow{box-shadow:var(--shadow-md)!important;}
.u-m-5{margin:20px !important;}
.u-m-6{margin:24px !important;}
.u-m-7{margin:28px !important;}
.u-m-8{margin:32px !important;}
.u-m-9{margin:36px !important;}
.u-m-10{margin:40px !important;}
.u-m-11{margin:44px !important;}
.u-m-12{margin:48px !important;}
.u-m-13{margin:52px !important;}
.u-m-14{margin:56px !important;}
.u-m-15{margin:60px !important;}
.u-m-16{margin:64px !important;}
.u-m-17{margin:68px !important;}
.u-m-18{margin:72px !important;}
.u-m-19{margin:76px !important;}
.u-m-20{margin:80px !important;}
.u-mt-0{margin-top:0px !important;}
.u-mt-1{margin-top:4px !important;}
.u-mt-2{margin-top:8px !important;}
.u-mt-3{margin-top:12px !important;}
.u-mt-4{margin-top:16px !important;}
.u-mt-5{margin-top:20px !important;}
.u-mt-6{margin-top:24px !important;}
.u-mt-7{margin-top:28px !important;}
.u-mt-8{margin-top:32px !important;}
.u-mt-9{margin-top:36px !important;}
.u-mt-10{margin-top:40px !important;}
.u-mt-11{margin-top:44px !important;}
.u-mt-12{margin-top:48px !important;}
.u-mt-13{margin-top:52px !important;}
.u-mt-14{margin-top:56px !important;}
.u-mt-15{margin-top:60px !important;}
.u-mt-16{margin-top:64px !important;}
.u-mt-17{margin-top:68px !important;}
.u-mt-18{margin-top:72px !important;}
.u-mt-19{margin-top:76px !important;}
.u-mt-20{margin-top:80px !important;}
.u-mb-0{margin-bottom:0px !important;}
.u-mb-1{margin-bottom:4px !important;}
.u-mb-2{margin-bottom:8px !important;}
.u-mb-3{margin-bottom:12px !important;}
.u-mb-4{margin-bottom:16px !important;}
.u-mb-5{margin-bottom:20px !important;}
.u-mb-6{margin-bottom:24px !important;}
.u-mb-7{margin-bottom:28px !important;}
.u-mb-8{margin-bottom:32px !important;}
.u-mb-9{margin-bottom:36px !important;}
.u-mb-10{margin-bottom:40px !important;}
.u-mb-11{margin-bottom:44px !important;}
.u-mb-12{margin-bottom:48px !important;}
.u-mb-13{margin-bottom:52px !important;}
.u-mb-14{margin-bottom:56px !important;}
.u-mb-15{margin-bottom:60px !important;}
.u-mb-16{margin-bottom:64px !important;}
.u-mb-17{margin-bottom:68px !important;}
.u-mb-18{margin-bottom:72px !important;}
.u-mb-19{margin-bottom:76px !important;}
.u-mb-20{margin-bottom:80px !important;}
.u-ms-0{margin-left:0px !important;}
.u-ms-1{margin-left:4px !important;}
.u-ms-2{margin-left:8px !important;}
.u-ms-3{margin-left:12px !important;}
.u-ms-4{margin-left:16px !important;}
.u-ms-5{margin-left:20px !important;}
.u-ms-6{margin-left:24px !important;}
.u-ms-7{margin-left:28px !important;}
.u-ms-8{margin-left:32px !important;}
.u-ms-9{margin-left:36px !important;}
.u-ms-10{margin-left:40px !important;}
.u-ms-11{margin-left:44px !important;}
.u-ms-12{margin-left:48px !important;}
.u-ms-13{margin-left:52px !important;}
.u-ms-14{margin-left:56px !important;}
.u-ms-15{margin-left:60px !important;}
.u-ms-16{margin-left:64px !important;}
.u-ms-17{margin-left:68px !important;}
.u-ms-18{margin-left:72px !important;}
.u-ms-19{margin-left:76px !important;}
.u-ms-20{margin-left:80px !important;}
.u-me-0{margin-right:0px !important;}
.u-me-1{margin-right:4px !important;}
.u-me-2{margin-right:8px !important;}
.u-me-3{margin-right:12px !important;}
.u-me-4{margin-right:16px !important;}
.u-me-5{margin-right:20px !important;}
.u-me-6{margin-right:24px !important;}
.u-me-7{margin-right:28px !important;}
.u-me-8{margin-right:32px !important;}
.u-me-9{margin-right:36px !important;}
.u-me-10{margin-right:40px !important;}
.u-me-11{margin-right:44px !important;}
.u-me-12{margin-right:48px !important;}
.u-me-13{margin-right:52px !important;}
.u-me-14{margin-right:56px !important;}
.u-me-15{margin-right:60px !important;}
.u-me-16{margin-right:64px !important;}
.u-me-17{margin-right:68px !important;}
.u-me-18{margin-right:72px !important;}
.u-me-19{margin-right:76px !important;}
.u-me-20{margin-right:80px !important;}
.u-mx-0{margin-left:0px !important;margin-right:0px !important;}
.u-mx-1{margin-left:4px !important;margin-right:4px !important;}
.u-mx-2{margin-left:8px !important;margin-right:8px !important;}
.u-mx-3{margin-left:12px !important;margin-right:12px !important;}
.u-mx-4{margin-left:16px !important;margin-right:16px !important;}
.u-mx-5{margin-left:20px !important;margin-right:20px !important;}
.u-mx-6{margin-left:24px !important;margin-right:24px !important;}
.u-mx-7{margin-left:28px !important;margin-right:28px !important;}
.u-mx-8{margin-left:32px !important;margin-right:32px !important;}
.u-mx-9{margin-left:36px !important;margin-right:36px !important;}
.u-mx-10{margin-left:40px !important;margin-right:40px !important;}
.u-mx-11{margin-left:44px !important;margin-right:44px !important;}
.u-mx-12{margin-left:48px !important;margin-right:48px !important;}
.u-mx-13{margin-left:52px !important;margin-right:52px !important;}
.u-mx-14{margin-left:56px !important;margin-right:56px !important;}
.u-mx-15{margin-left:60px !important;margin-right:60px !important;}
.u-mx-16{margin-left:64px !important;margin-right:64px !important;}
.u-mx-17{margin-left:68px !important;margin-right:68px !important;}
.u-mx-18{margin-left:72px !important;margin-right:72px !important;}
.u-mx-19{margin-left:76px !important;margin-right:76px !important;}
.u-mx-20{margin-left:80px !important;margin-right:80px !important;}
.u-my-0{margin-top:0px !important;margin-bottom:0px !important;}
.u-my-1{margin-top:4px !important;margin-bottom:4px !important;}
.u-my-2{margin-top:8px !important;margin-bottom:8px !important;}
.u-my-3{margin-top:12px !important;margin-bottom:12px !important;}
.u-my-4{margin-top:16px !important;margin-bottom:16px !important;}
.u-my-5{margin-top:20px !important;margin-bottom:20px !important;}
.u-my-6{margin-top:24px !important;margin-bottom:24px !important;}
.u-my-7{margin-top:28px !important;margin-bottom:28px !important;}
.u-my-8{margin-top:32px !important;margin-bottom:32px !important;}
.u-my-9{margin-top:36px !important;margin-bottom:36px !important;}
.u-my-10{margin-top:40px !important;margin-bottom:40px !important;}
.u-my-11{margin-top:44px !important;margin-bottom:44px !important;}
.u-my-12{margin-top:48px !important;margin-bottom:48px !important;}
.u-my-13{margin-top:52px !important;margin-bottom:52px !important;}
.u-my-14{margin-top:56px !important;margin-bottom:56px !important;}
.u-my-15{margin-top:60px !important;margin-bottom:60px !important;}
.u-my-16{margin-top:64px !important;margin-bottom:64px !important;}
.u-my-17{margin-top:68px !important;margin-bottom:68px !important;}
.u-my-18{margin-top:72px !important;margin-bottom:72px !important;}
.u-my-19{margin-top:76px !important;margin-bottom:76px !important;}
.u-my-20{margin-top:80px !important;margin-bottom:80px !important;}
.u-p-0{padding:0px !important;}
.u-p-1{padding:4px !important;}
.u-p-2{padding:8px !important;}
.u-p-3{padding:12px !important;}
.u-p-4{padding:16px !important;}
.u-p-5{padding:20px !important;}
.u-p-6{padding:24px !important;}
.u-p-7{padding:28px !important;}
.u-p-8{padding:32px !important;}
.u-p-9{padding:36px !important;}
.u-p-10{padding:40px !important;}
.u-p-11{padding:44px !important;}
.u-p-12{padding:48px !important;}
.u-p-13{padding:52px !important;}
.u-p-14{padding:56px !important;}
.u-p-15{padding:60px !important;}
.u-p-16{padding:64px !important;}
.u-p-17{padding:68px !important;}
.u-p-18{padding:72px !important;}
.u-p-19{padding:76px !important;}
.u-p-20{padding:80px !important;}
.u-pt-0{padding-top:0px !important;}
.u-pt-1{padding-top:4px !important;}
.u-pt-2{padding-top:8px !important;}
.u-pt-3{padding-top:12px !important;}
.u-pt-4{padding-top:16px !important;}
.u-pt-5{padding-top:20px !important;}
.u-pt-6{padding-top:24px !important;}
.u-pt-7{padding-top:28px !important;}
.u-pt-8{padding-top:32px !important;}
.u-pt-9{padding-top:36px !important;}
.u-pt-10{padding-top:40px !important;}
.u-pt-11{padding-top:44px !important;}
.u-pt-12{padding-top:48px !important;}
.u-pt-13{padding-top:52px !important;}
.u-pt-14{padding-top:56px !important;}
.u-pt-15{padding-top:60px !important;}
.u-pt-16{padding-top:64px !important;}
.u-pt-17{padding-top:68px !important;}
.u-pt-18{padding-top:72px !important;}
.u-pt-19{padding-top:76px !important;}
.u-pt-20{padding-top:80px !important;}
.u-pb-0{padding-bottom:0px !important;}
.u-pb-1{padding-bottom:4px !important;}
.u-pb-2{padding-bottom:8px !important;}
.u-pb-3{padding-bottom:12px !important;}
.u-pb-4{padding-bottom:16px !important;}
.u-pb-5{padding-bottom:20px !important;}
.u-pb-6{padding-bottom:24px !important;}
.u-pb-7{padding-bottom:28px !important;}
.u-pb-8{padding-bottom:32px !important;}
.u-pb-9{padding-bottom:36px !important;}
.u-pb-10{padding-bottom:40px !important;}
.u-pb-11{padding-bottom:44px !important;}
.u-pb-12{padding-bottom:48px !important;}
.u-pb-13{padding-bottom:52px !important;}
.u-pb-14{padding-bottom:56px !important;}
.u-pb-15{padding-bottom:60px !important;}
.u-pb-16{padding-bottom:64px !important;}
.u-pb-17{padding-bottom:68px !important;}
.u-pb-18{padding-bottom:72px !important;}
.u-pb-19{padding-bottom:76px !important;}
.u-pb-20{padding-bottom:80px !important;}
.u-ps-0{padding-left:0px !important;}
.u-ps-1{padding-left:4px !important;}
.u-ps-2{padding-left:8px !important;}
.u-ps-3{padding-left:12px !important;}
.u-ps-4{padding-left:16px !important;}
.u-ps-5{padding-left:20px !important;}
.u-ps-6{padding-left:24px !important;}
.u-ps-7{padding-left:28px !important;}
.u-ps-8{padding-left:32px !important;}
.u-ps-9{padding-left:36px !important;}
.u-ps-10{padding-left:40px !important;}
.u-ps-11{padding-left:44px !important;}
.u-ps-12{padding-left:48px !important;}
.u-ps-13{padding-left:52px !important;}
.u-ps-14{padding-left:56px !important;}
.u-ps-15{padding-left:60px !important;}
.u-ps-16{padding-left:64px !important;}
.u-ps-17{padding-left:68px !important;}
.u-ps-18{padding-left:72px !important;}
.u-ps-19{padding-left:76px !important;}
.u-ps-20{padding-left:80px !important;}
.u-pe-0{padding-right:0px !important;}
.u-pe-1{padding-right:4px !important;}
.u-pe-2{padding-right:8px !important;}
.u-pe-3{padding-right:12px !important;}
.u-pe-4{padding-right:16px !important;}
.u-pe-5{padding-right:20px !important;}
.u-pe-6{padding-right:24px !important;}
.u-pe-7{padding-right:28px !important;}
.u-pe-8{padding-right:32px !important;}
.u-pe-9{padding-right:36px !important;}
.u-pe-10{padding-right:40px !important;}
.u-pe-11{padding-right:44px !important;}
.u-pe-12{padding-right:48px !important;}
.u-pe-13{padding-right:52px !important;}
.u-pe-14{padding-right:56px !important;}
.u-pe-15{padding-right:60px !important;}
.u-pe-16{padding-right:64px !important;}
.u-pe-17{padding-right:68px !important;}
.u-pe-18{padding-right:72px !important;}
.u-pe-19{padding-right:76px !important;}
.u-pe-20{padding-right:80px !important;}
.u-px-0{padding-left:0px !important;padding-right:0px !important;}
.u-px-1{padding-left:4px !important;padding-right:4px !important;}
.u-px-2{padding-left:8px !important;padding-right:8px !important;}
.u-px-3{padding-left:12px !important;padding-right:12px !important;}
.u-px-4{padding-left:16px !important;padding-right:16px !important;}
.u-px-5{padding-left:20px !important;padding-right:20px !important;}
.u-px-6{padding-left:24px !important;padding-right:24px !important;}
.u-px-7{padding-left:28px !important;padding-right:28px !important;}
.u-px-8{padding-left:32px !important;padding-right:32px !important;}
.u-px-9{padding-left:36px !important;padding-right:36px !important;}
.u-px-10{padding-left:40px !important;padding-right:40px !important;}
.u-px-11{padding-left:44px !important;padding-right:44px !important;}
.u-px-12{padding-left:48px !important;padding-right:48px !important;}
.u-px-13{padding-left:52px !important;padding-right:52px !important;}
.u-px-14{padding-left:56px !important;padding-right:56px !important;}
.u-px-15{padding-left:60px !important;padding-right:60px !important;}
.u-px-16{padding-left:64px !important;padding-right:64px !important;}
.u-px-17{padding-left:68px !important;padding-right:68px !important;}
.u-px-18{padding-left:72px !important;padding-right:72px !important;}
.u-px-19{padding-left:76px !important;padding-right:76px !important;}
.u-px-20{padding-left:80px !important;padding-right:80px !important;}
.u-py-0{padding-top:0px !important;padding-bottom:0px !important;}
.u-py-1{padding-top:4px !important;padding-bottom:4px !important;}
.u-py-2{padding-top:8px !important;padding-bottom:8px !important;}
.u-py-3{padding-top:12px !important;padding-bottom:12px !important;}
.u-py-4{padding-top:16px !important;padding-bottom:16px !important;}
.u-py-5{padding-top:20px !important;padding-bottom:20px !important;}
.u-py-6{padding-top:24px !important;padding-bottom:24px !important;}
.u-py-7{padding-top:28px !important;padding-bottom:28px !important;}
.u-py-8{padding-top:32px !important;padding-bottom:32px !important;}
.u-py-9{padding-top:36px !important;padding-bottom:36px !important;}
.u-py-10{padding-top:40px !important;padding-bottom:40px !important;}
.u-py-11{padding-top:44px !important;padding-bottom:44px !important;}
.u-py-12{padding-top:48px !important;padding-bottom:48px !important;}
.u-py-13{padding-top:52px !important;padding-bottom:52px !important;}
.u-py-14{padding-top:56px !important;padding-bottom:56px !important;}
.u-py-15{padding-top:60px !important;padding-bottom:60px !important;}
.u-py-16{padding-top:64px !important;padding-bottom:64px !important;}
.u-py-17{padding-top:68px !important;padding-bottom:68px !important;}
.u-py-18{padding-top:72px !important;padding-bottom:72px !important;}
.u-py-19{padding-top:76px !important;padding-bottom:76px !important;}
.u-py-20{padding-top:80px !important;padding-bottom:80px !important;}
.u-fs-12{font-size:12px !important;line-height:1.4 !important;}
.u-fs-13{font-size:13px !important;line-height:1.45 !important;}
.u-fs-14{font-size:14px !important;line-height:1.5 !important;}
.u-fs-15{font-size:15px !important;line-height:1.55 !important;}
.u-fs-16{font-size:16px !important;line-height:1.6 !important;}
.u-fs-18{font-size:18px !important;line-height:1.6 !important;}
.u-fs-20{font-size:20px !important;line-height:1.55 !important;}
.u-fs-24{font-size:24px !important;line-height:1.3 !important;}
.u-fs-28{font-size:28px !important;line-height:1.2 !important;}
.u-fs-32{font-size:32px !important;line-height:1.15 !important;}
.u-text-brand{color:var(--brand-700) !important;}
.u-text-accent{color:var(--accent-500) !important;}
.u-text-muted{color:var(--muted-500) !important;}
.u-text-ink{color:var(--ink-900) !important;}
/* Component variant 001: reserved for future UI expansion */
.cmp-var-001{}
/* Component variant 002: reserved for future UI expansion */
.cmp-var-002{}
/* Component variant 003: reserved for future UI expansion */
.cmp-var-003{}
/* Component variant 004: reserved for future UI expansion */
.cmp-var-004{}
/* Component variant 005: reserved for future UI expansion */
.cmp-var-005{}
/* Component variant 006: reserved for future UI expansion */
.cmp-var-006{}
/* Component variant 007: reserved for future UI expansion */
.cmp-var-007{}
/* Component variant 008: reserved for future UI expansion */
.cmp-var-008{}
/* Component variant 009: reserved for future UI expansion */
.cmp-var-009{}
/* Component variant 010: reserved for future UI expansion */
.cmp-var-010{}
/* Component variant 011: reserved for future UI expansion */
.cmp-var-011{}
/* Component variant 012: reserved for future UI expansion */
.cmp-var-012{}
/* Component variant 013: reserved for future UI expansion */
.cmp-var-013{}
/* Component variant 014: reserved for future UI expansion */
.cmp-var-014{}
/* Component variant 015: reserved for future UI expansion */
.cmp-var-015{}
/* Component variant 016: reserved for future UI expansion */
.cmp-var-016{}
/* Component variant 017: reserved for future UI expansion */
.cmp-var-017{}
/* Component variant 018: reserved for future UI expansion */
.cmp-var-018{}
/* Component variant 019: reserved for future UI expansion */
.cmp-var-019{}
/* Component variant 020: reserved for future UI expansion */
.cmp-var-020{}
/* Component variant 021: reserved for future UI expansion */
.cmp-var-021{}
/* Component variant 022: reserved for future UI expansion */
.cmp-var-022{}
/* Component variant 023: reserved for future UI expansion */
.cmp-var-023{}
/* Component variant 024: reserved for future UI expansion */
.cmp-var-024{}
/* Component variant 025: reserved for future UI expansion */
.cmp-var-025{}
/* Component variant 026: reserved for future UI expansion */
.cmp-var-026{}
/* Component variant 027: reserved for future UI expansion */
.cmp-var-027{}
/* Component variant 028: reserved for future UI expansion */
.cmp-var-028{}
/* Component variant 029: reserved for future UI expansion */
.cmp-var-029{}
/* Component variant 030: reserved for future UI expansion */
.cmp-var-030{}
/* Component variant 031: reserved for future UI expansion */
.cmp-var-031{}
/* Component variant 032: reserved for future UI expansion */
.cmp-var-032{}
/* Component variant 033: reserved for future UI expansion */
.cmp-var-033{}
/* Component variant 034: reserved for future UI expansion */
.cmp-var-034{}
/* Component variant 035: reserved for future UI expansion */
.cmp-var-035{}
/* Component variant 036: reserved for future UI expansion */
.cmp-var-036{}
/* Component variant 037: reserved for future UI expansion */
.cmp-var-037{}
/* Component variant 038: reserved for future UI expansion */
.cmp-var-038{}
/* Component variant 039: reserved for future UI expansion */
.cmp-var-039{}
/* Component variant 040: reserved for future UI expansion */
.cmp-var-040{}
/* Component variant 041: reserved for future UI expansion */
.cmp-var-041{}
/* Component variant 042: reserved for future UI expansion */
.cmp-var-042{}
/* Component variant 043: reserved for future UI expansion */
.cmp-var-043{}
/* Component variant 044: reserved for future UI expansion */
.cmp-var-044{}
/* Component variant 045: reserved for future UI expansion */
.cmp-var-045{}
/* Component variant 046: reserved for future UI expansion */
.cmp-var-046{}
/* Component variant 047: reserved for future UI expansion */
.cmp-var-047{}
/* Component variant 048: reserved for future UI expansion */
.cmp-var-048{}
/* Component variant 049: reserved for future UI expansion */
.cmp-var-049{}
/* Component variant 050: reserved for future UI expansion */
.cmp-var-050{}
/* Component variant 051: reserved for future UI expansion */
.cmp-var-051{}
/* Component variant 052: reserved for future UI expansion */
.cmp-var-052{}
/* Component variant 053: reserved for future UI expansion */
.cmp-var-053{}
/* Component variant 054: reserved for future UI expansion */
.cmp-var-054{}
/* Component variant 055: reserved for future UI expansion */
.cmp-var-055{}
/* Component variant 056: reserved for future UI expansion */
.cmp-var-056{}
/* Component variant 057: reserved for future UI expansion */
.cmp-var-057{}
/* Component variant 058: reserved for future UI expansion */
.cmp-var-058{}
/* Component variant 059: reserved for future UI expansion */
.cmp-var-059{}
/* Component variant 060: reserved for future UI expansion */
.cmp-var-060{}
/* Component variant 061: reserved for future UI expansion */
.cmp-var-061{}
/* Component variant 062: reserved for future UI expansion */
.cmp-var-062{}
/* Component variant 063: reserved for future UI expansion */
.cmp-var-063{}
/* Component variant 064: reserved for future UI expansion */
.cmp-var-064{}
/* Component variant 065: reserved for future UI expansion */
.cmp-var-065{}
/* Component variant 066: reserved for future UI expansion */
.cmp-var-066{}
/* Component variant 067: reserved for future UI expansion */
.cmp-var-067{}
/* Component variant 068: reserved for future UI expansion */
.cmp-var-068{}
/* Component variant 069: reserved for future UI expansion */
.cmp-var-069{}
/* Component variant 070: reserved for future UI expansion */
.cmp-var-070{}
/* Component variant 071: reserved for future UI expansion */
.cmp-var-071{}
/* Component variant 072: reserved for future UI expansion */
.cmp-var-072{}
/* Component variant 073: reserved for future UI expansion */
.cmp-var-073{}
/* Component variant 074: reserved for future UI expansion */
.cmp-var-074{}
/* Component variant 075: reserved for future UI expansion */
.cmp-var-075{}
/* Component variant 076: reserved for future UI expansion */
.cmp-var-076{}
/* Component variant 077: reserved for future UI expansion */
.cmp-var-077{}
/* Component variant 078: reserved for future UI expansion */
.cmp-var-078{}
/* Component variant 079: reserved for future UI expansion */
.cmp-var-079{}
/* Component variant 080: reserved for future UI expansion */
.cmp-var-080{}
/* Component variant 081: reserved for future UI expansion */
.cmp-var-081{}
/* Component variant 082: reserved for future UI expansion */
.cmp-var-082{}
/* Component variant 083: reserved for future UI expansion */
.cmp-var-083{}
/* Component variant 084: reserved for future UI expansion */
.cmp-var-084{}
/* Component variant 085: reserved for future UI expansion */
.cmp-var-085{}
/* Component variant 086: reserved for future UI expansion */
.cmp-var-086{}
/* Component variant 087: reserved for future UI expansion */
.cmp-var-087{}
/* Component variant 088: reserved for future UI expansion */
.cmp-var-088{}
/* Component variant 089: reserved for future UI expansion */
.cmp-var-089{}
/* Component variant 090: reserved for future UI expansion */
.cmp-var-090{}
/* Component variant 091: reserved for future UI expansion */
.cmp-var-091{}
/* Component variant 092: reserved for future UI expansion */
.cmp-var-092{}
/* Component variant 093: reserved for future UI expansion */
.cmp-var-093{}
/* Component variant 094: reserved for future UI expansion */
.cmp-var-094{}
/* Component variant 095: reserved for future UI expansion */
.cmp-var-095{}
/* Component variant 096: reserved for future UI expansion */
.cmp-var-096{}
/* Component variant 097: reserved for future UI expansion */
.cmp-var-097{}
/* Component variant 098: reserved for future UI expansion */
.cmp-var-098{}
/* Component variant 099: reserved for future UI expansion */
.cmp-var-099{}
/* Component variant 100: reserved for future UI expansion */
.cmp-var-100{}
/* Component variant 101: reserved for future UI expansion */
.cmp-var-101{}
/* Component variant 102: reserved for future UI expansion */
.cmp-var-102{}
/* Component variant 103: reserved for future UI expansion */
.cmp-var-103{}
/* Component variant 104: reserved for future UI expansion */
.cmp-var-104{}
/* Component variant 105: reserved for future UI expansion */
.cmp-var-105{}
/* Component variant 106: reserved for future UI expansion */
.cmp-var-106{}
/* Component variant 107: reserved for future UI expansion */
.cmp-var-107{}
/* Component variant 108: reserved for future UI expansion */
.cmp-var-108{}
/* Component variant 109: reserved for future UI expansion */
.cmp-var-109{}
/* Component variant 110: reserved for future UI expansion */
.cmp-var-110{}
/* Component variant 111: reserved for future UI expansion */
.cmp-var-111{}
/* Component variant 112: reserved for future UI expansion */
.cmp-var-112{}
/* Component variant 113: reserved for future UI expansion */
.cmp-var-113{}
/* Component variant 114: reserved for future UI expansion */
.cmp-var-114{}
/* Component variant 115: reserved for future UI expansion */
.cmp-var-115{}
/* Component variant 116: reserved for future UI expansion */
.cmp-var-116{}
/* Component variant 117: reserved for future UI expansion */
.cmp-var-117{}
/* Component variant 118: reserved for future UI expansion */
.cmp-var-118{}
/* Component variant 119: reserved for future UI expansion */
.cmp-var-119{}
/* Component variant 120: reserved for future UI expansion */
.cmp-var-120{}
/* Component variant 121: reserved for future UI expansion */
.cmp-var-121{}
/* Component variant 122: reserved for future UI expansion */
.cmp-var-122{}
/* Component variant 123: reserved for future UI expansion */
.cmp-var-123{}
/* Component variant 124: reserved for future UI expansion */
.cmp-var-124{}
/* Component variant 125: reserved for future UI expansion */
.cmp-var-125{}
/* Component variant 126: reserved for future UI expansion */
.cmp-var-126{}
/* Component variant 127: reserved for future UI expansion */
.cmp-var-127{}
/* Component variant 128: reserved for future UI expansion */
.cmp-var-128{}
/* Component variant 129: reserved for future UI expansion */
.cmp-var-129{}
/* Component variant 130: reserved for future UI expansion */
.cmp-var-130{}
/* Component variant 131: reserved for future UI expansion */
.cmp-var-131{}
/* Component variant 132: reserved for future UI expansion */
.cmp-var-132{}
/* Component variant 133: reserved for future UI expansion */
.cmp-var-133{}
/* Component variant 134: reserved for future UI expansion */
.cmp-var-134{}
/* Component variant 135: reserved for future UI expansion */
.cmp-var-135{}
/* Component variant 136: reserved for future UI expansion */
.cmp-var-136{}
/* Component variant 137: reserved for future UI expansion */
.cmp-var-137{}
/* Component variant 138: reserved for future UI expansion */
.cmp-var-138{}
/* Component variant 139: reserved for future UI expansion */
.cmp-var-139{}
/* Component variant 140: reserved for future UI expansion */
.cmp-var-140{}
/* Component variant 141: reserved for future UI expansion */
.cmp-var-141{}
/* Component variant 142: reserved for future UI expansion */
.cmp-var-142{}
/* Component variant 143: reserved for future UI expansion */
.cmp-var-143{}
/* Component variant 144: reserved for future UI expansion */
.cmp-var-144{}
/* Component variant 145: reserved for future UI expansion */
.cmp-var-145{}
/* Component variant 146: reserved for future UI expansion */
.cmp-var-146{}
/* Component variant 147: reserved for future UI expansion */
.cmp-var-147{}
/* Component variant 148: reserved for future UI expansion */
.cmp-var-148{}
/* Component variant 149: reserved for future UI expansion */
.cmp-var-149{}
/* Component variant 150: reserved for future UI expansion */
.cmp-var-150{}

[id]{scroll-margin-top:calc(var(--header-h) + 16px);}

/* ========================================================================== */
/* 12) Improvements (2025-12-14) — Hero background visible + better contrast   */
/* ========================================================================== */
/*
  Objectif :
  - L'image de fond du hero DOIT rester visible (pas de voile imposé par défaut).
  - Le texte doit rester lisible : léger text-shadow + “pills” semi-transparents.
  - Si vous voulez un voile, il doit être OPTIONNEL via .hero--overlay (pas automatique).
*/

/* ---- HERO : pas de mask global (annule les pseudo-elements si un thème les ajoute) ---- */
.hero::before,
.hero::after{
  content:none !important;
  display:none !important;
  background:transparent !important;
}

/* S'assure que le fond défini en inline (dans votre <section style="background: ...">) reste prioritaire */
.hero{
  background-color:#000; /* fallback si l'image ne charge pas */
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
}

/* Lisibilité : léger relief sur texte */
.hero .hero-title,
.hero .hero-subtitle,
.hero .hero-kicker,
.hero .hero-trust,
.hero .trust-pill{
  text-shadow: 0 2px 18px rgba(0,0,0,.45);
}

/* Par défaut, texte blanc dans le hero (vu que c'est une image) */
.hero,
.hero .text-white,
.hero .hero-title,
.hero .hero-subtitle{
  color:rgba(255,255,255,.96) !important;
}

/* Kicker & pills: transparents, sans “gris opaque” */
.hero .hero-kicker{
  background:rgba(0,0,0,.22) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  color:#fff !important;
}
.hero .trust-pill{
  background:rgba(0,0,0,.22) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  color:rgba(255,255,255,.92) !important;
  box-shadow:none !important;
}

/* Boutons outline dans le hero (sur image) */
.hero .btn-cta-outline{
  border-color:rgba(255,255,255,.35) !important;
  background:rgba(0,0,0,.20) !important;
  color:#fff !important;
}
.hero .btn-cta-outline:hover{
  background:rgba(0,0,0,.32) !important;
  color:#fff !important;
}

/* Carte de simulation : premium, lisible */
.hero .hero-card{
  background:rgba(255,255,255,.95) !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:0 20px 70px rgba(0,0,0,.28) !important;
}

/* ---- OPTIONNEL : si vous voulez UN voile (léger) ajoutez class="hero hero--overlay" ---- */
.hero.hero--overlay::after{
  content:"" !important;
  display:block !important;
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.35));
}

/* ---- OPTIONNEL : image très claire => texte sombre ---- */
.hero.hero--darktext,
.hero.hero--darktext .hero-title,
.hero.hero--darktext .hero-subtitle{
  color:var(--ink-900) !important;
  text-shadow:none !important;
}
.hero.hero--darktext .hero-kicker,
.hero.hero--darktext .trust-pill{
  background:rgba(255,255,255,.74) !important;
  border-color:rgba(15,23,42,.14) !important;
  color:var(--ink-900) !important;
  text-shadow:none !important;
}
.hero.hero--darktext .btn-cta-outline{
  border-color:rgba(11,90,159,.30) !important;
  background:rgba(255,255,255,.66) !important;
  color:var(--brand-800) !important;
}
.hero.hero--darktext .btn-cta-outline:hover{
  background:rgba(255,255,255,.80) !important;
}

/* ---- Liens “white + sans underline” (footer / hero etc.) ---- */
.link-white-no-underline,
.link-white-no-underline:visited{
  color:#fff !important;
  text-decoration:none !important;
}
.link-white-no-underline:hover{
  color:#fff !important;
  text-decoration:none !important;
  opacity:.92;
}

/* ========================================================================== */
/* 13) Page templates (services/contact)                                       */
/* ========================================================================== */
.page-hero{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid rgba(15,23,42,.10);
  background:#000;
  background-image:var(--hero-img);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.page-hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.28) 55%, rgba(0,0,0,.10) 100%);
  pointer-events:none;
}
.page-hero--overlay::after{background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55));}
.page-hero > *{position:relative; z-index:1;}
.page-hero__inner{
  padding:clamp(3.2rem, 6vw, 6.8rem) 0;
  display:grid;
  gap:clamp(16px, 3vw, 28px);
  align-items:center;
}
@media (min-width: 992px){.page-hero__inner{grid-template-columns:1.25fr .9fr;}}
.page-hero__copy{color:#fff;}
.page-hero__kicker{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.45rem .75rem;border-radius:999px;
  background:rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  font-weight:850;letter-spacing:.02em;
}
.page-hero__title{
  margin:1rem 0 .7rem;
  font-weight:950;letter-spacing:-.03em;
  color:#fff;
  font-size:clamp(2rem, 3.6vw, 3.2rem);
  line-height:1.08;
  text-shadow:0 16px 42px rgba(0,0,0,.35);
}
.page-hero__desc{
  margin:0;
  max-width:62ch;
  color:rgba(255,255,255,.90);
  font-size:clamp(1.05rem, 1.4vw, 1.22rem);
}
.page-hero__bullets{
  margin:1rem 0 0; padding:0; list-style:none;
  display:flex; flex-wrap:wrap; gap:10px 12px;
  color:rgba(255,255,255,.86);
  font-weight:650;
}
.page-hero__bullets li{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.38rem .65rem;border-radius:999px;
  background:rgba(0,0,0,.18);
  border:1px solid rgba(255,255,255,.14);
}
.page-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;}
.page-hero .btn-cta-outline{
  border-color:rgba(255,255,255,.38) !important;
  background:rgba(0,0,0,.18) !important;
  color:#fff !important;
}
.page-hero .btn-cta-outline:hover{background:rgba(0,0,0,.30) !important;color:#fff !important;}

.info-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius-xl);
  box-shadow:0 18px 60px rgba(0,0,0,.22);
  overflow:hidden;
}
.info-card__head{
  padding:1.2rem 1.2rem .9rem;
  background:linear-gradient(135deg, rgba(11,90,159,.12), rgba(201,161,74,.10));
  border-bottom:1px solid rgba(15,23,42,.10);
}
.info-card__title{font-weight:950;letter-spacing:-.02em;color:var(--ink-900);}
.info-card__subtitle{color:rgba(18,27,45,.72);}
.info-card__body{padding:1.1rem 1.2rem 1.2rem;}
.mini-list{display:grid;gap:10px;}
.mini-list__row{display:flex;gap:.7rem;align-items:flex-start;color:rgba(18,27,45,.82);font-weight:650;}
.mini-list__row i{color:var(--brand-700);margin-top:.15rem;}
.info-card__cta{margin-top:1rem;display:grid;gap:10px;}
.info-card__note{font-size:.92rem;color:rgba(95,107,122,.95);}

.section-slab{background:linear-gradient(180deg, rgba(255,255,255,1), rgba(247,249,252,1));}

.feature-grid{display:grid;gap:var(--grid-gap);}
@media (min-width: 768px){.feature-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width: 992px){.feature-grid{grid-template-columns:repeat(3,1fr);}}
.icon-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xs);
  padding:1.25rem 1.25rem 1.1rem;
  transition:transform .25s var(--e2), box-shadow .25s var(--e2), border-color .25s var(--e2);
}
.icon-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(11,90,159,.20);}
.icon-card__icon{
  width:52px;height:52px;border-radius:16px;
  display:grid;place-items:center;
  background:rgba(11,90,159,.10);
  border:1px solid rgba(11,90,159,.14);
  color:var(--brand-700);
  box-shadow:var(--shadow-xs);
  margin-bottom:.85rem;
}
.icon-card__title{font-weight:900;letter-spacing:-.02em;margin:0 0 .35rem;color:var(--ink-900);}
.icon-card__text{margin:0;color:rgba(18,27,45,.74);}

.process-grid{display:grid;gap:var(--grid-gap);}
@media (min-width: 768px){.process-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width: 992px){.process-grid{grid-template-columns:repeat(4,1fr);}}
.process-step{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xs);
  padding:1.1rem 1.1rem 1rem;
  display:flex;gap:.9rem;align-items:flex-start;
}
.process-step__n{
  width:42px;height:42px;border-radius:16px;
  display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(11,90,159,.14), rgba(201,161,74,.12));
  border:1px solid rgba(15,23,42,.10);
  font-weight:950;color:var(--ink-900);
  flex:0 0 auto;
}
.process-step__t{font-weight:900;letter-spacing:-.02em;margin:0;color:var(--ink-900);}
.process-step__d{margin:.15rem 0 0;color:rgba(18,27,45,.74);}

.split{display:grid;gap:var(--grid-gap);align-items:start;}
@media (min-width: 992px){.split{grid-template-columns:1.2fr .8fr;}}
.form-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  padding:1.2rem;
}
.sticky-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.12);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  padding:1.2rem;
  position:sticky;
  top:calc(var(--header-h) + 18px);
}
.sticky-card__title{font-weight:950;letter-spacing:-.02em;margin:0 0 .25rem;color:var(--ink-900);}
.sticky-card__text{color:rgba(18,27,45,.74);}
.checklist{margin:.8rem 0 0;padding:0;list-style:none;display:grid;gap:.55rem;color:rgba(18,27,45,.80);font-weight:650;}
.checklist li{display:flex;gap:.55rem;align-items:flex-start;}
.checklist i{color:var(--brand-700);margin-top:.15rem;}

.mini-banner{
  position:relative;
  margin-top:1rem;
  border-radius:18px;
  overflow:hidden;
  min-height:140px;
  background:center/cover no-repeat;
  box-shadow:var(--shadow-sm);
}
.mini-banner__overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.45));}
.mini-banner__content{position:absolute;left:14px;right:14px;bottom:14px;color:#fff;}
.mini-banner__t{font-weight:950;letter-spacing:-.02em;}
.mini-banner__d{opacity:.9;}

/* ========================================================================== */
/* 14) CTA Band (replacement for ribbon)                                      */
/* ========================================================================== */
.cta-band{
  position:relative;
  border-radius:var(--radius-xl);
  overflow:hidden;
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(255,255,255,.14), transparent 55%),
    radial-gradient(800px 360px at 90% 30%, rgba(201,161,74,.22), transparent 60%),
    linear-gradient(135deg, var(--brand-800), var(--brand-600));
  color:#fff;
  box-shadow:var(--shadow-lg);
  border:1px solid rgba(255,255,255,.12);
}
.cta-band__glow{
  position:absolute; inset:-2px;
  background:
    radial-gradient(600px 320px at 25% 35%, rgba(255,255,255,.18), transparent 60%),
    radial-gradient(520px 280px at 75% 30%, rgba(201,161,74,.26), transparent 62%);
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:.9;
}
.cta-band__inner{
  position:relative; z-index:1;
  padding:clamp(1.4rem, 3vw, 2.25rem);
  display:grid;
  gap:clamp(14px, 2.2vw, 22px);
  align-items:center;
}
@media (min-width: 992px){
  .cta-band__inner{grid-template-columns:1.35fr .65fr;}
}
.cta-band__badge{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.42rem .72rem;
  border-radius:999px;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  font-weight:850;
  letter-spacing:.02em;
}
.cta-band__title{
  margin:.8rem 0 .35rem;
  font-weight:950;
  letter-spacing:-.03em;
  line-height:1.1;
}
.cta-band__desc{
  margin:0;
  max-width:62ch;
  color:rgba(255,255,255,.90);
}
.cta-band__bullets{
  margin:1rem 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:.55rem;
  color:rgba(255,255,255,.92);
  font-weight:700;
}
.cta-band__bullets li{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
}
.cta-band__bullets i{margin-top:.15rem; opacity:.95;}
.cta-band__actions{
  display:grid;
  gap:10px;
  justify-items:stretch;
}
.cta-band__btn{
  width:100%;
  justify-content:center;
}
.cta-band__btn--phone{
  border-color:rgba(255,255,255,.34) !important;
  background:rgba(0,0,0,.14) !important;
  color:#fff !important;
}
.cta-band__btn--phone:hover{
  background:rgba(0,0,0,.24) !important;
  color:#fff !important;
}
.cta-band__note{
  margin-top:2px;
  font-size:.92rem;
  color:rgba(255,255,255,.86);
  display:flex;
  gap:.55rem;
  align-items:center;
  justify-content:center;
  text-align:center;
}
@media (min-width: 992px){
  .cta-band__actions{justify-items:end;}
  .cta-band__btn{max-width:320px;}
  .cta-band__note{justify-content:flex-end;text-align:right;}
}

/* Make links clean on the band */
.cta-band a{color:inherit;text-decoration:none;}
.cta-band a:hover{text-decoration:none;}
/* ===========================
   HOME SECTIONS (premium)
   =========================== */
.section{padding:clamp(3rem,6vw,5rem) 0}
.section-alt{background:rgba(10,20,40,.035)}
.section-header{margin-bottom:1.5rem}
.section-kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(0,0,0,.55)}
.section-title{font-size:clamp(1.6rem,2.8vw,2.35rem);letter-spacing:-.01em;margin:.35rem 0 .35rem}
.section-desc{max-width:80ch;color:rgba(0,0,0,.62);margin:0}

/* Ensure spacing even if Bootstrap gutters are overridden */
.row.g-4{--bs-gutter-x:1.25rem;--bs-gutter-y:1.25rem}
.row.g-3{--bs-gutter-x:1rem;--bs-gutter-y:1rem}

/* Grid tiles helper (your existing HTML uses grid-tiles) */
.grid-tiles{display:grid;gap:1.25rem}
.grid-tiles.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-tiles.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1199px){.grid-tiles.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575px){.grid-tiles.cols-4,.grid-tiles.cols-3{grid-template-columns:1fr}}

/* Card premium (clickable + static variant) */
.card-premium{border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 60px rgba(0,0,0,.06);text-decoration:none;color:inherit;transition:transform .15s ease, box-shadow .15s ease}
.card-premium:hover{transform:translateY(-3px);box-shadow:0 26px 80px rgba(0,0,0,.10)}
.card-premium .card-body{padding:1.2rem}
.card-premium-static:hover{transform:none;box-shadow:0 18px 60px rgba(0,0,0,.06)}
.card-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(10,20,40,.07);font-size:1.25rem}
.card-title{font-weight:800}
.card-text{color:rgba(0,0,0,.62)}

/* Partners */
.logos-strip{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.logo-pill{padding:.55rem .8rem;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 10px 30px rgba(0,0,0,.05);font-weight:700;color:rgba(0,0,0,.70)}
.note-soft{padding:.85rem 1rem;border-radius:14px;background:rgba(10,20,40,.04);border:1px solid rgba(0,0,0,.06);color:rgba(0,0,0,.60)}

/* Trust band */
.trust-band{display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem 1.1rem;border-radius:18px;background:linear-gradient(120deg,rgba(10,20,40,.05),rgba(201,161,74,.10));border:1px solid rgba(0,0,0,.06)}
.trust-band-item{display:flex;align-items:center;gap:.55rem;color:rgba(0,0,0,.65)}
.trust-band-item a{color:inherit;text-decoration:underline;text-decoration-color:rgba(0,0,0,.25)}

/* Stat cards */
.stat-card{border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 60px rgba(0,0,0,.06);padding:1.2rem}
.stat-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(201,161,74,.18);font-size:1.25rem;margin-bottom:.8rem}
.stat-title{font-weight:800;margin-bottom:.35rem}
.stat-text{color:rgba(0,0,0,.62);margin:0}

/* Case card */
.case-card{border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 60px rgba(0,0,0,.06);padding:1.2rem}
.case-card p{color:rgba(0,0,0,.62)}

/* Steps */
.step-card{border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 60px rgba(0,0,0,.06);padding:1.2rem}
.step-num{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:rgba(10,20,40,.08);font-weight:900;margin-bottom:.75rem}
.step-title{font-weight:900;margin-bottom:.35rem}
.step-text{color:rgba(0,0,0,.62);margin:0}

/* Reviews */
.review-card{border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 60px rgba(0,0,0,.06);padding:1.2rem}
.review-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.8rem}
.stars{letter-spacing:.12em}
.pill{font-size:.78rem;font-weight:800;padding:.35rem .6rem;border-radius:999px;background:rgba(10,20,40,.06);border:1px solid rgba(0,0,0,.06)}
.review-text{color:rgba(0,0,0,.70)}
.review-foot{display:flex;align-items:center;gap:.75rem;margin-top:1rem}
.avatar{width:38px;height:38px;border-radius:999px;background:radial-gradient(circle at 30% 30%, rgba(10,20,40,.20), rgba(10,20,40,.06))}
.review-name{font-weight:900}
.review-meta{font-size:.92rem;color:rgba(0,0,0,.55)}

/* Accordion premium */
.accordion-premium .accordion-item{border-radius:16px;overflow:hidden;border:1px solid rgba(0,0,0,.06);margin-bottom:.8rem}
.accordion-premium .accordion-button{font-weight:900}
.accordion-premium .accordion-button:not(.collapsed){background:rgba(10,20,40,.04)}
.accordion-premium .accordion-body{color:rgba(0,0,0,.68)}

/* CTA final */
.section-cta{background:linear-gradient(120deg,rgba(10,20,40,.05),rgba(201,161,74,.09))}
.cta-final{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-radius:22px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 22px 80px rgba(0,0,0,.08);padding:1.35rem}
.cta-kicker{letter-spacing:.12em;text-transform:uppercase;color:rgba(0,0,0,.55);font-size:.78rem}
.cta-title{letter-spacing:-.01em}
@media(max-width:991px){.cta-final{flex-direction:column;align-items:flex-start}}

/* ========================================================================== */
/* 15) Navbar dropdown (premium)                                               */
/* ========================================================================== */
.dropdown-menu{
  border-radius:16px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 22px 70px rgba(2,6,23,.14);
  padding:.55rem;
}
.dropdown-item{
  border-radius:12px;
  padding:.6rem .75rem;
  font-weight:700;
  color:rgba(18,27,45,.82);
}
.dropdown-item:hover{
  background:rgba(11,90,159,.08);
  color:var(--brand-800);
}
.dropdown-item.active,
.dropdown-item:active{
  background:rgba(11,90,159,.12);
  color:var(--brand-800);
}
/* Prevent mobile horizontal clipping */
@media (max-width: 575.98px){
  .container{padding-left:16px;padding-right:16px;}
  .grid-tiles{gap:16px;}
}
.cta-band__kicker{ /* alias de .cta-band__badge */
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.42rem .72rem;
  border-radius:999px;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  font-weight:850;
  letter-spacing:.02em;
}
/* Bouton outline sur fond sombre (ribbon) */
.ribbon .btn-cta-outline{
  border-color: rgba(255,255,255,.35) !important;
  background: rgba(0,0,0,.18) !important;
  color:#fff !important;
}
.ribbon .btn-cta-outline:hover{
  background: rgba(0,0,0,.30) !important;
  color:#fff !important;
}
