/* =========================================================
   RESPONSIVO GLOBAL — Christiane Mermerian
   Carregado por último para corrigir todo o projeto.
   ========================================================= */
html, body { width: 100%; max-width: 100%; overflow-x: clip; }
body { min-width: 320px; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
section, header, footer, nav, main, article, aside, div { min-width: 0; }
p, h1, h2, h3, h4, h5, a, span, li { overflow-wrap: break-word; }

@media (max-width: 1100px) {
  nav { padding-inline: 4%; }
  .nav-center { gap: 1.3rem; }
  .nav-link, .nav-cta { letter-spacing: .1em; }
  .art-body { gap: 48px; }
}

@media (max-width: 960px) {
  /* Navegação */
  nav { height: 68px; padding: 0 24px; }
  .nav-logo { display: flex; align-items: center; max-width: calc(100% - 58px); }
  .nav-logo img { width: auto; height: 54px; max-width: 210px; object-fit: contain; }
  .nav-center, nav > .nav-cta { display: none !important; }
  .nav-toggle { display: flex !important; flex-shrink: 0; }
  .nav-mobile { top: 68px; padding: 1.2rem 24px 1.5rem; max-height: calc(100dvh - 68px); overflow-y: auto; }
  .nav-mobile.open { display: flex !important; pointer-events: auto; }

  /* Home */
  #hero, #sobre, #contato { grid-template-columns: minmax(0, 1fr) !important; }
  #hero { min-height: auto; padding-top: 68px; }
  .hero-photo { order: 1; min-height: 0; }
  .hero-photo img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 16%; }
  .hero-content { order: 2; padding: 64px 7%; }
  .hero-name { font-size: clamp(3rem, 9vw, 4.8rem); }
  .hero-desc { max-width: 650px; }

  .sobre-text-col { padding: 72px 7%; }
  .sobre-photo { min-height: 0; }
  .sobre-photo img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; object-position: center top; }

  #formacao { grid-template-columns: minmax(0, 1fr) !important; gap: 36px; padding: 80px 7%; }
  #servicos, #diferenciais { padding: 80px 7%; }
  .serv-grid, .dif-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  .contato-photo img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; object-position: center top; }
  .contato-photo::after { background: linear-gradient(to top, var(--navy-dark) 0%, transparent 52%); }
  .contato-col { padding: 70px 7%; }

  /* Página de serviços */
  .serv-page-hero { grid-template-columns: minmax(0, 1fr) !important; gap: 42px !important; padding: 112px 7% 70px !important; }
  .serv-page-hero::after { font-size: 28vw; bottom: -3%; }
  .serv-hero-desc { max-width: 650px; }
  .serv-page-grid { padding: 78px 7% !important; }
  .serv-page-grid-header { grid-template-columns: minmax(0, 1fr) !important; gap: 22px !important; margin-bottom: 44px !important; }
  .serv-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .serv-cta { flex-direction: column !important; align-items: flex-start !important; padding: 68px 7% !important; }

  /* Artigos */
  .page-hero, .art-hero { padding: 116px 7% 66px; }
  .artigos-section { padding: 64px 7%; }
  .artigos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .art-body { grid-template-columns: minmax(0, 1fr) !important; gap: 0; padding: 64px 7%; }
  .art-sidebar { display: none !important; }
  .art-content { width: 100%; max-width: 780px; margin-inline: auto; }
  .breadcrumb { flex-wrap: wrap; line-height: 1.6; }

  /* Rodapé */
  footer { grid-template-columns: minmax(0, 1fr) !important; gap: 2.5rem; }
}

@media (max-width: 600px) {
  body { font-size: 15px; }

  /* Navegação */
  nav { height: 64px; padding-inline: 18px; }
  .nav-logo img { height: 48px; max-width: 185px; }
  .nav-mobile { top: 64px; padding: 1rem 18px 1.4rem; max-height: calc(100dvh - 64px); gap: .7rem; }
  .nav-mobile .nav-link { font-size: .82rem; padding: .65rem 0; }
  .nav-mobile .nav-cta { width: 100%; text-align: center; }

  /* Home */
  #hero { padding-top: 64px; }
  .hero-photo img { aspect-ratio: 1 / 1.05; object-position: center 15%; }
  .hero-accent { width: 34px; height: 34px; }
  .hero-content { padding: 46px 20px 52px; }
  .hero-eyebrow { margin-bottom: 1.2rem; letter-spacing: .2em; }
  .hero-name { font-size: clamp(2.5rem, 12vw, 3.55rem); line-height: 1.03; margin-bottom: 1.3rem; }
  .hero-line { margin-bottom: 1.3rem; }
  .hero-desc { font-size: .95rem; line-height: 1.75; margin-bottom: 2rem; }
  .hero-actions { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; gap: .8rem; }
  .hero-actions .btn { width: 100%; justify-content: center; text-align: center; }

  .sobre-text-col { padding: 56px 20px; }
  .sobre-text-col h2 { font-size: 2.2rem; }
  .sobre-p { font-size: .94rem; line-height: 1.8; }
  .sobre-stats { gap: 1rem; justify-content: space-between; }
  .sobre-stats > div { flex: 1; }
  .stat-n { font-size: 2.4rem; }
  .stat-l { font-size: .64rem; letter-spacing: .08em; }
  .sobre-photo img { aspect-ratio: 1 / 1; }

  #formacao, #servicos, #diferenciais { padding: 58px 20px; }
  .formacao-label h2, .servicos-head h2, #diferenciais h2 { font-size: 2.1rem; }
  .form-row { gap: 1rem; padding: 1.2rem 0; }
  .form-name { font-size: 1rem; }
  .form-sub { font-size: .83rem; }
  .servicos-head { margin-bottom: 34px; }
  .serv-grid, .dif-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .serv-card, .dif-card { padding: 1.9rem 1.35rem; }
  .serv-n { margin-bottom: 1rem; }
  #diferenciais .intro { margin-bottom: 2.4rem; }

  .contato-photo img { aspect-ratio: 1 / .9; }
  .contato-col { padding: 56px 20px; }
  .contato-col h2 { font-size: 2.55rem; margin-bottom: 2.2rem; }
  .c-item { gap: .85rem; }
  .c-value { font-size: .9rem; overflow-wrap: anywhere; }
  .contato-col > .btn { width: 100%; justify-content: center; }
  #atendimento { padding: 36px 20px; }
  #atendimento h2 { font-size: 1.65rem; }

  /* Serviços */
  .serv-page-hero { padding: 98px 20px 54px !important; gap: 30px !important; }
  .serv-page-hero::after { display: none; }
  .serv-page-h1 span { font-size: clamp(2.65rem, 14vw, 4rem) !important; }
  .serv-hero-desc { font-size: .94rem; line-height: 1.75; }
  .serv-hero-stat { padding: 1.35rem 1.25rem; }
  .serv-page-grid { padding: 56px 20px !important; }
  .serv-page-grid-header { margin-bottom: 34px !important; }
  .serv-page-grid-header h2 { font-size: 2rem; }
  .serv-cards { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem !important; }
  .serv-page-card { padding: 2rem 1.4rem !important; }
  .serv-page-card-n { font-size: 3rem; margin-bottom: 1rem; }
  .serv-cta { padding: 54px 20px !important; gap: 2rem !important; }
  .serv-cta-left h2 { font-size: 2rem; }
  .btn-gold-lg { width: 100%; justify-content: center; text-align: center; padding-inline: 1rem; }

  /* Artigos */
  .page-hero, .art-hero { padding: 100px 20px 50px; }
  .page-hero h1 { font-size: 2.35rem; }
  .page-hero p, .art-subtitle { font-size: .95rem; }
  .artigos-section { padding: 48px 20px; }
  .artigos-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem; }
  .artigo-card-body { padding: 1.6rem 1.35rem 1.8rem; }
  .artigo-meta { gap: .8rem; align-items: flex-end; }
  .artigo-date { max-width: 48%; }
  .artigo-link { letter-spacing: .08em; }

  .art-body { padding: 48px 20px; }
  .art-title { font-size: clamp(2rem, 10vw, 2.45rem); line-height: 1.08; }
  .art-meta { gap: 1rem; }
  .art-author { align-items: flex-start; }
  .art-author-role { letter-spacing: .06em; }
  .art-content p, .art-content ul li { font-size: .95rem; line-height: 1.8; }
  .art-content h2 { font-size: 1.42rem; margin-top: 2.4rem; }
  .art-content h3 { font-size: 1.12rem; }
  .art-content ul { margin-left: 1.1rem; }
  .art-quote, .art-answer-first { padding: 1.25rem 1.15rem !important; }
  .art-share { display: flex; align-items: stretch !important; flex-direction: column; gap: .8rem !important; }
  .art-share-btn { width: 100%; justify-content: center; text-align: center; }
  .art-faq-q, .art-faq-a { padding-inline: 1.1rem !important; }

  /* Rodapé e WhatsApp */
  footer { padding: 44px 20px; }
  .ft-brand img { max-width: 220px; }
  .ft-bottom { padding: 1rem 20px; font-size: .69rem; letter-spacing: .04em; }
  .wa-float { right: 14px; bottom: 14px; width: 52px; height: 52px; padding: 0; border-radius: 50%; justify-content: center; font-size: 0; letter-spacing: 0; }
  .wa-float svg { width: 24px; height: 24px; }
}

@media (max-width: 380px) {
  nav { padding-inline: 14px; }
  .nav-logo img { max-width: 165px; }
  .hero-content, .sobre-text-col, #formacao, #servicos, #diferenciais, .contato-col,
  .serv-page-hero, .serv-page-grid, .serv-cta, .page-hero, .art-hero, .artigos-section, .art-body, footer { padding-left: 16px !important; padding-right: 16px !important; }
  .hero-name { font-size: 2.35rem; }
  .art-title { font-size: 1.9rem; }
}
