Mẫu Lading Page Hotel Responsive

hotel landing page
<!DOCTYPE html>
<html lang="vi">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Hotel Web Page</title>
    <link rel="stylesheet" href="style.css" />
    <link
      rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
    />
  </head>
  <body>
    <nav>
      <div class="nav-logo">Center</div>
      <ul class="nav-links">
        <li><a href="#" class="link">Home</a></li>
        <li><a href="#" class="link">Book</a></li>
        <li><a href="#" class="link">Blog</a></li>
        <li><a href="#" class="link">Contact Us</a></li>
      </ul>
    </nav>

    <section class="section-container header-container">
      <div class="header-image-container">
        <div class="header-content">
          <h1 class="reveal">Lorem ipsum dolor sit amet.</h1>
          <p class="reveal">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laboriosam,
            at.
          </p>
        </div>
        <div class="booking-container">
          <form>
            <div class="form-group reveal">
              <div class="input-group">
                <input type="text" />
                <label>Location</label>
              </div>
              <p>Where are you going?</p>
            </div>
            <div class="form-group reveal">
              <div class="input-group">
                <input type="text" />
                <label>Check In</label>
              </div>
              <p>Add date</p>
            </div>
            <div class="form-group reveal">
              <div class="input-group">
                <input type="text" />
                <label>Check Out</label>
              </div>
              <p>Add date</p>
            </div>
            <div class="form-group reveal">
              <div class="input-group">
                <input type="text" />
                <label>Guests</label>
              </div>
              <p>Add guests</p>
            </div>
          </form>
          <button class="btn reveal">
            <i class="fa-solid fa-magnifying-glass"></i>
          </button>
        </div>
      </div>
    </section>

    <section class="section-container popular-container">
      <h2 class="section-header reveal">Lorem Ipsum</h2>
      <div class="popular-grid">
        <div class="popular-card reveal">
          <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="popular hotel" />
          <div class="popular-content">
            <div class="popular-card-header">
              <h4>The Plaza Hotel</h4>
              <h4>$599</h4>
            </div>
            <p>Viet Nam</p>
          </div>
        </div>
        <div class="popular-card reveal">
          <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="popular hotel" />
          <div class="popular-content">
            <div class="popular-card-header">
              <h4>The Plaza Hotel</h4>
              <h4>$599</h4>
            </div>
            <p>New York City, USA</p>
          </div>
        </div>
        <div class="popular-card reveal">
          <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="popular hotel" />
          <div class="popular-content">
            <div class="popular-card-header">
              <h4>The Plaza Hotel</h4>
              <h4>$599</h4>
            </div>
            <p>New York City, USA</p>
          </div>
        </div>
        <div class="popular-card reveal">
          <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="popular hotel" />
          <div class="popular-content">
            <div class="popular-card-header">
              <h4>The Plaza Hotel</h4>
              <h4>$599</h4>
            </div>
            <p>New York City, USA</p>
          </div>
        </div>
        <div class="popular-card reveal">
          <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="popular hotel" />
          <div class="popular-content">
            <div class="popular-card-header">
              <h4>The Plaza Hotel</h4>
              <h4>$599</h4>
            </div>
            <p>New York City, USA</p>
          </div>
        </div>
        <div class="popular-card reveal">
          <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="popular hotel" />
          <div class="popular-content">
            <div class="popular-card-header">
              <h4>The Plaza Hotel</h4>
              <h4>$599</h4>
            </div>
            <p>New York City, USA</p>
          </div>
        </div>
      </div>
    </section>

    <section class="client">
      <div class="section-container client-container">
        <h2 class="section-header reveal">What our client say</h2>
        <div class="client-grid">
          <div class="client-card reveal">
            <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="client" />
            <p>
              Lorem ipsum dolor, sit amet consectetur adipisicing elit. Commodi
              aliquam quisquam asperiores ad recusandae architecto ratione
            </p>
          </div>
          <div class="client-card reveal">
            <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="client" />
            <p>
              Lorem ipsum dolor, sit amet consectetur adipisicing elit. Commodi
              aliquam quisquam asperiores ad recusandae architecto ratione
            </p>
          </div>
          <div class="client-card reveal">
            <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="client" />
            <p>
              Lorem ipsum dolor, sit amet consectetur adipisicing elit. Commodi
              aliquam quisquam asperiores ad recusandae architecto ratione
            </p>
          </div>
          <div class="client-card reveal">
            <img src="https://center.io.vn/wp-content/uploads/2024/09/coVN.png" alt="client" />
            <p>
              Lorem ipsum dolor, sit amet consectetur adipisicing elit. Commodi
              aliquam quisquam asperiores ad recusandae architecto ratione
            </p>
          </div>
        </div>
      </div>
    </section>

    <section class="section-container reveal">
      <div class="reward-container">
        <p>Lorem ipsum dolor sit.</p>
        <h4>
          Lorem ipsum dolor, sit amet consectetur adipisicing elit. Placeat, id!
        </h4>
        <button class="reward-btn">Join Rewards</button>
      </div>
    </section>

    <footer class="footer">
      <div class="section-container footer-container">
        <div class="footer-col">
          <h3>Lorem</h3>
          <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit.
            Eius,expedita! Doloremque facilis hic veritatis ea quisquam nesciunt
            quos, ipsa ex!
          </p>
          <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias
            impedit rerum molestiae fugit dignissimos ipsam ab veritatis dolor
            deserunt eaque?
          </p>
        </div>
        <div class="footer-col">
          <h4>Company</h4>
          <ul>
            <li><a href="#">About Us</a></li>
            <li><a href="#">Our Team</a></li>
            <li><a href="#">Blog</a></li>
            <li><a href="#">Book</a></li>
            <li><a href="#">Contact Us</a></li>
          </ul>
        </div>
        <div class="footer-col">
          <h4>Legal</h4>
          <ul>
            <li><a href="#">FAQs</a></li>
            <li><a href="#">Terms & Conditions</a></li>
            <li><a href="#">Privacy Policy</a></li>
          </ul>
        </div>
        <div class="footer-col">
          <h4>Resources</h4>
          <ul>
            <li><a href="#">Social Media</a></li>
            <li><a href="#">Help Center</a></li>
            <li><a href="#">Partnerships</a></li>
          </ul>
        </div>
      </div>
      <div class="footer-bar">
        <p>Copyright &copy; 2024. All rights reseved</p>
      </div>
    </footer>

    <script src="script.js"></script>
  </body>
</html>
<style>
    @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

* {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
     font-family: Poppins;
     transition: .3s;
}
:root {
     --primary-color: #2c3855;
     --primary-color-dark: #435681;
     --text-dark: #333333;
     --text-light: #767268;
     --extra-light: #f3f4f6;
     --white: #fff;
     --max-width: 1200px
}
a {
     text-decoration: none;
}
img {
     width: 100%;
}
nav {
     max-width: var(--max-width);
     position: fixed;
     z-index: 1;
     left: 50%;
     transform: translateX(-50%);
     padding: 1rem 2rem;
     display: flex;
     justify-content: space-between;
     align-items: center;
     background: var(--white);
     width: 95%;
     top: 1rem;
     box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.2);
     border-radius: 1rem;
}
nav .nav-logo {
     font-size: 1.5rem;
     font-weight: 800;
     color: var(--text-dark);
}
nav .nav-links {
     list-style: none;
     display: flex;
     align-items: center;
     gap: 2rem;
}
nav .nav-links .link {
     font-weight: 600;
     color: var(--text-light);
     transition: .3s;
}
nav .nav-links .link:hover {
     color: var(--primary-color);
}
.section-container {
     max-width: var(--max-width);
     margin: auto;
     padding: 5rem 1rem;
}
.section-header {
     font-size: 2rem;
     font-weight: 600;
     color: var(--text-dark);
     text-align: center;
}
.header-container {
     padding-top: 7rem;
}
.header-image-container {
     position: relative;
     min-height: 500px;
     background-image: linear-gradient(to right, rgba(44, 56, 85, 0.9), rgba(100, 125, 187, 0.1)), url(https://dynamic-media-cdn.tripadvisor.com/media/photo-o/0d/22/19/f8/swimming-pool.jpg);
     background-position: center;
     background-size: cover;
     background-repeat: no-repeat;
     border-radius: 2rem;
}
.header-image-container .header-content {
     max-width: 600px;
     padding: 5rem 2rem;
}
.header-image-container .header-content h1 {
     margin-bottom: 1rem;
     font-size: 3rem;
     line-height: 4rem;
     font-weight: 600;
     color: var(--white);
}
.header-image-container .header-content p {
     color: var(--extra-light);
}
.header-image-container .booking-container {
     position: absolute;
     bottom: -5rem;
     left: 50%;
     transform: translateX(-50%);
     width: calc(100% - 6rem);
     display: flex;
     align-items: center;
     gap: 1rem;
     padding: 3rem 2rem;
     background: rgba(255, 255, 255, 0.7);
     -webkit-backdrop-filter: blur(10px);
     backdrop-filter: blur(10px);
     box-shadow: 5px 5px 30px rgba(0, 0, 0, 0.2);
     border-radius: 2rem;
}
.header-image-container .booking-container form {
     width: 100%;
     flex: 1;
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 1rem;
}
.header-image-container .booking-container form .form-group .input-group {
     position: relative;
     width: 100%;
}
.header-image-container .booking-container form .form-group .input-group input {
     width: 100%;
     padding: 10px 0;
     font-size: 1rem;
     border: none;
     outline: none;
     background: transparent;
     border-bottom: 1px solid var(--primary-color);
     color: var(--text-dark);
}
.header-image-container .booking-container form .form-group .input-group label {
     position: absolute;
     top: 50%;
     left: 0;
     transform: translateY(-50%);
     font-size: 1.2rem;
     font-weight: 500;
     color: var(--text-dark);
     pointer-events: none;
     transition: .5s;
}
.header-image-container .booking-container form .form-group .input-group input:focus ~ label{
     font-size: 0.8rem;
     top: 0;
}
.header-image-container .booking-container form .form-group p {
     margin-top: 0.5rem;
     font-size: 0.8rem;
     color: var(--text-light);
}
.header-image-container .booking-container .btn {
     width: 50px;
     height: 50px;
     outline: none;
     border: none;
     font-size: 1.5rem;
     color: var(--white);
     background: var(--primary-color);
     border-radius: 50%;
     cursor: pointer;
     transition: .5s;
}
.header-image-container .booking-container .btn:hover {
     background: var(--primary-color-dark);
}
.popular-grid {
     margin-top: 4rem;
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 2rem;
}
.popular-grid .popular-card {
     overflow: hidden;
     border-radius: 1rem;
     box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.2);
     border: 1px solid rgba(0, 0, 0, 0.1);
     transition: .5s;
}
.popular-grid .popular-card:hover {
     box-shadow: none;
}
.popular-grid .popular-card .popular-content {
     padding: 1rem;
}
.popular-grid .popular-card .popular-content .popular-card-header {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 1rem;
     margin-bottom: 0.5rem;
}
.popular-grid .popular-card .popular-content .popular-card-header h4 {
     font-size: 1.2rem;
     font-weight: 600;
     color: var(--text-dark);
}
.client {
     background: var(--extra-light);
}
.client .client-grid {
     margin-top: 4rem;
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 2rem;
}
.client .client-grid .client-card {
     padding: 2rem;
     background: var(--white);
     border-radius: 1rem;
     box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.2);
     border: 1px solid rgba(0, 0, 0, 0.1);

     transition: .5s;
}
.client .client-grid .client-card:hover {
     box-shadow: none;
}
.client .client-grid .client-card img {
     max-width: 80px;
     margin: 0 auto;
     margin-bottom: 1rem;
     border-radius: 50%;
}
.client .client-grid .client-card p {
     color: var(--text-dark);
}
.reward-container {
     padding: 2rem;
     text-align: center;
     border-radius: 2rem;
     box-shadow: 5px 5px 30px rgba(0, 0, 0, 0.2);
}
.reward-container p {
     margin-bottom: 1rem;
     font-weight: 600;
     color: var(--text-light);
}
.reward-container h4 {
     max-width: 500px;
     margin: auto;
     margin-bottom: 1rem;
     font-size: 1.5rem;
     font-weight: 600;
     color: var(--text-dark);
}
.reward-container .reward-btn {
     padding: 1rem 3rem;
     outline: none;
     border: none;
     font-size: 1rem;
     color: var(--white);
     background: var(--primary-color);
     border-radius: 1rem;
     cursor: pointer;
     transition: .5s;
}
.reward-container .reward-btn:hover {
     background: var(--primary-color-dark);
}
.footer {
     background: var(--extra-light);
}
.footer-container {
     display: grid;
     grid-template-columns: repeat(4,1fr);
     gap: 5rem;
}
.footer-col h3,
.footer-col h4 {
     margin-bottom: 1rem;
     font-size: 1.5rem;
     font-weight: 600;
     color: var(--text-dark);
}
.footer-col h4 {
     font-size: 1.2rem;
}
.footer-col p {
     margin-bottom: 1rem;
     color: var(--text-light);
}
.footer-col ul {
     list-style: none;
}
.footer-col ul li {
     margin-bottom: 1rem;
     font-size: 1rem;
}
.footer-col ul li a {
     color: var(--text-light);
}
.footer-col ul li a:hover {
     color: var(--text-dark);
     text-decoration: underline;
}
.footer-bar {
     position: relative;
     max-width: var(--max-width);
     margin: auto;
     padding: 1rem;
     font-size: 0.9rem;
     font-weight: 500;
     color: var(--text-light);
     text-align: center;
} 

@media (width<900px) {
     .header-image-container .booking-container form {
          grid-template-columns: repeat(2, 1fr);
      }
      .popular-grid {
          grid-template-columns: repeat(2, 1fr);
      }
      .client .client-grid {
          grid-template-columns: repeat(2, 1fr);
      }
      .footer-container {
          grid-template-columns: repeat(2,1fr);
      }
}
@media (width<600px) {
     nav .nav-links {
          display: none;
     }
     .header-container {
          padding-bottom: 25rem;
     }
     .header-image-container .booking-container {
          flex-direction: column;
          bottom: -25rem;
      }
      .header-image-container .booking-container form {
          grid-template-columns: repeat(1, 1fr);
      }
      .popular-grid {
          grid-template-columns: repeat(1, 1fr);
      }
      .client .client-grid {
          grid-template-columns: repeat(1, 1fr);
      }
      .footer-container {
          grid-template-columns: repeat(1,1fr);
      }
}


.reveal {
     position: relative;
     transform: translateY(100px);
     opacity: 0;
     transition: 2s ease;
     transition-property: transform, opacity;
}
.reveal.active {
     transform: translateY(0px);
     opacity: 1;
    }</style>
<script>const sections = document.querySelectorAll("section");

sections.forEach((section) => {
  window.addEventListener("load", eventListener);
  window.addEventListener("scroll", eventListener);

  function eventListener() {
    let windowHeight = window.innerHeight;
    let sectionRectTop = section.getBoundingClientRect().top;

    if (sectionRectTop < windowHeight) {
      section.classList.add("active");
    }
  }

    window.addEventListener("scroll", () => {
      let reveals = section.querySelectorAll(".reveal");

      reveals.forEach((reveal, index) => {
        if (section.classList.contains("active")) {
          const delay = 600;

          setTimeout(() => {
            reveal.classList.add("active");
          }, index * delay);
        }
      });
    });

  window.addEventListener("scroll", () => {
    reveals.forEach((reveal, index) => {
      let windowHeight = window.innerHeight;
      let revealRectTop = reveal.getBoundingClientRect().top;
      let revealPoint = -250;

      if (revealRectTop < windowHeight - revealPoint) {
        const delay = 600;

        setTimeout(() => {
          reveal.classList.add("active");
        }, index * delay);
      }
    });
  });

  window.addEventListener("load", () => {
    let reveals = section.querySelectorAll(".reveal");

    reveals.forEach((reveal, index) => {
      let windowHeight = window.innerHeight;
      let revealRectTop = reveal.getBoundingClientRect().top;

      if (revealRectTop < windowHeight) {
        const delay = 600;

        setTimeout(() => {
          reveal.classList.add("active");
        }, index * delay);
      }
    });
  });
});</script>