/* Base styles & Typography */

/* Light and Dark modes */

/* :root {
  color-scheme: light dark;
}

body {
  background-color: light-dark(#fff, #000);
} */

/* Variables Typography and Button */

:root {
  --font-primary: "Montserrat", sans-serif;
  --font-secondary: "Yellowtail", cursive;
  --font-size-xxs: 0.8rem;
  --font-size-xs: 1rem;
  --font-size-sm: 1.2rem;
  --font-size-md: 1.6rem;
  --font-size-lg: 2.2rem;
  --font-size-xl: 2.8rem;
  --font-size-2xl: 3.6rem;
  --font-size-3xl: 4.8rem;
  --letter-spacing-xs: 0.1rem;
  --letter-spacing-s: 0.14rem;
  --button-padding-default-xs: 10px 20px;
  --button-padding-default-xs-fix: 11px 20px 10px 20px;
  --button-padding-default: 15px 30px;
}

html {
  scroll-behavior: smooth;
}

body {
  font: var(--font-size-sm) / 1.6 var(--font-primary);
}

/* Headings scale */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-primary);
  line-height: 1.2;
}

/* a,
a:visited,
a:hover,
a:active {
  color: inherit;
} */

button {
  font-family: var(--font-primary);
  line-height: 1;
  vertical-align: middle;
}

h1 {
  font-size: var(--font-size-3xl);
  font-weight: 700;
}

h2 {
  font-size: var(--font-size-2xl);
  font-weight: 700;
  line-height: 1.3;
}

h3 {
  font-size: var(--font-size-xl);
  font-weight: 600;
}

h4 {
  font-size: var(--font-size-lg);
  font-weight: 600;
}

h5 {
  font-size: var(--font-size-md);
  font-weight: 500;
}

h6 {
  font-size: var(--font-size-sm);
  font-weight: 500;
}

small {
  font-size: var(--font-size-xs);
}

/* Extras */

/* Coming Soon */

.grayout {
  opacity: 0.4;
}

.coming-soon {
  position: relative;
}

.coming-soon:hover::after {
  content: "Coming soon";
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: white;
  color: black;
  border: 1px solid black;
  padding: 4px 8px;
  font-size: 12px;
  white-space: nowrap;
  z-index: 10;
  margin-bottom: 5px;
  border-radius: 20px;
  opacity: 1 !important;
}

/* --- Reusable Disabled Link Component --- */

.link-disabled {
  cursor: not-allowed !important;
}

.grecaptcha-badge {
  visibility: hidden;
}

/* Contact FAB */
.contact-fab-container {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
}

.contact-fab-button {
  --fab-size: 50px;
  width: 200px;
  height: var(--fab-size);
  background: rgba(0, 0, 0, 0.4);
  /* box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); */
  color: white;
  border: 1px solid white;
  border-radius: calc(var(--fab-size) / 2);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.3s;
  font: 400 13px/1 var(--font-primary);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.contact-fab-button:hover,
.contact-fab-container.open .contact-fab-button {
  background: white;
  color: black;
}

.contact-fab-button:hover svg,
.contact-fab-container.open .contact-fab-button svg {
  fill: black;
}

.contact-fab-options {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  position: absolute;
  bottom: 60px;
  /* Position above the main button */
  right: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
}

.contact-fab-container.open .contact-fab-options {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.fab-option {
  background-color: rgba(0, 0, 0, 0.6);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  color: white;
  border: 1px solid white;
  padding: 10px 20px;
  border-radius: 50px;
  margin-bottom: 10px;
  text-decoration: none !important;
  transition: all 0.3s;
  white-space: nowrap;
  width: 200px;
  /* Match the width of the main button */
  box-sizing: border-box;
  /* Ensure padding doesn't affect width */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: var(--font-size-xs);
}

.contact-fab-button:hover,
.fab-option:hover {
  background: white;
  color: black;
}

.fab-option[href*="wa.me"] svg {
  fill: #25d366;
}

.fab-option:hover svg {
  fill: black;
}

.contact-fab-button .chevron-down {
  display: none;
}

.contact-fab-container.open .contact-fab-button .chevron-up {
  display: none;
}

.contact-fab-container.open .contact-fab-button .chevron-down {
  display: block;
}

.contact-fab-container.open .contact-fab-button {
  background-color: white;
  color: black;
}

.contact-fab-container.open .contact-fab-button svg {
  fill: black;
}

.contact-fab-container.open .contact-fab-button:hover {
  opacity: 0.6;
}

.contact-fab-options {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  position: absolute;
  bottom: 60px;
  /* Position above the main button */
  right: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
}

.contact-fab-container.open .contact-fab-options {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Hero Section */
.hero-title-azura {
  font: 200 40px/1.2 var(--font-primary);
  text-align: center;
  color: #fff;
  letter-spacing: 2px;
  margin: 0;
}

.hero-subtitle-azura {
  display: block;
  font: 50px/0.1 var(--font-secondary);
  text-align: center;
  color: #fff;
}

@media (max-width: 800px) {
  .hero-title-azura {
    font-size: 25px;
    line-height: 34px;
  }

  .hero-subtitle-azura {
    font-size: 36px;
  }
}

#azura-hero-overlay {
  transition: opacity 0.5s ease;
}

.hidden {
  opacity: 0 !important;
  pointer-events: none;
}

/* END OF CSS FOR OTHER COMPONENTS */

/* Loader */
.loader {
  --loader-z-index: 10000000000;
  position: fixed;
  inset: 0;
  background: #fcfcff;
  z-index: var(--loader-z-index);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.75s ease, visibility 0.75s ease;
}

.loader.hidden {
  opacity: 0;
  visibility: hidden;
}

.loader img {
  width: 300px;
}

.content {
  display: none;
}

body:not(.loading) .content {
  display: block;
}

/* MS HEADER - High Specificity */

/* Navigation */
.nav-wrapper {
  --nav-z-index: 100001;
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--nav-z-index);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 1rem 0;
  background: linear-gradient(0deg,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, 0.4) 70%,
      rgba(0, 0, 0, 0.6) 100%);
  transform: translateY(-120%);
  opacity: 0;
  transition: transform 0.5s ease, opacity 0.5s ease, z-index 0s linear;
  will-change: transform, opacity;
}

.nav-wrapper.visible {
  transform: translateY(0);
  opacity: 1;
  z-index: calc(var(--nav-z-index) + 1);
}

.nav-wrapper.no-events {
  pointer-events: none;
  z-index: var(--nav-z-index);
}

.logo-container {
  --logo-width: 72px;
  --logo-height: 55px;
  cursor: pointer;
  z-index: 40;
  display: flex;
  align-items: center;
  background: url("https://dev.azuraresorts.com/wp-content/uploads/azura-A-AdultsOnly.svg") center/contain no-repeat;
  width: var(--logo-width);
  height: var(--logo-height);
}

.logo-container:hover {
  opacity: 0.5;
}

.nav-links {
  cursor: pointer;
  display: flex;
  list-style: none;
  width: 50%;
  justify-content: space-between;
  margin: 0;
  padding: 0;
}

.nav-link {
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.8rem;
  color: #fff;
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.nav-link:hover {
  color: hsla(0, 0%, 100%, 0.5);
}

.nav-link:visited {
  color: #fff !important;
}

.transparentContainer {
  position: relative;
  width: 90%;
  padding: 0.5rem 0.8rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.transparentContainer::before,
.transparentContainer::after {
  content: none !important;
}

.azura-button {
  font-size: var(--font-size-xxs);
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.14rem;
  padding: 15px 30px;
}

.button-link {
  color: #fff;
  text-decoration: none !important;
}

.transparentBtn {
  color: #fff;
  position: relative;
  display: flex;
  cursor: pointer;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 9999px;
  outline: none;
  z-index: 0;
}

.transparentBtn:hover {
  background: white;
  color: black;
  border: 1px solid #fff;
}

.transparentBtn::before {
  content: none !important;
}

.responsive-nav {
  display: none;
}

.contact-fab-options.hidden-on-desktop-tablet {
  display: none;
}

@media (max-width: 1600px) {
  .bigger-screen-nav .nav-link {
    font-size: 0.8rem;
  }
}

@media (max-width: 1200px) {
  .nav-wrapper {
    background: linear-gradient(0deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.4) 50%,
        rgba(0, 0, 0, 0.8) 100%);
  }

  .responsive-nav {
    display: flex;
    width: 90%;
    margin-top: 2rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    border-top: 1px solid rgb(255, 255, 255);
  }

  .bigger-screen-nav {
    display: none;
  }
}

@media (max-width: 1150px) {
  .responsive-nav .nav-link {
    font-size: 0.8rem;
  }
}

@media (max-width: 800px) {
  .nav-wrapper {
    padding-top: 30px;
    padding-bottom: 30px;
    min-height: auto;
    /* allow growth */
  }

  .responsive-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 1.5rem;
  }

  .responsive-nav .nav-link {
    font-size: 0.8rem;
  }
}

@media (max-width: 500px) {
  .nav-wrapper {
    background-color: rgba(0, 0, 0, 0.4);
    /* padding-bottom: 10px; */
    backdrop-filter: blur(6px);
    border-bottom: 1px solid white;
    height: 100vh;
    justify-content: start;
    padding-top: 10vh;
    border-bottom: unset;
  }

  /* Prevent background scrolling when the small mobile nav (<=500px) is open */
  body.nav-open {
    position: fixed;
    top: var(--scroll-lock-top, 0);
    left: 0;
    right: 0;
    width: 100%;
    overflow: hidden;
    /* extra safety in case of nested scrollable containers */
    overscroll-behavior: none;
    /* reduce rubber-band/backdrop scroll */
  }

  .nav-wrapper>ul .nav-link {
    font-size: 0.8rem;
  }

  .transparentBtn {
    padding: 10px 25px;
  }

  .nav-links {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
    margin-bottom: 50px;
    border-bottom: 1px solid white;
  }

  .contact-fab-options.hidden-on-desktop-tablet {
    display: flex;
    opacity: 1;
    visibility: visible;
    position: relative;
    bottom: unset;
    right: unset;
    transform: translateY(0);
  }

  .contact-fab-button {
    display: none;
  }

  .fab-option.mobile-width {
    border: unset;
    background: unset;
    box-shadow: unset;
    padding: unset;
    margin-bottom: 1rem;
  }
}

/* MS FOOTER START */
/* Animation keyframes */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Initial state for animated elements */
.footer-wrapper.animated .footer-first-row,
.footer-wrapper.animated .footer-second-row,
.footer-wrapper.animated .footer-third-row {
  opacity: 0;
  /* Initially hidden */
}

/* Animation for when the footer is visible */
.footer-wrapper.visible .footer-first-row {
  animation: fadeInUp 0.6s ease-out forwards;
}

.footer-wrapper.visible .footer-second-row {
  animation: fadeInUp 0.6s ease-out 0.2s forwards;
  /* Staggered delay */
}

.footer-wrapper.visible .footer-third-row {
  animation: fadeInUp 0.6s ease-out 0.4s forwards;
  /* Staggered delay */
}

/* Animation end */

.footer-wrapper {
  border-top: 10px solid #b3897b;
  background: linear-gradient(180deg,
      rgba(47, 47, 47, 1) 0%,
      rgba(64, 64, 64, 1) 60%,
      rgba(64, 64, 64, 1) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 90%;
  height: auto;
  font-size: var(--font-size-xs);
}

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

.footer-content a:hover {
  color: #b3897b;
}

a>div:hover {
  opacity: 0.5;
}

.footer-content p {
  box-sizing: line-box;
  color: #fff;
}

/* Footer First Row */
.footer-first-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-evenly;
  width: 100%;
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-bottom: 1px solid #b3897b;
  height: auto;
}

/* Footer First Row Left */
.footer-first-row-left {
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: left;
  justify-content: center;
  height: auto;
  line-height: 1.5;
  width: 230px;
}

.qviva-logo-footer {
  width: 105px;
  height: 44px;
  margin-top: 10px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/Qviva-logo.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Footer First Row Center */
.footer-first-row-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: auto;
}

.azura-logo-footer {
  width: 260px;
  height: 105px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/azura-logo.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.footer-first-row-center-p {
  font-size: 28px;
  margin-bottom: 30px;
  font-family: "Yellowtail", sans-serif;
}

.socialnetworks-footer {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-evenly;
  width: 100%;
  height: auto;
}

.socialnetworks-footer-facebook {
  width: 20px;
  height: 20px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/facebook-footer.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.socialnetworks-footer-instagram {
  width: 20px;
  height: 20px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/instagram-footer.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.socialnetworks-footer-youtube {
  width: 20px;
  height: 20px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/youtube-footer.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.socialnetworks-footer-waze {
  width: 20px;
  height: 20px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/waze-footer.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Footer First Row Right */
.footer-first-row-right {
  margin-left: auto;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: right;
  justify-content: center;
  height: auto;
  line-height: 1.5;
  width: 230px;
}

/* Footer Second Row */
.footer-second-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-bottom: 1px solid #b3897b;
  height: auto;
}

/* Footer Second Row Center */
.footer-second-row-center {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-evenly;
  width: 100%;
  height: auto;
}

.logo-award-footer-1 {
  width: 97px;
  height: 118px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/poc2019.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.logo-award-footer-2 {
  width: 97px;
  height: 118px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/tripadvisor2021.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.logo-award-footer-3 {
  width: 97px;
  height: 118px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/tripadvisor2024.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.logo-award-footer-4 {
  width: 97px;
  height: 118px;
  background: url("https://demo.azuraresorts.com/wp-content/uploads/tripadvisor2025.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Footer Third Row */
.footer-third-row {
  font-size: var(--font-size-xxs);
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  width: 100%;
}

/* Footer Third Row Left */
.footer-third-row-left {
  text-align: left;
  width: 500px;
}

/* Footer Third Row Center */
.footer-third-row-center {
  text-align: center;
}

/* Footer Third Row Right */
.footer-third-row-right {
  text-align: right;
  width: 500px;
}

/* Header Toggle Button Styles */
.header-toggle-container {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100002;
  display: none;
  /* Hidden by default, will show in media query */
}

.header-toggle-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  transition: all 0.3s ease;
  outline: none;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.4);
  /* box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); */
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.header-toggle-btn:hover {
  background-color: rgba(255, 255, 255, 0.8);
}

.header-toggle-btn:hover img {
  filter: invert(1);
}

.header-toggle-btn img {
  width: 24px;
  height: 24px;
  transition: all 0.3s ease;
}

.header-toggle-btn.hidden {
  display: none;
}

@media screen and (max-width: 768px) {
  .header-toggle-container {
    display: block;
  }

  body .nav-wrapper {
    position: fixed;
    transform: translateY(-120%);
    opacity: 0;
  }

  body .nav-wrapper.visible-mobile {
    transform: translateY(0);
    opacity: 1;
  }

  .footer-first-row {
    flex-direction: column;
  }

  .footer-first-row-left {
    order: 2;
    width: 200px;
    margin: 0;
    text-align: center;
    line-height: 2;
  }

  .footer-first-row-right {
    order: 3;
    width: 200px;
    margin: 0;
    text-align: center;
    line-height: 2;
  }

  .socialnetworks-footer {
    margin-bottom: 3rem;
  }

  .footer-third-row {
    flex-direction: column;
    font-size: 9px;
  }

  .footer-third-row-left {
    width: 100%;
    text-align: center;
  }

  .footer-third-row-center {
    width: 100%;
    text-align: center;
  }

  .footer-third-row-right {
    width: 100%;
    text-align: center;
  }

  .logo-award-footer-1 {
    width: 49px;
    height: 59px;
  }

  .logo-award-footer-2 {
    width: 49px;
    height: 59px;
  }

  .logo-award-footer-3 {
    width: 49px;
    height: 59px;
  }

  .logo-award-footer-4 {
    width: 49px;
    height: 59px;
  }
}

/* MS FOOTER END */
/* ACCOMMODATIONS */

.white-list-li {
  color: white;
}

.amenities-section {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 40px 20px;
  font-family: sans-serif;
}

.amenities-title {
  text-align: center;
  font-family: "Montserrat", sans-serif;
  color: white !important;
  font-style: italic;
  font-weight: 200;
  font-size: 5rem;
  line-height: 0.7;
  margin-bottom: 30px;
}

.amenities-list {
  font-family: "Montserrat", sans-serif;
  color: white;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: 900px;
  -webkit-column-count: 3;
  -moz-column-count: 3;
  column-count: 3;
  -webkit-column-gap: 20px;
  -moz-column-gap: 20px;
  column-gap: 20px;
  font-size: 17px;
}

.amenities-list li {
  padding-left: 1em;
  text-indent: -0.7em;
  margin-bottom: 2px;
}

.amenities-list li::before {
  content: "• ";
  color: #b3897b;
}

.azura-div-titles {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Hero Text Styling */
.azura-hero-text-1 {
  font-family: Montserrat;
  font-size: 40px;
  text-align: center;
  color: #fff !important;
  line-height: 1.1;
  margin: 20px auto;
  margin-top: 220px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 1);
  max-width: 800px;
  text-transform: uppercase;
  letter-spacing: 10px;
}

.azura-hero-no-margin {
  margin-top: 0;
}

.azura-subtitle {
  font-family: Montserrat;
  font-size: 16px;
  text-align: center;
  color: #fff !important;
  line-height: 1.1;
  margin: 50px auto;
  max-width: 800px;
}

@media (max-width: 768px) {
  .amenities-list {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
  }

  body .azura-hero-text-1 {
    font-size: 30px;
  }
}

@media (max-width: 480px) {
  .amenities-title {
    font-size: 2rem;
  }

  .amenities-list {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
    font-size: 13px;
  }

  body .azura-hero-text-1 {
    letter-spacing: 6px;
    font-size: 24px !important;
  }

  .azura-subtitle {
    font-size: 12px;
  }
}