/* Compiled global stylesheet served from /public to avoid any dev-HMR issues */
@font-face {
  font-family: 'Jaapokki';
  src: url('/fonts/Jaapokki-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-dark: #2d2926;
  --color-light: #ffffff;
  --color-bg: var(--color-light);
  --color-text: var(--color-dark);
  /* DataInova brand accents */
  --brand-dark: #2d2926;
  --brand-terra: #B85C38;
  --brand-teal: #0E7490;
  --brand-purple: #6D28D9;
  --brand-green: #16A34A;
  --radius: 12px;
  --shadow: 0 6px 24px rgba(0,0,0,0.08);
  /* Background: served SVG file for reliability */
  --hero-image: url('/image/fundo.jpg');
  --hero-overlay: 0.60; /* 0.0–1.0: aumenta para escurecer */
  --hero-scale: 0.96; /* <1 reduz (zoom out leve) */
}

* { box-sizing: border-box; }
html, body, #root { height: 100%; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: 'Exo 2', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height: 1.6;
  overflow-x: hidden; /* avoid lateral scroll on mobile */
}

.container {
  width: min(1280px, 92%);
  margin: 0 auto;
}

/* Header */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  width: 100%;
  background: rgba(255,255,255,0.9);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid rgba(0,0,0,0.06);
  z-index: 9999;
}
.header__inner { display: flex; align-items: center; gap: 24px; padding: 12px 0; }
.logo { font-weight: 800; letter-spacing: 0.5px; text-decoration: none; color: var(--color-text); font-family: 'Jaapokki', 'Exo 2', sans-serif; }
/* Use the black logo in the header menu regardless of bundled markup */
.logo { background: url('/image/logo-preta.png') no-repeat left center / auto 32px; padding-left: 40px; min-height: 32px; }
/* Hide the img tag inside the logo link to avoid double rendering */
.logo__img { height: 32px; width: auto; display: none; }
.nav { margin-left: auto; display: flex; gap: 20px; }
.nav a { color: var(--color-text); text-decoration: none; opacity: 0.8; font-weight: 600; }
.nav a:hover { opacity: 1; }
.nav a.active { opacity: 1; text-decoration: underline; text-underline-offset: 6px; }
.lang-toggle { display: none; }
.lang-switch { display: inline-flex; gap: 6px; align-items: center; margin-left: 8px; }
/* Keep language flags pinned to the right inside header */
.header__inner .lang-switch { margin-left: auto; }
.lang-btn { border-radius: 6px; border: 1px solid var(--color-dark); background: var(--color-light); color: var(--color-dark); padding: 2px 4px; font-weight: 800; cursor: pointer; line-height: 1; width: 44px; height: 30px; display: inline-grid; place-items: center; transition: box-shadow .2s ease, transform .08s ease; }
.lang-btn:hover { box-shadow: 0 0 0 2px rgba(45,41,38,.9) inset; }
.lang-btn.is-active { box-shadow: 0 0 0 2px var(--color-dark) inset, 0 2px 8px rgba(0,0,0,.12); border-color: var(--color-dark); }
.lang-btn:focus-visible { outline: 2px solid #0ea5e9; outline-offset: 2px; }
.lang-btn svg { width: 24px; height: 16px; display: block; }

/* Mobile header polish */
@media (max-width: 420px) {
  .header__inner { gap: 12px; }
  .logo { background-size: auto 26px; padding-left: 34px; min-height: 26px; }
  .lang-switch { gap: 4px; }
  .lang-btn { width: 38px; height: 26px; padding: 0; }
  main { padding-top: 84px; }
}
/* Hide top nav on very narrow screens to avoid overlap */
@media (max-width: 560px) {
  .nav { display: none; }
}
/* Extra breathing room for fixed header on small tablets */
@media (max-width: 768px) {
  main { padding-top: 88px; }
}

/* Hero full-screen with background image */
.hero { position: relative; min-height: 100vh; color: var(--color-light); padding: 0; display: grid; align-items: center; justify-items: center; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: -8%; background-image: var(--hero-image); background-size: cover; background-position: center; filter: brightness(0.62) saturate(0.85) blur(1px); transform: scale(var(--hero-scale)); transform-origin: center; z-index: 0; pointer-events: none; }
.hero::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,var(--hero-overlay)); z-index: 0; pointer-events: none; }
.hero > .container { position: relative; z-index: 1; }
.hero__content { text-align: center; margin: 0 auto; display: flex; align-items: center; flex-direction: column; }
.hero__logo { width: clamp(200px, 28vw, 360px); height: auto; margin: 0 0 16px; filter: drop-shadow(0 6px 28px rgba(0,0,0,.35)); pointer-events: none; transform-origin: center; animation: heartbeat 2.6s cubic-bezier(0.4,0,0.2,1) infinite; animation-delay: .3s; will-change: transform; }
@keyframes heartbeat { 0% { transform: scale(1) } 8% { transform: scale(1.08) } 16% { transform: scale(1) } 24% { transform: scale(1.05) } 32% { transform: scale(1) } 100% { transform: scale(1) } }
@media (prefers-reduced-motion: reduce) { .hero__logo { animation: none } }
/* removed flame flicker effect */
.hero__title { font-family: 'Jaapokki', 'Exo 2', sans-serif; font-size: clamp(32px, 6.4vw, 68px); line-height: 1.1; margin: 0 0 16px; text-shadow: 0 2px 16px rgba(0,0,0,.55); white-space: nowrap; text-align: center; }
.hero__subtitle { font-size: clamp(16px, 2.8vw, 22px); opacity: 0.98; margin: 0 auto 28px; max-width: 820px; text-shadow: 0 2px 12px rgba(0,0,0,.6); }
.hero__ctas { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

.btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 18px; border-radius: 999px; text-decoration: none; font-weight: 800; cursor: pointer; transition: transform .08s ease, box-shadow .2s ease; }
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--color-light); color: var(--color-dark); box-shadow: var(--shadow); border: 2px solid var(--color-light); }
.btn--ghost { background: transparent; color: var(--color-light); border: 2px solid var(--color-light); }
.btn--primary:hover { filter: brightness(0.98); }
.btn--ghost:hover { background: rgba(255,255,255,0.06); }

/* Sections */
.header + * ~ main, main { padding-top: 64px; }
.section { padding: 80px 0; scroll-margin-top: 88px; }
@media (max-width: 560px) { .section { padding: 56px 0; } }
.section--alt { background: #fafafa; }
.section__title { font-family: 'Jaapokki', 'Exo 2', sans-serif; font-size: clamp(24px, 4vw, 36px); margin: 0 0 10px; }
.section__lead { margin: 0 0 28px; max-width: 900px; opacity: 0.9; }

/* About section helpers */
.about h3 { margin: 28px 0 8px; font-weight: 800; }
.about h4 { margin: 12px 0 6px; font-weight: 700; opacity: .9; }
.about-list { list-style: disc inside; padding-left: 0; margin: 8px 0 18px; }
.about-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 8px 0 16px; }
.about-step { background: #fff; border: 1px solid rgba(0,0,0,0.06); border-radius: 12px; padding: 16px; box-shadow: var(--shadow); }
.about-step h5 { margin: 0 0 6px; font-weight: 800; }
.about-tagline { margin-top: 12px; font-weight: 800; }

/* New visual layout for About (clean) */
.about__narrow { width: min(900px, 92%); margin: 0 auto; }
.aboutIntro { border-left: 4px solid var(--color-dark); padding-left: 14px; margin-bottom: 18px; }
.aboutIntro__kicker { font-weight: 800; letter-spacing: .2px; opacity: .7; }
.aboutIntro__title { margin: 6px 0; font-weight: 800; font-size: clamp(22px, 3.6vw, 30px); }
.aboutIntro__lead { margin: 0; opacity: .9; }

.about--clean .aboutStack { margin: 26px 0; }
.about--clean h3 { margin: 0 0 8px; font-weight: 800; }
.aboutText { margin: 0; opacity: .92; }
.aboutText.subtle { opacity: .8; }

.points { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .points { grid-template-columns: 1fr 1fr; } }
.points li { display: flex; gap: 8px; align-items: flex-start; }
.points .icon { color: var(--color-dark); opacity: .8; margin-top: 2px; }

.path { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-weight: 800; }
.path span { position: relative; }
.path span + span::before { content: '•'; margin: 0 8px; opacity: .5; }

.list { list-style: disc; padding-left: 18px; margin: 0; display: grid; gap: 6px; }
.about__tagline { margin-top: 16px; font-weight: 800; }

/* Flip card (Quem somos) */
.about--flipcard .flip, .about--clean .flip { width: 100%; height: clamp(180px, 32vw, 260px); margin: 8px auto 0; perspective: 1200px; }
.flip__inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.4,0,.2,1); cursor: pointer; }
.flip:hover .flip__inner, .flip:focus-within .flip__inner, .flip__inner.is-flipped { transform: rotateY(180deg); }
.flip__face { position: absolute; inset: 0; border-radius: 14px; border: 1px solid rgba(0,0,0,.06); box-shadow: var(--shadow); backface-visibility: hidden; display: grid; place-items: center; text-align: center; padding: 16px; }
.flip__face--front { background: var(--color-dark); color: #fff; }
.flip__face--front h3 { margin: 0; font-weight: 800; font-size: clamp(28px, 5.2vw, 44px); letter-spacing: .2px; }
.flip__face--back { background: #fff; color: var(--color-text); transform: rotateY(180deg); }
.flip__hint { text-align: center; opacity: .6; margin-top: 8px; font-size: 14px; }

/* Approach cards */
.approach-grid { display: grid; grid-template-columns: repeat(4, minmax(160px,1fr)); gap: 14px; margin-top: 8px; }
@media (max-width: 900px) { .approach-grid { grid-template-columns: repeat(2, minmax(160px,1fr)); } }
@media (max-width: 520px) { .approach-grid { grid-template-columns: 1fr; } }
.approach-card { perspective: 1000px; height: clamp(140px, 22vw, 180px); }
.approach-card__inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .6s cubic-bezier(.4,0,.2,1); }
.approach-card:hover .approach-card__inner, .approach-card:focus-within .approach-card__inner { transform: rotateY(180deg); }
.approach-card__face { position: absolute; inset: 0; border-radius: 12px; border: 1px solid rgba(0,0,0,.06); box-shadow: var(--shadow); backface-visibility: hidden; display: grid; place-items: center; text-align: center; padding: 16px; }
.approach-card__face--front { background: #fff; color: var(--color-text); font-weight: 800; font-size: 18px; }
.approach-card__face--back { background: var(--color-dark); color: #fff; transform: rotateY(180deg); }
.approach-card__face--back p { margin: 0; opacity: .95; }

/* V2 sections */
.aboutV2-hero { background: linear-gradient(180deg, rgba(45,41,38,.06), transparent 60%), #fff; padding: 48px 0 36px; }
.aboutV2-hero__inner { text-align: center; }
.aboutV2-hero__inner h2 { margin: 0 0 6px; font-weight: 800; font-size: clamp(22px, 4.2vw, 32px); }
.aboutV2-hero__inner p { margin: 0; opacity: .9; }
.aboutV2-hero__art { margin-top: 10px; opacity: .9; }
.aboutV2-hero__art svg { width: min(560px, 90%); height: auto; }

.aboutV2-twoCol { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: center; margin: 24px 0 8px; }
@media (min-width: 900px) { .aboutV2-twoCol { grid-template-columns: 1fr 1fr; } }
.aboutV2-text h3 { margin: 0 0 8px; font-weight: 800; }
.aboutV2-media img { width: 100%; height: auto; border-radius: 14px; box-shadow: var(--shadow); }

.values-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 8px; }
@media (min-width: 600px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .values-grid { grid-template-columns: repeat(5, 1fr); } }
.valueCard { background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 12px; padding: 16px; box-shadow: var(--shadow); transition: transform .2s ease, box-shadow .2s ease; }
.valueCard:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.valueCard__icon { font-size: 0; color: var(--color-dark); }
.valueCard__icon svg { width: 24px; height: 24px; }
.valueCard h4 { margin: 6px 0 4px; font-weight: 800; }
.valueCard p { margin: 0; opacity: .9; }

/* Valores: ícones 50% mais grossos */
.vcard__icon svg *, .vcard__icon * { stroke-width: .68 !important; }

.aboutV2-principles { background: #f6f7f9; border: 1px solid rgba(0,0,0,.04); border-radius: 12px; padding: 18px; margin: 24px 0; }
.aboutV2-principles h3 { margin: 0 0 8px; font-weight: 800; }
.aboutV2-principles ul { display: grid; grid-template-columns: 1fr; gap: 10px; padding: 0; margin: 0; list-style: none; }
@media (min-width: 900px) { .aboutV2-principles ul { grid-template-columns: 1fr 1fr; } }
.aboutV2-principles li { display: flex; gap: 10px; align-items: flex-start; }
.principleIcon { display: inline-grid; place-items: center; color: var(--color-dark); }

.aboutV2-final { background: linear-gradient(180deg, #ffffff 0%, #f6f7f9 100%); padding: 28px 0; }
.aboutFinal__title { text-align: center; margin: 0 0 14px; font-weight: 800; }
.final-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 900px) { .final-grid { grid-template-columns: 1fr 1fr; } }
.finalCard { background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 16px; padding: 22px; box-shadow: 0 4px 14px rgba(0,0,0,.04); transition: transform .2s ease, box-shadow .2s ease; }
.finalCard:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,.10); }
.finalCard h4 { margin: 0 0 8px; font-weight: 700; color: var(--color-dark); }
.finalCard p { margin: 0; line-height: 1.75; color: #4b5563; }
.aboutFinal__cta { margin-top: 16px; text-align: center; }

/* About 3 blocks (Identidade, Valor, Cultura) */
.about3-title { text-align: center; margin: 22px 0 8px; font-weight: 800; }
.about3-title--left { text-align: left; }
.about3-head { text-align: center; }
.kicker { font-weight: 800; letter-spacing: .18px; opacity: .7; font-size: 12px; text-transform: uppercase; margin: 0; }
.about3-subtitle { text-align: center; margin: 0 0 16px; opacity: .9; }
.about3-subtitle--left { text-align: left; }
.about3-intro { padding: 36px 0 48px; }
@media (max-width: 560px) { .about3-intro { padding: 16px 0 28px; } }
.about3-twoCol { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: center; margin-bottom: 6px; }
@media (min-width: 900px) { .about3-twoCol { grid-template-columns: 1.1fr .9fr; } }
.about3-media img { width: 100%; height: auto; border-radius: 14px; box-shadow: var(--shadow); }

/* Value flip cards (prod) */
.vcard { perspective: 1000px; height: clamp(220px, 24vw, 320px); position: relative; }
.vcard__inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .6s cubic-bezier(.4,0,.2,1) var(--flip-delay, 0s); }
.vcard:hover, .vcard:focus-within { --flip-delay: .2s; }
.vcard:hover .vcard__inner, .vcard:focus-within .vcard__inner { transform: rotateY(180deg); }
.vcard__face { position: absolute; inset: 0; border-radius: 14px; border: none; box-shadow: none; backface-visibility: hidden; display: grid; place-items: center; gap: 8px; padding: 16px; text-align: center; }
.vcard__face--front { background: #fff; color: var(--color-text); }
.vcard__face--front { background: #fff; color: var(--color-text); backface-visibility: visible; transition: opacity .25s ease; }
.vcard__face--front { grid-template-rows: 1fr auto 1fr; justify-items: center; }
.vcard__face--front .vcard__icon { grid-row: 2; align-self: center; }
.vcard__face--front .vcard__title { grid-row: 3; align-self: start; margin-top: 6px; }
.vcard:hover .vcard__face--front, .vcard:focus-within .vcard__face--front { opacity: .12; }
.vcard__face--back { background: color-mix(in srgb, var(--accent, #2d2926) 80%, transparent); color: #fff; transform: rotateY(180deg); filter: saturate(.45) brightness(.95); display: grid; text-align: left; justify-items: start; align-content: start; }
.vcard::before, .vcard__face--front::after { display: none !important; content: none !important; }
/* WOW border glow + shine sweep */
.vcard { position: relative; }
.vcard::before { content: ""; position: absolute; inset: -2px; padding: 2px; border-radius: 16px; background: conic-gradient(from 0deg, var(--accent, #2d2926), transparent 22%, var(--accent, #2d2926) 45%, transparent 68%, var(--accent, #2d2926) 90%, transparent 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: .0; transition: opacity .3s ease, filter .3s ease; filter: blur(0.6px); pointer-events: none; }
.vcard:hover::before, .vcard:focus-within::before { opacity: 1; filter: blur(1.2px); animation: vspin 2.8s linear infinite; }
@keyframes vspin { to { transform: rotate(1turn); } }
.vcard__face--front::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(255,255,255,0) 35%, rgba(255,255,255,.35) 50%, rgba(255,255,255,0) 65%); transform: translateX(-120%); transition: transform .9s cubic-bezier(.4,0,.2,1); pointer-events: none; }
.vcard:hover .vcard__face--front::after { transform: translateX(120%); }
.vcard__icon { color: var(--accent, var(--color-dark)); opacity: .6; position: relative; }
.vcard__icon svg { width: 101px; height: 101px; transform-origin: center; animation: iconFloat 4.8s ease-in-out infinite; }
.vcard:hover .vcard__icon svg, .vcard:focus-within .vcard__icon svg { animation: preflip .22s ease-out, iconFloat 1.8s ease-in-out infinite .22s; filter: drop-shadow(0 6px 16px rgba(0,0,0,.16)); }
.vcard .vcard__icon::after { content: ""; position: absolute; inset: -6px; border-radius: 999px; pointer-events: none; opacity: 0; }
.vcard:hover .vcard__icon::after, .vcard:focus-within .vcard__icon::after { animation: ring .22s ease-out; }
@keyframes preflip { 0% { transform: scale(1) rotate(0deg);} 60% { transform: scale(1.12) rotate(2deg);} 100% { transform: scale(1.02) rotate(0deg);} }
@keyframes ring { 0% { box-shadow: 0 0 0 0 rgba(45,41,38,.0), 0 0 0 0 rgba(45,41,38,.20); opacity: 1; } 100% { box-shadow: 0 0 0 12px rgba(45,41,38,.0), 0 0 10px 2px rgba(45,41,38,.10); opacity: 0; } }
@keyframes iconFloat { 0%,100% { transform: translateY(0) rotate(0deg);} 20% { transform: translateY(-3px) rotate(-1.2deg);} 50% { transform: translateY(0) rotate(1.2deg);} 80% { transform: translateY(2px) rotate(-.6deg);} }
.vcard__title { font-weight: 800; }

/* DNA stepper */
.dna-stepper { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 14px; padding: 18px 0 0; }
.dna-step { min-width: 0; }
.dna-stepper::before { content: ''; position: absolute; top: 18px; left: 8px; right: 8px; height: 2px; background: rgba(45,41,38,.15); }
.dna-step { text-align: center; }
.dna-badge { width: 36px; height: 36px; border-radius: 999px; background: #fff; color: var(--color-dark); border: 2px solid rgba(45,41,38,.25); display: inline-grid; place-items: center; font-weight: 800; margin-bottom: 8px; box-shadow: var(--shadow); }
.dna-stepper.is-animated .dna-badge { animation: badgeCycle 6s ease-in-out forwards; animation-delay: calc(var(--i) * 1.2s); }
.dna-text { margin: 0; opacity: .92; }
@media (max-width: 900px) { .dna-stepper { grid-template-columns: 1fr; } .dna-stepper::before, .dna-progress { display: none; } .dna-step { text-align: left; } }
@media (min-width: 600px) and (max-width: 899px) { .dna-stepper { grid-template-columns: repeat(5, minmax(0,1fr)); } }
/* Hover detail popover for each step */
.dna-step { position: relative; }
.dna-detail { position: absolute; top: 46px; left: 50%; transform: translate(-50%, 6px); width: 220px; background: #fff; color: var(--color-text); border: 1px solid rgba(0,0,0,.08); box-shadow: var(--shadow); border-radius: 10px; padding: 10px 12px; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; z-index: 3; }
.dna-step:hover .dna-detail, .dna-step:focus-within .dna-detail { opacity: 1; transform: translate(-50%, 0); }

/* Assinaturas + Selos */
.signatures { text-align: center; margin: 10px 0 14px; }
.signature { font-weight: 800; font-size: clamp(18px, 2.8vw, 22px); margin: 0; }
.signature--muted { font-weight: 600; opacity: .8; margin-top: 4px; }
.seals-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 8px; }
.seal { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 14px; padding: 16px; box-shadow: var(--shadow); display: grid; place-items: center; gap: 8px; color: var(--color-dark); }
.seal span { font-weight: 700; text-align: center; }
@media (max-width: 700px) { .seals-grid { grid-template-columns: 1fr; } }

/* Remover Assinaturas e Selos */
.values-grid + .about3-head, /* título 'Assinaturas' que vem após os valores */
.signatures,
.seals-grid { display: none !important; }
@keyframes progressGrow { from { width: 0 } to { width: calc(100% - 16px) } }
@keyframes badgeCycle { 0% { background:#fff;color:var(--color-dark);border-color:rgba(45,41,38,.25);transform:scale(1) } 10% { background:var(--color-dark);color:#fff;border-color:var(--color-dark);transform:scale(1.06) } 60% { background:var(--color-dark);color:#fff;border-color:var(--color-dark);transform:scale(1.06) } 100% { background:#fff;color:var(--color-dark);border-color:rgba(45,41,38,.25);transform:scale(1) } }

/* Cards */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.card { background: #fff; border: 1px solid rgba(0,0,0,0.06); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); }
.card__title { margin: 0 0 6px; font-weight: 800; }
.card__desc { margin: 0; opacity: 0.9; }

/* Form */
.form { display: grid; gap: 16px; max-width: 720px; }
.form__row { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .form__row { grid-template-columns: 1fr 1fr; } }
label { display: grid; gap: 6px; font-weight: 600; }
input, textarea { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(0,0,0,0.12); font: inherit; }
select { width: 100%; padding: 12px 38px 12px 14px; border-radius: 10px; border: 1px solid rgba(0,0,0,0.12); font: inherit; background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4 6l4 4 4-4' stroke='%232d2926' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 12px center/16px; appearance: none; -webkit-appearance: none; color: var(--color-text); }
/* Placeholder for required selects (value="") should be neutral gray */
select:invalid { color: #9ca3af; }
select option[disabled] { color: #9ca3af; }
.form__status { margin-top: 8px; font-weight: 700; }
.form__status--ok { color: #1a7f37; }
.form__status--err { color: #b3261e; }

/* Footer */
.footer { border-top: 1px solid rgba(0,0,0,0.06); padding: 48px 0; background: #fff; }
.footer__inner { display: grid; gap: 6px; align-items: center; justify-items: center; text-align: center; }
@media (min-width: 680px) { .footer__inner { grid-template-columns: 1fr auto; } }
.footer__copy { font-weight: 600; opacity: .7; letter-spacing: .2px; text-align: center; justify-self: center; grid-column: 1 / -1; font-size: clamp(12px, 1.6vw, 14px); }
.footer__powered { display: inline-flex; align-items: center; gap: 8px; opacity: .7; font-weight: 600; letter-spacing: .2px; justify-self: center; }
.footer__poweredLogo { height: 16px; width: auto; display: inline-block; filter: grayscale(0); opacity: .9; }
.muted { opacity: .7; }

/* Services — Steps Line + Towers */
.services .subhead { margin: 6px 0 10px; font-weight: 800; text-align: center; }
.process { margin-bottom: 18px; }
.stepsline { position: relative; display: flex; gap: 12px; align-items: center; justify-content: space-between; min-height: 120px; padding: 12px 4px; --bridge: clamp(48px, 10vw, 84px); --bridge-w: 3px; }
.stepsline::before, .stepsline::after { content: none; }
.stepsline .helix { position: absolute; inset: 0 0; height: 80px; top: 50%; transform: translateY(-50%); pointer-events: none; z-index: 0; }
.stepsline .helix path { fill: none; stroke-linecap: round; stroke-width: 3; filter: drop-shadow(0 2px 6px rgba(0,0,0,.08)); stroke-dasharray: 6 10; stroke-dashoffset: 240; }
.stepsline .helix .h-top { stroke: url(#hTop); }
.stepsline .helix .h-bot { stroke: url(#hBot); }
.stepsline.is-inview .helix path { animation: helixFlow 6s linear infinite; }
@keyframes helixFlow { to { stroke-dashoffset: 0; } }
.step { position: relative; z-index: 1; flex: 1 1 0; text-align: center; background: #fff; color: var(--color-dark); border: 2px solid var(--color-dark); border-radius: 999px; padding: 8px 10px; font-weight: 800; box-shadow: var(--shadow); transition: transform .12s ease, box-shadow .2s ease, background .2s ease; }
.step::after { content: ""; position: absolute; left: 50%; width: var(--bridge-w); height: var(--bridge); background: var(--color-dark); opacity: .55; transform-origin: top center; border-radius: 8px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.12)); z-index: 0; }
.step.up::after { top: 100%; transform: translateX(-50%) rotate(24deg); }
.step.down::after { bottom: 100%; transform: translateX(-50%) rotate(-24deg); transform-origin: bottom center; }
.step::before { content: ""; position: absolute; width: 8px; height: 8px; background: var(--color-dark); border-radius: 50%; left: calc(50% - 4px); z-index: 0; box-shadow: 0 1px 2px rgba(0,0,0,.15); }
.step.up::before { top: calc(100% + var(--bridge) - 4px); }
.step.down::before { top: calc(-1 * var(--bridge) - 4px); }
.stepsline.is-inview .step.up { animation: floatUp 3.6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * .12s); }
.stepsline.is-inview .step.down { animation: floatDown 3.8s ease-in-out infinite; animation-delay: calc(var(--i, 0) * .12s); }
@keyframes floatUp { 0%,100% { transform: translateY(-1px) } 50% { transform: translateY(-5px) } }
@keyframes floatDown { 0%,100% { transform: translateY(1px) } 50% { transform: translateY(5px) } }
.stepsline.is-inview .step { box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.stepsline.is-inview .step { animation-name: glowPulse, var(--extra, none); }
@keyframes glowPulse { 0%,100% { box-shadow: 0 6px 22px rgba(0,0,0,.10), 0 0 0 0 rgba(45,41,38,.0) } 50% { box-shadow: 0 10px 28px rgba(0,0,0,.16), 0 0 0 4px rgba(45,41,38,.08) } }
.step.up { margin-top: -16px; }
.step.down { margin-top: 16px; }
.step:hover { transform: translateY(-1px) scale(1.02); box-shadow: 0 6px 22px rgba(0,0,0,.12); }
.step:active { transform: translateY(0) scale(.99); }
.step:not(:last-child)::after { content: ""; position: absolute; right: -6px; top: 50%; width: 12px; height: 4px; background: var(--color-dark); transform: translateY(-50%); }
@media (max-width: 700px) {
  .stepsline { flex-direction: column; align-items: stretch; }
  .stepsline::before { left: 50%; right: auto; width: 4px; height: calc(100% - 20px); top: 10px; transform: none; }
  .step { margin-left: 10px; text-align: left; }
  .step:not(:last-child)::after { right: auto; left: -6px; top: auto; bottom: -6px; width: 4px; height: 12px; transform: none; }
}
.services-hero { text-align: center; margin-bottom: 18px; }
.services-hero__title { margin: 0 0 8px; font-weight: 900; font-size: clamp(22px, 4.6vw, 36px); line-height: 1.1; background: linear-gradient(90deg, #2d2926, rgba(45,41,38,.8)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.services-hero__subtitle { margin: 0 auto; max-width: 880px; opacity: .9; font-weight: 600; font-size: clamp(14px, 2.5vw, 18px); }
@media (hover: hover) and (pointer: fine) { .services { padding-bottom: clamp(120px, 12vw, 160px); } }
.towers-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; perspective: 1000px; }
@media (max-width: 900px) { .towers-grid { grid-template-columns: 1fr; } }
.tower { position: relative; background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 14px; padding: 16px; box-shadow: var(--shadow); overflow: hidden; --mx: 50%; --my: 50%; --accent: #2d2926; transform-style: preserve-3d; }
.tower::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(320px 220px at var(--mx) var(--my), rgba(255,255,255,.55), rgba(255,255,255,0) 60%); opacity: 0; transition: opacity .25s ease; }
.tower:hover::after { opacity: .9; }
.tower::before { content: none; }
@keyframes spin { to { transform: rotate(1turn); } }
.tower:hover { box-shadow: 0 14px 44px rgba(0,0,0,.16), 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent); }
.tower__icon { position: relative; width: 44px; height: 44px; border-radius: 10px; border: 1px solid rgba(0,0,0,.06); background: radial-gradient(circle at 30% 30%, rgba(0,0,0,.03), #fff); box-shadow: var(--shadow); display: inline-grid; place-items: center; color: var(--accent); margin-bottom: 8px; transform: translateZ(12px); }
.tower__icon::after { content: ""; position: absolute; inset: -6px; border-radius: 12px; border: 2px solid currentColor; opacity: .18; transform: scale(.85); transition: transform .25s ease, opacity .25s ease; }
.tower:hover .tower__icon::after { opacity: .4; transform: scale(1.05); }
.tower__icon svg { width: 24px; height: 24px; }
.tower h4 { margin: 0 0 8px; font-weight: 800; }
.tower ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; }

/* Hide legacy cards */
#servicos .cards { display: none !important; }

/* Services — Tower Sections */
.tower-sections { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(14px, 2vw, 18px); align-items: stretch; }
@media (max-width: 900px) { .tower-sections { grid-template-columns: 1fr; } }
@media (min-width: 1400px) { .tower-sections { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.tower-section { position: relative; margin: 22px -10px; border: 0; border-radius: 0; padding: clamp(16px, 2.8vw, 28px); background: transparent; overflow: visible; 
  /* Parallax defaults */
  --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%;
}
.tower-section::after { content: none; }
.tower-section:hover::after { opacity: 0; }
.tower-section { perspective: 1300px; }
.tower-flip { position: relative; transform-style: preserve-3d; transition: transform .9s cubic-bezier(.2,.8,.2,1), filter .5s; min-height: 220px; transform: rotateY(0deg); }
.tower-section:hover .tower-flip { transform: rotateY(180deg) rotateX(2deg) scale(1.02); animation: flipSwing .8s cubic-bezier(.2,.8,.2,1); }
.tower-section.is-flipped .tower-flip { transform: rotateY(180deg) rotateX(2deg) scale(1.02); }
.tower-face { position: relative; backface-visibility: hidden; transform-style: preserve-3d; }
.tower-face--front::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.12) 48%, transparent 76%); transform: translateX(-140%); opacity: .0; }
.tower-section:hover .tower-face--front::after { animation: faceSheen 950ms ease-in-out forwards; }
.tower-face--front .tower-orb { transform: none; transition: none; }
.tower-face--front .tower-content { transform: none; transition: none; }
.tower-section:hover .tower-face--front .tower-orb { transform: none; filter: none; }
.tower-section:hover .tower-face--front .tower-content { transform: none; }
.tower-section:hover { filter: saturate(1.02); }
.tower-face--back { position: absolute; inset: 0; border-radius: inherit; display: grid; place-items: center; transform: rotateY(180deg); background: transparent; padding: clamp(16px, 2.8vw, 28px); }
.tower-back { width: 100%; max-width: 100%; margin: 0 auto; background: color-mix(in srgb, var(--accent) 88%, #000); color: #fff; border: 2px solid color-mix(in srgb, #ffffff 30%, var(--accent) 70%); border-radius: 16px; padding: clamp(16px, 2.4vw, 22px); box-shadow: 0 12px 28px color-mix(in srgb, var(--accent) 28%, transparent); }
@keyframes flipSwing { 0% { transform: rotateY(0deg) rotateX(0deg) scale(1) } 60% { transform: rotateY(192deg) rotateX(3deg) scale(1.02) } 100% { transform: rotateY(180deg) rotateX(2deg) scale(1.02) } }
@keyframes faceSheen { to { transform: translateX(140%); opacity: .22 } }
.tower-face--back { position: absolute; inset: 0; border-radius: inherit; display: grid; place-items: center; transform: rotateY(180deg); background: transparent; padding: clamp(16px, 2.8vw, 28px); }
.tower-back { width: 100%; max-width: 100%; margin: 0 auto; }
.tower-back { display: grid; gap: 10px; text-align: left; }
.tower-face--back .tower-title { color: #fff; }
.tower-face--back .tower-fact__title { color: #fff; }
.tower-face--back .tower-fact__desc { color: #fff; opacity: .95; }
.tower-desc { margin: 0; font-size: clamp(14px, 2.1vw, 16px); line-height: 1.6; color: var(--color-text); }
.tower-backlist { margin: 8px auto 0; max-width: 56ch; padding-left: 18px; display: grid; gap: 8px; text-align: left; }
.tower-face--back .tower-desc,
.tower-face--back .tower-backlist { font-size: .85em; }
.tower-facts { margin: 8px auto 0; max-width: 56ch; display: grid; gap: 10px; text-align: center; }
.tower-face--back .tower-facts { font-size: .85em; }
.tower-fact__title { font-weight: 900; font-size: calc(1em + 2px); }
.tower-fact__desc { opacity: .95; }
.tower-section { margin: 0 -10px; display: grid; }
.tower-section::before { content: none; }
.tower-section__inner { display: grid; grid-template-columns: 1fr; gap: clamp(16px, 2.8vw, 28px); align-items: center; }
.tower-media { position: relative; display: grid; place-items: center; min-height: 180px; }
.orb-wrap { position: relative; display: grid; place-items: center; animation: none !important; transform: none !important; }
@keyframes orbDrift { }
.tower-orb { position: relative; width: clamp(160px, 28vw, 240px); height: clamp(160px, 28vw, 240px); border-radius: 999px; 
  background: radial-gradient(140% 100% at 30% 28%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.55) 18%, rgba(255,255,255,0) 42%),
    radial-gradient(120% 100% at 70% 80%, rgba(0,0,0,.22) 0%, rgba(0,0,0,0) 52%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent) 34%, #ffffff) 0%, color-mix(in srgb, var(--accent) 78%, #000000) 100%);
  box-shadow: inset 0 -18px 36px rgba(0,0,0,.18), inset 0 14px 26px rgba(255,255,255,.18), 0 8px 24px rgba(0,0,0,.08);
  display: grid; place-items: center; overflow: hidden; }
.orb-skin { animation: none !important; transform: none !important; }
@keyframes planetYaw { }
.tower-orb.is-wow { animation: orbWowPop 900ms cubic-bezier(.2,.8,.2,1) 10ms both; box-shadow: inset 0 -18px 36px rgba(0,0,0,.18), inset 0 14px 26px rgba(255,255,255,.18), 0 12px 36px rgba(0,0,0,.16); }
.tower-orb.is-wow::after { content: ""; position: absolute; inset: -10%; border-radius: inherit; pointer-events: none; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 44%, rgba(255,255,255,0) 60%); transform: translateX(-140%) rotate(12deg); animation: orbWowGlint 1200ms ease-out 60ms forwards; }
.tower-orb.is-wow::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; border: 2px solid color-mix(in srgb, var(--accent) 50%, #ffffff); opacity: .55; filter: blur(.2px); transform: scale(.6); animation: orbWowRing 950ms cubic-bezier(.2,.8,.2,1) 0ms forwards; }
@keyframes orbWowPop { 0% { transform: scale(.9) } 55% { transform: scale(1.08) } 82% { transform: scale(.98) } 100% { transform: scale(1) } }
@keyframes orbWowGlint { 0% { transform: translateX(-140%) rotate(12deg); opacity: .0 } 12% { opacity: .9 } 100% { transform: translateX(140%) rotate(12deg); opacity: 0 } }
@keyframes orbWowRing { 0% { transform: scale(.6); opacity: .6 } 70% { transform: scale(1.15); opacity: .0 } 100% { transform: scale(1.2); opacity: 0 } }
/* Hover fallback triggers same WOW sequence */
.tower-orb:hover { animation: orbWowPop 900ms cubic-bezier(.2,.8,.2,1) 10ms both; box-shadow: inset 0 -18px 36px rgba(0,0,0,.18), inset 0 14px 26px rgba(255,255,255,.18), 0 12px 36px rgba(0,0,0,.16); }
.tower-orb:hover::after { content: ""; position: absolute; inset: -10%; border-radius: inherit; pointer-events: none; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 44%, rgba(255,255,255,0) 60%); transform: translateX(-140%) rotate(12deg); animation: orbWowGlint 1200ms ease-out 60ms forwards; }
.tower-orb:hover::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; border: 2px solid color-mix(in srgb, var(--accent) 50%, #ffffff); opacity: .55; filter: blur(.2px); transform: scale(.6); animation: orbWowRing 950ms cubic-bezier(.2,.8,.2,1) 0ms forwards; }
/* Trigger WOW on flip (hover or persistent flip) */
.tower-section:hover .tower-orb,
.tower-section.is-flipped .tower-orb { animation: orbWowPop 900ms cubic-bezier(.2,.8,.2,1) 10ms both; box-shadow: inset 0 -18px 36px rgba(0,0,0,.18), inset 0 14px 26px rgba(255,255,255,.18), 0 12px 36px rgba(0,0,0,.16); }
.tower-section:hover .tower-orb::after,
.tower-section.is-flipped .tower-orb::after { content: ""; position: absolute; inset: -10%; border-radius: inherit; pointer-events: none; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 44%, rgba(255,255,255,0) 60%); transform: translateX(-140%) rotate(12deg); animation: orbWowGlint 1200ms ease-out 60ms forwards; }
.tower-section:hover .tower-orb::before,
.tower-section.is-flipped .tower-orb::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; border: 2px solid color-mix(in srgb, var(--accent) 50%, #ffffff); opacity: .55; filter: blur(.2px); transform: scale(.6); animation: orbWowRing 950ms cubic-bezier(.2,.8,.2,1) 0ms forwards; }
@media (prefers-reduced-motion: reduce) { .tower-orb.is-wow, .tower-orb.is-wow::before, .tower-orb.is-wow::after { animation: none !important; } }
/* Mobile polish: spacing + lighter effects */
@media (max-width: 360px) { .container { width: calc(100% - 32px); } }
@media (max-width: 400px) {
  .tower-section:focus-visible { outline: 2px solid var(--color-dark); outline-offset: 4px; border-radius: 12px; }
  .tower-orb,
  .tower-orb.is-wow,
  .tower-orb:hover,
  .tower-section:hover .tower-orb,
  .tower-section.is-flipped .tower-orb { box-shadow: inset 0 -12px 22px rgba(0,0,0,.14), inset 0 10px 18px rgba(255,255,255,.14), 0 6px 18px rgba(0,0,0,.12); }
  .tower-orb.is-wow::before,
  .tower-section:hover .tower-orb::before,
  .tower-section.is-flipped .tower-orb::before { border-width: 1px; }
  .tower-orb.is-wow::after,
  .tower-section:hover .tower-orb::after,
  .tower-section.is-flipped .tower-orb::after { opacity: .45; }
}
.tower-orb::before { content: ""; position: absolute; inset: -6px; border-radius: 999px; background: radial-gradient(120% 80% at 28% 24%, rgba(255,255,255,.35) 0%, rgba(255,255,255,0) 55%); pointer-events: none; }
.tower-orb::after { content: none; animation: none; }
@keyframes orbSpin { to { transform: rotate(1turn) } }
.orb-sheen { display: none !important; animation: none !important; }
.orb-sheen--b { display: none !important; animation: none !important; }
@keyframes sheenSweep { 0% { background-position: 360px 0 } 100% { background-position: -360px 0 } }
.orb-bands { position: absolute; inset: -2px; border-radius: 999px; pointer-events: none; mix-blend-mode: overlay; opacity: .55; transform: rotateX(var(--tilt, 20deg)); background: repeating-linear-gradient(0deg, color-mix(in srgb, var(--accent) 34%, transparent) 0 8px, color-mix(in srgb, var(--accent) 18%, transparent) 8px 16px, transparent 16px 24px), repeating-linear-gradient(0deg, color-mix(in srgb, var(--accent) 22%, transparent) 0 12px, transparent 12px 24px); background-size: 320px 100%, 420px 100%; background-position: 0 0, 160px 0; filter: blur(.6px) saturate(.95); animation: bandsDrift calc(var(--spin, 4s) * .85) linear infinite; animation-delay: var(--delay, 0s); }
@keyframes bandsDrift { to { background-position: -640px 0, -720px 0 } }
.orb-poles { position: absolute; inset: 0; border-radius: 999px; pointer-events: none; mix-blend-mode: screen; opacity: .45; background: radial-gradient(80% 40% at 50% -10%, rgba(255,255,255,.20), transparent 65%), radial-gradient(80% 40% at 50% 110%, rgba(255,255,255,.16), transparent 65%); }
.orb-orbit { position: absolute; inset: 0; border-radius: 999px; pointer-events: none; transform: rotateX(var(--tilt, 20deg)); }
.orb-orbit--b { transform: rotateX(var(--tilt, 20deg)) rotateZ(36deg); }
.orb-orbit::before { content: ""; position: absolute; inset: 10px; border-radius: 999px; border: 1px dashed color-mix(in srgb, var(--accent) 32%, transparent); opacity: .16; filter: blur(.2px); }
.orb-sat { position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 999px; background: #fff; box-shadow: 0 0 10px #fff, 0 0 16px color-mix(in srgb, var(--accent) 50%, transparent), 0 0 26px color-mix(in srgb, var(--accent) 30%, transparent); transform: translate(-50%, -50%) rotate(0) translateX(var(--rA, 48px)) rotate(0); animation: satOrbit var(--satA, 5s) linear infinite; }
.orb-sat--b { width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; transform: translate(-50%, -50%) rotate(0) translateX(var(--rB, 64px)) rotate(0); animation-duration: var(--satB, 7s); opacity: .9; }
@keyframes satOrbit { to { transform: translate(-50%, -50%) rotate(1turn) translateX(var(--rA, 48px)) rotate(-1turn); } }
.tower-section:hover .tower-orb::after,
.tower-section:hover .orb-bands,
.tower-section:hover .orb-sheen,
.tower-section:hover .orb-orbit .orb-sat,
.tower-section:focus-within .tower-orb::after,
.tower-section:focus-within .orb-bands,
.tower-section:focus-within .orb-sheen,
.tower-section:focus-within .orb-orbit .orb-sat { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .tower-orb::after, .orb-bands, .orb-sheen, .orb-orbit .orb-sat { animation: none !important; }
  .orb-aurora, .orb-orbit, .orb-poles { display: none !important; }
}
.orb-aurora, .orb-aurora--a, .orb-aurora--b { display: none !important; animation: none !important; }
.orb-orbit, .orb-orbit--b, .orb-sat, .orb-sat--b { display: none !important; animation: none !important; }
.orb-ring { position: absolute; inset: -6px; border-radius: 999px; color: var(--accent); pointer-events: none; z-index: 2; }
.orb-ring::after { content: ""; position: absolute; top: -7px; left: 50%; width: 10px; height: 10px; margin-left: -5px; border-radius: 999px; background: #fff; box-shadow: 0 0 10px #fff, 0 0 18px color-mix(in srgb, currentColor 60%, transparent), 0 0 36px color-mix(in srgb, currentColor 45%, transparent); }
.orb-ring--a { animation: orbit 3.4s linear infinite; }
.orb-ring--b { inset: -12px; opacity: .85; animation: orbit-rev 5s linear infinite; }
@keyframes orbit { to { transform: rotate(1turn) } }
@keyframes orbit-rev { to { transform: rotate(-1turn) } }
.tower-orb svg { width: clamp(40px, 6vw, 64px); height: clamp(40px, 6vw, 64px); color: #fff; filter: drop-shadow(0 1px 1px rgba(0,0,0,.28)); }
.planet-icon { position: relative; z-index: 3; display: grid; place-items: center; }
.planet-icon--consultoria, .planet-icon--sustentacao, .planet-icon--esteira { animation: iconPulse 1.8s ease-in-out infinite; }
@keyframes iconPulse { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) } }
@keyframes iconSpin { to { transform: rotate(1turn) } }
@media (prefers-reduced-motion: reduce) { .planet-icon--consultoria, .planet-icon--sustentacao, .planet-icon--esteira { animation: none !important; } }
.tower-orb img.orb-icon { width: clamp(44px, 7vw, 72px); height: auto; display: block; }
.tower-content { position: relative; text-align: center; }
.tower-title { margin: 0 0 10px; font-weight: 900; font-size: clamp(20px, 3.6vw, 28px); text-align: center; }
.tower-tagline { margin: 6px auto 0; max-width: 42ch; opacity: .9; font-weight: 600; }
.tower-list { margin: 0 0 14px; padding-left: 0; list-style: none; display: grid; gap: 8px; justify-items: center; }
.tower-back { text-align: center; }
/* CTA removida por solicitação */
/* vertical layout */
/* remain vertical on all sizes */
/* icon style toggle removed */
.planet-ring { position: absolute; left: -20%; top: 50%; width: 140%; height: 42%; border-radius: 50%; border: 3px solid color-mix(in srgb, var(--accent) 55%, #fff); filter: blur(.3px) saturate(.9); transform: rotateX(var(--tilt, 26deg)) rotateZ(24deg) scale(.8); opacity: 0; transition: opacity .4s ease, transform .6s cubic-bezier(.2,.8,.2,1); pointer-events: none; z-index: 1; }
.tower-orb.is-wow .planet-ring,
.tower-section:hover .planet-ring,
.tower-section.is-flipped .planet-ring { opacity: .9; transform: rotateX(var(--tilt, 26deg)) rotateZ(24deg) scale(1); }
.tower-orb.is-wow .orb-aurora, .tower-section:hover .orb-aurora, .tower-section.is-flipped .orb-aurora { display: block !important; }
.tower-orb.is-wow .orb-aurora.orb-aurora--a, .tower-orb.is-wow .orb-aurora.orb-aurora--b { opacity: .8; }
.tower-orb.is-wow .orb-bands, .tower-orb.is-wow .orb-poles { opacity: 1; }
.orb-aurora, .orb-bands, .orb-poles { opacity: 0; transition: opacity .35s ease; }
.tower-section:hover .orb-bands, .tower-section:hover .orb-poles,
.tower-section.is-flipped .orb-bands, .tower-section.is-flipped .orb-poles { opacity: 1; }
.tower-orb.is-wow .orb-sheen, .tower-orb.is-wow .orb-sheen--b,
.tower-section:hover .orb-sheen, .tower-section:hover .orb-sheen--b,
.tower-section.is-flipped .orb-sheen, .tower-section.is-flipped .orb-sheen--b { display: block !important; }

/* Material variants: map slugs to materials (consultoria => metal, esteira => copper, sustentacao => glass) */
.tower--consultoria .tower-orb { /* Metal */
  background:
    radial-gradient(140% 100% at 30% 28%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.50) 18%, rgba(255,255,255,0) 44%),
    radial-gradient(120% 100% at 70% 80%, rgba(0,0,0,.24) 0%, rgba(0,0,0,0) 56%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, #A9B3C3 40%, var(--accent)) 0%, color-mix(in srgb, #2B3038 70%, var(--accent)) 100%);
  box-shadow: inset 0 -16px 32px rgba(0,0,0,.20), inset 0 18px 28px rgba(255,255,255,.20), 0 8px 24px rgba(0,0,0,.10);
}
.tower--consultoria .tower-orb::after { content: ""; position: absolute; inset: -6px; border-radius: 999px; pointer-events: none;
  background:
    conic-gradient(from 0deg,
      rgba(255,255,255,.10) 0deg, rgba(255,255,255,0) 36deg,
      rgba(255,255,255,.06) 110deg, rgba(255,255,255,0) 180deg,
      rgba(255,255,255,.08) 240deg, rgba(255,255,255,0) 320deg,
      rgba(255,255,255,.10) 360deg);
  mix-blend-mode: screen; opacity: .6; filter: blur(6px) saturate(.95);
  animation: orbit 24s linear infinite;
}

.tower--esteira .tower-orb { /* Copper */
  background:
    radial-gradient(140% 100% at 30% 28%, rgba(255,248,232,.95) 0%, rgba(255,240,220,.55) 18%, rgba(255,255,255,0) 42%),
    radial-gradient(120% 100% at 70% 80%, rgba(0,0,0,.20) 0%, rgba(0,0,0,0) 52%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, #D1843A 50%, var(--accent)) 0%, color-mix(in srgb, #6E3B1F 70%, var(--accent)) 100%);
  box-shadow: inset 0 -18px 34px rgba(0,0,0,.22), inset 0 14px 24px rgba(255,230,200,.24), 0 10px 26px rgba(0,0,0,.12);
}
.tower--esteira .tower-orb::after { content: ""; position: absolute; inset: -6px; border-radius: 999px; pointer-events: none;
  background:
    conic-gradient(from 24deg,
      rgba(255,220,160,.18) 0deg, rgba(255,255,255,0) 40deg,
      rgba(255,205,140,.12) 120deg, rgba(255,255,255,0) 180deg,
      rgba(255,215,150,.16) 260deg, rgba(255,255,255,0) 320deg,
      rgba(255,220,160,.18) 360deg);
  mix-blend-mode: screen; opacity: .65; filter: blur(8px) saturate(1.02);
  animation: orbit-rev 26s linear infinite;
}

.tower--sustentacao .tower-orb { /* Glass — tinted green */
  background:
    radial-gradient(120% 90% at 32% 26%, rgba(255,255,255,.85) 0%, rgba(255,255,255,.35) 18%, rgba(255,255,255,0) 42%),
    radial-gradient(120% 100% at 70% 80%, rgba(0,0,0,.12) 0%, rgba(0,0,0,0) 52%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent) 60%, #ffffff) 0%, color-mix(in srgb, var(--accent) 40%, #000000) 100%);
  border: 1px solid color-mix(in srgb, var(--accent) 40%, #ffffff);
  box-shadow: inset 0 -12px 26px rgba(0,0,0,.12), inset 0 18px 30px rgba(255,255,255,.26), 0 10px 24px rgba(0,0,0,.08);
  backdrop-filter: blur(6px) saturate(1.15);
}
.tower--sustentacao .tower-orb::after { content: ""; position: absolute; inset: -8px; border-radius: 999px; pointer-events: none;
  background: radial-gradient(90% 70% at 30% 28%, rgba(255,255,255,.35), rgba(255,255,255,0) 60%);
  mix-blend-mode: screen; opacity: .7; filter: blur(10px);
  animation: none;
}

.tower-section.tower--consultoria:hover .tower-orb,
.tower-section.tower--esteira:hover .tower-orb,
.tower-section.tower--sustentacao:hover .tower-orb { filter: none; }

/* Base orb: simple 2D sphere (no WOW) with accent tint */
.tower-orb { position: relative; width: clamp(120px, 36vw, 180px); height: clamp(120px, 36vw, 180px); border-radius: 999px; 
  background:
    radial-gradient(130% 90% at 30% 28%, rgba(255,255,255,.92) 0%, rgba(255,255,255,.42) 18%, rgba(255,255,255,0) 44%),
    radial-gradient(110% 90% at 70% 80%, rgba(0,0,0,.18) 0%, rgba(0,0,0,0) 52%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent) 32%, #ffffff) 0%, color-mix(in srgb, var(--accent) 70%, #000000) 100%);
  box-shadow: inset 0 -14px 28px rgba(0,0,0,.16), inset 0 12px 22px rgba(255,255,255,.16), 0 6px 18px rgba(0,0,0,.08);
  display: grid; place-items: center; overflow: hidden; transform: none;
}
.tower-orb::before { content: ""; position: absolute; inset: -4px; border-radius: inherit; pointer-events: none;
  background: radial-gradient(120% 80% at 28% 24%, rgba(255,255,255,.35) 0%, rgba(255,255,255,0) 55%);
}
/* No animations on hover/flip */
.tower-section:hover .tower-orb, .tower-section.is-flipped .tower-orb { animation: none !important; }

/* Disable 3D flip on touch devices; stack content */
@media (hover: none), (pointer: coarse) {
  .tower-flip { transform: none !important; min-height: unset; }
  .tower-section.is-flipped .tower-flip, .tower-section:hover .tower-flip { transform: none !important; }
  .tower-face--front, .tower-face--back { position: static; transform: none !important; backface-visibility: visible; }
  .tower-back { background: color-mix(in srgb, var(--accent) 12%, #fff); border: 1px solid color-mix(in srgb, var(--accent) 26%, #fff); box-shadow: none; padding: 14px; margin-top: 10px; color: var(--color-text); text-align: center; border-radius: 12px; }
  .tower-face--back .tower-title { display: none; }
  .tower-face--back .tower-fact__title,
  .tower-face--back .tower-fact__desc,
  .tower-face--back .tower-title { color: var(--color-text) !important; opacity: 1; }
  .tower-tagline { max-width: 52ch; }
}
