/* === HERO === */
.hero-container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 75vh;
  padding: 6rem 2rem;
  text-align: center;
  color: #fff;
  border-radius: 1rem;
  overflow: hidden;
  background: radial-gradient(circle at 20% 30%, rgba(0, 140, 255, 0.3) 0%, transparent 70%),
              radial-gradient(circle at 80% 70%, rgba(0, 255, 204, 0.3) 0%, transparent 70%),
              linear-gradient(135deg, #0d1b3d 0%, #06122b 100%);
}

.hero-container::before {
  content: "";
  position: absolute;
  inset: 0;
  /**background: url("../assets/hero-pattern.svg") center/cover no-repeat; **/
  opacity: 0.1;
  animation: movePattern 20s linear infinite;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  animation: fadeInUp 1.2s ease-out;
}

.hero-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.2;
  background: linear-gradient(90deg, #00b3ff, #64ffda);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 30px rgba(0, 200, 255, 0.3);
  margin-bottom: 1rem;
}

.hero-title span {
  color: #64ffda;
  -webkit-text-fill-color: #64ffda;
}

.hero-subtitle {
  font-size: 1.2rem;
  color: #06122b;
  max-width: 700px;
  margin: 0 auto 2rem;
  line-height: 1.6;
}

.hero-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
}


.hero-shape {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 60% 50%, rgba(0, 200, 255, 0.2), transparent 70%);
  animation: pulseGlow 6s ease-in-out infinite alternate;
}

/* === ANIMAÇÕES === */
@keyframes movePattern {
  from { background-position: 0 0; }
  to { background-position: 200% 200%; }
}

@keyframes pulseGlow {
  from { opacity: 0.2; transform: scale(1); }
  to { opacity: 0.5; transform: scale(1.05); }
}

/* === RESPONSIVO === */
@media (max-width: 768px) {
  .hero-container {
    min-height: 60vh;
    padding: 4rem 1rem;
  }

  .hero-title {
    font-size: 2.2rem;
  }

  .hero-subtitle {
    font-size: 1rem;
  }
}


/* === Calculadora === */
.calc-container {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-top: 2rem;
  align-items: flex-start;
}

.calc-card,
.result-card {
  flex: 1 1 300px;
  background: var(--surface-color);
  border: 1px solid var(--stroke-color);
  border-radius: 0.75rem;
  padding: 2rem;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  transition: transform 0.3s ease;
}

.calc-card:hover,
.result-card:hover {
  transform: translateY(-4px);
}

.calc-card input {
  width: 100%;
  margin-bottom: 1rem;
  padding: 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid var(--stroke-color);
  background: var(--bg-color-2);
  color: var(--text-color-primary);
}

.calc-card label {
  font-weight: 500;
  margin-bottom: 0.25rem;
  display: block;
}

.calc-card .btn-primary.full {
  width: 100%;
  margin-top: 0.5rem;
}

.result-card {
  text-align: left;
  color: var(--text-color-primary);
}

.result-values {
  margin-top: 1rem;
  background: var(--bg-color-2);
  padding: 1rem;
  border-radius: 0.5rem;
}

.result-values div {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
}

.result-values strong {
  color: var(--brand-color-secondary);
}

.formula {
  margin-top: 1.5rem;
  font-size: 0.95rem;
  background: rgba(0,0,0,0.05);
  padding: 1rem;
  border-radius: 0.5rem;
}

.formula h4 {
  margin-bottom: 0.5rem;
  color: var(--brand-color-primary);
}

/* === Charts === */
.dashboard-card svg {
  width: 100%;
  height: 80px;
  margin: 1rem 0;
  stroke: var(--brand-color-secondary);
  stroke-width: 2;
  fill: none;
  animation: drawChart 1.5s ease-in-out forwards;
}

.dashboard-card svg rect {
  fill: var(--brand-color-secondary);
  transform-origin: bottom;
  transform: scaleY(0);
  animation: growBars 1s ease-out forwards;
}

.dashboard-card svg circle {
  fill: none;
  stroke-width: 6;
  stroke-dasharray: 94;
  stroke-dashoffset: 94;
  stroke: var(--brand-color-secondary);
  animation: circleDraw 1.2s ease-out forwards;
}

.dashboard-card svg .secondary {
  stroke: var(--text-color-seconday);
}

/* === Outros === */
.video-card iframe {
  height: 250px;
  border-radius: 0.75rem;
  box-shadow: 0 0 20px rgba(0,0,0,0.25);
}

.fade-in {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s ease-out;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* === Keyframes === */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes growBars {
  to { transform: scaleY(1); }
}

@keyframes drawChart {
  from { stroke-dasharray: 0 300; }
  to { stroke-dasharray: 300 0; }
}

@keyframes circleDraw {
  to { stroke-dashoffset: 0; }
}

@media (max-width: 768px) {
  .calc-container {
    flex-direction: column;
  }

  .glow-text {
    font-size: 2.2rem;
  }
}
