/* ─── RESPONSIVE ─────────────────────────────────────────────────────── */

/* ─── TABLET (1024px) ────────────────────────────────────────────────── */
@media(max-width:1024px) {
    .stats-inner { grid-template-columns:repeat(2,1fr); }
    .stat-cell:nth-child(2) { border-right:none; }
    .services-grid { grid-template-columns:repeat(2, 1fr); }
    .about-grid { grid-template-columns:1fr; gap:48px; }
    .about-badge { display:none; }
    .contact-grid { grid-template-columns:1fr; }
    .footer-inner { grid-template-columns:1fr 1fr; }
    .mv-grid { grid-template-columns:1fr; }
    .por-que-strip { grid-template-columns:1fr; gap:20px; }
    .por-que-strip h3 { white-space:normal; }
}

/* ─── MOBILE (768px) ─────────────────────────────────────────────────── */
@media(max-width:768px) {
    /* Nav */
    .hamburger { display:flex; }
    .nav-links {
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        background: rgba(8,17,28,.98);
        flex-direction: column;
        gap: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height .3s var(--ease);
    }
    .nav-links[data-open="true"] {
        max-height: 500px;
        border-bottom: 1px solid rgba(255,255,255,.1);
    }
    .nav-links li {
        border-bottom: 1px solid rgba(255,255,255,.05);
    }
    .nav-links a {
        display: block;
        padding: 16px 20px;
    }
    .nav-cta { display:none; }

    /* Hero */
    .hero-eyebrow { flex-direction:column; align-items:flex-start; }
    .hero-eyebrow-line { width:24px; margin:0; }
    .hero-scroll { display:none; }

    /* Stats */
    .stats-inner { grid-template-columns:1fr 1fr; }
    .stat-cell { padding:36px 24px; }
    .stat-num { font-size:2.2rem; }

    /* Services */
    .services-grid { grid-template-columns:1fr; gap:1px; }
    .section-header h2 { font-size:clamp(1.8rem,5vw,2.4rem); }

    /* About */
    .about-grid { gap:32px; }
    .about-text blockquote { font-size:1.3rem; }

    /* Contact */
    .contact-form-wrap { padding:40px 24px; }
    .form-row { grid-template-columns:1fr; }
    .form-group.span2 { grid-column:span 1; }
    .form-submit-row { flex-direction:column-reverse; align-items:flex-start; }
    .contact-map { margin-top:24px; }
    .contact-map iframe { height:280px; }

    /* Footer */
    .footer-inner { grid-template-columns:1fr; }
    .footer-bottom { flex-direction:column; text-align:center; }

    /* GGI Strip */
    .ggi-strip { flex-direction:column; text-align:center; }
    .ggi-vline { width:48px; height:1px; }

    /* General */
    section { padding:60px 5%; }
    .container { width:min(100%,95vw); }
    .team-grid { grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); }
}

/* ─── SMALL MOBILE (480px) ──────────────────────────────────────────── */
@media(max-width:480px) {
    html { font-size:14px; }

    /* Nav */
    #nav { height:60px; padding:0 3%; }
    .nav-brand-text { font-size:.9rem; }
    .nav-ggi { height:18px; }
    .hamburger { gap:4px; }
    .hamburger span { width:20px; height:1.5px; }

    /* Hero */
    #hero { min-height:500px; }
    .hero-title { font-size:clamp(2rem,5vw,3.5rem); }
    .hero-body { font-size:.9rem; margin-bottom:28px; }
    .hero-actions { gap:12px; }
    .btn-gold, .btn-ghost { padding:12px 24px; font-size:.65rem; }

    /* Stats */
    .stat-cell { padding:24px 16px; }
    .stat-num { font-size:2rem; }
    .stat-lbl { font-size:.55rem; }

    /* Section */
    section { padding:40px 3%; }
    .section-header { margin-bottom:36px; }
    .section-header h2 { font-size:clamp(1.5rem,4vw,2rem); }
    .section-header p { font-size:.85rem; }

    /* Services */
    .svc-card { padding:28px 20px; }
    .svc-card h3 { font-size:1.2rem; }
    .svc-num { font-size:2.5rem; }

    /* About */
    .about-sig strong { font-size:.95rem; }
    .about-text blockquote { font-size:1.1rem; padding-left:16px; }

    /* Mission/Vision */
    .mv-card { padding:36px 24px; }
    .mv-card h3 { font-size:1.4rem; }
    .mv-deco { font-size:5rem; }

    /* Team */
    .team-grid { grid-template-columns:1fr; }
    .team-card { padding:24px 18px; }
    .team-name { font-size:1.05rem; }

    /* Contact */
    .contact-info { padding:36px 24px; }
    .contact-info h3 { font-size:1.6rem; }
    .contact-form-wrap h3 { font-size:1.4rem; }
    .ci-item { gap:10px; font-size:.75rem; }
    .form-group label { font-size:.58rem; }

    /* Footer */
    .footer-inner { gap:28px; }
    .footer-brand { font-size:1rem; }
    .footer-col h5 { font-size:.58rem; margin-bottom:14px; }
    .footer-col ul li { margin-bottom:8px; }
    .footer-col ul li a { font-size:.7rem; }

    /* WhatsApp FAB */
    .wa-fab { width:50px; height:50px; font-size:1.4rem; }
    .wa-tooltip { display:none; }
}

/* ─── LANDSCAPE MODE ────────────────────────────────────────────────── */
@media(max-height:500px) and (orientation:landscape) {
    #hero { min-height:auto; height:auto; }
    .hero-content { padding:40px 5%; }
    .hero-scroll { display:none; }
    .hero-title { margin-bottom:16px; font-size:clamp(2rem,4vw,3rem); }
    .hero-body { margin-bottom:24px; font-size:.85rem; }
}

/* ─── TOUCH DEVICE OPTIMIZATIONS ────────────────────────────────────── */
@media(hover:none) and (pointer:coarse) {
    .btn-gold, .btn-ghost, .svc-card, .team-card {
        transition:none;
    }
    .btn-gold:active, .btn-ghost:active {
        opacity:.8;
    }
    a, button { padding:12px; }
}

/* ─── HIGH DPI SCREENS ──────────────────────────────────────────────── */
@media(min-resolution:2dppx) {
    body { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
}

/* ─── PREFERS REDUCED MOTION ───────────────────────────────────────── */
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        animation-duration:0.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:0.01ms !important;
    }
    html { scroll-behavior:auto; }
}

/* ─── DARK MODE (OPCIONAL) ────────────────────────────────────────── */
@media(prefers-color-scheme:dark) {
    :root {
        --cream: #1a1a1a;
    }
}
