/* =============================================================
   TAEC Motion — camada visual e de animação
   Paleta: marinho #071f35 · laranja ação #bd4900 · laranja solda #ff6a13 · azul #46b6ff
   ============================================================= */
:root {
  --tm-navy: #071f35;
  --tm-navy-2: #0b2c4a;
  --tm-orange: #ff6a13;
  --tm-action: #bd4900;
  --tm-blue: #46b6ff;
  --tm-steel: #8fa3b5;
  --tm-ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- Correções visuais ---------- */
.taec-hero-temporary { display: none !important; }

/* ---------- Barra de progresso de leitura ---------- */
.tm-progress {
  position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 10000; pointer-events: none;
  background: linear-gradient(90deg, var(--tm-action), var(--tm-orange) 60%, #ffb27a);
  transform-origin: 0 50%; transform: scaleX(0);
  box-shadow: 0 0 12px #ff6a1366;
}

/* ---------- Estado inicial (só quando o JS de motion está ativo) ---------- */
html.tm-js .tm-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
html.tm-js .tm-word > span { display: inline-block; will-change: transform; }

/* Selos/rótulos: linha laranja que se desenha */
html.tm-js .taec-label .elementor-heading-title { position: relative; }
.tm-label-line {
  display: inline-block; width: 22px; height: 2px; margin-right: 10px; vertical-align: middle;
  background: var(--tm-orange); transform-origin: 0 50%; border-radius: 2px;
}

/* ---------- HERO ---------- */
.taec-hero--cinema { isolation: isolate; }
.taec-hero--cinema::after { /* grid técnico de planta de engenharia */
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image:
    linear-gradient(#ffffff0d 1px, transparent 1px),
    linear-gradient(90deg, #ffffff0d 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(100deg, transparent 35%, #000 75%);
  -webkit-mask-image: linear-gradient(100deg, transparent 35%, #000 75%);
}
.taec-hero--cinema .taec-hero-copy { position: relative; z-index: 3; }
.taec-hero--cinema .taec-hero-media { will-change: transform; }

/* Cena "Do projeto à instalação" */
.taec-assembly.tm-scene .tm-scene-svg { display: block; width: 100%; height: auto; }

.tm-scroll-cue {
  position: absolute; z-index: 3; left: 50%; bottom: 22px; translate: -50% 0;
  width: 26px; height: 42px; border: 1.5px solid #ffffff8c; border-radius: 14px; pointer-events: none;
}
.tm-scroll-cue::after {
  content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px;
  border-radius: 2px; background: var(--tm-orange); animation: tm-cue 1.8s var(--tm-ease) infinite;
}
@keyframes tm-cue { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(16px); opacity: 0; } }
@media (max-width: 1024px) { .tm-scroll-cue { display: none; } }

/* ---------- Faixa de números ---------- */
.taec-numbers {
  position: relative; overflow: hidden;
  background: radial-gradient(120% 140% at 0% 0%, var(--tm-navy-2) 0%, var(--tm-navy) 60%);
  color: #fff; padding: clamp(56px, 7vw, 96px) 24px;
}
.taec-numbers::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(#ffffff0a 1px, transparent 1px), linear-gradient(90deg, #ffffff0a 1px, transparent 1px);
  background-size: 48px 48px;
}
.taec-numbers__inner { position: relative; max-width: 1200px; margin: 0 auto; }
.taec-numbers__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0;
}
.taec-num { padding: 8px clamp(16px, 2.4vw, 36px); border-left: 1px solid #ffffff26; }
.taec-num:first-child { border-left: 0; padding-left: 0; }
.taec-num__value {
  margin: 0; font: 800 clamp(44px, 5.6vw, 84px)/1 Montserrat, Arial, sans-serif; letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
}
.taec-num__fix { color: var(--tm-orange); }
.taec-num__label { margin: 14px 0 0; color: #b9cad9; font: 500 14px/1.5 Inter, Arial, sans-serif; max-width: 22ch; }
@media (max-width: 900px) {
  .taec-numbers__list { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); row-gap: 36px; }
  .taec-num { border-left: 0; padding-left: 0; }
}

/* ---------- Cards (soluções e cases) ---------- */
.taec-content-card { transition: box-shadow .5s var(--tm-ease), transform .5s var(--tm-ease); }
.taec-content-card .taec-card-media { position: relative; overflow: hidden; display: block; }
.taec-content-card .taec-card-media img { transition: transform 1.1s var(--tm-ease), filter .6s; }
.taec-content-card .taec-card-media::after { /* overlay de planta técnica no hover */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background:
    linear-gradient(var(--tm-orange), var(--tm-orange)) 14px 14px / 22px 2px no-repeat,
    linear-gradient(var(--tm-orange), var(--tm-orange)) 14px 14px / 2px 22px no-repeat,
    linear-gradient(var(--tm-orange), var(--tm-orange)) calc(100% - 14px) calc(100% - 14px) / 22px 2px no-repeat,
    linear-gradient(var(--tm-orange), var(--tm-orange)) calc(100% - 14px) calc(100% - 14px) / 2px 22px no-repeat,
    linear-gradient(#ffffff1f 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(90deg, #ffffff1f 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(180deg, transparent 40%, #071f3599);
  transition: opacity .5s var(--tm-ease);
}
@media (hover: hover) {
  .taec-content-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px #071f351f; }
  .taec-content-card:hover .taec-card-media img { transform: scale(1.06); }
  .taec-content-card:hover .taec-card-media::after { opacity: 1; }
  .taec-content-card .taec-link span { display: inline-block; transition: transform .4s var(--tm-ease); }
  .taec-content-card:hover .taec-link span { transform: translateX(6px); }
}
.taec-card-placeholder { background: linear-gradient(135deg, var(--tm-navy) 0%, var(--tm-navy-2) 100%); }

/* ---------- Processo: linha de progresso ---------- */
.tm-process-track {
  position: absolute; left: 0; right: 0; height: 2px; pointer-events: none; z-index: 0;
  background: #ffffff1f; border-radius: 2px;
}
.tm-process-track > i {
  position: absolute; inset: 0; transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, var(--tm-blue), var(--tm-orange)); border-radius: 2px;
  box-shadow: 0 0 14px #ff6a1380;
}
.taec-process-step { position: relative; z-index: 1; }
.taec-process-step .taec-process-number .elementor-heading-title { transition: color .5s, text-shadow .5s; }
.taec-process-step.tm-on .taec-process-number .elementor-heading-title { color: var(--tm-orange); text-shadow: 0 0 22px #ff6a1366; }
@media (max-width: 1024px) { .tm-process-track { display: none; } }

/* ---------- Marcas: faixa infinita ---------- */
.taec-home-brand-list.tm-marquee {
  display: flex !important; flex-wrap: nowrap !important; gap: 18px; width: max-content; max-width: none !important;
  animation: tm-marquee var(--tm-marquee-time, 40s) linear infinite;
}
.tm-marquee-viewport { overflow: hidden; width: 100%;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.tm-marquee-viewport:hover .tm-marquee { animation-play-state: paused; }
.taec-home-brand-list.tm-marquee > * { flex: 0 0 180px !important; width: 180px !important; }
.taec-home-brand-list.tm-marquee img { filter: grayscale(1); opacity: .75; transition: filter .4s, opacity .4s; }
.taec-home-brand-list.tm-marquee > *:hover img { filter: none; opacity: 1; }
@keyframes tm-marquee { to { transform: translateX(-50%); } }

/* ---------- Painéis de chamada (CTA): brilho que segue o cursor ---------- */
.taec-cta-panel { position: relative; overflow: hidden; }
.taec-cta-panel::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background: radial-gradient(520px circle at var(--tm-x, 70%) var(--tm-y, 40%), #ff6a132e, transparent 60%);
  transition: background .2s;
}
.taec-cta-panel > .e-con-inner { position: relative; z-index: 1; }

/* ---------- Botões ---------- */
.elementor-button, .taec-cta { will-change: transform; }
@media (hover: hover) {
  body .elementor .elementor-widget-button:not(.taec-text-link):not(.taec-secondary) .elementor-button,
  .taec-header .taec-cta { position: relative; overflow: hidden; isolation: isolate; }
  body .elementor .elementor-widget-button:not(.taec-text-link):not(.taec-secondary) .elementor-button::before,
  .taec-header .taec-cta::before {
    content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tm-orange);
    transform: translateX(-101%); transition: transform .5s var(--tm-ease);
  }
  body .elementor .elementor-widget-button:not(.taec-text-link):not(.taec-secondary) .elementor-button:hover::before,
  .taec-header .taec-cta:hover::before { transform: translateX(0); }
}

/* ---------- Cursor personalizado (desktop) ---------- */
.tm-cursor {
  position: fixed; left: 0; top: 0; z-index: 9999; pointer-events: none;
  width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%;
  background: var(--tm-orange); mix-blend-mode: normal;
  display: grid; place-items: center; opacity: 0;
  transition: width .35s var(--tm-ease), height .35s var(--tm-ease), margin .35s var(--tm-ease), opacity .3s, background .3s;
}
.tm-cursor span { opacity: 0; color: #fff; font: 700 11px/1 Inter, Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; transition: opacity .2s; }
.tm-cursor.is-visible { opacity: 1; }
.tm-cursor.is-media { width: 88px; height: 88px; margin: -44px 0 0 -44px; background: #ff6a13e6; }
.tm-cursor.is-media span { opacity: 1; }
.tm-cursor.is-link { width: 40px; height: 40px; margin: -20px 0 0 -20px; background: #ff6a1340; }

/* ---------- Seção industrial: parallax ---------- */
.taec-home-industrial { overflow: hidden; }

/* ---------- Acessibilidade ---------- */
@media (prefers-reduced-motion: reduce) {
  .tm-progress, .tm-cursor, .tm-scroll-cue { display: none !important; }
  .taec-home-brand-list.tm-marquee { animation: none; }
}

/* Rótulos: a linha laranja substitui o quadradinho azul antigo */
html.tm-js .taec-label .elementor-heading-title:has(.tm-label-line)::before { display: none !important; }

/* capa: vídeo sempre em loop, sem botão de pausa */
.taec-hero-video-toggle{display:none!important}
