/* Contact page (contact.html, es-contact.html). Tokens only. */

.contact-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--s-7); align-items: start; }
.contact-aside .lead { margin-top: var(--s-3); }
.contact-aside .tick-list { margin-top: var(--s-5); }
.contact-direct { margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.contact-direct li { display: flex; gap: 10px; align-items: center; font-size: var(--fs-small); color: var(--ink); }
.contact-direct li + li { margin-top: 10px; }
.contact-direct .icon { width: 18px; height: 18px; color: var(--accent-deep); }
.contact-direct a { font-weight: 700; text-decoration: none; }
@media (max-width: 960px) { .contact-grid { grid-template-columns: 1fr; gap: var(--s-5); } }

.form-card { box-shadow: var(--shadow-raised); }
.form-card .h3 { margin-bottom: var(--s-4); }
.form-card .req { color: var(--accent-deep); }
.form-card .btn-submit { width: 100%; margin-top: var(--s-2); }
.form-card .btn-submit:disabled { opacity: .7; cursor: wait; }
.form-card .form-status { margin-top: var(--s-3); transition: opacity 300ms ease-out; }
.form-honeypot { display: none; }

.spinner {
  width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent;
}
@media (prefers-reduced-motion: no-preference) { .spinner { animation: spin .8s linear infinite; } }
@keyframes spin { to { transform: rotate(360deg); } }

