/* ============================================================
   ACCUEIL v3 — page d'accueil publique (essai)
   Reprend la charte du jeu (jeu/css/charte-v3.css) : bleu nuit, or champagne,
   bleu glacier, violet pour l'appel à l'action ; Saira / Inter / IBM Plex Mono ;
   coins chanfreinés. Bootstrap 5 ne sert qu'à la grille, la navbar et la modale.
   ============================================================ */

:root {
    --v3-fond:       #060a14;
    --v3-surf-a:     rgba(17, 27, 46, 0.88);
    --v3-surf-b:     rgba(7, 12, 24, 0.92);
    --v3-ligne:      rgba(150, 175, 210, 0.13);

    --v3-texte:      #e4eaf2;
    --v3-texte-2:    #aebbcc;
    --v3-texte-3:    #8394aa;

    --v3-or:         #d6b46e;
    --v3-or-clair:   #f2dfae;
    --v3-or-ligne:   rgba(214, 180, 110, 0.38);
    --v3-or-faible:  rgba(214, 180, 110, 0.12);
    --v3-glacier:    #7ccbf2;
    --v3-violet:     #9a7cff;

    --v3-c-cyan:     #4fc3f7;
    --v3-c-vert:     #62d6a0;
    --v3-c-rouge:    #ef7070;
    --v3-c-violet:   #a68cff;
    --v3-c-or:       #d6b46e;
    --v3-c-glacier:  #7ccbf2;

    --v3-f-titre:    'Saira', 'Segoe UI', sans-serif;
    --v3-f-texte:    'Inter', 'Segoe UI', system-ui, sans-serif;
    --v3-f-mono:     'IBM Plex Mono', Consolas, monospace;

    --ac-chanfrein:  14px;
    --ac-nav-h:      68px;

    /* Bootstrap aux couleurs de la charte */
    --bs-body-bg: var(--v3-fond);
    --bs-body-color: var(--v3-texte);
    --bs-body-font-family: var(--v3-f-texte);
    --bs-link-color-rgb: 124, 203, 242;
    --bs-link-hover-color-rgb: 179, 226, 250;
    --bs-border-color: var(--v3-ligne);
}
[data-bs-theme=dark] { --bs-body-bg: var(--v3-fond); --bs-body-color: var(--v3-texte); }

html { scroll-behavior: smooth; scroll-padding-top: var(--ac-nav-h); }
body { background: var(--v3-fond); color: var(--v3-texte); font-size: 15px; line-height: 1.6; }
a { text-decoration: none; }
img { max-width: 100%; height: auto; }

/* ---- titres communs ---------------------------------------- */
.ac-surtitre { font-family: var(--v3-f-titre); font-size: 12.5px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; color: var(--v3-or); margin: 0 0 10px; }
.ac-h2 { font-family: var(--v3-f-titre); font-stretch: 112%; font-weight: 400; font-size: clamp(26px, 3.4vw, 40px); letter-spacing: .02em; line-height: 1.15; color: var(--v3-texte); margin: 0; }
.ac-h3 { font-family: var(--v3-f-titre); font-weight: 500; font-size: 17px; letter-spacing: .04em; color: var(--v3-texte); margin: 0 0 10px; }
.ac-h3 .fa { color: var(--acc, var(--v3-or)); margin-right: 6px; }
.ac-intro { color: var(--v3-texte-2); max-width: 640px; margin: 14px auto 0; }
.ac-entete { text-align: center; margin-bottom: 44px; }

/* ---- boutons ----------------------------------------------- */
.ac-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 9px 18px; border: 1px solid transparent; border-radius: 0;
    font-family: var(--v3-f-titre); font-weight: 500; font-size: 14px; letter-spacing: .06em;
    color: var(--v3-texte); background: transparent; cursor: pointer;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.ac-btn-cta { background: linear-gradient(135deg, #8c6cff, #6a4ee0); color: #fff; box-shadow: 0 0 24px rgba(154, 124, 255, .25); }
.ac-btn-cta:hover { color: #fff; background: linear-gradient(135deg, #a28aff, #7a5ef0); box-shadow: 0 0 32px rgba(154, 124, 255, .45); transform: translateY(-1px); }
.ac-btn-ligne { border-color: var(--v3-or-ligne); color: var(--v3-or-clair); }
.ac-btn-ligne:hover { background: var(--v3-or-faible); border-color: var(--v3-or); color: var(--v3-or-clair); }
.ac-btn-grand { padding: 13px 26px; font-size: 15.5px; }
.ac-btn:focus-visible, .ac-onglet:focus-visible, .ac-lieu:focus-visible { outline: 2px solid var(--v3-glacier); outline-offset: 3px; }

/* ---- navigation -------------------------------------------- */
.ac-nav { min-height: var(--ac-nav-h); transition: background .3s, box-shadow .3s, backdrop-filter .3s; }
.ac-nav.defile, .ac-nav:has(.navbar-collapse.show), .ac-nav:has(.collapsing) {
    background: rgba(6, 10, 20, .86); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 var(--v3-ligne), 0 10px 30px rgba(0, 0, 0, .4);
}
.ac-nav .navbar-brand img { height: 45px; width: auto; }
.ac-nav .nav-link { font-family: var(--v3-f-titre); font-size: 14.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-texte-2); padding: 8px 14px !important; }
.ac-nav .nav-link:hover, .ac-nav .nav-link:focus, .ac-nav .nav-link.show { color: var(--v3-or-clair); }
.ac-nav .navbar-toggler { border: 1px solid var(--v3-or-ligne); border-radius: 0; color: var(--v3-or-clair); padding: 6px 12px; font-size: 18px; }
.ac-nav .navbar-toggler:focus { box-shadow: none; outline: 2px solid var(--v3-glacier); }
.ac-nav .dropdown-menu { background: rgba(8, 13, 26, .97); border: 1px solid var(--v3-or-ligne); border-radius: 0; padding: 6px 0; box-shadow: 0 16px 40px rgba(0, 0, 0, .6); }
.ac-nav .dropdown-item { color: var(--v3-texte-2); font-size: 14px; padding: 7px 18px; }
.ac-nav .dropdown-item:hover, .ac-nav .dropdown-item:focus { background: var(--v3-or-faible); color: var(--v3-or-clair); }
.ac-nav .dropdown-divider { border-color: var(--v3-ligne); }
.ac-nav-actions { display: flex; gap: 10px; align-items: center; }
@media (max-width: 991.98px) {
    .ac-nav .navbar-collapse { padding: 10px 0 18px; }
    .ac-nav-actions { margin-top: 10px; }
    .ac-nav-actions .ac-btn { flex: 1; }
}

/* ---- ouverture --------------------------------------------- */
.ac-hero {
    /* image par défaut : déclarée ici, son adresse se lit depuis ce fichier, quelle que soit la page */
    --fond: url("fond-flotte.webp"); --fond-m: url("fond-flotte-m.webp");
    position: relative; min-height: 100vh; min-height: 100svh;
    display: flex; align-items: center;
    padding: calc(var(--ac-nav-h) + 40px) 0 80px;
    overflow: hidden; isolation: isolate;
}
.ac-hero::before { /* l'illustration de la flotte, qui dérive lentement */
    content: ""; position: absolute; inset: -4%; z-index: -2;
    background: var(--fond) center / cover no-repeat;
    opacity: .92;
    animation: ac-derive 40s ease-in-out infinite alternate;
}
.ac-hero::after { /* voile de lisibilité derrière le texte seulement, fondu vers le bas de page */
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
        linear-gradient(90deg, rgba(6, 10, 20, .88) 0%, rgba(6, 10, 20, .6) 32%, rgba(6, 10, 20, .12) 62%, transparent 100%),
        linear-gradient(0deg, var(--v3-fond) 0%, transparent 22%);
}
@media (max-width: 991.98px) { /* le texte couvre toute la largeur : voile uniforme, image allégée */
    .ac-hero::before { background-image: var(--fond-m, var(--fond)); background-position: 58% center; }
    .ac-hero::after { background: linear-gradient(180deg, rgba(6, 10, 20, .55), rgba(6, 10, 20, .7) 60%, var(--v3-fond) 100%); }
}
.ac-hero .container { text-shadow: 0 1px 14px rgba(6, 10, 20, .9); } /* le texte passe sur la coque du vaisseau */
.ac-hero .ac-titre { text-shadow: none; }
@keyframes ac-derive { from { transform: scale(1) translate(0, 0); } to { transform: scale(1.08) translate(-1.5%, 1%); } }

.ac-titre {
    font-family: var(--v3-f-titre); font-stretch: 125%; font-weight: 300;
    font-size: clamp(40px, 6.4vw, 88px); letter-spacing: .08em; white-space: nowrap; line-height: 1; text-transform: uppercase; margin: 0;
    background: linear-gradient(180deg, var(--v3-or-clair) 10%, var(--v3-or) 55%, #a87b35 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ac-devise { font-family: var(--v3-f-titre); font-weight: 500; font-size: clamp(14px, 1.6vw, 18px); letter-spacing: .3em; text-transform: uppercase; color: var(--v3-texte); margin: 14px 0 22px; }
.ac-pitch { font-size: 17px; color: var(--v3-texte-2); max-width: 520px; margin-bottom: 30px; }
.ac-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 34px; }
.ac-puces { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13.5px; color: var(--v3-texte-3); }
.ac-puces li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; vertical-align: 2px; background: var(--v3-or); transform: rotate(45deg); }
.ac-puces b { font-family: var(--v3-f-mono); font-weight: 500; color: var(--v3-or-clair); }

/* le Radiant Primaire */
.ac-radiant { position: relative; aspect-ratio: 1; max-width: 560px; margin: 0 auto; }
@media (max-width: 991.98px) { .ac-radiant { max-width: 440px; } }
.ac-radiant canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ac-seldon {
    position: absolute; left: 50%; top: 50%; width: 46%; transform: translate(-50%, -52%);
    mix-blend-mode: screen; opacity: .92;
    -webkit-mask-image: radial-gradient(ellipse 60% 62% at 50% 48%, #000 55%, transparent 100%);
    mask-image: radial-gradient(ellipse 60% 62% at 50% 48%, #000 55%, transparent 100%);
    animation: ac-holo 6s ease-in-out infinite;
}
@keyframes ac-holo {
    0%, 100% { opacity: .92; filter: none; }
    47% { opacity: .92; } 48% { opacity: .6; filter: hue-rotate(-10deg); } 49% { opacity: .95; }
    50% { transform: translate(-50%, -53%); }
}
.ac-radiant-legende {
    position: absolute; left: 50%; bottom: 3%; transform: translateX(-50%);
    display: flex; align-items: baseline; gap: 10px; white-space: nowrap;
    padding: 7px 16px; background: rgba(6, 10, 20, .7); border: 1px solid var(--v3-or-ligne);
    font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--v3-texte-2);
}
.ac-radiant-legende b { font-family: var(--v3-f-mono); font-size: 17px; font-weight: 500; letter-spacing: 0; color: var(--v3-or-clair); }

.ac-defiler { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); color: var(--v3-or); font-size: 28px; opacity: .7; animation: ac-rebond 2.4s ease-in-out infinite; }
.ac-defiler:hover { color: var(--v3-or-clair); opacity: 1; }
@keyframes ac-rebond { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 8px); } }

/* ---- sections ---------------------------------------------- */
.ac-section { padding: 96px 0; position: relative; }
.ac-section-sombre { background: linear-gradient(180deg, rgba(10, 17, 32, .9), rgba(6, 10, 20, .9)); border-block: 1px solid var(--v3-ligne); }

/* apparition au défilement (classe posée par accueil.js) */
.ac-revele { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.ac-revele.visible { opacity: 1; transform: none; }

/* ---- les familles ------------------------------------------ */
.ac-onglets { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-bottom: 26px; }
.ac-onglet {
    --acc: var(--v3-or);
    display: flex; align-items: baseline; gap: 8px;
    padding: 10px 18px; background: var(--v3-surf-b); border: 1px solid var(--v3-ligne); border-radius: 0;
    font-family: var(--v3-f-titre); font-size: 15px; letter-spacing: .05em; color: var(--v3-texte-2);
    transition: color .2s, border-color .2s, background .2s;
}
.ac-onglet-num { font-family: var(--v3-f-mono); font-size: 11px; color: var(--v3-texte-3); }
.ac-onglet:hover { color: var(--v3-texte); border-color: color-mix(in srgb, var(--acc) 50%, transparent); }
.ac-onglet[aria-selected="true"] { color: var(--acc); border-color: var(--acc); background: color-mix(in srgb, var(--acc) 10%, var(--v3-surf-b)); }
.ac-onglet[aria-selected="true"] .ac-onglet-num { color: var(--acc); }
.ac-onglet.secret { --acc: var(--v3-texte-3); border-style: dashed; }

.ac-famille {
    --acc: var(--v3-or);
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    background: var(--v3-surf-a); border: 1px solid color-mix(in srgb, var(--acc) 35%, transparent);
    clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px));
    min-height: 380px;
}
.ac-famille:not([hidden]) { animation: ac-apparait .5s ease; }
@keyframes ac-apparait { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
.ac-famille-image { position: relative; overflow: hidden; background: var(--v3-fond); }
.ac-famille-image img { width: 100%; height: 100%; object-fit: cover; }
.ac-famille-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, var(--v3-surf-a)); }
.ac-famille-texte { padding: 44px 44px 40px; display: flex; flex-direction: column; justify-content: center; }
.ac-famille-missions { font-family: var(--v3-f-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--acc); margin: 0 0 8px; }
.ac-famille h3 { font-family: var(--v3-f-titre); font-stretch: 115%; font-weight: 400; font-size: clamp(28px, 3vw, 38px); letter-spacing: .04em; color: var(--v3-texte); margin: 0 0 16px; }
.ac-famille-texte > p { color: var(--v3-texte-2); font-size: 15.5px; }
.ac-famille-nb { margin: 10px 0 0; padding-top: 16px; border-top: 1px solid var(--v3-ligne); font-size: 13.5px; color: var(--v3-texte-3) !important; }
.ac-famille-nb b { font-family: var(--v3-f-mono); font-size: 22px; font-weight: 500; color: var(--acc); margin-right: 4px; }
.ac-famille.secret { --acc: var(--v3-texte-3); border-style: dashed; }
.ac-famille.secret .ac-famille-image { display: flex; align-items: center; justify-content: center; font-size: 120px; color: rgba(131, 148, 170, .18);
    background: repeating-linear-gradient(135deg, rgba(150, 175, 210, .04) 0 12px, transparent 12px 24px), var(--v3-fond); }
@media (max-width: 767.98px) {
    .ac-famille { grid-template-columns: 1fr; }
    .ac-famille-image { aspect-ratio: 16 / 9; }
    .ac-famille-image::after { background: linear-gradient(180deg, transparent 55%, var(--v3-surf-a)); }
    .ac-famille-texte { padding: 26px 22px 30px; }
    .ac-onglet { padding: 8px 12px; font-size: 14px; }
}

/* ---- mosaïque des lieux ------------------------------------ */
.ac-mosaique { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; gap: 12px; }
.ac-lieu:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.ac-lieu:nth-child(4) { grid-column: span 2; }
.ac-lieu {
    position: relative; margin: 0; overflow: hidden; background: var(--v3-surf-b); border: 1px solid var(--v3-ligne);
    clip-path: polygon(0 0, calc(100% - var(--ac-chanfrein)) 0, 100% var(--ac-chanfrein), 100% 100%, 0 100%);
    transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
    transition: transform .25s ease, border-color .3s;
}
.ac-lieu img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease, filter .6s; filter: saturate(.9); }
.ac-lieu figcaption {
    position: absolute; inset: auto 0 0 0; padding: 40px 18px 16px;
    background: linear-gradient(0deg, rgba(6, 10, 20, .95) 0%, rgba(6, 10, 20, .7) 55%, transparent 100%);
}
.ac-lieu figcaption b { display: block; font-family: var(--v3-f-titre); font-weight: 500; font-size: 16px; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-or-clair); }
.ac-lieu figcaption span { display: block; max-height: 0; overflow: hidden; opacity: 0; font-size: 13.5px; color: var(--v3-texte-2); transition: max-height .5s ease, opacity .4s ease, margin .4s; }
.ac-lieu:hover, .ac-lieu:focus-visible { border-color: var(--v3-or-ligne); }
.ac-lieu:hover img, .ac-lieu:focus-visible img { transform: scale(1.06); filter: saturate(1.1); }
.ac-lieu:hover figcaption span, .ac-lieu:focus-visible figcaption span { max-height: 90px; opacity: 1; margin-top: 4px; }
@media (max-width: 991.98px) {
    .ac-mosaique { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
}
@media (max-width: 575.98px) {
    .ac-mosaique { grid-template-columns: 1fr; grid-auto-rows: 210px; }
    .ac-lieu:nth-child(1) { grid-column: auto; grid-row: span 1; }
    .ac-lieu figcaption span { max-height: 90px; opacity: 1; margin-top: 4px; } /* pas de survol au doigt */
}

/* ---- cartes « en direct » ---------------------------------- */
.ac-carte {
    --acc: var(--v3-or);
    height: 100%; padding: 26px 26px 24px; background: var(--v3-surf-a);
    border: 1px solid var(--v3-ligne); border-top: 2px solid var(--acc);
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--ac-chanfrein)), calc(100% - var(--ac-chanfrein)) 100%, 0 100%);
}
.ac-carte p { color: var(--v3-texte-2); font-size: 14.5px; }
.ac-courbe { display: block; width: 100%; height: 110px; margin-top: 8px; overflow: visible; }
.ac-courbe .ligne { fill: none; stroke: var(--v3-c-violet); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.ac-courbe .aire { fill: color-mix(in srgb, var(--v3-c-violet) 16%, transparent); }
.ac-courbe-valeur { margin: 12px 0 0; }
.ac-courbe-valeur b { font-family: var(--v3-f-mono); font-size: 24px; font-weight: 500; color: var(--v3-c-violet); margin-right: 4px; }
.ac-barres { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 18px; }
.ac-barres li { display: grid; grid-template-columns: 1fr auto; row-gap: 6px; font-size: 14px; color: var(--v3-texte-2); }
.ac-barres b { font-family: var(--v3-f-mono); font-weight: 500; color: var(--acc); }
.ac-barres i { grid-column: 1 / -1; height: 4px; background: rgba(150, 175, 210, .1); position: relative; overflow: hidden; }
.ac-barres i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--part); background: var(--acc); box-shadow: 0 0 10px var(--acc); transform-origin: left; transform: scaleX(0); transition: transform 1.6s cubic-bezier(.2, .8, .2, 1); }
.visible .ac-barres i::after, .ac-barres.visible i::after { transform: scaleX(1); }
.ac-news { padding: 10px 0; border-bottom: 1px solid var(--v3-ligne); }
.ac-news b { font-family: var(--v3-f-titre); font-weight: 500; color: var(--v3-or-clair); }
.ac-news p { margin: 4px 0 0; font-size: 14px; }
.ac-lien { display: inline-block; margin-top: 14px; font-size: 14px; color: var(--v3-glacier); }
.ac-lien:hover { color: #b3e2fa; }

/* ---- citations --------------------------------------------- */
.ac-citation { height: 100%; margin: 0; padding: 30px 32px; background: var(--v3-surf-b); border-left: 2px solid var(--v3-or); position: relative; }
.ac-citation::before { content: "\201C"; position: absolute; top: -8px; right: 22px; font-family: Georgia, serif; font-size: 110px; line-height: 1; color: var(--v3-or-faible); }
.ac-citation p { font-size: 17px; font-style: italic; color: var(--v3-texte); }
.ac-citation footer { display: flex; align-items: center; gap: 12px; font-family: var(--v3-f-titre); letter-spacing: .1em; text-transform: uppercase; font-size: 13px; color: var(--v3-or); }
.ac-citation footer img { height: 34px; width: auto; border-radius: 2px; }

/* ---- appel final ------------------------------------------- */
.ac-final { padding: 100px 0 110px; text-align: center; background: radial-gradient(ellipse at 50% 100%, rgba(154, 124, 255, .16), transparent 60%); }
.ac-final .ac-h2 { margin: 0 0 30px; }
.ac-sun-tzu { font-style: italic; color: var(--v3-texte-3); margin-bottom: 16px; }
.ac-sun-tzu span { font-style: normal; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--v3-or); margin-left: 8px; }

/* ---- pied de page ------------------------------------------ */
.ac-pied { padding: 50px 0 40px; background: #03060d; border-top: 1px solid var(--v3-ligne); font-size: 14px; color: var(--v3-texte-3); }
.ac-pied img { height: 40px; width: auto; margin-bottom: 14px; }
.ac-pied ul { list-style: none; padding: 0; margin: 0; }
.ac-pied li { margin-bottom: 6px; }
.ac-pied a { color: var(--v3-texte-2); }
.ac-pied a:hover { color: var(--v3-or-clair); }
.ac-reseaux a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin-right: 6px; border: 1px solid var(--v3-ligne); font-size: 16px; }
.ac-reseaux a:hover { border-color: var(--v3-or-ligne); }
.ac-copy { font-family: var(--v3-f-titre); letter-spacing: .1em; text-transform: uppercase; font-size: 12.5px; }

/* ---- connexion --------------------------------------------- */
.ac-modal .modal-content { background: rgba(10, 16, 30, .98); border: 1px solid var(--v3-or-ligne); border-radius: 0; box-shadow: 0 30px 80px rgba(0, 0, 0, .7), 0 0 60px rgba(154, 124, 255, .08); }
.ac-modal .modal-header { border-bottom: 1px solid var(--v3-ligne); padding: 18px 24px; }
.ac-modal .modal-title { font-family: var(--v3-f-titre); font-weight: 400; font-size: 20px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-or-clair); }
.ac-modal .modal-title .fa { color: var(--v3-or); margin-right: 6px; }
.ac-modal .modal-body { padding: 22px 24px 26px; }
.ac-modal .form-label, .ac-form .form-label { font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-texte-3); margin: 0 0 6px; }
.ac-modal .form-control, .ac-form .form-control { background: var(--v3-surf-b); border: 1px solid var(--v3-ligne); border-radius: 0; color: var(--v3-texte); padding: 10px 12px; margin-bottom: 16px; }
.ac-modal .form-control::placeholder, .ac-form .form-control::placeholder { color: var(--v3-texte-3); opacity: .7; }
.ac-modal .form-control:focus, .ac-form .form-control:focus { border-color: var(--v3-glacier); box-shadow: 0 0 0 3px rgba(124, 203, 242, .15); }
.ac-modal .ac-btn-cta { padding: 12px; margin-top: 4px; }
.ac-modal-liens { margin: 14px 0 0; text-align: center; font-size: 13.5px; color: var(--v3-texte-3); }
.ac-erreur { padding: 10px 14px; margin-bottom: 18px; border-left: 2px solid var(--v3-c-rouge); background: rgba(239, 112, 112, .1); color: #f6b3b3; font-size: 14px; }
.ac-separateur { display: flex; align-items: center; gap: 12px; margin: 18px 0; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--v3-texte-3); }
.ac-separateur::before, .ac-separateur::after { content: ""; flex: 1; height: 1px; background: var(--v3-ligne); }
.ac-google { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 10px; background: #fff; color: #1f1f1f; font-weight: 500; font-size: 14.5px; }
.ac-google:hover { background: #eef1f6; color: #1f1f1f; }
.ac-google svg { width: 18px; height: 18px; }

/* ---- inscription ------------------------------------------- */
.ac-insc { align-items: flex-start; }
@media (min-width: 992px) { .ac-insc { align-items: center; } }
.ac-h1 { font-family: var(--v3-f-titre); font-stretch: 112%; font-weight: 300; font-size: clamp(32px, 4.4vw, 56px); line-height: 1.1; letter-spacing: .02em; color: var(--v3-texte); margin: 0 0 20px; }
.ac-h1 b { font-family: var(--v3-f-mono); font-weight: 500; color: var(--v3-or-clair); }
.ac-insc-atouts { list-style: none; padding: 0; margin: 0 0 30px; display: grid; gap: 8px; color: var(--v3-texte-2); }
.ac-insc-atouts .fa { width: 22px; color: var(--v3-or); }
.ac-insc-derniers p { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--v3-texte-3); margin-bottom: 10px; }
.ac-insc-derniers ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ac-insc-derniers li { font-family: var(--v3-f-mono); font-size: 13px; padding: 3px 10px; color: var(--v3-c-glacier); background: rgba(124, 203, 242, .07); border: 1px solid rgba(124, 203, 242, .2); text-shadow: none; }

.ac-insc-carte {
    padding: 26px 30px 24px; background: rgba(8, 13, 26, .9);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border: 1px solid var(--v3-or-ligne); border-top: 2px solid var(--v3-or);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55), 0 0 60px rgba(154, 124, 255, .08);
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--ac-chanfrein)), calc(100% - var(--ac-chanfrein)) 100%, 0 100%);
    text-shadow: none;
}
@media (max-width: 575.98px) { .ac-insc-carte { padding: 22px 18px 20px; } }
.ac-insc-titre { font-family: var(--v3-f-titre); font-weight: 400; font-size: 22px; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-or-clair); margin: 0 0 18px; }

/* les 3 étapes */
.ac-etapes { list-style: none; padding: 0; margin: 0 0 24px; display: flex; counter-reset: etape; }
.ac-etapes li { flex: 1; display: flex; align-items: center; gap: 12px; font-family: var(--v3-f-titre); font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--v3-texte-3); }
.ac-etapes li:not(:last-child)::after { content: ""; flex: 1; height: 1px; margin: 0 8px; background: var(--v3-ligne); }
.ac-etapes span { margin-left: 5px; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border: 1px solid var(--v3-ligne); font-family: var(--v3-f-mono); font-size: 0; letter-spacing: 0; transform: rotate(45deg); }
.ac-etapes span::before { counter-increment: etape; content: counter(etape); display: inline-block; font-size: 12.5px; transform: rotate(-45deg); } /* le numéro, redressé dans le losange */
.ac-etapes .en-cours { color: var(--v3-or-clair); }
.ac-etapes .en-cours span { border-color: var(--v3-or); background: var(--v3-or-faible); box-shadow: 0 0 14px rgba(214, 180, 110, .3); }
.ac-etapes .fait { color: var(--v3-c-vert); }
.ac-etapes .fait span { border-color: var(--v3-c-vert); }
.ac-etapes .fait span::before { content: "\2713"; }
.ac-etapes .fait::after { background: var(--v3-c-vert) !important; opacity: .5; }

@media (max-width: 575.98px) {
    .ac-etapes li { gap: 8px; font-size: 11px; letter-spacing: .06em; }
    .ac-etapes li:not(:last-child)::after { margin: 0 4px; }
}

/* formulaire */
.ac-aide { margin: -10px 0 14px; font-size: 13px; color: var(--v3-texte-3); }
.ac-champ-erreur { margin: -10px 0 14px; font-size: 13px; color: #f6b3b3; }
.ac-form .form-control.is-invalid { border-color: var(--v3-c-rouge); background-image: none; padding-right: 12px; }
.ac-mdp { position: relative; }
.ac-mdp .form-control { padding-right: 46px; }
.ac-mdp-voir { position: absolute; right: 0; top: 0; height: calc(100% - 16px); width: 44px; border: 0; background: none; color: var(--v3-texte-3); }
.ac-mdp-voir:hover, .ac-mdp-voir[aria-pressed=true] { color: var(--v3-or-clair); }
.ac-mdp-voir:focus-visible { outline: 2px solid var(--v3-glacier); outline-offset: -4px; }
.ac-form .ac-btn-grand { margin-top: 6px; }
.ac-insc-cgu { margin: 12px 0 0; font-size: 12.5px; color: var(--v3-texte-3); text-align: center; }
.ac-insc-pied { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--v3-ligne); text-align: center; font-size: 14px; color: var(--v3-texte-3); }
.ac-lien-bouton { border: 0; background: none; padding: 0; color: var(--v3-glacier); }
.ac-lien-bouton:hover { color: #b3e2fa; }
.ac-erreur div + div { margin-top: 4px; }

/* les 4 planètes de départ, sur leur orbite */
.ac-planetes {
    position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
    margin: 0 0 20px; padding: 14px 6px 10px; background: rgba(4, 8, 18, .6); border: 1px solid var(--v3-ligne);
}
.ac-planetes::before { /* l'orbite qui les relie */
    content: ""; position: absolute; left: 12%; right: 12%; top: 33px; height: 1px;
    background: repeating-linear-gradient(90deg, var(--v3-or-ligne) 0 4px, transparent 4px 9px);
}
.ac-planete { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; }
.ac-planete i { width: 38px; height: 38px; border-radius: 50%; box-shadow: inset -7px -6px 12px rgba(0, 0, 0, .65), 0 0 14px var(--lueur); background: radial-gradient(circle at 34% 30%, var(--c1), var(--c2) 70%); }
.ac-planete.p1 { --c1: #a9e1fb; --c2: #2c6f9c; --lueur: rgba(124, 203, 242, .35); }
.ac-planete.p2 { --c1: #f3dca6; --c2: #8a6a2c; --lueur: rgba(214, 180, 110, .35); }
.ac-planete.p3 { --c1: #a3f0c9; --c2: #23725a; --lueur: rgba(98, 214, 160, .3); }
.ac-planete.p4 { --c1: #cdbdff; --c2: #5a43b8; --lueur: rgba(166, 140, 255, .35); }
.ac-planete.p2 i { width: 30px; height: 30px; margin: 4px 0; }
.ac-planete.p3 i { width: 34px; height: 34px; margin: 2px 0; }
.ac-planete.p4 i { width: 26px; height: 26px; margin: 6px 0; }
.ac-planete span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; font-family: var(--v3-f-mono); font-size: 12.5px; color: var(--v3-texte); }
.ac-planetes.vide span { color: var(--v3-texte-3); font-style: italic; }
.ac-planetes.nomme .ac-planete i { animation: ac-pop .5s ease both; }
.ac-planetes.nomme .ac-planete:nth-child(2) i { animation-delay: .06s; }
.ac-planetes.nomme .ac-planete:nth-child(3) i { animation-delay: .12s; }
.ac-planetes.nomme .ac-planete:nth-child(4) i { animation-delay: .18s; }
@keyframes ac-pop { 40% { transform: scale(1.18); filter: brightness(1.35); } }

/* mot de passe perdu : citation, choix du compte */
.ac-insc-citation { margin: 0 0 30px; padding: 4px 0 4px 18px; border-left: 2px solid var(--v3-or); max-width: 520px; }
.ac-insc-citation p { font-size: 17px; font-style: italic; color: var(--v3-texte-2); margin: 0 0 8px; }
.ac-insc-citation footer { font-family: var(--v3-f-titre); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--v3-or); }
.ac-comptes { border: 0; padding: 0; margin: 0 0 18px; display: grid; gap: 8px; }
.ac-comptes legend { float: none; }
.ac-compte { position: relative; display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; padding: 11px 14px; cursor: pointer; background: var(--v3-surf-b); border: 1px solid var(--v3-ligne); transition: border-color .2s, background .2s; }
.ac-compte:hover { border-color: var(--v3-or-ligne); }
.ac-compte:has(input:checked) { border-color: var(--v3-or); background: var(--v3-or-faible); }
.ac-compte:has(input:focus-visible) { outline: 2px solid var(--v3-glacier); outline-offset: 2px; }
.ac-compte input { grid-row: 1 / 3; accent-color: var(--v3-or); width: 16px; height: 16px; margin: 0; }
.ac-compte-nom { font-family: var(--v3-f-mono); font-size: 15px; color: var(--v3-texte); }
.ac-compte-date { font-size: 12.5px; color: var(--v3-texte-3); }
.ac-compte-seul { margin: 0 0 16px; color: var(--v3-texte-2); }
.ac-compte-seul b { font-family: var(--v3-f-mono); font-weight: 500; color: var(--v3-or-clair); }

/* FAQ */
.ac-faq-recherche { position: relative; max-width: 560px; }
.ac-faq-recherche .fa { position: absolute; z-index: 1; left: 16px; top: 50%; transform: translateY(-50%); color: var(--v3-or); }
.ac-faq-recherche input {
    width: 100%; padding: 14px 16px 14px 44px; font-size: 16px; color: var(--v3-texte);
    background: rgba(6, 10, 20, .8); border: 1px solid var(--v3-or-ligne); border-radius: 0; text-shadow: none;
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.ac-faq-recherche input::placeholder { color: var(--v3-texte-3); }
.ac-faq-recherche input:focus { outline: none; border-color: var(--v3-or); box-shadow: 0 0 0 3px var(--v3-or-faible); }
.ac-faq-section { padding-top: 60px; }
.ac-faq-themes { position: sticky; top: calc(var(--ac-nav-h) + 24px); display: grid; gap: 4px; }
.ac-faq-themes a { --acc: var(--v3-or); display: flex; align-items: center; gap: 10px; padding: 10px 14px; color: var(--v3-texte-2); border-left: 2px solid var(--v3-ligne); transition: color .2s, border-color .2s, background .2s; }
.ac-faq-themes a .fa { width: 18px; color: var(--acc); }
.ac-faq-themes a span { margin-left: auto; font-family: var(--v3-f-mono); font-size: 12px; color: var(--v3-texte-3); }
.ac-faq-themes a:hover, .ac-faq-themes a.actif { color: var(--v3-texte); border-left-color: var(--acc); background: color-mix(in srgb, var(--acc) 8%, transparent); }
.ac-faq-theme { --acc: var(--v3-or); margin-bottom: 44px; scroll-margin-top: calc(var(--ac-nav-h) + 24px); }
.ac-faq-theme h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; font-family: var(--v3-f-titre); font-weight: 400; font-size: 22px; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-texte); }
.ac-faq-theme h2 .fa { color: var(--acc); font-size: 18px; }
.ac-faq-q { background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); border-left: 2px solid color-mix(in srgb, var(--acc) 45%, transparent); margin-bottom: 6px; scroll-margin-top: calc(var(--ac-nav-h) + 24px); transition: border-color .2s, box-shadow .6s; }
.ac-faq-q[open] { border-left-color: var(--acc); }
.ac-faq-q.pointee { box-shadow: 0 0 0 2px var(--acc), 0 0 30px color-mix(in srgb, var(--acc) 30%, transparent); }
.ac-faq-q summary { display: flex; align-items: center; gap: 16px; padding: 16px 20px; cursor: pointer; list-style: none; font-weight: 500; color: var(--v3-texte); }
.ac-faq-q summary::-webkit-details-marker { display: none; }
.ac-faq-q summary:hover { background: rgba(150, 175, 210, .04); }
.ac-faq-q summary:focus-visible { outline: 2px solid var(--v3-glacier); outline-offset: -2px; }
.ac-faq-q summary .fa { margin-left: auto; flex: none; color: var(--acc); transition: transform .3s; }
.ac-faq-q[open] summary .fa { transform: rotate(45deg); }
.ac-faq-q mark { padding: 0 1px; color: var(--v3-fond); background: var(--v3-or-clair); }
.ac-faq-r { padding: 0 20px 18px; color: var(--v3-texte-2); font-size: 15px; animation: ac-faq-ouvre .35s ease; }
.ac-faq-r p { margin-bottom: 12px; }
.ac-faq-r b { color: var(--v3-texte); }
@keyframes ac-faq-ouvre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ac-faq-lien { border: 0; background: none; padding: 0; font-size: 12.5px; color: var(--v3-texte-3); }
.ac-faq-lien:hover, .ac-faq-lien.copie { color: var(--v3-glacier); }
.ac-faq-vide { padding: 18px 20px; color: var(--v3-texte-2); background: var(--v3-surf-b); border: 1px dashed var(--v3-ligne); }
.ac-faq-vide .fa { color: var(--v3-or); margin-right: 6px; }
.ac-faq-contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 22px 24px; background: var(--v3-surf-b); border: 1px solid var(--v3-or-ligne); }
.ac-faq-contact p { margin: 0; color: var(--v3-texte-2); }
.ac-faq-contact b { color: var(--v3-or-clair); }
@media (max-width: 575.98px) { .ac-faq-q summary { padding: 14px 16px; } .ac-faq-r { padding: 0 16px 16px; } }

/* contact */
.ac-contact-aide { margin-bottom: 18px; padding: 16px 18px; background: rgba(6, 10, 20, .65); border: 1px solid var(--v3-ligne); text-shadow: none; max-width: 480px; }
.ac-contact-aide p { margin: 0 0 8px; font-family: var(--v3-f-titre); font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--v3-or); }
.ac-contact-aide a { display: block; padding: 4px 0; font-size: 14px; color: var(--v3-texte-2); }
.ac-contact-aide a .fa { width: 18px; color: var(--v3-or); }
.ac-contact-aide a:hover { color: var(--v3-or-clair); }
.ac-contact-fb { font-size: 14px; color: var(--v3-texte-2); }
.ac-contact-fb .fa { color: #6d8fd4; margin-right: 4px; }
.ac-contact-conseil { margin: -8px 0 18px; font-size: 14px; color: var(--v3-texte-2); }
.ac-contact-conseil b { color: var(--v3-texte); }
.ac-sujets { border: 0; padding: 0; margin: 0 0 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ac-sujets legend { float: none; }
@media (max-width: 575.98px) { .ac-sujets { grid-template-columns: repeat(2, 1fr); } }
.ac-sujet { position: relative; cursor: pointer; }
.ac-sujet input { position: absolute; opacity: 0; pointer-events: none; }
.ac-sujet span { display: flex; align-items: center; gap: 8px; height: 100%; padding: 9px 11px; font-size: 13.5px; color: var(--v3-texte-2); background: var(--v3-surf-b); border: 1px solid var(--v3-ligne); transition: color .2s, border-color .2s, background .2s; }
.ac-sujet span .fa { width: 16px; color: var(--acc); }
.ac-sujet:hover span { border-color: color-mix(in srgb, var(--acc) 50%, transparent); }
.ac-sujet input:checked + span { color: var(--v3-texte); border-color: var(--acc); background: color-mix(in srgb, var(--acc) 12%, var(--v3-surf-b)); }
.ac-sujet input:focus-visible + span { outline: 2px solid var(--v3-glacier); outline-offset: 2px; }
.ac-facultatif { text-transform: none; letter-spacing: 0; }
.ac-contact-message { resize: vertical; min-height: 170px; margin-bottom: 4px !important; }
.ac-compteur { margin: 0 0 16px; text-align: right; font-family: var(--v3-f-mono); font-size: 12px; color: var(--v3-texte-3); }
.ac-compteur.court { color: #f6b3b3; }

/* informations légales */
.ac-legal { color: var(--v3-texte-2); font-size: 15px; }
.ac-legal-section { margin-bottom: 56px; scroll-margin-top: calc(var(--ac-nav-h) + 24px); }
.ac-legal h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; padding-bottom: 12px; border-bottom: 1px solid var(--v3-ligne); font-family: var(--v3-f-titre); font-weight: 400; font-size: 24px; letter-spacing: .06em; text-transform: uppercase; color: var(--v3-texte); }
.ac-legal h2 .fa { color: var(--v3-or); font-size: 20px; }
.ac-legal h3 { margin: 28px 0 10px; font-family: var(--v3-f-titre); font-weight: 500; font-size: 17px; letter-spacing: .04em; color: var(--v3-or-clair); }
.ac-legal ol, .ac-legal ul { padding-left: 22px; }
.ac-legal li { margin-bottom: 8px; }
.ac-legal li::marker { color: var(--v3-or); }
.ac-legal b { color: var(--v3-texte); }
.ac-legal-fiches { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
@media (max-width: 767.98px) { .ac-legal-fiches { grid-template-columns: 1fr; } }
.ac-legal-fiche { padding: 20px 22px; background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); border-top: 2px solid var(--v3-or); }
.ac-legal-fiche p { margin-bottom: 14px; }
.ac-legal-fiche p:last-child { margin-bottom: 0; }
.ac-legal-etiquette { margin-bottom: 4px !important; font-family: var(--v3-f-titre); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--v3-or) !important; }
.ac-legal-exemple { margin: 10px 0; padding: 12px 16px; font-size: 14px; background: var(--v3-surf-b); border-left: 2px solid var(--v3-glacier); }
.ac-legal-exemple p { margin: 0 0 6px; }
.ac-legal-exemple p:last-child { margin: 0; }
.ac-legal-table { overflow-x: auto; margin-bottom: 8px; }
.ac-legal table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; }
.ac-legal th { padding: 10px 12px; text-align: left; font-family: var(--v3-f-titre); font-weight: 500; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-or); background: var(--v3-surf-b); border-bottom: 1px solid var(--v3-or-ligne); }
.ac-legal td { padding: 10px 12px; vertical-align: top; border-bottom: 1px solid var(--v3-ligne); }
.ac-legal td:first-child { color: var(--v3-texte); }
.ac-legal-maj { font-size: 13px; color: var(--v3-texte-3); }
.ac-legal-puces { display: flex; flex-wrap: wrap; gap: 6px; }
.ac-legal-puces a { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; font-size: 13.5px; color: var(--v3-texte-2); text-shadow: none; background: rgba(6, 10, 20, .7); border: 1px solid var(--v3-or-ligne); }
.ac-legal-puces a .fa { color: var(--v3-or); }

/* désinscription */
.ac-btn-danger { background: linear-gradient(135deg, #d65a5a, #a83a3a); color: #fff; box-shadow: 0 0 24px rgba(239, 112, 112, .2); }
.ac-btn-danger:hover { color: #fff; background: linear-gradient(135deg, #e46b6b, #b84545); box-shadow: 0 0 32px rgba(239, 112, 112, .35); }
.ac-btn:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; transform: none; }
.ac-insc-carte.danger { border-color: rgba(239, 112, 112, .35); border-top-color: var(--v3-c-rouge); }
.ac-desinsc-image { margin: -26px -30px 22px; aspect-ratio: 16 / 7; overflow: hidden; position: relative; }
.ac-desinsc-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.ac-desinsc-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(8, 13, 26, .95)); }
@media (max-width: 575.98px) { .ac-desinsc-image { margin: -22px -18px 18px; } }
.ac-confirme { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 18px; padding: 12px 14px; font-size: 14px; color: var(--v3-texte-2); background: rgba(239, 112, 112, .07); border: 1px solid rgba(239, 112, 112, .25); cursor: pointer; }
.ac-confirme input { flex: none; margin-top: 4px; width: 16px; height: 16px; accent-color: var(--v3-c-rouge); }
.ac-confirme b { color: #f6b3b3; }
.ac-desinsc-bilan { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 600px; }
@media (max-width: 575.98px) { .ac-desinsc-bilan { grid-template-columns: 1fr; } }
.ac-desinsc-bilan > div { padding: 16px 18px; background: rgba(6, 10, 20, .65); border: 1px solid var(--v3-ligne); text-shadow: none; }
.ac-desinsc-bilan p { margin: 0 0 8px; font-family: var(--v3-f-titre); font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--v3-c-rouge); }
.ac-desinsc-bilan > div + div p { color: var(--v3-texte-3); }
.ac-desinsc-bilan ul { margin: 0; padding-left: 18px; font-size: 14px; color: var(--v3-texte-2); }
.ac-desinsc-bilan li + li { margin-top: 3px; }

/* états après l'envoi */
.ac-insc-etat { text-align: center; }
.ac-insc-etat p { color: var(--v3-texte-2); }
.ac-insc-icone { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 14px; font-size: 28px; color: var(--v3-or-clair); border: 1px solid var(--v3-or-ligne); background: var(--v3-or-faible); transform: rotate(45deg); }
.ac-insc-icone::before { transform: rotate(-45deg); }
.ac-insc-icone.ok { color: var(--v3-c-vert); border-color: rgba(98, 214, 160, .45); background: rgba(98, 214, 160, .1); }
.ac-insc-icone.alerte { color: #f6b3b3; border-color: rgba(239, 112, 112, .45); background: rgba(239, 112, 112, .1); }
.ac-insc-note { margin: 16px 0 0; padding: 10px 14px; font-size: 13.5px; color: var(--v3-texte-2); background: rgba(124, 203, 242, .06); border-left: 2px solid var(--v3-glacier); }
.ac-insc-note .fa { color: var(--v3-glacier); margin-right: 4px; }

/* ---- missions : bandeau court, sommaire, parcours ----------- */
.ac-hero-court { min-height: 0; padding: calc(var(--ac-nav-h) + 90px) 0 70px; }
.ac-hero-court .ac-pitch { max-width: 660px; }
.ac-itineraire-section { position: relative; z-index: 1; }
.ac-itineraire ol { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
.ac-itineraire li { --acc: var(--v3-or); flex: 1 1 0; min-width: 0; display: flex; align-items: center; }
.ac-itineraire li:not(:last-child)::after { content: ""; flex: 0 0 16px; height: 1px; background: var(--v3-or-ligne); } /* le trait vers la mission suivante */
.ac-itineraire a:not(.ac-itineraire-hors) {
    flex: 1; min-width: 0; display: flex; flex-direction: column; padding: 9px 11px;
    background: var(--v3-surf-b); border: 1px solid color-mix(in srgb, var(--acc) 40%, transparent);
    transition: border-color .2s, background .2s;
}
.ac-itineraire a:not(.ac-itineraire-hors):hover { border-color: var(--acc); background: color-mix(in srgb, var(--acc) 10%, var(--v3-surf-b)); }
.ac-itineraire ol span { font-family: var(--v3-f-mono); font-size: 11px; color: var(--acc); }
.ac-itineraire ol b { font-family: var(--v3-f-titre); font-weight: 500; font-size: 14px; color: var(--v3-texte); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-itineraire small { font-size: 11.5px; line-height: 1.35; color: var(--v3-texte-3); }
@media (max-width: 1199.98px) {
    .ac-itineraire a:not(.ac-itineraire-hors) { padding: 8px; }
    .ac-itineraire ol b { font-size: 12.5px; }
    .ac-itineraire li:not(:last-child)::after, .ac-itineraire .fourche::after { flex-basis: 10px; width: 10px; }
    .ac-itineraire .fourche { grid-template-columns: minmax(0, 1fr) 10px; }
}
.ac-itineraire .facultatif { border-style: dashed; }
.ac-itineraire .secret a { --acc: var(--v3-texte-3); border-style: dashed; }
.ac-itineraire .fourche { display: grid; grid-template-columns: minmax(0, 1fr) 16px; }
.ac-itineraire .fourche > * { grid-column: 1; }
.ac-itineraire .fourche::after { grid-column: 2; grid-row: 1 / 4; align-self: center; width: 16px; }
.ac-itineraire em { font-style: normal; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; text-align: center; color: var(--v3-texte-3); line-height: 1.9; }
.ac-itineraire-hors {
    display: inline-block; margin-top: 14px; padding: 7px 14px; font-size: 14px;
    color: var(--v3-texte-2); border: 1px dashed color-mix(in srgb, var(--acc) 45%, transparent);
}
.ac-itineraire-hors .fa, .ac-itineraire-hors b { color: var(--acc); }
.ac-itineraire-hors .fa { margin-right: 6px; }
.ac-itineraire-hors:hover { color: var(--v3-texte); border-color: var(--acc); }
@media (max-width: 991.98px) {
    .ac-itineraire ol { flex-direction: column; align-items: stretch; }
    .ac-itineraire li { flex-direction: column; align-items: stretch; }
    .ac-itineraire li:not(:last-child)::after { flex: 0 0 12px; width: 1px; height: 12px; align-self: center; }
    .ac-itineraire .fourche { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; }
    .ac-itineraire .fourche > * { grid-column: auto; }
    .ac-itineraire .fourche em { padding: 0 10px; }
    .ac-itineraire .fourche::after { grid-column: 1 / -1; grid-row: 2; justify-self: center; width: 1px; }
    .ac-itineraire a:not(.ac-itineraire-hors) { flex-direction: row; align-items: baseline; gap: 8px; }
    .ac-itineraire .fourche a { flex-direction: column; gap: 0; }
}
.ac-parcours-section { padding-top: 70px; }
.ac-parcours { --rail: 72px; --progression: 0; list-style: none; margin: 0; padding: 0 0 0 var(--rail); position: relative; }
.ac-parcours::before, .ac-parcours::after { /* le rail, puis sa partie déjà parcourue */
    content: ""; position: absolute; left: calc(var(--rail) / 2 - 1px); top: 10px; bottom: 10px; width: 2px;
}
.ac-parcours::before { background: var(--v3-ligne); }
.ac-parcours::after {
    bottom: auto; height: calc((100% - 20px) * var(--progression));
    background: linear-gradient(180deg, var(--v3-c-glacier), var(--v3-c-rouge) 22%, var(--v3-c-or) 38%, var(--v3-c-vert) 52%, var(--v3-c-violet) 66%, var(--v3-texte-3) 82%, var(--v3-c-cyan));
    box-shadow: 0 0 12px rgba(214, 180, 110, .35);
}
.ac-etape { position: relative; margin-bottom: 56px; scroll-margin-top: calc(var(--ac-nav-h) + 24px); }
.ac-etape:last-child { margin-bottom: 0; }
.ac-etape-repere { position: absolute; left: calc(var(--rail) * -1); top: 34px; width: var(--rail); display: flex; justify-content: center; z-index: 1; }
.ac-etape-repere span { /* le numéro reste droit, le losange est dessiné derrière */
    position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px;
    font-family: var(--v3-f-mono); font-size: 13px; color: var(--v3-texte-3); transition: color .4s;
}
.ac-etape-repere span::before {
    content: ""; position: absolute; inset: 0; z-index: -1; transform: rotate(45deg);
    background: var(--v3-fond); border: 1px solid var(--v3-ligne);
    transition: border-color .4s, background .4s, box-shadow .4s;
}
.ac-etape.atteinte .ac-etape-repere span { color: var(--acc); }
.ac-etape.atteinte .ac-etape-repere span::before { border-color: var(--acc); background: color-mix(in srgb, var(--acc) 14%, var(--v3-fond)); box-shadow: 0 0 18px color-mix(in srgb, var(--acc) 45%, transparent); }
.ac-etape-carte {
    display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    background: var(--v3-surf-a); border: 1px solid color-mix(in srgb, var(--acc) 30%, transparent);
    clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px));
}
.ac-etape-image { position: relative; overflow: hidden; background: var(--v3-fond); min-height: 260px; }
.ac-etape-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.ac-etape.atteinte .ac-etape-image img { transform: scale(1.04); }
.ac-etape-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 55%, var(--v3-surf-a)); }
.ac-etape-texte { padding: 36px 40px 32px; }
.ac-etape-texte h2 { font-family: var(--v3-f-titre); font-stretch: 115%; font-weight: 400; font-size: clamp(26px, 2.8vw, 34px); letter-spacing: .04em; color: var(--v3-texte); margin: 0 0 14px; }
.ac-etape-texte > p { color: var(--v3-texte-2); font-size: 15.5px; }
.ac-dominantes { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 6px; }
.ac-dominantes li { padding: 3px 10px; font-size: 12.5px; letter-spacing: .04em; color: var(--acc); background: color-mix(in srgb, var(--acc) 9%, transparent); border: 1px solid color-mix(in srgb, var(--acc) 30%, transparent); }
.ac-etape.secret { --acc: var(--v3-texte-3); }
.ac-etape.secret .ac-etape-carte { border-style: dashed; }
.ac-etape.secret .ac-etape-image { display: flex; align-items: center; justify-content: center; font-size: 110px; color: rgba(131, 148, 170, .18);
    background: repeating-linear-gradient(135deg, rgba(150, 175, 210, .04) 0 12px, transparent 12px 24px), var(--v3-fond); }
@media (max-width: 767.98px) {
    .ac-parcours { --rail: 40px; }
    .ac-etape-repere span { width: 28px; height: 28px; font-size: 11px; }
    .ac-etape-repere { top: 18px; }
    .ac-etape-carte { grid-template-columns: 1fr; }
    .ac-etape-image { min-height: 0; aspect-ratio: 16 / 9; }
    .ac-etape-image::after { background: linear-gradient(180deg, transparent 55%, var(--v3-surf-a)); }
    .ac-etape-texte { padding: 22px 20px 20px; }
}

/* ---- Isaac Asimov ------------------------------------------ */
.ac-asi-ancre { scroll-margin-top: var(--ac-nav-h); }
.ac-asi-chiffres { list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-wrap: wrap; gap: 12px 34px; }
.ac-asi-chiffres li { font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--v3-texte-3); }
.ac-asi-chiffres b { display: block; font-family: var(--v3-f-mono); font-size: 30px; font-weight: 500; line-height: 1.15; letter-spacing: 0; color: var(--v3-or-clair); }
.ac-asi-portrait { max-width: 400px; margin: 0 0 0 auto; }
.ac-asi-portrait img {
    display: block; width: 100%; height: auto; border: 1px solid var(--v3-or-ligne); box-shadow: 0 0 60px rgba(214, 180, 110, .12);
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 28px 100%, 0 calc(100% - 28px));
}
.ac-asi-portrait figcaption { margin-top: 12px; text-align: center; font-family: var(--v3-f-mono); font-size: 12.5px; letter-spacing: .06em; color: var(--v3-texte-2); }
@media (max-width: 991.98px) { .ac-asi-portrait { max-width: 300px; margin: 40px auto 0; } }
@media (max-width: 575.98px) { .ac-asi-chiffres { gap: 10px 14px; } .ac-asi-chiffres li { font-size: 11px; letter-spacing: .08em; } .ac-asi-chiffres b { font-size: 24px; } }

/* frise des trois cycles */
.ac-frise { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 44px; }
.ac-frise > li { position: relative; padding-top: 48px; }
.ac-frise > li::before { content: ""; position: absolute; top: 14px; left: 0; right: -44px; height: 2px; background: linear-gradient(90deg, var(--acc), color-mix(in srgb, var(--acc) 15%, transparent)); }
.ac-frise > li:last-child::before { right: 0; }
.ac-frise-repere { position: absolute; top: 4px; left: 0; width: 22px; height: 22px; transform: rotate(45deg); background: var(--v3-fond); border: 2px solid var(--acc); box-shadow: 0 0 16px color-mix(in srgb, var(--acc) 45%, transparent); }
.ac-frise-epoque { margin: 0 0 4px; font-family: var(--v3-f-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--acc); }
.ac-frise h3 { margin: 0 0 12px; font-family: var(--v3-f-titre); font-stretch: 115%; font-weight: 400; font-size: clamp(22px, 2.2vw, 28px); letter-spacing: .03em; color: var(--v3-texte); }
.ac-frise > li > p:not(.ac-frise-epoque) { font-size: 14.5px; color: var(--v3-texte-2); }
.ac-frise-groupe { margin-top: 14px; padding: 14px 18px; background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); border-left: 2px solid var(--acc); }
.ac-frise-groupe h4 { margin: 0 0 6px; font-family: var(--v3-f-titre); font-weight: 500; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--acc); }
.ac-livres { list-style: none; padding: 0; margin: 0; }
.ac-livres li { display: flex; gap: 14px; padding: 6px 0; font-size: 14.5px; color: var(--v3-texte); border-bottom: 1px dashed var(--v3-ligne); }
.ac-livres li:last-child { border-bottom: 0; padding-bottom: 0; }
.ac-livres span { flex: none; width: 40px; font-family: var(--v3-f-mono); font-size: 13px; color: var(--v3-texte-3); padding-top: 1px; }
@media (max-width: 991.98px) {
    .ac-frise { grid-template-columns: 1fr; gap: 40px; }
    .ac-frise > li { padding: 0 0 0 44px; }
    .ac-frise > li::before { top: 26px; bottom: -40px; left: 10px; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--acc), color-mix(in srgb, var(--acc) 15%, transparent)); }
    .ac-frise > li:last-child::before { bottom: 0; }
    .ac-frise-repere { top: 2px; }
}

/* le cycle de Fondation */
.ac-asi-idees .ac-h3 { margin-top: 26px; font-size: 18px; }
.ac-asi-idees .ac-h3:first-child { margin-top: 0; }
.ac-asi-idees p { color: var(--v3-texte-2); font-size: 15.5px; }
.ac-asi-citation { height: auto; margin-bottom: 20px; }
.ac-asi-jeu { height: auto; }

/* les lois de la robotique */
.ac-lois { list-style: none; padding: 0; margin: 0 0 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ac-loi {
    padding: 34px 28px 28px; text-align: center; color: var(--v3-texte);
    background: radial-gradient(circle at 50% 0, color-mix(in srgb, var(--acc) 14%, transparent), transparent 65%), var(--v3-surf-a);
    border: 1px solid color-mix(in srgb, var(--acc) 30%, transparent);
}
.ac-loi p { margin: 0; font-size: 15.5px; }
.ac-loi-num {
    flex: none; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 18px; border-radius: 50%;
    font-family: var(--v3-f-mono); font-size: 20px; font-weight: 500; color: var(--acc);
    border: 2px solid var(--acc); box-shadow: 0 0 22px color-mix(in srgb, var(--acc) 40%, transparent), inset 0 0 14px color-mix(in srgb, var(--acc) 25%, transparent);
}
.ac-loi-zero { --acc: var(--v3-c-violet); display: flex; gap: 26px; align-items: flex-start; padding: 28px 30px; background: var(--v3-surf-b); border: 1px dashed color-mix(in srgb, var(--acc) 50%, transparent); }
.ac-loi-zero .ac-loi-num { margin: 0; }
.ac-loi-zero p { color: var(--v3-texte-2); margin: 0; }
.ac-loi-zero .ac-loi-texte { margin-bottom: 10px; font-size: 16px; font-style: italic; color: var(--v3-texte); }
@media (max-width: 991.98px) { .ac-lois { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .ac-loi-zero { flex-direction: column; gap: 14px; padding: 22px 20px; } }

/* source et infographies d'origine */
.ac-asi-source { padding: 48px 0; text-align: center; font-size: 14px; color: var(--v3-texte-3); }
.ac-asi-source details summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: var(--v3-or-clair); list-style: none; }
.ac-asi-source details summary::-webkit-details-marker { display: none; }
.ac-asi-source details summary:hover { color: var(--v3-or); }
.ac-asi-originales { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; align-items: start; }
.ac-asi-originales img { width: 100%; height: auto; border: 1px solid var(--v3-ligne); }
@media (max-width: 767.98px) { .ac-asi-originales { grid-template-columns: 1fr; } }

/* ---- revue de presse --------------------------------------- */
.ac-presse-avis { padding: 64px 0 72px; }
.ac-presse { scroll-margin-top: var(--ac-nav-h); }
.ac-presse-tete { max-width: 860px; margin-bottom: 40px; }
.ac-presse-titre-journal { margin: 0 0 10px; font-family: var(--v3-f-titre); font-stretch: 115%; font-weight: 600; font-size: 15px; letter-spacing: .22em; text-transform: uppercase; color: var(--v3-or); }
.ac-presse-titre-journal span { margin-left: 10px; padding-left: 12px; border-left: 1px solid var(--v3-or-ligne); font-weight: 400; letter-spacing: .14em; color: var(--v3-texte-3); }
.ac-presse-chapo { margin: 18px 0 0; font-size: 18.5px; line-height: 1.55; font-weight: 500; color: var(--v3-texte); }
.ac-presse-chapo i { color: var(--v3-or-clair); }
/* le corps de l'article, en caractères « papier » */
.ac-presse-texte { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; line-height: 1.7; color: var(--v3-texte-2); }
.ac-presse-texte p { margin-bottom: 1.1em; text-align: justify; hyphens: auto; }
.ac-presse-texte i { color: var(--v3-texte); }
.ac-presse-texte h3 { margin: 34px 0 12px; font-family: var(--v3-f-titre); font-weight: 600; font-size: 21px; letter-spacing: .02em; color: var(--v3-or-clair); }
.ac-presse-lettrine::first-letter { float: left; margin: 6px 12px 0 0; font-family: var(--v3-f-titre); font-weight: 600; font-size: 66px; line-height: .8; color: var(--v3-or); }
.ac-presse-signature { margin-top: 24px; text-align: right !important; font-style: italic; color: var(--v3-texte); }
.ac-presse-signature::before { content: "— "; color: var(--v3-or); }
.ac-presse-merci { font-family: var(--v3-f-texte); font-size: 13.5px; color: var(--v3-texte-3); text-align: left !important; }
.ac-presse-merci b { color: var(--v3-texte-2); }
/* colonne de côté : encadrés, fiche, scans */
.ac-presse-cote { display: flex; flex-direction: column; gap: 20px; }
.ac-presse-encadre { padding: 22px 24px; background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); border-top: 2px solid var(--v3-or); font-size: 14px; color: var(--v3-texte-2); }
.ac-presse-encadre h3 { margin: 0 0 12px; font-family: var(--v3-f-titre); font-weight: 600; font-size: 15px; letter-spacing: .14em; text-transform: uppercase; color: var(--v3-or); }
.ac-presse-encadre dl { margin: 14px 0 0; }
.ac-presse-encadre dt { margin-top: 10px; font-family: var(--v3-f-titre); font-weight: 500; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-texte); }
.ac-presse-encadre dd { margin: 2px 0 0; }
.ac-presse-note { font-size: 12.5px; color: var(--v3-texte-3); }
.ac-presse-fiche { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0 !important; }
.ac-presse-fiche dt, .ac-presse-fiche dd { margin: 0; }
.ac-presse-fiche dt { padding-top: 2px; }
.ac-presse-bilan { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--v3-ligne); }
.ac-presse-bilan p { margin: 0 0 6px; font-family: var(--v3-f-mono); font-size: 13px; font-weight: 500; }
.ac-presse-bilan .plus p { color: var(--v3-c-vert); }
.ac-presse-bilan .moins p { color: var(--v3-c-rouge); }
.ac-presse-bilan ul { margin: 0; padding-left: 16px; }
.ac-presse-bilan li { margin-bottom: 4px; }
.ac-presse-scans > p { margin: 0 0 10px; font-family: var(--v3-f-titre); font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--v3-texte-3); }
.ac-presse-scans > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ac-presse-scans a { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid var(--v3-ligne); background: var(--v3-surf-b); }
.ac-presse-scans img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: saturate(.7) brightness(.8); transition: filter .3s, transform .4s; }
.ac-presse-scans a:hover img { filter: none; transform: scale(1.04); }
.ac-presse-scans span { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 8px 6px; font-size: 12px; text-align: center; color: var(--v3-texte); background: linear-gradient(transparent, rgba(6, 10, 20, .9)); }
.ac-presse-scans a:hover { border-color: var(--v3-or-ligne); }
/* l'interview */
.ac-presse-interview { margin-top: 56px; padding: 34px 36px; background: var(--v3-surf-b); border: 1px solid var(--v3-ligne); border-left: 2px solid var(--v3-glacier); scroll-margin-top: calc(var(--ac-nav-h) + 20px); }
.ac-presse-interview > h3 { margin: 0 0 10px; font-family: var(--v3-f-titre); font-stretch: 112%; font-weight: 400; font-size: 26px; color: var(--v3-texte); }
.ac-presse-interview > h3 .fa { color: var(--v3-glacier); margin-right: 6px; font-size: 22px; }
.ac-presse-intro { max-width: 780px; color: var(--v3-texte-2); }
.ac-presse-qr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 40px; margin: 26px 0 0; }
.ac-presse-qr dt { margin: 0 0 6px; font-family: var(--v3-f-titre); font-weight: 600; font-size: 16px; color: var(--v3-glacier); }
.ac-presse-qr dt::before { content: "CB · "; font-family: var(--v3-f-mono); font-size: 12px; font-weight: 500; color: var(--v3-texte-3); }
.ac-presse-qr dd { margin: 0; color: var(--v3-texte-2); font-size: 15px; }
.ac-presse-qr dd::before { content: "Serge · "; font-family: var(--v3-f-mono); font-size: 12px; color: var(--v3-or); }
@media (max-width: 991.98px) {
    .ac-presse-qr { grid-template-columns: 1fr; }
    .ac-presse-texte { font-size: 16.5px; }
}
@media (max-width: 575.98px) {
    .ac-presse-chapo { font-size: 17px; }
    .ac-presse-texte p { text-align: left; }
    .ac-presse-interview { padding: 24px 20px; }
    .ac-presse-titre-journal span { display: block; margin: 6px 0 0; padding: 0; border: 0; }
}

/* ---- publications ------------------------------------------ */
.ac-news-section { padding-top: 64px; }
.ac-art-tete { margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--v3-ligne); }
.ac-art-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 8px; font-family: var(--v3-f-mono); font-size: 13px; color: var(--v3-texte-3); }
.ac-art-meta span { padding: 2px 9px; color: var(--v3-or); border: 1px solid var(--v3-or-ligne); }
.ac-art-tete h2 { margin: 0; font-family: var(--v3-f-titre); font-stretch: 112%; font-weight: 400; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; color: var(--v3-texte); }
.ac-art-archive { display: flex; gap: 12px; margin: 0 0 26px; padding: 12px 16px; font-size: 13.5px; color: var(--v3-texte-2); background: var(--v3-or-faible); border-left: 2px solid var(--v3-or); }
.ac-art-archive .fa { margin-top: 3px; color: var(--v3-or); }
.ac-art-archive b { color: var(--v3-or-clair); }
/* le corps de l'article : HTML d'époque, assagi */
.ac-art-corps { font-size: 15.5px; line-height: 1.75; color: var(--v3-texte-2); overflow-wrap: break-word; }
.ac-art-corps::after { content: ""; display: block; clear: both; }
.ac-art-corps h3, .ac-art-corps h4, .ac-art-corps h5 { clear: both; margin: 26px 0 12px; font-family: var(--v3-f-titre); font-weight: 600; letter-spacing: .02em; line-height: 1.25; color: var(--v3-or-clair); }
.ac-art-corps h3 { font-size: 21px; }
.ac-art-corps h4, .ac-art-corps h5 { font-size: 17px; color: var(--v3-texte); }
.ac-art-corps > h3:first-child { margin-top: 0; }
.ac-art-corps b, .ac-art-corps strong { color: var(--v3-texte); }
.ac-art-corps a { color: var(--v3-glacier); }
.ac-art-corps img { max-width: 100%; height: auto; margin: 6px 0; border: 1px solid var(--v3-ligne); }
.ac-art-corps img[width="50"], .ac-art-corps img[width="30"], .ac-art-corps img[width="20"] { border: 0; margin: 0 4px; vertical-align: middle; }
.ac-art-corps .ac-art-gauche { float: left; max-width: 45%; margin: 4px 22px 12px 0; }
.ac-art-corps .ac-art-droite { float: right; max-width: 45%; margin: 4px 0 12px 22px; }
.ac-art-corps li { margin: 0 0 6px 1.3em; }
.ac-art-corps li::marker { color: var(--v3-or); }
.ac-art-corps ul, .ac-art-corps ol { padding-left: 0; }
.ac-art-corps hr { clear: both; margin: 24px 0; border-color: var(--v3-ligne); opacity: 1; }
.ac-art-corps table { display: block; max-width: 100%; overflow-x: auto; margin: 14px 0; border-collapse: collapse; font-size: 14px; }
.ac-art-corps td, .ac-art-corps th { padding: 6px 10px; vertical-align: top; border: 1px solid var(--v3-ligne); }
.ac-art-corps .row { margin-top: 10px; margin-bottom: 10px; }
.ac-art-corps blockquote { margin: 14px 0; padding: 10px 16px; border-left: 2px solid var(--v3-glacier); background: var(--v3-surf-b); }
@media (max-width: 575.98px) { .ac-art-corps .ac-art-gauche, .ac-art-corps .ac-art-droite { float: none; display: block; max-width: 100%; margin: 8px 0; } }
/* précédent / suivant */
.ac-art-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--v3-ligne); }
.ac-art-nav a { flex: 0 1 48%; display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; color: var(--v3-texte); background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); transition: border-color .2s, background .2s; }
.ac-art-nav a:hover { border-color: var(--v3-or-ligne); background: var(--v3-or-faible); color: var(--v3-or-clair); }
.ac-art-nav small { font-family: var(--v3-f-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-texte-3); }
.ac-art-nav .suivant { margin-left: auto; text-align: right; }
/* colonne de côté : la frise des années, puis « quoi de neuf » */
.ac-news-cote { display: flex; flex-direction: column; gap: 24px; }
.ac-temps { padding: 22px 22px 14px; background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); border-top: 2px solid var(--v3-or); }
.ac-temps details { border-left: 1px solid var(--v3-or-ligne); margin-left: 6px; }
.ac-temps summary { position: relative; display: flex; align-items: baseline; gap: 10px; padding: 6px 0 6px 18px; cursor: pointer; list-style: none; }
.ac-temps summary::-webkit-details-marker { display: none; }
.ac-temps summary::before { content: ""; position: absolute; left: -5px; top: 14px; width: 9px; height: 9px; transform: rotate(45deg); background: var(--v3-fond); border: 1px solid var(--v3-or); transition: background .2s; }
.ac-temps details[open] summary::before { background: var(--v3-or); }
.ac-temps summary b { font-family: var(--v3-f-mono); font-size: 16px; font-weight: 500; color: var(--v3-texte); }
.ac-temps summary span { font-size: 12.5px; color: var(--v3-texte-3); }
.ac-temps summary:hover b { color: var(--v3-or-clair); }
.ac-temps ol { list-style: none; margin: 0 0 8px; padding: 0 0 0 18px; }
.ac-temps li a { display: flex; gap: 10px; padding: 4px 8px; font-size: 13.5px; line-height: 1.4; color: var(--v3-texte-2); border-left: 2px solid transparent; }
.ac-temps li a span { flex: none; min-width: 58px; font-family: var(--v3-f-mono); font-size: 11.5px; padding-top: 2px; color: var(--v3-texte-3); }
.ac-temps li a:hover { color: var(--v3-texte); background: var(--v3-or-faible); }
.ac-temps li a[aria-current] { color: var(--v3-or-clair); border-left-color: var(--v3-or); background: var(--v3-or-faible); }
.ac-quoi-neuf { height: auto; }
.ac-quoi-neuf ol { list-style: none; margin: 0; padding: 0; font-size: 13.5px; color: var(--v3-texte-2); }
.ac-quoi-neuf li { padding: 7px 0; border-bottom: 1px dashed var(--v3-ligne); }
.ac-quoi-neuf li:last-child { border-bottom: 0; }
.ac-quoi-neuf li span { margin-right: 8px; font-family: var(--v3-f-mono); font-size: 12px; color: var(--acc); }
.ac-quoi-neuf li b { margin-right: 4px; color: var(--v3-texte); font-weight: 500; }
@media (min-width: 992px) {
    .ac-temps { max-height: calc(100vh - var(--ac-nav-h) - 60px); overflow-y: auto; scrollbar-width: thin; }
}

/* ---- galerie ------------------------------------------------ */
.ac-galerie-onglets { display: flex; flex-wrap: wrap; gap: 6px; }
.ac-galerie-onglets a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; font-size: 14px; color: var(--v3-texte-2); text-shadow: none; background: rgba(6, 10, 20, .7); border: 1px solid var(--v3-or-ligne); transition: color .2s, background .2s; }
.ac-galerie-onglets a .fa { color: var(--v3-or); }
.ac-galerie-onglets a:hover { color: var(--v3-texte); background: var(--v3-or-faible); }
.ac-galerie-onglets a[aria-current] { color: #060a14; background: var(--v3-or); border-color: var(--v3-or); }
.ac-galerie-onglets a[aria-current] .fa { color: #060a14; }
.ac-galerie-section { padding-top: 56px; }
.ac-galerie-titre { display: flex; align-items: baseline; gap: 12px; margin: 0 0 18px; font-family: var(--v3-f-titre); font-weight: 400; font-size: 22px; letter-spacing: .06em; text-transform: uppercase; color: var(--v3-texte); }
.ac-galerie-titre span { font-family: var(--v3-f-mono); font-size: 13px; color: var(--v3-or); }
.ac-galerie + .ac-galerie-titre, .ac-galerie-vide + .ac-galerie + .ac-galerie-titre { margin-top: 48px; }
.ac-galerie-vide { color: var(--v3-texte-3); }
.ac-galerie { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.ac-galerie.portraits { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.ac-galerie a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--v3-surf-b); border: 1px solid var(--v3-ligne); }
.ac-galerie img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .3s; filter: saturate(.9); }
.ac-galerie span { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 9px; font-size: 13.5px; color: var(--v3-texte); background: linear-gradient(transparent, rgba(6, 10, 20, .92)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-galerie span .fa { margin-left: 4px; color: var(--v3-or); }
.ac-galerie a:hover, .ac-galerie a:focus-visible { border-color: var(--v3-or-ligne); }
.ac-galerie a:hover img, .ac-galerie a:focus-visible img { transform: scale(1.06); filter: none; }
.ac-galerie a:focus-visible { outline: 2px solid var(--v3-glacier); outline-offset: 2px; }
@media (max-width: 575.98px) {
    .ac-galerie, .ac-galerie.portraits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .ac-galerie span { font-size: 12.5px; padding: 20px 8px 7px; }
}
/* visionneuse */
.ac-visionneuse { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--v3-texte); }
.ac-visionneuse[open] { display: flex; align-items: center; justify-content: center; }
.ac-visionneuse::backdrop { background: rgba(3, 6, 12, .92); backdrop-filter: blur(4px); }
.ac-visionneuse figure { margin: 0; max-width: min(90vw, 900px); }
.ac-visionneuse .cadre img, .ac-visionneuse .cadre video { display: block; max-width: 100%; max-height: 80vh; margin: 0 auto; border: 1px solid var(--v3-or-ligne); box-shadow: 0 0 60px rgba(0, 0, 0, .6); }
.ac-visionneuse figcaption { display: flex; justify-content: space-between; gap: 16px; margin-top: 12px; font-size: 15px; }
.ac-visionneuse figcaption span { font-family: var(--v3-f-mono); font-size: 13px; color: var(--v3-texte-3); }
.ac-visionneuse button { position: absolute; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; font-size: 26px; color: var(--v3-texte); background: rgba(17, 27, 46, .8); border: 1px solid var(--v3-ligne); cursor: pointer; transition: color .2s, border-color .2s; }
.ac-visionneuse button:hover, .ac-visionneuse button:focus-visible { color: var(--v3-or-clair); border-color: var(--v3-or); outline: none; }
.ac-visionneuse .fermer { top: 18px; right: 18px; font-size: 20px; }
.ac-visionneuse .precedent { left: 18px; top: 50%; transform: translateY(-50%); }
.ac-visionneuse .suivant { right: 18px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767.98px) {
    .ac-visionneuse .precedent, .ac-visionneuse .suivant { top: auto; bottom: 18px; transform: none; }
    .ac-visionneuse .precedent { left: calc(50% - 56px); }
    .ac-visionneuse .suivant { right: calc(50% - 56px); }
    .ac-visionneuse .cadre img, .ac-visionneuse .cadre video { max-height: 70vh; }
}

/* ---- erreur 404 et avertissement --------------------------- */
.ac-404 .ac-pitch { max-width: 560px; }
.ac-404-adresse { display: flex; align-items: center; gap: 10px; max-width: 100%; margin: -10px 0 28px; font-size: 13.5px; color: var(--v3-texte-3); }
.ac-404-adresse code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 4px 10px; font-family: var(--v3-f-mono); font-size: 13px; color: var(--v3-c-rouge); background: rgba(6, 10, 20, .7); border: 1px solid var(--v3-ligne); }
.ac-404 .ac-hero-actions { margin-bottom: 26px; }
.ac-404-code {
    margin: 0; text-align: center; font-family: var(--v3-f-titre); font-stretch: 125%; font-weight: 300; line-height: 1;
    font-size: clamp(96px, 12vw, 170px); letter-spacing: .04em; white-space: nowrap; text-shadow: none;
    background: linear-gradient(180deg, var(--v3-or-clair) 10%, var(--v3-or) 55%, #a87b35 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ac-404-code span { display: inline-block; color: transparent; -webkit-text-stroke: 2px var(--v3-glacier); animation: ac-404-orbite 6s ease-in-out infinite; }
@keyframes ac-404-orbite { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(8deg); } }

.ac-avert-section { padding-top: 56px; }
.ac-avert { display: flex; gap: 24px; padding: 30px 32px; background: var(--v3-surf-a); border: 1px solid color-mix(in srgb, var(--v3-c-rouge) 35%, transparent); border-left: 3px solid var(--v3-c-rouge); }
.ac-avert-icone { flex: none; display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; font-size: 26px; color: var(--v3-c-rouge); border: 1px solid color-mix(in srgb, var(--v3-c-rouge) 45%, transparent); border-radius: 50%; background: color-mix(in srgb, var(--v3-c-rouge) 10%, transparent); }
.ac-avert h2 { margin: 6px 0 12px; font-family: var(--v3-f-titre); font-stretch: 112%; font-weight: 500; font-size: 24px; color: var(--v3-texte); }
.ac-avert p { color: var(--v3-texte-2); font-size: 15.5px; }
.ac-avert-sous-titre { margin-bottom: 6px; color: var(--v3-texte) !important; font-weight: 500; }
.ac-avert ul { margin: 0 0 18px; padding-left: 20px; color: var(--v3-texte-2); }
.ac-avert li { margin-bottom: 4px; }
.ac-avert li::marker { color: var(--v3-c-rouge); }
.ac-avert-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
@media (max-width: 575.98px) { .ac-avert { flex-direction: column; gap: 14px; padding: 22px 20px; } }

/* ---- classements -------------------------------------------- */
.ac-cl-kpis { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 14px 40px; }
.ac-cl-kpis li { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 12px; align-items: center; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-texte-3); }
.ac-cl-kpis li:first-child { grid-template-columns: auto; }
.ac-cl-kpis b { font-family: var(--v3-f-mono); font-size: 30px; font-weight: 500; line-height: 1.1; letter-spacing: 0; color: var(--acc); }
.ac-cl-kpis .ac-anneau { grid-row: span 2; }
.ac-anneau {
    --p: 0; display: block; width: 46px; height: 46px; border-radius: 50%;
    background: conic-gradient(var(--acc) calc(var(--p) * 1%), rgba(150, 175, 210, .14) 0);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
            mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
}
.ac-cl-section { padding: 64px 0; }
.ac-cl-carte { height: 100%; padding: 24px 26px; background: var(--v3-surf-a); border: 1px solid var(--v3-ligne); border-top: 2px solid var(--acc); }
.ac-cl-carte h2 { margin: 0 0 4px; font-family: var(--v3-f-titre); font-weight: 500; font-size: 19px; letter-spacing: .06em; text-transform: uppercase; color: var(--v3-texte); }
.ac-cl-carte h2 .fa { margin-right: 6px; color: var(--acc); }
.ac-cl-intro { margin: 0 0 14px; font-size: 13.5px; color: var(--v3-texte-3); }
.ac-cl-carte > h2 + .ac-cl-table { margin-top: 12px; }
/* listes classées */
.ac-rangs { list-style: none; margin: 0; padding: 0; counter-reset: rang; }
.ac-rangs li { counter-increment: rang; display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--v3-ligne); }
.ac-rangs li:last-child { border-bottom: 0; }
.ac-rangs li::before { content: counter(rang); flex: none; width: 24px; text-align: center; font-family: var(--v3-f-titre); font-weight: 600; font-size: 18px; color: var(--v3-texte-3); }
.ac-rangs li:nth-child(1)::before { color: var(--v3-or-clair); }
.ac-rangs li:nth-child(2)::before { color: #c9d3df; }
.ac-rangs li:nth-child(3)::before { color: #b8957a; }
.ac-rangs img { flex: none; width: 42px; height: 42px; object-fit: cover; background: var(--v3-surf-b); border: 1px solid var(--v3-or-ligne); clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }
.ac-rangs .qui { flex: 1; min-width: 0; }
.ac-rangs .qui b { display: block; font-weight: 600; color: var(--v3-texte); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-rangs .qui small { display: block; font-size: 12px; color: var(--v3-texte-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-rangs .val { flex: none; text-align: right; font-family: var(--v3-f-mono); font-weight: 500; font-size: 16px; color: var(--acc); }
.ac-rangs .val small { font-family: var(--v3-f-texte); font-weight: 400; font-size: 11.5px; color: var(--v3-texte-3); }
.ac-rangs-vide { color: var(--v3-texte-3); }
/* tableaux */
.ac-cl-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.ac-cl-table th { padding: 8px 10px; text-align: right; font-family: var(--v3-f-titre); font-weight: 500; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-texte-3); border-bottom: 1px solid var(--v3-or-ligne); }
.ac-cl-table th:first-child { text-align: left; padding-left: 0; }
.ac-cl-table td { padding: 9px 10px; text-align: right; font-family: var(--v3-f-mono); color: var(--v3-texte-2); border-bottom: 1px solid var(--v3-ligne); white-space: nowrap; }
.ac-cl-table td:first-child { padding-left: 0; text-align: left; font-family: var(--v3-f-texte); color: var(--v3-texte); white-space: normal; width: 100%; }
.ac-cl-table td.fort { color: var(--acc); }
.ac-cl-table tr:last-child td { border-bottom: 0; }
.ac-cl-barre { position: relative; display: block; height: 4px; margin-top: 6px; background: rgba(150, 175, 210, .1); }
.ac-cl-barre i { position: absolute; left: 0; top: 0; bottom: 0; background: color-mix(in srgb, var(--acc) 35%, transparent); }
.ac-cl-barre b { position: absolute; left: 0; top: 0; bottom: 0; background: var(--acc); }
.ac-cl-mulets .ok, .ac-cl-mulets .ko { display: inline-block; padding: 1px 10px; font-family: var(--v3-f-texte); font-size: 12px; border: 1px solid; border-radius: 999px; }
.ac-cl-mulets .ok { color: var(--v3-c-vert); border-color: color-mix(in srgb, var(--v3-c-vert) 45%, transparent); background: rgba(98, 214, 160, .08); }
.ac-cl-mulets .ko { color: var(--v3-c-rouge); border-color: color-mix(in srgb, var(--v3-c-rouge) 45%, transparent); background: rgba(239, 112, 112, .08); }
/* quête de la Terre */
.ac-cl-quete img { display: block; width: calc(100% + 52px); max-width: none; margin: -24px -26px 18px; aspect-ratio: 16 / 7; object-fit: cover; border-bottom: 1px solid var(--v3-ligne); }
.ac-cl-session { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--v3-ligne); }
.ac-cl-session:last-child { border-bottom: 0; }
.ac-cl-session p { margin: 0; font-family: var(--v3-f-titre); font-weight: 600; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--acc); }
.ac-cl-session small { display: block; font-family: var(--v3-f-mono); font-weight: 400; font-size: 11px; letter-spacing: 0; color: var(--v3-texte-3); }
.ac-cl-session ol { margin: 0; padding-left: 18px; color: var(--v3-texte); }
@media (max-width: 575.98px) {
    .ac-cl-carte { padding: 20px 16px; }
    .ac-cl-quete img { width: calc(100% + 32px); margin: -20px -16px 16px; }
    .ac-cl-kpis b { font-size: 24px; }
}

/* ---- mouvement réduit -------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .ac-hero::before, .ac-seldon, .ac-defiler, .ac-404-code span, .ac-famille:not([hidden]) { animation: none; }
    .ac-revele { opacity: 1; transform: none; transition: none; }
    .ac-lieu, .ac-lieu img, .ac-barres i::after { transition: none; }
    .ac-planetes.nomme .ac-planete i, .ac-faq-r { animation: none; }
}
