/* Turnier-Block und Anmelde-Modal (nutzt die Variablen aus styles.css) */
.event-glass{ max-width:1000px; text-align:center; }
.event-eyebrow{
  margin:0 0 0.9rem;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.8rem;
  font-weight:500;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--brass-bright);
}
.section-glass .event-title{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:clamp(1.6rem, 4vw, 2.5rem);
  line-height:1.2;
  margin:0 auto 1rem;
  max-width:28ch;
  text-wrap:balance;
  color:var(--board-light);
}
.event-when{
  margin:0 0 1.2rem;
  font-family:'Fraunces',serif;
  font-style:italic;
  font-size:1.2rem;
  color:var(--brass-bright);
}
.event-lede{
  max-width:56ch;
  margin:0 auto 2rem;
  font-size:1rem;
  line-height:1.7;
  color:var(--ink-dim);
}
.event-lede strong{ color:var(--ink); font-weight:600; }
.event-actions{ margin-bottom:2.6rem; }
.chip-solid{
  background:var(--brass-bright);
  border-color:var(--brass-bright);
  color:var(--board-dark);
  font-weight:500;
  cursor:pointer;
}
.chip-solid:hover{ background:#E6C98F; border-color:#E6C98F; color:var(--board-dark); }
button.chip{ font-family:'IBM Plex Mono',monospace; cursor:pointer; }
.chip:focus-visible,
.bank-copy:focus-visible,
.modal-close:focus-visible,
.modal-form a:focus-visible,
.event-more a:focus-visible{
  outline:2px solid var(--brass-bright);
  outline-offset:3px;
}

/* Fakten-Kacheln (wie auf schachburg.at) */
.event-facts{
  list-style:none;
  margin:0 0 2.2rem;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(184,146,90,0.25);
  border-left:1px solid rgba(184,146,90,0.25);
  text-align:left;
}
.event-facts li{
  position:relative;
  padding:1.4rem 1.4rem 1.5rem;
  border-right:1px solid rgba(184,146,90,0.25);
  border-bottom:1px solid rgba(184,146,90,0.25);
  transition:box-shadow .25s ease, background-color .25s ease;
}
.event-facts li:hover{
  z-index:1;
  background:rgba(217,183,118,0.06);
  box-shadow:inset 0 0 0 2px var(--brass-bright);
}
.fact-key{
  display:block;
  margin:0 0 0.55rem;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--brass-bright);
}
.fact-val{
  display:block;
  margin:0;
  font-size:0.95rem;
  line-height:1.6;
  color:var(--ink-dim);
}
.fact-val b{ color:var(--ink); font-weight:600; }

/* Nenngeld-Streifen */
.bank-strip{
  margin:0 0 1.8rem;
  padding:1.8rem 1.8rem 1.5rem;
  background:rgba(20,24,26,0.45);
  border:1px solid rgba(184,146,90,0.3);
  border-top:2px solid var(--brass-bright);
  border-radius:10px;
  text-align:left;
}
.bank-title{
  margin:0 0 0.4rem;
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:1.35rem;
  color:var(--board-light);
}
.bank-intro{ margin:0 0 1.3rem; font-size:0.9rem; line-height:1.6; color:var(--ink-dim); }
.bank-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:1.1rem 1.6rem;
  margin:0;
}
.bank-grid dd{ margin:0; }
.bank-iban{ display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; }
.bank-iban span{ font-family:'IBM Plex Mono',monospace; font-size:0.88rem; color:var(--ink); }
.bank-copy{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;
  padding:0.4rem 0.75rem;
  color:var(--brass-bright);
  background:transparent;
  border:1px solid rgba(184,146,90,0.55);
  border-radius:999px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.bank-copy:hover{ background:var(--brass-bright); color:var(--board-dark); }
.event-more{ margin:0; font-size:0.95rem; color:var(--ink-dim); }
.event-more a{
  color:var(--brass-bright);
  text-decoration:underline;
  text-underline-offset:4px;
}
.event-more a:hover{ color:var(--board-light); }

/* Anmelde-Modal */
.modal-overlay{
  position:fixed;
  inset:0;
  z-index:100;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:1.5rem 1rem;
  overflow-y:auto;
  background:rgba(10,12,13,0.75);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0;
  transition:opacity .25s ease;
}
.modal-overlay[hidden]{ display:none; }
.modal-overlay.is-open{ opacity:1; }
.modal-card{
  position:relative;
  width:100%;
  max-width:640px;
  margin:auto;
  padding:2.6rem 2.4rem 2rem;
  background:var(--board-dark-2);
  border:1px solid rgba(184,146,90,0.35);
  border-top:2px solid var(--brass-bright);
  border-radius:16px;
  box-shadow:0 24px 70px rgba(0,0,0,0.6), inset 0 0 50px rgba(217,183,118,0.05);
  transform:translateY(12px);
  transition:transform .25s ease;
}
.modal-overlay.is-open .modal-card{ transform:none; }
.modal-close{
  position:absolute;
  top:0.6rem;
  right:0.8rem;
  width:44px;
  height:44px;
  border:none;
  background:none;
  font-size:1.9rem;
  line-height:1;
  color:var(--ink-dim);
  cursor:pointer;
}
.modal-close:hover{ color:var(--brass-bright); }
.modal-title{
  margin:0 0 0.3rem;
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:1.7rem;
  color:var(--board-light);
}
.modal-sub{
  margin:0 0 1.6rem;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.8rem;
  letter-spacing:0.04em;
  color:var(--brass-bright);
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 1rem;
}
.form-group{ margin-bottom:1rem; text-align:left; }
.form-group label{
  display:block;
  margin-bottom:0.4rem;
  font-size:0.82rem;
  font-weight:500;
  color:var(--ink);
}
.req{ color:#E0907F; }
.opt{ font-weight:400; color:var(--ink-dim); }
.form-group input{
  width:100%;
  padding:0.75rem 0.9rem;
  font:400 0.95rem 'Inter',sans-serif;
  color:var(--ink);
  background:rgba(242,237,226,0.06);
  border:1px solid rgba(184,146,90,0.4);
  border-radius:8px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-group input::placeholder{ color:#6f776e; }
.form-group input:focus{
  outline:none;
  border-color:var(--brass-bright);
  box-shadow:0 0 0 3px rgba(217,183,118,0.28);
}
.form-group input.invalid{ border-color:#E0907F; }
.input-char-wrap{ position:relative; }
.input-char-wrap input{ padding-right:4.4rem; }
.char-count{
  position:absolute;
  right:0.8rem;
  top:50%;
  transform:translateY(-50%);
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;
  color:var(--ink-dim);
  pointer-events:none;
}
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
}
.form-msg{
  margin:0.3rem 0 1rem;
  padding:0.8rem 0.95rem;
  font-size:0.9rem;
  line-height:1.55;
  white-space:pre-line;
  text-align:left;
  border-radius:8px;
}
.form-msg.success{ background:rgba(51,71,58,0.55); border:1px solid #5f8a6c; color:#d9ecdf; }
.form-msg.error{ background:rgba(120,40,40,0.35); border:1px solid #b86a6a; color:#f3d6d6; }
.form-submit{ width:100%; padding:1rem; text-align:center; }
.form-submit:disabled{ opacity:.6; cursor:default; }
.form-privacy-note{
  margin:0.9rem 0 0;
  font-size:0.75rem;
  line-height:1.5;
  color:var(--ink-dim);
  text-align:center;
}
.form-privacy-note a{ color:var(--brass-bright); }

@media (max-width:860px){
  .event-facts{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .event-facts{ grid-template-columns:1fr; }
  .bank-strip{ padding:1.4rem 1.1rem 1.1rem; }
  .modal-card{ padding:2.4rem 1.2rem 1.4rem; }
  .form-row{ grid-template-columns:1fr; }
  .event-actions .chip{ width:100%; text-align:center; }
}
@media (prefers-reduced-motion:reduce){
  .modal-overlay, .modal-card, .event-facts li, .bank-copy{ transition:none; }
}

.event-photo-note{
  max-width:52em;
  margin:1.4rem auto 0;
  font-size:0.82rem;
  line-height:1.6;
  color:var(--ink-dim);
}
.event-photo-note a{ color:var(--brass-bright); }
.event-photo-note a:focus-visible{ outline:2px solid var(--brass-bright); outline-offset:3px; }

/* Barrierefreiheit: Platzhalter mit ausreichendem Kontrast (WCAG AA 4,5:1) */
.form-group input::placeholder{ color:#959d93; }

/* Reflow: Kacheln dürfen bei großer Schrift und schmalem Display nicht überlaufen */
.event-facts{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.fact-key, .fact-val{ overflow-wrap:anywhere; }
@media (max-width:860px){ .event-facts{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .event-facts{ grid-template-columns:minmax(0,1fr); } }

/* Reflow auch für die Referenzliste (bestehender Bereich) */
.reference-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.reference-grid li span{ overflow-wrap:anywhere; }
@media (max-width:640px){ .reference-grid{ grid-template-columns:minmax(0,1fr); } }

/* Reflow Footer (bestehender Bereich) */
.brand{ flex-wrap:wrap; }
.brand-name, .legal-section p, .legal-section a, .legal-section h3{ overflow-wrap:anywhere; }
@media (max-width:760px){ .legal-grid{ grid-template-columns:minmax(0,1fr); } }
