/* =============================================================
   TAEC — Home redesenhada
   Sistema: marinho profundo + laranja solda + azul ciano técnico
   ============================================================= */
:root {
  --th-navy: #061a2d; --th-navy2: #0a2a47; --th-navy3: #0f3a5f;
  --th-ink: #0c2236; --th-muted: #5b6f80; --th-line: #dfe7ec; --th-bg: #f3f6f8;
  --th-orange: #ff6a13; --th-action: #c24d00; --th-cyan: #52dcff;
  --th-r: 22px; --th-ease: cubic-bezier(.22, 1, .36, 1);
  --th-head: Montserrat, Arial, sans-serif; --th-body: Inter, Arial, sans-serif;
}

/* ---------- base ---------- */
.th { position: relative; font-family: var(--th-body); color: var(--th-ink); padding: clamp(80px, 10vw, 150px) 0; overflow: hidden; }
.th *, .th *::before, .th *::after { box-sizing: border-box; }
.th-wrap { width: min(1240px, calc(100% - 48px)); margin: 0 auto; position: relative; z-index: 2; }
.th h2, .th h3 { font-family: var(--th-head); margin: 0; letter-spacing: -.035em; text-wrap: balance; }
.th p { margin: 0; }
.th-dark { background: var(--th-navy); color: #fff; }
.th-eyebrow { display: inline-flex; align-items: center; gap: 12px; font: 700 12px/1 var(--th-body); letter-spacing: .2em; text-transform: uppercase; color: var(--th-action); margin-bottom: 22px !important; }
.th-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; border-radius: 2px; }
.th-eyebrow--light { color: var(--th-orange); }
.th-display { font-weight: 800; font-size: clamp(42px, 6.2vw, 92px); line-height: .98; text-transform: uppercase; color: var(--th-ink); }
.th-display span { color: var(--th-action); }
.th-display--light { color: #fff; }
.th-title { font-weight: 750; font-size: clamp(34px, 4.2vw, 60px); line-height: 1.04; color: var(--th-ink); }
.th-title span { color: var(--th-muted); }
.th-grad { background: linear-gradient(92deg, #ff8a3d 0%, #ff6a13 35%, #52dcff 100%); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
.th-lead { font-size: clamp(17px, 1.35vw, 20px); line-height: 1.6; color: var(--th-muted); max-width: 52ch; margin-top: 26px !important; }
.th-lead--light { color: #b9c9d6; }

/* botões e links */
.th-btn { --b: var(--th-action); position: relative; display: inline-flex; align-items: center; gap: 12px; padding: 18px 28px; border-radius: 999px; background: var(--b); color: #fff !important; font: 700 15px/1 var(--th-body); text-decoration: none !important; overflow: hidden; isolation: isolate; transition: transform .5s var(--th-ease), box-shadow .5s var(--th-ease); margin-top: 34px; }
.th-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #ff6a13, #ff8a3d); transform: translateX(-101%); transition: transform .6s var(--th-ease); }
.th-btn:hover::before { transform: translateX(0); }
.th-btn:hover { box-shadow: 0 18px 40px -12px #ff6a1399; }
.th-btn .th-ic { width: 22px; height: 22px; transition: transform .5s var(--th-ease); }
.th-btn:hover .th-ic { transform: translateX(5px); }
.th-btn--glow { box-shadow: 0 0 0 0 #ff6a1366; animation: th-pulse 2.6s infinite; }
@keyframes th-pulse { 70% { box-shadow: 0 0 0 18px #ff6a1300; } 100% { box-shadow: 0 0 0 0 #ff6a1300; } }
.th-btn--ghost { background: transparent; border: 1.5px solid #ffffff4d; }
.th-btn--ghost::before { background: #25d366; }
.th-link { display: inline-flex; align-items: center; gap: 10px; font: 700 15px/1 var(--th-body); color: var(--th-ink) !important; text-decoration: none !important; padding: 8px 0; border-bottom: 1.5px solid currentColor; }
.th-link .th-ic { width: 20px; height: 20px; transition: transform .45s var(--th-ease); }
.th-link:hover .th-ic { transform: translateX(6px); }
.th-link--light { color: #fff !important; }

/* ícones */
.th-ic { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.th-ic .th-acc { stroke: var(--th-orange); }
.th-iconbox { position: relative; display: grid; place-items: center; width: 76px; height: 76px; padding: 18px; border-radius: 20px; background: #fff; color: var(--th-ink); box-shadow: inset 0 0 0 1.5px var(--th-line); transition: background .5s var(--th-ease), color .5s, transform .6s var(--th-ease), box-shadow .5s; }
.th-iconbox--sm { width: 64px; height: 64px; padding: 15px; border-radius: 18px; }
.th-iconbox--dark { background: #ffffff0d; color: #e6f1f8; box-shadow: inset 0 0 0 1.5px #ffffff1f; }
.th-iconbox--glass { background: #ffffff14; color: #fff; box-shadow: inset 0 0 0 1.5px #ffffff2e; backdrop-filter: blur(6px); }
/* desenho do ícone no hover */
.th-spot:hover .th-ic path, .th-spot:hover .th-ic rect, .th-spot:hover .th-ic circle { stroke-dasharray: 160; animation: th-draw 1s var(--th-ease) both; }
.th-spot:hover .th-ic .th-acc { animation-delay: .25s; }
@keyframes th-draw { from { stroke-dashoffset: 160; } to { stroke-dashoffset: 0; } }
.th-spot:hover .th-ic .th-spin { transform-box: fill-box; transform-origin: center; animation: th-spin 1s linear infinite; stroke-dasharray: 3 3; }
@keyframes th-spin { to { transform: rotate(360deg); } }
.th-spot:hover .th-ic--fabricacao { animation: th-spin 6s linear infinite; }

/* spotlight que segue o mouse */
.th-spot { position: relative; isolation: isolate; }
.th-spot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: -1; opacity: 0; transition: opacity .4s; background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), #ff6a1322, transparent 60%); pointer-events: none; }
.th-spot:hover::after { opacity: 1; }

/* cantoneiras (planta técnica) */
.th-corners { position: absolute; inset: 14px; pointer-events: none; opacity: 0; transition: opacity .5s, inset .6s var(--th-ease);
  background: linear-gradient(var(--th-orange), var(--th-orange)) 0 0 / 22px 2px no-repeat, linear-gradient(var(--th-orange), var(--th-orange)) 0 0 / 2px 22px no-repeat,
    linear-gradient(var(--th-orange), var(--th-orange)) 100% 0 / 22px 2px no-repeat, linear-gradient(var(--th-orange), var(--th-orange)) 100% 0 / 2px 22px no-repeat,
    linear-gradient(var(--th-orange), var(--th-orange)) 0 100% / 22px 2px no-repeat, linear-gradient(var(--th-orange), var(--th-orange)) 0 100% / 2px 22px no-repeat,
    linear-gradient(var(--th-orange), var(--th-orange)) 100% 100% / 22px 2px no-repeat, linear-gradient(var(--th-orange), var(--th-orange)) 100% 100% / 2px 22px no-repeat; }
:hover > .th-corners { opacity: 1; inset: 22px; }

/* cabeçalho de seção */
.th-head { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px 80px; align-items: end; margin-bottom: clamp(48px, 6vw, 80px); }
.th-head__side p { color: var(--th-muted); font-size: 17px; line-height: 1.7; margin-bottom: 22px !important; max-width: 46ch; }

/* revelação */
html.th-js [data-th-reveal] { opacity: 0; transform: translateY(40px); }

/* =============================================================
   1. PILARES
   ============================================================= */
.th-pillars { background: var(--th-bg); }
.th-pillars::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#0c22360a 1px, transparent 1px), linear-gradient(90deg, #0c22360a 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at 70% 50%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 70% 50%, #000 30%, transparent 75%); }
.th-pillars__grid { display: grid; grid-template-columns: .9fr 1.4fr; gap: 64px; align-items: center; }
.th-pillars__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.th-pillar { padding: 34px 28px 36px; min-height: 330px; border-radius: var(--th-r); background: #fff; box-shadow: 0 1px 0 var(--th-line), 0 24px 60px -30px #0c223640; display: flex; flex-direction: column; overflow: hidden; transition: transform .6s var(--th-ease), background .6s var(--th-ease), color .6s; }
.th-pillar:nth-child(2) { transform: translateY(36px); }
.th-pillar__n { font: 800 13px/1 var(--th-head); letter-spacing: .14em; color: #9cb0be; margin-bottom: 40px; }
.th-pillar h3 { font-size: 23px; line-height: 1.15; margin-top: auto !important; padding-top: 28px; }
.th-pillar p { color: var(--th-muted); font-size: 15px; line-height: 1.6; margin-top: 10px; transition: color .6s; }
.th-pillar__bar { position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; background: linear-gradient(90deg, var(--th-orange), var(--th-cyan)); transform: scaleX(0); transform-origin: 0 50%; transition: transform .8s var(--th-ease); }
.th-pillar:hover { background: var(--th-navy); color: #fff; transform: translateY(-10px); }
.th-pillar:nth-child(2):hover { transform: translateY(26px); }
.th-pillar:hover p { color: #b9c9d6; }
.th-pillar:hover .th-pillar__bar { transform: scaleX(1); }
.th-pillar:hover .th-iconbox { background: var(--th-orange); color: #fff; box-shadow: 0 16px 34px -10px #ff6a13aa; transform: rotate(-6deg) scale(1.06); }
.th-pillar:hover .th-ic .th-acc { stroke: #fff; }

/* números (faixa existente) dentro do novo visual */
.th + .taec-numbers, .taec-numbers { background: radial-gradient(120% 160% at 0% 0%, var(--th-navy3), var(--th-navy) 60%); }

/* =============================================================
   3D
   ============================================================= */
.th-3d { padding: 0; background: radial-gradient(120% 90% at 70% 40%, #0f3a5f 0%, var(--th-navy) 55%, #030f1b 100%); }
.th-3d__pin { position: relative; height: 100vh; min-height: 640px; }
.th-3d__canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; display: block; cursor: grab; }
.th-3d__canvas:active { cursor: grabbing; }
.th-3d__fallback { position: absolute; inset: 0; display: none; background: center/cover no-repeat; opacity: .25; }
.th-3d__ui { height: 100%; display: flex; flex-direction: column; justify-content: center; pointer-events: none; }
.th-3d__copy { max-width: 520px; pointer-events: auto; }
.th-3d .th-display { font-size: clamp(38px, 4.6vw, 72px); }
.th-3d__steps { list-style: none; padding: 0; margin: 40px 0 0; display: grid; gap: 6px; }
.th-3d__steps li { display: flex; gap: 18px; align-items: flex-start; padding: 16px 18px; border-radius: 16px; color: #7f97aa; transition: background .5s, color .5s; }
.th-3d__steps b { font: 800 13px/1.6 var(--th-head); letter-spacing: .1em; color: #4f6b80; transition: color .5s; }
.th-3d__steps strong { display: block; font: 700 17px/1.3 var(--th-head); color: inherit; }
.th-3d__steps span { display: block; font-size: 14px; line-height: 1.5; max-height: 0; overflow: hidden; opacity: 0; transition: max-height .6s var(--th-ease), opacity .5s; }
.th-3d__steps li.is-active { background: #ffffff0d; color: #fff; box-shadow: inset 3px 0 0 var(--th-orange); }
.th-3d__steps li.is-active b { color: var(--th-orange); }
.th-3d__steps li.is-active span { max-height: 90px; opacity: 1; color: #b9c9d6; margin-top: 4px; }
.th-3d__hint { position: absolute; right: 0; bottom: 40px; display: flex; align-items: center; gap: 12px; color: #8fa8bb; font: 600 12px/1 var(--th-body); letter-spacing: .14em; text-transform: uppercase; }
.th-3d__hint span { width: 36px; height: 22px; border: 1.5px solid #8fa8bb; border-radius: 12px; position: relative; }
.th-3d__hint span::after { content: ""; position: absolute; top: 50%; left: 6px; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: var(--th-orange); animation: th-drag 2s var(--th-ease) infinite; }
@keyframes th-drag { 50% { transform: translateX(14px); } }

/* =============================================================
   2. SOBRE
   ============================================================= */
.th-about { background: #fff; }
.th-about__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: center; }
.th-about__copy > p:not(.th-eyebrow):not(.th-lead) { color: var(--th-muted); line-height: 1.75; margin-top: 16px; max-width: 52ch; }
.th-about__visual .taec-assembly { border-radius: 28px; box-shadow: 0 40px 90px -40px #0c223666; }
.th-diffs { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(64px, 7vw, 110px); border-radius: 28px; background: var(--th-navy); color: #fff; overflow: hidden; }
.th-diff { display: flex; gap: 22px; padding: 44px 36px; border-right: 1px solid #ffffff14; transition: background .5s; }
.th-diff:last-child { border-right: 0; }
.th-diff .th-iconbox { flex: 0 0 auto; background: #ffffff0d; color: #e6f1f8; box-shadow: inset 0 0 0 1.5px #ffffff1f; }
.th-diff h3 { font-size: 22px; margin-bottom: 10px !important; }
.th-diff p { color: #a9bccb; font-size: 15px; line-height: 1.65; }
.th-diff:hover { background: #ffffff08; }
.th-diff:hover .th-iconbox { background: var(--th-orange); color: #fff; transform: translateY(-4px) rotate(-6deg); box-shadow: 0 16px 34px -10px #ff6a13aa; }
.th-diff:hover .th-ic .th-acc { stroke: #fff; }

/* =============================================================
   3. MAPA
   ============================================================= */
.th-map-sec { background: var(--th-navy); }
.th-map-sec__bg { position: absolute; inset: 0; background: radial-gradient(60% 70% at 72% 50%, #0f3a5f 0%, transparent 70%), radial-gradient(40% 40% at 10% 90%, #ff6a1314, transparent 70%); }
.th-map-sec__bg::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#ffffff08 1px, transparent 1px), linear-gradient(90deg, #ffffff08 1px, transparent 1px); background-size: 64px 64px; }
.th-map-sec__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.th-map-sec .th-display { font-size: clamp(38px, 4.6vw, 70px); }
.th-regions { list-style: none; padding: 0; margin: 30px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.th-regions li { padding: 9px 16px; border-radius: 999px; font: 600 13px/1 var(--th-body); color: #8fa8bb; box-shadow: inset 0 0 0 1.5px #ffffff22; transition: all .5s var(--th-ease); }
.th-regions li.is-on { color: #fff; background: #ff6a1326; box-shadow: inset 0 0 0 1.5px var(--th-orange); }
.th-feats { list-style: none; padding: 0; margin: 34px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; }
.th-feat { display: flex; gap: 14px; align-items: center; }
.th-feat .th-iconbox { width: 52px; height: 52px; padding: 12px; border-radius: 14px; flex: 0 0 auto; }
.th-feat strong { display: block; font: 700 15px/1.3 var(--th-head); color: #fff; }
.th-feat span { display: block; font-size: 13px; line-height: 1.45; color: #8fa8bb; }
.th-feat:hover .th-iconbox { background: var(--th-orange); color: #fff; }
.th-feat:hover .th-ic .th-acc { stroke: #fff; }
.th-map-sec__map { position: relative; }
.th-map { width: 100%; height: auto; overflow: visible; filter: drop-shadow(0 30px 60px #00000066); }
.th-br-line { fill: none; stroke: #52dcff; stroke-width: 1.4; stroke-opacity: .7; }
.th-route { fill: none; stroke: url(#th-routeg); stroke-width: 1.3; stroke-linecap: round; opacity: .85; }
.th-city-dot { fill: #9eefff; }
.th-city-ring { fill: none; stroke: #52dcff; stroke-width: 1.2; opacity: 0; }
.th-city.is-on .th-city-ring { animation: th-ring 2.6s ease-out infinite; animation-delay: var(--d, 0s); }
@keyframes th-ring { 0% { opacity: .9; transform: scale(.4); } 100% { opacity: 0; transform: scale(2.2); } }
.th-city { cursor: pointer; }
.th-city:hover .th-city-dot { fill: var(--th-orange); }
.th-hub-ring { fill: none; stroke: var(--th-orange); stroke-width: 1.6; transform-box: fill-box; transform-origin: center; animation: th-ring 2.4s ease-out infinite; }
.th-hub-ring--2 { animation-delay: 1.2s; }
.th-hub-label rect { fill: var(--th-orange); }
.th-hub-label text { fill: #fff; font: 700 10px/1 var(--th-body); letter-spacing: .04em; }
.th-tip rect { fill: #fff; }
.th-tip text { fill: var(--th-ink); font: 700 10px/1 var(--th-body); }
.th-map-note { margin-top: 18px !important; text-align: center; color: #8fa8bb; font-size: 13px; }
.th-map-note strong { color: #fff; }

/* =============================================================
   4. SOLUÇÕES (vitrine)
   ============================================================= */
.th-sols { background: var(--th-bg); }
.th-showcase { display: grid; grid-template-columns: .95fr 1.25fr; gap: 56px; align-items: stretch; }
.th-showcase__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--th-line); }
.th-showcase__item { position: relative; border-bottom: 1px solid var(--th-line); }
.th-showcase__btn { all: unset; box-sizing: border-box; width: 100%; display: grid; grid-template-columns: 54px 1fr 28px; align-items: center; gap: 12px; padding: 24px 4px; cursor: pointer; }
.th-showcase__btn:focus-visible { outline: 3px solid var(--th-orange); outline-offset: 2px; border-radius: 8px; }
.th-showcase__n { font: 800 14px/1 var(--th-head); color: #9cb0be; letter-spacing: .08em; transition: color .4s; }
.th-showcase__t { font: 700 clamp(20px, 2vw, 28px)/1.15 var(--th-head); letter-spacing: -.02em; color: #8a9dad; transition: color .4s, transform .5s var(--th-ease); }
.th-showcase__plus { position: relative; width: 22px; height: 22px; }
.th-showcase__plus::before, .th-showcase__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 2px; margin: -1px 0 0 -8px; background: #8a9dad; transition: transform .5s var(--th-ease), background .4s; }
.th-showcase__plus::after { transform: rotate(90deg); }
.th-showcase__item:hover .th-showcase__t { color: var(--th-ink); transform: translateX(6px); }
.th-showcase__item.is-active .th-showcase__t { color: var(--th-ink); }
.th-showcase__item.is-active .th-showcase__n { color: var(--th-action); }
.th-showcase__item.is-active .th-showcase__plus::after { transform: rotate(0); }
.th-showcase__item.is-active .th-showcase__plus::before, .th-showcase__item.is-active .th-showcase__plus::after { background: var(--th-action); }
.th-showcase__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--th-ease); padding-left: 66px; }
.th-showcase__body > * { overflow: hidden; }
.th-showcase__item.is-active .th-showcase__body { grid-template-rows: 1fr; }
.th-showcase__body p { color: var(--th-muted); line-height: 1.65; }
.th-showcase__body .th-link { margin: 14px 0 26px; }
.th-showcase__body > p { min-height: 0; }
.th-showcase__progress { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--th-orange); transform: scaleX(0); transform-origin: 0 50%; }
.th-showcase__stage { position: relative; border-radius: 28px; overflow: hidden; min-height: 560px; background: var(--th-navy); box-shadow: 0 50px 100px -50px #0c2236aa; }
.th-showcase__slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.06); transition: opacity .9s var(--th-ease), transform 1.6s var(--th-ease); }
.th-showcase__slide.is-active { opacity: 1; transform: scale(1); z-index: 1; }
.th-showcase__slide img { width: 100%; height: 100%; object-fit: cover; }
.th-showcase__slide.is-illus { background: linear-gradient(160deg, #e9f2f6, #d4e3ea); }
.th-showcase__slide.is-illus img { object-fit: contain; padding: 40px; }
.th-showcase__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, #061a2dcc); }
.th-showcase__cap { position: absolute; left: 32px; bottom: 30px; z-index: 2; display: flex; align-items: baseline; gap: 14px; color: #fff; font: 800 clamp(26px, 2.8vw, 40px)/1 var(--th-head); letter-spacing: -.03em; }
.th-showcase__cap span { font-size: 14px; color: var(--th-orange); letter-spacing: .1em; }

/* =============================================================
   5. PROCESSO
   ============================================================= */
.th-process { background: linear-gradient(180deg, var(--th-navy) 0%, #04121f 100%); }
.th-process__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; }
.th-process__sticky { position: sticky; top: 120px; }
.th-process__meter { position: relative; width: 120px; height: 120px; margin-top: 44px; }
.th-process__meter svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.th-meter-bg { fill: none; stroke: #ffffff14; stroke-width: 6; }
.th-meter-fg { fill: none; stroke: var(--th-orange); stroke-width: 6; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: .8; transition: stroke-dashoffset .5s; }
.th-process__meter > span { position: absolute; inset: 0; display: grid; place-items: center; color: #8fa8bb; font: 700 14px/1 var(--th-head); }
.th-process__meter b { color: #fff; font-size: 28px; }
.th-steps { list-style: none; margin: 0; padding: 0 0 0 44px; position: relative; display: grid; gap: 22px; }
.th-steps__line { position: absolute; left: 10px; top: 20px; bottom: 20px; width: 2px; background: #ffffff14; border-radius: 2px; }
.th-steps__line i { position: absolute; inset: 0; background: linear-gradient(180deg, var(--th-orange), var(--th-cyan)); transform: scaleY(0); transform-origin: 50% 0; border-radius: 2px; }
.th-step { position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 24px; padding: 34px; border-radius: var(--th-r); background: #ffffff06; box-shadow: inset 0 0 0 1px #ffffff12; opacity: .45; transition: opacity .6s, background .6s, transform .6s var(--th-ease); }
.th-step.is-on { opacity: 1; background: #ffffff0d; }
.th-step:hover { transform: translateX(8px); }
.th-step__dot { position: absolute; left: -41px; top: 42px; width: 16px; height: 16px; border-radius: 50%; background: var(--th-navy); box-shadow: inset 0 0 0 2px #ffffff40; transition: all .5s; }
.th-step.is-on .th-step__dot { background: var(--th-orange); box-shadow: 0 0 0 6px #ff6a1333; }
.th-step__n { grid-column: 1 / -1; font: 800 13px/1 var(--th-head); color: var(--th-orange); letter-spacing: .14em; margin-bottom: 18px; }
.th-step h3 { font-size: clamp(22px, 2vw, 28px); margin-bottom: 8px !important; }
.th-step p { color: #a9bccb; line-height: 1.6; }
.th-step:hover .th-iconbox { background: var(--th-orange); color: #fff; }
.th-step:hover .th-ic .th-acc { stroke: #fff; }

/* =============================================================
   6. PROJETOS (bento)
   ============================================================= */
.th-cases { background: #fff; }
.th-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 260px; gap: 16px; }
.th-case { position: relative; display: block; border-radius: var(--th-r); overflow: hidden; background: var(--th-navy); color: #fff !important; text-decoration: none !important; isolation: isolate; }
.th-case--0 { grid-column: span 2; grid-row: span 2; }
.th-case--3 { grid-column: span 2; }
.th-case img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--th-ease), filter .8s; }
.th-case:hover img { transform: scale(1.08); filter: saturate(1.15); }
.th-case__shade { position: absolute; inset: 0; background: linear-gradient(180deg, #061a2d00 35%, #061a2de6 100%); transition: background .6s; }
.th-case:hover .th-case__shade { background: linear-gradient(180deg, #061a2d33 0%, #061a2df2 100%); }
.th-case__cat { position: absolute; top: 18px; left: 18px; padding: 8px 14px; border-radius: 999px; background: #ffffffe6; color: var(--th-ink); font: 700 11px/1 var(--th-body); letter-spacing: .1em; text-transform: uppercase; }
.th-case__body { position: absolute; left: 24px; right: 24px; bottom: 22px; display: flex; flex-direction: column; gap: 8px; }
.th-case__body strong { font: 800 clamp(22px, 2vw, 30px)/1.05 var(--th-head); letter-spacing: -.03em; }
.th-case--0 .th-case__body strong { font-size: clamp(32px, 3.4vw, 52px); }
.th-case__body em { display: inline-flex; align-items: center; gap: 8px; font: 700 13px/1 var(--th-body); font-style: normal; color: var(--th-orange); max-height: 0; opacity: 0; transform: translateY(8px); transition: all .5s var(--th-ease); }
.th-case__body em .th-ic { width: 18px; height: 18px; }
.th-case:hover .th-case__body em { max-height: 20px; opacity: 1; transform: none; }
.th-case--all { display: flex; flex-direction: column; justify-content: center; padding: 30px; background: linear-gradient(140deg, var(--th-action), #ff6a13); }
.th-case__big { font: 800 84px/0.9 var(--th-head); letter-spacing: -.05em; }
.th-case__all-t { font: 600 16px/1.3 var(--th-body); margin: 8px 0 18px; opacity: .9; }

/* =============================================================
   7. INSTAGRAM
   ============================================================= */
.th-insta { background: var(--th-bg); padding: clamp(60px, 7vw, 100px) 0; }
.th-insta .taec-section, .th-insta > .th-wrap > * { background: transparent !important; }

/* =============================================================
   8. INDÚSTRIA
   ============================================================= */
.th-ind { min-height: 92vh; display: flex; align-items: center; }
.th-ind__bg { position: absolute; inset: -12% 0; background: center/cover no-repeat; will-change: transform; }
.th-ind__shade { position: absolute; inset: 0; background: linear-gradient(90deg, #061a2df5 0%, #061a2dcc 42%, #061a2d55 100%); }
.th-ind__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: center; }
.th-ind .th-display { font-size: clamp(44px, 6vw, 96px); }
.th-ind__sectors { display: grid; gap: 14px; }
.th-sector { display: flex; gap: 20px; align-items: center; padding: 22px 24px; border-radius: 20px; background: #ffffff10; box-shadow: inset 0 0 0 1px #ffffff22; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: transform .6s var(--th-ease), background .5s; }
.th-sector:hover { transform: translateX(-10px); background: #ffffff1c; }
.th-sector__n { font: 800 12px/1 var(--th-head); color: var(--th-orange); letter-spacing: .14em; }
.th-sector .th-iconbox { width: 60px; height: 60px; padding: 14px; flex: 0 0 auto; }
.th-sector h3 { font-size: 21px; }
.th-sector p { color: #b9c9d6; font-size: 14px; margin-top: 4px; }
.th-sector:hover .th-iconbox { background: var(--th-orange); }
.th-sector:hover .th-ic .th-acc { stroke: #fff; }

/* =============================================================
   9. MARCAS
   ============================================================= */
.th-brands { background: #fff; padding-bottom: clamp(70px, 8vw, 120px); }
.th-brands__head { text-align: center; margin-bottom: 56px; }
.th-brands__head .th-eyebrow { justify-content: center; }
.th-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.th-marquee__track { display: flex; gap: 18px; width: max-content; animation: th-marq 42s linear infinite; }
.th-marquee:hover .th-marquee__track { animation-play-state: paused; }
.th-marquee--rev .th-marquee__track { animation-direction: reverse; animation-duration: 60s; }
@keyframes th-marq { to { transform: translateX(-33.333%); } }
.th-marquee--words .th-marquee__track { animation-name: th-marq2; }
@keyframes th-marq2 { to { transform: translateX(-50%); } }
.th-logo { display: grid; place-items: center; width: 220px; height: 120px; border-radius: 22px; background: var(--th-bg); box-shadow: inset 0 0 0 1px var(--th-line); transition: background .5s, transform .5s var(--th-ease), box-shadow .5s; }
.th-logo img { max-width: 140px; max-height: 70px; object-fit: contain; filter: grayscale(1) contrast(1.1); opacity: .7; transition: filter .5s, opacity .5s, transform .5s var(--th-ease); }
.th-logo:hover { background: #fff; transform: translateY(-6px); box-shadow: 0 24px 50px -24px #0c223666, inset 0 0 0 1px var(--th-line); }
.th-logo:hover img { filter: none; opacity: 1; transform: scale(1.06); }
.th-marquee--words { margin-top: 40px; }
.th-word { font: 800 clamp(44px, 6vw, 96px)/1 var(--th-head); letter-spacing: -.04em; text-transform: uppercase; color: transparent; -webkit-text-stroke: 1.5px #c5d3dc; white-space: nowrap; transition: color .4s; }
.th-word:hover { color: var(--th-ink); -webkit-text-stroke-color: var(--th-ink); }
.th-word-sep { color: var(--th-orange); font-size: 32px; align-self: center; }

/* =============================================================
   10. CTA
   ============================================================= */
.th-cta { background: #030f1b; }
.th-cta__orb { position: absolute; width: 720px; height: 720px; left: var(--ox, 70%); top: var(--oy, 50%); transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, #ff6a1355 0%, #ff6a1322 35%, transparent 70%); filter: blur(10px); transition: left .8s var(--th-ease), top .8s var(--th-ease); pointer-events: none; }
.th-cta::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#ffffff07 1px, transparent 1px), linear-gradient(90deg, #ffffff07 1px, transparent 1px); background-size: 64px 64px; }
.th-cta__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 60px; align-items: end; }
.th-cta .th-display { font-size: clamp(40px, 5.4vw, 84px); }
.th-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 26px; }
.th-cta__actions .th-btn { margin-top: 24px; }
.th-cta__actions .th-btn .th-ic--whatsapp { width: 22px; height: 22px; }

/* =============================================================
   Responsivo
   ============================================================= */
@media (max-width: 1100px) {
  .th-pillars__grid, .th-about__grid, .th-map-sec__grid, .th-showcase, .th-process__grid, .th-ind__grid, .th-cta__grid, .th-head { grid-template-columns: 1fr; }
  .th-pillar:nth-child(2), .th-pillar:nth-child(2):hover { transform: none; }
  .th-showcase__stage { min-height: 420px; order: -1; }
  .th-process__sticky { position: static; }
  .th-bento { grid-template-columns: repeat(2, 1fr); }
  .th-case--3 { grid-column: span 1; }
}
@media (max-width: 760px) {
  .th-wrap { width: calc(100% - 36px); }
  .th-pillars__cards, .th-diffs, .th-feats { grid-template-columns: 1fr; }
  .th-pillar { min-height: 0; }
  .th-pillar h3 { padding-top: 18px; }
  .th-diff { border-right: 0; border-bottom: 1px solid #ffffff14; }
  .th-bento { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .th-case--0 { grid-column: auto; grid-row: span 1; }
  .th-showcase__stage { min-height: 300px; }
  .th-steps { padding-left: 34px; }
  .th-step { padding: 26px 22px; grid-template-columns: 1fr; row-gap: 14px; }
  .th-step__dot { left: -31px; }
  .th-3d__pin { height: auto; min-height: 0; display: flex; flex-direction: column; }
  .th-3d__canvas { order: 2; }
  .th-3d__canvas { position: relative; height: 380px !important; }
  .th-3d__ui { padding: 60px 0 30px; }
  .th-3d__hint { display: none; }
  .th-logo { width: 160px; height: 96px; }
}
@media (prefers-reduced-motion: reduce) {
  .th *, .th *::before, .th *::after { animation: none !important; transition: none !important; }
  html.th-js [data-th-reveal] { opacity: 1; transform: none; }
}

/* Isola os botões do redesign do estilo global de <button> do tema/Elementor */
html body .th button.th-showcase__btn,
html body .th button.th-showcase__btn:hover,
html body .th button.th-showcase__btn:focus,
html body .th button.th-showcase__btn:active { background: transparent !important; background-image: none !important; color: inherit !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; text-transform: none !important; letter-spacing: normal !important; font: inherit !important; }

/* legibilidade do texto sobre a cena 3D */
@media (min-width: 761px) { .th-3d__pin::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(4,20,36,.92) 0%, rgba(4,20,36,.7) 30%, rgba(4,20,36,0) 52%); } .th-3d__ui { position: relative; z-index: 2; } }

/* Sobre: foto real de projeto */
.th-about__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; box-shadow: 0 30px 80px -30px rgba(6, 26, 45, .45); }

/* =====================================================================
   PÁGINAS INTERNAS — Soluções
   ===================================================================== */
.taec-th-main { display: block; }
.th-soft { background: var(--th-bg); }
/* capa com mosaico animado */
.th-phero { min-height: min(92vh, 900px); display: flex; align-items: center; padding-top: clamp(150px, 16vw, 200px); background: #030f1b; }
.th-phero__mosaic { position: absolute; inset: -10% -6% -10% 42%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; transform: rotate(-8deg); opacity: .9; }
.th-phero__mosaic::after { content: ""; position: absolute; inset: -20%; background: linear-gradient(90deg, #030f1b 0%, #030f1bcc 22%, #030f1b33 60%, #030f1b99 100%), linear-gradient(0deg, #030f1b 0%, transparent 25%, transparent 75%, #030f1b 100%); }
.th-phero__col { display: flex; flex-direction: column; gap: 16px; animation: th-col 38s linear infinite; }
.th-phero__col:nth-child(2) { animation-direction: reverse; animation-duration: 46s; }
.th-phero__col:nth-child(3) { animation-duration: 42s; }
.th-phero__col span { flex: 0 0 auto; aspect-ratio: 4 / 5; border-radius: 20px; background-size: cover; background-position: center; box-shadow: 0 30px 60px -30px #000; }
@keyframes th-col { from { transform: translateY(0); } to { transform: translateY(-50%); } }
.th-phero__inner { max-width: 1240px; }
.th-phero__inner .th-display { font-size: clamp(44px, 6.6vw, 104px); max-width: 12ch; }
.th-phero__inner .th-lead { max-width: 46ch; }
/* seletor de necessidade */
.th-solx__head { align-items: end; }
.th-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
html body .th button.th-chip { appearance: none; border: 1.5px solid var(--th-line) !important; background: #fff !important; color: var(--th-ink) !important; font: 600 14px/1 var(--th-body) !important; padding: 13px 18px !important; border-radius: 999px !important; cursor: pointer; transition: all .4s var(--th-ease); box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; }
html body .th button.th-chip:hover { border-color: var(--th-orange) !important; color: var(--th-action) !important; }
html body .th button.th-chip.is-on { background: var(--th-navy) !important; border-color: var(--th-navy) !important; color: #fff !important; }
/* cards de solução */
.th-solx__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.th-solcard { grid-column: span 2; position: relative; display: block; min-height: 460px; border-radius: 26px; overflow: hidden; color: #fff !important; text-decoration: none !important; isolation: isolate; background: var(--th-navy); transition: transform .7s var(--th-ease), opacity .6s var(--th-ease), filter .6s; }
.th-solcard:nth-child(1), .th-solcard:nth-child(2) { grid-column: span 3; min-height: 520px; }
.th-solcard__img, .th-solcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.th-solcard__img { z-index: -2; }
.th-solcard__img img { transform: scale(1.04); transition: transform 1.4s var(--th-ease); }
.th-solcard::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #061a2d10 20%, #061a2dcc 62%, #061a2df2 100%); transition: background .7s; }
.th-solcard:hover .th-solcard__img img { transform: scale(1.12); }
.th-solcard:hover::after { background: linear-gradient(180deg, #061a2d40 0%, #061a2de6 50%, #061a2dfa 100%); }
.th-solcard__n { position: absolute; top: 24px; left: 26px; font: 800 14px/1 var(--th-head); letter-spacing: .1em; color: #ffffffb3; }
.th-solcard__badge { position: absolute; top: 20px; right: 20px; padding: 9px 13px; border-radius: 999px; background: #ffffff1f; backdrop-filter: blur(10px); font: 700 12px/1 var(--th-body); letter-spacing: .04em; }
.th-solcard__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.th-solcard__body strong { font: 800 clamp(26px, 2.4vw, 36px)/1.05 var(--th-head); letter-spacing: -.03em; }
.th-solcard__ex { color: #c9d6e0; font-size: 15px; line-height: 1.55; max-width: 44ch; }
.th-solcard__apps { display: grid; gap: 6px; max-height: 0; overflow: hidden; opacity: 0; transition: max-height .8s var(--th-ease), opacity .6s, margin .6s; }
.th-solcard__apps i { font-style: normal; font-size: 14px; color: #fff; padding-left: 18px; position: relative; }
.th-solcard__apps i::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border-radius: 2px; background: var(--th-orange); }
.th-solcard:hover .th-solcard__apps, .th-solcard:focus-visible .th-solcard__apps { max-height: 140px; opacity: 1; margin-top: 6px; }
.th-solcard__go { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; font: 700 14px/1 var(--th-body); color: var(--th-orange); }
.th-solcard__go .th-ic { width: 18px; height: 18px; transition: transform .5s var(--th-ease); }
.th-solcard:hover .th-solcard__go .th-ic { transform: translateX(6px); }
.th-solx.is-filtering .th-solcard:not(.is-match) { opacity: .22; filter: grayscale(1); transform: scale(.97); }
.th-solx.is-filtering .th-solcard.is-match { box-shadow: 0 0 0 3px var(--th-orange), 0 30px 70px -30px #ff6a1388; }
.th-solx__note { margin-top: 30px !important; color: var(--th-muted); font-size: 15px; }
.th-solx__note a { color: var(--th-action); font-weight: 700; }
/* trilho de cases */
.th-rail { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; padding: 0 max(24px, calc((100vw - 1240px) / 2)) 10px; }
.th-rail::-webkit-scrollbar { display: none; }
.th-rail.is-drag { cursor: grabbing; scroll-snap-type: none; }
.th-rail__track { display: flex; gap: 18px; width: max-content; }
.th-rail .th-ccard { width: clamp(270px, 26vw, 360px); scroll-snap-align: start; }
.th-ccard { position: relative; display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: #fff; color: var(--th-ink) !important; text-decoration: none !important; box-shadow: 0 1px 0 var(--th-line), 0 24px 50px -30px #0c223640; transition: transform .6s var(--th-ease), box-shadow .6s; }
.th-ccard:hover { transform: translateY(-8px); box-shadow: 0 40px 70px -30px #0c223666; }
.th-ccard__img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--th-line); }
.th-ccard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--th-ease); -webkit-user-drag: none; }
.th-ccard:hover .th-ccard__img img { transform: scale(1.08); }
.th-ccard__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 6px; }
.th-ccard__body em { font-style: normal; font: 700 11px/1 var(--th-body); letter-spacing: .16em; text-transform: uppercase; color: var(--th-action); }
.th-ccard__body strong { font: 750 20px/1.2 var(--th-head); letter-spacing: -.02em; }
.th-ccard__body small { color: var(--th-muted); font-size: 14px; }
.th-ccard__go { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font: 700 14px/1 var(--th-body); color: var(--th-action); }
.th-ccard__go .th-ic { width: 16px; height: 16px; transition: transform .5s var(--th-ease); }
.th-ccard:hover .th-ccard__go .th-ic { transform: translateX(5px); }
/* capa da solução */
.th-shero { min-height: min(88vh, 860px); display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(150px, 16vw, 200px) 0 0; background: #030f1b; }
.th-shero__bg { position: absolute; inset: -8% 0 0; background-size: cover; background-position: center; transform: scale(1.06); will-change: transform; }
.th-shero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #030f1bf2 0%, #030f1bb3 38%, #030f1b33 75%), linear-gradient(0deg, #030f1b 0%, transparent 45%); }
.th-shero__inner { z-index: 2; padding-bottom: 60px; }
.th-shero__inner .th-display { font-size: clamp(48px, 7.4vw, 118px); }
.th-crumbs { display: flex; gap: 10px; align-items: center; font: 600 14px/1 var(--th-body); color: #b9c9d6; margin-bottom: 40px; }
.th-crumbs a { color: #fff !important; text-decoration: none !important; opacity: .8; }
.th-crumbs a:hover { opacity: 1; color: var(--th-orange) !important; }
.th-crumbs b { color: var(--th-orange); font-weight: 700; }
.th-shero__tabs { z-index: 2; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; border-top: 1px solid #ffffff1f; padding: 18px 0 22px !important; }
.th-shero__tabs a { flex: 0 0 auto; padding: 11px 16px; border-radius: 999px; color: #c9d6e0 !important; text-decoration: none !important; font: 600 14px/1 var(--th-body); transition: background .4s, color .4s; }
.th-shero__tabs a:hover { background: #ffffff14; color: #fff !important; }
.th-shero__tabs a.is-on { background: var(--th-orange); color: #fff !important; }
/* sobre + aplicações + entregas */
.th-sinfo__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px 90px; align-items: start; }
.th-sinfo__p { color: var(--th-muted); font-size: 17px; line-height: 1.75; margin-top: 18px !important; max-width: 60ch; }
.th-sinfo__p:first-of-type { margin-top: 30px !important; }
.th-sinfo__apps { padding: 36px; border-radius: 26px; background: var(--th-navy); color: #fff; box-shadow: 0 40px 80px -40px #061a2d99; }
.th-sinfo__apps h3 { font: 800 13px/1 var(--th-body); letter-spacing: .2em; text-transform: uppercase; color: var(--th-orange); margin-bottom: 22px !important; }
.th-sinfo__apps ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.th-sinfo__apps li { display: flex; gap: 14px; font-size: 17px; line-height: 1.5; }
.th-check { flex: 0 0 24px; height: 24px; border-radius: 8px; background: #ff6a1322; position: relative; margin-top: 1px; }
.th-check::after { content: ""; position: absolute; left: 8px; top: 4px; width: 6px; height: 11px; border: solid var(--th-orange); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.th-sben { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: clamp(50px, 6vw, 80px) !important; }
.th-sben .th-pillar { min-height: 260px; }
.th-sben .th-pillar p { font-size: 17px; color: var(--th-ink); margin-top: auto !important; padding-top: 26px; }
.th-sben .th-pillar:hover p { color: #fff; }
/* galeria */
.th-gal__grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 14px; }
.th-gal__item { position: relative; border-radius: 18px; overflow: hidden; display: block; cursor: zoom-in; background: var(--th-line); }
.th-gal__item.is-big { grid-column: span 2; grid-row: span 2; }
.th-gal__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--th-ease); }
.th-gal__item:hover img { transform: scale(1.07); }
.th-gal__item::after { content: "+"; position: absolute; right: 14px; bottom: 14px; width: 40px; height: 40px; border-radius: 50%; background: #ffffffe6; color: var(--th-ink); display: grid; place-items: center; font: 400 26px/1 var(--th-body); transform: scale(.6); opacity: 0; transition: all .5s var(--th-ease); }
.th-gal__item:hover::after { transform: scale(1); opacity: 1; }
.th-lb { position: fixed; inset: 0; z-index: 99999; background: #030f1bf2; display: grid; place-items: center; opacity: 0; pointer-events: none; transition: opacity .4s; }
.th-lb.is-open { opacity: 1; pointer-events: auto; }
.th-lb img { max-width: min(92vw, 1500px); max-height: 84vh; border-radius: 14px; box-shadow: 0 40px 100px -20px #000; }
html body .th-lb button { position: absolute; appearance: none; border: 0 !important; background: #ffffff1a !important; color: #fff !important; width: 56px; height: 56px; border-radius: 50% !important; font: 400 28px/1 var(--th-body) !important; cursor: pointer; padding: 0 !important; }
html body .th-lb button:hover { background: var(--th-orange) !important; }
.th-lb__x { top: 24px; right: 24px; } .th-lb__p { left: 24px; top: 50%; } .th-lb__n { right: 24px; top: 50%; }
.th-lb__c { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: #b9c9d6; font: 600 14px/1 var(--th-body); }
/* cases da solução / outras soluções */
.th-scases__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.th-others__row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.th-mini { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 12px 12px 20px; border-radius: 20px; background: #fff; color: var(--th-ink) !important; text-decoration: none !important; box-shadow: 0 1px 0 var(--th-line), 0 20px 40px -30px #0c223640; transition: transform .5s var(--th-ease), background .5s, color .5s; }
.th-mini__img { aspect-ratio: 16 / 11; border-radius: 12px; overflow: hidden; background: var(--th-line); }
.th-mini__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--th-ease); }
.th-mini strong { font: 750 17px/1.2 var(--th-head); padding: 0 8px; }
.th-mini .th-ic { position: absolute; right: 18px; bottom: 20px; width: 18px; height: 18px; color: var(--th-action); transition: transform .5s var(--th-ease); }
.th-mini:hover { transform: translateY(-6px); background: var(--th-navy); color: #fff !important; }
.th-mini:hover img { transform: scale(1.08); }
.th-mini:hover .th-ic { transform: translateX(4px); color: var(--th-orange); }
@media (max-width: 1100px) {
  .th-solcard, .th-solcard:nth-child(1), .th-solcard:nth-child(2) { grid-column: span 3; min-height: 440px; }
  .th-others__row { grid-template-columns: repeat(3, 1fr); }
  .th-sinfo__grid { grid-template-columns: 1fr; }
  .th-chips { justify-content: flex-start; }
}
@media (max-width: 760px) {
  .th-phero__mosaic { inset: auto -20% -10% -20%; height: 55%; opacity: .45; }
  .th-solx__grid { grid-template-columns: 1fr; }
  .th-solcard, .th-solcard:nth-child(1), .th-solcard:nth-child(2) { grid-column: auto; min-height: 400px; }
  .th-solcard__apps { max-height: 140px; opacity: 1; margin-top: 6px; }
  .th-scases__grid, .th-sben { grid-template-columns: 1fr; }
  .th-others__row { grid-template-columns: 1fr 1fr; }
  .th-gal__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; }
  .th-sinfo__apps { padding: 28px; }
}
@media (prefers-reduced-motion: reduce) { .th-phero__col { animation: none; } }

@media (max-width: 760px) { .th-solcard::after { background: linear-gradient(180deg, #061a2d40 0%, #061a2ddd 42%, #061a2df7 100%); } }

/* =============================================================
   PÁGINAS INTERNAS — fase 2 (projetos, institucional, contato…)
   ============================================================= */
.th-title--light { color: #fff; }
.th-title--light span { color: #8fa6b8; }
.th-gap { margin-top: clamp(50px, 6vw, 90px) !important; }
html body .th-btn--plain::before { background: #ffffff26; }
.th-head__side p { color: var(--th-muted); line-height: 1.7; max-width: 48ch; }
.th-dark .th-head__side p { color: #b9c9d6; }
/* grade de cards genérica */
.th-cards { display: grid; gap: 18px; }
.th-cards--3 { grid-template-columns: repeat(3, 1fr); }
.th-cards--4 { grid-template-columns: repeat(4, 1fr); }
.th-cards--5 { grid-template-columns: repeat(5, 1fr); }
.th-cards .th-pillar { min-height: 300px; }
.th-cards--compact .th-pillar { min-height: 270px; padding: 28px 22px 30px; }
.th-cards--compact .th-iconbox { width: 60px; height: 60px; padding: 14px; }
.th-cards--compact h3 { font-size: 20px; }
/* hero: números do portfólio */
.th-stats { list-style: none; margin: 40px 0 0 !important; padding: 0; display: flex; flex-wrap: wrap; gap: 14px; }
.th-stats li { padding: 18px 24px; border-radius: 18px; background: #ffffff10; border: 1px solid #ffffff1f; backdrop-filter: blur(10px); color: #b9c9d6; font-size: 14px; line-height: 1.3; }
.th-stats b { display: block; font: 800 34px/1 var(--th-head); color: #fff; margin-bottom: 6px; }
/* portfólio */
.th-port__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.th-pcard { position: relative; display: block; min-height: 440px; border-radius: 24px; overflow: hidden; color: #fff !important; text-decoration: none !important; background: var(--th-navy); isolation: isolate; transition: transform .7s var(--th-ease), box-shadow .7s var(--th-ease); }
.th-pcard:nth-child(6n+1), .th-pcard:nth-child(6n+5) { grid-column: span 2; }
.th-pcard__img, .th-pcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.th-pcard__img img { transition: transform 1.4s var(--th-ease), filter 1s; }
.th-pcard::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, #061a2d10 30%, #061a2dee 100%); transition: background .7s; }
.th-pcard:hover { transform: translateY(-8px); box-shadow: 0 40px 80px -30px #061a2d88; }
.th-pcard:hover .th-pcard__img img { transform: scale(1.07); }
.th-pcard__top { position: absolute; z-index: 2; top: 18px; left: 18px; right: 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.th-pcard__top em, .th-pcard__top i { font: 700 12px/1 var(--th-body); font-style: normal; letter-spacing: .04em; padding: 9px 12px; border-radius: 999px; background: #061a2db3; backdrop-filter: blur(8px); }
.th-pcard__top i { margin-left: auto; background: #ffffffe6; color: var(--th-ink); }
.th-pcard__body { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.th-pcard__body strong { font: 800 clamp(24px, 2.2vw, 32px)/1.05 var(--th-head); }
.th-pcard__ex { color: #c9d6e0; font-size: 15px; line-height: 1.55; max-width: 46ch; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .7s var(--th-ease), opacity .5s; }
.th-pcard:hover .th-pcard__ex, .th-pcard:focus-visible .th-pcard__ex { max-height: 120px; opacity: 1; }
.th-pcard .th-ccard__go { color: #fff; }
.th-pcard.is-hide { display: none; }
.th-port.is-filtering .th-pcard { grid-column: auto; }
/* ficha do case */
.th-facts { background: var(--th-navy); color: #fff; border-top: 1px solid #ffffff14; }
.th-facts dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.th-facts dl > div { padding: 26px 22px; border-left: 1px solid #ffffff14; }
.th-facts dl > div:first-child { border-left: 0; padding-left: 0; }
.th-facts dt { font: 700 11px/1 var(--th-body); letter-spacing: .2em; text-transform: uppercase; color: var(--th-orange); margin-bottom: 10px; }
.th-facts dd { margin: 0; font: 700 17px/1.35 var(--th-head); }
.th-sinfo__h { font-size: 20px; margin-top: 34px !important; }
.th-gal__item.is-more { display: none; }
.th-gal.is-all .th-gal__item.is-more { display: block; }
.th-gal__more { margin-top: 30px; text-align: center; }
.th-gal.is-all .th-gal__more { display: none; }
/* vídeo leve */
.th-yt { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0 !important; padding: 0 !important; border-radius: 28px; overflow: hidden; background: #000 !important; cursor: pointer; box-shadow: 0 50px 100px -40px #000; }
.th-yt img, .th-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.th-yt img { transition: transform 1.2s var(--th-ease), opacity .6s; opacity: .85; }
.th-yt:hover img { transform: scale(1.04); opacity: 1; }
.th-yt__play { position: absolute; left: 50%; top: 50%; width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%; background: var(--th-orange); box-shadow: 0 0 0 14px #ff6a1340, 0 20px 50px -10px #ff6a13; transition: transform .5s var(--th-ease); }
.th-yt__play::after { content: ""; position: absolute; left: 39px; top: 31px; border-left: 26px solid #fff; border-top: 17px solid transparent; border-bottom: 17px solid transparent; }
.th-yt:hover .th-yt__play { transform: scale(1.1); }
/* equipe */
.th-team__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px 90px; align-items: center; }
.th-team .th-display { font-size: clamp(38px, 4.8vw, 74px); }
.th-team__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.th-team__list li { display: flex; align-items: center; gap: 16px; padding: 18px; border-radius: 20px; background: #ffffff0a; border: 1px solid #ffffff17; font: 700 17px/1.25 var(--th-head); transition: background .5s, transform .5s var(--th-ease); }
.th-team__list li:hover { background: #ffffff14; transform: translateY(-4px); }
.th-team__list .th-iconbox { width: 54px; height: 54px; padding: 13px; border-radius: 15px; flex: 0 0 auto; background: #ffffff0d; color: #e6f1f8; box-shadow: inset 0 0 0 1.5px #ffffff1f; }
.th-team__list li:hover .th-iconbox { background: var(--th-orange); color: #fff; }
/* estrutura industrial */
.th-fab__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.th-fab__card { position: relative; padding: 0 0 30px; border-radius: 24px; background: #fff; overflow: hidden; box-shadow: 0 1px 0 var(--th-line), 0 30px 70px -40px #0c223655; }
.th-fab__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--th-line); }
.th-fab__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s var(--th-ease); }
.th-fab__card:hover .th-fab__img img { transform: scale(1.07); }
.th-fab__n { position: absolute; top: 18px; left: 18px; padding: 9px 13px; border-radius: 999px; background: var(--th-orange); color: #fff; font: 800 13px/1 var(--th-body); }
.th-fab__card h3 { font-size: 26px; padding: 26px 28px 0; }
.th-fab__card p { padding: 8px 28px 0; color: var(--th-muted); line-height: 1.6; }
/* missão e visão */
.th-mv__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: clamp(70px, 9vw, 130px); }
.th-mv__card { padding: clamp(36px, 4vw, 60px); border-radius: 28px; background: var(--th-bg); }
.th-mv__card.th-dark { background: linear-gradient(140deg, var(--th-navy2), var(--th-navy)); }
.th-mv__card h3 { font-size: clamp(28px, 3vw, 44px); line-height: 1.05; margin-top: 16px !important; }
.th-mv__card p:not(.th-eyebrow) { margin-top: 16px !important; color: var(--th-muted); line-height: 1.7; max-width: 46ch; }
.th-mv__card.th-dark p:not(.th-eyebrow) { color: #b9c9d6; }
/* jornada */
.th-journey__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px 90px; align-items: start; }
.th-journey__sticky { position: sticky; top: 110px; }
.th-journey__frame { position: relative; margin-top: 36px; aspect-ratio: 4 / 3; border-radius: 26px; overflow: hidden; background: var(--th-navy); box-shadow: 0 40px 80px -40px #0c223688; }
.th-journey__pic { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transform: scale(1.08); transition: opacity 1s var(--th-ease), transform 1.6s var(--th-ease); }
.th-journey__pic.is-on { opacity: 1; transform: none; }
.th-journey__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #061a2dcc, transparent 45%); }
.th-journey__count { position: absolute; z-index: 2; left: 22px; bottom: 20px; color: #c9d6e0; font: 600 14px/1 var(--th-body); }
.th-journey__count b { font: 800 30px/1 var(--th-head); color: #fff; }
.th-journey__count em { font-style: normal; color: var(--th-orange); font-weight: 700; }
.th-journey__steps { list-style: none; margin: 0; padding: 0 0 0 34px; position: relative; border-left: 2px solid var(--th-line); }
.th-jstep { position: relative; padding: 40px 0 40px 20px; min-height: 42vh; display: flex; gap: 22px; opacity: .35; transition: opacity .6s; }
.th-jstep.is-on { opacity: 1; }
.th-jstep::before { content: ""; position: absolute; left: -44px; top: 50px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--th-line); transition: border-color .5s, background .5s, box-shadow .5s; }
.th-jstep.is-on::before { background: var(--th-orange); border-color: var(--th-orange); box-shadow: 0 0 0 8px #ff6a1326; }
.th-jstep__n { font: 800 15px/1 var(--th-head); color: var(--th-orange); padding-top: 26px; }
.th-jstep .th-iconbox { width: 64px; height: 64px; padding: 15px; }
.th-jstep h3 { font-size: clamp(26px, 2.6vw, 38px); margin-top: 20px !important; }
.th-jstep p { color: var(--th-muted); font-size: 17px; line-height: 1.7; margin-top: 10px !important; max-width: 44ch; }
.th-jstep.is-on .th-iconbox { background: var(--th-orange); color: #fff; box-shadow: 0 16px 34px -10px #ff6a13aa; }
/* antes e depois */
.th-compare .th-display { font-size: clamp(38px, 5vw, 80px); }
.th-ba { position: relative; aspect-ratio: 16 / 9; border-radius: 28px; overflow: hidden; background: #000; box-shadow: 0 60px 120px -50px #000; user-select: none; touch-action: pan-y; }
.th-ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.th-ba__before { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--p)) 0 0); }
.th-ba__before::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, #00000033); }
.th-ba input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; z-index: 5; -webkit-appearance: none; appearance: none; }
.th-ba__handle { position: absolute; z-index: 4; top: 0; bottom: 0; left: var(--p); width: 3px; margin-left: -1.5px; background: #fff; box-shadow: 0 0 20px #0008; pointer-events: none; }
.th-ba__handle i { position: absolute; top: 50%; left: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: var(--th-orange); box-shadow: 0 0 0 8px #ff6a1340, 0 14px 40px #0008; transition: transform .4s var(--th-ease); }
.th-ba__handle i::before, .th-ba__handle i::after { content: ""; position: absolute; top: 50%; margin-top: -8px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; }
.th-ba__handle i::before { left: 14px; border-right: 10px solid #fff; }
.th-ba__handle i::after { right: 14px; border-left: 10px solid #fff; }
.th-ba:hover .th-ba__handle i, .th-ba.is-drag .th-ba__handle i { transform: scale(1.12); }
.th-ba__tag { position: absolute; z-index: 3; top: 22px; padding: 11px 16px; border-radius: 999px; background: #061a2dcc; backdrop-filter: blur(8px); color: #fff; font: 700 14px/1 var(--th-body); transition: opacity .4s; }
.th-ba__tag--l { left: 22px; } .th-ba__tag--r { right: 22px; background: var(--th-orange); }
.th-ba[data-side=a] .th-ba__tag--l, .th-ba[data-side=b] .th-ba__tag--r { opacity: .35; }
.th-ba__timeline { display: flex; align-items: center; gap: 16px; margin-top: 24px; color: #b9c9d6; font: 700 14px/1 var(--th-body); }
.th-ba__bar { flex: 1; height: 4px; border-radius: 4px; background: #ffffff1f; overflow: hidden; }
.th-ba__bar i { display: block; height: 100%; width: var(--p, 50%); background: linear-gradient(90deg, #8fa6b8, var(--th-orange)); }
/* canais */
.th-channels { padding-bottom: clamp(50px, 6vw, 90px); }
.th-channels__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.th-chan { display: flex; flex-direction: column; gap: 8px; padding: 28px; border-radius: 22px; background: #fff; color: var(--th-ink) !important; text-decoration: none !important; box-shadow: 0 1px 0 var(--th-line), 0 24px 60px -30px #0c223640; transition: transform .6s var(--th-ease), box-shadow .6s; }
.th-chan:hover { transform: translateY(-6px); box-shadow: 0 40px 70px -30px #0c223666; }
.th-chan .th-iconbox { width: 56px; height: 56px; padding: 13px; border-radius: 16px; margin-bottom: 14px; }
.th-chan:hover .th-iconbox { background: var(--th-orange); color: #fff; }
.th-chan em { font: 700 12px/1 var(--th-body); font-style: normal; letter-spacing: .16em; text-transform: uppercase; color: var(--th-muted); }
.th-chan strong { font: 700 17px/1.35 var(--th-head); word-break: break-word; }
/* formulários */
.th-formsec__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px 80px; align-items: start; }
.th-formsec__copy { position: sticky; top: 110px; }
.th-formsec__tips { list-style: none; margin: 30px 0 0 !important; padding: 0; display: grid; gap: 14px; }
.th-formsec__tips li { display: flex; gap: 12px; color: var(--th-ink); line-height: 1.5; }
.th-formsec__card { padding: clamp(26px, 3.4vw, 48px); border-radius: 28px; background: #fff; box-shadow: 0 1px 0 var(--th-line), 0 40px 90px -40px #0c223655; }
.th-formsec__card > *:first-child { margin-top: 0 !important; }
.th-formsec__card form { margin: 0; }
/* visita */
.th-visit { min-height: 70vh; display: flex; align-items: center; }
.th-visit__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .55; }
.th-visit::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #061a2df5 0%, #061a2daa 50%, #061a2d33 100%); }
/* blog */
.th-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.th-post { display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; background: #fff; color: var(--th-ink) !important; text-decoration: none !important; box-shadow: 0 1px 0 var(--th-line), 0 24px 60px -30px #0c223640; transition: transform .6s var(--th-ease), box-shadow .6s; }
.th-post:hover { transform: translateY(-8px); box-shadow: 0 40px 70px -30px #0c223666; }
.th-post__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--th-line); }
.th-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--th-ease); }
.th-post:hover .th-post__img img { transform: scale(1.06); }
.th-post__body { display: flex; flex-direction: column; gap: 12px; padding: 26px 28px 30px; flex: 1; }
.th-post__body em { font: 700 12px/1 var(--th-body); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--th-action); }
.th-post__body strong { font: 800 22px/1.2 var(--th-head); }
.th-post__ex { color: var(--th-muted); line-height: 1.6; font-size: 15px; }
.th-post .th-ccard__go { margin-top: auto; }
.th-post.is-big { grid-column: 1 / -1; flex-direction: row; }
.th-post.is-big .th-post__img { flex: 1.3; aspect-ratio: auto; min-height: 420px; }
.th-post.is-big .th-post__body { flex: 1; padding: clamp(30px, 4vw, 56px); justify-content: center; }
.th-post.is-big strong { font-size: clamp(28px, 3vw, 42px); }
/* artigo */
.th-article { padding-top: clamp(60px, 7vw, 100px); }
.th-article__body, .th-article__share { width: min(760px, calc(100% - 48px)); margin: 0 auto; }
.th-article__body { font-size: 19px; line-height: 1.8; color: #2b3f50; }
.th-article__body > * + * { margin-top: 1.1em !important; }
.th-article__body h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.15; color: var(--th-ink); margin-top: 1.8em !important; }
.th-article__body h3 { font-size: 24px; color: var(--th-ink); margin-top: 1.6em !important; }
.th-article__body a { color: var(--th-action); }
.th-article__body img { border-radius: 20px; height: auto; max-width: 100%; }
.th-article__body ul, .th-article__body ol { padding-left: 1.2em; }
.th-article__body blockquote { margin: 1.6em 0 !important; padding: 10px 0 10px 26px; border-left: 4px solid var(--th-orange); font-size: 22px; color: var(--th-ink); }
.th-article__share { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 60px !important; padding-top: 28px; border-top: 1px solid var(--th-line); font: 700 14px/1 var(--th-body); color: var(--th-muted); }
.th-article__share a { padding: 12px 18px; border-radius: 999px; background: var(--th-bg); color: var(--th-ink) !important; text-decoration: none !important; }
.th-article__share a:hover { background: var(--th-orange); color: #fff !important; }
.th-shero--post .th-display, .th-shero--case .th-display { font-size: clamp(38px, 5.4vw, 84px); max-width: 18ch; }
/* sustentabilidade */
.th-sust-embed { border-radius: 26px; }
.th-carbon__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 50px 90px; }
.th-carbon .th-display { font-size: clamp(38px, 4.6vw, 72px); }
.th-carbon__note { color: #b9c9d6; line-height: 1.75; margin-top: 20px !important; }
.th-carbon__h { color: #fff; font-size: 24px; margin-top: 40px !important; }
.th-ex { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.th-ex__card { padding: 34px 30px; border-radius: 24px; background: #fff; box-shadow: 0 1px 0 var(--th-line), 0 24px 60px -30px #0c223640; }
.th-ex__l { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; background: var(--th-navy); color: #fff; font: 800 20px/1 var(--th-head); }
.th-ex__card h3 { font-size: 24px; margin-top: 24px !important; }
.th-ex__card p { color: var(--th-muted); line-height: 1.65; margin-top: 16px !important; }
.th-ex__card b { display: block; font: 700 11px/1 var(--th-body); letter-spacing: .18em; text-transform: uppercase; color: var(--th-action); margin-bottom: 6px; }
.th-disclaimer { margin-top: 40px !important; padding: 22px 26px; border-radius: 18px; background: var(--th-bg); color: var(--th-muted); font-size: 14px; line-height: 1.7; }
.th-refs { margin-top: 50px; }
.th-refs h3 { font-size: 22px; margin-bottom: 18px !important; }
.th-refs ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.th-refs li { padding: 20px 22px; border-radius: 18px; border: 1px solid var(--th-line); }
.th-refs a { font-weight: 700; color: var(--th-ink) !important; text-decoration: none !important; }
.th-refs a:hover { color: var(--th-action) !important; }
.th-refs span { display: block; margin-top: 6px; color: var(--th-muted); font-size: 14px; }
@media (max-width: 1100px) {
  .th-cards--4, .th-cards--5 { grid-template-columns: repeat(2, 1fr); }
  .th-port__grid, .th-blog__grid, .th-channels__grid { grid-template-columns: repeat(2, 1fr); }
  .th-pcard:nth-child(6n+1), .th-pcard:nth-child(6n+5) { grid-column: span 2; }
  .th-team__grid, .th-journey__grid, .th-formsec__grid, .th-carbon__grid { grid-template-columns: 1fr; }
  .th-journey__side { display: none; }
  .th-jstep { min-height: 0; opacity: 1; }
  .th-formsec__copy { position: static; }
  .th-ex, .th-fab__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .th-cards--3, .th-cards--4, .th-cards--5, .th-port__grid, .th-blog__grid, .th-channels__grid, .th-fab__grid, .th-ex, .th-mv__grid, .th-refs ul, .th-team__list { grid-template-columns: 1fr; }
  .th-pcard, .th-pcard:nth-child(6n+1), .th-pcard:nth-child(6n+5) { grid-column: auto; min-height: 380px; }
  .th-pcard__ex { max-height: 120px; opacity: 1; }
  .th-cards .th-pillar { min-height: 0; }
  .th-post.is-big { flex-direction: column; }
  .th-post.is-big .th-post__img { min-height: 0; aspect-ratio: 16 / 10; flex: none; }
  .th-ba { aspect-ratio: 4 / 3; border-radius: 20px; }
  .th-ba__tag { top: 12px; font-size: 12px; padding: 9px 12px; } .th-ba__tag--l { left: 12px; } .th-ba__tag--r { right: 12px; }
  .th-ba__handle i { width: 52px; height: 52px; margin: -26px 0 0 -26px; }
  .th-facts dl > div { padding: 18px 0; border-left: 0; border-top: 1px solid #ffffff14; }
  .th-facts dl { grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .th-stats li { padding: 14px 18px; } .th-stats b { font-size: 26px; }
  .th-yt__play { width: 72px; height: 72px; margin: -36px 0 0 -36px; } .th-yt__play::after { left: 29px; top: 23px; border-left-width: 20px; border-top-width: 13px; border-bottom-width: 13px; }
  .th-article__body { font-size: 17px; }
}

/* =============================================================
   FASE 3 — revisão: títulos menores e mais limpos, cards de
   soluções, ilustrações animadas, contato e trabalhe conosco
   ============================================================= */
.th { padding: clamp(70px, 8vw, 120px) 0; }
.th-display, .th-3d .th-display, .th-map-sec .th-display, .th-ind .th-display, .th-cta .th-display, .th-team .th-display, .th-compare .th-display, .th-carbon .th-display { text-transform: none; font-size: clamp(32px, 3.8vw, 54px); line-height: 1.08; letter-spacing: -.02em; }
.th-title { font-size: clamp(28px, 2.9vw, 42px); line-height: 1.1; letter-spacing: -.015em; }
.th-shero { min-height: min(66vh, 600px); padding-top: clamp(130px, 12vw, 160px); }
.th-shero__inner .th-display, .th-phero__inner .th-display { font-size: clamp(34px, 4.2vw, 60px); max-width: 18ch; }
.th-shero--post .th-display, .th-shero--case .th-display { font-size: clamp(30px, 3.6vw, 50px); max-width: 22ch; }
.th-shero--short { min-height: 0; background: linear-gradient(120deg, #0a2a47, #061a2d 60%); }
.th-shero--short::before { display: none; }
.th-shero--short .th-shero__inner { padding-bottom: clamp(60px, 7vw, 90px); }
.th-head { margin-bottom: clamp(36px, 4.5vw, 60px); }
.th-lead { font-size: clamp(16px, 1.2vw, 18px); }
/* textura clara */
.th-tex { background-color: #f3f6f8; background-image: radial-gradient(#0c22361f 1px, transparent 1.4px), linear-gradient(180deg, #fff 0%, #f3f6f8 100%); background-size: 22px 22px, 100% 100%; }
.th-illus { position: relative; }
.th-illus svg { display: block; width: 100%; height: auto; overflow: visible; }
/* cards de soluções (estilo do site oficial) */
.th-sgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.th-scard { display: flex; flex-direction: column; border-radius: 18px; background: #fff; overflow: hidden; color: var(--th-ink) !important; text-decoration: none !important; box-shadow: 0 1px 0 var(--th-line), 0 18px 44px -28px #0c223655; border: 1px solid #e8eef2; transition: transform .5s var(--th-ease), box-shadow .5s; }
.th-scard:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px #0c223677; }
.th-scard__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--th-line); }
.th-scard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--th-ease); }
.th-scard:hover .th-scard__img img { transform: scale(1.05); }
.th-scard__img.is-empty { display: grid; place-items: center; background: linear-gradient(140deg, #0f3a5f, #061a2d); }
.th-scard__img.is-empty b { color: #fff; font: 800 20px/1 var(--th-head); letter-spacing: .04em; text-transform: uppercase; }
.th-scard__body { display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 22px; flex: 1; }
.th-scard__body strong { font: 700 20px/1.2 var(--th-head); }
.th-scard__body > span { color: var(--th-muted); font-size: 15px; line-height: 1.6; }
.th-scard__body em { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--th-line); display: flex; justify-content: space-between; align-items: center; font: 700 14px/1 var(--th-body); font-style: normal; }
.th-scard__body em .th-ic { width: 20px; height: 20px; transition: transform .45s var(--th-ease); }
.th-scard:hover em .th-ic { transform: translateX(5px); }
.th-sols .th-head__side p { margin-bottom: 18px !important; }
/* estrutura sem foto */
.th-fab__img.is-empty { display: grid; place-items: center; background: linear-gradient(140deg, #0f3a5f, #061a2d); }
.th-fab__img.is-empty .th-iconbox { background: #ffffff12; color: #fff; box-shadow: none; }
/* missão, visão e valores */
.th-mv__card { position: relative; }
.th-mv__card h3 { font-size: clamp(26px, 2.6vw, 38px); }
.th-val__ic { display: grid; place-items: center; width: 52px; height: 52px; padding: 12px; border-radius: 14px; background: #fff; color: var(--th-ink); box-shadow: inset 0 0 0 1.5px var(--th-line); margin-bottom: 22px; }
.th-mv__card .th-val__ic { background: #fff; }
.th-val__ic--light { background: #ffffff14 !important; color: #fff; box-shadow: inset 0 0 0 1.5px #ffffff26; }
.th-vals { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.th-val { padding: 28px 24px; border-radius: 18px; background: #fff; border: 1px solid #e8eef2; box-shadow: 0 18px 44px -30px #0c223655; }
.th-val h3 { font-size: 18px; line-height: 1.25; }
.th-val p { margin-top: 10px !important; color: var(--th-muted); font-size: 14.5px; line-height: 1.6; }
.th-val .th-val__ic { background: var(--th-bg); box-shadow: none; color: var(--th-action); }
.th-valsec .th-val { background: #ffffff0a; border-color: #ffffff17; box-shadow: none; }
.th-valsec .th-val h3 { color: #fff; } .th-valsec .th-val p { color: #b9c9d6; }
.th-valsec .th-val .th-val__ic { background: #ffffff12; color: #ff8a3d; }
.th-team__list li { cursor: default; }
/* jornada ilustrada */
.th-journey__frame { background: #061a2d; }
.th-journey__frame::after { background: linear-gradient(0deg, #061a2dd9, transparent 30%); }
.th-journey__pic, .th-jstep__art { background-color: #061a2d; background-image: linear-gradient(#52dcff0d 1px, transparent 1px), linear-gradient(90deg, #52dcff0d 1px, transparent 1px); background-size: 24px 24px; }
.th-journey__pic svg, .th-jstep__art svg { display: block; width: 100%; height: 100%; }
.th-journey__pic { transform: scale(1.04); }
.th-jstep__art { display: none; }
/* animações das ilustrações */
.ja * { transform-box: fill-box; transform-origin: center; }
.ja .ja-draw, .ja .ja-chk { stroke-dasharray: 1; }
.ja-draw { animation: jaDraw 5s ease-in-out infinite both; }
.ja-late { animation-delay: .9s; }
@keyframes jaDraw { 0% { stroke-dashoffset: 1; opacity: 1; } 40%, 88% { stroke-dashoffset: 0; opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.ja-wire { animation: jaWire 9s ease-in-out infinite both; }
@keyframes jaWire { 0% { stroke-dashoffset: 1; opacity: 1; } 30% { stroke-dashoffset: 0; opacity: 1; } 48%, 100% { stroke-dashoffset: 0; opacity: 0; } }
.ja-faces { animation: jaFaces 9s ease-in-out infinite both; }
@keyframes jaFaces { 0%, 28% { opacity: 0; transform: translateY(14px); } 44%, 90% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.ja-dim { animation: jaFade 9s ease infinite both; }
@keyframes jaFade { 0%, 46% { opacity: 0; } 56%, 90% { opacity: 1; } 100% { opacity: 0; } }
.ja-float { animation: jaBob 3.6s ease-in-out infinite alternate; }
.ja-d1 { animation-delay: .3s; } .ja-d2 { animation-delay: .8s; } .ja-d3 { animation-delay: 1.3s; } .ja-d4 { animation-delay: 1.8s; }
@keyframes jaBob { from { transform: translateY(-5px); } to { transform: translateY(5px); } }
.ja-pop { animation: jaBob 2.8s ease-in-out infinite alternate; }
.ja-pop.ja-late { animation: jaPop 6s var(--th-ease) infinite both; }
@keyframes jaPop { 0%, 30% { transform: scale(0); opacity: 0; } 42%, 90% { transform: scale(1); opacity: 1; } 100% { transform: scale(1); opacity: 0; } }
.ja-cursor { animation: jaCursor 5s ease-in-out infinite; }
@keyframes jaCursor { 0% { transform: translate(130px, 172px); } 25% { transform: translate(220px, 137px); } 50% { transform: translate(290px, 112px); } 75% { transform: translate(200px, 197px); } 100% { transform: translate(130px, 172px); } }
.ja-slide { animation: jaSlide 5s ease-in-out infinite alternate; }
@keyframes jaSlide { from { transform: translateX(70px); } to { transform: translateX(330px); } }
.ja-spark { animation: jaSpark .5s steps(2) infinite; }
@keyframes jaSpark { 0% { opacity: 1; transform: scale(1.3); } 100% { opacity: .1; transform: scale(.6); } }
.ja-grow { animation: jaGrow 4s ease-in-out infinite alternate; }
@keyframes jaGrow { from { opacity: .55; } to { opacity: 1; } }
.ja-belt { animation: jaBelt 1.4s linear infinite; }
@keyframes jaBelt { to { stroke-dashoffset: -64; } }
.ja-flow { animation: jaFlow 1.1s linear infinite; }
.ja-rev { animation-direction: reverse; }
@keyframes jaFlow { to { stroke-dashoffset: -36; } }
.ja-glow { animation: jaGlow 1.6s ease-in-out infinite alternate; }
@keyframes jaGlow { from { opacity: .35; } to { opacity: 1; } }
.ja-spin-c { animation: jaSpin 1.6s linear infinite; }
@keyframes jaSpin { to { transform: rotate(360deg); } }
.ja-scan { animation: jaScan 2.4s ease-in-out infinite alternate; }
@keyframes jaScan { from { transform: translateY(0); } to { transform: translateY(116px); } }
.ja-chk { animation: jaChk 6s ease infinite both; }
.ja-c2 { animation-delay: .6s; } .ja-c3 { animation-delay: 1.2s; } .ja-c4 { animation-delay: 1.8s; }
@keyframes jaChk { 0%, 8% { stroke-dashoffset: 1; opacity: 1; } 18%, 88% { stroke-dashoffset: 0; opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.ja-hills { animation: jaHills 9s linear infinite; }
@keyframes jaHills { to { transform: translateX(-120px); } }
.ja-road { animation: jaRoad .7s linear infinite; }
@keyframes jaRoad { to { stroke-dashoffset: 48; } }
.ja-bob { animation: jaTruck .45s ease-in-out infinite alternate; }
@keyframes jaTruck { from { transform: translateY(0); } to { transform: translateY(-2px); } }
.ja-wheel { animation: jaSpin .8s linear infinite; }
.ja-lower { animation: jaLower 6s var(--th-ease) infinite both; }
@keyframes jaLower { 0% { transform: translateY(-40px); opacity: 0; } 10% { opacity: 1; } 60%, 90% { transform: translateY(54px); opacity: 1; } 100% { transform: translateY(54px); opacity: 0; } }
.ja-blink { animation: jaGlow .9s ease-in-out infinite alternate; }
.ja-sun { animation: jaSun 4s ease-in-out infinite alternate; }
@keyframes jaSun { from { transform: scale(.94); } to { transform: scale(1.06); } }
.ja-lit { animation: jaGlow 2.2s ease-in-out infinite alternate; }
.ja-sway { transform-origin: 50% 100%; animation: jaSway 3s ease-in-out infinite alternate; }
@keyframes jaSway { from { transform: rotate(-3deg); } to { transform: rotate(3deg); } }
.ja-ring { animation: jaRing 2s ease-out infinite; }
@keyframes jaRing { from { transform: scale(.8); opacity: 1; } to { transform: scale(1.5); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ja, .ja * { animation: none !important; } .ja .ja-draw, .ja .ja-chk { stroke-dashoffset: 0; } }
/* contato */
.th-contact__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px 70px; align-items: start; }
.th-contact__side { position: sticky; top: 110px; }
.th-contact__list { list-style: none; margin: 30px 0 0 !important; padding: 0; display: grid; gap: 12px; }
.th-contact__list a { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 16px; background: #fff; border: 1px solid #e8eef2; color: var(--th-ink) !important; text-decoration: none !important; transition: border-color .3s, box-shadow .3s; }
.th-contact__list a:hover { border-color: var(--th-orange); box-shadow: 0 14px 30px -20px #0c223655; }
.th-contact__ic { flex: 0 0 auto; display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--th-bg); color: var(--th-action); }
.th-contact__list em, .th-contact__addr em { display: block; font: 600 13px/1 var(--th-body); font-style: normal; color: var(--th-muted); margin-bottom: 6px; }
.th-contact__list strong { font: 700 16px/1.3 var(--th-head); word-break: break-word; }
.th-contact__addr { display: flex; gap: 16px; margin-top: 26px; padding: 0 4px; }
.th-contact__addr p { margin: 0 !important; color: var(--th-ink); line-height: 1.6; }
.th-contact__addr .th-link { margin-top: 10px; font-size: 14px; }
.th-contact__jobs { margin-top: 30px !important; padding-top: 22px; border-top: 1px solid var(--th-line); color: var(--th-muted); font-size: 15px; }
.th-contact__jobs a { color: var(--th-action) !important; font-weight: 700; }
.th-contact__form { padding: clamp(26px, 3.2vw, 44px); border-radius: 22px; background: #fff; border: 1px solid #e8eef2; box-shadow: 0 30px 70px -40px #0c223666; }
.th-contact__form h2 { font: 700 clamp(24px, 2.2vw, 30px)/1.15 var(--th-head); color: var(--th-ink); }
.th-contact__intro { margin: 12px 0 24px !important; color: var(--th-muted); line-height: 1.65; font-size: 15px; }
.th-shero--short .th-btn, .th-contact .th-btn { animation: none; }
/* trabalhe conosco */
.th-steps3__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; counter-reset: s; }
.th-steps3__list li { position: relative; padding: 32px 28px; border-radius: 20px; background: #fff; border: 1px solid #e8eef2; box-shadow: 0 18px 44px -30px #0c223655; }
.th-steps3__list b { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--th-orange); color: #fff; font: 800 15px/1 var(--th-head); }
.th-steps3__list h3 { font-size: 21px; margin-top: 22px !important; }
.th-steps3__list p { margin-top: 10px !important; color: var(--th-muted); line-height: 1.6; }
.th-steps3__list .th-link { margin-top: 16px; font-size: 14px; }
.th-steps3__list li:not(:last-child)::after { content: ""; position: absolute; top: 56px; right: -18px; width: 18px; height: 2px; background: var(--th-line); }
@media (max-width: 1100px) {
  .th-sgrid, .th-vals { grid-template-columns: repeat(2, 1fr); }
  .th-jstep__art { display: block; margin-top: 20px; aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; max-width: 460px; }
  .th-contact__grid { grid-template-columns: 1fr; }
  .th-contact__side { position: static; }
}
@media (max-width: 760px) {
  .th-sgrid, .th-vals, .th-steps3__list { grid-template-columns: 1fr; }
  .th-steps3__list li::after { display: none; }
  .th-shero { min-height: 0; }
  .th-shero__inner { padding-bottom: 50px; }
}

/* jornada: painel ilustrado fica fixo durante todas as etapas */
.th-journey__grid { align-items: stretch; }
.th-journey__side { position: relative; }
.th-journey__sticky { position: sticky; top: 96px; }
.th-jstep { min-height: 46vh; }
.th-journey, .th-formsec, .th-contact { overflow: clip; }
.th-shero--short { padding-top: 70px; padding-bottom: 0; }
.th-shero--short .th-shero__inner { padding-bottom: 70px; }
.th-contact__form .elementor { font-family: var(--th-body); }

/* instalação: cabo desce junto com o módulo até a fundação */
.ja-lower { animation: jaLand 6s var(--th-ease) infinite both; }
@keyframes jaLand { 0% { transform: translateY(-96px); opacity: 0; } 8% { opacity: 1; } 62%, 92% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(0); opacity: 0; } }
.ja .ja-cable2 { transform-origin: 50% 0; animation: jaCable 6s var(--th-ease) infinite both; }
@keyframes jaCable { 0% { transform: scaleY(.0943); opacity: 0; } 8% { opacity: 1; } 62%, 92% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }
.ja-wave { transform-origin: 0 100%; animation: jaWave .8s ease-in-out infinite alternate; }
@keyframes jaWave { from { transform: rotate(-20deg); } to { transform: rotate(15deg); } }
