/**
 * Gravity Forms → Dutch Tech Campus (platte_html parity)
 *
 * Light forms (contact / brochure): uppercase labels, square inputs,
 * cyan focus + cyan CTA → black hover.
 * Dark newsletter band: transparent fields, white borders, CTA → white hover.
 */

/* ---- Global Orbital token overrides ---------------------------- */
.gform_wrapper,
.gform_wrapper.gform-theme--orbital, .gform_wrapper.gform_legacy_markup_wrapper {
  --gf-color-primary: var(--dtc-cyan, #00c1de);
  --gf-color-primary-rgb: 0, 193, 222;
  --gf-color-primary-contrast: #fff;
  --gf-color-primary-darker: #009fb8;
  --gf-color-primary-lighter: #33cde5;
  --gf-color-in-ctrl-primary: var(--dtc-cyan, #00c1de);
  --gf-color-in-ctrl-primary-rgb: 0, 193, 222;
  --gf-color-in-ctrl-primary-contrast: #fff;
  --gf-color-in-ctrl-primary-darker: #009fb8;
  --gf-color-in-ctrl-primary-lighter: #33cde5;
  --gf-radius: 0;
  --gf-ctrl-border-color: var(--dtc-border, #e5e5e5);
  --gf-ctrl-label-color-primary: var(--dtc-gray, #5c5c5c);
  --gf-ctrl-label-color-secondary: var(--dtc-gray, #5c5c5c);
  --gf-ctrl-btn-border-color-secondary: var(--dtc-border, #e5e5e5);
  --gf-font-size-secondary: 12px;
  --gf-font-size-tertiary: 12px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.gform_wrapper .gform_heading {
  display: none;
}

/* ---- Field stack (space-y-4) ----------------------------------- */
.gform_wrapper .gform_fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  row-gap: 1rem;
  column-gap: 1rem;
}

.gform_wrapper .gfield {
  margin: 0 !important;
  padding: 0 !important;
}

/* Contact: e-mail + telefoon naast elkaar vanaf sm */
@media (min-width: 640px) {
  .dtc-forms .gform_wrapper .gform_fields {
    grid-template-columns: 1fr 1fr;
  }

  .dtc-forms .gform_wrapper .gfield {
    grid-column: 1 / -1;
  }

  .dtc-forms .gform_wrapper .gfield--type-email,
  .dtc-forms .gform_wrapper .gfield--type-phone {
    grid-column: span 1;
  }
}

/* ---- Labels ---------------------------------------------------- */
.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label {
  display: block;
  margin: 0 0 0.25rem !important;
  padding: 0 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--dtc-gray, #5c5c5c) !important;
}

.gform_wrapper .gfield_required {
  margin-left: 0.15em;
  color: var(--dtc-cyan, #00c1de);
  font-weight: 700;
}

.gform_wrapper .gfield_required_text {
  /* Asterisk via form setting; hide verbose “(Vereist)” if still present */
  font-size: 0;
  letter-spacing: 0;
}

.gform_wrapper .gfield_required_text::before {
  content: "*";
  font-size: 12px;
  color: var(--dtc-cyan, #00c1de);
}

.gform_wrapper .gfield_description,
.gform_wrapper .gform_required_legend {
  font-size: 13px;
  color: var(--dtc-gray, #5c5c5c);
}

.gform_wrapper .gform_required_legend {
  display: none;
}

/* ---- Inputs / selects / textarea ------------------------------- */
.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"],
.gform_wrapper .ginput_container input[type="url"],
.gform_wrapper .ginput_container input[type="number"],
.gform_wrapper .ginput_container input[type="password"],
.gform_wrapper .ginput_container input[type="search"],
.gform_wrapper .ginput_container select,
.gform_wrapper .ginput_container textarea,
.gform_wrapper input.large,
.gform_wrapper input.medium,
.gform_wrapper input.small,
.gform_wrapper select.large,
.gform_wrapper select.medium,
.gform_wrapper select.small,
.gform_wrapper textarea.large,
.gform_wrapper textarea.medium,
.gform_wrapper textarea.small {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border: 1px solid var(--dtc-border, #e5e5e5) !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--dtc-ink, #111) !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
  appearance: none;
}

/* Text inputs + textarea: taller field via padding. */
.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"],
.gform_wrapper .ginput_container input[type="url"],
.gform_wrapper .ginput_container input[type="number"],
.gform_wrapper .ginput_container input[type="password"],
.gform_wrapper .ginput_container input[type="search"],
.gform_wrapper .ginput_container textarea,
.gform_wrapper input.large,
.gform_wrapper input.medium,
.gform_wrapper input.small,
.gform_wrapper textarea.large,
.gform_wrapper textarea.medium,
.gform_wrapper textarea.small {
  padding: 1.125rem 1.25rem !important;
  line-height: 1.4 !important;
}

/* Text inputs: taller field via padding (no fixed min-height clash). */
.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"],
.gform_wrapper .ginput_container input[type="url"],
.gform_wrapper .ginput_container input[type="number"],
.gform_wrapper .ginput_container input[type="password"],
.gform_wrapper .ginput_container input[type="search"],
.gform_wrapper input.large,
.gform_wrapper input.medium,
.gform_wrapper input.small {
  min-height: 3.5rem !important;
}

/*
 * Native <select> can't be tall + padded in Chromium (text clips / misaligns).
 * Tall chrome lives on the container; the select stays natural height and is centered.
 */
.gform_wrapper .ginput_container_select {
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
  height: 3.5rem !important;
  min-height: 3.5rem !important;
  border: 1px solid var(--dtc-border, #e5e5e5) !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  transition: border-color 0.2s ease !important;
}

.gform_wrapper .ginput_container_select:hover {
  border-color: #cfcfcf !important;
}

.gform_wrapper .ginput_container_select:focus-within {
  border-color: var(--dtc-cyan, #00c1de) !important;
}

.gform_wrapper .ginput_container select,
.gform_wrapper select.large,
.gform_wrapper select.medium,
.gform_wrapper select.small {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 2.5rem 0 1.25rem !important;
  line-height: 1.4 !important;
  border: none !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b6b6b' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 12px 8px !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}

.gform_wrapper .ginput_container_select select:hover,
.gform_wrapper .ginput_container_select select:focus,
.gform_wrapper .ginput_container_select select:focus-visible {
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

.gform_wrapper .ginput_container textarea,
.gform_wrapper textarea.large,
.gform_wrapper textarea.medium,
.gform_wrapper textarea.small {
  min-height: 8rem !important;
  resize: vertical;
}

.gform_wrapper .ginput_container input:hover,
.gform_wrapper .ginput_container select:hover,
.gform_wrapper .ginput_container textarea:hover {
  border-color: #cfcfcf !important;
}

.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container select:focus,
.gform_wrapper .ginput_container textarea:focus,
.gform_wrapper .ginput_container input:focus-visible,
.gform_wrapper .ginput_container select:focus-visible,
.gform_wrapper .ginput_container textarea:focus-visible {
  border-color: var(--dtc-cyan, #00c1de) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ---- Checkbox / radio ------------------------------------------ */
.gform_wrapper .gfield_checkbox,
.gform_wrapper .gfield_radio {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.gform_wrapper .gchoice {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0 !important;
}

.gform_wrapper .gchoice label,
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label {
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--dtc-ink, #111) !important;
  line-height: 1.45 !important;
}

.gform_wrapper .gchoice input[type="checkbox"],
.gform_wrapper .gchoice input[type="radio"] {
  flex-shrink: 0;
  width: 18px !important;
  height: 18px !important;
  margin: 0.15rem 0 0 !important;
  border: 1px solid var(--dtc-border, #e5e5e5) !important;
  border-radius: 0 !important;
  accent-color: var(--dtc-cyan, #00c1de);
}

/* Privacy-checkbox fields: hide the outer “Privacy” label */
.gform_wrapper .gfield--type-checkbox .gfield_label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ---- Submit button --------------------------------------------- */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
  margin: 0.25rem 0 0 !important;
  padding: 0 !important;
}

.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"].gform_button,
.gform_wrapper button.gform_button,
.gform_wrapper .gform-theme-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--dtc-cyan, #00c1de) !important;
  padding: 15px 1.5rem !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  color: #fff !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_button:focus-visible,
.gform_wrapper input[type="submit"].gform_button:hover,
.gform_wrapper button.gform_button:hover,
.gform_wrapper .gform-theme-button:hover {
  background: #000 !important;
  color: #fff !important;
}

/* ---- Validation / confirmation --------------------------------- */
.gform_wrapper .gform_validation_errors,
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message {
  border-radius: 0 !important;
  font-size: 14px;
}

.gform_confirmation_message {
  font-size: 16px;
  line-height: 1.55;
  color: var(--dtc-ink, #111);
}

.gform_wrapper .gfield_error .ginput_container input,
.gform_wrapper .gfield_error .ginput_container textarea,
.gform_wrapper .gfield_error .ginput_container_select {
  border-color: #c0392b !important;
}

/* ---- Dark newsletter band -------------------------------------- */
.dtc-newsletter .gform_wrapper,
.dtc-newsletter__form .gform_wrapper {
  --gf-ctrl-border-color: rgba(255, 255, 255, 0.6);
  --gf-ctrl-label-color-primary: rgba(255, 255, 255, 0.85);
  max-width: 570px;
}

/* Form is set to "hidden_label" (placeholder-only, like platte_html) — hide
   labels visually but keep them for screen readers instead of removing them. */
.dtc-newsletter .gform_wrapper .gfield_label,
.dtc-newsletter .gform_wrapper .gform-field-label,
.dtc-newsletter__form .gform_wrapper .gfield_label,
.dtc-newsletter__form .gform_wrapper .gform-field-label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dtc-newsletter .gform_wrapper .ginput_container input[type="text"],
.dtc-newsletter .gform_wrapper .ginput_container input[type="email"],
.dtc-newsletter .gform_wrapper .ginput_container input[type="tel"],
.dtc-newsletter .gform_wrapper .ginput_container select,
.dtc-newsletter .gform_wrapper .ginput_container textarea,
.dtc-newsletter__form .gform_wrapper .ginput_container input[type="text"],
.dtc-newsletter__form .gform_wrapper .ginput_container input[type="email"],
.dtc-newsletter__form .gform_wrapper .ginput_container input[type="tel"],
.dtc-newsletter__form .gform_wrapper .ginput_container select,
.dtc-newsletter__form .gform_wrapper .ginput_container textarea {
  border-color: rgba(255, 255, 255, 0.6) !important;
  background-color: transparent !important;
  color: #fff !important;
  font-weight: 500 !important;
}

.dtc-newsletter .gform_wrapper .ginput_container input::placeholder,
.dtc-newsletter__form .gform_wrapper .ginput_container input::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
  opacity: 1;
}

.dtc-newsletter .gform_wrapper .ginput_container input:focus,
.dtc-newsletter .gform_wrapper .ginput_container select:focus,
.dtc-newsletter .gform_wrapper .ginput_container textarea:focus,
.dtc-newsletter__form .gform_wrapper .ginput_container input:focus,
.dtc-newsletter__form .gform_wrapper .ginput_container select:focus,
.dtc-newsletter__form .gform_wrapper .ginput_container textarea:focus {
  border-color: var(--dtc-cyan, #00c1de) !important;
}

.dtc-newsletter .gform_wrapper .gchoice label,
.dtc-newsletter__form .gform_wrapper .gchoice label {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 14px !important;
}

.dtc-newsletter .gform_wrapper .gchoice input[type="checkbox"],
.dtc-newsletter__form .gform_wrapper .gchoice input[type="checkbox"] {
  border-color: rgba(255, 255, 255, 0.7) !important;
  background-color: transparent !important;
  appearance: none;
  -webkit-appearance: none;
}

.dtc-newsletter .gform_wrapper .gchoice input[type="checkbox"]:checked,
.dtc-newsletter__form .gform_wrapper .gchoice input[type="checkbox"]:checked {
  background-color: var(--dtc-cyan, #00c1de) !important;
  border-color: var(--dtc-cyan, #00c1de) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='%23fff' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 10px 9px !important;
}

.dtc-newsletter .gform_wrapper .gform_button:hover,
.dtc-newsletter .gform_wrapper .gform_button:focus-visible,
.dtc-newsletter__form .gform_wrapper .gform_button:hover,
.dtc-newsletter__form .gform_wrapper .gform_button:focus-visible {
  background: #fff !important;
  color: #000 !important;
}

.dtc-newsletter .gform_confirmation_message,
.dtc-newsletter__form .gform_confirmation_message {
  color: #fff;
}

.dtc-newsletter .gform_wrapper .gfield_description,
.dtc-newsletter .gform_wrapper .validation_message,
.dtc-newsletter__form .gform_wrapper .gfield_description,
.dtc-newsletter__form .gform_wrapper .validation_message {
  color: rgba(255, 255, 255, 0.8);
}

/* ---- Flipbook / brochure card (match platte_html form spacing) ---- */
.dtc-flipbook-block .gform_wrapper {
  max-width: none;
}

.dtc-flipbook-block .gform_wrapper .gform_fields {
  gap: 1rem;
  row-gap: 1rem;
}

.dtc-flipbook-block .gform_wrapper .gfield_label,
.dtc-flipbook-block .gform_wrapper .gform-field-label {
  margin-bottom: 0.25rem !important;
}

.dtc-flipbook-block .gform_wrapper .ginput_container input[type="text"],
.dtc-flipbook-block .gform_wrapper .ginput_container input[type="email"],
.dtc-flipbook-block .gform_wrapper .ginput_container input[type="tel"],
.dtc-flipbook-block .gform_wrapper .ginput_container input[type="url"],
.dtc-flipbook-block .gform_wrapper .ginput_container input[type="number"],
.dtc-flipbook-block .gform_wrapper .ginput_container select,
.dtc-flipbook-block .gform_wrapper .ginput_container textarea {
  background-color: #fff !important;
}

.dtc-flipbook-block .gform_wrapper .gform_footer,
.dtc-flipbook-block .gform_wrapper .gform_page_footer {
  margin-top: 1.5rem !important;
  padding-top: 0 !important;
}

.dtc-flipbook-block .gform_wrapper .gform_button,
.dtc-flipbook-block .gform_wrapper input[type="submit"].gform_button {
  margin-top: 0 !important;
}
