/* Contacto y páginas de texto legal */
.contacto-rejilla { display: grid; grid-template-columns: 1fr 1.25fr; gap: 56px; align-items: start; }
@media (max-width: 900px) { .contacto-rejilla { grid-template-columns: 1fr; gap: 32px; } }
.contacto-directo { margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--linea); font-family: var(--f-titulo); }
.contacto-directo p { margin: 0 0 4px; color: var(--berenjena-suave); }
.contacto-directo a { font-weight: 600; font-size: 1.1rem; }

.formulario { background: var(--blanco); border: 1px solid var(--linea); border-radius: var(--radio); padding: 32px; }
@media (max-width: 560px) { .formulario { padding: 22px; } }
.campo { margin: 0 0 20px; border: 0; padding: 0; }
.campo label, .campo legend { display: block; font-family: var(--f-titulo); font-weight: 600; margin-bottom: 6px; padding: 0; }
.opcional { font-weight: 400; color: var(--berenjena-suave); }
.campo input:not([type=radio]):not([type=checkbox]), .campo textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--berenjena); background: var(--marfil);
  border: 1.5px solid var(--linea); border-radius: 10px; padding: 12px 14px; min-height: 48px;
}
.campo textarea { resize: vertical; }
.campo input:not([type=radio]):focus, .campo textarea:focus { outline: none; border-color: var(--violeta); box-shadow: 0 0 0 3px var(--violeta-claro); }
.opciones { display: flex; flex-wrap: wrap; gap: 8px; }
.opcion { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--linea); border-radius: 999px; padding: 8px 14px; font-family: var(--f-titulo); font-weight: 500 !important; cursor: pointer; margin: 0 !important; }
.opcion:has(input:checked) { border-color: var(--violeta); background: var(--violeta-claro); }
.opcion input { accent-color: var(--violeta); }
.acepto { display: flex; gap: 10px; align-items: flex-start; font-size: .95rem; margin: 4px 0 20px; }
.acepto input { margin-top: 5px; width: 18px; height: 18px; accent-color: var(--violeta); flex: none; }
.formulario .btn { width: 100%; }
.formulario .btn[disabled] { opacity: .7; cursor: progress; }
.trampa { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.aviso { border-radius: 10px; padding: 12px 16px; margin-bottom: 20px; font-family: var(--f-titulo); }
.aviso-error { background: #FBE9E4; color: #7A2E1B; border: 1px solid #E9B8A8; }

.capa-rgpd { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--linea); font-size: .85rem; color: var(--berenjena-suave); }
.capa-rgpd p { margin-bottom: 8px; }
.capa-rgpd dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0; }
.capa-rgpd dt { font-weight: 600; color: var(--berenjena); }
.capa-rgpd dd { margin: 0; }
@media (max-width: 480px) { .capa-rgpd dl { grid-template-columns: 1fr; } .capa-rgpd dd { margin-bottom: 6px; } }

/* Páginas de texto (legales, gracias, 404) */
.texto { max-width: 760px; margin: 0 auto; }
.texto h1 { font-size: clamp(2rem, 4.4vw, 2.8rem); }
.texto h2 { font-size: 1.4rem; margin-top: 2em; }
.texto table { width: 100%; border-collapse: collapse; margin: 1em 0 1.5em; font-size: .97rem; }
.texto th, .texto td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--linea); }
.texto th { font-family: var(--f-titulo); background: var(--marfil-2); }
.texto .actualizado { color: var(--berenjena-suave); font-family: var(--f-titulo); font-size: .9rem; }
.pendiente { background: #FFE9A8; color: var(--berenjena); padding: 0 .3em; border-radius: 4px; font-family: var(--f-titulo); font-size: .92em; }
@media (max-width: 600px) { .texto table, .texto tbody, .texto tr, .texto td, .texto th { display: block; } .texto thead { display: none; } .texto td { border: 0; padding: 4px 0; } .texto tr { border-bottom: 1px solid var(--linea); padding: 10px 0; } }
