$primary-color: #ffbf00;
$font-size: 16px;
$size-4: 16px;
$size-6: 24px;
$secondary-color: #212529;

// Global Styles
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

a,
a:hover {
  text-decoration: none;
}

html {
  margin-top: 0 !important;
}

body {
  font-family: "Source Sans Pro", sans-serif;
  font-size: $font-size;
  color: $secondary-color;
}

.img-fluid {
  width: 100%;
  height: auto;
}

.brand-color {
  color: $primary-color;
}

.text-logo {
  color: #eb5757;
}

.bg-logo {
  background-color: #eb5757;
}

.bg-brand {
  background-color: $primary-color;
}

.bg-gray {
  background-color: #ced4da;
}

.text-white {
  color: #fff;
}

.text-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.text-regular {
  font-size: 80px;
  font-weight: 400;
  line-height: 96px;
}

.text-semi {
  font-size: 80px;
  font-weight: 600;
  line-height: 96px;
}

.test-bold {
  font-size: 80px;
  font-weight: 700;
  line-height: 96px;
}

// Headings
h1 {
  font-size: 64px;
  font-weight: 700;
  line-height: 80px;
}

h2 {
  font-size: 48px;
  font-weight: 700;
  line-height: 64px;
}

h3 {
  font-size: 32px;
  font-weight: 600;
  line-height: 48px;
}

h4 {
  font-size: 24px;
  font-weight: 700;
  line-height: 36px;
}

h5 {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
}

h6 {
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
}

.text-subtitle1 {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

.text-subtitle2 {
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
}

.text-body1 {
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
}

.text-body2 {
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.text-caption {
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
}

.text-overline {
  font-size: 12px;
  font-weight: 700;
  line-height: 18px;
}

// Button Styles
.btn-lg {
  font-size: 16px;
  font-weight: 700;
  line-height: 26px;
}

.btn-md {
  font-size: 14px;
  font-weight: 700;
  line-height: 24px;
}

.btn-sm {
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
}

// Header Styles
header {
  .navbar {
    .nav-item {
      margin-left: $size-4;

      a,
      a.active {
        font-size: $size-4;
        line-height: $size-6;
        letter-spacing: 0.005em;
        font-weight: 600;
        color: #f8f9fa;
        position: relative;

        &.active {
          &::before {
            content: url(../images/home.png);
            position: absolute;
            left: -20px;
          }

          &::after {
            content: "";
            width: 30px;
            height: 4px;
            position: absolute;
            bottom: 0px;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 8px 8px 0 0;
            background-color: #fff;
          }
        }
      }

      a.nav-link:focus,
      a.nav-link:hover {
        color: $primary-color;
      }
    }
  }
}

// Hero Banner Styles
.hero-banner {
  h2 {
    color: #495057;
  }

  p {
    color: #6c757d;
  }

  .banner-wrap {
    height: 90vh;
    background-position: center;
    background-size: cover;
    width: 100%;
    display: flex;
    align-items: center;

    .banner-content-wrap {
      display: flex;
      align-items: flex-start;
      justify-content: center;
      flex-direction: column;
    }

    .banner-btns {
      display: flex;
      gap: 20px;

      a.btn {
        min-width: 200px;
        padding: 15px 30px;
        border-radius: 8px;

        i {
          margin-left: 8px;
        }
      }
    }
  }

  .btn:hover {
    background-color: $primary-color;
  }
}

// About Us Styles
.about-us-wrap {
  .about-us {
    max-width: 1500px;
    position: relative; // Add relative positioning to contain absolutely positioned children

    .about-image {
      position: absolute;
      top: -40px;
      z-index: 1;

      img {
        z-index: 1;
      }
    }

    .about-us-content {
      padding-left: 40px;
    }

    &::after {
      content: "";
      position: absolute;
      bottom: -10px;
      left: -20px;
      width: 250px;
      height: 250px;
      border-radius: 100%;
      border: 50px solid $primary-color;
      z-index: 0;
    }

    &::before {
      content: "";
      position: absolute;
      bottom: 41px;
      left: 32px;
      height: 150px;
      width: 150px;
      border-radius: 100%;
      background-image: url(../images/favicon.png);
      background-size: 50px;
      background-repeat: no-repeat;
      background-position: center;
      background-color: #fff;
      z-index: 2;
    }
  }
}

// Video Section Styles
.video-wrap::before {
  content: "";
  width: 45px;
  height: 65%;
  top: 50%;
  left: -10px;
  border-radius: 10px;
  background-color: $primary-color;
  position: absolute;
  z-index: -1;
  transform: translateY(-50%);
}

.video-section {
  .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    cursor: pointer;
  }
}

// Introduction Section Styles
.intro-section {
  background-color: #efefe8;

  .intro-heading,
  .explore-section .explore-heading {
    text-align: center;
    max-width: 500px;
  }

  .intro-heading h2::after,
  .explore-section h2::after {
    content: url(../images/arrow.png);
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
  }

  .intro-card-wrap {
    margin-top: 20px;

    .intro-card {
      border-radius: 10px;

      img {
        margin-bottom: 15px;
      }
    }
  }

  .btn-load-more {
    i {
      margin-left: 10px;
    }

    .btn {
      padding: 10px 35px;
    }
  }
}

// Accommodation Section Styles
.accommodation-section {
  .accommodation-content::before {
    content: url(../images/arrow-rotate.png);
    position: absolute;
    top: -20px;
  }

  .accommodation-content p {
    padding-left: 15px;
    position: relative;

    &::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      height: 100%;
      width: 2px;
      background-color: #adb5bd;
    }
  }

  .accommodation-details {
    border-radius: 10px;
  }

  .accommodation-types-wrap {
    gap: 15px;
  }

  .accommodation-card {
    padding: 25px;
  }
}

// Information Section Styles
.info-section {
  .info-content-wrap {
    position: relative;
    height: 100%;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .info-content {
    position: relative;
    z-index: 2;
    margin: 5rem 7rem;

    .number-list-wrap {
      display: flex;
      gap: 15px;
      flex-wrap: wrap;

      .number-item {
        display: flex;
        align-items: center;

        .number-circle {
          display: flex;
          justify-content: center;
          align-items: center;
          height: 35px;
          width: 35px;
          border-radius: 50%;
          background-color: $primary-color;
          color: #fff;
          margin-right: 10px;
        }
      }
    }
  }
}

// Explore Section Styles
.explore-section {
  text-align: center;

  .explore-card {
    border-radius: 10px;
    margin-top: 10px;

    img {
      width: 100%;
      border-radius: 10px;
    }
  }
}

// Contact Section Styles
.contact-section {
  .contact-content {
    padding: 20px;
    border-radius: 10px;
    background-color: #efefef;
  }

  .contact-form {
    padding: 20px;
    border-radius: 10px;
  }

  .contact-btn {
    margin-top: 10px;
  }
}

// Footer Styles
footer {
  padding: 30px;
  background-color: #212529;

  .footer-logo {
    color: #fff;
  }

  .footer-links {
    display: flex;
    gap: 20px;

    a {
      color: #fff;

      &:hover {
        color: $primary-color;
      }
    }
  }

  .footer-social {
    display: flex;
    gap: 10px;

    i {
      color: #fff;

      &:hover {
        color: $primary-color;
      }
    }
  }
}
