/* assets/css/style.css */
/* ==========================================================
   La Ligue des Vampires — Dark Gothique Chic (no light)
   - unités adaptatives: clamp(), min()
   - responsive PC (2 colonnes si besoin), mobile ok mais conçu PC
========================================================== */

:root{
  --bg: #050409;
  --surface: #0b0a10;
  --surface2: #100f18;
  --border: rgba(255,255,255,.08);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.68);
  --blood: #7b0000;
  --blood2:#b10b22;
  --gold: #c8a35c;
  --shadow: 0 12px 40px rgba(0,0,0,.55);

  --radius: clamp(14px, 1.4vw, 22px);
  --pad: min(5rem, 8%);
  --container: min(1200px, 92vw);
  --lh: 1.55;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(123,0,0,.22), transparent 65%),
    radial-gradient(900px 500px at 85% 25%, rgba(200,163,92,.10), transparent 60%),
    linear-gradient(180deg, #050409, #070614 60%, #050409);
  color:var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height: var(--lh);
  overflow-x:hidden;
}

/* Links */
a{ color: rgba(255,255,255,.90); text-decoration:none; }
a:hover{ color:#fff; }

/* Layout */
.container{ width:var(--container); margin-inline:auto; padding: var(--pad) 0; }
.grid{
  display:grid;
  gap: clamp(1rem, 2vw, 2rem);
}
.grid--2{
  grid-template-columns: 1.1fr .9fr;
}
@media (max-width: 900px){
  .grid--2{ grid-template-columns: 1fr; }
}

/* Header */
.siteHeader{
  position: sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(14px);
  background: rgba(5,4,9,.68);
  border-bottom: 1px solid var(--border);
}
.siteHeader__inner{
  width: var(--container);
  margin-inline:auto;
  padding: clamp(.75rem, 1.2vw, 1.1rem) min(2rem, 4vw);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
}
.brand{
  display:flex;
  align-items:center;
  gap: clamp(.6rem, 1vw, 1rem);
}
.brand__sigil{
  width: clamp(2.2rem, 3vw, 2.8rem);
  height: clamp(2.2rem, 3vw, 2.8rem);
  display:grid;
  place-items:center;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(123,0,0,.55), rgba(123,0,0,.15));
  border: 1px solid rgba(177,11,34,.35);
  box-shadow: 0 10px 30px rgba(0,0,0,.5);
}
.brand__name{
  font-size: clamp(1.05rem, 1.4vw, 1.35rem);
  letter-spacing:.04em;
  font-weight: 780;
}
.brand__tag{
  display:block;
  font-size: clamp(.78rem, 1vw, .92rem);
  color: var(--muted);
}

.nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap: clamp(.35rem, .8vw, .8rem);
  align-items:center;
}
.nav__link{
  padding: .45rem .7rem;
  border-radius: 999px;
  border: 1px solid transparent;
  color: rgba(255,255,255,.86);
  font-size: clamp(.86rem, 1vw, .95rem);
}
.nav__link:hover{
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
}

/* Breadcrumb */
.breadcrumb{
  width: var(--container);
  margin-inline:auto;
  padding: .55rem min(2rem, 4vw);
  border-bottom: 1px solid var(--border);
  background: rgba(11,10,16,.40);
}
.breadcrumb ol{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:0;
  padding:0;
  font-size: clamp(.85rem, 1vw, .95rem);
  color: var(--muted);
}
.breadcrumb a{ color: rgba(255,255,255,.78); }
.breadcrumb li::after{
  content:"›";
  opacity:.45;
  margin-inline:.5rem;
}
.breadcrumb li:last-child::after{ content:""; margin:0; }

/* Cards */
.card{
  background: linear-gradient(180deg, rgba(16,15,24,.78), rgba(11,10,16,.58));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(1rem, 2.2vw, 1.6rem);
}
.card--glow{
  position:relative;
  overflow:hidden;
}
.card--glow::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(500px 200px at 20% 10%, rgba(177,11,34,.25), transparent 60%),
              radial-gradient(400px 200px at 90% 20%, rgba(200,163,92,.16), transparent 65%);
  pointer-events:none;
}
.card--glow > *{ position:relative; }

/* Titles */
.h1{
  margin:0 0 .65rem 0;
  font-size: clamp(2rem, 3.7vw, 3.2rem);
  letter-spacing: .03em;
  line-height: 1.1;
}
.h2{
  margin:0 0 .65rem 0;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  letter-spacing:.02em;
}
.lead{
  margin:0;
  color: rgba(255,255,255,.80);
  font-size: clamp(1rem, 1.35vw, 1.15rem);
}

/* Badges / pills */
.pills{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1rem; }
.pill{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: rgba(255,255,255,.85);
  font-size: clamp(.82rem, 1vw, .92rem);
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding: .62rem .95rem;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color:#fff;
  font-weight: 700;
  font-size: clamp(.9rem, 1vw, 1rem);
  cursor:pointer;
}
.btn:hover{ background: rgba(255,255,255,.10); }
.btn--blood{
  border-color: rgba(177,11,34,.38);
  background: linear-gradient(180deg, rgba(177,11,34,.75), rgba(123,0,0,.35));
}
.btn--blood:hover{ filter: brightness(1.08); }
.btn--ghost{ background: transparent; }
.btn:disabled{ opacity:.55; cursor:not-allowed; }

/* Forms */
.field{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin-bottom: .95rem;
}
label{ color: rgba(255,255,255,.82); font-weight: 650; font-size: clamp(.9rem, 1vw, 1rem); }
input, select, textarea{
  border-radius: clamp(12px, 1.2vw, 16px);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  color: var(--text);
  padding: .75rem .85rem;
  font-size: clamp(.95rem, 1vw, 1.02rem);
  outline: none;
}
textarea{ min-height: min(26lvh, 260px); resize: vertical; }
input:focus, select:focus, textarea:focus{
  border-color: rgba(200,163,92,.45);
  box-shadow: 0 0 0 4px rgba(200,163,92,.12);
}

/* Tables / lists */
.hr{ height:1px; background: var(--border); margin: 1rem 0; }
.muted{ color: var(--muted); }
.kpi{
  display:grid;
  gap:.6rem;
  grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (max-width: 600px){
  .kpi{ grid-template-columns: 1fr; }
}
.kpiItem{
  padding: .8rem .9rem;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}
.kpiVal{
  font-size: clamp(1.3rem, 2.3vw, 1.9rem);
  font-weight: 850;
  letter-spacing:.02em;
}
.kpiLbl{ color: var(--muted); font-size: clamp(.85rem, 1vw, .95rem); }

/* Vamp cards */
.vampGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
}
@media (max-width: 980px){ .vampGrid{ grid-template-columns: repeat(2, 1fr);} }
@media (max-width: 620px){ .vampGrid{ grid-template-columns: 1fr;} }

.vampCard img{
  width:100%;
  height: clamp(180px, 20vw, 240px);
  object-fit: cover;
  border-radius: calc(var(--radius) - 6px);
  border: 1px solid rgba(255,255,255,.10);
  display:block;
  filter: saturate(.85) contrast(1.05);
}

/* Footer */
.siteFooter{
  border-top: 1px solid var(--border);
  background: rgba(5,4,9,.75);
}
.siteFooter__inner{
  width: var(--container);
  margin-inline:auto;
  padding: clamp(1.6rem, 3vw, 2.6rem) 0;
}
.footerCols{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: clamp(1rem, 2vw, 2rem);
}
@media (max-width: 900px){
  .footerCols{ grid-template-columns: 1fr; }
}
.footerTitle{
  margin: 0 0 .6rem 0;
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  letter-spacing:.03em;
}
.footerList{ list-style:none; padding:0; margin:0; display:grid; gap:.35rem; }
.footerList a{ color: rgba(255,255,255,.80); }
.footerList a:hover{ color:#fff; }

.footerBottom{
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.toTop{
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color:#fff;
  padding: .35rem .6rem;
  cursor:pointer;
}
.toTop:hover{ background: rgba(255,255,255,.08); }

/* Notices */
.notice{
  padding: .85rem .95rem;
  border-radius: var(--radius);
  border: 1px solid rgba(200,163,92,.25);
  background: rgba(200,163,92,.08);
  color: rgba(255,255,255,.90);
}
.error{
  padding: .85rem .95rem;
  border-radius: var(--radius);
  border: 1px solid rgba(177,11,34,.35);
  background: rgba(177,11,34,.12);
  color: rgba(255,255,255,.92);
}
