body { font-family: 'Nunito', sans-serif; }
h1,h2,h3,h4,h5 { font-family: 'Sora', sans-serif; }
html { scroll-behavior: smooth; }

.nav-link { position: relative; }
.nav-link::after {
  content:'';
  position:absolute;
  bottom:-2px;
  left:0;
  width:0;
  height:2px;
  background:#18a8f0;
  transition:width .3s ease;
}
.nav-link:hover::after { width:100%; }

.ph {
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:16px;
  font-family:'Sora',sans-serif;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:rgba(255,255,255,.8);
  border:1.5px dashed rgba(255,255,255,.35);
  overflow:hidden;
  position:relative;
}
.ph span {
  position:relative;
  z-index:1;
  background:rgba(0,0,0,.2);
  padding:6px 14px;
  border-radius:8px;
  line-height:1.6;
}

.ch {
  transition:transform .22s ease, box-shadow .22s ease;
}
.ch:hover {
  transform:translateY(-5px);
  box-shadow:0 20px 40px rgba(0,136,208,.13);
}

@keyframes fadeUp {
  from { opacity:0; transform:translateY(24px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; }
  to { opacity:1; }
}
.fade-up { animation: fadeUp .6s ease both; }
.fade-in { animation: fadeIn .8s ease both; }
.delay-1 { animation-delay:.1s; }
.delay-2 { animation-delay:.2s; }
.delay-3 { animation-delay:.3s; }
.delay-4 { animation-delay:.4s; }
.delay-5 { animation-delay:.5s; }

.accordion-content {
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease;
}
.accordion-content.open { max-height:600px; }

.glass {
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.12);
}

.field-group label {
  display:block;
  font-size:.8rem;
  font-weight:700;
  color:#374151;
  margin-bottom:6px;
}
.field-group label .req {
  color:#f43f5e;
  margin-left:2px;
}
.inp {
  width:100%;
  border:1.5px solid #e5e7eb;
  border-radius:12px;
  padding:12px 16px;
  font-size:.9rem;
  font-family:'Nunito',sans-serif;
  transition:border-color .2s, box-shadow .2s;
  outline:none;
  background:#fff;
}
.inp:focus {
  border-color:#0088d0;
  box-shadow:0 0 0 3px rgba(0,136,208,.12);
}
.inp.error {
  border-color:#f43f5e;
  box-shadow:0 0 0 3px rgba(244,63,94,.1);
}
.err-msg {
  font-size:.75rem;
  color:#f43f5e;
  margin-top:4px;
  display:none;
}
.err-msg.show { display:block; }

.step-dot {
  width:32px;
  height:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.8rem;
  font-weight:800;
  font-family:'Sora',sans-serif;
}

.section-body { display:block; }
.section-body.closed { display:none; }
