/* ---VARIABLES--- */
/* Setting variables, for example: colours and fonts across the whole site from
just one, easy to manage section. */
:root {
  --color-primary: #0e0e0e;
  --color-secondary: #ffff;
  --color-tertiary: #121212;
  --color-shadow: none;
  --color-hover-background: #404040;
  --color-date-author: #696969;
  --color-background: #ffff;
  --color-background-exhibitions: #d9d9d9;
  --font-text: rsystem-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif,
    "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial,
    sans-serif;
}

/* ---CSS RESET--- */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  z-index: 0;
}

/* Set root font-size for rem to 62.5% to change the font-size default value to 10px. */
html {
  font-size: 62.5%;
}

body {
  height: 100vh;
  max-height: 100%;
  width: 100vw;
  max-width: 100%;
  scrollbar-width: none;
  overflow-x: hidden;
  /* Set font-size back to it's original 16px by using 1.6rem. */
  font-size: 1.6rem;
  background-color: var(--color-background);
  list-style-type: none; /* Remove bullets */
}

/* HELPER */
/* * {
    outline: 1px solid red;
  } */

/* TYPOGRAPHY */

h1,
h2,
h3,
h4 {
  padding: 2rem 0;
  color: var(--color-primary);
  font-family: var(--font-text);
}
h1 {
  font-size: 48px;
}

h2 {
  font-size: 36px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 18px;
}
h5 {
  font-family: var(--font-text);
  letter-spacing: 0.1rem;
  padding: 1rem 0;
  color: var(--color-date-author);
  font-size: 16px;
}
h6 {
  font-family: var(--font-text);
  letter-spacing: 0.1rem;
  padding: 2rem 0;
  color: var(--color-secondary);
  font-size: 16px;
}

p,
a,
li {
  font-family: var(--font-text);
  font-size: 16px;
  text-decoration: none;
  padding: 0.2rem 0;
}
a :hover {
  text-decoration: underline;
}

/* ---IMAGES--- */
img,
picture {
  display: block;
  max-width: 100%;
}

section {
  margin-bottom: 40px;
}

/* ---FORMS AND BUTTONS--- */
button {
  cursor: pointer;
  text-align: center;
  font-size: 1.8rem;
  background-color: var(--color-primary);
  color: var(--color-secondary);
  border: 1px;
  border-radius: 10rem;
  padding: 1rem 1rem;
  margin: 1rem 0;
}

button:hover {
  background-color: var(--color-hover-background);
  color: var(--color-background);
}

/* ---#1.0 RESPONSIVE WEBPAGE TEMPLATE--- */
/* ---#1.1 FOR DESKTOP--- */
/*body {
    display:
  } 
*/

.header {
  display: flex; /* Make the header a flex container */
  justify-content: space-between; /* Distribute header items horizontally with space in between */
  align-items: center; /* Align header items vertically */
  align-self: stretch;
  box-shadow: 0 5rem 3rem var(--color-shadow);
  padding: 0.2rem;
  z-index: 1;
}

.logo {
  flex: 0 0 auto; /* Set logo to not grow or shrink and have its auto width */
  margin-right: 10px; /* Add margin to the right of the logo */
  padding-left: 30px;
}

.logo img {
  min-height: 5rem;
  height: 5rem;
  margin-left: 1rem;
}
.logo a {
  color: var(--color-primary);
}
/* Nav bar styles */
nav {
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
  align-content: center;
  padding-bottom: 20px;
}
.menuLinks {
  display: grid;
  grid-auto-flow: column;
  list-style-type: none;
  column-gap: 10px;
  padding: 0;
  justify-items: center;
}
.hamburger {
  display: none;
}
nav a {
  color: var(--color-tertiary);
}
.listItem {
  width: min-content;
  white-space: nowrap;
  justify-content: flex-start;
}

nav ul li {
  flex-direction: row;
  justify-content: center;
  margin: 0;
  padding: 0;
  top: 0;
  display: inline-block;
  text-transform: none;
  margin-right: 2rem;
  color: var(--color-primary);
}

nav ul li :hover {
  border-bottom: 2px solid var(--color-primary); /* underlines nav menu list items on hover */
}

.nav-menu-items {
  display: flex; /* Make menu items a flex container */
  list-style: none; /* Remove bullet points */
  margin: 0; /* Remove default margin */
  justify-content: center;
  align-items: center;
}
.nav-icon {
  height: 35px;
  width: 35px;
}

.nav-icons {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  position: fixed;
  right: 0; /* Position them at the right edge of the screen */
  background: var(--color-secondary);
}
/* nav bar styles end */

main {
  text-align: left;
  padding-bottom: 2rem;
  background-image: linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255)),
    url("../images/9.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  background-color: var(--color-secondary);
}

section {
  padding: 2rem 1rem;
}

/* ---HERO IMAGE--- */
.hero-image {
  background-image: linear-gradient(
      rgba(243, 238, 238, 0.1),
      rgba(243, 240, 240, 0.1)
    ),
    url("../images/4.webp");
  height: 100vh;
  width: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  box-shadow: 0 5rem 10rem var(--color-background);
}

.hero-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.animated-images {
  display: flex;
  flex-direction: column;
  background-image: url(../images/16.webp);
  background-size: cover;
  background-repeat: no-repeat;
}
.animated-image {
  text-align: center;
}

.animated-image h3,
.animated-image button {
  color: var(--color-secondary);
  border-color: var(--color-primary);
}
.animated-image img {
  height: 100px;
  width: 100px;
}
.background-image {
  color: var(--color-secondary);
  text-align: center;
  background-image: url(../images/16.webp);
  width: 100%;
  height: 100%;
}
.background-image h1,
.background-image button {
  color: var(--color-secondary);
  border-color: var(--color-primary);
}
.background-image p {
  padding-top: 20px;
}

/* Button Styles */
.card button {
  display: block; /* makes button block-level */
  margin: 30px 0 0 1px; /* center button horizontally */
  padding: 1rem 2rem;
  background-color: var(--color-primary);
  color: var(--color-secondary);
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.3s; /* smooth hover effect */
}

.card button:hover {
  background-color: var(--color-hover-background);
}
/*button styles end */

.cards {
  display: flex; /* enables flexbox layout */
  flex-direction: row; /* arrange cards in a row */
  flex-wrap: nowrap; /* allow cards to wrap to multiple lines */
  justify-content: flex-start; /* distribute cards evenly with space between */
  align-items: flex-start; /* align cards vertically from the top */
  flex-basis: auto; /* space between cards */
  box-sizing: border-box;
  gap: 3rem;
  width: 100%;
}

.card {
  background-color: var(--color-secondary);
  box-sizing: border-box;
  border: 1px solid var(--color-secondary);
  margin-bottom: 0px; /* Add margin for spacing between cards */
  padding: 0;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  border-radius: 5px;
}

#events-and-exhibitions {
  flex: 0 1 400px; /* Set flex properties for equal sizing */
}
.card img {
  display: block;
  height: 320px;
  width: 100%;
}

.card-icons {
  color: var(--color-primary);
  flex-wrap: wrap; /* Wrap list items if they overflow the container */
  list-style: none; /* removes default list item styling */
  padding: 0;
  margin: 0;
}

.card-icon {
  text-align: center;
  margin-right: 10px;
}
.card-icons li {
  margin-right: 1rem; /* Add some space between list items */
  margin-bottom: 5px; /* Add some space between list items */
}

.card-icons li a {
  text-decoration: none; /* Remove underline from links */
  display: flex; /* Make link and image display inline */
  align-items: center; /* align image and text vertically */
}

.card-icons li img {
  margin-right: 5px; /* Add some space between image and text */
  height: 35px;
  width: 35px;
}

.cards ol,
.cards a {
  list-style: none;
  color: var(--color-primary);
  text-align: justify;
}
.cards img {
  width: 100%;
}

#events-and-exhibitions .card {
  background-color: var(--color-background-exhibitions);
  padding: 10px; /* Add some padding to the cards */
  border-radius: 5px; /* Add rounded corners to the cards */
  margin-bottom: 1rem; /* Add some space between the cards */
}

/* Back to top*/
.back-to-top {
  position: fixed;
  bottom: 50px;
  right: 50px;
  padding: 10px;
  background-color: var(--color-background);
  border-radius: 5px;
  text-decoration: none;
  color: var(--color-primary);
}

.back-to-top:hover {
  background-color: var(--color-hover-background);
}

/*footer  styles */
.rights {
  padding-left: 4rem;
  padding-bottom: 1rem;
}
.footer {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* Four columns of equal width */
  gap: 20px; /* Space between columns */
  padding: 20px 0; /* Top and bottom padding */
  background-color: var(--color-primary);
}
footer {
  color: var(--color-secondary);
  background-color: var(--color-primary);
}

.footer-menu {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  line-height: 1.5;
  color: var(--color-secondary);
  margin-left: 5rem;
  margin-right: 50px;
}

.footer-menu h2 {
  margin-bottom: 10px; /* Space between heading and list */
  color: var(--color-secondary);
}

.footer-menu ul li {
  list-style: none; /* Remove default list style */
  padding: 0; /* No top/bottom padding */
}

.footer-menu li {
  margin-bottom: 5px; /* Space between list items */
}
.footer a {
  color: var(--color-secondary);
}

.footer ul li :hover {
  border-bottom: 2px solid var(--color-secondary);
}
.footer .menu-select {
  color: var(--color-secondary); /* Inherit white color from footer */
  background-color: var(--color-primary);
  border: 0;
}

/* Social media icons styles */

.social-media-icons {
  grid-column: 4;
  grid-row: 1;
  text-align: center;
  align-content: center;
  list-style: none;
  padding-right: 2rem;
}

.social-media-icons p {
  margin-bottom: 10px; /* Space between title and icons */
  color: var(--color-secondary);
}

.social-media-icons ul {
  display: flex; /* Arrange icons horizontally */
  justify-content: end; /* Distribute icons evenly */
  padding: 0; /* No top/bottom padding */
}

.social-media-icons li {
  margin: 0 5px; /* Space between icons */
  color: var(--color-secondary);
}

.social-icon {
  width: 35px; /* Adjust icon size as needed */
  height: 35px; /* Adjust icon size as needed */
  color: var(--color-secondary);
  background-color: var(--color-secondary);
}

/*footer styles end --*/

/* Carousel Styles */
/* ---CAROUSEL--- */
.carousel-container {
  position: relative;
  width: 100%;
  max-width: 100vw;
  margin: auto;
}

/* Activates flexbox on image slides. */
.carousel-slide {
  display: flex;
  transition: transform 3s ease-in-out;
}

/* Defines sizing of images. */
.carousel-slide img {
  width: 100%;
  display: none;
}

/* Identifies how the images will be displayed when they are active. */
.carousel-slide img.active {
  display: flex;
}

/* Set the positioning of the left and right arrow carousel navigation.  */
.carousel-navigation {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  justify-content: space-between;
}

/* Defines the color of the carousel arrows navigation.  */
.carousel-navigation .prev,
.next {
  color: var(--color-secondary);
}

/* Alignments and coloring of the left and right arrow navigation. */
.carousel-navigation button {
  background-color: var(--color-primary);
  border: none;
  font-size: 24px;
  cursor: pointer;
  outline: none;
}

/* The carousel bullets points alignment. */
.carousel-bullets {
  text-align: center;
  margin-top: 10px;
}

/* Setting up the colour of the non-active carousel bullets. .*/
.carousel-bullets .bullet {
  display: inline-block;
  width: 10px;
  height: 10px;
  background-color: var(--color-primary);
  border-radius: 50%;
  margin: 0 5px;
  cursor: pointer;
}

/* Setting up the colour of the active carousel bullets. */
.carousel-bullets .bullet.active {
  background-color: var(--color-date-author);
}

/* ----- media queries----- */
@media screen and (max-width: 768px) {
  /* Make the header, main, and footer sections stack vertically */
  .header,
  .main,
  .footer {
    width: 100%; /* Ensures elements take full width */
  }

  .cards {
    display: flex; /* Arrange cards horizontally in a row */
    flex-direction: column;
    flex-wrap: wrap; /* Allow cards to wrap to the next line on small screens */
    justify-content: center; /* Center cards horizontally */
  }

  .card {
    width: 100%;
    margin: 1rem; /* spacing between cards */
    flex: 0 0 calc(33.33% - 2rem); /* Set card width to 1/3 of screen width with some margin */
  }

  .hamburger {
    display: block;
  }
  .logo {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    margin-bottom: 5px;
  }

  .menuLinks {
    grid-auto-flow: row;
    list-style-type: none;
    row-gap: 10px;
    column-gap: 0;
  }

  .footer {
    display: flex;
    flex-direction: column;
  }
  .social-media-icons p {
    text-align: left;
    padding-left: 5rem;
  }
  .social-media-icons ul {
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    padding-left: 5rem;
  }
  .rights {
    padding-left: 5rem;
  }

  .nav-icons {
    position: fixed; /* Make the icons fixed to the viewport */
    top: 0; /* Position them at the top of the screen */
    right: 0; /* Position them at the right edge of the screen */
    display: flex; /* Arrange icons horizontally in a row */
  }
  .nav-icons li {
    list-style: none; /* Remove default bullet points */
    margin: 0 10px; /* Add some spacing between icons */
  }
  /* .listItem {
    text-align: center;
  }*/

  .carousel-container {
    display: none; /* Hide carousel on small screens */
  }
}

/*tablets landscape */
/*Media query for screens between 768px and 992px wide */
@media screen and (min-width: 768px) and (max-width: 1194px) {
  .menu {
    display: flex;
    flex-direction: row;
  } /* Cards */
  .cards {
    display: flex;
    flex-wrap: wrap; /* Wrap cards on medium screens */
    justify-content: center;
  }
}

/*large screens - desktop */
@media screen and (min-width: 801px) {
  .menu {
    display: block !important;
  }
}
