/* Root + Base */
:root{
  --primary-color:#2c3e50;
  --secondary-color:#3498db;
  --accent-color:#e74c3c;
  --text-color:#2c3e50;
  --light-gray:#f8f9fa;
  --white:#ffffff;
  --shadow:0 4px 15px rgba(0,0,0,0.1);
  --gradient-primary:linear-gradient(135deg,#2c3e50 0%,#3498db 100%);
  --gradient-accent:linear-gradient(135deg,#e74c3c 0%,#f39c12 100%);
}

*{box-sizing:border-box}

body{
  background-color:var(--light-gray);
  margin:0;
  padding:0;
  font-family:'Arial',sans-serif;
  line-height:1.6;
  color:var(--text-color);
}

/* Page Header */
.page-header{
  background:var(--gradient-primary),url('Assets/Images/header-bg.jpg');
  background-size:cover;
  background-position:center;
  padding:120px 20px;
  text-align:center;
  color:var(--white);
  margin-bottom:40px;
  position:relative;
  overflow:hidden;
}
.page-header::before{
  content:'';
  position:absolute;inset:0;
  background:rgba(0,0,0,.3);
  z-index:1;
}
.page-header h1{font-size:3.5rem;margin:0 0 20px;position:relative;z-index:2}
.page-header .subtitle{position:relative;z-index:2;opacity:.95;max-width:700px;margin:0 auto}

/* Filters */
.news-filters{
  display:flex;justify-content:center;gap:15px;margin-bottom:40px;flex-wrap:wrap;padding:0 20px
}
.filter-btn{
  padding:12px 25px;border:none;border-radius:30px;background:var(--white);color:var(--text-color);
  cursor:pointer;transition:all .3s ease;font-weight:600;box-shadow:var(--shadow);position:relative;overflow:hidden
}
.filter-btn::before{
  content:'';position:absolute;inset:0;background:var(--gradient-primary);opacity:0;transition:opacity .3s ease;z-index:1
}
.filter-btn:hover::before{opacity:.1}
.filter-btn.active{
  background:var(--gradient-primary);color:var(--white);transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.15)
}

/* Main grid */
.news-container{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;padding:20px;
  max-width:1200px;margin:0 auto
}
/* Force these sections to span full grid width */
.video-gallery,.upcoming-events,.past-events,.announcements,.school-calendar{grid-column:1 / -1}

/* Cards (events) */
.events-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;margin-top:20px
}
.news-item[data-category="upcoming"],
.news-item[data-category="past"],
.news-item[data-category="announcements"]{
  min-height:400px;background:var(--white);border-radius:15px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;overflow:hidden;transition:transform .3s ease
}
.news-item:hover{transform:translateY(-5px)}
.news-image img,.announcement-image img{width:100%;height:200px;object-fit:cover;display:block}
.news-content{padding:20px;display:flex;flex-direction:column;flex:1}
.news-content h3{margin:10px 0;font-size:1.2rem;color:var(--primary-color)}
.event-details{margin-top:auto;font-size:.95rem;color:#666}

/* Announcements look */
/* Announcements grid */
.announcements-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px; /* spacing between cards */
  margin-top: 20px;
}

/* Announcement cards */
.news-item[data-category="announcements"] {
  min-height: 400px;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  border-radius: 15px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform .3s ease;
}

.news-item[data-category="announcements"]:hover {
  transform: translateY(-5px);
}

/* Video Gallery */
.video-gallery{
  margin:40px 0;padding:30px;background:var(--white);border-radius:15px;box-shadow:var(--shadow)
}
.video-gallery h2{
  text-align:center;color:var(--primary-color);margin-bottom:30px;font-size:2rem;position:relative;padding-bottom:15px
}
.video-gallery h2::after{
  content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:60px;height:3px;background:var(--gradient-accent);border-radius:3px
}
.featured-video{margin:0 auto 40px;max-width:900px}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}
.video-item{background:var(--white);border-radius:15px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s ease}
.video-item:hover{transform:translateY(-5px);box-shadow:0 8px 25px rgba(0,0,0,.15)}

.video-container{position:relative;padding-top:56.25%;height:0;overflow:hidden;border-radius:15px;background:#000;box-shadow:var(--shadow)}
.video-container video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain  /* CHANGED from cover to contain */
}
.video-thumbnail{position:relative;width:100%;padding-top:56.25%;overflow:hidden;background:#000}
.video-thumbnail img,.video-thumbnail video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;  /* CHANGED from cover to contain */
  transition:transform .5s ease
}
.video-item:hover .video-thumbnail img{transform:scale(1.07)}
.play-button{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70px;height:70px;background:rgba(0,0,0,.7);
  border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;z-index:2
}
.play-button i{color:#fff;font-size:28px;margin-left:5px;transition:transform .3s ease}
.video-item:hover .play-button{background:var(--gradient-accent);transform:translate(-50%,-50%) scale(1.1)}
.video-item:hover .play-button i{transform:scale(1.2)}
.video-info{padding:25px}
.video-info h3{margin:0 0 10px;color:var(--primary-color);font-size:1.2rem;transition:color .3s ease}
.video-item:hover .video-info h3{color:var(--secondary-color)}
.video-info p{color:#666;margin:0 0 15px;font-size:.95rem;line-height:1.6}
.video-meta{display:flex;gap:20px;color:#666;font-size:.9rem}
.video-meta span{display:flex;align-items:center;gap:6px}

/* Modal */
.video-modal{
  display:none;position:fixed;inset:0;width:100%;height:100%;background:rgba(0,0,0,.9);
  z-index:1000;justify-content:center;align-items:center;backdrop-filter:blur(5px);animation:fadeIn .3s ease
}
.modal-content{position:relative;width:90%;max-width:800px;animation:modalFadeIn .3s ease}
.close-modal{position:absolute;top:-40px;right:0;color:#fff;font-size:30px;cursor:pointer;transition:transform .3s ease}
.close-modal:hover{transform:rotate(90deg)}
.video-player{position:relative;padding-top:56.25%;height:0;overflow:hidden;border-radius:10px;box-shadow:0 0 30px rgba(0,0,0,.3)}    
.video-player video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain  /* CHANGED from cover to contain */
}
/* School Calendar */
.school-calendar{
  background:var(--white);padding:30px;border-radius:15px;box-shadow:var(--shadow);margin-top:40px;max-width:1000px;margin-left:auto;margin-right:auto
}
.school-calendar h2{
  text-align:center;color:var(--primary-color);margin-bottom:30px;font-size:2rem;position:relative;padding-bottom:15px
}
.school-calendar h2::after{
  content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:60px;height:3px;background:var(--gradient-accent);border-radius:3px
}
.calendar-tabs{display:flex;justify-content:center;gap:15px;margin-bottom:30px}
.calendar-tab{
  padding:10px 20px;border:none;background:var(--light-gray);color:var(--text-color);border-radius:25px;cursor:pointer;transition:all .3s ease;font-weight:600
}
.calendar-tab.active{
  background:var(--gradient-primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.1)
}
.calendar-content{position:relative}
.term-calendar{display:none;animation:fadeIn .3s ease}
.term-calendar.active{display:block}
.calendar-header{text-align:center;margin-bottom:30px}
.calendar-header h3{color:var(--primary-color);font-size:1.5rem;margin-bottom:10px}
.term-dates{color:var(--secondary-color);font-size:1rem}
.term-dates i{margin-right:5px}
.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;padding:20px 0}
.calendar-event{
  background:var(--light-gray);border-radius:10px;padding:20px;display:flex;gap:20px;transition:all .3s ease;box-shadow:0 2px 5px rgba(0,0,0,.05)
}
.calendar-event:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}
.event-date{
  background:var(--gradient-primary);color:#fff;padding:15px;border-radius:8px;text-align:center;min-width:80px;
  display:flex;flex-direction:column;justify-content:center;align-items:center
}
.event-date .month{font-size:.9rem;text-transform:uppercase;font-weight:600}
.event-date .day{font-size:1.8rem;font-weight:800;line-height:1}
.event-details{flex:1}
.event-details h4{color:var(--primary-color);margin:0 0 10px;font-size:1.1rem}
.event-details p{color:#666;margin:5px 0;font-size:.95rem;display:flex;align-items:center;gap:8px}
.event-details i{color:var(--secondary-color);width:16px}

/* Animations */
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes modalFadeIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}

/* Responsive */
@media (max-width: 768px){
  .page-header h1{font-size:2.4rem}
  .news-filters{flex-direction:column;align-items:center}
  .filter-btn{width:80%;text-align:center}
  .video-grid{grid-template-columns:1fr}
  .modal-content{width:95%}
  .calendar-tabs{flex-direction:column;align-items:center}
  .calendar-tab{width:80%}
  .calendar-grid{grid-template-columns:1fr}
  .calendar-event{flex-direction:column;text-align:center}
  .event-date{margin:0 auto}
  .event-details p{justify-content:center}
}
header {
  background-color: #0d47a1;
  padding: 10px 0;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  width: 100%;
  position: fixed; /* Make the header fixed at the top */
  top: 0; /* Position it at the top */
  left: 0; /* Make it span the full width */
  z-index: 1000; /* Ensure it stays above other content */
}

/* Navbar styling */
.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Logo styling */
.logo h1 {
  margin: 0;
  font-size: 24px;
  color: white;
}

/* Navigation links styling */
.nav-links {
  list-style: none;
  display: flex;
  margin: 0;
  padding: 0;
}

.nav-links li {
  margin-left: 20px;
}

.nav-links a {
  text-decoration: none;
  color: #333;
  font-size: 18px;
}

.nav-links a:hover {
  color: #007bff;
}




/* Add padding to body to account for fixed navbar */
body {
  padding-top: 60px; /* Adjust based on the height of your fixed header */
}

/* Logo styling */
.logo img {
  width: 80px; /* Adjust the width as needed */
  height: auto; /* Maintain aspect ratio */
  display: block; /* Ensure the image is displayed as a block element */
  margin: 0; /* Remove any default margin */
}


/* Navigation links styling */
.nav-links {
  list-style: none;
  display: flex;
  margin: 0;
  padding: 0;
}

.nav-links li {
  margin-left: 20px;
}

.nav-links a {
  text-decoration: none;
  color: white;
  font-size: 18px;
}

.nav-links a:hover {
  color: #007bff;
}

/* Hamburger menu styling for mobile view */
.hamburger {
  display: none;
  flex-direction: column;
  cursor: pointer;
}

.hamburger span {
  height: 3px;
  width: 25px;
  background: #333;
  margin: 4px 0;
}

/* Responsive styling */
@media (max-width: 768px) {
  .nav-links {
      display: none;
      flex-direction: column;
      width: 100%;
      text-align: center;
  }

  .nav-links li {
      margin: 10px 0;
  }

  .hamburger {
      display: flex;
  }

  .hamburger.active + .nav-links {
      display: flex;
  }
}

  /*footer*/
  /* General footer styling */
  .footer {
      background-color:#0d47a1;
      color: #fff;
      padding: 20px 0;
      display: flex;
      justify-content: space-around;
      flex-wrap: wrap;
      width: 100%;
      box-sizing: border-box;
  }
  
  .footer-section {
      flex: 1;
      min-width: 200px;
      margin: 10px;
  }
  
  .footer-section h3 {
      margin-bottom: 15px;
      font-size: 18px;
  }
  
  .footer-section p, 
  .footer-section ul, 
  .footer-section .social-links {
      margin: 0;
      padding: 0;
      list-style: none;
  }
  
  .footer-section ul li {
      margin-bottom: 10px;
  }
  
  .footer-section a {
      color: #fff;
      text-decoration: none;
  }
  
  .footer-section a:hover {
      color: #007bff;
  }
  
  /* Social links styling */
  .social-links a {
      display: inline-block;
      margin-right: 10px;
      font-size: 20px;
  }
  
  .footer-bottom {
      text-align: center;
      padding: 10px 0;
      background-color:#1a237e;
      color: #bbb;
      width: 100%;
      box-sizing: border-box;
  }