/* =================================================================
   GRIMORIUM - Univers LUNE & CYCLES LUNAIRES
   « Argent & nuit d'encre » - la roue des phases
   Scope : tout est préfixé .univers-lune → poser sur <body> :
     body.univers-lune halo-mid tex-2
   Lueur lunaire (halo) : .halo-off · .halo-low · .halo-mid (défaut) · .halo-high
   Densité du ciel étoilé : .tex-1 · .tex-2 (défaut) · .tex-3
   Tout l'habillage est du CODE (CSS + SVG dessinés main) - aucune image tierce.
   ================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

/* =======================================================
   TOKENS
   ======================================================= */
.univers-lune{
  --ink:#070a10;
  --ink-2:#0d121b;
  --ink-3:#03050a;
  --slate:#141c28;
  --slate-2:#1c2735;
  --gold-1:#bf9b50;
  --gold-2:#8c7232;
  --gold-soft:#e3c987;
  --silver:#c9d4e0;
  --silver-soft:#eef3fa;
  --silver-dim:#8b97a6;
  --glacier:#9fc0d8;
  --glacier-soft:#cfe2ef;
  --text-c:#b7c1cd;
  --cream:#eef3fa;
  --muted:#7e8a99;
  --dim:#505c6b;
  --accent:#c9d4e0;
  --accent-soft:#eef3fa;
  --accent-deep:#566476;
  --bg:var(--ink);
  --panel:rgba(20,28,40,0.5);
  --panel-2:#0b1019;
  --plate-bg:#0b1019;
  --plate-mat:#04060c;
  --header-bg:linear-gradient(180deg, rgba(7,10,16,0.96), rgba(3,5,10,0.80));
  --header-text:#eef3fa;
  --header-line:rgba(201,212,224,0.22);
  --footer-bg:linear-gradient(180deg,#05080e,#020308);
  --footer-text:#7e8a99;
  --band-1-bg:radial-gradient(130% 90% at 50% -16%, rgba(159,192,216,0.14), transparent 58%), linear-gradient(180deg, rgba(20,28,40,0.5), rgba(3,5,10,0.6));
  --band-2-bg:radial-gradient(120% 90% at 50% -10%, rgba(201,212,224,0.08), transparent 62%), linear-gradient(180deg, rgba(11,16,25,0.7), rgba(3,4,9,0.7));
  --card-bg:linear-gradient(180deg, rgba(20,28,40,0.42), rgba(3,5,10,0.42));
  --card-bg-hover:linear-gradient(180deg, rgba(159,192,216,0.12), rgba(3,5,10,0.42));
  --tag-c:var(--muted);
  --line:rgba(201,212,224,0.18);
  --line-soft:rgba(159,192,216,0.12);
  --line-strong:rgba(201,212,224,0.34);
  --line-gold:rgba(191,155,80,0.5);
  --line-glacier:rgba(159,192,216,0.26);
  --halo-op:1;
  --tex-op:0.5;
  --display:"Cormorant Garamond", Georgia, serif;
  --serif:"Cormorant Garamond", Georgia, serif;
  --text:"EB Garamond", Georgia, serif;
  --maxw:1180px;
  --maxw-wide:1320px;
}

/* - lueur lunaire (halo) - */
.univers-lune.halo-off  { --halo-op:0; }
.univers-lune.halo-low  { --halo-op:0.5; }
.univers-lune.halo-mid  { --halo-op:1; }
.univers-lune.halo-high { --halo-op:1.55; }
/* - densité du ciel étoilé - */
.univers-lune.tex-1{--tex-op:0.26;}
.univers-lune.tex-2{--tex-op:0.5;}
.univers-lune.tex-3{--tex-op:0.82;}

/* =======================================================
   BASE + CIEL D'ENCRE
   ======================================================= */
.univers-lune *{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.univers-lune{
  margin:0;
  color:var(--text-c);
  font-family:var(--text);
  font-size:20px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background-color:var(--ink);
  background-image:
    radial-gradient(60% 40% at 50% -8%, rgba(159,192,216,0.14), transparent 60%),
    radial-gradient(90% 70% at 50% 120%, rgba(201,212,224,0.05), transparent 60%),
    linear-gradient(180deg, var(--ink), var(--ink-3));
  background-attachment:fixed;
}
.univers-lune img{max-width:100%; display:block;}

/* champ d'étoiles (fines, froides) */
.univers-lune::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:var(--tex-op);
  background-image:
    radial-gradient(1.5px 1.5px at 9% 16%, rgba(238,243,250,0.9), transparent 60%),
    radial-gradient(1.2px 1.2px at 24% 54%, rgba(201,212,224,0.7), transparent 60%),
    radial-gradient(1.6px 1.6px at 41% 28%, rgba(238,243,250,0.85), transparent 60%),
    radial-gradient(1.2px 1.2px at 57% 67%, rgba(159,192,216,0.7), transparent 60%),
    radial-gradient(1.7px 1.7px at 73% 21%, rgba(238,243,250,0.8), transparent 60%),
    radial-gradient(1.2px 1.2px at 84% 49%, rgba(201,212,224,0.7), transparent 60%),
    radial-gradient(1.4px 1.4px at 33% 82%, rgba(238,243,250,0.75), transparent 60%),
    radial-gradient(1.2px 1.2px at 66% 89%, rgba(201,212,224,0.6), transparent 60%),
    radial-gradient(1.5px 1.5px at 92% 73%, rgba(238,243,250,0.7), transparent 60%),
    radial-gradient(1.1px 1.1px at 14% 38%, rgba(201,212,224,0.6), transparent 60%);
}

.univers-lune .page{position:relative; z-index:1;}
.univers-lune .container{max-width:var(--maxw); margin:0 auto; padding:0 36px;}
.univers-lune .container-wide{max-width:var(--maxw-wide); margin:0 auto; padding:0 36px;}

/* ----- typographie ----- */
.univers-lune h1,.univers-lune h2,.univers-lune h3,.univers-lune h4,.univers-lune h5{
  font-family:var(--display); font-weight:400; margin:0; line-height:1.06; color:var(--cream);}
.univers-lune p{margin:0 0 1.15em;}
.univers-lune a{color:inherit; text-decoration:none;}
.univers-lune em,.univers-lune i{font-style:italic;}
.univers-lune sup,.univers-lune sub{font-size:0.66em;}

.univers-lune .eyebrow{font-family:var(--text); text-transform:uppercase; letter-spacing:0.40em; font-size:12.5px; font-weight:600; color:var(--gold-soft);}
.univers-lune .kicker{font-family:var(--text); font-size:13px; text-transform:uppercase; letter-spacing:0.28em; color:var(--accent-soft); font-weight:600;}
.univers-lune .lede{font-size:24px; line-height:1.55; color:var(--cream); font-family:var(--serif);}
.univers-lune .muted{color:var(--muted);}
.univers-lune .faint{color:var(--dim);}
.univers-lune .italic{font-style:italic;}
.univers-lune .center{text-align:center;}
.univers-lune .latin{font-style:italic; font-family:var(--serif); color:var(--muted);}
.univers-lune .gold{color:var(--gold-soft);}
.univers-lune .accent{color:var(--accent-soft);}

/* filet à losange (marque) */
.univers-lune .rule{display:flex; align-items:center; gap:20px; color:var(--gold-2);}
.univers-lune .rule::before,.univers-lune .rule::after{content:""; height:1px; flex:1;
  background:linear-gradient(90deg,transparent,var(--line-strong),transparent);}
.univers-lune .rule .dot{width:8px; height:8px; transform:rotate(45deg); background:var(--accent); flex:0 0 auto;
  box-shadow:0 0 calc(12px * var(--halo-op)) color-mix(in srgb, var(--glacier) 80%, transparent);}

/* séparateur à glyphe (lune) */
.univers-lune .glyph-div{display:flex; align-items:center; justify-content:center; gap:18px; color:var(--gold-2); margin:0 auto;}
.univers-lune .glyph-div::before,.univers-lune .glyph-div::after{content:""; height:1px; width:min(140px,20vw);
  background:linear-gradient(90deg,transparent,var(--line-strong),transparent);}
.univers-lune .glyph-div svg{width:30px; height:30px; color:var(--accent-soft); flex:0 0 auto;}

/* =======================================================
   LA LUNE (sphère CSS) + GLYPHES DE PHASE
   ======================================================= */
.univers-lune .moon-orb{position:relative; border-radius:50%; aspect-ratio:1;
  background:
    radial-gradient(circle at 50% 46%, rgba(255,255,255,0.10), transparent 60%),
    radial-gradient(10px 10px at 30% 32%, rgba(86,100,118,0.55), transparent 60%),
    radial-gradient(7px 7px at 62% 40%, rgba(86,100,118,0.45), transparent 60%),
    radial-gradient(13px 13px at 56% 66%, rgba(86,100,118,0.40), transparent 65%),
    radial-gradient(6px 6px at 40% 70%, rgba(86,100,118,0.42), transparent 60%),
    radial-gradient(5px 5px at 72% 62%, rgba(86,100,118,0.38), transparent 60%),
    radial-gradient(circle at 38% 34%, var(--silver-soft), var(--silver) 44%, #93a0b0 76%, #56647a 100%);
  box-shadow:inset -20px -16px 46px rgba(0,0,0,0.55), inset 8px 8px 30px rgba(238,243,250,0.18);}
.univers-lune .moon-orb::after{content:""; position:absolute; inset:-14%; border-radius:50%; pointer-events:none; z-index:-1;
  background:radial-gradient(circle, color-mix(in srgb, var(--glacier) 38%, transparent), transparent 62%);
  opacity:var(--halo-op);}

/* glyphe de phase (disque + part éclairée + anneau) */
.univers-lune .moon-phase .disc{fill:var(--ink-2);}
.univers-lune .moon-phase .lit{fill:var(--silver-soft);
  filter:drop-shadow(0 0 calc(5px * var(--halo-op)) color-mix(in srgb, var(--glacier) 70%, transparent));}
.univers-lune .moon-phase .ring{fill:none; stroke:var(--silver-dim); stroke-width:1;}
@keyframes moon-breathe{ 0%,100%{ opacity:0.92; } 50%{ opacity:1; } }
.univers-lune .moon-phase.breathe .lit{ animation:moon-breathe 6s ease-in-out infinite; }

/* ----- sections ----- */
.univers-lune section{position:relative; padding:96px 0;}
.univers-lune .section-head{max-width:760px; margin:0 0 14px;}
.univers-lune .section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.univers-lune .section-head h2{font-size:clamp(34px,4.6vw,58px); margin-top:14px; font-weight:300; letter-spacing:0.01em;}
.univers-lune .section-head p{margin-top:14px; color:var(--muted); font-size:21px;}

/* bandes rythmiques */
.univers-lune .band-glacier{background:var(--band-1-bg);
  border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
.univers-lune .band-ink{background:var(--band-2-bg);
  border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}

/* ----- en-tête (charte commune) ----- */
.univers-lune .site-header{position:sticky; top:0; z-index:50; backdrop-filter:blur(9px);
  background:var(--header-bg); border-bottom:1px solid var(--header-line);
  box-shadow:0 2px 24px rgba(2,3,8,0.5);}
.univers-lune .site-header .inner{display:flex; align-items:center; justify-content:space-between;
  padding:15px 36px; max-width:var(--maxw-wide); margin:0 auto;}
.univers-lune .brand{display:flex; align-items:center; gap:13px; color:var(--header-text);}
.univers-lune .brand .mark{width:30px; height:30px; color:var(--gold-soft); flex:0 0 auto;}
.univers-lune .brand .word{font-family:var(--display); font-size:26px; letter-spacing:0.18em; line-height:1;}
.univers-lune .brand .word small{display:block; font-family:var(--text); font-size:10px; letter-spacing:0.30em;
  color:var(--gold-soft); margin-top:2px; text-transform:uppercase; opacity:0.85;}
.univers-lune .main-nav{display:flex; gap:28px; font-size:13px; text-transform:uppercase; letter-spacing:0.18em; color:rgba(183,193,205,0.72);}
.univers-lune .main-nav a{transition:color .2s;}
.univers-lune .main-nav a:hover,.univers-lune .main-nav a.active{color:var(--accent-soft);}
.univers-lune .header-tools{display:flex; align-items:center; gap:16px;}
.univers-lune .icon-btn{width:36px; height:36px; border:1px solid var(--header-line); display:flex; align-items:center;
  justify-content:center; color:var(--accent-soft); transition:.2s;}
.univers-lune .icon-btn:hover{background:rgba(159,192,216,0.14);}
@media(max-width:920px){ .univers-lune .main-nav{display:none;} }

/* ----- fil d'ariane ----- */
.univers-lune .crumb{display:flex; gap:12px; align-items:center; font-size:13px; text-transform:uppercase;
  letter-spacing:0.16em; color:var(--dim); flex-wrap:wrap;}
.univers-lune .crumb a:hover{color:var(--accent-soft);}
.univers-lune .crumb .sep{color:var(--gold-2);}
.univers-lune .crumb .here,.univers-lune .crumb .gold{color:var(--accent-soft);}

/* ----- boutons ----- */
.univers-lune .btn{display:inline-flex; align-items:center; gap:12px; padding:15px 30px;
  border:1px solid var(--line-strong); color:var(--silver-soft); background:transparent;
  font-family:var(--text); text-transform:uppercase; letter-spacing:0.2em; font-size:12.5px; font-weight:600;
  cursor:pointer; transition:.22s; white-space:nowrap;}
.univers-lune .btn:hover{background:rgba(201,212,224,0.1); border-color:var(--silver); color:var(--cream);}
.univers-lune .btn-solid{background:var(--silver); color:#0a0e15; border-color:var(--silver);}
.univers-lune .btn-solid:hover{background:var(--silver-soft); color:#0a0e15;}
.univers-lune .btn-accent{background:var(--silver-soft); color:#0a0e15; border-color:var(--silver-soft);}
.univers-lune .btn-accent:hover{background:#fff; border-color:#fff; color:#0a0e15;}
.univers-lune .btn-gold{border-color:var(--gold-2); color:var(--gold-soft);}
.univers-lune .btn-gold:hover{background:rgba(191,155,80,0.12); border-color:var(--gold-1); color:var(--cream);}
.univers-lune .link-more{display:inline-flex; align-items:center; gap:10px; color:var(--accent-soft);
  font-family:var(--text); text-transform:uppercase; letter-spacing:0.18em; font-size:12.5px; font-weight:600;}
.univers-lune .link-more:hover{color:var(--cream);}

/* ----- étiquettes ----- */
.univers-lune .tag{display:inline-block; border:1px solid var(--line); padding:6px 14px; font-size:12px;
  text-transform:uppercase; letter-spacing:0.14em; color:var(--tag-c); white-space:nowrap;}
.univers-lune .tag.gold{border-color:var(--line-gold); color:var(--gold-soft);}
.univers-lune .tag.accent{border-color:var(--line-glacier); color:var(--accent-soft);}
.univers-lune .taglist{display:flex; flex-wrap:wrap; gap:9px;}

/* ----- planche ----- */
.univers-lune .plate{position:relative; background:var(--plate-bg); padding:16px;
  border:1px solid var(--line-strong);
  box-shadow:0 1px 0 rgba(201,212,224,0.12) inset, 0 22px 60px rgba(2,3,8,0.65);}
.univers-lune .plate::after{content:""; position:absolute; inset:8px; border:1px solid var(--line-glacier); pointer-events:none;}
.univers-lune .plate .img-wrap{position:relative; overflow:hidden;
  background:radial-gradient(60% 60% at 50% 42%, rgba(159,192,216,0.14), transparent 70%), var(--plate-mat);}
.univers-lune .plate img,.univers-lune .plate image-slot{display:block; width:100%; height:100%;}
.univers-lune .plate .plate-no{position:absolute; top:22px; left:22px; z-index:2; font-family:var(--text);
  font-size:12px; letter-spacing:0.14em; color:var(--glacier); text-transform:uppercase; white-space:nowrap;
  background:rgba(4,6,12,0.6); padding:2px 8px;}
.univers-lune .plate .cap{margin-top:13px; text-align:center; font-style:italic; font-family:var(--serif);
  font-size:16px; color:var(--muted);}
.univers-lune .plate .cap b{font-style:normal; letter-spacing:0.04em; color:var(--text-c);}

/* ----- carte générique ----- */
.univers-lune .card{border:1px solid var(--line); background:var(--card-bg);
  padding:30px 32px; position:relative; transition:.25s;}
.univers-lune .card .frame{position:absolute; inset:8px; border:1px solid var(--line-soft); pointer-events:none;}
.univers-lune .card:hover{border-color:var(--line-glacier); background:var(--card-bg-hover);}
.univers-lune .card h3,.univers-lune .card h4{font-size:27px; margin-bottom:8px;}
.univers-lune .card p{margin:0; color:var(--muted); font-size:17px;}

/* portes d'entrée */
.univers-lune .entry{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media(max-width:820px){ .univers-lune .entry{grid-template-columns:1fr;} }
.univers-lune .entry a{border:1px solid var(--line); background:var(--card-bg); padding:34px 30px; display:block; transition:.22s; position:relative;}
.univers-lune .entry a:hover{border-color:var(--line-glacier); background:var(--card-bg-hover); transform:translateY(-3px);}
.univers-lune .entry .moon-phase{width:44px; height:44px; margin-bottom:16px;}
.univers-lune .entry svg.ic{width:44px; height:44px; color:var(--accent-soft); margin-bottom:16px;}
.univers-lune .entry h3{font-size:27px; margin-bottom:8px;}
.univers-lune .entry p{color:var(--muted); font-size:16px; margin:0 0 14px;}

/* ----- carte phase (grille) ----- */
.univers-lune .phase-card{display:block; transition:.25s; background:var(--card-bg);
  border:1px solid var(--line); overflow:hidden; position:relative; text-align:center; padding:34px 18px 26px;}
.univers-lune .phase-card:hover{transform:translateY(-4px); border-color:var(--line-glacier);
  box-shadow:0 18px 44px rgba(2,3,8,0.6);}
.univers-lune .phase-card .moon-phase{width:62px; height:62px; margin:0 auto 18px;}
.univers-lune .phase-card h3,.univers-lune .phase-card h4{font-size:23px; margin-bottom:8px; font-weight:400;}
.univers-lune .phase-card .act{font-size:11.5px; text-transform:uppercase; letter-spacing:0.26em; color:var(--gold-soft);}

/* ----- carte article/guide ----- */
.univers-lune .article-card{display:block; border:1px solid var(--line); background:var(--card-bg); overflow:hidden; transition:.22s;}
.univers-lune .article-card:hover{border-color:var(--line-glacier); transform:translateY(-3px);}
.univers-lune .article-card .ph{aspect-ratio:16/10; background:radial-gradient(70% 80% at 50% 32%, rgba(159,192,216,0.14), transparent 70%), var(--plate-mat); position:relative; display:flex; align-items:center; justify-content:center;}
.univers-lune .article-card .ph::after{content:""; position:absolute; inset:8px; border:1px solid var(--line-glacier);}
.univers-lune .article-card .ph .moon-phase{width:64px; height:64px;}
.univers-lune .article-card .kicker{margin:18px 22px 0;}
.univers-lune .article-card h3,.univers-lune .article-card h4{font-size:22px; margin:8px 22px 6px; color:var(--cream);}
.univers-lune .article-card p{margin:0 22px 20px; color:var(--muted); font-size:15px;}

/* ----- carte pierre (grille fiches) ----- */
.univers-lune .stone-card{display:block; transition:.25s; background:var(--card-bg);
  border:1px solid var(--line); overflow:hidden; position:relative;}
.univers-lune .stone-card:hover{transform:translateY(-4px); border-color:var(--line-glacier);
  box-shadow:0 18px 44px rgba(2,3,8,0.6);}
.univers-lune .stone-card .ph{aspect-ratio:5/4; position:relative; overflow:hidden;
  background:radial-gradient(60% 60% at 50% 42%, rgba(159,192,216,0.14), transparent 70%), var(--plate-mat);
  display:flex; align-items:center; justify-content:center;}
.univers-lune .stone-card .ph img,.univers-lune .stone-card .ph image-slot{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.univers-lune .stone-card .ph svg{width:46%; height:auto; color:var(--accent-soft);}
.univers-lune .stone-card .ph::after{content:""; position:absolute; inset:7px; border:1px solid var(--line-glacier); pointer-events:none;}
.univers-lune .stone-card .body{padding:16px 18px 20px;}
.univers-lune .stone-card h3,.univers-lune .stone-card h4{font-size:23px; margin-bottom:2px; font-weight:400;}
.univers-lune .stone-card .sub{font-style:italic; font-family:var(--serif); color:var(--muted); font-size:15px;}
.univers-lune .stone-card .props{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap;}

/* ----- datasheet ----- */
.univers-lune .datasheet{border:1px solid var(--line);}
.univers-lune .datasheet .row{display:grid; grid-template-columns:0.9fr 1.3fr; border-bottom:1px solid var(--line-soft);}
.univers-lune .datasheet .row:last-child{border-bottom:none;}
.univers-lune .datasheet .k{padding:15px 20px; font-size:12px; text-transform:uppercase; letter-spacing:0.16em;
  color:var(--accent-soft); border-right:1px solid var(--line-soft);}
.univers-lune .datasheet .v{padding:15px 20px; color:var(--text-c); font-size:18px;}

/* ----- prose ----- */
.univers-lune .prose{font-size:20px; line-height:1.78; color:var(--text-c); max-width:760px;}
.univers-lune .prose p{margin:0 0 1.3em;}
.univers-lune .prose h2{font-size:clamp(30px,3.6vw,42px); margin:1.5em 0 0.4em; font-weight:300;}
.univers-lune .prose h3{font-size:27px; margin:1.3em 0 0.3em; color:var(--accent-soft);}
.univers-lune .prose .drop::first-letter{float:left; font-family:var(--display); font-size:94px; line-height:0.64;
  padding:12px 14px 0 0; color:var(--silver-soft); font-weight:600;}
.univers-lune .prose strong{font-weight:600; color:var(--cream);}
.univers-lune .prose a.inline{color:var(--gold-soft); border-bottom:1px solid var(--gold-2);}
.univers-lune .prose blockquote{margin:1.5em 0; padding:6px 0 6px 28px; border-left:2px solid var(--silver-dim);
  font-family:var(--serif); font-style:italic; font-size:27px; line-height:1.36; color:var(--cream);}
.univers-lune .prose figure{margin:2em 0;}
.univers-lune .prose figcaption{text-align:center; font-style:italic; color:var(--muted); font-size:15px; margin-top:10px;}

/* encadré */
.univers-lune .callout{border:1px solid var(--line-glacier); background:rgba(159,192,216,0.07);
  padding:24px 28px; margin:0; position:relative;}
.univers-lune .callout .kicker{color:var(--accent-soft); margin-bottom:8px;}
.univers-lune .callout p{margin:0; font-size:18px; color:var(--text-c);}

/* ----- FAQ ----- */
.univers-lune .faq{max-width:800px; margin:0 auto;}
.univers-lune .faq .item{border-top:1px solid var(--line-soft); padding:26px 0;}
.univers-lune .faq .item:last-child{border-bottom:1px solid var(--line-soft);}
.univers-lune .faq h3{font-size:25px; color:var(--cream); margin-bottom:10px;}
.univers-lune .faq p{color:var(--muted); font-size:18px; margin:0; line-height:1.65;}

/* ----- pied (charte commune) ----- */
.univers-lune .site-footer{border-top:1px solid var(--header-line); padding:64px 0 44px;
  background:var(--footer-bg); color:var(--footer-text);}
.univers-lune .site-footer .col-h{font-size:13px; text-transform:uppercase; letter-spacing:0.22em; color:var(--gold-soft); margin-bottom:16px; font-family:var(--text); font-weight:600;}
.univers-lune .site-footer .word{font-family:var(--display); font-size:28px; letter-spacing:0.18em; color:#eef3fa;}
.univers-lune .site-footer .brand{color:var(--header-text); margin-bottom:0;}
.univers-lune .site-footer .brand .mark{width:30px; height:30px; color:var(--gold-soft);}
.univers-lune .footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px;}
.univers-lune .site-footer .col a{display:block; color:var(--footer-text); padding:5px 0; font-size:16px; transition:color .2s;}
.univers-lune .site-footer .col a:hover{color:var(--accent-soft);}
.univers-lune .site-footer .tagline{color:var(--footer-text); margin-top:16px; max-width:300px; font-size:16px; font-style:italic;}
.univers-lune .footer-base{border-top:1px solid var(--line-soft); margin-top:46px; padding-top:24px;
  display:flex; justify-content:space-between; color:rgba(126,138,153,0.8); font-size:13px; letter-spacing:0.04em; gap:20px;}
.univers-lune .footer-base .disc{max-width:560px;}
@media(max-width:820px){ .univers-lune .footer-grid{grid-template-columns:1fr 1fr;} .univers-lune .footer-base{flex-direction:column; gap:14px;} }

/* ----- grilles ----- */
.univers-lune .grid{display:grid; gap:24px;}
.univers-lune .g2{grid-template-columns:repeat(2,1fr);}
.univers-lune .g3{grid-template-columns:repeat(3,1fr);}
.univers-lune .g4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){ .univers-lune .g3,.univers-lune .g4{grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px){ .univers-lune .g2,.univers-lune .g3,.univers-lune .g4{grid-template-columns:1fr;} }

/* =======================================================
   GABARITS DE PAGE (préfixés .univers-lune)
   ======================================================= */

/* ---- Pilier /lune/ ---- */
.univers-lune .pilier-hero{padding:64px 0 36px; text-align:center; position:relative; overflow:hidden;}
.univers-lune .pilier-hero .moon-orb{width:clamp(180px,26vw,280px); margin:0 auto 40px;}
.univers-lune .pilier-hero .eyebrow{display:block; margin-bottom:18px;}
.univers-lune .pilier-hero h1{font-size:clamp(48px,7.4vw,108px); line-height:0.94; font-weight:300; margin:0 auto 20px; max-width:14ch;}
.univers-lune .pilier-hero h1 em{color:var(--accent-soft); font-style:italic;}
.univers-lune .pilier-hero .sub{font-family:var(--serif); font-size:23px; line-height:1.5; color:var(--muted); max-width:50ch; margin:0 auto 32px;}
.univers-lune .hero-cta{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.univers-lune .intro-text{max-width:740px; margin:0 auto; padding:8px 0 0;}
.univers-lune .cycle{padding:30px 0;}
.univers-lune .cycle .grid{margin-top:46px;}
.univers-lune .portes .entry{margin-top:44px;}
.univers-lune .guides .grid{margin-top:40px;}
.univers-lune .faq-sec{padding:96px 0;}

/* ---- Fiche phase /lune/{slug}/ ---- */
.univers-lune .fiche-hero{padding:44px 0 66px;}
.univers-lune .hero-grid{display:grid; grid-template-columns:0.82fr 1.18fr; gap:58px; align-items:center;}
@media(max-width:900px){ .univers-lune .hero-grid{grid-template-columns:1fr; gap:38px;} }
.univers-lune .hero-card{max-width:340px; margin:0 auto;}
.univers-lune .hero-card .moon-frame{display:flex; align-items:center; justify-content:center; aspect-ratio:1;}
.univers-lune .hero-card .moon-frame .moon-phase{width:72%; height:72%;}
.univers-lune .hero-text .eyebrow{display:block; margin-bottom:18px;}
.univers-lune .hero-text h1{font-size:clamp(52px,8vw,104px); line-height:0.92; font-weight:300; margin-bottom:10px;}
.univers-lune .hero-text .latin{font-size:21px; display:block; margin-bottom:22px;}
.univers-lune .hero-text .lede{font-family:var(--serif); font-size:23px; line-height:1.5; color:var(--cream); max-width:42ch; margin-bottom:26px;}
.univers-lune .fiche-body{padding:64px 0 86px;}
.univers-lune .layout{display:grid; grid-template-columns:1fr 330px; gap:60px; align-items:start;}
@media(max-width:980px){ .univers-lune .layout{grid-template-columns:1fr; gap:48px;} }
.univers-lune .aside{position:sticky; top:96px; display:flex; flex-direction:column; gap:24px;}
.univers-lune .block{margin-bottom:60px;}
.univers-lune .block:last-child{margin-bottom:0;}
.univers-lune .block .eyebrow{display:block; margin-bottom:6px;}
.univers-lune .block h2{font-size:clamp(30px,3.6vw,46px); font-weight:300; margin-bottom:6px;}
.univers-lune .block .rule{margin:18px 0 28px;}
.univers-lune .block > p{font-size:19px; line-height:1.7;}
.univers-lune .rituels{list-style:none; padding:0; margin:0; border:1px solid var(--line);}
.univers-lune .rituels li{display:flex; align-items:center; gap:18px; padding:20px 24px; border-top:1px solid var(--line-soft); font-size:18px; color:var(--text-c);}
.univers-lune .rituels li:first-child{border-top:none;}
.univers-lune .rituels li svg{width:24px; height:24px; color:var(--accent-soft); flex:0 0 auto;}
.univers-lune .mini-wheel{display:grid; grid-template-columns:repeat(4,1fr); gap:10px;}
.univers-lune .mini-wheel .mp{display:flex; flex-direction:column; align-items:center; gap:6px; opacity:0.4; transition:.2s;}
.univers-lune .mini-wheel .mp.on{opacity:1;}
.univers-lune .mini-wheel .mp .moon-phase{width:30px; height:30px;}
.univers-lune .mini-wheel .mp small{font-size:9px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); text-align:center; line-height:1.2;}

/* ---- Calculateur /lune/ce-soir/ ---- */
.univers-lune .calc-hero{padding:40px 0 8px; text-align:center;}
.univers-lune .calc-hero .eyebrow{display:block; margin-bottom:16px;}
.univers-lune .calc-hero h1{font-size:clamp(42px,6vw,80px); line-height:0.96; font-weight:300; margin:0 auto 14px; max-width:16ch;}
.univers-lune .calc-hero .sub{font-family:var(--serif); font-size:21px; color:var(--muted); max-width:48ch; margin:0 auto;}
.univers-lune .calc-stage{display:grid; grid-template-columns:auto 1fr; gap:56px; align-items:center; max-width:880px; margin:44px auto 0; padding:0 36px;}
@media(max-width:760px){ .univers-lune .calc-stage{grid-template-columns:1fr; gap:30px; text-align:center; justify-items:center;} }
.univers-lune .calc-moon{width:230px; height:230px; flex:0 0 auto; position:relative;}
.univers-lune .calc-moon::after{content:""; position:absolute; inset:-16%; border-radius:50%; z-index:-1; pointer-events:none;
  background:radial-gradient(circle, color-mix(in srgb, var(--glacier) 36%, transparent), transparent 62%); opacity:var(--halo-op);}
.univers-lune .calc-moon svg{width:100%; height:100%;}
.univers-lune .calc-info .when{font-size:12px; text-transform:uppercase; letter-spacing:0.22em; color:var(--gold-soft); margin-bottom:10px;}
.univers-lune .calc-info h2{font-size:clamp(34px,5vw,56px); font-weight:300; color:var(--cream); margin:0 0 6px;}
.univers-lune .calc-info .act{font-family:var(--serif); font-style:italic; font-size:24px; color:var(--accent-soft); margin-bottom:18px;}
.univers-lune .calc-info .stats{display:flex; gap:26px; flex-wrap:wrap;}
.univers-lune .calc-info .stats .s .n{font-family:var(--display); font-size:30px; color:var(--silver-soft); line-height:1;}
.univers-lune .calc-info .stats .s .l{font-size:11px; text-transform:uppercase; letter-spacing:0.16em; color:var(--muted); margin-top:5px;}
.univers-lune .calc-controls{display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap; margin:40px auto 0;}
.univers-lune .calc-controls .field{display:flex; border:1px solid var(--line-strong); background:rgba(4,6,12,0.5);}
.univers-lune .calc-controls input[type=date]{background:transparent; border:none; outline:none; color:var(--cream);
  font-family:var(--text); font-size:17px; padding:13px 18px; color-scheme:dark;}
.univers-lune .calc-reading{max-width:820px; margin:44px auto 0; padding:0 36px; opacity:0; transition:opacity .4s;}
.univers-lune .calc-reading.show{opacity:1;}
.univers-lune .calc-reading .sens{font-family:var(--serif); font-size:22px; line-height:1.5; color:var(--cream); text-align:center; max-width:60ch; margin:0 auto 30px;}
.univers-lune .calc-reading .rt-head{text-align:center; margin-bottom:18px;}
.univers-lune .calc-reading .rituels{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; border:none;}
@media(max-width:680px){ .univers-lune .calc-reading .rituels{grid-template-columns:1fr;} }
.univers-lune .calc-reading .rituels .r{border:1px solid var(--line); background:var(--card-bg); padding:22px 22px;
  display:flex; gap:14px; align-items:flex-start; font-size:16px; color:var(--text-c);}
.univers-lune .calc-reading .rituels .r svg{width:22px; height:22px; color:var(--accent-soft); flex:0 0 auto; margin-top:2px;}
.univers-lune .preview-note{text-align:center; font-style:italic; color:var(--gold-soft); font-size:14px; margin:0 0 18px; min-height:1.2em;}
.univers-lune .wheel-sec{padding:90px 0;}
.univers-lune .wheel-wrap{position:relative; width:min(440px,86vw); aspect-ratio:1; margin:44px auto 0;}
.univers-lune .wheel-wrap .ring-line{position:absolute; inset:8%; border:1px solid var(--line-soft); border-radius:50%;}
.univers-lune .wheel-node{position:absolute; transform:translate(-50%,-50%); all:unset; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:7px; width:96px; text-align:center; transition:.2s;}
.univers-lune .wheel-node .moon-phase{width:46px; height:46px; transition:.2s;}
.univers-lune .wheel-node small{font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--muted); line-height:1.2;}
.univers-lune .wheel-node:hover{transform:translate(-50%,-50%) scale(1.08);}
.univers-lune .wheel-node.sel .moon-phase{filter:drop-shadow(0 0 10px var(--glacier));}
.univers-lune .wheel-node.sel small{color:var(--accent-soft);}
.univers-lune .wheel-center{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); text-align:center; width:46%;}
.univers-lune .wheel-center .lbl{font-size:11px; text-transform:uppercase; letter-spacing:0.2em; color:var(--gold-soft);}
.univers-lune .wheel-center .nm{font-family:var(--display); font-size:24px; color:var(--cream); margin-top:6px; line-height:1.1;}

/* ---- Guide /lune/guides/{slug}/ ---- */
.univers-lune .art-hero{padding:46px 0 40px;}
.univers-lune .art-hero .kicker{display:block; margin-bottom:18px;}
.univers-lune .art-hero h1{font-size:clamp(44px,6.4vw,84px); line-height:0.98; font-weight:300; max-width:18ch; margin-bottom:22px;}
.univers-lune .art-meta{display:flex; gap:14px; align-items:center; color:var(--muted); font-size:14px; letter-spacing:0.04em; flex-wrap:wrap;}
.univers-lune .art-meta .sep{color:var(--gold-2);}
.univers-lune .art-hero .art-lede{font-family:var(--serif); font-size:25px; line-height:1.5; color:var(--cream); max-width:46ch; margin:24px 0 0;}
.univers-lune .art-figure{margin:8px 0 0;}
.univers-lune .art-figure .img-wrap{display:flex; align-items:center; justify-content:center; gap:clamp(8px,2.4vw,30px); padding:30px 0;}
.univers-lune .art-figure .moon-phase{width:clamp(30px,6vw,64px); height:clamp(30px,6vw,64px);}
.univers-lune .art-body{padding:18px 0 86px;}
.univers-lune .art-layout{display:grid; grid-template-columns:1fr 280px; gap:60px; align-items:start;}
@media(max-width:980px){ .univers-lune .art-layout{grid-template-columns:1fr; gap:44px;} }
.univers-lune .toc{position:sticky; top:96px; border-left:1px solid var(--line-soft); padding-left:22px;}
.univers-lune .toc .lb{font-size:11px; text-transform:uppercase; letter-spacing:0.2em; color:var(--gold-soft); margin-bottom:14px;}
.univers-lune .toc a{display:block; color:var(--muted); font-size:16px; padding:6px 0; transition:.2s;}
.univers-lune .toc a:hover{color:var(--accent-soft);}
.univers-lune .crit{display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line); margin:10px 0 0;}
.univers-lune .crit .c{padding:24px 26px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
.univers-lune .crit .c:nth-child(2n){border-right:none;}
.univers-lune .crit .c:nth-last-child(-n+2){border-bottom:none;}
.univers-lune .crit .c .n{font-family:var(--serif); font-size:26px; color:var(--accent-soft);}
.univers-lune .crit .c h3,.univers-lune .crit .c h4{font-size:21px; margin:4px 0 6px;}
.univers-lune .crit .c p{font-size:15px; color:var(--muted); margin:0;}
@media(max-width:600px){ .univers-lune .crit{grid-template-columns:1fr;} .univers-lune .crit .c{border-right:none !important;} }

@media(prefers-reduced-motion:reduce){
  .univers-lune *{animation:none !important; transition:none !important;}
  html{scroll-behavior:auto;}
}
