/*
Theme Name:   Filsa-Rälling
Theme URI:    https://filsaraelling.cimbern-rt.de/
Description:  Entwurf A – dunkle Bühne mit Vorhang. Child-Theme von Hello Elementor.
Author:       TSV Öschingen 1911 e.V. – Laienspielgruppe
Template:     hello-elementor
Version:      1.0.0
Text Domain:  filsa-raelling
*/


  :root{
    --bg:#0a0910; --bg2:#131228; --navy:#1b1c3a; --orange:#e8622b; --orange-soft:#ff8a4c;
    --gold:#f0b429; --cream:#f4efe6; --muted:#a49fb3; --line:rgba(244,239,230,.12);
    --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    --wrap:1120px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);background:var(--bg);color:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
  h1,h2,h3,.display{font-family:var(--serif);font-weight:600;line-height:1.15;letter-spacing:.01em}
  .eyebrow{font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
  .btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:600;font-size:14px;
       border:1px solid var(--line);transition:.2s;cursor:pointer;background:transparent;color:var(--cream)}
  .btn:hover{border-color:var(--orange);color:var(--orange-soft)}
  .btn--primary{background:var(--orange);border-color:var(--orange);color:#fff}
  .btn--primary:hover{background:var(--orange-soft);border-color:var(--orange-soft);color:#1a0d06}

  /* ---------- Vorhang ---------- */
  #curtain{position:fixed;inset:0;z-index:100;display:flex;pointer-events:none;transition:visibility 0s .9s}
  #curtain .panel{position:relative;width:50%;height:100%;transition:transform .9s cubic-bezier(.6,0,.2,1);
    background:
      repeating-linear-gradient(90deg,rgba(0,0,0,.45) 0 6px,rgba(0,0,0,0) 6px 46px),
      repeating-linear-gradient(90deg,#4a0b14 0 24px,#6d1220 24px 46px,#3a0810 46px 70px);
    box-shadow:inset 0 -80px 120px rgba(0,0,0,.6)}
  #curtain .panel::after{content:"";position:absolute;inset:0;
    background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,0) 22%,rgba(0,0,0,0) 78%,rgba(0,0,0,.55))}
  #curtain .l{transform-origin:left}
  #curtain .r{transform-origin:right}
  #curtain.closed .panel{transform:scaleX(1)}
  #curtain.open .l{transform:translateX(-100%)}
  #curtain.open .r{transform:translateX(100%)}
  #curtain.open{visibility:hidden}
  #curtain .valance{position:absolute;left:0;right:0;top:0;height:74px;z-index:2;
    background:repeating-linear-gradient(90deg,#5a0e18 0 30px,#7b1526 30px 58px,#40090f 58px 88px);
    box-shadow:0 8px 24px rgba(0,0,0,.6);
    -webkit-mask:radial-gradient(24px 34px at 24px 12px,#000 97%,transparent) repeat-x;
    mask:radial-gradient(24px 34px at 24px 12px,#000 97%,transparent) repeat-x}
  #curtain .hint{position:absolute;left:50%;bottom:48px;transform:translateX(-50%);z-index:3;
    pointer-events:auto;background:rgba(10,9,16,.72);border:1px solid rgba(244,239,230,.25);
    backdrop-filter:blur(6px)}
  #curtain.open .hint{display:none}

  /* ---------- Header ---------- */
  header{position:sticky;top:0;z-index:60;background:rgba(10,9,16,.86);backdrop-filter:blur(10px);
         border-bottom:1px solid var(--line)}
  .bar{display:flex;align-items:center;gap:26px;height:72px}
  .brand{display:flex;align-items:center;gap:12px;margin-right:auto}
  .brand img{width:38px;height:38px;object-fit:contain;filter:brightness(1.25) drop-shadow(0 0 14px rgba(232,98,43,.55))}
  .brand b{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.02em}
  .brand small{display:block;font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
  nav{display:flex;gap:4px;flex-wrap:wrap}
  nav button{background:none;border:0;color:var(--muted);font:600 13.5px var(--sans);padding:9px 12px;
    border-radius:8px;cursor:pointer;transition:.18s}
  nav button:hover{color:var(--cream);background:rgba(244,239,230,.06)}
  nav button[aria-current="true"]{color:var(--cream);background:rgba(232,98,43,.16);box-shadow:inset 0 -2px 0 var(--orange)}
  .burger{display:none}

  /* ---------- Hero ---------- */
  .hero{position:relative;min-height:78vh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
  .hero img.stage{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
    filter:saturate(.85) contrast(1.05) brightness(.62)}
  .hero::after{content:"";position:absolute;inset:0;z-index:-1;
    background:radial-gradient(120% 90% at 70% 18%,rgba(240,180,41,.20),transparent 55%),
               linear-gradient(180deg,rgba(10,9,16,.72) 0%,rgba(10,9,16,.35) 38%,rgba(10,9,16,.96) 100%)}
  .beams{position:absolute;inset:0;z-index:-1;overflow:hidden;opacity:.5}
  .beams i{position:absolute;top:-18%;width:34%;height:150%;transform:rotate(12deg);
    background:linear-gradient(180deg,rgba(240,180,41,.20),transparent 70%);filter:blur(26px)}
  .beams i:nth-child(1){left:8%}
  .beams i:nth-child(2){left:42%;transform:rotate(-9deg);opacity:.7}
  .hero .inner{padding:90px 0 54px;max-width:760px}
  .hero h1{font-size:clamp(38px,6.4vw,74px);margin:16px 0 14px;text-shadow:0 4px 30px rgba(0,0,0,.6)}
  .hero h1 em{font-style:normal;color:var(--orange-soft)}
  .lead{font-size:clamp(15px,1.6vw,19px);color:#ded8e6;max-width:600px}
  .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
  .badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;
    background:rgba(240,180,41,.14);border:1px solid rgba(240,180,41,.35);color:var(--gold);
    font:600 12px var(--sans);letter-spacing:.06em}
  .hero .meta{margin-top:34px;display:flex;gap:28px;flex-wrap:wrap;color:var(--muted);font-size:13px}

  /* ---------- Abschnitte ---------- */
  section{padding:78px 0}
  section.alt{background:linear-gradient(180deg,var(--bg2),var(--bg))}
  .sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:34px;flex-wrap:wrap}
  .sechead h2{font-size:clamp(26px,3.4vw,40px)}
  .grid{display:grid;gap:22px}
  .g2{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:repeat(3,1fr)}
  .g4{grid-template-columns:repeat(4,1fr)}
  .card{background:rgba(244,239,230,.04);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.22s}
  .card:hover{border-color:rgba(232,98,43,.5);transform:translateY(-3px)}
  .card .ph{aspect-ratio:16/10;overflow:hidden;background:#000}
  .card .ph img{width:100%;height:100%;object-fit:cover;transition:.5s}
  .card:hover .ph img{transform:scale(1.04)}
  .card .txt{padding:18px 20px 22px}
  .card h3{font-size:20px;margin-bottom:8px}
  .card p{color:var(--muted);font-size:14.5px}
  .tag{display:inline-block;font:600 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;
    color:var(--gold);margin-bottom:10px}
  .prose p{color:#cfc9d8;margin-bottom:14px;max-width:70ch}
  .prose p:last-child{margin-bottom:0}
  .split{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:start}
  .figure{border-radius:14px;overflow:hidden;border:1px solid var(--line)}
  .figure figcaption{padding:11px 16px;font-size:12.5px;color:var(--muted);background:rgba(0,0,0,.25)}

  /* Termine */
  .venue{margin-bottom:38px}
  .venue h3{font-size:22px;margin-bottom:4px}
  .venue .sub{color:var(--muted);font-size:13.5px;margin-bottom:16px}
  .dates{display:grid;gap:12px}
  .date{display:grid;grid-template-columns:132px 1fr auto;gap:18px;align-items:center;
    padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(244,239,230,.03);transition:.2s}
  .date:hover{border-color:rgba(240,180,41,.45);background:rgba(240,180,41,.05)}
  .date .d{font-family:var(--serif);font-size:19px;color:var(--gold)}
  .date .t{font-size:13.5px;color:var(--muted)}
  .pill{font:600 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;
    border-radius:999px;border:1px solid var(--line);color:var(--muted)}
  .vvk{list-style:none;display:grid;gap:10px;margin-top:14px}
  .vvk li{padding-left:22px;position:relative;color:#cfc9d8;font-size:14.5px}
  .vvk li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;
    background:var(--orange);box-shadow:0 0 12px rgba(232,98,43,.8)}
  .notice{border-left:3px solid var(--gold);background:rgba(240,180,41,.07);padding:16px 20px;border-radius:0 12px 12px 0;
    color:#e6e0ee;font-size:14.5px;max-width:75ch}

  /* Darsteller */
  .cast{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
  .actor{text-align:left}
  .actor .ph{aspect-ratio:4/5;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#000}
  .actor .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
  .actor b{display:block;font-family:var(--serif);font-size:17px;margin:12px 0 2px}
  .actor span{color:var(--muted);font-size:13px}
  .crew{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px;
    border-top:1px solid var(--line);padding-top:30px}
  .crew div b{display:block;font-family:var(--serif);font-size:16px;margin-bottom:2px}
  .crew div span{color:var(--muted);font-size:13px}

  /* Gönner */
  .sponsor{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .sponsor .s{padding:20px;border:1px solid var(--line);border-radius:12px;background:rgba(244,239,230,.03)}
  .sponsor .s b{display:block;font-family:var(--serif);font-size:16.5px;margin-bottom:8px}
  .sponsor .s p{color:var(--muted);font-size:13.5px}
  .ribbon{width:120px;opacity:.9;margin-bottom:26px}
  .logos{display:flex;gap:26px;align-items:center;flex-wrap:wrap;opacity:.85}

  /* Impressum */
  .fields{display:grid;grid-template-columns:220px 1fr;gap:10px 20px;font-size:15px}
  .fields dt{color:var(--muted)}
  form{display:grid;gap:12px;max-width:520px;margin-top:18px}
  input,textarea{width:100%;padding:12px 14px;border-radius:10px;background:rgba(244,239,230,.05);
    border:1px solid var(--line);color:var(--cream);font:400 14.5px var(--sans)}
  input:focus,textarea:focus{outline:none;border-color:var(--orange)}
  .ok{color:var(--orange-soft);font-size:13.5px;min-height:18px}

  footer{border-top:1px solid var(--line);padding:44px 0 60px;color:var(--muted);font-size:13.5px}
  .foot{display:flex;gap:30px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
  .views{display:none}
  .views.on{display:block}

  @media(max-width:900px){
    .g3,.g4,.cast,.sponsor,.crew{grid-template-columns:repeat(2,1fr)}
    .split{grid-template-columns:1fr}
    nav{display:none}
    nav.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;
      background:rgba(10,9,16,.98);padding:14px;border-bottom:1px solid var(--line)}
    .burger{display:inline-flex}
    .date{grid-template-columns:110px 1fr}
    .date .pill{grid-column:2}
    .fields{grid-template-columns:1fr}
  }


/* ───────────────────────── WordPress-Anpassungen ───────────────────────── */
h1, h2, h3, h4, h5, h6 { color: inherit; }
body.admin-bar #curtain { top: 32px; }
body { margin: 0; }
img { max-width: 100%; height: auto; }
.alignleft  { float: left;  margin: 0 1.2em .8em 0; }
.alignright { float: right; margin: 0 0 .8em 1.2em; }
.aligncenter { margin-left: auto; margin-right: auto; display: block; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .figure figcaption { font-size: .82rem; opacity: .7; margin-top: .5em; }
.screen-reader-text { position: absolute; left: -9999px; }
a { color: inherit; text-decoration: none; }
.sechead .btn { flex: 0 0 auto; }
nav#nav a { all: unset; cursor: pointer; }
.editor-inhalt > * + * { margin-top: 1em; }
.editor-inhalt h2 { font-size: clamp(1.3rem, 1rem + 1.4vw, 1.9rem); margin-top: 1.6em; }
.editor-inhalt ul, .editor-inhalt ol { padding-left: 1.3em; }
.editor-inhalt li { margin: .35em 0; }
.editor-inhalt blockquote {
  border-left: 3px solid var(--akzent, #e8622b);
  padding-left: 1em; margin-left: 0; opacity: .85;
}
.editor-inhalt table { width: 100%; border-collapse: collapse; }
.editor-inhalt th, .editor-inhalt td { border-bottom: 1px solid rgba(255,255,255,.12); padding: .5em .6em; text-align: left; }
.termine-liste { display: grid; gap: 1rem; margin-top: 1.4rem; }
.termin-zeile {
  display: grid; grid-template-columns: minmax(120px, 170px) 1fr; gap: 1rem 1.4rem;
  padding: 1.1rem 1.3rem; border-radius: 14px;
  background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.09);
}
.termin-zeile .datum { font-weight: 700; font-size: 1.05rem; letter-spacing: .01em; }
.termin-zeile .datum small { display: block; font-weight: 400; opacity: .68; font-size: .8rem; margin-top: .25em; }
.termin-zeile .ort { font-weight: 600; }
.termin-zeile .zeiten { opacity: .78; font-size: .92rem; margin-top: .35em; }
.termin-zeile .zusatz { opacity: .7; font-size: .88rem; margin-top: .45em; }
.termin-zeile .vergangen { opacity: .5; }
.spielort-block { margin-top: 2.2rem; }
.spielort-block > h3 { font-size: 1.1rem; letter-spacing: .04em; text-transform: uppercase; opacity: .75; margin-bottom: .2rem; }
@media (max-width: 640px) { .termin-zeile { grid-template-columns: 1fr; } }
.stueckliste { display: grid; gap: 1.6rem; margin-top: 1.6rem; }
.stueck-eintrag { display: grid; grid-template-columns: minmax(0,260px) 1fr; gap: 1.4rem; align-items: start;
  padding-bottom: 1.6rem; border-bottom: 1px solid rgba(255,255,255,.08); }
@media (max-width: 720px) { .stueck-eintrag { grid-template-columns: 1fr; } }
.stueck-eintrag .jahr { font-size: 1.6rem; font-weight: 800; line-height: 1; }
.stueck-eintrag h3 { margin: .2em 0 .5em; }
figure.stueck-bild { margin: 0; border-radius: 14px; overflow: hidden; }
figure.stueck-bild img { width: 100%; display: block; }
.cast-rolle { font-size: .84rem; letter-spacing: .06em; text-transform: uppercase; opacity: .72; }
