/* ==========================================================================
   responsive.css
   Sempre o último CSS carregado.
   ========================================================================== */

@media (max-width: 1100px) {
  :root {
    --section-padding: 88px;
  }

  .hero__grid {
    gap: 48px;
  }

  .about {
    gap: 56px;
  }

  .cta-grid {
    gap: 40px;
  }
}

@media (max-width: 1024px) {
  /* Header vira painel lateral */
  .nav-toggle {
    display: flex;
  }

  .site-nav {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(80vw, 320px);
    padding: 112px 32px 32px;
    background: var(--color-ink-2);
    border-left: 1px solid var(--border-ink);
    transform: translateX(100%);
    transition: transform var(--transition);
    z-index: 55;
  }

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

  .site-nav ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
  }

  .site-nav a {
    font-size: 1rem;
  }

  /* O botão de fechar e o CTA precisam ficar acima do painel aberto */
  .header-actions {
    position: relative;
    z-index: 56;
    gap: 12px;
  }

  .header-actions > .btn,
  .nav-toggle {
    position: relative;
    z-index: 57;
  }

  /* Hero empilha, retrato vai para cima */
  .hero {
    min-height: auto;
    padding-block: calc(var(--header-height) + 40px) 72px;
  }

  .hero__grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .hero__feature {
    order: -1;
    max-width: 320px;
    margin-inline: 0;
  }

  .hero__text {
    max-width: 100%;
  }

  /* Sobre empilha */
  .about {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .about__media {
    max-width: 420px;
  }

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

  .cta-aside {
    padding-top: 8px;
  }

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

  /* Método: a peça central sai e as etapas viram duas colunas simples */
  .method-split {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .method-figure {
    display: none;
  }

  .method-col--left .method-item {
    flex-direction: row;
    text-align: left;
  }
}

@media (max-width: 768px) {
  .method-split {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .method-col {
    gap: 32px;
  }

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

  .ig-item--feature {
    grid-column: span 2;
    grid-row: span 1;
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 768px) {
  .container {
    width: min(100% - 32px, var(--container));
  }

  .section-head {
    margin-bottom: 48px;
  }

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

  /* ------------------------------------------------------------------
     Portfólio vira carrossel deslizante
     ------------------------------------------------------------------ */
  /* Faixa deslizante.
     Snap em "proximity" e alinhado em "start", de propósito: com "mandatory"
     mais "center" o navegador fica corrigindo o encaixe depois que o dedo sai
     e o carrossel se mexe sozinho. Também não usamos sangria por porcentagem
     (margin negativa + padding em %), que realimenta o cálculo do scroll. */
  .portfolio {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;
  }

  .portfolio::-webkit-scrollbar {
    display: none;
  }

  .portfolio-item {
    flex: 0 0 80%;
    scroll-snap-align: start;
  }

  /* No toque não existe hover, então o selo de zoom fica sempre visível */
  .portfolio-item__zoom {
    opacity: 1;
    transform: none;
  }

  .portfolio-counter {
    display: flex;
  }

  /* Lightbox em tela cheia */
  .lightbox__img {
    max-width: 100vw;
    max-height: 78vh;
  }

  .lightbox__prev,
  .lightbox__next {
    top: auto;
    bottom: 84px;
    transform: none;
    width: 46px;
    height: 46px;
  }

  .lightbox__bar {
    bottom: 20px;
    font-size: 0.6875rem;
    gap: 14px;
    padding: 9px 14px;
  }

  .form-card,
  .thanks__card {
    padding: 24px;
  }

  .thanks__card {
    padding-block: 48px;
  }
}

@media (max-width: 640px) {
  :root {
    --section-padding: 64px;
  }

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

  .field-row {
    grid-template-columns: 1fr;
  }

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

  .hero__actions .btn,
  .cta-aside .btn {
    width: 100%;
    align-self: stretch;
  }

  .hero__meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .portfolio-item {
    flex-basis: 82%;
  }

  .site-header .btn span {
    display: none;
  }

  .site-header .btn {
    padding-inline: 14px;
  }

  .site-footer .container {
    flex-direction: column;
    text-align: center;
  }

  .site-footer__links {
    justify-content: center;
    flex-wrap: wrap;
    gap: 18px;
  }

  .wa-float {
    right: 16px;
    bottom: 16px;
  }
}
