*, *::before, *::after {
  box-sizing: border-box;
}

body {
    margin: 0;
    padding-top: 60px;
    font-family: "Helvetica Neue", Arial, sans-serif;
    color: #222;
    font-size: 16px;
    line-height: 1.6;
    background-color: #D8BFD8;
    overflow-x: hidden; /* Prevent horizontal scroll */
    }
.container {
  display: block;
  flex-direction: column;
  width: 100%;
  padding: 0 20px; /* left and rght spacing */
  margin: 0 auto; /* remove top spacing */
  box-sizing: border-box; /* ensures padding doesn't add to total width */
}

header {
    background-color: #301934;
    color: white;
    display: flex;
    justify-content: space-between; /* adjust to make room for center */
    align-items: center;
    padding: 10px 20px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    flex-wrap: wrap; /* allow items to wrap on smaller screens */
}

.logo {
        display: flex;
        align-items: flex-start; /* Align logo at the top */
        margin-left: 0; /* Adjust margin as needed */
    }
    
    .logo img {
        height: 50px;
    }
 .banner-section {
  position: relative;
  width: 100%;
  height: 200px; /* Adjust as needed */
  margin-top: 0;
  overflow: hidden;
}

.banner-section .banner-bg {
  width: 100%;
  height: 100%;
  object-fit:fill; /* Shrinks image without cropping */
  object-position: center; /* Centers image */
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  background-color: #000; /* Fills empty space behind image */
}

.banner-section .overlay {
  position: relative;
  background-color: rgba(48, 25, 52, 0.75); /* #301934 with 75% opacity */
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.banner-section h1 {
  color: white;
  font-size: 28px;
  font-weight: bold;
  margin: 0;
}

.banner-section .subtitle {
  color: white;
  font-size: 14px;
  margin-top: 10px;
}
.intro-text {
    width:100%;
    padding:20px;
    color: #555;
    line-height: 1.6;
    font-family: Montserrat;
    font-size:16px;
    background:#fff;
    margin:0;
    margin-bottom:-29px;
    text-align:justify;
}

.info-list li {
  line-height: 1.6;
  margin-bottom: 3px;
  text-align: left; /* Default for desktop */
  padding:10px;
  font-family: Georgia, serif;
  font-size: 18px;
}
.contact-container {
  display: flex;
  justify-content: center;
  padding: 20px;
  gap: 20px;
  flex-wrap: wrap; /* For responsiveness */
}
.donation-title {
  font-size: 1.5rem;
  font-weight: bold;
  color: #4cc9f0;
}

.donation-message {
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  color: #fce9f9;
}

.qr-pair {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap; /* ensures it stacks on small screens */
  margin-bottom:25px;
}

.qr-image-wrapper {
  background-color: white;
  padding: 0.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  max-width: 160px;
  width: 100%;
}

.qr-image {
  width: 100%;
  height: auto;
  display: block;
}

.transparency-btn {
  background-color: #4cc9f0; /* Matches header color */
  color: #240046; /* Dark purple text on light button */
  padding: 8px 12px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
}

.transparency-btn:hover {
  background-color: #3bc0eb;
}
.contact-left-box,
.contact-right-box {
  background: #240046; /* Dark purple */
  padding: 15px;
  border-radius: 8px;
  width: 45%;
  height: 500px; /* Fixed height */
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  color: white;
}

.contact-left-box h2 {
  font-size: 18px;
  margin: 0 0 6px 0;
  color: #4cc9f0; /* Light blue that complements dark purple */
  text-align: justify;
}

.contact-left-box p {
  font-size: 15px;
  margin: 0 0 8px 0;
  text-align: justify;
  color: #eeeeff;
}

.contact label {
  font-size: 14px;
  margin-bottom: 4px;
  display: block;
  color: white; /* Label text white */
}

.contact input[type="text"],
.contact input[type="email"],
.contact input[type="file"],
.contact textarea {
  width: 95%;
  padding: 6px;
  margin-bottom: 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: #b862a8; 
  color: #000; /* Black text */
}
.placeholder-black::placeholder {
  color: rgba(0, 0, 0, 0.6); /* Black with 70% opacity */
  font-size:10px;
}

.contact-textarea {
  height: 70px;
  resize: none;
}

.contact-button {
  background-color: #4cc9f0; /* Matches header color */
  color: #240046; /* Dark purple text on light button */
  padding: 8px 12px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
}

.contact-button:hover {
  background-color: #3bc0eb;
}

.popup {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: white;
  border: 2px solid #333;
  padding: 20px 30px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  z-index: 9999;
  font-size: 14px;
  display: none;
}
.first-project {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    margin-top:30px;
}
.first-project .main-article {
    background: #fff;
    padding: 0;
    border: 1px solid #ddd;
    height:auto;
}
.first-project .main-article > img {
    width: 100%;
    height: auto; /* remove fixed height to avoid cropping */
    object-fit: contain; /* show entire image */
    display: block;
    background-color: #000; /* optional: fill empty space if aspect ratio is different */
}
.first-project .main-article h2 {
    font-family: Montserrat;
    font-size: 24px;
    color: #333;
    margin: 15px;
    text-align:center;
}

.first-project .main-article p {
    margin: 0 15px 15px;
    overflow: hidden;
    text-align:justify;
     color: #555;
    line-height: 1.6;
    font-family: Montserrat;
    font-size:16px;


}

.first-project .side-articles {
    display: grid;
    gap: 20px;
}

.first-project .side-article {
    background: #fff;
    border: 1px solid #ddd;
}

.first-project .side-article h3 {
    margin: 10px;
    font-size: 1.1em;
}

.first-project .side-article p {
    margin: 0 10px 10px;
     color: #555;
    line-height: 1.6;
    font-family: Montserrat;
    font-size:16px;

}

.project-images {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4 per row on desktop */
    gap: 15px;
    margin: 15px 20px;
    width: calc(100% - 40px);
    box-sizing: border-box; /* prevent overflow from padding/margin */
}

.project-images img {
    width: 100%;
    height: 200px;
    border-radius: 6px;
    object-fit: cover;
}
.second-project-images {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2 columns */
    gap: 15px; /* space between the images */
    margin: 15px 20px; /* 20px left/right space */
    width: calc(100% - 40px); /* full width minus margins */
    max-width: none;
    background:white;
}

.second-project-images img {
    width: 100%;
    height: 300px; /* make them tall and prominent */
    border-radius: 6px;
    object-fit: fill;
}
.twitter-embed-wrapper {
  width: 100%;
  height: 200px; /* fixed height for scrolling */
  overflow-y: auto; /* enable vertical scroll */
  overflow-x: hidden; /* prevent horizontal scroll */
  border-radius: 12px; /* curve the container */
  display: flex;
  align-items: flex-start;
  justify-content: center;
  transform: scale(0.85); /* shrink */
}

/* Apply curve to the tweet container */
.twitter-tweet {
  width: 100% !important;
  margin: 0 auto !important;
  border-radius: 12px;
  overflow: hidden; /* ensures corners clip */
}

/* Target the iframe that Twitter adds dynamically */
.twitter-tweet iframe {
  border-radius: 12px !important;
}
.wide-box {
  flex-grow: 1;     /* take remaining space */
  flex-shrink: 1;   /* allow shrinking if space is tight */
  min-width: 420px; /* prevent collapsing too much */
  max-height: 300px;
  background-color: #fff;
  padding: 10px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.wide-box .news-list {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    max-height: 300px;
}
.news-list {
      border: 1px solid #ddd;
      border-radius: 12px;
      padding: 10px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.1);
      text-align:justify;
    }
    .news-item {
      padding: 15px;
      border-bottom: 1px solid #eee;
      cursor: pointer;
      position: relative;
    }
    
    .news-item::after {
    content: '›'; /* Simple arrowhead with no tail/body */
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2em;
    color: #333; /* Optional: adjust to match your design */
}
    .news-item:last-child {
      border-bottom: none;
    }

    .news-item:hover {
      background-color: #f9f9f9;
    }

    .title {
      font-weight: bold;
      color: #222;
    }

    .subtitle {
      color: #888;
      font-size: 13px;
      margin-top: 4px;
    }

    a {
      text-decoration: none;
      color: inherit;
      display: block;
    }
    
.column {
  position: relative;
  background-color: #fff;
  padding: 15px;
  margin-top:10px;
  margin-bottom: 20px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.column p {
  text-align: justify;
   color: #555;
    line-height: 1.6;
    font-family: Montserrat;
    font-size:16px;

}

/* === FOOTER STYLES === */
.last-container {
  background-color: #301934; /* Matches your header */
  color: #fff;
  text-align: center;
  padding: 20px 10px;
  font-size: 14px;
  font-family: 'Arial', sans-serif;
  margin-top: 40px;
  border-top: 2px solid #472a4f; /* Slightly lighter for subtle divider */
}

/* Force #second-article to break out of parent grid */
#second-article, #more-wrapper, #feature-news{
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Parent layout using CSS Grid */
.first-project {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
}

.first-project > #second-article {
  grid-column: 1 / -1;
  width: 100% !important;
  margin: 0;
  padding: 0;
}
.first-project > #more-wrapper {
  grid-column: 1 / -1;
  width: 100% !important;
  margin: 0;
  padding: 0;
}
.first-project > #feature-news {
  grid-column: 1 / -1;
  width: 100% !important;
  margin: 0;
  padding: 0;
}
/* Merged full-layout */
.article-layout {
  display: flex;
  flex-direction: row;
  gap: 20px;
  width: 100%;
  flex-wrap: wrap;
  padding:20px;
}
/* Left Box: Smaller */
.left-box {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-top:150px;
}

/* Right Box: Larger */
.right-box {
  flex: 2;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Image Styling */
.left-box img,
.bottom-images img {
  width: calc(100% - 40px); /* 20px margin on each side */
  display: block;
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.left-box img {
    height:auto;
}
.bottom-images img {
    height:500px;
}

/* Text section inside right box */
.text-section h2 {
  font-size: 24px;
  color: #333;
  font-family: Montserrat;
}

.text-section {
  padding: 10px 20px;
  
}

.text-section p {
  margin: 0 0 10px 0;
   color: #555;
    line-height: 1.6;
    font-family: Montserrat;
    font-size:16px;
}
.more-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 2fr !important;
    gap: 20px !important;
    width: 100% !important;
    margin: 10px auto;
    background: #fff;
}

.more-left {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-left:20px;
    margin-top:150px;
}

.more-left img {
    width: 100%;
    height: auto;
    display: block;
}

.more-right {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin:20px;
}

.more-right img {
    width: 100%;
    max-height:380px;
    height: auto;
    display: block;
}

.more-textbox {
    padding: 15px;
    color: #555;
    line-height: 1.6;
    font-family: Montserrat;
    font-size:16px;
    text-align: justify;
}
.more-title {
    text-align: justify;
    font-family: Montserrat;
    font-size: 24px;
    color: #333;
    margin-top:20px;
    padding: 0 10px;
}
.feature-news {
  margin-top: 0;
  width:100%;
  margin: 0 auto;         /* centers the section */
  background: #fff;
  padding: 20px;          /* adds equal spacing inside */
  text-align: center;     /* centers text inside */
}

.feature-news h2 {
  font-size: 24px;
  margin-bottom: 20px;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr); /* 5 per row */
  gap: 10px;
  margin:20px 20px;
}
.news-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s;
  width: 100%;       /* allow equal width inside grid */
  max-width: 350px;  /* prevent too wide on big screens */
  text-align:justify;
}

.news-card:hover {
  transform: translateY(-5px);
}

.news-embed {
  width: 100%;
  height: 180px;
  border: none;
}

.news-content {
  padding: 15px;
  text-align:justify;
}

.news-content h3 {
  font-size: 16px;
  margin: 0 0 10px;
  color: #333;
  text-align:justify;
}

.news-content p {
  font-size: 14px;
  color: #666;
  margin: 0;
  text-align:justify;
}

.news-meta {
  font-size: 12px;
  color: #999;
  margin-top: 10px;
}
.news-image {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-bottom: 1px solid #ddd;
  transition: transform 0.3s ease;
  display: block;
}

.news-card:hover .news-image {
  transform: scale(1.05); /* subtle zoom on hover */
}




 @media screen and (max-width: 768px) {
  * {
    box-sizing: border-box;
  }

  body {
    padding-top: 0; /* Remove extra top space */
  }

  .header {
    flex-direction: column;
    align-items: flex-start;
  }
  .banner-section {
  height: 250px;
  object-fit: scale-down;
  display: flex;
  justify-content: center;
  align-items: center;
}

.banner-section .overlay {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 0 10px;
  height: 100%;
}
 .banner-bg {
     margin-top:50px;
     object-fit:contain;
 }
.banner-section h1 {
  font-size: 22px;
  margin-bottom: 4px; /* Reduced space below the title */
}

.banner-section .subtitle {
  font-size: 13px;
  margin: 0; /* Removes default bottom margin */
}

.intro-text {
    margin-top:-70px;
   font-size: 15px !important;
}
  .container {
    margin-top: 80px;
    padding: 0 10px;
    width: 100%;
  }

  .news-list {
    max-height: none;
    height: auto;
  }

  .contact-container {
    flex-direction: column;
    padding: 20px 10px;
    gap: 15px;
  }

  .contact-left-box,
  .contact-right-box {
    width: 100%;
    height: auto;
    padding: 15px;
  }

  .contact-left-box h2 {
    font-size: 15px;
  }

  .contact-left-box p {
    font-size: 13px;
  }

  .contact label {
    font-size: 13px;
  }

  .contact input[type="text"],
  .contact input[type="email"],
  .contact input[type="file"],
  .contact textarea {
    font-size: 14px;
    padding: 8px;
  }

  .contact-button {
    width: 30%;
    font-size: 14px;
    padding: 10px;
  }

  .contact-textarea {
    height: 80px;
  }

  /* Make .first-project a flex column and reorder children */
  .first-project {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .first-project .main-article {
    order: 1;
  }

  .first-project #second-article {
    order: 2;
  }
  .first-project #more-wrapper {
    order: 3;
  }
  .first-project .side-articles {
    order: 4;
  }
  .first-project .feature-news {
    order: 5;
  }
  .more-wrapper .more-right {
      order:1;
  }
   .more-wrapper .more-left {
      order:2;
  }
  
  /* Ensure images scale down on mobile */
  .first-project .main-article > img {
    height: auto;
    max-width: 100%;
  }

  .first-project .main-article p {
    font-size: 15px !important;
    height: auto;
    overflow: visible;
    text-align: justify;
  }

  .twitter-embed-wrapper {
    height: 300px;
  }

  .twitter-tweet {
    transform: scale(0.9);
    transform-origin: top center;
  }

  .project-images {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin: 10px;
    width: calc(100% - 20px);
  }

  .project-images img {
    height: 160px;
    object-fit: contain;
  }

  .second-project-images {
    grid-template-columns: 1fr;
  }

  .second-project-images img {
    height: auto;
    object-fit: contain;
  }

 /* Fix side-articles width issue */
  .side-articles {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
    box-sizing: border-box;
  }

  .side-article,
  .wide-box {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  /* Make sure news list fits screen */
  .news-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  .news-item {
    padding: 10px;
    box-sizing: border-box;
  }

  /* Prevent embeds from breaking layout */
  .side-article iframe,
  .side-article .twitter-tweet {
    max-width: 100% !important;
    width: 100% !important;
  }
 .article-layout {
  flex-direction: column;
}
  .left-box, .right-box {
    flex: unset;
  }

  .left-box img,
  .bottom-images img {
    margin: 0 10px;
    width: calc(100% - 20px);
  }
.right-box {
  order: -1;
}

.left-box {
    margin-top:0 !important;
  order: 1;
}
.more-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    width: 100% !important;
    margin: 10px auto !important;
    padding: 0 !important;
  }

  .more-left,
  .more-right {
    margin: 0 10px !important;
    width: calc(100% - 20px) !important;
  }

  .more-left img,
  .more-right img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
  }
.text-section p {
    font-size: 15px !important;
}
  .more-textbox {
    padding: 10px !important;
    font-size: 15px !important;
  }

  .more-title {
    font-size: 1.2rem !important;
    padding: 0 10px !important;
    margin-bottom: 10px !important;
  }
  .news-grid {
    grid-template-columns: repeat(2, 1fr); /* 2 per row */
    gap: 5px; /* smaller gap */
    margin: 10px; /* reduce margin for smaller screen */
  }

  .news-card {
    max-width: 100%; /* prevent overflow */
  }
}







