/* Universal Styles */
html, body {
    height: 100%;
    margin: 0 0 0 0;
    padding: 0;
}

body {
    font-family: "Archivo Black", sans-serif;
    font-weight: 400;
    font-style: normal;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
}

.article, .article p, .article * {
    font-family: "Archivo", sans-serif;
    font-weight: 200;
}

.content {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 0 0;
    position: relative;
    margin-bottom: 80px;
}

.main {
    display: flex;
    flex-direction: column;
}

/* Header Styles */
header {
    background: #f8f9fa;
    color: #333;
    padding: 20px 0;
    text-align: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

header h1 {
    font-size: 2em;
    margin: 0;
    font-weight: 600;
}

header p {
    font-size: 1em;
    margin: 10px 0 0;
    color: #777;
}

nav {
    display: flex;
    justify-content: center;
    background: #333;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

nav a {
    color: white;
    padding: 1rem 1.5rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.3s;
    font-weight: 200;
    font-size: .6rem;
}

nav a:hover {
    background: #555;
}

/* Footer Styles */
footer {
    background: #333;
    color: white;
    text-align: center;
    padding: 2px 0;
    flex-shrink: 0;
    width: 100%;
    bottom: 0;
    position: sticky;
}

footer .social-links {
    display: flex;
    justify-content: center;
    margin-top: 1px;
}

footer .social-links a {
    margin: 0 1px;
    transition: opacity 0.3s;
}

footer .social-links a:hover {
    opacity: 0.7;
}

.thumbnail {
    opacity: 0.2;
    width: 40px;
    height: 40px;
}

.thumbnail:hover {
    opacity: 1;
    transition: 0.3s;
}

div.copyright {
    font-size: 0.75em;
    color: lightgrey;
}

/* Grid Container Styles */
.grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(22vw, 1fr));
    grid-template-rows: auto;
    gap: 1rem;
    width: 95%;
    margin: 1rem auto;
    padding: 10;
    position: relative;
    align-items: center;
}

.card {
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #fff;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    position: relative;
    max-width: 22vw;
    height: 90%;
}

.card:hover {
   transition: transform 0.3s, box-shadow 0.3s;
   box-shadow: 0 .3em .3em rgba(255,0,0,0.7);
}

.card-img-wrapper {
    position: relative;
    width: 100%;
    border-radius: 1rem;
    overflow: hidden;
    height: 100%; /* del */
}

.card-img {
    width: 100%;
    height: auto;
    max-height: 50vh;
    aspect-ratio: 1/1;
    object-fit: cover;
    object-position: center 20%;
    display: block;
}

.gradient-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 33%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
    pointer-events: none; /* Ensures the overlay does not block interactions */
}

.card-content {
    text-align: center;
}

.card-content h2 {
    font-size: 1rem;
    font-weight: 100;
    margin: 0.3rem 0;
}

.card-content p {
    font-size: 1rem;
    font-family: "Roboto";
    color: #666;
}

.fine-print {
    font-family: "Archivo";
    font-weight: 100;
    font-size: clamp(0.5rem, 0.8rem, 1rem);
}

.jigsaw {
	background-color: rgba(0,0,0,.1);
}

.full-width-banner {
    flex-basis: 100%;
    position: relative;
}

.full-width-banner img:first-of-type {
    top: 0;
    left: 0;
    width: 100vw;
    height: 24vh;
    object-fit: cover;
}

.full-width-banner p:first-of-type {
    position: absolute;
    top: 1%;
    left: 0;
    color: white;
    font-size: 1.5em;
    background: rgba(100, 100, 100, 0.7);
    padding: 1.5vh 5vh 1.5vh 8vh;
}

/* Article container */
.article-container {
  flex: 1;
  margin: auto; /* Center the article */
  padding: 1rem;
  background-color: #ffffff; /* White background for the article */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
  border-radius: 8px; /* Rounded corners */
  max-width: 60rem; /*Testing readability*/
}

.ad-container {
  margin-left: 1rem; /* Space between article and ad */
  background-color: #f4f4f4; /* Example background color for the ad */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for the ad */
  padding: 1rem;
  text-align: center;
}

.article-keyword-link button {
    background-color: #909090; /* Grey background */
    color: white; /* White text */
    border: none; /* Remove default border */
    padding: 10px 20px; /* Padding to create space around text */
    text-align: center; /* Center text */
    text-decoration: none; /* Remove underline */
    display: inline-block; /* Inline-block to respect padding */
    font-size: 1em; /* Font size */
    margin: 5px 10px; /* Margin between buttons */
    border-radius: 40px; /* Oval shape */
    cursor: pointer; /* Change cursor to pointer */
    transition: background-color 0.3s ease; /* Smooth transition for hover effect */
}

.article-keyword-link button:hover {
    background-color: #452249; /* Dark purple on hover */
}


/* Vertical ad (shown by default) */
.vertical-ad {
  display: block; /* Vertical ad displayed */
  width: 100%; /* Adjust width for the vertical ad */
  height: auto;
}

/* Horizontal ad (hidden by default) */
.horizontal-ad {
  display: none; /* Hidden by default */
  width: 100%;
  height: auto;
}

.content-wrapper {
  display: flex;
  flex-wrap: wrap;
  width: 100vw;
  max-width: 100vw;
  justify-content: start; /* Ensures space is distributed evenly */
  padding-bottom: 80px;
}
.blockquote {
  color: #333; /* Lighter color for quotes */
  border-left: .25em dotted #999; /* Left border for blockquote */
  padding-left: 1em;
  margin: 0 3em 0 1em;
  background-color: #fff9e6; /* Light background for quotes */
  display: block;
}

.article-container .article-body img {
  max-width: 90%; /* Responsive images */
  max-height: 450px;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  margin: 0 0 0 0; /* Center images */
  border-radius: 20px; /* Rounded corners */
}

.highlight {
  background-color: #fffae6; /* Light yellow background */
  padding: 0.2em 0.4em; /* Padding around the text */
  border-radius: 4px; /* Rounded corners */
}

.expiration-warning {
  background-color: rgba(255,0,0,.2);
  color: darkred;
  border-left: 1rem solid;
  border-radius: 3rem;
  font-family: "Roboto", san-serif;
  font-weight: 100;
  padding-left: 0.5rem;
}

/* Misc Formatting */
.show-when-small {
  display: none;
}

.special-feature {
    background-color: #90EE90; /* Soft yellow background */
    border: 2px dotted #50AA50; /* Slightly darker yellow border */
    border-radius: 8px; /* Rounded corners */
    color: #333; /* Dark text for contrast */
    font-weight: bold; /* Bold text */
    padding: 10px 15px; /* More padding for a larger block element */
    font-size: 1em; /* Regular font size */
    text-transform: uppercase; /* Makes text uppercase */
    margin: 10px 0; /* Adds space above and below */
    box-shadow: 1px 1px 5px rgba(0,0,0,0.1); /* Light shadow for depth */
    max-width: 600px; /* Optional: Limit the width for better readability */
    text-align: center; /* Centers the text inside the block */
}

ul.stylized-checkmarks {
    list-style: none; /* Remove default bullets */
    display: flex; /* Enable flexbox layout */
    flex-wrap: wrap; /* Allow items to wrap to the next line if needed */
    gap: 20px; /* Adds space between the items */
    padding: 0; /* Remove default padding */
    justify-content: center;
}

ul.stylized-checkmarks li {
    position: relative; /* Required for positioning the check mark */
    padding-left: 25px; /* Space for the check mark */
    flex: 0 1 auto; /* Items will adjust size but won't shrink too much */
}

ul.stylized-checkmarks li::before {
    content: '\2713'; /* Unicode character for a check mark */
    color: green; /* Green check mark */
    font-size: 1.2em; /* Adjust size as needed */
    font-weight: bold; /* Make the check mark bold */
    position: absolute; /* Position relative to the list item */
    left: 0; /* Position it on the left */
    top: 0; /* Align with the top of the item */
    transform: translateY(-0.2em); /* Slight adjustment to align with text */
}

a.clickable-div {
    text-decoration: none;
    display: block;
    color: inherit;
}

/* Base container for content sections with background image */
.tag-content-section {
    flex-basis: 100%;
    position: relative;
}

p.tag-content-article {
    position: relative;
    width: auto;
    width: 90vw;
    margin-left: 5vw;
}
/* Title styling */
.tag-content-title {
    position: absolute;
    top: 5vh;
    left: 0;
    color: white;
    font-size: 1.5em;
    background: rgba(100, 100, 100, 0.7);
    padding: 1.5vh 5vh 1.5vh 8vh;
    margin: 0; /* Remove default margin */
    box-sizing: border-box;
}

/* Description styling */
.tag-content-section .tag-content-description {
    position: relative;
    padding: 1em;
    margin-top: 1em; /* Optional spacing from image */
    font-size: 1em;
    line-height: 1.5;
    color: #333;
}

.tag-content-section img {
    width: 100vw;
    height: 24vh;
    object-fit: cover;
    display: block;
}

/* Media Queries */
@media (max-width: 600px) {
    .grid-container, .card-container {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .card {
        margin: 10px;
        height: auto;
       width: auto;
       max-width: 95vh;
    }
    .card-content h2 {
        font-size: 1em !important; /* Adjust font size */
    }
    .card-content p {
        font-size: .8em !important; /* Adjust font size */
    }
    .secondary_header {
        display: none;
    }
    header h1 {
        font-size: 1.5em; /* Adjust for smaller screens */
    }
    header p {
        font-size: 1em; /* Adjust size */
    }
    nav a {
        font-size: .8rem; /* Adjust font size */
        padding: .5rem .5rem;
    }
    .article-container .article-body img {
	display: block;
	max-width: 100%;
    }
    .hide-when-small {
       display: none;
    }
    .show-when-small {
       display: block;
    }
    .card img {
       height: auto;
    }
    .vertical-ad {
       display: none;
    }
    .horizontal-ad {
       display: block;
    }
}

@media (min-width: 601px) and (max-width: 768px) {
    .content {
       overflow-x: hidden;
       overflow-y: scroll;
       margin-bottom: 50px;
     }
    .grid-container {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .card {
        margin: 10px;
        width: auto;
	max-width: 95vw;
        height: auto;
    }
    .card img { 
	    height: auto;
    }

    header h1 {
        font-size: 2em;
    }

    header p {
        font-size: 1.1em;
    }

    nav a {
        font-size: 0.8rem; /* Adjust font size */
        padding: 1rem 1rem;
    }

    .card-content h2 {
        font-size: 1.2em !important; /* Adjust font size */
    }

    .card-content p {
        font-size: 1em !important; /* Adjust font size */
    }

    .ad-container {
         margin-left: 0; /* Reset margin */
         margin-top: 20px; /* Add space above the ad */
         width: 100%; /* Full width for horizontal ad */
         padding: 10px;
     }

  .vertical-ad {
    display: none; /* Hide vertical ad */
    max-width: 100%;
  }

  .horizontal-ad {
    display: block; /* Show horizontal ad */
  }
  .hide-when-small {
	  display: none;
  }
  .show-when-small {
	  display: block;
  }
}

@media (min-width: 769px) and (max-width: 1000px) {
  .grid-container {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
   }
    header h1 {
        font-size: 2.5em;
    }

    header p {
        font-size: 1.2em;
    }

    nav a {
        font-size: .8rem; /* Adjust font size */
        padding: 1rem 1.2rem;
    }
}

@media (min-width: 1001px) {
    header h1 {
        font-size: 2.5em;
    }

    header p {
        font-size: 1.2em;
    }

    nav a {
        font-size: 1em;
        padding: 1rem 1.5rem;
    }
}

