/* ============================================================
   MAIN — Overrides finales y media queries
   ============================================================ */

@media (max-width: 900px) {
    .grid-3 { grid-template-columns: 1fr; }
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .contact-grid { grid-template-columns: 1fr; gap: var(--space-12); }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
}

@media (max-width: 860px) {
    .nav-links {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background-color: var(--bg-elevated);
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        border-bottom: 1px solid var(--line);
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
    }

    .nav-links.open { max-height: 500px; }

    .nav-links li { width: 100%; }

    .nav-links a {
        padding: var(--space-4) var(--space-6);
        width: 100%;
        border-bottom: 1px solid var(--line);
        display: block;
    }

    .nav-links a.active::after { display: none; }
    .nav-links a.active { color: var(--gold); }

    .nav-toggle { display: block; }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-8);
    }
}

@media (max-width: 700px) {
    .trust-strip .grid-4 {
        grid-template-columns: 1fr 1fr;
        row-gap: var(--space-6);
    }

    .hero-ctas {
        flex-direction: column;
        align-items: stretch;
    }

    .btn { width: 100%; }

    .section-padding { padding: var(--space-16) 0; }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .form-card {
        padding: 32px 24px;
    }
    .form-card .form-row {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .form-card form {
        gap: 16px;
    }

    .page-hero {
        padding: var(--space-16) var(--space-5) var(--space-10);
    }

    .thanks-details { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .trust-strip .grid-4 { grid-template-columns: 1fr; }
    .topbar { font-size: 0.65rem; }
    .gallery-grid { grid-template-columns: 1fr; }
}

/* Legal text and collection notices follow the existing ES / EN switcher.
   With JavaScript disabled, Spanish remains visible by default. */
html:not([lang="en"]) [data-legal-lang="en"],
html[lang="en"] [data-legal-lang="es"] {
    display: none !important;
}
.privacy-at-collection { line-height: 1.6; }
.privacy-at-collection a,
.legal-content a { text-decoration: underline; text-underline-offset: 3px; }
.privacy-at-collection a:focus-visible,
.legal-content a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* Compliance: visible control boundaries and keyboard focus on dark surfaces. */
.field input, .field select, .field textarea { border-color: #8c877a; }
:focus-visible, .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible {
    outline: 3px solid #f0c868; outline-offset: 4px;
}
.error-msg, .form-error { color: #ff9690; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: #ff9690; }
button, summary, .lang-btn { min-height: 24px; min-width: 24px; }
html { scroll-padding-top: 100px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

@media (max-width: 860px) {
    .nav-links { visibility: hidden; }
    .nav-links.open { visibility: visible; max-height: min(80vh, 680px); overflow-y: auto; }
}

.field label:not(:has(.req)):has(+ input[required])::after,
.field label:not(:has(.req)):has(+ select[required])::after,
.field label:not(:has(.req)):has(+ textarea[required])::after { content: " *"; color: var(--gold); }
