/* ============================================================================
   VAL RIBEIRO MAKEUP — responsive.css
   Abordagem desktop-first, com pontos de quebra alinhados ao conteúdo.
   1240 · 1024 · 860 · 640 · 420
   ========================================================================= */

/* ---------------------------------------------------------------------------
   ≤ 1240px — notebooks
   ------------------------------------------------------------------------ */
@media (max-width: 1240px) {
  .cards,
  .courses,
  .packs { grid-template-columns: repeat(2, 1fr); }

  .hero__badge { right: -2%; }
  .sobre__stamp { left: -5%; width: 92px; height: 92px; }

  .faq .section__head { position: static; }
}

/* ---------------------------------------------------------------------------
   ≤ 1024px — tablets em paisagem
   ------------------------------------------------------------------------ */
@media (max-width: 1024px) {
  :root { --section-y: clamp(4.5rem, 9vw, 7rem); }

  /* Navegação: some o menu horizontal, entra o hambúrguer */
  .nav__links,
  .nav__cta { display: none; }
  .nav__toggle { display: block; }

  /* Hero passa a uma coluna, com a imagem abaixo do texto */
  .hero {
    min-height: auto;
    padding-block: clamp(7rem, 18vh, 9rem) clamp(3rem, 7vh, 4.5rem);
  }
  .hero__grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .hero__content { max-width: 42rem; }
  .hero__visual {
    max-width: 30rem;
    width: 100%;
    margin-inline: auto;
  }
  .hero__figure--float { width: 40%; left: -5%; }
  .hero__scroll { display: none; }

  /* Sobre empilha */
  .sobre__grid { grid-template-columns: 1fr; gap: 4.5rem; }
  .sobre__visual { max-width: 28rem; margin-inline: auto; width: 100%; }

  /* Cabeçalhos divididos empilham */
  .section__head--split { grid-template-columns: 1fr; gap: 1.5rem; align-items: start; }
  .section__head--split .section__desc { padding-bottom: 0; }

  /* Timeline em 2 colunas */
  .timeline { grid-template-columns: repeat(2, 1fr); row-gap: 3rem; }
  .timeline::before,
  .timeline::after { display: none; }
  .timeline__step { padding-top: 1.75rem; border-top: 1px solid var(--line); }
  .timeline__dot { top: -5px; }

  /* FAQ e contato empilham */
  .faq__grid,
  .contato__grid { grid-template-columns: 1fr; }

  /* Galeria: 2 colunas, sem spans exóticos */
  .gallery {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 13rem;
  }
  /* Em 2 colunas, só o primeiro de cada ciclo ganha destaque */
  .gallery__item:nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
  .gallery__item:nth-child(6n + 4) { grid-column: auto; }

  /* Rodapé em 2 colunas */
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------------------
   ≤ 860px — tablets em retrato
   ------------------------------------------------------------------------ */
@media (max-width: 860px) {
  .cards,
  .courses,
  .packs { grid-template-columns: 1fr; }

  .stats { grid-template-columns: repeat(2, 1fr); row-gap: 2.5rem; }
  /* separadores verticais só fazem sentido em linha */
  .stat + .stat::before { display: none; }

  /* Serviços: índice acima, seta some */
  .service { grid-template-columns: 1fr; gap: .5rem; }
  .service__go { display: none; }
  .service__body { grid-template-columns: 1fr; gap: .5rem; }
  .service:hover { padding-inline: 1rem; }

  .contato__map iframe { height: 220px; }
}

/* ---------------------------------------------------------------------------
   ≤ 640px — celulares
   ------------------------------------------------------------------------ */
@media (max-width: 640px) {
  :root {
    --section-y: clamp(3.75rem, 12vw, 5rem);
    --radius-lg: 14px;
  }

  body { font-size: 1rem; line-height: 1.68; }

  /* Hero */
  .hero__title { font-size: clamp(2.6rem, 11vw, 3.6rem); }
  .hero__actions { flex-direction: column; align-items: stretch; }
  .hero__actions .btn { width: 100%; }
  .hero__meta { gap: 1.5rem; }
  .hero__badge {
    position: static;
    margin-top: 1rem;
    width: fit-content;
    margin-inline: auto;
  }
  .hero__figure--float { width: 44%; left: -3%; bottom: -4%; border-width: 4px; }
  .hero__figure { border-radius: 200px 200px 16px 16px; }

  /* Sobre */
  .frame--arch { border-radius: 180px 180px 14px 14px; }
  .frame--small { width: 44%; right: -6%; border-width: 5px; }
  .sobre__stamp { width: 78px; height: 78px; left: -2%; top: 3%; }
  .sobre__stamp strong { font-size: 1.4rem; }

  /* Galeria: coluna única */
  .gallery {
    grid-template-columns: 1fr;
    grid-auto-rows: 20rem;
  }
  .gallery__item:nth-child(6n + 1),
  .gallery__item:nth-child(6n + 4) { grid-column: auto; grid-row: auto; }
  /* legendas sempre visíveis (não há hover no toque) */
  .gallery__item figcaption { opacity: 1; transform: none; }
  .gallery__item::after { opacity: .75; }

  .filters { gap: .4rem; }
  .filter { padding: .5rem 1rem; font-size: .65rem; }

  /* Timeline em coluna única */
  .timeline { grid-template-columns: 1fr; }

  /* Estatísticas */
  .stats { gap: 2rem 1rem; }

  /* Depoimentos: some as setas, fica só o swipe */
  .depo-swiper .swiper-button-prev,
  .depo-swiper .swiper-button-next { display: none; }

  /* O botão "ver print" desce para a própria linha, sem espremer o nome */
  .depo figcaption { flex-wrap: wrap; }
  .depo__proof { margin-left: 0; width: 100%; justify-content: center; }

  /* Rodapé */
  .footer__grid { grid-template-columns: 1fr; }
  .footer__bar { flex-direction: column; gap: .5rem; }

  /* Lightbox */
  .lightbox__nav { width: 42px; height: 42px; }
  .lightbox__figure img { max-height: 70vh; }

  .wa-float { width: 52px; height: 52px; font-size: 1.35rem; }
}

/* ---------------------------------------------------------------------------
   ≤ 420px — celulares compactos
   ------------------------------------------------------------------------ */
@media (max-width: 420px) {
  .stats { grid-template-columns: 1fr; }
  .hero__figure--float { display: none; }
  .frame--small { display: none; }
  .nav-mobile__links a { font-size: clamp(1.6rem, 9vw, 2.2rem); }
  .marquee__track { gap: 1.4rem; }
}

/* ---------------------------------------------------------------------------
   Ponteiro grosso (toque) — desliga hovers que dependem de mouse
   ------------------------------------------------------------------------ */
@media (hover: none) {
  .cursor-dot, .cursor-ring { display: none !important; }
  body, body a, body button, body .gallery__item { cursor: auto !important; }

  .gallery__item figcaption { opacity: 1; transform: none; }
  .gallery__item::after { opacity: .6; }
}

/* ---------------------------------------------------------------------------
   Telas muito largas — limita o crescimento tipográfico
   ------------------------------------------------------------------------ */
@media (min-width: 1900px) {
  :root { --container: 1480px; }
}

/* ---------------------------------------------------------------------------
   Impressão
   ------------------------------------------------------------------------ */
@media print {
  .preloader, .nav, .nav-mobile, .wa-float, .lightbox,
  #scene-canvas, .cursor-dot, .cursor-ring, .marquee,
  .hero__scroll, .contato__map { display: none !important; }

  body { background: #fff; color: #000; }
  body::before { display: none; }
  .section { padding-block: 1.5rem; page-break-inside: avoid; }
  .reveal-up, [data-stagger] > * { opacity: 1 !important; transform: none !important; }
  .hero__title .line > span, .cta-final__title .line > span { transform: none !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .75em; color: #555; }
}
