/* Lo que comparten todas las páginas: el formulario de contacto (siempre
   sobre fondo oscuro), el selector de idioma y la sugerencia de idioma. */

.contacto-rejilla{display:grid; grid-template-columns:1fr minmax(320px,460px); gap:48px; align-items:center; text-align:left}
.contacto-rejilla h2{margin:0}
@media (max-width:900px){ .contacto-rejilla{grid-template-columns:1fr; gap:32px} }

.formulario{background:#fff; color:#0f172a; border-radius:22px; padding:26px; box-shadow:0 30px 60px -24px rgba(0,0,0,.6); text-align:left}
.formulario h3{margin:0 0 4px; font-size:20px; font-weight:800; letter-spacing:-.01em; color:#0f172a}
.formulario .ayuda{margin:0 0 16px; font-size:14px; color:#475569}
.formulario label{display:block; font-size:13px; font-weight:700; color:#1e293b; margin:12px 0 5px}
.formulario label span{font-weight:500; color:#64748b}
.formulario input, .formulario select, .formulario textarea{
  width:100%; box-sizing:border-box; font:inherit; font-size:15px; color:#0f172a; background:#f8fafc;
  border:1px solid #cbd5e1; border-radius:12px; padding:11px 13px; outline:none; transition:border-color .15s, box-shadow .15s;
}
.formulario textarea{resize:vertical; min-height:76px}
.formulario input:focus, .formulario select:focus, .formulario textarea:focus{border-color:#1d4ed8; box-shadow:0 0 0 3px rgba(29,78,216,.18); background:#fff}
.formulario .par{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width:520px){ .formulario .par{grid-template-columns:1fr} }
.formulario .trampa{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.formulario button[type="submit"]{
  margin-top:18px; width:100%; border:0; cursor:pointer; border-radius:999px; padding:14px 22px; font:inherit; font-size:16px; font-weight:800;
  background:#dc8628; color:#fff; box-shadow:0 12px 26px -12px rgba(220,134,40,.9); transition:transform .15s, background .15s;
}
.formulario button[type="submit"]:hover{background:#e8942f; transform:translateY(-1px)}
.formulario button[type="submit"]:disabled{opacity:.7; cursor:progress; transform:none}
.formulario .legal{margin:12px 0 0; font-size:12.5px; color:#64748b; text-align:center}
.formulario .legal a{color:#1d4ed8}
.formulario-estado{margin-top:14px; border-radius:12px; padding:11px 14px; font-size:14px; font-weight:600}
.formulario-estado.ok{background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0}
.formulario-estado.error{background:#fff7ed; color:#9a3412; border:1px solid #fed7aa}

/* Selector de idioma en la cabecera. */
.idioma{display:inline-flex; align-items:center; gap:2px; border-radius:999px; padding:3px; background:rgba(255,255,255,.08); box-shadow:inset 0 0 0 1px rgba(255,255,255,.16); font-size:12.5px; font-weight:700; line-height:1}
.idioma a, .idioma span{display:block; padding:6px 9px; border-radius:999px; text-decoration:none; color:#cbd5e1; letter-spacing:.04em}
.idioma a:hover{color:#fff}
.idioma span{background:#fff; color:#0b1220}

/* Sugerencia de idioma. */
.aviso-idioma{
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:60; display:flex; align-items:center; gap:12px;
  max-width:calc(100% - 100px); background:#0b1220; color:#e2e8f0; border:1px solid rgba(255,255,255,.14); border-radius:999px;
  padding:8px 8px 8px 18px; font-size:14px; box-shadow:0 18px 40px -16px rgba(0,0,0,.7); font-family:inherit;
}
.aviso-idioma a{background:#dc8628; color:#fff; text-decoration:none; font-weight:700; border-radius:999px; padding:7px 14px; white-space:nowrap}
.aviso-idioma button{background:transparent; border:0; color:#94a3b8; font-size:20px; line-height:1; cursor:pointer; padding:4px 8px}
@media (max-width:560px){ .aviso-idioma{left:12px; right:80px; transform:none; max-width:none; border-radius:16px; flex-wrap:wrap; gap:8px} }
