#colorbox,#cboxOverlay,#cboxWrapper{position:absolute;top:0;left:0;z-index:9999;overflow:hidden;-webkit-transform:translate3d(0,0,0)}#cboxWrapper{max-width:none}#cboxOverlay{position:fixed;width:100%;height:100%}#cboxMiddleLeft,#cboxBottomLeft{clear:left}#cboxContent{position:relative}#cboxLoadedContent{overflow:auto;-webkit-overflow-scrolling:touch}#cboxTitle{margin:0}#cboxLoadingOverlay,#cboxLoadingGraphic{position:absolute;top:0;left:0;width:100%;height:100%}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{cursor:pointer}.cboxPhoto{float:left;margin:auto;border:0;display:block;max-width:none;-ms-interpolation-mode:bicubic}.cboxIframe{width:100%;height:100%;display:block;border:0;padding:0;margin:0}#colorbox,#cboxContent,#cboxLoadedContent{box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}#cboxOverlay{background:#000;opacity:.9;filter:alpha(opacity = 90)}#colorbox{outline:0}#cboxContent{margin-top:20px;background:#000}.cboxIframe{background:#fff}#cboxError{padding:50px;border:1px solid #ccc}#cboxLoadedContent{border:5px solid #000;background:#fff}#cboxTitle{position:absolute;top:-20px;left:0;color:#ccc}#cboxCurrent{position:absolute;top:-20px;right:0;color:#ccc}#cboxLoadingGraphic{background:url(../../assets/colorbox/images/loading.gif) no-repeat center center}#cboxPrevious,#cboxNext,#cboxSlideshow,#cboxClose{border:0;padding:0;margin:0;overflow:visible;width:auto;background:0 0}#cboxPrevious:active,#cboxNext:active,#cboxSlideshow:active,#cboxClose:active{outline:0}#cboxSlideshow{position:absolute;top:-20px;right:90px;color:#fff}#cboxPrevious{position:absolute;top:50%;left:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top left;width:28px;height:65px;text-indent:-9999px}#cboxPrevious:hover{background-position:bottom left}#cboxNext{position:absolute;top:50%;right:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top right;width:28px;height:65px;text-indent:-9999px}#cboxNext:hover{background-position:bottom right}#cboxClose{position:absolute;top:5px;right:5px;display:block;background:url(../../assets/colorbox/images/controls.png) no-repeat top center;width:38px;height:19px;text-indent:-9999px}#cboxClose:hover{background-position:bottom center}
:root{
  --primary: #2d3438;
  --accent:  #bed000;
  --accent-dark: #9aaa00;
  --accent-light: #f5f9cc;
  --accent-border: #d4e200;
  --bg:      #f4f6f8;
  --white:   #fff;
  --border:  #d0d7df;
  --text:    #2c3e50;
  --muted:   #7f8c8d;
  --success: #27ae60;
  --success-bg: #eef1f5;
  --radius:  8px;
  --shadow:  0 2px 12px rgba(0,0,0,.1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.6}

/* ─── Ladeoverlay ─────────────────────────────────────────── */
#loading-overlay{position:fixed;inset:0;background:rgba(45,52,56,.75);display:flex;align-items:center;justify-content:center;z-index:9999}
.loading-box{background:#fff;border-radius:12px;padding:36px 48px;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,.25)}
.loading-box .spinner{width:40px;height:40px;border:4px solid #eee;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}
.loading-box p{color:var(--muted);font-size:.95rem}
.load-err{color:#c0392b;margin-top:12px;font-size:.88rem;display:none}

/* ─── Layout ──────────────────────────────────────────────── */
#app{display:none;max-width:900px;margin:0 auto;padding:24px 16px 60px}

/* ─── Header ──────────────────────────────────────────────── */
header{background:var(--primary);color:#fff;padding:28px 36px;border-radius:12px;margin-bottom:28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
header .hl{flex:1;min-width:200px}
header h1{font-size:1.7rem;letter-spacing:.5px}
header p{opacity:.7;font-size:.9rem;margin-top:2px}
header .badge{background:var(--accent);color:var(--primary);font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:20px;letter-spacing:.5px;white-space:nowrap}

/* ─── Sections ────────────────────────────────────────────── */
.sec{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px;overflow:hidden}
.sec-head{background:var(--primary);color:#fff;padding:14px 24px;font-weight:700;font-size:1rem;display:flex;align-items:center;gap:10px}
.sec-head .num{background:var(--accent);color:var(--primary);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}
.sec-body{padding:22px 24px}

/* ─── Grid ────────────────────────────────────────────────── */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}

/* ─── Formular-Elemente ───────────────────────────────────── */
.fgroup{margin-bottom:14px}
label.lbl{display:block;font-weight:400;font-size:.9rem;color:var(--text);margin-bottom:4px;letter-spacing:.1px}
input[type=text],input[type=email],input[type=tel],input[type=date],select{
  width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);
  font-size:.95rem;outline:none;transition:.2s;background:#fff;color:var(--text)}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(190,208,0,.15)}

/* ─── Radio / Check Cards ─────────────────────────────────── */
.radio-group,.check-group{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.radio-card,.check-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:.2s}
.radio-card:hover,.check-card:hover{border-color:var(--accent);background:var(--accent-light)}
.radio-card.active,.check-card.active{border-color:var(--accent);background:var(--accent-light)}
.radio-card input,.check-card input{margin-top:3px;accent-color:var(--accent);width:16px;height:16px;flex-shrink:0}
.card-txt{flex:1}
.card-txt strong{display:block;font-size:.95rem;color:var(--text)}
.card-txt span{font-size:.82rem;color:var(--muted);line-height:1.4}
.card-txt a{color:var(--accent-dark);text-decoration:underline}
.sub-opts{padding:12px 16px 0 42px;display:none;flex-direction:column;gap:8px}
.sub-opts.show{display:flex}
.startup-date{display:none;margin-top:8px;padding-left:44px}
.startup-date.show{display:block}

/* ─── Buchungstabelle ─────────────────────────────────────── */
.btable-wrap{overflow-x:auto;margin-bottom:14px;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.9rem}
thead tr{background:#cbcbcb;color:#2d3438}
thead th{padding:11px 12px;text-align:left;font-weight:600;font-size:.82rem;letter-spacing:.3px}
tbody tr{border-bottom:1px solid var(--border)}
tbody tr:nth-child(even){background:#fafbfc}
tbody td{padding:8px 6px;vertical-align:middle}
tbody td input,tbody td select{padding:8px 10px;font-size:.88rem;border:1.5px solid var(--border);border-radius:6px;background:#fff;color:#2d3438}
tbody td input[type=number]{width:70px}
tbody td select{width:100%;min-width:160px}
.price-cell{font-weight:700;color:var(--primary);white-space:nowrap;padding-right:12px}
.del-btn{background:none;border:none;color:#c0392b;font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:.15s}
.del-btn:hover{background:#fdf0ef}
.add-btn{background:var(--accent);color:var(--primary);border:none;padding:10px 20px;border-radius:var(--radius);font-size:.9rem;font-weight:700;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:6px}
.add-btn:hover{background:var(--accent-dark);color:var(--primary)}
.no-rows{text-align:center;color:var(--muted);padding:24px;font-style:italic;font-size:.9rem}

/* ─── Preisübersicht ──────────────────────────────────────── */
.price-summary{border-top:2px solid var(--border);margin-top:16px;padding-top:16px}
.pline{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--border);gap:20px;flex-wrap:wrap}
.pline:last-child{border-bottom:none}
.pline .pl{font-size:.93rem;color:var(--text)}
.pline .pr{font-weight:700;font-size:.95rem;white-space:nowrap}
.pline.disc .pr{color:var(--accent-dark)}
.pline.final{background:var(--success-bg);padding:12px 14px;border-radius:8px;border:none;margin-top:6px}
.pline.final .pl{font-weight:700;font-size:1rem;color:var(--primary)}
.pline.final .pr{font-size:1.15rem;color:var(--success)}
.discount-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.dtag{background:var(--accent-light);color:var(--primary);font-size:.78rem;padding:3px 10px;border-radius:20px;font-weight:600;border:1px solid var(--accent-border)}
.vat-note{margin-top:16px;background:#fffbf0;border:1px solid #f0d080;border-radius:8px;padding:14px 16px;font-size:.88rem;color:#7a5800;line-height:1.5}
.vat-note strong{display:inline}
.vat-note>strong:first-child{display:block;margin-bottom:4px}

/* ─── Rechtliches ─────────────────────────────────────────── */
.legal-item{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
.legal-item:last-child{border-bottom:none}
.legal-item input[type=checkbox]{margin-top:3px;accent-color:var(--accent);width:18px;height:18px;flex-shrink:0;cursor:pointer}
.legal-item label{font-size:.9rem;color:var(--text);cursor:pointer;line-height:1.5}
.legal-item a{color:var(--accent-dark);text-decoration:underline}
.legal-item a:hover{color:#000}
.required-star{color:#c0392b;font-weight:700}

/* ─── Zusammenfassung ─────────────────────────────────────── */
.summary-box{background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:18px 20px;font-size:.9rem;line-height:1.8;color:#2d3438}
.summary-box h4{color:var(--primary);margin-bottom:8px;font-size:1rem}
.summary-section{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);color:#2d3438}
.summary-label{color:#555;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}

/* ─── Feedback & Submit ───────────────────────────────────── */
.form-msg{display:none;padding:18px 20px;border-radius:8px;font-size:.95rem;font-weight:600;margin-top:12px;line-height:1.5}
.form-msg.success{display:block;background:#eafaf1;border:1.5px solid #a8d8b0;color:#1a6b3a}
.form-msg.error{display:block;background:#fdf0ef;border:1.5px solid #f5c6c3;color:#a93226}
.btn-submit{width:100%;padding:18px;background:var(--accent);color:var(--primary);border:none;border-radius:var(--radius);font-size:1.15rem;font-weight:700;cursor:pointer;transition:.2s;margin-top:10px;letter-spacing:.3px;box-shadow:0 4px 16px rgba(190,208,0,.35)}
.btn-submit:hover{background:var(--accent-dark);transform:translateY(-1px)}
.btn-submit:disabled{background:#bdc3c7;color:#fff;cursor:not-allowed;transform:none;box-shadow:none}
.confirm-final{display:flex;align-items:flex-start;gap:14px;background:var(--success-bg);border:1.5px solid var(--border);border-radius:8px;padding:16px 18px;margin-top:16px}
.confirm-final input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin-top:2px;cursor:pointer}
.confirm-final label{font-weight:600;font-size:.95rem;cursor:pointer;color:#2d3438}

/* ─── Spinner ─────────────────────────────────────────────── */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── Responsive ──────────────────────────────────────────── */
@media(max-width:768px){
  header{padding:20px;gap:12px}
  header h1{font-size:1.35rem}
  .sec-body{padding:16px}
  .row2,.row3{grid-template-columns:1fr}
  .pline{flex-direction:column;gap:4px}
  .pline .pr{align-self:flex-end}
  .btable-wrap table thead{display:none}
  .btable-wrap table tbody tr{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px 0;border-bottom:1px solid var(--border)}
  .btable-wrap table tbody td{padding:4px 6px;border:none}
  .btable-wrap table tbody td::before{content:attr(data-label);font-size:.75rem;color:var(--muted);display:block;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
  .btable-wrap table tbody td.price-cell{grid-column:2;text-align:right}
  tbody td select{min-width:0}
  .btn-submit{font-size:1rem;padding:15px}
  .startup-date{padding-left:0}
  .sub-opts{padding-left:16px}
}
@media(max-width:480px){
  #app{padding:12px 10px 40px}
  .loading-box{padding:24px 20px}
  header{border-radius:8px}
  .sec{border-radius:6px}
}

/* ─── Summary-Tabelle Sektion 7 ──────────────────────────── */
.summary-box table .summary-row:nth-child(odd){background:#fff}
.summary-box table .summary-row:nth-child(even){background:#a4a4a4;color:#fff}
.summary-box table .summary-row:nth-child(even) td{color:#fff}

#booking-tbody select,#booking-tbody select option{color:#2d3438 !important;background:#fff}

/* ─── Custom Grid-Splits Sektion 5 ───────────────────────── */
.row-7525{display:grid;grid-template-columns:3fr 1fr;gap:16px}
.row-8020{display:grid;grid-template-columns:4fr 1fr;gap:16px}
.row-2080{display:grid;grid-template-columns:1fr 4fr;gap:16px}
.row-204040{display:grid;grid-template-columns:1fr 2fr 2fr;gap:16px}
.row-6040{display:grid;grid-template-columns:3fr 2fr;gap:16px}
.sec-subhead{font-weight:700;font-size:.95rem;color:#2d3438;margin-bottom:14px}
@media(max-width:768px){
  .row-8020,.row-2080,.row-204040,.row-6040{grid-template-columns:1fr}
}

.fgroup-65{max-width:65%}
@media(max-width:768px){.fgroup-65{max-width:100%}}

/* ─── Contao-Override: Inputs volle Breite ───────────────── */
#app input[type=text],
#app input[type=email],
#app input[type=tel],
#app input[type=date],
#app select{width:100% !important;box-sizing:border-box !important}
#app select{
  background:#fff !important;
  color:var(--text) !important;
  border:1.5px solid var(--border) !important;
  border-radius:var(--radius) !important;
  font-size:.95rem !important;
  font-family:inherit !important;
}
#app select option{background:#fff !important;color:var(--text) !important;}

/* ─── Anrede Radio-Gruppe ─────────────────────────────────── */
.anrede-radio-group{display:flex;align-items:center;gap:24px;padding-top:6px;flex-wrap:wrap}
.anrede-radio-lbl{display:flex;align-items:center;gap:7px;font-size:.95rem;color:var(--text);cursor:pointer;white-space:nowrap}
.anrede-radio-lbl input{cursor:pointer}
