/* ============================================================
   MORHENA AMBIENTAL — Responsive Styles
   ============================================================ */

/* ── Breakpoints
   xs:  < 480px
   sm:  480–767px
   md:  768–1023px
   lg:  1024–1279px
   xl:  1280px+
   ── */

/* ══════════════════════════════════════════════
   TABLET — max-width: 1279px
══════════════════════════════════════════════ */
@media (max-width: 1279px) {

  /* Header */
  .nav-menu       { display: none; }
  .header-cta     { display: none; }
  .menu-toggle    { display: flex; }

  /* Hero */
  .hero-stats { display: none; }

  .hero-title { font-size: clamp(1.8rem, 3.5vw, 2.4rem); }

  /* Quem Somos */
  .qs-grid { grid-template-columns: 1fr; gap: var(--sp-12); }
  .qs-visual { order: -1; }
  .qs-image { aspect-ratio: 16/9; }
  .qs-card { bottom: -1rem; left: 0; }

  /* Números */
  .numeros-grid { grid-template-columns: repeat(2, 1fr); }
  .numero-item:nth-child(2) { border-right: none; }
  .numero-item { border-bottom: 1px solid rgba(255,255,255,0.06); }
  .numero-item:nth-child(3),
  .numero-item:nth-child(4) { border-bottom: none; }

  /* Soluções */
  .solucoes-grid { grid-template-columns: repeat(2, 1fr); }

  /* Ciclo */
  .ciclo-flow {
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--sp-8);
  }
  .ciclo-flow::before { display: none; }
  .ciclo-arrow { display: none; }
  .ciclo-step { flex: 0 0 calc(33% - var(--sp-8)); }

  /* Serviços */
  .servico-grid { grid-template-columns: 1fr; gap: var(--sp-10); }
  .servico-grid--reverse { direction: ltr; }
  .servico-image { aspect-ratio: 16/9; }

  /* Sustentabilidade */
  .sustent-grid { grid-template-columns: repeat(2, 1fr); }
  .sustent-highlight { grid-template-columns: 1fr; gap: var(--sp-10); }
  .sustent-highlight__stats { grid-template-columns: repeat(4, 1fr); }

  /* RHEcicla */
  .rhecicla-grid { grid-template-columns: 1fr; gap: var(--sp-10); }
  .rhecicla-images { height: 420px; }

  /* Tecnologia */
  .tecno-features { grid-template-columns: repeat(2, 1fr); }
  .cco-grid { grid-template-columns: 1fr; }
  .cco-map { aspect-ratio: 16/9; }

  /* Mapa */
  .mapa-container { grid-template-columns: 1fr; }
  .mapa-cidades {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--sp-2);
  }
  .cidade-item { flex: 0 0 calc(50% - var(--sp-2)); }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-10); }
  .footer-brand { grid-column: 1 / -1; }
}


/* ══════════════════════════════════════════════
   MOBILE — max-width: 767px
══════════════════════════════════════════════ */
@media (max-width: 767px) {

  /* Header */
  .site-logo__tagline { display: none; }

  /* Hero */
  .hero-title { font-size: clamp(1.6rem, 6vw, 2.2rem); }
  .hero-subtitle { font-size: var(--fs-sm); max-width: 38ch; }
  .hero-ctas { flex-direction: column; align-items: stretch; gap: var(--sp-3); }
  .hero-ctas .btn { width: 100%; justify-content: center; }
  .hero-content { padding-top: 6rem; padding-bottom: 4rem; }

  /* Numbers */
  .numeros-grid { grid-template-columns: 1fr 1fr; }
  .numero-item { padding: var(--sp-8) var(--sp-5); }
  .numero-item__value { font-size: clamp(2.5rem, 8vw, 4rem); }

  /* Soluções */
  .solucoes-grid { grid-template-columns: 1fr; }

  /* Ciclo */
  .ciclo-step { flex: 0 0 calc(50% - var(--sp-4)); }
  .ciclo-step__desc { max-width: none; }

  /* Sustentabilidade */
  .sustent-grid { grid-template-columns: 1fr; }
  .sustent-highlight__stats { grid-template-columns: 1fr 1fr; }

  /* RHEcicla */
  .rhecicla-images { height: 320px; }
  .rhecicla-quote { display: none; }

  /* Tecnologia */
  .tecno-features { grid-template-columns: 1fr 1fr; }

  /* CTA */
  .cta-title { font-size: var(--fs-2xl); }
  .cta-actions { flex-direction: column; align-items: center; }
  .cta-actions .btn { width: 100%; justify-content: center; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr; gap: var(--sp-8); }
  .footer-bottom { flex-direction: column; text-align: center; gap: var(--sp-3); }
  .footer-legal-links { flex-wrap: wrap; justify-content: center; gap: var(--sp-4); }

  /* Mapa */
  .mapa-container { gap: var(--sp-10); }
  .cidade-item { flex: 0 0 100%; }

  /* Modal */
  .modal-box { padding: var(--sp-8) var(--sp-6); border-radius: var(--r-xl); }
  .form-grid { grid-template-columns: 1fr; }
  .form-submit-row { flex-direction: column; align-items: stretch; }
  .form-submit-row .btn { width: 100%; justify-content: center; }

  /* Reduce leaf density on mobile */
  .leaf-float:nth-child(n+5) { display: none; }
}


/* ══════════════════════════════════════════════
   SMALL MOBILE — max-width: 479px
══════════════════════════════════════════════ */
@media (max-width: 479px) {

  .numeros-grid { grid-template-columns: 1fr; }
  .numero-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }
  .numero-item:last-child { border-bottom: none; }

  .ciclo-step { flex: 0 0 100%; }

  .tecno-features { grid-template-columns: 1fr; }

  .hero-title { font-size: clamp(1.4rem, 7vw, 1.9rem); }

  .qs-badge { width: 80px; height: 80px; top: -1rem; right: -1rem; }
  .qs-card { padding: var(--sp-4) var(--sp-5); }

  .sustent-highlight { padding: var(--sp-8) var(--sp-6); }
  .sustent-highlight__stats { grid-template-columns: 1fr 1fr; }
}


/* ══════════════════════════════════════════════
   LARGE DESKTOP — min-width: 1440px
══════════════════════════════════════════════ */
@media (min-width: 1440px) {
  :root { --section-py: 10rem; }

  .hero-title { font-size: clamp(2.2rem, 3.5vw, 3rem); }

  .solucoes-grid { grid-template-columns: repeat(3, 1fr); }

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


/* ══════════════════════════════════════════════
   PRINT
══════════════════════════════════════════════ */
@media print {
  #header,
  #mobile-menu,
  .hero-scroll,
  .leaves-layer,
  .wave-transition,
  #cta-final,
  #modal-contato { display: none !important; }

  body { background: white; color: black; }
  #hero { height: auto; min-height: 0; }
  .hero-bg, .hero-bg-image, .hero-gradient-overlay { display: none; }
  .hero-title, .hero-subtitle { color: black; }
  section { page-break-inside: avoid; }
}
