/*
 * design-v2.css — Jurisprudence.ma Refonte v2
 * Généré depuis handoff Claude Design v2 (03/05/2026)
 * Chargé uniquement quand ?v2=1 est présent dans l'URL
 * Neo ZeeMac2 — 08/05/2026
 */


/* === HOMEPAGE === */
/* Hatton (Pangram Pangram) — fallback vers serif élégant si non chargé */
@font-face{
  font-family:'Hatton';
  src:url('https://fonts.cdnfonts.com/s/95717/PPHatton-Medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Hatton';
  src:url('https://fonts.cdnfonts.com/s/95717/PPHatton-MediumItalic.woff2') format('woff2');
  font-weight:500;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Hatton';
  src:url('https://fonts.cdnfonts.com/s/95717/PPHatton-Light.woff2') format('woff2');
  font-weight:300;font-style:normal;font-display:swap;
}
/* ============================================================
   JURISPRUDENCE.MA — Refonte v2
   Direction : noir & blanc épuré (A&O Shearman) + rosace filigrane
   Twist couleur : un seul accent rouge-bordeaux discret
   IDs et classes is-* préservés pour intégration WP
   ============================================================ */

:root{
  --ink:#0a0a0a;
  --ink-2:#1a1a1a;
  --ink-soft:#5a5a5a;
  --ink-light:#8a8a8a;
  --paper:#ffffff;
  --paper-2:#fafafa;
  --line:#e5e5e5;
  --line-2:#d0d0d0;
  --rule:#0a0a0a;
  /* Twist couleur : vert profond — le seul accent */
  --accent:#044D40;
  --serif:"Cormorant Garamond", "Times New Roman", Georgia, serif;
  --hatton:"Hatton", "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --arabic:"Noto Naskh Arabic", "Times New Roman", serif;
  --rosace:url('/wp-content/themes/jurisprudence/img/rosace-v2.png');
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  font-size:15px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;transition:color .25s, opacity .25s}
img{max-width:100%;display:block}

.is-wrapper{max-width:1280px;margin:0 auto;padding:0 32px}
.is-bold{font-weight:600}

/* ============================================================
   EN-TÊTE — minimal
   ============================================================ */
#the-logo-wrapper{
  background:#fff;
  padding:28px 0 22px;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10;
}
.logo-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.brand-mark{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}
.brand-mark .crest{
  width:34px;height:34px;
  flex-shrink:0;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1);
}
.brand-mark .wordmark{
  font-family:var(--serif);
  font-weight:500;
  font-size:26px;
  letter-spacing:.3px;
  color:var(--ink);
  line-height:1;
}
.brand-mark .wordmark .dot-ma{color:var(--accent)}

.partners{
  display:flex;
  align-items:center;
  gap:32px;
  font-family:var(--serif);
}
.partner-logo{
  font-family:var(--serif);
  font-size:15px;
  font-weight:500;
  color:var(--ink);
  letter-spacing:.3px;
  white-space:nowrap;
  position:relative;
  padding-bottom:2px;
}
.partner-logo::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:0;height:1px;
  background:var(--ink);
  transition:width .35s ease;
}
.partner-logo:hover::after{width:100%}

/* Ancienne nav (masquée — remplacée par les deux couches fixes) */
#the-main-nav{display:none}

/* ============================================================
   NAV — Deux couches fixes superposées
   Couche 1 : desktop-parent-nav (texte) — fade out au scroll
   Couche 2 : ScrollNavigation (logo + burger + loupe) — toujours visible
   ============================================================ */
.scroll-navigation{
  position:fixed;
  top:0;left:0;right:0;
  z-index:2;
  background:#fff;
  border-bottom:1px solid var(--line);
  height:64px;
}
.scroll-navigation .sn-inner{
  max-width:1280px;
  margin:0 auto;
  padding:0 32px;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.sn-logo{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
}
.sn-logo .sn-crest{
  width:26px;height:26px;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1);
  flex-shrink:0;
}
.sn-logo .sn-word{
  font-family:var(--serif);
  font-weight:500;
  font-size:18px;
  color:var(--ink);
  letter-spacing:.2px;
  line-height:1;
}
.sn-logo .sn-word .dot-ma{color:var(--accent)}

.sn-actions{display:flex;align-items:center;gap:8px}

.sn-search{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;cursor:pointer;
  color:var(--ink);
}
.sn-search svg{width:18px;height:18px;stroke:var(--ink);stroke-width:1.6;fill:none}

.sn-burger{
  width:42px;height:42px;
  display:flex;flex-direction:column;
  justify-content:space-between;
  padding:13px 9px;
  background:transparent;border:none;cursor:pointer;
}
.sn-burger span{
  display:block;
  width:100%;
  height:2px;
  background:var(--accent);
  transition:transform .35s ease, opacity .25s ease;
  transform-origin:center;
}
.sn-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sn-burger.is-open span:nth-child(2){opacity:0}
.sn-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Couche 1 — nav texte */
.desktop-parent-nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:5;
  background:#fff;
  border-bottom:1px solid var(--line);
  height:64px;
  opacity:0;
  pointer-events:none;
  transition:opacity .5s ease-out;
}
.desktop-parent-nav.--open{
  opacity:1;
  pointer-events:auto;
}
.desktop-parent-nav .dpn-inner{
  max-width:1280px;
  margin:0 auto;
  padding:0 32px;
  height:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:32px;
  position:relative;
}
.desktop-parent-nav .dpn-logo{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
}
.desktop-parent-nav .dpn-logo .sn-crest{
  width:26px;height:26px;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1);
}
.desktop-parent-nav .dpn-logo .sn-word{
  font-family:var(--serif);
  font-weight:500;
  font-size:18px;
  color:var(--ink);
}
.desktop-parent-nav .dpn-logo .sn-word .dot-ma{color:var(--accent)}

.dpn-items{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  height:100%;
  position:relative;
}
.dpn-item{
  display:flex;
  align-items:center;
  height:100%;
  padding:0 18px;
  font-family:var(--sans);
  font-size:11px;
  font-weight:400;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink);
  position:relative;
  z-index:2;
  transition:color .25s;
}
.dpn-item:hover{color:var(--ink)}
.dpn-item.--active::after{
  content:"";
  position:absolute;
  top:0;left:0;
  width:100%;
  height:.5rem;
  background-color:var(--accent);
  z-index:1;
}

.link-tracker{
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:8px;
  background-color:var(--accent);
  opacity:0;
  pointer-events:none;
  transition:opacity .5s ease-in-out, left .5s ease-in-out, width .5s ease-in-out;
  z-index:1;
}

.dpn-spacer{height:8px}

/* Compense la hauteur des nav fixes (le logo wrapper a aussi son padding) */
body{padding-top:64px}

/* Burger overlay menu */
.sn-overlay{
  position:fixed;
  inset:0;
  background:rgba(255,255,255,.98);
  z-index:4;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sn-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
.sn-overlay-inner{
  display:flex;flex-direction:column;
  align-items:center;
  gap:18px;
  padding:80px 24px;
}
.sn-overlay-inner a{
  font-family:var(--serif);
  font-size:32px;
  color:var(--ink);
  font-weight:400;
  letter-spacing:-.3px;
  position:relative;
  padding:6px 8px;
  transition:color .25s;
}
.sn-overlay-inner a::after{
  content:"";
  position:absolute;
  left:8px;right:8px;bottom:2px;
  height:6px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s ease;
  z-index:-1;
  opacity:.85;
}
.sn-overlay-inner a:hover::after{transform:scaleX(1)}

@media (max-width:760px){
  .dpn-items{display:none}
  .desktop-parent-nav .dpn-inner{grid-template-columns:auto 1fr}
}

/* ============================================================
   HERO — Noir & blanc, rosace en filigrane, mouvement léger
   ============================================================ */
#the-hero-wrapper{
  position:relative;
  background:#fff;
  padding:72px 0 56px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-rosace{
  position:absolute;
  right:-200px;top:50%;
  transform:translateY(-50%);
  width:780px;height:780px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.06;
  filter:grayscale(1);
  pointer-events:none;
  animation:slowrot 240s linear infinite;
}
@keyframes slowrot{
  from{transform:translateY(-50%) rotate(0deg)}
  to{transform:translateY(-50%) rotate(360deg)}
}
.hero-grid{
  position:relative;z-index:2;
}
#the-hero-text h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:78px;
  line-height:1.02;
  letter-spacing:-1.5px;
  margin:0 0 28px;
  max-width:920px;
  color:var(--ink);
}
#the-hero-text h1 em{
  font-style:italic;
  font-weight:400;
  color:var(--ink);
  position:relative;
  display:inline-block;
}
#the-hero-text h1 em::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:6px;
  height:1px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  animation:underline 1.2s .6s ease forwards;
}
@keyframes underline{to{transform:scaleX(1)}}

.hero-lede{
  font-family:var(--serif);
  font-size:22px;
  line-height:1.5;
  font-weight:400;
  color:var(--ink-soft);
  max-width:640px;
  margin:0 0 56px;
}

/* Reveal animation au chargement */
.reveal{
  opacity:0;
  transform:translateY(14px);
  animation:reveal .9s ease forwards;
}
.reveal-1{animation-delay:.1s}
.reveal-2{animation-delay:.3s}
.reveal-3{animation-delay:.5s}
.reveal-4{animation-delay:.7s}
@keyframes reveal{to{opacity:1;transform:translateY(0)}}

/* ============================================================
   RECHERCHE — Carte épurée, posée sur fond clair
   ============================================================ */
.search-section{
  background:var(--paper-2);
  padding:0 0 100px;
  border-bottom:1px solid var(--line);
  position:relative;
}
.search-section .search-shell{
  margin-top:-60px;
  position:relative;
  z-index:5;
}
.the-search-wrapper{
  background:#fff;
  border:1px solid var(--ink);
}
.search-tabs{
  display:flex;
  border-bottom:1px solid var(--ink);
}
.search-tabs .is-tab-link{
  padding:18px 28px;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:500;
  color:var(--ink-soft);
  cursor:pointer;
  border-right:1px solid var(--line);
  transition:color .2s, background .2s;
}
.search-tabs .is-tab-link.is-active{
  background:var(--ink);
  color:#fff;
}
.search-tabs .is-tab-link:hover:not(.is-active){color:var(--ink)}

#the-search-form{padding:32px}
.search-row{display:grid;gap:0;margin-bottom:0}
.search-row.cols-3{grid-template-columns:repeat(3,1fr)}
.search-row.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:880px){
  .search-row.cols-3,.search-row.cols-4{grid-template-columns:1fr}
}

.field{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  height:58px;
  display:flex;
  align-items:center;
  margin:-1px 0 0 -1px;
  transition:border-color .2s, z-index .2s;
}
.field:hover{border-color:var(--ink);z-index:2}
.field:focus-within{border-color:var(--ink);z-index:3}
.field-label{
  position:absolute;
  top:10px;left:18px;
  font-family:var(--sans);
  font-size:9.5px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink-light);
  font-weight:500;
  pointer-events:none;
}
.field input,
.field select,
.field .field-trigger{
  width:100%;
  border:none;
  background:transparent;
  padding:24px 18px 8px;
  font-family:var(--sans);
  font-size:14px;
  color:var(--ink);
  outline:none;
}
.field .field-trigger{
  cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;
  padding-right:42px;
}
.field .field-trigger::after{
  content:"";
  position:absolute;
  right:18px;top:50%;
  width:7px;height:7px;
  border-right:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  transform:translateY(-65%) rotate(45deg);
}
.field-trigger.placeholder{color:var(--ink-light)}

.field-daterange{
  display:flex;align-items:center;
  height:58px;
  background:#fff;
  border:1px solid var(--line);
  margin:-1px 0 0 -1px;
  position:relative;
}
.field-daterange:hover,.field-daterange:focus-within{border-color:var(--ink)}
.field-daterange::before{
  content:"Date";
  position:absolute;top:10px;left:18px;
  font-size:9.5px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--ink-light);font-weight:500;
}
.field-daterange input{
  flex:1;border:none;
  padding:24px 8px 8px 18px;
  font-size:13px;outline:none;width:100%;
  font-family:var(--sans);
}
.field-daterange .sep{font-size:12px;color:var(--ink-light);padding:0 4px;margin-top:8px}

.search-tag-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:0;
  margin-top:24px;
  align-items:stretch;
}
@media (max-width:760px){.search-tag-row{grid-template-columns:1fr}}

.tag-wrapper{position:relative}
.tag-wrapper input{
  width:100%;
  height:64px;
  border:1px solid var(--ink);
  background:#fff;
  padding:8px 50px 8px 22px;
  font-family:var(--serif);
  font-size:20px;
  outline:none;
  font-style:italic;
  color:var(--ink);
}
.tag-wrapper input::placeholder{color:var(--ink-light)}
.search-tip{
  position:absolute;right:18px;top:50%;
  transform:translateY(-50%);
  width:22px;height:22px;
  border:1px solid var(--line-2);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;
  color:var(--ink-soft);
  cursor:help;background:#fff;
}
#the-submit-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  height:64px;
  padding:0 36px;
  background:var(--ink);
  color:#fff;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  font-weight:500;
  cursor:pointer;
  border:1px solid var(--ink);
  transition:background .25s, color .25s, gap .25s;
}
#the-submit-button:hover{background:#fff;color:var(--ink);gap:20px}
#the-submit-button:hover .arrow{color:var(--accent)}

.expr-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:16px;
  flex-wrap:wrap;
}
.expr-check{
  display:flex;align-items:center;gap:10px;
  font-size:12.5px;
  color:var(--ink-soft);
}
.expr-check input{width:14px;height:14px;accent-color:var(--ink)}
#the-reset-btn{
  font-family:var(--sans);
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:1px solid var(--line-2);
  padding-bottom:2px;
  cursor:pointer;
}
#the-reset-btn:hover{color:var(--ink);border-bottom-color:var(--ink)}

.adv-toggle{
  display:inline-flex;
  align-items:center;gap:10px;
  font-family:var(--sans);
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink-soft);
  cursor:pointer;
  border-bottom:1px solid var(--line-2);
  padding-bottom:2px;
}
.adv-toggle:hover{color:var(--ink);border-bottom-color:var(--ink)}
.adv-toggle .chev{
  width:6px;height:6px;
  border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s;
}
.adv-toggle.open .chev{transform:rotate(-135deg)}

.adv-content{
  display:none;
  margin-top:18px;
  padding-top:0;
}
.adv-content.open{display:block}

/* ============================================================
   SECTION TITRES — minimal, gros sérifs, marge
   ============================================================ */
.section-mini{
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--ink-light);
  margin:0 0 24px;
  font-weight:500;
  display:flex;
  align-items:center;
  gap:14px;
}
.section-mini::before{
  content:"";
  width:24px;height:1px;
  background:var(--ink);
}
.section-title{
  font-family:var(--serif);
  font-size:56px;
  font-weight:400;
  color:var(--ink);
  margin:0 0 56px;
  letter-spacing:-1px;
  line-height:1.05;
  max-width:780px;
}

/* ============================================================
   MANIFESTE — scroll-driven background-clip:text
   ============================================================ */
.manifesto-section{
  padding:80px 0;
  background:#fff;
  position:relative;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.manifesto-rosace{
  position:absolute;
  left:50%;top:50%;
  width:340px;height:340px;
  margin-left:-170px;
  margin-top:-170px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.05;
  filter:grayscale(1);
  pointer-events:none;
  /* Roule de gauche à centre, piloté par le scroll — déplacement négatif au départ */
  transform:translateX(var(--roll-x,-25vw)) rotate(var(--roll-rot,-90deg));
  will-change:transform;
  transition:transform .4s cubic-bezier(.22,.61,.36,1);
}
.manifesto-text{
  position:relative;
  z-index:2;
  font-family:var(--hatton);
  font-weight:300;
  font-size:54px;
  line-height:1.18;
  letter-spacing:-.8px;
  margin:0 auto;
  max-width:1080px;
  text-align:left;
  color:transparent;
  background-image:linear-gradient(
    90deg,
    var(--ink) 0%,
    var(--ink) var(--reveal,0%),
    rgba(10,10,10,.12) var(--reveal,0%),
    rgba(10,10,10,.12) 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  transition:background-image .1s linear;
}
.manifesto-text em{
  font-style:italic;
  font-weight:400;
}
.manifesto-sign{
  position:relative;
  z-index:2;
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:22px;
  letter-spacing:.4px;
  color:var(--ink);
  margin:48px 0 0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
}
.manifesto-sign::before{
  content:"";
  width:48px;height:1px;
  background:var(--accent);
}
.manifesto-sign sup{
  font-size:.55em;
  vertical-align:.5em;
  letter-spacing:0;
  font-style:italic;
  margin:0 .15em 0 -.05em;
  text-transform:lowercase;
  line-height:0;
  position:relative;
  top:-.15em;
}
.manifesto-sign .amp{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:2em;
  color:var(--accent);
  margin:0 .25em;
  vertical-align:-.18em;
  line-height:0;
}
@media (max-width:880px){
  .manifesto-section{padding:88px 0}
  .manifesto-text{font-size:32px;letter-spacing:-.4px}
}

/* ============================================================
   PARCOURIR — Bloc unifié
   ============================================================ */
.browse-unified{
  padding:96px 0 104px;
  background:var(--paper-2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.browse-header{
  margin:0 0 64px;
  max-width:880px;
}
.browse-header .section-mini{margin-bottom:14px}
.browse-header .section-title{
  margin:0 0 18px;
}
.browse-header .section-title em{font-style:italic;color:var(--ink);font-weight:400}
.browse-lede{
  font-family:var(--serif);
  font-size:19px;
  line-height:1.55;
  color:var(--ink-soft);
  margin:0;
  font-weight:400;
}
.browse-sub{
  margin-bottom:56px;
}
.browse-sub:last-child{margin-bottom:0}
.sub-rule{
  display:flex;
  align-items:baseline;
  gap:16px;
  margin:0 0 28px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.sub-num{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:18px;
  color:var(--accent);
  letter-spacing:.5px;
  min-width:24px;
}
.sub-label{
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:13px;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--ink);
}
.sub-line{flex:1}

/* Legacy aliases — kept so old rules still apply */
.browse-section{position:relative}
.browse-section .bg-rosace{display:none}

.browse-card{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:0;
  border:1px solid var(--ink);
  background:#fff;
  position:relative;
  overflow:hidden;
  min-height:340px;
}
@media (max-width:880px){.browse-card{grid-template-columns:1fr}}
.browse-card-left{
  padding:48px 44px;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  background:var(--paper-2);
}
@media (max-width:880px){.browse-card-left{border-right:none;border-bottom:1px solid var(--line)}}
.browse-card-left .bcl-rosace{
  position:absolute;
  right:-100px;top:50%;
  transform:translateY(-50%);
  width:280px;height:280px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.05;
  filter:grayscale(1);
  pointer-events:none;
}
.browse-card-left h3{
  font-family:var(--serif);
  font-size:38px;
  font-weight:400;
  margin:0 0 14px;
  letter-spacing:-.5px;
  line-height:1.1;
  color:var(--ink);
}
.browse-card-left h3 em{font-style:italic}
.browse-card-left p{
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink-soft);
  line-height:1.5;
  margin:0;
  max-width:340px;
}
.browse-card-right{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
}
@media (max-width:520px){.browse-card-right{grid-template-columns:1fr}}
.browse-juris{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink);
  transition:background .25s, padding .35s ease;
  position:relative;
  cursor:pointer;
}
.browse-juris:nth-child(2n){border-right:none}
.browse-juris:nth-last-child(-n+2){border-bottom:none}
.browse-juris:hover{background:var(--paper-2);padding-left:32px}
.browse-juris .arr{
  font-size:14px;
  color:var(--ink-light);
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .3s, transform .3s, color .25s;
}
.browse-juris:hover .arr{opacity:1;transform:translateX(0);color:var(--accent)}

/* Liste juridictions — épurée, type sommaire */
.juris-list{
  position:relative;
  border-top:1px solid var(--ink);
}
.juris-row{
  display:grid;
  grid-template-columns:60px 1fr auto 40px;
  gap:32px;
  align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--line);
  transition:padding .35s ease;
  cursor:pointer;
}
.juris-row:hover{padding-left:14px}
.juris-row .num{
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  color:var(--ink-light);
  font-feature-settings:"lnum";
}
.juris-row .name{
  font-family:var(--serif);
  font-size:30px;
  font-weight:400;
  color:var(--ink);
  letter-spacing:-.3px;
  line-height:1.15;
}
.juris-row .name-ar{
  font-family:var(--arabic);
  font-size:18px;
  color:var(--ink-soft);
  direction:rtl;
  text-align:right;
  font-weight:400;
}
.juris-row .arrow{
  font-family:var(--serif);
  font-size:24px;
  color:var(--ink);
  transform:translateX(0);
  transition:transform .35s ease, color .25s;
  text-align:right;
  justify-self:end;
}
.juris-row:hover .arrow{transform:translateX(8px);color:var(--accent)}

@media (max-width:760px){
  .juris-row{grid-template-columns:40px 1fr 30px;gap:16px}
  .juris-row .name-ar{display:none}
  .juris-row .name{font-size:22px}
}

/* ============================================================
   PARCOURIR — Index (3 cartes minimalistes)
   ============================================================ */
.indices-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:1px solid var(--ink);
  background:#fff;
}
  gap:0;
  border-top:1px solid var(--ink);
  border-left:1px solid var(--line);
}
.index-card:first-child{border-left:none}
@media (max-width:880px){
  .indices-grid{grid-template-columns:1fr}
  .index-card{border-left:none;border-top:1px solid var(--line)}
  .index-card:first-child{border-top:none}
}
.index-card{
  background:transparent;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:48px 36px 40px;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:background .35s;
  min-height:320px;
}
.index-card:hover{background:#fff}
.index-card .ic-num{
  font-family:var(--serif);
  font-style:italic;
  font-size:42px;
  color:var(--ink);
  line-height:1;
  margin-bottom:32px;
  position:relative;
  display:inline-block;
}
.index-card .ic-num::after{
  content:"";
  position:absolute;
  left:0;bottom:-10px;
  width:0;height:1px;
  background:var(--accent);
  transition:width .4s ease;
}
.index-card:hover .ic-num::after{width:48px}
.index-card .ic-title{
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
  color:var(--ink);
  margin:0 0 10px;
  letter-spacing:-.2px;
}
.index-card .ic-desc{
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink-soft);
  margin:0 0 24px;
  flex:1;
  line-height:1.5;
  font-weight:400;
}
.index-card .ic-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:500;
}
.index-card .ic-cta .arr{transition:transform .35s ease}
.index-card:hover .ic-cta .arr{transform:translateX(6px)}

/* ============================================================
   DERNIÈRES PUBLICATIONS — liste minimale
   ============================================================ */
#the-decisions-wrapper{
  padding:88px 0;
  background:#fff;
}
.decisions-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:64px;
  flex-wrap:wrap;
}
.decisions-header .heading{flex:1;min-width:280px}
.decisions-header .meta{
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  color:var(--ink-soft);
}
.decisions-header .meta .nbredecision{
  color:var(--ink);
  font-weight:500;
  font-style:normal;
  font-family:var(--sans);
  letter-spacing:.5px;
  font-size:14px;
}

.decisions-list{
  border-top:1px solid var(--ink);
}
.decision-item{
  display:grid;
  grid-template-columns:120px 1fr 200px;
  gap:40px;
  padding:36px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
  transition:padding .35s;
  cursor:pointer;
}
.decision-item:hover{padding-left:14px}
@media (max-width:880px){
  .decision-item{grid-template-columns:1fr;gap:14px;padding:28px 0}
  .decision-item:hover{padding-left:0}
}
.decision-ref .ref-num{
  display:block;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:1.5px;
  color:var(--ink-light);
  text-transform:uppercase;
  font-weight:500;
}
.decision-ref .ref-date{
  display:block;
  margin-top:8px;
  font-family:var(--serif);
  font-size:22px;
  color:var(--ink);
  font-weight:400;
  letter-spacing:-.3px;
}
.decision-ref .ref-day{
  font-family:var(--sans);
  font-size:10.5px;
  color:var(--ink-light);
  letter-spacing:1.5px;
  text-transform:uppercase;
  display:block;
  margin-top:4px;
}
.decision-body .juris-tag{
  display:inline-block;
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--ink-soft);
  font-weight:500;
  margin-bottom:14px;
}
.decision-body .title{
  font-family:var(--serif);
  font-size:26px;
  font-weight:400;
  color:var(--ink);
  line-height:1.25;
  margin:0 0 12px;
  letter-spacing:-.3px;
  display:block;
  transition:color .25s;
}
.decision-body .title:hover{color:var(--accent)}
.decision-body .resume{
  font-family:var(--serif);
  font-size:16px;
  line-height:1.55;
  color:var(--ink-soft);
  margin:0 0 14px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-weight:400;
}
.decision-body .themes{display:flex;flex-wrap:wrap;gap:14px}
.decision-body .themes a,
.decision-body .themes span{
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:15px;
  color:var(--ink);
  letter-spacing:.2px;
  position:relative;
  padding-bottom:1px;
  border-bottom:1px solid var(--line-2);
  transition:border-color .2s, color .25s;
}
.decision-body .themes a:hover,
.decision-body .themes span:hover{color:var(--accent);border-bottom-color:var(--accent)}

.decision-aside{
  text-align:right;
  padding-top:6px;
}
@media (max-width:880px){.decision-aside{text-align:left}}
.decision-aside .court{
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  color:var(--ink-soft);
  display:block;
  margin-bottom:14px;
}
.decision-aside .read{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--sans);
  font-size:10.5px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:500;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
}
.decision-aside .read .arr{transition:transform .25s}
.decision-aside .read:hover .arr{transform:translateX(4px)}

.decisions-footer{
  margin-top:64px;
  display:flex;
  justify-content:center;
}
.see-all-btn{
  display:inline-flex;
  align-items:center;
  gap:16px;
  padding:20px 36px;
  background:transparent;
  color:var(--ink);
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid var(--ink);
  transition:background .25s, color .25s, gap .25s;
}
.see-all-btn:hover{background:var(--ink);color:#fff;gap:22px}
.see-all-btn .arr{transition:transform .25s}

/* ============================================================
   FOOTER
   ============================================================ */
#the-footer-wrapper{
  background:var(--ink);
  color:rgba(255,255,255,.7);
  padding:80px 0 36px;
  position:relative;
  overflow:hidden;
}
#the-footer-wrapper .bg-rosace{
  position:absolute;
  right:-300px;top:-200px;
  width:720px;height:720px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.04;
  filter:grayscale(1) invert(1);
  pointer-events:none;
}
.footer-top{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:32px;
  position:relative;
}
@media (max-width:800px){.footer-top{grid-template-columns:1fr 1fr;gap:32px}}
.footer-brand .ft-name{
  font-family:var(--hatton);
  font-size:30px;
  font-weight:500;
  color:#fff;
  display:block;
  margin-bottom:18px;
  letter-spacing:-.3px;
}
.footer-brand .ft-name .dot-ma{color:var(--accent);font-style:italic}
.footer-brand p{
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:17px;
  color:rgba(255,255,255,.65);
  line-height:1.55;
  margin:0;
  max-width:340px;
}
.footer-col h4{
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
  font-weight:500;
  margin:0 0 20px;
}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:12px}
.footer-col a{
  font-size:14px;
  color:#fff;
  font-family:var(--sans);
  position:relative;
}
.footer-col a::after{
  content:"";
  position:absolute;
  left:0;bottom:-2px;
  width:0;height:1px;
  background:#fff;
  transition:width .3s;
}
.footer-col a:hover::after{width:100%}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  font-size:12px;
  color:rgba(255,255,255,.5);
  font-family:var(--sans);
  position:relative;
}
.footer-bottom a{color:rgba(255,255,255,.7)}
.footer-bottom a:hover{color:#fff}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  #the-hero-text h1{font-size:54px}
  .section-title{font-size:38px;margin-bottom:36px}
  #the-hero-wrapper{padding:80px 0 70px}
  .hero-rosace{right:-340px;width:580px;height:580px}
}
@media (max-width:640px){
  #the-hero-text h1{font-size:38px}
  .hero-lede{font-size:18px}
  .partners{display:none}
  .logo-row{justify-content:center}
  #the-main-nav .is-wrapper{flex-direction:column}
  .main-nav-link{padding:13px 14px;font-size:10px;letter-spacing:1.2px}
  .browse-unified,#the-decisions-wrapper{padding:72px 0}
  .browse-header{margin-bottom:48px}
  .browse-sub{margin-bottom:40px}
}

/* === DECISION === */
/* Hatton (Pangram Pangram) — fallback vers serif élégant si non chargé */
@font-face{
  font-family:'Hatton';
  src:url('https://fonts.cdnfonts.com/s/95717/PPHatton-Medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Hatton';
  src:url('https://fonts.cdnfonts.com/s/95717/PPHatton-MediumItalic.woff2') format('woff2');
  font-weight:500;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Hatton';
  src:url('https://fonts.cdnfonts.com/s/95717/PPHatton-Light.woff2') format('woff2');
  font-weight:300;font-style:normal;font-display:swap;
}
/* ============================================================
   JURISPRUDENCE.MA — Refonte v2
   Direction : noir & blanc épuré (A&O Shearman) + rosace filigrane
   Twist couleur : un seul accent rouge-bordeaux discret
   IDs et classes is-* préservés pour intégration WP
   ============================================================ */

:root{
  --ink:#0a0a0a;
  --ink-2:#1a1a1a;
  --ink-soft:#5a5a5a;
  --ink-light:#8a8a8a;
  --paper:#ffffff;
  --paper-2:#fafafa;
  --line:#e5e5e5;
  --line-2:#d0d0d0;
  --rule:#0a0a0a;
  /* Twist couleur : vert profond — le seul accent */
  --accent:#044D40;
  --serif:"Cormorant Garamond", "Times New Roman", Georgia, serif;
  --hatton:"Hatton", "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --arabic:"Noto Naskh Arabic", "Times New Roman", serif;
  --rosace:url('/wp-content/themes/jurisprudence/img/rosace-v2.png');
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  font-size:15px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;transition:color .25s, opacity .25s}
img{max-width:100%;display:block}

.is-wrapper{max-width:1280px;margin:0 auto;padding:0 32px}
.is-bold{font-weight:600}

/* ============================================================
   EN-TÊTE — minimal
   ============================================================ */
#the-logo-wrapper{
  background:#fff;
  padding:28px 0 22px;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10;
}
.logo-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.brand-mark{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}
.brand-mark .crest{
  width:34px;height:34px;
  flex-shrink:0;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1);
}
.brand-mark .wordmark{
  font-family:var(--serif);
  font-weight:500;
  font-size:26px;
  letter-spacing:.3px;
  color:var(--ink);
  line-height:1;
}
.brand-mark .wordmark .dot-ma{color:var(--accent)}

.partners{
  display:flex;
  align-items:center;
  gap:32px;
  font-family:var(--serif);
}
.partner-logo{
  font-family:var(--serif);
  font-size:15px;
  font-weight:500;
  color:var(--ink);
  letter-spacing:.3px;
  white-space:nowrap;
  position:relative;
  padding-bottom:2px;
}
.partner-logo::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:0;height:1px;
  background:var(--ink);
  transition:width .35s ease;
}
.partner-logo:hover::after{width:100%}

/* Ancienne nav (masquée — remplacée par les deux couches fixes) */
#the-main-nav{display:none}

/* ============================================================
   NAV — Deux couches fixes superposées
   Couche 1 : desktop-parent-nav (texte) — fade out au scroll
   Couche 2 : ScrollNavigation (logo + burger + loupe) — toujours visible
   ============================================================ */
.scroll-navigation{
  position:fixed;
  top:0;left:0;right:0;
  z-index:2;
  background:#fff;
  border-bottom:1px solid var(--line);
  height:64px;
}
.scroll-navigation .sn-inner{
  max-width:1280px;
  margin:0 auto;
  padding:0 32px;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.sn-logo{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
}
.sn-logo .sn-crest{
  width:26px;height:26px;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1);
  flex-shrink:0;
}
.sn-logo .sn-word{
  font-family:var(--serif);
  font-weight:500;
  font-size:18px;
  color:var(--ink);
  letter-spacing:.2px;
  line-height:1;
}
.sn-logo .sn-word .dot-ma{color:var(--accent)}

.sn-actions{display:flex;align-items:center;gap:8px}

.sn-search{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;cursor:pointer;
  color:var(--ink);
}
.sn-search svg{width:18px;height:18px;stroke:var(--ink);stroke-width:1.6;fill:none}

.sn-burger{
  width:42px;height:42px;
  display:flex;flex-direction:column;
  justify-content:space-between;
  padding:13px 9px;
  background:transparent;border:none;cursor:pointer;
}
.sn-burger span{
  display:block;
  width:100%;
  height:2px;
  background:var(--accent);
  transition:transform .35s ease, opacity .25s ease;
  transform-origin:center;
}
.sn-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sn-burger.is-open span:nth-child(2){opacity:0}
.sn-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Couche 1 — nav texte */
.desktop-parent-nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:5;
  background:#fff;
  border-bottom:1px solid var(--line);
  height:64px;
  opacity:0;
  pointer-events:none;
  transition:opacity .5s ease-out;
}
.desktop-parent-nav.--open{
  opacity:1;
  pointer-events:auto;
}
.desktop-parent-nav .dpn-inner{
  max-width:1280px;
  margin:0 auto;
  padding:0 32px;
  height:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:32px;
  position:relative;
}
.desktop-parent-nav .dpn-logo{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
}
.desktop-parent-nav .dpn-logo .sn-crest{
  width:26px;height:26px;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1);
}
.desktop-parent-nav .dpn-logo .sn-word{
  font-family:var(--serif);
  font-weight:500;
  font-size:18px;
  color:var(--ink);
}
.desktop-parent-nav .dpn-logo .sn-word .dot-ma{color:var(--accent)}

.dpn-items{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  height:100%;
  position:relative;
}
.dpn-item{
  display:flex;
  align-items:center;
  height:100%;
  padding:0 18px;
  font-family:var(--sans);
  font-size:11px;
  font-weight:400;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink);
  position:relative;
  z-index:2;
  transition:color .25s;
}
.dpn-item:hover{color:var(--ink)}
.dpn-item.--active::after{
  content:"";
  position:absolute;
  top:0;left:0;
  width:100%;
  height:.5rem;
  background-color:var(--accent);
  z-index:1;
}

.link-tracker{
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:8px;
  background-color:var(--accent);
  opacity:0;
  pointer-events:none;
  transition:opacity .5s ease-in-out, left .5s ease-in-out, width .5s ease-in-out;
  z-index:1;
}

.dpn-spacer{height:8px}

body{padding-top:64px}

/* Burger overlay menu */
.sn-overlay{
  position:fixed;
  inset:0;
  background:rgba(255,255,255,.98);
  z-index:4;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sn-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
.sn-overlay-inner{
  display:flex;flex-direction:column;
  align-items:center;
  gap:18px;
  padding:80px 24px;
}
.sn-overlay-inner a{
  font-family:var(--serif);
  font-size:32px;
  color:var(--ink);
  font-weight:400;
  letter-spacing:-.3px;
  position:relative;
  padding:6px 8px;
  transition:color .25s;
}
.sn-overlay-inner a::after{
  content:"";
  position:absolute;
  left:8px;right:8px;bottom:2px;
  height:6px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s ease;
  z-index:-1;
  opacity:.85;
}
.sn-overlay-inner a:hover::after{transform:scaleX(1)}

@media (max-width:760px){
  .dpn-items{display:none}
  .desktop-parent-nav .dpn-inner{grid-template-columns:auto 1fr}
}

/* ============================================================
   HERO — Noir & blanc, rosace en filigrane, mouvement léger
   ============================================================ */
#the-hero-wrapper{
  position:relative;
  background:#fff;
  padding:72px 0 56px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-rosace{
  position:absolute;
  right:-200px;top:50%;
  transform:translateY(-50%);
  width:780px;height:780px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.06;
  filter:grayscale(1);
  pointer-events:none;
  animation:slowrot 240s linear infinite;
}
@keyframes slowrot{
  from{transform:translateY(-50%) rotate(0deg)}
  to{transform:translateY(-50%) rotate(360deg)}
}
.hero-grid{
  position:relative;z-index:2;
}
#the-hero-text h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:78px;
  line-height:1.02;
  letter-spacing:-1.5px;
  margin:0 0 28px;
  max-width:920px;
  color:var(--ink);
}
#the-hero-text h1 em{
  font-style:italic;
  font-weight:400;
  color:var(--ink);
  position:relative;
  display:inline-block;
}
#the-hero-text h1 em::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:6px;
  height:1px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  animation:underline 1.2s .6s ease forwards;
}
@keyframes underline{to{transform:scaleX(1)}}

.hero-lede{
  font-family:var(--serif);
  font-size:22px;
  line-height:1.5;
  font-weight:400;
  color:var(--ink-soft);
  max-width:640px;
  margin:0 0 56px;
}

/* Reveal animation au chargement */
.reveal{
  opacity:0;
  transform:translateY(14px);
  animation:reveal .9s ease forwards;
}
.reveal-1{animation-delay:.1s}
.reveal-2{animation-delay:.3s}
.reveal-3{animation-delay:.5s}
.reveal-4{animation-delay:.7s}
@keyframes reveal{to{opacity:1;transform:translateY(0)}}

/* ============================================================
   RECHERCHE — Carte épurée, posée sur fond clair
   ============================================================ */
.search-section{
  background:var(--paper-2);
  padding:0 0 100px;
  border-bottom:1px solid var(--line);
  position:relative;
}
.search-section .search-shell{
  margin-top:-60px;
  position:relative;
  z-index:5;
}
.the-search-wrapper{
  background:#fff;
  border:1px solid var(--ink);
}
.search-tabs{
  display:flex;
  border-bottom:1px solid var(--ink);
}
.search-tabs .is-tab-link{
  padding:18px 28px;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:500;
  color:var(--ink-soft);
  cursor:pointer;
  border-right:1px solid var(--line);
  transition:color .2s, background .2s;
}
.search-tabs .is-tab-link.is-active{
  background:var(--ink);
  color:#fff;
}
.search-tabs .is-tab-link:hover:not(.is-active){color:var(--ink)}

#the-search-form{padding:32px}
.search-row{display:grid;gap:0;margin-bottom:0}
.search-row.cols-3{grid-template-columns:repeat(3,1fr)}
.search-row.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:880px){
  .search-row.cols-3,.search-row.cols-4{grid-template-columns:1fr}
}

.field{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  height:58px;
  display:flex;
  align-items:center;
  margin:-1px 0 0 -1px;
  transition:border-color .2s, z-index .2s;
}
.field:hover{border-color:var(--ink);z-index:2}
.field:focus-within{border-color:var(--ink);z-index:3}
.field-label{
  position:absolute;
  top:10px;left:18px;
  font-family:var(--sans);
  font-size:9.5px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink-light);
  font-weight:500;
  pointer-events:none;
}
.field input,
.field select,
.field .field-trigger{
  width:100%;
  border:none;
  background:transparent;
  padding:24px 18px 8px;
  font-family:var(--sans);
  font-size:14px;
  color:var(--ink);
  outline:none;
}
.field .field-trigger{
  cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;
  padding-right:42px;
}
.field .field-trigger::after{
  content:"";
  position:absolute;
  right:18px;top:50%;
  width:7px;height:7px;
  border-right:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  transform:translateY(-65%) rotate(45deg);
}
.field-trigger.placeholder{color:var(--ink-light)}

.field-daterange{
  display:flex;align-items:center;
  height:58px;
  background:#fff;
  border:1px solid var(--line);
  margin:-1px 0 0 -1px;
  position:relative;
}
.field-daterange:hover,.field-daterange:focus-within{border-color:var(--ink)}
.field-daterange::before{
  content:"Date";
  position:absolute;top:10px;left:18px;
  font-size:9.5px;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--ink-light);font-weight:500;
}
.field-daterange input{
  flex:1;border:none;
  padding:24px 8px 8px 18px;
  font-size:13px;outline:none;width:100%;
  font-family:var(--sans);
}
.field-daterange .sep{font-size:12px;color:var(--ink-light);padding:0 4px;margin-top:8px}

.search-tag-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:0;
  margin-top:24px;
  align-items:stretch;
}
@media (max-width:760px){.search-tag-row{grid-template-columns:1fr}}

.tag-wrapper{position:relative}
.tag-wrapper input{
  width:100%;
  height:64px;
  border:1px solid var(--ink);
  background:#fff;
  padding:8px 50px 8px 22px;
  font-family:var(--serif);
  font-size:20px;
  outline:none;
  font-style:italic;
  color:var(--ink);
}
.tag-wrapper input::placeholder{color:var(--ink-light)}
.search-tip{
  position:absolute;right:18px;top:50%;
  transform:translateY(-50%);
  width:22px;height:22px;
  border:1px solid var(--line-2);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;
  color:var(--ink-soft);
  cursor:help;background:#fff;
}
#the-submit-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  height:64px;
  padding:0 36px;
  background:var(--ink);
  color:#fff;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  font-weight:500;
  cursor:pointer;
  border:1px solid var(--ink);
  transition:background .25s, color .25s, gap .25s;
}
#the-submit-button:hover{background:#fff;color:var(--ink);gap:20px}
#the-submit-button:hover .arrow{color:var(--accent)}

.expr-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:16px;
  flex-wrap:wrap;
}
.expr-check{
  display:flex;align-items:center;gap:10px;
  font-size:12.5px;
  color:var(--ink-soft);
}
.expr-check input{width:14px;height:14px;accent-color:var(--ink)}
#the-reset-btn{
  font-family:var(--sans);
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:1px solid var(--line-2);
  padding-bottom:2px;
  cursor:pointer;
}
#the-reset-btn:hover{color:var(--ink);border-bottom-color:var(--ink)}

.adv-toggle{
  display:inline-flex;
  align-items:center;gap:10px;
  font-family:var(--sans);
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink-soft);
  cursor:pointer;
  border-bottom:1px solid var(--line-2);
  padding-bottom:2px;
}
.adv-toggle:hover{color:var(--ink);border-bottom-color:var(--ink)}
.adv-toggle .chev{
  width:6px;height:6px;
  border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s;
}
.adv-toggle.open .chev{transform:rotate(-135deg)}

.adv-content{
  display:none;
  margin-top:18px;
  padding-top:0;
}
.adv-content.open{display:block}

/* ============================================================
   SECTION TITRES — minimal, gros sérifs, marge
   ============================================================ */
.section-mini{
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--ink-light);
  margin:0 0 24px;
  font-weight:500;
  display:flex;
  align-items:center;
  gap:14px;
}
.section-mini::before{
  content:"";
  width:24px;height:1px;
  background:var(--ink);
}
.section-title{
  font-family:var(--serif);
  font-size:56px;
  font-weight:400;
  color:var(--ink);
  margin:0 0 56px;
  letter-spacing:-1px;
  line-height:1.05;
  max-width:780px;
}

/* ============================================================
   MANIFESTE — scroll-driven background-clip:text
   ============================================================ */
.manifesto-section{
  padding:80px 0;
  background:#fff;
  position:relative;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.manifesto-rosace{
  position:absolute;
  left:50%;top:50%;
  width:340px;height:340px;
  margin-left:-170px;
  margin-top:-170px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.05;
  filter:grayscale(1);
  pointer-events:none;
  /* Roule de gauche à centre, piloté par le scroll — déplacement négatif au départ */
  transform:translateX(var(--roll-x,-25vw)) rotate(var(--roll-rot,-90deg));
  will-change:transform;
  transition:transform .4s cubic-bezier(.22,.61,.36,1);
}
.manifesto-text{
  position:relative;
  z-index:2;
  font-family:var(--hatton);
  font-weight:300;
  font-size:54px;
  line-height:1.18;
  letter-spacing:-.8px;
  margin:0 auto;
  max-width:1080px;
  text-align:left;
  color:transparent;
  background-image:linear-gradient(
    90deg,
    var(--ink) 0%,
    var(--ink) var(--reveal,0%),
    rgba(10,10,10,.12) var(--reveal,0%),
    rgba(10,10,10,.12) 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  transition:background-image .1s linear;
}
.manifesto-text em{
  font-style:italic;
  font-weight:400;
}
.manifesto-sign{
  position:relative;
  z-index:2;
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:22px;
  letter-spacing:.4px;
  color:var(--ink);
  margin:48px 0 0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
}
.manifesto-sign::before{
  content:"";
  width:48px;height:1px;
  background:var(--accent);
}
.manifesto-sign sup{
  font-size:.55em;
  vertical-align:.5em;
  letter-spacing:0;
  font-style:italic;
  margin:0 .15em 0 -.05em;
  text-transform:lowercase;
  line-height:0;
  position:relative;
  top:-.15em;
}
.manifesto-sign .amp{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:2em;
  color:var(--accent);
  margin:0 .25em;
  vertical-align:-.18em;
  line-height:0;
}
@media (max-width:880px){
  .manifesto-section{padding:88px 0}
  .manifesto-text{font-size:32px;letter-spacing:-.4px}
}

/* ============================================================
   PARCOURIR — Bloc unifié
   ============================================================ */
.browse-unified{
  padding:96px 0 104px;
  background:var(--paper-2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.browse-header{
  margin:0 0 64px;
  max-width:880px;
}
.browse-header .section-mini{margin-bottom:14px}
.browse-header .section-title{
  margin:0 0 18px;
}
.browse-header .section-title em{font-style:italic;color:var(--ink);font-weight:400}
.browse-lede{
  font-family:var(--serif);
  font-size:19px;
  line-height:1.55;
  color:var(--ink-soft);
  margin:0;
  font-weight:400;
}
.browse-sub{
  margin-bottom:56px;
}
.browse-sub:last-child{margin-bottom:0}
.sub-rule{
  display:flex;
  align-items:baseline;
  gap:16px;
  margin:0 0 28px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.sub-num{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:18px;
  color:var(--accent);
  letter-spacing:.5px;
  min-width:24px;
}
.sub-label{
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:13px;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--ink);
}
.sub-line{flex:1}

/* Legacy aliases — kept so old rules still apply */
.browse-section{position:relative}
.browse-section .bg-rosace{display:none}

.browse-card{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:0;
  border:1px solid var(--ink);
  background:#fff;
  position:relative;
  overflow:hidden;
  min-height:340px;
}
@media (max-width:880px){.browse-card{grid-template-columns:1fr}}
.browse-card-left{
  padding:48px 44px;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  background:var(--paper-2);
}
@media (max-width:880px){.browse-card-left{border-right:none;border-bottom:1px solid var(--line)}}
.browse-card-left .bcl-rosace{
  position:absolute;
  right:-100px;top:50%;
  transform:translateY(-50%);
  width:280px;height:280px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.05;
  filter:grayscale(1);
  pointer-events:none;
}
.browse-card-left h3{
  font-family:var(--serif);
  font-size:38px;
  font-weight:400;
  margin:0 0 14px;
  letter-spacing:-.5px;
  line-height:1.1;
  color:var(--ink);
}
.browse-card-left h3 em{font-style:italic}
.browse-card-left p{
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink-soft);
  line-height:1.5;
  margin:0;
  max-width:340px;
}
.browse-card-right{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
}
@media (max-width:520px){.browse-card-right{grid-template-columns:1fr}}
.browse-juris{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink);
  transition:background .25s, padding .35s ease;
  position:relative;
  cursor:pointer;
}
.browse-juris:nth-child(2n){border-right:none}
.browse-juris:nth-last-child(-n+2){border-bottom:none}
.browse-juris:hover{background:var(--paper-2);padding-left:32px}
.browse-juris .arr{
  font-size:14px;
  color:var(--ink-light);
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .3s, transform .3s, color .25s;
}
.browse-juris:hover .arr{opacity:1;transform:translateX(0);color:var(--accent)}

/* Liste juridictions — épurée, type sommaire */
.juris-list{
  position:relative;
  border-top:1px solid var(--ink);
}
.juris-row{
  display:grid;
  grid-template-columns:60px 1fr auto 40px;
  gap:32px;
  align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--line);
  transition:padding .35s ease;
  cursor:pointer;
}
.juris-row:hover{padding-left:14px}
.juris-row .num{
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  color:var(--ink-light);
  font-feature-settings:"lnum";
}
.juris-row .name{
  font-family:var(--serif);
  font-size:30px;
  font-weight:400;
  color:var(--ink);
  letter-spacing:-.3px;
  line-height:1.15;
}
.juris-row .name-ar{
  font-family:var(--arabic);
  font-size:18px;
  color:var(--ink-soft);
  direction:rtl;
  text-align:right;
  font-weight:400;
}
.juris-row .arrow{
  font-family:var(--serif);
  font-size:24px;
  color:var(--ink);
  transform:translateX(0);
  transition:transform .35s ease, color .25s;
  text-align:right;
  justify-self:end;
}
.juris-row:hover .arrow{transform:translateX(8px);color:var(--accent)}

@media (max-width:760px){
  .juris-row{grid-template-columns:40px 1fr 30px;gap:16px}
  .juris-row .name-ar{display:none}
  .juris-row .name{font-size:22px}
}

/* ============================================================
   PARCOURIR — Index (3 cartes minimalistes)
   ============================================================ */
.indices-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:1px solid var(--ink);
  background:#fff;
}
  gap:0;
  border-top:1px solid var(--ink);
  border-left:1px solid var(--line);
}
.index-card:first-child{border-left:none}
@media (max-width:880px){
  .indices-grid{grid-template-columns:1fr}
  .index-card{border-left:none;border-top:1px solid var(--line)}
  .index-card:first-child{border-top:none}
}
.index-card{
  background:transparent;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:48px 36px 40px;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:background .35s;
  min-height:320px;
}
.index-card:hover{background:#fff}
.index-card .ic-num{
  font-family:var(--serif);
  font-style:italic;
  font-size:42px;
  color:var(--ink);
  line-height:1;
  margin-bottom:32px;
  position:relative;
  display:inline-block;
}
.index-card .ic-num::after{
  content:"";
  position:absolute;
  left:0;bottom:-10px;
  width:0;height:1px;
  background:var(--accent);
  transition:width .4s ease;
}
.index-card:hover .ic-num::after{width:48px}
.index-card .ic-title{
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
  color:var(--ink);
  margin:0 0 10px;
  letter-spacing:-.2px;
}
.index-card .ic-desc{
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink-soft);
  margin:0 0 24px;
  flex:1;
  line-height:1.5;
  font-weight:400;
}
.index-card .ic-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:500;
}
.index-card .ic-cta .arr{transition:transform .35s ease}
.index-card:hover .ic-cta .arr{transform:translateX(6px)}

/* ============================================================
   DERNIÈRES PUBLICATIONS — liste minimale
   ============================================================ */
#the-decisions-wrapper{
  padding:88px 0;
  background:#fff;
}
.decisions-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:64px;
  flex-wrap:wrap;
}
.decisions-header .heading{flex:1;min-width:280px}
.decisions-header .meta{
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  color:var(--ink-soft);
}
.decisions-header .meta .nbredecision{
  color:var(--ink);
  font-weight:500;
  font-style:normal;
  font-family:var(--sans);
  letter-spacing:.5px;
  font-size:14px;
}

.decisions-list{
  border-top:1px solid var(--ink);
}
.decision-item{
  display:grid;
  grid-template-columns:120px 1fr 200px;
  gap:40px;
  padding:36px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
  transition:padding .35s;
  cursor:pointer;
}
.decision-item:hover{padding-left:14px}
@media (max-width:880px){
  .decision-item{grid-template-columns:1fr;gap:14px;padding:28px 0}
  .decision-item:hover{padding-left:0}
}
.decision-ref .ref-num{
  display:block;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:1.5px;
  color:var(--ink-light);
  text-transform:uppercase;
  font-weight:500;
}
.decision-ref .ref-date{
  display:block;
  margin-top:8px;
  font-family:var(--serif);
  font-size:22px;
  color:var(--ink);
  font-weight:400;
  letter-spacing:-.3px;
}
.decision-ref .ref-day{
  font-family:var(--sans);
  font-size:10.5px;
  color:var(--ink-light);
  letter-spacing:1.5px;
  text-transform:uppercase;
  display:block;
  margin-top:4px;
}
.decision-body .juris-tag{
  display:inline-block;
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--ink-soft);
  font-weight:500;
  margin-bottom:14px;
}
.decision-body .title{
  font-family:var(--serif);
  font-size:26px;
  font-weight:400;
  color:var(--ink);
  line-height:1.25;
  margin:0 0 12px;
  letter-spacing:-.3px;
  display:block;
  transition:color .25s;
}
.decision-body .title:hover{color:var(--accent)}
.decision-body .resume{
  font-family:var(--serif);
  font-size:16px;
  line-height:1.55;
  color:var(--ink-soft);
  margin:0 0 14px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-weight:400;
}
.decision-body .themes{display:flex;flex-wrap:wrap;gap:14px}
.decision-body .themes a,
.decision-body .themes span{
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:15px;
  color:var(--ink);
  letter-spacing:.2px;
  position:relative;
  padding-bottom:1px;
  border-bottom:1px solid var(--line-2);
  transition:border-color .2s, color .25s;
}
.decision-body .themes a:hover,
.decision-body .themes span:hover{color:var(--accent);border-bottom-color:var(--accent)}

.decision-aside{
  text-align:right;
  padding-top:6px;
}
@media (max-width:880px){.decision-aside{text-align:left}}
.decision-aside .court{
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  color:var(--ink-soft);
  display:block;
  margin-bottom:14px;
}
.decision-aside .read{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--sans);
  font-size:10.5px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:500;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
}
.decision-aside .read .arr{transition:transform .25s}
.decision-aside .read:hover .arr{transform:translateX(4px)}

.decisions-footer{
  margin-top:64px;
  display:flex;
  justify-content:center;
}
.see-all-btn{
  display:inline-flex;
  align-items:center;
  gap:16px;
  padding:20px 36px;
  background:transparent;
  color:var(--ink);
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid var(--ink);
  transition:background .25s, color .25s, gap .25s;
}
.see-all-btn:hover{background:var(--ink);color:#fff;gap:22px}
.see-all-btn .arr{transition:transform .25s}

/* ============================================================
   FOOTER
   ============================================================ */
#the-footer-wrapper{
  background:var(--ink);
  color:rgba(255,255,255,.7);
  padding:80px 0 36px;
  position:relative;
  overflow:hidden;
}
#the-footer-wrapper .bg-rosace{
  position:absolute;
  right:-300px;top:-200px;
  width:720px;height:720px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.04;
  filter:grayscale(1) invert(1);
  pointer-events:none;
}
.footer-top{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:32px;
  position:relative;
}
@media (max-width:800px){.footer-top{grid-template-columns:1fr 1fr;gap:32px}}
.footer-brand .ft-name{
  font-family:var(--hatton);
  font-size:30px;
  font-weight:500;
  color:#fff;
  display:block;
  margin-bottom:18px;
  letter-spacing:-.3px;
}
.footer-brand .ft-name .dot-ma{color:var(--accent);font-style:italic}
.footer-brand p{
  font-family:var(--hatton);
  font-style:italic;
  font-weight:300;
  font-size:17px;
  color:rgba(255,255,255,.65);
  line-height:1.55;
  margin:0;
  max-width:340px;
}
.footer-col h4{
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
  font-weight:500;
  margin:0 0 20px;
}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:12px}
.footer-col a{
  font-size:14px;
  color:#fff;
  font-family:var(--sans);
  position:relative;
}
.footer-col a::after{
  content:"";
  position:absolute;
  left:0;bottom:-2px;
  width:0;height:1px;
  background:#fff;
  transition:width .3s;
}
.footer-col a:hover::after{width:100%}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  font-size:12px;
  color:rgba(255,255,255,.5);
  font-family:var(--sans);
  position:relative;
}
.footer-bottom a{color:rgba(255,255,255,.7)}
.footer-bottom a:hover{color:#fff}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  #the-hero-text h1{font-size:54px}
  .section-title{font-size:38px;margin-bottom:36px}
  #the-hero-wrapper{padding:80px 0 70px}
  .hero-rosace{right:-340px;width:580px;height:580px}
}
@media (max-width:640px){
  #the-hero-text h1{font-size:38px}
  .hero-lede{font-size:18px}
  .partners{display:none}
  .logo-row{justify-content:center}
  #the-main-nav .is-wrapper{flex-direction:column}
  .main-nav-link{padding:13px 14px;font-size:10px;letter-spacing:1.2px}
  .browse-unified,#the-decisions-wrapper{padding:72px 0}
  .browse-header{margin-bottom:48px}
  .browse-sub{margin-bottom:40px}
}

/* ============================================================
   DÉCISION — Page de lecture éditoriale
   ============================================================ */

/* Fil d'Ariane */
.breadcrumb-bar{
  border-bottom:1px solid var(--line);
  background:#fff;
  padding:18px 0;
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
}
.breadcrumb-bar a{
  color:var(--ink-muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .25s, color .25s;
}
.breadcrumb-bar a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.breadcrumb-bar .sep{margin:0 12px;color:var(--line-2)}
.breadcrumb-bar .current{color:var(--ink);font-weight:600}

/* Layout document */
.decision-doc{
  background:#fff;
  padding:88px 0 120px;
  position:relative;
  overflow:hidden;
}
.decision-doc::before{
  content:"";
  position:absolute;
  top:88px;
  right:-280px;
  width:560px;height:560px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.04;
  pointer-events:none;
}
.decision-doc .is-wrapper{
  position:relative;
  z-index:2;
  max-width:1100px;
}

/* Header de décision */
.dec-header{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:48px;
  align-items:start;
  margin-bottom:64px;
  padding-bottom:48px;
  border-bottom:1px solid var(--line);
}
.dec-num{
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  color:var(--accent);
  letter-spacing:.5px;
  padding-top:14px;
  position:relative;
}
.dec-num::after{
  content:"";
  display:block;
  width:1px;
  height:60px;
  background:var(--accent);
  margin-top:18px;
  margin-left:8px;
}
.dec-num strong{
  display:block;
  font-style:normal;
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  margin-bottom:6px;
}
.dec-eyebrow{
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  margin:0 0 24px;
  display:flex;
  align-items:center;
  gap:14px;
}
.dec-eyebrow .pill{
  display:inline-block;
  padding:5px 11px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:#fff;
  letter-spacing:1.2px;
  font-size:10px;
}
.dec-eyebrow .juris{color:var(--ink)}
.dec-eyebrow .city{color:var(--ink-soft);font-style:italic;text-transform:none;letter-spacing:.3px;font-family:var(--serif);font-size:14px}
.dec-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:42px;
  line-height:1.18;
  letter-spacing:-.4px;
  color:var(--ink);
  margin:0 0 28px;
  text-wrap:pretty;
  max-width:880px;
}
.dec-title em{
  font-style:italic;
  color:var(--accent);
  font-weight:400;
}
.dec-actions{
  display:flex;
  gap:8px;
  margin-top:8px;
}
.dec-action{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  border:1px solid var(--line);
  background:#fff;
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--ink-soft);
  text-decoration:none;
  font-weight:500;
  transition:all .25s;
}
.dec-action:hover{
  border-color:var(--ink);
  color:var(--ink);
}
.dec-action svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.5}

/* Bandeau métadonnées — colophon de livre */
.dec-colophon{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  margin-bottom:64px;
  background:#fff;
  align-items:stretch;
}
.dec-colophon .field{
  padding:22px 22px 24px;
  border-right:1px solid var(--line-2);
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:120px;
  overflow:visible;
}
.dec-colophon .field:last-child{border-right:none}
.dec-colophon .label{
  font-family:var(--hatton);
  font-size:10px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  margin:0;
  line-height:1;
}
.dec-colophon .value{
  font-family:var(--serif);
  font-size:20px;
  color:var(--ink);
  font-weight:400;
  line-height:1.25;
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0;
}
.dec-colophon .value.is-num{
  font-variant-numeric:tabular-nums;
  letter-spacing:.5px;
}
.dec-colophon .value .small{
  display:block;
  font-size:13px;
  color:var(--ink-soft);
  font-style:italic;
  margin-top:6px;
  line-height:1.3;
  font-variant-numeric:normal;
  letter-spacing:0;
}

/* Sections du document : abstract, résumé, texte intégral */
.dec-section{
  margin-bottom:80px;
  display:grid;
  grid-template-columns:140px 1fr;
  gap:48px;
  align-items:start;
}
.dec-section-label{
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  padding-top:8px;
  position:sticky;
  top:24px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.dec-section-label .roman{
  font-family:var(--serif);
  font-style:italic;
  font-size:24px;
  color:var(--accent);
  letter-spacing:0;
  text-transform:none;
  font-weight:400;
  line-height:1;
}

/* Abstract — thème + mots-clés */
.dec-abstract h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:28px;
  margin:0 0 32px;
  color:var(--ink);
  letter-spacing:-.2px;
}
.abs-block{margin-bottom:28px}
.abs-block:last-child{margin-bottom:0}
.abs-label{
  font-family:var(--hatton);
  font-size:10px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  margin:0 0 12px;
}
.abs-themes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.abs-themes a{
  display:inline-block;
  padding:7px 14px;
  border:1px solid var(--ink);
  background:#fff;
  color:var(--ink);
  font-family:var(--serif);
  font-size:15px;
  font-style:italic;
  text-decoration:none;
  transition:all .25s;
}
.abs-themes a:hover{
  background:var(--ink);
  color:#fff;
}
.abs-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  font-family:var(--sans);
  font-size:13px;
  line-height:1.6;
  color:var(--ink-soft);
}
.abs-tags a{
  color:var(--ink-soft);
  text-decoration:none;
  border-bottom:1px solid var(--line-2);
  padding-bottom:1px;
  transition:all .25s;
}
.abs-tags a:hover{
  color:var(--accent);
  border-bottom-color:var(--accent);
}
.abs-source{
  font-family:var(--serif);
  font-size:17px;
  color:var(--ink);
  font-style:italic;
}

/* Résumé en français — texte éditorial avec drop-cap */
.dec-resume p{
  font-family:var(--serif);
  font-size:20px;
  line-height:1.6;
  color:var(--ink);
  margin:0 0 18px;
  text-align:justify;
  hyphens:auto;
  text-wrap:pretty;
}
.dec-resume p:first-child::first-letter{
  font-family:var(--serif);
  font-size:78px;
  font-weight:500;
  float:left;
  line-height:.85;
  margin:8px 14px 0 0;
  color:var(--accent);
  font-style:italic;
}

/* Texte intégral — RTL arabe */
.dec-fulltext{
  background:var(--paper-2);
  padding:48px 56px;
  border-right:3px solid var(--accent);
  position:relative;
}
.dec-fulltext-inner{
  direction:rtl;
  text-align:justify;
  font-family:"Noto Naskh Arabic", "Times New Roman", serif;
  font-size:18px;
  line-height:2;
  color:var(--ink);
  position:relative;
}
.dec-fulltext-inner p{margin:0 0 16px}
.dec-fulltext-toggle{
  margin-top:24px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:none;
  border:none;
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--ink);
  cursor:pointer;
  padding:0;
  font-weight:500;
  border-bottom:1px solid var(--ink);
  padding-bottom:4px;
  transition:color .25s, border-color .25s;
}
.dec-fulltext-toggle:hover{color:var(--accent);border-color:var(--accent)}

/* Décisions liées */
.dec-related{
  border-top:1px solid var(--ink);
  padding:64px 0 0;
  margin-top:24px;
}
.dec-related-header{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:40px;
}
.dec-related h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:32px;
  margin:0;
  letter-spacing:-.3px;
}
.dec-related h2 em{
  font-style:italic;
  color:var(--accent);
}
.dec-related .meta-link{
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--ink-soft);
  text-decoration:none;
  border-bottom:1px solid var(--line);
  padding-bottom:3px;
  font-weight:500;
}
.dec-related .meta-link:hover{color:var(--ink);border-color:var(--ink)}
.related-list{display:flex;flex-direction:column}
.related-item{
  display:grid;
  grid-template-columns:130px 1fr 80px;
  gap:32px;
  padding:28px 0;
  border-top:1px solid var(--line);
  text-decoration:none;
  color:inherit;
  align-items:start;
  transition:background .25s;
}
.related-item:last-child{border-bottom:1px solid var(--line)}
.related-item:hover{background:var(--paper-2)}
.related-item:hover .rel-arr{transform:translateX(4px);color:var(--accent)}
.rel-num{
  font-family:var(--hatton);
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  padding-top:6px;
}
.rel-num strong{
  display:block;
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  color:var(--accent);
  letter-spacing:0;
  text-transform:none;
  font-weight:400;
  margin-top:4px;
}
.rel-body .rel-juris{
  font-family:var(--hatton);
  font-size:10px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  display:block;
  margin-bottom:8px;
}
.rel-body .rel-title{
  font-family:var(--serif);
  font-size:19px;
  line-height:1.35;
  color:var(--ink);
  display:block;
  text-wrap:pretty;
}
.rel-body .rel-themes{
  display:flex;
  gap:14px;
  margin-top:10px;
  font-family:var(--sans);
  font-size:12px;
  color:var(--ink-soft);
  font-style:italic;
}
.rel-arr{
  font-family:var(--serif);
  font-size:22px;
  text-align:right;
  padding-top:6px;
  color:var(--ink-soft);
  transition:transform .3s, color .3s;
}

/* ============================================================
   ACCORDÉON — pattern réutilisable
   ============================================================ */
.acc{
  display:flex;
  flex-direction:column;
}
.acc-item{
  position:relative;
  border-top:1px solid var(--line);
  overflow:hidden;
}
.acc-item:last-child{border-bottom:1px solid var(--line)}
.acc-item::after{
  content:"";
  position:absolute;
  top:0;left:0;
  height:3px;
  max-width:0;
  width:100%;
  background:var(--accent);
  transition:max-width .55s cubic-bezier(.25,1,.3,1);
  pointer-events:none;
}
.acc-item:hover::after,
.acc-item.is-open::after{max-width:100%}
.acc-head{
  width:100%;
  background:none;
  border:none;
  padding:26px 8px 26px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  cursor:pointer;
  text-align:left;
  font-family:inherit;
  color:var(--ink);
}
.acc-head-text{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:0;
}
.acc-head-eyebrow{
  font-family:var(--hatton);
  font-size:10px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
  display:flex;
  align-items:center;
  gap:10px;
}
.acc-head-eyebrow .roman{
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  color:var(--accent);
  letter-spacing:0;
  text-transform:none;
  font-weight:400;
}
.acc-head-title{
  font-family:var(--serif);
  font-size:24px;
  font-weight:400;
  line-height:1.2;
  color:var(--ink);
  letter-spacing:-.2px;
}
.acc-head-title em{font-style:italic;color:var(--accent)}
.acc-icon{
  flex-shrink:0;
  width:28px;height:28px;
  position:relative;
  border:1px solid var(--ink);
  border-radius:50%;
  transition:background .3s, border-color .3s;
}
.acc-item.is-open .acc-icon{
  background:var(--accent);
  border-color:var(--accent);
}
.acc-icon::before,
.acc-icon::after{
  content:"";
  position:absolute;
  top:50%;left:50%;
  background:var(--ink);
  transition:background .3s, transform .45s cubic-bezier(.55,.05,.25,1);
}
.acc-item.is-open .acc-icon::before,
.acc-item.is-open .acc-icon::after{background:#fff}
/* horizontal bar */
.acc-icon::before{
  width:12px;height:1.5px;
  transform:translate(-50%,-50%);
}
/* vertical bar */
.acc-icon::after{
  width:1.5px;height:12px;
  transform:translate(-50%,-50%);
}
.acc-item.is-open .acc-icon::after{
  transform:translate(-50%,-50%) scaleY(0);
}
.acc-body{
  height:0;
  overflow:hidden;
  transition:height .7s cubic-bezier(.25,1,.3,1);
}
.acc-body-inner{
  padding:8px 0 36px;
}
@media (max-width:720px){
  .acc-head{padding:20px 0}
  .acc-head-title{font-size:20px}
}

/* Responsive page décision */
@media (max-width:980px){
  .dec-header{grid-template-columns:1fr;gap:24px}
  .dec-num{padding-top:0}
  .dec-num::after{display:none}
  .dec-title{font-size:32px}
  .dec-colophon{grid-template-columns:1fr 1fr}
  .dec-colophon .field{border-right:none;border-bottom:1px solid var(--line)}
  .dec-colophon .field:nth-child(odd){border-right:1px solid var(--line)}
  .dec-section{grid-template-columns:1fr;gap:20px}
  .dec-section-label{position:static;flex-direction:row;align-items:baseline;gap:14px}
  .dec-fulltext{padding:32px 24px}
  .dec-fulltext-inner{font-size:16px}
  .dec-resume p{font-size:18px}
  .related-item{grid-template-columns:80px 1fr 40px;gap:18px}
}

/* === INDEX ALPHABETIQUE === */
/* ============================================================
   INDEX ALPHABÉTIQUE — page spécifique
   ============================================================ */

/* Bandeau lettres collant — alphabet en sticky sous la nav */
.alpha-rail{
  position:sticky; top:64px; z-index:3;
  background:#fff; border-bottom:1px solid var(--line);
  padding:14px 0;
}
.alpha-rail .ar-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:18px;
}
.alpha-rail .ar-letters{
  display:flex; flex-wrap:wrap; gap:2px;
  flex:1;
}
.alpha-rail .ar-letter{
  width:32px; height:32px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:16px; font-weight:500;
  color:var(--ink-soft); cursor:pointer; user-select:none;
  border:1px solid transparent;
  transition:color .2s, background .2s, border-color .2s;
  text-decoration:none;
}
.alpha-rail .ar-letter:hover{color:var(--ink);background:var(--paper-2)}
.alpha-rail .ar-letter.is-empty{color:var(--line-2);cursor:default;pointer-events:none}
.alpha-rail .ar-letter.is-current{
  background:var(--accent); color:#fff; font-weight:600;
}
.alpha-rail .ar-counter{
  font-family:var(--serif); font-style:italic; font-size:15px;
  color:var(--ink-soft); white-space:nowrap;
}
.alpha-rail .ar-counter strong{
  font-family:var(--sans); font-style:normal; font-weight:500;
  font-size:13px; letter-spacing:.5px; color:var(--ink);
}

/* Filtre / search inline */
.alpha-search-bar{
  background:var(--paper-2); padding:48px 0;
  border-bottom:1px solid var(--line);
}
.alpha-search-bar .asb-inner{
  display:grid; grid-template-columns:1fr auto auto; gap:0;
  align-items:stretch; max-width:880px;
}
.alpha-search-bar input[type="text"]{
  height:64px; border:1px solid var(--ink); background:#fff;
  padding:8px 22px; font-family:var(--serif); font-size:20px;
  font-style:italic; outline:none; color:var(--ink);
  width:100%;
}
.alpha-search-bar input::placeholder{color:var(--ink-light)}
.alpha-search-bar .asb-toggle{
  display:flex; align-items:center; gap:0;
  border:1px solid var(--ink); border-left:none; background:#fff;
}
.alpha-search-bar .asb-toggle button{
  padding:0 22px; height:62px; background:transparent; border:none; cursor:pointer;
  font-family:var(--sans); font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--ink-soft); transition:background .25s, color .25s;
}
.alpha-search-bar .asb-toggle button.is-active{background:var(--ink);color:#fff}
.alpha-search-bar .asb-toggle button + button{border-left:1px solid var(--line)}
@media (max-width:760px){.alpha-search-bar .asb-inner{grid-template-columns:1fr}.alpha-search-bar .asb-toggle{border-left:1px solid var(--ink);border-top:none}}

/* Corps — lettres et entrées */
.alpha-body{padding:80px 0 120px; background:#fff}
.letter-group{
  display:grid; grid-template-columns:180px 1fr; gap:48px;
  padding:56px 0; border-bottom:1px solid var(--line);
  scroll-margin-top:140px;
}
.letter-group:first-child{padding-top:0}
.letter-group:last-child{border-bottom:none}
@media (max-width:760px){.letter-group{grid-template-columns:1fr;gap:24px;padding:36px 0}}
.lg-letter{
  font-family:var(--hatton); font-style:italic; font-weight:500;
  font-size:180px; line-height:.85; color:var(--ink);
  position:relative; padding-top:8px;
}
.lg-letter sup{
  font-family:var(--sans); font-style:normal; font-size:13px;
  letter-spacing:2.4px; text-transform:uppercase; color:var(--accent); font-weight:600;
  position:absolute; top:-44px; right:auto; left:0;
  white-space:nowrap;
  padding-bottom:10px;
}
.lg-letter sup::after{content:"";display:block;width:36px;height:1px;background:var(--accent);margin-top:10px;}
}
@media (max-width:760px){.lg-letter{font-size:96px}.lg-letter sup{position:static;display:block;margin-top:8px;left:0}}

.lg-entries{display:flex;flex-direction:column;gap:0}
.entry{
  display:grid; grid-template-columns:1fr auto auto; gap:24px;
  padding:18px 0; border-bottom:1px solid var(--line);
  align-items:baseline; cursor:pointer;
  transition:padding .25s ease;
}
.entry:hover{padding-left:14px;background:linear-gradient(to right, var(--paper-2), transparent)}
.entry:last-child{border-bottom:none}
.entry .e-fr{
  font-family:var(--serif); font-size:21px; color:var(--ink);
  letter-spacing:-.2px; font-weight:400;
}
.entry .e-fr em{font-style:italic;color:var(--accent);font-weight:500}
.entry .e-ar{
  font-family:var(--arabic); font-size:17px; color:var(--ink-soft);
  direction:rtl; text-align:right; min-width:160px;
}
.entry .e-count{
  font-family:var(--sans); font-size:11px; letter-spacing:1.5px;
  color:var(--ink-light); font-weight:500; min-width:70px; text-align:right;
}
.entry .e-count strong{font-family:var(--serif);font-size:18px;letter-spacing:0;color:var(--ink);font-weight:400;display:block}
@media (max-width:760px){
  .entry{grid-template-columns:1fr;gap:6px}
  .entry .e-ar,.entry .e-count{text-align:left}
}

/* Mode "Mosaïque" — vue alternative compacte */
.alpha-body.mode-mosaique .letter-group{display:block;padding:48px 0}
.alpha-body.mode-mosaique .lg-letter{font-family:var(--hatton);font-style:italic;font-weight:500;font-size:56px;display:inline-block;border-bottom:2px solid var(--accent);padding-bottom:8px;margin-bottom:24px}
.alpha-body.mode-mosaique .lg-letter sup{display:none}
.alpha-body.mode-mosaique .lg-entries{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:0;
}
.alpha-body.mode-mosaique .entry{
  display:flex; flex-direction:column; align-items:flex-start;
  border-right:1px solid var(--line); padding:14px 18px;
  border-bottom:1px solid var(--line);
}
.alpha-body.mode-mosaique .entry:hover{padding-left:24px}
.alpha-body.mode-mosaique .entry .e-fr{font-size:16px}
.alpha-body.mode-mosaique .entry .e-ar{font-size:14px;text-align:left;direction:ltr}
.alpha-body.mode-mosaique .entry .e-count{font-size:10px;text-align:left;margin-top:4px}
.alpha-body.mode-mosaique .entry .e-count strong{display:inline;font-size:11px;font-family:var(--sans);font-weight:600;color:var(--accent)}

/* Top-of-page jump button */
.to-top{
  position:fixed; bottom:32px; right:32px; z-index:6;
  width:52px; height:52px; border-radius:50%;
  background:var(--ink); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .35s, transform .25s;
  font-size:18px;
}
.to-top.is-visible{opacity:1;pointer-events:auto}
.to-top:hover{transform:translateY(-3px)}

/* === INDEX THEMATIQUE === */
/* ============================================================
   INDEX THÉMATIQUE — arborescence dépliante
   Effet signature : accordéons à hauteur animée + glyphe rotatif
   ============================================================ */

.theme-toolbar{
  background:var(--paper-2); padding:32px 0; border-bottom:1px solid var(--line);
  position:sticky; top:64px; z-index:3;
}
.theme-toolbar .tt-inner{
  display:grid; grid-template-columns:1fr auto auto; gap:0;
  align-items:stretch; max-width:980px;
}
.theme-toolbar input{
  height:56px; border:1px solid var(--ink); background:#fff;
  padding:8px 22px; font-family:var(--serif); font-size:18px;
  font-style:italic; outline:none;
}
.theme-toolbar button{
  border:1px solid var(--ink); border-left:none; background:#fff;
  padding:0 22px; height:56px; cursor:pointer;
  font-family:var(--sans); font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--ink-soft);
  transition:background .25s, color .25s;
}
.theme-toolbar button:hover{background:var(--ink);color:#fff}
@media (max-width:640px){.theme-toolbar .tt-inner{grid-template-columns:1fr}.theme-toolbar button{border-left:1px solid var(--ink);border-top:none}}

/* Arborescence */
.themes{padding:64px 0 120px; background:#fff}
.theme-section{
  border-top:1px solid var(--ink);
  padding:0;
}
.theme-section:last-child{border-bottom:1px solid var(--ink)}

.theme-head{
  display:grid; grid-template-columns:80px 1fr auto 60px;
  align-items:center; gap:24px;
  padding:36px 0;
  cursor:pointer; user-select:none;
  transition:padding-left .35s ease;
}
.theme-head:hover{padding-left:14px}
.theme-num{
  font-family:var(--serif); font-style:italic; font-size:28px;
  color:var(--accent); font-weight:400;
}
.theme-name{
  font-family:var(--serif); font-size:42px; font-weight:400;
  letter-spacing:-.4px; color:var(--ink); line-height:1.1;
}
.theme-name em{font-style:italic}
.theme-meta{
  font-family:var(--sans); font-size:11px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--ink-light); font-weight:500;
  text-align:right;
}
.theme-meta strong{display:block;font-family:var(--serif);font-style:italic;font-size:22px;letter-spacing:0;color:var(--ink);font-weight:400;text-transform:none;margin-bottom:2px}
.theme-toggle{
  font-family:var(--serif); font-size:32px; color:var(--ink);
  text-align:right; transition:transform .5s cubic-bezier(.22,.61,.36,1);
  transform:rotate(0deg);
}
.theme-section.is-open .theme-toggle{transform:rotate(45deg);color:var(--accent)}

.theme-body{
  max-height:0; overflow:hidden;
  transition:max-height .65s cubic-bezier(.22,.61,.36,1);
}
.theme-body-inner{padding:0 0 36px 80px}
@media (max-width:760px){
  .theme-head{grid-template-columns:50px 1fr 40px;gap:16px}
  .theme-meta{display:none}
  .theme-name{font-size:28px}
  .theme-num{font-size:20px}
  .theme-body-inner{padding:0 0 28px 50px}
}

/* Sous-thèmes en colonnes */
.subthemes{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:0;
  border-top:1px solid var(--line);
}
@media (max-width:640px){.subthemes{grid-template-columns:1fr}}
.subtheme{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:16px; padding:16px 22px; border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  transition:background .25s, padding-left .25s;
  cursor:pointer;
}
.subtheme:nth-child(2n){border-right:none}
.subtheme:hover{background:var(--paper-2);padding-left:32px}
.subtheme .st-name{
  font-family:var(--serif); font-size:18px; color:var(--ink);
  letter-spacing:-.1px; line-height:1.3;
}
.subtheme .st-ar{
  font-family:var(--arabic); font-size:14px; color:var(--ink-soft);
  display:block; margin-top:4px;
}
.subtheme .st-count{
  font-family:var(--sans); font-size:11px; letter-spacing:.5px;
  color:var(--accent); font-weight:500; white-space:nowrap;
  padding-top:4px;
}

/* Apparition au scroll */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease}
.fade-in.is-visible{opacity:1;transform:translateY(0)}

/* === INDEX LEGISLATIF === */
.leg-toolbar{position:sticky;top:64px;z-index:3;background:#fff;border-bottom:1px solid var(--line);padding:24px 0}
.leg-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.leg-search{flex:1;min-width:240px;height:48px;border:1px solid var(--ink);background:#fff;padding:0 18px;font-family:var(--serif);font-style:italic;font-size:16px;outline:none}
.chip{
  font-family:var(--sans);font-size:11px;letter-spacing:1.8px;text-transform:uppercase;
  font-weight:500;color:var(--ink);background:transparent;border:1px solid var(--line-2);
  padding:11px 18px;cursor:pointer;transition:all .25s; position:relative; overflow:hidden;
}
.chip span{position:relative;z-index:2}
.chip::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .35s cubic-bezier(.22,.61,.36,1);z-index:1}
.chip:hover::before{transform:translateY(0)}
.chip:hover{color:#fff;border-color:var(--ink)}
.chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip.is-active::before{transform:translateY(0)}

.leg-body{padding:64px 0 120px;background:#fff}
.leg-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:64px}
@media (max-width:760px){.leg-stats{grid-template-columns:repeat(2,1fr)}}
.leg-stat{padding:28px 24px;border-right:1px solid var(--line);position:relative;overflow:hidden;cursor:default}
.leg-stat:last-child{border-right:none}
.leg-stat::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--accent);transition:width .6s cubic-bezier(.22,.61,.36,1)}
.leg-stat:hover::after{width:100%}
.leg-stat .ls-num{font-family:var(--serif);font-size:48px;font-weight:400;line-height:1;color:var(--ink)}
.leg-stat .ls-num em{font-style:italic;color:var(--accent)}
.leg-stat .ls-lab{font-family:var(--sans);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-light);margin-top:10px;font-weight:500}

/* Tableau */
.leg-table{display:grid;grid-template-columns:120px 1fr 220px 120px;gap:0}
.leg-table-head{display:contents}
.leg-table-head > div{font-family:var(--sans);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-light);padding:14px 18px;border-bottom:1px solid var(--ink);font-weight:500}
.leg-row{display:contents}
.leg-row > a, .leg-row > div{
  padding:24px 18px; border-bottom:1px solid var(--line);
  font-family:var(--serif); font-size:17px; color:var(--ink);
  display:flex; align-items:center;
  transition:background .3s, transform .3s, padding .3s;
}
.leg-row:hover > a, .leg-row:hover > div{background:var(--paper-2)}
.leg-row .leg-type{font-family:var(--sans);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600}
.leg-row .leg-type span{display:inline-block;padding:6px 10px;border:1px solid var(--ink-light);color:var(--ink-soft)}
.leg-row[data-type="code"] .leg-type span{border-color:var(--accent);color:var(--accent)}
.leg-row[data-type="loi"] .leg-type span{border-color:var(--ink);color:var(--ink);background:var(--ink);color:#fff}
.leg-row .leg-title{flex-direction:column;align-items:flex-start;gap:4px}
.leg-row .leg-title strong{font-weight:500;line-height:1.3}
.leg-row .leg-title small{font-family:var(--sans);font-size:12px;color:var(--ink-light);letter-spacing:.3px}
.leg-row .leg-ref{font-family:var(--sans);font-size:13px;color:var(--ink-soft);letter-spacing:.3px}
.leg-row .leg-cnt{justify-content:flex-end;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--accent)}
.leg-row.is-hidden{display:none}
@media (max-width:760px){
  .leg-table{grid-template-columns:1fr}
  .leg-table-head{display:none}
  .leg-row > a, .leg-row > div{padding:8px 0;border-bottom:none}
  .leg-row{display:flex;flex-direction:column;padding:18px 0;border-bottom:1px solid var(--line)}
}

/* Effet d'apparition */
.fade-in{opacity:0;transform:translateY(18px);transition:opacity .7s, transform .7s}
.fade-in.is-visible{opacity:1;transform:translateY(0)}

/* === A PROPOS === */
/* ============================================================
   À PROPOS — manifeste éditorial, scroll-driven reveals
   ============================================================ */

/* Hero éditorial : citation + signature */
.about-hero{
  background:#fff; padding:120px 0 80px; border-bottom:1px solid var(--line);
  position:relative; overflow:hidden;
}
.about-hero .ah-rosace{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:880px; height:880px; background:var(--rosace) center/contain no-repeat;
  opacity:.04; filter:grayscale(1); pointer-events:none;
}
.about-hero .ah-inner{position:relative;z-index:2;max-width:1080px;margin:0 auto;text-align:center}
.about-hero .ah-eyebrow{
  font-family:var(--sans); font-size:11px; letter-spacing:3px;
  text-transform:uppercase; color:var(--ink-light); font-weight:500;
  margin:0 0 36px; display:flex; align-items:center; gap:14px;
  justify-content:center;
}
.about-hero .ah-eyebrow::before, .about-hero .ah-eyebrow::after{content:"";width:32px;height:1px;background:var(--ink-light)}
.about-hero h1{
  font-family:var(--serif); font-weight:400;
  font-size:84px; line-height:1.05; letter-spacing:-1.4px;
  margin:0 0 32px; color:var(--ink);
}
.about-hero h1 em{font-style:italic;color:var(--accent)}
.about-hero .ah-quote{
  font-family:var(--serif); font-style:italic; font-size:24px; line-height:1.6;
  color:var(--ink-soft); max-width:720px; margin:0 auto 40px;
}
.about-hero .ah-byline{
  font-family:var(--sans); font-size:11px; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--ink); font-weight:500;
}
@media (max-width:760px){.about-hero h1{font-size:48px}.about-hero{padding:64px 0}}

/* Manifeste — typographie editoriale */
.manifesto{padding:120px 0; background:#fff}
.manifesto .m-grid{display:grid;grid-template-columns:200px 1fr;gap:80px}
@media (max-width:760px){.manifesto .m-grid{grid-template-columns:1fr;gap:24px}.manifesto{padding:64px 0}}
.m-label{
  font-family:var(--sans); font-size:10.5px; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--ink-light); font-weight:500;
  position:sticky; top:96px; align-self:start;
}
.m-label::before{content:"";display:block;width:36px;height:1px;background:var(--accent);margin-bottom:14px}
.m-text{max-width:720px}
.m-text p{
  font-family:var(--serif); font-size:24px; line-height:1.55;
  color:var(--ink); margin:0 0 28px; font-weight:400;
  text-align:justify; hyphens:auto; -webkit-hyphens:auto;
}
.m-text p:first-child::first-letter{
  font-family:var(--serif); font-style:italic;
  font-size:96px; line-height:1; float:left;
  color:var(--accent); margin:8px 18px 0 0; padding:0;
}
.m-text p em{font-style:italic;color:var(--accent)}
.m-text strong{font-weight:500;color:var(--ink)}

/* Bannière chiffres clés — défilement horizontal au scroll */
.figures{
  background:var(--ink); color:#fff; padding:120px 0;
  border-top:1px solid var(--ink); border-bottom:1px solid var(--ink);
  position:relative; overflow:hidden;
}
.figures .fig-bg{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:1200px; height:1200px; background:var(--rosace) center/contain no-repeat;
  opacity:.05; filter:grayscale(1) invert(1); pointer-events:none;
}
.figures-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);position:relative;z-index:2}
@media (max-width:760px){.figures-grid{grid-template-columns:repeat(2,1fr)}}
.fig-cell{padding:56px 24px;border-right:1px solid rgba(255,255,255,.15);text-align:center;position:relative;overflow:hidden}
.fig-cell:last-child{border-right:none}
@media (max-width:760px){.fig-cell:nth-child(2n){border-right:none}}
.fig-cell::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;background:var(--accent);transform:translateX(-50%);transition:width 1s cubic-bezier(.22,.61,.36,1)}
.fig-cell.is-visible::after{width:60%}
.fig-num{font-family:var(--serif);font-size:88px;line-height:1;font-weight:400;color:#fff}
.fig-num em{font-style:italic;color:var(--accent)}
.fig-lab{font-family:var(--sans);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:18px;font-weight:500}

/* Timeline — chronologie verticale */
.timeline{padding:120px 0;background:#fff;position:relative}
.timeline h2{
  font-family:var(--serif); font-weight:400; font-size:56px;
  letter-spacing:-.5px; margin:0 0 80px; line-height:1.05;
  text-align:center;
}
.timeline h2 em{font-style:italic;color:var(--accent)}
.tl-track{position:relative;max-width:880px;margin:0 auto;padding:0 0 0 60px}
.tl-track::before{
  content:""; position:absolute; left:0; top:8px; bottom:8px; width:1px;
  background:linear-gradient(to bottom, transparent, var(--ink) 8%, var(--ink) 92%, transparent);
}
.tl-item{position:relative;padding:0 0 64px;opacity:0;transform:translateY(28px);transition:opacity .9s, transform .9s}
.tl-item.is-visible{opacity:1;transform:translateY(0)}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{
  content:""; position:absolute; left:-66px; top:14px;
  width:13px; height:13px; border-radius:50%; background:#fff;
  border:2px solid var(--ink);
  transition:background .35s, transform .35s, border-color .35s;
}
.tl-item.is-visible::before{background:var(--accent);border-color:var(--accent);transform:scale(1.15)}
.tl-year{font-family:var(--serif);font-style:italic;font-size:36px;color:var(--accent);font-weight:400;line-height:1;margin-bottom:14px}
.tl-title{font-family:var(--serif);font-size:26px;font-weight:500;color:var(--ink);margin:0 0 12px;letter-spacing:-.2px}
.tl-text{font-family:var(--serif);font-size:18px;line-height:1.55;color:var(--ink-soft);margin:0;max-width:560px}

/* Citation finale */
.closing{
  background:var(--paper-2); padding:140px 0; border-top:1px solid var(--line);
  text-align:center; position:relative; overflow:hidden;
}
.closing .cl-mark{
  font-family:var(--serif); font-style:italic; font-size:240px;
  line-height:.6; color:var(--accent); opacity:.18; margin-bottom:-40px;
}
.closing blockquote{
  font-family:var(--serif); font-style:italic; font-size:36px; line-height:1.4;
  color:var(--ink); max-width:880px; margin:0 auto 40px; padding:0;
}
.closing cite{
  font-family:var(--sans); font-size:11px; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--ink-soft); font-style:normal; font-weight:500;
}
@media (max-width:760px){.closing blockquote{font-size:24px}.closing{padding:80px 0}}

/* CTA */
.about-cta{padding:96px 0;background:#fff;text-align:center}
.about-cta h3{font-family:var(--serif);font-size:42px;font-weight:400;letter-spacing:-.4px;margin:0 0 32px;color:var(--ink)}
.about-cta h3 em{font-style:italic;color:var(--accent)}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.cta-btns a{
  font-family:var(--sans); font-size:11px; letter-spacing:2.5px; text-transform:uppercase;
  font-weight:500; padding:18px 36px; border:1px solid var(--ink); color:var(--ink);
  position:relative; overflow:hidden;
}
.cta-btns a span{position:relative;z-index:2;transition:color .35s}
.cta-btns a::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .4s cubic-bezier(.22,.61,.36,1);z-index:1}
.cta-btns a:hover::before{transform:translateY(0)}
.cta-btns a:hover span{color:#fff}
.cta-btns a.primary{background:var(--ink);color:#fff}
.cta-btns a.primary::before{background:var(--accent)}

/* Reveal helpers */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .9s ease, transform .9s ease}
.fade-in.is-visible{opacity:1;transform:translateY(0)}

/* === CONTACT === */
/* ============================================================
   CONTACT — formulaire éditorial + cartouche coordonnées
   Effet signature : champs sans bordure, soulignés à la main,
   labels flottants en italique, envoi avec animation de scellage
   ============================================================ */

/* Layout général */
.contact-shell{
  background:#fff; padding:72px 0 120px;
  position:relative; overflow:hidden;
}
.contact-shell .cs-rosace{
  position:absolute; left:-260px; bottom:-260px;
  width:780px; height:780px;
  background:var(--rosace) center/contain no-repeat;
  opacity:.04; filter:grayscale(1); pointer-events:none;
  animation:csrot 320s linear infinite;
}
@keyframes csrot{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.contact-grid{
  display:grid; grid-template-columns:1fr 360px; gap:96px;
  position:relative; z-index:2;
}
@media (max-width:980px){
  .contact-grid{grid-template-columns:1fr; gap:64px}
}

/* Colonne formulaire */
.contact-form-col .cf-eyebrow{
  font-family:var(--sans); font-size:10.5px; letter-spacing:3px;
  text-transform:uppercase; color:var(--ink-light); font-weight:500;
  margin:0 0 18px; display:flex; align-items:center; gap:14px;
}
.contact-form-col .cf-eyebrow::before{content:"";width:24px;height:1px;background:var(--accent)}
.contact-form-col h2{
  font-family:var(--serif); font-weight:400; letter-spacing:-.6px;
  font-size:42px; line-height:1.1; color:var(--ink); margin:0 0 14px;
}
.contact-form-col h2 em{font-style:italic;color:var(--accent)}
.contact-form-col .cf-intro{
  font-family:var(--serif); font-size:18px; line-height:1.55;
  color:var(--ink-soft); max-width:560px; margin:0 0 48px;
}

/* Formulaire */
.cf-form{display:grid; grid-template-columns:1fr 1fr; gap:0 32px}
.cf-row{position:relative; padding:24px 0 16px; border-bottom:1px solid var(--line); transition:border-color .35s}
.cf-row:focus-within{border-bottom-color:var(--ink)}
.cf-row.is-half{grid-column:span 1}
.cf-row.is-full{grid-column:1 / -1}
.cf-row.is-tel{grid-column:1 / -1; display:grid; grid-template-columns:120px 1fr; gap:0 32px}
.cf-row.is-tel .cf-sub{position:relative; padding-bottom:0; border-bottom:none}
.cf-row.is-tel .cf-sub:first-child{border-right:1px solid var(--line); padding-right:24px}
@media (max-width:640px){
  .cf-form{grid-template-columns:1fr}
  .cf-row.is-tel{grid-template-columns:90px 1fr}
}

.cf-label{
  font-family:var(--sans); font-size:10.5px; letter-spacing:2px;
  text-transform:uppercase; color:var(--ink-light); font-weight:500;
  display:block; margin-bottom:8px; transition:color .35s;
}
.cf-row:focus-within .cf-label{color:var(--accent)}
.cf-label .req{color:var(--accent); margin-left:4px}

.cf-input, .cf-textarea{
  width:100%; border:none; background:transparent; outline:none;
  font-family:var(--serif); font-size:22px; color:var(--ink);
  padding:6px 0 4px; resize:none;
  letter-spacing:-.1px;
}
.cf-input::placeholder, .cf-textarea::placeholder{
  color:var(--ink-light); font-style:italic; opacity:.7;
}
.cf-textarea{font-size:19px; line-height:1.55; min-height:160px}

/* Indicatif petit */
.cf-row.is-tel .cf-input.is-prefix{
  font-family:var(--sans); font-size:18px; letter-spacing:.5px;
  color:var(--ink); text-align:left;
}

/* Note assistance */
.cf-helper{
  grid-column:1 / -1;
  margin:24px 0 8px; padding:18px 22px;
  background:var(--paper-2); border-left:2px solid var(--accent);
  font-family:var(--serif); font-style:italic; font-size:15px;
  color:var(--ink-soft); line-height:1.55;
}
.cf-helper strong{font-style:normal;font-weight:500;color:var(--ink);font-family:var(--sans);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;display:block;margin-bottom:4px}

/* Action */
.cf-actions{
  grid-column:1 / -1; margin-top:48px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  flex-wrap:wrap;
}
.cf-legal{
  font-family:var(--sans); font-size:12px; color:var(--ink-light);
  max-width:420px; line-height:1.55;
}
.cf-legal a{color:var(--ink); text-decoration:underline; text-decoration-color:var(--line-2); text-underline-offset:3px}
.cf-legal a:hover{text-decoration-color:var(--accent)}

.cf-submit{
  font-family:var(--sans); font-size:11px; letter-spacing:2.5px;
  text-transform:uppercase; font-weight:500;
  background:var(--ink); color:#fff; border:1px solid var(--ink);
  padding:22px 42px; cursor:pointer;
  position:relative; overflow:hidden;
  transition:color .45s ease, transform .35s;
  display:inline-flex; align-items:center; gap:18px;
}
.cf-submit::before{
  content:""; position:absolute; inset:0;
  background:var(--accent); transform:translateY(101%);
  transition:transform .45s cubic-bezier(.22,.61,.36,1); z-index:1;
}
.cf-submit > *{position:relative; z-index:2}
.cf-submit:hover::before{transform:translateY(0)}
.cf-submit:hover{transform:translateY(-2px)}
.cf-submit .arrow{font-family:var(--serif); font-style:italic; font-size:18px; letter-spacing:0; text-transform:none}

/* État envoyé */
.cf-form.is-sent .cf-row, .cf-form.is-sent .cf-helper, .cf-form.is-sent .cf-actions{display:none}
.cf-success{
  display:none; grid-column:1 / -1;
  padding:64px 0; text-align:center;
}
.cf-form.is-sent .cf-success{display:block; animation:popIn .8s cubic-bezier(.22,.61,.36,1)}
@keyframes popIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.cf-success .seal{
  width:96px; height:96px; margin:0 auto 24px;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1); opacity:.85;
  animation:sealRot 6s ease-out;
}
@keyframes sealRot{from{transform:rotate(-180deg) scale(.4); opacity:0}to{transform:rotate(0) scale(1); opacity:.85}}
.cf-success h3{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:42px; color:var(--ink); margin:0 0 14px; letter-spacing:-.4px;
}
.cf-success p{
  font-family:var(--serif); font-size:18px; color:var(--ink-soft);
  max-width:480px; margin:0 auto;
}

/* ============================================================
   COLONNE LATÉRALE — coordonnées en cartouche
   ============================================================ */
.contact-side{position:relative}
.cs-card{
  background:var(--ink); color:#fff;
  padding:56px 40px;
  position:relative; overflow:hidden;
}
.cs-card .cs-card-rosace{
  position:absolute; right:-120px; top:-120px; width:360px; height:360px;
  background:var(--rosace) center/contain no-repeat;
  filter:grayscale(1) invert(1); opacity:.06; pointer-events:none;
}
.cs-card-eyebrow{
  font-family:var(--sans); font-size:10px; letter-spacing:2.5px;
  text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:500;
  margin:0 0 18px; position:relative; z-index:2;
}
.cs-card h3{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:32px; line-height:1.15; color:#fff;
  margin:0 0 36px; letter-spacing:-.3px; position:relative; z-index:2;
}
.cs-block{position:relative; z-index:2; padding:22px 0; border-top:1px solid rgba(255,255,255,.12)}
.cs-block:last-child{border-bottom:1px solid rgba(255,255,255,.12)}
.cs-block .cs-lab{
  font-family:var(--sans); font-size:9.5px; letter-spacing:2px;
  text-transform:uppercase; color:rgba(255,255,255,.45); font-weight:500;
  margin-bottom:8px; display:block;
}
.cs-block .cs-val{
  font-family:var(--serif); font-size:19px; color:#fff;
  line-height:1.45; font-weight:400;
}
.cs-block .cs-val a{color:#fff; border-bottom:1px solid rgba(255,255,255,.2); transition:border-color .3s}
.cs-block .cs-val a:hover{border-bottom-color:var(--accent)}
.cs-block .cs-val em{font-style:italic;color:rgba(255,255,255,.7);font-size:15px;display:block;margin-top:4px}

/* Heures discrètes */
.cs-hours{
  margin-top:36px; padding:24px 0 0;
  border-top:1px solid rgba(255,255,255,.12);
  font-family:var(--serif); font-style:italic; font-size:14px;
  color:rgba(255,255,255,.6); line-height:1.6; position:relative; z-index:2;
}
.cs-hours strong{
  font-family:var(--sans); font-style:normal; font-weight:500;
  font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:#fff; display:block; margin-bottom:8px;
}

/* Mini-bandeau "autres voies" sous le formulaire */
.alt-channels{
  background:var(--paper-2); padding:80px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.alt-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  border-top:1px solid var(--ink); border-left:1px solid var(--ink);
}
@media (max-width:760px){.alt-grid{grid-template-columns:1fr}}
.alt-cell{
  padding:40px 32px;
  border-right:1px solid var(--ink); border-bottom:1px solid var(--ink);
  background:#fff; position:relative; overflow:hidden;
  cursor:pointer; transition:background .4s;
}
.alt-cell::before{
  content:""; position:absolute; inset:0;
  background:var(--ink); transform:translateY(101%);
  transition:transform .55s cubic-bezier(.22,.61,.36,1); z-index:1;
}
.alt-cell:hover::before{transform:translateY(0)}
.alt-cell > *{position:relative; z-index:2; transition:color .5s}
.alt-cell:hover > *{color:#fff}
.alt-num{
  font-family:var(--serif); font-style:italic; font-size:14px;
  color:var(--accent); margin-bottom:18px; display:block;
}
.alt-cell:hover .alt-num{color:#fff}
.alt-cell h4{
  font-family:var(--serif); font-size:24px; font-weight:400;
  letter-spacing:-.2px; margin:0 0 10px;
}
.alt-cell h4 em{font-style:italic}
.alt-cell p{
  font-family:var(--sans); font-size:13px; line-height:1.55;
  color:var(--ink-soft); margin:0 0 18px;
}
.alt-cell:hover p{color:rgba(255,255,255,.7)}
.alt-cta{
  font-family:var(--sans); font-size:10.5px; letter-spacing:2px;
  text-transform:uppercase; font-weight:500;
  display:inline-flex; align-items:center; gap:10px;
}
.alt-cta::after{content:"→"; font-family:var(--serif); font-style:italic; font-size:18px; transition:transform .35s}
.alt-cell:hover .alt-cta::after{transform:translateX(6px)}

/* === COMITE SCIENTIFIQUE === */
/* ============================================================
   COMITÉ SCIENTIFIQUE — annuaire éditorial
   Effet signature : portraits monogramme avec parallaxe au hover
   ============================================================ */

/* Charte / Filtres */
.cs-toolbar{
  background:var(--paper-2); padding:32px 0; border-bottom:1px solid var(--line);
  position:sticky; top:64px; z-index:3;
}
.cs-roles{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.role-chip{
  font-family:var(--sans); font-size:11px; letter-spacing:1.8px; text-transform:uppercase;
  font-weight:500; padding:11px 22px; border:1px solid var(--line-2); background:transparent;
  cursor:pointer; color:var(--ink); position:relative; overflow:hidden; transition:color .35s, border-color .35s;
}
.role-chip span{position:relative;z-index:2}
.role-chip::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,.61,.36,1);z-index:1}
.role-chip:hover::before, .role-chip.is-active::before{transform:scaleX(1)}
.role-chip:hover, .role-chip.is-active{color:#fff;border-color:var(--ink)}

/* Grille */
.cs-grid{padding:80px 0 100px;background:#fff}
.cs-grid .grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  border-top:1px solid var(--ink); border-left:1px solid var(--ink);
}
@media (max-width:980px){.cs-grid .grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.cs-grid .grid{grid-template-columns:1fr}}

.member{
  position:relative; padding:48px 36px 40px;
  border-right:1px solid var(--ink); border-bottom:1px solid var(--ink);
  background:#fff; cursor:pointer; overflow:hidden;
  transition:background .5s ease;
}
.member.is-hidden{display:none}
.member::before{
  content:""; position:absolute; left:0; top:0; right:0; bottom:0;
  background:var(--ink); transform:translateY(101%);
  transition:transform .55s cubic-bezier(.22,.61,.36,1);
  z-index:1;
}
.member:hover::before{transform:translateY(0)}

.member-inner{position:relative; z-index:2; transition:color .5s ease}
.member:hover .member-inner{color:#fff}

/* Monogramme — initiales géantes en filigrane qui s'animent */
.member .mono{
  position:absolute; right:18px; top:14px; z-index:1;
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:140px; line-height:.85; color:var(--paper-2);
  pointer-events:none; transition:color .55s ease, transform .8s cubic-bezier(.22,.61,.36,1), opacity .5s;
  letter-spacing:-4px;
}
.member:hover .mono{
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.35);
  transform:translate(-12px, -18px) scale(1.08);
}

.member .role{
  font-family:var(--sans); font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:var(--accent); font-weight:600; margin:0 0 22px; display:flex; align-items:center; gap:10px;
  transition:color .5s ease;
}
.member .role::before{content:"";width:18px;height:1px;background:var(--accent);transition:background .5s, width .35s}
.member:hover .role::before{background:#fff;width:32px}
.member:hover .role{color:#fff}

.member h3{
  font-family:var(--serif); font-size:30px; font-weight:500; line-height:1.1;
  letter-spacing:-.3px; margin:0 0 8px; color:var(--ink);
  transition:color .5s ease;
}
.member:hover h3{color:#fff}
.member h3 em{font-style:italic;font-weight:400}

.member .title{
  font-family:var(--serif); font-style:italic; font-size:16px;
  color:var(--ink-soft); margin:0 0 28px; line-height:1.4;
}
.member:hover .title{color:rgba(255,255,255,.7)}

.member .bio{
  font-family:var(--sans); font-size:13px; line-height:1.6;
  color:var(--ink-soft); margin:0 0 22px;
  max-height:0; opacity:0; overflow:hidden;
  transition:max-height .55s ease, opacity .35s ease, color .5s ease;
}
.member:hover .bio{max-height:200px;opacity:1;color:rgba(255,255,255,.75)}

.member .specs{
  display:flex; flex-wrap:wrap; gap:6px;
}
.member .spec{
  font-family:var(--sans); font-size:10px; letter-spacing:1.2px; text-transform:uppercase;
  font-weight:500; padding:5px 10px; border:1px solid var(--line-2); color:var(--ink-soft);
  transition:border-color .5s, color .5s;
}
.member:hover .spec{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85)}

/* Charte (manifeste comité) */
.cs-charter{
  background:var(--paper-2); padding:120px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.cs-charter .grid{display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start}
@media (max-width:760px){.cs-charter .grid{grid-template-columns:1fr;gap:24px}.cs-charter{padding:64px 0}}
.cs-charter .ch-side{
  font-family:var(--sans); font-size:10.5px; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--ink-light); font-weight:500;
}
.cs-charter .ch-side::before{content:"";display:block;width:36px;height:1px;background:var(--accent);margin-bottom:16px}
.cs-charter h2{
  font-family:var(--serif); font-size:48px; font-weight:400; letter-spacing:-.5px;
  line-height:1.1; margin:0 0 28px;
}
.cs-charter h2 em{font-style:italic;color:var(--accent)}
.cs-charter p{font-family:var(--serif); font-size:20px; line-height:1.55; color:var(--ink-soft); margin:0 0 18px}
.cs-charter ol{counter-reset:art;list-style:none;padding:0;margin:36px 0 0}
.cs-charter ol li{
  counter-increment:art;
  position:relative; padding:24px 0 24px 80px; border-top:1px solid var(--line);
  font-family:var(--serif); font-size:18px; line-height:1.5; color:var(--ink);
}
.cs-charter ol li::before{
  content:"Art. " counter(art); position:absolute; left:0; top:24px;
  font-family:var(--sans); font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:var(--accent); font-weight:600;
}

/* Reveal */
.fade-in{opacity:0;transform:translateY(22px);transition:opacity .8s, transform .8s}
.fade-in.is-visible{opacity:1;transform:translateY(0)}
