/* EdgeUno redesign — shared lead-form skin (v1)
 *
 * Every shortcode in inc/forms/ renders the same shell:
 *   <main x-data="formContainer"> … <form id="formContainer" class="grid …">
 * so that attribute is the scope. Nothing here reaches Kadence markup, the
 * block editor or any other form on the site.
 *
 * The controls were pure Tailwind defaults (gray-300 borders, 6px radius,
 * 17px labels at weight 300, a white submit button) which read as a different
 * product from the hero and nav above them. This aligns them with the
 * redesign tokens: 48px controls, teal focus ring, solid teal-contrast submit.
 *
 * Versioned by filename — CacheFly ignores ?ver=.
 */

main[x-data="formContainer"] {
  --e1f-border: rgba(160, 160, 160, .42);
  --e1f-border-hover: rgba(160, 160, 160, .72);
  --e1f-danger: #c0264a;
  display: block;
  color: var(--color-text-slate);
  font-family: var(--font-sans);
}

/* The grid the shortcodes declare is gap-4 in both axes; rows need more air
   than columns once the labels sit above the controls. */
main[x-data="formContainer"] > form {
  row-gap: 20px;
}

/* ---------------------------------------------------------------- labels */

main[x-data="formContainer"] label {
  display: block;
  margin: 0 0 7px;
  color: var(--color-brand-navy-deep);
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
}

main[x-data="formContainer"] label .text-red-600 {
  color: #dc355f;
}

/* Radio and checkbox labels wrap their own control and must stay inline. */
main[x-data="formContainer"] label.inline-block,
main[x-data="formContainer"] label:has(> input[type="radio"]),
main[x-data="formContainer"] label:has(> input[type="checkbox"]) {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 16px 8px 0;
  color: var(--color-text-slate);
  font-weight: 400;
  line-height: 24px;
}

/* -------------------------------------------------------------- controls */

main[x-data="formContainer"] input[type="text"],
main[x-data="formContainer"] input[type="email"],
main[x-data="formContainer"] input[type="tel"],
main[x-data="formContainer"] input[type="url"],
main[x-data="formContainer"] input[type="number"],
main[x-data="formContainer"] input[type="date"],
main[x-data="formContainer"] input[type="time"],
main[x-data="formContainer"] select,
main[x-data="formContainer"] textarea,
main[x-data="formContainer"] button[type="button"] {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--e1f-border);
  border-radius: var(--radius-button);
  background: var(--color-surface-card);
  padding: 11px 14px;
  color: var(--color-text-slate);
  font-family: inherit;
  font-size: .95rem;
  font-weight: 400;
  line-height: 1.5;
  transition: border-color .15s ease, box-shadow .15s ease;
}

main[x-data="formContainer"] input:hover,
main[x-data="formContainer"] select:hover,
main[x-data="formContainer"] textarea:hover,
main[x-data="formContainer"] button[type="button"]:hover {
  border-color: var(--e1f-border-hover);
}

main[x-data="formContainer"] input:focus,
main[x-data="formContainer"] select:focus,
main[x-data="formContainer"] textarea:focus,
main[x-data="formContainer"] button[type="button"]:focus-visible {
  outline: none;
  border-color: var(--color-brand-teal-contrast);
  box-shadow: 0 0 0 3px rgba(71, 175, 180, .22);
}

main[x-data="formContainer"] ::placeholder {
  color: #8b93a3;
  opacity: 1;
}

main[x-data="formContainer"] textarea {
  min-height: 132px;
  resize: vertical;
}

/* Radio/checkbox inherit none of the box treatment above. */
main[x-data="formContainer"] input[type="radio"],
main[x-data="formContainer"] input[type="checkbox"] {
  width: 17px;
  height: 17px;
  min-height: 0;
  flex: 0 0 auto;
  margin: 3px 0 0;
  accent-color: var(--color-brand-teal-contrast);
}

/* --------------------------------------------- custom search-select field */

/* The country / industry / region pickers are a button + listbox, not a
   <select>; the button carries the field look and its own chevron sits on
   top, so leave room for it. */
main[x-data="formContainer"] button[type="button"] {
  justify-content: space-between;
  padding-right: 40px;
  text-align: left;
  cursor: pointer;
}

main[x-data="formContainer"] ul[role="listbox"] {
  margin: 0;
  padding: 6px 0;
}

main[x-data="formContainer"] li[role="option"] {
  padding: 9px 14px;
  border-radius: 0;
  font-size: .9rem;
  line-height: 1.4;
}

main[x-data="formContainer"] li[role="option"]:hover,
main[x-data="formContainer"] li[role="option"].bg-blue-200 {
  background: var(--color-brand-teal-soft);
  color: var(--color-brand-navy-deep);
}

/* The panel is a Tailwind shadow-lg + ring; match the card language instead. */
main[x-data="formContainer"] div[x-show="open"] {
  border: 1px solid var(--e1f-border);
  border-radius: var(--radius-button);
  box-shadow: 0 18px 40px rgba(0, 0, 76, .13);
}

main[x-data="formContainer"] div[x-show="open"] input[type="text"] {
  min-height: 42px;
  border: 0;
  border-bottom: 1px solid var(--e1f-border);
  border-radius: 0;
}

main[x-data="formContainer"] div[x-show="open"] input[type="text"]:focus {
  box-shadow: none;
  border-bottom-color: var(--color-brand-teal-contrast);
}

/* --------------------------------------------------------------- errors */

main[x-data="formContainer"] [data-error] input[type="text"],
main[x-data="formContainer"] [data-error] input[type="email"],
main[x-data="formContainer"] [data-error] input[type="tel"],
main[x-data="formContainer"] [data-error] input[type="url"],
main[x-data="formContainer"] [data-error] textarea,
main[x-data="formContainer"] [data-error] select,
main[x-data="formContainer"] [data-error] button[type="button"] {
  border-color: #dc355f;
  box-shadow: 0 0 0 3px rgba(220, 53, 95, .14);
}

main[x-data="formContainer"] .error-message {
  display: block;
  margin-top: 6px;
  color: var(--e1f-danger);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.45;
}

/* --------------------------------------------------------------- submit */

main[x-data="formContainer"] button[type="submit"] {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--radius-button);
  background: var(--color-brand-teal-contrast);
  padding: 0 28px;
  color: #ffffff;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}

main[x-data="formContainer"] button[type="submit"]:focus-visible,
main[x-data="formContainer"] button[type="submit"]:hover {
  background: var(--color-brand-navy-deep);
  color: #ffffff;
  transform: translateY(-1px);
}

main[x-data="formContainer"] button[type="submit"]:disabled {
  background: #a0a6b4;
  cursor: not-allowed;
  transform: none;
}

/* Legal consent line under the submit reads as body copy, not as a label. */
main[x-data="formContainer"] .legal-text,
main[x-data="formContainer"] p {
  color: var(--color-text-muted);
  font-size: .875rem;
  line-height: 1.6;
}

main[x-data="formContainer"] a {
  color: var(--color-brand-teal-contrast);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ------------------------------------------------- contact / quote card */

/* Only the two dedicated form pages put the form on its own; elsewhere the
   shortcode already sits inside a styled Kadence container, so the card
   treatment stays off. */
.page-id-10 main[x-data="formContainer"],
.page-id-8284 main[x-data="formContainer"] {
  border: 1px solid rgba(160, 160, 160, .26);
  border-radius: var(--radius-card);
  background: var(--color-surface-card);
  padding: 30px;
  box-shadow: 0 12px 34px rgba(0, 0, 76, .06);
}

@media (max-width: 640px) {

  .page-id-10 main[x-data="formContainer"],
  .page-id-8284 main[x-data="formContainer"] {
    padding: 20px 18px;
  }
}
