/*
 * Formulario de contacto (Contact Form 7) — estilo Figma: solo línea inferior, rejilla 2 columnas.
 *
 * Orden recomendado de campos en CF7 para la rejilla:
 * 1) Nombre  2) Apellido  3) Correo  4) Teléfono  → dos filas de dos columnas
 * 5) Select (tipo de solicitud)  6) Mensaje (textarea)  7) Enviar
 * Los párrafos con select, textarea o envío ocupan ancho completo (grid-column automático).
 */

/* Refuerzo: sin padding-bottom extra antes del footer (igual que .oz-main global) */
body.oz-contact-page main.oz-main {
  padding-bottom: 0 !important;
}

body.oz-contact-page .oz-page__content .wp-block-group:has(.wpcf7),
body.oz-contact-page .oz-page__content .wp-block-group:has(form.wpcf7-form) {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

body.oz-contact-page .wp-block-group:has(.wpcf7) .wp-block-group__inner-container {
  padding-left: 0;
  padding-right: 0;
}

/* Contenedor CF7 sin “tarjeta” extra */
body.oz-contact-page .wpcf7 {
  background: transparent;
  box-shadow: none;
  padding: 0;
  margin: 0;
  max-width: 100%;
}

body.oz-contact-page .wpcf7-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 2.25rem;
  row-gap: 1.5rem;
  max-width: 100%;
}

body.oz-contact-page .wpcf7-form > p {
  margin: 0;
}

/* Campos de ancho completo */
body.oz-contact-page .wpcf7-form > p:has(select),
body.oz-contact-page .wpcf7-form > p:has(textarea),
body.oz-contact-page .wpcf7-form > p:has(input[type="submit"]),
body.oz-contact-page .wpcf7-form > p:has(.wpcf7-submit),
body.oz-contact-page .wpcf7-form > p:has(.wpcf7-acceptance),
body.oz-contact-page .wpcf7-form > p:has(.wpcf7-checkbox) {
  grid-column: 1 / -1;
}

body.oz-contact-page .wpcf7-form > p:has(input[type="submit"]),
body.oz-contact-page .wpcf7-form > p:has(.wpcf7-submit) {
  justify-self: start;
  margin-top: 0.35rem;
}

body.oz-contact-page .wpcf7-form label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: #0f172a;
}

body.oz-contact-page .wpcf7-form label br {
  display: none;
}

body.oz-contact-page .wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

body.oz-contact-page .wpcf7-form input[type="text"],
body.oz-contact-page .wpcf7-form input[type="email"],
body.oz-contact-page .wpcf7-form input[type="tel"],
body.oz-contact-page .wpcf7-form input[type="url"],
body.oz-contact-page .wpcf7-form input[type="number"],
body.oz-contact-page .wpcf7-form select,
body.oz-contact-page .wpcf7-form textarea {
  width: 100%;
  max-width: 100%;
  border: none;
  border-bottom: 1px solid #cbd5e1;
  border-radius: 0;
  background: transparent !important;
  padding: 0.55rem 0;
  box-shadow: none;
  font: inherit;
  font-size: 1rem;
  color: var(--color-text, #1f2937);
  transition: border-color 0.15s ease;
}

body.oz-contact-page .wpcf7-form select {
  appearance: none;
  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.5L6 7.5L9 4.5' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
  padding-right: 1.75rem;
  cursor: pointer;
}

body.oz-contact-page .wpcf7-form textarea {
  min-height: 6.5rem;
  resize: vertical;
  line-height: 1.5;
}

body.oz-contact-page .wpcf7-form input::placeholder,
body.oz-contact-page .wpcf7-form textarea::placeholder {
  color: #94a3b8;
}

body.oz-contact-page .wpcf7-form input:focus,
body.oz-contact-page .wpcf7-form select:focus,
body.oz-contact-page .wpcf7-form textarea:focus {
  outline: none;
  border-bottom-color: #0064ba;
  box-shadow: none;
}

body.oz-contact-page .wpcf7-form input[type="submit"],
body.oz-contact-page .wpcf7-form button[type="submit"] {
  width: auto;
  min-width: 9rem;
  padding: 0.8rem 2.25rem;
  border: none;
  border-radius: 999px;
  background: #2c5266;
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease;
}

body.oz-contact-page .wpcf7-form input[type="submit"]:hover,
body.oz-contact-page .wpcf7-form button[type="submit"]:hover {
  background: #244556;
}

body.oz-contact-page .wpcf7-form input[type="submit"]:focus-visible,
body.oz-contact-page .wpcf7-form button[type="submit"]:focus-visible {
  outline: 2px solid var(--color-focus, #2563eb);
  outline-offset: 3px;
}

body.oz-contact-page .wpcf7-form .wpcf7-response-output {
  grid-column: 1 / -1;
  margin: 0.5rem 0 0;
  padding: 0;
  border: none;
  font-size: 0.9rem;
}

body.oz-contact-page .wpcf7-form .wpcf7-not-valid-tip {
  font-size: 0.8rem;
  margin-top: 0.35rem;
  color: #b91c1c;
}

body.oz-contact-page .wpcf7-form .wpcf7-not-valid {
  border-bottom-color: #b91c1c !important;
}

body.oz-contact-page .wpcf7-spinner {
  grid-column: 1 / -1;
  margin: 0.5rem 0 0;
}

@media (max-width: 639px) {
  body.oz-contact-page .wpcf7-form {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  body.oz-contact-page .wpcf7-form > p:has(select),
  body.oz-contact-page .wpcf7-form > p:has(textarea),
  body.oz-contact-page .wpcf7-form > p:has(input[type="submit"]),
  body.oz-contact-page .wpcf7-form > p:has(.wpcf7-submit) {
    grid-column: 1;
  }
}
