/* ============================================================
   FLEXVET — ESTILOS GLOBAIS 2026
   Paleta: #00CB95 (principal), #861498 (secundária), #ec8922 (destaque)
   Layout claro dominante · ícones coloridos · tipografia cinza médio
   ============================================================ */

/* ---- RESET & BASE ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --color-primary:      #00CB95;
  --color-primary-dark: #00a87b;
  --color-primary-light:#e6faf5;
  --color-primary-mid:  rgba(0,203,149,.12);
  --color-secondary:    #861498;
  --color-secondary-light: rgba(134,20,152,.1);
  --color-accent:       #ec8922;
  --color-accent-light: rgba(236,137,34,.1);

  /* Tons escuros: usados apenas no Hero, Footer e CTA final */
  --color-dark:         #1a1a2e;
  --color-dark-2:       #16213e;

  /* Seções "alternadas escuras" agora são verde-gelo profundo */
  --color-section-alt:  #f0fdf8;   /* quase branco com toque verde */
  --color-section-mid:  #e8f7f2;   /* cinza-verde suave */
  --color-section-green:#03a87a;   /* verde mais escuro para gradiente */

  --color-light:        #f7f9fc;
  --color-white:        #ffffff;

  /* Tipografia — cinza médio, nunca preto puro */
  --color-text:         #374151;   /* cinza médio escuro */
  --color-text-dark:    #1f2937;   /* para títulos principais */
  --color-text-muted:   #6b7280;   /* parágrafos, legendas */
  --color-text-light:   #9ca3af;   /* placeholders */

  --color-border:       #e5e7eb;
  --color-border-green: rgba(0,203,149,.2);

  --font-main:    'Inter', sans-serif;
  --font-display: 'Space Grotesk', sans-serif;
  --radius-sm:    6px;
  --radius-md:    12px;
  --radius-lg:    20px;
  --radius-xl:    28px;
  --shadow-sm:    0 1px 4px rgba(0,0,0,.06);
  --shadow-md:    0 4px 20px rgba(0,0,0,.09);
  --shadow-lg:    0 10px 44px rgba(0,0,0,.12);
  --shadow-green: 0 6px 28px rgba(0,203,149,.18);
  --transition:   all .25s cubic-bezier(.4,0,.2,1);
}

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: var(--font-main);
  color: var(--color-text);
  background: var(--color-white);
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; transition: var(--transition); }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; outline: none; background: none; font-family: var(--font-main); }
input, textarea, select { font-family: var(--font-main); outline: none; }

/* ---- TYPOGRAPHY ---- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.025em;
  color: var(--color-text-dark);
}
h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
h3 { font-size: clamp(1.15rem, 2.5vw, 1.55rem); }
h4 { font-size: 1.1rem; }
p  { line-height: 1.78; color: var(--color-text-muted); }

/* Sobrescrever cor em fundos escuros (hero/footer/cta) */
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4 { color: #fff; }
.on-dark p { color: rgba(255,255,255,.68); }

/* ---- CONTAINERS ---- */
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.container-wide { max-width: 1400px; margin: 0 auto; padding: 0 32px; }

/* ---- SECTION PADDING ---- */
.section    { padding: 96px 0; }
.section-sm { padding: 64px 0; }

/* ---- SECTION LABELS ---- */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--color-primary-dark);
  background: var(--color-primary-light);
  border: 1px solid var(--color-border-green);
  border-radius: 100px;
  padding: 6px 14px;
  margin-bottom: 20px;
}
.section-label i { font-size: .78rem; }
/* versão sobre fundo escuro */
.section-label.on-dark {
  color: var(--color-primary);
  background: rgba(0,203,149,.12);
  border-color: rgba(0,203,149,.28);
}

/* ---- SECTION HEADERS ---- */
.section-header { text-align: center; max-width: 680px; margin: 0 auto 64px; }
.section-header h2 { margin-bottom: 16px; }
.section-header p  { font-size: 1.05rem; }

/* ---- BACKGROUNDS ---- */
.bg-white      { background: var(--color-white); }
.bg-light      { background: var(--color-light); }
.bg-alt        { background: var(--color-section-alt); }   /* verde-gelo suave */
.bg-mid        { background: var(--color-section-mid); }

/* "Escuro" agora é verde-floresta profundo — não preto */
.bg-green-deep {
  background: linear-gradient(145deg, #042e22 0%, #054d39 50%, #042e22 100%);
}
/* CTA final: degradê verde profundo elegante */
.bg-cta-dark {
  background: linear-gradient(135deg, #021e16 0%, #043d2c 55%, #021e16 100%);
}
/* Hero: mantém escuro para contraste com logo branco */
.bg-hero {
  background: linear-gradient(145deg, #060f0a 0%, #0d261b 50%, #060f0a 100%);
}

/* ---- TEXT UTILITIES ---- */
.text-white   { color: #fff !important; }
.text-primary { color: var(--color-primary) !important; }
.text-muted   { color: var(--color-text-muted) !important; }
.text-dark    { color: var(--color-text-dark) !important; }
.text-accent  { color: var(--color-accent) !important; }
.text-secondary { color: var(--color-secondary) !important; }

/* ---- BUTTONS ---- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--radius-md);
  font-size: .93rem;
  font-weight: 600;
  letter-spacing: .02em;
  transition: var(--transition);
  white-space: nowrap;
}
.btn-primary {
  background: var(--color-primary);
  color: #fff;
}
.btn-primary:hover {
  background: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: var(--shadow-green);
}
/* outline sobre fundo branco/claro */
.btn-outline-primary {
  background: transparent;
  color: var(--color-primary-dark);
  border: 2px solid var(--color-primary);
}
.btn-outline-primary:hover {
  background: var(--color-primary);
  color: #fff;
  transform: translateY(-2px);
}
/* outline sobre fundo escuro */
.btn-outline-light {
  background: transparent;
  color: rgba(255,255,255,.9);
  border: 2px solid rgba(255,255,255,.3);
  backdrop-filter: blur(8px);
}
.btn-outline-light:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: translateY(-2px);
}
.btn-dark {
  background: var(--color-text-dark);
  color: #fff;
}
.btn-dark:hover {
  background: #111827;
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.btn-whatsapp {
  background: #25D366;
  color: #fff;
}
.btn-whatsapp:hover {
  background: #1db954;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(37,211,102,.3);
}
.btn-secondary-color {
  background: var(--color-secondary);
  color: #fff;
}
.btn-secondary-color:hover {
  background: #6e1080;
  transform: translateY(-2px);
}

.btn-lg { padding: 18px 36px; font-size: 1rem; border-radius: 14px; }
.btn-sm { padding: 9px 18px; font-size: .83rem; }

/* ---- CARDS BASE ---- */
.card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: var(--transition);
}
.card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
  border-color: var(--color-border-green);
}

/* ---- GRID UTILITIES ---- */
.grid   { display: grid; }
.grid-2 { grid-template-columns: repeat(2, 1fr); gap: 32px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); gap: 28px; }
.grid-4 { grid-template-columns: repeat(4, 1fr); gap: 24px; }

/* ---- FLEX UTILITIES ---- */
.flex            { display: flex; }
.items-center    { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center  { justify-content: center; }
.flex-col        { flex-direction: column; }
.gap-8  { gap: 8px;  }
.gap-16 { gap: 16px; }
.gap-24 { gap: 24px; }

/* ---- DIVIDER ---- */
.divider { width: 52px; height: 4px; background: var(--color-primary); border-radius: 4px; margin: 14px 0 24px; }
.divider-center { margin: 14px auto 24px; }

/* ---- ICON BOX (coloridos por categoria) ---- */
.icon-box {
  width: 56px; height: 56px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  background: var(--color-primary-light);
}
.icon-box i { color: var(--color-primary-dark); font-size: 1.3rem; }

.icon-box-lg { width: 68px; height: 68px; border-radius: var(--radius-lg); }
.icon-box-lg i { font-size: 1.65rem; }

/* Variantes de cor para ícones */
.icon-green  { background: #e6faf5; } .icon-green i  { color: #00a87b; }
.icon-purple { background: rgba(134,20,152,.1); } .icon-purple i { color: #861498; }
.icon-orange { background: rgba(236,137,34,.1); } .icon-orange i { color: #d4751a; }
.icon-blue   { background: rgba(59,130,246,.1);  } .icon-blue i   { color: #2563eb; }
.icon-red    { background: rgba(239,68,68,.1);   } .icon-red i    { color: #dc2626; }
.icon-teal   { background: rgba(20,184,166,.1);  } .icon-teal i   { color: #0d9488; }

/* ---- BADGES ---- */
.badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 100px;
  font-size: .71rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.badge-primary   { background: var(--color-primary-light); color: var(--color-primary-dark); }
.badge-secondary { background: var(--color-secondary-light); color: var(--color-secondary); }
.badge-accent    { background: var(--color-accent-light); color: #b8621a; }

/* ---- FORM ELEMENTS ---- */
.form-group { margin-bottom: 20px; }
.form-group label {
  display: block;
  font-size: .84rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 8px;
}
.form-control {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: .93rem;
  background: var(--color-white);
  color: var(--color-text);
  transition: var(--transition);
}
.form-control:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(0,203,149,.1);
}
.form-control::placeholder { color: var(--color-text-light); }
textarea.form-control { resize: vertical; min-height: 100px; }

/* ---- HEADER ---- */
#header {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 1000; transition: var(--transition); padding: 0;
}
#header .header-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 72px; padding: 0 40px; transition: var(--transition);
}
#header.transparent .header-inner { background: transparent; }
#header.scrolled .header-inner {
  background: rgba(4,15,10,.97);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0,203,149,.12);
  box-shadow: 0 2px 24px rgba(0,0,0,.35);
}

/* LOGO
   A logo tem fundo preto sólido.
   mix-blend-mode: screen elimina o fundo preto e mantém
   o conteúdo branco visível sobre qualquer fundo.
   No header transparente (hero escuro) e scrolled (escuro)
   funciona perfeitamente. -------*/
.logo-wrap { display: flex; align-items: center; gap: 10px; }
.logo-img  {
  height: 32px;
  width: auto;
  mix-blend-mode: screen;   /* fundo preto some, logo branca aparece */
  display: block;
}

nav#main-nav ul { display: flex; align-items: center; gap: 4px; }
nav#main-nav ul li a {
  font-size: .88rem; font-weight: 500;
  color: rgba(255,255,255,.8);
  padding: 8px 13px; border-radius: 8px;
  transition: var(--transition);
}
nav#main-nav ul li a:hover,
nav#main-nav ul li a.active {
  color: var(--color-primary);
  background: rgba(0,203,149,.1);
}
.header-actions { display: flex; align-items: center; gap: 12px; }

/* ---- HAMBURGER ---- */
#menu-toggle {
  display: none; flex-direction: column; gap: 5px; padding: 8px; cursor: pointer;
}
#menu-toggle span {
  display: block; width: 24px; height: 2px;
  background: #fff; border-radius: 2px; transition: var(--transition);
}

/* ---- MOBILE NAV ---- */
#mobile-nav {
  display: none; position: fixed; top: 72px; left: 0; right: 0;
  background: rgba(4,15,10,.98); backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0,203,149,.1);
  z-index: 999; padding: 24px 0;
}
#mobile-nav.open { display: block; }
#mobile-nav ul   { flex-direction: column; padding: 0 24px; gap: 4px; }
#mobile-nav ul li a {
  display: block; padding: 14px 16px;
  color: rgba(255,255,255,.85); font-weight: 500;
  border-radius: var(--radius-sm);
  border-bottom: 1px solid rgba(255,255,255,.04);
}
#mobile-nav ul li a:hover { color: var(--color-primary); }
#mobile-nav .mobile-cta { padding: 16px 24px 0; display: flex; flex-direction: column; gap: 10px; }

/* ---- HERO  (mantém escuro — logo branco é intencional aqui) ---- */
#hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 55% 65% at 68% 48%, rgba(0,203,149,.1) 0%, transparent 65%),
    radial-gradient(ellipse 38% 48% at 18% 75%, rgba(134,20,152,.07) 0%, transparent 58%),
    linear-gradient(145deg, #060f0a 0%, #0d261b 50%, #060f0a 100%);
}
.hero-grid-lines {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(0,203,149,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,203,149,.05) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, transparent, rgba(0,0,0,.55) 30%, rgba(0,0,0,.55) 70%, transparent);
}
.hero-content { position: relative; z-index: 2; max-width: 680px; }
.hero-tag {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(0,203,149,.1); border: 1px solid rgba(0,203,149,.25);
  border-radius: 100px; padding: 8px 18px;
  font-size: .77rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--color-primary); margin-bottom: 24px;
}
.hero-tag::before {
  content: ''; width: 6px; height: 6px;
  background: var(--color-primary); border-radius: 50%;
  animation: pulse-dot 2s infinite;
}
@keyframes pulse-dot { 0%,100%{opacity:1} 50%{opacity:.25} }

#hero h1       { color: #fff; margin-bottom: 20px; }
#hero h1 .highlight { color: var(--color-primary); }
#hero .hero-sub {
  font-size: 1.08rem; color: rgba(255,255,255,.65);
  margin-bottom: 40px; max-width: 540px;
}
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }

/* Hero visual / rings */
.hero-visual {
  position: absolute; right: 0; top: 0; bottom: 0; width: 48%; overflow: hidden;
}
.hero-visual-inner {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
}
.hero-visual-bg {
  width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0,203,149,.11) 0%, transparent 70%);
  position: relative; display: flex; align-items: center; justify-content: center;
}
.hero-ring {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(0,203,149,.14);
  animation: rotate-slow 20s linear infinite;
}
.hero-ring-1 { width:320px;height:320px; animation-duration:20s; }
.hero-ring-2 { width:420px;height:420px; animation-duration:30s; animation-direction:reverse; border-color:rgba(134,20,152,.1); }
.hero-ring-3 { width:510px;height:510px; animation-duration:40s; border-color:rgba(0,203,149,.06); }
@keyframes rotate-slow { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.hero-icon-center {
  width:120px;height:120px; background:rgba(0,203,149,.13);
  border:1px solid rgba(0,203,149,.3); border-radius:50%;
  display:flex;align-items:center;justify-content:center; position:relative;z-index:2;
}
.hero-icon-center i { font-size:3rem; color:var(--color-primary); }
.hero-float-cards { position:absolute;inset:0;pointer-events:none; }
.hero-float-card {
  position:absolute; background:rgba(255,255,255,.07);
  backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-md); padding:12px 16px;
  display:flex;align-items:center;gap:10px;
  animation:float-card 4s ease-in-out infinite;
}
.hero-float-card:nth-child(2){animation-delay:-2s}
.hero-float-card:nth-child(3){animation-delay:-1s}
@keyframes float-card{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.hero-float-card i   { color:var(--color-primary); font-size:1.1rem; }
.hero-float-card span{ font-size:.77rem;font-weight:600;color:#fff; }

/* ---- CONTACT STRIP ---- */
.contact-strip { background: var(--color-primary); padding: 20px 0; }
.contact-strip-inner {
  display:flex;align-items:center;justify-content:center;gap:44px;flex-wrap:wrap;
}
.contact-strip-item {
  display:flex;align-items:center;gap:10px;
  color: #fff; font-weight:600;font-size:.88rem;
}
.contact-strip-item i { font-size:.95rem; opacity:.85; }

/* ---- SOBRE (bg-white) ---- */
#sobre .sobre-image-wrap { position:relative;border-radius:var(--radius-lg);overflow:visible; }
#sobre .sobre-img { width:100%;height:480px;object-fit:cover;border-radius:var(--radius-lg); }
#sobre .sobre-badge {
  position:absolute;bottom:28px;right:-18px;
  background:var(--color-white);border-radius:var(--radius-md);
  padding:16px 20px;box-shadow:var(--shadow-lg);text-align:center;min-width:140px;
  border:1px solid var(--color-border-green);
}
#sobre .sobre-badge strong { display:block;font-size:2rem;font-weight:800;color:var(--color-primary); }
#sobre .sobre-badge span   { font-size:.77rem;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em; }
#sobre .sobre-text h2      { color:var(--color-text-dark);margin-bottom:16px; }
#sobre .sobre-text p       { margin-bottom:14px;font-size:.98rem; }
#sobre .sobre-checks       { margin:24px 0; }
#sobre .sobre-checks li {
  display:flex;align-items:flex-start;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--color-border);
  font-size:.93rem;font-weight:500;color:var(--color-text);
}
#sobre .sobre-checks li:last-child { border-bottom:none; }
#sobre .sobre-checks li i { color:var(--color-primary);margin-top:3px;flex-shrink:0; }

/* ---- DIFERENCIAIS (bg-alt — verde-gelo) ---- */
#diferenciais .diff-card {
  padding:32px; border-radius:var(--radius-lg);
  background:var(--color-white);
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-sm);
  transition:var(--transition);
}
#diferenciais .diff-card:hover {
  border-color:var(--color-border-green);
  box-shadow:var(--shadow-green);
  transform:translateY(-5px);
}
#diferenciais .diff-card h4 { color:var(--color-text-dark);margin:16px 0 10px; }
#diferenciais .diff-card p  { color:var(--color-text-muted);font-size:.88rem;line-height:1.65; }

/* ---- LINHAS (bg-white) ---- */
#linhas .linha-card {
  background:var(--color-white);border-radius:var(--radius-lg);
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-sm);transition:var(--transition);
  display:flex;flex-direction:column;overflow:hidden;
}
#linhas .linha-card:hover {
  box-shadow:var(--shadow-md);transform:translateY(-6px);
  border-color:var(--color-border-green);
}
#linhas .linha-card-img {
  height:190px;background:var(--color-light);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;position:relative;
}
#linhas .linha-card-img i { font-size:3.8rem; opacity:.5; }
#linhas .linha-card-img::after {
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:3px;background:var(--color-primary);
}
#linhas .linha-card-body { padding:24px;flex:1;display:flex;flex-direction:column; }
#linhas .linha-card-body h3 { font-size:1.1rem;color:var(--color-text-dark);margin-bottom:8px; }
#linhas .linha-card-body p  { font-size:.87rem;color:var(--color-text-muted);flex:1;margin-bottom:20px; }
#linhas .linha-card-body .btn { width:100%;justify-content:center; }

/* ---- ASSISTÊNCIA (bg-green-deep — seção verde escura) ---- */
#assistencia .assist-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;
}
#assistencia .assist-stats {
  display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0;
}
#assistencia .assist-stat {
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-md);padding:22px 18px;text-align:center;
}
#assistencia .assist-stat .number {
  font-size:2.1rem;font-weight:800;color:var(--color-primary);letter-spacing:-0.03em;
}
#assistencia .assist-stat .label {
  font-size:.77rem;font-weight:600;color:rgba(255,255,255,.55);
  text-transform:uppercase;letter-spacing:.08em;margin-top:4px;
}
#assistencia .assist-map {
  background:rgba(0,203,149,.06);
  border:1px solid rgba(0,203,149,.18);
  border-radius:var(--radius-lg);padding:40px;text-align:center;
  position:relative;overflow:hidden;
}
#assistencia .assist-map::before {
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at center,rgba(0,203,149,.09) 0%,transparent 70%);
}
#assistencia .assist-map i     { font-size:4.5rem;color:var(--color-primary);opacity:.45;position:relative;z-index:1; }
#assistencia .assist-map h3    { color:#fff;margin:14px 0 8px;position:relative;z-index:1; }
#assistencia .assist-map p     { color:rgba(255,255,255,.55);font-size:.88rem;position:relative;z-index:1; }

/* Region grid dentro do assist-map */
.assist-region {
  background:rgba(0,203,149,.1);border:1px solid rgba(0,203,149,.18);
  border-radius:8px;padding:12px 8px;text-align:center;
}
.assist-region .rname { font-size:1.2rem;font-weight:800;color:var(--color-primary); }
.assist-region .rstates{ font-size:.7rem;color:rgba(255,255,255,.48);font-weight:600;text-transform:uppercase; }

/* ---- AUTORIDADE (bg-light) ---- */
#autoridade .auth-stats-grid {
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:2px;background:var(--color-border);
  border-radius:var(--radius-lg);overflow:hidden;margin-top:48px;
}
#autoridade .auth-stat { background:var(--color-white);padding:40px 28px;text-align:center; }
#autoridade .auth-stat .num {
  font-size:clamp(1.9rem,4vw,2.7rem);font-weight:800;
  color:var(--color-primary);letter-spacing:-0.04em;
}
#autoridade .auth-stat .lbl {
  font-size:.8rem;font-weight:600;color:var(--color-text-muted);
  text-transform:uppercase;letter-spacing:.07em;margin-top:6px;
}

/* Feature blocks abaixo dos stats */
.auth-feature {
  display:flex;align-items:flex-start;gap:18px;
  padding:26px;background:var(--color-white);
  border-radius:var(--radius-lg);border:1px solid var(--color-border);
  box-shadow:var(--shadow-sm);transition:var(--transition);
}
.auth-feature:hover { box-shadow:var(--shadow-md);border-color:var(--color-border-green); }
.auth-feature h4 { margin-bottom:6px;color:var(--color-text-dark);font-size:1rem; }
.auth-feature p  { font-size:.87rem; }

/* ---- CTA FINAL (bg-cta-dark) ---- */
#cta-final { position:relative;overflow:hidden; }
#cta-final::before {
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 65% 75% at 50% 50%,rgba(0,203,149,.08) 0%,transparent 68%);
}
#cta-final .cta-content {
  position:relative;z-index:2;text-align:center;
  max-width:680px;margin:0 auto;
}
#cta-final h2 { color:#fff;margin-bottom:14px; }
#cta-final p  { color:rgba(255,255,255,.62);font-size:1.03rem;margin-bottom:40px; }
#cta-final .cta-actions { display:flex;gap:16px;justify-content:center;flex-wrap:wrap; }

/* ---- FOOTER ---- */
#footer {
  background:#040e09;
  padding:64px 0 0;
  border-top:1px solid rgba(0,203,149,.1);
}
.footer-grid {
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
/* Logo branca no footer (fundo escuro) */
.footer-logo {
  height:36px;
  margin-bottom:20px;
  mix-blend-mode: screen;  /* mesma técnica — fundo preto some no footer escuro */
}
.footer-desc { color:rgba(255,255,255,.42);font-size:.87rem;line-height:1.7;margin-bottom:22px; }
.footer-socials { display:flex;gap:10px; }
.footer-social-link {
  width:36px;height:36px;border:1px solid rgba(255,255,255,.1);
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.45);font-size:.9rem;transition:var(--transition);
}
.footer-social-link:hover { border-color:var(--color-primary);color:var(--color-primary); }
.footer-col h5 {
  font-size:.77rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.32);margin-bottom:18px;
}
.footer-col ul li { margin-bottom:10px; }
.footer-col ul li a { color:rgba(255,255,255,.52);font-size:.87rem;transition:var(--transition); }
.footer-col ul li a:hover { color:var(--color-primary); }
.footer-contact-item {
  display:flex;align-items:flex-start;gap:10px;
  margin-bottom:12px;color:rgba(255,255,255,.52);font-size:.87rem;
}
.footer-contact-item i { color:var(--color-primary);margin-top:2px;flex-shrink:0; }
.footer-bottom {
  padding:20px 0;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.footer-bottom p { color:rgba(255,255,255,.28);font-size:.81rem; }
.footer-legal-links { display:flex;gap:20px; }
.footer-legal-links a { color:rgba(255,255,255,.28);font-size:.81rem;transition:var(--transition); }
.footer-legal-links a:hover { color:var(--color-primary); }

/* ---- COOKIE BAR ---- */
#cookie-bar {
  position:fixed;bottom:0;left:0;right:0;z-index:9999;
  background:rgba(4,14,9,.97);backdrop-filter:blur(20px);
  border-top:1px solid rgba(0,203,149,.12);padding:20px 0;
  transform:translateY(100%);
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
#cookie-bar.show { transform:translateY(0); }
.cookie-inner  { display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap; }
.cookie-text   { flex:1;min-width:280px; }
.cookie-text p { color:rgba(255,255,255,.62);font-size:.87rem;margin:0; }
.cookie-text a { color:var(--color-primary);text-decoration:underline;text-decoration-color:rgba(0,203,149,.3); }
.cookie-actions{ display:flex;gap:10px;flex-shrink:0; }

/* ---- PAGE HEADER (produtos.html) ---- */
.page-header-products {
  background:linear-gradient(145deg,#060f0a 0%,#0d261b 50%,#060f0a 100%);
  padding:140px 0 64px;position:relative;overflow:hidden;
}
.page-header-products::before {
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 50% 80% at 28% 50%,rgba(0,203,149,.07) 0%,transparent 68%);
}
.page-header-products .container { position:relative;z-index:2; }
.page-header-products h1 { color:#fff; }
.page-header-products p  { color:rgba(255,255,255,.55);font-size:1.02rem;max-width:520px; }

/* ---- TOOLBAR (produtos) ---- */
.products-toolbar {
  padding:28px 0;background:var(--color-white);
  border-bottom:1px solid var(--color-border);
  position:sticky;top:72px;z-index:90;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.search-wrap { position:relative;max-width:420px; }
.search-wrap input {
  padding:12px 16px 12px 44px;
  border:1.5px solid var(--color-border);border-radius:10px;
  background:var(--color-white);width:100%;font-size:.89rem;
  color:var(--color-text);transition:var(--transition);
}
.search-wrap input:focus { border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,203,149,.1); }
.search-wrap i { position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted); }
.filter-chips { display:flex;gap:8px;flex-wrap:wrap; }
.filter-chip {
  padding:7px 15px;border-radius:100px;
  border:1.5px solid var(--color-border);
  background:var(--color-white);
  font-size:.8rem;font-weight:600;color:var(--color-text-muted);
  cursor:pointer;transition:var(--transition);
}
.filter-chip:hover { border-color:var(--color-primary);color:var(--color-primary-dark); }
.filter-chip.active {
  background:var(--color-primary);border-color:var(--color-primary);color:#fff;
}

/* ---- PRODUCT CARDS ---- */
.products-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;
}
.product-card {
  background:var(--color-white);border-radius:var(--radius-lg);
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-sm);transition:var(--transition);
  cursor:pointer;display:flex;flex-direction:column;overflow:hidden;
}
.product-card:hover {
  box-shadow:0 10px 36px rgba(0,203,149,.13);
  transform:translateY(-6px);border-color:var(--color-border-green);
}
.product-card-img {
  height:210px;background:var(--color-light);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.product-card-img i  { font-size:3.8rem;opacity:.45; }
.product-card-img img{ width:100%;height:100%;object-fit:cover; }
.product-card-body   { padding:20px;flex:1;display:flex;flex-direction:column; }
.product-card-category {
  font-size:.7rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--color-primary-dark);margin-bottom:7px;
}
.product-card-body h3 {
  font-size:.97rem;font-weight:700;color:var(--color-text-dark);
  margin-bottom:7px;line-height:1.35;
}
.product-card-body p {
  font-size:.84rem;color:var(--color-text-muted);flex:1;margin-bottom:14px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-card-footer {
  display:flex;align-items:center;justify-content:space-between;
  margin-top:auto;padding-top:14px;border-top:1px solid var(--color-border);
}
.product-card-footer .btn{ font-size:.8rem;padding:8px 15px; }

/* ---- MODAL ---- */
#product-modal {
  position:fixed;inset:0;z-index:10000;
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
#product-modal.open { opacity:1;pointer-events:all; }
.modal-overlay {
  position:absolute;inset:0;
  background:rgba(0,0,0,.6);backdrop-filter:blur(5px);cursor:pointer;
}
.modal-box {
  position:relative;background:var(--color-white);
  border-radius:var(--radius-xl);max-width:980px;width:100%;max-height:90vh;
  overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.3);
  display:grid;grid-template-columns:1fr 1fr;
  transform:translateY(20px) scale(.97);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
#product-modal.open .modal-box { transform:translateY(0) scale(1); }
.modal-close {
  position:absolute;top:16px;right:16px;width:36px;height:36px;
  background:var(--color-light);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;color:var(--color-text-muted);cursor:pointer;
  transition:var(--transition);z-index:10;
}
.modal-close:hover { background:var(--color-border);color:var(--color-text-dark); }
.modal-img-col {
  background:var(--color-light);display:flex;align-items:center;justify-content:center;
  padding:40px;border-right:1px solid var(--color-border);
  position:relative;min-height:400px;
}
.modal-img-col .modal-img-placeholder {
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.modal-img-col .modal-img-placeholder i { font-size:5rem;opacity:.4; }
.modal-content-col   { padding:40px;overflow-y:auto; }
.modal-cat-badge     { margin-bottom:12px; }
.modal-content-col h2{ font-size:1.45rem;color:var(--color-text-dark);margin-bottom:14px; }
.modal-desc          { font-size:.93rem;color:var(--color-text-muted);margin-bottom:22px;line-height:1.78; }
.modal-diferenciais  { margin-bottom:22px; }
.modal-diferenciais h4,
.modal-tech h4 {
  font-size:.82rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:12px;
}
.modal-diferencial {
  display:flex;align-items:flex-start;gap:10px;
  margin-bottom:7px;font-size:.88rem;color:var(--color-text);
}
.modal-diferencial i { color:var(--color-primary);margin-top:2px;flex-shrink:0; }
.modal-tech          { margin-bottom:22px; }
.modal-tech-grid     { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.modal-tech-item     { background:var(--color-light);border-radius:8px;padding:10px 12px; }
.modal-tech-item .key{ font-size:.73rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em; }
.modal-tech-item .val{ font-size:.87rem;font-weight:600;color:var(--color-text-dark); }
.modal-divider       { border:none;border-top:1px solid var(--color-border);margin:22px 0; }
.modal-form-title    { font-size:.97rem;font-weight:700;color:var(--color-text-dark);margin-bottom:14px; }
.modal-actions       { display:flex;gap:12px;margin-top:18px;flex-wrap:wrap; }
.modal-actions .btn  { flex:1;min-width:140px;justify-content:center; }

/* ---- EMPTY STATE ---- */
.empty-state { text-align:center;padding:80px 20px;color:var(--color-text-muted); }
.empty-state i { font-size:3rem;opacity:.25;margin-bottom:14px; }
.empty-state h3{ color:var(--color-text-dark);margin-bottom:8px; }

/* ---- SUCCESS MSG ---- */
.success-msg {
  background:var(--color-primary-light);border:1px solid var(--color-border-green);
  border-radius:var(--radius-md);padding:16px;text-align:center;
  color:var(--color-primary-dark);font-weight:600;margin-top:14px;
}

/* ---- SCROLL TOP ---- */
#scroll-top {
  position:fixed;bottom:32px;right:32px;
  width:44px;height:44px;background:var(--color-primary);color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:.9rem;box-shadow:var(--shadow-green);cursor:pointer;
  transition:var(--transition);opacity:0;pointer-events:none;z-index:900;
}
#scroll-top.visible { opacity:1;pointer-events:all; }
#scroll-top:hover   { background:var(--color-primary-dark);transform:translateY(-3px); }

/* ---- HERO ENTRY ANIMATION ---- */
@keyframes hero-fade-up {
  from { opacity:0;transform:translateY(32px); }
  to   { opacity:1;transform:translateY(0); }
}
.hero-content { animation:hero-fade-up .85s cubic-bezier(.4,0,.2,1) both;animation-delay:.2s; }
.hero-tag     { animation:hero-fade-up .7s  cubic-bezier(.4,0,.2,1) both;animation-delay:.05s; }

/* ---- REVEAL ANIMATION ---- */
[data-reveal] {
  opacity:0;transform:translateY(28px);
  transition:opacity .6s ease,transform .6s ease;
}
[data-reveal].revealed { opacity:1;transform:translateY(0); }
[data-reveal-delay="1"]{transition-delay:.1s}
[data-reveal-delay="2"]{transition-delay:.2s}
[data-reveal-delay="3"]{transition-delay:.3s}
[data-reveal-delay="4"]{transition-delay:.4s}
[data-reveal-delay="5"]{transition-delay:.5s}
[data-reveal-delay="6"]{transition-delay:.6s}

/* ---- RESPONSIVE ---- */
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px}
  #autoridade .auth-stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .section{padding:64px 0}
  .grid-2,.grid-3{grid-template-columns:1fr}
  #header .header-inner{padding:0 20px}
  nav#main-nav,.header-actions .btn{display:none}
  #menu-toggle{display:flex}
  .hero-visual{display:none}
  .hero-content{max-width:100%}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%;justify-content:center}
  #sobre .sobre-image-wrap{margin-bottom:32px}
  #sobre .sobre-badge{right:12px}
  #assistencia .assist-grid{grid-template-columns:1fr}
  #assistencia .assist-stats{grid-template-columns:1fr 1fr}
  .contact-strip-inner{gap:18px}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .modal-box{grid-template-columns:1fr}
  .modal-img-col{min-height:200px;padding:24px}
  .modal-content-col{padding:24px}
  .modal-tech-grid{grid-template-columns:1fr}
  .products-toolbar .container{flex-direction:column;gap:16px}
  .search-wrap{max-width:100%}
  .products-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .page-header-products{padding:110px 0 44px}
  #cta-final .cta-actions{flex-direction:column;align-items:center}
  #cta-final .cta-actions .btn{width:100%;max-width:320px}
}
@media(max-width:480px){
  .container{padding:0 16px}
  #autoridade .auth-stats-grid{grid-template-columns:1fr}
  .products-grid{grid-template-columns:1fr}
  .cookie-inner{flex-direction:column}
  .cookie-actions{width:100%}
  .cookie-actions .btn{flex:1}
  #scroll-top{bottom:20px;right:20px}
}
