:root{--fond:#F2F0E8;--surface:#FFFFFF;--texte:#1F1D1B;--texte-doux:#5C5A50;--bordure:#D9D6CC;--accent:#C7431B;--accent-texte:#ffffff;--orange:#E8562A;--badge-fond:#E6E1F7;--badge-texte:#4A3BA8;--alerte-fond:#ECEBE4;--or:#c2461f;--lavande:#B9B3EC;color-scheme:light}
/* MediumRank : feuille de style unique (servie en /assets/site.<empreinte>.css, CSP style-src 'self').
   Les couleurs viennent de config.json (« couleurs ») : build.py ajoute en tête les variables :root, puis celles du
   mode sombre. Polices système seulement (aucune ressource externe). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:1rem;accent-color:var(--accent);caret-color:var(--accent);scrollbar-color:var(--bordure) transparent}
body{margin:0;background:var(--fond);color:var(--texte);font:1.0625rem/1.6 system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;-webkit-tap-highlight-color:transparent}
::selection{background:var(--or);color:#1d1638}
h1,h2,h3,.titre-elegant,.marque{font-family:'Iowan Old Style','Palatino Linotype',Palatino,'Book Antiqua',Georgia,serif;font-weight:600}
h1,h2,h3{text-wrap:balance}
h1{font-size:clamp(1.7rem,5vw,2.5rem);line-height:1.15;margin:.5em 0 .4em;letter-spacing:-.01em}
h2{font-size:clamp(1.3rem,3.4vw,1.65rem);line-height:1.25;margin:1.8em 0 .5em}
h3{font-size:1.12rem;margin:1.2em 0 .4em}
p,li,dd{text-wrap:pretty}
a{color:var(--accent);text-underline-offset:.15em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
a,button,summary,label{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
img,svg{max-width:100%}
[hidden]{display:none!important}
.enveloppe{max-width:70rem;margin:0 auto;padding:0 16px}
.lecture{max-width:44rem}
main{padding-bottom:1rem}
.meta{color:var(--texte-doux);font-size:.9rem}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* bandeau fin + en-tête */
.ruban{background:linear-gradient(90deg,#1d1638,#3b2768);color:#f6efe0;font-size:.88rem;text-align:center}
.ruban a{color:#f3d58a;text-decoration:none;display:block;padding:.4rem 16px;font-weight:600}
.ruban a:hover{text-decoration:underline}
header.site{border-bottom:1px solid var(--bordure);background:var(--surface)}
header.site .enveloppe{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1.5rem;padding-top:.7rem;padding-bottom:.7rem}
.marque{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--texte);text-decoration:none;font-size:1.2rem}
.marque svg{flex:none;color:var(--accent)}
nav.principale ul{display:flex;flex-wrap:wrap;gap:.2rem .9rem;list-style:none;margin:0;padding:0;font-size:.95rem}
nav.principale a{color:var(--texte);text-decoration:none;padding:.2rem 0;border-bottom:2px solid transparent;white-space:nowrap}
@media (max-width:640px){
header.site .enveloppe{padding-bottom:0}
nav.principale{flex:1 0 100%;margin:0 -16px;min-width:0}
nav.principale ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:0 16px .6rem;gap:1.1rem;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),transparent)}
nav.principale ul::-webkit-scrollbar{display:none}
nav.principale li{scroll-snap-align:start}
nav.principale a{display:inline-block;padding:.35rem 0}
}
nav.principale a:hover,nav.principale a[aria-current]{border-bottom-color:var(--or)}
.fil{font-size:.88rem;color:var(--texte-doux);margin:1rem 0 0}
.fil ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.3rem}
.fil li+li::before{content:'›';margin-right:.3rem}

/* bandeaux et mentions sobres */
.bandeau{background:var(--alerte-fond);border:1px solid var(--bordure);border-radius:8px;padding:.6rem .9rem;font-size:.92rem;margin:1rem 0}
.exemple{border-color:#b3261e;color:var(--texte)}
.mention{font-size:.85rem;color:var(--texte-doux);margin:.6rem 0}
.mention a{color:var(--texte-doux)}
.partenaire{font-size:.78rem;color:var(--texte-doux);white-space:nowrap}
.badge{display:inline-block;font-size:.72rem;font-weight:600;line-height:1.3;padding:.1rem .45rem;border-radius:999px;background:var(--badge-fond);color:var(--badge-texte);margin:.15rem .3rem;white-space:nowrap;vertical-align:middle;font-family:system-ui,sans-serif}

/* boutons */
.btn{display:inline-flex;align-items:center;gap:.45rem;justify-content:center;background:var(--accent);color:var(--accent-texte);text-decoration:none;padding:.45rem .9rem;border-radius:999px;font-weight:650;font-size:.92rem;line-height:1.2;white-space:nowrap;border:0;cursor:pointer;font-family:inherit}
.btn:hover{filter:brightness(1.08)}
.btn-grand{padding:.75rem 1.3rem;font-size:1rem;min-height:44px}
.btn-or{background:#f0cf7a;color:#1d1638}
.btn-clair{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.btn-discret{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}
.btn svg{width:1.2em;height:1.2em;flex:none}
button:disabled{opacity:.6;cursor:default}

/* hero (nuit étoilée) */
.hero{position:relative;margin:1rem 0 0;border-radius:20px;color:#fbf7ee;padding:clamp(1.6rem,5vw,3.2rem) clamp(1.1rem,4vw,3rem);overflow:hidden;
background:radial-gradient(1.5px 1.5px at 12% 22%,rgba(255,255,255,.9),transparent 60%),radial-gradient(1px 1px at 28% 70%,rgba(255,255,255,.7),transparent 60%),radial-gradient(1.5px 1.5px at 46% 14%,rgba(255,240,200,.9),transparent 60%),radial-gradient(1px 1px at 63% 48%,rgba(255,255,255,.7),transparent 60%),radial-gradient(2px 2px at 82% 26%,rgba(255,236,190,.95),transparent 60%),radial-gradient(1px 1px at 90% 78%,rgba(255,255,255,.7),transparent 60%),radial-gradient(1px 1px at 8% 88%,rgba(255,255,255,.6),transparent 60%),radial-gradient(60rem 30rem at 85% -10%,rgba(240,207,122,.22),transparent 60%),linear-gradient(140deg,#140f2a 0%,#2a1d52 55%,#4a2c6e 100%)}
.hero h1{margin:.2em 0 .35em;max-width:24ch;color:#fff}
.hero h1 span{display:block;color:#f3d58a}
.surtitre{font-size:.92rem;color:#e7dcc3;margin:0 0 .2rem;font-variant-numeric:tabular-nums}
.hero-sous{max-width:40rem;font-size:1.05rem;color:#ece4d2;margin:0 0 1.3rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.hero .mention,.hero .mention a{color:#d9cfb8}
.reassurance{list-style:none;padding:1rem 0 0;margin:1.5rem 0 0;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-wrap:wrap;gap:.35rem 0;font-size:.9rem;color:#ece4d2;font-variant-numeric:tabular-nums}
.reassurance li{display:inline}
.reassurance li+li::before{content:'·';margin:0 .55rem;color:#f3d58a}
.reassurance strong{color:#fff;font-weight:650}
/* une seule entrée en mouvement : le hero (depuis un état déjà visible si l'animation ne joue pas) */
@media (prefers-reduced-motion:no-preference){
.hero>h1,.hero-texte>h1,.hero .hero-sous,.hero .hero-actions,.hero .reassurance,.hero-photo{animation:lever .7s cubic-bezier(.16,1,.3,1) both}
.hero .hero-sous{animation-delay:.08s}.hero .hero-actions{animation-delay:.16s}.hero .reassurance{animation-delay:.24s}.hero-photo{animation-delay:.12s}
@keyframes lever{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
.hero-petit{padding:clamp(1.3rem,4vw,2.2rem)}
.hero-petit h1{max-width:none}

/* blocs et grilles */
.bloc{margin:2.2rem 0}
.bloc>h2:first-child{margin-top:0}
.encadre{background:var(--surface);border:1px solid var(--bordure);border-radius:16px;padding:clamp(1rem,3vw,1.6rem)}
.titre-ligne{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem 1rem}
.titre-ligne h2{margin-bottom:.2rem}
.grille-signes{list-style:none;margin:1rem 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:.6rem}
.grille-signes a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1rem;padding:.8rem .4rem;border-radius:14px;background:var(--surface);border:1px solid var(--bordure);color:var(--texte);text-decoration:none;height:100%}
.grille-signes a:hover{border-color:var(--or);box-shadow:0 4px 16px rgba(60,40,110,.12)}
.grille-signes .glyphe{font-size:2rem;line-height:1.1;color:var(--or)}
.grille-signes .nom{font-weight:650}
.grille-signes .dates{font-size:.78rem;color:var(--texte-doux)}
.grille-signes .extrait{font-size:.8rem;color:var(--texte-doux);margin-top:.25rem}
.grille-signes .actuel a{border-color:var(--or);box-shadow:inset 0 0 0 1px var(--or)}
.services{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.8rem}
.services a{display:grid;grid-template-columns:auto 1fr;gap:.2rem .9rem;align-items:center;padding:1rem;border-radius:16px;background:var(--surface);border:1px solid var(--bordure);color:var(--texte);text-decoration:none;height:100%}
.services a:hover{border-color:var(--or)}
.services svg{grid-row:span 2;width:44px;height:44px;color:var(--or)}
.services strong{font-size:1.05rem}
.services span{font-size:.88rem;color:var(--texte-doux)}
.deux{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}

/* cartes de plateformes */
.cartes{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.9rem}
.carte-p{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;background:var(--surface);border:1px solid var(--bordure);border-radius:16px;padding:1rem;box-shadow:0 2px 10px rgba(30,20,60,.05)}
.carte-p h3{margin:0;font-size:1.2rem}
.carte-p h3 a{color:var(--texte);text-decoration:none}
.carte-p h3 a:hover{text-decoration:underline}
.cp-rang{font-size:.8rem;color:var(--texte-doux);margin:0}
.initiales{grid-row:span 2;display:flex;align-items:center;justify-content:center;width:3.2rem;height:3.2rem;border-radius:14px;color:#fff;font-weight:700;font-size:1.05rem;letter-spacing:.02em;font-family:'Iowan Old Style',Palatino,Georgia,serif}
.teinte-0{background:linear-gradient(135deg,#3b2768,#6a3f9a)}.teinte-1{background:linear-gradient(135deg,#5a2a4a,#8f3d62)}
.teinte-2{background:linear-gradient(135deg,#183b5c,#2d6a8f)}.teinte-3{background:linear-gradient(135deg,#1f4a3a,#2f7a5c)}
.teinte-4{background:linear-gradient(135deg,#6b3a12,#9a5a1c)}.teinte-5{background:linear-gradient(135deg,#2a2a5a,#4a4a9a)}
.teinte-6{background:linear-gradient(135deg,#4a1f1f,#8a3a2a)}.teinte-7{background:linear-gradient(135deg,#29304a,#4b5675)}
.cp-corps{grid-column:1/-1;display:grid;gap:.5rem}
.cp-offre{margin:0;padding:.5rem .7rem;border-radius:10px;background:var(--badge-fond);color:var(--texte);font-size:.92rem}
.cp-offre strong{color:var(--badge-texte)}
.cp-infos{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem 1.2rem;margin:0;font-size:.92rem}
.cp-prix strong{font-size:1.15rem}
.cp-prix,.cp-rang,.qc-rang{font-variant-numeric:tabular-nums}
.canaux-icones{display:inline-flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
.canaux-icones li{display:inline-flex;align-items:center;gap:.25rem;font-size:.8rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--bordure);color:var(--texte-doux)}
.canaux-icones svg{width:1rem;height:1rem;color:var(--accent)}
.cp-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;margin:.2rem 0 0}
.cp-actions .cp-fiche{font-size:.9rem}
@media (min-width:760px){
.carte-p{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}
.cp-corps{grid-column:2/3}
.cp-actions{grid-column:3;grid-row:1/span 3;flex-direction:column;align-items:flex-end;margin:0}
}

/* quiz */
.quiz{background:linear-gradient(160deg,var(--surface),var(--badge-fond));border:1px solid var(--bordure);border-radius:20px;padding:clamp(1rem,3.5vw,2rem)}
.quiz fieldset{border:0;margin:0;padding:0;min-width:0}
.quiz legend{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.2rem;font-weight:600;margin:0 0 .7rem;padding:0}
.choix{display:flex;flex-wrap:wrap;gap:.5rem}
.choix label{position:relative;cursor:pointer}
.choix input{position:absolute;opacity:0;width:1px;height:1px}
.choix span{display:inline-block;padding:.6rem 1rem;border-radius:999px;border:1.5px solid var(--bordure);background:var(--surface);font-weight:550;min-height:44px}
.choix input:checked+span{border-color:var(--accent);background:var(--accent);color:var(--accent-texte)}
.choix input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.quiz-pied{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:1rem}
.quiz-liste{list-style:none;padding:0;margin:.8rem 0;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.quiz-carte{background:var(--surface);border:1px solid var(--bordure);border-radius:14px;padding:.9rem}
.quiz-carte p{margin:.3rem 0}
.qc-nom{font-weight:700;font-size:1.08rem}
.qc-nom a{color:var(--texte)}
.qc-rang{display:inline-block;margin-right:.4rem;font-size:.78rem;color:var(--texte-doux);font-weight:500}
.qc-offre{font-size:.88rem;color:var(--texte-doux)}
.qc-actions{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center}
.qc-fiche{font-size:.88rem}

/* formulaires */
.inscription{background:linear-gradient(140deg,#1d1638,#3b2768);color:#f6efe0;border-radius:20px;padding:clamp(1.1rem,4vw,2rem)}
.inscription h2{color:#fff;margin-top:0}
.inscription p{color:#e7dcc3}
.inscription a{color:#f3d58a}
.champs{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin:1rem 0}
.champ label{display:block;font-size:.88rem;margin-bottom:.2rem;color:inherit}
input[type=email],input[type=text],input[type=date],select{width:100%;font:inherit;padding:.6rem .7rem;border-radius:10px;border:1.5px solid var(--bordure);background:var(--surface);color:var(--texte);min-height:44px}
.inscription input[type=email],.inscription input[type=text],.inscription select{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.96);color:#1f1d1a}
.consentement{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;margin:.6rem 0 1rem}
.consentement input{width:1.2rem;height:1.2rem;margin-top:.2rem;flex:none}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.inscr-message{min-height:1.4em;margin:.6rem 0 0;font-weight:600}
.inscr-message.ok{color:#bff0c8}
.inscr-message.erreur{color:#ffd0c8}
.form-ligne{display:flex;flex-wrap:wrap;gap:.7rem;align-items:flex-end;margin:1rem 0}
.form-ligne .champ{flex:1 1 12rem}

/* CTA voyant */
.cta-voyant{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border-radius:18px;padding:1.2rem 1.4rem;background:var(--badge-fond);border:1px solid var(--bordure)}
.cta-voyant h2{margin:0 0 .2rem;font-size:1.3rem}
.cta-voyant p{margin:0}
.cta-voyant .boutons{display:flex;flex-wrap:wrap;gap:.6rem}

/* horoscope */
.horo-jour{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:1rem 0}
.horo-jour section{background:var(--surface);border:1px solid var(--bordure);border-radius:14px;padding:.9rem 1rem}
.horo-jour h3{margin:0 0 .3rem;font-size:1.05rem}
.horo-jour p{margin:0}
.horo-general{font-size:1.1rem}
.etoiles{color:var(--or);letter-spacing:.1em;font-size:1.1rem}
.horo-plus{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.6rem 0;padding:0;list-style:none}
.portrait dl{display:grid;grid-template-columns:minmax(7rem,11rem) 1fr;gap:.4rem 1rem;margin:1rem 0}
.portrait dt{font-weight:650}.portrait dd{margin:0}
.signe-tete{display:flex;align-items:center;gap:1rem}
.signe-tete .glyphe{font-size:3.2rem;line-height:1;color:#f3d58a}
.autres-signes{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0}
.autres-signes a{display:inline-block;padding:.3rem .7rem;border:1px solid var(--bordure);border-radius:999px;text-decoration:none;color:var(--texte);font-size:.9rem}

/* tarot */
.tarot-table{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.5rem,2vw,1.4rem);max-width:34rem;margin:1.2rem auto}
.tarot-pos{text-align:center;font-size:.85rem;color:var(--texte-doux);margin:.4rem 0 0;text-transform:uppercase;letter-spacing:.08em}
.tarot-carte{perspective:900px;aspect-ratio:3/5}
.tc-inner{position:relative;width:100%;height:100%;transition:transform .7s cubic-bezier(.3,.7,.3,1);transform-style:preserve-3d}
.retournee .tc-inner{transform:rotateY(180deg)}
.tc-dos,.tc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:10px;overflow:hidden}
.tc-face{transform:rotateY(180deg)}
.tc-dos svg,.tc-face svg{display:block;width:100%;height:100%}
.tc-fond{fill:#fbf6ea;stroke:#8a6212;stroke-width:2}
.tc-cadre{fill:none;stroke:#8a6212;stroke-width:1.2}
.tc-embleme{fill:none;stroke:#3b2768;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.tc-num{font:600 15px 'Iowan Old Style',Palatino,Georgia,serif;fill:#3b2768;text-anchor:middle}
.tc-nom{font:600 10.5px system-ui,sans-serif;fill:#3b2768;text-anchor:middle;letter-spacing:.02em}
.dos-fond{fill:#2a1d52;stroke:#f0cf7a;stroke-width:2}
.dos-motif{fill:none;stroke:#f0cf7a;stroke-width:1.2;opacity:.85}
.dos-etoile{fill:#f0cf7a}
.tarot-actions{text-align:center;margin:1rem 0}
.tarot-lecture{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.tarot-sens{background:var(--surface);border:1px solid var(--bordure);border-radius:14px;padding:.9rem 1rem}
.tarot-sens h3{margin:0 0 .2rem}
.arcanes{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));list-style:none;padding:0}
.arcanes li{border:1px solid var(--bordure);border-radius:12px;padding:.7rem .9rem;background:var(--surface)}
.arcanes h3{margin:0;font-size:1rem}
.arcanes p{margin:.2rem 0;font-size:.92rem}
@media (prefers-reduced-motion:reduce){.tc-inner{transition:none}}

/* numérologie et compatibilité */
.resultat{margin:1rem 0;padding:1rem 1.2rem;border-radius:16px;background:var(--surface);border:1.5px solid var(--or)}
.nr-nombre{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:1.6rem;font-weight:600;margin:0}
.nombres{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.nombres section{border:1px solid var(--bordure);border-radius:12px;padding:.7rem .9rem;background:var(--surface)}
.nombres h3{margin:0}
.cp-niveau{display:inline-block;font-weight:700;padding:.2rem .7rem;border-radius:999px;background:var(--badge-fond);color:var(--badge-texte)}
table.compat td,table.compat th{padding:.35rem .4rem;text-align:center;font-size:.8rem;white-space:nowrap}
table.compat th[scope=row]{text-align:left}
table.compat abbr{text-decoration:none}
.niv{text-decoration:none;cursor:help;display:inline-block;min-width:1.8rem;border-radius:6px;padding:.05rem .3rem;font-weight:700}
.niv-0{background:#e9e1f7;color:#3b2768}.niv-1{background:#efe9df;color:#5a4a2a}.niv-2{background:#dff0e4;color:#1f5a34}
.niv-3{background:#f7e7d6;color:#7a3f0a}.niv-4{background:#cfead7;color:#14472a}.niv-5{background:#ece6f0;color:#4a3a5a}
.niv-6{background:#f6dde6;color:#7a1f42}
.legende-niv{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.88rem}

/* tableaux (classement complet, fiches, méthodologie) */
.defile{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1rem 0;border:1px solid var(--bordure);border-radius:10px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:.93rem;font-variant-numeric:tabular-nums}
th,td{padding:.6rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--bordure)}
thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--texte-doux);white-space:nowrap}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
th button{all:inherit;cursor:pointer;text-decoration:underline dotted}
td.site{white-space:nowrap}.legende{caption-side:bottom;text-align:left;padding:.5rem .7rem}.coupe{word-break:break-all}
dl.fiche{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr;gap:.5rem 1rem;margin:1rem 0}
dl.fiche dt{font-weight:600;font-size:.95rem}dl.fiche dd{margin:0}
@media (max-width:560px){dl.fiche,.portrait dl{grid-template-columns:1fr}dl.fiche dd,.portrait dd{margin-bottom:.6rem}}
ul.langues{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:.6rem}
ul.langues a{font-weight:600;font-size:1.1rem}
.guides-liste{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));list-style:none;padding:0}

/* pied de page */
footer.site{margin-top:3rem;border-top:1px solid var(--bordure);background:var(--surface);font-size:.86rem;color:var(--texte-doux);padding:2rem 0 2.2rem}
footer.site p{margin:.4rem 0}
footer.site a{color:var(--texte-doux)}
.pied-colonnes{display:grid;gap:1rem 2rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin-bottom:1.4rem}
.pied-colonnes h2{font-size:.95rem;margin:0 0 .4rem;color:var(--texte);font-family:system-ui,sans-serif}
.pied-colonnes ul{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.pied-legal{border-top:1px solid var(--bordure);padding-top:1rem}
.aide{color:var(--texte)}

/* illustrations (photos servies par le site) */
.hero-illus{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15rem);gap:clamp(1rem,3vw,2.2rem);align-items:center}
.hero-photo{margin:0}
.hero-photo img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
@media (max-width:760px){.hero-illus{grid-template-columns:1fr}.hero-photo{max-width:14rem}}
.illus{margin:0 0 1.4rem;max-width:22rem}
.illus img{display:block;width:100%;height:auto;border-radius:12px}


/* ======================================================================================================
   Style newzapiens (08/11/2026, choix de JB) : relevé sur newzapiens.com, appliqué par-dessus les règles
   ci-dessus. Crème, encre, orange, lavande ; titres en serif avec un mot clé en sans gras ; boutons pilule
   en chasse fixe ; cartes blanches à 8 px, sans ombre ; colonne de 62 rem. Polices libres auto-hébergées
   (équivalents de Recife Text, Roobert et Roobert SemiMono) : Newsreader, DM Sans, DM Mono.
   ====================================================================================================== */
@font-face{font-family:'DM Sans';src:url(fonts/dmsans-400-700.woff2) format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'DM Mono';src:url(fonts/dmmono-500.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url(fonts/newsreader-400.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--serif:'Newsreader','Iowan Old Style',Georgia,serif;--sans:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'DM Mono',ui-monospace,SFMono-Regular,Menlo,monospace}
body{font-family:var(--sans);font-size:1rem;line-height:1.55}
::selection{background:var(--lavande);color:#1b1917}
h1,h2,.titre-elegant,.quiz legend{font-family:var(--serif);font-weight:400;letter-spacing:-.015em}
h1 span,h2 span{font-family:var(--sans);font-weight:600;letter-spacing:-.025em}
h1{font-size:clamp(2rem,4.6vw,3rem);line-height:1.08}
h2{font-size:clamp(1.5rem,2.8vw,1.875rem);line-height:1.2}
h3{font-family:var(--sans);font-weight:600;letter-spacing:-.01em}
.enveloppe{max-width:62rem}
.meta,.fil,.cp-rang,.qc-rang,.mention{font-family:var(--sans)}
.fil{font-family:var(--mono);font-size:.78rem}

/* bandeau, en-tête flottant */
.ruban{background:var(--lavande);color:#1b1917}
.ruban a{color:#1b1917;font-family:var(--mono);font-weight:500;font-size:.8rem}
header.site{background:transparent;border:0;padding:12px 16px 0}
header.site .enveloppe{background:var(--surface);border-radius:12px;padding:.55rem 1.1rem}
.marque{font-family:var(--sans);font-weight:700;letter-spacing:-.03em;font-size:1.15rem}
.marque svg{color:var(--orange)}
nav.principale a{font-size:.9rem}
nav.principale a:hover,nav.principale a[aria-current]{border-bottom-color:var(--orange)}
@media (max-width:640px){header.site{padding:8px 8px 0}header.site .enveloppe{padding:.5rem .9rem 0}nav.principale{margin:0 -.9rem}}

/* hero centré : marque orange, titre deux voix, pilule, pile de monogrammes */
.hero{background:none;color:var(--texte);border-radius:0;margin:0;overflow:visible;text-align:center;display:flex;flex-direction:column;align-items:center;padding:clamp(2.6rem,7vw,4.6rem) 0 clamp(2rem,5vw,3.2rem)}
.hero-marque svg{width:52px;height:52px;color:var(--orange)}
.hero h1,.hero-texte h1{color:var(--texte);max-width:21ch;margin:.7rem auto .5rem}
.hero h1 span{display:inline;color:var(--texte)}
.hero-sous{color:var(--texte);max-width:37rem;margin:0 auto 1.5rem;font-size:1rem}
.hero-actions{justify-content:center}
.hero .mention,.hero .mention a,.hero .surtitre{color:var(--texte-doux)}
.hero .surtitre{font-family:var(--mono);font-size:.78rem}
.hero-preuve{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:2rem}
.pile{display:flex}
.pile .initiales{grid-row:auto;width:2.3rem;height:2.3rem;border-radius:50%;font-size:.72rem;border:2px solid var(--fond);margin-left:-.6rem}
.pile .initiales:first-child{margin-left:0}
.reassurance{border-top:0;padding:0;margin:0;justify-content:center;color:var(--texte-doux);font-size:.85rem;max-width:40rem}
.reassurance strong{color:var(--texte);font-weight:600}
.reassurance li+li::before{color:var(--orange)}
.hero-petit{text-align:left;align-items:stretch;padding:2.2rem 0 1rem}
.hero-petit h1{max-width:none;margin:.3rem 0 .4rem}
.hero-petit .hero-sous{margin-left:0}
.hero-petit .hero-actions{justify-content:flex-start}
.signe-tete .glyphe{color:var(--orange)}

/* boutons pilule en chasse fixe */
.btn{border-radius:999px;font-family:var(--mono);font-weight:500;font-size:.85rem;padding:.55rem 1.3rem;background:var(--orange);color:#fff;transition:background-color .15s ease,color .15s ease,transform .1s ease}
.btn:hover{filter:none;background:#d94a1e}
.btn:active{transform:translateY(1px)}
.btn-grand{padding:.72rem 1.55rem;font-size:.9rem}
.btn-or{background:var(--orange);color:#fff}
.btn-clair,.btn-discret{background:transparent;color:var(--texte);box-shadow:inset 0 0 0 1px var(--texte)}
.btn-clair:hover,.btn-discret:hover{background:var(--texte);color:var(--fond)}
.titre-ligne .meta a,.cp-fiche,.qc-fiche{font-family:var(--mono);font-size:.8rem}

/* cartes blanches, 8 px, sans ombre */
.encadre,.carte-p,.quiz,.quiz-carte,.horo-jour section,.tarot-sens,.arcanes li,.nombres section,.resultat,.defile,.cta-voyant{background:var(--surface);border:0;border-radius:8px;box-shadow:none}
.resultat{border:1px solid var(--orange)}
.carte-p{padding:1.05rem 1.15rem}
.carte-p h3{font-family:var(--sans);font-weight:600;font-size:1.1rem}
.cp-offre{background:var(--fond);border-radius:6px}
.cp-offre strong{color:var(--texte)}
.canaux-icones li{border-color:var(--bordure);border-radius:6px;font-family:var(--mono);font-size:.72rem}
.canaux-icones svg{color:var(--orange)}
.badge{background:var(--lavande);color:#1b1917;border-radius:8px;font-family:var(--sans);font-weight:600}
.initiales{font-family:var(--sans);border-radius:8px}
.teinte-0{background:#1b1917}.teinte-1{background:#c2461f}.teinte-2{background:#5d56b3}.teinte-3{background:#3f6b55}
.teinte-4{background:#9a5523}.teinte-5{background:#2f4f6f}.teinte-6{background:#8a3b2e}.teinte-7{background:#55524c}
.grille-signes a{background:var(--surface);border:1px solid transparent;border-radius:8px}
.grille-signes a:hover{border-color:var(--orange);box-shadow:none}
.grille-signes .actuel a{border-color:var(--orange);box-shadow:none}
.grille-signes .glyphe{color:var(--orange)}
.grille-signes .nom{font-weight:600}
.grille-signes .dates{font-family:var(--mono);font-size:.7rem}

/* outils gratuits : cartes lavande, comme les « Free tools » de la référence */
.services a{background:linear-gradient(140deg,var(--surface) 0%,var(--lavande) 120%);border:0;border-radius:8px;min-height:8.5rem;align-content:end;padding:1.1rem}
.services a:hover{border-color:transparent;background:linear-gradient(140deg,var(--surface) 0%,var(--lavande) 80%)}
.services svg{color:var(--orange)}
.services strong{font-weight:600}

/* quiz et choix en étiquettes */
.choix span{border-radius:6px;border:1px solid #6b7280;background:transparent;font-family:var(--mono);font-weight:500;font-size:.82rem;padding:.65rem 1rem}
.choix input:checked+span{background:var(--texte);border-color:var(--texte);color:var(--fond)}

/* inscription : carte lavande */
.inscription{background:linear-gradient(140deg,var(--surface) 0%,var(--lavande) 130%);color:var(--texte);border-radius:8px}
.inscription h2,.inscription p,.inscription a{color:var(--texte)}
.inscription input[type=email],.inscription input[type=text],.inscription select{border-color:var(--bordure);background:var(--surface);color:var(--texte)}
input[type=email],input[type=text],input[type=date],select{border-radius:8px;border-width:1px}
.inscr-message.ok{color:#1f5a34}
.inscr-message.erreur{color:#9b1c1c}

/* tableaux et pied de page */
thead th{font-family:var(--mono);font-weight:500;text-transform:none;letter-spacing:0;font-size:.75rem}
.defile{border:0}
footer.site{background:transparent;border-top:1px solid var(--bordure)}
.pied-colonnes h2{font-family:var(--mono);font-weight:500;font-size:.78rem;color:var(--texte-doux)}

/* tarot : dos encre et orange au lieu du violet */
.dos-fond{fill:#1b1917;stroke:var(--orange)}
.dos-motif{stroke:var(--orange)}
.dos-etoile{fill:var(--orange)}
.tc-fond{stroke:#c2461f}.tc-cadre{stroke:#c2461f}
.tc-embleme{stroke:#1b1917}.tc-num,.tc-nom{fill:#1b1917}
.carte-p h2,.carte-p h3{margin:0;font-family:var(--sans);font-weight:600;font-size:1.12rem;letter-spacing:-.01em}
.carte-p h2 a,.carte-p h3 a{color:var(--texte);text-decoration:none}
.carte-p h2 a:hover,.carte-p h3 a:hover{text-decoration:underline;text-decoration-thickness:1px}
.titre-ligne .meta a,.cp-fiche,.qc-fiche{font-family:var(--sans);font-size:.85rem;text-decoration-thickness:1px}

/* pratiques, annuaire, proposer (08/11/2026) */
.pratiques{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(14.5rem,1fr))}
.pratiques a{display:flex;flex-direction:column;gap:.25rem;height:100%;padding:1rem 1.1rem;border-radius:8px;background:var(--surface);color:var(--texte);text-decoration:none;border:1px solid transparent;transition:border-color .15s ease,transform .15s ease}
.pratiques a:hover{border-color:var(--orange);transform:translateY(-2px)}
.pratiques h2,.pratiques h3{margin:0;font-family:var(--sans);font-weight:600;font-size:1.02rem}
.pratiques span{font-size:.88rem;color:var(--texte-doux)}
.famille>h2{margin-top:0}
.marque-editeur{margin:1.8rem 0;padding:1.1rem 1.2rem;border-radius:8px;background:linear-gradient(140deg,var(--surface) 0%,var(--lavande) 130%)}
.marque-editeur p{margin:.3rem 0}
.annuaire{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.6rem}
.annuaire li{padding:1rem 1.15rem;border-radius:8px;background:var(--surface)}
.annuaire h2{margin:0;font-family:var(--sans);font-weight:600;font-size:1.05rem}
.annuaire h2 a{color:var(--texte)}
.an-tete{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.annuaire p{margin:.25rem 0}
.badge-verifie{background:var(--orange);color:#fff}
textarea{width:100%;font:inherit;padding:.6rem .7rem;border-radius:8px;border:1px solid var(--bordure);background:var(--surface);color:var(--texte)}
.proposer .champ{margin-bottom:.8rem}
.proposer input[type=url]{width:100%;font:inherit;padding:.6rem .7rem;border-radius:8px;border:1px solid var(--bordure);background:var(--surface);color:var(--texte);min-height:44px}
pre.code{white-space:pre-wrap;word-break:break-all;font:.8rem/1.5 var(--mono);background:var(--surface);border-radius:8px;padding:.8rem 1rem}

.autres-langues{margin:1.4rem 0}.autres-langues summary{cursor:pointer;font-weight:600}
.langues-annuaire{list-style:none;padding:0;margin:.8rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}

.annuaire{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}
.an-capture{display:block;margin:-1rem -1.15rem .8rem;aspect-ratio:16/10;overflow:hidden;border-radius:8px 8px 0 0;background:var(--fond)}
.an-capture img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .3s ease}
.an-capture:hover img{transform:scale(1.02)}
/* page d'un site de l'annuaire (08/11/2026) */
.an-capture-grande{margin:0 0 1.5rem;border-radius:8px;border:1px solid var(--trait,rgba(0,0,0,.1))}
.an-capture-grande img{aspect-ratio:16/10}
.an-fiche-tete h1 .badge{vertical-align:middle;font-size:.8rem}
/* captures des plateformes dans le classement (08/11/2026) */
.cp-capture{grid-row:span 2;display:block;width:6.5rem;aspect-ratio:16/10;overflow:hidden;border-radius:6px;background:var(--fond);border:1px solid var(--trait,rgba(0,0,0,.1))}
.cp-capture img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .3s ease}
.cp-capture:hover img{transform:scale(1.03)}
@media (min-width:48rem){.cp-capture{width:10rem}}
.cp-capture-fiche{margin:1rem 0 1.5rem}
/* illustrations des pratiques et articles (08/11/2026) : dessins maison, couleurs du thème */
.illus-p{display:block;width:100%;height:auto;fill:none;stroke:var(--texte);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.illus-p .a{fill:var(--orange);stroke:none}.illus-p .l{fill:var(--lavande);stroke:none}
.illus-p .p{fill:var(--texte);stroke:none}.illus-p .f{fill:var(--surface);stroke:none}
.illus-p .t{fill:var(--texte);stroke:none;font-family:var(--serif);font-size:15px;text-anchor:middle}
.illus-p .t.inv{fill:#fff}.illus-p .grand{font-size:44px;letter-spacing:-.02em}.illus-p .grand2{font-size:30px}
.illus-p .horloge{font-family:var(--mono);font-size:19px}.illus-p .reflet{opacity:.22}
.illus-p .inv-trait{stroke:#fff;stroke-width:2.2}.illus-p .reflet-trait{stroke:var(--surface);stroke-width:3}
.illus-p .spirale{stroke:var(--orange);stroke-width:1.8}
.pr-illus{display:block;aspect-ratio:16/10;margin:-1rem -1.1rem .7rem;padding:.9rem 1.4rem;border-radius:8px 8px 0 0;background:color-mix(in srgb,var(--lavande) 22%,var(--fond))}
.pratiques a:hover .illus-p{transform:scale(1.03)}.illus-p{transition:transform .3s ease}
.hero-pratique{display:grid;gap:1rem 2.5rem;align-items:center}
.pr-illus-grande{margin:0;border-radius:12px;padding:1.4rem 2rem;max-width:26rem}
@media (min-width:48rem){.hero-pratique{grid-template-columns:minmax(0,1fr) minmax(16rem,24rem)}}
.articles{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}
.articles a{display:flex;flex-direction:column;gap:.3rem;height:100%;padding:1rem 1.1rem;border-radius:8px;background:var(--surface);color:var(--texte);text-decoration:none;border:1px solid transparent;transition:border-color .2s ease,transform .2s ease}
.articles a:hover{border-color:var(--orange);transform:translateY(-2px)}
.articles h3{margin:0;font-family:var(--sans);font-weight:600;font-size:1.02rem}.articles a>span:last-child{font-size:.88rem;color:var(--texte-doux)}
.pr-illus-article{margin:0 0 1.5rem;border-radius:12px;max-width:30rem;padding:1.2rem 2rem}
@media (prefers-reduced-motion:reduce){.illus-p,.articles a{transition:none}}
/* blocs des articles (08/11/2026) : encadré « À retenir » et citation */
.a-retenir{margin:1.5rem 0;padding:1rem 1.2rem;border-radius:8px;background:color-mix(in srgb,var(--lavande,#b1abea) 22%,var(--surface,#fff));border-left:3px solid var(--orange,#f15a2b)}
.a-retenir-titre{margin:0 0 .4rem;font-weight:600}.a-retenir ul{margin:.2rem 0 0;padding-left:1.1rem}.a-retenir p:last-child{margin-bottom:0}
.lecture blockquote{margin:1.2rem 0;padding:.2rem 0 .2rem 1rem;border-left:3px solid var(--trait,#ddd);font-family:var(--serif);font-size:1.1rem}
.pr-couv{padding:0;overflow:hidden}.pr-couv img{display:block;width:100%;height:100%;object-fit:cover}

/* Bandeau de consentement (GA4, 09/11/2026) : en bas d'écran, deux choix de même poids, thème du site. Classe dédiée : .consentement est déjà la case des formulaires d'inscription (régression mobile du 09/11). */
.bandeau-mesure{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--surface);color:var(--texte);border-top:1px solid var(--bordure);box-shadow:0 -8px 24px rgba(0,0,0,.12);padding:16px 0}
.bandeau-mesure[hidden]{display:none}
.bandeau-mesure p{margin:0 0 8px;font-size:.95rem;line-height:1.5}
.bandeau-mesure-titre{font-weight:700}
.bandeau-mesure a{color:var(--accent)}
.bandeau-mesure-actions{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 0!important}
.bandeau-mesure-actions .btn{min-width:130px;justify-content:center}
.lien-bouton{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
@media (max-width:560px){.bandeau-mesure-actions .btn{flex:1}}
.bandeau-mesure .enveloppe{box-sizing:border-box;width:100%;max-width:100%}
@media (max-width:560px){.btn{white-space:normal;text-align:center;max-width:100%}}

/* Popup plein écran d'inscription (09/11/2026) : couleurs du site, plein écran sur mobile. */
.pop-newsletter{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.55);overflow-y:auto}
.pop-newsletter[hidden]{display:none}
html.pop-ouverte{overflow:hidden}
.pop-carte{position:relative;box-sizing:border-box;width:100%;max-width:520px;background:var(--surface);color:var(--texte);border:1px solid var(--bordure);border-radius:18px;padding:32px 28px 24px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.pop-carte h2{margin:0 36px 10px 0;line-height:1.15}
.pop-carte h2 span{color:var(--accent)}
.pop-carte .champ{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}
.pop-carte input[type=email],.pop-carte input[type=text],.pop-carte select{box-sizing:border-box;width:100%}
.pop-carte .btn{width:100%;justify-content:center}
.pop-fermer{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--texte);font-size:28px;line-height:1;cursor:pointer}
.pop-fermer:hover{background:var(--fond)}
.pop-bas{margin:14px 0 0;font-size:.9rem;text-align:center}
@media (max-width:560px){.pop-newsletter{padding:0;align-items:stretch}.pop-carte{max-width:none;min-height:100%;border-radius:0;border:0;padding:56px 20px 24px;display:flex;flex-direction:column;justify-content:center}}
@media (prefers-reduced-motion:no-preference){.pop-newsletter:not([hidden]) .pop-carte{animation:pop-entree .35s cubic-bezier(.2,.8,.2,1)}@keyframes pop-entree{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}}
/* Questions fréquentes des fiches Pratiques (09/11/2026) */
.faq details{border-top:1px solid var(--trait,#ddd);padding:.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--trait,#ddd)}
.faq summary{cursor:pointer;font-weight:600;padding:.75rem 2rem .75rem 0;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:.6rem;font-size:1.25rem;line-height:1;color:var(--accent);transition:transform .2s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 .9rem}
@media (prefers-reduced-motion:reduce){.faq summary::after{transition:none}}

/* ======================================================================================================
   Thème Divinatlas (08/11/2026, maquette de JB « Formulaire avant construction ») : par-dessus style.css
   (style newzapiens). Conteneur 1240 px ; pages outils (compatibilité, numérologie, tarot) en
   héros -> outil -> résultat révélé -> liens croisés -> contenu de référence ; animations sobres
   (apparition au défilement, révélation du résultat, retournement des cartes), coupées si l'utilisateur
   préfère réduire les animations. Polices du site (Newsreader, DM Sans, DM Mono).
   ====================================================================================================== */
:root{--accent-survol:#C7431B;--anneau:rgba(232,86,42,.18);--tertiaire:#8A857B;--lavande-clair:#E6E1F7;--trait-doux:#ECEBE4;
--ombre-repos:0 1px 2px rgba(31,29,27,.04);--ombre-survol:0 8px 24px rgba(31,29,27,.08)}
.enveloppe{max-width:1240px}
main.enveloppe{padding-bottom:80px}

/* boutons */
.btn{border-radius:999px;transition:transform .15s ease,background .15s ease,border-color .15s ease}
.btn:active{transform:scale(.97)}
.btn-or,.btn-grand:not(.btn-discret){background:var(--orange);border-color:var(--orange);color:#fff}
.btn-or:hover,.btn-grand:not(.btn-discret):hover{background:var(--accent-survol);border-color:var(--accent-survol);transform:translateY(-1px)}
.btn-discret{background:var(--surface);border:1px solid var(--texte);color:var(--texte)}
.btn-discret:hover{background:var(--fond)}
input[type=date],select,input[type=email],input[type=text]{padding:14px 16px;border-radius:8px;border:1px solid var(--bordure);background:var(--surface)}
input[type=date]:hover,select:hover,input:focus,select:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--anneau);outline:none}
.eyebrow{font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);margin:0}

/* carte outil et résultat */
.outil-carte{background:var(--surface);border-radius:16px;padding:32px;box-shadow:var(--ombre-repos)}
.outil-carte h2{font-size:clamp(1.8rem,3vw,2.25rem);margin:0 0 20px}
.form-outil{display:grid;gap:16px;align-items:end}
.form-compat{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.form-numero{grid-template-columns:1fr auto}
@media (max-width:560px){.form-numero{grid-template-columns:1fr}}
.form-outil .champ{display:flex;flex-direction:column;gap:6px}.form-outil label{font-weight:500}
.aide-champ{font-size:.94rem;color:var(--texte-doux);margin:6px 0 0}
.resultat{border:1.5px solid var(--orange);border-radius:12px;padding:28px;margin-top:24px;background:var(--surface)}
.resultat h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.85rem,3vw,2.1rem);margin:0 0 12px}
.resultat p{font-size:1.12rem;line-height:1.6}
.compat-badges{margin:0 0 12px}
.niv-badge{display:inline-block;border-radius:999px;padding:6px 14px;font-weight:600;font-size:.95rem}
.compat-puces{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.compat-puces span{font-family:var(--mono);font-size:.82rem;background:var(--fond);border-radius:999px;padding:6px 12px;color:var(--texte-doux)}
.resultat.anime{animation:dv-pop .5s cubic-bezier(.2,.8,.2,1) both}
.resultat.anime .niv-badge{animation:dv-badge .6s .15s both}
.resultat-numero:not([hidden]){display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start}
@media (max-width:560px){.resultat-numero:not([hidden]){grid-template-columns:1fr}}
.nr-pastille{width:120px;height:120px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:4rem;line-height:1}
.resultat-numero.anime .nr-pastille{animation:dv-num .7s .1s cubic-bezier(.2,.8,.2,1) both}
.resultat-numero.anime .nr-texte>*{animation:dv-step .4s both}
.resultat-numero.anime .nr-texte>:nth-child(1){animation-delay:.3s}.resultat-numero.anime .nr-texte>:nth-child(2){animation-delay:.42s}
.resultat-numero.anime .nr-texte>:nth-child(3){animation-delay:.54s}.resultat-numero.anime .nr-texte>:nth-child(4){animation-delay:.66s}
.resultat-numero.anime .nr-texte>:nth-child(5){animation-delay:.78s}.resultat-numero.anime .nr-texte>:nth-child(6){animation-delay:.9s}
.nr-texte>*{margin:0 0 10px}.nr-texte h3{margin-bottom:6px}
.nr-detail{font-family:var(--mono);font-size:.88rem;background:var(--fond);border-radius:8px;padding:10px 14px}
.nr-liens{display:flex;flex-wrap:wrap;gap:10px}

/* liens croisés */
.tuiles-outils{list-style:none;padding:0;margin:56px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.tuiles-4{margin-top:16px}
.tuiles-outils li{display:flex}
.tuile-outil,.tuile-cta{flex:1;display:flex;flex-direction:column;gap:6px;background:var(--surface);border-radius:12px;padding:22px 24px;
box-shadow:var(--ombre-repos);text-decoration:none;color:var(--texte);transition:transform .2s ease,box-shadow .2s ease}
.tuile-outil:hover{transform:translateY(-3px);box-shadow:var(--ombre-survol)}
.tuile-outil strong,.tuile-cta strong{font-size:1.19rem;font-weight:700}
.tuile-outil span,.tuile-cta>span{color:var(--texte-doux);font-size:.95rem}
.tuile-fleche{margin-top:auto;color:var(--orange)!important;font-family:var(--mono)}
.tuile-cta{background:var(--lavande-clair)}
.tuile-liens{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}

/* compatibilité : légende et tableau */
.niv-0{background:#E6E1F7;color:#4A3BA8}.niv-1{background:#ECEBE4;color:#5C5A50}.niv-2{background:#E3F1E6;color:#246B43}
.niv-3{background:#FBE7D3;color:#A54E12}.niv-4{background:#D8EEDC;color:#1B5E36}.niv-5{background:#ECE8F3;color:#5B4BB5}
.niv-6{background:#F9DCE3;color:#A8233F}
.legende-niv .niv{width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center}
table.compat{min-width:760px}
table.compat td{padding:3px;border-color:var(--trait-doux)}
table.compat .niv{display:inline-grid;place-items:center;width:40px;height:36px;border-radius:8px;text-decoration:none;
border:2px solid transparent;transition:transform .15s ease,box-shadow .15s ease}
table.compat .niv[role=button]{cursor:pointer}
table.compat .niv[role=button]:hover{transform:scale(1.12);box-shadow:var(--ombre-survol)}
table.compat .niv.choisi{border-color:var(--orange)}

/* numérologie : cartes des nombres */
.nombres{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.nombre-carte{background:var(--surface);border-radius:12px;padding:22px 24px;box-shadow:var(--ombre-repos);border:1.5px solid transparent;transition:border-color .2s ease}
.nombre-carte.actif{border-color:var(--orange)}
.nombre-tete{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 6px}
.nombre-n{font-family:var(--serif);font-size:2.25rem;line-height:1;color:var(--orange)}
.nombre-tete strong{font-size:1.19rem}
.badge-maitre{font-family:var(--mono);font-size:.75rem;background:var(--lavande-clair);color:#4A3BA8;border-radius:999px;padding:3px 10px}

/* tarot */
.tarot-table{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.tarot-carte{width:clamp(150px,18vw,210px);aspect-ratio:2/3;perspective:1200px}
.tarot-table>div:nth-child(1) .tarot-carte{animation:dv-flotte 4s ease-in-out infinite}
.tarot-table>div:nth-child(2) .tarot-carte{animation:dv-flotte 4s .6s ease-in-out infinite}
.tarot-table>div:nth-child(3) .tarot-carte{animation:dv-flotte 4s 1.2s ease-in-out infinite}
.tc-inner{transition:transform .9s cubic-bezier(.3,.7,.2,1)!important}
.tarot-pos{font-family:var(--mono);font-size:.82rem;text-transform:uppercase;letter-spacing:.14em;text-align:center}
.tarot-lecture:not([hidden]){display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px}
.tarot-sens{background:var(--surface);border-radius:12px;padding:24px;box-shadow:var(--ombre-repos);animation:dv-pop .5s cubic-bezier(.2,.8,.2,1) both}
.tarot-sens:nth-child(2){animation-delay:.15s}.tarot-sens:nth-child(3){animation-delay:.3s}
.tarot-sens h3{font-family:var(--serif);font-weight:500;font-size:1.9rem;margin:4px 0 6px}
.arcanes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.arcanes li{background:var(--surface);border-radius:12px;padding:22px 24px;box-shadow:var(--ombre-repos);border:1.5px solid transparent}
.arcanes li.tire{border-color:var(--orange)}

/* apparition au défilement */
.a-reveler{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.a-reveler.revele{opacity:1;transform:none}

@keyframes dv-pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes dv-badge{0%{transform:scale(.6)}70%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes dv-num{0%{transform:scale(.4) rotate(-8deg);opacity:0}70%{transform:scale(1.12) rotate(2deg);opacity:1}100%{transform:none}}
@keyframes dv-step{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@keyframes dv-flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){
.resultat.anime,.resultat.anime .niv-badge,.resultat-numero.anime .nr-pastille,.resultat-numero.anime .nr-texte>*,.tarot-sens,.tarot-carte{animation:none!important}
.a-reveler{opacity:1;transform:none;transition:none}.tc-inner{transition:none!important}
.tuile-outil:hover,table.compat .niv[role=button]:hover,.btn:active{transform:none}}
.form-numero{align-items:start}.form-numero>.btn{margin-top:29px;padding:15px 28px}
@media (max-width:560px){.form-numero>.btn{margin-top:0}}
