/* ==========================================================================
   O PRESTADOR â€” Sistema de Design Completo
   PrincÃ­pio: conteÃºdo sempre visÃ­vel; animaÃ§Ãµes sÃ£o enhancement progressivo
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens de Design
   -------------------------------------------------------------------------- */
:root {
  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans:  'Plus Jakarta Sans', system-ui, sans-serif;
  --font-mono:  'JetBrains Mono', monospace;

  /* Cores */
  --bg:          #09090f;
  --bg-surface:  #0f0f1a;
  --bg-card:     rgba(255,255,255,0.035);

  --accent:      #2563eb;
  --accent-mid:  #3b82f6;
  --accent-light:#60a5fa;
  --accent-glow: rgba(37,99,235,0.3);
  --green:       #22c55e;
  --green-dark:  #16a34a;
  --blue-bright: #38bdf8;
  --green-bright:#34d399;

  --ivory:       #ede9df;
  --t1:          #e4dfd6;   /* texto primÃ¡rio */
  --t2:          #9ca3af;   /* texto secundÃ¡rio */
  --t3:          #6b7280;   /* texto muted */

  --line:        rgba(255,255,255,0.07);
  --line-accent: rgba(59,130,246,0.22);

  /* Raios */
  --r-pill: 9999px;
  --r-xl:   26px;
  --r-lg:   18px;
  --r-md:   12px;

  /* Easing premium */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

/* --------------------------------------------------------------------------
   2. Reset
   -------------------------------------------------------------------------- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
  background: var(--bg);
  overflow-y: scroll;
}

body {
  font-family: var(--font-sans);
  background: transparent;
  color: var(--t1);
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 4px; }

h1, h2 {
  font-family: var(--font-serif);
  font-weight: 700;
  color: var(--ivory);
  letter-spacing: -0.015em;
}
h3 { font-weight: 700; color: var(--ivory); }
h1 { line-height: 1.07; text-wrap: balance; }
h2 { line-height: 1.18; text-wrap: balance; }
p  { color: var(--t2); }

/* --------------------------------------------------------------------------
   3. Fundo â€” Mesh Gradient Suave (sem pixelaÃ§Ã£o)
   -------------------------------------------------------------------------- */
.bg-mesh {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: linear-gradient(175deg, #0d1117 0%, #09090f 55%, #0e0d1a 100%);
}
.bg-orb {
  display: none !important;
}

@keyframes orbFloat1 {
  0%   { transform: translate(0, 0) scale(1); }
  25%  { transform: translate(80px, -60px) scale(1.1); }
  50%  { transform: translate(-40px, 80px) scale(0.95); }
  75%  { transform: translate(60px, 40px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes orbFloat2 {
  0%   { transform: translate(0, 0) scale(1); }
  30%  { transform: translate(-70px, 50px) scale(1.08); }
  60%  { transform: translate(50px, -70px) scale(0.92); }
  100% { transform: translate(0, 0) scale(1); }
}
.noise-overlay {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

/* Slogan da marca */
.hero-slogan-citation {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.45rem, 2.5vw, 2.05rem);
  font-weight: 500;
  color: var(--ivory);
  margin-bottom: 28px;
  letter-spacing: -0.015em;
  display: block;
  opacity: 0;
  will-change: transform, opacity, filter;
  line-height: 1.35;
  text-shadow: 
    0 2px 10px rgba(37, 99, 235, 0.25),
    0 1px 3px rgba(0, 0, 0, 0.85);
}

/* Efeito de digitaÃ§Ã£o */
.typing-line {
  display: inline-block;
  min-height: 1.1em;
}
.typing-cursor {
  position: absolute;
  display: inline-block;
  width: 3px;
  height: 1em;
  background-color: var(--accent-mid);
  margin-left: 4px;
  animation: cursorBlink 0.8s steps(2, start) infinite;
  vertical-align: middle;
}
@keyframes cursorBlink {
  to { visibility: hidden; }
}

/* Spotlights reativos (MouseMove) */
.hero-section {
  --mx: 50%;
  --my: 50%;
}
.hero-spotlight {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle 380px at var(--mx) var(--my), rgba(59, 130, 246, 0.18), transparent 70%);
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 1;
}
.hero-section:hover .hero-spotlight {
  opacity: 1;
}

.cat-card {
  --mx: 50%;
  --my: 50%;
}
.card-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle 220px at var(--mx) var(--my), rgba(59, 130, 246, 0.22), transparent 70%);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 1;
}
.cat-card:hover .card-glow {
  opacity: 1;
}

/* --------------------------------------------------------------------------
   4. Header & NavegaÃ§Ã£o
   -------------------------------------------------------------------------- */
.site-header {
  position: fixed;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  width: calc(100% - 40px);
  max-width: 1280px;
}

.nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 18px 10px 14px;
  background: rgba(9,9,15,0.7);
  backdrop-filter: blur(22px) saturate(1.5);
  -webkit-backdrop-filter: blur(22px) saturate(1.5);
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  box-shadow: 0 8px 32px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.055);
  position: relative;
  will-change: transform, opacity;
}

.logo-link {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.logo-img {
  height: 42px;
  width: 42px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--blue-bright);
  box-shadow: 0 0 12px rgba(37, 99, 235, 0.4), inset 0 0 4px rgba(37, 99, 235, 0.6);
  transition: transform 0.3s var(--ease-out), border-color 0.3s ease, box-shadow 0.3s ease;
}
.logo-link:hover .logo-img {
  transform: scale(1.08) rotate(5deg);
  border-color: var(--green-bright);
  box-shadow: 0 0 18px rgba(52, 211, 153, 0.6);
}
.logo-text {
  display: inline-block;
  font-weight: 900;
  font-size: 1.25rem;
  color: var(--ivory);
  white-space: nowrap;
  letter-spacing: -0.02em;
  transition: color 0.3s ease, text-shadow 0.3s ease;
  text-shadow: 0 2px 10px rgba(37, 99, 235, 0.15);
}
.logo-link:hover .logo-text {
  color: var(--green-bright);
  text-shadow: 0 0 15px rgba(52, 211, 153, 0.45);
}

/* Popover da logo ampliada */
.logo-preview-popover {
  position: absolute;
  top: calc(100% + 14px);
  left: 14px;
  z-index: 1001;
  width: 200px;
  height: 200px;
  background: rgba(9, 9, 15, 0.88);
  border: 1px solid var(--line-accent);
  border-radius: 24px;
  padding: 6px;
  box-shadow: 
    0 20px 45px rgba(0, 0, 0, 0.75), 
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 0 25px rgba(59, 130, 246, 0.18);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  will-change: transform, opacity;
  transform-origin: top left;
}
.logo-preview-inner {
  width: 100%;
  height: 100%;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.logo-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 18px;
}
.logo-preview-shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(255, 255, 255, 0.2) 50%, transparent 70%);
  transform: translateX(-100%);
  pointer-events: none;
}
@keyframes logoShimmer {
  to { transform: translateX(100%); }
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 26px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.nav-item {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--t2);
  transition: color 0.3s ease;
  white-space: nowrap;
}
.nav-item:hover, .nav-item.active { color: var(--ivory); }

.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.btn-nav {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  background: var(--accent);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.055em;
  border-radius: var(--r-pill);
  border: none;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 4px 16px var(--accent-glow);
  transition: background 0.4s var(--ease-out), transform 0.4s var(--ease-spring), box-shadow 0.4s ease;
}
.btn-nav:hover {
  background: var(--accent-mid);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px var(--accent-glow);
}
.btn-nav svg { transition: transform 0.3s ease; }
.btn-nav:hover svg { transform: translate(2px, -2px); }

#btn-nav-whatsapp {
  background: #25D366;
  color: #fff;
  box-shadow: 0 4px 16px rgba(37, 211, 102, 0.3);
}
#btn-nav-whatsapp:hover {
  background: #128C7E;
  box-shadow: 0 8px 24px rgba(18, 140, 126, 0.45);
}

/* Hamburger */
.btn-hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 22px;
  height: 13px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-left: 6px;
}
.ham-line {
  width: 100%;
  height: 2px;
  background: var(--ivory);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* --------------------------------------------------------------------------
   5. Menu Mobile
   -------------------------------------------------------------------------- */
.mobile-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(9,9,15,0.88);
  backdrop-filter: blur(28px) saturate(1.3);
  -webkit-backdrop-filter: blur(28px) saturate(1.3);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s var(--ease-out);
}
.mobile-overlay.open { opacity: 1; pointer-events: auto; }

.mobile-box {
  width: 85%;
  max-width: 400px;
  display: flex;
  flex-direction: column;
  gap: 44px;
}
.mobile-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
}
.btn-close {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--ivory);
  width: 40px; height: 40px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.25s ease;
}
.btn-close:hover { background: rgba(255,255,255,0.1); }

.mobile-links {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.mob-link {
  font-family: var(--font-serif);
  font-size: 2.1rem;
  font-weight: 700;
  color: var(--ivory);
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out), color 0.2s ease;
}
.mob-link:hover { color: var(--t2); }
.mobile-overlay.open .mob-link { opacity: 1; transform: none; }
.mobile-overlay.open .mob-link:nth-child(1) { transition-delay: 0.06s; }
.mobile-overlay.open .mob-link:nth-child(2) { transition-delay: 0.12s; }
.mobile-overlay.open .mob-link:nth-child(3) { transition-delay: 0.18s; }

.mobile-bottom {
  border-top: 1px solid var(--line);
  padding-top: 24px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.4s var(--ease-out) 0.22s, transform 0.4s var(--ease-out) 0.22s;
}
.mobile-overlay.open .mobile-bottom { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   6. BotÃµes
   -------------------------------------------------------------------------- */
.btn-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  background: var(--green);
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 6px 6px 6px 22px;
  border-radius: var(--r-pill);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 8px 26px -6px rgba(34,197,94,0.3);
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.5s var(--ease-out), transform 0.5s var(--ease-spring), box-shadow 0.5s ease;
  will-change: transform;
}
.btn-whatsapp .btn-text  { margin-right: 14px; letter-spacing: -0.01em; }
.btn-whatsapp .btn-icon  {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: #ffffff;
  border-radius: 50%;
  flex-shrink: 0;
  color: var(--green);
  transition: transform 0.55s var(--ease-spring), background 0.4s ease, color 0.4s ease;
}
.wa-svg { width: 20px; height: 20px; display: block; }

.btn-whatsapp:hover {
  transform: translateY(-4px);
  background: var(--green-dark);
  box-shadow: 0 16px 32px -8px rgba(22,163,74,0.4);
}
.btn-whatsapp:hover .btn-icon {
  transform: rotate(14deg) scale(1.12);
  color: var(--green-dark);
}
.btn-whatsapp:active { transform: translateY(0) scale(0.98); }

/* BotÃ£o fantasma */
.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--t2);
  transition: color 0.35s ease;
}
.btn-ghost:hover { color: var(--ivory); }
.btn-ghost svg { transition: transform 0.35s var(--ease-spring); }
.btn-ghost:hover svg { transform: translateY(3px); }

/* VersÃ£o extra-large do botÃ£o (CTA final) */
.btn-xl { font-size: 1.05rem; }
.btn-xl .btn-icon { width: 50px; height: 50px; }
.btn-xl .wa-svg  { width: 22px; height: 22px; }

/* --------------------------------------------------------------------------
   7. DivisÃ³ria
   -------------------------------------------------------------------------- */
.section-divider {
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(59,130,246,0.28), transparent);
  margin: 0 auto;
  max-width: 1280px;
}

/* --------------------------------------------------------------------------
   8. Hero
   -------------------------------------------------------------------------- */
.hero-section {
  position: relative;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 128px 24px 80px;
  overflow: hidden;
  z-index: 1;
}

/* Linha de luz no topo */
.hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(59,130,246,0.35), transparent);
  pointer-events: none;
}

.hero-fade-bottom {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 55%, var(--bg) 100%);
  z-index: 1;
  pointer-events: none;
}

.hero-telemetry {
  position: absolute;
  top: 128px;
  left: 38px;
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--t3);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  pointer-events: none;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 7px;
}
.t-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  flex-shrink: 0;
  animation: blink 1.6s ease-in-out infinite;
}
@keyframes blink {
  0%,100% { opacity: 1; }
  50%      { opacity: 0.2; }
}

.hero-grid {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 52fr 48fr;
  gap: 52px;
  align-items: center;
}

.hero-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 14px;
  background: rgba(37,99,235,0.1);
  border: 1px solid rgba(59,130,246,0.28);
  color: var(--accent-mid);
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  border-radius: var(--r-pill);
  margin-bottom: 24px;
}

.hero-title {
  font-size: clamp(2.2rem, 4.8vw, 3.8rem);
  margin-bottom: 22px;
  perspective: 800px;
}
.hero-title .char {
  display: inline-block;
}
.hero-title-line-mask {
  overflow: hidden;
  display: block;
}
.hero-title-line {
  display: block;
  will-change: transform;
}

/* Wrapper para word-by-word reveal â€” adicionado pelo JS */
.word-wrap {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  line-height: 1.1;
}
.word { display: inline-block; }

.hero-subtitle {
  font-size: clamp(0.98rem, 1.9vw, 1.18rem);
  max-width: 50ch;
  line-height: 1.7;
  color: var(--t2);
  margin-bottom: 36px;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Imagem hero: bezel duplo */
.hero-right {
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero-bezel {
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--line);
  padding: 7px;
  border-radius: var(--r-xl);
  box-shadow: 0 40px 80px -20px rgba(0,0,0,0.65),
              0 0 0 1px rgba(255,255,255,0.03);
  transition: transform 0.7s var(--ease-spring), border-color 0.5s ease, box-shadow 0.5s ease;
  width: 100%;
}
.hero-bezel-main {
  max-width: 360px;
  transform: rotate(-2deg);
  z-index: 1;
}
.hero-bezel-logo {
  max-width: 320px;
  transform: rotate(3deg);
  z-index: 2;
  border-color: rgba(37, 99, 235, 0.35);
  box-shadow: 0 30px 60px -15px rgba(0,0,0,0.6), 
              0 0 25px rgba(37, 99, 235, 0.15);
}
.hero-bezel-main:hover {
  transform: rotate(0deg) scale(1.02);
  z-index: 3;
  border-color: var(--line-accent);
}
.hero-bezel-logo:hover {
  transform: rotate(0deg) scale(1.05);
  z-index: 3;
  border-color: var(--green-bright);
  box-shadow: 0 40px 80px -20px rgba(0,0,0,0.7), 
              0 0 35px rgba(52, 211, 153, 0.3);
}
.hero-bezel-inner {
  background: var(--bg-surface);
  border-radius: calc(var(--r-xl) - 7px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.04);
}
.hero-img {
  width: 100%;
  max-height: 450px;
  object-fit: cover;
  transition: transform 0.9s var(--ease-out);
}
.hero-bezel:hover .hero-img { transform: scale(1.05); }



/* --------------------------------------------------------------------------
   9. ServiÃ§os â€” Bento Grid
   -------------------------------------------------------------------------- */
.services-section {
  position: relative;
  padding: 130px 24px;
  background: var(--bg-surface);
  border-top: 1px solid var(--line);
  z-index: 2;
  --mx: 50%;
  --my: 50%;
}
.services-spotlight {
  display: none !important;
}
.services-section:hover .services-spotlight {
  opacity: 0;
}

.flow-section {
  position: relative;
  padding: 95px 24px;
  background: var(--bg);
  border-top: 1px solid var(--line);
  z-index: 2;
  --mx: 50%;
  --my: 50%;
}
.flow-spotlight {
  display: none !important;
}
.flow-section:hover .flow-spotlight {
  opacity: 0;
}

.services-wrap {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 3.8fr 8.2fr;
  gap: 64px;
  align-items: start;
}

.services-intro {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 120px;
}

.services-title {
  font-size: clamp(1.85rem, 3vw, 2.55rem);
  line-height: 1.15;
}
.services-desc {
  font-size: 1rem;
  line-height: 1.72;
  color: var(--t2);
}
.reveal-word {
  display: inline-block;
  margin-right: 4px;
}

.metrics-row {
  display: flex;
  gap: 36px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 24px;
}
.metric-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.metric-number {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--ivory);
  line-height: 1.1;
  background: linear-gradient(135deg, var(--ivory) 40%, var(--accent-mid) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.metric-label {
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--t3);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.trust-block { margin-top: 16px; }
.trust-label {
  font-size: 9.5px;
  font-weight: 700;
  font-family: var(--font-mono);
  color: var(--t3);
  letter-spacing: 0.14em;
  margin-bottom: 12px;
}
.brand-row {
  display: flex;
  align-items: center;
  gap: 22px;
  opacity: 0.38;
  transition: opacity 0.45s ease;
}
.brand-row:hover { opacity: 0.72; }
.brand {
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  color: var(--ivory);
}

/* Grid de cards */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  perspective: 1000px;
}
@media (max-width: 1200px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}

/* Card base */
.cat-card {
  background: var(--bg-card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  overflow: visible;
  /* TransiÃ§Ãµes fluidas para retorno, no hover fica em tempo real pelo JS */
  transition:
    border-color   0.5s var(--ease-out),
    box-shadow     0.5s var(--ease-out);
  transform-style: preserve-3d;
  will-change: transform;
  perspective: 1200px;
  /* Efeito de relevo especular na borda interna (chanfro reflexivo tridimensional) */
  box-shadow: 
    0 0 0 1px rgba(255, 255, 255, 0.03),
    inset calc(var(--ry-num, 0) * 0.35px) calc(var(--rx-num, 0) * -0.35px) 0px rgba(255, 255, 255, 0.08);
}
.cat-card:hover {
  border-color: var(--line-accent);
  /* Brilho e sombra 3D fÃ­sica reativa que se desloca dinamicamente */
  box-shadow: 
    0 0 0 1px rgba(59, 130, 246, 0.25),
    inset calc(var(--ry-num, 0) * 0.6px) calc(var(--rx-num, 0) * -0.6px) 0px rgba(255, 255, 255, 0.2),
    0 15px 45px -15px rgba(37,99,235,0.18);
}

/* Glare de reflexo 3D dinÃ¢mico */
.card-glare {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle 240px at var(--glare-x, 50%) var(--glare-y, 50%), rgba(255, 255, 255, 0.15), transparent 80%);
  pointer-events: none;
  z-index: 3;
  mix-blend-mode: overlay;
  opacity: 0;
  transition: opacity 0.4s ease;
  border-radius: inherit;
}
.cat-card:hover .card-glare {
  opacity: 1;
}

/* Sombra dinÃ¢mica projetada que se desloca na direÃ§Ã£o oposta ao mouse */
.cat-card::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: calc(var(--r-lg) + 1px);
  background: transparent;
  box-shadow:
    0 10px 30px -10px rgba(0, 0, 0, 0.65),
    0 0 0 1px rgba(255, 255, 255, 0.02);
  pointer-events: none;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.4s ease, box-shadow 0.15s ease;
}
.cat-card:hover::after {
  opacity: 1;
  /* Sombra projetada deslocada em 3D conforme a rotaÃ§Ã£o */
  box-shadow:
    calc(var(--ry-num, 0) * -2.4px) calc(var(--rx-num, 0) * 2.4px) 45px -12px rgba(0, 0, 0, 0.9),
    calc(var(--ry-num, 0) * -0.8px) calc(var(--rx-num, 0) * 0.8px) 15px -5px rgba(0, 0, 0, 0.5);
}

/* Hybrid cards (com imagem de fundo) */
.hybrid-card {
  padding: 0;
  min-height: 270px;
  justify-content: flex-end;
  overflow: hidden;
  border-radius: var(--r-lg);
  /* CorreÃ§Ã£o de anti-aliasing e clipping 3D nos cantos */
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
}
.card-img-wrap {
  position: absolute;
  inset: 0; /* Alinhado perfeitamente com o container */
  z-index: 0;
  overflow: hidden;
  border-radius: inherit;
  transform-style: flat;
  /* CorreÃ§Ã£o de composiÃ§Ã£o e clipping 3D */
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
}
.card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.8) brightness(0.72);
  opacity: 1;
  transform: scale(1.12) translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: transform 0.8s var(--ease-out), filter 0.8s var(--ease-out);
}
.cat-card:hover .card-img {
  transform: scale(1.22) translate3d(0, 0, 0);
  filter: saturate(1.1) brightness(1.0);
}

.card-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
    rgba(9,9,15,0.96) 15%,
    rgba(9,9,15,0.55)  52%,
    rgba(9,9,15,0.08) 100%);
  z-index: 1;
  border-radius: inherit;
  transition: opacity 0.6s var(--ease-out);
}
.cat-card:hover .card-img-overlay {
  opacity: 0.82;
}

.card-body {
  position: relative;
  z-index: 2;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
  justify-content: flex-end;
  transform-style: preserve-3d;
  transform: translateZ(22px);
}

/* Ãcone do card â€” SVG inline */
.card-icon-wrap {
  width: 44px;
  height: 44px;
  background: rgba(37,99,235,0.22);
  border: 1px solid rgba(59,130,246,0.35);
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: background 0.5s ease, border-color 0.5s ease;
  transform: translateZ(38px);
}
.card-icon-wrap svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.cat-card:hover .card-icon-wrap {
  background: rgba(37,99,235,0.4);
  border-color: rgba(59,130,246,0.6);
}

/* Shimmer no Ã­cone */
.card-icon-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,0.22) 50%, transparent 70%);
  transform: translateX(-100%);
  pointer-events: none;
}
.cat-card:hover .card-icon-wrap::after {
  animation: shimmer-icon 0.7s var(--ease-out) forwards;
}
@keyframes shimmer-icon {
  to { transform: translateX(200%); }
}

.card-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ivory);
  transform: translateZ(28px);
}
.card-desc {
  font-size: 0.85rem;
  color: var(--t2);
  line-height: 1.55;
  transform: translateZ(16px);
}

/* --------------------------------------------------------------------------
   10. Como Funciona â€” Timeline Visual
   -------------------------------------------------------------------------- */
.flow-wrap {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.flow-header {
  text-align: center;
  margin-bottom: 80px;
}
.flow-eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 700;
  color: var(--accent-mid);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.flow-title {
  font-size: clamp(1.85rem, 3vw, 2.6rem);
  margin-bottom: 12px;
}
.flow-subtitle {
  font-size: 1.05rem;
  color: var(--t2);
}

.flow-vertical-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 1.8rem;
  perspective: 1000px;
}
.flow-vertical-card {
  position: relative;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 24px;
  padding: 26px 36px;
  transition: 
    border-color 0.5s var(--ease-out),
    box-shadow 0.5s var(--ease-out),
    transform 0.5s var(--ease-spring),
    background 0.5s var(--ease-out);
  transform-style: preserve-3d;
  overflow: hidden;
  will-change: transform, border-color, box-shadow;
  --mx: 50%;
  --my: 50%;
}
.flow-card-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 0;
}
.flow-vertical-card:hover .flow-card-glow {
  opacity: 1;
}
.flow-card-content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 32px;
}
.flow-card-number {
  font-family: var(--font-serif);
  font-size: clamp(3.5rem, 6vw, 5.5rem);
  font-weight: 900;
  line-height: 1;
  position: absolute;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  opacity: 0.05;
  transition: all 0.5s var(--ease-out);
  pointer-events: none;
  user-select: none;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.flow-card-icon-wrap {
  width: 72px;
  height: 72px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.5s var(--ease-spring), background 0.4s ease, border-color 0.4s ease;
  position: relative;
}
.flow-badge-notif {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 20px;
  height: 20px;
  background: #ef4444;
  color: #fff;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 800;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.7);
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.35s var(--ease-spring);
  z-index: 10;
  pointer-events: none;
}
.flow-vertical-card.step-1:hover .flow-badge-notif {
  background: var(--accent-mid);
  box-shadow: 0 0 14px rgba(59, 130, 246, 0.9);
}
.flow-svg {
  width: 32px;
  height: 32px;
  transition: color 0.4s ease;
}
.flow-svg-path {
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
  will-change: stroke-dashoffset;
}
.flow-svg-path2 {
  stroke-dasharray: 50;
  stroke-dashoffset: 50;
  will-change: stroke-dashoffset;
}
/* Estilos Customizados do Passo 2 (GPS e Rota de Mapa â€” Borda ao Pin) */
.flow-svg-step2 {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.flow-svg-path-pin {
  transform-origin: 58px 30px;
  transform-box: fill-box;
  transition: transform 0.4s var(--ease-out), filter 0.4s ease;
  filter: drop-shadow(0 2px 8px rgba(124, 58, 237, 0.55));
  will-change: transform;
}
.flow-vertical-card.step-2:hover .flow-svg-path-pin {
  transform: translateY(-4px) scale(1.05);
  filter: drop-shadow(0 6px 12px rgba(124, 58, 237, 0.75));
}

/* Rota GPS â€” path: M0 52 L28 52 L28 30 L58 30 (80px no total) */
.gps-route-line-bg {
  opacity: 0;
  transition: opacity 0.4s ease;
}
.flow-vertical-card.step-2:hover .gps-route-line-bg {
  opacity: 1;
}

.gps-route-line-fill {
  stroke-dasharray: 80;
  stroke-dashoffset: 80;
  transition: stroke-dashoffset 0.8s ease;
  will-change: stroke-dashoffset;
}
.flow-vertical-card.step-2:hover .gps-route-line-fill {
  stroke-dashoffset: 0;
}

/* Ponto de origem na borda e linha de entrada ocultos por padrÃ£o */
.gps-origin-dot, .gps-origin-line {
  opacity: 0;
  transition: opacity 0.4s ease;
}
.gps-origin-dot {
  filter: drop-shadow(0 0 4px rgba(124, 58, 237, 0.8));
}
.flow-vertical-card.step-2:hover .gps-origin-dot,
.flow-vertical-card.step-2:hover .gps-origin-line {
  opacity: 1;
}

/* Ponto mÃ³vel pela rota via offset-path (Oculto por padrÃ£o, corre apÃ³s delay no hover) */
.gps-car {
  offset-path: path('M0 52 L28 52 L28 30 L58 30');
  transform-origin: center;
  transform-box: fill-box;
  will-change: offset-distance;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.flow-vertical-card.step-2:hover .gps-car {
  opacity: 1;
  /* AnimaÃ§Ã£o com delay de 0.8s para aguardar o surgimento completo da rota */
  animation: moveGpsCar 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  animation-delay: 0.8s;
}

@keyframes moveGpsCar {
  0%   { offset-distance: 0%;   opacity: 0; }
  3%   { offset-distance: 0%;   opacity: 1; }
  88%  { offset-distance: 100%; opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}

/* Estilos Customizados do Passo 3 (Checklist de ConfirmaÃ§Ã£o) */
.flow-vertical-card.step-3 .flow-svg-path2 {
  stroke: var(--green);
  filter: drop-shadow(0 0 4px rgba(16, 185, 129, 0.4));
  stroke-dasharray: 40;
  stroke-dashoffset: 40;
  opacity: 0;
  transition: stroke 0.4s ease, stroke-dashoffset 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
  will-change: stroke-dashoffset, opacity;
}
.flow-vertical-card.step-3:hover .flow-svg-path2 {
  stroke: #10b981;
  stroke-dashoffset: 0 !important;
  opacity: 1 !important;
}
.flow-card-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 60%;
  transition: transform 0.5s var(--ease-out);
}
.flow-vertical-card:hover .flow-card-text-wrap {
  transform: translateX(8px);
}
.flow-card-tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  transition: all 0.4s ease;
  align-self: flex-start;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.flow-card-title {
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--ivory);
  margin-bottom: 2px;
}
.flow-card-desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--t2);
}

/* --- Cores e Personalidades Diferenciadas por Passo --- */
/* Passo 1 - Azul */
.flow-vertical-card.step-1 {
  border-color: rgba(37, 99, 235, 0.12);
}
.flow-vertical-card.step-1 .flow-card-glow {
  background: radial-gradient(circle 280px at var(--mx) var(--my), rgba(37, 99, 235, 0.24), transparent 70%);
}
.flow-vertical-card.step-1 .flow-card-tag { color: var(--accent-mid); }
.flow-vertical-card.step-1 .flow-svg { color: var(--accent-mid); }
.flow-vertical-card.step-1 .flow-card-number {
  background-image: linear-gradient(135deg, rgba(255,255,255,0.7), rgba(37,99,235,0.7));
}
.flow-vertical-card.step-1:hover {
  border-color: rgba(37, 99, 235, 0.4);
  box-shadow: 0 25px 50px -12px rgba(37, 99, 235, 0.2);
  transform: translateY(-6px) rotateX(1.5deg) rotateY(-0.8deg);
  background: radial-gradient(circle at 10% 20%, rgba(37, 99, 235, 0.03) 0%, transparent 80%);
}
.flow-vertical-card.step-1:hover .flow-card-number {
  opacity: 0.18;
  transform: translateY(-50%) scale(1.1);
  text-shadow: 0 0 25px rgba(37, 99, 235, 0.35);
}
.flow-vertical-card.step-1:hover .flow-card-tag {
  color: #fff;
  background: rgba(37, 99, 235, 0.25);
  box-shadow: 0 0 12px rgba(37, 99, 235, 0.4);
  border-color: rgba(37, 99, 235, 0.4);
}
.flow-vertical-card.step-1:hover .flow-card-icon-wrap {
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.4);
  transform: scale(1.12); /* EstÃ¡vel e firme */
}

/* Passo 2 - Roxo */
.flow-vertical-card.step-2 {
  border-color: rgba(168, 85, 247, 0.12);
}
.flow-vertical-card.step-2 .flow-card-glow {
  background: radial-gradient(circle 280px at var(--mx) var(--my), rgba(168, 85, 247, 0.24), transparent 70%);
}
.flow-vertical-card.step-2 .flow-card-tag { color: #a855f7; }
.flow-vertical-card.step-2 .flow-svg { color: #a855f7; }
.flow-vertical-card.step-2 .flow-card-number {
  background-image: linear-gradient(135deg, rgba(255,255,255,0.7), rgba(168,85,247,0.7));
}
.flow-vertical-card.step-2:hover {
  border-color: rgba(168, 85, 247, 0.4);
  box-shadow: 0 25px 50px -12px rgba(168, 85, 247, 0.2);
  transform: translateY(-6px) rotateX(1.5deg) rotateY(-0.8deg);
  background: radial-gradient(circle at 10% 20%, rgba(168, 85, 247, 0.03) 0%, transparent 80%);
}
.flow-vertical-card.step-2:hover .flow-card-number {
  opacity: 0.18;
  transform: translateY(-50%) scale(1.1);
  text-shadow: 0 0 25px rgba(168, 85, 247, 0.35);
}
.flow-vertical-card.step-2:hover .flow-card-tag {
  color: #fff;
  background: rgba(168, 85, 247, 0.25);
  box-shadow: 0 0 12px rgba(168, 85, 247, 0.4);
  border-color: rgba(168, 85, 247, 0.4);
}
.flow-vertical-card.step-2:hover .flow-card-icon-wrap {
  background: rgba(168, 85, 247, 0.1);
  border-color: rgba(168, 85, 247, 0.4);
  transform: scale(1.12); /* Estável e firme */
}

/* Passo 3 - Verde */
.flow-vertical-card.step-3 {
  border-color: rgba(16, 185, 129, 0.12);
}
.flow-vertical-card.step-3 .flow-card-glow {
  background: radial-gradient(circle 280px at var(--mx) var(--my), rgba(16, 185, 129, 0.24), transparent 70%);
}
.flow-vertical-card.step-3 .flow-card-tag { color: var(--green); }
.flow-vertical-card.step-3 .flow-svg { color: var(--green); }
.flow-vertical-card.step-3 .flow-card-number {
  background-image: linear-gradient(135deg, rgba(255,255,255,0.7), rgba(16, 185, 129, 0.7));
}
.flow-vertical-card.step-3:hover {
  border-color: rgba(16, 185, 129, 0.4);
  box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.2);
  transform: translateY(-6px) rotateX(1.5deg) rotateY(-0.8deg);
  background: radial-gradient(circle at 10% 20%, rgba(16, 185, 129, 0.03) 0%, transparent 80%);
}
.flow-vertical-card.step-3:hover .flow-card-number {
  opacity: 0.18;
  transform: translateY(-50%) scale(1.1);
  text-shadow: 0 0 25px rgba(16, 185, 129, 0.35);
}
.flow-vertical-card.step-3:hover .flow-card-tag {
  color: #fff;
  background: rgba(16, 185, 129, 0.25);
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.4);
  border-color: rgba(16, 185, 129, 0.4);
}
.flow-vertical-card.step-3:hover .flow-card-icon-wrap {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.4);
  animation: pop-success 0.6s var(--ease-out) forwards;
}

/* AnimaÃ§Ãµes de Hover dos Ãcones */
@keyframes wiggle {
  0% { transform: scale(1.1) rotate(-3deg); }
  100% { transform: scale(1.1) rotate(6deg); }
}
@keyframes pulse-radar {
  0% { transform: scale(1.1); box-shadow: 0 0 0 0 rgba(168, 85, 247, 0.4); }
  70% { transform: scale(1.12); box-shadow: 0 0 0 12px rgba(168, 85, 247, 0); }
  100% { transform: scale(1.1); box-shadow: 0 0 0 0 rgba(168, 85, 247, 0); }
}
@keyframes pop-success {
  0% { transform: scale(1); }
  50% { transform: scale(1.22) rotate(4deg); }
  100% { transform: scale(1.12); }
}
/* Tic-tic-check de confirmaÃ§Ã£o elÃ¡stica e refinada */
@keyframes tick-tick-check {
  0%   { transform: scale(1) rotate(0deg); }
  25%  { transform: scale(1.12) rotate(-9deg); } /* Primeiro tic */
  55%  { transform: scale(1.12) rotate(7deg); }   /* Segundo tic */
  80%  { transform: scale(1.12) rotate(-2deg); }
  100% { transform: scale(1.12) rotate(0deg); }   /* Fica firme no final */
}

/* Responsividade timeline vertical */
@media (max-width: 768px) {
  .flow-card-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .flow-card-text-wrap {
    max-width: 100%;
  }
  .flow-card-number {
    top: 24px;
    right: 24px;
    transform: none;
  }
  .flow-vertical-card:hover .flow-card-number {
    transform: scale(1.08);
  }
}

/* --------------------------------------------------------------------------
   11. CTA Final
   -------------------------------------------------------------------------- */
.cta-section {
  position: relative;
  padding: 130px 24px;
  background: transparent; /* Permite visualizar o particle-canvas fixo de fundo */
  border-top: 1px solid var(--line);
  text-align: center;
  z-index: 1;
  overflow: hidden;
  --mx: 50%;
  --my: 50%;
}
.cta-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-size: 45px 45px;
  background-image: 
    linear-gradient(to right, rgba(59, 130, 246, 0.02) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(59, 130, 246, 0.02) 1px, transparent 1px);
  z-index: 0;
  pointer-events: none;
}
.cta-spotlight {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle 380px at var(--smx, 50%) var(--smy, 50%), rgba(59, 130, 246, 0.18), transparent 75%);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 0;
}
.cta-section:hover .cta-spotlight {
  opacity: 1;
}
/* cta-lens-canvas removed */
.cta-glow {
  display: none !important;
}
.cta-wrap {
  position: relative;
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px; /* Aumentado de 20px para melhor respiro */
  z-index: 1; /* MantÃ©m o texto sob o canvas */
}
.cta-title { 
  font-size: clamp(1.85rem, 3.2vw, 2.7rem); 
  transition: text-shadow 0.5s ease, color 0.5s ease;
  position: relative;
  z-index: 1;
}
.cta-desc {
  font-size: 1.05rem;
  color: var(--t2);
  line-height: 1.65;
  max-width: 46ch;
  transition: color 0.5s ease;
  position: relative;
  z-index: 1;
}
#final-cta {
  position: relative;
  overflow: hidden; /* Importante para o clip-path */
  z-index: 12; /* Elevado acima do canvas da lente (z-index 2) para evitar distorÃ§Ãµes de cores (rosa) */
  margin-top: 42px; /* Margem generosa para respirar e separar de cta-wrap */
  display: inline-flex;
  align-items: stretch;
  justify-content: center;
  border: none !important; /* Remove qualquer borda herdada para nÃ£o vazar cor */
  border-radius: var(--r-pill);
  background: transparent;
  padding: 0; /* O padding vai para os layers internos */
  box-shadow: 0 8px 26px -6px rgba(34,197,94,0.3);
  transition: transform 0.4s var(--ease-spring), box-shadow 0.4s ease;
}

.btn-normal-layer,
.btn-inverted-layer {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 6px 6px 22px;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  box-sizing: border-box;
  transition: background 0.4s ease, color 0.4s ease;
}

.btn-normal-layer {
  background: var(--green);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.18); /* Borda interna verde-translÃºcida */
}

.btn-inverted-layer {
  position: absolute;
  inset: -1px; /* Cobre a borda perfeitamente */
  background: #ffffff;
  color: #000000;
  border: 1px solid #ffffff; /* Borda interna branca (inversÃ£o) */
  pointer-events: none;
  z-index: 1;
  clip-path: circle(0px at 0px 0px);
  transition: clip-path 0.25s ease; /* TransiÃ§Ã£o suave sob proximidade do cometa */
}
.btn-inverted-layer .btn-icon {
  background: #000000;
  color: #ffffff;
}

/* lens-near removed */

/* No hover real, a inversÃ£o toma conta de 100% do botÃ£o de forma contagiante gradual e elegante (1.6s) */
#final-cta:hover .btn-inverted-layer {
  clip-path: circle(150% at 50% 50%) !important;
  transition: clip-path 1.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

#final-cta:hover {
  background: transparent !important; /* Impede vazamento do verde do btn-whatsapp */
  border: none !important;
  animation: none !important; /* Remove o pulso (breathing) verde que parecia uma borda */
  box-shadow: 0 16px 40px rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-4px);
}
#final-cta:hover .btn-inverted-layer .btn-icon {
  color: #ffffff !important; /* ForÃ§a que o logo do wpp continue branco no hover invertido */
}
#final-cta:active {
  transform: translateY(0) scale(0.98);
}

/* Breathing do botÃ£o CTA (consistente com o botÃ£o verde e branco padrÃ£o) */
@keyframes breathing {
  0%, 100% { box-shadow: 0 8px 24px -6px rgba(34,197,94,0.4), 0 0 0 0 rgba(34,197,94,0); }
  50%       { box-shadow: 0 16px 36px -4px rgba(34,197,94,0.65), 0 0 0 14px rgba(34,197,94,0.08); }
}
.btn-breathing { animation: breathing 3s ease-in-out infinite; }

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */
.site-footer {
  position: relative;
  z-index: 2;
  padding: 48px 24px;
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.footer-inner {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}
.footer-logo { display: flex; align-items: center; gap: 10px; }
.footer-nav  { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.footer-link { font-size: 0.8rem; color: var(--t2); transition: color 0.3s ease; }
.footer-link:hover { color: var(--ivory); }
.footer-copy { font-family: var(--font-mono); font-size: 9px; color: var(--t3); }

/* --------------------------------------------------------------------------
   13. Cursor Customizado (Restrito apenas ao CTA / Lente Negativa)
   -------------------------------------------------------------------------- */
#cursor-dot {
  position: fixed;
  width: 6px;
  height: 6px;
  background: #60a5fa;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  box-shadow: 0 0 10px rgba(96, 165, 250, 0.8), 0 0 20px rgba(96, 165, 250, 0.5);
}
#cursor-dot.on {
  opacity: 1;
}

#cursor-ring {
  position: fixed;
  width: 38px;
  height: 38px;
  border: 1.5px solid rgba(96, 165, 250, 0.5);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  opacity: 0;
  transition:
    width 0.3s var(--ease-out),
    height 0.3s var(--ease-out),
    border-color 0.3s ease,
    opacity 0.2s ease;
  box-shadow: inset 0 0 10px rgba(96, 165, 250, 0.2), 0 0 18px rgba(96, 165, 250, 0.3);
  will-change: transform;
}
#cursor-ring.on {
  opacity: 1;
}
#cursor-ring.hover {
  width: 58px;
  height: 58px;
  border-color: rgba(96, 165, 250, 0.85);
  background: rgba(96, 165, 250, 0.08);
  box-shadow: inset 0 0 15px rgba(96, 165, 250, 0.4), 0 0 25px rgba(96, 165, 250, 0.4);
  opacity: 1;
}

/* cta-hover removed */

/* --------------------------------------------------------------------------
   14. Timeline Rail â€” Preenchimento DinÃ¢mico
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   15. Responsividade
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .site-header { left: 20px; right: 20px; transform: none; width: calc(100% - 40px); }
  .nav-menu   { display: none; }
  .btn-hamburger { display: flex; }
  /* MantÃ©m texto do botÃ£o WhatsApp visÃ­vel no tablet, remove em mobile menor */
}

@media (max-width: 900px) {
  .hero-grid           { grid-template-columns: 1fr; gap: 28px; text-align: center; }
  .hero-left           { align-items: center; }
  .hero-subtitle       { max-width: 100%; }
  .hero-bezel-main     { max-width: 290px; }
  .hero-bezel-logo     { max-width: 260px; }
  .services-wrap       { grid-template-columns: 1fr; gap: 36px; }
  .services-intro      { position: static; }
  .services-grid       { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  /* === SeÃ§Ãµes === */
  .hero-section {
    padding-top: 88px;
    padding-bottom: 48px;
    padding-left: 18px;
    padding-right: 18px;
    min-height: auto;
  }
  .services-section,
  .flow-section,
  .cta-section,
  .vsl-section {
    padding-top: 72px;
    padding-bottom: 56px;
    padding-left: 18px;
    padding-right: 18px;
  }

  /* === Hero === */
  .hero-grid      { gap: 24px; }
  .hero-bezel-main { max-width: 52%; }
  .hero-bezel-logo { max-width: 44%; }
  .hero-telemetry { display: none; }
  .hero-actions   { flex-direction: column; align-items: stretch; width: 100%; gap: 12px; }
  .btn-whatsapp   { justify-content: space-between; }
  .hero-title     { font-size: clamp(1.9rem, 8vw, 2.6rem); }

  /* === ServiÃ§os === */
  .services-grid  { grid-template-columns: 1fr; }
  .services-title { font-size: clamp(1.5rem, 6vw, 2rem); }
  .metrics-row    { gap: 20px; }

  /* === Painel de Outros ServiÃ§os === */
  .other-services-panel {
    padding: 32px 18px;
    border-radius: var(--r-lg);
  }
  .tabs-container {
    gap: 8px;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
  }
  .tab-btn {
    flex-shrink: 0;
    padding: 10px 16px;
    font-size: 0.76rem;
  }
  .category-list {
    grid-template-columns: 1fr;
  }
  .search-results-container {
    grid-template-columns: 1fr;
  }
  .problem-item {
    padding: 14px 16px;
    gap: 12px;
  }
  .problem-text {
    font-size: 0.85rem;
  }

  /* === Flow === */
  .flow-vertical-card { padding: 20px 22px; }
  .flow-card-title    { font-size: 1.2rem; }
  .flow-card-icon-wrap { width: 58px; height: 58px; }
  .flow-svg           { width: 26px; height: 26px; }

  /* === CTA === */
  .cta-title          { font-size: clamp(1.55rem, 7vw, 2.2rem); }
  #final-cta .btn-text { font-size: 0.88rem; }

  /* === Footer === */
  .footer-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .footer-nav { gap: 16px; }

  /* === Nav mobile === */
  #btn-nav-whatsapp span { display: none; }
  #btn-nav-whatsapp { padding: 9px 12px; }

  /* === VSL === */
  .vsl-title { font-size: clamp(1.4rem, 6vw, 2rem); }
}

/* Telas muito pequenas */
@media (max-width: 380px) {
  .other-services-panel { padding: 28px 14px; }
  .tab-btn { padding: 8px 12px; font-size: 0.72rem; }
  .hero-title { font-size: 1.75rem; }
}

/* --------------------------------------------------------------------------
   16. ReduÃ§Ã£o de Movimento
   -------------------------------------------------------------------------- */
/* Cursor trail (criado dinamicamente) */
#cursor-trail {
  mix-blend-mode: screen;
}

/* Cards de serviÃ§o com transiÃ§Ã£o suave pÃ³s-clip-path */
.cat-card.hybrid-card {
  clip-path: inset(0 0% 0 0%); /* estado final */
  transition: box-shadow 0.4s ease, transform 0.4s ease;
  will-change: clip-path;
}

/* CTA Section overflow hidden para Split Lines */
.cta-title {
  overflow: hidden;
}

/* ReduÃ§Ã£o de Movimento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto !important; }
}

/* --------------------------------------------------------------------------
   SeÃ§Ã£o de VSL (VÃ­deo de Vendas)
   -------------------------------------------------------------------------- */
.vsl-section {
  position: relative;
  padding: 100px 24px;
  background: var(--bg-surface);
  border-top: 1px solid var(--line);
  z-index: 1;
  text-align: center;
}
.vsl-spotlight {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle 500px at 50% 50%, rgba(37, 99, 235, 0.06), transparent 75%);
  z-index: 0;
}
.vsl-wrap {
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.vsl-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.vsl-title {
  font-size: clamp(1.85rem, 3vw, 2.5rem);
  line-height: 1.2;
}
.vsl-subtitle {
  font-size: 1.05rem;
  color: var(--t2);
  max-width: 60ch;
  margin: 0 auto;
}
.vsl-video-container {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
  padding: 10px;
  border-radius: var(--r-xl);
  box-shadow: 0 30px 60px -15px rgba(0,0,0,0.5), 0 0 40px rgba(37, 99, 235, 0.08);
  transition: border-color 0.5s ease;
}
.vsl-video-container:hover {
  border-color: var(--line-accent);
}
.vsl-video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  border-radius: calc(var(--r-xl) - 10px);
  overflow: hidden;
  background: #000;
  border: 1px solid rgba(255, 255, 255, 0.04);
}
.vsl-video-player {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --------------------------------------------------------------------------
   Progress Rail da Timeline
   -------------------------------------------------------------------------- */
.flow-vertical-container {
  position: relative;
  padding-left: 54px; /* Abre espaÃ§o para a linha do timeline no lado esquerdo */
}
.flow-timeline-rail {
  position: absolute;
  left: 17px; /* Centralizado horizontalmente em relaÃ§Ã£o Ã  largura dos Ã­cones */
  top: 40px;
  bottom: 40px;
  width: 2px;
  background: var(--line);
  border-radius: 2px;
  z-index: 1;
}
.flow-timeline-rail-fill {
  width: 100%;
  height: 0%; /* Cresce dinamicamente via GSAP */
  background: var(--accent);
  border-radius: 2px;
  box-shadow: 0 0 12px var(--accent);
  transition: background-color 0.4s ease, box-shadow 0.4s ease;
}
.flow-vertical-card::before {
  content: '';
  position: absolute;
  left: -46px; /* Alinha com a linha (54px - 17px) e compensa o border do card */
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--line);
  border: 2px solid var(--bg);
  z-index: 2;
  transition: background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.flow-vertical-card.active-step::before {
  background: var(--accent);
  border-color: var(--accent-light);
  box-shadow: 0 0 10px var(--accent-glow);
}
.flow-vertical-card.step-1.active-step::before {
  background: var(--accent-mid);
  box-shadow: 0 0 10px rgba(37, 99, 235, 0.6);
}
.flow-vertical-card.step-2.active-step::before {
  background: #a855f7;
  box-shadow: 0 0 10px rgba(168, 85, 247, 0.6);
}
.flow-vertical-card.step-3.active-step::before {
  background: var(--green);
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.6);
}

@media (max-width: 640px) {
  .flow-vertical-container {
    padding-left: 42px;
  }
  .flow-timeline-rail {
    left: 14px;
  }
  .flow-vertical-card::before {
    left: -37px;
  }
}

/* --------------------------------------------------------------------------
   Painel de Outros ServiÃ§os (Abas e Busca no estilo Blueprint HUD)
   -------------------------------------------------------------------------- */
.other-services-panel {
  grid-column: 1 / -1; /* Ocupa toda a largura do grid quando dentro do services-wrap */
  margin-top: 54px;
  background: rgba(9, 9, 15, 0.65);
  border: 1.5px solid rgba(59, 130, 246, 0.12);
  border-radius: var(--r-xl);
  padding: 50px 40px;
  backdrop-filter: blur(14px);
  box-shadow: 
    0 25px 55px -15px rgba(0, 0, 0, 0.8),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  position: relative;
  overflow: hidden;
}

/* RetÃ­culos e marcaÃ§Ãµes de desenho tÃ©cnico nas extremidades */
.other-services-panel::before {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(59, 130, 246, 0.06);
  pointer-events: none;
  z-index: 0;
  border-radius: calc(var(--r-xl) - 12px);
}

.panel-header {
  text-align: center;
  margin-bottom: 36px;
  position: relative;
  z-index: 2;
}
.panel-title {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  color: var(--ivory);
  margin-bottom: 8px;
}
.panel-subtitle {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  color: var(--t2);
}

/* Busca HUD */
.search-container {
  display: flex;
  justify-content: center;
  margin-bottom: 36px;
  position: relative;
  z-index: 2;
}
.search-box {
  position: relative;
  width: 100%;
  max-width: 500px;
}
.search-icon {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--t3);
  pointer-events: none;
  transition: all 0.3s ease;
}
#problem-search {
  width: 100%;
  padding: 16px 20px 16px 52px;
  background: rgba(9, 9, 15, 0.75);
  border: 1px solid rgba(59, 130, 246, 0.15);
  border-radius: var(--r-lg);
  color: var(--ivory);
  font-family: var(--font-sans);
  font-size: 0.88rem;
  transition: all 0.4s var(--ease-out);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.4);
}
#problem-search:focus {
  outline: none;
  border-color: var(--accent-mid);
  box-shadow: 
    0 0 25px rgba(37, 99, 235, 0.18),
    inset 0 2px 5px rgba(0, 0, 0, 0.5);
  background: rgba(9, 9, 15, 0.9);
}
#problem-search:focus + .search-icon {
  color: var(--accent-light);
  transform: translateY(-50%) scale(1.1);
  filter: drop-shadow(0 0 4px var(--accent-glow));
}

/* Abas de Categorias como seletores HUD com Cores Individuais */
.tabs-container {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-bottom: 40px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.tab-btn[data-category="banheiro"] { --tab-color: #10b981; }
.tab-btn[data-category="cozinha"] { --tab-color: #f97316; }
.tab-btn[data-category="quarto-sala"] { --tab-color: #3b82f6; }
.tab-btn[data-category="externo"] { --tab-color: #eab308; }

.tab-btn {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--r-md);
  padding: 12px 24px;
  color: var(--t2);
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 550;
  cursor: pointer;
  letter-spacing: 0.055em;
  transition: all 0.35s var(--ease-out);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  position: relative;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}
/* Led Indicador no BotÃ£o da Aba */
.tab-btn::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  transition: all 0.35s ease;
}
.tab-btn:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--tab-color);
  color: var(--ivory);
}
.tab-btn.active {
  background: color-mix(in srgb, var(--tab-color) 12%, transparent);
  border-color: var(--tab-color);
  color: #fff;
  box-shadow: 
    0 10px 25px -10px var(--tab-color),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.tab-btn.active::before {
  background: var(--tab-color);
  box-shadow: 0 0 10px var(--tab-color), 0 0 4px var(--tab-color);
}

/* AnimaÃ§Ã£o base de entrada */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Lista de Problemas */
.problems-lists-wrapper {
  position: relative;
  min-height: 220px;
  overflow: visible;
  padding: 8px 4px;
}
/* CustomizaÃ§Ã£o para pesquisa de serviÃ§os ativa */
.search-results-container {
  display: none;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  width: 100%;
  animation: fadeIn 0.4s var(--ease-out);
}
.problems-lists-wrapper.search-active .search-results-container {
  display: grid;
}
.problems-lists-wrapper.search-active .category-list {
  display: none !important;
}
.problems-lists-wrapper.search-active .problem-item {
  --theme-color: var(--accent-mid) !important;
}
.category-list {
  display: none;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  animation: fadeIn 0.4s var(--ease-out);
}
.category-list.active {
  display: grid;
}
.category-col, .search-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.problem-item {
  display: flex;
  align-items: center;
  gap: 16px;
  background: color-mix(in srgb, var(--theme-color) 0.5%, rgba(255, 255, 255, 0.006));
  border: 1px solid color-mix(in srgb, var(--theme-color) 3%, rgba(255, 255, 255, 0.012));
  padding: 18px 24px;
  border-radius: var(--r-md);
  transition: all 0.4s var(--ease-out);
  position: relative;
  cursor: pointer;
  z-index: 2;
  box-shadow: 
    0 4px 12px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.008);
}
.problem-item:hover {
  background: color-mix(in srgb, var(--theme-color) 12%, rgba(255, 255, 255, 0.025));
  border-color: color-mix(in srgb, var(--theme-color) 65%, rgba(255, 255, 255, 0.15));
  box-shadow: 
    0 16px 36px -12px rgba(0, 0, 0, 0.8),
    0 0 25px color-mix(in srgb, var(--theme-color) 25%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transform: translateY(-4px) scale(1.015);
}

.problem-icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: color-mix(in srgb, var(--theme-color) 20%, var(--t3));
  flex-shrink: 0;
  transition: all 0.4s ease;
}
.problem-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.problem-item:hover .problem-icon {
  color: var(--theme-color);
  filter: drop-shadow(0 0 8px var(--theme-color));
}

.problem-text {
  font-family: var(--font-sans);
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--theme-color) 15%, var(--t2));
  line-height: 1.45;
  margin: 0;
  transition: color 0.3s ease;
  font-weight: 500;
}
.problem-item:hover .problem-text {
  color: var(--ivory);
}

/* Sem resultados */
.search-no-results {
  text-align: center;
  padding: 40px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  animation: fadeIn 0.4s var(--ease-out);
  position: relative;
  z-index: 2;
}
.no-results-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ivory);
  margin: 0;
}
.no-results-desc {
  font-size: 0.92rem;
  color: var(--t2);
  margin-bottom: 8px;
}

@media (max-width: 768px) {
  .category-list {
    grid-template-columns: 1fr;
  }
  .search-results-container {
    grid-template-columns: 1fr;
  }
  .other-services-panel {
    padding: 36px 20px;
  }
  .tabs-container {
    gap: 10px;
  }
  .panel-title {
    font-size: clamp(1.2rem, 5vw, 1.6rem);
  }
}

/* ==========================================================================
   Micro-AnimaÃ§Ãµes de Ãcones no Hover (HUD Blueprint)
   ========================================================================== */

/* 1. Chave Inglesa (Reparos/Calhas) */
@keyframes wrenchRotate {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-12deg); }
}
.problem-item:hover .icon-chave-inglesa {
  animation: wrenchRotate 1s infinite ease-in-out;
  transform-origin: center;
}

/* 2. Martelo (Montagem/InstalaÃ§Ã£o) */
@keyframes hammerStrike {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-12deg); }
}
.problem-item:hover .icon-martelo {
  animation: hammerStrike 0.8s infinite ease-in-out;
  transform-origin: 18px 18px;
}

/* 3. ElÃ©trica */
@keyframes sparkPulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.12); opacity: 1; filter: drop-shadow(0 0 3px var(--accent-light)); }
}
.problem-item:hover .icon-eletrica {
  animation: sparkPulse 0.8s infinite ease-in-out;
  transform-origin: center;
}

/* 4. EletrÃ´nicos e TV */
@keyframes tvWaves {
  0% { opacity: 0; transform: scale(0.8); }
  50% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.2); }
}
.problem-item:hover .icon-tv .tv-wave-1 {
  animation: tvWaves 1.4s infinite ease-out 0s;
  transform-origin: left center;
}
.problem-item:hover .icon-tv .tv-wave-2 {
  animation: tvWaves 1.4s infinite ease-out 0.7s;
  transform-origin: right center;
}

/* 5. Cozinha (Fogo/Chama) */
@keyframes firePulse {
  0%, 100% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.12) scaleX(0.95); opacity: 0.9; }
}
.problem-item:hover .icon-cozinha-fogo {
  animation: firePulse 0.7s infinite ease-in-out;
  transform-origin: bottom center;
}

/* 6. Ventilador */
@keyframes fanRotation {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.problem-item:hover .icon-ventilador {
  animation: fanRotation 1.5s infinite linear;
  transform-origin: center;
}

/* 7. Ar Condicionado */
@keyframes acFlow {
  0% { transform: translateY(-2px); opacity: 0; }
  30% { opacity: 0.85; }
  80% { transform: translateY(4px); opacity: 0.85; }
  100% { transform: translateY(6px); opacity: 0; }
}
.problem-item:hover .icon-ar-condicionado .wind-drip-1 { animation: acFlow 1s infinite linear 0s; }
.problem-item:hover .icon-ar-condicionado .wind-drip-2 { animation: acFlow 1s infinite linear 0.3s; }
.problem-item:hover .icon-ar-condicionado .wind-drip-3 { animation: acFlow 1s infinite linear 0.15s; }

/* 8. Portas e Fechaduras (Chave Horizontal com dentes inferiores) */
@keyframes keyRotate {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(12deg); }
}
.problem-item:hover .icon-portas {
  animation: keyRotate 1s infinite ease-in-out;
  transform-origin: 7px 12px;
}

/* 9. Pintura (Pincel Diagonal) */
@keyframes brushStrokeDiagonal {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(2px, -2px) rotate(4deg); }
  70% { transform: translate(-1px, 1px) rotate(-2deg); }
}
.problem-item:hover .icon-pincel {
  animation: brushStrokeDiagonal 1s infinite ease-in-out;
  transform-origin: 6px 18px;
}

/* 10. Ãgua (Gota d'Ã¡gua) */
@keyframes waterDropPulse {
  0%, 100% { transform: translateY(0) scaleY(1) scaleX(1); }
  50% { transform: translateY(1.5px) scaleY(0.95) scaleX(1.05); }
}
.problem-item:hover .icon-agua {
  animation: waterDropPulse 0.9s infinite ease-in-out;
  transform-origin: center bottom;
}

/* 11. Torneira (Gota pingando) */
@keyframes faucetDrip {
  0% { transform: translateY(0); opacity: 0; }
  25% { transform: translateY(0); opacity: 1; }
  75% { transform: translateY(4px); opacity: 1; }
  100% { transform: translateY(6px); opacity: 0; }
}
.problem-item:hover .icon-torneira .drop-drip {
  animation: faucetDrip 1.2s infinite cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center top;
}
