body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  background-color: #f5e9e9;
}

main {
  flex: 1 0 auto;
}

.header-color {
  background-color: #626e60;
}

.brand-logo {
  margin-left: 10px;
  font-size: 2rem;
}

.card-image {
  height: 300px;
  overflow: hidden;
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-title {
  font-family: "Playfair Display", sans-serif;
}

.text-white {
  color: #fafafa;
}

:is(h1, h2, h3, h4, h5, h6) {
  font-family: "Lora", sans-serif;
}

nav,
footer {
  background-color: #8e5a5e;
  font-family: "Lora", sans-serif;
}

.page-footer {
  background-color: #8e5a5e;
}

/* Hero Section Container */
.hero {
  position: relative;
  height: 50vh; /* 50% of the viewport height */
  width: 100%;
  overflow: hidden;
}

/* Hero Image */
.hero-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* Ensures the image covers the area without distortion */
}

/* Overlay for Transparency */
.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, 0.4); /* 40% opaque black overlay */
}

/* Hero Content */
.hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #fafafa;
  padding-top: 15vh; /* Adjust to center the text vertically as needed */
}

.ethos-card-1,
.ethos-card-3 {
  background-color: #626e60;
  border-radius: 10px;
  border: 2px solid black;
}

.ethos-card-2 {
  background-color: #c0a997;
  border-radius: 10px;
  border: 2px solid black;
}

.home-heading {
  color: #8e5a5e;
}

.our-story {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 40px 0;
}

.story-content {
  flex: 1 1 50%;
  padding-right: 20px;
}

.story-image {
  flex: 1 1 40%;
  text-align: center;
}

.story-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px; /* optional: rounds the corners */
}

.account-card {
  background-color: #c0a997;
}

/* Responsive: Stack vertically on smaller screens */
@media (max-width: 768px) {
  .our-story {
    flex-direction: column;
    text-align: center;
  }
  .story-content,
  .story-image {
    flex: 1 1 100%;
    padding: 0;
  }
  .story-content {
    margin-bottom: 20px;
  }
}

p {
  font-family: "Playfair Display", sans-serif;
  font-size: 1.3rem;
  font-weight: 500;
}

.hero-image {
  border-radius: 10px;
}

.parallax-container {
  position: relative;
  height: 50vh; /* 50% of the viewport height on larger screens */
  overflow: hidden;
}

.parallax-container .parallax img {
  width: 100%;
  height: auto;
  object-fit: cover; /* Ensures the image covers the container */
}

.recipe-detail,
.create-recipe-container {
  margin-top: 50px;
  margin-bottom: 50px;
}

.recipe-author {
  font-size: 1.2rem;
  color: #c0a997;
}

/* Adjust container height on smaller screens */
@media (max-width: 768px) {
  .parallax-container {
    height: 30vh;
  }
}

.footer-text {
  font-size: 2rem;
}

.footer-icons {
  padding: 20px;
  font-size: 2rem;
}

.footer-icons a {
  margin-left: 15px;
}

.footer-icons a:first-child {
  margin-left: 0;
}

.delete-category-modal {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/* --- Global Media Queries for the Entire Project --- */

/* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {
  body {
    font-size: 0.9rem;
  }
  .container {
    margin-top: 20px;
    padding: 0 10px;
  }
  h1,
  h2,
  h3,
  .brand-logo {
    font-size: 1.5rem;
  }
  nav .brand-logo {
    font-size: 1.5rem;
  }
  p,
  .card-content p,
  .card-title,
  .secondary-content {
    font-size: 0.9rem;
  }
  .sub-heading {
    font-size: 1.1rem;
  }
  /* Recipe cards, hero images, and other image containers */
  .card-image {
    height: 150px !important;
  }
  /* Form elements on pages like Create Recipe and Add Category */
  .input-field input,
  .input-field label,
  .materialize-textarea,
  .file-path {
    font-size: 0.9rem;
  }
  /* Buttons (full-width on very small screens) */
  .btn {
    font-size: 0.9rem;
    width: 100%;
    margin: 10px;
  }
  /* Modals (e.g., deletion confirmation or flash message dialogs) */
  .modal {
    width: 90%;
    max-width: 400px;
  }
}

/* Small devices (landscape phones, 576px to 767.98px) */
@media (min-width: 576px) and (max-width: 767.98px) {
  body {
    font-size: 1rem;
  }
  .container {
    margin-top: 30px;
    padding: 0 15px;
  }
  h1,
  h2,
  h3,
  .brand-logo {
    font-size: 1.7rem;
  }
  p,
  .card-content p,
  .card-title,
  .secondary-content {
    font-size: 1rem;
  }
  .sub-heading {
    font-size: 1.3rem;
  }
  .card-image {
    height: 170px !important;
  }
  .input-field input,
  .input-field label,
  .materialize-textarea,
  .file-path {
    font-size: 1rem;
  }
  .btn {
    font-size: 1rem;
    width: auto;
  }
  .modal {
    width: 80%;
    max-width: 450px;
  }
}

/* Medium devices (tablets, 768px to 991.98px) */
@media (min-width: 768px) and (max-width: 991.98px) {
  body {
    font-size: 1rem;
  }
  .container {
    margin-top: 40px;
    padding: 0 20px;
  }
  h1,
  h2,
  h3,
  .brand-logo {
    font-size: 1.8rem;
  }
  p,
  .card-content p,
  .card-title,
  .secondary-content {
    font-size: 1.05rem;
  }
  .sub-heading {
    font-size: 1.3rem;
  }
  .card-image {
    height: 180px !important;
  }
  .input-field input,
  .input-field label,
  .materialize-textarea,
  .file-path {
    font-size: 1.05rem;
  }
  .btn {
    font-size: 1.05rem;
  }
  .modal {
    width: 70%;
    max-width: 500px;
  }
}

/* Large devices (desktops, 992px to 1199.98px) */
@media (min-width: 992px) and (max-width: 1199.98px) {
  body {
    font-size: 1.05rem;
  }
  .container {
    margin-top: 50px;
    padding: 0 20px;
  }
  h1,
  h2,
  h3,
  .brand-logo {
    font-size: 2rem;
  }
  p,
  .card-content p,
  .card-title,
  .secondary-content {
    font-size: 1.1rem;
  }
  .sub-heading {
    font-size: 1.4rem;
  }
  .card-image {
    height: 200px !important;
  }
  .input-field input,
  .input-field label,
  .materialize-textarea,
  .file-path {
    font-size: 1.1rem;
  }
  .btn {
    font-size: 1.1rem;
  }
  .modal {
    width: 60%;
    max-width: 550px;
  }
}

/* Extra large devices (1200px and up) */
@media (min-width: 1200px) {
  body {
    font-size: 1.1rem;
  }
  .container {
    margin-top: 60px;
    padding: 0 30px;
  }
  .card-title,
  .secondary-content {
    font-size: 1.7rem;
  }
  .card-image {
    height: 220px !important;
  }
  .input-field input,
  .input-field label,
  .materialize-textarea,
  .file-path {
    font-size: 1.2rem;
  }
  .btn {
    font-size: 1.2rem;
  }
  .modal {
    width: 50%;
    max-width: 600px;
  }
}
