/* ═══════════════════════════════════════════
   CARVALHO FALCÃO ASSESSORIA
   Design System — Clean & Elegant v2
   ═══════════════════════════════════════════ */

/* ── TOKENS ── */
:root {
  /* Brand */
  --brand:       #2d5a9e;
  --brand-dark:  #1e3a6e;
  --brand-mid:   #3969b8;
  --brand-soft:  rgba(45, 90, 158, 0.08);
  --brand-glow:  rgba(45, 90, 158, 0.22);

  /* Neutrals */
  --ink:         #0f1623;
  --ink-2:       #1c2333;
  --body:        #374151;
  --muted:       #6b7280;
  --border:      #e5e9f0;
  --surface:     #f7f9fc;
  --white:       #ffffff;

  /* Accents */
  --green:       #10b981;
  --wa-green:    #25d366;

  /* Shadows */
  --sh-xs: 0 1px 4px rgba(0,0,0,.06);
  --sh-sm: 0 2px 12px rgba(0,0,0,.08);
  --sh-md: 0 8px 32px rgba(0,0,0,.10);
  --sh-lg: 0 20px 56px rgba(0,0,0,.14);
  --sh-brand: 0 8px 28px rgba(45,90,158,.28);
  --sh-brand-lg: 0 16px 48px rgba(45,90,158,.36);

  /* Radii */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-full: 9999px;

  /* Transitions */
  --ease: cubic-bezier(.4,0,.2,1);
  --t-fast: .15s var(--ease);
  --t-base: .25s var(--ease);
  --t-slow: .4s  var(--ease);

  /* Spacing */
  --section-v: 96px;
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--body);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
img { display: block; max-width: 100%; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; font-size: inherit; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 4px; }

/* ── LAYOUT UTILS ── */
.container {
  max-width: 1160px;
  margin-inline: auto;
  padding-inline: 24px;
}
.section {
  padding-block: var(--section-v);
  position: relative;
  overflow: hidden;
}
.section-alt { background: var(--surface); }

/* ── TYPOGRAPHY SYSTEM ── */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brand);
  background: var(--brand-soft);
  border: 1px solid rgba(45,90,158,.14);
  padding: 5px 14px;
  border-radius: var(--r-full);
  margin-bottom: 18px;
}
.section-title {
  font-size: clamp(1.85rem, 3.8vw, 2.6rem);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.15;
  letter-spacing: -.025em;
  margin-bottom: 14px;
}
.section-title span { color: var(--brand); }
.section-desc {
  font-size: 1rem;
  color: var(--muted);
  max-width: 560px;
  line-height: 1.75;
  margin-bottom: 56px;
}

/* ── BUTTONS ── */
.cta-primary {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--brand);
  color: var(--white);
  font-size: .95rem;
  font-weight: 700;
  padding: 13px 28px;
  border-radius: var(--r-full);
  transition: background var(--t-base), transform var(--t-base), box-shadow var(--t-base);
  box-shadow: var(--sh-brand);
}
.cta-primary:hover {
  background: var(--brand-dark);
  transform: translateY(-2px);
  box-shadow: var(--sh-brand-lg);
  color: var(--white);
}
.cta-primary:active { transform: translateY(0); }
.cta-sm { font-size: .85rem; padding: 10px 22px; }

.cta-ghost {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  color: var(--white);
  font-size: .95rem;
  font-weight: 600;
  padding: 13px 28px;
  border-radius: var(--r-full);
  backdrop-filter: blur(12px);
  transition: background var(--t-base), border-color var(--t-base), transform var(--t-base);
}
.cta-ghost:hover {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.48);
  transform: translateY(-2px);
  color: var(--white);
}

/* ════════════════════════════════
   NAVBAR
════════════════════════════════ */
.navbar {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  padding: 14px 0;
  transition: background var(--t-base), padding var(--t-base), box-shadow var(--t-base);
}
.navbar.scrolled {
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(20px) saturate(180%);
  padding: 8px 0;
  box-shadow: 0 1px 0 var(--border), var(--sh-sm);
}
.nav-inner {
  max-width: 1160px;
  margin-inline: auto;
  padding-inline: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* Brand */
.nav-logo-wrapper {
  position: relative;
  width: 220px;
  height: 60px;
  transition: all var(--t-base);
}
.navbar.scrolled .nav-logo-wrapper {
  width: 170px;
  height: 46px;
}
.nav-logo-img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity var(--t-base);
}
.logo-light { opacity: 1; visibility: visible; }
.logo-dark { opacity: 0; visibility: hidden; }

.navbar.scrolled .logo-light { opacity: 0; visibility: hidden; }
.navbar.scrolled .logo-dark { opacity: 1; visibility: visible; }

.nav-brand-text { display: none; }
.nav-brand-name {
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .06em;
  color: var(--white);
}
.navbar.scrolled .nav-brand-name { color: var(--brand-dark); }
.nav-brand-sub {
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-top: 3px;
}
.navbar.scrolled .nav-brand-sub { color: var(--muted); }

/* Menu */
.nav-menu {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  justify-content: center;
}
.nav-item {
  font-size: .875rem;
  font-weight: 500;
  color: rgba(255,255,255,.80);
  padding: 7px 13px;
  border-radius: var(--r-sm);
  transition: color var(--t-fast), background var(--t-fast);
  position: relative;
}
.navbar.scrolled .nav-item { color: var(--muted); }
.nav-item:hover,
.nav-item.active {
  color: var(--white);
  background: rgba(255,255,255,.14);
}
.navbar.scrolled .nav-item:hover,
.navbar.scrolled .nav-item.active {
  color: var(--brand);
  background: var(--brand-soft);
}

/* Actions */
.nav-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.nav-portal-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--white);
  background: var(--brand);
  padding: 8px 18px;
  border-radius: var(--r-full);
  transition: background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  box-shadow: var(--sh-brand);
  white-space: nowrap;
}
.nav-portal-btn:hover {
  background: var(--brand-dark);
  transform: translateY(-1px);
  box-shadow: var(--sh-brand-lg);
  color: var(--white);
}

/* Hamburger */
.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 6px;
  border-radius: var(--r-sm);
}
.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--white);
  border-radius: 2px;
  transition: transform var(--t-base), opacity var(--t-base);
}
.navbar.scrolled .nav-toggle span { background: var(--ink); }
.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ════════════════════════════════
   HERO
════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}

/* Background layers */
.hero-canvas { position: absolute; inset: 0; pointer-events: none; }
.hero-gradient {
  position: absolute; inset: 0;
  background: linear-gradient(145deg, #08122e 0%, #152448 30%, #1e3a6e 60%, #2d5a9e 100%);
}
.hero-mesh {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 25% 55%, rgba(61,105,184,.35) 0%, transparent 55%),
    radial-gradient(circle at 78% 18%, rgba(45,90,158,.20) 0%, transparent 45%);
}
.hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  animation: orb-drift ease-in-out infinite;
}
.orb-1 { width: 380px; height: 380px; background: rgba(45,90,158,.25); top: -80px; right: 10%; animation-duration: 18s; animation-delay: 0s; }
.orb-2 { width: 260px; height: 260px; background: rgba(30,58,110,.30); bottom: 5%;  left:  8%; animation-duration: 14s; animation-delay: -6s; }
.orb-3 { width: 180px; height: 180px; background: rgba(61,105,184,.20); top:  40%; left: 50%; animation-duration: 22s; animation-delay: -11s; }
@keyframes orb-drift {
  0%,100% { transform: translate(0,0) scale(1); }
  33%      { transform: translate(20px,-30px) scale(1.06); }
  66%      { transform: translate(-15px, 20px) scale(.95); }
}

/* Hero content */
.hero-body {
  position: relative;
  z-index: 10;
  max-width: 800px;
  padding: 0 24px;
  padding-top: 90px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .07em;
  color: rgba(255,255,255,.80);
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  padding: 7px 18px;
  border-radius: var(--r-full);
  margin-bottom: 28px;
  backdrop-filter: blur(8px);
}
.hero-pulse {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 0 rgba(74,222,128,.5);
  animation: pulse-ring 2.4s ease infinite;
}
@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(74,222,128,.5); }
  70%  { box-shadow: 0 0 0 8px rgba(74,222,128,0); }
  100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
}

.hero-heading {
  font-size: clamp(2.6rem, 5.5vw, 4.2rem);
  font-weight: 900;
  color: var(--white);
  line-height: 1.08;
  letter-spacing: -.03em;
  margin-bottom: 22px;
}
.hero-emphasis {
  font-style: normal;
  background: linear-gradient(95deg, #93c5fd, #60a5fa, #bfdbfe);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
  margin-top: 4px;
}
.hero-lead {
  font-size: 1.05rem;
  color: rgba(255,255,255,.72);
  line-height: 1.8;
  margin-bottom: 40px;
  max-width: 600px;
}
.hero-lead strong { color: rgba(255,255,255,.92); font-weight: 600; }

.hero-cta-group {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 64px;
}

/* Metrics bar */
.hero-metrics {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-lg);
  padding: 22px 36px;
  gap: 0;
  backdrop-filter: blur(14px);
}
.metric { text-align: center; padding: 0 32px; }
.metric-value {
  display: block;
  font-size: 2.1rem;
  font-weight: 900;
  color: var(--white);
  letter-spacing: -.03em;
  line-height: 1;
  margin-bottom: 5px;
  font-variant-numeric: tabular-nums;
}
.metric-label {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.50);
}
.metric-sep { width: 1px; height: 44px; background: rgba(255,255,255,.15); flex-shrink: 0; }

/* Scroll cue */
.hero-scroll-cue {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: 32px; height: 48px;
  border: 2px solid rgba(255,255,255,.25);
  border-radius: var(--r-full);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 8px;
  transition: border-color var(--t-fast);
}
.hero-scroll-cue:hover { border-color: rgba(255,255,255,.55); }
.hero-scroll-cue span {
  width: 4px; height: 10px;
  background: rgba(255,255,255,.65);
  border-radius: 2px;
  animation: scroll-dot 2s ease-in-out infinite;
}
@keyframes scroll-dot {
  0%   { transform: translateY(0); opacity: 1; }
  80%  { transform: translateY(14px); opacity: .2; }
  100% { transform: translateY(0); opacity: 1; }
}

/* ════════════════════════════════
   SERVICES — TABBED
════════════════════════════════ */
.services-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 0;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-md);
}
.services-tabs {
  background: var(--surface);
  border-right: 1px solid var(--border);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.svc-tab {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border-radius: var(--r-md);
  font-size: .875rem;
  font-weight: 500;
  color: var(--muted);
  text-align: left;
  transition: background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);
  position: relative;
}
.svc-tab:hover { background: var(--border); color: var(--ink); }
.svc-tab.active {
  background: var(--white);
  color: var(--brand);
  font-weight: 700;
  box-shadow: var(--sh-sm);
}
.svc-tab-icon {
  width: 36px; height: 36px;
  border-radius: var(--r-sm);
  background: var(--brand-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  flex-shrink: 0;
  transition: background var(--t-fast), color var(--t-fast);
}
.svc-tab:hover .svc-tab-icon { background: var(--border); }
.svc-tab.active .svc-tab-icon { background: var(--brand); color: var(--white); }

.services-panel-wrap { padding: 48px; min-height: 380px; display: flex; flex-direction: column; justify-content: center; }
.svc-panel { display: none; }
.svc-panel.active { display: flex; flex-direction: column; animation: panel-in .2s var(--ease); }
@keyframes panel-in {
  from { opacity: 0; transform: translateX(12px); }
  to   { opacity: 1; transform: translateX(0); }
}
.svc-panel-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .70rem;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--brand);
  background: var(--brand-soft);
  border: 1px solid rgba(45,90,158,.15);
  padding: 4px 12px;
  border-radius: var(--r-full);
  margin-bottom: 14px;
  width: fit-content;
}
.svc-panel-badge::before { content: '★'; font-size: .6rem; }
.svc-panel-title { font-size: 1.55rem; font-weight: 800; color: var(--ink); margin-bottom: 14px; letter-spacing: -.02em; }
.svc-panel-desc { font-size: .95rem; color: var(--body); line-height: 1.75; margin-bottom: 24px; }
.svc-features {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 20px;
  margin-bottom: 32px;
}
.svc-features li {
  font-size: .875rem;
  color: var(--body);
  padding-left: 20px;
  position: relative;
}
.svc-features li::before {
  content: '';
  position: absolute;
  left: 0; top: 7px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--brand);
}
.svc-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .875rem;
  font-weight: 700;
  color: var(--brand);
  transition: gap var(--t-fast), color var(--t-fast);
}
.svc-cta:hover { gap: 10px; color: var(--brand-dark); }

/* ════════════════════════════════
   ABOUT
════════════════════════════════ */
.about-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.about-left {}
.about-para {
  font-size: .96rem;
  color: var(--body);
  line-height: 1.8;
  margin-bottom: 16px;
}

.about-pillars {
  margin: 28px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pillar-item {
  display: flex;
  align-items: flex-start;
  gap: 13px;
}
.pillar-icon {
  width: 32px; height: 32px;
  border-radius: var(--r-sm);
  background: var(--brand);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}
.pillar-item strong { display: block; font-size: .90rem; color: var(--ink); font-weight: 700; }
.pillar-item span { font-size: .82rem; color: var(--muted); }

.macgov-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 11px 18px;
  font-size: .84rem;
  margin-top: 6px;
}
.macgov-chip span { color: var(--muted); font-weight: 500; }
.macgov-chip a { color: var(--brand); font-weight: 700; transition: color var(--t-fast); }
.macgov-chip a:hover { color: var(--brand-dark); }

/* About right */
.about-right { display: flex; flex-direction: column; gap: 20px; }
.about-card-hero {
  background: linear-gradient(145deg, var(--brand-dark), var(--brand));
  border-radius: var(--r-xl);
  padding: 40px 32px;
  text-align: center;
  color: var(--white);
  box-shadow: var(--sh-brand-lg);
  position: relative;
  overflow: hidden;
}
.about-card-hero::before {
  content: '';
  position: absolute;
  width: 300px; height: 300px;
  background: rgba(255,255,255,.06);
  border-radius: 50%;
  top: -60px; right: -60px;
  pointer-events: none;
}
.ach-logo-wrap {
  width: 88px; height: 88px;
  margin: 0 auto 20px;
  background: rgba(255,255,255,.14);
  border-radius: var(--r-lg);
  display: flex; align-items: center; justify-content: center;
  padding: 14px;
}
.ach-logo-wrap img { width: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.ach-founded { font-size: 1rem; font-weight: 700; margin-bottom: 4px; }
.ach-sub { font-size: .82rem; opacity: .65; }

.about-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.astat {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 18px 12px;
  text-align: center;
  box-shadow: var(--sh-xs);
  transition: box-shadow var(--t-fast), transform var(--t-fast);
}
.astat:hover { box-shadow: var(--sh-sm); transform: translateY(-2px); }
.astat-val { display: block; font-size: 1.5rem; font-weight: 900; color: var(--brand); }
.astat-lbl { font-size: .72rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }

.about-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.about-tags span {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  font-size: .80rem;
  font-weight: 500;
  padding: 6px 14px;
  color: var(--body);
  transition: border-color var(--t-fast), color var(--t-fast);
}
.about-tags span:hover { border-color: var(--brand); color: var(--brand); }

/* ════════════════════════════════
   TEAM
════════════════════════════════ */
.team-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 24px;
  margin-bottom: 48px;
}
.team-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 36px 32px;
  transition: box-shadow var(--t-base), transform var(--t-base), border-color var(--t-base);
}
.team-card:hover { box-shadow: var(--sh-md); transform: translateY(-4px); border-color: rgba(45,90,158,.18); }
.team-card-feature {
  background: linear-gradient(145deg, var(--brand-dark) 0%, #2a5299 100%);
  border-color: transparent;
  box-shadow: var(--sh-brand), var(--sh-lg);
  color: var(--white);
}
.team-card-feature:hover { box-shadow: var(--sh-brand-lg); transform: translateY(-5px); }

/* TC top */
.tc-top { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; }
.tc-avatar {
  position: relative;
  width: 72px; height: 72px;
  flex-shrink: 0;
}
.tc-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  position: relative;
  z-index: 2;
  border: 4px solid var(--white);
  box-shadow: var(--sh-md);
}
.team-card-feature .tc-avatar img {
  border-color: rgba(255,255,255,0.25);
}
.tc-initials {
  width: 100%; height: 100%;
  border-radius: 50%;
  background: var(--brand-soft);
  border: 2px solid rgba(45,90,158,.20);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: .03em;
  position: relative; z-index: 1;
  transition: background var(--t-base);
}
.team-card:hover .tc-initials { background: var(--brand); color: var(--white); border-color: transparent; }
.tc-avatar-feature .tc-initials { background: rgba(255,255,255,.18); color: var(--white); border-color: rgba(255,255,255,.25); }
.team-card-feature:hover .tc-initials { background: rgba(255,255,255,.28); }
.tc-avatar-glow {
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1.5px solid var(--brand);
  opacity: .3;
  animation: spin-halo 10s linear infinite;
}
.team-card-feature .tc-avatar-glow { border-color: rgba(255,255,255,.4); }
@keyframes spin-halo { to { transform: rotate(360deg); } }

.tc-role {
  display: inline-block;
  font-size: .70rem;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--brand);
  background: var(--brand-soft);
  padding: 3px 10px;
  border-radius: var(--r-full);
  margin-bottom: 5px;
}
.tc-role-feature { color: rgba(255,255,255,.85); background: rgba(255,255,255,.18); }
.tc-name { font-size: 1.15rem; font-weight: 800; color: var(--ink); margin-bottom: 2px; }
.team-card-feature .tc-name { color: var(--white); }
.tc-title-pos { font-size: .80rem; color: var(--muted); }
.team-card-feature .tc-title-pos { color: rgba(255,255,255,.60); }

.tc-bio {
  font-size: .875rem;
  line-height: 1.75;
  color: var(--body);
  margin-bottom: 20px;
}
.team-card-feature .tc-bio { color: rgba(255,255,255,.78); }
.tc-bio strong { font-weight: 700; }
.team-card-feature .tc-bio strong { color: var(--white); }

.tc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 22px;
}
.tc-tags span {
  font-size: .70rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--r-full);
  background: rgba(255,255,255,.16);
  color: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.18);
}

.tc-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.tc-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .82rem;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: var(--r-full);
  transition: all var(--t-fast);
}
.tc-btn-outline {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--ink);
}
.tc-btn-outline:hover { background: var(--brand-soft); border-color: var(--brand); color: var(--brand); }
.tc-btn-outline-inv {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  color: var(--white);
}
.tc-btn-outline-inv:hover { background: rgba(255,255,255,.24); border-color: rgba(255,255,255,.4); color: var(--white); }
.tc-btn-whatsapp { background: var(--wa-green); color: var(--white); }
.tc-btn-whatsapp:hover { background: #1fba57; color: var(--white); transform: translateY(-1px); }

/* Trajectory */
.trajectory {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 40px 44px;
  box-shadow: var(--sh-xs);
}
.trajectory-title { font-size: 1rem; font-weight: 700; color: var(--ink); margin-bottom: 32px; }
.trajectory-track {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 40px;
}
.traj-step { display: flex; gap: 14px; }
.traj-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--brand);
  flex-shrink: 0;
  margin-top: 5px;
  box-shadow: 0 0 0 3px var(--brand-soft);
}
.traj-tag {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  color: var(--brand);
  text-transform: uppercase;
  letter-spacing: .09em;
  margin-bottom: 4px;
}
.traj-content strong { display: block; font-size: .875rem; color: var(--ink); margin-bottom: 4px; font-weight: 700; }
.traj-content p { font-size: .80rem; color: var(--muted); line-height: 1.5; }

/* ════════════════════════════════
   STATES / ATUAÇÃO
════════════════════════════════ */
.states-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 28px;
}
.state-pill {
  display: flex;
  align-items: center;
  gap: 20px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 20px 28px;
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);
  cursor: default;
}
.state-pill:hover {
  border-color: var(--brand);
  box-shadow: var(--sh-sm), 0 0 0 1px var(--brand);
  transform: translateX(4px);
}
.st-code {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--brand);
  width: 52px;
  flex-shrink: 0;
  letter-spacing: -.02em;
}
.st-body { flex: 1; }
.st-body strong { display: block; font-size: 1rem; color: var(--ink); font-weight: 700; margin-bottom: 2px; }
.st-body span { font-size: .85rem; color: var(--muted); }
.st-tag {
  font-size: .70rem;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: var(--r-full);
  background: var(--brand-soft);
  color: var(--brand);
  border: 1px solid rgba(45,90,158,.15);
  white-space: nowrap;
}
.st-tag-sede { background: var(--brand); color: var(--white); border-color: transparent; }

.states-footnote {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .875rem;
  color: var(--muted);
  background: var(--white);
  border: 1px solid var(--border);
  border-left: 3px solid var(--brand);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: 14px 20px;
  margin-bottom: 56px;
}
.states-footnote svg { color: var(--brand); flex-shrink: 0; }
.states-footnote strong { color: var(--ink); }

/* Partner strip */
.partner-strip {
  display: grid;
  grid-template-columns: 1fr .85fr;
  gap: 48px;
  align-items: center;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 48px;
  box-shadow: var(--sh-sm);
}
.ps-left p { font-size: .96rem; color: var(--body); line-height: 1.75; margin-bottom: 24px; }
.ps-logo-block {
  background: linear-gradient(145deg, var(--surface), var(--white));
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 36px 28px;
  text-align: center;
}
.ps-logo-icon { font-size: 2.5rem; margin-bottom: 8px; }
.ps-logo-name { font-size: 2rem; font-weight: 900; color: var(--brand-dark); letter-spacing: .06em; }
.ps-logo-sub { font-size: .78rem; color: var(--muted); margin-bottom: 20px; }
.ps-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 20px;
}
.ps-features span { font-size: .80rem; color: var(--body); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-sm); padding: 7px 10px; }
.ps-link {
  display: inline-block;
  margin-top: 10px;
  font-size: .85rem;
  font-weight: 700;
  color: var(--brand);
  transition: color var(--t-fast);
}
.ps-link:hover { color: var(--brand-dark); }

/* ════════════════════════════════
   PORTAL BANNER
════════════════════════════════ */
.portal-banner {
  background: linear-gradient(135deg, var(--brand-dark), var(--brand));
  padding-block: 72px;
}
.pb-inner {
  display: flex;
  align-items: center;
  gap: 36px;
}
.pb-icon {
  width: 88px; height: 88px;
  background: rgba(255,255,255,.12);
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.18);
}
.pb-text { flex: 1; color: var(--white); }
.pb-text h2 { font-size: 1.65rem; font-weight: 800; margin-bottom: 8px; }
.pb-text p { font-size: .96rem; opacity: .75; line-height: 1.65; }
.pb-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--white);
  color: var(--brand);
  font-size: .95rem;
  font-weight: 800;
  padding: 15px 30px;
  border-radius: var(--r-full);
  white-space: nowrap;
  flex-shrink: 0;
  transition: background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  box-shadow: 0 6px 24px rgba(0,0,0,.18);
}
.pb-btn:hover {
  background: var(--surface);
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(0,0,0,.24);
  color: var(--brand-dark);
}

/* ════════════════════════════════
   CONTACT
════════════════════════════════ */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 48px;
  align-items: start;
}
.contact-info { display: flex; flex-direction: column; gap: 12px; }
.ci-item {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 18px 20px;
  transition: border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);
}
.ci-item:hover {
  border-color: rgba(45,90,158,.25);
  box-shadow: var(--sh-sm);
  transform: translateX(3px);
}
.ci-icon {
  width: 46px; height: 46px;
  border-radius: var(--r-sm);
  background: rgba(26,29,38,.07);
  color: var(--ink-2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ci-blue { background: var(--brand-soft); color: var(--brand); }
.ci-body { flex: 1; min-width: 0; }
.ci-lbl { display: block; font-size: .70rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--muted); margin-bottom: 4px; }
.ci-body a { display: block; font-size: .92rem; font-weight: 700; color: var(--ink); transition: color var(--t-fast); }
.ci-body a:hover { color: var(--brand); }
.ci-wa {
  display: inline-flex !important;
  align-items: center;
  gap: 5px;
  font-size: .75rem !important;
  font-weight: 600 !important;
  color: var(--white) !important;
  background: var(--wa-green);
  padding: 3px 11px !important;
  border-radius: var(--r-full) !important;
  margin-top: 6px;
  transition: background var(--t-fast) !important;
}
.ci-wa:hover { background: #1fba57 !important; }
.ci-tags { display: flex; gap: 8px; margin-top: 4px; flex-wrap: wrap; }
.ci-tags span {
  font-size: .78rem;
  font-weight: 600;
  background: var(--white);
  border: 1px solid var(--border);
  padding: 4px 12px;
  border-radius: var(--r-full);
  color: var(--body);
}

/* Contact form */
.contact-form-box {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 40px 36px;
  box-shadow: var(--sh-sm);
}
.cfb-title { font-size: 1.2rem; font-weight: 800; color: var(--ink); margin-bottom: 4px; }
.cfb-sub { font-size: .84rem; color: var(--muted); margin-bottom: 28px; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cf-field { margin-bottom: 14px; }
.cf-field label {
  display: block;
  font-size: .78rem;
  font-weight: 600;
  color: var(--body);
  margin-bottom: 6px;
}
.cf-field label span { color: var(--brand); }
.cf-field input,
.cf-field textarea,
.cf-field select {
  width: 100%;
  padding: 11px 16px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  font-size: .90rem;
  color: var(--ink);
  background: var(--white);
  outline: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  appearance: none;
}
.cf-field input:focus,
.cf-field textarea:focus,
.cf-field select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--brand-soft);
}
.cf-field input::placeholder,
.cf-field textarea::placeholder { color: #adb5bd; }
.cf-field textarea { resize: vertical; min-height: 96px; }
.cf-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  background: var(--wa-green);
  color: var(--white);
  font-size: .92rem;
  font-weight: 700;
  padding: 13px 24px;
  border-radius: var(--r-md);
  transition: background var(--t-fast), transform var(--t-fast);
  margin-top: 4px;
}
.cf-submit:hover { background: #1fba57; transform: translateY(-1px); }
.cf-submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.cf-success {
  margin-top: 14px;
  background: rgba(16,185,129,.08);
  border: 1px solid rgba(16,185,129,.25);
  color: #065f46;
  padding: 12px 16px;
  border-radius: var(--r-sm);
  font-size: .875rem;
  font-weight: 600;
}

/* ════════════════════════════════
   FOOTER
════════════════════════════════ */
.footer { background: var(--ink); color: var(--white); }
.footer-main { padding-block: 72px 48px; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 48px;
}
.fg-logo { width: 48px; height: 48px; object-fit: contain; margin-bottom: 16px; opacity: .5; }
.fg-tagline { font-size: .90rem; color: rgba(255,255,255,.55); font-weight: 500; margin-bottom: 10px; line-height: 1.55; }
.fg-desc { font-size: .82rem; color: rgba(255,255,255,.35); line-height: 1.65; }
.fg-col h4 {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.40);
  margin-bottom: 18px;
}
.fg-col ul { display: flex; flex-direction: column; gap: 10px; }
.fg-col li, .fg-col a { font-size: .875rem; color: rgba(255,255,255,.55); transition: color var(--t-fast); }
.fg-col a:hover { color: var(--white); }
.fg-portal {
  display: inline-block;
  margin-top: 20px;
  background: var(--brand);
  color: var(--white);
  font-size: .82rem;
  font-weight: 700;
  padding: 9px 18px;
  border-radius: var(--r-sm);
  transition: background var(--t-fast);
}
.fg-portal:hover { background: var(--brand-mid); color: var(--white); }

.footer-bar { padding-block: 20px; border-top: 1px solid rgba(255,255,255,.08); }
.footer-bar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: .78rem;
  color: rgba(255,255,255,.30);
}
.footer-bar-inner a { color: rgba(255,255,255,.45); transition: color var(--t-fast); }
.footer-bar-inner a:hover { color: var(--white); }

/* ════════════════════════════════
   FLOATING ACTION BUTTONS
════════════════════════════════ */
.fab-wa {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 800;
  width: 58px; height: 58px;
  background: var(--wa-green);
  color: var(--white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(37,211,102,.45);
  transition: background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.fab-wa:hover {
  background: #1fba57;
  transform: scale(1.08) translateY(-2px);
  box-shadow: 0 12px 32px rgba(37,211,102,.55);
}
.fab-tooltip {
  position: absolute;
  right: 70px;
  font-size: .78rem;
  font-weight: 600;
  white-space: nowrap;
  background: var(--ink);
  color: var(--white);
  padding: 6px 13px;
  border-radius: var(--r-sm);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--t-fast);
}
.fab-wa:hover .fab-tooltip { opacity: 1; }

.fab-top {
  position: fixed;
  bottom: 28px;
  right: 100px;
  z-index: 800;
  width: 46px; height: 46px;
  background: var(--white);
  color: var(--brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
  transition: all var(--t-base);
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
}
.fab-top.visible { opacity: 1; pointer-events: all; transform: translateY(0); }
.fab-top:hover { background: var(--brand); color: var(--white); border-color: var(--brand); transform: translateY(-2px); }

/* ════════════════════════════════
   SCROLL REVEAL
════════════════════════════════ */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-left { opacity: 0; transform: translateX(-24px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.reveal-left.in { opacity: 1; transform: translateX(0); }
.reveal-right { opacity: 0; transform: translateX(24px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.reveal-right.in { opacity: 1; transform: translateX(0); }

/* ════════════════════════════════
   RESPONSIVE
════════════════════════════════ */
@media (max-width: 1060px) {
  .services-layout { grid-template-columns: 1fr; }
  .services-tabs { flex-direction: row; flex-wrap: wrap; border-right: none; border-bottom: 1px solid var(--border); }
  .svc-tab { flex: 1 1 auto; justify-content: center; }
  .services-panel-wrap { padding: 32px; }
  .svc-features { grid-template-columns: 1fr; }

  .about-layout { grid-template-columns: 1fr; gap: 40px; }
  .partner-strip { grid-template-columns: 1fr; gap: 32px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .pb-inner { flex-wrap: wrap; }
}

@media (max-width: 768px) {
  :root { --section-v: 72px; }

  /* Navbar mobile */
  .nav-toggle { display: flex; }
  .nav-menu {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(320px, 85vw);
    background: var(--ink);
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 80px 20px 32px;
    gap: 3px;
    transform: translateX(110%);
    transition: transform var(--t-base);
    box-shadow: -8px 0 40px rgba(0,0,0,.25);
    overflow-y: auto;
  }
  .nav-menu.open { transform: translateX(0); }
  .nav-item { color: rgba(255,255,255,.75) !important; font-size: .95rem; padding: 12px 16px; border-radius: var(--r-sm); }
  .nav-item:hover, .nav-item.active { color: var(--white) !important; background: rgba(255,255,255,.10) !important; }

  .hero-heading { font-size: 2.4rem; }
  .hero-cta-group { flex-direction: column; align-items: center; }
  .cta-primary, .cta-ghost { width: 100%; max-width: 300px; justify-content: center; }
  .hero-metrics { padding: 18px 20px; }
  .metric { padding: 0 18px; }
  .metric-value { font-size: 1.6rem; }

  .team-grid { grid-template-columns: 1fr; }
  .trajectory-track { grid-template-columns: 1fr; }
  .trajectory { padding: 28px 20px; }

  .contact-layout { grid-template-columns: 1fr; }
  .contact-form-box { padding: 28px 20px; }
  .cf-row { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-bar-inner { flex-direction: column; text-align: center; }

  .pb-inner { text-align: center; }
  .pb-btn { width: 100%; max-width: 300px; justify-content: center; }
}

@media (max-width: 480px) {
  .services-tabs { flex-direction: column; }
  .svc-tab { justify-content: flex-start; }
  .partner-strip { padding: 28px 20px; }
  .fab-top { right: 90px; }
}

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--surface); }
::-webkit-scrollbar-thumb { background: rgba(45,90,158,.35); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--brand); }
