/* KUNDALINI SERPENT · Formaciones · Formulario de contacto (27-10)
   Mismo diseño que el formulario de la página de México (css/mexico.css). */
:root { --oro-glow: rgba(231, 178, 76, .35); }

/* ---------- Formulario ---------- */
.mx-form__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.mx-form .h2 { margin-top: 18px; font-size: clamp(44px, 5.6vw, 86px); }
.mx-form .lead { margin-top: 24px; }
.mx-form__pts { margin-top: 28px; display: grid; gap: 12px; }
.mx-form__pts li { display: flex; gap: 12px; align-items: center; color: var(--crema); font-size: 16px; }
.mx-form__pts li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--oro); flex-shrink: 0; box-shadow: 0 0 10px var(--oro-glow); }
.mx-form__wa { margin-top: 36px; display: grid; gap: 12px; justify-items: start; }
.mx-wa-btn svg { color: var(--oro); }
@media (hover: hover) and (pointer: fine) { .mx-wa-btn:hover svg { color: currentColor; } }
@media (max-width: 560px) { .mx-wa-btn { width: 100%; justify-content: center; } }

.mx-card { border-radius: var(--radius-xl); padding: clamp(22px, 3.4vw, 40px); display: grid; gap: 18px; color: var(--crema); }
.mx-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.mx-f { display: grid; gap: 8px; min-width: 0; }
.mx-lbl { font-size: 14px; font-weight: 500; letter-spacing: .01em; color: var(--crema-70); }
.mx-lbl small { font-weight: 400; opacity: .8; }
.mx-card input[type="text"], .mx-card input[type="email"], .mx-card input[type="tel"], .mx-card select, .mx-card textarea {
  width: 100%; min-width: 0; height: 52px; padding: 0 16px; border-radius: var(--radius-s);
  border: 1px solid var(--crema-16); background: rgba(6, 13, 9, .35); color: var(--crema);
  font: inherit; font-size: 16px; transition: border-color 200ms var(--ease-out), background-color 200ms var(--ease-out); }
.mx-card textarea { height: auto; min-height: 120px; padding: 14px 16px; resize: vertical; line-height: 1.5; }
.mx-card select { appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E9B856' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; }
.mx-card select option { color: var(--tinta); }
.mx-card ::placeholder { color: rgba(243, 238, 227, .42); }
.mx-card input:focus-visible, .mx-card select:focus-visible, .mx-card textarea:focus-visible { outline: none; border-color: var(--oro); background-color: rgba(6, 13, 9, .5); }
.mx-card [aria-invalid="true"] { border-color: #F2B8A8 !important; }
.mx-tel { display: grid; grid-template-columns: 120px 1fr; gap: 8px; }

.mx-intent { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mx-intent legend { grid-column: 1 / -1; margin-bottom: 8px; padding: 0; }
.mx-intent label { position: relative; cursor: pointer; }
.mx-intent input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.mx-intent span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 52px; padding: 10px 14px; border-radius: 999px;
  border: 1px solid var(--crema-40); font-size: 15px; font-weight: 500; transition: background-color 200ms var(--ease-out), color 200ms var(--ease-out), border-color 200ms var(--ease-out); }
.mx-intent input:checked + span { background: var(--oro); border-color: var(--oro); color: var(--tinta); }
.mx-intent input:focus-visible + span { outline: 2px solid var(--oro); outline-offset: 3px; }

.mx-check { margin-top: 2px; }
.mx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mx-submit { width: 100%; justify-content: center; }
.mx-submit[disabled] { opacity: .6; pointer-events: none; }
.mx-msg { margin-top: 0; }
.mx-msg a { color: var(--oro); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 900px) { .mx-form__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .mx-row, .mx-intent { grid-template-columns: 1fr; } .mx-tel { grid-template-columns: 116px 1fr; } .mx-tel select { padding-left: 12px; padding-right: 30px; background-position: right 10px center; } }

/* Enlace con «Próximas formaciones», que también es oscuro: sin línea, el degradado continúa (27-10) */
.fx-form { padding-bottom: calc(var(--section-y) * .6); }
