/* ============================================
   responsive.css — Mobile-first breakpoints
   Dra. Isadora Eloy | Odontologia
   ============================================ */

/* ────────────────────────────────────────────
   Tablet grande (≤ 1100px)
──────────────────────────────────────────── */
@media (max-width: 1100px) {
  .certificados__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }

  .footer__brand {
    grid-column: 1 / -1;
  }

  .footer__brand-desc { max-width: 100%; }
}

/* ────────────────────────────────────────────
   Tablet (≤ 900px)
──────────────────────────────────────────── */
@media (max-width: 900px) {
  :root {
    --fs-4xl: 3.1rem;
    --fs-3xl: 2.5rem;
    --space-2xl: 5rem;
  }

  .servicos__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sobre__inner {
    grid-template-columns: 1fr 1.15fr;
    gap: 3rem;
  }

  .sobre__image::before { left: -1.25rem; }

  .contato__inner {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
  }
}

/* ────────────────────────────────────────────
   Tablet pequeno / Mobile grande (≤ 768px)
──────────────────────────────────────────── */
@media (max-width: 768px) {
  :root {
    --fs-4xl: 2.6rem;
    --fs-3xl: 2.1rem;
    --fs-2xl: 1.65rem;
    --space-2xl: 4rem;
  }

  /* ── Header / Hamburger ── */
  .header__hamburger { display: flex; }

  .header__nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: min(320px, 85vw);
    height: 100dvh;
    background: var(--clr-white);
    flex-direction: column;
    align-items: flex-start;
    padding: 5.5rem 2rem 2rem;
    gap: 0;
    box-shadow: var(--shadow-lg);
    transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 999;
    overflow-y: auto;
  }

  .header__nav.is-open { right: 0; }

  .header__nav a:not(.btn) {
    color: var(--clr-text) !important;
    font-size: var(--fs-md);
    padding: 1rem 0;
    width: 100%;
    border-bottom: 1px solid var(--clr-border);
    display: block;
  }

  .header__nav a:not(.btn)::after { display: none; }

  .header__nav .btn {
    margin-top: 1.25rem;
    width: 100%;
    justify-content: center;
  }

  /* ── Sobre ── */
  .sobre__inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .sobre__image { order: -1; }
  .sobre__image::before { display: none; }
  .sobre__image img,
  .sobre__image .image-placeholder { height: 320px; min-height: 320px; }

  /* ── Serviços ── */
  .servicos__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  /* ── Galeria ── */
  .galeria__grid { grid-template-columns: repeat(2, 1fr); }

  /* ── Depoimentos ── */
  .depoimentos__grid { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }

  /* ── Certificados ── */
  .certificados__grid { grid-template-columns: repeat(2, 1fr); }

  /* ── Contato ── */
  .contato__inner {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .contato__cta { order: -1; }
  .contato__cta-title { font-size: var(--fs-xl); }

  /* ── Footer ── */
  .footer__inner { grid-template-columns: 1fr; gap: 2rem; }
  .footer__brand { grid-column: auto; }
  .footer__bottom { flex-direction: column; align-items: center; text-align: center; }

  /* ── Lightbox nav ── */
  .lightbox__prev { left: 0.5rem; }
  .lightbox__next { right: 0.5rem; }
  .lightbox__close { top: 1rem; right: 1rem; }
}

/* ────────────────────────────────────────────
   Mobile (≤ 560px)
──────────────────────────────────────────── */
@media (max-width: 560px) {
  :root {
    --fs-4xl: 2.2rem;
    --fs-3xl: 1.85rem;
    --container-pad: 1.25rem;
  }

  .hero { padding: 7.5rem 1.5rem 5rem; }

  .hero__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hero__actions .btn { justify-content: center; }

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

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

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

  .section__title { font-size: var(--fs-2xl); }

  .depoimentos__grid { max-width: 100%; }
}

/* ────────────────────────────────────────────
   Mobile pequeno (≤ 380px)
──────────────────────────────────────────── */
@media (max-width: 380px) {
  :root { --fs-4xl: 1.9rem; }
  .header__logo { font-size: 1rem; }
  .btn { padding: 0.75rem 1.5rem; font-size: 0.8rem; }
}
