/* =========================================================
   Monogeste — couche de design inspirée du thème « Incorp »
   (themestate.com/demo/incorp). Chargée après main.css :
   surcharge par la cascade, sans toucher aux gabarits internes.
   Langage visuel : angles droits, filets fins, libellés mono
   en capitales, grands titres serrés, pied de page sombre.
   ========================================================= */

:root {
  --font-mono: "Source Code Pro", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-serif: var(--font);          /* plus d'accent serif italique */

  --inc-accent: var(--color-primary); /* couleur d'accent (coral #ff6969 chez Incorp) */
  --inc-ink: #1f2a17;                 /* titres */
  --inc-slate: #31402a;               /* liens mono, textes forts */
  --inc-line: #e3e9dc;                /* filets */
  --inc-soft: #f3f6ef;                /* fonds de section / cartes */
  --inc-footer: #1c2416;
  --inc-footer-2: #232d1c;

  --radius: 2px;
  --radius-lg: 2px;
  --shadow-sm: none;
  --shadow: 0 18px 40px rgba(20, 30, 15, .08);
  --shadow-lg: 0 24px 50px rgba(20, 30, 15, .10);
  --color-border: var(--inc-line);
  --color-bg-alt: #ffffff;
  --color-heading: var(--inc-ink);
}

/* ---------- Typographie ---------- */
body { font-size: 17px; color: #2b3324; }
h1, h2, h3, h4, h5, h6 { letter-spacing: -.02em; line-height: 1.15; }

/* Libellé au-dessus des titres : mono, capitales, espacé, couleur d'accent */
.eyebrow,
.hero__tag,
.post-card__cat,
.video-facade__badge {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--inc-accent);
  background: none;
  border: 0;
  padding: 0;
  border-radius: 0;
}
.eyebrow::before { content: none; }
.eyebrow { margin-bottom: 18px; }

.section-title {
  font-size: clamp(2rem, 4.2vw, 3.4rem);
  letter-spacing: -.035em;
  line-height: 1.08;
  margin-bottom: .45em;
}
/* Accent du titre : même police, simple couleur, sans soulignement */
.section-title span,
.hero h1 span {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
  white-space: normal;
}
.section-title span::after,
.hero h1 span::after { content: none; }

.section-head { max-width: 760px; margin-bottom: 60px; }
.lead { font-size: 1.06rem; color: #5d6754; }
.section { padding: 110px 0; }

/* ---------- Boutons : rectangles, mono, capitales ---------- */
.btn {
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 17px 28px;
  border-width: 1px;
}
.btn--sm { padding: 12px 20px; font-size: 11px; }
.btn--primary:hover,
.btn--secondary:hover { transform: none; box-shadow: none; background: var(--inc-ink); border-color: var(--inc-ink); }
.btn--outline { border-color: var(--inc-line); color: var(--inc-slate); }
.btn--outline:hover { background: var(--inc-ink); border-color: var(--inc-ink); color: #fff; }
.btn--light { color: var(--inc-ink); }
.btn--light:hover { background: var(--inc-ink); color: #fff; }
.btn--white-outline { border-color: rgba(255,255,255,.45); }
/* Numéros de téléphone : on garde la lisibilité des chiffres */
a.btn[href^="tel:"] { font-size: 13px; letter-spacing: .08em; font-weight: 700; }

/* Liens « En savoir plus » : mono, capitales, flèche */
.solution-card a.more,
.post-card__more,
.mega-menu__all {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--inc-slate);
}
.solution-card a.more:hover,
.post-card__more:hover,
.post-card:hover .post-card__more { color: var(--inc-accent); }
.solution-card a.more::after { content: "  \2192"; }

/* =========================================================
   Barre supérieure + en-tête
   ========================================================= */
.topbar {
  background: #fff;
  color: #5d6754;
  border-bottom: 1px solid var(--inc-line);
  font-size: 13px;
}
.topbar .container { padding-top: 10px; padding-bottom: 10px; }
.topbar a { color: var(--inc-slate); }
.topbar a:hover { color: var(--inc-accent); }
.topbar .ti,
.topbar__phone .ti { color: var(--inc-accent); }
.topbar__phone { font-size: 13px; }
.topbar__phone a { color: var(--inc-ink); }
.topbar__nav .topbar-menu a { color: var(--inc-slate); font-size: 13px; }
.topbar__nav .topbar-menu a:hover,
.topbar__nav .topbar-menu .current-menu-item > a { color: var(--inc-accent); }
.topbar__social a {
  width: auto; height: auto; border-radius: 0; background: none;
  color: var(--inc-slate); font-size: 13px; font-weight: 600;
}
.topbar__social a:hover { background: none; color: var(--inc-accent); }

.site-header { border-bottom: 1px solid var(--inc-line); }
.site-header.is-stuck { box-shadow: 0 0 10px 5px rgba(0,0,0,.05); border-bottom-color: var(--inc-line); }
.site-header .container { min-height: 92px; }

/* Menu : texte simple, filet d'accent sous l'élément actif / survolé */
.main-nav ul { gap: 6px; }
.main-nav a {
  border-radius: 0;
  font-size: 15px;
  font-weight: 400;
  color: var(--inc-ink);
  padding: 34px 12px;
  border-bottom: 1px solid transparent;
}
.main-nav a:hover,
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a {
  background: none;
  color: var(--inc-ink);
  border-bottom-color: var(--inc-accent);
}
.main-nav > ul > li > a::before { display: none; }

/* Sous-menus et méga-menu : panneau carré bordé */
.main-nav .sub-menu,
.main-nav .mega-menu {
  border-radius: 0;
  border: 1px solid var(--inc-line);
  border-top: 2px solid var(--inc-accent);
  box-shadow: 0 20px 40px rgba(20, 30, 15, .08);
}
.main-nav .sub-menu a,
.main-nav .mega-menu__list a,
.mega-menu__list a {
  padding: 10px 12px;
  border-radius: 0;
  border-bottom: 0;
}
.main-nav .sub-menu a:hover,
.main-nav .mega-menu__list a:hover,
.mega-menu__list a:hover { background: var(--inc-soft); color: var(--inc-ink); }

/* CTA de l'en-tête : bouton bordé, façon « special » d'Incorp */
.header-cta .btn--primary {
  background: #fff;
  color: var(--inc-ink);
  border: 1px solid var(--inc-line);
}
.header-cta .btn--primary .ti { color: var(--inc-accent); }
.header-cta .btn--primary:hover { background: var(--inc-ink); border-color: var(--inc-ink); color: #fff; }
.header-cta .btn--primary:hover .ti { color: #fff; }

@media (max-width: 1122px) {
  .site-header .container { min-height: 76px; }
  .main-nav a { padding: 12px 14px; border-bottom: 1px solid var(--inc-line); }
  .main-nav a:hover,
  .main-nav .current-menu-item > a { border-bottom-color: var(--inc-accent); }
  .main-nav .nav-topbar__menu a,
  .nav-social a { border-radius: 0; }
  .main-nav .nav-topbar__menu a:hover { background: var(--inc-soft); color: var(--inc-ink); }
}

/* =========================================================
   Hero plein cadre : photo + voile sombre, texte en bas à gauche
   encadré d'un filet vertical et d'un filet horizontal (signature Incorp)
   ========================================================= */
.hero--incorp {
  background:
    linear-gradient(90deg, rgba(14, 20, 10, .78) 0%, rgba(14, 20, 10, .45) 55%, rgba(14, 20, 10, .2) 100%),
    var(--hero-bg, none) center / cover no-repeat;
  color: #fff;
  min-height: calc(100vh - 140px);
  min-height: calc(100svh - 140px);
  display: flex;
  align-items: flex-end;
}
.hero--incorp::before { content: none; }
.hero--incorp .container { width: 100%; }
.hero--incorp .hero__inner {
  position: relative;
  max-width: 780px;
  padding: 160px 0 110px 56px;
}
/* filet vertical qui monte depuis le bloc de texte */
.hero--incorp .hero__inner::before {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 1px; height: 10000px;
  background: rgba(255,255,255,.3);
}
/* libellé sur fond sombre plein : lisible quelle que soit la photo */
.hero.hero--incorp .hero__tag {
  display: inline-block;
  max-width: 100%;
  padding: 10px 16px;
  margin-bottom: 26px;
  background: rgba(10, 14, 8, .78);
  border-left: 3px solid var(--inc-accent);
  color: #fff;
  font-size: 12px;
  line-height: 1.5;
  text-shadow: none;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.hero--incorp h1 {
  position: relative;
  color: #fff;
  font-size: clamp(2.3rem, 5.4vw, 4.6rem);
  letter-spacing: -.04em;
  line-height: 1.04;
  padding-bottom: 28px;
  margin-bottom: 30px;
}
/* filet horizontal sous le titre, raccordé au filet vertical */
.hero--incorp h1::after {
  content: "";
  position: absolute;
  left: -56px; bottom: 0;
  width: 10000px; height: 1px;
  background: rgba(255,255,255,.3);
}
/* petit segment d'accent sur le filet */
.hero--incorp h1::before {
  content: "";
  position: absolute;
  left: -56px; bottom: 0;
  width: 56px; height: 2px;
  background: var(--inc-accent);
  z-index: 1;
}
.hero--incorp h1 span { color: #fff; opacity: .72; }
.hero--incorp p { color: rgba(255,255,255,.82); font-size: 1.06rem; max-width: 620px; margin-bottom: 40px; }
.hero--incorp .hero__actions { gap: 12px; }
.hero--incorp .btn--white-outline:hover { background: #fff; color: var(--inc-ink); border-color: #fff; }

@media (max-width: 860px) {
  .hero--incorp { min-height: 0; text-align: left; }
  .hero--incorp .hero__inner { padding: 110px 0 70px 28px; }
  .hero--incorp h1::after,
  .hero--incorp h1::before { left: -28px; }
  .hero--incorp h1::before { width: 28px; }
  .hero--incorp .hero__actions { justify-content: flex-start; }
}

/* ---------- Bandeau de chiffres : compteurs mono couleur d'accent ---------- */
.hero-stats { background: #fff; border-bottom: 1px solid var(--inc-line); }
.hero-stats__item {
  text-align: left;
  padding: 44px 32px 40px;
  border-left: 1px solid var(--inc-line);
}
.hero-stats__item:first-child { border-left: 0; padding-left: 0; }
.hero-stats__num,
.hero-stats__num span {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  letter-spacing: -.08em;
  line-height: 1.1;
  color: var(--inc-accent);
}
.hero-stats__label {
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--inc-slate);
}
@media (max-width: 860px) {
  .hero-stats__item,
  .hero-stats__item:first-child { padding: 28px 20px; }
}

/* =========================================================
   Cartes et blocs : à plat, angles droits, filets fins
   ========================================================= */
.solution-card,
.price-card,
.post-card,
.target-item,
.resource-card {
  border-radius: 0;
  border-color: var(--inc-line);
  box-shadow: none;
}
.solution-card:hover,
.price-card:hover,
.post-card:hover,
.resource-card:hover,
.target-item:hover {
  transform: none;
  box-shadow: var(--shadow);
  border-color: var(--inc-line);
}

/* Icônes : carré plein, sans arrondi */
.solution-card__icon,
.target-item__icon,
.solution-card__icon--sm {
  border-radius: 0;
  background: var(--inc-soft);
  color: var(--inc-accent);
}
.solution-card:hover .solution-card__icon,
.target-item:hover .target-item__icon { background: var(--inc-accent); color: #fff; transform: none; }
.price-card__icon { color: var(--inc-accent); }

.solution-card h3,
.price-card h3,
.post-card h3 { font-size: 1.3rem; letter-spacing: -.02em; }
.solution-card--gallery { text-align: left; }
.solution-card__content { padding: 30px 30px 32px; }
.solution-card__thumb,
.post-card__media,
.gallery-item,
.about__media img,
.media-pair img,
.video-facade__frame { border-radius: 0; }

/* Navigation du slider : carrés bordés */
.slider-nav { border-radius: 0 !important; border: 1px solid var(--inc-line) !important; box-shadow: none !important; }
.slider-nav:hover { background: var(--inc-ink) !important; color: #fff !important; border-color: var(--inc-ink) !important; }

/* Publics cibles : liste à filets */
.targets-grid { gap: 0; border-top: 1px solid var(--inc-line); border-left: 1px solid var(--inc-line); }
.target-item {
  border: 0;
  border-right: 1px solid var(--inc-line);
  border-bottom: 1px solid var(--inc-line);
  padding: 26px 28px;
  background: #fff;
}
.target-item:hover { box-shadow: none; background: var(--inc-soft); }

/* Étapes : grand numéro mono + filet */
.step { padding-top: 0; border-top: 1px solid var(--inc-line); padding-top: 26px; }
.step::before { display: none; }
.step__num {
  width: auto; height: auto;
  background: none; box-shadow: none; border-radius: 0;
  justify-content: flex-start;
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 2.6rem;
  letter-spacing: -.08em;
  color: var(--inc-accent);
}
.step h3 { font-size: 1.2rem; }

/* Offres : carte mise en avant en aplat foncé */
.price-card { padding: 38px 32px; }
.price-card__price { font-family: var(--font-mono); font-weight: 400; letter-spacing: -.04em; color: var(--inc-ink); }
.price-card li::before { color: var(--inc-accent); }
.price-card--featured { background: var(--inc-ink); border-color: var(--inc-ink); }
.price-card--featured h3,
.price-card--featured .price-card__price,
.price-card--featured li { color: #fff; }
.price-card--featured .price-card__icon { color: var(--inc-accent); }
.price-card--featured::before {
  border-radius: 0;
  font-family: var(--font-mono);
  letter-spacing: .14em;
  background: var(--inc-accent);
}
.price-card--featured .btn--primary:hover { background: #fff; color: var(--inc-ink); border-color: #fff; }

/* Actualités : date en pastille carrée, méta mono */
.post-card__date {
  border-radius: 0;
  background: #fff;
  color: var(--inc-ink);
  font-family: var(--font-mono);
  font-weight: 500;
}
.post-card__body { padding: 28px 30px 30px; }
.post-card__cat { font-size: 11px; }

/* Galerie de réalisations : légende mono */
.gallery-item__cap {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* À propos : badge carré, puces carrées */
.about__badge { border-radius: 0; background: var(--inc-accent); animation: none; }
.about__badge strong { font-family: var(--font-mono); font-weight: 400; letter-spacing: -.04em; }
.about__list .check { border-radius: 0; background: var(--inc-soft); color: var(--inc-accent); }

/* Témoignage : grand guillemet, citation éditoriale */
.testimonial__mark { color: var(--inc-accent); font-size: 5rem; font-family: Georgia, serif; }
.testimonial__quote { font-size: clamp(1.3rem, 2.4vw, 1.9rem); font-weight: 400; letter-spacing: -.02em; line-height: 1.45; }
.testimonial__author {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.testimonial__author span { font-family: var(--font); letter-spacing: 0; text-transform: none; font-size: .95rem; }

/* Bandeau citation : aplat d'accent, texte blanc */
.mono-band { background: var(--inc-accent); padding: 56px 0; }
.mono-band,
.mono-band p { color: #fff; }
.mono-band p { font-family: var(--font); font-style: normal; letter-spacing: -.02em; }
.mono-band em { color: #fff; border-bottom-color: rgba(255,255,255,.6); font-style: normal; }
.mono-band::after { background: var(--inc-accent); }

/* Section vidéo : fond foncé uni */
.video-section { background: var(--inc-ink); }
.video-section::before { content: none; }
.video-section .section-head .eyebrow,
.video-section .section-head .section-title span { color: var(--inc-accent); }
.video-facade__play { border-radius: 0; }
.video-facade__play::before { border-radius: 0; }

/* Bande d'appel à l'action : aplat foncé, filet d'accent */
.cta-band,
.section-cta {
  background: var(--inc-ink);
  border-radius: 0;
  border-left: 4px solid var(--inc-accent);
}
.cta-band .btn--light { background: var(--inc-accent); color: #fff; border-color: var(--inc-accent); }
.cta-band .btn--light:hover { background: #fff; color: var(--inc-ink); border-color: #fff; }

/* Formulaires : champs carrés */
.form-field input,
.form-field textarea,
.form-field select,
.filter-search input,
.footer-newsletter input { border-radius: 0; }
.contact__info-item .ico { border-radius: 0; background: var(--inc-soft); color: var(--inc-accent); }

/* Pages internes : titre plus éditorial, fil d'Ariane mono */
.page-hero,
.page-hero--photo { padding: 48px 0 10px; border-bottom: 1px solid var(--inc-line); margin-bottom: 10px; }
.page-hero h1,
.page-hero--photo h1 { font-size: clamp(2.1rem, 4.6vw, 3.6rem); letter-spacing: -.035em; }
/* Fil d'Ariane net : pas d'opacité (elle se cumulait sur les <span> imbriqués de Yoast),
   taille lisible, couleurs contrastées */
.breadcrumb,
.page-hero .breadcrumb,
.page-hero--photo .breadcrumb {
  font-family: var(--font-mono);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.6;
  color: var(--inc-slate);
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}
.breadcrumb span,
.page-hero .breadcrumb span,
.page-hero--photo .breadcrumb span {
  opacity: 1;
  margin: 0;
  color: inherit;
  font-weight: inherit;
}
.breadcrumb .breadcrumb_last { color: var(--inc-ink); font-weight: 600; }
.breadcrumb .breadcrumb__sep { margin: 0 8px; color: #8a9382; }
.breadcrumb a,
.page-hero .breadcrumb a,
.page-hero--photo .breadcrumb a { color: var(--color-primary-dark); font-weight: 600; }
.breadcrumb a:hover,
.page-hero .breadcrumb a:hover,
.page-hero--photo .breadcrumb a:hover { color: var(--inc-ink); }

/* =========================================================
   Pied de page sombre
   ========================================================= */
.site-footer { background: var(--inc-footer); color: #c9cfc2; }
.site-footer a { color: #d5dacf; }
.site-footer a:hover { color: #fff; }
.site-footer h4,
.site-footer .footer-title {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.01em;
  padding-bottom: 16px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.footer-reassurance { border-bottom-color: rgba(255,255,255,.1); }
.footer-reassurance__icon { border-radius: 0; color: var(--inc-accent); }
.footer-contact .ti { color: var(--inc-accent); }
.footer-social a { border-radius: 0; }
.footer-social a:hover { background: var(--inc-accent); }
.footer-bottom {
  background: var(--inc-footer-2);
  border-top: 1px solid rgba(255,255,255,.08);
  font-size: 13px;
}
.footer-bottom a { text-decoration: none; opacity: .8; }
.footer-bottom a:hover { opacity: 1; }

/* Bouton retour en haut + bandeau cookies : carrés */
.to-top { border-radius: 0; background: var(--inc-ink); }
.to-top:hover { background: var(--inc-accent); }
.cookie-banner { border-radius: 0; }

@media (max-width: 860px) {
  .section { padding: 72px 0; }
}

/* =========================================================
   Méga-menu pleine largeur (desktop) : le panneau occupe toute
   la largeur de l'en-tête, le contenu reste aligné sur .container
   ========================================================= */
@media (min-width: 1123px) {
  /* le panneau se positionne par rapport à .site-header (sticky), pas à l'élément de menu */
  .main-nav .menu-item-mega { position: static; }
  .main-nav .mega-menu {
    left: 0;
    right: 0;
    top: 100%;
    width: auto;
    max-width: none;
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid var(--inc-line);
    transform: translateY(0);
  }
  /* pont invisible : évite la fermeture en descendant du lien vers le panneau */
  .main-nav .mega-menu::before {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 100%;
    height: 14px;
  }
  .main-nav .mega-menu .mega-menu__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--gutter);
    gap: 40px;
  }
  .main-nav .mega-menu__main { padding: 34px 0 30px; }
  .main-nav .mega-menu__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 24px; }
  .mega-menu__promo { width: 300px; padding: 34px 30px; }
}

/* =========================================================
   Accueil — « Comment pouvons-nous vous aider ? » : cartes d'offres
   Grille jointive à filets, numéro mono, filet d'accent au survol,
   bouton calé en bas de carte (hauteurs égales).
   ========================================================= */
.offers-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--inc-line);
  border-left: 1px solid var(--inc-line);
}
.offer-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 40px 32px 0;
  background: #fff;
  border-right: 1px solid var(--inc-line);
  border-bottom: 1px solid var(--inc-line);
  transition: background var(--transition), color var(--transition);
}
/* filet d'accent qui se déploie en haut de la carte */
.offer-card::before {
  content: "";
  position: absolute;
  top: -1px; left: -1px; right: -1px;
  height: 3px;
  background: var(--inc-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s cubic-bezier(.16,.68,.43,.99);
}
.offer-card:hover::before,
.offer-card--featured::before { transform: scaleX(1); }

.offer-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 30px;
}
.offer-card__icon {
  width: 56px; height: 56px;
  display: grid; place-items: center;
  background: var(--color-primary-light);
  color: var(--inc-accent);
  transition: background var(--transition), color var(--transition);
}
.offer-card__icon svg { width: 26px; height: 26px; }
.offer-card:hover .offer-card__icon { background: var(--inc-accent); color: #fff; }
.offer-card__num {
  font-family: var(--font-mono);
  font-size: 2.6rem;
  line-height: 1;
  letter-spacing: -.08em;
  color: var(--inc-line);
  transition: color var(--transition);
}
.offer-card:hover .offer-card__num { color: var(--inc-accent); }

.offer-card__tag {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--inc-accent);
  margin-bottom: 10px;
}
.offer-card__title { font-size: 1.45rem; letter-spacing: -.025em; margin: 0 0 12px; }
.offer-card__desc { font-size: .95rem; line-height: 1.6; color: #5d6754; margin: 0 0 22px; }

.offer-card__list { list-style: none; margin: 0 0 32px; padding: 0; }
.offer-card__list li {
  position: relative;
  padding: 11px 0 11px 22px;
  border-top: 1px solid var(--inc-line);
  font-size: .92rem;
  color: var(--inc-slate);
}
.offer-card__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 8px; height: 8px;
  margin-top: -4px;
  background: var(--inc-accent);
}

/* bouton : bande pleine largeur collée en bas de carte */
.offer-card__cta {
  margin: auto -32px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  border-top: 1px solid var(--inc-line);
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--inc-ink);
  transition: background var(--transition), color var(--transition);
}
.offer-card__cta span { font-size: 16px; transition: transform var(--transition); }
.offer-card__cta:hover,
.offer-card:hover .offer-card__cta { background: var(--inc-accent); color: #fff; }
.offer-card__cta:hover span,
.offer-card:hover .offer-card__cta span { transform: translateX(4px); }

/* carte mise en avant : aplat foncé */
.offer-card--featured { background: var(--inc-ink); border-color: var(--inc-ink); }
.offer-card--featured .offer-card__title { color: #fff; }
.offer-card--featured .offer-card__desc { color: rgba(255,255,255,.72); }
.offer-card--featured .offer-card__list li { color: #fff; border-top-color: rgba(255,255,255,.12); }
.offer-card--featured .offer-card__icon { background: rgba(255,255,255,.08); }
.offer-card--featured .offer-card__num { color: rgba(255,255,255,.18); }
.offer-card--featured .offer-card__cta {
  background: var(--inc-accent);
  color: #fff;
  border-top-color: var(--inc-accent);
}
.offer-card--featured:hover .offer-card__cta { background: #fff; color: var(--inc-ink); }

/* apparition en cascade, comme les autres grilles */
.offers-grid > .reveal:nth-child(2) { transition-delay: .07s; }
.offers-grid > .reveal:nth-child(3) { transition-delay: .14s; }
.offers-grid > .reveal:nth-child(4) { transition-delay: .21s; }

@media (max-width: 1024px) {
  .offers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .offers-grid { grid-template-columns: 1fr; }
  .offer-card { padding: 32px 24px 0; }
  .offer-card__cta { margin-left: -24px; margin-right: -24px; padding: 18px 24px; }
}

/* =========================================================
   Méga-menu — transitions (desktop)
   Ouverture : le panneau se déroule vers le bas, filet d'accent
   qui se déploie, puis les liens apparaissent en cascade.
   Fermeture : courte temporisation pour pardonner un écart de souris.
   ========================================================= */
@media (min-width: 1123px) {
  .main-nav .mega-menu {
    overflow: visible;                      /* laisse passer le pont de survol (::before) */
    border-top: 0;
    opacity: 0;
    visibility: hidden;
    transform: none;
    clip-path: inset(0 0 100% 0);
    transition:
      clip-path .45s cubic-bezier(.16,.68,.43,.99) .12s,
      opacity .3s ease .12s,
      visibility 0s linear .57s;
  }
  .main-nav .menu-item-mega:hover > .mega-menu,
  .main-nav .menu-item-mega:focus-within > .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
    clip-path: inset(0 0 -80px 0);          /* marge basse : l'ombre reste visible */
    transition:
      clip-path .5s cubic-bezier(.16,.68,.43,.99),
      opacity .25s ease,
      visibility 0s;
  }

  /* filet d'accent en haut du panneau, déployé de gauche à droite */
  .main-nav .mega-menu::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: var(--inc-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .6s cubic-bezier(.16,.68,.43,.99);
  }
  .main-nav .menu-item-mega:hover > .mega-menu::after,
  .main-nav .menu-item-mega:focus-within > .mega-menu::after { transform: scaleX(1); }

  /* contenu : apparition en cascade */
  .main-nav .mega-menu__eyebrow,
  .main-nav .mega-menu__list > li,
  .main-nav .mega-menu__all {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .35s ease, transform .45s cubic-bezier(.16,.68,.43,.99);
  }
  .main-nav .menu-item-mega:hover .mega-menu__eyebrow,
  .main-nav .menu-item-mega:hover .mega-menu__list > li,
  .main-nav .menu-item-mega:hover .mega-menu__all,
  .main-nav .menu-item-mega:focus-within .mega-menu__eyebrow,
  .main-nav .menu-item-mega:focus-within .mega-menu__list > li,
  .main-nav .menu-item-mega:focus-within .mega-menu__all {
    opacity: 1;
    transform: none;
  }
  .main-nav .menu-item-mega:hover .mega-menu__eyebrow { transition-delay: .08s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(1)  { transition-delay: .12s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(2)  { transition-delay: .16s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(3)  { transition-delay: .20s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(4)  { transition-delay: .24s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(5)  { transition-delay: .28s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(6)  { transition-delay: .32s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(7)  { transition-delay: .36s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(8)  { transition-delay: .40s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(9)  { transition-delay: .44s; }
  .main-nav .menu-item-mega:hover .mega-menu__list > li:nth-child(n+10) { transition-delay: .48s; }
  .main-nav .menu-item-mega:hover .mega-menu__all { transition-delay: .5s; }

  /* survol d'un lien : icône remplie, titre qui glisse légèrement */
  .main-nav .mega-menu__list a { transition: background var(--transition); }
  .main-nav .mega-menu__title { transition: transform var(--transition), color var(--transition); }
  .main-nav .mega-menu__list a:hover .mega-menu__title { transform: translateX(4px); color: var(--inc-accent); }
  .main-nav .mega-menu__list a:hover .mega-menu__ico { background: var(--inc-accent); color: #fff; }
  .main-nav .mega-menu__all span,
  .main-nav .mega-menu__all { transition: color var(--transition), letter-spacing var(--transition), opacity .35s ease, transform .45s cubic-bezier(.16,.68,.43,.99); }
  .main-nav .mega-menu__all:hover { color: var(--inc-accent); letter-spacing: .24em; }

  /* chevron de l'entrée de menu : pivote à l'ouverture */
  .main-nav .menu-item-mega > a::after {
    display: inline-block;
    transition: transform .3s ease;
  }
  .main-nav .menu-item-mega:hover > a::after,
  .main-nav .menu-item-mega:focus-within > a::after { transform: rotate(180deg); }
}

/* =========================================================
   Méga-menu — mise en page resserrée (desktop)
   Colonne d'intro à gauche (titre + « Tout voir »), liste compacte
   à droite en colonnes de largeur fixe : plus d'éléments étirés.
   ========================================================= */
@media (min-width: 1123px) {
  .main-nav .mega-menu__main {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 56px;
    padding: 36px 0 34px;
  }

  /* colonne d'intro */
  .main-nav .mega-menu__eyebrow {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    padding-right: 24px;
    font-family: var(--font);
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.2;
    text-transform: none;
    color: var(--inc-ink);
  }
  .main-nav .mega-menu__all {
    grid-column: 1;
    grid-row: 2;
    align-self: end;
    justify-self: start;
    margin: 24px 0 0;
    padding: 0 0 6px;
    border-bottom: 1px solid var(--inc-accent);
    font-size: 11px;
    letter-spacing: .16em;
  }
  .main-nav .mega-menu__all:hover { letter-spacing: .16em; color: var(--inc-accent); }
  /* filet vertical séparant l'intro de la liste */
  .main-nav .mega-menu__main::before {
    content: "";
    grid-column: 1;
    grid-row: 1 / 3;
    justify-self: end;
    width: 1px;
    margin-right: -28px;
    background: var(--inc-line);
  }

  /* liste compacte */
  .main-nav .mega-menu__list {
    grid-column: 2;
    grid-row: 1 / 3;
    grid-template-columns: repeat(3, minmax(0, 250px));
    gap: 0 36px;
    align-content: start;
  }
  .main-nav .mega-menu__list > li { border-bottom: 1px solid var(--inc-line); }
  .main-nav .mega-menu__list a {
    gap: 12px;
    padding: 11px 0;
    background: none;
  }
  .main-nav .mega-menu__list a:hover { background: none; }
  .main-nav .mega-menu__ico {
    width: 34px;
    height: 34px;
    border-radius: 0;
    background: var(--color-primary-light);
  }
  .main-nav .mega-menu__ico svg { width: 17px; height: 17px; }
  .main-nav .mega-menu__title {
    font-size: .93rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--inc-ink);
  }
}

/* écrans moyens : 2 colonnes de liste */
@media (min-width: 1123px) and (max-width: 1280px) {
  .main-nav .mega-menu__main { grid-template-columns: 200px minmax(0, 1fr); column-gap: 44px; }
  .main-nav .mega-menu__list { grid-template-columns: repeat(2, minmax(0, 260px)); }
}

/* =========================================================
   Bouton d'appel flottant (extension Sticky Call Button)
   L'extension impose la police système dans un <style> imprimé en pied
   de page : « body » renforce la spécificité pour passer devant.
   ========================================================= */
body .scb-button { font-family: var(--font); }
body .scb-button .scb-label { letter-spacing: .01em; }
body .scb-button .scb-phone {
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  opacity: 1;
}
