:root {
  --paper: #FFFFFF;
  --ink: #231f1a;
  --copper: #D97E36;
  --ember: #C2452D;
  --teal: #7FBFB2;
  --butter: #F2C94C;
  --navy: #233047;
  --gap: 22px;
}
* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family:'Space Grotesk',-apple-system,'Segoe UI',sans-serif;
  color:var(--ink); background:var(--paper); line-height:1.6;
}
a { color:var(--ember); text-decoration:none; }
.wrap { max-width:1180px; margin:0 auto; padding:0 24px; }

/* ---- Ticker ---- */
.ticker {
  background:var(--ink); color:var(--paper);
  overflow:hidden; white-space:nowrap;
  font-size:12.5px; font-weight:500; letter-spacing:1.5px;
  text-transform:uppercase; padding:8px 0;
}
.ticker-track { display:inline-block; animation:tick 38s linear infinite; }
.ticker-track span { margin:0 14px; }
.ticker-dot { color:var(--copper); }
@keyframes tick { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ---- Header ---- */
.site-header { padding:26px 0 8px; }
.header-flex { display:flex; align-items:center; gap:36px; flex-wrap:wrap; }
.logo { display:flex; align-items:center; gap:12px; color:var(--ink); }
.logo-icon { height:46px; width:auto; display:block; }
.logo-word { font-family:'Archivo Black',sans-serif; font-size:22px; letter-spacing:.5px; display:flex; align-items:center; gap:8px; }
.logo-kesseltext { height:34px; width:auto; display:block; margin-top:2px; }
.mainnav { display:flex; gap:24px; flex-wrap:wrap; }
.mainnav a { color:var(--ink); font-weight:500; font-size:15px; opacity:.75; }
.mainnav a:hover { opacity:1; }
.mainnav a.active { opacity:1; box-shadow:inset 0 -3px 0 var(--copper); }
.cta {
  margin-left:auto; background:var(--ink); color:var(--paper);
  padding:11px 22px; font-weight:700; font-size:14px;
  letter-spacing:.5px; transition:background .15s ease;
}
.cta:hover { background:var(--ember); color:#fff; }

/* ---- Hero line ---- */
.hero-line { padding:44px 0 30px; max-width:1180px; }
.hero-line h1 {
  font-family:'Archivo Black',sans-serif; font-weight:400;
  font-size:clamp(34px,5.2vw,58px); line-height:1.05; letter-spacing:-.5px;
}
.hero-line h1 span { color:var(--ember); }
.hero-line p { max-width:520px; margin-top:14px; font-size:17px; opacity:.8; }

/* ---- Bento (asymmetrisch) ---- */
.bento {
  display:grid; grid-template-columns:repeat(4,1fr);
  grid-auto-rows:250px; grid-auto-flow:dense;
  gap:var(--gap); padding:10px 0 60px;
}
.tile { position:relative; display:block; overflow:hidden; color:#fff; }
.tile-hero { grid-column:span 2; grid-row:span 2; }
.tile-wide { grid-column:span 2; }
.tile-img img { width:100%; height:100%; object-fit:cover; display:block; }
.tile-img img.hero-logo { object-fit:contain; padding:36px; }
.tile-img:hover img { transform:scale(1.04); transition:transform .35s ease; }

.tape {
  position:absolute; left:14px; bottom:14px;
  padding:6px 14px; font-size:13px; font-weight:700;
  letter-spacing:1px; text-transform:lowercase;
  transform:rotate(-1.5deg);
}
.t-copper { background:var(--copper); color:var(--ink); }
.t-teal { background:var(--teal); color:var(--ink); }
.t-navy { background:var(--navy); color:var(--paper); }
.t-ember { background:var(--ember); color:var(--paper); }

.tile-color { padding:26px; display:flex; flex-direction:column; }
.tile-color .tile-title {
  font-family:'Archivo Black',sans-serif; font-weight:400;
  font-size:clamp(18px,1.9vw,23px); line-height:1.2; color:var(--paper);
}
.tile-color .tile-more { margin-top:auto; font-size:13.5px; font-weight:700; color:var(--paper); letter-spacing:.5px; }
.tile-color.dark-text .tile-title, .tile-color.dark-text .tile-more { color:var(--ink); }
.tile-color:hover .tile-more { text-decoration:underline; }
.c-ember { background:var(--ember); }
.c-teal { background:var(--teal); }
.c-navy { background:var(--navy); }
.c-butter { background:var(--butter); }
.c-copper { background:var(--copper); }

/* ---- Inner pages ---- */
.page-content { max-width:820px; padding:30px 24px 70px; }
.page-title {
  font-family:'Archivo Black',sans-serif; font-weight:400;
  color:var(--ink); font-size:clamp(28px,4vw,40px); margin:10px 0 24px;
}
.page-content h2 { font-family:'Archivo Black',sans-serif; font-weight:400; font-size:22px; margin:36px 0 14px; }
.page-content h3 { font-size:18px; margin:26px 0 10px; }
.page-content p { margin:0 0 14px; }
.page-content ul { margin:0 0 14px 20px; }

/* event + price cards */
.event { display:flex; gap:22px; padding:20px 22px; margin:0 0 18px; color:var(--paper); }
.event-date { font-family:'Archivo Black',sans-serif; font-weight:400; font-size:14px; min-width:150px; line-height:1.4; }
.event h3 { margin:0 0 4px; font-size:18px; color:inherit; }
.event p { margin:0; font-size:14px; opacity:.92; }
.prices { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); margin:22px 0 32px; }
.price-card { padding:26px; color:var(--paper); }
.price-card .amount { font-family:'Archivo Black',sans-serif; font-weight:400; font-size:36px; }
.price-card .name { font-weight:700; font-size:14px; margin-bottom:8px; letter-spacing:.5px; }
.price-card p { font-size:13.5px; opacity:.92; }

/* ---- Footer ---- */
.site-footer { background:var(--navy); color:var(--paper); margin-top:20px; }
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:36px; padding:56px 24px 36px;
}
.flogo { font-family:'Archivo Black',sans-serif; font-size:24px; margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.flogo-icon { height:34px; width:auto; }
.flogo em { font-style:normal; color:var(--copper); }
.fbrand p { font-size:13.5px; opacity:.75; }
.fcol h4 {
  font-size:12px; letter-spacing:2px; text-transform:uppercase;
  margin-bottom:14px; color:var(--copper);
}
.fcol a { display:block; color:var(--paper); font-size:14px; margin-bottom:9px; opacity:.85; }
.fcol a:hover { opacity:1; text-decoration:underline; }
.faddr { font-size:14px; opacity:.75; }
.fbottom {
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
  padding:18px 24px 26px; font-size:12.5px; opacity:.65;
  border-top:1px solid rgba(250,244,234,.15);
}
.fbottom a { color:var(--paper); }

/* ---- Responsive ---- */
@media (max-width:980px) {
  .bento { grid-template-columns:repeat(2,1fr); }
  .tile-hero { grid-column:span 2; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .prices { grid-template-columns:1fr; }
  .cta { margin-left:0; }
}
@media (max-width:560px) {
  .bento { grid-template-columns:1fr; grid-auto-rows:230px; }
  .tile-hero, .tile-wide { grid-column:span 1; }
  .hero-line h1 { font-size:34px; }
}

/* Antragsformular */
.antrag-form { max-width:640px; margin-top:30px; }
.antrag-form h3 { margin:34px 0 10px; }
.antrag-form label { display:block; margin:14px 0 6px; font-weight:700; }
.antrag-form label.radio { font-weight:400; display:flex; align-items:center; gap:10px; }
.antrag-form input[type=text], .antrag-form input[type=email], .antrag-form input[type=number] {
  width:100%; padding:11px 12px; border:2px solid var(--ink); background:#fff;
  font:inherit; box-sizing:border-box; margin-top:4px;
}
.antrag-form input[type=radio], .antrag-form input[type=checkbox] { width:18px; height:18px; }
.antrag-form input:focus { outline:3px solid var(--teal); outline-offset:1px; }
.antrag-form .cta { display:inline-block; margin-top:26px; padding:14px 28px; border:2px solid var(--ink);
  background:var(--ink); color:#fff; font:inherit; font-weight:700; cursor:pointer; letter-spacing:.5px; }
.antrag-form .cta:hover { background:var(--ember); border-color:var(--ember); }
.form-note { font-size:14px; opacity:.8; }
