/* ============ Formularios (Contact Form 7) con el diseño del sitio ============ */
.ra-form form { display: grid; gap: 4px; }
.ra-form p { margin: 0; }
.ra-form label, .ra-form .ra26-wa-campo > label { display: block; margin-bottom: 6px; font-size: 0.875rem; font-weight: 600; color: var(--ink); }
.ra-form .opt { font-weight: 400; color: var(--gray); }
.ra-form .ra26-wa-campo, .ra-form form > p { padding: 10px 0; }
.ra-form input[type="text"], .ra-form input[type="email"], .ra-form input[type="tel"], .ra-form select, .ra-form textarea {
  width: 100%; min-height: 48px; padding: 10px 0; border: 0; border-bottom: 1.5px solid var(--rule); border-radius: 0;
  background: transparent; color: var(--ink); font: inherit; font-size: 1rem;   /* 16px: el iPhone no hace zoom */
  transition: border-color 200ms var(--ease-out);
}
.ra-form textarea { min-height: 96px; resize: vertical; }
.ra-form select { appearance: none; padding-right: 28px; cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23121212' stroke-width='1.6'/%3E%3C/svg%3E") right 4px center / 12px 8px no-repeat; }
.ra-form input:focus, .ra-form select:focus, .ra-form textarea:focus { outline: none; border-bottom-color: var(--orange); }
.ra-form input:focus-visible, .ra-form select:focus-visible, .ra-form textarea:focus-visible { box-shadow: 0 1.5px 0 var(--orange); }

/* radios como botones segmentados */
.ra-form .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.ra-form .wpcf7-list-item { margin: 0; }
.ra-form .wpcf7-list-item label { position: relative; margin: 0; cursor: pointer; }
.ra-form .wpcf7-radio input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ra-form .wpcf7-radio .wpcf7-list-item-label {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; font-weight: 600; font-size: 0.9375rem;
  box-shadow: inset 0 0 0 1.5px var(--rule); transition: background-color 200ms var(--ease-out), color 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
}
.ra-form .wpcf7-radio input:checked + .wpcf7-list-item-label { background: var(--ink); color: var(--white); box-shadow: none; }
.ra-form .wpcf7-radio input:focus-visible + .wpcf7-list-item-label { outline: 2px solid var(--orange); outline-offset: 2px; }

/* aceptación (VMD) */
.ra-form .wpcf7-acceptance label { display: flex; gap: 10px; font-weight: 400; font-size: 0.875rem; color: var(--gray); }
.ra-form .wpcf7-acceptance input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ink); flex: none; }

/* envío: mismo botón que el resto del sitio */
.ra-form .wpcf7-submit {
  position: relative; display: inline-flex; align-items: center; justify-content: center; height: 56px; padding: 0 26px; margin-top: 10px;
  border: 0; border-radius: 0; background: var(--ink); color: var(--white); font: inherit; font-weight: 650; font-size: 1rem; cursor: pointer;
  transition: background-color 220ms var(--ease-out), color 220ms var(--ease-out), transform 160ms var(--ease-out);
}
.ra-form .wpcf7-submit.btn { transition: color 260ms var(--ease-out), box-shadow 260ms var(--ease-out), translate 420ms var(--ease-out), scale 160ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .ra-form input.wpcf7-submit:hover { background: var(--orange); color: var(--ink); } }
.ra-form input.wpcf7-submit:active { transform: scale(0.98); }
.ra-form .wpcf7-submit:disabled { opacity: 0.5; cursor: progress; }
.ra-form .wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }

/* campo activo: la línea se dibuja en naranja de izquierda a derecha (y se retira hacia la derecha al salir) */
.ra-form .wpcf7-form-control-wrap:has(> :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea)) { position: relative; display: block; }
.ra-form .wpcf7-form-control-wrap:has(> :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea))::after {
  content: ""; position: absolute; left: 0; right: 0; top: calc(var(--fld-h, 48px) - 1.5px); height: 1.5px; background: var(--orange); pointer-events: none;
  transform: scaleX(0); transform-origin: right; transition: transform 220ms var(--ease-out);
}
.ra-form .wpcf7-form-control-wrap:has(> textarea) { --fld-h: 96px; }
.ra-form .wpcf7-form-control-wrap:focus-within::after,
.ra-form .wpcf7-form-control-wrap:has(> .wpcf7-not-valid)::after { transform: scaleX(1); transform-origin: left; transition: transform 360ms var(--ease-out); }
.ra-form input:focus, .ra-form select:focus, .ra-form textarea:focus { border-bottom-color: var(--rule); }
.ra-form--oscuro input:focus, .ra-form--oscuro select:focus, .ra-form--oscuro textarea:focus { border-bottom-color: var(--rule-d); }
/* envío en curso: una línea cruza el botón (el mismo trazo del sitio) */
.ra-form form.submitting .wpcf7-submit {
  background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: left center;
  background-size: 0 3px; animation: ra-envio 1100ms var(--ease-in-out) infinite;
}
@keyframes ra-envio { 0% { background-size: 0 3px; background-position: left center; } 50% { background-size: 100% 3px; background-position: left center; } 51% { background-position: right center; } 100% { background-size: 0 3px; background-position: right center; } }

/* validación y respuesta */
.ra-form .wpcf7-not-valid { border-bottom-color: var(--orange-ink); }
.ra-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 0.8125rem; font-weight: 600; color: var(--orange-ink); animation: ra-tip 240ms var(--ease-out) both; }
@keyframes ra-tip { from { opacity: 0; transform: translateY(-4px); } }
.ra-form--oscuro .wpcf7-not-valid-tip { color: var(--orange); }
.ra-form form.sent .wpcf7-response-output { animation: ra-tip 360ms var(--ease-out) both; }
@media (prefers-reduced-motion: reduce) {
  .ra-form .wpcf7-form-control-wrap::after, .ra-form .wpcf7-not-valid-tip, .ra-form form.submitting .wpcf7-submit, .ra-form form.sent .wpcf7-response-output { transition: none !important; animation: none !important; }
}
/* el aviso del formulario lleva el cuadrado de la marca (naranja si falta algo, tinta o blanco al enviarse), no una franja al costado */
.ra-form .wpcf7-response-output { position: relative; margin: 14px 0 0; padding: 0 0 0 22px; border: 0; font-size: 0.875rem; line-height: 1.45; }
.ra-form .wpcf7-response-output::before { content: ""; position: absolute; left: 0; top: 0.36em; width: 10px; height: 10px; background: var(--orange); }
.ra-form .wpcf7-response-output:empty { display: none; }
.ra-form form.sent .wpcf7-response-output::before { background: var(--ink); }
.ra-form .ra26-wa-legal { font-size: 0.8125rem; color: var(--gray); padding-top: 4px; }
.ra-form .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ra-form [hidden] { display: none !important; }
.ra-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }

/* sobre fondo oscuro (guía descargable) */
.ra-form--oscuro label { color: var(--gray-d); }
.ra-form--oscuro input[type="text"], .ra-form--oscuro input[type="email"], .ra-form--oscuro input[type="tel"], .ra-form--oscuro select, .ra-form--oscuro textarea { color: var(--white); border-bottom-color: var(--rule-d); }
.ra-form--oscuro input::placeholder { color: rgba(255, 255, 255, 0.4); }
.ra-form--oscuro .wpcf7-submit { background: var(--orange); color: var(--ink); }
.ra-form--oscuro .wpcf7-submit.btn::before, .ra-form--oscuro .wpcf7-submit.btn::after { background: var(--white); }   /* como .btn--orange */
@media (hover: hover) and (pointer: fine) { .ra-form--oscuro input.wpcf7-submit:hover { background: var(--white); color: var(--ink); } .ra-form--oscuro .wpcf7-submit.btn:hover { color: var(--ink); } }
.ra-form--oscuro .wpcf7-response-output { color: var(--white); }
.ra-form--oscuro form.sent .wpcf7-response-output::before { background: var(--white); }
.guia__ok a { color: var(--orange); font-weight: 650; }

/* Contacto: formulario en dos columnas dentro de la caja negra */
.c-form__form .wpcf7-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
.c-form__form .wpcf7-form > :is(fieldset, .wpcf7-response-output, .screen-reader-response),
.c-form__form .wpcf7-form > p:has(select, textarea, .wpcf7-submit) { grid-column: 1 / -1; }
.c-form__form .wpcf7-submit { min-height: 68px; padding: 0 34px; font-size: 1.125rem; }
@media (max-width: 700px) { .c-form__form .wpcf7-form { grid-template-columns: 1fr; } }

/* leyenda de reCAPTCHA (reemplaza a la insignia flotante) */
.ra-form .ra-recaptcha { grid-column: 1 / -1; margin: 12px 0 0; padding: 0; font-size: 0.75rem; line-height: 1.45; color: var(--gray); }
.ra-form .ra-recaptcha a { color: inherit; }
.ra-form--oscuro .ra-recaptcha { color: var(--gray-d); }

/* Cloudflare Turnstile: CF7 lo inserta al principio del formulario; va en una fila propia, justo antes del botón */
.wpcf7-form .wpcf7-turnstile { grid-column: 1 / -1; order: 1; margin: 8px 0 4px; min-height: 0; }
/* el formulario de las guías envuelve todo en .vmd-gate-form: se "aplana" para poder ubicar el widget antes del botón */
.wpcf7-form > .vmd-gate-form { display: contents; }
.vmd-gate-form > p:has(.wpcf7-submit),
.wpcf7-form > :is(p:has(.wpcf7-submit), div:has(> .wpcf7-submit), .ra-recaptcha) { order: 2; }
.wpcf7-form > :is(.gscf7-frontend-gdpr-notice, .wpcf7-response-output) { order: 3; }
