/* COLOR PALETTE */
:root {
  --palette-1: #111c24;
  --palette-2: #ffffff;
  --palette-3: #8a8c8d;
  --palette-4: #616365;
  --palette-5: #ff9a4e;

  --palette-6: rgb(239, 228, 210);
  --palette-7: rgb(37, 77, 112);
  --palette-8: rgb(19, 29, 79);
  --palette-9: #efad17;
}

/* GENERAL */

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.main-content {
    flex: 1 0 auto;
}

footer {
    flex-shrink: 0;
}

/* RESIZE STYLES */

@media (max-width: 768px) {
  .custom-text-s-20s {
    padding-left: 20%;
  }
  .custom-text-s-15s {
    padding-left: 15%;
  }
  .custom-text-s-10s {
    padding-left: 10%;
  }
  .custom-text-s-20e {
    padding-right: 20%;
  }
  .custom-text-s-15e {
    padding-right: 15%;
  }
  .custom-text-s-10e {
    padding-right: 10%;
  }
  .custom-text-main-page-blocks {
    font-size: 18px;
  }
}

@media (min-width: 769px) {
  .custom-text-l-20s {
    padding-left: 20%;
  }
  .custom-text-l-15s {
    padding-left: 15%;
  }
  .custom-text-l-10s {
    padding-left: 10%;
  }
  .custom-text-l-20e {
    padding-right: 20%;
  }
  .custom-text-l-15e {
    padding-right: 15%;
  }
  .custom-text-l-10e {
    padding-right: 10%;
  }
  /* .custom-text-main-page-blocks {
    font-size: 20px;
  } */
}

/* IMAGE SLIDE */
.rotating-bg {
    position: relative;
    overflow: hidden;
}
.bg-slide {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    width: 100%; height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.7s cubic-bezier(.77,0,.18,1);
    will-change: transform;
}
.bg-slide.next {
    transform: translateX(100%);
    z-index: 2;
}
.bg-slide.active {
    transform: translateX(0%);
    z-index: 1;
}
.bg-slide.out {
    transform: translateX(-100%);
    z-index: 1;
}

/* MOBILE MENU STYLES */
.custom-mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 80vw;
    max-width: 320px;
    z-index: 1060;
    transform: translateX(-100%);
    transition: transform 0.3s cubic-bezier(.4,0,.2,1);
    box-shadow: 2px 0 12px rgba(0,0,0,0.2);
    display: flex;
    flex-direction: column;
}
.custom-mobile-menu.active {
    transform: translateX(0);
}
.custom-mobile-menu-backdrop {
    display: none;
    position: fixed;
    z-index: 1055;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,0.4);
}
.custom-mobile-menu-backdrop.active {
    display: block;
}
@media (min-width: 768px) {
    .custom-mobile-menu, .custom-mobile-menu-backdrop { display: none !important; }
}

/* WINDOW */
.floating-window {
    border-radius: 1rem; /* Rounded corners */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Shadow effect */
    margin: 1rem; /* Space between windows */
    overflow: hidden; /* Prevent content overflow */
    background-color: white; /* Optional: Add a background color */
}

/* CUSTOM NAVBAR */
.custom-navbar {
    margin: 0 auto;
    max-width: 600px;
    transition: all 0.3s ease;
    background-color: var(--palette-6);
    border-radius: 0 0 10px 10px;
    box-shadow: none;
    z-index: 1000;
}

.custom-navbar::before,
.custom-navbar::after {
    content: '';
    position: absolute;
    top: 20px;
    width: 20px;
    height: 20px;
    background: transparent;
}

.custom-navbar::before {
    left: -20px;
    border-top-right-radius: 50%;
    box-shadow: 10px 0 0 0 var(--palette-6);
}

.custom-navbar::after {
    right: -20px;
    border-top-left-radius: 50%;
    box-shadow: -10px 0 0 0 var(--palette-6);
}

.custom-navbar.hide-pseudo-elements::before {
    top: -40px;
    opacity: 0;
    transition: top 0.3s ease, left 0.3s ease, right 0.3s ease, box-shadow 0.3s ease;
}

.custom-navbar.hide-pseudo-elements::after {
    top: -40px;
    opacity: 0;
    transition: top 0.3s ease, left 0.3s ease, right 0.3s ease, box-shadow 0.3s ease;
}

.custom-navbar.show-pseudo-elements::before {
    top: 20px;
    opacity: 1;
    transition: top 0.3s ease, left 0.3s ease, right 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease;
}

.custom-navbar.show-pseudo-elements::after {
    top: 20px;
    opacity: 1;
    transition: top 0.3s ease, left 0.3s ease, right 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease;
}


@media (max-width: 768px) {
    #customNavbar {
        max-width: 25%;
    }
}

/* BUTTON */
.btn {
    transition: background-color 0.3s, color 0.3s; /* Smooth transition for hover effect */
}
.btn:hover {
    background-color: var(--palette-8); /* Opposite background color */
    color: var(--palette-6); /* Opposite text color */
}
.btn:hover {
    background-color: var(--palette-6); /* Opposite background color */
    color: var(--palette-8); /* Opposite text color */
}

.responsive-text {
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    line-height: 1.4;
}

.responsive-heading {
    font-size: clamp(1.2rem, 3.5vw, 1.75rem);
}

@media (min-width: 992px) {
    .desktop-responsive-text {
        font-size: clamp(0.9rem, 1.8vw, 1.1rem);
        padding: 0 1rem;
    }
    
    .desktop-responsive-heading {
        font-size: clamp(1.3rem, 2.5vw, 1.75rem);
    }
}
