/* ============================================================
   CQ Responsive Overrides — Corpus Quantum
   - Padding lateral em mobile (todo o site)
   - Centralizar conteúdo em mobile (todas as páginas)
   - Footer mobile com padding lateral
   - WhatsApp flutuante sem overflow no tablet
   - Cores: substituir verde por azul Corpus
   ============================================================ */

/* ====== FIX OVERFLOW HORIZONTAL GLOBAL ====== */
html, body { overflow-x: hidden !important; }

/* ====== WHATSAPP FLUTUANTE — sem overflow ====== */
[data-elementor-type="floating-buttons"] {
  position: fixed !important;
  right: 16px !important;
  bottom: 16px !important;
  left: auto !important;
  max-width: calc(100vw - 32px) !important;
  z-index: 9999;
}
[data-elementor-type="floating-buttons"] *,
.e-contact-buttons *,
.e-contact-buttons__chat-box,
.e-contact-buttons__chat-button-container,
.e-contact-buttons__chat-box-message,
.e-contact-buttons__chat-box-content,
.elementor-icon-list-text {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.e-contact-buttons__chat-box,
.e-contact-buttons__chat-button-container {
  max-width: min(300px, calc(100vw - 32px)) !important;
}

/* ====== TABLET (≤ 1024px) ====== */
@media (max-width: 1024px) {
  .elementor-section,
  .elementor-container,
  .e-con,
  .e-con-boxed,
  .e-con-full {
    max-width: 100% !important;
  }
  img { max-width: 100% !important; height: auto !important; }
}

/* ====== MOBILE (≤ 768px) — Padding lateral + centralizar ====== */
@media (max-width: 768px) {
  /* Padding lateral global em containers Elementor */
  .elementor-section.elementor-section-boxed > .elementor-container,
  .e-con-boxed > .e-con-inner,
  .e-parent > .e-con-inner,
  body > .elementor section > .e-con-inner,
  [data-elementor-type="wp-page"] > .e-con > .e-con-inner,
  [data-elementor-type="wp-page"] > section,
  [data-elementor-type="single-page"] > .e-con > .e-con-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Containers full sem padding também recebem */
  .e-con-full { padding-left: 16px !important; padding-right: 16px !important; }

  /* Centralizar texto em todos os widgets de texto/heading */
  .elementor-widget-heading .elementor-heading-title,
  .elementor-widget-text-editor,
  .elementor-widget-text-editor p,
  .elementor-widget-text-editor h1,
  .elementor-widget-text-editor h2,
  .elementor-widget-text-editor h3,
  .elementor-widget-text-editor li {
    text-align: center !important;
  }

  /* Icon lists centralizadas */
  .elementor-widget-icon-list .elementor-icon-list-items {
    justify-content: center !important;
    align-items: center !important;
  }
  .elementor-widget-icon-list .elementor-icon-list-item {
    justify-content: center !important;
    text-align: left;
  }

  /* Botões centralizados */
  .elementor-widget-button .elementor-button-wrapper {
    text-align: center !important;
  }

  /* Imagens centralizadas */
  .elementor-widget-image,
  .elementor-widget-image figure,
  .elementor-widget-image img {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
  }

  /* Tipografia: garantir minimo legivel */
  .elementor-widget-text-editor p { font-size: 15px !important; line-height: 1.6 !important; }
  .elementor-heading-title { word-wrap: break-word; }

  /* ====== FOOTER MOBILE — padding lateral ====== */
  [data-elementor-type="footer"],
  [data-elementor-type="footer"] > .e-con,
  [data-elementor-type="footer"] > .e-con > .e-con-inner,
  [data-elementor-type="footer"] .elementor-section {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }
  [data-elementor-type="footer"] .e-con-inner,
  [data-elementor-type="footer"] .e-con-boxed {
    max-width: 100% !important;
  }
  /* Footer mobile: alinhado a esquerda */
  [data-elementor-type="footer"] .elementor-heading-title,
  [data-elementor-type="footer"] .elementor-widget-heading,
  [data-elementor-type="footer"] .elementor-widget-text-editor,
  [data-elementor-type="footer"] .elementor-widget-text-editor *,
  [data-elementor-type="footer"] .elementor-icon-list-text {
    text-align: left !important;
  }
  [data-elementor-type="footer"] .elementor-icon-list-items {
    align-items: flex-start !important;
  }
  [data-elementor-type="footer"] .elementor-icon-list-item {
    justify-content: flex-start !important;
  }

  /* Botões e CTAs maiores no touch */
  .elementor-button,
  .elementor-widget-button .elementor-button {
    min-height: 44px !important;
  }
}

/* ====== MOBILE PEQUENO (≤ 480px) ====== */
@media (max-width: 480px) {
  [data-elementor-type="wp-page"] > .e-con > .e-con-inner,
  [data-elementor-type="wp-page"] > section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  [data-elementor-type="footer"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .elementor-heading-title { font-size: clamp(20px, 6vw, 28px) !important; }
}

/* ====== PAGINAS ESPECIFICAS — texto alinhado a esquerda ======
   Aplica em todas as paginas EXCETO home (.home), produtos (.page-id-19)
   e contato (.page-id-21). Vale para desktop e mobile. */
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="wp-page"] .elementor-widget-heading .elementor-heading-title,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="wp-page"] .elementor-widget-text-editor,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="wp-page"] .elementor-widget-text-editor *,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="single-page"] .elementor-widget-heading .elementor-heading-title,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="single-page"] .elementor-widget-text-editor,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="single-page"] .elementor-widget-text-editor * {
  text-align: left !important;
}
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-items,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="single-page"] .elementor-widget-icon-list .elementor-icon-list-items {
  align-items: flex-start !important;
}
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-item,
body:not(.home):not(.page-id-19):not(.page-id-21) [data-elementor-type="single-page"] .elementor-widget-icon-list .elementor-icon-list-item {
  justify-content: flex-start !important;
}

/* ====== PRODUTOS — cards com fundo azul escuro + texto branco ====== */
.e-loop-item {
  background: #14125B !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  padding-bottom: 18px !important;
}
.e-loop-item h1,
.e-loop-item h2,
.e-loop-item h3,
.e-loop-item .elementor-heading-title {
  color: #ffffff !important;
}
.e-loop-item h2,
.e-loop-item h3 {
  font-weight: 600 !important;
}
/* "Ver mais" como link com underline branco */
.e-loop-item .elementor-element[data-widget_type="heading.default"]:last-of-type h2,
.e-loop-item h2:last-of-type {
  display: inline-block;
  padding: 0;
  background: none !important;
  color: #ffffff !important;
  border: none;
  border-radius: 0;
  font-size: 14px !important;
  font-weight: 600 !important;
  margin-top: 10px;
  letter-spacing: 0.3px;
  border-bottom: 1px solid #ffffff;
  padding-bottom: 2px;
}

/* ====== PRODUTOS — cards clicáveis com feedback visual ====== */
a.e-loop-item,
a[class*="e-loop-item"],
.e-loop-item > a,
[class*="elementor-element"][href][data-element_type="container"] {
  cursor: pointer !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
  display: block;
}
a[data-element_type="container"]:hover,
.e-loop-item a:hover,
a.e-loop-item:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(0, 40, 80, 0.15) !important;
}
/* Imagens dentro do card também com leve zoom no hover */
a[data-element_type="container"]:hover img,
.e-loop-item:hover img {
  transition: transform .35s ease;
}

/* ====== FORM CONTATO: substituir verde por azul + box-sizing fix ====== */
.cq-form-wrap input,
.cq-form-wrap select,
.cq-form-wrap textarea,
.cq-form-wrap button {
  box-sizing: border-box !important;
  max-width: 100% !important;
  width: 100% !important;
}
.cq-form-wrap form {
  width: 100% !important;
  max-width: 100% !important;
}
.cq-form-wrap input[type=tel]:focus,
.cq-form-wrap input[type=email]:focus,
.cq-form-wrap input[type=text]:focus,
.cq-form-wrap select:focus,
.cq-form-wrap textarea:focus {
  border-color: #00aef0 !important;
  outline: 2px solid rgba(0,174,240,0.25) !important;
}
