/* event.com.de — Global polish CSS
 * F (contrast) + H (typography/layout) + G (base header/nav support)
 * Last updated: 2026-04-12
 * Safe global defaults — respects inline styles
 */

/* ==================== CSS VARIABLES ==================== */
:root{
  --e-primary:#6366f1;
  --e-primary-dark:#4338ca;
  --e-primary-light:#818cf8;
  --e-accent:#8b5cf6;
  --e-text:#0f172a;
  --e-text-muted:#475569;
  --e-text-light:#64748b;
  --e-bg:#ffffff;
  --e-bg-alt:#f8fafc;
  --e-bg-muted:#f1f5f9;
  --e-border:#e2e8f0;
  --e-border-strong:#cbd5e1;
  --e-success:#10b981;
  --e-warning:#f59e0b;
  --e-danger:#ef4444;
  --e-radius:12px;
  --e-radius-sm:8px;
  --e-radius-lg:18px;
  --e-shadow-sm:0 1px 3px rgba(15,23,42,.06);
  --e-shadow:0 4px 12px rgba(15,23,42,.08);
  --e-shadow-lg:0 12px 40px rgba(15,23,42,.12);
  --e-container:1200px;
  --e-font:'Inter','Helvetica Neue',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ==================== RESET + BASE (H) ==================== */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--e-font);
  font-weight:400;
  line-height:1.65;
  color:var(--e-text);
  background:var(--e-bg-alt);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
*,*::before,*::after{box-sizing:border-box}
img,svg,video{max-width:100%;height:auto}

/* ==================== CONTRAST FIX (F) ==================== */
/* Ensure minimum readable contrast — fix white-on-white, black-on-black */
body, main, article, section, div, p, span, li, td, th {
  /* If element has no specific color, use dark text */
}
/* Only target elements that have NO color AND NO background set */
main p:not([style*="color"]):not([class*="btn"]):not([class*="card"]) {
  color:var(--e-text);
}
/* White-on-white guard */
[style*="background:#fff"] [style*="color:#fff"],
[style*="background:white"] [style*="color:white"],
[style*="background: #fff"] [style*="color: #fff"],
[style*="background: white"] [style*="color: white"]{
  color:var(--e-text) !important;
}
/* Dark-on-dark guard */
[style*="background:#000"] [style*="color:#000"],
[style*="background:black"] [style*="color:black"],
[style*="background:#0f172a"] [style*="color:#0f172a"],
[style*="background:#1e293b"] [style*="color:#1e293b"]{
  color:#ffffff !important;
}

/* Ensure link contrast */
a{
  color:var(--e-primary);
  text-decoration:none;
  transition:color .15s;
}
a:hover{color:var(--e-primary-dark);text-decoration:underline}
a:visited{color:var(--e-primary-dark)}

/* ==================== TYPOGRAPHY (H) ==================== */
h1,h2,h3,h4,h5,h6{
  color:var(--e-text);
  font-weight:700;
  line-height:1.25;
  margin:1.8em 0 .6em;
  letter-spacing:-.01em;
}
h1{font-size:clamp(1.85rem,4vw,2.6rem);font-weight:800;letter-spacing:-.015em;margin-top:0}
h2{font-size:clamp(1.45rem,2.6vw,1.85rem);font-weight:800;letter-spacing:-.01em;border-bottom:0}
h3{font-size:clamp(1.2rem,1.8vw,1.4rem);font-weight:700}
h4{font-size:1.1rem;font-weight:700}
h5{font-size:1rem;font-weight:700}
h6{font-size:.92rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}

p{
  margin:0 0 1.1em;
  line-height:1.7;
  color:var(--e-text);
}

ul,ol{margin:0 0 1.2em;padding-left:1.5em;line-height:1.7}
li{margin:.3em 0}

strong,b{font-weight:700;color:var(--e-text)}
em,i{font-style:italic}

code,pre{
  font-family:'SF Mono','Monaco','Consolas',monospace;
  font-size:.92em;
  background:var(--e-bg-muted);
  padding:.15em .4em;
  border-radius:4px;
}

blockquote{
  border-left:4px solid var(--e-primary);
  padding:.8em 1.2em;
  margin:1.5em 0;
  background:var(--e-bg-muted);
  font-style:italic;
  border-radius:0 var(--e-radius-sm) var(--e-radius-sm) 0;
}

hr{
  border:0;
  height:1px;
  background:var(--e-border);
  margin:2.5em 0;
}

/* ==================== TABLES (H) ==================== */
main table,article table{
  width:100%;
  border-collapse:collapse;
  margin:1.5em 0;
  background:var(--e-bg);
  border-radius:var(--e-radius);
  overflow:hidden;
  box-shadow:var(--e-shadow-sm);
  font-size:.94rem;
}
main table th,article table th{
  background:linear-gradient(135deg,var(--e-primary) 0%,var(--e-accent) 100%);
  color:#ffffff;
  padding:14px 18px;
  text-align:left;
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.01em;
}
main table td,article table td{
  padding:12px 18px;
  border-bottom:1px solid var(--e-border);
  color:var(--e-text);
  vertical-align:top;
}
main table tr:nth-child(even) td,article table tr:nth-child(even) td{
  background:var(--e-bg-alt);
}
main table tr:last-child td,article table tr:last-child td{
  border-bottom:0;
}
main table tr:hover td,article table tr:hover td{
  background:#eef2ff;
}

/* ==================== BUTTONS + CTAs ==================== */
button,.btn,a.btn{
  display:inline-block;
  padding:12px 24px;
  background:linear-gradient(135deg,var(--e-primary),var(--e-accent));
  color:#ffffff;
  border:0;
  border-radius:var(--e-radius-sm);
  font-weight:600;
  font-size:.98rem;
  font-family:inherit;
  cursor:pointer;
  text-decoration:none;
  transition:transform .15s,box-shadow .15s;
  box-shadow:var(--e-shadow-sm);
}
button:hover,.btn:hover,a.btn:hover{
  transform:translateY(-2px);
  box-shadow:var(--e-shadow);
  color:#ffffff;
}

/* ==================== FORMS ==================== */
input[type="text"],input[type="email"],input[type="search"],
input[type="tel"],input[type="url"],input[type="number"],
textarea,select{
  width:100%;
  padding:11px 14px;
  border:1px solid var(--e-border-strong);
  border-radius:var(--e-radius-sm);
  background:var(--e-bg);
  font-family:inherit;
  font-size:.98rem;
  color:var(--e-text);
  transition:border-color .15s,box-shadow .15s;
}
input:focus,textarea:focus,select:focus{
  outline:none;
  border-color:var(--e-primary);
  box-shadow:0 0 0 3px rgba(99,102,241,.15);
}

/* ==================== CARDS + CONTAINERS ==================== */
main > article,main > section{
  background:var(--e-bg);
}

/* FAQ items */
.faq-item,details{
  background:var(--e-bg);
  border:1px solid var(--e-border);
  border-radius:var(--e-radius);
  padding:18px 22px;
  margin-bottom:12px;
  box-shadow:var(--e-shadow-sm);
}
.faq-item h3,.faq-item h4,details summary{
  margin-top:0;
  margin-bottom:.4em;
  font-weight:700;
  color:var(--e-text);
}

/* ==================== ACCESSIBILITY ==================== */
:focus-visible{
  outline:3px solid var(--e-primary);
  outline-offset:2px;
  border-radius:4px;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ==================== SCROLLBAR ==================== */
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--e-bg-muted)}
::-webkit-scrollbar-thumb{background:var(--e-border-strong);border-radius:6px;border:2px solid var(--e-bg-muted)}
::-webkit-scrollbar-thumb:hover{background:var(--e-text-light)}

/* ==================== MOBILE ==================== */
@media (max-width:780px){
  h1{font-size:1.75rem;line-height:1.2}
  h2{font-size:1.35rem}
  h3{font-size:1.15rem}
  main table{font-size:.88rem}
  main table th,main table td{padding:10px 12px}
}

/* ==================== PRINT ==================== */
@media print{
  body{background:#ffffff;color:#000000}
  .sitewide-header-shell,footer,.ad-friendly-enrichment,script,style{display:none !important}
  a{color:#000000;text-decoration:underline}
}

/* ==================== REDUCED MOTION ==================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
