/*
 * GastgeberPilot Theme-Grundlage.
 * Feste Strukturklassen für den späteren visuellen Design-Editor.
 * Kundenspezifische Werte kommen aus theme_generated.css.
 */
.gp-theme-scope,
.gp-theme-preview {
  font-family: var(--gp-theme-font-family, Arial, sans-serif);
  color: var(--gp-theme-text, #2b2b2b);
}

.gp-theme-page {
  background: var(--gp-theme-background, #f5f1eb);
}

.gp-theme-wrap {
  max-width: 1100px;
  margin: 0 auto;
}

.gp-theme-card {
  background: var(--gp-theme-surface, #ffffff);
  border: 1px solid var(--gp-theme-border, #e5ddd3);
  border-radius: var(--gp-theme-card-radius, 18px);
  padding: var(--gp-theme-card-padding, 28px);
  box-shadow: var(--gp-theme-shadow, 0 8px 24px rgba(0,0,0,.06));
}

.gp-theme-card-soft {
  background: var(--gp-theme-soft-surface, #f8f4ee);
  border: 1px solid var(--gp-theme-border, #e5ddd3);
  border-radius: var(--gp-theme-card-radius, 18px);
  padding: calc(var(--gp-theme-card-padding, 28px) * .75);
}

.gp-theme-h1 {
  color: var(--gp-theme-primary, #8b1d2c);
  font-size: var(--gp-theme-h1-size, 42px);
  line-height: 1.1;
  margin: 0 0 12px;
}

.gp-theme-h2 {
  color: var(--gp-theme-primary, #8b1d2c);
  font-size: var(--gp-theme-h2-size, 30px);
  line-height: 1.15;
  margin: 0 0 12px;
}

.gp-theme-text {
  color: var(--gp-theme-text, #2b2b2b);
  font-size: var(--gp-theme-text-size, 18px);
  line-height: 1.5;
}

.gp-theme-muted {
  color: var(--gp-theme-muted, #666666);
  font-size: var(--gp-theme-small-size, 14px);
  line-height: 1.45;
}

.gp-theme-button {
  display: inline-block;
  background: var(--gp-theme-primary, #8b1d2c);
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none;
  border: 0;
  border-radius: var(--gp-theme-field-radius, 12px);
  padding: var(--gp-theme-button-padding, 14px 20px);
  font-weight: 700;
  text-align: center;
}

.gp-theme-button-secondary {
  background: #555555;
}

.gp-theme-field {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--gp-theme-border, #e5ddd3);
  border-radius: var(--gp-theme-field-radius, 12px);
  padding: 12px 14px;
  font-size: var(--gp-theme-text-size, 18px);
  background: #ffffff;
  color: var(--gp-theme-text, #2b2b2b);
}

.gp-theme-notice {
  border-left: 5px solid var(--gp-theme-warning, #d7a400);
  background: #fff5bf;
  border-radius: var(--gp-theme-field-radius, 12px);
  padding: 14px 18px;
  color: #5f4a00;
}

.gp-theme-ok {
  border-left-color: var(--gp-theme-success, #2e7d32);
  background: #e8f5e9;
  color: #1b5e20;
}

.gp-theme-danger {
  border-left-color: var(--gp-theme-danger, #b3261e);
  background: #fdecec;
  color: #7f1d1d;
}

.gp-theme-logo {
  max-width: var(--gp-theme-logo-max-width, 360px);
  width: 100%;
  height: auto;
}

.gp-theme-public-branding {
  opacity: var(--gp-theme-public-branding-opacity, .55);
  font-size: var(--gp-theme-small-size, 14px);
}
