/* Tecnoserv — CSS global complementar para Elementor Pro */
:root {
  --ts-ink: #07111b;
  --ts-deep: #030a10;
  --ts-panel: #0b1a28;
  --ts-blue: #147dff;
  --ts-cyan: #38b6ff;
  --ts-yellow: #ffc400;
  --ts-white: #f5f7fa;
  --ts-muted: #aeb8c4;
  --ts-line: #173b59;
  --ts-radius: 10px;
  --ts-shadow: 0 22px 60px rgba(0, 0, 0, .22);
}

html { scroll-behavior: smooth; }
body { background: var(--ts-ink); color: var(--ts-white); overflow-x: hidden; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.ts-section { position: relative; isolation: isolate; }
.ts-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .055;
  background-image: linear-gradient(rgba(56,182,255,.8) 1px, transparent 1px), linear-gradient(90deg, rgba(56,182,255,.8) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
}

.ts-header {
  position: sticky !important;
  top: 0;
  z-index: 999;
  backdrop-filter: blur(15px);
  border-bottom: 1px solid rgba(56, 182, 255, .16);
}
.ts-logo img { height: auto; object-fit: contain; }
.ts-nav .elementor-nav-menu--main .elementor-item { font-family: Manrope, sans-serif; font-weight: 700; }

.ts-hero { overflow: hidden; }
.ts-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(3,8,14,.96) 0%, rgba(3,8,14,.82) 35%, rgba(3,8,14,.10) 73%);
  z-index: 0;
}
.ts-hero > .e-con-inner, .ts-hero > .elementor-element { position: relative; z-index: 1; }
.ts-hero-copy { max-width: 720px; }
.ts-hero-title .elementor-heading-title { text-wrap: balance; letter-spacing: -.045em; }
.ts-hero-lead { max-width: 690px; }
.ts-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.ts-eyebrow .elementor-heading-title::before { content: ""; width: 34px; height: 2px; background: currentColor; }

.ts-btn-primary .elementor-button, .ts-btn-secondary .elementor-button {
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
  letter-spacing: .01em;
}
.ts-btn-primary .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(255,196,0,.24); }
.ts-btn-secondary .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(20,125,255,.2); }

.ts-metrics { border-top: 1px solid rgba(56,182,255,.14); border-bottom: 1px solid rgba(56,182,255,.14); }
.ts-metric { position: relative; }
.ts-metric:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 24%; width: 1px; height: 52%; background: rgba(56,182,255,.18); }

.ts-card { position: relative; overflow: hidden; box-shadow: 0 12px 30px rgba(0,0,0,.08); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.ts-card::before { content: ""; position: absolute; left: 0; top: 0; width: 3px; height: 0; background: linear-gradient(var(--ts-cyan), var(--ts-blue)); transition: height .3s ease; }
.ts-card:hover { transform: translateY(-6px); box-shadow: var(--ts-shadow); }
.ts-card:hover::before { height: 100%; }
.ts-card-number .elementor-heading-title { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ts-card-link .elementor-button { padding: 0 !important; }

.ts-tech { background-image: radial-gradient(circle at 84% 30%, rgba(20,125,255,.20), transparent 33%); }
.ts-tech-tags .elementor-widget-heading { width: auto; padding: 15px 18px; border: 1px solid var(--ts-line); border-radius: 6px; background: rgba(11,34,56,.62); }
.ts-testimonial { background: linear-gradient(135deg, #0a1b2b, #06101a); }
.ts-testimonial .elementor-heading-title { max-width: 980px; margin-inline: auto; }

.ts-form input, .ts-form select, .ts-form textarea { min-height: 52px; }
.ts-form textarea { min-height: 130px; }
.ts-form input:focus, .ts-form select:focus, .ts-form textarea:focus { box-shadow: 0 0 0 3px rgba(56,182,255,.12); }

.ts-footer { border-top: 1px solid rgba(56,182,255,.16); }
.ts-mobile-bar { display: none !important; position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 1000; box-shadow: 0 -8px 30px rgba(0,0,0,.32); }
.ts-mobile-bar .elementor-widget-button { width: 33.333%; }
.ts-mobile-bar .elementor-button { width: 100%; padding: 13px 5px !important; font-size: 12px; }

@media (max-width: 1024px) {
  .ts-nav { display: none; }
  .ts-hero::after { background: linear-gradient(90deg, rgba(3,8,14,.94), rgba(3,8,14,.55)); }
}

@media (max-width: 767px) {
  body { padding-bottom: 62px; }
  .ts-header .ts-btn-primary { display: none; }
  .ts-logo { max-width: 170px; }
  .ts-hero { background-position: center center !important; }
  .ts-hero::after { background: linear-gradient(180deg, rgba(3,8,14,.82) 0%, rgba(3,8,14,.42) 48%, rgba(3,8,14,.78) 100%); }
  .ts-hero-copy { justify-content: flex-start; padding-top: 10px; }
  .ts-hero-actions .elementor-widget-button, .ts-hero-actions .elementor-button { width: 100%; }
  .ts-trust-line { display: none; }
  .ts-metric:not(:last-child)::after { display: none; }
  .ts-metric { border: 1px solid rgba(56,182,255,.12); }
  .ts-mobile-bar { display: flex !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Versão 2 — fidelidade ao layout aprovado */
.ts-approved-header .ts-header-contact { margin-bottom: -4px; }
.ts-approved-header .ts-header-contact p { white-space: nowrap; }
.ts-approved-hero-v2 { overflow: hidden; }
.ts-approved-banner { position: relative; width: 100%; background-color: #031321; }
.ts-banner-desktop { display: flex; aspect-ratio: 2169 / 725; }
.ts-banner-mobile { display: none; aspect-ratio: 1049 / 1500; }
.ts-approved-hero::after {
  background: linear-gradient(90deg, rgba(2,12,21,.98) 0%, rgba(2,12,21,.90) 34%, rgba(2,12,21,.18) 68%, rgba(2,12,21,.04) 100%);
}
.ts-approved-hero .ts-hero-title .elementor-heading-title { text-transform: uppercase; line-height: .98; }
.ts-hero-features { margin-top: 10px; padding-top: 14px; border-top: 1px solid rgba(56,182,255,.18); }
.ts-hero-feature:not(:last-child) { border-right: 1px solid rgba(56,182,255,.16); }

.ts-photo-card { box-shadow: 0 10px 30px rgba(5,30,52,.08); transition: transform .25s ease, box-shadow .25s ease; }
.ts-photo-card:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(5,30,52,.16); }
.ts-photo-card-image { margin: 0 !important; }
.ts-photo-card-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }

.ts-stat:not(:last-child) { border-right: 1px solid rgba(255,255,255,.18); }
.ts-large-image img { min-height: 440px; object-fit: cover; }
.ts-feature { transition: transform .2s ease, background .2s ease; }
.ts-feature:hover { transform: translateY(-3px); }

.ts-process-step { background: rgba(4,35,62,.82); position: relative; }
.ts-process-step::after { content: ""; position: absolute; height: 1px; width: 18px; background: #159bff; right: -16px; top: 36px; }
.ts-process-step:last-child::after { display: none; }
.ts-tech-image img { aspect-ratio: 4/3; object-fit: cover; }
.ts-tech-card { box-shadow: 0 10px 26px rgba(5,30,52,.13); }
.ts-testimonial-card { box-shadow: 0 16px 44px rgba(5,30,52,.10); }
.ts-segments { border-top: 1px solid #dce5ed; }
.ts-blog-posts .elementor-post { border: 1px solid #dce5ed; border-radius: 9px; overflow: hidden; box-shadow: 0 10px 30px rgba(5,30,52,.07); }

@media (max-width: 1024px) {
  .ts-approved-header .ts-header-contact { display: none; }
  .ts-approved-header::after { content: "☰"; color: #f5f7fa; font-size: 24px; margin-left: auto; }
  .ts-stat:not(:last-child) { border-right: 0; }
}

@media (max-width: 767px) {
.ts-banner-desktop { display: none !important; }
.ts-banner-mobile { display: flex !important; }
  .ts-approved-hero::after { background: linear-gradient(180deg,rgba(2,12,21,.48),rgba(2,12,21,.86) 52%,rgba(2,12,21,.98)); }
  .ts-approved-hero .ts-hero-copy { justify-content: flex-end; min-height: 690px; }
  .ts-hero-feature:not(:last-child) { border-right: 0; }
  .ts-photo-grid { gap: 10px !important; }
  .ts-photo-card .elementor-heading-title { font-size: 15px !important; }
  .ts-photo-card .elementor-widget-text-editor { display: none; }
  .ts-photo-card .elementor-button { font-size: 11px !important; }
  .ts-stat { border-bottom: 1px solid rgba(255,255,255,.14); }
  .ts-large-image img { min-height: 330px; aspect-ratio: 4/3; }
  .ts-process-step::after { display: none; }
}

/* Versão 2.6 — páginas internas fiéis ao mockup aprovado */
.ts-internal-hero { position: relative; }
.ts-internal-hero .ts-hero-copy { max-width: 760px; }
.ts-internal-hero .ts-hero-title .elementor-heading-title { text-transform: uppercase; line-height: 1; }
.ts-breadcrumb { border-bottom: 1px solid #dce5ed; }
.ts-breadcrumb-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; color: #667789; font: 500 13px/1.5 Inter, sans-serif; }
.ts-breadcrumb-nav a { color: inherit; text-decoration: none; }
.ts-breadcrumb-nav a:hover { color: #147dff; }
.ts-breadcrumb-nav strong { color: inherit; font-weight: 700; }
.ts-approved-internal { overflow: hidden; }
.ts-service-main-image img,
.ts-service-tech-image img,
.ts-about-main-image img { min-height: 330px; border-radius: 9px; box-shadow: 0 18px 44px rgba(5,30,52,.15); }
.ts-internal-photo-card { overflow: hidden; box-shadow: 0 10px 28px rgba(5,30,52,.08); transition: transform .25s ease, box-shadow .25s ease; }
.ts-internal-photo-card:hover { transform: translateY(-5px); box-shadow: 0 18px 42px rgba(5,30,52,.14); }
.ts-internal-photo-card .ts-internal-card-image { margin: 0 -16px 2px; width: calc(100% + 32px); }
.ts-internal-photo-card .ts-internal-card-image img { border-radius: 7px 7px 0 0; }
.ts-internal-icon-card { box-shadow: 0 9px 26px rgba(5,30,52,.06); transition: transform .22s ease, border-color .22s ease; }
.ts-internal-icon-card:hover { transform: translateY(-3px); border-color: #8bcaff; }
.ts-internal-step { position: relative; box-shadow: 0 8px 24px rgba(5,30,52,.06); }
.ts-internal-step:not(:last-child)::after { content: ""; position: absolute; top: 32px; right: -15px; width: 15px; height: 1px; background: #147dff; }
.ts-step-number .elementor-heading-title { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto; border: 2px solid currentColor; border-radius: 50%; }
.ts-service-technology { background-image: radial-gradient(circle at 82% 30%, rgba(20,125,255,.22), transparent 38%); }
.ts-service-technology .ts-internal-icon-card { box-shadow: none; }
.ts-internal-faq .elementor-accordion-item { margin-bottom: 9px; border: 1px solid #dce5ed !important; border-radius: 6px; overflow: hidden; }
.ts-internal-cta { background-image: radial-gradient(circle at 82% 45%, rgba(20,125,255,.24), transparent 36%); }
.ts-about-stats { border-top: 1px solid #dce5ed; border-bottom: 1px solid #dce5ed; }
.ts-about-stat:not(:last-child) { border-right: 1px solid #dce5ed; }
.ts-case-filter .elementor-button { min-width: 96px; }
.ts-contact-map iframe { border-radius: 8px; }
.ts-blog-search { max-width: 100%; }
.ts-blog-posts-approved .elementor-post,
.ts-blog-posts-approved .elementor-post__card { border: 1px solid #dce5ed; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 28px rgba(5,30,52,.08); }

@media (max-width: 1024px) {
  .ts-internal-step:not(:last-child)::after { display: none; }
  .ts-about-stat:nth-child(2) { border-right: 0; }
}

@media (max-width: 767px) {
  .ts-internal-hero { min-height: 500px !important; }
  .ts-internal-hero .ts-hero-copy { min-height: auto !important; justify-content: flex-end; }
  .ts-breadcrumb-nav { font-size: 12px; }
  .ts-service-main-image img,
  .ts-service-tech-image img,
  .ts-about-main-image img { min-height: 260px; }
  .ts-about-stat { border-right: 0 !important; border-bottom: 1px solid #dce5ed; }
  .ts-internal-photo-card .elementor-widget-text-editor { display: block; }
  .ts-case-filter { width: calc(50% - 5px); }
  .ts-case-filter .elementor-button { width: 100%; min-width: 0; }
}

/* Versão 2.7 — ajuste de fidelidade pixel a pixel das páginas internas */
.ts-approved-internal::before { display: none; }
.ts-internal-hero::after { background: linear-gradient(90deg, rgba(2,13,23,.96) 0%, rgba(2,13,23,.82) 38%, rgba(2,13,23,.18) 72%, rgba(2,13,23,.05) 100%); }
.ts-internal-hero .ts-hero-copy { position: relative; z-index: 2; max-width: 680px; }
.ts-internal-eyebrow .elementor-heading-title { letter-spacing: .08em; }
.ts-internal-hero-actions { margin-top: 5px; }
.ts-mockup-button .elementor-button { min-height: 42px; transition: transform .2s ease, filter .2s ease; }
.ts-mockup-button .elementor-button:hover { transform: translateY(-2px); filter: brightness(1.08); }
.ts-mockup-text-link .elementor-button { padding: 0; background: transparent; border: 0; }
.ts-service-intro,
.ts-service-scope { border-bottom: 0; }
.ts-service-scope { margin-top: -1px; }
.ts-service-steps,
.ts-service-applications,
.ts-about-structure,
.ts-about-values { border-top: 1px solid #edf1f4; }
.ts-internal-icon-card .elementor-widget-text-editor p { line-height: 1.5; }
.ts-service-technology::before { display: none; }
.ts-service-technology .ts-internal-photo-card,
.ts-service-technology .ts-service-tech-image { position: relative; z-index: 1; }
.ts-internal-cta { position: relative; overflow: hidden; }
.ts-internal-cta::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(2,14,25,.98) 0%, rgba(2,14,25,.88) 58%, rgba(2,14,25,.42) 100%); pointer-events: none; }
.ts-internal-cta > .e-con-inner,
.ts-internal-cta > .elementor-element { position: relative; z-index: 1; }
.ts-round-value-icon { display: grid; place-items: center; width: 66px; height: 66px; border: 1px solid #dbe4eb; border-radius: 50%; background: #f4f7f9; }
.ts-about-stat .elementor-heading-title { line-height: 1; }
.ts-about-structure .ts-internal-photo-card { box-shadow: 0 7px 20px rgba(5,30,52,.07); }
.ts-contact-map-section .elementor-widget-google_maps,
.ts-contact-map-section iframe { width: 100%; display: block; }
.ts-contact-map-section iframe { border: 0; border-radius: 0; }
.ts-contact-info-row + .ts-contact-info-row { border-top: 1px solid #e5ebf0; }
.ts-contact-page .ts-form .elementor-field { color: #07111b; }
.ts-cases-page .ts-internal-photo-card .elementor-widget-text-editor { display: block; }
.ts-case-filter .elementor-button { min-height: 36px; padding: 9px 17px; }
.ts-blog-page .ts-blog-search { margin-bottom: 8px; }

@media (max-width: 767px) {
  .ts-internal-hero { min-height: 520px !important; background-position: center center !important; }
  .ts-internal-hero-compact { min-height: 300px !important; }
  .ts-internal-hero::after { background: linear-gradient(180deg, rgba(2,13,23,.34) 0%, rgba(2,13,23,.55) 42%, rgba(2,13,23,.96) 100%); }
  .ts-internal-hero .ts-hero-copy { justify-content: flex-end; margin-top: auto; }
  .ts-internal-hero-actions { width: 100%; }
  .ts-internal-hero-actions .elementor-widget-button { width: calc(50% - 6px); }
  .ts-internal-hero-actions .elementor-button { width: 100%; padding-inline: 10px; font-size: 11px; }
  .ts-round-value { width: calc(50% - 9px) !important; }
  .ts-contact-page { padding-top: 42px !important; padding-bottom: 48px !important; }
}
