/* ============================================================
   LARIE | Velas Artesanais — responsive.css
   Desktop ≥ 901px (base em style.css)
   Tablet  601–900px  ·  Mobile ≤ 600px
   ============================================================ */

/* ===== Desktop estreito (901–1180px): Sobre empilhado à esquerda, flores à direita ===== */
@media (min-width: 901px) and (max-width: 1180px) {
  .sobre__grid {
    grid-template-columns: 1fr; gap: 26px; align-items: start;
    width: 100%; padding-right: clamp(220px, 33vw, 380px);
  }
  .sobre__divider { width: 100%; padding-right: clamp(220px, 33vw, 380px); }
  .sobre__features { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .sobre__text .lead { max-width: 52ch; }
}

/* ===================== TABLET e abaixo (≤ 900px) ===================== */
@media (max-width: 900px) {
  html { scroll-padding-top: 82px; }
  .section { padding-block: 64px; }

  /* Header horizontal completo (sem hamburger) */
  .header__inner { gap: 14px; }
  .header__logo img { height: 62px; }
  .nav__list { gap: 16px; }
  .nav__link { font-size: .85rem; }
  .header__cta { padding: 10px 18px; font-size: .82rem; }

  /* Hero: banner de fundo com texto sobreposto à esquerda */
  .hero { padding-top: 104px; min-height: clamp(400px, 58vw, 480px); }
  .hero::before {
    background: linear-gradient(90deg,
      var(--larie-cream) 0%, rgba(247,241,232,.96) 42%, rgba(247,241,232,.55) 60%, rgba(247,241,232,0) 80%);
  }
  .hero__bg img { object-position: right center; }
  .hero__content { max-width: 52%; }
  .hero__title { font-size: clamp(1.9rem, 4.8vw, 2.6rem); }
  .hero__script { font-size: clamp(1.3rem, 3.2vw, 1.75rem); }

  /* Sobre: texto centralizado no topo + 4 cards em linha (sem banner floral) */
  .sobre { background: var(--larie-cream); }
  .sobre::before { display: none; }
  .sobre__grid { grid-template-columns: 1fr; gap: 30px; text-align: center; width: 100%; padding-right: 0; }
  .sobre__text .lead { margin-inline: auto; }
  .sobre__features { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .feature { padding: 20px 8px; background: var(--larie-soft-cream); border: 1px solid var(--larie-border); }
  .feature:hover { box-shadow: var(--shadow-md); }
  .feature__icon svg { width: 34px; height: 34px; }
  .feature__title { font-size: .98rem; }
  .sobre__divider { width: 100%; padding-right: 0; }

  /* Produtos: 6 cards em uma linha + botão "Ver todas as categorias" */
  .produtos__grid { grid-template-columns: repeat(6, 1fr); gap: 10px; }
  .produtos__grid .card__body { padding: 12px 8px 14px; gap: 9px; }
  .produtos__grid .card__title { font-size: .82rem; line-height: 1.2; }
  .produtos__grid .btn--mini { padding: 6px 12px; font-size: .68rem; }
  .produtos__more { display: block; }

  /* Galeria: 3 colunas no tablet (mosaico mantém alturas variadas) */
  .masonry { grid-template-columns: repeat(3, 1fr); }
  .masonry__item { grid-column: span 1 !important; }
  .galeria__filtros {
    flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start;
    padding-bottom: 8px; -webkit-overflow-scrolling: touch; scrollbar-width: thin;
  }
  .filtro { flex: none; }

  /* Encomendas: 1 coluna, etapas em linha horizontal, CTA abaixo */
  .encomendas { background: var(--larie-cream); }
  .encomendas__inner { grid-template-columns: 1fr; gap: 30px; text-align: center; width: 100%; }
  .encomendas__text { display: flex; flex-direction: column; align-items: center; }
  .encomendas__text .lead { margin-inline: auto; }
  .encomendas__text > .btn { display: none; }      /* substituído pelo CTA abaixo das etapas */
  .passos { display: flex; flex-direction: row; gap: 10px; }
  .passo { flex: 1; flex-direction: column; text-align: center; gap: 10px; padding: 18px 8px; }
  .passo:hover { transform: translateY(-4px); }
  .passo p { font-size: .82rem; line-height: 1.3; }
  .encomendas__cta-mobile { display: block; }

  /* Instagram + Contato empilhados */
  .instagram__inner { grid-template-columns: 1fr; gap: 24px; padding: 26px 24px; text-align: center; }
  .instagram__info { justify-content: center; text-align: left; }
  .instagram__cta { align-items: center; }
  .instagram__note { max-width: none; text-align: center; }
  .instagram__feed { grid-template-columns: repeat(4, 1fr); }
  .contato { background: var(--larie-cream); }
  .contato__inner { grid-template-columns: 1fr; gap: 28px; padding-right: 0; }

  /* Fotos laterais decorativas: ocultas no tablet/mobile */
  .encomendas__media { display: none; }

  /* Footer (tablet): logo+marca em cima, links+redes embaixo */
  .footer { padding-top: 92px; }
  .footer__inner { grid-template-columns: auto 1fr; gap: 28px 36px; }
  .footer__logo-col { grid-row: span 1; }
  .footer__links { grid-column: 1 / -1; }
  .footer__social-col { grid-column: 1 / -1; }
}

/* ===================== MOBILE (≤ 600px) ===================== */
@media (max-width: 600px) {
  html { scroll-padding-top: 76px; }
  .section { padding-block: 48px; }
  .container { padding-inline: 18px; }

  /* Header: logo | ícone WhatsApp + hamburger */
  .header { padding-block: 8px; backdrop-filter: none; background: rgba(247, 241, 232, .96); }
  .header.is-scrolled { background: rgba(255, 255, 255, .97); }
  .header__logo img { height: 54px; }
  .header__cta { display: none; }
  .header__wa { display: inline-flex; }
  .hamburger { display: flex; }

  /* Menu lateral (drawer) */
  .nav {
    position: fixed; inset: 0 0 0 auto; width: min(82vw, 320px);
    background: var(--larie-white); box-shadow: -12px 0 40px rgba(107,74,50,.18);
    transform: translateX(100%); transition: transform .35s var(--ease);
    padding: 92px 26px 32px; z-index: 90; overflow-y: auto;
  }
  .nav.is-open { transform: translateX(0); }
  .nav__list { flex-direction: column; align-items: flex-start; gap: 20px; }
  .nav__link { font-size: 1.1rem; }
  .nav__cta-mobile { display: block; width: 100%; margin-top: 10px; }
  .nav__cta-mobile .btn { width: 100%; justify-content: center; }
  body.nav-open { overflow: hidden; }
  .nav-backdrop {
    position: fixed; inset: 0; background: rgba(63,58,52,.42); z-index: 80;
    opacity: 0; visibility: hidden; transition: opacity .3s;
  }
  .nav-backdrop.is-open { opacity: 1; visibility: visible; }

  /* Hero (mobile): imagem como fundo apagado atrás do texto */
  .hero { min-height: clamp(460px, 96vw, 580px); padding-top: 108px; padding-bottom: 44px; }
  .hero__bg { position: absolute; inset: 0; width: 100%; margin: 0; border-radius: 0; box-shadow: none; opacity: .3; }
  .hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .hero::before {
    display: block;
    background: linear-gradient(180deg, rgba(247,241,232,.5) 0%, rgba(247,241,232,.38) 55%, rgba(247,241,232,.5) 100%);
  }
  .hero__sparkle { display: none; }
  .hero__content { max-width: none; text-align: center; }
  .hero__title { font-size: clamp(2.4rem, 11vw, 3rem); }
  .hero__desc { margin-inline: auto; }
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; justify-content: center; }

  /* Sobre: 4 cards em grid 2x2 */
  .sobre__features { grid-template-columns: repeat(2, 1fr); gap: 12px; }

  /* Produtos: lista vertical (mini img · nome · seta) */
  .produtos__grid { grid-template-columns: 1fr; gap: 12px; }
  .card { flex-direction: row; align-items: center; text-align: left; padding: 8px; gap: 12px; }
  .card__media { width: 64px; height: 64px; aspect-ratio: 1/1; flex: none; border-radius: 12px; }
  .card__body { flex-direction: row; align-items: center; justify-content: space-between; flex: 1; padding: 0 10px 0 2px; gap: 10px; }
  .produtos__grid .card__title { font-size: 1.08rem; line-height: 1.3; font-weight: 600; }
  .card:hover { transform: none; box-shadow: var(--shadow-sm); }
  .card:hover .card__media img { transform: none; }
  /* "Consultar" vira chevron delicado (contorno terracota, fundo creme) */
  .card .btn--mini {
    width: 38px; height: 38px; padding: 0; border-radius: 50%; font-size: 0;
    flex: none; border: 1.5px solid var(--larie-terracotta);
    background-color: var(--larie-soft-cream);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C96F3D' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: center; background-size: 11px 11px;
    box-shadow: none;
    transition: background-color .2s var(--ease), transform .2s var(--ease);
  }
  .card .btn--mini:hover {
    background-color: var(--larie-terracotta);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
  }
  .card .btn--mini:active { transform: scale(.92); }
  .produtos__more .btn { width: 100%; justify-content: center; }

  /* Galeria: 2 colunas */
  .masonry { grid-template-columns: repeat(2, 1fr); gap: 12px; }

  /* Encomendas: etapas compactas em linha + CTA largo */
  .passos { gap: 6px; }
  .passo { padding: 12px 4px; gap: 6px; }
  .passo__num { width: 30px; height: 30px; font-size: 1rem; }
  .passo p { font-size: .64rem; line-height: 1.2; }
  .encomendas__cta-mobile .btn { width: 100%; justify-content: center; }

  /* Instagram */
  .instagram__feed { grid-template-columns: repeat(4, 1fr); gap: 8px; }
  .instagram__title { font-size: 1.35rem; }
  .instagram__thumb { border-radius: 10px; }

  /* Contato */
  .contato__form { grid-template-columns: 1fr; }

  /* Footer compacto e centralizado */
  .footer { padding-top: 76px; }
  .footer__inner { grid-template-columns: 1fr; text-align: center; gap: 26px; padding-bottom: 32px; }
  .footer__logo-col { display: flex; justify-content: center; }
  .footer__links, .footer__social-col { grid-column: auto; }
  .footer__links-grid { justify-content: center; max-width: 320px; margin-inline: auto; }
  .footer__links-grid ul { justify-items: center; }
  .footer__social { justify-content: center; }
  .footer__bottom .container { justify-content: center; text-align: center; gap: 6px; }
  .footer__bottom { padding-bottom: 52px; }   /* folga discreta p/ o botão "voltar ao topo" não cobrir o texto */
  .footer__spark { display: none; }

  /* Botão "voltar ao topo" menor e mais no canto no mobile */
  .to-top { right: 12px; bottom: 12px; width: 40px; height: 40px; }
  .to-top svg { width: 18px; height: 18px; }
}

/* ===================== Mobile pequeno (≤ 380px) ===================== */
@media (max-width: 380px) {
  .passo p { font-size: .58rem; }
  .passo__num { width: 26px; height: 26px; font-size: .9rem; }
  .filtro { padding: 7px 14px; font-size: .78rem; }
  .sobre__features { gap: 10px; }
}
