/*
 * sidebar-style.css — PersonalizeIT
 * Cobre: header sticky + off-canvas sidebar + desktop mega menu de "Serviços"
 * Paleta: fundo #16171e | laranja #EA4100 | texto #fff | cinza #51525A
 */

/* ════════════════════════════════════════════════════════════
   CTA "Dê o próximo passo" — quem-somos
   ════════════════════════════════════════════════════════════ */

.elementor-element-0923e41 {
  padding-top: 250px !important;
  padding-bottom: 250px !important;
  min-height: unset !important;
}

.elementor-element-0923e41.e-con {
  min-height: unset !important;
}

/* ════════════════════════════════════════════════════════════
   MISSÃO VISÃO VALORES — quem-somos
   ════════════════════════════════════════════════════════════ */

.mvv-section { margin: 0; padding: 0; }

/* Blocos alternados */
.mvv-bloco { padding: 80px 24px; }
.mvv-bloco--light { background: #f8f9fb; }
.mvv-bloco--dark  { background: #0f1117; }

.mvv-bloco-inner {
  max-width: 1160px;
  margin: 0 auto;
  text-align: center;
}

/* Tag de seção */
.mvv-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #EA4100;
  margin: 0 0 18px;
}

/* Frase principal */
.mvv-frase {
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 800;
  color: #111827;
  line-height: 1.3;
  margin: 0 0 56px;
  text-transform: uppercase;
}
.mvv-frase--light { color: #ffffff; }

.mvv-destaque { color: #EA4100; }

/* ── Bolinhas de ênfase ── */
.mvv-bolinhas {
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}

.mvv-bolinha {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  max-width: 220px;
}

.mvv-bolinha p {
  font-size: 13px;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
  text-align: center;
}

.mvv-bolinha--dark p { color: #9ca3af; }

.mvv-bolinha-circulo {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: #EA4100;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  line-height: 1.35;
  box-shadow: 0 8px 32px rgba(234,65,0,0.35);
  transition: transform 0.25s, box-shadow 0.25s;
}

.mvv-bolinha-circulo:hover {
  transform: translateY(-6px) scale(1.04);
  box-shadow: 0 16px 48px rgba(234,65,0,0.45);
}

/* ── Valores grid ── */
.mvv-valores-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  text-align: left;
}

@media (max-width: 768px) {
  .mvv-valores-grid { grid-template-columns: 1fr; }
  .mvv-bolinhas { gap: 24px; }
  .mvv-bolinha { max-width: 160px; }
  .mvv-bolinha-circulo { width: 120px; height: 120px; font-size: 10px; }
}

.mvv-valor-item {
  background: #ffffff;
  border-radius: 18px;
  padding: 32px 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.07);
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform 0.25s, box-shadow 0.25s;
}

.mvv-valor-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.12);
}

.mvv-valor-bolinha {
  align-self: flex-start;
  background: #EA4100;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 8px 20px;
  border-radius: 100px;
}

.mvv-valor-item p {
  font-size: 14px;
  color: #4b5563;
  line-height: 1.75;
  margin: 0;
}

/* ════════════════════════════════════════════════════════════
   10 MANDAMENTOS — quem-somos
   ════════════════════════════════════════════════════════════ */

.mandamentos-section {
  background: #0f1117;
  padding: 88px 24px;
}

.mandamentos-inner {
  max-width: 1160px;
  margin: 0 auto;
  text-align: center;
}

.mandamentos-section .mvv-label {
  color: #EA4100;
}

.mandamentos-section .mvv-heading {
  color: #ffffff;
  margin-bottom: 16px;
}

.mandamentos-desc {
  font-size: 16px;
  color: #6b7280;
  max-width: 560px;
  margin: 0 auto 56px;
  line-height: 1.7;
}

.mandamentos-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

@media (max-width: 1100px) {
  .mandamentos-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 700px) {
  .mandamentos-grid { grid-template-columns: repeat(2, 1fr); }
}

.mandamento-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 28px 20px;
  text-align: center;
  transition: background 0.25s, transform 0.25s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.mandamento-card:hover {
  background: rgba(234,65,0,0.08);
  border-color: rgba(234,65,0,0.3);
  transform: translateY(-4px);
}

.mandamento-card--destaque {
  border-color: #EA4100;
  background: rgba(234,65,0,0.06);
  grid-column: span 1;
}

.mandamento-num {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 28px;
  font-weight: 700;
  color: #EA4100;
  line-height: 1;
}

.mandamento-card p {
  font-size: 14px;
  color: #d1d5db;
  line-height: 1.6;
  margin: 0;
}

.mandamento-card p em {
  color: #EA4100;
  font-style: normal;
  font-weight: 700;
}

/* ════════════════════════════════════════════════════════════
   SEÇÃO DE VÍDEO — quem-somos
   ════════════════════════════════════════════════════════════ */

.qs-video-section {
  background: #0f1117;
  padding: 72px 24px;
  text-align: center;
}

.qs-video-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #EA4100;
  margin: 0 0 12px;
}

.qs-video-title {
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 14px;
  line-height: 1.25;
}

.qs-video-title span {
  color: #EA4100;
}

.qs-video-desc {
  font-size: 16px;
  color: #9ca3af;
  max-width: 540px;
  margin: 0 auto 40px;
  line-height: 1.7;
}

.qs-video-wrapper {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.6);
}

.qs-video-wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* ════════════════════════════════════════════════════════════
   PARCEIROS — slider animado (quem-somos)
   ════════════════════════════════════════════════════════════ */

.partners-section-wrap {
  background: linear-gradient(135deg, #0f1117 0%, #1a1d2e 100%) !important;
  padding: 70px 0 !important;
}

.partners-section-inner {
  width: 100%;
  text-align: center;
  overflow: hidden;
}

.partners-label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #EA4100;
  margin: 0 0 14px;
}

.partners-title {
  font-size: clamp(26px, 3.5vw, 42px);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.25;
  margin: 0 0 18px;
}

.partners-desc {
  font-size: 16px;
  color: #9ca3af;
  max-width: 620px;
  margin: 0 auto 52px;
  line-height: 1.7;
}

/* ── Marquee container ── */
.partners-marquee-outer {
  overflow: hidden;
  width: 100%;
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

@keyframes partners-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.partners-marquee-track {
  display: flex;
  align-items: stretch;
  gap: 28px;
  width: max-content;
  animation: partners-scroll 20s linear infinite;
  padding: 4px 0 12px;
}

/* ── Card de cada parceiro ── */
.partner-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  background: #ffffff;
  border-radius: 14px;
  padding: 28px 36px;
  width: 280px;
  flex-shrink: 0;
  box-shadow: 0 4px 24px rgba(0,0,0,0.25);
  transition: transform 0.25s, box-shadow 0.25s;
}

.partner-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.35);
}

.partner-logo--wide {
  width: 200px;
  height: 55px;
  object-fit: contain;
  flex-shrink: 0;
}

.partner-logo--sq {
  width: 120px;
  height: 55px;
  object-fit: contain;
  flex-shrink: 0;
}

.partner-tagline {
  font-size: 13px;
  color: #6b7280;
  text-align: center;
  line-height: 1.4;
  max-width: 210px;
}

/* ════════════════════════════════════════════════════════════
   CARDS DE SERVIÇOS — botão "Entre em contato" alinhado ao fundo
   ════════════════════════════════════════════════════════════ */

/* Os 3 cards usam flex-column; o botão com margin-top:auto empurra para o fundo */
.elementor-element-dcbac85,
.elementor-element-548ea01,
.elementor-element-976e097 {
  display: flex !important;
  flex-direction: column !important;
}

.elementor-element-dcbac85 .elementor-widget-button,
.elementor-element-548ea01 .elementor-widget-button,
.elementor-element-976e097 .elementor-widget-button {
  margin-top: auto !important;
}

/* ════════════════════════════════════════════════════════════
   FOOTER — links de navegação
   ════════════════════════════════════════════════════════════ */

footer .elementor-heading-title a {
  color: inherit;
  text-decoration: none;
}

footer .elementor-heading-title a:hover {
  text-decoration: underline;
  opacity: 0.85;
}

/* ════════════════════════════════════════════════════════════
   MARQUEE DE LOGOS DE CLIENTES
   ════════════════════════════════════════════════════════════ */

.elementor-element-2ce57e90 {
  overflow: hidden !important;
  display: block !important;
  padding: 20px 0 !important;
}

.logo-marquee-outer {
  overflow: hidden;
  width: 100%;
}

@keyframes logo-marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.logo-marquee-track {
  display: flex;
  align-items: center;
  gap: 72px;
  width: max-content;
  animation: logo-marquee-scroll 32s linear infinite;
  padding: 8px 0;
}

/*
 * PADRÃO DE LOGOS: width:160px; height:55px; object-fit:contain
 * Todos os logos devem ter esse estilo inline para ficarem no mesmo tamanho.
 * object-fit:contain mantém a proporção dentro da caixa — logos largos
 * reduzem automaticamente, sem distorcer ou estourar.
 */

/* ════════════════════════════════════════════════════════════
   MODAL DE CONTATO
   ════════════════════════════════════════════════════════════ */

.cm-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(0,0,0,0.65);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.cm-overlay.cm-active {
  opacity: 1;
  pointer-events: all;
}

.cm-modal {
  background: #fff;
  border-radius: 20px;
  padding: 40px 36px 36px;
  width: 100%;
  max-width: 460px;
  position: relative;
  box-shadow: 0 24px 80px rgba(0,0,0,0.3);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.25s ease;
}
.cm-overlay.cm-active .cm-modal {
  transform: translateY(0) scale(1);
}

.cm-close {
  position: absolute;
  top: 14px;
  right: 18px;
  background: none;
  border: none;
  font-size: 26px;
  color: #9ca3af;
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}
.cm-close:hover { color: #111; background: #f3f4f6; }

.cm-logo-wrap { text-align: center; margin-bottom: 18px; }
.cm-logo { height: 28px; display: inline-block; }

.cm-title {
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  text-align: center;
  margin: 0 0 8px;
  line-height: 1.3;
}
.cm-sub {
  font-size: 14px;
  color: #6b7280;
  text-align: center;
  margin: 0 0 24px;
  line-height: 1.5;
}

.cm-field { margin-bottom: 16px; }
.cm-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
}
.cm-input {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  font-size: 14px;
  color: #111827;
  background: #f9fafb;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.cm-input:focus {
  border-color: #EA4100;
  box-shadow: 0 0 0 3px rgba(234,65,0,0.1);
  background: #fff;
}
.cm-captcha-inp { -moz-appearance: textfield; }
.cm-captcha-inp::-webkit-outer-spin-button,
.cm-captcha-inp::-webkit-inner-spin-button { -webkit-appearance: none; }

.cm-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #dc2626;
  font-size: 13px;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 14px;
}

.cm-submit {
  width: 100%;
  padding: 14px;
  background: #EA4100;
  color: #fff;
  border: none;
  border-radius: 50px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
  box-shadow: 0 6px 24px rgba(234,65,0,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
}
.cm-submit:hover:not(:disabled) {
  background: #c93800;
  transform: translateY(-1px);
  box-shadow: 0 8px 32px rgba(234,65,0,0.45);
}
.cm-submit:disabled { opacity: 0.65; cursor: not-allowed; }

.cm-spin {
  display: inline-block;
  animation: cm-rotate 0.7s linear infinite;
  font-size: 18px;
}
@keyframes cm-rotate { to { transform: rotate(360deg); } }

.cm-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 20px 0 10px;
}
.cm-success-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #dcfce7;
  color: #16a34a;
  font-size: 28px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.cm-success h3 { font-size: 20px; color: #111827; margin: 0 0 8px; }
.cm-success p  { font-size: 14px; color: #6b7280; margin: 0; }

@media (max-width: 480px) {
  .cm-modal { padding: 32px 20px 28px; }
}

/* ════════════════════════════════════════════════════════════
   BOTÃO FLUTUANTE WHATSAPP
   ════════════════════════════════════════════════════════════ */

.whatsapp-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 9999;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 4px 20px rgba(37, 211, 102, 0.45), 0 2px 8px rgba(0,0,0,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  animation: wpp-pulse 2.8s ease-in-out infinite;
}

.whatsapp-float:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 28px rgba(37, 211, 102, 0.65), 0 3px 12px rgba(0,0,0,0.3);
  animation: none;
}

.whatsapp-float:hover .wpp-balloon {
  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
}

.whatsapp-float svg {
  width: 34px;
  height: 34px;
  fill: #ffffff;
  position: relative;
  z-index: 1;
}

/* ── Balão de fala ── */
.wpp-balloon {
  position: absolute;
  bottom: calc(100% + 14px);
  right: 0;
  background: #ffffff;
  color: #111827;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  padding: 10px 16px;
  border-radius: 14px 14px 0 14px;
  white-space: nowrap;
  box-shadow: 0 6px 24px rgba(0,0,0,0.15);
  pointer-events: none;
  animation: balloon-in 0.5s cubic-bezier(0.34,1.56,0.64,1) 0.8s both,
             balloon-bob 4s ease-in-out 2s infinite;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

/* Setinha apontando para o botão */
.wpp-balloon::after {
  content: '';
  position: absolute;
  bottom: -8px;
  right: 14px;
  border-left: 9px solid transparent;
  border-right: 0px solid transparent;
  border-top: 9px solid #ffffff;
}

@keyframes balloon-in {
  from { opacity: 0; transform: scale(0.7) translateY(8px); transform-origin: bottom right; }
  to   { opacity: 1; transform: scale(1) translateY(0);     transform-origin: bottom right; }
}

@keyframes balloon-bob {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-4px); }
}

@keyframes wpp-pulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(37,211,102,0.45), 0 2px 8px rgba(0,0,0,0.25); }
  50%       { box-shadow: 0 4px 28px rgba(37,211,102,0.75), 0 2px 8px rgba(0,0,0,0.25); }
}

/* ════════════════════════════════════════════════════════════
   STICKY HEADER — estilo inspirado no layout de referência
   ════════════════════════════════════════════════════════════ */

/*
 * Header: fundo escuro, barra laranja no topo, separador vertical após logo.
 * Itens do menu em branco, hover/ativo em laranja (#EA4100).
 */

/* Neutraliza background-overlay do Elementor (::before do .e-con) */
.elementor-16 .elementor-element.elementor-element-d044bb4:before {
  background: none !important;
  background-color: transparent !important;
  content: none !important;
}

/* Neutraliza o background-color aplicado pelo Elementor na header */
.elementor-16 .elementor-element.elementor-element-d044bb4:not(.elementor-motion-effects-element-type-background) {
  background-color: transparent !important;
}

.elementor-element-d044bb4.elementor-sticky--active,
.elementor-element-d044bb4.elementor-sticky,
.elementor-16 .elementor-element.elementor-element-d044bb4 {
  background: #EA4100 !important;
  background-color: #EA4100 !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-top: 3px solid #EA4100 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07) !important;
  transition: background 0.3s ease, backdrop-filter 0.3s ease !important;
  gap: 0 !important;
  /* ── Navbar contida (não ocupa toda a largura) ── */
  width: min(1280px, calc(100vw - 80px)) !important;
  max-width: 1280px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  top: 14px !important;
  border-radius: 14px !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35) !important;
}

/* Quando .elementor-sticky--effects é adicionado ao rolar (60px) */
.elementor-element-d044bb4.elementor-sticky--effects,
.elementor-16 .elementor-element.elementor-element-d044bb4.elementor-sticky--effects {
  background: #d63a00 !important;
  background-color: #d63a00 !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-top: 3px solid #EA4100 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09) !important;
  box-shadow: 0 6px 32px rgba(0, 0, 0, 0.45) !important;
}

/* ── Separador vertical após o logo ─────────────────────── */
.elementor-element-d044bb4 .elementor-element-507839f7 {
  position: relative !important;
  padding-right: 24px !important;
  margin-right: 8px !important;
}

.elementor-element-d044bb4 .elementor-element-507839f7::after {
  content: '' !important;
  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 1px !important;
  height: 24px !important;
  background: rgba(255, 255, 255, 0.15) !important;
}

/* ── Menu container: preenche espaço entre logo e botão ─── */
.elementor-element-d044bb4 .elementor-element-c9fcce6 {
  flex: 1 !important;
  justify-content: flex-start !important;
  padding-left: 16px !important;
}

/* ── Itens do menu desktop: texto branco, hover em laranja ── */
.elementor-16 .elementor-element.elementor-element-0fde658 {
  --n-menu-title-color-normal: #ffffff;
  --n-menu-title-color-hover: #EA4100;
  --n-menu-title-color-active: #EA4100;
}

/* ── Menu items: espaçamento mais compacto ────────────────── */
.elementor-element-d044bb4 .e-n-menu-heading {
  gap: 4px !important;
}

.elementor-element-d044bb4 .e-n-menu-heading .e-n-menu-title-text {
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

/* ── Botão CTA "Entre em contato" — estilo arredondado ──── */
.elementor-element-d044bb4 .elementor-element-67a9108 .elementor-button {
  border-radius: 24px !important;
  padding: 10px 24px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  background: #EA4100 !important;
  border: none !important;
  box-shadow: none !important;
  transition: background 0.2s, transform 0.15s !important;
}

.elementor-element-d044bb4 .elementor-element-67a9108 .elementor-button:hover {
  background: #c93900 !important;
  transform: translateY(-1px) !important;
}

/* ── Seta no botão CTA ──────────────────────────────────── */
.elementor-element-d044bb4 .elementor-element-67a9108 .elementor-button-text::after {
  content: ' ►' !important;
  font-size: 10px !important;
  margin-left: 6px !important;
  vertical-align: middle !important;
}

/* ════════════════════════════════════════════════════════════
   OFF-CANVAS SIDEBAR
   ════════════════════════════════════════════════════════════ */

/* ─── Overlay ───────────────────────────────────────────── */
.e-off-canvas__overlay {
  background: rgba(0, 0, 0, 0.6) !important;
  backdrop-filter: blur(4px) !important;
}

/* ─── Painel deslizante ─────────────────────────────────── */
.e-off-canvas__main {
  width: min(300px, 88vw) !important;
  max-width: 320px !important;
  background: #16171e !important;
  box-shadow: 8px 0 40px rgba(0, 0, 0, 0.7) !important;
  border-right: 1px solid rgba(255, 255, 255, 0.06) !important;
}

/* ─── Conteúdo interno ──────────────────────────────────── */
.e-off-canvas__content,
.elementor-widget-off-canvas .e-off-canvas__content {
  background: #16171e !important;
  box-shadow: none !important;
  padding: 0 !important;
  height: 100%;
  display: flex !important;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
}

/* ─── Header do sidebar (logo + fechar) ─────────────────── */
.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  flex-shrink: 0;
  background: #16171e;
}

.sidebar-logo {
  height: 28px;
  width: auto;
}

.sidebar-close {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 7px;
  background: transparent;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.18s ease;
  flex-shrink: 0;
  padding: 0;
}

.sidebar-close:hover {
  background: rgba(234, 65, 0, 0.12);
  border-color: rgba(234, 65, 0, 0.35);
  color: #EA4100;
}

.sidebar-close svg {
  width: 15px;
  height: 15px;
  pointer-events: none;
}

/* ─── Container da nav ──────────────────────────────────── */
.e-off-canvas .elementor-element-a634bb4 {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0;
}

/* Esconde o nav principal (duplicado) — usa apenas o --dropdown */
.e-off-canvas .elementor-nav-menu--main {
  display: none !important;
}

/*
 * CRÍTICO: force position:static no <ul> raiz do nav para que o SmartMenus
 * detecte modo "colapsível" via isCollapsible() → "static" == ul.css("position").
 * Em modo colapsível o SmartMenus NÃO chama menuPosition() e portanto NÃO
 * define marginTop negativo que fazia o sub-menu flutuar sobre outros itens.
 */
.e-off-canvas .elementor-nav-menu {
  position: static !important;
}

/* Exibe o nav dropdown como coluna flex */
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  padding: 8px 0 0 !important;
  background: transparent !important;
  margin-top: 0 !important;
  overflow: visible !important;
  max-height: none !important;
  transform: none !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  width: 100% !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li {
  display: block !important;
  width: 100% !important;
}

/* ─── Links de nível 1 ──────────────────────────────────── */
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item:not(.menu-item-has-children) > a,
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item-has-children > a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 16px 22px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  text-decoration: none !important;
  border-left: 2px solid transparent !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: none !important;
  background: transparent !important;
  transition: color 0.18s, background 0.18s, border-color 0.18s !important;
  line-height: 1.4 !important;
  text-shadow: none !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item > a:hover {
  color: #EA4100 !important;
  background: rgba(234, 65, 0, 0.07) !important;
  border-left-color: #EA4100 !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item.current-menu-item > a,
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item > a.elementor-item-active {
  color: #EA4100 !important;
  border-left-color: #EA4100 !important;
  font-weight: 600 !important;
}

/* ─── Chevron para "Serviços" ───────────────────────────── */
.e-off-canvas .menu-item-has-children > a .sidebar-chevron {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
  flex-shrink: 0;
  transition: background 0.18s, transform 0.25s ease !important;
}

.e-off-canvas .menu-item-has-children > a .sidebar-chevron svg {
  width: 11px;
  height: 11px;
  fill: none;
  stroke: rgba(255, 255, 255, 0.45);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.18s;
  pointer-events: none;
}

.e-off-canvas .menu-item-has-children.sidebar-open > a .sidebar-chevron {
  background: rgba(234, 65, 0, 0.14) !important;
  transform: rotate(90deg) !important;
}

.e-off-canvas .menu-item-has-children.sidebar-open > a .sidebar-chevron svg {
  stroke: #EA4100 !important;
}

/* ─── Sub-menu acordeão ─────────────────────────────────── */

/* Reset completo do estilo padrão do Elementor + SmartMenus */
.e-off-canvas .sub-menu.elementor-nav-menu--dropdown,
.e-off-canvas ul.elementor-nav-menu--dropdown {
  background-color: transparent !important;
  font-size: inherit !important;
  margin-top: 0 !important;
  margin-left: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  position: static !important;
}

.e-off-canvas .sub-menu.elementor-nav-menu--dropdown a,
.e-off-canvas ul.elementor-nav-menu--dropdown a {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* Container do acordeão — overrides completos contra SmartMenus */
.e-off-canvas .menu-item-has-children > .sub-menu {
  list-style: none !important;
  /* margens: top/right/bottom = 0; left = indentação visual */
  margin-top: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
  margin-left: 22px !important;
  padding: 0 !important;
  /* Accordion via max-height (JS só alterna a classe .sidebar-open) */
  max-height: 0 !important;
  /* height: auto bloqueia o slideUp do SmartMenus (que setaria height:0) */
  height: auto !important;
  overflow: hidden !important;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
  /* Posicionamento — static impede absolute do SmartMenus menuPosition */
  position: static !important;
  top: auto !important;
  left: auto !important;
  z-index: auto !important;
  width: auto !important;
  min-width: unset !important;
  max-width: none !important;
  transform: none !important;
  /* Visibilidade — bloqueia fadeOut do SmartMenus */
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  /* Visual */
  background: rgba(255, 255, 255, 0.025) !important;
  border-left: 2px solid rgba(234, 65, 0, 0.3) !important;
  border-radius: 0 0 4px 4px !important;
}

/* Estado aberto — acionado pela classe .sidebar-open adicionada pelo JS */
.e-off-canvas .menu-item-has-children.sidebar-open > .sub-menu {
  max-height: 600px !important;
}

/* Itens do sub-menu */
.e-off-canvas .sub-menu .menu-item {
  border: none !important;
  background: transparent !important;
  display: block !important;
  width: 100% !important;
}

.e-off-canvas .sub-menu .menu-item > a,
.e-off-canvas .sub-menu .menu-item > a.elementor-sub-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 14px 20px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  color: rgba(255, 255, 255, 0.5) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  border: none !important;
  background: transparent !important;
  transition: color 0.18s, background 0.18s !important;
  letter-spacing: 0.01em !important;
  line-height: 1.4 !important;
  text-shadow: none !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
}

.e-off-canvas .sub-menu .menu-item > a::before {
  content: '' !important;
  width: 4px !important;
  height: 4px !important;
  border-radius: 50% !important;
  background: rgba(234, 65, 0, 0.4) !important;
  flex-shrink: 0 !important;
  transition: background 0.18s !important;
}

.e-off-canvas .sub-menu .menu-item > a:hover {
  color: #EA4100 !important;
  background: rgba(234, 65, 0, 0.06) !important;
}

.e-off-canvas .sub-menu .menu-item > a:hover::before {
  background: #EA4100 !important;
}

/* ─── Separador e CTA ───────────────────────────────────── */
.sidebar-divider {
  margin: 10px 22px;
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  flex-shrink: 0;
}

.sidebar-cta {
  display: block !important;
  margin: 4px 22px 26px !important;
  padding: 12px 20px !important;
  background: #EA4100 !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-align: center !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  letter-spacing: 0.05em !important;
  transition: background 0.18s, transform 0.15s, box-shadow 0.18s !important;
  box-shadow: 0 4px 18px rgba(234, 65, 0, 0.28) !important;
  flex-shrink: 0;
  border: none !important;
}

.sidebar-cta:hover {
  background: #c93900 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 24px rgba(234, 65, 0, 0.42) !important;
  color: #fff !important;
}


/* ════════════════════════════════════════════════════════════
   CTA BUTTON — botão único centralizado (após remover o outline)
   ════════════════════════════════════════════════════════════ */

/* Container dos botões vira coluna centralizada */
.cta-single-centered {
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
}

/* Botão laranja ligeiramente maior */
.cta-single-centered .elementor-widget-button .elementor-button {
  padding: 16px 38px !important;
  font-size: 15px !important;
  letter-spacing: 0.04em !important;
}

/* Ilustração TI — wrapper */
.ti-illustration {
  width: 100%;
  padding: 8px 0 4px;
  display: flex;
  justify-content: center;
}

/* ════════════════════════════════════════════════════════════
   SERVICE CARDS — centralização de textos e ilustrações
   ════════════════════════════════════════════════════════════ */

/* Alinha todos os filhos ao centro no eixo cruzado (horizontal) */
.elementor-element-dcbac85,
.elementor-element-548ea01,
.elementor-element-976e097 {
  align-items: center !important;
}

/* Widget containers ocupam 100% da largura para não quebrar o layout */
.elementor-element-dcbac85 .elementor-widget-container,
.elementor-element-548ea01 .elementor-widget-container,
.elementor-element-976e097 .elementor-widget-container {
  width: 100%;
  text-align: center;
}

/* Títulos dos cards */
.elementor-element-dcbac85 .elementor-heading-title,
.elementor-element-548ea01 .elementor-heading-title,
.elementor-element-976e097 .elementor-heading-title {
  text-align: center !important;
}

/* Texto descritivo dos cards */
.elementor-element-dcbac85 .elementor-widget-text-editor,
.elementor-element-548ea01 .elementor-widget-text-editor,
.elementor-element-976e097 .elementor-widget-text-editor,
.elementor-element-dcbac85 .elementor-widget-text-editor p,
.elementor-element-548ea01 .elementor-widget-text-editor p,
.elementor-element-976e097 .elementor-widget-text-editor p {
  text-align: center !important;
}

/* Centraliza wrappers das animações Rive */
.elementor-element-dcbac85 .rive-anim,
.elementor-element-548ea01 .rive-anim {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Ilustração TI — mesmas dimensões que as animações Rive */
.elementor-element-976e097 .ti-illustration {
  width: 100% !important;
  max-width: 310px !important;
  aspect-ratio: 310 / 260 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ════════════════════════════════════════════════════════════
   FOOTER — consistent alignment for both columns
   ════════════════════════════════════════════════════════════ */
.elementor-716 .elementor-element-0e99747 > .elementor-widget-heading,
.elementor-716 .elementor-element-8e94c17 > .elementor-widget-heading {
  align-self: stretch !important;
  text-align: left !important;
}

/* ════════════════════════════════════════════════════════════
   FOOTER — "Trabalhe Conosco" (tc001) font match Sobre nós / Depoimentos
   ════════════════════════════════════════════════════════════ */
.elementor-716 .elementor-element.elementor-element-tc001 .elementor-heading-title{
  font-family:"Cyntho Next", Sans-serif;
  font-size:0.8rem;
  font-weight:500;
  line-height:24px;
  color:#B1B1B1;
}
.elementor-716 .elementor-element.elementor-element-tc001 .elementor-heading-title a{
  color:#B1B1B1;
  text-decoration:none;
}
.elementor-716 .elementor-element.elementor-element-tc001 .elementor-heading-title a:hover,
.elementor-716 .elementor-element.elementor-element-tc001 .elementor-heading-title a:focus{
  color:var( --e-global-color-primary );
}

/* Remove o max-height inline do SVG para que ele preencha o container */
.elementor-element-976e097 .ti-illustration .ti-svg {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
}

/* Botões dos cards */
.elementor-element-dcbac85 .elementor-widget-button,
.elementor-element-548ea01 .elementor-widget-button,
.elementor-element-976e097 .elementor-widget-button {
  text-align: center !important;
  width: 100%;
}

/* ════════════════════════════════════════════════════════════
   DESKTOP MEGA MENU — "Serviços"
   ════════════════════════════════════════════════════════════ */

/*
 * FIX DE POSICIONAMENTO:
 * O .e-n-menu-item vira o contexto de posicionamento, substituindo
 * o .e-n-menu (largura 1920px com --stretch-left:-615px que
 * deslocava o dropdown para a posição errada).
 * Com position:relative no <li> o dropdown fica ancorado
 * exatamente abaixo de "Serviços".
 */
.elementor-widget-n-menu .e-n-menu-item {
  position: relative !important;
}

.elementor-widget-n-menu .e-n-menu:not([data-layout=dropdown]) .e-n-menu-content {
  position: absolute !important;
  top: 100% !important;
  bottom: auto !important;
  left: 0 !important;
  right: auto !important;
  width: 340px !important;
  margin-top: 8px !important;
  padding-block-start: 0 !important;
}

/* Esconde por padrão (sem .e-active) — reforça o CSS do widget-mega-menu */
.elementor-widget-n-menu .e-n-menu-content > .e-con:not(.e-active) {
  display: none !important;
}

/* ─── Card quando aberto ────────────────────────────────── */
.elementor-widget-n-menu .e-n-menu-content > .e-con.e-active,
:where(.elementor-widget-n-menu .e-n-menu-content > .e-con) {
  background: rgba(45, 18, 8, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 10px !important;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55) !important;
  backdrop-filter: blur(16px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.3) !important;
  padding: 8px !important;
  animation: menuFadeIn 0.18s ease !important;
  width: 100% !important;
  max-width: none !important;
}

@keyframes menuFadeIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─── Itens dentro do card ──────────────────────────────── */
.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-wrapper {
  position: relative !important;
  padding: 10px 14px !important;
  border-radius: 7px !important;
  transition: background 0.18s !important;
  cursor: pointer;
}

/* Overlay invisível que faz o card inteiro ser clicável pelo link do título */
.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-title a::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: block !important;
}

.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-wrapper:hover {
  background: rgba(234, 65, 0, 0.09) !important;
}

.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-title,
.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-title a,
.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-title span {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  transition: color 0.18s !important;
}

.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-wrapper:hover
  .elementor-icon-box-title,
.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-wrapper:hover
  .elementor-icon-box-title a,
.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-wrapper:hover
  .elementor-icon-box-title span {
  color: #EA4100 !important;
}

.elementor-widget-n-menu .e-n-menu-content .elementor-icon-box-description {
  color: rgba(255, 255, 255, 0.4) !important;
  font-size: 12px !important;
  margin-top: 2px !important;
}

/* Linha divisória sutil entre itens */
.elementor-widget-n-menu .e-n-menu-content .elementor-widget-icon-box
  + .elementor-widget-icon-box {
  border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* ════════════════════════════════════════════════════════════
   Logo animado — quem-somos
   Pontilhados giram; P fica estático
   ════════════════════════════════════════════════════════════ */
.logo-spin-wrap {
  position: relative;
  display: inline-block;
  width: 447px;
  height: 456px;
  max-width: 100%;
}

.logo-spin-p,
.logo-spin-dots {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Entrada: 1 volta completa ao abrir a página, depois para */
@keyframes logo-dots-entry {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Hover: giro contínuo */
@keyframes logo-dots-hover {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.logo-spin-dots {
  transform-origin: 50% 50%;
  animation: logo-dots-entry 4s ease-out forwards;
}

.logo-spin-wrap:hover .logo-spin-dots {
  animation: logo-dots-hover 3s linear infinite;
}

/* ════════════════════════════════════════════════════════════
   CTA principal — título restrito à esquerda (não invade o "P")
   ════════════════════════════════════════════════════════════ */
.elementor-element-42d426b5 .elementor-heading-title,
.elementor-element-5b7eaac6 p {
  max-width: 55% !important;
}

.elementor-element-42d426b5 .elementor-heading-title {
  white-space: normal !important;
  word-break: break-word !important;
}



/* ╔══════════════════════════════════════════════════════════╗
   ║  v2026-05-v2 — FULL-SCREEN MOBILE NAV + RESPONSIVIDADE  ║
   ╚══════════════════════════════════════════════════════════╝ */

/* ─── 1. Global mobile resets ────────────────────────────── */
html, body { max-width: 100vw; overflow-x: hidden; }
html { -webkit-text-size-adjust: 100%; }
img, video, iframe { max-width: 100%; height: auto; }

body.e-off-canvas__no-scroll {
  overflow: hidden !important;
  touch-action: none;
  position: fixed;
  width: 100%;
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  FULL-SCREEN MOBILE SIDEBAR — imersivo, escuro, ousado  ║
   ╚══════════════════════════════════════════════════════════╝ */

/* ─── Overlay — escurece tudo ────────────────────────────── */
.e-off-canvas__overlay {
  background: rgba(0, 0, 0, 0.85) !important;
  backdrop-filter: blur(12px) saturate(0.8) !important;
  -webkit-backdrop-filter: blur(12px) saturate(0.8) !important;
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* ─── Painel: FULLSCREEN no mobile ───────────────────────── */
.e-off-canvas__main {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  background: #0b0c10 !important;
  box-shadow: none !important;
  border-right: none !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
  will-change: transform;
}

/* Conteúdo interno — layout flex vertical, centralizado */
.e-off-canvas__content,
.elementor-widget-off-canvas .e-off-canvas__content {
  background: #0b0c10 !important;
  box-shadow: none !important;
  padding: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch;
}
.e-off-canvas__content::-webkit-scrollbar { display: none !important; }

/* ─── Header do sidebar — barra superior com logo + close ── */
.sidebar-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 20px 28px 18px !important;
  padding-top: max(20px, calc(env(safe-area-inset-top, 0px) + 12px)) !important;
  background: transparent !important;
  border-bottom: none !important;
  flex-shrink: 0 !important;
  position: relative !important;
  z-index: 10 !important;
}

.sidebar-logo {
  height: 22px !important;
  width: auto !important;
  max-width: 120px !important;
  object-fit: contain !important;
  opacity: 0.5 !important;
  filter: brightness(1.2) !important;
  transition: opacity 0.2s !important;
}

.sidebar-close {
  width: 48px !important;
  height: 48px !important;
  border: none !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.7) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}

.sidebar-close:hover,
.sidebar-close:active {
  background: rgba(234, 65, 0, 0.15) !important;
  color: #EA4100 !important;
  transform: scale(0.92) !important;
}

.sidebar-close svg {
  width: 20px !important;
  height: 20px !important;
  pointer-events: none !important;
}

/* ─── Container da nav — centralizado verticalmente ──────── */
.e-off-canvas .elementor-element-a634bb4 {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: 0 !important;
  padding: 0 8px !important;
}

/* Esconde nav principal, mostra dropdown */
.e-off-canvas .elementor-nav-menu--main { display: none !important; }

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  display: flex !important;
  flex-direction: column !important;
  flex: 0 1 auto !important;
  padding: 0 !important;
  background: transparent !important;
  margin-top: 0 !important;
  overflow: visible !important;
  max-height: none !important;
  transform: none !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  width: 100% !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li {
  display: block !important;
  width: 100% !important;
}

/* ─── Links nível 1 — GRANDES, ousados, imersivos ────────── */
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item:not(.menu-item-has-children) > a,
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item-has-children > a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 18px 28px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  color: rgba(255, 255, 255, 0.88) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  border: none !important;
  background: transparent !important;
  transition: color 0.2s, background 0.2s, transform 0.2s !important;
  line-height: 1.2 !important;
  text-shadow: none !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
  border-radius: 16px !important;
  position: relative !important;
}

/* Indicador lateral laranja para item ativo */
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item.current-menu-item > a::before,
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item > a.elementor-item-active::before {
  content: '' !important;
  position: absolute !important;
  left: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 3px !important;
  height: 20px !important;
  background: #EA4100 !important;
  border-radius: 3px !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item > a:hover,
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item > a:active {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.04) !important;
}

.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item.current-menu-item > a,
.e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
  .menu-item > a.elementor-item-active {
  color: #EA4100 !important;
  font-weight: 700 !important;
}

/* ─── Chevron para "Serviços" — botão circular ───────────── */
.e-off-canvas .menu-item-has-children > a .sidebar-chevron {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.06) !important;
  flex-shrink: 0 !important;
  transition: background 0.2s, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.e-off-canvas .menu-item-has-children > a .sidebar-chevron svg {
  width: 14px !important;
  height: 14px !important;
  fill: none !important;
  stroke: rgba(255, 255, 255, 0.5) !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  transition: stroke 0.2s !important;
  pointer-events: none !important;
}

.e-off-canvas .menu-item-has-children.sidebar-open > a .sidebar-chevron {
  background: rgba(234, 65, 0, 0.18) !important;
  transform: rotate(90deg) !important;
}

.e-off-canvas .menu-item-has-children.sidebar-open > a .sidebar-chevron svg {
  stroke: #EA4100 !important;
}

/* ─── Sub-menu acordeão — reset completo do Elementor base ── */

/*
 * O Elementor base define:
 *   .elementor-nav-menu ul { display: none }
 *   .elementor-nav-menu--dropdown { background-color: #fff; font-size: 13px }
 *   ul.elementor-nav-menu--dropdown a { border-inline-start: 8px solid transparent }
 * Precisamos sobrescrever TUDO dentro do off-canvas.
 */
.e-off-canvas .elementor-nav-menu ul,
.e-off-canvas .sub-menu,
.e-off-canvas ul.sub-menu,
.e-off-canvas .sub-menu.elementor-nav-menu--dropdown,
.e-off-canvas ul.elementor-nav-menu--dropdown {
  display: block !important;
  background: transparent !important;
  background-color: transparent !important;
  font-size: inherit !important;
  margin-top: 0 !important;
  margin-left: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  position: static !important;
  border: none !important;
}

/* Container do acordeão — controla abrir/fechar via max-height */
.e-off-canvas .menu-item-has-children > .sub-menu,
.e-off-canvas .menu-item-has-children > ul.sub-menu,
.e-off-canvas .menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown {
  list-style: none !important;
  margin: 0 20px 0 20px !important;
  padding: 0 !important;
  max-height: 0 !important;
  height: auto !important;
  overflow: hidden !important;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 0.3s ease !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  z-index: auto !important;
  width: auto !important;
  min-width: unset !important;
  max-width: none !important;
  transform: none !important;
  display: block !important;
  visibility: visible !important;
  opacity: 0 !important;
  pointer-events: auto !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}

/* Estado aberto */
.e-off-canvas .menu-item-has-children.sidebar-open > .sub-menu,
.e-off-canvas .menu-item-has-children.sidebar-open > ul.sub-menu,
.e-off-canvas .menu-item-has-children.sidebar-open > .sub-menu.elementor-nav-menu--dropdown {
  max-height: 800px !important;
  opacity: 1 !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* Itens do sub-menu — empilhados verticalmente */
.e-off-canvas .sub-menu .menu-item,
.e-off-canvas .sub-menu > li {
  border: none !important;
  background: transparent !important;
  display: block !important;
  width: 100% !important;
  float: none !important;
  position: static !important;
}

/* Links do sub-menu */
.e-off-canvas .sub-menu .menu-item > a,
.e-off-canvas .sub-menu .menu-item > a.elementor-sub-item,
.e-off-canvas .sub-menu li > a {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 18px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border: none !important;
  border-left: none !important;
  border-right: none !important;
  border-inline-start: none !important;
  background: rgba(255, 255, 255, 0.04) !important;
  background-color: rgba(255, 255, 255, 0.04) !important;
  border-radius: 12px !important;
  transition: color 0.2s, background 0.2s, transform 0.15s !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  text-shadow: none !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
  margin-bottom: 6px !important;
  float: none !important;
  position: static !important;
}

.e-off-canvas .sub-menu .menu-item > a::before {
  content: '' !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #EA4100 !important;
  flex-shrink: 0 !important;
  transition: background 0.2s, transform 0.2s !important;
}

.e-off-canvas .sub-menu .menu-item > a:hover,
.e-off-canvas .sub-menu .menu-item > a:active {
  color: #ffffff !important;
  background: rgba(234, 65, 0, 0.12) !important;
  background-color: rgba(234, 65, 0, 0.12) !important;
}

.e-off-canvas .sub-menu .menu-item > a:hover::before {
  background: #EA4100 !important;
  transform: scale(1.4) !important;
}

/* ─── Separador e CTA ────────────────────────────────────── */
.sidebar-divider {
  margin: 0 28px !important;
  border: none !important;
  border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
  flex-shrink: 0 !important;
}

.sidebar-cta {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 16px 28px !important;
  margin-bottom: max(28px, calc(env(safe-area-inset-bottom, 0px) + 16px)) !important;
  padding: 18px 24px !important;
  background: #EA4100 !important;
  color: #ffffff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-align: center !important;
  border-radius: 14px !important;
  text-decoration: none !important;
  letter-spacing: -0.01em !important;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s !important;
  box-shadow: 0 8px 32px rgba(234, 65, 0, 0.35) !important;
  flex-shrink: 0 !important;
  border: none !important;
  position: relative !important;
  overflow: hidden !important;
}

/* Brilho animado no CTA */
.sidebar-cta::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.15) 50%, transparent 60%) !important;
  transform: translateX(-100%) !important;
  animation: sidebar-cta-shine 3s ease-in-out infinite !important;
}

@keyframes sidebar-cta-shine {
  0%, 70%, 100% { transform: translateX(-100%); }
  50% { transform: translateX(100%); }
}

.sidebar-cta:hover,
.sidebar-cta:active {
  background: #d63a00 !important;
  transform: scale(0.98) !important;
  box-shadow: 0 4px 20px rgba(234, 65, 0, 0.5) !important;
  color: #fff !important;
}

/* ─── Footer decorativo no sidebar ───────────────────────── */
.sidebar-footer-info {
  padding: 0 28px 20px !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}

.sidebar-footer-info p {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.2) !important;
  margin: 0 !important;
  letter-spacing: 0.04em !important;
}

/* ─── Animação de entrada dos itens (stagger) ────────────── */
.e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li {
  animation: sidebar-item-in 0.4s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}
.e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li:nth-child(1) { animation-delay: 0.05s !important; }
.e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li:nth-child(2) { animation-delay: 0.1s !important; }
.e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li:nth-child(3) { animation-delay: 0.15s !important; }
.e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li:nth-child(4) { animation-delay: 0.2s !important; }
.e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li:nth-child(5) { animation-delay: 0.25s !important; }
.e-off-canvas[aria-hidden="false"] .sidebar-cta { animation: sidebar-item-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both !important; }

@keyframes sidebar-item-in {
  from {
    opacity: 0;
    transform: translateX(-24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  RESPONSIVIDADE MOBILE — geral                           ║
   ╚══════════════════════════════════════════════════════════╝ */

/* Nav pill: ajustes tablet */
@media (max-width: 1024px) {
  .elementor-element-d044bb4,
  .elementor-element-d044bb4.elementor-sticky,
  .elementor-element-d044bb4.elementor-sticky--active {
    width: calc(100% - 24px) !important;
    top: 12px !important;
    padding: 0 10px !important;
    min-height: 54px !important;
  }
}

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

  /* -- Mobile header bar: fix inline width:100px do WordPress -- */
  .elementor-element-01d2c94,
  .elementor-element-01d2c94.elementor-sticky,
  .elementor-element-01d2c94.elementor-sticky--active {
    width: 100% !important;
    max-width: 100% !important;
    padding-top: max(8px, env(safe-area-inset-top, 0)) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    min-height: 56px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
  }

  /* Logo no header mobile */
  .elementor-element-01d2c94 .elementor-widget-theme-site-logo img,
  .elementor-element-01d2c94 .elementor-widget-image img {
    height: 24px !important;
    width: auto !important;
    max-width: 140px !important;
    object-fit: contain !important;
  }

  /* Hamburger icon: cor branca, sem background colorido */
  .elementor-element-01d2c94 .elementor-icon,
  .elementor-element-01d2c94 a[href*="off_canvas"] {
    padding: 10px !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px !important;
    min-height: 44px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: none !important;
    color: #ffffff !important;
  }
  .elementor-element-01d2c94 .elementor-icon svg,
  .elementor-element-01d2c94 a[href*="off_canvas"] svg {
    fill: #ffffff !important;
    width: 20px !important;
    height: 20px !important;
  }

  /* -- Seções: padding consistente -- */
  .elementor-section,
  .elementor-container,
  .e-con,
  .e-con-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .elementor-section.elementor-section-stretched > .elementor-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Containers aninhados: não empilha padding */
  .e-con .e-con,
  .e-con-inner .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* -- Hero/CTA vertical: reduz paddings gigantes -- */
  .elementor-element-0923e41 {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }

  /* -- Flex wrap para colunas -- */
  .elementor-row,
  .elementor-container.elementor-column-gap-default {
    flex-wrap: wrap !important;
  }

  /* -- Colunas Elementor: full-width no mobile -- */
  .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* -- Tipografia responsiva -- */
  h1, .elementor-heading-title[class*="size-xxl"],
  .elementor-heading-title[class*="size-xl"] {
    font-size: clamp(26px, 7vw, 42px) !important;
    line-height: 1.12 !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }
  h2 { font-size: clamp(22px, 5.5vw, 32px) !important; line-height: 1.2 !important; }
  h3 { font-size: clamp(18px, 4.8vw, 24px) !important; line-height: 1.25 !important; }
  p, .elementor-widget-text-editor { font-size: 15px !important; line-height: 1.65 !important; }

  /* -- CTA principal — remove restrição de 55% -- */
  .elementor-element-42d426b5 .elementor-heading-title,
  .elementor-element-5b7eaac6 p {
    max-width: 100% !important;
  }

  /* -- Botões: full-width, toque amigável -- */
  .elementor-widget-button .elementor-button {
    width: 100% !important;
    justify-content: center !important;
    min-height: 52px !important;
    font-size: 15px !important;
    border-radius: 12px !important;
  }

  /* -- Service cards: empilha verticalmente -- */
  .elementor-element-dcbac85,
  .elementor-element-548ea01,
  .elementor-element-976e097 {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 20px !important;
  }

  /* -- Marquees: performance + tamanho -- */
  .partners-marquee-track { animation-duration: 28s !important; }
  .logo-marquee-track { animation-duration: 38s !important; gap: 40px !important; }
  .partner-card { width: 200px !important; padding: 20px !important; }
  .partner-logo--wide { width: 150px !important; height: 44px !important; }
  .partner-logo--sq { width: 90px !important; height: 44px !important; }

  /* -- Modal de contato: quase full-screen -- */
  .cm-overlay { padding: 12px !important; }
  .cm-modal {
    max-width: 100% !important;
    border-radius: 16px !important;
    padding: 28px 20px 24px !important;
  }

  /* -- MVV bolinhas (quem-somos) -- */
  .mvv-bloco { padding: 48px 16px !important; }
  .mvv-bolinhas { gap: 20px !important; }
  .mvv-bolinha { max-width: 140px !important; }
  .mvv-bolinha-circulo {
    width: 100px !important;
    height: 100px !important;
    font-size: 9.5px !important;
    box-shadow: 0 6px 24px rgba(234,65,0,0.3) !important;
  }

  /* -- Mandamentos grid (quem-somos) -- */
  .mandamentos-section { padding: 56px 16px !important; }
  .mandamentos-grid { gap: 12px !important; }
  .mandamento-card { padding: 20px 16px !important; border-radius: 12px !important; }
  .mandamento-num { font-size: 22px !important; }
  .mandamento-card p { font-size: 13px !important; }

  /* -- Vídeo (quem-somos) -- */
  .qs-video-section { padding: 48px 16px !important; }
  .qs-video-wrapper { border-radius: 12px !important; }

  /* -- Parceiros section -- */
  .partners-section-wrap { padding: 48px 0 !important; }

  /* -- Footer: empilha colunas -- */
  footer .e-con,
  footer .elementor-container {
    flex-direction: column !important;
    gap: 24px !important;
  }

  /* -- Logo spin (quem-somos hero) -- */
  .logo-spin-wrap {
    width: 220px !important;
    height: 224px !important;
    margin: 0 auto !important;
  }

  /* -- WhatsApp float: menor em mobile -- */
  .whatsapp-float {
    width: 52px !important;
    height: 52px !important;
    bottom: 20px !important;
    right: 20px !important;
  }
  .whatsapp-float svg { width: 28px !important; height: 28px !important; }
  .wpp-balloon { display: none !important; }

  /* -- Imagens que estouram a tela -- */
  .elementor-widget-image img,
  .elementor-widget-theme-site-logo img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* -- Espaçamento entre seções -- */
  .elementor-top-section,
  body .e-con.e-parent {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* -- Elementos com width fixo que vazam -- */
  .elementor-widget-container {
    max-width: 100% !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
  }
}

/* ═══ TELAS MUITO PEQUENAS ≤380px ═══ */
@media (max-width: 380px) {
  .e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
    .menu-item:not(.menu-item-has-children) > a,
  .e-off-canvas .elementor-nav-menu--dropdown.elementor-nav-menu__container
    .menu-item-has-children > a {
    font-size: 16px !important;
    padding: 14px 20px !important;
  }
  .sidebar-header { padding-left: 20px !important; padding-right: 20px !important; }
  .sidebar-cta { margin-left: 20px !important; margin-right: 20px !important; }
  .sidebar-divider { margin-left: 20px !important; margin-right: 20px !important; }
  .e-off-canvas .menu-item-has-children > .sub-menu,
  .e-off-canvas .menu-item-has-children > ul.sub-menu { margin-left: 16px !important; margin-right: 16px !important; }

  .mvv-bolinha-circulo { width: 88px !important; height: 88px !important; font-size: 8.5px !important; }
  .mandamentos-grid { grid-template-columns: 1fr !important; }
}

/* ═══ TABLET ═══ */
@media (min-width: 768px) and (max-width: 1024px) {
  .mandamentos-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .mvv-valores-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Service cards: 2 colunas no tablet */
  .elementor-element-dcbac85,
  .elementor-element-548ea01,
  .elementor-element-976e097 {
    max-width: 48% !important;
  }
}

/* Mega menu desktop "Serviços" — encolhe quando viewport apertado */
@media (max-width: 1100px) and (min-width: 1025px) {
  .elementor-widget-n-menu .e-n-menu:not([data-layout=dropdown]) .e-n-menu-content {
    width: 300px !important;
  }
}

/* Mega menu — mobile dropdown empilhado */
@media (max-width: 1024px) {
  .elementor-widget-n-menu .e-n-menu-content > .e-con {
    min-width: unset !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ═══ Reduced motion ═══ */
@media (prefers-reduced-motion: reduce) {
  .e-off-canvas__main,
  .e-off-canvas__overlay,
  .sidebar-close,
  .sidebar-chevron,
  .sidebar-cta::after,
  .partners-marquee-track,
  .logo-marquee-track {
    transition: none !important;
    animation: none !important;
  }
  .e-off-canvas[aria-hidden="false"] .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li,
  .e-off-canvas[aria-hidden="false"] .sidebar-cta {
    animation: none !important;
  }
}


/* ╔══════════════════════════════════════════════════════════╗
   ║  HERO HOME — tipografia/espaçamento mobile (v2026-05b)   ║
   ╚══════════════════════════════════════════════════════════╝ */

/* ─── Kicker do hero: "Soluções personalizadas..." ───────── */
.elementor-element-795fe1a8.glass-widget p {
  text-align: center;
  letter-spacing: 0.02em;
}

/* Subtítulo: "Tecnologia e inteligência sob medida..." */
.elementor-element-0dc0604.glass-text2 p {
  text-align: center;
}

@media (max-width: 767px) {
  /* Kicker (acima do PERSONALIZE IT) */
  .elementor-element-795fe1a8.glass-widget {
    width: 100% !important;
    max-width: 100% !important;
  }
  .elementor-element-795fe1a8.glass-widget p {
    font-size: clamp(15px, 4vw, 18px) !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    margin: 0 auto !important;
    max-width: 22ch;            /* quebra natural em 2 linhas */
    color: rgba(255, 255, 255, 0.92);
    text-wrap: balance;
  }

  /* "PERSONALIZE IT" — título principal */
  .elementor-element-2a4f92fe.glass-text .elementor-heading-title {
    font-size: clamp(38px, 11vw, 56px) !important;
    line-height: 1 !important;
    letter-spacing: 0.02em !important;
    margin-top: 6px !important;
    margin-bottom: 10px !important;
    text-wrap: balance;
  }

  /* Subtítulo: "Tecnologia e inteligência sob medida..." */
  .elementor-element-0dc0604.glass-text2 p {
    font-size: clamp(14px, 3.6vw, 16px) !important;
    line-height: 1.55 !important;
    max-width: 32ch;
    margin: 8px auto 22px !important;
    color: rgba(255, 255, 255, 0.75);
    text-wrap: balance;
  }

  /* CTA "Dê o próximo passo" — não esticar demais no mobile */
  .elementor-element-725e1fd4.cta-single-centered .elementor-widget-button .elementor-button {
    padding: 14px 28px !important;
    font-size: 15px !important;
    width: auto !important;
    min-width: 220px;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .elementor-element-795fe1a8.glass-widget p { max-width: 18ch; font-size: 14px !important; }
  .elementor-element-2a4f92fe.glass-text .elementor-heading-title { font-size: 36px !important; }
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  SIDEBAR — Sub-menu Serviços: cabe todos os itens        ║
   ╚══════════════════════════════════════════════════════════╝ */

/* Acordeão: aumenta o teto e usa transição em altura proporcional */
.e-off-canvas .menu-item-has-children.sidebar-open > .sub-menu {
  max-height: 1200px !important;
}

/* Quebra de texto longa em itens (ex.: "Infraestrutura e Gerenciamento de TI") */
.e-off-canvas .sub-menu .menu-item > a,
.e-off-canvas .sub-menu .menu-item > a.elementor-sub-item {
  white-space: normal !important;
  word-break: break-word;
  hyphens: auto;
  align-items: flex-start !important;
}
.e-off-canvas .sub-menu .menu-item > a::before {
  margin-top: 7px !important;   /* alinha o bullet com a primeira linha */
}

/* Garante que o container do sidebar role internamente se necessário */
.e-off-canvas__content {
  max-height: 100vh;
  max-height: 100dvh;
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  MOBILE — offset abaixo do nav sticky em páginas internas║
   ║  (home já tem hero alto; só afeta páginas que NÃO são    ║
   ║  a home, em viewport mobile/tablet onde o nav fica fixo) ║
   ╚══════════════════════════════════════════════════════════╝ */

@media (max-width: 1024px) {
  /* Empurra o primeiro container de conteúdo logo após o header */
  body:not(.home) header.elementor-location-header + .elementor,
  body:not(.home) header.elementor-location-header + main,
  body:not(.home) header.elementor-location-header + div {
    padding-top: 84px !important;
  }

  /* Casos onde o conteúdo vem dentro de <main> com header como filho */
  body:not(.home) main > .elementor:first-of-type {
    padding-top: 84px;
  }

  /* Skip link não conta como conteúdo — pula ele */
  body:not(.home) .skip-link + header.elementor-location-header + .elementor {
    padding-top: 84px !important;
  }
}

@media (max-width: 480px) {
  body:not(.home) header.elementor-location-header + .elementor,
  body:not(.home) header.elementor-location-header + main,
  body:not(.home) header.elementor-location-header + div {
    padding-top: 74px !important;
  }
}

/* Sub-menu Serviços: alinhamento à esquerda uniforme */
.e-off-canvas .sub-menu .menu-item,
.e-off-canvas .sub-menu .menu-item > a,
.e-off-canvas .sub-menu .menu-item > a.elementor-sub-item {
  text-align: left !important;
  justify-content: flex-start !important;
}

/* Override forte para alinhamento dos sub-itens (especificidade alta) */
.e-off-canvas .e-off-canvas__content ul.elementor-nav-menu .sub-menu li.menu-item,
.e-off-canvas .e-off-canvas__content ul.elementor-nav-menu .sub-menu li.menu-item > a,
.e-off-canvas .e-off-canvas__content ul.elementor-nav-menu .sub-menu li.menu-item > a.elementor-sub-item {
  text-align: left !important;
  justify-content: flex-start !important;
  direction: ltr !important;
  margin-left: 0 !important;
  margin-inline-start: 0 !important;
  margin-right: 0 !important;
  margin-inline-end: 0 !important;
  flex-direction: row !important;
}

/* ------------------------------------------------------------
   FOOTER  fix de tipografia (2026-05-22d)
   Elementor exporta tudo como h2.elementor-heading-title com
   font-size default (32px). No footer fica gigantesco.
   Aqui normalizamos pra tamanhos razoveis em todas as pginas.
   ------------------------------------------------------------ */
footer.elementor-location-footer h2.elementor-heading-title,
footer.elementor-location-footer .elementor-heading-title {
  font-size: 14px !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
  margin: 0 !important;
  letter-spacing: 0 !important;
}

/* Ttulos de coluna (Servios / Nossa empresa / Entre em contato):
   so os nicos h2 do footer SEM <a> dentro e que NO contm
   "PersonalizeIT" (excluindo o copyright). */
footer.elementor-location-footer h2.elementor-heading-title:not(:has(a)) {
  font-size: 16px !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.4px !important;
}

/* Copyright volta a ser pequeno e regular */
footer.elementor-location-footer .elementor-element-2a546d72 h2.elementor-heading-title {
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  opacity: 0.7;
}

/* Links do footer herdam o tamanho do h2 ajustado */
footer.elementor-location-footer .elementor-heading-title a {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}