* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
   background-color: #ffffff;
   color: #222222;
   line-height: 1.6;
   min-height: 100vh;
}

a {
   color: #5e0ff2;
   text-decoration: none;
}

a:hover,
a:focus {
   text-decoration: underline;
}

.site-header {
   width: 100%;
   margin-bottom: 30px;
}

.navbar {
   background-color: #000;
   padding: 15px 20px;
   display: flex;
   justify-content: space-between;
   align-items: center;
   box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
   position: sticky;
   top: 0;
   z-index: 1000;
}

.logo {
   font-weight: 700;
   font-size: 1.6rem;
   color: #fff;
   user-select: none;
}

.logo a {
   color: #fff;
   text-decoration: none;
}

.navbar ul {
   list-style: none;
   display: flex;
   gap: 20px;
   margin: 0;
   padding: 0;
}

.navbar ul li a {
   font-weight: 600;
   font-size: 1rem;
   padding: 6px 10px;
   border-radius: 4px;
   transition: background-color 0.3s ease;
   color: #fff;
   text-decoration: none;
}

.navbar ul li a:hover,
.navbar ul li a:focus {
   background-color: #fff;
   color: #000;
   outline: none;
}

.banner {
   width: 100%;
   height: 450px;
   background-image: url('img/Full-Moon-Party-Thailand.webp');
   background-size: cover;
   background-position: center center;
   display: flex;
   justify-content: center;
   align-items: center;
   position: relative;
   color: #ffffff;
   text-align: center;
   box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.4);
}

.banner-dates {
   height: 270px;
   background-image: url('img/Full-Moon-Party-Thailand-Dates.webp');
}

.banner-text h1 {
   font-size: 2.8rem;
   font-weight: 700;
   margin-bottom: 8px;
   text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7);
}

.banner-text p {
   font-size: 1.3rem;
   font-weight: 500;
   text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.7);
}

.next-party {
   padding: 20px;
   max-width: 400px;
   text-align: center;
   margin: 30px auto 0;
}

.next-party-label {
   font-size: 1rem;
   font-weight: bold;
   color: #fff;
   margin-bottom: 5px;
   text-transform: uppercase;
   letter-spacing: 1px;
}

.next-party-date {
   font-size: 1.2rem;
   color: #fff;
   font-weight: 600;
   margin-bottom: 15px;
}

.next-party-link {
   display: inline-block;
   background-color: #5e0ff2;
   color: #fff;
   padding: 8px 16px;
   border-radius: 20px;
   text-decoration: none;
   font-size: 0.95rem;
}

.next-party-link:hover {
   background-color: #f71180;
   text-decoration: none;
}

main {
   max-width: 900px;
   margin: 40px auto 60px;
   padding: 0 15px;
}

main section {
   margin-bottom: 50px;
}

main h2 {
   font-size: 1.9rem;
   color: #000;
   padding-bottom: 8px;
   margin-bottom: 18px;
   font-weight: 700;
}

main p {
   color: #333333;
   font-size: 1.1rem;
   margin-bottom: 15px;
}

main ul {
   list-style: inside disc;
   color: #555555;
   margin-left: 20px;
   margin-bottom: 15px;
}

main ul.dates-list {
   font-weight: 600;
   color: #005fa3;
}

em {
   color: #555555;
   font-style: italic;
}

.section-home {
   width: 100%;
   max-width: 900px;
   margin: 15px 0;
   border-radius: 8px;
}

footer {
   background-color: #000;
   text-align: center;
   padding: 20px 15px;
   font-size: 0.9rem;
   color: #fff;
   user-select: none;
   position: relative;
   bottom: 0;
   width: 100%;
}

@media (max-width: 768px) {
   .banner {
      background-image: url('img/Full-Moon-Party-Thailand-mobail.webp');
   }

   .banner-dates {
      background-image: url('img/Full-Moon-Party-Thailand-Dates.webp');
   }

   .navbar {
      flex-direction: column;
      gap: 10px;
   }

   .navbar ul {
      flex-direction: column;
      gap: 10px;
      align-items: center;
   }

   .banner-text {
      padding: 0 10px;
   }

   .banner-text h1 {
      font-size: 2rem;
      padding: 0 20px;
   }

   .banner-text p {
      font-size: 1rem;
   }

   main {
      margin: 30px auto 40px;
   }

   main h2 {
      font-size: 1.6rem;
   }

   main p,
   main ul {
      font-size: 1rem;
   }
}

@media (max-width: 400px) {

   .logo {
      font-size: 1.3rem;
   }

   .navbar ul li a {
      font-size: 0.9rem;
      padding: 5px 8px;
   }
}

.menu-toggle {
   display: none;
   font-size: 1.8rem;
   color: #fff;
   background: none;
   border: none;
   cursor: pointer;
}

.menu {
   display: flex;
}

@media (max-width: 768px) {
   .menu-toggle {
      display: block;
   }

   .menu {
      display: none;
      flex-direction: column;
      width: 100%;
   }

   .menu.open {
      display: flex;
   }

   .navbar ul {
      width: 100%;
      flex-direction: column;
      gap: 0;
   }

   .navbar ul li {
      width: 100%;
      text-align: center;
      border-top: 1px solid #333;
   }

   .navbar ul li a {
      display: block;
      padding: 10px;
   }

   .navbar-menu-toggle {
      display: flex;
      justify-content: space-between;
      width: 100%;
   }
}