@font-face {
  font-family: 'MyFont';
  src: url('../font/proxima.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}


  /* --- Reset & Base Styles --- */
  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body, html {
    height: 100%;
    font-family: Arial, sans-serif;
    font-family: 'MyFont', sans-serif;
  }

  a {
    text-decoration: none;
    color: inherit;
  }

  a:hover {
    text-decoration: underline white 2px;
  }

.navi-main:hover {
    background: #527388;
    text-decoration: none;
}

  a.buttons {
    background: #527388;
    height: 3rem;
    line-height: 3rem;
    border-radius: 1.5rem;
    color: white;
    width: 9rem;
    display: block;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: bold;
  }

  a.buttons.top:hover {
      background: #6d3737;
      text-decoration: none;
  }
  a.buttons.bottom:hover {
      background: white;
      text-decoration: none;
      color: #527388;
  }


  a.buy-button {
    display: block;
    background: #955858;
    font-weight: bold;
    color: white;
    width: 100%;
    max-width: 400px;
    text-align: center;
    padding: 0.5rem;
    text-decoration: none;
  }
  a.buy-button:hover {
    background: #527388;
  }

  h1 {
    background: url('../images/bg.png');
    border-right-style: solid;
    border-color: #955858;
    border-width: 10px;
    position: absolute;
    bottom: 0;
    padding: 1.5rem;
    padding-left: 6rem;
    padding-right: 6rem;
    font-size: 1.5rem;
    font-weight: bold;
  }

  h2 {
    font-size: 1.2rem;
    padding: 3rem;
    font-weight: normal;
  }
  h2.book-heads {
    padding: 0;
    font-weight: bold;
    color: #527388;
    padding-bottom: 1rem;
    font-size: 1.5rem;
  }
  h4 {
    padding-bottom: 1rem;
  }

  p.push {
    margin-bottom: 2rem;
  }



  /* --- Layout Wrapper for Sticky Footer --- */
  .wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
  }

  header, footer {
    color: #fff;
  }

  header {
    aspect-ratio: 16 / 8;
    background: url('../images/portrait-2025.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
  .about-header {
    aspect-ratio: 16 / 8;
    background: url('../images/bb.jpg');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
  .bookshop-header {
    aspect-ratio: 16 / 8;
    background: url('../images/bb-publications.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
  .rec-header {
    aspect-ratio: 16 / 8;
    background: url('../images/bb-recognition.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
   .media-header {
    aspect-ratio: 16 / 8;
    background: url('../images/bb-media.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
   .publish-header {
    aspect-ratio: 16 / 8;
    background: url('../images/portrait-2025bw.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
  .contact-header {
    aspect-ratio: 16 / 8;
    background: url('../images/contact.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: top;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }
.cms-header {
    aspect-ratio: 16 / 4;
    background: url('../cms/admin.webp');
    background-size: cover;       /* Ensures the image fully covers the div */
  background-position: center;  /* Keeps the image centered */
  background-repeat: no-repeat; /* Prevents tiling */
  position: relative;
  }

  .logo img {
    display: block;
    height: 6rem;
    margin: 1.5rem;
  }

  main {
    flex: 1;
    position: relative;
  }

  /* --- Navigation --- */
  nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .nav-links {
    display: flex;
    gap: 1rem;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
    background: url('../images/links-bg.png');
  }

  .nav-links a {
    color: white;
    padding: 0.5rem;
  }

  .hamburger {
    display: none;
    flex-direction: column;
    cursor: pointer;
  }

  .hamburger span {
    width: 25px;
    height: 3px;
    background: white;
    margin: 4px 0;
  }

  .home-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    padding: 6rem;
  }


.narrative-wrapper {
  padding: 6rem;
  max-width: 75ch;
}

img.hover-img {
  display: block;
  width: 100%;
  max-width: 400px;
}



/*PUBLICATIONS*/
.publications-display {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
  }
  .publications-display[aria-hidden="false"] {
    max-height: 20000px; /* large enough to fit all content */
  }

.publications-head {
  display: flex;
  flex-wrap: wrap;
  padding: 5.5rem;
  color: white;
}
.publications-head > div {
  flex: 100%;
  margin: 0rem;
}
.publications-head h2 {
  padding: 1rem;
  background: #955858;
}
.publications-display {
  display: flex;
  flex-wrap: wrap;
  color: black;
}
.publications-display > div {
  width: 50%;
  padding: 2rem;
}
.publications-display a {
    color: #527388;
    font-weight: bold;
}
.pub-heading {
    margin-top: 1rem;
}

  
/*MEDIA*/

.media-video {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
  }
.media-video[aria-hidden="false"] {
    max-height: 20000px; /* large enough to fit all content */
  }
.media-drop {
    margin-bottom: 0rem !important;

}
.media-container {
    display: block;
    color: black;
    width: 100%;
    max-width: 720px;
    
}
.media-container h3, h4 {
    font-weight: normal;
    font-size: 1rem;
}
.media-container h4 {
    color:#527388;
}
.video-container iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: none;
    padding-top: 1rem;
}
.spacer {
    height: 2rem;
}




  .base {
    background: #6d3737;
    color: white;
    padding-bottom: 3rem;
  }

  .logos-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
  }
  .logos-grid img {
    display: block;
    width: 100%;
  }



  footer {
    background: #527388;
    padding: 3rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
  }

  footer img {
    height: 2rem;
  }

  footer ul {
    list-style-type: none;
  }
  footer li {
    display: inline-block;
  }

  .social-footer {
    align-items: center;
    display: flex;
    width: auto;
    width: fit-content;
  }
  .social-footer * {
    margin-left: 1rem;
  }
  .social-footer a {
      margin: 0;
      padding: 0;
  }
  
  
  /*FORMS*/
  
 
  
  textarea, input {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    max-width: 400px;
    display: block;
    margin-bottom: 1rem;
}
 label {
     display: block;
 }
 input[type=email], input[type=text], input[type=password], textarea {
     background: #c3d5e1;
     border: none;
     font-family: Arial, sans-serif;
    font-family: 'MyFont', sans-serif;
    font-size: 1rem;
    padding: 0.5rem;
 }
 input[type=email], input[type=text], input[type=password] {
     height: 2.5rem;
 }
textarea {
    height: 7.5rem;
    resize: none;
 }
 form button {
     width: 5rem;
     height: 2.5rem;
     border: none;
     background: #955858;
     color: white;
     font-family: Arial, sans-serif;
    font-family: 'MyFont', sans-serif;
    font-size: 1rem;
 }
 form button:hover {
     background: #527388;
 }
 .form-alert {
     color: #955858;
     margin-bottom: 1.5rem;
     margin-top: 0;
 }
input[type=submit] {
     width: 5rem;
     height: 2.5rem;
     border: none;
     background: #955858;
     color: white;
     font-family: Arial, sans-serif;
    font-family: 'MyFont', sans-serif;
    font-size: 1rem;
 }
input[type=submit]:hover {
    background: #527388;
}





  /* --- Responsive Styles --- */


  /* --- Common Breakpoints (Utility Only) --- */
  /* Mobile First */
  @media (max-width: 480px) {

    h1 {
  padding: 1rem;
      padding-left: 3rem;
      padding-right: 3rem;
      font-size: 0.8rem;
    }

    .logo img {
      height: 4rem;
    }

    .home-grid {
      padding: 1.5rem;
    }

    .narrative-wrapper {
      padding: 3rem;
    }


   }


   @media (max-width: 768px) {
     .nav-links {
       position: absolute;
       top: 9rem;
       left: 0;
       width: 100%;
       background: #527388;
       flex-direction: column;
       display: none;
       z-index: 100;
       padding:1.5rem;
     }

     .nav-links a {

     }

     .nav-links.active {
       display: flex;
     }

     .hamburger {
       display: flex;
       padding: 1.5rem;
     }

     h1 {
       padding-left: 3rem;
       font-size: 1rem;
     }

     .home-grid {
       grid-template-columns: 1fr;
       gap: initial;
       padding: 3rem;
     }
     .home-grid h2 {
         margin-top: 1rem;
     }
    .home-grid p {
        margin-bottom: 3rem;
    }
    
     .logos-grid {
       grid-template-columns: 1fr 1fr 1fr;
     }
     .narrative-wrapper {
       padding: 3rem;
     }

.publications-head {
  padding: 2rem;
}
    .publications-display > div {
  width: 100%;
  padding: 1rem;
}



   }


  @media (max-width: 1024px) {

    h1 {

    }

    footer {
      display: block;
    }
    footer > div {
      margin-left: auto;
      margin-right: auto;
      display: block;
      padding: 1.5rem;
    }
    .social-footer {
      margin-left: auto;
      margin-right: auto;
    }


  }
  @media (min-width: 1025px) { /* large desktops */ }

  h1 {

  }

  /* --- Footer Styling --- */
  footer {
    text-align: center;
  }
