/*
Theme Name: Controle de Alunos Landing Page
Theme URI: https://controledealunos.com
Author: Miqueias
Description: Landing page oficial do Controle de Alunos — app e painel web para gestão de alunos, turmas e mensalidades.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: controle-alunos
*/

/* ============================================================
   ANIMAÇÕES CUSTOMIZADAS
   ============================================================ */

@keyframes blob {
  0%   { transform: translate(0px, 0px) scale(1); }
  33%  { transform: translate(30px, -50px) scale(1.1); }
  66%  { transform: translate(-20px, 20px) scale(0.9); }
  100% { transform: translate(0px, 0px) scale(1); }
}
.animate-blob { animation: blob 7s infinite; }
.animation-delay-2000 { animation-delay: 2s; }
.animation-delay-4000 { animation-delay: 4s; }

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up { animation: fadeInUp 0.6s ease-out forwards; }
.animate-delay-100 { animation-delay: 0.1s; opacity: 0; }
.animate-delay-200 { animation-delay: 0.2s; opacity: 0; }
.animate-delay-300 { animation-delay: 0.3s; opacity: 0; }
.animate-delay-400 { animation-delay: 0.4s; opacity: 0; }
.animate-delay-500 { animation-delay: 0.5s; opacity: 0; }

@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(16, 185, 129, 0.4); }
  50%       { box-shadow: 0 0 40px rgba(16, 185, 129, 0.7), 0 0 60px rgba(14, 165, 233, 0.3); }
}
.animate-glow-pulse { animation: glowPulse 2.5s ease-in-out infinite; }

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-8px); }
}
.animate-float { animation: float 4s ease-in-out infinite; }

@keyframes gradientShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.animate-gradient-text {
  background-size: 200% 200%;
  animation: gradientShift 4s ease infinite;
}

@keyframes btnShine {
  0%        { left: -100%; }
  60%, 100% { left: 150%; }
}
.btn-shine { position: relative; overflow: hidden; }
.btn-shine::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.25), transparent);
  animation: btnShine 3s ease-in-out infinite;
}

/* Patterns */
.bg-grid-pattern {
  background-image:
    linear-gradient(rgba(16, 185, 129, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 185, 129, 0.04) 1px, transparent 1px);
  background-size: 40px 40px;
}
.bg-dot-pattern {
  background-image: radial-gradient(circle, rgba(16, 185, 129, 0.12) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* Scroll suave */
html { scroll-behavior: smooth; }

/* Acessibilidade */
:focus-visible { outline: 2px solid #10b981; outline-offset: 2px; }

/* Details/Summary reset para FAQ */
details summary::-webkit-details-marker { display: none; }

/* Sticky CTA mobile oculto por padrão */
#sticky-cta { transform: translateY(100%); transition: transform 0.3s ease; }
#sticky-cta.visible { transform: translateY(0); }

/* Header scroll */
#site-header { transition: all 0.3s ease; }
#site-header.scrolled {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid #f1f5f9;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

/* Menu mobile */
#menu-overlay { display: none; }
#menu-overlay.open { display: block; }
#menu-mobile { transform: translateX(-100%); transition: transform 0.3s ease; }
#menu-mobile.open { transform: translateX(0); }

/* FAQ arrow rotate */
details[open] .faq-arrow { transform: rotate(180deg); }
.faq-arrow { transition: transform 0.2s ease; }
