/* Trans BWG Abschlusswebsite – ohne externe Fonts, Skripte oder Tracker */
:root {
  --primary: #173a63;
  --primary-dark: #102b4b;
  --accent: #e6382f;
  --accent-dark: #c82922;
  --text: #1c2633;
  --muted: #637083;
  --surface: #fff;
  --surface-soft: #f4f7fa;
  --line: #dce3ea;
  --success: #146c43;
  --danger: #a52323;
  --shadow: 0 18px 55px rgba(16,43,75,.12);
  --radius: 22px;
  --max-width: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; color: var(--text); background: var(--surface);
  font-family: Arial, Helvetica, sans-serif; font-size: 17px; line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }
.container { width: min(calc(100% - 40px), var(--max-width)); margin-inline: auto; }
.skip-link { position:absolute; left:-9999px; top:8px; padding:10px 14px; background:#fff; z-index:999; }
.skip-link:focus { left:8px; }
.topbar { padding:9px 0; color:#fff; background:var(--primary-dark); font-size:14px; }
.topbar-inner { display:flex; justify-content:space-between; gap:24px; align-items:center; }
.topbar a { text-decoration:none; }
.site-header { background:rgba(255,255,255,.98); border-bottom:1px solid var(--line); }
.header-inner { min-height:98px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; width:260px; align-items:center; text-decoration:none; }
.brand img { display:block; width:100%; }
.main-nav { display:flex; gap:24px; align-items:center; }
.main-nav a { color:var(--primary); text-decoration:none; font-weight:700; font-size:15px; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color:var(--accent); }
.header-note { color:var(--primary); font-size:14px; font-weight:700; text-align:right; }
.hero {
  position:relative; overflow:hidden; color:#fff;
  background:radial-gradient(circle at 80% 20%,rgba(230,56,47,.24),transparent 28%),
  linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 62%,#245b91 100%);
}
.hero::after { content:""; position:absolute; right:-130px; bottom:-220px; width:520px; height:520px; border:70px solid rgba(255,255,255,.05); border-radius:50%; }
.hero-inner { position:relative; z-index:1; min-height:600px; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:70px; align-items:center; padding:88px 0; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; margin-bottom:22px; font-size:14px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.eyebrow::before { content:""; width:36px; height:3px; border-radius:99px; background:var(--accent); }
h1,h2,h3 { margin-top:0; line-height:1.15; }
h1 { max-width:850px; margin-bottom:24px; font-size:clamp(42px,6vw,76px); letter-spacing:-.045em; }
.hero-lead { max-width:760px; margin:0 0 34px; color:rgba(255,255,255,.86); font-size:clamp(19px,2vw,23px); }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; }
.button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; padding:12px 23px; border:2px solid transparent; border-radius:9px; font-weight:800; text-decoration:none; cursor:pointer; font:inherit; transition:transform .16s ease,background .16s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:#fff; background:var(--accent); }
.button-primary:hover { background:var(--accent-dark); }
.button-secondary { color:#fff; border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.05); }
.status-card { padding:34px; color:var(--text); background:rgba(255,255,255,.97); border-radius:var(--radius); box-shadow:var(--shadow); }
.status-icon { width:56px; height:56px; display:grid; place-items:center; margin-bottom:23px; color:#fff; background:var(--accent); border-radius:16px; font-size:26px; font-weight:900; }
.status-card h2 { margin-bottom:15px; color:var(--primary); font-size:27px; }
.status-date { display:block; margin:22px 0; padding:15px 17px; color:var(--primary); background:var(--surface-soft); border-left:4px solid var(--accent); border-radius:7px; font-weight:800; }
.status-card p:last-child { margin-bottom:0; color:var(--muted); }
section { padding:94px 0; }
.section-soft { background:var(--surface-soft); }
.section-heading { max-width:780px; margin-bottom:46px; }
.section-heading .eyebrow { color:var(--accent); }
.section-heading h2 { margin-bottom:18px; color:var(--primary); font-size:clamp(34px,4vw,49px); letter-spacing:-.03em; }
.section-heading p { margin:0; color:var(--muted); font-size:19px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.card { height:100%; padding:31px; background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 30px rgba(16,43,75,.06); }
.card-number { width:42px; height:42px; display:grid; place-items:center; margin-bottom:23px; color:#fff; background:var(--primary); border-radius:12px; font-weight:900; }
.card h3 { margin-bottom:13px; color:var(--primary); font-size:23px; }
.card p,.card li { color:var(--muted); }
.card ul { margin:18px 0 0; padding-left:20px; }
.card a,.text-link { color:var(--accent); font-weight:800; text-underline-offset:4px; }
.notice { display:grid; grid-template-columns:1fr auto; gap:35px; align-items:center; padding:38px 42px; color:#fff; background:var(--primary); border-radius:var(--radius); box-shadow:var(--shadow); }
.notice h2 { margin-bottom:9px; font-size:30px; }
.notice p { max-width:760px; margin:0; color:rgba(255,255,255,.8); }
.contact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:65px; align-items:start; }
.contact-list { display:grid; gap:16px; }
.contact-item { padding:20px 22px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.contact-item small,.contact-item strong { display:block; }
.contact-item small { margin-bottom:3px; color:var(--muted); }
.contact-item strong { color:var(--primary); font-size:18px; }
.contact-item a { color:var(--primary); text-decoration:none; }
.form { padding:34px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 16px 40px rgba(16,43,75,.08); }
.form h3 { margin-bottom:8px; color:var(--primary); font-size:26px; }
.form-intro { margin-top:0; color:var(--muted); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field-full { grid-column:1/-1; }
label { display:block; margin-bottom:7px; color:var(--primary); font-size:14px; font-weight:800; }
input,select,textarea { width:100%; padding:14px 15px; color:var(--text); background:#fff; border:1px solid #cbd5df; border-radius:9px; font:inherit; }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(23,58,99,.12); border-color:var(--primary); }
textarea { min-height:150px; resize:vertical; }
.checkbox-row { display:flex; gap:11px; align-items:flex-start; }
.checkbox-row input { width:auto; margin-top:7px; }
.checkbox-row label { margin:0; font-weight:400; color:var(--muted); }
.form-note { margin:14px 0 0; color:var(--muted); font-size:13px; }
.hp-field { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.alert { margin-bottom:24px; padding:16px 18px; border-radius:10px; font-weight:700; }
.alert-success { color:var(--success); background:#eaf7f0; border:1px solid #a9dac0; }
.alert-error { color:var(--danger); background:#fff0f0; border:1px solid #efbcbc; }
.alert ul { margin:0; padding-left:20px; }
.faq { display:grid; gap:14px; }
details { padding:0 23px; background:#fff; border:1px solid var(--line); border-radius:13px; }
summary { position:relative; padding:21px 38px 21px 0; color:var(--primary); cursor:pointer; font-weight:800; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; position:absolute; top:16px; right:0; color:var(--accent); font-size:28px; }
details[open] summary::after { content:"−"; }
details p { margin:0 0 23px; color:var(--muted); }
.history { color:#fff; background:linear-gradient(135deg,var(--primary-dark),var(--primary)); }
.history-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; align-items:center; }
.history-year { color:rgba(255,255,255,.14); font-size:clamp(90px,15vw,190px); font-weight:900; line-height:.85; letter-spacing:-.08em; }
.history h2 { margin-bottom:20px; font-size:clamp(35px,4vw,50px); }
.history p { color:rgba(255,255,255,.8); font-size:19px; }
.page-hero { padding:70px 0; color:#fff; background:linear-gradient(135deg,var(--primary-dark),var(--primary)); }
.page-hero h1 { margin-bottom:14px; font-size:clamp(38px,5vw,60px); }
.page-hero p { max-width:780px; margin:0; color:rgba(255,255,255,.82); font-size:19px; }
.legal { max-width:900px; }
.legal h2 { margin:48px 0 16px; color:var(--primary); font-size:30px; }
.legal h3 { margin:30px 0 10px; color:var(--primary); font-size:22px; }
.legal p,.legal li { color:#3d4957; }
.legal address { font-style:normal; }
.legal-box { margin:24px 0; padding:22px 24px; background:var(--surface-soft); border-left:4px solid var(--accent); border-radius:8px; }
.placeholder-warning { padding:18px; color:#752020; background:#fff0f0; border:2px solid #d33; border-radius:10px; font-weight:700; }
.error-page { min-height:55vh; display:grid; place-items:center; text-align:center; }
.error-code { color:var(--accent); font-size:80px; font-weight:900; line-height:1; }
.site-footer { padding:58px 0 28px; color:rgba(255,255,255,.72); background:#0c2038; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px; padding-bottom:42px; }
.footer-title { margin-bottom:13px; color:#fff; font-size:18px; font-weight:800; }
.footer-text { max-width:490px; margin:0; }
.footer-links { display:grid; gap:8px; }
.footer-links a { width:fit-content; color:rgba(255,255,255,.72); text-decoration:none; }
.footer-links a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:25px; padding-top:25px; border-top:1px solid rgba(255,255,255,.12); font-size:14px; }
@media(max-width:980px){
  .header-inner{flex-wrap:wrap;padding:16px 0}.main-nav{order:3;width:100%;padding-top:12px;border-top:1px solid var(--line)}
  .hero-inner,.contact-layout,.history-grid{grid-template-columns:1fr}.hero-inner{gap:45px}.grid{grid-template-columns:1fr}.notice{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  body{font-size:16px}.container{width:min(calc(100% - 28px),var(--max-width))}
  .topbar-inner,.header-inner,.footer-bottom{align-items:flex-start;flex-direction:column}.topbar-inner{gap:3px}
  .brand{width:220px}.main-nav{gap:16px;flex-wrap:wrap}.header-note{text-align:left}
  .hero-inner{min-height:auto;padding:65px 0}section{padding:68px 0}
  .status-card,.form,.card{padding:25px}.notice{padding:29px 25px}.form-grid,.footer-grid{grid-template-columns:1fr}.field-full{grid-column:auto}
}
