@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Inter:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/* Color Variables */
:root {
  --color-bg: #f8f6f3;
  --color-black: #1a1a1a;
  --color-black-solid: #000;
  --color-dark-blue: #1f526f;
  --color-white: #ffff;
  --color-grey: #636363;
  --color-gradient-black: rgba(0, 0, 0, 0.905);
  --color-gradient-light: rgba(16, 15, 15, 0.137);
  --color-navbar-bg: rgba(0, 0, 0, 0.85);
  --color-pagination: #525252;
}

/* General Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  background-color: var(--color-bg);
  overflow-x: hidden;
}
section {
  padding: 4rem 0 5rem;
}
p {
  font-size: 1rem;
}
p,
h2,
h3,
h4,
h5,
a,
.btn {
  font-family: 'Inter', sans-serif;
  margin-bottom: 0;
  word-break: break-word;
}
a {
  text-decoration: none;
  color: #35c0ca;
  transition: all 0.2s ease-in;
}
a:hover{
  cursor: pointer;
}
.btn {
    padding: 8px 16px !important;
  border-radius: 0;
}
.book-arrow {
  vertical-align: middle;
  margin-left: 10px;
}
.material-symbols-outlined {
  font-size: 1rem;
  vertical-align: middle;
}
/* Navbar */
.navbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: transparent;
  transition: background-color 0.4s ease;
  color: var(--color-white);
  border-bottom: none;
}
.terms-page .navbar a.nav-link,
.privacy-page .navbar a.nav-link {
  color: var(--color-black);
}
.navbar-logo img {
  height: 40px;
  user-select: none;
}
.navbar-menu {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}
a.nav-link {
  color: var(--color-white);
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.25rem 0.5rem;
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  font-family: "Montserrat", 'Sans-Serif';
}
.navbar {
  transition: background-color 0.3s ease;
}
.navbar.menu-open {
  background-color: var(--color-navbar-bg);
}
.navbar-collapse.show .nav-link,
.navbar-collapse.collapsing .nav-link {
  justify-content: end;
}

/* Hero Section */
.homepage .hero-section {
  background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(91, 91, 91, 0.39)), url('../assets/homepage/aria-homepage-header.webp') center/cover no-repeat;
}
.hotel-stay-page .hero-section {
  background: linear-gradient(90deg,rgba(43, 43, 43, 0.72) 40%, rgba(237, 221, 83, 0) 100%), url('../assets/hotel-page/hotels-header.jpg') center/cover no-repeat;
}
.restaurants-page .hero-section {
  background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(91, 91, 91, 0.39)), url('../assets/dining-page/how-to-redeem.jpg') center/cover no-repeat;
}
.contact-us .hero-section {
  background: linear-gradient(90deg,rgba(43, 43, 43, 0.72) 40%, rgba(237, 221, 83, 0) 100%), url('../assets/Contact-Us.jpg') center/cover no-repeat;
}
.hero-section {
  padding-top: 160px;
  height: 80vh; 
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  color: var(--color-white);
  display: flex;
  justify-content: center;
  flex-direction: column;
}
.hero-section h1 {
  line-height: 0.8em;
  font-size: clamp(2rem, 8vw, 5rem);
  font-family: "Montserrat", 'Sans-Serif';
  font-weight: 400;

}
.hero-section p {
  font-size: clamp(2rem, 4vw, 3rem); /* smaller subtext */
}
/* Product Boxes */
.product-box {
  position: relative;
  overflow: hidden;
}
.product-box img {
  width: 100%;
  display: block;
  transition: transform 0.3s ease;
}
.box-text {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  color: var(--color-white);
  z-index: 2;
}
.box-text-bottom {
  padding: 1rem;
  color: var(--color-white);
  background-color: var(--color-black);
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* pushes button to bottom */
}
.box-text-bottom p {
  margin: 0;
}
.box-text-bottom a,
.box-text a {
  z-index: 20;
  color: var(--color-white);
}
.product-box::after {
  content: '';
  position: absolute;
  inset: 0;
  /* background: linear-gradient(to top, var(--color-gradient-black), var(--color-gradient-light)); */
  z-index: 1;
  transition: background 0.3s ease;
}
.hotelCarousel .product-box::after {
  background: transparent;
}
.redemption-text {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.redemption-text p {
  font-size: 1rem;
}
.redemption-text h3 {
  font-weight: 700;
  margin-bottom: 24px;
}
.box-text small, .full-cta small {
  color: #fefefea3;
  font-size: 0.8rem;
}

/* Dining CTA Section */
.full-cta {
  background: linear-gradient(90deg, rgba(43, 43, 43, 1) 0%, rgba(237, 221, 83, 0) 100%), url('../assets/dining-page/restaurants-downloadvoucher.jpg') no-repeat;
  background-size: cover;
  background-position: center;
}
.homepage .full-cta {
  background: linear-gradient(90deg, rgb(0 0 0 / 87%) 0%, rgba(237, 221, 83, 0) 100%), url(../assets/dine-around-cta-2.jpg) no-repeat;
    background-position: right;
}
.full-cta h2 {
  font-size: 5rem;
  font-family: 'wayfinder-cf';
  font-weight: 200;
  color: var(--color-white);
}
.cta-white.btn {
  background-color: var(--color-white);
}
.btn-blue{
  background-color: var(--color-dark-blue);
  color: white;
}
/* Benefits Section */
.rounded-number {
  background: var(--color-black);
  color: var(--color-white);
  border-radius: 50%;
  padding: 0.5rem;
  max-width: 50px;
  font-size: 20px;
}
.steps {
  margin-top: -90px;
  padding-top: 100px;
}
.steps-img {
  position: relative;
  max-width: 250px;
  z-index: 2;
}
.rewards-section {
  background-color: #36bfc9;
}
.voucher-subsection .btn {
  background-color: var(--color-black);
}
.benefits-phone {
  max-width: 400px;
  top: 25px;
  position: absolute;
}

/* Swiper/Carousel */
.swiper-slide {
  height: auto;
}
.mainCarousel .swiper-slide .row.swiper-row{
    padding: 0rem 3rem 3rem;
}
.homepage .swiper-button-next, .homepage .swiper-button-prev{
  top: var(--swiper-navigation-top-offset, 0);
  height: 100%;
}
.carousel-container .row .carousel-border {
  border: 1px var(--color-black-solid) solid;
  padding: 2rem;
}
.carousel-container .carousel-border {
  border: 1px solid var(--color-black-solid);
}
.carousel-container .carousel-border:first-child {
  border-right: none;
}
.carousel-container .carousel-border:last-child {
  border-left: none;
}
.swiper-button-next:after, .swiper-button-prev:after {
      font-size: 20px;
  }
.swiper-pagination-bullet {
  width: 40px;
  height: 4px;
  background-color: var(--color-black-solid);
  border-radius: 0;
  opacity: 0.3;
  transition: all 0.3s ease;
  margin: 0 6px;
}
.swiper-button-next,
.swiper-button-prev {
  color: var(--color-pagination);
}
.swiper-pagination-bullet-active {
  opacity: 1;
  background-color: var(--color-black-solid);
}
.swiper-pagination {
  position: absolute;
  bottom: -30px;
  left: 0;
  right: 0;
  text-align: center;
}

/* Footer */
footer,
footer a {
  background-color: var(--color-black);
  color: var(--color-white);
}
footer .text-muted {
  margin-top: 0.5rem;
  color: var(--color-grey) !important;
}

/* Hover Styles */
.btn:hover{
  transition: all 0.3s ease;
  background-color: var(--color-dark-blue);
  color: var(--color-white);
}
.btn-blue:hover {
  transition: all 0.3s ease;
  background-color: var(--color-bg);
  color: var(--color-black);
  box-shadow: #00000021 0px 3px 5px 0px;
}
.product-box:hover img {
  transform: scale(1.05);
}
.restaurants-page:hover img {
  transform: none;
}
a.nav-link:hover,
.terms-page .navbar a.nav-link:hover,
footer a:hover,
.box-text a:hover,
.box-text-bottom a:hover {
  color: #cfcfcf;
}

/* privacy styles */
.privacy-page .container-xl .row .col-12.col-md-6 p,
.privacy-page .container-xl .row .col-12.col-md-6 li {
  font-size: 16px;
}
.privacy-page p {
  margin-bottom: 1rem;
}
.privacy-page li {
  margin-bottom: 0.5rem;
}
/* Media Queries */
@media (max-width: 767px) {
  .navbar {
    flex-direction: column;
    align-items: center;
    border-bottom: none;
  }
  .navbar-logo {
    margin-bottom: 1rem;
  }
  .navbar-menu {
    flex-direction: column;
    gap: 0.8rem;
  }
  .navbar-menu a {
    padding: 0.5rem 1rem;
    font-size: 1.1rem;
  }
  .navbar-menu a:not(:last-child)::after {
    display: none;
  }
  .carousel-container .carousel-border {
    border-left: 1px solid var(--color-black-solid);
    border-right: 1px solid var(--color-black-solid);
    border-top: 1px solid var(--color-black-solid);
    border-bottom: 1px solid var(--color-black-solid);
  }
  .carousel-container .carousel-border:first-child {
    border-bottom: none;
    border-right: 1px solid var(--color-black-solid);
    border-left: 1px solid var(--color-black-solid);
    border-top: 1px solid var(--color-black-solid);
  }
  .carousel-container .carousel-border:last-child {
    border-top: none;
    border-right: 1px solid var(--color-black-solid);
    border-left: 1px solid var(--color-black-solid);
    border-bottom: 1px solid var(--color-black-solid);
  }
}
@media (max-width: 992px) {
  .benefits-phone {
    position: static;
    max-width: 250px;
  }
}
.transition-bg {
  transition: background-color 0.3s ease;
}
.transition-bg.menu-open {
  background-color: var(--color-navbar-bg);
}
@media (min-width: 768px) {
    .mainCarousel img{
        object-fit: cover;
    }
    .transition-bg.menu-open {
        background-color: transparent;
      }
  .swiper-button-next:after, .swiper-button-prev:after {
        font-size: 33px ;
    }
    .carousel-container.swiper-slide .row{
        min-height: 290px;
    }
}
@media (max-width: 767.98px) {
  .mobile-nav {
    background-color: transparent /* or any color you want */
    padding: 1rem;
    border-radius: 0.5rem; /* optional */
  }
  .full-cta h2 {
    font-size: 2.2rem;
    color: var(--color-white);
  }
  /* .box-text-bottom a{
      font-size: 10px;
  }
   .box-text-bottom .material-symbols-outlined {
    font-size: 18px;
   }
    .box-text-bottom h5 {
      font-size: 1rem;
  } */

}
@media (min-width: 768px) and (max-width: 1163px) {
  .box-text-bottom {
    min-height: 150px;
  }
}

.arrow-down {
    position: absolute;
    width: 100%;
    display: flex;
    justify-content: center;
    bottom: 200px;
}
.arrow-down span{
    color: #ffffff78;
    font-size: 90px;
    transition: all 0.3 ease-in;
}.arrow-down span:hover{
    color: var(--color-white);
}