/*
Theme Name: Herren der Asche
Theme URI: https://example.com
Author: BES IT Solutions
Description: Individuelles Dark-Theme fuer die Mordheim-Fan-Community "Herren der Asche" - mit Neuigkeiten, Kampagnenkalender und Newsletter.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: herren-der-asche
*/

:root{
  --ink:#0d0c0b;
  --stone:#171513;
  --stone-light:#211e1a;
  --stone-lighter:#2c2822;
  --ash:#d6d0c4;
  --ash-dim:#948c7d;
  --ember:#ff7a45;
  --ember-bright:#ffb083;
  --ember-deep:#8a3418;
  --line:#332e27;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(ellipse at 15% -10%, rgba(255,122,69,0.07), transparent 45%),
    radial-gradient(ellipse at 95% 0%, rgba(255,122,69,0.04), transparent 40%),
    var(--ink);
  color:var(--ash);
  font-family:'Spectral', serif;
  line-height:1.6;
}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

/* ---------- Ember particles ---------- */
.embers{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;}
.ember-particle{
  position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;
  background:var(--ember);box-shadow:0 0 6px 1px var(--ember);
  animation:rise linear infinite;opacity:0;
}
@keyframes rise{
  0%{transform:translateY(0) translateX(0);opacity:0;}
  8%{opacity:.8;}
  90%{opacity:.3;}
  100%{transform:translateY(-100vh) translateX(20px);opacity:0;}
}
@media (prefers-reduced-motion:reduce){
  .embers{display:none;}
}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(13,12,11,0.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1080px;margin:0 auto;gap:20px;}
.logo{
  font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:1.15rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ash);
  text-shadow:0 0 20px rgba(255,122,69,0.25);
  white-space:nowrap;
}
.navlinks{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-family:'JetBrains Mono',monospace;font-size:0.8rem;letter-spacing:0.05em;text-transform:uppercase;}
.navlinks a{text-decoration:none;color:var(--ash-dim);border-bottom:1px solid transparent;padding-bottom:4px;transition:color .2s, border-color .2s;}
.navlinks a:hover, .navlinks a:focus-visible{color:var(--ember-bright);border-color:var(--ember);outline:none;}
.btn-account{
  font-family:'JetBrains Mono',monospace;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;
  padding:9px 16px;border:1px solid var(--ember-deep);color:var(--ember-bright);text-decoration:none;
  transition:background .2s,color .2s,border-color .2s;white-space:nowrap;
}
.btn-account:hover, .btn-account:focus-visible{background:var(--ember);border-color:var(--ember);color:var(--ink);outline:none;}
.navtoggle{display:none;background:none;border:1px solid var(--line);color:var(--ash);font-size:1.2rem;padding:6px 12px;}

/* ---------- Rift divider ---------- */
.rift{
  position:relative;height:30px;
  background:var(--stone);
  clip-path:polygon(
    0% 0%, 4% 100%, 8% 20%, 12% 100%, 16% 10%, 20% 100%, 24% 30%, 28% 100%,
    32% 5%, 36% 100%, 40% 25%, 44% 100%, 48% 15%, 52% 100%, 56% 35%, 60% 100%,
    64% 10%, 68% 100%, 72% 20%, 76% 100%, 80% 5%, 84% 100%, 88% 30%, 92% 100%,
    96% 15%, 100% 100%, 100% 0%
  );
}
.rift::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(255,122,69,0.45), transparent 55%);
  mix-blend-mode:screen;opacity:.45;
}
.rift.flip{transform:scaleY(-1);}

/* ---------- Hero ---------- */
.hero{background:var(--stone);padding:100px 0 76px;position:relative;overflow:hidden;}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--ember);margin:0 0 18px;}
h1.hero-title{
  font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:clamp(2.3rem, 5.2vw, 3.8rem);
  color:var(--ash);letter-spacing:-0.01em;
  margin:0 0 22px;max-width:16ch;
}
.hero p.lead{max-width:52ch;color:var(--ash-dim);font-size:1.08rem;margin:0 0 34px;}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;}
.btn-primary, .btn-ghost{
  font-family:'JetBrains Mono',monospace;font-size:0.82rem;text-transform:uppercase;letter-spacing:0.04em;
  padding:14px 26px;text-decoration:none;border:1px solid transparent;transition:transform .15s, box-shadow .2s, background .2s;
  display:inline-block;
}
.btn-primary{background:var(--ember-deep);color:#fbe9df;}
.btn-primary:hover, .btn-primary:focus-visible{background:var(--ember);color:var(--ink);box-shadow:0 0 26px rgba(255,122,69,0.4);outline:none;}
.btn-ghost{border-color:var(--line);color:var(--ash-dim);}
.btn-ghost:hover, .btn-ghost:focus-visible{border-color:var(--ember);color:var(--ember-bright);outline:none;}

/* ---------- Section shell ---------- */
section.block{padding:70px 0;position:relative;z-index:2;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:36px;flex-wrap:wrap;gap:12px;}
h2.section-title{
  font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.6rem;color:var(--ash);margin:0;
  letter-spacing:-0.005em;
}
.section-note{font-family:'JetBrains Mono',monospace;font-size:0.75rem;color:var(--ash-dim);text-transform:uppercase;letter-spacing:0.05em;}

/* ---------- News ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.news-card{
  background:var(--stone-light);border:1px solid var(--line);padding:22px;
  position:relative;transition:border-color .2s, transform .2s;
}
.news-card::before{
  content:"";position:absolute;top:-1px;left:20px;width:8px;height:8px;
  background:var(--ember);border-radius:50%;box-shadow:0 0 10px rgba(255,122,69,0.7);
}
.news-card:hover{border-color:var(--ember-deep);transform:translateY(-3px);}
.news-date{font-family:'JetBrains Mono',monospace;font-size:0.72rem;color:var(--ember);text-transform:uppercase;letter-spacing:0.05em;}
.news-card h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.1rem;margin:10px 0 10px;color:var(--ash);}
.news-card p{color:var(--ash-dim);font-size:0.94rem;margin:0 0 14px;}
.news-card a.read{font-family:'JetBrains Mono',monospace;font-size:0.75rem;text-transform:uppercase;color:var(--ember-bright);text-decoration:none;border-bottom:1px solid var(--ember-deep);}

/* ---------- Termine ---------- */
.events{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.event-row{
  display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--line);
}
.event-date{font-family:'JetBrains Mono',monospace;color:var(--ember);text-align:left;line-height:1.3;}
.event-date .day{font-size:1.6rem;display:block;color:var(--ash);font-weight:600;}
.event-info h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.05rem;margin:0 0 6px;color:var(--ash);}
.event-info p{margin:0;color:var(--ash-dim);font-size:0.92rem;}
.event-info .slots{font-family:'JetBrains Mono',monospace;font-size:0.72rem;color:var(--ember-bright);text-transform:uppercase;margin-top:6px;display:inline-block;}
.btn-signup{
  font-family:'JetBrains Mono',monospace;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.04em;
  padding:10px 16px;border:1px solid var(--ember-deep);color:var(--ember-bright);text-decoration:none;white-space:nowrap;
  display:flex;align-items:center;gap:8px;transition:background .2s,color .2s;
}
.btn-signup:hover, .btn-signup:focus-visible{background:var(--ember);border-color:var(--ember);color:var(--ink);outline:none;}
.btn-signup.locked{border-color:var(--line);color:var(--ash-dim);}
.btn-signup.locked:hover{background:none;color:var(--ash-dim);cursor:not-allowed;}

/* ---------- Newsletter ---------- */
.newsletter{
  background:var(--stone);border:1px solid var(--line);padding:48px;
  display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;
}
.newsletter h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.5rem;margin:0 0 14px;color:var(--ash);}
.newsletter p{color:var(--ash-dim);margin:0;max-width:42ch;}
.nl-form{display:flex;flex-direction:column;gap:12px;}
.nl-form label{font-family:'JetBrains Mono',monospace;font-size:0.72rem;text-transform:uppercase;color:var(--ash-dim);letter-spacing:0.05em;}
.nl-form input[type=email]{
  background:var(--ink);border:1px solid var(--line);color:var(--ash);
  padding:13px 14px;font-family:'Spectral',serif;font-size:0.95rem;
}
.nl-form input[type=email]:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(255,122,69,0.15);}
.nl-status{font-family:'JetBrains Mono',monospace;font-size:0.75rem;color:var(--ember-bright);min-height:1.2em;}

footer{border-top:1px solid var(--line);padding:40px 0;background:var(--stone);position:relative;z-index:2;}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;font-family:'JetBrains Mono',monospace;font-size:0.78rem;color:var(--ash-dim);}
.foot-grid a{text-decoration:none;color:var(--ash-dim);}
.foot-grid a:hover{color:var(--ember-bright);}

/* ---------- Einzelne Beitraege / Seiten ---------- */
.entry-content{max-width:70ch;}
.entry-content p{margin:0 0 1.2em;}

@media (max-width:820px){
  .navlinks{display:none;}
  .navtoggle{display:block;}
  .news-grid{grid-template-columns:1fr;}
  .newsletter{grid-template-columns:1fr;padding:32px;}
  .event-row{grid-template-columns:1fr;gap:10px;}
  .btn-signup{width:fit-content;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;}
}
