:root{--blue:#0072BD;--black:#000;--white:#fff;--line:#d9e2e8;--err:#c62828;--ok:#1b7f3b;--pill:999px;--r:18px;--max:1200px;--font:"Fira Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--shadow:0 16px 40px rgba(0,0,0,.18)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.55;color:var(--black);background:var(--white)}
main{overflow-x:clip}
img{max-width:100%}
a{color:var(--blue)}
a:hover{color:var(--black)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 48px}
@media(max-width:860px){.wrap{padding:0 20px}}

/* Header: Logo links, blaue Pill-Navigation */
header.top{background:#fff;position:sticky;top:0;z-index:10}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:91px;gap:16px}
header.top img{height:54px;display:block}
header.top nav{display:flex;align-items:center;gap:4px;background:var(--blue);border-radius:var(--pill);padding:6px 10px}
header.top nav a{font-weight:500;text-decoration:none;color:#fff;padding:10px 18px;border-radius:var(--pill);white-space:nowrap;transition:.15s}
header.top nav a:hover{background:#fff;color:var(--blue)}
@media(max-width:860px){header.top .wrap{height:66px}header.top img{height:40px}header.top nav{padding:4px 6px}header.top nav a{padding:6px 12px;font-size:15px}}

/* Hero */
.hero{padding:72px 0 56px;position:relative}
.hero .wrap{position:relative}
.overline{display:flex;align-items:center;gap:8px;font-size:15px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--blue);margin:0 0 10px}
.overline::before,.sec-title::before{content:"";flex:none;width:.95em;height:.95em;background:url(img/confetti-blau.svg) center/contain no-repeat;transform:rotate(18deg)}
.on-blue .overline{color:#fff}
.on-blue .overline::before,.on-blue .sec-title::before{background-image:url(img/confetti-weiss.svg)}
h1{font-size:clamp(40px,6.4vw,76px);line-height:1.08;margin:0 0 20px;font-weight:600;max-width:15ch;overflow-wrap:break-word}
h1 .hl{display:inline-block;background:var(--blue);color:#fff;border-radius:.16em;padding:0 .22em .04em;transform:rotate(-2deg);margin:0 .04em}
h2{font-size:clamp(28px,4vw,40px);line-height:1.1;margin:0 0 24px;font-weight:600}
h3{font-size:22px;line-height:1.3;margin:0 0 8px;font-weight:600}
.sec-title{display:flex;align-items:center;gap:14px}
.sec-title::before{width:.7em;height:.7em}
.lead{font-size:20px;max-width:56ch;margin:0}
.hero .meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.chip{border:2px solid var(--blue);color:var(--blue);border-radius:var(--pill);padding:5px 16px;font-weight:500;font-size:15px}
.hero .cta{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0}
.deco{position:absolute;width:34px;height:34px;background:url(img/confetti-blau.svg) center/contain no-repeat;pointer-events:none}
.deco.d1{right:60px;top:-20px;transform:rotate(15deg)}
.deco.d2{right:110px;bottom:10px;width:20px;height:20px;transform:rotate(40deg)}
.deco.d3{right:260px;top:90px;width:24px;height:24px;background-image:url(img/confetti-schwarz.svg);transform:rotate(-12deg)}
@media(max-width:860px){.hero{padding:40px 0 36px}.deco.d3,.deco.d2{display:none}.deco.d1{right:20px;top:-26px;width:24px;height:24px}}

/* Countdown in Konfetti-Form */
.countdown{display:flex;align-items:flex-start;gap:8px;margin-top:32px;flex-wrap:wrap}
.cd{text-align:center;font-size:13px;font-weight:500}
.cd b{display:grid;place-items:center;width:86px;height:86px;background:url(img/confetti-blau.svg) center/contain no-repeat;color:#fff;font-size:28px;font-weight:600;margin-bottom:4px}
.cd:nth-child(even) b{background-image:url(img/confetti-schwarz.svg)}
.cd:nth-child(odd) b{transform:rotate(-4deg)}
.cd-note{align-self:center;font-weight:600;font-size:15px;max-width:16ch;margin-left:10px;padding-bottom:20px}
@media(max-width:480px){.cd b{width:66px;height:66px;font-size:22px}.cd-note{max-width:none;margin:0;padding:0;width:100%}}

/* Schräges Laufband */
.band{background:var(--blue);color:#fff;transform:rotate(-1.5deg);margin:24px -20px 40px;padding:16px 0;overflow:hidden;white-space:nowrap}
.band .track{display:inline-flex;animation:run 40s linear infinite}
.band span{display:inline-flex;align-items:center;gap:44px;padding-right:44px;font-size:22px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.band span::after{content:"";width:18px;height:18px;background:url(img/confetti-weiss.svg) center/contain no-repeat;transform:rotate(20deg)}
@keyframes run{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.band .track{animation:none}}
@media(max-width:860px){.band span{font-size:16px;gap:28px;padding-right:28px}.band{padding:12px 0}}

section{padding:64px 0}
@media(max-width:860px){section{padding:44px 0}}
.on-blue{background:var(--blue);color:#fff}
.on-blue a{color:#fff}

/* Buttons */
.btn{display:inline-block;border:2px solid var(--blue);background:var(--blue);color:#fff;border-radius:var(--pill);padding:8px 32px;font:500 17px var(--font);cursor:pointer;text-decoration:none;transition:.15s}
.btn:hover{background:#fff;color:var(--blue)}
.btn.ghost{background:#fff;color:var(--blue)}
.btn.ghost:hover{background:var(--blue);color:#fff}
.on-blue .btn{background:#fff;color:var(--blue);border-color:#fff}
.on-blue .btn:hover{background:var(--blue);color:#fff}
.btn.small{padding:5px 16px;font-size:14px}
.btn:disabled{opacity:.5;cursor:default}

/* Anlass-Karten */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.card{border:2px solid var(--blue);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--black);background:#fff;transition:.2s}
.card:nth-child(odd){background:var(--blue);color:#fff}
a.card:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:var(--shadow);color:inherit}
a.card:nth-child(odd):hover{color:#fff}
.card .date{align-self:flex-start;border:2px solid var(--blue);color:var(--blue);background:#fff;border-radius:var(--pill);padding:2px 14px;font-size:13px;font-weight:600;margin-bottom:6px}
.card:nth-child(odd) .date{border-color:#fff}
.card .more{margin-top:auto;padding-top:10px;font-weight:600}

/* Anlass-Detail */
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
@media(max-width:900px){.two{grid-template-columns:1fr;gap:36px}}
.salutation{font-weight:600;white-space:pre-line;margin:0 0 20px}
.body p,.closing p{margin:0 0 16px;white-space:pre-line}
dl.details{margin:28px 0;border:2px solid var(--blue);border-radius:var(--r);padding:6px 24px}
dl.details div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--blue)}
dl.details div:last-child{border-bottom:0}
dl.details dt{font-weight:600;color:var(--blue)}
dl.details dd{margin:0}
.panel{background:var(--blue);color:#fff;border-radius:20px;padding:32px;position:sticky;top:104px;box-shadow:var(--shadow)}
.panel h2{display:flex;align-items:center;gap:12px}
.panel h2::before{content:"";width:.7em;height:.7em;background:url(img/confetti-weiss.svg) center/contain no-repeat;transform:rotate(18deg)}
.panel .btn{background:#fff;color:var(--blue);border-color:#fff}
.panel .btn:hover{background:var(--black);border-color:var(--black);color:#fff}
.panel .req{color:#fff}
.panel .hint,.panel .muted{opacity:.85}
@media(max-width:900px){.panel{position:static;padding:24px}dl.details div{grid-template-columns:1fr;gap:2px}}

/* Formular */
label{display:block;font-weight:600;font-size:15px;margin:0 0 6px}
.field{margin:0 0 18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:480px){.row2{grid-template-columns:1fr}}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=datetime-local],select,textarea{width:100%;font:400 16px var(--font);padding:11px 14px;border:2px solid var(--blue);border-radius:10px;background:#fff;color:#000}
.panel input,.panel textarea,.panel select{border-color:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(0,0,0,.35)}
textarea{min-height:90px;resize:vertical}
.opts{display:flex;flex-wrap:wrap;gap:10px}
.opts label{display:inline-flex;align-items:center;gap:8px;font-weight:500;border:2px solid var(--blue);border-radius:var(--pill);padding:6px 16px;background:#fff;color:var(--blue);cursor:pointer;margin:0}
.panel .opts label{border-color:#fff}
.opts label:has(input:checked){background:var(--black);border-color:var(--black);color:#fff}
.opts input{accent-color:#fff;margin:0}
.req{color:var(--blue)}
.msg{padding:12px 16px;border-radius:10px;margin:0 0 16px;font-weight:500}
.msg.err{background:#fdecea;color:var(--err)}
.msg.ok{background:#e6f4ea;color:var(--ok)}
.msg.warn{background:#fff4d6;color:#7a5600}
.hp{position:absolute;left:-9999px}
.success{text-align:center;padding:12px 0}
.success .big{font-size:56px;line-height:1}
.success h2{justify-content:center}

/* Footer */
footer{background:var(--blue);color:#fff;padding:56px 0 40px;margin-top:72px;position:relative}
footer::before{content:"";position:absolute;left:0;right:0;top:-46px;height:36px;background:url(img/confetti-blau.svg) 4% 60%/26px no-repeat,url(img/confetti-schwarz.svg) 9% 20%/18px no-repeat,url(img/confetti-blau.svg) 22% 80%/20px no-repeat,url(img/confetti-blau.svg) 38% 30%/28px no-repeat,url(img/confetti-schwarz.svg) 47% 90%/16px no-repeat,url(img/confetti-blau.svg) 61% 50%/22px no-repeat,url(img/confetti-schwarz.svg) 74% 25%/20px no-repeat,url(img/confetti-blau.svg) 83% 75%/26px no-repeat,url(img/confetti-blau.svg) 95% 35%/18px no-repeat}
footer .wrap{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
footer img{height:64px}
footer a{color:#fff}
footer .name{font-size:20px;font-weight:600}
.muted{opacity:.7;font-size:15px}
.center{text-align:center}

/* Verwaltung */
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--blue);color:var(--blue)}
.tablewrap{overflow-x:auto}
.badge{display:inline-block;border-radius:var(--pill);padding:2px 12px;font-size:13px;font-weight:600;background:var(--blue);color:#fff;white-space:nowrap}
.badge.draft{background:#eee;color:#555}
.badge.hidden{background:#000;color:#fff}
.badge.no{background:#fdecea;color:var(--err)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:0 0 24px}
.fieldrow{display:grid;grid-template-columns:1.4fr .8fr 1.2fr 1fr auto auto;gap:8px;align-items:center;margin:0 0 8px}
.fieldrow input,.fieldrow select{padding:8px 10px;font-size:14px}
@media(max-width:860px){.fieldrow{grid-template-columns:1fr 1fr;border:1px solid var(--line);padding:10px;border-radius:10px}}
.stats{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 24px}
.stat{border:2px solid var(--blue);border-radius:var(--r);padding:16px 24px;min-width:140px}
.stat b{display:block;font-size:34px;line-height:1.1;color:var(--blue)}
.hint{font-size:13px;opacity:.7;margin:4px 0 0}

/* Kalenderabo-Seite */
.hero .meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.cta{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}
#abo select{appearance:auto}
.badge-count{display:inline-block;border:2px solid var(--blue);color:var(--blue);border-radius:var(--pill);padding:2px 14px;font-size:15px;font-weight:600;vertical-align:middle;margin-left:8px}
.on-blue .badge-count{border-color:#fff;color:#fff}
.on-blue th{color:#fff;border-bottom-color:#fff}
.on-blue td{border-bottom-color:rgba(255,255,255,.35)}
.on-blue .dim{opacity:.8}
.on-blue .hint{opacity:.9}
td.d{white-space:nowrap}
.dim{opacity:.7}
.panel p{margin:0 0 14px}
dl.details dd{line-height:1.5}
@media(max-width:600px){th:nth-child(4),td:nth-child(4){display:none}}
