/**
 * Gravity Forms — Theme styles (Orbital/theme CSS disabled via gform_disable_form_theme_css).
 * Matches search-card / booking-form-mockup (pill fields, regal accents).
 */

/* ── Wrapper ── */
.gform_wrapper {
  margin: 0;
  max-width: none;
  font-family: inherit;
  font-size: 14px;
  color: var(--gray-700);
}

.gform_wrapper form {
  margin: 0;
}

.gform_wrapper .gform_heading,
.gform_wrapper .gform_title,
.gform_wrapper .gform_description {
  display: none;
}

.gform_wrapper .gform_body,
.gform_wrapper .gform_page_fields {
  margin: 0;
}

.gform_wrapper .gfield {
  margin: 0;
  padding: 0;
  border: none;
  min-width: 0;
}

/* ── Section titles (GF section = heading only; fields are sibling grid items) ── */
.gform_wrapper .gfield--type-section,
.gform_wrapper .gfield.gsection {
  margin-top: 28px;
  padding: 0;
  border: none;
  background: transparent;
}

.gform_wrapper .gfield--type-section:first-child,
.gform_wrapper .gfield.gsection:first-child {
  margin-top: 0;
}

.gform_wrapper .gsection_title,
.gform_wrapper .gfield--type-section .gfield_label,
.gform_wrapper h2.gsection_title,
.gform_wrapper h3.gsection_title {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: var(--regal);
  margin: 0 0 16px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--gray-100);
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.gform_wrapper .gfield--type-section .gfield_description,
.gform_wrapper .gsection_description {
  font-size: 13px;
  color: var(--gray-500);
  margin: -8px 0 14px;
  line-height: 1.5;
}

/* Section wraps following fields visually: reset inner label hide */
.gform_wrapper .gfield--type-section .ginput_container {
  display: none;
}

/* ── Labels ── */
.gform_wrapper .gfield_label,
.gform_wrapper label.gfield_label,
.gform_wrapper label.gform-field-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-700);
  margin: 0 0 6px;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}

.gform_wrapper .gfield_label .gfield_required,
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_asterisk {
  color: #c2410c;
  font-weight: 700;
  margin-left: 2px;
}

.gform_wrapper .gfield_description,
.gform_wrapper .gfield_instruction {
  font-size: 12px;
  color: var(--gray-500);
  margin: 4px 0 0;
  line-height: 1.45;
}

.gform_wrapper .gfield_description.validation_message {
  color: #c2410c;
  font-weight: 600;
}

/* ── Text inputs, selects, textarea (search-card pills) ── */
.gform_wrapper .ginput_container input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.gform_wrapper .ginput_container select,
.gform_wrapper .ginput_container textarea,
.gform_wrapper input.large,
.gform_wrapper select.large,
.gform_wrapper textarea.large,
.gform_wrapper .gform-text-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: none;
  border-radius: 999px;
  font: inherit;
  font-size: 15px;
  color: var(--gray-700);
  background: var(--gray-100);
  box-shadow: none;
  transition: background 0.2s, box-shadow 0.2s;
}

.gform_wrapper .ginput_container input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.gform_wrapper .ginput_container select,
.gform_wrapper input.large,
.gform_wrapper select.large {
  height: 52px;
  padding: 0 18px;
  line-height: 52px;
}

.gform_wrapper .ginput_container textarea,
.gform_wrapper textarea.large,
.gform_wrapper textarea.medium {
  height: auto;
  min-height: 120px;
  padding: 14px 18px;
  line-height: 1.5;
  border-radius: 16px;
  resize: vertical;
}

.gform_wrapper .ginput_container select,
.gform_wrapper select.large,
.gform_wrapper select.medium {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 44px;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' stroke='%23003F7D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  background-size: 12px;
}

.gform_wrapper .ginput_container input[readonly],
.gform_wrapper .ginput_container input:disabled,
.gform_wrapper .ginput_container select:disabled,
.gform_wrapper .ginput_container textarea:disabled {
  background: var(--gray-100);
  color: var(--gray-500);
  cursor: not-allowed;
}

.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container select:focus,
.gform_wrapper .ginput_container textarea:focus {
  outline: none;
  background: var(--surface);
  box-shadow: 0 0 0 3px rgba(96, 173, 253, 0.22);
}

.gform_wrapper .ginput_container input::placeholder,
.gform_wrapper .ginput_container textarea::placeholder {
  color: var(--gray-400);
}

/* Date/time/datepicker: smoco-gf-datepicker.css (optional, siehe gravity-forms.php) */

.gform_wrapper .ginput_complex {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.gform_wrapper .ginput_complex span {
  flex: 1 1 auto;
  min-width: 0;
}

.gform_wrapper .ginput_complex label {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-500);
  margin-bottom: 4px;
}

/* ── Radio & checkbox ── */
.gform_wrapper .gfield_radio,
.gform_wrapper .gfield_checkbox {
  margin: 0;
}

.gform_wrapper .gfield_radio .gchoice,
.gform_wrapper .gfield_checkbox .gchoice,
.gform_wrapper ul.gfield_radio li,
.gform_wrapper ul.gfield_checkbox li {
  position: relative;
  display: block;
  padding-left: 30px;
  margin: 0 16px 8px 0;
  list-style: none;
}

.gform_wrapper .gfield_radio .gchoice label,
.gform_wrapper .gfield_checkbox .gchoice label,
.gform_wrapper ul.gfield_radio li label,
.gform_wrapper ul.gfield_checkbox li label {
  font-size: 14px;
  font-weight: 500;
  color: var(--gray-700);
  margin: 0;
  cursor: pointer;
  line-height: 1.35;
}

/* Custom box drawn with ::before — iOS Safari ignores appearance:none on
 * checkboxes and shows the native dark/light control; hide the native input
 * and paint our own box so consent + multi-select match the pill fields. */
.gform_wrapper .gfield_checkbox .gchoice::before,
.gform_wrapper ul.gfield_checkbox li::before,
.gform_wrapper .ginput_container_consent::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  border: 2px solid var(--gray-400);
  border-radius: 6px;
  background-color: #fff;
  box-sizing: border-box;
  pointer-events: none;
  transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.gform_wrapper .gfield_checkbox .gchoice:has(> input:checked)::before,
.gform_wrapper ul.gfield_checkbox li:has(> input:checked)::before,
.gform_wrapper .ginput_container_consent:has(> input:checked)::before {
  background-color: var(--regal);
  border-color: var(--regal);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3 7.5 6 10.5 11 4' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 13px;
}

.gform_wrapper .gfield_checkbox input[type="checkbox"],
.gform_wrapper ul.gfield_checkbox input[type="checkbox"],
.gform_wrapper .ginput_container_consent input[type="checkbox"] {
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  z-index: 1;
  cursor: pointer;
}

.gform_wrapper .gfield_checkbox .gchoice:has(> input:focus-visible)::before,
.gform_wrapper ul.gfield_checkbox li:has(> input:focus-visible)::before,
.gform_wrapper .ginput_container_consent:has(> input:focus-visible)::before {
  box-shadow: 0 0 0 3px rgba(0, 63, 125, 0.2);
}

/* Radio: appearance:none works reliably on iOS; keep drawn control on input. */
.gform_wrapper .gfield_radio input[type="radio"],
.gform_wrapper ul.gfield_radio input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  flex-shrink: 0;
  border: 2px solid var(--gray-400);
  border-radius: 50%;
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 8px;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.gform_wrapper .gfield_radio .gchoice,
.gform_wrapper ul.gfield_radio li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding-left: 0;
}

.gform_wrapper .gfield_radio input[type="radio"]:checked,
.gform_wrapper ul.gfield_radio input[type="radio"]:checked {
  background-color: var(--regal);
  border-color: var(--regal);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Ccircle cx='4' cy='4' r='4' fill='white'/%3E%3C/svg%3E");
}

.gform_wrapper .gfield_radio input[type="radio"]:focus-visible,
.gform_wrapper ul.gfield_radio input[type="radio"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 63, 125, 0.2);
}

.gform_wrapper .gfield--type-radio .gfield_label,
.gform_wrapper .gfield--type-checkbox .gfield_label {
  margin-bottom: 10px;
}

/* Horizontal radio row (e.g. Anrede) */
.gform_wrapper .gfield--type-radio .gfield_radio {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}

.gform_wrapper .gfield--type-radio .gfield_radio .gchoice {
  margin-bottom: 0;
}

/* Consent / legal checkbox */
.gform_wrapper .gfield--type-consent .ginput_container_consent {
  position: relative;
  display: block;
  padding-left: 30px;
  font-size: 13px;
  line-height: 1.5;
}

.gform_wrapper .gfield--type-consent .ginput_container_consent label {
  font-size: 13px;
  font-weight: 500;
  color: var(--gray-700);
  margin: 0;
  cursor: pointer;
  display: inline;
}

/* ── Validation ── */
.gform_wrapper .gfield_error .gfield_label {
  color: #c2410c;
}

.gform_wrapper .gfield_error input:not([type="checkbox"]):not([type="radio"]),
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
  border-color: #f87171;
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.2);
}

.gform_wrapper .gform_validation_errors,
.gform_wrapper .validation_error {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 14px;
  font-weight: 600;
}

.gform_wrapper .gform_validation_errors h2 {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 6px;
}

/* ── Multipage / progress ── */
.gform_wrapper .gf_progressbar_wrapper,
.gform_wrapper .gf_page_steps {
  margin-bottom: 20px;
}

.gform_wrapper .gf_progressbar {
  height: 6px;
  border-radius: 999px;
  background: var(--gray-100);
  overflow: hidden;
}

.gform_wrapper .gf_progressbar_percentage {
  height: 100%;
  background: var(--regal);
  border-radius: inherit;
}

.gform_wrapper .gf_page_steps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
}

.gform_wrapper .gf_step {
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--gray-100);
  color: var(--gray-500);
  font-weight: 600;
}

.gform_wrapper .gf_step_active,
.gform_wrapper .gf_step_completed {
  background: rgba(0, 63, 125, 0.1);
  color: var(--regal);
}

.gform_wrapper .gform_page {
  margin: 0;
}

.gform_wrapper .gform_page_footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--gray-100);
}

/* ── Buttons ── */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
  margin: 24px 0 0;
  padding: 0;
}

.gform_wrapper .gform_footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 8px;
}

.gform_wrapper input[type="submit"],
.gform_wrapper input[type="button"],
.gform_wrapper button.gform_button,
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_previous_button {
  min-width: 160px;
  height: 48px;
  padding: 0 28px;
  border: none;
  border-radius: 999px;
  font: inherit;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: filter 0.2s, transform 0.15s;
  text-transform: none;
  box-shadow: none;
}

.gform_wrapper input[type="submit"],
.gform_wrapper button.gform_button,
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button {
  background: var(--candle);
  color: var(--regal);
}

.gform_wrapper input[type="submit"]:hover,
.gform_wrapper button.gform_button:hover,
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_next_button:hover {
  filter: brightness(1.04);
  transform: translateY(-1px);
}

.gform_wrapper .gform_previous_button {
  background: var(--surface);
  color: var(--regal);
  border: 2px solid var(--regal);
}

.gform_wrapper input[type="submit"]:focus-visible,
.gform_wrapper button.gform_button:focus-visible,
.gform_wrapper .gform_next_button:focus-visible,
.gform_wrapper .gform_previous_button:focus-visible {
  outline: 2px solid var(--malibu);
  outline-offset: 2px;
}

/* ── Confirmation / ajax spinner ── */
.gform_wrapper .gform_confirmation_message {
  padding: 16px 18px;
  border-radius: 10px;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  font-size: 14px;
  line-height: 1.55;
  color: var(--gray-700);
}

.gform_wrapper .gform_ajax_spinner {
  margin-left: 10px;
  vertical-align: middle;
}

/* ── Hidden / honeypot ── */
.gform_wrapper .gfield_visibility_hidden,
.gform_wrapper .gform_validation_container,
.gform_wrapper .gfield_honeypot_container {
  display: none !important;
  position: absolute;
  left: -9999px;
}

/* ── Booking drawer: panel title is in header ── */
.booking-panel-scroll .gform_wrapper .gform_heading,
.booking-panel-scroll .gform_wrapper .gform_title {
  display: none !important;
}

.booking-panel-scroll .gform_wrapper .gfield--type-section:first-child .gsection_title,
.booking-panel-scroll .gform_wrapper .gfield.gsection:first-child .gsection_title {
  display: none;
}

@media (max-width: 768px) {
  .gform_wrapper .gform_footer,
  .gform_wrapper .gform_page_footer {
    justify-content: stretch;
  }

  .gform_wrapper input[type="submit"],
  .gform_wrapper button.gform_button,
  .gform_wrapper .gform_button,
  .gform_wrapper .gform_next_button,
  .gform_wrapper .gform_previous_button {
    width: 100%;
    min-width: 0;
  }

  /* Buchungs-Drawer: kompaktere Eingabefelder auf Smartphones */
  .booking-panel-scroll .gform_wrapper .ginput_container input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
  .booking-panel-scroll .gform_wrapper .ginput_container select,
  .booking-panel-scroll .gform_wrapper input.large,
  .booking-panel-scroll .gform_wrapper select.large {
    height: 40px;
    line-height: 40px;
    padding: 0 14px;
  }

  .booking-panel-scroll .gform_wrapper .ginput_container select,
  .booking-panel-scroll .gform_wrapper select.large,
  .booking-panel-scroll .gform_wrapper select.medium {
    padding-right: 38px;
    background-position: right 14px center;
  }
}

/* GF grid: half-width only (12-col); nicht für third/quarter — zuletzt geladen */
.gform_wrapper.gravity-theme .gform_fields {
  grid-column-gap: 2%;
}

.gform_wrapper.gravity-theme .gfield.gfield--width-half {
  grid-column: span 6;
  -ms-grid-column-span: 6;
}
