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

html {
  scroll-behavior: smooth;
  scroll-padding-block-start: 1.5rem;
}

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: var(--current-secondary);
}

::-webkit-scrollbar-thumb {
  background: var(--current-primary-light);
}

:root {
  --animation-duration05: 0.5s;
  --animation-duration08: 0.8s;
  --animation-duration: 1s;
  --fade_delay: 5s;
  --fade05_delay: 5.5s;
  --fade6_delay: calc(var(--fade_delay) + 0.5s);
  --fadeInTop_delay: var(--fade_delay);
  --fadeInDown_delay: var(--fade05_delay);
  --blurInBottom_delay: var(--fade05_delay);

  --primary: rgb(18, 18, 18);
  --primary-light: rgb(23, 23, 23);
  --primary-lighter: rgb(35, 35, 35);
  --primary-clr: rgba(0, 0, 0, 0.5);
  --secondary: rgb(234, 224, 200);
  --secondary-clr: rgb(234, 224, 200, 0.8);
  --vintage-gold: rgb(184, 115, 51);

  --border-fade: rgb(255, 255, 255, 0.4);
  --gradient: linear-gradient(var(--primary) 25%, rgba(0, 0, 0, 0.6) 80%);
  --gradient-dark: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
  --shadow-dark: rgb(0, 0, 0, 0.8);
  --shadow-light: rgb(0, 0, 0, 0.3);

  /* Light Theme Colors (Complementary) */
  --light-primary: rgb(234, 224, 200);
  --light-primary-light: rgb(245, 234, 210);
  --light-primary-lighter: rgb(220, 220, 220);
  --light-primary-clr: rgb(255, 255, 255, 0.5);
  --light-secondary: rgb(18, 18, 18);
  --light-secondary-clr: rgba(18, 18, 18, 0.8);
  --light-vintage-gold: rgb(184, 115, 51);

  --light-border-fade: rgba(0, 0, 0, 0.4);
  --light-gradient: linear-gradient(var(--secondary) 25%,
      rgba(234, 224, 200) 80%);
  --light-gradient-dark: linear-gradient(rgba(255, 255, 255, 0.3),
      rgba(255, 255, 255, 0.3));

  /* Current Theme Variables */
  --current-primary: var(--primary);
  --current-primary-light: var(--primary-light);
  --current-primary-lighter: var(--primary-lighter);
  --current-primary-clr: var(--primary-clr);
  --current-secondary: var(--secondary);
  --current-secondary-clr: var(--secondary-clr);
  --current-vintage-gold: var(--vintage-gold);
  --current-border-fade: var(--border-fade);
  --current-gradient: var(--gradient);
  --current-overlay: var(--shadow-dark);
  --current-shadow-light: var(--shadow-light);
  --current-gradient-dark: var(--gradient-dark);

  /* Font sizes */
  --step-3: clamp(1.0629rem, -1.8716rem + 14.6724vw, 10.4166rem);

  --head-size: clamp(3.4rem, calc(-2rem + 22vw), 15rem);
}

/* Light Theme */
body.light-theme {
  --current-primary: var(--light-primary);
  --current-primary-light: var(--light-primary-light);
  --current-primary-lighter: var(--light-primary-lighter);
  --current-primary-clr: var(--light-primary-clr);
  --current-secondary: var(--light-secondary);
  --current-secondary-clr: var(--light-secondary-clr);
  --current-vintage-gold: var(--light-vintage-gold);
  --current-border-fade: var(--light-border-fade);
  --current-gradient: var(--light-gradient);
  --current-overlay: var(--light-shadow-dark);
}

/* RECOLETA FONT */
@font-face {
  font-family: "Recoleta";
  src: local("Recoleta Light"), local("Recoleta-Light"),
    url("/Assets/Fonts/Recoleta/Recoleta-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Recoleta";
  src: local("Recoleta Regular"), local("Recoleta-Regular"),
    url("/Assets/Fonts/Recoleta/Recoleta-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* GORDITA FONT */
@font-face {
  font-family: "Gordita";
  src: local("Gordita Light"), local("Gordita-Light"),
    url("/Assets/Fonts/gordita/Gordita-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gordita";
  src: local("Gordita Regular"), local("Gordita-Regular"),
    url("/Assets/Fonts/gordita/Gordita-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gordita";
  src: local("Gordita Italic"), local("Gordita-Italic"),
    url("/Assets/Fonts/gordita/Gordita-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Gordita";
  src: local("Gordita Medium"), local("Gordita-Medium"),
    url("/Assets/Fonts/gordita/Gordita-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

.fadeInTop,
.fadeInLeft,
.fadeInDown,
.fadeInRight,
.blurInBottom {
  opacity: 0;
  pointer-events: none;
  will-change: transform, opacity, filter;
}

/* Preloader-Styles */
.preloader {
  position: fixed;
  inset: 0;
  height: 100vh;
  height: 100svh;
  background-color: var(--current-primary-light);
  display: grid;
  place-content: center;
  z-index: 25;
  animation: preloaderExit var(--animation-duration05) ease-out forwards;
  animation-delay: var(--fade_delay);
}

@keyframes preloaderExit {
  100% {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
  }
}

.preloader_content {
  display: flex;
  align-items: center;
  gap: 15px;
  text-align: center;
  max-width: fit-content;
  overflow: hidden;
  animation: preloader_contentExit var(--animation-duration05) ease-out 4s forwards;
}

@keyframes preloader_contentExit {
  to {
    opacity: 0;
    transform: translateY(-100%);
  }
}

.reveal-text {
  height: auto;
  line-height: 1;
  text-transform: capitalize;
  letter-spacing: 2px;
  opacity: 0;
  transform: translateY(100%);
  animation: fadeInBottom var(--animation-duration08) ease-out forwards;
}

.reveal-text:first-child {
  animation-delay: 0.5s;
}

.reveal-text:nth-child(3) {
  animation-delay: 1.8s;
}

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

.reveal-line {
  width: 50px;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.reveal-line_inner {
  display: inline-block;
  background: var(--current-secondary);
  width: 100%;
  height: 2px;
  border-radius: 10px;
  position: absolute;
  left: 0;
  top: 100%;
  opacity: 0;
  animation: lineX var(--animation-duration08) ease-out forwards;
  animation-delay: 1.2s;
}

@keyframes lineX {
  to {
    top: 50%;
    opacity: 1;
    transform: translateY(-50%);
  }
}

@media (max-width: 768px) {
  .preloader_content {
    gap: 10px;
  }

  .reveal-text {
    font-size: 24px;
  }

  .reveal-line {
    width: 30px;
  }

  .reveal-line_inner {
    height: 1px;
  }
}

@media (max-width: 575px) {
  .reveal-text {
    font-size: 20px;
  }

  @media (max-width: 460px) {
    .reveal-text {
      font-size: 16px;
    }
  }
}


[data-aos-delay="5500"] [data-aos],
[data-aos][data-aos-delay="5500"] {
  transition-delay: 5500ms;
}

[data-aos-delay="6000"] [data-aos],
[data-aos][data-aos-delay="6000"] {
  transition-delay: 6000ms;
}

[data-aos-delay="6500"] [data-aos],
[data-aos][data-aos-delay="6500"] {
  transition-delay: 6500ms;
}

[data-aos-delay="7000"] [data-aos],
[data-aos][data-aos-delay="7000"] {
  transition-delay: 7000ms;
}

/* Fade In Top Animation */
.fadeInTop {
  visibility: hidden;
  transform: translateY(-100%);
  animation: fadeInTop var(--animation-duration) ease forwards;
  animation-delay: var(--fadeInTop_delay);
}

@keyframes fadeInTop {
  to {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* Fade In Down Animation */
.fadeInDown {
  visibility: hidden;
  transform: translateY(100%);
  animation: fadeInDown var(--animation-duration) ease forwards;
  animation-delay: var(--fadeInDown_delay);
}

.fadeInDown.delay-1 {
  animation-delay: calc(var(--fadeInDown_delay) + 0.3s);
}

.fadeInDown.delay-2 {
  animation-delay: calc(var(--fadeInDown_delay) + 0.6s);
}

.fadeInDown.delay-3 {
  animation-delay: calc(var(--fadeInDown_delay) + 0.9s);
}

@keyframes fadeInDown {
  to {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* Fade In Right Animation */
.fadeInRight {
  visibility: hidden;
  transform: translateX(100%);
  animation: fadeInRight var(--animation-duration) ease forwards;
  animation-delay: var(--fadeInDown_delay);
}

@keyframes fadeInRight {
  to {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
  }
}

/* Fade In Left Animation */
.fadeInLeft {
  visibility: hidden;
  transform: translateX(-100%);
  animation: fadeInLeft var(--animation-duration) ease forwards;
  animation-delay: var(--fadeInDown_delay);
}

@keyframes fadeInLeft {
  to {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
  }
}

@keyframes fadeInFromBottom {
  from {
    opacity: 0;
    transform: translateY(100%);
  }

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

/* Blur In Bottom Animation */
.blurInBottom {
  filter: blur(5px);
  transform: translateY(100%);
  animation: blurInBottom var(--animation-duration) ease forwards;
  animation-delay: var(--blurInBottom_delay);
}

@keyframes blurInBottom {
  to {
    opacity: 1;
    filter: blur(0);
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* Body Styles */
body {
  color: var(--current-secondary);
  background: var(--current-primary);
  font-family: "Gordita";
  outline: none;
}

a {
  text-decoration: none;
}

ul {
  list-style: none;
}

main {
  max-width: 1200px;
  padding: 0 1.5rem;
  margin: 0 auto;
}

section,
#home,
#home_intro,
#feature,
#catalogue,
#resume,
#testimonial,
#contact,
footer {
  overflow: hidden !important;
}

h1 {
  font-family: "recoleta";
  font-weight: 300;
  text-transform: uppercase;
}

h2 {
  font-family: "recoleta";
  font-weight: 400;
  text-transform: capitalize;
}

h3 {
  font-family: "recoleta";
  font-weight: 500;
  text-transform: uppercase;
}

h4 {
  font-family: "Gordita";
  font-weight: 400;
  text-transform: capitalize;
}

h5 {
  font-family: "Gordita";
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.bg-element {
  position: absolute;
}

/* Nav-Styles */
header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10;
}

header.scrolled {
  background: var(--current-primary-clr);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
}

header.scrolled nav ul li .nav-link {
  color: var(--current-secondary);
}

header.scrolled nav .nav-toggle .bar {
  background-color: var(--current-secondary);
}

.nav-logo {
  display: none;
}

.nav-toggle {
  display: none;
  cursor: pointer;
  z-index: 16;
}

.bar {
  display: block;
  width: 24px;
  height: 1px;
  margin: 7px auto;
  background-color: var(--secondary);
  transition: all 0.3s;
}

.nav-toggle .light_bar {
  background-color: var(--current-secondary);
}

.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-block: 16px;
}

nav .nav-menu {
  width: 100%;
}

nav .min_nav-menu {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

nav ul {
  display: flex;
  gap: 25px;
}

.nav-item {
  max-width: max-content;
}

nav ul li .nav-link {
  display: inline-block;
  color: var(--secondary);
  cursor: pointer;
  transition: opacity var(--animation-duration05);
}

nav ul li .light_nav-link {
  color: var(--current-secondary);
}

nav ul li .link_wrapper {
  display: flex;
  align-items: center;
  position: relative;
}

nav ul li .link_wrapper i,
nav ul li .link_wrapper h1 {
  font-size: 18px;
}

nav ul li .link_wrapper i {
  position: absolute;
  opacity: 0;
  visibility: hidden;
  transition: all var(--animation-duration05);
}

nav ul li .link_wrapper:hover i {
  opacity: 1;
  visibility: visible;
}

nav ul li .link_wrapper h1 {
  position: relative;
  transition: margin 0.4s;
}

nav ul li .link_wrapper:hover h1 {
  margin-left: 1.5rem;
}

nav ul li .link_wrapper h1:after {
  position: absolute;
  content: "";
  left: 0;
  bottom: -6px;
  width: 0;
  height: 2px;
  background: var(--current-secondary);
  transition: width 0.4s ease-out;
}

nav ul li .link_wrapper:hover h1:after {
  width: 100%;
}

nav ul:has(a:hover) a:not(:hover) {
  opacity: 0.4;
}

.book_now {
  font-size: 15px;
  text-transform: capitalize;
  background: var(--current-vintage-gold);
  color: var(--secondary);
  width: 100%;
  max-width: 140px;
  padding: 12px 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.2s;
  cursor: pointer;
}

.book_now span {
  display: block;
  transition: all 0.3s ease-in-out;
}

.book_now i {
  display: block;
  transform-origin: center center;
  transition: transform 0.3s ease-in-out;
}

.book_now:hover .icon-wrapper {
  animation: fly 0.6s ease-in-out infinite alternate;
}

.book_now:hover i {
  transform: translateX(2.5rem) rotate(45deg) scale(1.2);
}

.book_now:hover span {
  transform: translateX(40rem);
}

.book_now:active {
  transform: scale(0.95);
}

@keyframes fly {
  from {
    transform: translateY(0.1rem);
  }

  to {
    transform: translateY(-0.1rem);
  }
}

.nav-menu .social-links-text {
  display: none;
  justify-content: center;
  gap: 20px;
}

.nav-menu .social-links-text a {
  color: var(--current-secondary);
  text-transform: uppercase;
  transition: all 0.4s;
}

.nav-menu .social-links-text a:hover {
  transform: translateY(-0.25rem);
  color: var(--current-vintage-gold);
}

.nav-menu .social-links-text a:active,
.nav-menu .social-links-text a:focus {
  transform: scale(0.95);
}

/* BACK TO TOP */
.back-top-btn {
  position: fixed;
  z-index: 9;
  bottom: 30px;
  right: -80px;
  width: 70px;
  height: 70px;
  border: 1px dashed currentColor;
  color: var(--current-vintage-gold);
  font-size: 16px;
  border-radius: 50%;
  display: grid;
  place-content: center;
  visibility: hidden;
  transition: 0.5s ease;
}

.back-top-btn.show {
  transform: translateX(-100px);
  visibility: visible;
}

.back-top-btn:hover {
  color: var(--current-secondary);
}

.theme-toggle {
  position: fixed;
  z-index: 9;
  bottom: 30px;
  left: 20px;
  width: 50px;
  height: 50px;
  border: 1px dashed var(--current-vintage-gold);
  color: var(--current-vintage-gold);
  font-size: 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transition: 0.5s ease;
  background: transparent;
  cursor: pointer;
}

.theme-toggle:hover {
  border: 1px dashed var(--current-secondary);
  color: var(--current-secondary);
  transform: rotate(15deg);
}

/* CUSTOM CURSOR */
.cursor {
  display: block;
  position: fixed;
  z-index: 30;
  top: 0;
  left: 0;
  width: 65px;
  height: 65px;
  background-color: var(--secondary);
  mix-blend-mode: exclusion;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.4);
  transition: transform 0.35s;
  pointer-events: none;
}

.cursor.hovered {
  transform: translate(-50%, -50%) scale(1);
}

.cursor.disabled {
  transform: translate(-50%, -50%) scale(0);
}