/* =================================================================
   GRIMORIUM - Univers RÊVES & ONIROMANCIE
   « Seuil du rêve » - le dictionnaire des songes
   Skin de la rubrique Rêves. Garde l'ADN de marque (logo GRIMORIUM
   + baseline, duo Garamond, OR de marque, petites capitales
   .eyebrow/.kicker, filets à losange .rule, structure des pages) -
   habillage : nuit INDIGO-VIOLET surréaliste, ŒIL qui s'ouvre / PORTAIL
   (le « seuil »), ÉTOILES DIFFUSES floues, BRUME onirique qui dérive,
   SYMBOLES célestes qui flottent (lune, clé, main, spirale, échelle).

   Scope : tout est préfixé .univers-reves → poser sur <body> :
     body.univers-reves haze-mid
   Intensité de la brume : .haze-off · .haze-low · .haze-mid (défaut) · .haze-high
   Densité des étoiles : .tex-1 · .tex-2 (défaut) · .tex-3
   En prod WordPress : charger cette feuille UNIQUEMENT sur /reves/.
   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-reves{
  /* - nuit indigo-violet - */
  --night:#0d0a22;          /* indigo-violet profond (fond) */
  --night-2:#171036;        /* panneaux */
  --night-3:#070514;        /* nuit la plus profonde */
  --dusk:#241546;           /* violet crépusculaire */
  --plum:#321a48;           /* prune */
  /* - or de marque - */
  --gold-1:#bf9b50;
  --gold-2:#8c7232;
  --gold-soft:#e3c987;
  /* - lune / songe (lueur froide secondaire) - */
  --moon:#9fb6e8;
  --moon-soft:#c7d6f4;
  /* - texte - */
  --text-c:#c7c2da;
  --cream:#efeaf6;
  --muted:#8d86a8;
  --dim:#5e577e;

  /* - ACCENT unique (orchidée / lilas lumineux du rêve) - */
  --accent:#b388e6;
  --accent-soft:#d9c2f5;
  --accent-deep:#5e3f8c;

  /* - rôles (les composants n'utilisent que ceux-ci) - */
  --bg:var(--night);
  --panel:rgba(23,16,54,0.5);
  --panel-2:#140d30;
  --plate-bg:#140d30;
  --plate-mat:#0a0720;
  --header-bg:linear-gradient(180deg, rgba(13,10,34,0.96), rgba(7,5,20,0.80));
  --header-text:#efeaf6;
  --header-line:rgba(179,136,230,0.36);
  --footer-bg:linear-gradient(180deg,#0b0820,#060410);
  --footer-text:#8d86a8;
  --band-1-bg:radial-gradient(130% 90% at 50% -14%, rgba(179,136,230,0.20), transparent 60%), linear-gradient(180deg, rgba(36,21,70,0.55), rgba(7,5,20,0.6));
  --band-2-bg:radial-gradient(120% 90% at 50% -10%, rgba(159,182,232,0.12), transparent 62%), linear-gradient(180deg, rgba(15,11,40,0.7), rgba(6,4,16,0.7));
  --card-bg:linear-gradient(180deg, rgba(23,16,54,0.46), rgba(7,5,20,0.46));
  --card-bg-hover:linear-gradient(180deg, rgba(179,136,230,0.16), rgba(7,5,20,0.46));
  --tag-c:var(--muted);

  /* - filets - */
  --line:rgba(179,136,230,0.24);
  --line-soft:rgba(159,182,232,0.14);
  --line-strong:rgba(179,136,230,0.42);
  --line-gold:rgba(191,155,80,0.5);
  --line-moon:rgba(159,182,232,0.24);

  /* - brume / étoiles - */
  --haze-op:0.6;
  --tex-op:0.5;

  /* - typo (charte commune) - */
  --display:"Cormorant Garamond", Georgia, serif;
  --serif:"Cormorant Garamond", Georgia, serif;
  --text:"EB Garamond", Georgia, serif;
  --maxw:1180px;
  --maxw-wide:1320px;
}

/* - intensité de la brume - */
.univers-reves.haze-off  { --haze-op:0; }
.univers-reves.haze-low  { --haze-op:0.32; }
.univers-reves.haze-mid  { --haze-op:0.6; }
.univers-reves.haze-high { --haze-op:0.92; }
/* - densité des étoiles diffuses - */
.univers-reves.tex-1{--tex-op:0.28;}
.univers-reves.tex-2{--tex-op:0.5;}
.univers-reves.tex-3{--tex-op:0.82;}

/* =======================================================
   BASE + FOND « SEUIL DU RÊVE »
   ======================================================= */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.univers-reves{
  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(--night);
  background-image:
    radial-gradient(75% 50% at 50% -6%, rgba(179,136,230,0.26), transparent 60%),
    radial-gradient(60% 44% at 16% 14%, rgba(94,63,140,0.30), transparent 64%),
    radial-gradient(70% 50% at 86% 86%, rgba(159,182,232,0.14), transparent 64%),
    linear-gradient(180deg, var(--night), var(--dusk) 46%, var(--night-3));
  background-attachment:fixed;
}
.univers-reves img{max-width:100%; display:block;}

/* étoiles diffuses (lueurs floues, distinctes des étoiles nettes du Tarot) */
.univers-reves::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:var(--tex-op);
  background-image:
    radial-gradient(2.5px 2.5px at 12% 18%, rgba(217,194,245,0.9), transparent 60%),
    radial-gradient(3px 3px at 28% 62%, rgba(199,214,244,0.7), transparent 60%),
    radial-gradient(2px 2px at 47% 31%, rgba(239,234,246,0.8), transparent 60%),
    radial-gradient(3.5px 3.5px at 63% 73%, rgba(217,194,245,0.65), transparent 60%),
    radial-gradient(2px 2px at 78% 24%, rgba(199,214,244,0.8), transparent 60%),
    radial-gradient(2.5px 2.5px at 88% 56%, rgba(239,234,246,0.7), transparent 60%),
    radial-gradient(2px 2px at 38% 86%, rgba(217,194,245,0.7), transparent 60%),
    radial-gradient(3px 3px at 70% 12%, rgba(199,214,244,0.6), transparent 60%);
  filter:blur(0.4px);
}
/* brume onirique qui dérive */
.univers-reves::after{
  content:""; position:fixed; inset:-20% -10% -10% -10%; z-index:0; pointer-events:none; opacity:var(--haze-op);
  background-image:
    radial-gradient(40% 30% at 22% 30%, rgba(179,136,230,0.22), transparent 70%),
    radial-gradient(46% 34% at 76% 64%, rgba(159,182,232,0.18), transparent 72%),
    radial-gradient(38% 28% at 54% 90%, rgba(94,63,140,0.30), transparent 72%);
  filter:blur(28px);
  animation:reve-drift 34s ease-in-out infinite alternate;
}
@keyframes reve-drift{
  0%{transform:translate3d(0,0,0) scale(1);}
  100%{transform:translate3d(-3%,-2%,0) scale(1.08);}
}

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

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

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

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

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

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

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

/* ----- en-tête ----- */
.univers-reves .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 22px rgba(4,3,12,0.5);}
.univers-reves .site-header .inner{display:flex; align-items:center; justify-content:space-between;
  padding:15px 36px; max-width:var(--maxw-wide); margin:0 auto;}
.univers-reves .brand{display:flex; align-items:center; gap:13px; color:var(--header-text);}
.univers-reves .brand .mark{width:30px; height:30px; color:var(--gold-soft); flex:0 0 auto;}
.univers-reves .brand .word{font-family:var(--display); font-size:26px; letter-spacing:0.18em; line-height:1;}
.univers-reves .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-reves .main-nav{display:flex; gap:30px; font-size:13px; text-transform:uppercase; letter-spacing:0.18em; color:rgba(199,194,218,0.72);}
.univers-reves .main-nav a{transition:color .2s;}
.univers-reves .main-nav a:hover,.univers-reves .main-nav a.active{color:var(--accent-soft);}
.univers-reves .header-tools{display:flex; align-items:center; gap:16px;}
.univers-reves .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-reves .icon-btn:hover{background:rgba(179,136,230,0.16);}
@media(max-width:920px){ .univers-reves .main-nav{display:none;} }

/* ----- fil d'ariane ----- */
.univers-reves .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-reves .crumb a:hover{color:var(--accent-soft);}
.univers-reves .crumb .sep{color:var(--gold-2);}
.univers-reves .crumb .here,.univers-reves .crumb .gold{color:var(--accent-soft);}

/* ----- boutons ----- */
.univers-reves .btn{display:inline-flex; align-items:center; gap:12px; padding:15px 30px;
  border:1px solid var(--gold-2); color:var(--gold-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-reves .btn:hover{background:rgba(191,155,80,0.12); border-color:var(--gold-1); color:var(--cream);}
.univers-reves .btn-solid{background:var(--gold-1); color:#15110a; border-color:var(--gold-1);}
.univers-reves .btn-solid:hover{background:var(--gold-soft); color:#15110a;}
.univers-reves .btn-accent{background:var(--accent); color:#120a22; border-color:var(--accent);}
.univers-reves .btn-accent:hover{background:var(--accent-soft); border-color:var(--accent-soft); color:#120a22;}
.univers-reves .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-reves .link-more:hover{color:var(--cream);}

/* ----- étiquettes ----- */
.univers-reves .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-reves .tag.gold{border-color:var(--line-gold); color:var(--gold-soft);}
.univers-reves .tag.accent{border-color:color-mix(in srgb, var(--accent) 55%, transparent); color:var(--accent-soft);}
.univers-reves .taglist{display:flex; flex-wrap:wrap; gap:9px;}

/* =======================================================
   L'ŒIL-PORTAIL (emblème signature) - SVG dessiné main
   ======================================================= */
.univers-reves .eye-emblem{display:block; color:var(--gold-soft);}
.univers-reves .eye-emblem .lid{stroke:var(--gold-soft); stroke-width:1.4; fill:none;}
.univers-reves .eye-emblem .iris{stroke:var(--accent-soft); stroke-width:1.2; fill:none;}
.univers-reves .eye-emblem .pupil{fill:var(--accent);}
.univers-reves .eye-emblem .ray{stroke:var(--accent-soft); stroke-width:0.9; opacity:0.7;}
.univers-reves .eye-emblem .glow{fill:var(--accent-soft); opacity:0.9;}
.univers-reves .eye-emblem .rays-grp{transform-origin:center; transform-box:fill-box;}
@keyframes reve-rays{ to{ transform:rotate(360deg);} }
@keyframes reve-iris{ 0%,100%{ opacity:0.85; } 50%{ opacity:1; } }
.univers-reves .eye-emblem.alive .rays-grp{ animation:reve-rays 90s linear infinite; }
.univers-reves .eye-emblem.alive .pupil{ animation:reve-iris 5.5s ease-in-out infinite; }

/* halo derrière l'œil / les symboles */
.univers-reves .aura{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  border-radius:50%; pointer-events:none; z-index:0;
  background:radial-gradient(circle, color-mix(in srgb, var(--accent) 32%, transparent), transparent 66%);}

/* ----- symboles flottants ----- */
.univers-reves .floaters{position:absolute; inset:0; z-index:1; pointer-events:none;}
.univers-reves .floater{position:absolute; color:var(--accent-soft); opacity:0.5;}
.univers-reves .floater svg{width:100%; height:100%; display:block;}
.univers-reves .floater.moon{color:var(--moon-soft);}
.univers-reves .floater.gold{color:var(--gold-soft);}
@keyframes reve-float{ 0%,100%{ transform:translateY(0) rotate(var(--rot,0deg)); } 50%{ transform:translateY(-18px) rotate(var(--rot,0deg)); } }
.univers-reves .floater{ animation:reve-float var(--dur,9s) ease-in-out infinite; animation-delay:var(--delay,0s); }

/* ----- portail (cadre en arche pour planches & cartes) ----- */
.univers-reves .plate{position:relative; background:var(--plate-bg); padding:16px;
  border:1px solid var(--line-strong);
  box-shadow:0 1px 0 rgba(179,136,230,0.18) inset, 0 22px 54px rgba(4,3,12,0.6);}
.univers-reves .plate::after{content:""; position:absolute; inset:8px; border:1px solid var(--line-moon); pointer-events:none;}
.univers-reves .plate .img-wrap{position:relative; overflow:hidden;
  background:radial-gradient(60% 60% at 50% 40%, rgba(179,136,230,0.18), transparent 70%), var(--plate-mat);}
.univers-reves .plate img,.univers-reves .plate image-slot{display:block; width:100%; height:100%;}
.univers-reves .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(--accent-soft); text-transform:uppercase; white-space:nowrap;
  background:rgba(7,5,20,0.6); padding:2px 8px;}
.univers-reves .plate .cap{margin-top:13px; text-align:center; font-style:italic; font-family:var(--serif);
  font-size:16px; color:var(--muted);}
.univers-reves .plate .cap b{font-style:normal; letter-spacing:0.04em; color:var(--text-c);}

/* figure d'engravure onirique (symbole dessiné) */
.univers-reves .engrave{width:100%; height:100%; color:var(--accent-soft); display:block; padding:8%;}
.univers-reves .engrave .gold{stroke:var(--gold-soft);}
.univers-reves .engrave .moon{stroke:var(--moon-soft);}

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

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

/* ----- carte « symbole de rêve » (grille) ----- */
.univers-reves .stone-card{display:block; transition:.25s; background:var(--plate-bg);
  border:1px solid var(--line); overflow:hidden; position:relative;}
.univers-reves .stone-card:hover{transform:translateY(-4px); border-color:var(--accent);
  box-shadow:0 18px 40px rgba(4,3,12,0.55);}
.univers-reves .stone-card .ph{aspect-ratio:5/4; position:relative; overflow:hidden;
  background:radial-gradient(60% 70% at 50% 42%, rgba(179,136,230,0.20), transparent 70%), var(--plate-mat);
  display:flex; align-items:center; justify-content:center;}
.univers-reves .stone-card .ph img,.univers-reves .stone-card .ph image-slot{width:100%; height:100%; object-fit:cover;}
.univers-reves .stone-card .ph svg{width:44%; height:auto; color:var(--accent-soft); opacity:0.95;}
.univers-reves .stone-card .ph::after{content:""; position:absolute; inset:7px; border:1px solid var(--line-moon); pointer-events:none;}
.univers-reves .stone-card .body{padding:16px 18px 20px;}
.univers-reves .stone-card h3,.univers-reves .stone-card h4{font-size:24px; margin-bottom:2px;}
.univers-reves .stone-card .sub{font-style:italic; font-family:var(--serif); color:var(--muted); font-size:15px;}
.univers-reves .stone-card .props{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap;}

/* ----- carte produit (affiliation) ----- */
.univers-reves .product-card{border:1px solid var(--line); background:var(--card-bg); overflow:hidden; transition:.22s;}
.univers-reves .product-card:hover{border-color:var(--accent-deep);}
.univers-reves .product-card .ph{aspect-ratio:4/3; background:var(--plate-mat); position:relative; overflow:hidden;}
.univers-reves .product-card .body{padding:18px 20px 20px;}
.univers-reves .product-card .label{font-size:11px; text-transform:uppercase; letter-spacing:0.16em; color:var(--accent-soft); margin-bottom:6px;}
.univers-reves .product-card h5{font-size:19px; font-weight:500; margin:0 0 10px; color:var(--cream);}
.univers-reves .product-card .price{font-family:var(--serif); font-size:24px; color:var(--gold-soft);}
.univers-reves .product-card .aff{font-size:12px; text-transform:uppercase; letter-spacing:0.14em; color:var(--dim); margin-top:6px;}

/* ----- carte article/guide ----- */
.univers-reves .article-card{display:block; border:1px solid var(--line); background:var(--card-bg); overflow:hidden; transition:.22s;}
.univers-reves .article-card:hover{border-color:var(--accent-deep); transform:translateY(-3px);}
.univers-reves .article-card .ph{aspect-ratio:16/10; background:radial-gradient(70% 80% at 50% 30%, rgba(179,136,230,0.18), transparent 70%), var(--plate-mat); position:relative; display:flex; align-items:center; justify-content:center;}
.univers-reves .article-card .ph::after{content:""; position:absolute; inset:8px; border:1px solid var(--line-moon);}
.univers-reves .article-card .ph svg{width:34%; color:var(--accent-soft); opacity:0.92;}
.univers-reves .article-card .kicker{margin:18px 22px 0;}
.univers-reves .article-card h3,.univers-reves .article-card h4{font-size:22px; margin:8px 22px 6px; color:var(--cream);}
.univers-reves .article-card p{margin:0 22px 20px; color:var(--muted); font-size:15px;}

/* ----- table de correspondances (datasheet) ----- */
.univers-reves .datasheet{border:1px solid var(--line);}
.univers-reves .datasheet .row{display:grid; grid-template-columns:0.9fr 1.3fr; border-bottom:1px solid var(--line-soft);}
.univers-reves .datasheet .row:last-child{border-bottom:none;}
.univers-reves .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-reves .datasheet .v{padding:15px 20px; color:var(--text-c); font-size:18px;}

/* ----- interprétations (3 colonnes) ----- */
.univers-reves .vertus{display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line);}
.univers-reves .vertus .v{padding:30px 28px; border-right:1px solid var(--line-soft);}
.univers-reves .vertus .v:last-child{border-right:none;}
.univers-reves .vertus .v svg{width:36px; height:36px; color:var(--accent-soft); margin-bottom:14px;}
.univers-reves .vertus .v h3,.univers-reves .vertus .v h4{font-size:24px; margin-bottom:10px;}
.univers-reves .vertus .v ul{list-style:none; padding:0; margin:0;}
.univers-reves .vertus .v li{padding:8px 0; border-top:1px solid var(--line-soft); color:var(--muted); font-size:16px;}
.univers-reves .vertus .v li:first-child{border-top:none;}
@media(max-width:760px){ .univers-reves .vertus{grid-template-columns:1fr;} .univers-reves .vertus .v{border-right:none; border-bottom:1px solid var(--line-soft);} }

/* ----- bon présage / mauvais présage ----- */
.univers-reves .purif{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.univers-reves .purif .col{border:1px solid var(--line); background:var(--card-bg); padding:28px;}
.univers-reves .purif .col.yes{border-color:rgba(159,182,232,0.5);}
.univers-reves .purif .col.no{border-color:rgba(194,90,124,0.5);}
.univers-reves .purif .col h3,.univers-reves .purif .col h4{display:flex; align-items:center; gap:12px; font-size:22px; margin-bottom:16px;}
.univers-reves .purif .col .mk{width:28px; height:28px; transform:rotate(45deg); display:flex; align-items:center; justify-content:center; flex:0 0 auto; font-size:14px; border:1px solid currentColor;}
.univers-reves .purif .col .mk span{transform:rotate(-45deg);}
.univers-reves .purif .yes h4{color:var(--moon-soft);}
.univers-reves .purif .no h4{color:#e08aae;}
.univers-reves .purif ul{list-style:none; padding:0; margin:0;}
.univers-reves .purif li{padding:10px 0; border-top:1px solid var(--line-soft); color:var(--text-c); font-size:16.5px;}
.univers-reves .purif li:first-child{border-top:none;}
@media(max-width:680px){ .univers-reves .purif{grid-template-columns:1fr;} }

/* ----- méthode pas-à-pas ----- */
.univers-reves .howto{display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line);}
.univers-reves .howto .h{padding:26px 28px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
.univers-reves .howto .h:nth-child(2n){border-right:none;}
.univers-reves .howto .h:nth-last-child(-n+2){border-bottom:none;}
.univers-reves .howto .h .n{font-family:var(--serif); font-size:28px; color:var(--accent-soft);}
.univers-reves .howto .h h3,.univers-reves .howto .h h4{font-size:21px; margin:6px 0 6px;}
.univers-reves .howto .h p{font-size:15px; color:var(--muted); margin:0;}
@media(max-width:680px){ .univers-reves .howto{grid-template-columns:1fr;} .univers-reves .howto .h{border-right:none !important;} }

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

/* encadré */
.univers-reves .callout{border:1px solid rgba(179,136,230,0.45); background:rgba(179,136,230,0.08);
  padding:24px 28px; margin:0; position:relative;}
.univers-reves .callout .kicker{color:var(--accent-soft); margin-bottom:8px;}
.univers-reves .callout p{margin:0; font-size:18px; color:var(--text-c);}

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

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

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

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


/* =======================================================
   GABARITS DE PAGE (consolidés depuis les maquettes de handoff)
   Chargés uniquement sur /reves/ via bodyClass - non préfixés.
   ======================================================= */

/* ---- PILIER (/reves/) ---- */
  /* ---- Gabarit : Pilier Rêves ---- */
  .pilier-hero{padding:36px 0 22px; text-align:center; position:relative; overflow:hidden;}
  .pilier-hero .eyebrow{display:block; margin-bottom:18px;}
  .pilier-hero h1{font-size:clamp(48px,7vw,100px); line-height:0.95; font-weight:300; margin:0 auto 18px; max-width:15ch;}
  .pilier-hero h1 em{color:var(--accent-soft);}
  .pilier-hero .sub{font-family:var(--serif); font-size:23px; line-height:1.5; color:var(--muted); max-width:52ch; margin:0 auto 30px;}

  /* scène : l'œil-portail + symboles flottants */
  .hero-stage{position:relative; height:300px; margin:0 auto 4px; max-width:620px;}
  .hero-stage .aura{width:340px; height:340px;}
  .eye-wrap{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:226px; height:226px; z-index:2;}

  .hero-cta{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
  .intro-text{max-width:740px; margin:0 auto; padding:46px 0 0; position:relative; z-index:1;}

  .portes .entry{margin-top:44px;}
  .symboles{padding:34px 0;}
  .symboles .section-head, .guides .section-head{display:flex; justify-content:space-between; align-items:flex-end; max-width:none; gap:20px;}
  .symboles .grid,.guides .grid{margin-top:40px;}
  .faq-sec{padding:90px 0;}

/* ---- FICHE SYMBOLE (/reves/{slug}/) ---- */
  /* ---- Gabarit : Fiche symbole ---- */
  .fiche-hero{padding:44px 0 66px;}
  .hero-grid{display:grid; grid-template-columns:0.82fr 1.18fr; gap:58px; align-items:center;}
  @media(max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:38px;} }
  .hero-card{max-width:340px; margin:0 auto;}
  .hero-text .eyebrow{display:block; margin-bottom:18px;}
  .hero-text h1{font-size:clamp(52px,7.6vw,98px); line-height:0.92; font-weight:300; margin-bottom:10px;}
  .hero-text .latin{font-size:21px; display:block; margin-bottom:22px;}
  .hero-text .lede{font-family:var(--serif); font-size:23px; line-height:1.5; color:var(--cream); max-width:42ch; margin-bottom:26px;}

  .fiche-body{padding:64px 0 86px;}
  .layout{display:grid; grid-template-columns:1fr 330px; gap:60px; align-items:start;}
  @media(max-width:980px){ .layout{grid-template-columns:1fr; gap:48px;} }
  .aside{position:sticky; top:96px; display:flex; flex-direction:column; gap:24px;}
  .block{margin-bottom:60px;}
  .block:last-child{margin-bottom:0;}
  .block .eyebrow{display:block; margin-bottom:6px;}
  .block h2{font-size:clamp(30px,3.6vw,46px); font-weight:300; margin-bottom:6px;}
  .block .rule{margin:18px 0 28px;}
  .block > p{font-size:19px; line-height:1.7;}

/* ---- DICTIONNAIRE (/reves/dictionnaire/) ---- */
  .dico-hero{padding:40px 0 8px; text-align:center;}
  .dico-hero .eyebrow{display:block; margin-bottom:16px;}
  .dico-hero h1{font-size:clamp(42px,6vw,80px); line-height:0.96; font-weight:300; margin:0 auto 14px; max-width:16ch;}
  .dico-hero .sub{font-family:var(--serif); font-size:21px; color:var(--muted); max-width:46ch; margin:0 auto;}

  .search{max-width:620px; margin:28px auto 0; position:relative;}
  .search .field{display:flex; align-items:center; border:1px solid var(--gold-2); background:rgba(7,5,20,0.5);}
  .search .field svg{margin:0 6px 0 18px; color:var(--accent-soft); flex:0 0 auto;}
  .search .field input{flex:1; background:transparent; border:none; outline:none; color:var(--cream);
    font-family:var(--text); font-size:18px; padding:16px 18px 16px 8px;}
  .search .field input::placeholder{color:var(--dim);}
  .search .clearx{all:unset; cursor:pointer; color:var(--muted); padding:0 18px; font-size:20px; line-height:1; display:none;}
  .search .clearx.on{display:block;}

  .filters{display:flex; flex-direction:column; gap:16px; align-items:center; margin-top:26px;}
  .cats{display:flex; flex-wrap:wrap; gap:8px; justify-content:center;}
  .cats button{all:unset; cursor:pointer; padding:7px 16px; border:1px solid var(--line); color:var(--muted);
    font-size:12.5px; text-transform:uppercase; letter-spacing:0.12em; transition:.16s;}
  .cats button:hover{border-color:var(--accent-deep); color:var(--accent-soft);}
  .cats button.sel{background:var(--accent); border-color:var(--accent); color:#120a22;}
  .alpha{display:flex; flex-wrap:wrap; gap:3px; justify-content:center; max-width:760px;}
  .alpha button{all:unset; cursor:pointer; width:30px; height:30px; display:flex; align-items:center; justify-content:center;
    font-family:var(--display); font-size:18px; color:var(--muted); transition:.15s; border:1px solid transparent;}
  .alpha button:hover{color:var(--accent-soft);}
  .alpha button.sel{color:var(--accent-soft); border-color:var(--accent-deep);}
  .alpha button:disabled{opacity:0.22; cursor:default;}

  .dico-body{padding:34px 0 90px;}
  .count{text-align:center; color:var(--dim); font-size:14px; font-style:italic; letter-spacing:0.04em; margin-bottom:26px;}
  .sym-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  @media(max-width:880px){ .sym-grid{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:560px){ .sym-grid{grid-template-columns:1fr;} }
  .sym{all:unset; cursor:pointer; display:block; border:1px solid var(--line); background:var(--card-bg);
    padding:22px 24px; transition:.2s; position:relative;}
  .sym:hover{border-color:var(--accent); background:var(--card-bg-hover); transform:translateY(-3px);}
  .sym .ic{width:34px; height:34px; color:var(--accent-soft); margin-bottom:12px;}
  .sym h3,.sym h4{font-family:var(--display); font-size:25px; color:var(--cream); margin:0 0 4px; font-weight:400;}
  .sym .gloss{font-family:var(--serif); font-style:italic; color:var(--muted); font-size:16px;}
  .sym .cat{position:absolute; top:18px; right:20px; font-size:10.5px; text-transform:uppercase; letter-spacing:0.14em; color:var(--dim);}
  .empty{text-align:center; color:var(--muted); padding:50px 0; font-style:italic; font-family:var(--serif); font-size:22px;}

  /* panneau détail */
  .sheet-bg{position:fixed; inset:0; background:rgba(6,4,16,0.7); backdrop-filter:blur(4px); z-index:200;
    opacity:0; pointer-events:none; transition:opacity .3s;}
  .sheet-bg.on{opacity:1; pointer-events:auto;}
  .sheet{position:fixed; z-index:201; left:50%; top:50%; transform:translate(-50%,-46%); width:min(560px,92vw);
    background:var(--plate-bg); border:1px solid var(--line-strong); box-shadow:0 30px 80px rgba(4,3,12,0.7);
    opacity:0; pointer-events:none; transition:opacity .3s, transform .3s;}
  .sheet.on{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
  .sheet .inr{position:relative; padding:34px 36px 36px;}
  .sheet .inr::after{content:""; position:absolute; inset:10px; border:1px solid var(--line-moon); pointer-events:none;}
  .sheet .closx{position:absolute; top:14px; right:16px; all:unset; cursor:pointer; color:var(--accent-soft); font-size:24px; line-height:1; z-index:2;}
  .sheet .s-cat{font-size:11px; text-transform:uppercase; letter-spacing:0.2em; color:var(--accent-soft);}
  .sheet .s-ic{width:48px; height:48px; color:var(--accent-soft); margin:14px 0 4px;}
  .sheet h3{font-family:var(--display); font-size:clamp(38px,6vw,56px); font-weight:300; color:var(--cream); margin:0 0 4px;}
  .sheet .s-gloss{font-family:var(--serif); font-style:italic; font-size:21px; color:var(--accent-soft); margin-bottom:18px;}
  .sheet .s-rule{height:1px; background:linear-gradient(90deg,var(--line-strong),transparent); margin:0 0 18px;}
  .sheet .s-sens{font-size:18px; line-height:1.7; color:var(--text-c); margin:0 0 22px;}
  .sheet .s-foot{display:flex; gap:12px; flex-wrap:wrap;}

/* ---- GUIDE (/reves/guides/{slug}/) ---- */
  /* ---- Gabarit : Article / guide ---- */
  .art-hero{padding:46px 0 40px;}
  .art-hero .kicker{display:block; margin-bottom:18px;}
  .art-hero h1{font-size:clamp(44px,6.4vw,84px); line-height:0.98; font-weight:300; max-width:18ch; margin-bottom:22px;}
  .art-meta{display:flex; gap:14px; align-items:center; color:var(--muted); font-size:14px; letter-spacing:0.04em; flex-wrap:wrap;}
  .art-meta .sep{color:var(--gold-2);}
  .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;}

  .art-figure{margin:8px 0 0;}
  .art-figure .img-wrap{display:flex; align-items:center; justify-content:center;}
  .art-figure .engrave{width:auto; height:78%; max-width:60%;}
  .art-body{padding:18px 0 86px;}
  .art-layout{display:grid; grid-template-columns:1fr 280px; gap:60px; align-items:start;}
  @media(max-width:980px){ .art-layout{grid-template-columns:1fr; gap:44px;} }
  .toc{position:sticky; top:96px; border-left:1px solid var(--line-soft); padding-left:22px;}
  .toc .lb{font-size:11px; text-transform:uppercase; letter-spacing:0.2em; color:var(--gold-soft); margin-bottom:14px;}
  .toc a{display:block; color:var(--muted); font-size:16px; padding:6px 0; transition:.2s;}
  .toc a:hover{color:var(--accent-soft);}
  .crit{display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line); margin:10px 0 0;}
  .crit .c{padding:24px 26px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);}
  .crit .c:nth-child(2n){border-right:none;}
  .crit .c:nth-last-child(-n+2){border-bottom:none;}
  .crit .c .n{font-family:var(--serif); font-size:26px; color:var(--accent-soft);}
  .crit .c h3,.crit .c h4{font-size:21px; margin:4px 0 6px;}
  .crit .c p{font-size:15px; color:var(--muted); margin:0;}
  @media(max-width:600px){ .crit{grid-template-columns:1fr;} .crit .c{border-right:none !important;} }

.univers-reves .plate img{object-fit:cover;}
