@charset "UTF-8";

/*============================================================
  IMPORTS & BASIC SETUP
============================================================*/

@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,700,700i');

/* Universal Box Sizing */
html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
  margin: 0;
  padding: 0;
}

/*============================================================
  BODY & TYPOGRAPHY
============================================================*/

body {
  font-family: Arial, sans-serif;
  line-height: 1.6;
  background-color: rgba(248, 193, 29, 0.696);
  color: #333;
}

h1 {
  margin: 0 0 1em 0;
  font-size: 2.8em;
  font-weight: 700;
}

h2 {
  margin: 0 0 .5em 0;
  font-size: 1.6em;
  font-weight: 700;
  line-height: 1.1em;
  padding: 5px; /* Added 'px' unit */
}

h3 {
  margin: 0 0 .5em 0;
  font-size: 1.3em;
  font-weight: 700;
  text-align: center;
}

h4 {
  margin: 0 0 .5em 0;
  font-size: 1em;
  font-weight: 700;
}

p {
  margin: 0 0 .5em 0;
}

a {
  color: #0b466f;
  text-decoration: none;
}

a:visited {
  color: #581dec;
}

hr {
  margin-top: 225px;
  height: 1px;
  border: 0;
  background-color: #e2e2e2;
}

/*============================================================
  HEADER & HERO SECTION
============================================================*/

header {
  position: relative;
  height: 430px;
  color: white;
  background: linear-gradient(to right bottom, rgba(98, 98, 142, 0.836), rgba(2, 39, 66, 0.74)), url(../images/banner_1200.jpg) no-repeat center bottom;
  background-size: cover;
  overflow: hidden;
}

a.logo {
  position: absolute;
  display: block;
  width: 180px;
  height: 166px;
  background: url(../images/logo.svg.png) no-repeat 0 0;
  background-size: contain;
  top: 15px;
  left: 20px;
  z-index: 10; /* Increased z-index */
}

.logo span {
  display: none;
}

.hero {
  position: absolute;
  top: 50%; /* Centering hero vertically */
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 1100px;
  padding: 20px;
  color: #FFF;
  text-align: center;
  z-index: 2;
}

.hero h1 {
  font-size: 2.5rem; /* Consolidated font-size */
  line-height: 1em;
  margin-bottom: 1.5em;
  color: #fff;
  text-transform: uppercase;
  font-weight: 300;
  letter-spacing: 5px;
}

/*============================================================
  NAVIGATION
============================================================*/

nav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background-color: rgba(7, 28, 70, 0.47);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 5;
}

nav ul {
  list-style: none;
  display: flex;
  gap: 1rem; /* Spacing between main menu items */
}

nav ul li {
  position: relative; /* For dropdown positioning */
  float: left; /* Kept for original structure, but flex handles alignment */
}

nav ul li a {
  display: block;
  color: #fff;
  padding: 10px 20px;
  text-decoration: none;
}

nav ul li a:visited {
  color: #fff;
}

nav ul li a:hover,
nav ul li:hover > a {
  background-color: #5d94bc;
}

/* Dropdown Menu Styles */
nav ul ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: #0b283d9d;
  min-width: 200px; /* Give dropdown a consistent width */
}

nav ul li:hover > ul {
  display: block;
}

nav ul ul li {
  width: 100%;
}

nav ul ul ul {
  left: 100%;
  top: 0;
}

/* Dropdown Arrows */
nav a[aria-haspopup="true"]::after {
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 8px;
  vertical-align: middle;
  /* Down pointing arrow */
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid #fff;
}

/* Right pointing arrow for sub-menus */
nav ul ul a[aria-haspopup="true"]::after {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  /* create an arrow */
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid #fff;
}

/*============================================================
  MAIN CONTENT & SECTIONS
============================================================*/

.page-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

section {
  padding: 20px 0;
}

section::after {
  content: '';
  display: block;
  clear: both;
}

/* Main Three-Column Section */
section.main {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 20px;
  margin-bottom: 30px;
}

section.main aside {
  flex: 1; /* Each column takes equal space */
  min-width: 280px; /* Prevent columns from getting too narrow */
  text-align: center;
}

section.main .content {
  background: no-repeat center top;
  background-size: 75px 75px;
  padding-top: 85px;
}

/* Story Section */
section.story {
  background-color: #ffffff;
  padding: 20px;
  color: #0f045e;
}

/* Story1 Section (Video + Text) */
section.story1 {
  background-color: rgb(7, 28, 70);
  color: #0f045e; /* Better contrast */
  padding: 30px 1rem;
  font-size: 1rem; /* or try 1.125rem for slightly larger text */
  line-height: 1.6; /* This adds vertical spacing between lines */
}


section.story1 .container {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

.story1 .video {
  flex: 1 1 0; /* Grow, shrink, base width 300px */
  min-width: 0;
  position: relative;
  aspect-ratio: 16 / 9;  /* 16:9 aspect ratio */
  height: 0;
  width: 100%;  
}

.video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* 1. Flex container: stretch children */
section.story1 article {
  display: flex;
  /* remove or override any flex-wrap if you want them always side by side */
  flex-wrap: nowrap;   
  align-items: stretch; 
  gap: 1rem;           
}

/* 2. Flex items: equal flex values and allow shrinking */
section.story1 article > .video,
section.story1 article > .section2 {
  flex: 1 1 0;     
  min-width: 0;    
}


section.story1 article > .section2 {
  flex: 1 1 400px;
}

.story1 {
  flex: 1 1 300px;
  background-color: rgb(7, 28, 70);
  color: #0f045e;
  padding: 30px 1rem;
  font-size: 1rem;
  line-height: 1.6;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* 5. Section1 Styling */
.section1 {
  background-color: #fff;
  padding: 1rem;
  border-radius: 5px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  flex: 1 1 300px;       /* grow/shrink with a 300px base */
  min-height: 200px;
  box-sizing: border-box;
}

.section2 {
  flex: 1 1 400px; /* unify the flex rule */
  width: 100%;
  min-height: 200px; /* ensures visibility even if empty */
  box-sizing: border-box; /* ensures padding doesn't overflow */
}
.section2 {
  column-count: 1;
  column-gap: 1rem;
}

.section_Team {
   display: grid;
  grid-template-rows: auto auto; /* Create two rows, one for header, one for image */
  justify-items: center; /* Center items horizontally within their grid area */
  gap: 10px; /* Add space between grid items */   
}

.section4 {
      display: flex;
      flex-direction: column; /* Stack children vertically */
      align-items: center; /* Center items along the cross axis (horizontally in this case) */
    }
    
 

    .image-container1 {
      /* Place the image in the desired grid cell */
      grid-column: 1;
      grid-row: 1;
    }

    .text-container { /* You might need a wrapper div for the text */
      grid-column: 2;
      grid-row: 1;
    }
    
    
/* Info Section */
section.info {
  background-color: rgba(25, 29, 64, 0.952);
  padding: 20px;
  color: #f4f4f4;
}

section.info .vision-projects {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
}



/* Generic Container Styles */
.container {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 30px;
  background-color: white;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  margin: 20px auto;
  max-width: 960px;
  box-sizing: border-box;
}


.container1 {
  background-color: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  margin: 20px auto;
  max-width: 960px;
}




.container1 {
  text-align: left;
}

.text1 {
    text-align: left;
}
.grid {
  display: grid;
.grid-template-columns; repeat (auto-fit, minmax(250px, 1fr));
  gap: 10px;
}

.item img {
  width: 100%;
  height: 320px;
  object-fit: scale-down;
  border-radius: 5px;
}


/*============================================================
  UTILITIES & COMPONENTS
============================================================*/

/* Buttons */
.btn,
.btn1,
.btn2 {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  text-decoration: none;
  border-radius: 5px;
  font-weight: bold;
  text-transform: uppercase;
  margin-top: 0.75rem;
  transition: background-color 0.3s;
  border: 1px solid transparent;
}

.btn {
  background-color: #333;
  color: #ffcc00;
}

.btn:hover {
  background-color: #5d94bc;
}

.btn1 {
  font-size: 1.2em;
  color: #faee05;
  border-color: #3333;
}

.btn1:hover {
  background-color: #5d94bc;
}

.btn2 {
  font-size: 1.2em;
  color: #020202;
  border-color: #3333;
}

.btn2:hover {
  background-color: #5d94bc;
}

/* Images and Figures */
img, iframe {
  max-width: 100%;
  height: 100%;
}

/* Aspect ratio for iframe to prevent stretching */
.video {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
}

.video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#movie_player .ytp-cued-thumbnail-overlay {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#image {
  float: left;
  width: 345px;
  height: auto;
  margin: 0 20px 20px 0;
  display: block;
}

#image {
  float: none
}

#image2 {
      max-width: 100%;
      max-height: 400px; /* Or any desired maximum height */
      height: auto; /* Ensure the height adjusts automatically to maintain aspect ratio */
    }

#image2 {
  float: none;
  width: 345px;
  height: auto;
  margin: 0 20px 20px 0;
  display: block;
}

.figure {
  border: 1px #ccc solid;
  width: 235px;
  padding: 2px;
  float: right;
}

.figcaption {
  background-color: #f0eaea33;
  padding: 2px;
  width: 100%;
  text-align: center;
}

.text-box {
  position: absolute;
  top: 15px;
  right: 10px;
  background-color: rgba(7, 28, 70, 0.658);
  padding: 10px;
}

/*---------pdf viewer --------------*/
 .pdf-container {
 display: flex;
            justify-content: center; /* Centers the viewer horizontally */
             padding-bottom: 25%; /* 16:9 aspect ratio */
            }
 

    .pdf-viewer {
  width: 90%;              /* Takes up 90% of the container's width */
  max-width: 900px;        /* Sets a maximum width for very large screens */
   height: 85vh;            /* Sets height to 85% of the viewport/window height */
    }

.image-container {
  flex: 1 1 600px;        /* allow it to grow, shrink, and start at 600px */
  min-width: 400px;       /* prevent it from getting too narrow */
  max-width: 100%;        /* never overflow its parent */
  display: block;         /* make sure width applies */
}


.image-container {
  width: 100%;              /* fills the width of .section2 */
  max-width: 100%; 
  min-height: 400px;     /* Ensures it's tall enough */
  display: flex;         /* Center content if needed */
  justify-content: center;
  align-items: left;
  position: relative;    /* Needed for cropping with absolute children */
  overflow: hidden;      /* This is key for cropping */
}


.image-container p {
  font-size: 1rem;
  line-height: 1.6;
 
}

.image-container {
  aspect-ratio: 16 / 9;  /* Optional: keeps a fixed ratio */
  max-width: 100%;
  overflow: hidden;
}

.image-container2 {
  flex: 1 1 600px;        /* allow it to grow, shrink, and start at 600px */
  min-width: 400px;       /* prevent it from getting too narrow */
  max-width: 100%;        /* never overflow its parent */
  display: block;         /* make sure width applies */
  
}

.image-container1 {
      float: left; /* or right */
      margin-right: 20px; /* Add some space between the image and text */
    }
    
  .image-container1 {
      display: flex;
      /* You can use flex-direction: row-reverse; to put the image on the right and text on the left */
      /* You might also need to adjust align-items and justify-content depending on desired vertical alignment */
    }
    
    .text {
      flex: 1; /* Allow the text to take up the remaining space */
    }

.giving-image {
  display: block;        /* force on its own line */
  max-width: 100%;       /* never overflow its container */
  height: auto;          /* preserve aspect ratio */
  margin: 0.5rem 0 1.5rem;/* space above and below */
  object-fit: cover;     /* optional: crop/fill if it’s a banner */
}

img.giving-image {
  display: block; /* Already set, but good to be explicit */
  margin-left: auto;
  margin-right: auto;
  width: 70%; /* Adjust the percentage as needed */
}

/*============================================================
  FOOTER
============================================================*/

footer {
  background-color: #003366;
  color: white;
  padding: 1.5rem;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  gap: 1.5rem;
}

.footer-left,
.footer-center,
.footer-right {
  flex: 1 1 300px; /* Allow wrapping on smaller screens */
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer-left img {
  height: 80px;
  margin-right: 20px;
}

.footer-center a img {
  margin: 0 0.5rem;
  height: 40px;
}

.footer-right a {
  margin-left: 10px;
  color: white;
  text-decoration: none;
}

.footer-right img {
  height: 30px;
}

.footer-text {
  font-size: 0.875rem; /* equivalent to 14px if root is 16px */
  margin: 5px 0;
}

/*============================================================
  MEDIA QUERIES (Mobile First Approach)
============================================================*/

/* Base styles are mobile by default */

/* Tablet View (600px and up) */
@media (min-width: 600px) {
  .hero h1 {
    font-size: 2rem;
  }
}

/* Small Desktop (900px and up) */
@media (min-width: 900px) {
  .hero h1 {
    font-size: 2.5rem;
  }
}

/* Legacy media queries from original file (adjusted) */
@media (max-width: 775px) {
  header .hero {
    top: 55%; /* Adjust vertical position */
    width: 90%;
  }

  header .hero h1 {
    font-size: 2em;
  }
}

@media (max-width: 480px) {
  body {
    font-size: 16px;
  }

  header .hero h1 {
    font-size: 1.5em;
  }

  .btn {
    width: 100%;
    padding: 10px;
    text-align: center;
  }

  section.main aside {
    width: 100%;
    text-align: left;
  }

  section.main aside div.content {
    margin: 8px 0;
    padding: 5px 0 10px 85px;
    background-size: 50px 50px;
    background-position: 20px center;
  }
}