/* =========================================================================
   Buttons + ripple
   ========================================================================= */
.btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  font-weight: 600;
  font-size: .95rem;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
  will-change: transform;
}
.btn i{ font-size: .95em; }

.btn-lg{ padding: 16px 32px; font-size: 1.02rem; }

.btn-primary{
  color: #04140c;
  background: linear-gradient(135deg, var(--green), var(--green-2));
  box-shadow: 0 8px 30px -8px var(--green-glow);
}
.btn-primary:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 40px -10px var(--green-glow);
}

.btn-ghost{
  color: var(--text);
  background: var(--surface);
  border-color: var(--border-strong);
  backdrop-filter: blur(14px);
}
.btn-ghost:hover{
  background: var(--surface-hover);
  border-color: rgba(23,224,138,.5);
  transform: translateY(-2px);
}

.btn-outline{
  color: var(--green);
  background: transparent;
  border-color: var(--border-strong);
}
.btn-outline:hover{
  border-color: var(--green);
  background: var(--green-soft);
  transform: translateY(-2px);
}

.btn-red{
  color: #200008;
  background: linear-gradient(135deg, var(--red), var(--red-2));
  box-shadow: 0 8px 30px -8px var(--red-glow);
}
.btn-red:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 40px -10px var(--red-glow);
}

.btn:active{ transform: translateY(0) scale(.97); }

.ripple{
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,.5);
  transform: scale(0);
  pointer-events: none;
  animation: ripple-anim .65s var(--ease) forwards;
  z-index: 0;
}
@keyframes ripple-anim{
  to{ transform: scale(1); opacity: 0; }
}
