/* ═══════════════════════════════════════════════════════════════
   sd-signature.css v1 — Stratégie Dirigeants
   SIGNATURE VISUELLE « Le Collectif » : hero constellation
   d'expertises animée (réseau vivant) + profondeur des cartes
   + motif nœud/lien de continuité entre sections.
   Palette maison : espresso / caramel #deb376 / or #f1dda5 /
   mauve #9b7080. Animations transform/opacity/stroke (GPU).
   prefers-reduced-motion → constellation FIGÉE élégante.
   ADDITIF : retirer <link>+<script> pour rollback.
   #GO_PROD_SD_SIGNATURE_14_07 (demande « signature forte »)
═══════════════════════════════════════════════════════════════ */

:root{
  --sds-espresso:#1a1410;
  --sds-espresso2:#241a12;
  --sds-caramel:#deb376;
  --sds-gold:#f1dda5;
  --sds-mauve:#9b7080;
  --sds-ease:cubic-bezier(.22,.61,.36,1);
}

/* ═══ 1. HERO CONSTELLATION ══════════════════════════════════ */
.hero.sds-hero{
  position:relative;
  height:auto!important;min-height:640px!important;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(120% 90% at 50% 118%, #31221452 0%, transparent 60%),
    linear-gradient(160deg, var(--sds-espresso) 0%, #201710 45%, var(--sds-espresso2) 100%);
}
@media (max-width:760px){
  .hero.sds-hero{min-height:560px!important}
}

/* — Nébuleuse chaude (3 nappes dérivantes, mouvement FRANC) — */
.sds-nebula{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.sds-nebula i{
  content:"";position:absolute;display:block;border-radius:50%;
  will-change:transform,opacity;mix-blend-mode:screen;
}
.sds-nebula .n1{
  width:74vmax;height:74vmax;top:-42vmax;left:-18vmax;
  background:radial-gradient(closest-side, rgba(222,179,118,.60), rgba(222,179,118,.26) 46%, transparent 68%);
  animation:sdsNebA 5.8s var(--sds-ease) infinite;
}
.sds-nebula .n2{
  width:66vmax;height:66vmax;bottom:-40vmax;right:-16vmax;
  background:radial-gradient(closest-side, rgba(155,112,128,.54), rgba(120,74,55,.24) 48%, transparent 70%);
  animation:sdsNebB 7.6s var(--sds-ease) infinite;
}
.sds-nebula .n3{
  width:50vmax;height:50vmax;top:-6%;left:14%;
  background:radial-gradient(closest-side, rgba(241,221,165,.42), transparent 62%);
  animation:sdsNebC 4.8s ease-in-out infinite;
}
@keyframes sdsNebA{
  0%  {transform:translate3d(0,0,0) scale(1);opacity:.85}
  50% {transform:translate3d(24vw,14vh,0) scale(1.3);opacity:1}
  100%{transform:translate3d(0,0,0) scale(1);opacity:.85}
}
@keyframes sdsNebB{
  0%  {transform:translate3d(0,0,0) scale(1.05) rotate(0);opacity:.9}
  50% {transform:translate3d(-26vw,-16vh,0) scale(1.42) rotate(10deg);opacity:1}
  100%{transform:translate3d(0,0,0) scale(1.05) rotate(0);opacity:.9}
}
@keyframes sdsNebC{
  0%  {transform:translate3d(-10vw,5vh,0) scale(.88);opacity:.45}
  50% {transform:translate3d(11vw,-6vh,0) scale(1.24);opacity:1}
  100%{transform:translate3d(-10vw,5vh,0) scale(.88);opacity:.45}
}

/* — Onde lumineuse balayant le hero (mouvement franc) — */
.sds-nebula::before{
  content:"";position:absolute;inset:-22% -30%;z-index:1;
  pointer-events:none;mix-blend-mode:screen;will-change:transform;
  background:linear-gradient(102deg,
    transparent 34%,
    rgba(241,221,165,.10) 43%,
    rgba(241,221,165,.38) 50%,
    rgba(222,179,118,.12) 57%,
    transparent 66%);
  animation:sdsSheen 4.6s linear infinite alternate;
}
@keyframes sdsSheen{
  from{transform:translate3d(-28%,0,0)}
  to  {transform:translate3d(28%,0,0)}
}
/* — Contre-onde mauve/or (croise la première) — */
.sds-nebula::after{
  content:"";position:absolute;inset:-22% -30%;z-index:1;
  pointer-events:none;mix-blend-mode:screen;will-change:transform;
  background:linear-gradient(78deg,
    transparent 36%,
    rgba(155,112,128,.16) 45%,
    rgba(222,179,118,.26) 51%,
    rgba(155,112,128,.12) 57%,
    transparent 66%);
  animation:sdsSheen 5.8s linear infinite alternate-reverse;
}

/* — Grain discret pour le premium (statique) — */
.hero.sds-hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}

/* — Réseau SVG — */
.sds-net{
  position:absolute;inset:0;z-index:2;width:100%;height:100%;
  pointer-events:none;
}
.sds-net .sds-layer{will-change:transform}

/* Liens : tracés à l'entrée puis respiration */
.sds-link{
  stroke:rgba(222,179,118,.48);
  stroke-width:1.25;fill:none;
  stroke-dasharray:var(--len,600);
  stroke-dashoffset:var(--len,600);
  animation:
    sdsDraw 1.1s var(--sds-ease) forwards,
    sdsLinkBreath 5.5s ease-in-out infinite;
  animation-delay:var(--d,0s), calc(var(--d,0s) + 1.1s);
}
.sds-link--inter{stroke:rgba(155,112,128,.30);stroke-width:.9}
@keyframes sdsDraw{to{stroke-dashoffset:0}}
@keyframes sdsLinkBreath{
  0%,100%{opacity:.6}50%{opacity:1}
}

/* Nœuds : déploiement en cascade puis dérive + pulsation */
.sds-node{opacity:0;animation:sdsNodeIn .7s var(--sds-ease) forwards;animation-delay:var(--d,0s)}
@keyframes sdsNodeIn{
  0%{opacity:0;transform:scale(.2)}
  70%{opacity:1;transform:scale(1.12)}
  100%{opacity:1;transform:scale(1)}
}
.sds-node-drift{
  animation:sdsFloat var(--fd,7s) ease-in-out infinite alternate;
  animation-delay:var(--d,0s)
}
@keyframes sdsFloat{
  from{transform:translate3d(0,-7px,0)}
  to  {transform:translate3d(0,9px,0)}
}
.sds-halo{
  fill:rgba(241,221,165,.16);
  animation:sdsHalo 3.6s ease-in-out infinite;
  animation-delay:var(--d,0s);
  transform-origin:center;transform-box:fill-box;
}
@keyframes sdsHalo{
  0%,100%{opacity:.5;transform:scale(1)}
  50%    {opacity:1;transform:scale(1.6)}
}
.sds-disc{fill:var(--sds-caramel);stroke:rgba(241,221,165,.9);stroke-width:1.2}
.sds-core-disc{fill:var(--sds-gold)}
.sds-label{
  fill:#f5e9cf;
  font-family:'Open Sans',system-ui,sans-serif;
  font-size:12.5px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
}
.sds-label-bg{fill:rgba(26,20,16,.55);rx:4}

/* Anneau orbital derrière le titre : rotation lente */
.sds-orbit{
  fill:none;stroke:rgba(222,179,118,.28);stroke-width:1;
  stroke-dasharray:5 9;
  transform-origin:center;transform-box:fill-box;
  animation:sdsOrbit 70s linear infinite, sdsLinkBreath 7s ease-in-out infinite;
}
@keyframes sdsOrbit{to{transform:rotate(360deg)}}

/* Impulsions lumineuses le long des liens (position pilotée JS) */
.sds-pulse{fill:var(--sds-gold);filter:drop-shadow(0 0 6px rgba(241,221,165,.95))}

/* — Contenu : scrim/halo garantissant la lisibilité — */
.hero.sds-hero .hero-content{
  position:relative;z-index:3;padding:0 2rem;
}
.hero.sds-hero .hero-content::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(1250px,140vw);height:230%;
  background:radial-gradient(closest-side,
    rgba(20,14,8,.91), rgba(20,14,8,.80) 46%, rgba(20,14,8,.58) 68%, rgba(20,14,8,.26) 86%, transparent 100%);
}
.hero.sds-hero .hero-content h1{
  color:var(--sds-gold);
  text-shadow:0 2px 26px rgba(0,0,0,.75), 0 0 60px rgba(26,16,8,.6);
  font-size:clamp(1.7rem, 3.4vw, 2.75rem);
  line-height:1.22;
  max-width:940px;margin-inline:auto;
}
.hero.sds-hero .sd-eyebrow{color:#e8cf9b!important}

/* Mise en valeur « pas un consultant isolé » : caramel + soulignement tracé */
.sds-h1-mark{
  color:var(--sds-caramel);
  background-image:linear-gradient(90deg, rgba(222,179,118,.85), rgba(241,221,165,.85));
  background-repeat:no-repeat;background-position:0 100%;
  background-size:0% 2px;
  animation:sdsUnderline 1s var(--sds-ease) 2.1s forwards;
  padding-bottom:3px;
}
@keyframes sdsUnderline{to{background-size:100% 2px}}

/* Entrée du bloc titre */
.hero.sds-hero .hero-content{
  opacity:0;transform:translateY(14px);
  animation:sdsContentIn .9s var(--sds-ease) .25s forwards;
}
@keyframes sdsContentIn{to{opacity:1;transform:translateY(0)}}

/* ═══ 2. PROFONDEUR DES CARTES (filet or + lift franc) ═══════ */
.sd-mini-card,.cta-block,.card,.team-card,.stat-card,.step,.ville-card,.domaine-card{
  position:relative;
  transition:transform .38s var(--sds-ease), box-shadow .38s var(--sds-ease), border-color .38s var(--sds-ease)!important;
}
.sd-mini-card:hover,.card:hover,.team-card:hover,.stat-card:hover,.ville-card:hover,.domaine-card:hover{
  transform:translateY(-8px)!important;
  box-shadow:0 22px 48px -16px rgba(58,36,20,.38), 0 0 0 1px rgba(222,179,118,.55)!important;
}
.cta-block:hover{
  transform:translateY(-8px)!important;
  box-shadow:0 26px 54px -18px rgba(58,36,20,.42), 0 0 0 1px rgba(222,179,118,.6)!important;
}

/* ═══ 3. MOTIF NŒUD/LIEN entre les sections (continuité) ═════ */
.sd-center-head::after,h2.sd-center-head::after{
  content:""!important;display:block;margin:.9rem auto 0;
  width:120px;height:12px;background:none!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cline x1='10' y1='6' x2='52' y2='6' stroke='%23deb376' stroke-width='1'/%3E%3Cline x1='68' y1='6' x2='110' y2='6' stroke='%23deb376' stroke-width='1'/%3E%3Ccircle cx='10' cy='6' r='2.4' fill='%23deb376'/%3E%3Ccircle cx='60' cy='6' r='3.6' fill='%23deb376' stroke='%23f1dda5' stroke-width='1'/%3E%3Ccircle cx='110' cy='6' r='2.4' fill='%23deb376'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:center!important;
}

/* ═══ 4. prefers-reduced-motion : constellation FIGÉE belle ══ */
@media (prefers-reduced-motion:reduce){
  .sds-nebula i,.sds-nebula::before,.sds-nebula::after,.sds-orbit,.sds-halo,.sds-node,.sds-node-drift,
  .sds-link,.sds-h1-mark,.hero.sds-hero .hero-content{
    animation:none!important;
  }
  .sds-node{opacity:1}
  .sds-link{stroke-dashoffset:0}
  .sds-h1-mark{background-size:100% 2px}
  .hero.sds-hero .hero-content{opacity:1;transform:none}
  .sds-pulse{display:none}
  .sds-nebula::before,.sds-nebula::after{opacity:.45}
  .sd-mini-card:hover,.card:hover,.cta-block:hover,.team-card:hover{transform:none!important}
}
