@font-face{font-family:"Poppins";font-weight:400;font-display:swap;src:url(../fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:500;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:700;font-display:swap;src:url(../fonts/poppins-latin-700-normal.woff2) format("woff2")}
:root{
  --blau:#0F47AF; --blau-dunkel:#0B3685; --gelb:#FFD200; --creme:#FFFCF0; --weiss:#FFFFFF;
  --text:#2F3B52; --grau:#5C6677; --linie:#E8EAEE; --schatten:0 12px 30px rgba(47,59,82,.09);
  --ok:#2E7D4F; --warn:#9A5B00; --err:#B3341E;
  --r:10px; --rk:16px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Poppins",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.7;color:var(--text);background:var(--creme)}
a{color:var(--blau);text-underline-offset:3px}
a:hover{color:var(--blau-dunkel)}
img{max-width:100%;height:auto}
.wrap{max-width:860px;margin:0 auto;padding:0 20px}
.wrap.wide{max-width:1200px;padding:0 56px}

/* Kopf (Unterseiten und Admin) */
.site-head{background:var(--blau);color:var(--creme);position:relative}
.site-head .wrap{display:flex;align-items:center;gap:18px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:16px;color:var(--creme);text-decoration:none}
.brand img{width:68px;height:68px;display:block;flex:none}
.brand b{display:block;font-size:18px;line-height:1.25;font-weight:700}
.brand>span{min-width:0}
.brand span{display:block;font-weight:400;font-size:14px;color:var(--gelb)}
.nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.nav a{color:var(--creme);text-decoration:none;padding:6px 12px;border-radius:999px;font-weight:500;font-size:14px}
.nav a:hover,.nav a[aria-current]{background:rgba(255,255,255,.16);color:var(--weiss)}
.stripe{height:0}
.site-head.compact .wrap{position:relative;min-height:88px;padding-top:12px;padding-bottom:12px}
.site-head.compact .wrap{gap:10px}
.site-head.compact .brand{padding-left:112px;min-height:60px}
.site-head.compact .nav{gap:0}
.site-head.compact .nav a{padding:6px 9px}
.site-head.compact .brand img{position:absolute;left:20px;top:8px;width:96px;height:96px;z-index:3;filter:drop-shadow(0 8px 14px rgba(10,30,80,.3))}

/* Startseite: Hero */
.hero{position:relative;background:var(--blau);color:var(--weiss)}
.hero-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero-schleier{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,50,125,.94) 0%,rgba(15,71,175,.78) 45%,rgba(15,71,175,.15) 100%)}
.hero.ohne-foto .hero-schleier{background:linear-gradient(90deg,#0B3685,#0F47AF)}
.hero-in{position:relative;max-width:1200px;margin:0 auto;padding:0 56px;min-height:640px}
.hero-nav{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center;padding:28px 0;font-size:15px;font-weight:500}
.hero-nav .org{font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:13px;color:var(--weiss);text-decoration:none}
.hero-nav nav{display:flex;flex-wrap:wrap;gap:8px 28px}
.hero-nav nav a{color:var(--weiss);text-decoration:none}
.hero-nav nav a:hover,.hero-nav nav a[aria-current]{text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--gelb);text-decoration-thickness:2px}
.hero-text{max-width:640px;padding:44px 0 90px}
.hero h1{margin:0;color:var(--weiss);font-size:56px;line-height:1.08;font-weight:700;letter-spacing:.01em;text-transform:uppercase}
.hero p{margin:24px 0 0;font-size:20px;line-height:1.55;max-width:480px;color:#fff}
.hero .row{margin-top:34px;gap:14px}
.hero-siegel{position:absolute;right:56px;bottom:-60px;width:230px;height:230px;z-index:3;filter:drop-shadow(0 14px 24px rgba(10,30,80,.35))}
.btn-hell{background:transparent;border-color:var(--weiss);color:var(--weiss)}
.btn-hell:hover{background:var(--weiss);border-color:var(--weiss);color:var(--blau)}

main{padding:56px 0 64px}
main.home{padding:88px 0 64px}
h1{font-size:32px;line-height:1.2;font-weight:700;color:var(--blau);margin:0 0 12px}
h2{font-size:24px;line-height:1.3;font-weight:500;color:var(--blau);margin:36px 0 12px}
h3{font-size:18px;font-weight:700;color:var(--blau);margin:0 0 6px}
p{margin:0 0 14px}
.lead{font-size:18px;color:var(--grau);max-width:60ch}
.muted{color:var(--grau)}
.small{font-size:14px}

/* Karten */
.card{background:var(--weiss);border-radius:var(--rk);padding:28px;margin:0 0 20px;box-shadow:var(--schatten)}
.card.cancelled{opacity:.85;outline:2px solid var(--err)}
.kicker{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--blau);margin:0 0 6px}
.tag{display:inline-block;background:var(--gelb);color:var(--blau);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:6px}
.bigdate{text-wrap:balance;font-size:30px;line-height:1.25;font-weight:500;color:var(--text);margin:4px 0 4px}
.home-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px;align-items:stretch}
.home-grid>div,.home-grid>aside{display:flex;flex-direction:column}
.home-grid .grow{flex:1}
.home-grid .card:last-child{margin-bottom:0}
.home-grid .card.grow{margin-bottom:0}
.home-grid .stack{display:flex;flex-direction:column;gap:32px}
.home-grid .stack .card{margin:0}
.checks{margin:14px 0 0;padding-left:20px;font-size:15px;line-height:1.8;color:var(--grau)}
.termin{padding-top:16px;margin-top:16px;border-top:1px solid var(--linie)}
.termin b{display:block;font-size:17px;font-weight:700;color:var(--text)}
.termin .small{margin:2px 0 8px}
.mail-link{font-size:14px;font-weight:700;color:var(--blau);text-decoration:none;border-bottom:2px solid var(--gelb)}
.meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin:6px 0 12px;font-size:15px}
.meta b{font-weight:500}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
@media(max-width:900px){.home-grid{grid-template-columns:1fr}.hero-siegel{width:120px;height:120px;right:20px;bottom:-44px}.wrap.wide,.hero-in{padding-left:20px;padding-right:20px}.hero h1{font-size:38px}.hero-text{padding:28px 0 110px}.hero-in{min-height:0}main.home{padding-top:64px}}
@media(max-width:620px){.grid2{grid-template-columns:1fr}.nav{margin-left:0}h1{font-size:28px}.brand img{width:54px;height:54px}.brand b{font-size:16px}.brand span span{font-size:13px}.site-head.compact .wrap{min-height:72px}.site-head.compact .brand{padding-left:92px;min-height:76px;width:100%}.site-head.compact .nav{padding-bottom:4px}.site-head.compact .brand img{width:78px;height:78px;top:8px}.bigdate{font-size:24px}}

/* Buttons: Gelb ist die Aktionsfarbe, Text Blau */
.btn{display:inline-block;font:inherit;font-weight:700;font-size:16px;padding:12px 26px;border:2px solid var(--gelb);background:var(--gelb);color:var(--blau);border-radius:999px;cursor:pointer;text-decoration:none;line-height:1.3}
.btn:hover{background:#FFDD33;border-color:#FFDD33;color:var(--blau-dunkel)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blau);outline-offset:2px}
.btn-blau{background:var(--blau);border-color:var(--blau);color:var(--creme)}
.btn-blau:hover{background:var(--blau-dunkel);border-color:var(--blau-dunkel);color:var(--weiss)}
.btn-line{background:transparent;border-color:var(--blau);color:var(--blau)}
.btn-line:hover{background:var(--blau);color:var(--creme);border-color:var(--blau)}
.btn-danger{background:var(--err);border-color:var(--err);color:var(--weiss)}
.btn-danger:hover{background:#962A18;border-color:#962A18;color:var(--weiss)}
.btn-sm{padding:6px 14px;font-size:14px}

/* Formulare */
.field{margin:0 0 16px}
label{display:block;font-weight:500;margin:0 0 4px;font-size:15px}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=datetime-local],select,textarea{width:100%;font:inherit;padding:10px 12px;border:2px solid #C9CDD6;border-radius:var(--r);background:var(--weiss);color:var(--text)}
input:focus,select:focus,textarea:focus{border-color:var(--blau)}
.has-error input,.has-error select,.has-error textarea{border-color:var(--err)}
small.error{display:block;color:var(--err);font-weight:500;margin-top:4px}
small.hint{display:block;color:var(--grau);margin-top:4px}
.check{margin:0 0 14px}
.check label{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.check input{margin-top:6px;width:18px;height:18px;flex:none;accent-color:var(--blau)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Hinweise */
.flash{padding:12px 18px;border-radius:var(--r);margin:0 0 18px;border-left:6px solid var(--blau);background:var(--weiss);font-weight:500;box-shadow:var(--schatten)}
.flash.ok{border-color:var(--ok)}.flash.warn{border-color:var(--warn)}.flash.err{border-color:var(--err)}
.note{background:#FFF4B8;border-radius:var(--r);padding:12px 16px;margin:0 0 18px}

/* Badges: Fläche + Wort, nie nur Farbe */
.badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r);color:var(--weiss);background:var(--grau);line-height:1.6}
.badge-ok{background:var(--ok)}.badge-warn{background:var(--warn)}.badge-err{background:var(--err)}

/* Tabellen */
.table{width:100%;border-collapse:collapse;background:var(--weiss);border-radius:var(--r);box-shadow:var(--schatten);font-size:15px}
.table th{text-align:left;font-weight:700;color:var(--blau);background:#F1F3F8;padding:9px 12px;white-space:nowrap}
.table td{padding:9px 12px;border-top:1px solid var(--linie);vertical-align:top}
.table-wrap{overflow-x:auto;margin:0 0 18px}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
form.inline{display:inline}

/* Fuß: Goldgelb */
.site-foot{background:var(--gelb);color:var(--blau);padding:22px 0;font-size:14px;font-weight:500}
.site-foot a{color:var(--blau);font-weight:700;text-underline-offset:3px}
.site-foot .wrap{display:flex;gap:10px 32px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.site-foot .wrap.wide{padding:0 56px}
@media(max-width:900px){.site-foot .wrap.wide{padding:0 20px}}

/* Admin */
.admin-nav{background:var(--blau-dunkel)}
.admin-nav .wrap{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding-top:6px;padding-bottom:6px}
.admin-nav a,.admin-nav button{color:var(--creme);text-decoration:none;padding:7px 12px;border-radius:999px;font:inherit;font-size:15px;font-weight:500;background:none;border:0;cursor:pointer}
.admin-nav a:hover,.admin-nav a[aria-current],.admin-nav button:hover{background:rgba(255,255,255,.16)}
.admin-nav .count{background:var(--gelb);color:var(--blau);border-radius:var(--r);padding:0 7px;margin-left:6px;font-size:13px;font-weight:700}
.admin-nav .sp{margin-left:auto}
.admin-wrap{max-width:1040px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:700px){.pair{grid-template-columns:1fr}}
.pair dl{margin:0}.pair dt{font-size:13px;color:var(--grau);font-weight:500}.pair dd{margin:0 0 8px}
.login{max-width:420px;margin:60px auto}

.hero-upload img{display:block;max-width:360px;width:100%;border-radius:var(--r);margin:0 0 12px}
.fehlt{border:1px dashed var(--grau);border-radius:var(--r);padding:14px;color:var(--grau);margin:0 0 12px}
