/* =========================================================================
   SOGETEC — feuille ADDITIVE « Le Groupe » (Lot M9).
   Enfilée APRÈS style.css (inchangé) : réutilise les classes MPA existantes
   partout où elles existent (ip-hero, crumbs, exp-tabs, two-col, metrics-4,
   metier-card--white, values-4, sites-grid, legal-*, cta…) via les gabarits
   page-le-groupe.php / page-groupe.php / page-legal.php. Les composants SANS
   équivalent MPA (biographie, tuiles de chiffres, carte interactive,
   certificats, grille équipe, bloc « Notre force ») vivent ici, préfixés
   `grp-`. Tokens :root --grp-* scopés, aucun token --sgt-* du MPA redéfini.
   Palette échantillonnée sur Presentation_SOGETEC_SA_2026_corrigee.pdf.
   Icônes : Font Awesome local déjà sous-ensemblé (fontawesome-local.css),
   5 glyphes ajoutés au Lot M9 (users, ban, triangle-exclamation,
   file-medical, download) — voir specs/livraison-lot-m9.md.
   Révélation à l'entrée dans l'écran : attribut natif `data-reveal="1"` du
   MPA (main.js/style.css, inchangés) — pas de mécanisme concurrent ici.
   ========================================================================= */

:root{
  --grp-green-dark:#1f4a2e;
  --grp-green:#2f7d3f;
  --grp-green-soft:#e8f1e9;
  --grp-navy:#202d6e;
  --grp-navy-soft:#eef0fb;
  --grp-red:#7a1f26;
  --grp-red-soft:#fbe6ea;
  --grp-red-bright:#9c2b2b;
  --grp-gold:#9c7a1e;
  --grp-gold-soft:#f6efdd;
  --grp-cream:#f7f5f0;
  --grp-ink:#14202b;
  --grp-ink-soft:#4b5563;
  --grp-line:#e2e0d8;
  --grp-radius:2px;
  --grp-space-xs:8px;
  --grp-space-sm:16px;
  --grp-space-md:24px;
  --grp-space-lg:48px;
  --grp-space-xl:72px;
}

/* ---------- icônes (Font Awesome local, famille/épaisseur uniques) ---------- */
.grp-ic-circle{
  position:relative;width:46px;height:46px;border-radius:50%;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
}
.grp-ic-circle i{font-size:18px;line-height:1;}
.grp-ic-circle.is-green{background:var(--grp-green-soft);color:var(--grp-green);}
.grp-ic-circle.is-red{background:var(--grp-red-soft);color:var(--grp-red-bright);}
.grp-ic-circle.is-navy{background:var(--grp-navy-soft);color:var(--grp-navy);}
.grp-ic-circle.is-gold{background:var(--grp-gold-soft);color:var(--grp-gold);}
.grp-ic-circle.is-dark{background:rgba(255,255,255,.08);color:#fff;}
.grp-ic-circle.is-sm{width:34px;height:34px;}
.grp-ic-circle.is-sm i{font-size:14px;}
.grp-pilier-ltr{
  position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;
  background:var(--grp-ink);color:#fff;font-size:9px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
}

/* ---------- boutons ---------- */
.grp-btn{
  display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;
  padding:12px 18px;min-height:44px;border-radius:var(--grp-radius);text-decoration:none;
  border:0;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.grp-btn--secondary{background:var(--grp-green-soft);color:var(--grp-green-dark);}
.grp-btn--secondary:hover{background:var(--grp-green);color:#fff;transform:translateY(-1px);}
.grp-btn:focus-visible{outline:2px solid var(--grp-red-bright);outline-offset:2px;}

/* ---------- échelle d'espacement unique pour les titres de section
   (retour correctif #5 : appliquée à toutes les sous-pages) ---------- */
.grp-head2{margin:var(--grp-space-xl) 0 var(--grp-space-md);}
.grp-head2.is-first{margin-top:0;}
.grp-head2-eyebrow{
  display:flex;align-items:center;gap:10px;font-size:11px;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;color:var(--grp-red-bright);margin-bottom:8px;
}
.grp-head2-eyebrow::after{content:"";flex:1;height:1px;background:var(--grp-line);}
.grp-head2-title{font-size:22px;font-weight:800;font-family:var(--display, inherit);}
.grp-head2-sub{font-size:14px;color:var(--grp-ink-soft);margin-top:6px;max-width:72ch;}
@media (max-width:681px){
  .grp-head2{margin-top:var(--grp-space-lg);}
}

/* ---------- Trajectoire (hub) : mise en forme corrigée (R6, correctif n°2 pt 4) ----------
   style.css pose `.tl-year{flex:0 0 96px}`, mais un flex-item garde par
   défaut `min-width:auto` : un libellé d'un seul mot sans espace (ex.
   « AGGREKO ») plus large que 96 px à ce poids/cette taille force la boîte
   à DÉPASSER sa base de 96 px plutôt qu'à passer à la ligne — ce qui décale
   d'autant `.tl-body` à droite sur cette ligne précise, donnant l'impression
   d'une colonne de largeur variable (constat navigateur réel, renvoi-m9-chrome
   §4b). `min-width:0` + un repli de coupure de mot forcent la largeur fixe
   réelle ; `text-wrap:balance` répartit mieux le titre du jalon sur plusieurs
   lignes (repli silencieux si non supporté). */
.grp-timeline-fix .tl-year{min-width:0;overflow-wrap:break-word;word-break:break-word;}
.grp-timeline-fix .tl-h3{text-wrap:balance;}

/* ---------- textes justifiés (retour correctif #1) ----------
   Paragraphes longs uniquement : biographie, mot de l'AG, textes de
   politiques (anti-corruption/HSE), panneau latéral « En bref », paragraphes
   Vision/Mission/Stratégie, intro certifications. Jamais sur titres, cartes
   courtes, listes à puces, légendes. hyphens:auto limite les rivières
   d'espaces ; repli à gauche sous 681px (colonnes étroites). */
.grp-justify{text-align:justify;hyphens:auto;}
@media (max-width:681px){
  .grp-justify{text-align:left;hyphens:none;}
}

/* =========================================================
   1) BIOGRAPHIE — p.2
   ========================================================= */
.grp-bio{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start;}
.grp-bio-portrait{position:relative;}
.grp-bio-portrait img{border-radius:var(--grp-radius);display:block;width:100%;height:auto;}
.grp-bio-portrait::before{
  content:"";position:absolute;left:-14px;top:-14px;right:14px;bottom:14px;
  background:var(--grp-green-soft);z-index:-1;border-radius:var(--grp-radius);
}
.grp-bio-name{font-size:28px;font-weight:800;margin-bottom:4px;}
.grp-bio-sub{
  color:var(--grp-green);font-weight:700;font-size:13px;letter-spacing:.04em;
  text-transform:uppercase;margin-bottom:18px;
}
.grp-bio-text p{color:var(--grp-ink-soft);line-height:1.7;}
.grp-bio-text p:first-of-type{color:var(--grp-ink);}
.grp-bio-text strong{color:var(--grp-ink);}
.grp-mot{margin-top:var(--grp-space-xl);border-top:1px solid var(--grp-line);padding-top:36px;}
.grp-mot-title{font-size:22px;font-weight:800;margin-bottom:18px;display:flex;align-items:center;gap:14px;}
.grp-mot-title::after{content:"";flex:1;height:1px;background:var(--grp-line);}
.grp-quote{
  border-left:4px solid var(--grp-red-bright);padding:4px 0 4px 20px;margin-bottom:22px;
  font-size:17px;font-style:italic;color:var(--grp-ink);
}
.grp-mot-body p{color:var(--grp-ink-soft);line-height:1.7;}
.grp-mot-sign{margin-top:24px;font-weight:800;}
.grp-mot-sign small{display:block;font-weight:500;color:var(--grp-ink-soft);}

@media (max-width:680px){
  .grp-bio{grid-template-columns:1fr;gap:28px;}
  .grp-bio-portrait{max-width:260px;margin:0 auto;}
  .grp-mot{margin-top:var(--grp-space-lg);}
}

/* =========================================================
   2) EN BREF — p.3
   ========================================================= */
.grp-bref{
  display:grid;grid-template-columns:1.3fr 1fr;gap:0;border-radius:var(--grp-radius);overflow:hidden;
  box-shadow:0 1px 2px rgba(20,32,43,.05),0 20px 40px -28px rgba(20,32,43,.35);
}
.grp-bref-left{padding:34px;}
.grp-bref-right{background:var(--grp-green-dark);color:#eef3ee;padding:34px;font-style:italic;line-height:1.7;}
.grp-bref-right p{color:#dfe9e1;}
.grp-bref-group{margin-bottom:var(--grp-space-lg);}
.grp-bref-group:last-child{margin-bottom:0;}
.grp-bref-group-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.grp-bref-step{display:block;font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--grp-ink-soft);text-transform:uppercase;}
.grp-bref-group-title{font-weight:800;font-size:17px;}
.grp-capital-tile{
  background:linear-gradient(135deg,var(--grp-red-bright),var(--grp-red));
  color:#fff;border-radius:var(--grp-radius);padding:18px 22px;
  display:flex;align-items:center;gap:14px;margin-bottom:16px;
}
.grp-capital-tile .grp-ic-circle{background:rgba(255,255,255,.18);color:#fff;}
.grp-capital-tile .num{font-size:34px;font-weight:800;margin-left:auto;}
.grp-capital-tile .lbl{font-size:12px;text-align:right;opacity:.9;}
.grp-perf{border:1px solid var(--grp-line);border-radius:var(--grp-radius);padding:16px 18px;}
.grp-perf-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13px;color:var(--grp-ink-soft);}
.grp-perf-row b{font-size:18px;color:var(--grp-ink);}
/* Barres de progression (retour correctif #2) : largeur posée par JS
   (groupe.js) depuis data-pct, animée à l'entrée dans l'écran ; repli CSS
   immédiat (pas de JS / prefers-reduced-motion) = largeur finale d'emblée. */
.grp-bar{height:7px;background:#eee;border-radius:5px;overflow:hidden;margin-bottom:16px;}
.grp-bar i{display:block;height:100%;width:var(--bar-pct,0%);background:var(--grp-red-bright);transition:width 1.1s cubic-bezier(.3,.8,.3,1);}
.grp-bar.is-green i{background:var(--grp-green);}
.grp-bar[data-pct].js-anim i{width:0;}
.grp-bar[data-pct].js-anim.is-visible i{width:var(--bar-pct,0%);}
@media (prefers-reduced-motion:reduce){
  .grp-bar i{transition:none;}
}
.grp-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.grp-stat-card{border:1px solid var(--grp-line);border-radius:var(--grp-radius);padding:14px 16px;display:flex;gap:12px;align-items:center;}
.grp-stat-card .num{font-size:22px;font-weight:800;}
.grp-stat-card .lbl{font-size:11.5px;color:var(--grp-ink-soft);line-height:1.4;}
.grp-sogrp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;}
.grp-sogrp-grid div{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--grp-ink-soft);}
.grp-sogrp-grid i.grp-dot{width:9px;height:9px;border-radius:2px;background:var(--grp-green);display:inline-block;}
.grp-sogrp-grid i.grp-dot.is-red{background:var(--grp-red-bright);}
.grp-bref-cta{margin-top:16px;display:flex;justify-content:flex-end;}

@media (max-width:680px){
  .grp-bref{grid-template-columns:1fr;}
  .grp-stat-grid{grid-template-columns:1fr 1fr;}
  .grp-bref-cta{justify-content:stretch;}
  .grp-bref-cta .grp-btn{width:100%;justify-content:center;}
}

/* =========================================================
   2bis) PRÉSENCE SOUS-RÉGIONALE — p.4, carte interactive
   ========================================================= */
.grp-map-wrap{
  display:grid;grid-template-columns:1.15fr .85fr;background:var(--grp-green-dark);
  border-radius:var(--grp-radius);overflow:hidden;
}
.grp-map-stage{padding:38px;position:relative;}
.grp-map-stage-title{color:#fff;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px;opacity:.85;}
.grp-map-svg{width:100%;height:auto;display:block;}
.grp-map-context path{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.14);stroke-width:.08;}
.grp-map-country{
  fill:rgba(255,255,255,.4);stroke:rgba(255,255,255,.6);stroke-width:.14;
  cursor:pointer;transition:fill .2s ease,stroke .2s ease;outline:none;
}
.grp-map-country:hover{fill:#fff;}
.grp-map-country:focus-visible{stroke:#fff;stroke-width:.35;}
.grp-map-country.is-active{fill:var(--grp-red-bright);stroke:#fff;}
.grp-map-dot{fill:#fff;opacity:0;transition:opacity .2s;}
.grp-map-dot.is-active{opacity:1;}
.grp-map-hint{color:#cfe0d2;font-size:12px;margin-top:14px;}

.grp-map-panel{background:#fff;padding:38px;display:flex;flex-direction:column;gap:16px;}
.grp-map-panel-badge{
  display:inline-block;align-self:flex-start;font-size:10px;font-weight:800;background:var(--grp-red-bright);
  color:#fff;padding:4px 10px;border-radius:2px;letter-spacing:.08em;text-transform:uppercase;min-height:0;
}
.grp-map-panel-badge:empty{display:none;}
.grp-map-panel h2{font-size:24px;font-weight:800;}
.grp-map-info-row{display:flex;gap:14px;align-items:flex-start;font-size:13.5px;color:var(--grp-ink-soft);}
.grp-map-info-row a{color:var(--grp-ink);text-decoration:none;font-weight:600;word-break:break-word;}
.grp-map-info-row a:hover{text-decoration:underline;}
.grp-country-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--grp-line);}
.grp-country-chip{
  font-size:12px;font-weight:700;padding:9px 14px;min-height:36px;
  border-radius:20px;border:1px solid var(--grp-line);background:#fff;color:var(--grp-ink);cursor:pointer;
  transition:background-color .18s,color .18s,border-color .18s;
}
.grp-country-chip:hover{border-color:var(--grp-red-bright);}
.grp-country-chip.is-active{background:var(--grp-red-bright);border-color:var(--grp-red-bright);color:#fff;}
.grp-country-chip:focus-visible{outline:2px solid var(--grp-red-bright);outline-offset:2px;}

.grp-map-fallback-title{font-size:13px;font-weight:800;color:var(--grp-ink-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;}
.grp-country-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.grp-country-card{border:1px solid var(--grp-line);border-radius:var(--grp-radius);padding:16px 18px;}
.grp-country-card.is-siege{border-color:#e8b4b4;background:var(--grp-red-soft);}
.grp-country-card h3{font-size:15px;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.grp-country-card .badge{font-size:9px;background:var(--grp-red-bright);color:#fff;padding:2px 6px;border-radius:2px;letter-spacing:.06em;}
.grp-country-card p{font-size:12.5px;color:var(--grp-ink-soft);margin:0 0 4px;line-height:1.55;}

@media (max-width:680px){
  .grp-map-wrap{grid-template-columns:1fr;}
  .grp-map-stage{padding:26px 22px;}
  .grp-map-panel{padding:26px 22px;}
}

/* =========================================================
   3) VISION / MISSION / STRATÉGIE — p.5-7
   ========================================================= */
.grp-bandeau{
  display:inline-block;background:var(--grp-navy);color:#fff;font-weight:800;
  font-size:13px;letter-spacing:.08em;padding:10px 20px;margin-bottom:20px;border-radius:2px;
}
.grp-zz-row{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;padding:var(--grp-space-lg) 0;}
.grp-zz-row + .grp-zz-row{border-top:1px solid var(--grp-line);}
.grp-zz-visual{border-radius:var(--grp-radius);overflow:hidden;aspect-ratio:4/3;background:var(--grp-green-dark);position:relative;}
.grp-zz-visual img{width:100%;height:100%;object-fit:cover;display:block;}
.grp-zz-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(31,74,46,.22),rgba(31,74,46,0) 55%);pointer-events:none;}
.grp-zz-text p{color:var(--grp-ink-soft);line-height:1.7;}
.grp-zz-panel{background:var(--grp-green-dark);color:#eef3ee;padding:28px 30px;border-radius:var(--grp-radius);}
.grp-zz-panel p{color:#dfe9e1;margin:0;line-height:1.7;}

@media (max-width:680px){
  .grp-zz-row{grid-template-columns:1fr;gap:20px;padding:var(--grp-space-md) 0;}
  .grp-zz-visual{order:-1;aspect-ratio:16/10;}
}

.grp-objectifs{background:var(--grp-navy-soft);border-radius:var(--grp-radius);padding:28px 30px;margin-top:var(--grp-space-md);}
.grp-objectifs ul{margin:0;padding-left:20px;color:var(--grp-ink);}
.grp-objectifs li{margin-bottom:8px;}

.grp-piliers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.grp-pilier{text-align:center;padding:28px 18px;border:1px solid var(--grp-line);border-radius:var(--grp-radius);}
.grp-pilier .grp-ic-circle{margin:0 auto 14px;}
.grp-pilier h3{font-size:14px;font-weight:800;}

.grp-force{
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.07), transparent 45%),
    radial-gradient(circle at 92% 86%, rgba(156,43,43,.22), transparent 42%),
    var(--grp-ink);
  color:#fff;border-radius:var(--grp-radius);padding:var(--grp-space-xl) 36px;margin-top:var(--grp-space-xl);
  position:relative;overflow:hidden;
}
.grp-force::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:36px 36px;
}
.grp-force > *{position:relative;}
.grp-force-title{font-size:26px;font-weight:800;margin-bottom:8px;}
.grp-force-sub{color:#aeb7c2;font-size:14px;max-width:620px;margin-bottom:var(--grp-space-lg);}

.grp-indic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:var(--grp-space-lg);}
.grp-indic{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:var(--grp-radius);padding:24px 16px;text-align:center;}
.grp-indic-ring{width:72px;height:72px;margin:0 auto 14px;position:relative;}
.grp-indic-ring svg{width:100%;height:100%;transform:rotate(-90deg);}
.grp-indic-ring circle{fill:none;stroke-width:4;}
.grp-indic-ring .track{stroke:rgba(255,255,255,.14);}
.grp-indic-ring .bar{stroke:var(--grp-red-bright);stroke-linecap:round;stroke-dasharray:201;stroke-dashoffset:201;transition:stroke-dashoffset 1.1s cubic-bezier(.3,.8,.3,1);}
.grp-indic-ring.is-visible .bar{stroke-dashoffset:var(--ring-offset,0);}
.grp-indic-ring i{position:absolute;inset:0;margin:auto;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;}
.grp-indic-plain{width:56px;height:56px;margin:0 auto 14px;}
.grp-indic .num{font-size:28px;font-weight:800;color:#fff;display:block;}
.grp-indic .lbl{font-size:11.5px;color:#9aa3ad;margin-top:8px;line-height:1.5;}
@media (prefers-reduced-motion:reduce){
  .grp-indic-ring .bar{transition:none;}
}

.grp-4piliers-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#9aa3ad;margin-bottom:16px;font-weight:700;}
.grp-4piliers{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.grp-4pilier-card{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:var(--grp-radius);padding:20px 18px;}
.grp-4pilier-card .grp-ic-circle{margin-bottom:14px;}
.grp-4pilier-num{display:block;font-size:11px;color:#9aa3ad;letter-spacing:.08em;margin-bottom:4px;}
.grp-4pilier-card h3{font-size:13.5px;font-weight:800;color:#fff;margin-bottom:6px;}
.grp-4pilier-card p{font-size:12px;color:#9aa3ad;margin:0;}

.grp-cards-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--grp-space-md);margin-top:var(--grp-space-xl);}
.grp-card-plain{border:1px solid var(--grp-line);border-radius:var(--grp-radius);padding:26px;}
.grp-card-plain .grp-ic-circle{margin-bottom:14px;}
.grp-card-plain h3{font-size:15px;font-weight:800;margin-bottom:6px;}
.grp-card-plain p{color:var(--grp-ink-soft);margin:0;line-height:1.7;}

@media (max-width:680px){
  .grp-force{padding:var(--grp-space-lg) 22px;}
  .grp-piliers{grid-template-columns:1fr;}
  .grp-indic-grid{grid-template-columns:1fr 1fr;}
  .grp-4piliers{grid-template-columns:1fr 1fr;}
  .grp-cards-2{grid-template-columns:1fr;margin-top:var(--grp-space-lg);}
}

/* =========================================================
   4) ANTI-CORRUPTION — p.8
   ========================================================= */
.grp-ac{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--grp-radius);overflow:hidden;}
.grp-ac-text{background:var(--grp-green-dark);color:#eef3ee;padding:48px 40px;}
.grp-ac-text p{color:#dfe9e1;line-height:1.7;}
.grp-ac-text p:first-child{font-size:17px;}
.grp-ac-visual{min-height:380px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--grp-ink);}
.grp-ac-visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.grp-ac-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(15,22,30,.35),rgba(15,22,30,.05));}

@media (max-width:680px){
  .grp-ac{grid-template-columns:1fr;}
  .grp-ac-visual{min-height:220px;}
}

/* =========================================================
   5) POLITIQUE HSE — p.9
   ========================================================= */
.grp-hse-cols{columns:2;column-gap:40px;}
.grp-hse-cols h3{break-after:avoid;font-size:14px;font-weight:800;margin:28px 0 10px;color:var(--grp-navy);}
.grp-hse-cols h3:first-child{margin-top:0;}
.grp-hse-cols p,.grp-hse-cols li{color:var(--grp-ink-soft);font-size:14.5px;line-height:1.7;}
/* Retour correctif #1 : paragraphes de politique justifiés, jamais les puces. */
.grp-hse-cols p{text-align:justify;hyphens:auto;}
@media (max-width:681px){
  .grp-hse-cols p{text-align:left;hyphens:none;}
}
.grp-hse-cols ul{margin:0 0 10px;padding-left:18px;}
.grp-hse-objs{background:var(--grp-navy-soft);border-radius:var(--grp-radius);padding:26px 24px;margin:0 0 var(--grp-space-xl);break-inside:avoid;}
.grp-hse-objs h3{font-size:14px;font-weight:800;margin-bottom:16px;}
.grp-hse-objs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.grp-hse-obj{display:flex;align-items:center;gap:12px;}
.grp-hse-obj span{font-weight:700;color:var(--grp-ink);text-transform:uppercase;font-size:12.5px;line-height:1.4;}
.grp-hse-sign{margin-top:var(--grp-space-xl);padding-top:22px;border-top:1px solid var(--grp-line);text-align:right;}
.grp-hse-sign b{display:block;font-size:15px;}
.grp-hse-sign span{font-size:12px;color:var(--grp-ink-soft);}

@media (max-width:680px){
  .grp-hse-cols{columns:1;}
  .grp-hse-objs-grid{grid-template-columns:1fr;}
  .grp-hse-objs{margin-bottom:var(--grp-space-lg);}
  .grp-hse-sign{margin-top:var(--grp-space-lg);}
}

/* =========================================================
   6) CERTIFICATIONS — p.11
   ========================================================= */
.grp-cert-title{display:flex;align-items:center;gap:16px;margin-bottom:var(--grp-space-md);}
.grp-cert-title h1,.grp-cert-title .ip-title{color:var(--grp-green);}
.grp-cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:var(--grp-space-lg);}
.grp-cert-card{border:1px solid var(--grp-line);border-radius:var(--grp-radius);overflow:hidden;background:#fff;}
.grp-cert-card img{width:100%;display:block;border-bottom:1px solid var(--grp-line);aspect-ratio:3/4;object-fit:cover;}
.grp-cert-body{padding:18px 18px 20px;}
.grp-cert-badge-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.grp-cert-body h2{font-size:14px;font-weight:800;}
.grp-cert-body p{font-size:12px;color:var(--grp-ink-soft);margin:0 0 10px;}
.grp-cert-meta{font-size:11px;color:var(--grp-ink-soft);line-height:1.8;}
.grp-cert-meta b{color:var(--grp-ink);}
.grp-cert-dl{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;font-weight:700;color:var(--grp-red-bright);text-decoration:none;min-height:32px;}
.grp-cert-dl:hover{text-decoration:underline;}
.grp-cert-intro p{font-size:16px;line-height:1.7;}
.grp-cert-intro strong{color:var(--grp-ink);}
.grp-cert-band{height:160px;border-radius:var(--grp-radius);margin-top:var(--grp-space-lg);overflow:hidden;position:relative;}
.grp-cert-band img{width:100%;height:100%;object-fit:cover;}
.grp-cert-band::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(31,74,46,.55),rgba(32,45,110,.35));}

@media (max-width:680px){
  .grp-cert-grid{grid-template-columns:1fr;}
}

/* =========================================================
   7) ÉQUIPE DIRIGEANTE — p.12
   ========================================================= */
.grp-eq-head{display:grid;grid-template-columns:1fr 280px;gap:40px;align-items:center;margin-bottom:var(--grp-space-xl);}
.grp-eq-bar{width:60px;height:6px;background:var(--grp-red-bright);margin-bottom:18px;}
.grp-eq-title{font-size:32px;font-weight:800;color:var(--grp-green);line-height:1.15;margin-bottom:16px;}
.grp-eq-lead{font-size:16px;color:var(--grp-ink-soft);}
.grp-eq-lead b{color:var(--grp-ink);}
.grp-ag-card{text-align:left;}
.grp-ag-card .grp-eq-photo{max-width:220px;}
.grp-ag-card .name{color:var(--grp-green);font-weight:800;font-size:16px;}
.grp-ag-card .role{color:var(--grp-red-bright);font-size:13px;font-weight:700;}
.grp-eq-rule{height:3px;background:linear-gradient(90deg,var(--grp-red-bright) 0 50%,var(--grp-green) 50% 100%);margin-bottom:var(--grp-space-xl);}
.grp-eq-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.grp-eq-photo{aspect-ratio:4/5;overflow:hidden;border-radius:var(--grp-radius);margin-bottom:10px;background:#e4e4e2;}
.grp-eq-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;}
.grp-eq-member .name{color:var(--grp-green);font-weight:800;font-size:13.5px;}
.grp-eq-member .role{color:var(--grp-red-bright);font-size:12px;}

@media (max-width:680px){
  .grp-eq-head{grid-template-columns:1fr;}
  .grp-ag-card{max-width:220px;}
  .grp-eq-grid{grid-template-columns:1fr 1fr;}
}

/* =========================================================
   8) MENTIONS LÉGALES — tableau « Informations légales » (R4, spec §4.4)
   ========================================================= */
.grp-legal-table{width:100%;border-collapse:collapse;}
.grp-legal-table tr{border-bottom:1px solid var(--grp-line);}
.grp-legal-table tr:last-child{border-bottom:none;}
.grp-legal-table th,.grp-legal-table td{padding:12px 4px;text-align:left;font-size:14px;vertical-align:top;}
.grp-legal-table th{width:220px;font-weight:700;color:var(--grp-ink);}
.grp-legal-table td{color:var(--grp-ink-soft);}

/* =========================================================
   9) HUB — cartes « Sept visages de SOGETEC S.A » (renvoi-m9-chrome-2.md pt.3)
   `.metier-card` (style.css, verbatim MPA) n'a jamais de reset
   text-decoration : partout ailleurs ce n'est qu'un <article>/<div>, le
   survol/focus par défaut du navigateur ne s'y applique donc pas. Ici seul
   le hub « Le Groupe » rend un vrai <a class="metier-card">, modificateur
   `--groupe` dédié pour ne rien changer aux autres usages de `.metier-card`.
   `:focus-visible` conservé (pas d'outline:none) pour l'accessibilité.
   ========================================================= */
.metier-card--groupe,
.metier-card--groupe:hover,
.metier-card--groupe:focus,
.metier-card--groupe:visited{
  text-decoration:none;
}
