/* ================================
   RESET / BASIS
================================ */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-size: 16px;
}

/* ================================
   LAYOUT
================================ */

.wrapper {
  	width: 100%;
  	max-width: 900px;
  	margin: 0 auto;
  	padding: 0px;
  	background: top center no-repeat;
  	background-size: 100% auto;  
	margin: 0px auto;
}

.container { text-align: center; }
.content { 
	text-align: center;   
	font-size: 100%;
  	font-weight: 100;
	width: 100%;
}
.inhalt { text-align: center; }


.clearcontent {
  height: 40px;
  clear: both;
}

main {
  max-width: 900px;
  margin: 0 auto;
  padding: 20px;
}
/* ================================
   TYPO / ZENTRIERUNG
================================ */

.wrapper h1,
.wrapper h2,
.wrapper h3 {
  text-align: center;
}

.warning { background: rgba(180, 1, 1, 0.837); color: #fff; border: 1px solid #fff; font-size: 1.1em; padding: 5px; margin: 20px; }

/* ================================
   BILDER
================================ */

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ================================
   LEGAL FOOTER (Impressum Menü)
================================ */

.legal-footer {
  margin-top: 60px;
  padding: 20px;
  font-size: 0.9rem;
  text-align: center;
  opacity: 0.7;
}

.legal-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.legal-menu li {
  display: inline-block;
  margin: 0 10px;
}

.legal-menu a {
  text-decoration: none;
  color: #999;
  transition: color 0.3s ease;
}

.legal-menu a:hover {
  color: #fff;
}

.legal-menu li::after {
  content: " | ";
  margin-left: 10px;
  color: #666;
}

.legal-menu li:last-child::after {
  content: "";
}

/* ================================
   BACK TO TOP BUTTON
================================ */

.back-to-top {
  height: 60px;
  width: 60px;

  position: fixed;
  bottom: 20px;
  right: 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0.8);
  color: #fff;

  z-index: 999;
  cursor: pointer;
}

.back-to-top::after {
  content: "↑";
  font-size: 50px;
}

.back-to-top {
  display: none;
}


/* Mobile */
@media (max-width: 768px) {
.back-to-top::after {
  content: "↑";
  font-size: 24px; }

}
/* ================================
   MOBILE MENU BUTTON
================================ */

.menu-toggle {
  display: none;
  width: 100%;
  background: transparent;
  border: none;
  padding: 15px 0;
  cursor: pointer;
  text-align: center;

  /* verhindert graues Blinken */
  -webkit-tap-highlight-color: transparent;
}


/* Linien */

.menu-toggle span {
  display: block;
  width: 28px;
  height: 2px;
  background: #fff;
  margin: 6px auto;
  transition: all 0.3s ease;
}

/* Animation zu X */

#campmenu.active .menu-toggle span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

#campmenu.active .menu-toggle span:nth-child(2) {
  opacity: 0;
}

#campmenu.active .menu-toggle span:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}

/* Hover nur auf Desktop */

@media (hover: hover) {
  .menu-toggle:hover span {
    background: #ccc;
  }
}

/* Klick-/Fokus-Fix */

.menu-toggle:focus,
.menu-toggle:active {
  outline: none;
  background: transparent;
}

/* ================================
   FOOTER
================================ */

.site-footer {
  background: rgba(0,0,0,0.5);
  padding: 20px;
  margin-top: 20px;
  color: #fff;
}

.footer-columns {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.footer-columns div {
  flex: 1;
  font-size: 16px;
}

.footerimg {
  margin-top: 0px; 
  max-width: 300px; width: 80%; 
  margin: 0px auto; }


.site-footer strong {
  color: #fff;
}

/* ================================
   FORMULARE
================================ */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
select,
textarea {
  width: 100%;
  border: 1px solid #CCC;
  margin-bottom: 5px;
  padding: 25px!important;
  border-radius: 5px;
  outline: none;
}

textarea {
  height: 100px;
}

button,
input[type="submit"] {
  cursor: pointer;
  width: 100%;
  border: none;
  background: #828c95;
  color: #FFF;
  padding: 8px;
  border-radius: 5px;
}

button:hover,
input[type="submit"]:hover {
  background: #b5bdc8;
}

/* ================================
   RESPONSIVE
================================ */

/* Tablet */
@media (max-width: 1024px) {
  .wrapper {
    padding: 15px;
  }
}

/* Mobile */
@media (max-width: 768px) {

  .wrapper {
    padding: 10px;
  }

  .footer-columns {
    flex-direction: column;
    text-align: center;
  }

  .back-to-top {
    height: 50px;
    width: 50px;
    bottom: 15px;
    left: 15px;
  }

  .menu-toggle {
    display: block;
  }
}

/* ======================================================
   BASIS
====================================================== */

body {
  background: url(https://www.altepost-soegel.de/media/Horror/Hintergrund.jpg) #000 no-repeat top center;
  background-size: 100% auto;
  color: #fff;
  font-family: "Courier New",
 sans-serif;
}

a { color: #fff; }

ul,
 ol,
 li {
    list-style: none;
 list-style-type: none; }

h1,
 h2,
 h3,
 h4,
 h5,
 h6 { color: #fff; }

  h2 { font-family: "Courier New",
     color: #ddd;
  text-decoration: none;
  font-size: 18px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transition: all 0.3s ease;}

strong { color: #fff; font-weight: 900; }

.small {
  display: block;
  margin-top: 10px;

  font-size: 12px;
  line-height: 1.5;

  color: #aaa;

  opacity: 0.9;
}

table,
 th,
 td {
  padding: 5px;
  color: #fff;
}

td { text-align: left; }


/* ======================================================
   LAYOUT
====================================================== */

.contentbox {
  margin-top: 30px;
  background: none;
}


.inhalt {
  background: rgba(0,0,0,0.71);
  padding: 0px;
}

.tabelle { color: #fff; }


/* ======================================================
   LOGO
====================================================== */

#logo {
  width: 80%;
  max-width: 500px;
  margin-bottom: 15px;
  margin-top: 100px;
}

  #logo-wrap { margin: 0px auto; width: 100%; text-align: center;}

  h2 { font-family: }
 /*===== LOGO GLOW EFFEKT ======*/

 #logo {
  animation: logoGlowPulse 3s ease-in-out infinite;
}

@keyframes logoGlowPulse {
  0% {
    filter: drop-shadow(0 0 25px rgba(255,255,255,0.3));
  }
  50% {
    filter: drop-shadow(0 0 30px rgba(255,255,255,0.6));
  }
  100% {
    filter: drop-shadow(0 0 20px rgba(255,255,255,0.3));
  }
}

/* ========= MAGE GLOW ==========*/

#image {
  animation: imageGlowPulse 2s ease-in-out infinite;
}

@keyframes imageGlowPulse {
   0% {
    filter: drop-shadow(0 0 25px rgba(255,255,255,0.3));
  }
  50% {
    filter: drop-shadow(0 0 30px rgba(255,255,255,0.6));
  }
  100% {
    filter: drop-shadow(0 0 20px rgba(255,255,255,0.3));
  }
}



/* ======================================================
   STICKY MENU
====================================================== */

  /* ===== MENU NORMAL ===== */

#campmenu {
  position: relative;
  max-width: 900px;  margin: 0 auto;
  padding: 12px 20px;
  background: rgba(0,0,0,0.75);
  border-radius: 6px;
  transition: all 0.3s ease;
}

/* ===== WENN FIXIERT ===== */

#campmenu.fixed {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 900px;
  z-index: 99999;

  background: rgba(0,0,0,0.95);
  box-shadow: 0 5px 20px rgba(0,0,0,0.6);
}

/* OPTIONAL: wenn sticky aktiv ist */
#campmenu.sticky {
  background: rgba(0,0,0,0.95);
  box-shadow: 0 5px 20px rgba(0,0,0,0.6);
}

  /* Menu Design */


  #campmenu ul {
  margin: 0 !important;
  padding: 0 !important;
}

#campmenu li {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* MENU LIST */

#campmenu ul {
  display: flex; list-style-type: none;
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {

  #campmenu ul {
    display: flex;
    flex-direction: column;

    max-height: 0;
    overflow: hidden;

    opacity: 0;
    transition: all 0.4s ease;
  }

  #campmenu.active ul {
    max-height: 500px;
    opacity: 1;
  }

}

/* ITEMS */

#campmenu li {
  white-space: nowrap; padding: 0px 7px;
}

/* LINKS */

#campmenu a {
  color: #ddd;
  text-decoration: none;
  font-size: 15px;
  letter-spacing: 1.5px;
  text-transform: uppercase;

  padding: 5px 8px;
  transition: all 0.3s ease;
}

/* HOVER */

#campmenu a:hover {
  color: #000;
  background: linear-gradient(135deg,
 #fff,
 #ccc);
  border-radius: 4px;
}

/* ACTIVE */

#campmenu li.current a {
  color: #000;
  background: #fff;
  border-radius: 4px;
}

/* ===== GRID ===== */

.info-grid {
  display: flex;
  gap: 30px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ===== INFO CARDS ===== */

.info-card {
  background: rgba(15,15,15,0.95);
  border: 1px solid rgba(255,255,255,0.1);
  padding: 25px;
  width: 300px;
  text-align: center;

  box-shadow: 0 5px 20px rgba(0,0,0,0.7);
  transition: transform 0.3s ease;
}

.info-card:hover {
  transform: translateY(-5px);
}

/* ===== HIGHLIGHT VARIANTEN ===== */

/* sanfter Glow */
.scroll-section.highlight {
  box-shadow:
    0 0 20px rgba(255, 255, 255, 0.4),
    0 10px 40px rgba(0,0,0,0.8);
}

/* stärkerer Nebel */
.scroll-section.fog-strong::after {
  opacity: 0.9;
}

/* CTA Fokus */
.scroll-section.cta-focus {
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow:
    0 0 25px rgba(255, 255, 255, 0.5),
    0 0 60px rgba(255, 255, 255, 0.2);
}

/* optional pulsieren */
.scroll-section.cta-focus {
  animation: pulseSoft 4s ease-in-out infinite;
}

@keyframes pulseSoft {
  0% { box-shadow: 0 0 20px rgba(255, 255, 255, 0.3); }
  50% { box-shadow: 0 0 35px rgba(255, 255, 255, 0.6); }
  100% { box-shadow: 0 0 20px rgba(255, 255, 255, 0.3); }
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {
  .scroll-section {
    margin: 50px 15px;
    padding: 20px;
  }

  .scroll-text {
    font-size: 16px;
  }
}


/* Animation zu X */

#campmenu.active .menu-toggle span:nth-child(1) {
  transform: rotate(45deg) translate(5px,
 5px);
}

#campmenu.active .menu-toggle span:nth-child(2) {
  opacity: 0;
}

#campmenu.active .menu-toggle span:nth-child(3) {
  transform: rotate(-45deg) translate(6px,
 -6px);
}

/* Hover */

.menu-toggle:hover span {
  background: #ccc;
}


/* ======================================================
   MOBILE MENU
====================================================== */

@media (max-width: 768px) {

  body {
  background: url(https://www.altepost-soegel.de/media/Horror/Hintergrund.jpg) #000 no-repeat top center;
  background-size: 160% auto;
  color: #fff;
  font-family: "Courier New",
 sans-serif;
}

  #campmenu {
    padding: 0 !important;
  }

  .menu-toggle {
    display: block;
  }

  #campmenu ul {
    display: flex;
    flex-direction: column;

    max-height: 0;
    overflow: hidden;

    opacity: 0;
    transition: all 0.4s ease;
  }

  #campmenu.active ul {
    max-height: 500px;
    opacity: 1;
  }

  #campmenu a {
    display: block;
    padding: 12px;
    text-align: center;
    font-size: 16px;
  }
}


/* ======================================================
   EVENT DESIGN
====================================================== */

.event-landing {
  font-family: Georgia,
 serif;
  color: #e6e6e6;
}

.hero {
  text-align: center;
  padding: 50px 20px;
  background: rgba(0,0,0,0.75);
}

.hero h1 {
  font-size: 44px;
  text-transform: uppercase;
}

.subtitle {
  color: #cfcfcf;
}

  .explain {
  margin-top: 15px;
  color: #bdbdbd;
  font-size: 16px;
}

.tension {
  text-align: center;
  max-width: 700px;
  margin: 70px auto;
  font-size: 20px;
}

  .how-it-works {
  max-width: 700px;
  margin: 60px auto;
  text-align: center;
  font-size: 18px;
}

.how-it-works {
  max-width: 900px;
  margin: 40px auto;
  padding: 30px;

  background: rgba(0,0,0,0.75);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;

  box-shadow: 0 10px 30px rgba(0,0,0,0.6);

  text-align: center;
  font-size: 18px;

  position: relative;
  overflow: hidden;
}

.how-it-works::after {
  content: "";
  position: absolute;
  inset: 0;

  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.05), transparent 60%),
    radial-gradient(circle at 80% 60%, rgba(255,255,255,0.04), transparent 70%);

  opacity: 0.6;
  pointer-events: none;
}

.highlight {
  margin-top: 25px;
}

.experience {
  background: rgba(10,10,10,0.85);
  text-align: center;
  padding: 60px 20px; margin: 20px auto;
}

.info {
  display: flex;
  justify-content: center;
  gap: 30px;
  padding: 60px 20px;
}

.info-box {
  background: rgba(20,20,20,0.9);
  border: 1px solid rgba(255,255,255,0.1);
  padding: 25px;
  width: 300px;
  text-align: center;
}

.final {
  text-align: center;
  padding: 80px 20px;
  background: rgba(0,0,0,0.85);
}

/* ======================================================
   STORY FULL WIDTH
====================================================== */

.story-full {
  width: 100%;
font-family: "American Typewriter",
 "Courier New",
 monospace;
  padding: 100px 20px;
 width: 100%;
  padding: 30px ;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.6),
    rgba(0,0,0,0.9)
  );
  position: relative;
	margin-top: 20px; /* Höhe deines Menüs anpassen */
  background: rgba(0,0,0,0.85);
font-size: 0.8em;
  position: relative;
  overflow: hidden;
}

  .story-inner {

  max-width: 700px;

  margin: 0 auto;

  padding: 40px 30px;



  background: rgba(0,0,0,0.55);

  border: 1px solid rgba(255,255,255,0.08);

  box-shadow: 0 0 40px rgba(0,0,0,0.6);

  text-align: center;

  font-size: 20px;

  line-height: 1.7;

}

/* ===============================
   STORY BLOCK – OPTISCH AUFWERTEN
================================ */


/* Nebel overlay (ruhiger als vorher → keine Ränder mehr) */
.story-full::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 40%,
 rgba(255,255,255,0.05),
 transparent 60%),
    radial-gradient(circle at 80% 60%,
 rgba(255,255,255,0.04),
 transparent 70%);
  opacity: 0.4;
  pointer-events: none;
}

/* Inhalt */
.story-inner {
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
  font-size: 20px;
  line-height: 1.8;
  position: relative;
  z-index: 2;
}

/* Intro stärker hervorheben */
.story-intro {
  font-size: 22px;
  color: #ddd;
  margin-bottom: 25px;
}

/* Timeline */
.story-timeline {
  margin: 50px 0;
  border-left: 2px solid rgba(255,255,255,0.2);
  padding-left: 20px;
  text-align: left;
}

/* Einzelne Ereignisse */
.story-event {
  margin-bottom: 30px;
  position: relative;
}

/* Marker */
.story-event::before {
  content: "";
  position: absolute;
  left: -27px;
  top: 5px;
  width: 10px;
  height: 10px;
  background: #7a0000;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(122,0,0,0.7);
}

/* Datum */
.story-event span {
  display: block;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #aaa;
  margin-bottom: 5px;
}

/* Highlight */
.story-inner .highlight {
  margin-top: 25px;
  font-size: 24px;
  letter-spacing: 2px;
  color: #fff;
}

/* Finale Warnung */
.story-final {
  margin-top: 40px;
  font-size: 18px;
  color: #bbb;
  line-height: 2;
}

/* MOBILE */
@media (max-width: 768px) {
  .story-inner {
    font-size: 18px;
  }

  .story-intro {
    font-size: 20px;
  }

#logo {
  width: 60%;
  max-width: 300px;
  margin-bottom: 15px;
  margin-top: 40px;
  }

}

/* mehr Luft zwischen Absätzen */

.type-line {

  margin: 18px 0;

}



/* Highlights stärker */

.story-inner .highlight {

  font-size: 24px;

  letter-spacing: 1px;

  margin-top: 30px;

}
/* ===== SCHREIBMASCHINE ==== */

/* TYPEWRITER BASIS */

.type-line {
  opacity: 0;
}

/* sichtbar (Fallback falls JS ausfällt) */
.js-enabled .type-line {
  opacity: 0;
}

.js-enabled .type-line.visible {
  opacity: 1;
}

.type-line.typing::after {
content: "|";
margin-left: 5px;
animation: blink 1s infinite;
}

@keyframes blink {
0%,100% { opacity: 1; }
50% { opacity: 0; }
}


/* gleiche „Nebeloptik“ wie deine anderen Sections */
.story-full::after {
  content: "";
  position: absolute;
  inset: 0;

  background:
    radial-gradient(circle at 30% 40%,
 rgba(255,255,255,0.05),
 transparent 70%),
    radial-gradient(circle at 70% 60%,
 rgba(255,255,255,0.04),
 transparent 80%);

  pointer-events: none;
  opacity: 0.6;
}

/* Inhalt begrenzen (wie bei tension/how-it-works) */
.story-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  font-size: 20px;
  line-height: 1.7;
}

/* Überschrift */
.story-inner h2 {
  margin-bottom: 30px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Textabstände */
.story-inner p {
  margin: 12px 0;
}

/* Highlight stärker */
.story-inner .highlight {
  margin-top: 25px;
  font-size: 24px;
  letter-spacing: 1px;
}

/* ======================================================
   BUTTONS
====================================================== */

.cta-button {
  display: inline-block;
  background: #7a0000 !important;
  color: #ffffff !important;
  padding: 12px 24px;
  text-decoration: none;
  font-weight: bold;
  border: none;
  transition: all 0.2s ease;
}

/* Hover */
.cta-button:hover {
  background: #a00000 !important;
  color: #ffffff !important;
}
.cta-button:hover {
  transform: scale(1.05);
}

/* ===== FLOATING CTA BUTTON JETZT ANMELDEN ===== */

.floating-cta {
  position: fixed;
  top: 50px;
  right: 50px;
  z-index: 999999;

  transition: all 0.4s ease;
}

/* Button */
.floating-cta a {
  display: inline-block;
  background: #7a0000;
  color: #fff !important;

  padding: 10px 18px;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;

  border-radius: 4px;

  box-shadow: 0 0 12px rgba(122,0,0,0.6);
  transition: all 0.3s ease;
}

/* Hover */
.floating-cta a:hover {
  background: #a00000;
}

/* ===== AUSBLENDEN BEIM SCROLL ===== */

.floating-cta.hide {
  opacity: 0;
  transform: translateY(-20px);
  pointer-events: none;
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {

  .floating-cta {
    top: 10px;
    right: 0px;
    transform: scale(0.9); /* etwas kleiner → weniger dominant */
  }

  .floating-cta a {
    font-size: 12px;
    padding: 8px 12px;
  }

}

.cta-note {
  display: block;
  margin-top: 10px;

  font-size: 13px;
  color: #aaa;
  letter-spacing: 0.5px;
}
/* ===== FLOATING LIMIT (PLÄTZE BEGRENZT) ===== */

.floating-limit {
  position: fixed;
  top: 50px;
  left: 50px;
  z-index: 999999;

  transition: all 0.4s ease;
}

/* Bild */
.floating-limit img {
  max-width: 140px;
  height: auto;

  filter: drop-shadow(0 0 10px rgba(122,0,0,0.6));
  transition: all 0.3s ease;
}

/* Hover leicht hervorheben */
.floating-limit img:hover {
  transform: scale(1.05);
}

/* AUSBLENDEN beim Scroll */
.floating-limit.hide {
  opacity: 0;
  transform: translateY(-20px);
  pointer-events: none;
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {
  .floating-limit {
    top: 10px;
    left: 10px;
  }

  .floating-limit img {
    max-width: 90px;
  }
}
/* ==== MINI FORM === */



.miniform h3 {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 1.1em;
  text-transform: uppercase;
  letter-spacing: 2px;
  opacity: 0.7;
}

.miniform .grouping {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: rgba(0,0,0,0.9);
  padding: 10px;
  border-radius: 4px;
}

.g-recaptcha { margin: 0px auto;}


.miniform .grouping input[type="checkbox"],
.miniform .grouping input[type="radio"] {
  margin-top: 3px;
}

.miniform .grouping input[type="checkbox"] {
  margin-top: 4px;
  transform: scale(1.1);
}

.miniform .grouping label {
  opacity: 0.9;
  line-height: 1.4;
}

.miniform .grouping label:hover {
  opacity: 1;
}

.miniform .full,
.miniform .half {
  margin-bottom: 10px;
}


/* ================================
   NUMBER INPUT KOMPAKT
================================ */

.miniform input[type="number"] {
  width: 120px;          /* kompakte Breite */
  text-align: center;

  display: inline-block; /* verhindert full width Verhalten */
}


/* ================================
   GRID LAYOUT (WICHTIG!)
================================ */

.miniform form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;   
}



/* HALF = normale Spalte */

.miniform .half {
  width: 100% !important;
}

/* FULL = über beide Spalten */

.miniform .full {
  grid-column: 1 / -1;
  width: 100% !important;
}

/* Textarea etwas größer */
.miniform textarea {
  min-height: 140px;
}

/* Zahlenfelder auffälliger */
.miniform input[type="number"] {
  font-size: 18px;
  text-align: center;
}
/* ================================
   LABEL FIX
================================ */

.miniform label {
  display: block;
  width: 100%;
}





/* ================================
   LABEL TEXT
================================ */

.miniform label span {
   margin-bottom: 5px;
  font-size: 14px;
  color: #ccc;
}

/* ================================
   SUBMIT = CTA BUTTON STYLE
================================ */

.miniform .submit {
  display: inline-block;
  width: 100%;

  background: #7a0000 !important;
  color: #ffffff !important;

  padding: 12px 24px;
  font-weight: bold;

  border: none;
  border-radius: 0;

  text-transform: none;
  letter-spacing: normal;

  cursor: pointer;
  transition: all 0.2s ease;
}

/* HOVER wie CTA */

.miniform .submit:hover {
  background: #a00000 !important;
  color: #ffffff !important;
  transform: scale(1.05);
}

/* ================================
   MINIFORM GRID FIX
================================ */


/* CONTAINER */
.miniform {
  width: 100%;
  margin: 20px 0;

  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;

  background: rgba(0,0,0,0.75);
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);

  padding: 15px;
}

/* ÜBERSCHRIFTEN */
.miniform h3 {
  margin: 20px 0 10px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #aaa;
}

/* FORM GRID */
.miniform form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

/* SPALTEN */
.miniform .half {
  width: 100%;
}

.miniform .full {
  grid-column: 1 / -1;
}



/* alte Layoutklassen neutralisieren */
.miniform .onethird,
.miniform .twothird {
  width: 100% !important;
}

/* float deaktivieren */
.miniform .pullright {
  float: none !important;
}

/* wichtig: gleichmäßige Spalten erzwingen */
.miniform form {
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
/* LABEL */
.miniform label {
  display: block;
  font-size: 14px;
  color: #ccc;
}

/* INPUTS */
.miniform input,
.miniform textarea,
.miniform select {
  width: 100%;
  margin-top: 5px;
  padding: 15px;

  background: rgba(20,20,20,0.9);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 4px;

  color: #fff;
}

/* FOCUS */
.miniform input:focus,
.miniform textarea:focus,
.miniform select:focus {
  border-color: #7a0000;
  box-shadow: 0 0 8px rgba(122,0,0,0.6);
  outline: none;
}



/* CHECKBOX / RADIO */
.miniform .grouping label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.4;
  cursor: pointer;
}

.miniform input[type="checkbox"],
.miniform input[type="radio"] {
  transform: scale(1.1);
  margin-top: 3px;
}

/* ================================
   INLINE OPTIONEN (ESSEN ETC.)
================================ */

.miniform .grouping.inline-options {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  gap: 20px;
}

/* Labels nebeneinander */
.miniform .inline-options label {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ================================
   TEXT / SMALL
================================ */

.miniform small {
  display: block;
  margin-bottom: 15px;
  color: #aaa;
}

/* ================================
   BUTTON
================================ */

.miniform .submit {
  width: 100%;
  padding: 14px;

  background: #7a0000 !important;
  color: #fff !important;

  font-weight: bold;
  border: none;

  cursor: pointer;
  transition: all 0.2s ease;
}

.miniform .submit:hover {
  background: #a00000 !important;
  transform: scale(1.03);
}

/* ================================
   MOBILE
================================ */

@media (max-width: 768px) {

  .miniform form {
    grid-template-columns: 1fr;
  }

  .miniform .grouping.inline-options {
    flex-direction: column;
    gap: 10px;
  }

  .miniform {
    padding: 10px;
  }

  .miniform input[name="captcha"] {
    width: 100%;
    font-size: 18px;
    padding: 2px; mind-width: 90px;
  }

 
}

/* ===== KONTAKT BLOCK ===== */

.contact-box {
  margin-top: 20px;
  line-height: 1.8;
}

.contact-box strong {
  display: block;
  margin-bottom: 5px;
  font-size: 16px;
  letter-spacing: 1px;
}

/* ===== BUTTON ===== */

.contact-button {
  display: inline-block;
  margin-top: 25px;

  background: #7a0000;
  color: #fff !important;

  padding: 12px 24px;
  text-decoration: none;
  font-weight: bold;

  border-radius: 4px;

  transition: all 0.3s ease;
}

.contact-button:hover {
  background: #a00000;
  box-shadow: 0 0 12px rgba(160,0,0,0.6);
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {

  .scroll-section {
    margin: 50px 15px;
    padding: 20px;
  }

  .scroll-text {
    font-size: 16px;
  }

}

/* ======================================================
   SUBPAGES
====================================================== */

.event-subpage {
  font-family: Georgia,
 serif;
  color: #d0d0d0;
}

.sub-hero {
  padding: 60px 20px;
  text-align: center;
  background: rgba(0,0,0,0.65);
}

.content-area {
  max-width: 700px;
  margin: 60px auto;
  padding: 0 20px;
  font-size: 18px;
  line-height: 1.7;
}


/* ======================================================
   MOBILE GLOBAL
====================================================== */

@media (max-width: 768px) {

  .hero h1 { font-size: 28px; }

  .tension { font-size: 18px; }

  .info {
    flex-direction: column;
    align-items: center;
  }

  .info-box {
    width: 90%;
  }

}


/* ======================================================
   NEBEL EFFEKT (CINEMATIC)
====================================================== */

/* ===== HERO NEBEL ===== */

/* ===== HERO NEBEL FIX FINAL ===== */

.hero {
  position: relative;
  overflow: hidden;
}

/* OBERER NEBEL */
.hero::after {
  content: "";
  position: absolute;

  top: -100px;
  left: -100px;
  width: calc(100% + 200px);
  height: calc(100% + 200px);

  background:
    radial-gradient(circle at 20% 30%,
 rgba(255,255,255,0.08),
 transparent 60%),
    radial-gradient(circle at 80% 60%,
 rgba(255,255,255,0.06),
 transparent 70%),
    radial-gradient(circle at 50% 80%,
 rgba(255,255,255,0.05),
 transparent 65%);

  pointer-events: none;
  animation: fogMove 30s linear infinite;
}

/* UNTERER NEBEL */
.hero::before {
  content: "";
  position: absolute;

  bottom: -100px;
  left: -100px;
  width: calc(100% + 200px);
  height: calc(60% + 200px);

  background:
    radial-gradient(ellipse at 50% 100%,
 rgba(255,255,255,0.18),
 transparent 70%),
    radial-gradient(ellipse at 20% 100%,
 rgba(255,255,255,0.12),
 transparent 70%),
    radial-gradient(ellipse at 80% 100%,
 rgba(255,255,255,0.10),
 transparent 70%);

  pointer-events: none;
  animation: fogGround 20s ease-in-out infinite;
}

/* ===== SCROLL SECTIONS (UPGRADE) ===== */

.scroll-section {
  max-width: 900px;
  margin: 40px auto;
  padding: 30px;

  background: rgba(0,0,0,0.75);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;

  box-shadow: 0 10px 30px rgba(0,0,0,0.6);

  position: relative;
  overflow: hidden;

  opacity: 1;
  transform: translateY(40px);
  transition: all 0.8s ease;
}

/* ===== NEBEL EFFEKT ===== */

.scroll-section::after {
  content: "";
  position: absolute;
  inset: 0;

  background:
    radial-gradient(circle at 20% 30%,
 rgba(255,255,255,0.05),
 transparent 60%),
    radial-gradient(circle at 80% 60%,
 rgba(255,255,255,0.04),
 transparent 70%);

  opacity: 0.6;
  pointer-events: none;

  animation: fogMoveSection 25s linear infinite;
}

/* Bewegung */
@keyframes fogMoveSection {
  0%   { background-position: 0% 0%; }
  50%  { background-position: 5% 5%; }
  100% { background-position: 0% 0%; }
}



/* ===== ANIMATION ===== */

.js .scroll-section {
  opacity: 0;
}

.scroll-section.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== TITEL ===== */

.scroll-title {
  font-size: 28px;
  margin-bottom: 20px;
  letter-spacing: 2px;
}

/* ===== TEXT ===== */

.scroll-text {
  font-size: 18px;
  line-height: 1.7;
  color: #ddd;
}

/* ===== HIGHLIGHT ===== */

.scroll-highlight {
  margin-top: 20px;
  font-style: italic;
  color: #fff;
}

/* ===== HOVER EFFEKT (OPTIONAL) ===== */

.scroll-section:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0,0,0,0.8);
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {
  .scroll-section {
    margin: 20px 15px;
    padding: 20px;
  }

  .scroll-text {
    font-size: 16px;
  }
}

/* ===== FAQ BASIS ===== */
.faq-wrapper {
  background: rgba(0,0,0,0.92);
  padding: 140px 20px 100px;
  position: static; /* WICHTIG */
  overflow: visible;
}

/* ===== NEBEL (HINTER ALLEM) ===== */
.faq-wrapper::after {
  content: "";
  position: fixed; /* WICHTIG */
  inset: -100px;

  background:
    radial-gradient(circle at 25% 30%,
 rgba(255,255,255,0.05),
 transparent 60%),
    radial-gradient(circle at 75% 60%,
 rgba(255,255,255,0.04),
 transparent 70%);

  animation: fogMove 45s linear infinite;
  pointer-events: none;
  z-index: -1; /* ENTSCHEIDEND */
}

@keyframes fogMove {
  0% { transform: translate(0,0); }
  50% { transform: translate(30px,15px); }
  100% { transform: translate(0,0); }
}

/* ===== CONTAINER ===== */
.faq-container {
  max-width: 950px;
  margin: 0 auto;
}

/* ===== INTRO ===== */
.faq-intro {
  text-align: center;
  margin-bottom: 60px;
  color: #bbb;
  font-size: 18px;
  line-height: 1.6;
}

/* ===== ABSCHNITTE ===== */
.faq-category {
  margin-top: 50px;
  padding: 30px 25px;

  background: rgba(10,10,10,0.85);
  border: 1px solid rgba(255,255,255,0.05);
  border-radius: 6px;

  transition: 0.3s ease;
}

.faq-category:hover {
  border-color: rgba(255,255,255,0.12);
}

/* ===== TITEL ===== */
.faq-category h2 {
  font-size: 15px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #aaa;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: 10px;
}

/* ===== ITEM ===== */
.faq-item {
  margin-bottom: 10px;
}

.faq-question {
  cursor: pointer;
  font-size: 18px;
  position: relative;
  padding: 12px 0;
}

.faq-question::after {
  content: "+";
  position: absolute;
  right: 0;
  transition: 0.3s;
}

.faq-item.active .faq-question::after {
  transform: rotate(45deg);
}

/* ===== ANTWORT ===== */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: 0.4s ease;
}

.faq-item.active .faq-answer {
  max-height: 500px;
  opacity: 1;
  margin-top: 10px;
}

/* ===== AKTENLOOK ===== */
.faq-answer-inner {
  background: rgba(20,20,20,0.95);
  border-left: 3px solid #7a0000;
  padding: 15px 20px;
  font-family: "Courier New",
 monospace;
  color: #ddd;
  position: relative;
}

/* Label */
.faq-answer-inner::before {
  content: "Akte";
  position: absolute;
  top: 5px;
  right: 10px;
  font-size: 10px;
  color: rgba(255,255,255,0.2);
  letter-spacing: 2px;
}

/* Schreibmaschine */
.typing::after {
  content: "|";
  margin-left: 5px;
  animation: blink 1s infinite;
}

@keyframes blink {
  50% { opacity: 0; }
}

/* ===== STORY ===== */
.faq-highlight {
  text-align: center;
  margin-top: 70px;
  color: #ccc;
  font-size: 18px;
}

/* ===== CTA ===== */
.faq-cta {
  text-align: center;
  margin-top: 30px;
}

/* ================================
   PARTNER SECTION
================================ */

.partner-section {
  text-align: center;
}

/* GRID */

.partner-grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  flex-wrap: wrap;

  margin-top: 50px;
}

/* EINZELNE LOGOS */

.partner-item {
  position: relative;
}

/* LOGOS */

.partner-item img {
  max-width: 200px;
  height: auto;

  opacity: 0.9;

  transition: transform 0.3s ease;
}

/* ================================
   GLOW + PULSE (HAUPTEFFEKT)
================================ */

.partner-item::before {
  content: "";
  position: absolute;

  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  width: 120%;
  height: 120%;

  background: radial-gradient(circle,
    rgba(255,255,255,0.15) 0%,
    rgba(255,255,255,0.08) 40%,
    transparent 70%
  );

  filter: blur(25px);
  z-index: -1;

  animation: partnerPulse 4s ease-in-out infinite;
}

.partner-item {
  cursor: pointer;
}

.partner-item:hover img {
  transform: scale(1.07);
}

/* ANIMATION */

@keyframes partnerPulse {
  0%   { transform: translate(-50%, -50%) scale(0.9); opacity: 0.4; }
  50%  { transform: translate(-50%, -50%) scale(1.1); opacity: 0.8; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.4; }
}

/* HOVER */

.partner-item:hover img {
  transform: scale(1.05);
}

/* ================================
   FADE-IN (falls noch nicht global vorhanden)
================================ */

.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}



/* ================================
   MOBILE
================================ */

@media (max-width: 768px) {

  .partner-grid {
    gap: 30px;
  }

  .partner-item img {
    max-width: 140px;
  }

}

/* ================================
   INTRO BLOCK (CINEMATIC)
================================ */

.intro-block {
  position: relative;
  padding: 100px 20px;
  overflow: hidden;
  text-align: center;
}

/* Nebel / Licht */

.intro-block::before {
  content: "";
  position: absolute;
  inset: 0;

  background:
    radial-gradient(circle at 30% 40%, rgba(255,255,255,0.08), transparent 70%),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,0.05), transparent 80%);

  opacity: 0.4;
  animation: introFog 20s linear infinite;
  pointer-events: none;
}

/* Inhalt */

.intro-inner {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin: 0 auto;
}

/* TITLE */

.intro-title {
  font-size: 32px;
  letter-spacing: 3px;
  text-transform: uppercase;

  opacity: 0;
  transform: translateY(40px);

  animation: introReveal 1.2s ease forwards;
}

/* TEXT */

.intro-text {
  margin-top: 20px;
  font-size: 18px;
  color: #ccc;

  opacity: 0;
  transform: translateY(40px);

  animation: introReveal 1.2s ease forwards;
  animation-delay: 0.4s;
}

/* Glow Effekt */


/* ================================
   INTRO GLOW (VERBESSERT)
================================ */

.story-intro .intro-title {
  text-shadow:
    0 0 10px rgba(255,255,255,0.2),
    0 0 20px rgba(255,255,255,0.15),
    0 0 40px rgba(255,255,255,0.1);

  animation: introGlowPulse 4s ease-in-out infinite;
}

/* Text subtil */

.story-intro .intro-text {
  text-shadow:
    0 0 6px rgba(255,255,255,0.1),
    0 0 12px rgba(255,255,255,0.08);
}

/* Pulsieren */

@keyframes introGlowPulse {
  0% {
    text-shadow:
      0 0 8px rgba(255,255,255,0.15),
      0 0 16px rgba(255,255,255,0.1);
  }
  50% {
    text-shadow:
      0 0 18px rgba(255,255,255,0.35),
      0 0 40px rgba(255,255,255,0.2);
  }
  100% {
    text-shadow:
      0 0 8px rgba(255,255,255,0.15),
      0 0 16px rgba(255,255,255,0.1);
  }
}

/* Animation */

@keyframes introReveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes introFog {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50px); }
}

.intro-title,
.intro-text {
  opacity: 0;
  transform: translateY(40px);
}

.intro-block.visible .intro-title {
  animation: introReveal 1.2s ease forwards;
}

.intro-block.visible .intro-text {
  animation: introReveal 1.2s ease forwards;
  animation-delay: 0.4s;
}

/* ================================
   STORY INTRO (DUNKLER / RUHIGER)
================================ */

.story-intro {
  position: relative;
  padding: 120px 20px;
  text-align: center;
  overflow: hidden;
}

.story-toggle {
  cursor: pointer;
  margin-bottom: 20px;
}

.story-toggle h3 {
  font-size: 26px;
  letter-spacing: 2px;
  transition: all 0.3s ease;
}

.story-toggle:hover h3 {
  color: #fff;
  transform: scale(1.03);
}

/* VERSTECKT */
.story-hidden {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.6s ease;
}

/* AKTIV */
.story-hidden.active {
  max-height: 1000px;
  opacity: 1;
}

.type-line-story {
  opacity: 0;
}

.type-line-story.visible {
  opacity: 1;
}

.type-line-story.typing::after {
  content: "|";
  margin-left: 5px;
  animation: blink 1s infinite;
}

/* dunkler Nebel */

.story-intro::before {
  content: "";
  position: absolute;
  inset: 0;

  background:
    radial-gradient(circle at 50% 40%, rgba(255,255,255,0.05), transparent 70%),
    radial-gradient(circle at 30% 60%, rgba(255,255,255,0.04), transparent 80%);

  opacity: 0.3;
  animation: fogSlow 30s linear infinite;
}

/* Titel */

.story-intro .intro-title {
  font-size: 34px;
  letter-spacing: 4px;
  text-transform: uppercase;

  opacity: 0;
  transform: translateY(40px);
}

/* Text */

.story-intro .intro-text {
  margin-top: 25px;
  font-size: 18px;
  color: #bbb;
}

/* ruhigere Animation */

@keyframes fogSlow {
  0% { transform: translateX(0); }
  100% { transform: translateX(-30px); }
}


.story-intro {
  position: relative;
  overflow: hidden;
}

/* IDENTISCHER NEBEL / GLOW */

.story-intro::after {
  content: "";
  position: absolute;
  inset: 0;

  background:
    radial-gradient(circle at 30% 40%, rgba(255,255,255,0.06), transparent 70%),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,0.04), transparent 80%);

  pointer-events: none;
  opacity: 0.6;
}

.cta-button {
  animation: pulseCTA 2.5s infinite;
}

@keyframes pulseCTA {
  0% { transform: scale(1); }
  50% { transform: scale(1.04); }
  100% { transform: scale(1); }
}

@media (max-width: 768px) {
  .scroll-section {
    padding: 40px 15px;
  }
}

/* ================================
   CHECKBOX FIX – DER ECHTE FIX
================================ */

/* Checkbox darf NICHT full width sein */
.miniform input[type="checkbox"] {
  width: auto !important;
  display: inline-block; 
}

/* Radio gleich mit fixen (sonst später gleiches Problem) */
.miniform input[type="radio"] {
  width: auto !important;
  display: inline-block;
}

/* Deine Checkbox-Zeile */
.miniform .checkbox-row {
  display: flex;
  align-items: center;
  gap: 8px; height: 30px; 
}

/* Label normal */
.miniform .checkbox-row label {
  width: auto !important;
  display: inline;
}

/* ================================
   ESSEN – SAUBERE AUSRICHTUNG
================================ */

.essen-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

/* feste Spalte für Text */
.essen-text {
  width: 150px;      /* hier kannst du feinjustieren */
  flex: 0 0 150px;
}

/* Input bleibt kompakt */
.essen-row input[type="number"] {
  width: 100px;
}

