/* === DASHBOARD (INDEX) – IMAGE SLIDERS === */
.hero-slider{
  position: relative;
  width: 100%;
  margin: 0;
  overflow: hidden;
  height: 650px;
  background: #dff6ff;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

.hero-slider .slides{ 
  display: flex; 
  height: 100%; 
  transition: transform .5s ease; 
}

.hero-slider .slide{ 
  min-width: 100%; 
  height: 100%; 
}

.hero-slider .slide img{
  width: 100%;
  height: 100%;
  object-fit: cover; 
  display: block;
  user-select: none; 
  -webkit-user-drag: none;
}



/* DASHBOARD (INDEX) – IMAGE ARROWS */
.hero-slider .nav{
  position:absolute; 
  top:50%; 
  transform:translateY(-50%);
  width:42px; 
  height:42px; 
  border:none; 
  border-radius:50%;
  background: rgba(0,0,0,.35); 
  color:#fff; 
  font-size:26px;
  display:grid; 
  place-items:center; 
  cursor:pointer;
}

.hero-slider .nav.prev{ 
  left:12px; 
}

.hero-slider .nav.next{ 
  right:12px; 
}



/* DASHBOARD (INDEX) – IMAGE DOTS */
.hero-slider .dots{
  position:absolute; 
  left:50%; 
  bottom:12px; 
  transform:translateX(-50%);
  display:flex; 
  gap:10px;
}

.hero-slider .dots button{
  width:10px; 
  height:10px; 
  border-radius:50%;
  border:none; 
  background:#e6e6e6; 
  opacity:.85; 
  cursor:pointer;
}

.hero-slider .dots button.active{ 
  background:#333; 
  opacity:1; 
}





/* === LOGIN SECTION === */
.logging-in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 60px 20px;
  max-width: 1200px;
  margin: 0 auto;
  gap: 40px;
}

.text-content {
  max-width: 600px;
}

.text-content h1 {
  font-size: 2.8rem;
  color: #004080;
  margin-bottom: 20px;
}

.text-content h3 {
  font-weight: 400;
  margin-bottom: 15px;
  font-style: italic;
  text-align: justify;
  margin: 5px;
  color: rgb(0, 0, 0);
}

.proceed-button {
  background-color:  #003366;
  color: #fff;
  border: none;
  padding: 10px 20px;
  font-size: 16px;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  text-decoration: none; 
  display: inline-block;
}

.proceed-btn:hover {
  background-color: #003060;
}

.school-image {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.9);
}



/* LOGIN MODAL */
.modal {
  display: none;
  position: fixed;
  z-index: 3000;
  left: 0; top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.6);
}

.modal.show {
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.5s ease forwards;
}

.modal.hide {
  animation: fadeOut 0.5s ease forwards;
}

.modal-content {
  background-color: #fff;
  border-radius: 8px;
  width: 90%;
  max-width: 500px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  border-radius: 20px;
  padding-bottom: 20px;
  display: flex;
  flex-direction: column;
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  background-color: #004080;
}

h5 {
  font-size: 1.5rem;
  color: white;
  width: 100%;
}
.modal-header h5 {
  font-size: 1.3rem;
  color:  white;
  text-align: left;
  padding-left: 30px;
}

.close {
  font-size: 28px;
  font-weight: bold;
  color: white;
  cursor: pointer;
  user-select: none;
  padding: 5px;
  margin-right: 10px;
}

.close:hover {
  color: #CFD8E3;
}




/* LOGIN FORM */
#loginForm {
  padding: 0 30px;
}

/* LOGIN LABELS */
#loginForm label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  color: #004080;
}

/* TEXT INPUTS */
#loginForm input[type="text"],
#loginForm input[type="password"] {
  width: 100%;
  padding: 10px 12px;
  margin-bottom: 15px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1rem;
}

.loginOptions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  font-size: 0.9rem;
}

.remember-me {
  display: flex;
  align-items: space-between;
  gap: 6px;
  font-size: 0.9rem;
}

.forgot-link {
  color: #004080;
  text-decoration: none;
  justify-content: space-between;
}

.forgot-link:hover {
text-decoration: underline;
}

#submitLogin {
  width: 100%;
  background-color: #004080;
  color: white;
  padding: 12px;
  font-size: 1.1rem;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

#submitLogin:hover {
  background-color: #003060;
}

.continue-text {
  margin-top: 18px;
  text-align: center;
  color: #5c5555;
  opacity: 0.8;
}





/* === FREQUENTLY ASKED QUESTIONS === */
.helpdesk-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  max-width: 1200px;
  margin: 50px auto 80px auto;
  padding: 0 20px;
}

.animate-fade-slide {
  animation: fadeSlideLeft 0.8s ease forwards;
  opacity: 0;
}

.helpdesk-card {
  background-color: #ffffff;
  width: 100%;
  max-width: 700px;
  border-radius: 16px;
  box-shadow: 0 12px 40px 10px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  animation: slideUp 0.6s ease-in-out;
}

.helpdesk-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.3);
}

.helpdesk-header {
  background-color: #004080;
  padding: 15px 20px;
  text-align: center;
}

.helpdesk-header h1 {
  font-size: 2rem;
  color: #ffffff; 
  margin: 0;
}

.helpdesk-container {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px 20px;
  max-width: 1200px;
  margin: 0 auto;
  flex-direction: column;
}

.helpdesk-content {
  padding: 25px 30px;
  color: #333;
  font-size: 1rem;
}

.helpdesk-content p {
  margin-bottom: 1px;
}

.helpdesk-content ul {
  list-style-type: disc;
  padding-left: 20px;
  margin-top: 15px;
  
}

.helpdesk-content li {
  margin-bottom: 10px;
}

.helpdesk-content a {
  color: #004080;
  text-decoration: none;
  font-weight: 500;
}

.helpdesk-content a:hover {
  text-decoration: underline;
}

/* HELPDESK QUESTIONS DESIGN */
.accordion-btn {
  background-color: #004080;
  color: white;
  cursor: pointer;
  padding: 10px 16px;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  font-weight: 600;
  font-size: 12px;
  border-radius: 6px;
  margin: 10px 0 5px 0;
  transition: background-color 0.3s ease;
}

.accordion-btn:hover {
  background-color: #003060;
}

.accordion-btn.active {
  background-color: #002040;
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  background-color: #BEBEBE;
  padding: 0 15px;
  border-radius: 0 0 8px 8px;
  margin-bottom: 15px;
  color: #333;
}

.accordion-content p {
  margin: 12px 0;
  font-size: 14px;
}





/* === FORGOT PASSWORD – OTP MODALS === */

#otpModal form{
  padding: 0 20px 0px; 
}

#otpForm{
  margin-bottom: 10px;
  align-items: start;
}

#otpModal label{
  display:block;
  margin: 2px 0 8px;
  font-size: 18px;
  font-weight: 800;
  color:#004080;
}

#otpModal input[type="text"],
#otpModal input[type="password"]{
  width:100%;
  height:48px;
  border:1.6px solid #D0D5DD;
  border-radius:14px;
  padding:10px 14px;
  font-size:16px;
  background:#fff;
  outline:none;
}

#otpModal input:focus{
  border-color:#004080;
  box-shadow:0 0 0 4px rgba(0,64,128,.12);
}

#otpForm label[for="otpCode"], 
#otpForm #otpCode { 
  grid-column:1; margin-bottom: 10px; 
}

#otpForm label[for="newPw1"],  
#otpForm #newPw1  { 
  grid-column:2; 
  margin-bottom: 10px; 
}

#otpForm label[for="newPw2"],  
#otpForm #newPw2  { 
  grid-column:1; 
  margin-bottom: 10px;
}

/* OTP – BUTTONS */
#otpForm .modal-buttons{
  grid-column:1 / -1;
  display:flex;
  justify-content:center;
  gap:16px;
  margin-top:6px;
}

#otpSubmit{
  background:#EEF2F6;
  border:1px solid #CFD8E3;
  color:#0F172A;
  padding:12px 22px;
  height:48px;
  border-radius:16px;
  font-weight:700;
  cursor:pointer;
  font-size: 17px;
}
#otpSubmit:hover{ 
  filter:brightness(.97); 
}

#otpCancel{
  background:#004080;
  border:0;
  color:#fff;
  padding:12px 28px;
  height:48px;
  border-radius:16px;
  font-weight:800;
  cursor:pointer;
}

#otpCancel:hover{ 
  background:#003060; 
}

/* FORGOT PASSWORD (OTP) – DISPLAY ERROR MESSAGE */
#otpMsg{
  grid-column:1 / -1;
  color:#B42318;
  font-weight: 1000;
  margin-top:2px !important;
}

#otpModal.modal{ 
  background: rgba(0,0,0,.5); 
}





/* === LOGIN – FORGOT PASSWORD === */

#forgotModal .modal-content{
  border-radius: 20px;
}

#forgotForm{
  padding: 0 30px 16px;
}

#forgotForm .modal-buttons{
  display:flex;
  flex-direction: row;
  justify-content: center;
  align-items: stretch;
  gap: 12px;
  margin-top: 20px;
}

#forgotForm .modal-buttons > #fpSubmit,
#forgotForm .modal-buttons > .cancel-btn{
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 12px 0;
  border-radius: 12px;
}

#forgotForm label{
  display:block;
  margin: 6px 0;
  font-weight:600;
  color:#004080;
}

#forgotForm .username-row{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom: 10px;
}

#forgotForm .username-row input{
  width:auto !important;
  flex:1 1 320px;
  min-width:0;
  padding:10px 12px;
  border:1px solid #ccc;
  border-radius:4px;
  font-size:1rem;
}

#forgotForm .username-suffix{
  white-space:nowrap;
  margin:0;
  font-weight:700;
}


#forgotForm .modal-buttons{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:16px;
  margin-top:14px;
}

#forgotForm #fpSubmit,
#forgotForm .cancel-btn{
  height:48px;
  border-radius:16px;
  font-weight:800;
  font-size:17px;
  cursor:pointer;
  padding:12px 22px;
  border:1px solid transparent;
  margin:0 !important; 
}

#forgotForm #fpSubmit{
  background:#EEF2F6;
  border-color:#CFD8E3;
  color:#0F172A;
}
#forgotForm #fpSubmit:hover{ 
  filter:brightness(.97); 
}

#forgotForm .cancel-btn{
  background:#004080;
  color:#fff;
  border:0;
  padding:12px 28px;
}

#forgotForm .cancel-btn:hover{ 
  background:#003060; 
}





/* === ABOUT THE DEVELOPERS === */
.ad-wrap{ 
  --sti-blue:#0b4f82; 
  --sti-blue-2:#0a3f68; 
  --sti-gold:#f6c344;
  --ink:#0d1b2a; 
  --muted:#6b7785; 
  --line:#e8eef4; 
  --card:#fff; 
}

.ad-wrap{ 
  max-width:1200px; 
  margin:32px auto 56px; 
  padding:0 16px; 
}

/* ABOUT US – HEADERS */
.ad-hero{
  background: #004080;
  color:#fff; 
  border-radius:20px; 
  padding:28px 28px 24px; 
  margin-bottom:22px;
  box-shadow: 0 10px 24px rgba(11,79,130,.18);
}

.ad-hero h2{
  margin:0 0 6px; 
  font-size:clamp(26px,3.2vw,36px); 
  font-weight:900; 
  letter-spacing:.3px;
  text-shadow:0 2px 10px rgba(0,0,0,.22);
}

.ad-hero p{ 
  margin:0; 
  opacity:.95; 
  font-size:clamp(14px,1.8vw,16px); 
}

/* ABOUT US – GRIDS */
.ad-grid{
  display:grid; 
  gap:18px;
  grid-template-columns: repeat(4, 1fr);
}

/* ABOUT US – CARDS */
.ad-card{
  background:var(--card); 
  border:1px solid var(--line); 
  border-radius:18px; 
  overflow:hidden;
  box-shadow:0 8px 22px rgba(11,79,130,.10);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position:relative;
}

.ad-card::before{
  content:""; 
  position:absolute; 
  inset:0 0 auto 0; 
  height:6px; 
  background:var(--sti-gold);
  opacity:.9; 
  transition:height .18s ease;
}

.ad-card:hover{
  transform:translateY(-3px); 
  box-shadow:0 14px 30px rgba(11,79,130,.16); 
  border-color:#dfe8f1;
}

.ad-card:hover::before{ 
  height:8px; 
}



/* ABOUT US – IMAGES */
.ad-media{
  background:#f2f6fb; 
}

.ad-media img{ 
  width:100%; 
  height:100%; 
  object-fit:cover; 
  display:block; 
}

/* ABOUT US – PANELS */
.ad-panel{ 
  padding:16px 16px 18px; 
  text-align:center; 
}
.ad-name{ 
  margin:6px 0 2px; 
  font-size:1.1rem; 
  color:var(--ink); 
  font-weight:900; 
  letter-spacing:.2px; 
}

.ad-role{ 
  margin:0 0 10px; 
  color:#425166; 
  font-size:.92rem; 
}

.ad-tags{ 
  display:flex; 
  flex-wrap:wrap; 
  gap:8px; 
  justify-content:center; 
  margin-bottom:8px; 
}

.ad-tags span{
  font-size:.78rem; 
  font-weight:700; 
  padding:6px 10px; 
  border-radius:999px;
  background:#eef5fb; color:var(--sti-blue); 
  border:1px solid #d7e6f4;
}

/* ABOUT US – EMAILS */
.ad-mail{
  margin:8px 0 2px; 
  font-size:.92rem; 
  color:#2d3b4a;
}

.ad-mail a{
  color:var(--sti-blue); 
  text-decoration:none; 
  font-style: italic;
}

.ad-mail a:hover{ 
  text-decoration:underline; 
}










/* === RESPONSIVE – DASHBOARD IMAGES === */
@media (max-width: 1199px){ 
  .hero-slider{ 
    height: 520px; 
  } 
}

@media (max-width: 991px) { 
  .hero-slider{ 
    height: 420px; 
  } 
}

@media (max-width: 767px) { 
  .hero-slider{ 
    height: 320px; 
  } 
}

@media (max-width: 479px) { 
  .hero-slider{ 
    height: 260px; 
  } 
}



/* === RESPONSIVE – ABOUT US === */
@media (max-width:1080px){ 
  .ad-grid{ 
    grid-template-columns:repeat(2,1fr);
  } 
}

@media (max-width:560px){ 
  .ad-grid{ 
    grid-template-columns:1fr;
  } 
}



/* === FREQUENTLY ASKED QUESTIONS === */
@media (max-width: 768px) {
  .helpdesk-grid {
    grid-template-columns: 1fr;
    margin: 30px 15px 50px 15px;
    gap: 25px;
  }

  .helpdesk-container {
    padding: 20px 10px;
  }

  .helpdesk-card {
    border-radius: 12px;
  }

  .helpdesk-header h1 {
    font-size: 1.8rem;
  }

  .helpdesk-content {
    padding: 20px;
    font-size: 0.95rem;
  }
  .login-switch {
    display: none;
  }
}



/* === RESPONSIVE – FORGOT PASSWORD === */
@media (max-width: 560px){
  #forgotModal #forgotForm .modal-buttons{
    flex-direction: row !important;
    gap: 10px;
  }

  #forgotModal #forgotForm .modal-buttons > button{
    flex: 1 1 0 !important;
    width: auto !important;
    font-size: 1rem;
  }
  .nav-links.show a {
    display: block;
    padding: 10px 0;
    position: relative;
    color: #ffffff;
    width: 100%;
    border-bottom: 1px solid #ffffff40;
  }
}



/* === RESPONSIVE – OTP === */
@media (max-width:560px){
  #otpForm{ 
    grid-template-columns:1fr; 
  }
  #otpForm label[for="newPw1"], 
  #otpForm #newPw1{ 
    grid-column:1; 
  }
}










/* === ANIMATIONS === */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-20px);
  }
}

@keyframes fadeSlideLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideUp {
  from {
    transform: translateY(30px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}