/* AstroAlma - « Ta Constellation » : planétarium 3D (palette « ciel de nuit » du site) */
.aa-cst, .aa-cst-barre {
  --nuit: #04060d; --encre: #0e1224; --trait: #262c4a; --texte: #e9e4d8; --doux: #9aa0bd; --or: #e6c27a; --vert: #3dff7a;
  --harmonie: #8fb8ff; --tension: #ff8a7a;
  --titre: "Cormorant Garamond", "Iowan Old Style", Georgia, serif; --corps: "Manrope", "Segoe UI", system-ui, sans-serif;
  background: var(--nuit); color: var(--texte); font-family: var(--corps); font-size: 15px; line-height: 1.6; position: relative; isolation: isolate;
}
.aa-cst *, .aa-cst *::before, .aa-cst *::after, .aa-cst-barre, .aa-cst-barre * { box-sizing: border-box; }
.aa-cst-barre { font-family: var(--corps); color: var(--texte); line-height: 1.4; }
.aa-cst-barre [hidden] { display: none !important; }
.aa-cst-barre :focus-visible { outline: 2px solid var(--or); outline-offset: 2px; }
.aa-cst-barre button { font: inherit; }
.aa-cst button { font: inherit; }
.aa-cst :focus-visible { outline: 2px solid var(--or); outline-offset: 3px; }
.aa-cst [hidden] { display: none !important; }

/* Barre d'outils : fixée en haut de l'écran tant que le module est visible (classe .fixe posée par le script) */
.aa-cst-barre-place { height: 0; }
.aa-cst-barre { position: relative; z-index: 98; display: flex; gap: 8px; align-items: center; padding: 10px 16px;
  background: rgba(4, 6, 13, .94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid rgba(38, 44, 74, .7); }
/* Sous l'en-tête du thème (z-index 100 : menu principal, sous-menus, menu mobile) et sous le tiroir du panier (10000) */
.aa-cst-barre.fixe { position: fixed; top: 0; left: 0; z-index: 98; box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .8); will-change: transform; }
@media (max-width: 780px) { .aa-cst-barre { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(4, 6, 13, .97); } .aa-cst-info { backdrop-filter: none; background: rgba(12, 15, 32, .97); } }
.aa-cst-marque { margin-right: auto; font-family: var(--titre); font-size: 21px; white-space: nowrap; }
.aa-cst-marque span { color: var(--or); }
.aa-puce { background: rgba(14, 18, 36, .8); border: 1px solid var(--trait); color: var(--texte); border-radius: 999px; padding: 8px 14px; font-size: 13.5px; line-height: 1.2; cursor: pointer; white-space: nowrap; min-height: 38px; margin: 0; box-shadow: none; text-transform: none; letter-spacing: 0; font-weight: 500; }
.aa-puce[aria-pressed="true"] { border-color: var(--or); color: var(--or); background: rgba(230, 194, 122, .1); }
.aa-puce:hover { border-color: var(--doux); }
.aa-puce:disabled { opacity: .4; cursor: default; }
.aa-puce-vert { border-color: rgba(61, 255, 122, .45); color: var(--vert); max-width: 160px; overflow: hidden; text-overflow: ellipsis; }
.aa-puce-vert[aria-pressed="true"] { border-color: var(--vert); color: var(--vert); background: rgba(61, 255, 122, .1); }
.aa-puce-or { border-color: rgba(230, 194, 122, .5); color: var(--or); }
/* Point de vue : interrupteur à deux positions */
.aa-seg { display: inline-flex; border: 1px solid var(--trait); border-radius: 999px; padding: 3px; background: rgba(14, 18, 36, .8); flex: none; }
.aa-seg button { background: none; border: 0; color: var(--doux); border-radius: 999px; padding: 6px 13px; font-size: 13.5px; line-height: 1.2; cursor: pointer; white-space: nowrap; min-height: 32px; margin: 0; box-shadow: none; text-transform: none; letter-spacing: 0; font-weight: 500; }
.aa-seg button[aria-pressed="true"] { background: var(--or); color: #0b0d18; font-weight: 700; }
.aa-seg button:disabled { opacity: .45; cursor: default; }
/* Même barre sur ordinateur et sur mobile : l'essentiel visible, le reste rangé derrière « ⋯ » */
.aa-puce-plus { display: inline-flex; align-items: center; justify-content: center; gap: 6px; margin-left: auto; }
.aa-puce-plus::after { content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.aa-puce-plus[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
.aa-menu { display: none; position: absolute; right: 12px; top: calc(100% + 6px); flex-direction: column; align-items: stretch; gap: 6px; padding: 10px; min-width: 240px;
  background: rgba(10, 13, 28, .98); border: 1px solid var(--trait); border-radius: 16px; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .9); }
.aa-menu.ouvert { display: flex; }
.aa-menu .aa-puce { text-align: left; border-radius: 12px; font-size: 14.5px; padding: 10px 14px; min-height: 42px; }
@media (min-width: 641px) {
  .aa-cst-barre { padding-left: max(16px, calc((100% - 1180px) / 2)); padding-right: max(16px, calc((100% - 1180px) / 2)); }
  .aa-puce-plus { margin-left: 0; }
  .aa-menu, .aa-date-pop { right: max(12px, calc((100% - 1180px) / 2)); }
}
@media (max-width: 640px) {
  .aa-cst-marque { display: none; }
  .aa-cst-barre { padding: 8px 10px; gap: 6px; }
  .aa-long { display: none; }
  .aa-seg button { padding: 6px 11px; font-size: 13px; }
  .aa-puce { padding: 7px 11px; font-size: 13px; }
  .aa-puce-vert { max-width: 118px; }
  .aa-menu { right: 8px; left: 8px; min-width: 0; }
  .aa-menu .aa-puce { font-size: 15px; padding: 11px 14px; min-height: 44px; }
}
@media (max-width: 360px) { .aa-seg button { padding: 6px 8px; } .aa-puce { padding: 7px 9px; } }

.aa-cst-ciel { position: relative; height: min(88vh, 860px); min-height: 540px; background: var(--nuit); }
.aa-cst-ciel #aa-scene { position: absolute; inset: 0; display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; }
/* Formulaire affiché : le ciel tourne doucement derrière, la section s'allonge selon le formulaire (rien n'est coupé) */
.aa-cst-ciel.avec-form { height: auto; min-height: min(88vh, 860px); display: flex; justify-content: center; align-items: flex-start; padding: 40px 16px 56px; }
.aa-cst-ciel.avec-form #aa-scene { pointer-events: none; }
.aa-cst-ciel.avec-form .aa-cst-titre, .aa-cst-ciel.avec-form .aa-cst-boussole, .aa-cst-ciel.avec-form .aa-cst-aide, .aa-cst-ciel.avec-form .aa-cst-info, .aa-cst-ciel.avec-form .aa-cst-etiq { display: none; }
.aa-cst-ciel #aa-scene.saisi { cursor: grabbing; }
.aa-cst-etiq { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.aa-et { position: absolute; left: 0; top: 0; will-change: transform; font-size: 11px; letter-spacing: .05em; color: var(--doux); white-space: nowrap; opacity: 0; transition: opacity .5s; text-shadow: 0 0 6px #000, 0 0 2px #000; }
.aa-cst-etiq.visibles .aa-et.on, .aa-et.focus { opacity: 1; }
.aa-et b { color: var(--texte); font-weight: 500; }
.aa-et.b2 b, .aa-et.b2 { color: var(--vert); }
.aa-et.auj, .aa-et.auj b { color: #9fd6ff; }
.aa-et.angle { color: var(--or); letter-spacing: .14em; font-size: 10px; text-transform: uppercase; }

.aa-cst-titre { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 22px; text-align: center; pointer-events: none; background: linear-gradient(transparent, rgba(4, 6, 13, .88) 55%); }
.aa-surtitre { font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--doux); }
.aa-nom { font-family: var(--titre); font-weight: 500; font-size: clamp(32px, 6vw, 60px); line-height: 1.05; margin: 6px 0 4px; text-wrap: balance; opacity: 0; transform: translateY(8px); transition: opacity 1.6s ease, transform 1.6s ease; }
.aa-nom.visible { opacity: 1; transform: none; }
.aa-sous-nom { color: var(--doux); font-size: 13px; }

.aa-cst-aide { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 10px; pointer-events: none; transition: opacity .8s; opacity: 0; }
.aa-cst-aide.visible { opacity: 1; }
.aa-cst-geste { width: 92px; height: 92px; border-radius: 50%; border: 1px dashed rgba(230, 194, 122, .6); position: relative; animation: aa-tourne 6s linear infinite; }
.aa-cst-geste span { position: absolute; left: 50%; top: 50%; font-size: 30px; transform: translate(-50%, -50%); animation: aa-glisse 2.4s ease-in-out infinite; }
.aa-cst-aide-txt { background: rgba(14, 18, 36, .9); border: 1px solid rgba(230, 194, 122, .5); border-radius: 18px; padding: 7px 16px; font-size: 13px; text-align: center; max-width: min(440px, calc(100vw - 48px)); }
@keyframes aa-tourne { to { transform: rotate(360deg); } }
@keyframes aa-glisse { 0%, 100% { transform: translate(-90%, -50%); } 50% { transform: translate(-10%, -50%); } }
.aa-cst-boussole { position: absolute; left: 16px; bottom: 130px; font-size: 12px; color: var(--doux); display: flex; flex-direction: column; gap: 2px; pointer-events: none; }
.aa-cst-boussole b { color: var(--texte); font-weight: 500; letter-spacing: .14em; font-size: 11px; }

.aa-cst-info { position: absolute; right: 16px; bottom: 130px; width: min(340px, calc(100% - 32px)); background: rgba(14, 18, 36, .92); border: 1px solid var(--trait); border-radius: 14px; padding: 14px 16px; backdrop-filter: blur(8px); z-index: 2; }
.aa-cst-info h4 { margin: 0 0 2px; font-family: var(--titre); font-size: 24px; font-weight: 600; padding-right: 20px; color: var(--texte); }
.aa-cst-info .aa-pos { color: var(--or); font-size: 13px; font-variant-numeric: tabular-nums; }
.aa-cst-info .aa-astro { color: var(--doux); font-size: 12px; margin-top: 4px; font-variant-numeric: tabular-nums; }
.aa-cst-info p, .aa-info-txt { margin: 8px 0 0; font-size: 14px; }
.aa-cst-fermer { position: absolute; top: 8px; right: 10px; background: none; border: 0; color: var(--doux); font-size: 18px; cursor: pointer; }

/* Formulaire : même bloc profil que le thème astral (assets/profils.css) */
.aa-cst-form { position: relative; z-index: 5; width: min(600px, 100%); background: rgba(10, 13, 28, .88); border: 1px solid var(--trait); border-radius: 24px; padding: 26px 22px 22px;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); display: flex; flex-direction: column; gap: 14px; box-shadow: 0 30px 80px -40px #000; }
.aa-cst-form .aa-cst-form-titre { font-family: var(--titre); font-weight: 600; font-size: clamp(30px, 5vw, 40px); margin: 0; line-height: 1.1; color: var(--texte); text-align: center; letter-spacing: 0; }
.aa-cst-form .aa-cst-form-intro { margin: 0 0 4px; color: var(--doux); font-size: 15px; text-align: center; }
.aa-cst-form .astroalma-profil { margin: 0 !important; }
.aa-cst .aa-lien { background: none; border: 0; color: var(--or); padding: 4px 0; text-align: left; cursor: pointer; font-size: 15px; box-shadow: none; text-transform: none; letter-spacing: 0; font-weight: 600; min-height: 0; }
.aa-cst .aa-go { background: linear-gradient(135deg, #e6c27a, #b8904a); color: #0b0d18; border: 0; border-radius: 999px; padding: 15px 18px; font-weight: 700; font-size: 16px; cursor: pointer; min-height: 52px; box-shadow: none; text-transform: none; letter-spacing: 0; }
.aa-cst .aa-go:disabled { opacity: .6; cursor: wait; }
.aa-erreur { margin: 0; color: var(--tension); font-size: 14px; }
.aa-date-pop .aa-erreur { font-size: 13px; }
@media (max-width: 640px) { .aa-cst-ciel.avec-form { padding: 20px 10px 40px; } .aa-cst-form { padding: 20px 12px 16px; border-radius: 20px; } }

/* Enregistrement de la vidéo */
.aa-cst-enreg { position: absolute; inset: 0; z-index: 8; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(4, 6, 13, .97); }
.aa-cst-enreg .aa-enreg-apercu { display: block; height: min(62vh, 560px); width: auto; aspect-ratio: 9 / 16; margin: 0 auto 6px; border-radius: 12px; border: 1px solid var(--trait); }
.aa-cst.enregistre .aa-cst-etiq, .aa-cst.enregistre .aa-cst-titre, .aa-cst.enregistre .aa-cst-boussole, .aa-cst.enregistre .aa-cst-aide { display: none; }
.aa-cst-enreg-in { background: rgba(10, 13, 28, .92); border: 1px solid var(--or); border-radius: 16px; padding: 12px 18px; display: grid; gap: 6px; min-width: min(340px, 100%); text-align: center; }
.aa-cst-enreg-in i { display: block; height: 4px; border-radius: 2px; background: var(--trait); overflow: hidden; }
.aa-cst-enreg-in i span { display: block; height: 100%; width: 0; background: var(--or); }

/* Fiche sous le ciel */
.aa-cst-fiche { padding: 40px 16px 64px; }
.aa-fiche-in { max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; }
@media (max-width: 780px) { .aa-fiche-in { grid-template-columns: 1fr; gap: 32px; } .aa-cst-boussole { display: none; } .aa-cst-info { left: 16px; right: auto; bottom: 150px; } }
.aa-cst h2 { font-family: var(--titre); font-weight: 600; font-size: 26px; line-height: 1.2; margin: 0 0 12px; text-wrap: balance; color: var(--texte); }
.aa-cst h3 { font-family: var(--corps); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--doux); font-weight: 700; margin: 22px 0 12px; }
.aa-lecture p { margin: 0 0 12px; max-width: 64ch; }
.aa-ouverture { font-family: var(--titre); font-style: italic; font-size: 21px; line-height: 1.45; }
.aa-badge { display: inline-block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--or); border: 1px solid rgba(230, 194, 122, .4); border-radius: 999px; padding: 2px 10px; margin-bottom: 14px; }
.aa-doux { color: var(--doux); font-size: 14px; } .aa-fort { font-weight: 700; }
.aa-etoiles { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--trait); }
.aa-etoiles li { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--trait); font-variant-numeric: tabular-nums; cursor: pointer; margin: 0; }
.aa-etoiles li:hover .aa-astre { color: var(--or); }
.aa-etoiles .aa-pastille { width: 9px; height: 9px; border-radius: 50%; align-self: center; box-shadow: 0 0 8px currentColor; background: currentColor; }
.aa-etoiles .aa-astre { font-weight: 500; min-width: 0; }
.aa-etoiles .aa-astre small { color: var(--doux); font-weight: 400; margin-left: 6px; }
.aa-etoiles .aa-p { color: var(--doux); font-size: 13px; text-align: right; }
.aa-etoiles li.b2 .aa-astre { color: var(--vert); }
.aa-score { display: flex; align-items: baseline; gap: 14px; margin: 4px 0 6px; }
.aa-score b { font-family: var(--titre); font-size: 54px; font-weight: 600; line-height: 1; color: var(--or); }
.aa-barres { display: grid; gap: 8px; margin: 14px 0 6px; }
.aa-barre { display: grid; grid-template-columns: 150px minmax(0, 1fr) 40px; gap: 10px; align-items: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.aa-barre i { display: block; height: 6px; border-radius: 3px; background: var(--trait); position: relative; overflow: hidden; }
.aa-barre i span { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, #b89350, var(--or)); border-radius: 3px; }
.aa-liens { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.aa-liens li { border: 1px solid var(--trait); border-radius: 12px; padding: 12px 14px; background: var(--encre); cursor: pointer; margin: 0; }
.aa-liens li:hover { border-color: var(--doux); }
.aa-liens .t { font-weight: 700; }
.aa-liens .f { color: var(--doux); font-size: 12.5px; margin-top: 4px; font-variant-numeric: tabular-nums; }
.aa-liens .plus .t, .aa-liens li.plus .t { color: #9fe0b8; } .aa-liens li.moins .t { color: var(--tension); }
/* Version complète */
.aa-offre { max-width: 1060px; margin: 48px auto 0; scroll-margin-top: 80px; }
.aa-offre > h2 { font-size: 30px; }
.aa-offre-solde { color: var(--doux); font-size: 14px; margin: -4px 0 16px; }
.aa-offre-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 860px) { .aa-offre-grille { grid-template-columns: 1fr; } }
.aa-carte { border: 1px solid var(--trait); border-radius: 16px; padding: 18px; background: var(--encre); display: flex; flex-direction: column; gap: 8px; }
.aa-carte.achete { border-color: rgba(230, 194, 122, .55); }
.aa-carte strong { font-family: var(--titre); font-size: 23px; font-weight: 600; }
.aa-carte p { margin: 0; color: var(--doux); font-size: 14px; }
.aa-carte .aa-prix { margin-top: auto; padding-top: 6px; color: var(--or); font-size: 13px; }
.aa-carte-btn { margin-top: 6px; background: linear-gradient(135deg, #e6c27a, #b8904a); color: #0b0d18; border: 0; border-radius: 999px; padding: 12px 16px; font-weight: 700; font-size: 15px; cursor: pointer; min-height: 46px; box-shadow: none; text-transform: none; letter-spacing: 0; }
.aa-carte-btn.secondaire { background: transparent; color: var(--or); border: 1px solid var(--or); }
.aa-carte-btn:disabled { opacity: .6; cursor: wait; }
.aa-offre-msg { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: rgba(230, 194, 122, .08); border: 1px solid rgba(230, 194, 122, .3); font-size: 14px; }
.aa-offre-msg a { color: var(--or); font-weight: 700; }
.aa-legende-boite { margin-top: 28px; border: 1px solid rgba(230, 194, 122, .35); border-radius: 20px; padding: clamp(20px, 4vw, 44px); background: linear-gradient(180deg, rgba(230, 194, 122, .06), rgba(14, 18, 36, .6)); scroll-margin-top: 80px; }
.aa-legende { max-width: 70ch; margin: 0 auto; }
.aa-legende-sur { text-align: center; font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--doux); margin: 0; }
.aa-cst .aa-legende-titre { text-align: center; font-size: clamp(30px, 5vw, 46px); margin: 6px 0 24px; color: var(--or); }
.aa-cst .aa-legende h3 { font-family: var(--titre); font-size: 24px; letter-spacing: 0; text-transform: none; color: var(--texte); font-weight: 600; margin: 28px 0 8px; }
.aa-legende p { margin: 0 0 14px; font-size: 16px; line-height: 1.75; }
.aa-legende .aa-legende-titre + p { font-family: var(--titre); font-style: italic; font-size: 21px; line-height: 1.5; }
.aa-legende-pied { text-align: center; color: var(--doux); font-size: 13px; margin-top: 22px; }
.aa-legende-pied a { color: var(--or); }
.aa-note { max-width: 1060px; margin: 28px auto 0; color: var(--doux); font-size: 12.5px; }
.aa-note a { color: var(--or); }
@media (max-width: 780px) { .aa-barre { grid-template-columns: 112px minmax(0, 1fr) 36px; } }
@media (prefers-reduced-motion: reduce) { .aa-nom { transition: none; } .aa-cst-geste, .aa-cst-geste span { animation: none; } }

/* ── v9.40 : date, défilement, zoom, astuces ── */
.aa-court { display: none; }
@media (max-width: 640px) { .aa-court { display: inline; } }
.aa-menu-mobile { display: none; }
@media (max-width: 640px) { .aa-puce-date { display: none; } .aa-menu .aa-menu-mobile { display: block; } }
.aa-date-pop { position: absolute; top: calc(100% + 6px); right: 12px; width: min(380px, calc(100vw - 24px)); padding: 16px; display: grid; gap: 10px;
  background: rgba(10, 13, 28, .98); border: 1px solid var(--trait); border-radius: 16px; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .9); z-index: 2; }
.aa-date-pop strong { font-family: var(--titre); font-size: 22px; font-weight: 600; }
.aa-date-pop p, .aa-date-desc { margin: 0; color: var(--doux); font-size: 13.5px; }
.aa-date-champs { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; }
.aa-date-champs label { display: grid; gap: 4px; font-size: 12.5px; color: var(--doux); }
.aa-date-champs input { width: 100%; background: #070a17; border: 1px solid var(--trait); border-radius: 12px; color: var(--texte); padding: 11px 12px; font-size: 16px; font-family: var(--corps); min-height: 46px; }
.aa-date-champs input:focus { border-color: var(--or); outline: none; }
.aa-date-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.aa-date-actions .aa-go { padding: 11px 18px; min-height: 44px; font-size: 15px; }
.aa-cst-barre .aa-go { background: linear-gradient(135deg, #e6c27a, #b8904a); color: #0b0d18; border: 0; border-radius: 999px; font-weight: 700; cursor: pointer; }
.aa-cst-barre .aa-lien { background: none; border: 0; color: var(--or); cursor: pointer; font-weight: 600; padding: 4px 0; }
.aa-cst-barre .aa-erreur { color: var(--tension); }

.aa-cst-ciel { height: min(82vh, 860px); }
@media (max-width: 640px) { .aa-cst-ciel { height: 76vh; height: 76svh; min-height: 460px; } }
.aa-cst-info { max-height: calc(100% - 190px); overflow: auto; overscroll-behavior: contain; }
@media (max-width: 780px) { .aa-cst-info { max-height: 52%; bottom: 120px; } }
.aa-cst-zoom { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); display: grid; gap: 6px; z-index: 3; }
.aa-cst-zoom button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--trait); background: rgba(14, 18, 36, .85); color: var(--texte); font-size: 22px; line-height: 1; cursor: pointer; padding: 0; }
.aa-cst-zoom button:hover { border-color: var(--or); color: var(--or); }
.aa-cst-explorer { position: absolute; left: 12px; top: 12px; z-index: 3; border: 1px solid rgba(230, 194, 122, .6); background: rgba(14, 18, 36, .9); color: var(--or); border-radius: 999px; padding: 9px 14px; font-size: 14px; font-weight: 600; cursor: pointer; }
.aa-cst-explorer[aria-pressed="true"] { background: var(--or); color: #0b0d18; }
.aa-cst-ciel.explore #aa-scene { touch-action: none; }
.aa-cst-astuce { position: absolute; left: 50%; top: 18%; transform: translate(-50%, 0); z-index: 4; max-width: min(420px, calc(100% - 32px)); text-align: center;
  background: rgba(10, 13, 28, .94); border: 1px solid var(--or); color: var(--texte); border-radius: 14px; padding: 10px 16px; font-size: 14px; pointer-events: none; opacity: 0; transition: opacity .35s; }
.aa-cst-astuce.visible { opacity: 1; }
.aa-cst-suite { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); z-index: 3; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  border: 1px solid rgba(230, 194, 122, .55); background: rgba(10, 13, 28, .88); color: var(--or); border-radius: 999px; padding: 9px 18px; font-size: 14px; font-weight: 600; cursor: pointer;
  animation: aa-rebond 2.2s ease-in-out infinite; transition: opacity .4s; }
.aa-cst-suite b { font-size: 17px; }
.aa-cst-suite.cache { opacity: 0; pointer-events: none; }
@keyframes aa-rebond { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 6px); } }
.aa-cst-titre { padding-bottom: 58px; }
.aa-cst-ciel.avec-form .aa-cst-zoom, .aa-cst-ciel.avec-form .aa-cst-explorer, .aa-cst-ciel.avec-form .aa-cst-suite, .aa-cst-ciel.avec-form .aa-cst-astuce { display: none; }
@media (prefers-reduced-motion: reduce) { .aa-cst-suite { animation: none; } }
/* Bouton qui travaille : petit cercle qui tourne */
.aa-spin { display: inline-block; width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; vertical-align: -3px; margin-right: 8px; animation: aa-tourne .8s linear infinite; }

/* ── Partage : quatre boutons de même taille, centrés, icône de couleur dans une pastille ── */
.aa-partage { max-width: 1060px; margin: 44px auto 0; text-align: center; padding: 30px 20px 28px; border: 1px solid var(--trait); border-radius: 22px;
  background: radial-gradient(120% 140% at 50% 0%, rgba(143, 184, 255, .08), rgba(14, 18, 36, .55) 60%); }
.aa-cst .aa-partage > h2 { margin: 0 0 6px; font-size: clamp(24px, 3.4vw, 30px); }
.aa-partage > p { margin: 0 auto 20px; color: var(--doux); font-size: 14.5px; max-width: 46ch; }
.aa-partage-boutons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 172px)); justify-content: center; gap: 12px; max-width: 760px; margin: 0 auto; }
.aa-cst .aa-p-btn { display: flex; align-items: center; justify-content: flex-start; gap: 12px; width: 100%; margin: 0; padding: 8px 16px 8px 8px; min-height: 54px;
  border: 1px solid var(--trait); border-radius: 999px; background: rgba(14, 18, 36, .85); color: var(--texte); font-size: 14.5px; font-weight: 600; line-height: 1.2;
  cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; text-align: left; transition: border-color .2s, transform .2s, background-color .2s; }
.aa-cst .aa-p-btn:is(:hover, :focus, :active) { background: rgba(22, 27, 52, .95); color: var(--texte); border-color: rgba(230, 194, 122, .7); box-shadow: none; }
.aa-cst .aa-p-btn:hover { transform: translateY(-2px); }
.aa-cst .aa-p-btn:focus:not(:focus-visible) { border-color: var(--trait); }
.aa-p-ico { flex: none; width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff;
  background: linear-gradient(135deg, #e6c27a, #b8904a); box-shadow: 0 6px 16px -8px rgba(0, 0, 0, .9); }
.aa-p-ico svg { width: 19px; height: 19px; }
.aa-p-story .aa-p-ico { background: linear-gradient(45deg, #f9ce34, #ee2a7b 55%, #6228d7); }
.aa-p-wa .aa-p-ico { background: #25d366; }
.aa-p-fb .aa-p-ico { background: #1877f2; }
.aa-p-copie .aa-p-ico, .aa-p-natif .aa-p-ico { color: #0b0d18; }
.aa-p-btn.aa-envoi { opacity: .7; cursor: wait; }
@media (max-width: 560px) {
  .aa-partage { padding: 24px 14px; }
  .aa-partage-boutons { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .aa-cst .aa-p-btn { font-size: 14px; gap: 10px; }
  .aa-cst .aa-p-natif { grid-column: 1 / -1; justify-content: center; background: linear-gradient(135deg, #e6c27a, #b8904a); color: #0b0d18; border-color: transparent; }
  .aa-cst .aa-p-natif:is(:hover, :focus, :active) { background: linear-gradient(135deg, #ecca86, #c09a55); color: #0b0d18; border-color: transparent; }
  .aa-cst .aa-p-natif .aa-p-ico { background: rgba(11, 13, 24, .14); box-shadow: none; }
}

/* ── Version complète : souvenir ou cadeau ── */
.aa-offre-sur { margin: 0 0 6px; font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--or); }
.aa-offre > h2 { font-size: clamp(28px, 4vw, 38px); margin-bottom: 10px; }
.aa-offre-intro { color: var(--texte); opacity: .9; font-size: 15.5px; max-width: 70ch; margin: 0 0 10px; }
.aa-carte-visuel { margin: -18px -18px 6px; height: 200px; border-radius: 16px 16px 0 0; overflow: hidden; position: relative; background: radial-gradient(ellipse at 50% 40%, #2a2560, #0b0d1f 70%); display: flex; align-items: center; justify-content: center; }
.aa-carte-visuel img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }
.aa-visuel-video img { object-position: center 40%; }
.aa-visuel-attente { color: var(--doux); font-size: 13px; }
.aa-play { position: absolute; width: 58px; height: 58px; border-radius: 50%; background: rgba(10, 13, 28, .7); border: 1px solid rgba(255, 255, 255, .6); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 22px; padding-left: 4px; }
.aa-visuel-legende { flex-direction: column; padding: 22px 22px 16px; background: linear-gradient(180deg, #f6efdf, #e9dcc0); color: #3b2f1e; justify-content: flex-start; text-align: left; }
.aa-visuel-legende p { margin: 0; font-family: var(--titre); font-style: italic; font-size: 17px; line-height: 1.45; color: #3b2f1e !important; max-height: 125px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 60%, transparent); mask-image: linear-gradient(#000 60%, transparent); }
.aa-visuel-legende span { margin-top: auto; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #8a6a2e; }
.aa-coffret { margin-top: 16px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px 20px; border-radius: 18px;
  border: 1px solid rgba(230, 194, 122, .6); background: linear-gradient(120deg, rgba(230, 194, 122, .16), rgba(14, 18, 36, .7) 60%); }
.aa-coffret-badge { background: var(--or); color: #0b0d18; font-weight: 700; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; border-radius: 999px; padding: 5px 11px; white-space: nowrap; }
.aa-coffret-txt strong { font-family: var(--titre); font-size: 24px; font-weight: 600; }
.aa-coffret-txt p { margin: 2px 0 0; color: var(--doux); font-size: 14px; }
.aa-coffret-txt b { color: var(--or); }
.aa-coffret .aa-carte-btn { margin: 0; white-space: nowrap; }
@media (max-width: 760px) { .aa-coffret { grid-template-columns: 1fr; text-align: left; } .aa-coffret-badge { justify-self: start; } }
.aa-cadeau { margin-top: 14px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 16px; align-items: end; padding: 18px 20px; border-radius: 18px; border: 1px dashed rgba(230, 194, 122, .45); background: rgba(14, 18, 36, .55); }
.aa-cadeau-txt strong { font-family: var(--titre); font-size: 22px; font-weight: 600; }
.aa-cadeau-txt p { margin: 2px 0 0; color: var(--doux); font-size: 14px; }
.aa-cadeau-mot { display: grid; gap: 5px; font-size: 12.5px; color: var(--doux); }
.aa-cadeau-mot input { width: 100%; background: #070a17; border: 1px solid var(--trait); border-radius: 12px; color: var(--texte); padding: 11px 12px; font-size: 16px; font-family: var(--corps); min-height: 46px; }
.aa-cadeau-mot input:focus { border-color: var(--or); outline: none; }
.aa-cadeau .aa-lien { padding-bottom: 12px; white-space: nowrap; }
@media (max-width: 860px) { .aa-cadeau { grid-template-columns: 1fr; } .aa-cadeau .aa-lien { padding-bottom: 0; } }
.aa-cst-form-cadeau { margin: 0; padding: 10px 14px; border-radius: 12px; background: rgba(230, 194, 122, .1); border: 1px solid rgba(230, 194, 122, .4); color: var(--texte); font-size: 14px; text-align: center; }
.aa-legende-pied { text-align: center; margin-top: 26px; display: grid; gap: 8px; justify-items: center; }
.aa-legende-pied p { margin: 0; color: var(--doux); font-size: 13px; }
.aa-legende-pied .aa-carte-btn { margin: 0; padding: 13px 22px; }
.aa-carte-btn .aa-spin, .aa-go .aa-spin { color: #0b0d18; }
.aa-carte-btn.secondaire .aa-spin { color: var(--or); }

/* La fiche d'un astre est ouverte : les boutons de zoom s'effacent pour ne pas la chevaucher */
.aa-cst-info:not([hidden]) ~ .aa-cst-zoom { display: none !important; }

/* ── Le thème (Astra) recolore tout bouton au survol et au focus (button:hover, button:focus) :
      sur ordinateur, chaque bouton du module garde donc explicitement ses propres couleurs ── */
.aa-cst-barre .aa-puce:is(:hover, :focus, :active), .aa-cst .aa-puce:is(:hover, :focus, :active) { background: rgba(20, 25, 48, .9); color: var(--texte); border-color: var(--doux); box-shadow: none; }
.aa-cst-barre .aa-puce[aria-pressed="true"]:is(:hover, :focus, :active) { background: rgba(230, 194, 122, .14); color: var(--or); border-color: var(--or); }
.aa-cst-barre .aa-puce-or:is(:hover, :focus, :active) { color: var(--or); border-color: var(--or); }
.aa-cst-barre .aa-puce-vert:is(:hover, :focus, :active) { color: var(--vert); border-color: var(--vert); background: rgba(61, 255, 122, .06); }
.aa-cst-barre .aa-puce-vert[aria-pressed="true"]:is(:hover, :focus, :active) { background: rgba(61, 255, 122, .12); }
.aa-cst-barre .aa-puce:disabled:is(:hover, :focus, :active) { background: rgba(14, 18, 36, .8); color: var(--texte); border-color: var(--trait); }
.aa-cst-barre .aa-seg button:is(:hover, :focus, :active) { background: rgba(255, 255, 255, .06); color: var(--texte); border: 0; box-shadow: none; }
.aa-cst-barre .aa-seg button[aria-pressed="true"]:is(:hover, :focus, :active) { background: var(--or); color: #0b0d18; }
.aa-cst-barre .aa-go:is(:hover, :focus, :active), .aa-cst .aa-go:is(:hover, :focus, :active) { background: linear-gradient(135deg, #ecca86, #c09a55); color: #0b0d18; border: 0; box-shadow: 0 10px 24px -14px rgba(230, 194, 122, .8); }
.aa-cst-barre .aa-lien:is(:hover, :focus, :active), .aa-cst .aa-lien:is(:hover, :focus, :active) { background: none; color: #f0d59c; border: 0; box-shadow: none; text-decoration: underline; text-underline-offset: 3px; }
.aa-cst .aa-cst-fermer:is(:hover, :focus, :active) { background: none; color: var(--texte); border: 0; box-shadow: none; }
.aa-cst .aa-cst-zoom button:is(:hover, :focus, :active) { background: rgba(20, 25, 48, .95); color: var(--or); border-color: var(--or); box-shadow: none; }
.aa-cst .aa-cst-explorer:is(:hover, :focus, :active) { background: rgba(20, 25, 48, .95); color: var(--or); border-color: var(--or); }
.aa-cst .aa-cst-explorer[aria-pressed="true"]:is(:hover, :focus, :active) { background: var(--or); color: #0b0d18; }
.aa-cst .aa-cst-suite:is(:hover, :focus, :active) { background: rgba(20, 25, 48, .95); color: var(--or); border-color: var(--or); box-shadow: none; }
.aa-cst .aa-carte-btn:is(:hover, :focus, :active) { background: linear-gradient(135deg, #ecca86, #c09a55); color: #0b0d18; border: 0; box-shadow: 0 10px 24px -14px rgba(230, 194, 122, .8); }
.aa-cst .aa-carte-btn.secondaire:is(:hover, :focus, :active) { background: rgba(230, 194, 122, .1); color: var(--or); border: 1px solid var(--or); box-shadow: none; }
.aa-cst .saved-profiles-clear:is(:focus, :active), .aa-cst .delete-saved-profile:is(:focus, :active) { background: transparent; }
.aa-cst button:focus:not(:focus-visible), .aa-cst-barre button:focus:not(:focus-visible) { outline: none; }

/* Très petits écrans : barre réduite à l'essentiel (point de vue, un bouton d'état, Paramètres) ; le reste passe dans le menu */
.aa-menu-etroit { display: none; }
@media (max-width: 480px) {
  .aa-cst-barre:not(.jour) #aa-b-auj { display: none; }
  .aa-cst-barre.jour #aa-b-couple { display: none; }
  .aa-menu .aa-menu-etroit:not([hidden]) { display: block; }
  .aa-menu .aa-puce-vert { max-width: none; }
  .aa-puce-plus { padding-left: 13px; padding-right: 13px; }
}

/* Ciel affiché avant le moteur 3D (chargé au premier geste) : dégradé de nuit et étoiles en CSS, aucun fichier à télécharger */
.aa-cst-ciel { background-color: #04060d;
  background-image:
    radial-gradient(1px 1px at 12% 18%, rgba(255,255,255,.85), transparent 60%), radial-gradient(1px 1px at 67% 9%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1.5px 1.5px at 83% 31%, rgba(255,240,215,.9), transparent 60%), radial-gradient(1px 1px at 31% 47%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1px 1px at 52% 72%, rgba(210,225,255,.75), transparent 60%), radial-gradient(1.5px 1.5px at 8% 83%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1px 1px at 91% 77%, rgba(255,255,255,.6), transparent 60%), radial-gradient(1px 1px at 41% 12%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(1px 1px at 74% 54%, rgba(255,255,255,.5), transparent 60%), radial-gradient(1px 1px at 22% 64%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(ellipse 70% 45% at 30% 40%, rgba(70, 60, 140, .22), transparent 70%),
    radial-gradient(ellipse 60% 50% at 80% 75%, rgba(40, 60, 120, .18), transparent 70%);
  background-size: 260px 260px, 330px 330px, 410px 410px, 290px 290px, 370px 370px, 310px 310px, 450px 450px, 230px 230px, 390px 390px, 340px 340px, 100% 100%, 100% 100%;
  background-repeat: repeat, repeat, repeat, repeat, repeat, repeat, repeat, repeat, repeat, repeat, no-repeat, no-repeat; }
.aa-cst.aa-charge .aa-go { opacity: .85; }
.aa-spin { will-change: transform; }

/* Texte de la page (bloc éditorial et questions fréquentes) sur le même fond de nuit que le module */
body.aa-page-cst .aa-seo-zone { background-color: #04060d; padding-top: 24px; }

/* Formulaire : le ciel 3D ne couvre que la hauteur de l'écran (au lieu de tout le formulaire) et sans flou sur mobile : défilement fluide */
.aa-cst-ciel.avec-form #aa-scene { height: min(100vh, 900px); bottom: auto; }
@media (max-width: 780px) { .aa-cst-form { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(10, 13, 28, .96); } }
.aa-visuel-poster img { object-fit: cover; object-position: center 40%; }
