/* Site-wide custom styles */
html, body { font-family: 'Noto Sans JP', Arial, Helvetica, sans-serif; }

/* Enroll page styles */
.enroll-hero {
  background: radial-gradient(1200px 500px at 10% 0%, #f3f5ff 0%, #ffffff 50%),
              radial-gradient(800px 300px at 90% 10%, #f0fbff 0%, #ffffff 60%);
  position: relative;
}

.enroll-logo {
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.08);
  animation: float 6s ease-in-out infinite;
}

.enroll-card {
  background: #fff;
  border-radius: 16px;
  padding: 2rem;
  border: 1px solid #eef1f5;
  box-shadow: 0 20px 40px rgba(18,38,63,0.08);
}

.enroll-label {
  font-weight: 600;
  color: #495057;
  letter-spacing: 0.2px;
  font-size: 1rem;
}

.enroll-input {
  border-radius: 12px !important;
  border: 1px solid #e9ecef !important;
  padding: 1rem 1.25rem !important;
  font-size: 1.1rem !important;
  transition: all 0.2s ease;
}

.enroll-input:focus {
  border-color: #8a5cf6 !important;
  box-shadow: 0 0 0 0.2rem rgba(138,92,246,0.15) !important;
}

.btn-enroll {
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, #8a5cf6 0%, #4c9df1 100%);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.3px;
  box-shadow: 0 8px 20px rgba(76,157,241,0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  font-size: 1rem;
}

.btn-enroll:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(76,157,241,0.35);
}

/* Scroll-in animation */
.animate-init {
  opacity: 0;
  transform: translateY(24px) scale(0.98);
  will-change: opacity, transform;
}

.animate-in {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: opacity 600ms ease, transform 600ms ease;
}

.invalid-feedback {
  font-size: 0.9rem;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}