.fade-in {
  opacity: 0;
  animation: fadeIn 1s ease forwards;
}

@keyframes fadeIn {
  to { opacity: 1; }
}


    /* ---------- STORY (center for tablets & mobile-landscape) ---------- */
    /* default: keep desktop behavior (start/left) */
    #story .grid-container {
      justify-items: start;
    }

    /* tablets (iPad) and smaller desktops up to 1024px: center everything in the grid */
    @media (max-width: 1024px) {
      #story .grid-container {
        justify-items: center;    /* center grid cell contents horizontally */
        text-align: center;       /* center text inside cells */
      }
      #story .story-text {
        max-width: 44rem;         /* avoid super-wide text columns */
      }
      #story .story-heading {
        font-size: clamp(2rem, 6vw, 4.5rem); /* responsive heading to avoid overflow */
        overflow-wrap: break-word;
        line-height: 1.02;
      }
      #story img {
        margin-left: auto;
        margin-right: auto;
        max-width: 420px;
        width: 80%;
        height: auto;
      }
    }

    /* mobile landscape (short viewport height) — tighten sizes */
    @media (max-height: 500px) and (orientation: landscape) {
      #story .grid-container {
        justify-items: center;
        align-items: center;
      }
      #story .story-heading {
        font-size: clamp(1.6rem, 8vw, 3.5rem);
      }
      #story img {
        width: 40vw;
        max-width: 360px;
      }
    }

    /* ---------- GALLERY MARQUEE (keep horizontal overflow but center when it fits) ---------- */
    /* Use overflow-x:auto so gallery remains scrollable/overflowing */
    #marqueeContainer {
      overflow-x: auto;                 /* allow horizontal scroll */
      -webkit-overflow-scrolling: touch;
    }

    /* marquee content: center items when content is narrower than viewport;
      keep min-width: max-content so items don't collapse (allows scrolling if wider) */
    #marqueeContent {
      display: flex;
      gap: 1.5rem;
      align-items: center;
      justify-content: center;   /* centers entire row when it fits the container */
      min-width: max-content;    /* keeps items in a single row and enables overflow if needed */
      padding: 1rem 1.25rem;
    }

    /* image sizing: fixed flex item so it doesn't shrink unexpectedly */
    #marqueeContent img {
      flex: 0 0 auto;
      width: 16rem;
      height: 10rem;
      object-fit: cover;
      border-radius: .5rem;
      box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    }

    /* iPad-specific sizing */
    @media (min-width: 768px) and (max-width: 1024px) {
      #marqueeContent img { width: 30vw; height: auto; }
    }

    /* mobile landscape tweak */
    @media (max-height: 500px) and (orientation: landscape) {
      #marqueeContent img { width: 40vw; height: auto; }
    }

.faq-section {
  background-color: #f9f6f2;
  padding: 4rem 2rem;
  font-family: 'Georgia', serif;
  color: #3e2f1c;
  text-align: center;
}

.faq-header h2 {
  font-size: 3rem;
  font-weight: normal;
  color: #bfae9f;
  margin-bottom: 0.2rem;
  letter-spacing: 2px;
}

.faq-header h3 {
  font-size: 1.2rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #3e2f1c;
  margin-bottom: 2rem;
}

.faq-list {
  max-width: 600px;
  margin: 0 auto;
  text-align: left;
}

.faq-item {
  background-color: #d8c4b0;
  border-radius: 25px;
  margin-bottom: 1rem;
  padding: 0.5rem 1.0rem;
  transition: background-color 0.3s ease;
}

.faq-item.active {
  background-color: #f1e7dd;
}

.faq-question {
  background: none;
  border: none;
  font-size: 0.8rem;
  padding: 0.4rem 0;
  font-weight: bold;
  width: 100%;
  text-align: left;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Gantari', serif;
  color: #3e2f1c;
}

.toggle-icon {
  background-color: #fff;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: 1.2rem;
  line-height: 24px;
  text-align: center;
  color: #555;
  font-weight: bold;
}

.faq-answer {
  margin-top: 0.75rem;
  font-size: 0.8rem;
  color: #5a4632;
  display: none;
  font-family: 'Assistant', serif;
}

.faq-item.active .faq-answer {
  display: block;
}

.faq-title-image {
  max-width: 35%;
  height: auto;
  margin: 0 auto 2rem;
  display: block;
}

@media (max-width: 768px) {
  .faq-title-image {
    width: 350px;
    max-width: 100%;
    margin-bottom: 1.5rem;
  }
  #home {
    background-position: center 40%;
    background-size: contain;
  }
  #gifts {
    background-position: 37% center; /* Adjust this value as needed */
  }

  #gift-message {
    justify-content: center;
    align-items: flex-start; /* Align to top */
    padding-top: 5rem;       /* Add spacing from top */
    height: 100vh;
  }

  #gift-message > div {
    text-align: center;
    opacity: 80%;
    width: 100%;
    max-width: 320px;
  }

  #gift-message > div h2 {
    font-size: 2.0rem; /* Adjust heading size */
    margin-bottom: 1.0rem;
  }

  #gift-message > div p {
    font-size: 1.0rem; /* Adjust paragraph size */
    margin-bottom: 0.2rem;
  }
}

@media (max-width: 600px) {
  .faq-section {
    padding: 2rem 1rem;
  }

  .faq-question {
    font-size: 0.9rem;
    font-family: 'Gantari', serif;
  }

  .faq-answer {
    font-size: 0.85rem;
    font-family: 'Assistant', serif;
  }

  .faq-item {
    padding: 0.5rem 1rem;
  }

   .faq-title-image {
    max-width: 70%;
    margin-bottom: 1.5rem;
  }

  .toggle-icon {
    font-size: 1.2rem;         /* Adjust size for visibility */
    width: 1.5rem;              /* Fixed width to prevent stretching */
    height: 1.5rem;             /* Fixed height to match width */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;    
  }
}

@media (max-width: 950px) and (max-height: 400px) {
  #gifts {
    background-position: center center;   /* Center the image horizontally and vertically */
    background-size: cover;               /* Ensure full coverage without distortion */
  }
  
  #gift-message {
    justify-content: flex-end;
    align-items: flex-start;
    padding-top: 1.5rem;
    padding-right: 0.5rem;
    height: auto;
    min-height: 65vh;
  }

  #gift-message > div {
    width: 220px;
    padding: 0.5rem;
    margin-right: 3.0rem;
    text-align: center;
  }

  #gift-message img {
    width: 3rem;
    height: 3rem;
    margin-bottom: 0.5rem;
  }

  #gift-message h2 {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
  }

  #gift-message p {
    font-size: 0.75rem;
    margin-bottom: 0.15rem;
  }
}

footer p {
  font-family: 'Georgia', serif; /* Elegant serif font */
  font-size: 0.6rem;               /* Adjust size as needed */
  font-weight: 400;              /* Normal weight */
  line-height: 1.6;              /* Comfortable spacing */
  letter-spacing: 0.5px;         /* Slight spacing for readability */
}