.gtb-app,
.gtb-app * { box-sizing: border-box; }
.gtb-app {
  --gtb-accent: #d79aa4;
  --gtb-text: #26324c;
  --gtb-muted: #73809a;
  --gtb-border: #ccd6e8;
  --gtb-bg: #ffffff;
  display: grid;
  grid-template-columns: 220px minmax(0, 890px);
  gap: 32px;
  align-items: start;
  max-width: 1170px;
  margin: 32px auto;
  color: var(--gtb-text);
  font-family: "Montserrat", sans-serif;
}
.gtb-app button,
.gtb-app input,
.gtb-app textarea,
.gtb-app select { font-family: inherit; font-size: inherit; }
.gtb-steps,
.gtb-card,
.gtb-manage-card {
  background: var(--gtb-bg);
  border: 1px solid var(--gtb-border);
  border-radius: 8px;
  box-shadow: 0 16px 32px rgba(34, 53, 83, .08);
}
.gtb-app [hidden] { display: none !important; }
.gtb-steps { padding: 22px 20px; position: sticky; top: 24px; }
.gtb-step-nav {
  width: 100%; border: 0; background: transparent; color: var(--gtb-text); display: flex; align-items: center;
  gap: 12px; padding: 11px 0; text-align: left; opacity: .82;
}
.gtb-step-nav:disabled { opacity: .82; }
.gtb-step-nav.is-active { color: var(--gtb-accent); font-weight: 600; opacity: 1; }
.gtb-step-icon {
  width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid var(--gtb-border);
  border-radius: 6px; background: #fff; color: #74819a; font-weight: 700; flex: 0 0 33px;
}
.gtb-step-icon svg { width: 18px; height: 18px; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gtb-step-nav.is-active .gtb-step-icon { color: #fff; background: var(--gtb-accent); border-color: var(--gtb-accent); box-shadow: 0 8px 16px color-mix(in srgb, var(--gtb-accent) 25%, transparent); }
.gtb-card { min-height: 650px; overflow: hidden; position: relative; display: flex; flex-direction: column; }
.gtb-content { min-height: 575px; padding: 28px 24px; }
.gtb-panel { display: none; animation: gtbFade .18s ease; }
.gtb-panel.is-active { display: block; }
@keyframes gtbFade { from { opacity: .45; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.gtb-panel h2 { margin: 0 0 14px; font-size: 21px; color: var(--gtb-text); }
.gtb-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.gtb-service {
  border: 1px solid var(--gtb-border); background: #fff; border-radius: 8px; padding: 20px 40px; color: var(--gtb-text);
  text-align: left; cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s;
}
.gtb-service:hover,
.gtb-service.is-selected { border-color: var(--gtb-accent); box-shadow: 0 8px 24px rgba(48, 64, 92, .08); transform: translateY(-1px); }
.gtb-service.is-selected { outline: 2px solid color-mix(in srgb, var(--gtb-accent) 35%, transparent); }
.gtb-service-name { display: block; font-size: 20px; margin-bottom: 10px; }
.gtb-service-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--gtb-muted); }
.gtb-price-badge { background: var(--gtb-accent); color: #fff; border-radius: 4px; padding: 3px 8px; white-space: nowrap; }
.gtb-date-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.gtb-calendar-wrap,
.gtb-slots-wrap { border: 1px solid var(--gtb-border); min-height: 430px; }
.gtb-calendar-header { height: 50px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--gtb-border); padding: 0 18px; }
.gtb-calendar-arrow { width: 34px; height: 34px; border: 1px solid #b9d0ff; border-radius: 6px; background: #fff; color: #526b94; font-size: 28px; line-height: 1; cursor: pointer; }
.gtb-weekdays,
.gtb-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.gtb-weekdays span { padding: 10px 0; text-align: center; border-bottom: 1px solid var(--gtb-border); color: var(--gtb-muted); }
.gtb-day { min-height: 57px; border: 0; border-right: 1px solid var(--gtb-border); border-bottom: 1px solid var(--gtb-border); background: #fff; color: var(--gtb-text); cursor: pointer; }
.gtb-day:nth-child(7n) { border-right: 0; }
.gtb-day:disabled { cursor: default; color: #c4cad6; background: #fafbfc; }
.gtb-day.is-outside { color: #c9ced8; background: #f7f8fa; }
.gtb-day.is-selected { background: var(--gtb-accent); color: #fff; }
.gtb-loading { grid-column: 1 / -1; padding: 40px; text-align: center; color: var(--gtb-muted); }
.gtb-slots-wrap { padding: 22px 16px; }
.gtb-slots-wrap h3 { margin: 0 0 10px; font-size: 19px; }
.gtb-slot-period { color: var(--gtb-muted); margin: 0 0 12px; }
.gtb-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gtb-slot { border: 1px solid var(--gtb-border); background: #fff; padding: 9px; text-align: left; color: var(--gtb-text); border-radius: 5px; cursor: pointer; }
.gtb-slot strong,
.gtb-slot span { display: block; }
.gtb-slot span { color: var(--gtb-muted); font-size: 13px; margin-top: 2px; }
.gtb-slot.is-selected { border-color: var(--gtb-accent); background: color-mix(in srgb, var(--gtb-accent) 9%, white); }
.gtb-muted { color: var(--gtb-muted); grid-column: 1 / -1; }
.gtb-contact-form { display: grid; gap: 16px; }
.gtb-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gtb-field-row-small { grid-template-columns: 180px 1fr; }
.gtb-contact-form label { display: grid; gap: 7px; color: var(--gtb-muted); font-size: 15px; }
.gtb-label-text { display: inline-flex; align-items: baseline; gap: 2px; width: max-content; max-width: 100%; color: var(--gtb-muted); line-height: 1.25; }
.gtb-label-text .gtb-required { color: #d53a4a; display: inline; margin: 0; line-height: 1; }
.gtb-contact-form input,
.gtb-contact-form textarea,
.gtb-coupon-row input { width: 100%; border: 1px solid var(--gtb-border); border-radius: 4px; padding: 11px 14px; color: var(--gtb-text); background: #fff; }
.gtb-contact-form input:focus,
.gtb-contact-form textarea:focus,
.gtb-coupon-row input:focus { outline: 2px solid color-mix(in srgb, var(--gtb-accent) 30%, transparent); border-color: var(--gtb-accent); }
.gtb-participant-field { min-width: 0; }
.gtb-select-wrap { position: relative; display: block; width: 100%; }
.gtb-select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 17px;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--gtb-muted);
  border-bottom: 2px solid var(--gtb-muted);
  transform: translateY(-65%) rotate(45deg);
  pointer-events: none;
}
.gtb-app .gtb-participant-field select {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 11px 48px 11px 14px !important;
  border: 1px solid var(--gtb-border) !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--gtb-text) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 24px !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}
.gtb-app .gtb-participant-field select:hover { border-color: color-mix(in srgb, var(--gtb-accent) 65%, var(--gtb-border)) !important; }
.gtb-app .gtb-participant-field select:focus {
  outline: 2px solid color-mix(in srgb, var(--gtb-accent) 30%, transparent) !important;
  outline-offset: 0;
  border-color: var(--gtb-accent) !important;
}
.gtb-subheading { margin: 8px 0 -4px; font-size: 17px; }
.gtb-checkbox { display: flex !important; grid-template-columns: auto 1fr; align-items: start; gap: 10px !important; }
.gtb-checkbox input { width: 20px; height: 20px; padding: 0; margin: 1px 0 0; }
.gtb-checkbox span { color: var(--gtb-muted) !important; }
.gtb-checkbox a { color: var(--gtb-accent); }
.gtb-summary-header { text-align: center; }
.gtb-summary-header h2 { margin-bottom: 4px; }
.gtb-summary-header p { color: var(--gtb-muted); margin-top: 0; }
.gtb-customer-summary { text-align: center; margin: 32px 0 24px; }
.gtb-customer-summary span,
.gtb-summary-columns span { display: block; color: var(--gtb-muted); margin-bottom: 4px; }
.gtb-customer-summary strong { font-size: 18px; }
.gtb-summary-columns { display: grid; grid-template-columns: 1fr 1fr 1.35fr; margin-bottom: 18px; }
.gtb-summary-columns > div { padding: 12px 22px; border-right: 1px solid var(--gtb-border); }
.gtb-summary-columns > div:last-child { border-right: 0; }
.gtb-summary-line { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--gtb-border); padding: 14px 22px; }
.gtb-summary-total { font-size: 18px; }
.gtb-summary-total strong,
.gtb-summary-deposit strong { color: var(--gtb-accent); }
.gtb-coupon-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 13px 22px; border-bottom: 1px solid var(--gtb-border); }
.gtb-coupon-row > div { display: flex; }
.gtb-coupon-row input { border-radius: 4px 0 0 4px; min-width: 210px; }
.gtb-coupon-row button { border: 0; background: var(--gtb-accent); color: #fff; padding: 0 20px; border-radius: 0 4px 4px 0; cursor: pointer; }
.gtb-coupon-feedback { padding: 8px 22px; font-size: 14px; }
.gtb-coupon-feedback.is-success { color: #137c4b; }
.gtb-coupon-feedback.is-error { color: #b42335; }
.gtb-binding-note { margin: 20px 22px; }
.gtb-footer { border-top: 1px solid var(--gtb-border); padding: 16px 28px; display: flex; justify-content: flex-end; gap: 18px; margin-top: auto; }
.gtb-next,
.gtb-back { border: 0; border-radius: 6px; padding: 12px 20px; cursor: pointer; }
.gtb-next { background: var(--gtb-accent); color: #fff; min-width: 195px; }
.gtb-next:disabled { opacity: .45; cursor: not-allowed; }
.gtb-back { background: transparent; color: var(--gtb-text); margin-left: auto; }
.gtb-alert { position: absolute; right: 20px; bottom: 78px; max-width: 440px; padding: 12px 16px; border-radius: 5px; background: #fff4f5; border: 1px solid #f0b7bf; color: #9a2434; box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.gtb-alert.is-success { background: #effaf4; border-color: #a7dfc1; color: #17623f; }
.gtb-success-panel { text-align: center; padding-top: 12px; }
.gtb-success-panel > p { color: var(--gtb-muted); font-size: 19px; }
.gtb-booking-id-label { margin-bottom: 0 !important; }
.gtb-booking-id { margin-top: 2px !important; font-size: 14px !important; word-break: break-all; }
.gtb-success-details { display: flex; justify-content: center; margin: 32px 0 20px; }
.gtb-success-details > div { padding: 0 28px; border-right: 1px solid var(--gtb-border); }
.gtb-success-details > div:last-child { border-right: 0; }
.gtb-success-details span,
.gtb-success-details strong { display: block; }
.gtb-success-details span { color: var(--gtb-muted); margin-bottom: 5px; }
.gtb-calendar-links { border-top: 1px solid var(--gtb-border); padding-top: 14px; }
.gtb-calendar-links p { color: var(--gtb-muted); font-size: 18px; }
.gtb-calendar-links > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.gtb-calendar-links a { border: 1px solid var(--gtb-border); border-radius: 5px; padding: 9px 16px; color: var(--gtb-text); text-decoration: none; }
.gtb-manage-card,
.gtb-notice { font-family: "Montserrat", sans-serif; }
.gtb-manage-card button,
.gtb-manage-card input,
.gtb-manage-card select,
.gtb-manage-card textarea { font-family: inherit; }
.gtb-manage-card { max-width: 760px; margin: 35px auto; padding: 30px; color: #26324c; }
.gtb-manage-card dl > div { display: grid; grid-template-columns: 180px 1fr; padding: 12px 0; border-bottom: 1px solid #e1e6ef; }
.gtb-manage-card dt { color: #73809a; }
.gtb-manage-card dd { margin: 0; font-weight: 600; }
.gtb-status-badge { display: inline-block; background: #f1e1e4; color: #9a5260; border-radius: 20px; padding: 6px 12px; }
.gtb-primary-link,
.gtb-secondary-link { display: inline-block; border: 0; border-radius: 5px; padding: 11px 17px; text-decoration: none; cursor: pointer; }
.gtb-primary-link { background: var(--gtb-accent, #d79aa4); color: #fff; }
.gtb-secondary-link { background: #eef1f6; color: #26324c; }

@media (max-width: 900px) {
  .gtb-app { grid-template-columns: 1fr; gap: 16px; margin: 16px 0; }
  .gtb-steps { position: static; display: grid; grid-template-columns: repeat(4, 1fr); padding: 10px; }
  .gtb-step-nav { justify-content: center; }
  .gtb-step-nav > span:last-child { display: none; }
  .gtb-date-layout { grid-template-columns: 1fr; }
  .gtb-calendar-wrap,
  .gtb-slots-wrap { min-height: auto; }
}
@media (max-width: 640px) {
  .gtb-content { padding: 20px 14px; }
  .gtb-service-grid,
  .gtb-field-row { grid-template-columns: 1fr; }
  .gtb-field-row-small { grid-template-columns: 120px 1fr; }
  .gtb-service { padding: 18px; }
  .gtb-service-meta { flex-direction: column; }
  .gtb-slots { grid-template-columns: 1fr; }
  .gtb-summary-columns { grid-template-columns: 1fr; }
  .gtb-summary-columns > div { border-right: 0; border-bottom: 1px solid var(--gtb-border); }
  .gtb-coupon-row { align-items: stretch; flex-direction: column; }
  .gtb-coupon-row input { min-width: 0; }
  .gtb-success-details { flex-direction: column; gap: 12px; }
  .gtb-success-details > div { border-right: 0; }
  .gtb-footer { padding: 14px; }
  .gtb-next { min-width: 0; flex: 1; }
  .gtb-manage-card dl > div { grid-template-columns: 1fr; gap: 4px; }
}

/* Zusatzprodukte */
.gtb-addons-section { margin-top:30px; padding-top:24px; border-top:1px solid var(--gtb-border); }
.gtb-addons-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px; }
.gtb-addons-heading h3 { margin:0 0 3px; color:var(--gtb-text); font-size:18px; }
.gtb-addons-heading p { margin:0; color:var(--gtb-muted); font-size:14px; }
.gtb-addons-heading > span { background:#f6e9ec; color:#a35f6c; border-radius:999px; padding:5px 10px; font-size:12px; font-weight:700; }
.gtb-addons-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.gtb-addon { border:1px solid var(--gtb-border); border-radius:9px; padding:14px; background:#fff; transition:.18s ease; }
.gtb-addon.is-selected { border-color:var(--gtb-accent); box-shadow:0 0 0 2px color-mix(in srgb, var(--gtb-accent) 20%, transparent); background:color-mix(in srgb, var(--gtb-accent) 4%, white); }
.gtb-addon-main { display:grid; grid-template-columns:auto 1fr auto; align-items:start; gap:10px; cursor:pointer; }
.gtb-addon-main input { width:19px; height:19px; margin:2px 0 0; accent-color:var(--gtb-accent); }
.gtb-addon-main span { min-width:0; }
.gtb-addon-main strong { display:block; color:var(--gtb-text); }
.gtb-addon-main small { display:block; margin-top:4px; color:var(--gtb-muted); line-height:1.35; }
.gtb-addon-main b { color:var(--gtb-accent); white-space:nowrap; }
.gtb-addon-quantity { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:10px; color:var(--gtb-muted); font-size:13px; }
.gtb-addon-quantity select { border:1px solid var(--gtb-border); border-radius:5px; min-height:34px; padding:4px 8px; background:#fff; }
.gtb-summary-addons { margin:0 22px; padding:14px 0; border-bottom:1px solid var(--gtb-border); }
.gtb-summary-addons > span { display:block; color:var(--gtb-muted); margin-bottom:8px; }
.gtb-summary-addons [data-summary-addon-list] { display:grid; gap:7px; }
.gtb-summary-addons [data-summary-addon-list] > div { display:flex; justify-content:space-between; gap:18px; color:var(--gtb-text); }
.gtb-manage-statuses { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.gtb-manage-statuses .gtb-status-badge { margin:0; }
.gtb-status-badge.is-payment { background:#e8f1ff; color:#315f99; }

@media (max-width:640px) {
  .gtb-addons-grid { grid-template-columns:1fr; }
  .gtb-addon-main { grid-template-columns:auto 1fr; }
  .gtb-addon-main b { grid-column:2; }
}

/* 1.3: eigener Zusatzprodukt-Schritt mit Bildern */
.gtb-addons-page-header { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:20px; }
.gtb-addons-page-header h2 { margin-bottom:5px; }
.gtb-addons-page-header p { margin:0; color:var(--gtb-muted); }
.gtb-addons-page-header > span { flex:0 0 auto; background:#f6e9ec; color:#9a5a66; border-radius:999px; padding:6px 11px; font-size:12px; font-weight:700; }
.gtb-addons-section.is-page { margin:0; padding:0; border:0; }
.gtb-addons-section.is-page .gtb-addons-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gtb-addons-section.is-page .gtb-addon { padding:0; overflow:hidden; border-radius:12px; display:flex; flex-direction:column; }
.gtb-addon-image { aspect-ratio:16/10; background:linear-gradient(145deg,#f8ecef,#f5f7fb); display:grid; place-items:center; overflow:hidden; color:var(--gtb-accent); font-size:34px; }
.gtb-addon-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.gtb-addon:hover .gtb-addon-image img { transform:scale(1.025); }
.gtb-addon-content { padding:15px; display:flex; flex:1; flex-direction:column; }
.gtb-addons-section.is-page .gtb-addon-main { grid-template-columns:auto minmax(0,1fr); }
.gtb-addons-section.is-page .gtb-addon-main b { grid-column:2; margin-top:3px; }
.gtb-addons-section.is-page .gtb-addon-main small { min-height:38px; }
.gtb-addons-section.is-page .gtb-addon-quantity { margin-top:auto; padding-top:12px; }
.gtb-addons-empty { border:1px dashed var(--gtb-border); border-radius:10px; padding:28px 20px; text-align:center; color:var(--gtb-muted); background:#fafbfc; }
.gtb-addons-skip-note { margin:18px 0 0; color:var(--gtb-muted); font-size:14px; text-align:center; }

@media (max-width:900px) {
  .gtb-steps { grid-template-columns:repeat(5,1fr); }
  .gtb-app.gtb-no-addon-step .gtb-steps { grid-template-columns:repeat(4,1fr); }
  .gtb-addons-section.is-page .gtb-addons-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .gtb-addons-page-header { align-items:center; }
  .gtb-addons-section.is-page .gtb-addons-grid { grid-template-columns:1fr; }
  .gtb-addon-image { aspect-ratio:16/9; }
}

.gtb-field-help { display: block; margin-top: 6px; color: var(--gtb-muted); font-size: 13px; line-height: 1.4; }
.gtb-price-note { margin: 8px 0 0; padding: 10px 12px; border-left: 3px solid var(--gtb-accent); background: #faf7f8; color: var(--gtb-muted); font-size: 13px; line-height: 1.45; }
.gtb-summary-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
