body {
  margin: 0px;
  background-color: #e9e9e9;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

/* header (title and navigation */
.header {
  position: sticky; /* makes the navbar sticky (explained later) */
  top: 0; /* This defines the top of the viewport as the sticky threshold */
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background-image: url("../img/kyopost.png");
  background-size: cover;
  height: 300px;
  overflow: hidden;
  transition: all 0.3s ease;
  z-index: 3;
}

.priceHeader{
  background-image: url("../img/promo/kyopromo1.png");
  background-size: cover;
}

.kyoPlusHeader{
  background-image: url("../img/kyo_plus-promo.png");
  background-size: cover;
}


.betaHeader{
  background-image: url("../img/beta.png");
  background-size: cover;
}

.header::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
  transition: all 0.3s ease;
}

.header-title {
  position: relative; /* This ensures the content is above the overlay */
  color: white;
  font-weight: bold;
  font-size: 15vw; /* size dependant on view port size (width) */
  padding: 15px 16px 10px 16px;
  transition: all 0.3s ease;
}

.header-nav {
  font-weight: bold;
  background-color: #33333331;
  backdrop-filter: blur(10px);
}

.header-nav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

.header-nav a:hover {
  background-color: rgb(221 221 221 / 50%);
  color: white;
  backdrop-filter: blur(10px);
}

.header-nav a.active {
  background-color: #ffffff2b;
  color: white;
}

/* for collapsed header content */ 

.header-collapsed {
  height: 170px;
  transition: all 0.3s ease;
}

.header-title-small {
  font-size: 5rem; 
  padding: 15px 16px 3px 16px;
  transition: all 0.3s ease;
}

.header-blur::before {
  backdrop-filter: blur(20px);
  transition: all 0.3s ease;
}

/* navigation hamburger icon */

.header-nav .icon {
  display: none;
}

@media screen and (max-width: 500px) { /* Hides navigation links and shows the menu icon on screens smaller than 600px */
  .header-nav a {display: none;}
  .header-nav a.icon {
    float: left;
    display: block;
  }
  
  .header-nav.responsive a { /* shows the navigation links - will be used when .resonsive is added to the nav element with JS */
    float: none;
    display: block;
    text-align: left;
  }
}

/* Ensures the font doesn't get too small on narrow viewports */
@media (max-width: 600px) {
  .header-title {
    font-size: 60px; 
  }

  .header-title-small {
    font-size: 40px;
  }
}

/* Ensures the font doesn't get too big on wide viewports */
@media (min-width: 1200px) {
  .header-title {
    font-size: 10rem; /* Maximum font size */
  }

  .header-title-small {
    font-size: 5rem; /* Maximum font size */
  }
}


/* main content */
main {
  margin: 40px auto;
  max-width: 800px;
  display: block;
  padding: 0px 10px;
}

section{
  margin-bottom: 10px;
}

.highlight {
  background-color: #f7f7f7;
  padding: 2px 20px 20px 20px;
  border-radius: 8px;
}

.highlight ul {
  list-style-type: none; /* Remove the default list style */
  padding: 0; /* Remove the default padding */
}

.highlight li {
  background: #ffffff; /* White background for list items */
  margin-bottom: 10px;
  padding: 10px 15px;
  border-radius: 5px; 
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); 
  transition: transform 0.2s ease-in-out; /* Smooth transition for hover effect */
}

.highlight li:hover {
  transform: translateY(-2px); /* Slight lift effect on hover */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); /* Increase shadow on hover */
}

.card-container {
  display: block;
  color: inherit; /* Make sure the color is consistent */
  text-decoration: none; /* Remove underline from links */
  display: grid;
  /*  Defines the columns in the grid: 
     - 'auto-fill' automatically fits as many columns as it can 
     - 'minmax(250, 1fr)' sets a minimum width of 250px and a maximum of 1 fraction of the available space for each column */
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px; 
  padding: 20px; 
}

.card {
  color: rgb(29, 29, 29); 
  border-radius: 10px; 
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); 
  overflow: hidden; /* Ensures content does not spill outside the border-radius */
  position: relative; /* For positioning the title overlay */
  height: 170px;
}

.card:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(180deg, rgba(217, 217, 217, 0) 0%, rgb(255 255 255 / 140%) 100%);
  z-index: 1;
  transition: all 0.3s ease;
  backdrop-filter: blur(2px);
}

.card h3 {
  z-index: 2;
  position: absolute; /* Position the title over the image */
  bottom: 0; /* Align to the bottom of the card */
  width: 100%; 
  margin: 0px;
  padding: 10px;
  text-align: left;
  font-size: 24px; 
}

.card h4 {
  z-index: 2;
  position: absolute; /* Position the title over the image */
  width: 100%; 
  margin: 0px;
  padding: 10px;
  text-align: left;
  font-size: 18px; 
}

/* Styles for <a> elements with card classes, setting the background image and sizing */
a.card1 { 
  background: url("../img/promo/kyopromo1.png") no-repeat center center;
  background-size: cover;
}
a.card2 {
  background: url("../img/promo/kyopromo2.png") no-repeat center center;
  background-size: cover;
}
a.card3 {
  background: url("../img/kyo_plus-promo.png") no-repeat center center;
  background-size: cover;
}
a.lettersOverlay {
  background: url("../img/cardImages/lettersOverlay.png") no-repeat center center;
  background-size: cover;
}
a.symbolsOverlay {
  background: url("../img/cardImages/symbolsOverlay.png") no-repeat center center;
  background-size: cover;
}
a.promotionOne {
  background: url("../img/cardImages/promotion1.png") no-repeat center center;
  background-size: cover;
}
a.cardbeta { 
  background: url("../img/beta.png") no-repeat center center;
  background-size: cover;
}

/* default button */
.default-button {
  display: inline-block;
  padding: 10px 15px;
  background-color: #007bff; 
  border: none;
  color: white;
  text-align: center;
  text-decoration: none;
  border-radius: 5px;
  font-weight: bold;
  transition: background-color 0.3s;
}

.default-button:hover {
  background-color: #0056b3;
}

/* article contents */
.header-breadcrumb {
  position: relative;
  color: white;
  font-weight: bold;
  font-size: 3vw;
  padding: 0px 16px 0px 20px;
  transition: all 0.3s ease;
  transform: translateY(25px);
  opacity: 0.6;
  z-index: 4;
  cursor: pointer;
  text-decoration: none;
}

.header-breadcrumb:hover {
  opacity: 1;
  font-size: 3.1vw;
}

.image-banner {
  width: 100%;
  border-radius: 8px;
  height: 300px;
  object-fit: cover;
  margin-bottom: 10px;
}


.image-banner.right {
  width: 100%;
  border-radius: 8px;
  height: 300px;
  object-fit: cover;
  margin-bottom: 10px;
  object-position: right;
}


.screenshot-container {
  display: grid; /* Establishes a grid layout for the container */

  /* Defines the columns in the grid: 
     - 'auto-fill' automatically fits as many columns as it can 
     - 'minmax(300px, 1fr)' sets a minimum width of 300px and a maximum of 1 fraction of the available space for each column */
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  
  gap: 20px; /* Sets the gap between grid items, both rows and columns */
  padding: 20px;
}

.screenshot-container figure {
  margin: 0; /* Removes default margin from figure */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.screenshot-container img {
  width: 100%; /* Ensures the image fills the figure */
  border-radius: 8px; 
}

.screenshot-container figcaption {
  text-align: center; /* Centers the caption text */
  padding: 10px; 
}

/* Dark mode styles */
@media (prefers-color-scheme: dark) {
  body {
    background-color: #333; /* Darker background for dark mode */
    color: #fff; 
  }
  
  .highlight {
    background-color: #444444;
  }
  
  .highlight li {
    background: #515151; /* White background for list items */
  }
}

/* site footer */
.site-footer {
  background-color: #474747;
  color: white;
  text-align: center;
  padding: 20px 0;
}

.footer-content {
  margin: 0 auto;
  padding: 0 20px;
}

.footer-socials {
  list-style: none;
  padding: 0;
}

.footer-socials li {
  display: inline;
  margin: 0 10px;
}

.footer-socials a {
  color: white;
  text-decoration: none;
}

.footer-socials a:hover {
  text-decoration: underline;
}

.footer-socials i {
  margin-right: 8px;
}
