/* DataSAI - Icônes 3D (voir assets/icones-3d.js). Légère lévitation et inclinaison au survol, pour que les objets
   paraissent posés dans l'espace plutôt que dessinés. */
.ic3d { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(0, 0, 0, .35)); }
@keyframes ic3d-flotte { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } }

/* Pour qui ? */
.audience-grid .audience-card .audience-icon:has(.ic3d) { width: 76px !important; height: 76px !important; font-size: 0; background: none !important; border: 0 !important; box-shadow: none !important; margin: 0 auto 10px !important; padding: 0 !important; }
.audience-card .ic3d-public { animation: ic3d-flotte 5s ease-in-out infinite; transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.audience-card:nth-child(2n) .ic3d-public { animation-delay: -1.6s; }
.audience-card:nth-child(3n) .ic3d-public { animation-delay: -3.1s; }
.audience-card:hover .ic3d-public { animation-play-state: paused; transform: translateY(-6px) scale(1.12) rotate(-6deg); }

/* Parcours */
.ab-etape-rond:has(.ic3d) { background: radial-gradient(circle at 50% 40%, rgba(255, 255, 255, .95), rgba(240, 236, 250, .9)); padding: 5px; }
.ic3d-etape { animation: ic3d-flotte 6s ease-in-out infinite; }
.ab-etape:nth-of-type(2n) .ic3d-etape { animation-delay: -2s; }
.ab-etape:nth-of-type(3n) .ic3d-etape { animation-delay: -4s; }

/* Agents de la démonstration */
.ag-rond:has(.ic3d) svg { display: none; }
.ag-rond .ic3d-agent { width: 64%; height: 64%; margin: auto; position: relative; z-index: 1; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .45)); }

@media (prefers-reduced-motion: reduce) { .ic3d-public, .ic3d-etape { animation: none; } }

/* Projet final : vitrine noir et or, lumière venue d'en haut comme le halo du logo */
.final-project.pf-vitrine { position: relative; overflow: hidden; padding: 46px 44px 40px !important; border-radius: 26px !important;
  background: radial-gradient(60% 55% at 50% -8%, rgba(255, 236, 190, .42), rgba(201, 150, 63, .14) 45%, transparent 70%),
              linear-gradient(165deg, #2a2418 0%, #12100c 55%, #070605 100%) !important;
  border: 1px solid rgba(236, 199, 119, .45) !important;
  box-shadow: inset 0 1px 0 rgba(255, 241, 200, .35), inset 0 -4px 0 rgba(0, 0, 0, .5), 0 8px 0 #000, 0 34px 70px rgba(30, 18, 0, .45) !important; }
.pf-vitrine::before { content: ""; position: absolute; left: 50%; top: -160px; width: 520px; height: 320px; transform: translateX(-50%);
  background: radial-gradient(closest-side, rgba(255, 246, 216, .55), transparent); filter: blur(10px); pointer-events: none; animation: pf-halo 7s ease-in-out infinite; }
@keyframes pf-halo { 50% { opacity: .55; transform: translateX(-50%) scale(1.08); } }
.pf-tete { position: relative; display: flex; gap: 26px; align-items: center; margin-bottom: 28px; }
.pf-trophee { flex: none; width: 118px; height: 118px; filter: drop-shadow(0 18px 24px rgba(0, 0, 0, .6)) drop-shadow(0 0 30px rgba(255, 214, 120, .35)); animation: ic3d-flotte 5s ease-in-out infinite; }
.pf-sur { margin: 0 0 6px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: #ecc777; }
.final-project.pf-vitrine h3 { font-size: clamp(30px, 3.4vw, 44px) !important; line-height: 1.08; margin: 0 0 10px !important; color: #fbf3df !important; }
.final-project.pf-vitrine h3 em { font-style: italic; background: linear-gradient(100deg, #c7b083, #fff1c8 35%, #fffbe7 50%, #e7d9b6 65%, #c59864); background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; animation: or-lueur 8s ease-in-out infinite; }
.final-project.pf-vitrine .pf-tete p { margin: 0; color: rgba(251, 243, 223, .72) !important; font-size: 16px; line-height: 1.6; max-width: 640px; }
.pf-vitrine .final-grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pf-vitrine .final-item { display: flex; align-items: center; gap: 12px; padding: 14px 14px !important; border-radius: 14px !important; color: #fbf3df !important; font-weight: 600; font-size: 14.5px;
  background: linear-gradient(180deg, rgba(255, 241, 200, .1), rgba(255, 241, 200, .03)) !important; border: 1px solid rgba(236, 199, 119, .25) !important;
  box-shadow: inset 0 1px 0 rgba(255, 241, 200, .18), 0 3px 0 rgba(0, 0, 0, .55), 0 12px 22px rgba(0, 0, 0, .35) !important;
  transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), border-color .3s; }
.pf-vitrine .final-item:hover { transform: translateY(-4px); border-color: rgba(236, 199, 119, .6) !important; }
.pf-ico { flex: none; width: 40px; height: 40px; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .55)); }
.pf-vitrine.rv .final-item { opacity: 0; transform: translateY(14px) scale(.96); transition: opacity .5s ease, transform .6s cubic-bezier(.34, 1.56, .64, 1); transition-delay: calc(.25s + var(--k) * .06s); }
.pf-vitrine.rv.rv-on .final-item { opacity: 1; transform: none; }
.pf-sceau { position: relative; display: flex; align-items: center; gap: 14px; margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(236, 199, 119, .22); color: rgba(251, 243, 223, .7); font-size: 14px; }
.pf-sceau b { display: block; color: #ecc777; font-size: 15px; }
.pf-medaille { width: 52px; height: 52px; filter: drop-shadow(0 8px 12px rgba(0, 0, 0, .55)); }
@media (max-width: 900px) { .pf-vitrine .final-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-tete { flex-direction: column; align-items: flex-start; gap: 12px; } .pf-trophee { width: 84px; height: 84px; } .final-project.pf-vitrine { padding: 30px 20px 26px !important; } }

/* Semaine type : barre du temps en blocs d'encre, qui se remplit à l'apparition */
.sem-barre { margin: 8px 0 22px; padding: 26px 26px 24px; border-radius: 22px; background: linear-gradient(165deg, #16233f 0%, #0b142a 48%, #060a16 100%);
  border: 1px solid rgba(231, 217, 182, .14); box-shadow: inset 0 1px 0 rgba(255,255,255,.14), inset 0 -3px 0 rgba(0,0,0,.35), 0 6px 0 #04070f, 0 22px 40px rgba(5,9,20,.35); color: #fff; }
.sem-tete { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.sem-tete b { font-family: 'Instrument Serif', Georgia, serif; font-size: 34px; font-weight: 400; letter-spacing: 0; text-transform: none; color: #f2e4ca; }
.sem-piste { display: flex; gap: 8px; height: 74px; }
.sem-bloc { flex: 0 0 0; min-width: 0; display: flex; align-items: flex-end; padding: 10px 12px; border-radius: 12px; overflow: hidden; white-space: nowrap;
  font-size: 13.5px; font-weight: 700; transition: flex-basis 1.1s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(var(--k) * .18s); }
.sem-on .sem-bloc { flex: var(--part) 1 0; }
.sem-bloc span { overflow: hidden; text-overflow: ellipsis; }
.sem-bloc.sem-sai { background: linear-gradient(180deg, #8fd6ff 0%, #38b6ff 32%, #1580d6 70%, #0d5fa8 100%); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.6), inset 0 -3px 0 rgba(5,50,100,.4), 0 4px 0 #0a4c88; }
.sem-bloc.sem-or { background: linear-gradient(180deg, #fff1c8 0%, #ecc777 30%, #c9963f 58%, #a87727 82%, #d8ad5a 100%); color: #2a1a04; box-shadow: inset 0 1px 0 rgba(255,255,255,.7), inset 0 -3px 0 rgba(120,80,20,.35), 0 4px 0 #8a5d1c; }
.sem-bloc.sem-emeraude { background: linear-gradient(180deg, #7fe0bd 0%, #1fae7f 35%, #0e7a58 75%, #0a5c43 100%); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.5), inset 0 -3px 0 rgba(0,0,0,.25), 0 4px 0 #0a5c43; }
.sem-bloc.sem-nuit { background: linear-gradient(180deg, #4a5a7d 0%, #2a3756 45%, #1a2440 100%); color: #f2e4ca; box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 -3px 0 rgba(0,0,0,.35), 0 4px 0 #0b1226; }
.week-card .week-icon:has(.sem-ico) { width: 64px; height: 64px; font-size: 0; margin-bottom: 10px; background: none !important; }
.sem-ico { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0,0,0,.45)); animation: ic3d-flotte 5.5s ease-in-out infinite; }
.week-card.sem-sai { border-top: 3px solid #38b6ff !important; } .week-card.sem-or { border-top: 3px solid #c9963f !important; }
.week-card.sem-emeraude { border-top: 3px solid #1fae7f !important; } .week-card.sem-nuit { border-top: 3px solid #8fa3c9 !important; }
@media (max-width: 700px) { .sem-piste { flex-direction: column; height: auto; } .sem-bloc, .sem-on .sem-bloc { flex: none; height: 42px; width: calc(var(--part) * 100% + 40%); transition: none; } }
@media (prefers-reduced-motion: reduce) { .pf-vitrine::before, .pf-trophee, .sem-ico { animation: none; } .sem-bloc { flex: var(--part) 1 0; transition: none; } .pf-vitrine.rv .final-item { opacity: 1; transform: none; } }

.sem-bloc span b { display: block; font-family: 'Instrument Serif', Georgia, serif; font-size: 22px; font-weight: 400; line-height: 1; margin-bottom: 3px; }
.sem-bloc { align-items: flex-end; font-size: 12.5px; }
/* Bloc « Appel découverte » : or et bleu SAI à la place du violet */
.ds-sessions h3 em, .ds-sessions em { color: #e7d9b6 !important; background: none !important; -webkit-text-fill-color: #e7d9b6 !important; }
.ds-sessions-eyebrow { color: #38b6ff !important; font-family: 'IBM Plex Mono', monospace; letter-spacing: .1em; }
.ds-sessions a, .ds-sessions .ds-sessions-cta, .ds-sessions [class*="lien"] { color: #1677b8 !important; }
.ds-sessions { background: linear-gradient(165deg, #16233f 0%, #0b142a 48%, #060a16 100%) !important; border: 1px solid rgba(231, 217, 182, .14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), inset 0 -3px 0 rgba(0,0,0,.35), 0 6px 0 #04070f, 0 22px 40px rgba(5,9,20,.35) !important; }
.ds-sessions { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.ds-sessions-in { background: radial-gradient(60% 80% at 100% 0%, rgba(56, 182, 255, .14), transparent 60%), linear-gradient(165deg, #16233f 0%, #0b142a 48%, #060a16 100%) !important;
  border: 1px solid rgba(231, 217, 182, .16) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.14), inset 0 -3px 0 rgba(0,0,0,.35), 0 6px 0 #04070f, 0 22px 40px rgba(5,9,20,.35) !important; }
.ds-sessions .ds-session-date span, .ds-sessions .ds-session-date { color: #1677b8 !important; }

/* Semaine type animée : tête de lecture, bloc actif qui se soulève, reflet qui traverse, carte synchronisée */
.sem-piste { position: relative; }
.sem-tete-lecture { position: absolute; top: -10px; bottom: -10px; left: 0; width: 3px; margin-left: -1.5px; border-radius: 3px; opacity: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, transparent, #fffbe7 18%, #fffbe7 82%, transparent); box-shadow: 0 0 14px 3px rgba(255, 241, 200, .7); transition: opacity .4s; }
.sem-tete-lecture::before { content: ""; position: absolute; top: -7px; left: 50%; width: 11px; height: 11px; margin-left: -5.5px; border-radius: 50%; background: #fffbe7; box-shadow: 0 0 12px #ecc777; }
.sem-lecture .sem-tete-lecture { opacity: 1; }
.sem-bloc { position: relative; transition: flex-basis 1.1s cubic-bezier(.2, .8, .2, 1), transform .45s cubic-bezier(.34, 1.56, .64, 1), filter .45s; }
.sem-bloc::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, .45) 48%, transparent 60%); background-size: 260% 100%; background-position: 130% 0; }
.sem-lecture .sem-bloc::after { animation: sem-reflet 3.2s ease-in-out infinite; animation-delay: calc(var(--k) * .35s); }
@keyframes sem-reflet { 0%, 60% { background-position: 130% 0; } 100% { background-position: -40% 0; } }
.sem-lecture .sem-bloc:not(.sem-actif) { filter: saturate(.75) brightness(.82); }
.sem-bloc.sem-actif { transform: translateY(-7px) scale(1.02); filter: brightness(1.12); z-index: 1; }
.sem-encours { display: flex; align-items: center; gap: 10px; min-height: 22px; margin: 18px 0 0; font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: .04em; color: #f2e4ca; }
.sem-encours i { width: 8px; height: 8px; border-radius: 50%; background: #ecc777; box-shadow: 0 0 0 0 rgba(236, 199, 119, .6); animation: im-pouls 1.6s infinite; }
.sem-encours span:empty + i, .sem-encours:not(:has(span:not(:empty))) i { opacity: 0; }
.week-card { transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .45s, border-color .45s; }
.week-card.sem-actif { transform: translateY(-10px); box-shadow: inset 0 1px 0 rgba(255,255,255,.18), inset 0 -3px 0 rgba(0,0,0,.35), 0 10px 0 #04070f, 0 34px 50px rgba(5,9,20,.45) !important; }
.week-card.sem-actif .sem-ico { animation: sem-saut .9s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes sem-saut { 0% { transform: translateY(0) scale(1); } 35% { transform: translateY(-14px) scale(1.12) rotate(-6deg); } 70% { transform: translateY(2px) scale(.98); } 100% { transform: none; } }
@keyframes im-pouls { 70% { box-shadow: 0 0 0 9px rgba(236, 199, 119, 0); } 100% { box-shadow: 0 0 0 0 rgba(236, 199, 119, 0); } }
@media (max-width: 700px) { .sem-tete-lecture { display: none; } }
@media (prefers-reduced-motion: reduce) { .sem-bloc::after, .sem-encours i { animation: none !important; } }

/* « Ce qui se passe après votre paiement » : frise en encre bleu SAI, étapes illuminées tour à tour */
.rs-etapes.ap-frise { position: relative; overflow: hidden; padding: 34px 32px 28px !important; border-radius: 24px !important;
  background: radial-gradient(70% 80% at 100% 0%, rgba(143, 214, 255, .35), transparent 60%), linear-gradient(165deg, #1580d6 0%, #0d5fa8 45%, #073a6e 100%) !important;
  border: 1px solid rgba(143, 214, 255, .45) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -4px 0 rgba(3, 30, 60, .5), 0 7px 0 #052c55, 0 28px 50px rgba(13, 95, 168, .35) !important; }
.ap-frise h3 { font-family: 'Instrument Serif', Georgia, serif !important; font-size: clamp(28px, 3vw, 38px) !important; color: #fff !important; margin: 0 0 26px !important; }
.ap-frise ol { position: relative; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px !important; }
.ap-fil { position: absolute; left: 12%; right: 12%; top: 44px; height: 4px; border-radius: 4px; background: rgba(255,255,255,.18); z-index: 0; }
.ap-fil::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, #fff1c8, #ecc777, #c9963f);
  transform-origin: left; transform: scaleX(var(--ap, 0)); transition: transform .8s cubic-bezier(.2, .8, .2, 1); box-shadow: 0 0 12px rgba(236, 199, 119, .7); }
.ap-frise ol > li { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
  padding: 0 6px 6px !important; background: none !important; border: 0 !important; box-shadow: none !important; counter-increment: none; }
.ap-frise ol > li::before { display: none !important; }
.ap-ico { width: 92px; height: 92px; padding: 14px; border-radius: 50%; margin-bottom: 6px;
  background: radial-gradient(circle at 35% 28%, #ffffff 0%, #eaf6ff 55%, #b9dcf5 100%);
  box-shadow: inset 0 2px 0 #fff, inset 0 -5px 10px rgba(13, 95, 168, .3), 0 5px 0 #0a4c88, 0 16px 26px rgba(3, 30, 60, .45);
  transition: transform .5s cubic-bezier(.34, 1.56, .64, 1), box-shadow .5s; }
.ap-frise li strong { color: #fff !important; font-size: 17px; }
.ap-frise li span { color: rgba(255, 255, 255, .85) !important; font-size: 14.5px; line-height: 1.55; }
.ap-frise li { transition: opacity .5s; }
.ap-frise li.ap-actif .ap-ico { transform: translateY(-8px) scale(1.1); box-shadow: inset 0 2px 0 #fff, inset 0 -5px 10px rgba(13, 95, 168, .3), 0 5px 0 #0a4c88, 0 0 0 7px rgba(255, 241, 200, .45), 0 22px 30px rgba(3, 30, 60, .5); }
.ap-frise li.ap-actif strong { color: #fff1c8 !important; }
.ap-frise .rs-rappel { margin-top: 24px !important; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.9) !important; text-align: center; }
.ap-frise .rs-rappel b { color: #fff1c8 !important; }
@media (max-width: 760px) { .ap-frise ol { grid-template-columns: 1fr; } .ap-fil { display: none; } .ap-frise ol > li { flex-direction: row; text-align: left; align-items: flex-start; } .ap-ico { width: 64px; height: 64px; padding: 10px; flex: none; } }

/* Offre entreprise : bandeau or encré, objets 3D, bouton nuit et or qui pulse */
.ds-entreprise.ent-or { position: relative; display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 28px; overflow: hidden;
  padding: 34px 34px !important; border-radius: 24px !important;
  background: radial-gradient(70% 120% at 0% 0%, #fffdf6 0%, transparent 60%), linear-gradient(170deg, #fdf6e6 0%, #f4e6c6 100%) !important;
  border: 1px solid #d9bf86 !important;
  box-shadow: inset 0 2px 0 #fff, inset 0 -3px 0 rgba(199, 176, 131, .35), 0 4px 0 #d9bf86, 0 18px 34px rgba(138, 93, 28, .16) !important; }
.ds-entreprise.ent-or, .ds-entreprise.ent-or p, .ds-entreprise.ent-or li { color: #2a1a04 !important; }
.ds-entreprise.ent-or h3 { font-family: 'Instrument Serif', Georgia, serif !important; font-size: clamp(30px, 3vw, 40px) !important; color: #1a1003 !important; }
.ent-or .ds-ent-eyebrow { background: rgba(26, 16, 3, .88) !important; color: #f3dca4 !important; font-family: 'IBM Plex Mono', monospace; letter-spacing: .1em; }
.ent-or li::before { color: #6e4814 !important; }
.ent-objets { position: relative; width: 132px; height: 132px; }
.ent-ico { position: absolute; filter: drop-shadow(0 12px 16px rgba(80, 50, 10, .45)); }
.ent-ico-1 { width: 110px; height: 110px; left: 0; top: 0; animation: ic3d-flotte 6s ease-in-out infinite; }
.ent-ico-2 { width: 64px; height: 64px; right: -6px; bottom: -4px; animation: ic3d-flotte 5s ease-in-out infinite reverse; }
.ent-or .ds-ent-btn { position: relative; padding: 18px 30px !important; border-radius: 14px !important; font-size: 17px !important; font-weight: 700 !important; white-space: nowrap;
  background: linear-gradient(165deg, #2a2418 0%, #12100c 55%, #070605 100%) !important; color: #f3dca4 !important; border: 1px solid rgba(226, 194, 122, .6) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 5px 0 #000, 0 14px 26px rgba(0,0,0,.35) !important; animation: ent-appel 2.6s ease-in-out 1s 3; }
.ent-or .ds-ent-btn:hover { transform: translateY(-2px); }
.ent-or .ds-ent-btn:active { transform: translateY(4px); box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 0 #000, 0 6px 12px rgba(0,0,0,.3) !important; }
@keyframes ent-appel { 0%, 100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 5px 0 #000, 0 14px 26px rgba(0,0,0,.35), 0 0 0 0 rgba(26, 16, 3, .45); }
  60% { box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 5px 0 #000, 0 14px 26px rgba(0,0,0,.35), 0 0 0 12px rgba(26, 16, 3, 0); } }
.ent-or .ds-ent-actions a { color: #2a1a04 !important; font-weight: 700; text-decoration: underline; }
@media (max-width: 900px) { .ds-entreprise.ent-or { grid-template-columns: 1fr; padding: 26px 20px !important; } .ent-objets { width: 96px; height: 96px; } .ent-ico-1 { width: 80px; height: 80px; } .ent-ico-2 { width: 46px; height: 46px; } }
@media (prefers-reduced-motion: reduce) { .ent-ico, .ent-or .ds-ent-btn { animation: none !important; } }

/* Frise : étapes déjà passées restent allumées (anneau or) */
.ap-frise li.ap-fait .ap-ico { box-shadow: inset 0 2px 0 #fff, inset 0 -5px 10px rgba(13, 95, 168, .3), 0 5px 0 #0a4c88, 0 0 0 5px rgba(255, 241, 200, .35), 0 16px 24px rgba(3, 30, 60, .4); }
.ap-frise li.ap-fait strong { color: #fff1c8 !important; }
.ap-frise li .ap-ico { transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s; }

/* Espace entre l'offre entreprise et le bandeau partenaire */
.ds-entreprise.ent-or ~ .ds-partenaire { margin-top: 44px !important; }

/* Résumé « après paiement » au-dessus des formules */
.ap-resume { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 10px; max-width: 980px; margin: 0 auto 26px !important;
  padding: 12px 18px; border-radius: 14px; background: #f3f8fd; border: 1px solid #cfe3f4; font-size: 14px; line-height: 1.4; color: #12324f; }
.ap-resume-tag { font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: #1677b8; font-weight: 500; }
.ap-resume-pas { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.ap-resume-pas + .ap-resume-pas::before { content: ""; width: 14px; height: 2px; border-radius: 2px; background: #c7b083; }
.ap-resume a { color: #1677b8 !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
@media (max-width: 760px) { .ap-resume { flex-direction: column; align-items: flex-start; text-align: left; } .ap-resume .ap-resume-pas::before, .ap-resume .ap-resume-pas + .ap-resume-pas::before { content: "\2713"; display: inline; width: auto; height: auto; background: none; color: #1677b8; } }

/* Semaine type sur mobile : une ligne par bloc (nom à gauche, heures à droite), cartes en 2 colonnes compactes */
@media (max-width: 700px) {
  .sem-barre { padding: 20px 16px 16px; }
  .sem-tete { margin-bottom: 14px; font-size: 11px; }
  .sem-tete b { font-size: 26px; }
  .sem-piste { gap: 10px; }
  .sem-bloc, .sem-on .sem-bloc { height: 46px; padding: 0 14px; align-items: center; font-size: 14px; min-width: 150px; }
  .sem-bloc span { display: flex; width: 100%; align-items: center; justify-content: space-between; flex-direction: row-reverse; gap: 10px; }
  .sem-bloc span b { display: inline; font-size: 19px; margin: 0; }
  .sem-bloc.sem-actif { transform: translateX(6px); }
  .sem-encours { font-size: 12px; margin-top: 14px; }
  html body .week-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  html body .week-grid .week-card { padding: 16px 12px 14px !important; }
  html body .week-grid .week-card .week-icon:has(.sem-ico) { width: 44px; height: 44px; margin: 0 auto 8px; }
  html body .week-grid .week-label { font-size: 14px !important; line-height: 1.3; }
  html body .week-grid .week-detail { font-size: 12px !important; line-height: 1.4; }
  .week-card.sem-actif { transform: translateY(-4px); }
}
.sem-encours em { font-style: normal; }
@media (max-width: 700px) { .sem-encours em { display: none; } }

/* « Après paiement » et « Offre entreprise » à plat : couleurs unies, sans relief ni ombre */
html body .rs-etapes.ap-frise { background: #0d5fa8 !important; border: 0 !important; box-shadow: none !important; }
html body .ap-frise .ap-ico, html body .ap-frise li.ap-actif .ap-ico, html body .ap-frise li.ap-fait .ap-ico { background: #fff; box-shadow: none; }
html body .ap-frise li.ap-actif .ap-ico { transform: scale(1.06); box-shadow: 0 0 0 4px #ecc777; }
html body .ap-frise li.ap-fait .ap-ico { box-shadow: 0 0 0 3px rgba(236, 199, 119, .8); }
html body .ds-entreprise.ent-or { background: #f8eed8 !important; border: 1px solid #e3cf9f !important; box-shadow: none !important; }
html body .ent-or .ds-ent-btn, html body .ent-or .ds-ent-btn:active { background: #14110b !important; border: 0 !important; box-shadow: none !important; animation: none; }
html body .ent-or .ds-ent-btn:hover { transform: none; background: #2a2418 !important; }
html body .ent-or .ds-ent-btn:active { transform: none; }

/* Semaine type du Data Analyst : mini-rapport Power BI (bi-) */
.bi-rapport { --bi-sai: #38b6ff; --bi-or: #d8ad5a; --bi-emeraude: #1fae7f; --bi-nuit: #8fa3c9;
  margin: 8px 0 22px; padding: 0 0 22px; border-radius: 20px; overflow: hidden; color: #fff;
  background: linear-gradient(165deg, #16233f 0%, #0b142a 48%, #060a16 100%); border: 1px solid rgba(231, 217, 182, .14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), inset 0 -3px 0 rgba(0,0,0,.35), 0 8px 0 #04070f, 0 26px 50px rgba(5, 9, 20, .38); }
.bi-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px 22px; background: rgba(255,255,255,.04); border-bottom: 1px solid rgba(255,255,255,.08); }
.bi-logo { display: inline-flex; align-items: flex-end; gap: 2px; height: 18px; }
.bi-logo i { width: 5px; border-radius: 1px; background: #f2c94c; } .bi-logo i:nth-child(1) { height: 8px; } .bi-logo i:nth-child(2) { height: 13px; } .bi-logo i:nth-child(3) { height: 18px; }
.bi-tete b { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: 22px; }
.bi-onglet { font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #f2e4ca; padding: 4px 10px; border-radius: 6px; background: rgba(231,217,182,.1); }
.bi-segment { margin-left: auto; display: flex; flex-wrap: wrap; gap: 4px; }
.bi-segment span { font-family: 'IBM Plex Mono', monospace; font-size: 11px; padding: 4px 7px; border-radius: 6px; color: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.1); transition: background .4s, color .4s; }
.bi-segment span.bi-sel { background: #f2e4ca; color: #1a1003; border-color: transparent; }
.bi-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 18px 22px 0; }
.bi-kpi { --c: var(--bi-sai); position: relative; padding: 14px 16px 12px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-left: 4px solid var(--c); opacity: 0; transform: translateY(10px); transition: opacity .6s, transform .6s, background .4s, filter .4s; transition-delay: calc(var(--k, 0) * .1s); }
.bi-kpi small { display: block; font-size: 12.5px; color: rgba(255,255,255,.65); }
.bi-kpi b { display: block; font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: 30px; line-height: 1.1; margin: 2px 0; }
.bi-kpi span { display: block; font-size: 12px; color: rgba(255,255,255,.5); }
.bi-or { --c: var(--bi-or); } .bi-emeraude { --c: var(--bi-emeraude); } .bi-nuit { --c: var(--bi-nuit); } .bi-sai { --c: var(--bi-sai); }
.bi-corps { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 12px; padding: 12px 22px 0; }
.bi-carte { padding: 16px 18px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); }
.bi-carte h4 { margin: 0 0 14px; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.75); }
.bi-barres { display: grid; gap: 12px; }
.bi-ligne { display: grid; grid-template-columns: 96px minmax(0, 1fr) 70px; gap: 12px; align-items: center; font-size: 13.5px; transition: opacity .4s; }
.bi-ligne em { font-style: normal; text-align: right; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; color: #f2e4ca; }
.bi-piste { position: relative; height: 18px; border-radius: 5px; background: rgba(255,255,255,.05); }
.bi-piste i { position: absolute; top: 0; bottom: 0; left: calc(var(--x, 0) * 100%); width: calc(var(--w) * 100%); border-radius: 5px; background: var(--c);
  transform: scaleX(0); transform-origin: 0 50%; transition: transform 1s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(.3s + var(--k, 0) * .15s); }
.bi-piste i.bi-plage { background: repeating-linear-gradient(45deg, var(--c) 0 4px, transparent 4px 8px); opacity: .55; transition-delay: calc(1.1s + var(--k, 0) * .15s); }
.bi-anneau { position: relative; display: flex; flex-direction: column; }
.bi-anneau svg { width: 100%; max-width: 190px; margin: 0 auto; transform: rotate(-90deg); }
.bi-fond { fill: none; stroke: rgba(255,255,255,.06); stroke-width: 16; }
.bi-arc { fill: none; stroke: var(--c); stroke-width: 16; stroke-dasharray: 0 999; stroke-dashoffset: var(--o); transition: stroke-dasharray 1.1s cubic-bezier(.2, .8, .2, 1), stroke-width .4s, opacity .4s; transition-delay: calc(.4s + var(--k) * .2s); }
.bi-centre { position: absolute; left: 0; right: 0; top: calc(50% + 14px); transform: translateY(-50%); text-align: center; pointer-events: none; }
.bi-centre b { display: block; font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: 26px; line-height: 1; }
.bi-centre span { font-size: 12px; color: rgba(255,255,255,.6); }
.bi-on .bi-kpi { opacity: 1; transform: none; }
.bi-on .bi-piste i { transform: scaleX(1); }
.bi-on .bi-arc { stroke-dasharray: var(--l) 999; }
/* Filtre croisé : l'activité choisie reste vive, les autres s'estompent, comme un clic dans Power BI */
.bi-filtre .bi-kpi:not(.bi-actif) { filter: saturate(.4) brightness(.7); }
.bi-filtre .bi-kpi.bi-actif { background: rgba(255,255,255,.08); transform: translateY(-3px); }
.bi-filtre .bi-ligne:not(.bi-actif) { opacity: .4; }
.bi-filtre .bi-arc:not(.bi-actif) { opacity: .3; }
.bi-filtre .bi-arc.bi-actif { stroke-width: 20; }
@media (max-width: 760px) {
  .bi-tete { padding: 12px 16px; } .bi-segment { margin-left: 0; width: 100%; }
  .bi-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px 16px 0; gap: 10px; }
  .bi-kpi b { font-size: 24px; } .bi-kpi span { display: none; }
  .bi-corps { grid-template-columns: 1fr; padding: 10px 16px 0; }
  .bi-ligne { grid-template-columns: 74px minmax(0, 1fr) 58px; font-size: 12.5px; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) { .bi-kpi, .bi-piste i, .bi-arc { transition: none !important; } }

/* Icônes 3D des tuiles du rapport Power BI (Data Analyst) */
.bi-kpi { padding-right: 64px !important; }
.bi-ico { position: absolute; right: 10px; top: 50%; width: 50px; height: 50px; transform: translateY(-50%); filter: drop-shadow(0 8px 10px rgba(0,0,0,.45)); animation: ic3d-flotte 6s ease-in-out infinite; }
.bi-filtre .bi-kpi.bi-actif .bi-ico { animation: sem-saut .9s cubic-bezier(.34, 1.56, .64, 1); }

/* AI Engineering : pipeline de déploiement (pl-) */
.pl-run { margin: 8px 0 22px; border-radius: 20px; overflow: hidden; color: #fff; background: linear-gradient(165deg, #16233f 0%, #0b142a 48%, #060a16 100%);
  border: 1px solid rgba(231, 217, 182, .14); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), inset 0 -3px 0 rgba(0,0,0,.35), 0 8px 0 #04070f, 0 26px 50px rgba(5, 9, 20, .38); }
.pl-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 13px 22px; background: rgba(255,255,255,.04); border-bottom: 1px solid rgba(255,255,255,.08); font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; }
.pl-points { display: inline-flex; gap: 6px; } .pl-points i { width: 10px; height: 10px; border-radius: 50%; background: #e0605a; } .pl-points i:nth-child(2) { background: #e6b450; } .pl-points i:nth-child(3) { background: #1fae7f; }
.pl-tete code { color: #f2e4ca; font-size: 13px; }
.pl-num { color: rgba(255,255,255,.65); } .pl-num b { color: #fff; }
.pl-total { margin-left: auto; color: #8fd6ff; }
.pl-etapes { display: flex; align-items: flex-start; padding: 26px 22px 6px; }
.pl-etape { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.pl-boite { position: relative; width: 92px; height: 92px; margin-bottom: 8px; border-radius: 22px; display: grid; place-items: center;
  background: linear-gradient(170deg, #22304f 0%, #121b33 100%); border: 1px solid rgba(255,255,255,.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 6px 0 #04070f, 0 16px 26px rgba(0,0,0,.4); transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .4s; }
.pl-ico { width: 62px; height: 62px; filter: drop-shadow(0 8px 10px rgba(0,0,0,.5)) grayscale(.5) brightness(.8); transition: filter .5s; }
.pl-statut { position: absolute; right: -8px; top: -8px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 14px; font-weight: 700;
  background: #2a3756; color: rgba(255,255,255,.7); box-shadow: 0 0 0 3px #0b142a; }
.pl-statut::before { content: "\2022\2022\2022"; font-size: 9px; letter-spacing: 1px; }
.pl-etape b { font-size: 15px; } .pl-etape em { font-style: normal; font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: #f2e4ca; } .pl-etape small { font-size: 12px; color: rgba(255,255,255,.55); }
.pl-encours .pl-boite { transform: translateY(-6px); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 6px 0 #04070f, 0 0 0 3px rgba(236, 199, 119, .55), 0 22px 30px rgba(0,0,0,.45); }
.pl-encours .pl-ico, .pl-ok .pl-ico { filter: drop-shadow(0 8px 10px rgba(0,0,0,.5)); }
.pl-encours .pl-statut { background: #ecc777; color: #1a1003; }
.pl-encours .pl-statut::before { content: ""; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #1a1003; border-right-color: transparent; animation: pl-tourne .8s linear infinite; }
.pl-ok .pl-statut { background: #1fae7f; color: #fff; } .pl-ok .pl-statut::before { content: "\2713"; font-size: 14px; letter-spacing: 0; }
@keyframes pl-tourne { to { transform: rotate(360deg); } }
.pl-lien { flex: 0 0 34px; height: 4px; margin-top: 44px; border-radius: 4px; background: rgba(255,255,255,.1); overflow: hidden; }
.pl-lien i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, #1fae7f, #8fd6ff); transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.2s ease; }
.pl-lien.pl-plein i { transform: scaleX(1); }
.pl-journal { margin: 16px 22px 20px; padding: 12px 16px; min-height: 92px; border-radius: 10px; background: #04070f; border: 1px solid rgba(255,255,255,.08);
  font: 12.5px/1.6 'IBM Plex Mono', monospace; color: #9fe0c4; white-space: pre-wrap; }
.anim-fin .pl-statut { background: #1fae7f; } .anim-fin .pl-statut::before { content: "\2713"; } .anim-fin .pl-lien i { transform: none; }

/* AI Business Accelerator : workflow sans code (wf-) */
.wf-canvas { margin: 8px 0 22px; border-radius: 20px; overflow: hidden; color: #fff; border: 1px solid rgba(231, 217, 182, .14);
  background: radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1.5px) 0 0 / 22px 22px, linear-gradient(165deg, #16233f 0%, #0b142a 48%, #060a16 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), inset 0 -3px 0 rgba(0,0,0,.35), 0 8px 0 #04070f, 0 26px 50px rgba(5, 9, 20, .38); }
.wf-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 13px 22px; background: rgba(6, 10, 22, .7); border-bottom: 1px solid rgba(255,255,255,.08); }
.wf-tete > b { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: 22px; }
.wf-exec { font-family: 'IBM Plex Mono', monospace; font-size: 12px; padding: 4px 10px; border-radius: 6px; background: rgba(31, 174, 127, .15); color: #9fe0c4; } .wf-exec b { color: #fff; }
.wf-total { margin-left: auto; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; color: #f2e4ca; }
.wf-noeuds { display: flex; align-items: flex-start; padding: 30px 18px 26px; }
.wf-noeud { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 3px; }
.wf-boite { position: relative; width: 84px; height: 84px; margin-bottom: 8px; border-radius: 20px; display: grid; place-items: center; background: linear-gradient(170deg, #fffdf6, #efe3c8);
  box-shadow: inset 0 2px 0 #fff, inset 0 -3px 0 rgba(199, 176, 131, .45), 0 6px 0 #a8895a, 0 16px 24px rgba(0,0,0,.4); transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .4s; }
.wf-depart .wf-boite, .wf-arrivee .wf-boite { border-radius: 50%; }
.wf-ico { width: 56px; height: 56px; filter: drop-shadow(0 6px 8px rgba(80, 50, 10, .35)); }
.wf-ok { position: absolute; right: -7px; top: -7px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 700;
  background: #1fae7f; color: #fff; box-shadow: 0 0 0 3px #0b142a; transform: scale(0); transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.wf-noeud b { font-size: 14px; line-height: 1.3; } .wf-noeud em { font-style: normal; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; color: #f2e4ca; } .wf-noeud small { font-size: 11.5px; color: rgba(255,255,255,.55); }
.wf-actif .wf-boite { transform: translateY(-7px) scale(1.06); box-shadow: inset 0 2px 0 #fff, inset 0 -3px 0 rgba(199, 176, 131, .45), 0 6px 0 #a8895a, 0 0 0 4px rgba(56, 182, 255, .55), 0 24px 32px rgba(0,0,0,.45); }
.wf-fait .wf-ok { transform: scale(1); }
.wf-lien { position: relative; flex: 0 0 26px; height: 2px; margin-top: 42px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.3) 0 5px, transparent 5px 9px); }
.wf-lien i { position: absolute; left: 0; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: #38b6ff; box-shadow: 0 0 10px #38b6ff; opacity: 0; }
.wf-lien.wf-flux i { animation: wf-flux 1.1s ease-in-out forwards; }
@keyframes wf-flux { 0% { left: 0; opacity: 1; } 90% { opacity: 1; } 100% { left: calc(100% - 10px); opacity: 0; } }
.anim-fin .wf-ok { transform: scale(1); }

@media (max-width: 760px) {
  .pl-etapes, .wf-noeuds { flex-direction: column; align-items: stretch; padding: 18px 16px 4px; }
  .pl-etape, .wf-noeud { flex-direction: row; text-align: left; align-items: center; gap: 12px; flex-wrap: wrap; }
  .pl-etape > b, .wf-noeud > b { flex: 1; }
  .pl-etape small, .wf-noeud small { width: 100%; padding-left: 76px; margin-top: -10px; }
  .pl-boite, .wf-boite { width: 62px; height: 62px; margin: 0; border-radius: 16px; } .pl-ico, .wf-ico { width: 42px; height: 42px; }
  .pl-lien, .wf-lien { flex: 0 0 18px; width: 3px; height: 18px; margin: 4px 0 4px 30px; }
  .wf-lien { background: repeating-linear-gradient(180deg, rgba(255,255,255,.3) 0 4px, transparent 4px 8px); }
  .wf-lien.wf-flux i { animation: none; }
  .pl-journal { margin: 12px 16px 16px; }
  .wf-total, .pl-total { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .bi-ico { animation: none; } .pl-encours .pl-statut::before { animation: none; } }
