/* Product Inquiry Form — scoped to CF7 root: .product-inquiry-form */

.product-inquiry-form {
  --balco-black: #111827;
  --balco-white: #ffffff;
  --balco-blue: #005674;
  --balco-blue-hover: #013e54;
  --balco-red-500: #ef4444;
  --balco-gray-border: #d1d5db;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  font-family: "Barlow", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ---- Titles & intro ---- */
.product-inquiry-form > h2,
.product-inquiry-form h2 {
  margin: 0 0 0.5rem;
  font-family: "Barlow Condensed", "Barlow", sans-serif;
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 1.3;
  color: var(--balco-black);
}

.product-inquiry-form > h2:not(:first-child),
.product-inquiry-form h2:not(:first-of-type) {
  margin-top: 1.75rem;
}

.product-inquiry-form > br {
  display: none;
}

.product-inquiry-form > p {
  margin: 0 0 1.25rem;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 300;
  color: var(--balco-black);
}

@media (min-width: 640px) {
  .product-inquiry-form > h2,
  .product-inquiry-form h2 {
    font-size: 1.875rem;
  }

  .product-inquiry-form > p {
    font-size: 1rem;
    line-height: 1.625;
  }
}

/* ---- Radios: single row, only a gap between items ---- */
.product-inquiry-form .grid-radio-buttons {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 1.5rem;
  width: 100%;
  position: relative;
  margin-bottom: 0.5rem;
}

.product-inquiry-form .grid-radio-buttons:has(.custom-block-input) {
  margin-top: 0.5rem;
}

.product-inquiry-form .grid-radio-buttons .radio-button,
.product-inquiry-form .grid-radio-buttons .custom-block-input {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  width: auto;
}

.product-inquiry-form .grid-radio-buttons .radio-button > p,
.product-inquiry-form .grid-radio-buttons .custom-block-input > p {
  margin: 0;
}

.product-inquiry-form .grid-radio-buttons .wpcf7-form-control-wrap,
.product-inquiry-form .grid-radio-buttons .wpcf7-radio,
.product-inquiry-form .grid-radio-buttons .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.product-inquiry-form .grid-radio-buttons .wpcf7-list-item-label {
  font-family: "Barlow", sans-serif;
  font-size: 1rem;
  color: var(--balco-black);
  line-height: 1.4;
}

/* Tip just under the radio row (slightly tight to the controls) */
.product-inquiry-form .grid-radio-buttons .wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  top: 100%;
  bottom: auto;
  margin: -2px 0 0;
  padding-left: 0;
  white-space: nowrap;
  z-index: 2;
}

/* CF7 repeats the same tip in each radio copy — show only the first */
.product-inquiry-form .grid-radio-buttons .radio-button:not(:first-child) .wpcf7-not-valid-tip,
.product-inquiry-form .grid-radio-buttons .custom-block-input:not(:first-child) .wpcf7-not-valid-tip {
  display: none !important;
}

@media (max-width: 767px) {
  .product-inquiry-form .grid-radio-buttons {
    gap: 0.5rem;
  }

  .product-inquiry-form .grid-radio-buttons .wpcf7-list-item-label {
    font-size: 0.875rem;
  }
}

/* ---- Input fields: 2-column grid (div children) ----
   Markup:
   <div class="grid-input-fields">
     <div>[text* ...]</div>
     <div>[number* ...]</div>
     ...
     <div class="balco-textarea">[textarea ...]</div>
   </div>
*/
.product-inquiry-form .grid-input-fields,
.balco-product-inquiry .grid-input-fields,
.grid-input-fields {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 1rem !important;
  row-gap: 0 !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-top: 0.25rem;
}

/* Each field cell — relative so tip can sit under the input without shifting grid */
.product-inquiry-form .grid-input-fields > div,
.balco-product-inquiry .grid-input-fields > div,
.grid-input-fields > div {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  grid-column: auto;
}

.product-inquiry-form .grid-input-fields .wpcf7-form-control-wrap,
.grid-input-fields .wpcf7-form-control-wrap {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  /* Always reserve tip space so showing/hiding error doesn't shift the grid */
  margin-bottom: 20px !important;
}

/* Tip directly under the input */
.product-inquiry-form .grid-input-fields .wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  margin: 2px 0 0;
  padding-left: 1rem;
  line-height: 1.2;
  z-index: 2;
}

/* Textarea stays in one column (same width as other fields) */
.product-inquiry-form .grid-input-fields > div.balco-textarea,
.balco-product-inquiry .grid-input-fields > div.balco-textarea,
.grid-input-fields > div.balco-textarea {
  grid-column: auto !important;
}

/* Hide CF7/autop leftover nodes (empty lines become <p> and steal grid cells) */
.product-inquiry-form .grid-input-fields > br,
.product-inquiry-form .grid-input-fields > p,
.balco-product-inquiry .grid-input-fields > br,
.balco-product-inquiry .grid-input-fields > p,
.grid-input-fields > br,
.grid-input-fields > p {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: unset;
  grid-row: unset;
}

.product-inquiry-form .grid-input-fields input,
.product-inquiry-form .grid-input-fields textarea,
.grid-input-fields input,
.grid-input-fields textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-bottom: 0 !important; /* spacing comes from wrap margin-bottom */
}

@media (max-width: 767px) {
  .product-inquiry-form .grid-input-fields,
  .balco-product-inquiry .grid-input-fields,
  .grid-input-fields {
    grid-template-columns: 1fr !important;
  }
}

.product-inquiry-form input[type="text"],
.product-inquiry-form input[type="email"],
.product-inquiry-form input[type="tel"],
.product-inquiry-form input[type="number"],
.product-inquiry-form select,
.product-inquiry-form textarea {
  width: 100%;
  background-color: var(--balco-white);
  color: var(--balco-black);
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 28px;
  font-family: "Barlow", sans-serif;
  border-radius: 9999px;
  border: 1px solid transparent;
  outline: none;
  margin-bottom: 20px;
  transition: box-shadow 150ms ease, border-color 150ms ease;
  box-sizing: border-box;
}

.product-inquiry-form textarea,
.product-inquiry-form .balco-textarea textarea {
  border-radius: 20px;
  height: 193px;
  resize: none;
  padding: 0.5rem 1rem;
}

.product-inquiry-form ::placeholder {
  font-style: italic;
  color: var(--balco-black);
  opacity: 1;
  font-family: "Barlow", sans-serif;
  font-weight: 500;
  font-size: 15px;
}

.product-inquiry-form input[type="number"]::-webkit-outer-spin-button,
.product-inquiry-form input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.product-inquiry-form input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* ---- Radio / checkbox ---- */
.product-inquiry-form input[type="radio"],
.product-inquiry-form input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 25px;
  height: 25px;
  flex-shrink: 0;
  border-radius: 9999px;
  background-color: var(--balco-white);
  border: 1px solid var(--balco-gray-border);
  position: relative;
  outline: none;
  cursor: pointer;
  vertical-align: middle;
  margin: 0 8px 0 0;
}

.product-inquiry-form input[type="checkbox"] {
  border-radius: 6px;
}

.product-inquiry-form input[type="radio"]:checked {
  background-color: var(--balco-white);
  border-color: var(--balco-gray-border);
  background-image: radial-gradient(circle, #000 0, #000 8px, transparent 8px);
  background-size: 16px 16px;
  background-position: center;
  background-repeat: no-repeat;
}

.product-inquiry-form input[type="checkbox"]:checked {
  background-color: var(--balco-blue);
  border-color: var(--balco-blue);
}

@media (max-width: 767px) {
  .product-inquiry-form input[type="radio"] {
    margin-right: 6px;
  }
}

/* ---- Privacy row ---- */
.product-inquiry-form > div:not(.grid-radio-buttons):not(.grid-input-fields):not(.form-submit-row):not(.wpcf7-response-output) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.35rem;
  margin-top: 1rem;
  position: relative;
  font-family: "Barlow", sans-serif;
  font-size: 1rem;
  color: var(--balco-black);
}

.product-inquiry-form > div:not(.grid-radio-buttons):not(.grid-input-fields):not(.form-submit-row):not(.wpcf7-response-output) .wpcf7-list-item {
  margin: 0;
}

.product-inquiry-form > div:not(.grid-radio-buttons):not(.grid-input-fields):not(.form-submit-row):not(.wpcf7-response-output) .wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  top: 100%;
  bottom: auto;
  margin: -2px 0 0;
  padding-left: 0;
  z-index: 2;
}

.product-inquiry-form .parent,
.product-inquiry-form .parent a {
  text-decoration: underline;
  color: var(--balco-black);
  font-family: "Barlow", sans-serif;
}

.product-inquiry-form .wpcf7-radio .wpcf7-list-item-label {
  display: inline-block;
  margin-right: 2px;
  font-family: "Barlow", sans-serif;
}

@media (max-width: 767px) {
  .product-inquiry-form .wpcf7-radio .wpcf7-list-item-label,
  .product-inquiry-form .parent,
  .product-inquiry-form .parent a {
    font-size: 0.875rem;
  }
}

/* ---- Submit ---- */
.product-inquiry-form .form-submit-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  height: 52px;
  margin-top: 1.25rem;
  margin-bottom: 10px;
  position: relative;
}

.product-inquiry-form .form-submit-row .wpcf7-spinner {
  position: absolute !important;
  top: 50% !important;
  right: calc(145px / 2) !important;
  transform: translate(50%, -50%) !important;
  margin: 0 !important;
  pointer-events: none;
  z-index: 2;
}

.product-inquiry-form input[type="submit"],
.product-inquiry-form button[type="submit"] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 145px;
  height: 52px;
  padding: 0.75rem 1.5rem;
  border-radius: 10px;
  background-color: var(--balco-blue);
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  font-family: "Barlow Semi Condensed", "Barlow", sans-serif;
  border: none;
  cursor: pointer;
  transition: background-color 150ms ease, opacity 150ms ease, transform 150ms ease;
}

.product-inquiry-form input[type="submit"]:hover,
.product-inquiry-form button[type="submit"]:hover {
  background-color: var(--balco-blue-hover);
  color: #fff;
  opacity: 0.95;
}

.product-inquiry-form input[type="submit"]:active,
.product-inquiry-form button[type="submit"]:active {
  transform: translateY(1px);
}

/* ---- CF7 field tips (shared base) ---- */
.product-inquiry-form .wpcf7-not-valid-tip,
.balco-product-inquiry .wpcf7-not-valid-tip {
  font-size: 12px !important;
  color: var(--balco-red-500, #ef4444);
  font-style: italic;
  font-family: "Barlow", sans-serif;
  display: block;
}

/* CF7 form-level success/error — in flow inside blue section */
.balco-product-inquiry .wpcf7-response-output,
.product-inquiry-form .wpcf7-response-output {
  position: static !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  margin: 1rem 0 0 !important;
  padding: 1rem;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: "Barlow", sans-serif;
}

.product-inquiry-form.init .wpcf7-response-output,
.product-inquiry-form.resetting .wpcf7-response-output,
.product-inquiry-form.submitting .wpcf7-response-output,
.balco-product-inquiry .wpcf7 form.init .wpcf7-response-output,
.balco-product-inquiry .wpcf7 form.resetting .wpcf7-response-output,
.balco-product-inquiry .wpcf7 form.submitting .wpcf7-response-output {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

.balco-product-inquiry .wpcf7-validation-errors,
.balco-product-inquiry .wpcf7-mail-sent-ng,
.balco-product-inquiry .wpcf7-spam-blocked,
.balco-product-inquiry .wpcf7-aborted,
.product-inquiry-form .wpcf7-validation-errors,
.product-inquiry-form .wpcf7-mail-sent-ng,
.product-inquiry-form .wpcf7-spam-blocked,
.product-inquiry-form .wpcf7-aborted {
  background-color: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  color: #dc2626 !important;
  border-left: 4px solid #ef4444 !important;
}

.balco-product-inquiry .wpcf7-mail-sent-ok,
.product-inquiry-form .wpcf7-mail-sent-ok {
  background-color: #f0fdf4 !important;
  border: 1px solid #22c55e !important;
  color: #16a34a !important;
  border-left: 4px solid #22c55e !important;
}
