/* ==========================================================================
   DOBLE AA Arquitecto Art — Adaptación a tablets y celulares
   Puntos de quiebre: 1100px (menú desplegable), 900px (tablet), 600px (móvil)
   ========================================================================== */

/* ---------- Laptop pequeña: menú desplegable ---------- */
@media (max-width: 1100px) {
  .nav-toggle { display: flex; }

  .main-nav {
    position: fixed; top: 0; right: 0; height: 100vh; height: 100dvh; width: min(84vw, 360px);
    flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 28px;
    padding: 96px 32px 32px; background: var(--white); box-shadow: var(--shadow-lg);
    transform: translateX(100%); visibility: hidden;
    transition: transform .4s var(--ease), visibility .4s;
    overflow-y: auto; z-index: 110;
  }
  .main-nav.is-open { transform: none; visibility: visible; }
  .nav-list { flex-direction: column; gap: 0; }
  .nav-list li { border-bottom: 1px solid var(--line); }
  .nav-link, .site-header.is-scrolled .nav-link { display: block; padding: 15px 0; font-size: 1.05rem; color: var(--black); }
  .nav-link::after { display: none; }
  .nav-link.is-active, .nav-link:hover { color: var(--red); }
  .nav-cta { align-self: stretch; }

  /* Capa oscura detrás del menú */
  .nav-backdrop {
    position: fixed; inset: 0; z-index: 105; background: rgba(0, 0, 0, .45);
    opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
  }
  .nav-backdrop.is-open { opacity: 1; visibility: visible; }

  /* Hamburguesa convertida en "X" con el menú abierto */
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar { background: var(--black); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) { transform: translateY(11px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) { transform: translateY(-11px) rotate(-45deg); }

  .about-grid { gap: 56px; }
  .about-badge { right: -12px; }
  .fiscal-intro, .topo-intro { gap: 48px; }
  .fichas-grid { grid-template-columns: repeat(3, 1fr); }
  .topo-methods { gap: 20px; }
  .topo-card { padding: 30px 24px 26px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}

/* ---------- Tablet ---------- */
@media (max-width: 900px) {
  :root { --header-h: 68px; }
  .section { padding: 84px 0; }

  .about-grid { grid-template-columns: 1fr; gap: 64px; }
  .about-media { max-width: 520px; margin: 0 auto; width: 100%; }
  .about-media::before { left: -12px; top: -12px; }

  .services-grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .process-list { grid-template-columns: repeat(2, 1fr); }
  .projects-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }

  .fiscal-intro { grid-template-columns: 1fr; margin-bottom: 64px; }
  .topo-intro { grid-template-columns: 1fr; margin-bottom: 56px; }
  .topo-media { max-width: 480px; width: 100%; margin: 0 auto; }
  .topo-media::before { right: -12px; bottom: -12px; }
  .topo-methods { grid-template-columns: 1fr; }
  .topo-aerial { grid-template-columns: 1fr; gap: 32px; padding: 40px 32px; }
  .topo-ortho { max-width: 420px; margin: 0 auto; }
  .topo-ortho img { max-height: 520px; }
  .service-card--featured { flex-wrap: wrap; }
  .featured-body { flex-basis: calc(100% - 116px); }
  .featured-actions { flex-direction: row; align-items: center; flex-wrap: wrap; padding-left: 116px; }
  .fichas-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }

  .contact-grid { grid-template-columns: 1fr; gap: 48px; }

  /* En pantallas táctiles los pies de foto se muestran siempre */
  .project-card figcaption { transform: none; opacity: 1; }
  .ficha-photo::after { opacity: 1; }
}

/* ---------- Celular ---------- */
@media (max-width: 600px) {
  :root { --gutter: 16px; }
  .section { padding: 68px 0; }
  .section-header { margin-bottom: 40px; }

  .brand, .brand-logo, .site-header.is-scrolled .brand, .site-header.is-scrolled .brand-logo { width: 132px; }

  .hero { padding-bottom: 90px; }
  .hero-actions { flex-direction: column; align-items: stretch; margin-bottom: 44px; }
  .hero-highlights li { flex: 1 1 100%; padding: 12px 0; }
  .hero-highlights li + li { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, .12); }
  .scroll-down { display: none; }

  .about-badge { right: 12px; bottom: 16px; padding: 14px 18px; }
  .about-badge-big { font-size: 2rem; }

  .services-grid, .process-list, .projects-grid { grid-template-columns: 1fr; }
  .service-card { padding: 30px 24px 26px; }
  .service-card--featured { flex-direction: column; align-items: flex-start; gap: 18px; }
  .service-card--featured .service-icon { width: 64px; height: 64px; padding: 10px; }
  .featured-body { flex-basis: auto; }
  .featured-actions { padding-left: 0; flex-direction: column; align-items: stretch; width: 100%; text-align: center; }
  .topo-text .btn { width: 100%; }
  .topo-media figcaption { left: 10px; top: 10px; right: 10px; }
  .topo-aerial { padding: 36px 18px 20px; margin-bottom: 56px; }
  .topo-detail img { flex-basis: 96px; width: 96px; }
  .topo-aerial .case-stats div { padding: 14px 12px; }
  .topo-inset { left: -6px; bottom: -18px; width: 38%; border-width: 4px; }
  .topo-intro { margin-bottom: 72px; }

  /* Fiscalización: caso y fichas en formato horizontal (foto + texto) */
  .fiscal-case { padding: 36px 22px 28px; }
  .fiscal-text .btn { width: 100%; }
  .case-stats dt { font-size: 1.9rem; }
  .fichas-grid { grid-template-columns: 1fr; gap: 14px; }
  .ficha-card { flex-direction: row; }
  .ficha-photo { flex: 0 0 38%; }
  .ficha-photo img { height: 100%; aspect-ratio: auto; min-height: 190px; }
  .ficha-photo::after { display: none; }
  .ficha-code { left: 8px; top: 8px; font-size: .72rem; padding: 3px 7px; }
  .ficha-body { padding: 14px 14px 16px; font-size: .84rem; }
  .ficha-tags { margin-bottom: 8px !important; }


  .cta-band { padding: 64px 0; }
  .cta-actions .btn { flex: 1 1 100%; }

  .contact-form { padding: 28px 20px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }

  .footer-grid { grid-template-columns: 1fr; gap: 32px; padding-top: 56px; padding-bottom: 40px; }
  .footer-bottom-inner { flex-direction: column; text-align: center; }

  .lightbox { padding: 60px 10px; }
  .lightbox-nav { top: auto; bottom: 16px; transform: none; }
  .lightbox-prev { left: calc(50% - 64px); }
  .lightbox-next { right: calc(50% - 64px); }

  .whatsapp-float { right: 16px; bottom: 16px; width: 54px; height: 54px; }
  .back-to-top { right: 22px; bottom: 82px; }
}
