@import url("https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@400;700&family=Roboto:wght@400;700&display=swap");

:root {
  /* color varables */
  --primary: #9f0d2d;
  --secondary: #1a3a6e;
  --secondary-lt: #7aa2e2ee;
  --accent: #2b4d53;
  --light-section-bg-color: #dddeee;
  --mobile-bg-color: #dddeeef1;
  --block-color: rgba(243, 236, 236, 0.829);
  /* font colors */
  --title-color: #111;
  --text-color: #111;
  --light-text-color: #dddeee;
  --gradient-lite: radial-gradient(
    circle,
    #efe8e8dd,
    var(--light-section-bg-color)
  );
  /* fonts */
  --title-font: "Lexend Deca", sans-serif;
  --text-font: "Roboto", sans-serif;
  /* font sizes */
  --hero-title: clamp(1.2rem, 3.2cqw, 2.5rem);
  /* --hero-title: 2.6rem; */
  --title-size: clamp(1.1em, 2.5cqw, 1.3em);
  --text-size: clamp(1em, 2.4cqw, 1.2rem);
  --nav-menu: 1rem;
  /* for other styles */
  --radius: 4px;
  --shadow: 0 3px 8px 2px rgba(0, 0, 0, 0.3);
  --block-padding: 5px 15px;
  --section-padding: 3em 20px;
}
body {
  font-family: var(--text-font);

}
p,
li {
  font-size: var(--text-size);
  letter-spacing: 1px;
}
a {
  text-decoration: none;
}

details summary {
  cursor: pointer;
}

details summary > * {
  display: inline;
}
/* For edge and other browsers that do not support summary and details tags */
@supports not (-ms-ime-align: auto) {
  details summary {
    cursor: pointer;
  }

  details summary > * {
    display: inline;
  }

  /* Plus any other <details>/<summary> styles you want IE to ignore. */
}
h1,
h1 span,
h2,
h3,
h4 {
  font-family: var(--title-font);
  font-size: var(--title-size);
  text-align: center;
  font-weight: 700;
  text-transform: capitalize;
}
h2 {
  font-style: italic;
}

section {
  padding: var(--block-padding);
}
@media (min-width: 30em) {
  section {
    padding: var(--section-padding);
  }
  hr {
    max-width: 300px;
    margin: 1.5rem auto;
    border-bottom: 2px dotted var(--secondary);
  }
}
/* hero section  */
/* Hero Section Styling */
.site-title {
  text-align: center;
  padding: var(--section-padding);
  background: var(--gradient-lite);
  color: var(--title-color);
}

/* Main page title (non-homepage) */
.main-page-title {
  font-family: var(--title-font);
  font-size: var(--hero-title);
  font-weight: 600;
  margin: 0 0 1rem 0;
  line-height: 1.2;
}

/* Homepage DART styling - appears above main title */
.main-title {
  font-family: var(--title-font);
  font-size: var(--hero-title);
  font-weight: 700;
  margin: 0 0 0.5rem 0;
  line-height: 1.1;
  letter-spacing: 0.5px;
}

/* First letter styling for DART acronym */
.title-first-letter {
  color: var(--primary);
  font-size: 1.2em;
  font-weight: 800;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

/* HR separator between DART and main title */
.site-title hr {
  width: 60%;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--accent), transparent);
  border: none;
  margin: 0.8rem auto 1.2rem auto;
}

/* Main h1 styling for homepage */
.site-title h1 {
  font-family: var(--title-font);
  font-size: var(--title-size);
  font-weight: 500;
  margin: 0 0 1rem 0;
  color: var(--secondary);
  line-height: 1.3;
}

/* Subtitle h2 styling */
.site-title h2 {
  font-family: var(--text-font);
  font-size: var(--text-size);
  font-weight: 400;
  margin: 0;
  color: var(--text-color);
  line-height: 1.4;
  opacity: 0.9;
}

/* 404 error title styling */
.main-404-title {
  color: var(--primary) !important;
  font-weight: 600;
  font-size: calc(var(--text-size) * 1.1);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .site-title {
    padding: 2em 15px;
  }
  
  .main-title {
    font-size: calc(var(--hero-title) * 0.9);
  }
  
  .title-first-letter {
    font-size: 1.15em;
  }
  
  .site-title hr {
    width: 80%;
    margin: 0.6rem auto 1rem auto;
  }
}

@media (max-width: 480px) {
  .site-title {
    padding: 1.5em 10px;
  }
  
  .main-title {
    font-size: calc(var(--hero-title) * 0.8);
    letter-spacing: 0.3px;
  }
  
  .title-first-letter {
    font-size: 1.1em;
  }
}


.list-group-item a {
  text-align: center;
  color: var(--accent);
}

.bg {
  /* puts the light gray background to that section */
  background-image: var(--gradient-lite);
  border-top: 1px groove var(--secondary);
  border-bottom: 1px groove var(--secondary);
}
.custom-section {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: space-around;
  max-width: 1300px;
  margin: 0 auto;
  padding: var(--block-padding);
}

/* for some titles to be the primary color */
.primary {
  color: var(--primary);
}
.custom-section > * {
  flex: auto;
}
.custom-basis {
  flex-basis: 100%;
}

.custom-section-item {
  border: 1px solid var(--accent);
  border-radius: var(--radius);
  padding: var(--block-padding);
  display: flex;
  flex-direction: column;
  transition: 300ms ease-in-out;
  background-color: var(--block-color);
  flex-basis: auto;
  box-shadow: 0 0 20px #444;
}
.custom-section img,
.custom-section-item img {
  max-width: 400px;
  height: auto;
  margin: 10px auto;
  justify-self: center;
}
.custom-section-item:hover {
  box-shadow: none;
  background-blend-mode: difference;
}

.custom-section-item h3 {
  color: var(--primary);
  margin-bottom: 0.8rem;
  font-size: 2rem;
}

.custom-section > article {
  flex-grow: 1;
}
.narrow-section {
  padding: 10px;
}

@media (min-width: 50em) {
  .custom-section {
    max-width: 90em;
    margin: 5rem auto;
  }

  .custom-section > article {
    flex-basis: 280px;
    flex-grow: 1;
    max-width: 50%;
  }
  .custom-section > h3 {
    padding: 2em 0;
    color: var(--primary);
  }
  .custom-section-item {
    flex-basis: 30%;
    text-align: center;
  }
  /* = Updated 11/1/22 = used in sections that have wider text with an image, on line 111 this turns to 100% for smaller screens */
  .custom-basis {
    flex-basis: 70%;
    align-self: center;
  }
  .narrow-section {
    max-width: 1000px;
    margin: 50px auto;
  }
  .narrow-section ul:not(".list-group") {
    margin-left: 20px;
  }
}

/* = Updated 11/1/22 = This is for the summary and details tag used in the what to expect and team description */
details[open] summary ~ * {
  animation: details-ele 0.5s ease-in-out;
}

@keyframes details-ele {
  0% {
    opacity: 0;
    transform: translateX(-10px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
/* learn more buttons */


.light-links a {
  color: var(--light-text-color);
  text-decoration: none;
}

.gradient {
  background-image: (to bottom, #9f0d2d, #b74b73, #bf80ad, #c6b1d6, #dddeee);
}

/* ================================= 
| Top header with logo and nav links |
==================================== */

/* text of terms and link */
.terms {
  text-align: center;
  position: relative;
  background: linear-gradient(90deg, #969191, var(--text-color), #aca4a4);
  color: #fff;
  padding: 8px 0;
  backdrop-filter: blur(5px);
  border-top: 1px solid var(--secondary-lt);
  /* clip-path: polygon(0 0, 100% 0, 98% 100%, 2% 100%); */
}

.terms p {
  position: relative;
  z-index: 2;
  padding: 5px 20px;
  margin-bottom: 0;
  font-size: 14px;
  letter-spacing: 0.5px;
}

.terms a {
  color: var(--secondary-lt);
  font-weight: 700;
  transition: all 0.3s ease;
  position: relative;
  text-decoration: none;
}

.terms a::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--secondary-lt);
  transition: width 0.3s ease;
}

.terms a:hover {
  color: var(--accent);
}

.terms a:hover::after {
  width: 100%;
}

@media (max-width: 768px) {
  .terms {
    clip-path: polygon(0 0, 100% 0, 96% 100%, 4% 100%);
  }
}

@media (max-width: 480px) {
  .terms {
    clip-path: none;
  }

  .terms p {
    padding: 5px 10px;
    font-size: 12px;
  }
}
/* logo and donate button */
.top-section {
  position: relative;
  padding: 10px 120px;
  background: linear-gradient(
    135deg,
    var(--light-section-bg-color) 0%,
    var(--block-color) 100%
  );

  display: flex;
  justify-content: space-between;
  align-items: center;
  clip-path: var(--clip-path);
  border-bottom: 2px solid var(--secondary);
}

.logo {
  position: relative;
  z-index: 2;
}

.logo img {
  max-height: 90px;
  width: auto;
  transition: transform 0.3s ease;
}

.logo:hover img {
  transform: scale(1.05);
}

@media (max-width: 768px) {
  .top-section {
    padding: 15px;
    clip-path: polygon(
      0 0,
      100% 0,
      100% calc(100% - 10px),
      calc(100% - 10px) 100%,
      0 100%
    );
  }

  .logo img {
    max-height: 50px;
  }
}

@media (max-width: 480px) {
  .top-section {
    padding: 10px;
    flex-direction: column;
    gap: 1rem;
  }
}
/* nav items */
.main-nav {
  position: relative;
  background: var(--secondary);
  padding: 1rem;
   box-shadow: var(--shadow);
}

.main-nav-list {
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
}

.main-nav-list li {
  position: relative;
  margin: 0 1rem;
}

.main-nav-list a {
  color: var(--light-text-color);
  text-decoration: none;
  font-size: 1.1rem;
  transition: color 0.3s, transform 0.22s cubic-bezier(0.4,0,0.2,1);
  display: inline-block;
}

.main-nav-list > li > a:hover,
.main-nav-list > li > a.active {
  color: var(--secondary-lt);
  transform: scale(1.08) !important;
}

.sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--secondary-lt);
  padding: 1rem;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  z-index: 10;
  list-style: none;

}
.sub-menu li {
  margin-bottom: 10px;
  white-space: nowrap;
}
.sub-menu a {
  color: var(--secondary) !important;
  background: transparent;
  transition: color 0.3s, transform 0.22s cubic-bezier(0.4,0,0.2,1);
  display: inline-block;
}
.sub-menu li > a:hover {
  transform: scale(1.08) !important;
}
.main-nav-list li:hover .sub-menu {
  display: block;
}

.mobile-menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
}

.mobile-menu-toggle span {
  display: block;
  width: 25px;
  height: 3px;
  background: var(--light-section-bg-color);
  margin-bottom: 5px;
}

@media screen and (max-width: 768px) {
  .main-nav-list {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(
      --primary
    ); /* Change this to the desired background color */
    padding: 1rem;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  }

  .main-nav-list li {
    margin: 0.5rem 0;
  }

  .main-nav-list a {
    color: var(
      --light-section-bg-color
    ); /* Change this to the desired text color */
  }

  .sub-menu {
    position: static;
    background: var(
      --primary
    ); /* Change this to the desired background color */
    box-shadow: none;
    padding-left: 1rem;
  }

  .mobile-menu-toggle {
    display: block;
  }

  .main-nav-list.show {
    display: flex;
    z-index: 9;
    background-color: rgba(18, 50, 67, 0.95);
  }
}

/* =============== Updated 1/11/2025 ==================== 
| Hero section |
==================================== */

/* only for the press-releases or news url */

.news-section {
  background-image: url("/assets/imgs/dart-defense-news.png");
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: bottom right 5%;
  background-color: #cccccc96;
  background-blend-mode: overlay;
}


/* Intro section */
.intro {
  padding: var(--section-padding);
  background: var(--gradient-lite);
}

.intro .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.intro p {
  font-family: var(--text-font);
  font-size: var(--text-size);
  color: var(--text-color);
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

.intro strong {
  font-weight: 700;
  color: var(--primary);
}




/* to wrap items in reverse */
@media (max-width: 767px) {
  .reverse-wrap-sm {
    flex-wrap: wrap-reverse;
  }
  .reverse-wrap-sm img {
    margin: 20px auto;
    width: 70%;
  }
}
/* introduction areas */
.intro {
  background-color: var(--light-section-bg-color);
  padding: 40px 20px;
  line-height: 1.6;
  color: var(--accent);
}

/* Container */
.intro .container {
  max-width: 900px;
  margin: 0 auto;
}

/* Bold Text */
.intro strong {
  color: var(--primary);
}

/* Superscript Styling */
.intro sup {
  font-size: 0.7rem;
}




/* ============= Updated 11/13/22 ==================== 
    | The about page top section with bg image |
==================================== */
.about-mission {
  background-image: url("/assets/imgs/DART-white-background.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 70%;
  background-color: rgba(241, 234, 234, 0.932);
  background-blend-mode: overlay;
}
.client-list {
  background-color: var(--light-section-bg-color);
}
.workshop-list li {
  padding-left: 10px;
  list-style-type: none;
  margin: 5px 0;
  border-bottom: 1px solid var(--secondary);
  font-size: 1.1rem;
}
.about-top img {
  width: 100%;
  max-width: 600px;
  margin: 30px auto;
  border-radius: 30px;
}
@media (min-width: 50em) {
  .about-top {
    min-height: 60vh;
    display: grid;
    place-items: center;
  }

  .about-mission {
    background-position: right 150px center;
    background-size: 500px;
    min-height: 30em;
    display: grid;
    place-items: center;
  }
  .about-mission h4 {
    text-align: left;
    font-size: var(--hero-title);
    color: var(--primary);
  }

  .client-list {
    background-image: url("/assets/imgs/about-dart-bg-client-list.jpg");
    background-size: cover;
    min-height: 50em;
    background-repeat: no-repeat;
    background-color: #cccccc54;
    background-blend-mode: overlay;
    display: grid;
    align-items: center;
  }

  .client-list h3 {
    font-size: var(--hero-title);
    text-shadow: 2px 2px 5px #000;
    color: var(--light-text-color);
  }
  .workshop-list {
    max-width: 300px;
    border: 1px solid var(--accent);
    box-shadow: var(--shadow);
    transition: 0.5s ease-in-out;
    border-radius: var(--radius);
    background-color: #cccccc98;
  }
  .workshop-list li {
    padding-left: 10px;
    list-style-type: none;
    margin: 5px 0;
    border-bottom: 1px solid var(--secondary);
    font-size: 1.1rem;
  }
}
.workshop-list:hover {
  box-shadow: none;
  background-color: var(--block-color);
}
.workshop-list ul {
  padding: 0;
}

@media (max-width: 1200px) {
  .workshop-list {
    background-color: var(--block-color);
  }
}

/* ============= Updated 11/13/22 ====================== 
| The datesmart and worksmart pages |
==================================== */
.date-smart-hero {
  background-image: url("/assets/imgs/datesmart_logo.webp");
  background-position: right center;
  background-size: contain;
  background-repeat: no-repeat;
  background-color: var(--light-section-bg-color);
  background-blend-mode: overlay;
  padding: var(--section-padding);
}
.work-smart-hero {
  background-image: url("/assets/imgs/worksmart_logo.svg");
  background-position: right center;
  background-size: contain;
  background-repeat: no-repeat;
  background-color: var(--light-section-bg-color);
  background-blend-mode: overlay;
  padding: var(--section-padding);
}
@media (max-width: 600px) {
  .date-smart-hero,
  .work-smart-hero {
    background-color: #e6dfdf;
    background-position: top 50hv center;
    background-attachment: fixed;
  }
}

.date-smart-img {
  max-width: 300px;
}
.date-smart-class-img {
  max-width: 400px;
  height: auto;
}

/* ============== Updated 11/1/22 ===================== 
| The testimonial area |
==================================== */
/* Testimonial Section */
.testimonial-section {
  padding: 60px 20px;
  text-align: center;
}

/* Section Title */
.testimonial-section h3.primary {
  font-size: 2rem;
  color: var(--primary);
  margin-bottom: 40px;
  font-weight: 700;
}

/* Single Testimonial Item */
.single-item {
  background-color: var(--block-color);
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  padding: 30px;
  margin: 0 15px;
  text-align: left;
}

/* Profile Section */
.profile h4 {
  font-size: 1.2rem;
  color: var(--primary);
  font-weight: 700;
  margin-bottom: 5px;
}

.profile p {
  font-size: 1rem;
  color: var(--accent);
  font-weight: 500;
  margin-bottom: 20px;
}

/* Content Section */
.content {
  font-size: 1rem;
  color: var(--accent);
  line-height: 1.6;
  position: relative;
}

.content i.fa-quote-left {
  font-size: 2rem;
  color: var(--primary);
  margin-right: 8px;
}

/* Carousel Controls */
.carousel-control-prev,
.carousel-control-next {
  width: 5%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-color: var(--primary);
  border-radius: 50%;
  padding: 10px;
  transition: background-color 0.3s ease;
}

.carousel-control-prev-icon:hover,
.carousel-control-next-icon:hover {
  background-color: var(--accent);
}

/* Responsive Design */
@media (max-width: 768px) {
  .testimonial-section h3.primary {
    font-size: 1.5rem;
  }

  .single-item {
    padding: 20px;
  }

  .profile h4 {
    font-size: 1rem;
  }

  .profile p {
    font-size: 0.9rem;
  }

  .content {
    font-size: 0.95rem;
  }

  .carousel-control-prev,
  .carousel-control-next {
    width: 10%;
  }
}

/* ============= Updated 11/13/22 ====================== 
| The contact area and form * This is a bootstrap form but have my own responsive styling using the split class.
==================================== */

.contact-area {
  font-family: var(--text-font) !important;
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap-reverse;
}
.contact-area h3 {
  color: var(--light-text-color);
  padding: 5px;
  background-color: #123243;
}

@media (min-width: 60em) {
  .contact-area {
    max-width: 80em;
    margin: auto;
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
  }
}
/* ============== Updated 10/31/22 ===================== 
| The resources page for the flip boxes |
==================================== */
.flip-box-container {
  position: relative;
  width: 250px;
  height: 320px;
  perspective: 1000px;
  margin: 0 auto;
}

.flip-box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  border: 2px solid var(--accent);
  transform-style: preserve-3d;
  transition: transform 0.7s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  text-align: center;
  transform-origin: center center;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
}

.flip-box:hover {
  transform: rotateY(180deg);
}

.flip-box h4 {
  font-size: 1.5rem;
  margin: 10px 0;
  color: var(--title-color);
}

.flip-box p {
  font-size: 14px;
  margin-bottom: 15px;
  color: var(--text-color);
}

.flip-icon {
  font-size: 3rem;
  color: var(--primary);
  display: block;
  margin-bottom: 15px;
  transition: color 0.3s ease;
}

.flip-box:hover .flip-icon {
  color: var(--secondary);
}

.flip-box-front,
.flip-box-back {
  padding: 25px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  backface-visibility: hidden;
  background-color: var(--block-color);
  box-shadow: inset 0 0 0 1px rgba(69, 127, 139, 0.2);
}

.flip-box-front {
  background-image: var(--gradient-lite);
}

.flip-box-back {
  transform: rotateY(180deg);
  background-color: var(--light-section-bg-color);
}

.dart-btn {
  margin-top: 20px;
}

.dart-btn a {
  display: inline-block;
  padding: 10px 18px;
  background-color: var(--primary);
  color: var(--light-text-color);
  text-decoration: none;
  border-radius: 5px;
  transition: all 0.3s ease;
  font-weight: 600;
  letter-spacing: 0.5px;
  box-shadow: 0 3px 8px rgba(159, 13, 45, 0.2);
}

.dart-btn a:hover {
  background-color: var(--secondary);
  transform: translateY(-2px);
  box-shadow: 0 5px 12px rgba(84, 185, 203, 0.3);
}

/* ================================= 
      | what to expect element |
====================================*/
.expect-area h3 {
  font-size: var(--hero-title);
}
.expect-area summary {
  /* The summary is the title used */
  color: #fff;
  background-color: var(--accent);
  font-size: var(--text-size);
  font-weight: 600;
  font-family: var(--title-font);
  padding: var(--block-padding);
  cursor: help;
  border-bottom: 1px solid;
  letter-spacing: 1px;
}

.expect-area details p {
  box-shadow: inset 0 0 10px var(--accent);
  padding: 20px 30px;
  background-color: #ccc;
  margin: 0;
}

.expect-area {
  max-width: 900px;
  margin: 0 auto;
}
@media screen and (max-width: 900px) {
  .expect-area {
    max-width: 80%;
    margin: auto;
  }
  .expect-area summary {
    width: 100%;
  }
}

/* ============= checked 11/1/22 ==================== 
    | The 404 page  |
==================================== */
.error {
  max-width: 900px;
  margin: auto;
}
.error h3 {
  color: #333;
  text-align: left;
  align-self: center;
  font-size: 1.8rem;
}

.site-map-404 {
  max-width: 800px;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-around;
  margin: 1em auto;
  align-items: center;
  gap: 1em;
}
.site-map-404 a {
  padding: var(--block-padding);
  background-color: var(--light-section-bg-color);
  color: var(--primary);
  font-size: 1.2em;
  font-weight: 600;
  border: 1px solid;
  border-radius: 8px;
  transition: 300sm ease-in-out;
  text-align: center;
  width: 200px;
}
.site-map-404 a:hover {
  background-color: var(--accent);
  color: var(--light-text-color);
}
/* ================================= 
| The support page styling  |
==================================== */

.support-dart .custom-section-item {
  justify-content: flex-start;
}
.support-dart .custom-section-item img {
  max-width: 200px;
}
.support-dart p {
  height: 100%;
}
.igive-support {
  background-color: #cccccc;
  padding: var(--block-padding);
}
@media (min-width: 40em) {
  .igive-support {
    padding: var(--section-padding);
    height: 30em;
  }
  .igive-support-btn img {
    transition: 0.3s ease-in-out;
    box-shadow: var(--shadow);
    border-radius: 8px;
    margin: 3em auto;
    border: 3px outset var(--secondary);
    width: 300px;
    height: auto;
  }
  .igive-support-btn img:hover {
    box-shadow: none;
    border-color: var(--primary);
  }
}
/* ============== Updated 11/1/22 ===================== 
| Blog and posts pages |
==================================== */

.blog-page {
  background-image: url("/assets/imgs/DART-white-background.png");
  background-attachment: fixed;
  background-position: right 5% top 30vh;
  background-size: 500px;
  background-repeat: no-repeat;
  background-color: #ccccccea;
  background-blend-mode: overlay;
  padding: var(--section-padding);
  min-height: 80vh;
  display: grid;
  place-items: center;
}

/* used on the post page at the top, some have dates and some don't */
.blog-date {
  text-align: center;
  font-size: 1.2rem;
  text-transform: capitalize;
  font-style: italic;
  margin-bottom: 20px;
}
.blog-page-inner {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
/* post cards for both news and blog pages */
.post-card {
  background: rgba(255, 255, 255, 0.85);
  border: 2px solid var(--secondary);
  border-radius: 2px;
  backdrop-filter: blur(8px);
  min-height: 400px;
  height: 100%;
  margin: 30px auto;
  max-width: 800px;
  transition: transform 0.3s ease;
}

.post-card-inner {
  padding: 15px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.post-content {
  flex-grow: 1;
}

.post-card img {
  width: 100%;
  max-width: 320px;
  margin: 5px;
  height: auto;
  clip-path: var(--clip-path);
  filter: brightness(0.9) contrast(1.1);
  transition: filter 0.3s ease;
  border: 2px groove var(--accent);
}

.post-card:hover .post-card img {
  filter: brightness(1) contrast(1.2);
}

.post-card h4 {
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin: 20px 0;
  font-size: 1.5rem;
  position: relative;
  padding-left: 15px;
}

.post-card h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 70%;
  background: var(--primary);
}

.post-card p {
  color: var(--text-color);
  line-height: 1.3;
  margin: 15px 0;
  padding-left: 15px;
  border-left: 3px solid var(--accent);
}

.post-card-date {
  color: var(--accent);
  font-family: monospace;
  position: relative;
  padding-left: 20px;
}

.post-card-date::before {
  content: ">";
  position: absolute;
  left: 0;
  color: var(--primary);
}

.post-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 0 20px rgba(84, 185, 203, 0.3);
}

/* for the table area in the national perspective post due to custom formatting of the document*/
.post-table {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.post-table h4 {
  font-size: 1.3rem;
}
.post-table p {
  font-size: 1rem;
}

/* for grid div to reverse order on smaller screens - image on top */
.grid-div {
  display: flex;
  flex-wrap: wrap-reverse;
  gap: 0.5rem;
}
.grid-div img {
  min-width: 60%;
  max-width: 300px;
  margin: auto;
}

@media (min-width: 900px) {
  .post-table {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .blog-page-inner {
    max-width: 80em;
  }

  /* For the escalation post */
  .grid-div {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
  }
  .grid-div img {
    width: 200px;
  }
}

/* ================================= 
| The teacher's resources page  |
==================================== */
.teachers-resources {
  background-image: url("/assets/imgs/datesmart-class-slider.webp");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-color: var(--light-section-bg-color);
  background-blend-mode: overlay;
  padding: var(--section-padding);
  min-height: 90vh;
  display: grid;
  place-items: center;
}
.teachers-resources summary {
  background-color: #dddeee9c;
  font-family: var(--title-font);
  font-size: var(--title-size);
  border: 1px solid var(--accent);
  border-radius: 8px;
  padding: 0 10px;
  margin: 1rem 0;
}
.list-dropdown {
  border: 1px solid var(--accent);
  background-color: #dddeee9c;
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}

/* The teen dating violence post  */
.warning-signs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: space-evenly;
}
.abusive-types {
  max-width: 480px;
}
.abusive-types .card-body {
  padding: 0;
}

/* ================================= 
| The survey page |
==================================== */

.survey {
  background-image: url("/assets/imgs/dart-logo-slider.jpg");
  background-position: bottom center;
  background-attachment: fixed;
  background-size: 100vw;
  background-repeat: no-repeat;
  background-color: rgb(243 236 236 /0.6);
  background-blend-mode: overlay;
}
.survey-inner {
  border: 1px solid var(--accent);
  box-shadow: 0 0 15px #333;
  padding: 10px;
  background-color: #ffffffb0;
}

legend {
  background-color: var(--accent);
  color: white;
  padding: 5px 10px;
}

.survey .custom-section {
  margin: 0;
}
.indent {
  margin: 15px 30px;
}
.survey .hr {
  width: 100%;
  border-bottom: 2px dotted var(--accent);
  margin: 2rem 0;
}
.survey h4 {
  color: var(--title-color);
  font-size: var(--title-size);
  margin-bottom: 1.2rem;
}
.survey label {
  font-size: var(--text-size);
}
.survey input,
.survey textarea {
  border-color: var(--accent);
  font-size: var(--text-size);
}
.survey-bottom {
  color: var(--light-text-color);
  padding: 5px;
  background-color: #333;
}
/* ================================= 
| The terms page  |
==================================== */
.terms-page {
  max-width: 800px;
  margin: auto;
}
.terms-page h4 {
  text-align: left;
  font-size: 1.5rem;
}
.terms-page p {
  text-align: justify;
  font-size: 1.2rem;
}



/* Back to Top Button */
#gototop {
  position: fixed;
  right: 25px;
  bottom: -100px;
  z-index: 999;
  background: var(--secondary);
  padding: 12px;
  border-radius: 50%;
  /* Look at this sexy stack of effects */
  box-shadow: var(--neon-glow);
  backdrop-filter: blur(8px);
  border: 1px solid var(--secondary-lt);
  transition: all 0.3s ease;
  opacity: 0;

  /* Some cyberpunk hover magic */
  &:hover {
    transform: translateY(-5px) scale(1.05);
    background: var(--accent);
    box-shadow: var(--neon-glow), 0 0 30px var(--secondary);
    border-color: var(--secondary);
  }

  /* Let's make that icon pop */
  img {
    width: 24px;
    height: 24px;
    filter: brightness(0) invert(1);
    transition: transform 0.2s ease;
  }

  /* Extra sauce: rotate the icon slightly on hover */
  &:hover img {
    transform: rotate(-10deg);
  }
}

/* When it's active and visible */
#gototop.active {
  bottom: 25px;
  opacity: 1;
  background: linear-gradient(145deg, var(--secondary) 0%, var(--accent) 100%);
}

/* Add some glass effect on light backgrounds */
@supports (backdrop-filter: blur(8px)) {
  #gototop {
    background: var(--secondary-lt);
    backdrop-filter: blur(8px);
  }
}

/* Responsive Design */
@media (max-width: 768px) {
 
  #gototop {
    bottom: 20px;
    right: 20px;
  }
}
#loom-companion-mv3 {
  display: none !important;
}

/* postcast page styling */

.podcast-section {
  padding: var(--section-padding);
  position: relative;
  background-color: var(--light-section-bg-color);
  background-image: url("/assets/imgs/podcast-bg.webp");
  background-repeat: repeat;
  background-attachment: fixed;
  overflow: hidden;
}

/* Add a subtle overlay to help with text readability */
.podcast-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--gradient-lite);
  opacity: 0.85;
  z-index: 0;
}

.podcast-container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.podcast-header {
  display: flex;
  align-items: center;
  margin-bottom: 3rem;
  padding: 2rem;
  background: var(--block-color);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.podcast-icon {
  width: 120px;
  height: 120px;
  margin-right: 2rem;
  flex-shrink: 0;
  background-color: var(--primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.podcast-icon svg {
  width: 60px;
  height: 60px;
  fill: var(--light-text-color);
}

.podcast-intro {
  flex: 1;
}

.podcast-heading {
  font-family: var(--title-font);
  color: var(--primary);
  font-size: var(--hero-title);
  margin-top: 0;
  margin-bottom: 1rem;
}

.podcast-subheading {
  font-family: var(--text-font);
  font-size: var(--text-size);
  color: var(--text-color);
  margin-bottom: 1rem;
}

.ai-credit {
  font-style: italic;
  font-size: 0.9rem;
  color: var(--text-color);
  opacity: 0.8;
}

.podcast-list {
  display:flex;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 2rem;
}

.podcast-card {
  background-color: var(--block-color);
  border-radius: var(--radius);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  max-width: 450px;
}

.podcast-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow);
}

.podcast-card-inner {
  display: flex;
  flex-direction: column;
}

.podcast-img {
  height: 180px;
  background-color: var(--accent);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-image: url("/assets/imgs/podcast.webp");
  background-size: cover;
  background-position: center;
}

.podcast-img::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, var(--primary), var(--secondary));
  opacity: 0.4;
}

.podcast-number {
  position: absolute;
  top: 15px;
  right: 15px;
  background-color: var(--primary);
  color: var(--light-text-color);
  font-family: var(--title-font);
  font-size: 1.2rem;
  padding: 5px 12px;
  border-radius: 20px;
  z-index: 1;
}

.podcast-content {
  padding: 1.5rem;
}

.podcast-title {
  font-family: var(--title-font);
  font-size: var(--title-size);
  color: var(--primary);
  margin-top: 0;
  margin-bottom: 1rem;
}

.podcast-player {
  width: 100%;
  margin-bottom: 1rem;
}

.podcast-player audio {
  width: 100%;
  background-color: var(--secondary-lt);
  border-radius: var(--radius);
}

.podcast-description {
  font-family: var(--text-font);
  font-size: var(--text-size);
  line-height: 1.5;
  color: var(--text-color);
}

.episode-date {
  font-family: var(--text-font);
  font-size: 0.9rem;
  color: var(--accent);
  margin-top: 1rem;
  display: block;
}


.podcast-pagination {
  display: flex;
  justify-content: center;
  margin-top: 3rem;
}

.pagination-btn {
  background-color: var(--secondary);
  color: var(--light-text-color);
  font-family: var(--text-font);
  border: none;
  padding: 0.5rem 1rem;
  margin: 0 0.5rem;
  border-radius: var(--radius);
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.pagination-btn:hover {
  background-color: var(--primary);
}

.page-number {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  font-family: var(--text-font);
}

@media (max-width: 767px) {
  .podcast-header {
    flex-direction: column;
    text-align: center;
  }

  .podcast-icon {
    margin-right: 0;
    margin-bottom: 1.5rem;
  }

 
}

/* *************** */
/* FOOTER ELEMENT */
/***********************/

.footer {
  background-color: var(--secondary-lt);
  color: var(--light-text-color);
  padding: 40px 0 20px;
  border-top: 3px solid var(--secondary);
}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 30px;
  padding: 0 20px;
}

.footer .logo {
  max-width: 200px;
}

.footer .logo img {
  width: 100%;
  height: auto;
}

.footer-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.footer nav a {
   color: var(--text-color);
  text-decoration: none;
  display: inline-block;
  margin-bottom: 10px;
  position: relative;
  transition: color 0.3s ease;
}

.footer nav a:hover {
  color: var(--accent);
}

.footer nav a:hover:after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--secondary);
  transform: scaleX(1);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.footer nav p {
  font-weight: 600;
  margin-bottom: 15px;
  color: var(--accent);
}

.footer-social-icons {
  display: flex;
  gap: 15px;
}

.footer-social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--primary);
  color: var(--light-text-color);
  transition: all 0.3s ease;
  text-decoration: none;
  line-height: 1;
}

.footer-social-icons a:hover {
  background-color: var(--text-color);
  transform: translateY(-3px);
}

/* Fixed icon sizing and positioning */
.footer-social-icons i {
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

/* Ensure icons don't have any default margins from Font Awesome */
.footer-social-icons i:before {
  margin: 0;
  line-height: 1;
}



/* Responsive adjustments */
@media (max-width: 768px) {
  .footer-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  
  .footer .logo {
    margin: 0 auto 20px;
  }
  
  .footer-nav {
    margin-bottom: 20px;
  }
  
  .footer-social-icons {
    justify-content: center;
  }
}