/*
Theme Name: Aragotrice
Theme URI: https://aragotrice.fr
Author: Aragotrice
Author URI: https://aragotrice.fr
Description: Thème WordPress pour Aragotrice — Médium. Design mystique avec formulaire de contact fonctionnel.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aragotrice
Tags: one-page, mystical, dark, contact-form
*/

/* ============================================================
   VARIABLES CSS
   ============================================================ */
:root {
  --void: #03010a;
  --deep: #0d0818;
  --wood: #1a100a;
  --parchment: #d4b896;
  --ink: #8a6a4a;
  --candle: #e8923a;
  --flame: #f5c842;
  --border-wood: rgba(212,184,150,0.15);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--void);
  color: var(--parchment);
  font-family: 'Cormorant Garamond', serif;
  overflow-x: hidden;
  cursor: none;
}

/* ============================================================
   CURSEUR PERSONNALISÉ
   ============================================================ */
#cur {
  position: fixed; width: 22px; height: 22px;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%,-50%);
}
#cur svg { width: 100%; height: 100%; }
#cur-ring {
  position: fixed; width: 44px; height: 44px;
  border: 1px solid rgba(232,146,58,0.4);
  border-radius: 50%; pointer-events: none;
  z-index: 9998; transform: translate(-50%,-50%);
  transition: left 0.2s ease, top 0.2s ease, width 0.3s, height 0.3s, opacity 0.3s;
  opacity: 0.5;
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes flicker {
  0%,100%{opacity:1;filter:brightness(1)}
  20%{opacity:.85;filter:brightness(.9)}
  40%{opacity:1;filter:brightness(1.1)}
  60%{opacity:.9;filter:brightness(.95)}
  80%{opacity:1;filter:brightness(1.05)}
}
@keyframes flameDance {
  0%,100%{transform:scaleX(1) scaleY(1) translateX(0)}
  25%{transform:scaleX(.85) scaleY(1.1) translateX(-1px)}
  50%{transform:scaleX(1.1) scaleY(.95) translateX(1px)}
  75%{transform:scaleX(.9) scaleY(1.05) translateX(-.5px)}
}
@keyframes candleGlow {
  0%,100%{box-shadow:0 0 30px 10px rgba(232,146,58,.15),0 0 60px 20px rgba(245,200,66,.08)}
  50%{box-shadow:0 0 40px 15px rgba(232,146,58,.25),0 0 80px 30px rgba(245,200,66,.12)}
}
@keyframes fadeUp {
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn {
  from{opacity:0}
  to{opacity:1}
}
@keyframes orbFloat {
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.4}
  50%{transform:translate(-50%,-52%) scale(1.15);opacity:.65}
}
@keyframes planchetteGlow {
  0%,100%{filter:drop-shadow(0 0 8px rgba(232,146,58,.3))}
  50%{filter:drop-shadow(0 0 20px rgba(232,146,58,.7))}
}

/* ============================================================
   GRAIN (bruit de fond)
   ============================================================ */
body::before {
  content:'';
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  pointer-events:none; z-index:1; opacity:.5; mix-blend-mode:overlay;
}

/* ============================================================
   ORBS (arrière-plan)
   ============================================================ */
.orb { position:fixed; border-radius:50%; pointer-events:none; z-index:0; filter:blur(80px); }
.orb-1 {
  width:700px; height:700px; top:-150px; left:-200px;
  background:radial-gradient(circle, rgba(120,30,10,.7) 0%, rgba(80,10,5,.4) 40%, transparent 70%);
  animation:orbFloat 12s ease-in-out infinite;
}
.orb-2 {
  width:600px; height:600px; bottom:-150px; right:-150px;
  background:radial-gradient(circle, rgba(60,10,80,.6) 0%, rgba(30,5,50,.3) 40%, transparent 70%);
  animation:orbFloat 14s ease-in-out infinite 4s;
}
.orb-3 {
  width:400px; height:400px; top:35%; left:50%;
  background:radial-gradient(circle, rgba(180,80,10,.35) 0%, rgba(100,40,5,.15) 40%, transparent 70%);
  animation:orbFloat 10s ease-in-out infinite 2s;
}
.orb-4 {
  width:350px; height:350px; top:60%; left:10%;
  background:radial-gradient(circle, rgba(80,10,40,.4) 0%, transparent 70%);
  animation:orbFloat 16s ease-in-out infinite 6s;
}
.orb-5 {
  width:300px; height:300px; top:20%; right:5%;
  background:radial-gradient(circle, rgba(140,50,5,.3) 0%, transparent 70%);
  animation:orbFloat 11s ease-in-out infinite 3s;
}

/* ============================================================
   NAVIGATION
   ============================================================ */
nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding:1.2rem 3rem;
  display:flex; justify-content:space-between; align-items:center;
  background:linear-gradient(to bottom,rgba(3,1,10,.95),transparent);
}
.nav-logo {
  font-family:'Cinzel Decorative',serif; font-size:.85rem;
  letter-spacing:.1em; color:var(--parchment); text-decoration:none;
  animation:flicker 6s ease-in-out infinite;
  display:flex; align-items:center; gap:.8rem;
}
.nav-logo span { color:var(--candle); }
.nav-links { display:flex; gap:2.5rem; list-style:none; }
.nav-links a {
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:.85rem; color:var(--ink); text-decoration:none; transition:color .3s;
}
.nav-links a:hover { color:var(--candle); }

/* ============================================================
   HERO
   ============================================================ */
#hero {
  min-height:100vh; display:flex; flex-direction:column;
  justify-content:center; align-items:center; text-align:center;
  padding:6rem 2rem 4rem; position:relative; overflow:visible;
}
.ouija-bg {
  position:absolute; inset:0; z-index:1;
  display:flex; align-items:center; justify-content:center;
  pointer-events:none; opacity:.06;
}
.ouija-bg svg { width:min(90vw,900px); height:auto; }

/* BOUGIES */
.candles-wrap {
  position:absolute; bottom:0; left:0; right:0;
  display:flex; justify-content:space-around; align-items:flex-end;
  pointer-events:none; z-index:5; padding:0 5%;
}
.candle {
  display:flex; flex-direction:column; align-items:center;
  position:relative;
}

/* Lueur au pied de la bougie */
.candle::after {
  content:'';
  position:absolute; bottom:0; left:50%;
  transform:translateX(-50%);
  width:40px; height:12px;
  background:radial-gradient(ellipse, rgba(232,146,58,.25) 0%, transparent 70%);
  border-radius:50%;
  animation:candleGlow 3s ease-in-out infinite;
}
.c1::after{animation-delay:0s} .c2::after{animation-delay:.5s}
.c3::after{animation-delay:1s} .c4::after{animation-delay:1.5s}
.c5::after{animation-delay:.8s}

/* Flamme */
.candle-flame-wrap {
  width:20px; height:34px;
  display:flex; align-items:flex-start; justify-content:center;
  position:relative;
}
/* Halo derrière la flamme */
.candle-flame-wrap::before {
  content:'';
  position:absolute; top:2px; left:50%;
  transform:translateX(-50%);
  width:28px; height:28px;
  background:radial-gradient(ellipse, rgba(245,200,66,.35) 0%, rgba(232,146,58,.15) 50%, transparent 75%);
  border-radius:50%;
  animation:candleGlow 1.8s ease-in-out infinite;
}
.candle-flame {
  width:12px; height:26px;
  background:radial-gradient(ellipse at 50% 80%,
    #fff9e0 0%,
    var(--flame) 20%,
    var(--candle) 55%,
    rgba(200,60,10,.4) 80%,
    transparent 100%);
  border-radius:50% 50% 25% 25% / 55% 55% 45% 45%;
  animation:flameDance 1.4s ease-in-out infinite;
  transform-origin:bottom center;
  position:relative; z-index:1;
}
.c1 .candle-flame{animation-delay:.2s} .c2 .candle-flame{animation-delay:.7s}
.c3 .candle-flame{animation-delay:0s}  .c4 .candle-flame{animation-delay:1.1s}
.c5 .candle-flame{animation-delay:.4s}

/* Mèche */
.candle-wick {
  width:1.5px; height:6px;
  background:linear-gradient(to bottom, #1a0a00, #3a2010);
  margin:0 auto;
  border-radius:0 0 1px 1px;
}

/* Corps de la bougie */
.candle-body {
  border-radius:3px 3px 0 0;
  background:linear-gradient(to right,
    #110800 0%,
    #5a3a1a 15%,
    #d4a86a 40%,
    #e8c88a 50%,
    #d4a86a 60%,
    #5a3a1a 85%,
    #110800 100%
  );
  position:relative;
  box-shadow: inset 0 0 8px rgba(0,0,0,.4);
}
/* Reflet lumineux sur le dessus */
.candle-body::before {
  content:'';
  position:absolute; top:0; left:20%; right:20%; height:3px;
  background:radial-gradient(ellipse, rgba(255,220,150,.6) 0%, transparent 80%);
  border-radius:50%;
}
/* Ombre de fonte en haut */
.candle-body::after {
  content:'';
  position:absolute; top:0; left:0; right:0; height:6px;
  background:linear-gradient(to bottom, rgba(0,0,0,.35), transparent);
  border-radius:3px 3px 0 0;
}

.c1 .candle-body{width:20px;height:120px} .c2 .candle-body{width:15px;height:80px}
.c3 .candle-body{width:24px;height:155px} .c4 .candle-body{width:17px;height:96px}
.c5 .candle-body{width:13px;height:62px}

.c1{animation-delay:0s} .c2{animation-delay:.5s} .c3{animation-delay:1s}
.c4{animation-delay:1.5s} .c5{animation-delay:.8s}

.hero-content { position:relative; z-index:10; }
.hero-eye { width:100px; height:100px; margin:0 auto 2rem; animation:fadeIn 1.5s ease forwards; opacity:0; }
.hero-title {
  font-family:'Cinzel Decorative',serif;
  font-size:clamp(2.2rem,7vw,6rem); font-weight:700; line-height:1.1;
  color:var(--parchment); letter-spacing:.05em;
  text-shadow:0 0 40px rgba(232,146,58,.3),0 2px 4px rgba(0,0,0,.8);
  animation:fadeUp 1.2s ease .3s forwards; opacity:0;
}
.hero-title span { color:var(--candle); display:block; }
.hero-sub-text {
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:clamp(.9rem,2vw,1.2rem); color:var(--ink);
  letter-spacing:.2em; margin:1.2rem 0 .5rem;
  animation:fadeUp 1.2s ease .5s forwards; opacity:0;
}
.hero-ornament {
  display:flex; align-items:center; justify-content:center;
  gap:1rem; margin:1.5rem auto 2rem;
  animation:fadeUp 1.2s ease .6s forwards; opacity:0;
}
.hero-ornament::before,.hero-ornament::after {
  content:''; height:1px; width:80px;
  background:linear-gradient(to right,transparent,rgba(232,146,58,.4));
}
.hero-ornament::after { background:linear-gradient(to left,transparent,rgba(232,146,58,.4)); }
.hero-ornament-rune { font-family:'UnifrakturMaguntia',cursive; font-size:1.4rem; color:var(--candle); opacity:.7; }
.hero-tagline {
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:clamp(1rem,2vw,1.3rem); font-weight:300;
  color:rgba(212,184,150,.65); line-height:1.9;
  max-width:520px; margin:0 auto 3rem;
  animation:fadeUp 1.2s ease .7s forwards; opacity:0;
}
.hero-cta {
  display:inline-block; padding:1rem 2.8rem;
  border:1px solid rgba(232,146,58,.5); color:var(--candle);
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:1rem; letter-spacing:.1em; text-decoration:none;
  position:relative; overflow:hidden; transition:color .4s;
  animation:fadeUp 1.2s ease .9s forwards; opacity:0;
  text-shadow:0 0 20px rgba(232,146,58,.5);
}
.hero-cta::before {
  content:''; position:absolute; inset:0;
  background:rgba(232,146,58,.1); transform:translateX(-100%);
  transition:transform .4s ease; z-index:-1;
}
.hero-cta:hover { color:var(--parchment); }
.hero-cta:hover::before { transform:translateX(0); }

.planchette-float {
  position:absolute; bottom:6rem; right:8%; width:80px; z-index:6;
  animation:planchetteGlow 3s ease-in-out infinite; opacity:.5;
}
.scroll-indicator {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  animation:fadeIn 2s ease 1.5s forwards; opacity:0; z-index:6;
}
.scroll-indicator span { font-family:'IM Fell English',serif; font-style:italic; font-size:.75rem; color:var(--ink); }
.scroll-line { width:1px; height:40px; background:linear-gradient(to bottom,var(--candle),transparent); animation:flicker 2s ease-in-out infinite; }

/* ============================================================
   OUIJA DIVIDER
   ============================================================ */
.ouija-divider { position:relative; z-index:10; padding:4rem 2rem; overflow:hidden; }
.ouija-board-full {
  max-width:900px; margin:0 auto;
  border:1px solid var(--border-wood);
  background:linear-gradient(135deg,var(--wood) 0%,#110b05 50%,var(--wood) 100%);
  border-radius:4px; padding:2.5rem 3rem; position:relative;
  box-shadow:0 0 80px rgba(232,146,58,.08),inset 0 0 60px rgba(0,0,0,.5);
}
.ouija-board-full::before,.ouija-board-full::after {
  content:''; position:absolute; border:1px solid rgba(232,146,58,.1); border-radius:3px;
}
.ouija-board-full::before { inset:8px; }
.ouija-board-full::after { inset:14px; border-color:rgba(232,146,58,.06); }
.ouija-top-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.5rem; position:relative; z-index:2; }
.ouija-sun,.ouija-moon { display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.ouija-sun svg,.ouija-moon svg { width:40px; height:40px; color:var(--candle); opacity:.6; }
.ouija-yes-no {
  font-family:'Cinzel Decorative',serif; font-size:clamp(1rem,3vw,2rem);
  color:var(--parchment); letter-spacing:.15em; text-shadow:0 0 20px rgba(232,146,58,.3);
}
.ouija-brand { text-align:center; position:relative; z-index:2; }
.ouija-brand-name { font-family:'UnifrakturMaguntia',cursive; font-size:clamp(2.5rem,7vw,5rem); color:var(--parchment); text-shadow:0 0 30px rgba(232,146,58,.4); line-height:1; }
.ouija-brand-sub { font-family:'Cinzel Decorative',serif; font-size:.55rem; letter-spacing:.4em; text-transform:uppercase; color:var(--ink); margin-top:.3rem; }
.ouija-alphabet { display:flex; flex-wrap:wrap; justify-content:center; gap:.1rem; margin:1.5rem 0 0; position:relative; z-index:2; }
.ouija-letter {
  font-family:'Cinzel Decorative',serif; font-size:clamp(.7rem,1.5vw,1.1rem);
  color:var(--parchment); opacity:.5; padding:.2rem .35rem;
  transition:opacity .3s,color .3s,text-shadow .3s; cursor:none;
}
.ouija-letter:hover,.ouija-letter.lit { opacity:1; color:var(--candle); text-shadow:0 0 10px rgba(232,146,58,.8); }
.ouija-numbers { display:flex; justify-content:center; gap:.5rem; margin:.5rem 0; position:relative; z-index:2; }
.ouija-num {
  font-family:'Cinzel Decorative',serif; font-size:clamp(.6rem,1.2vw,.9rem);
  color:var(--parchment); opacity:.4; padding:.1rem .3rem;
  transition:opacity .3s,color .3s; cursor:none;
}
.ouija-num:hover { opacity:.9; color:var(--candle); }
.ouija-bottom-row { display:flex; justify-content:space-between; align-items:center; margin-top:1rem; position:relative; z-index:2; }
.ouija-goodbye { font-family:'Cinzel Decorative',serif; font-size:clamp(.8rem,2vw,1.3rem); color:var(--parchment); opacity:.5; letter-spacing:.1em; }
.board-planchette { position:absolute; bottom:3rem; left:50%; transform:translateX(-50%) rotate(-15deg); width:70px; opacity:.35; z-index:3; }

/* ============================================================
   À PROPOS
   ============================================================ */
#about { padding:7rem 2rem; max-width:1100px; margin:0 auto; }
.about-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:5rem; align-items:start; }
.about-sigil { position:sticky; top:8rem; display:flex; flex-direction:column; align-items:center; gap:2rem; }
.sigil-circle {
  width:280px; height:280px; border:1px solid rgba(232,146,58,.2);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  position:relative; animation:candleGlow 5s ease-in-out infinite;
}
.sigil-circle::before { content:''; position:absolute; inset:12px; border:1px solid rgba(232,146,58,.1); border-radius:50%; }
.sigil-circle::after { content:''; position:absolute; inset:24px; border:1px dashed rgba(232,146,58,.08); border-radius:50%; }
.section-rune { font-family:'UnifrakturMaguntia',cursive; font-size:.9rem; color:var(--candle); opacity:.6; letter-spacing:.3em; margin-bottom:.8rem; }
.section-heading { font-family:'Cinzel Decorative',serif; font-size:clamp(1.5rem,3vw,2.5rem); font-weight:400; color:var(--parchment); line-height:1.2; text-shadow:0 0 30px rgba(232,146,58,.2); }
.section-heading .ghost-line { display:block; color:transparent; -webkit-text-stroke:1px rgba(212,184,150,.2); }
.orn-line { display:flex; align-items:center; gap:1rem; margin:1.5rem 0; }
.orn-line::before,.orn-line::after { content:''; flex:1; height:1px; background:linear-gradient(to right,transparent,rgba(232,146,58,.3),transparent); }
.orn-sym { font-family:'UnifrakturMaguntia',cursive; color:var(--candle); font-size:1.2rem; opacity:.6; }
.about-p { font-size:1.05rem; font-weight:300; line-height:1.9; color:rgba(212,184,150,.7); margin-bottom:1.4rem; }
.about-p strong { color:var(--parchment); font-weight:400; }
.about-p em { color:var(--candle); font-style:italic; }
.about-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin:2rem 0; }
.about-tag { padding:.4rem 1rem; border:1px solid rgba(232,146,58,.2); font-family:'IM Fell English',serif; font-style:italic; font-size:.85rem; color:var(--ink); transition:border-color .3s,color .3s; }
.about-tag:hover { border-color:var(--candle); color:var(--candle); }
.about-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(232,146,58,.1); border:1px solid rgba(232,146,58,.1); margin-top:2.5rem; }
.metric { background:var(--void); padding:1.5rem; text-align:center; }
.metric-val { font-family:'Cinzel Decorative',serif; font-size:1.6rem; color:var(--candle); text-shadow:0 0 20px rgba(232,146,58,.4); }
.metric-label { font-family:'IM Fell English',serif; font-style:italic; font-size:.8rem; color:var(--ink); margin-top:.3rem; }

/* ============================================================
   SERVICES
   ============================================================ */
#services { padding:7rem 2rem; background:linear-gradient(to bottom,transparent,rgba(20,10,5,.5),transparent); }
.services-inner { max-width:1100px; margin:0 auto; }
.section-header-center { text-align:center; margin-bottom:5rem; }
.services-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5px; background:rgba(232,146,58,.1); border:1px solid rgba(232,146,58,.1); }
.service-card { background:var(--void); padding:3rem 2rem; position:relative; overflow:hidden; transition:background .4s; }
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:transparent; transition:background .4s; }
.service-card:hover { background:rgba(20,10,5,.8); }
.service-card:hover::before { background:linear-gradient(to right,transparent,var(--candle),transparent); }
.service-sigil { width:60px; height:60px; margin:0 auto 1.5rem; color:var(--candle); opacity:.5; }
.service-name { font-family:'Cinzel Decorative',serif; font-size:.9rem; letter-spacing:.05em; color:var(--parchment); text-align:center; margin-bottom:1rem; line-height:1.4; }
.service-type { font-family:'IM Fell English',serif; font-style:italic; font-size:.75rem; color:var(--candle); opacity:.7; text-align:center; letter-spacing:.1em; margin-bottom:1rem; }
.service-desc { font-size:.9rem; font-weight:300; line-height:1.8; color:rgba(212,184,150,.55); text-align:center; }
.service-price { display:block; text-align:center; margin-top:1.8rem; font-family:'Cinzel Decorative',serif; font-size:1rem; color:var(--candle); text-shadow:0 0 15px rgba(232,146,58,.4); }
.service-duration { display:block; text-align:center; margin-top:.3rem; font-family:'IM Fell English',serif; font-style:italic; font-size:.75rem; color:var(--ink); }

/* ============================================================
   GRIMOIRE
   ============================================================ */
#grimoire { padding:7rem 2rem; border-top:1px solid var(--border-wood); }
.grimoire-inner { max-width:1100px; margin:0 auto; }
.grimoire-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; margin-top:5rem; }
.grimoire-article { position:relative; padding-top:2.5rem; }
.grimoire-article::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(to right,transparent,rgba(232,146,58,.3),transparent); }
.grimoire-icon { width:64px; height:64px; margin:0 auto 1.8rem; color:var(--candle); opacity:.5; display:block; }
.grimoire-eyebrow { font-family:'UnifrakturMaguntia',cursive; font-size:.85rem; color:var(--candle); opacity:.6; letter-spacing:.3em; margin-bottom:.7rem; display:block; text-align:center; }
.grimoire-title { font-family:'Cinzel Decorative',serif; font-size:clamp(1.2rem,2.5vw,1.8rem); color:var(--parchment); margin-bottom:.5rem; line-height:1.2; text-shadow:0 0 20px rgba(232,146,58,.2); text-align:center; }
.grimoire-sub { font-family:'IM Fell English',serif; font-style:italic; font-size:.88rem; color:var(--candle); opacity:.65; margin-bottom:2rem; letter-spacing:.05em; display:block; text-align:center; }
.grimoire-orn { display:flex; align-items:center; gap:.8rem; margin-bottom:2rem; }
.grimoire-orn::before,.grimoire-orn::after { content:''; flex:1; height:1px; background:linear-gradient(to right,transparent,rgba(232,146,58,.2),transparent); }
.grimoire-orn-sym { font-family:'UnifrakturMaguntia',cursive; color:var(--candle); font-size:1rem; opacity:.45; }
.grimoire-p { font-size:.95rem; font-weight:300; line-height:1.95; color:rgba(212,184,150,.65); margin-bottom:1.3rem; }
.grimoire-p strong { color:var(--parchment); font-weight:400; }
.grimoire-p em { color:var(--candle); font-style:italic; }
.grimoire-timeline { margin:2rem 0; display:flex; flex-direction:column; gap:1rem; }
.grimoire-event { display:grid; grid-template-columns:68px 1fr; gap:1rem; align-items:start; }
.grimoire-year { font-family:'Cinzel Decorative',serif; font-size:.6rem; color:var(--candle); opacity:.65; letter-spacing:.04em; padding-top:3px; line-height:1.4; }
.grimoire-event-desc { font-size:.87rem; font-weight:300; line-height:1.7; color:rgba(212,184,150,.58); border-left:1px solid rgba(232,146,58,.15); padding-left:.9rem; }
.grimoire-block { background:rgba(232,146,58,.03); border:1px solid rgba(232,146,58,.1); padding:1.5rem 1.8rem; margin:2rem 0; position:relative; }
.grimoire-block::before { content:'⁂'; position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--void); padding:0 .6rem; font-family:'UnifrakturMaguntia',cursive; color:var(--candle); opacity:.4; font-size:1rem; }
.grimoire-block p { font-family:'IM Fell English',serif; font-style:italic; font-size:.9rem; line-height:1.85; color:rgba(212,184,150,.52); text-align:center; }
.grimoire-steps { margin:1.5rem 0; display:flex; flex-direction:column; gap:1rem; }
.grimoire-step { display:grid; grid-template-columns:26px 1fr; gap:.9rem; align-items:start; }
.grimoire-step-num { font-family:'Cinzel Decorative',serif; font-size:.6rem; color:var(--candle); opacity:.6; border:1px solid rgba(232,146,58,.2); border-radius:50%; width:24px; height:24px; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px; }
.grimoire-step-text { font-size:.88rem; font-weight:300; line-height:1.75; color:rgba(212,184,150,.6); }

/* ============================================================
   PROCESSUS
   ============================================================ */
#process { padding:7rem 2rem; border-top:1px solid var(--border-wood); }
.process-inner { max-width:1100px; margin:0 auto; }
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:3rem; margin-top:4rem; position:relative; }
.process-steps::before { content:''; position:absolute; top:28px; left:10%; right:10%; height:1px; background:linear-gradient(to right,transparent,rgba(232,146,58,.2),transparent); }
.process-step { text-align:center; }
.step-rune-circle { width:56px; height:56px; margin:0 auto 1.5rem; border:1px solid rgba(232,146,58,.3); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'UnifrakturMaguntia',cursive; font-size:1.5rem; color:var(--candle); opacity:.7; position:relative; z-index:2; background:var(--void); }
.step-title { font-family:'Cinzel Decorative',serif; font-size:.75rem; letter-spacing:.05em; color:var(--parchment); margin-bottom:.8rem; line-height:1.4; }
.step-desc { font-size:.85rem; font-weight:300; line-height:1.7; color:var(--ink); }

/* ============================================================
   TÉMOIGNAGES
   ============================================================ */
#testimonials { padding:7rem 2rem; background:linear-gradient(to bottom,transparent,rgba(15,8,3,.6),transparent); }
.testi-inner { max-width:1100px; margin:0 auto; }
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:4rem; }
.testi-card { border:1px solid var(--border-wood); background:linear-gradient(135deg,rgba(26,16,10,.6),rgba(3,1,10,.8)); padding:2.5rem; position:relative; }
.testi-card::before { content:'\201C'; position:absolute; top:1rem; left:1.5rem; font-family:'UnifrakturMaguntia',cursive; font-size:4rem; color:var(--candle); opacity:.15; line-height:1; }
.testi-stars { color:var(--candle); font-size:.75rem; margin-bottom:1rem; opacity:.8; }
.testi-text { font-style:italic; font-size:.95rem; font-weight:300; line-height:1.8; color:rgba(212,184,150,.65); margin-bottom:1.5rem; }
.testi-sep { height:1px; background:var(--border-wood); margin-bottom:1rem; }
.testi-name { font-family:'Cinzel Decorative',serif; font-size:.65rem; color:var(--parchment); letter-spacing:.1em; }
.testi-city { font-family:'IM Fell English',serif; font-style:italic; font-size:.75rem; color:var(--ink); margin-top:.2rem; }

/* ============================================================
   CONTACT
   ============================================================ */
#contact { padding:7rem 2rem; border-top:1px solid var(--border-wood); }
.contact-inner { max-width:1100px; margin:0 auto; }
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:6rem; margin-top:4rem; }
.contact-quote { font-style:italic; font-size:1.1rem; font-weight:300; line-height:1.9; color:rgba(212,184,150,.6); border-left:2px solid rgba(232,146,58,.3); padding-left:1.5rem; margin-bottom:3rem; }
.contact-info { display:flex; flex-direction:column; gap:1.2rem; }
.contact-info-row { display:flex; gap:1rem; align-items:flex-start; }
.ci-label { font-family:'Cinzel Decorative',serif; font-size:.65rem; letter-spacing:.12em; color:var(--candle); opacity:.85; width:80px; flex-shrink:0; padding-top:2px; }
.ci-val { font-family:'IM Fell English',serif; font-size:.9rem; color:var(--parchment); }
.contact-form { display:flex; flex-direction:column; gap:1.5rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field { display:flex; flex-direction:column; gap:.5rem; }
.field label { font-family:'Cinzel Decorative',serif; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--candle); opacity:.85; }
.field input,
.field textarea,
.field select {
  background:rgba(212,184,150,.03); border:none;
  border-bottom:1px solid rgba(232,146,58,.2);
  padding:.8rem 0; color:var(--parchment);
  font-family:'Cormorant Garamond',serif; font-size:1rem;
  font-weight:300; outline:none; width:100%; transition:border-color .3s;
  -webkit-appearance:none; cursor:text;
}
.field input::placeholder,.field textarea::placeholder { color:rgba(212,184,150,.2); }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--candle); }
.field select { cursor:pointer; }
.field select option { background:#110b05; color:var(--parchment); }
.field textarea { resize:none; height:90px; }
.form-submit {
  padding:1.1rem 2.5rem; background:transparent;
  border:1px solid rgba(232,146,58,.4); color:var(--candle);
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:1rem; letter-spacing:.1em; cursor:pointer;
  position:relative; overflow:hidden; transition:color .4s;
  text-shadow:0 0 15px rgba(232,146,58,.3);
}
.form-submit::before {
  content:''; position:absolute; inset:0;
  background:rgba(232,146,58,.08); transform:translateX(-100%);
  transition:transform .4s ease; z-index:-1;
}
.form-submit:hover { color:var(--parchment); }
.form-submit:hover::before { transform:translateX(0); }
.form-submit:disabled { opacity:.5; cursor:not-allowed; }

/* MESSAGES DE RETOUR FORMULAIRE */
.form-message {
  padding:1rem 1.5rem; border-radius:2px;
  font-family:'IM Fell English',serif; font-style:italic; font-size:.95rem;
  display:none;
}
.form-message.success {
  display:block; background:rgba(232,146,58,.08);
  border:1px solid rgba(232,146,58,.3); color:var(--candle);
}
.form-message.error {
  display:block; background:rgba(180,50,50,.08);
  border:1px solid rgba(180,50,50,.3); color:#e87a7a;
}
.form-loading {
  display:none; text-align:center;
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:.9rem; color:var(--ink); animation:flicker 2s infinite;
}
.form-loading.visible { display:block; }

/* ============================================================
   TÉMOIGNAGES — FORMULAIRE DE SOUMISSION
   ============================================================ */
.testi-empty {
  text-align:center; font-family:'IM Fell English',serif; font-style:italic;
  font-size:1rem; color:var(--ink); margin:3rem 0;
}
.testi-submit-wrap {
  max-width:600px; margin:5rem auto 0;
  border-top:1px solid var(--border-wood); padding-top:3rem;
}
.testi-submit-header { margin-bottom:2rem; }
.testi-form { display:flex; flex-direction:column; gap:1.4rem; }
.testi-form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* Stars input */
.testi-stars-input {
  display:flex; gap:.4rem; margin-top:.4rem;
}
.star-btn {
  background:none; border:none; cursor:pointer;
  font-size:1.8rem; color:var(--border-wood);
  transition:color .2s, transform .15s; padding:0; line-height:1;
}
.star-btn:hover,
.star-btn.active { color:var(--candle); transform:scale(1.15); }

/* Messages de retour */
.testi-form-msg {
  padding:.9rem 1.2rem; border-radius:2px;
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:.95rem; display:none;
}
.testi-form-msg.is-success {
  background:rgba(232,146,58,.08);
  border:1px solid rgba(232,146,58,.3); color:var(--candle);
}
.testi-form-msg.is-error {
  background:rgba(180,50,50,.08);
  border:1px solid rgba(180,50,50,.3); color:#e87a7a;
}
.testi-moderation-note {
  font-family:'IM Fell English',serif; font-style:italic;
  font-size:.8rem; color:var(--ink); text-align:center; margin-top:-.5rem;
}

@media(max-width:600px){
  .testi-form-row { grid-template-columns:1fr; }
}

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  border-top:1px solid var(--border-wood);
  padding:2.5rem 3rem;
  display:flex; justify-content:space-between; align-items:center;
  max-width:1100px; margin:0 auto;
}
.footer-logo { font-family:'UnifrakturMaguntia',cursive; font-size:1.5rem; color:var(--parchment); text-shadow:0 0 20px rgba(232,146,58,.3); }
.footer-copy { font-family:'IM Fell English',serif; font-style:italic; font-size:.8rem; color:var(--ink); }
.footer-links { display:flex; gap:1.5rem; }
.footer-links a { font-family:'IM Fell English',serif; font-style:italic; font-size:.85rem; color:var(--ink); text-decoration:none; transition:color .3s; }
.footer-links a:hover { color:var(--candle); }

/* ============================================================
   RÉVÉLATION AU SCROLL
   ============================================================ */
.reveal { opacity:0; transform:translateY(25px); transition:opacity .8s ease,transform .8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ============================================================
   HAMBURGER MENU
   ============================================================ */
.nav-hamburger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:.4rem; z-index:600;
}
.nav-hamburger span { display:block; width:24px; height:1px; background:var(--parchment); transition:transform .3s, opacity .3s; }
.nav-hamburger.open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity:0; }
.nav-hamburger.open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:900px){
  nav{padding:1.2rem 1.5rem; position:fixed;}
  .nav-hamburger{display:flex;}
  .nav-links{
    display:flex; flex-direction:column; position:fixed;
    top:0; right:0; bottom:0; width:260px;
    background:rgba(3,1,10,.97); backdrop-filter:blur(10px);
    padding:5rem 2rem 2rem; gap:2rem;
    transform:translateX(100%); transition:transform .4s ease;
    z-index:550; border-left:1px solid var(--border-wood);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{font-size:1.1rem; color:var(--parchment);}
  .about-grid{grid-template-columns:1fr;}
  .about-sigil{position:static;}
  .services-cards{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr 1fr;}
  .process-steps::before{display:none;}
  .testi-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:3rem;}
  footer{flex-direction:column;gap:1.5rem;text-align:center;}
  .ouija-board-full{padding:1.5rem;}
  .grimoire-grid{grid-template-columns:1fr; gap:5rem;}
}
@media(max-width:600px){
  .form-row{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr;}
}
