
:root { --ink:#142631; --muted:#5f6f78; --blue:#005b86; --blue-deep:#003f60; --sky:#e9f5fa; --paper:#fbfdfe; --line:#cadbe3; --accent:#f1b24a; --danger:#a73535; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,input,select,textarea { font:inherit; }
a { color:inherit; }
.masthead { min-height:88px; padding:18px max(24px,calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; gap:24px; background:#fff; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:12px; text-decoration:none; }
.brand-mark { width:52px; height:52px; border-radius:50% 50% 44% 56%; display:grid; place-items:center; background:var(--blue); color:#fff; font-family:Georgia,serif; font-size:30px; font-style:italic; }
.brand strong { display:block; color:var(--blue-deep); font-family:Georgia,serif; font-size:25px; letter-spacing:.01em; }
.brand small { display:block; margin-top:1px; color:var(--muted); font-size:12px; }
.contact { display:flex; align-items:center; gap:18px; color:var(--muted); font-size:14px; }
.contact a { color:var(--blue); font-weight:700; text-decoration:none; }
.hero { max-width:1180px; margin:0 auto; padding:58px 24px 38px; display:flex; align-items:end; justify-content:space-between; gap:36px; }
.eyebrow { margin:0 0 9px; color:var(--blue); font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.hero h1 { margin:0; max-width:760px; font-family:Georgia,serif; font-size:clamp(42px,7vw,74px); font-weight:500; line-height:.98; letter-spacing:-.035em; }
.lede { max-width:660px; margin:20px 0 0; color:var(--muted); font-size:18px; line-height:1.55; }
.date-card { min-width:285px; padding:20px 22px; border-left:5px solid var(--accent); background:#fff; box-shadow:0 12px 32px rgb(0 63 96 / 8%); }
.date-card small,.date-card span { display:block; color:var(--muted); font-size:13px; }
.date-card strong { display:block; margin:5px 0 3px; font-size:18px; }
.notice { max-width:1132px; margin:0 auto 26px; border-radius:10px; padding:14px 18px; display:flex; gap:12px; align-items:baseline; }
.demo-notice { border:1px solid #efd28f; background:#fff7df; color:#624a16; }
.notice span { font-size:14px; line-height:1.45; }
.page-layout { max-width:1180px; margin:0 auto; padding:0 24px 80px; display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:34px; align-items:start; }
.application-form { display:grid; gap:20px; }
.form-section { padding:28px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 10px 30px rgb(0 63 96 / 4%); }
.section-heading { display:flex; align-items:center; gap:13px; margin-bottom:24px; }
.section-heading>span { flex:0 0 auto; width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--blue); color:#fff; font-size:14px; font-weight:800; }
.section-heading h2 { margin:0; font-family:Georgia,serif; font-size:27px; font-weight:500; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.field { display:grid; align-content:start; gap:7px; }
.field>span,.choice-group legend,.inline-choice legend { color:#324852; font-size:14px; font-weight:700; }
.field b { color:var(--blue); }
.field input,.field select,.field textarea { width:100%; min-height:48px; border:1px solid #aebfc7; border-radius:8px; padding:11px 13px; background:#fff; color:var(--ink); outline:none; }
.field textarea { resize:vertical; min-height:92px; line-height:1.5; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgb(0 91 134 / 13%); }
.field-wide { grid-column:1/-1; }
.choice-group,.inline-choice { grid-column:1/-1; margin:0; padding:0; border:0; }
.choice-group legend { margin-bottom:12px; }
.choice-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.choice-group label { min-height:76px; padding:14px; display:flex; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.choice-group label:has(input:checked) { border-color:var(--blue); background:var(--sky); box-shadow:inset 4px 0 0 var(--blue); }
.choice-group input,.inline-choice input,.confirmation input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--blue); }
.choice-group b,.choice-group small { display:block; }
.choice-group small { margin-top:3px; color:var(--muted); }
.date-pair { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.inline-choice { display:flex; align-items:center; flex-wrap:wrap; gap:18px; padding:16px 0; }
.inline-choice legend { width:100%; }
.inline-choice label { display:inline-flex; align-items:center; gap:7px; }
.confirmation { display:grid; gap:12px; }
.confirmation label { display:flex; gap:10px; align-items:flex-start; color:#324852; font-size:14px; line-height:1.45; }
.submit-panel { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:23px 26px; border-radius:14px; background:var(--blue-deep); color:#fff; }
.submit-panel strong,.submit-panel span { display:block; }
.submit-panel span { margin-top:4px; color:#cfe3ec; font-size:14px; }
.submit-panel button,.secondary-button { min-height:48px; padding:12px 21px; border:0; border-radius:8px; background:var(--accent); color:#2d220d; font-weight:800; cursor:pointer; }
.submit-panel button:disabled { cursor:wait; opacity:.75; }
.form-status { margin:-5px 4px 0; font-size:14px; }
.form-status.error { color:var(--danger); }
.info-panel { position:relative; }
.sticky-card { position:sticky; top:22px; padding:26px; border-radius:14px; background:var(--sky); border-top:5px solid var(--blue); }
.sticky-card h2 { margin:0; font-family:Georgia,serif; font-size:28px; font-weight:500; }
.sticky-card ul { margin:18px 0; padding-left:20px; color:#314853; }
.sticky-card li { margin:10px 0; line-height:1.45; }
.sticky-card hr { border:0; border-top:1px solid #bfd5df; margin:22px 0; }
.sticky-card p:not(.eyebrow) { color:#314853; line-height:1.55; }
.sticky-card a { color:var(--blue); font-weight:800; }
footer { padding:26px max(24px,calc((100vw - 1132px)/2)); display:flex; justify-content:space-between; gap:20px; background:#0c2938; color:#cfe3ec; font-size:13px; }
.success-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(145deg,#e8f5fa,#fbfdfe 55%); }
.success-card { width:min(560px,100%); padding:48px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 24px 70px rgb(0 63 96 / 12%); }
.success-mark { width:64px; height:64px; margin:0 auto 22px; display:grid; place-items:center; border-radius:50%; background:var(--blue); color:#fff; font-size:34px; }
.success-card h1 { margin:0 0 12px; font-family:Georgia,serif; font-size:46px; font-weight:500; }
.success-card p { color:var(--muted); line-height:1.55; }
.reference { display:inline-block; margin:16px 0; padding:12px 18px; border-radius:8px; background:var(--sky); color:var(--blue-deep); font-size:23px; letter-spacing:.08em; }
.next-step { padding:16px; border-left:4px solid var(--accent); background:#fff9e9; text-align:left; }
.secondary-button { margin-top:10px; background:var(--blue-deep); color:#fff; }
@media (max-width:900px) { .contact span{display:none}.hero{align-items:stretch;flex-direction:column;padding-top:42px}.date-card{min-width:0}.page-layout{grid-template-columns:1fr}.info-panel{order:-1}.sticky-card{position:static} }
@media (max-width:640px) { .masthead{min-height:74px;padding:13px 18px}.brand-mark{width:44px;height:44px;font-size:25px}.brand strong{font-size:21px}.brand small,.contact{display:none}.hero{padding:36px 18px 28px}.hero h1{font-size:44px}.lede{font-size:16px}.notice{margin:0 18px 20px;align-items:flex-start;flex-direction:column;gap:4px}.page-layout{padding:0 18px 60px;gap:20px}.form-section{padding:21px 18px}.field-grid,.choice-group{grid-template-columns:1fr}.field,.date-pair{grid-column:1/-1}.submit-panel{align-items:stretch;flex-direction:column}.submit-panel button{width:100%}footer{flex-direction:column}.success-card{padding:36px 22px} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} }

/* Ergänzungen Netlify-Version */
[hidden] { display:none !important; }
.hp-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.confirmation a, .legal a { color:var(--blue); font-weight:700; }
footer a { color:#cfe3ec; }
footer nav { display:flex; gap:18px; }
.legal { max-width:820px; margin:0 auto; padding:48px 24px 80px; line-height:1.6; }
.legal h1 { font-family:Georgia,serif; font-weight:500; font-size:clamp(34px,5vw,48px); margin:0 0 20px; }
.legal h2 { font-family:Georgia,serif; font-weight:500; font-size:24px; margin:34px 0 8px; }
.legal .todo { background:#fff7df; border:1px dashed #d9a93c; padding:2px 6px; border-radius:4px; }
.admin { max-width:1180px; margin:0 auto; padding:40px 24px 80px; }
.admin h1 { font-family:Georgia,serif; font-weight:500; font-size:40px; margin:0 0 8px; }
.admin-login { display:flex; gap:12px; flex-wrap:wrap; align-items:end; margin:24px 0; padding:22px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.admin-login .field { flex:1 1 320px; }
.admin button { min-height:44px; padding:10px 18px; border:0; border-radius:8px; background:var(--blue-deep); color:#fff; font-weight:700; cursor:pointer; }
.admin button.ghost { background:#fff; color:var(--blue-deep); border:1px solid var(--line); }
.admin button.danger { background:#fff; color:var(--danger); border:1px solid #e3b4b4; }
.admin-toolbar { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin:18px 0; }
.admin-status { color:var(--muted); font-size:14px; }
.admin-status.error { color:var(--danger); }
.table-wrap { overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:14px; }
.admin table { width:100%; border-collapse:collapse; font-size:14px; }
.admin th, .admin td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
.admin th { background:var(--sky); color:#324852; white-space:nowrap; }
.admin details summary { cursor:pointer; color:var(--blue); font-weight:700; }
.admin dl { display:grid; grid-template-columns:minmax(160px,auto) 1fr; gap:4px 14px; margin:10px 0 0; }
.admin dt { color:var(--muted); }
.admin dd { margin:0; }
@media (max-width:640px) { .admin, .legal { padding:28px 16px 60px; } .admin dl { grid-template-columns:1fr; } }
