/* ==========================================================================
   EDIFAST - Responsive (mobile-first refinements)
   ========================================================================== */

/* Tablet pequeña / móvil grande */
@media (max-width: 980px) {

  :root { --header-h: 68px; }

  .hero-grid,
  .why-grid,
  .diaspora-grid,
  .contact-wrapper {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .hero-visual {
    margin: 0 auto;
    max-width: 420px;
  }

  .diaspora-features {
    grid-template-columns: 1fr 1fr;
  }

  .contact-info {
    position: static;
  }

  .calc-grid {
    grid-template-columns: 1fr;
  }

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

  .footer-brand {
    grid-column: 1 / -1;
  }
}

/* Tablet / móvil */
@media (max-width: 768px) {

  .section { padding: var(--space-10) 0; }
  .section-header { margin-bottom: var(--space-6); }

  /* Menu mobile */
  .menu-toggle { display: flex; }

  .site-nav {
    position: fixed;
    top: var(--header-h);
    left: 0; right: 0;
    background: var(--brand-white);
    flex-direction: column;
    align-items: stretch;
    padding: var(--space-5) var(--container-px);
    gap: var(--space-4);
    border-bottom: 1px solid var(--border-light);
    box-shadow: var(--shadow);
    transform: translateY(-150%);
    transition: transform var(--t-base);
    max-height: calc(100vh - var(--header-h));
    overflow-y: auto;
  }

  .site-nav.open {
    transform: translateY(0);
  }

  .nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .nav-list li {
    border-bottom: 1px solid var(--border-light);
  }

  .nav-list a {
    display: block;
    padding: var(--space-4) 0;
    font-size: var(--fs-base);
    font-weight: 600;
  }

  .nav-list a::after { display: none; }

  .nav-cta {
    width: 100%;
    margin-top: var(--space-3);
    padding: 0.95rem 1.5rem;
    font-size: var(--fs-sm);
  }

  /* Hero */
  .hero {
    padding: calc(var(--header-h) + var(--space-8)) 0 var(--space-8);
    min-height: auto;
  }

  .hero-stats {
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-3);
  }

  .hero-stat-value { font-size: var(--fs-2xl); }
  .hero-stat-label { font-size: 0.65rem; }

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

  .hero-ctas .btn { width: 100%; }

  .hero-visual-tag .tag-text { font-size: 0.7rem; }
  .hero-visual-tag { padding: 0.6rem 0.9rem; }

  .hero-tag-1 { top: 5%; right: 0; }
  .hero-tag-2 { bottom: 8%; left: 0; }

  /* Trust strip */
  .trust-strip-inner {
    justify-content: flex-start;
    gap: var(--space-4);
  }

  .trust-item {
    font-size: 0.8rem;
    flex: 1 1 calc(50% - var(--space-3));
  }

  /* Proyectos */
  .projects-grid {
    grid-template-columns: 1fr;
  }

  /* Diáspora */
  .diaspora-features {
    grid-template-columns: 1fr;
  }

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

  .diaspora-ctas .btn { width: 100%; }

  /* Form */
  .form-grid {
    grid-template-columns: 1fr;
  }

  .contact-form {
    padding: var(--space-5);
  }

  /* Footer */
  .footer-inner {
    grid-template-columns: 1fr;
  }

  .footer-bottom-inner {
    flex-direction: column;
    text-align: center;
    gap: var(--space-2);
  }

  /* WhatsApp flotante */
  .whatsapp-float {
    width: 54px;
    height: 54px;
    bottom: 20px;
    right: 20px;
  }

  .whatsapp-float svg { width: 28px; height: 28px; }

  .back-to-top {
    bottom: 88px;
    right: 22px;
    width: 40px;
    height: 40px;
  }
}

/* Móvil pequeño */
@media (max-width: 480px) {

  .hero-badge { font-size: 0.7rem; padding: 0.4rem 0.8rem; }

  .hero h1 { font-size: clamp(2.2rem, 9vw, 3rem); }
  .hero-description { font-size: var(--fs-base); }

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

  .hero-stats { gap: var(--space-2); }
  .hero-stat-value { font-size: 1.5rem; }

  .calc-form,
  .calc-result {
    padding: var(--space-5);
  }

  .calc-radios { grid-template-columns: 1fr; }

  .service-card,
  .process-step,
  .testimonial {
    padding: var(--space-5);
  }

  .why-stat-card {
    bottom: 16px;
    left: 16px;
    right: 16px;
    padding: var(--space-4);
  }
}

/* Pantallas grandes */
@media (min-width: 1400px) {
  :root { --container-max: 1320px; }
}

/* Modo impresión */
@media print {
  .site-header,
  .whatsapp-float,
  .back-to-top,
  .menu-toggle {
    display: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }
}
