/* --- Unchanged Navigation Styles --- */
body {
    box-sizing: border-box;
    max-width: 100vw;
    margin: 0;
}

section {
    display: flex;
}

.nav-container.mobile {
    display: none;
}

.nav-section {
    width: 100%;
}

.nav-logo {
    flex: 0 0 25%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.nav-container {
    flex: 1 1 auto;
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.nav-element {
    flex: 1 0 auto;
    position: relative;
    display: inline-block;
    justify-content: center;
    font-weight: bold;
    font-size: 1.5rem;
    padding: 1rem;
}

.nav-element.active span {
    border-bottom: 1px solid green;
}

.nav-element:hover {
    cursor: pointer;
}

.dropdown-list {
    display: none;
    position: absolute;
    top: 100%;          
    left: 0;        
    min-width: 100%;
    background: white;
    z-index: 1000;
    padding: 0.25rem;
    border-radius: 0.25rem;
}

/* --- Carousel Styling --- */
.content-carousel { 
    position: relative; 
    width: 100%; 
    overflow: hidden; 
}

.carousel-inner { 
    display: flex; 
    transition: transform 0.5s ease-in-out; 
}

/* Slider Mode */
.content-carousel.slider .slide { 
    min-width: 100%; 
    display: flex; 
    justify-content: center; 
}

/* Card Mode (Snap) */
.content-carousel.card {
    padding: 0rem 1rem;
}

.content-carousel.card .carousel-inner {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    width: 100%;
    scroll-behavior: smooth;
    cursor: grab;
    gap: 1rem;
}

.content-carousel.card .carousel-inner::-webkit-scrollbar { 
    display: none; 
}

.content-carousel.card .card-element { 
    scroll-snap-align: start; 
    flex: 0 0 calc(100% / var(--items-to-show));
    box-sizing: border-box; 
}

.content-carousel.card .card-element img { 
    width: 100%; 
    height: auto; 
    display: block;
}

.content-carousel .carousel-inner,
.content-carousel .slide,
.content-carousel .card-element {
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none;    /* IE 10 and IE 11 */
    user-select: none;        /* Standard syntax */
}

.content-carousel .slide {
    height: 80vh;
    width: auto;
}

.content-carousel .slide:nth-child(odd) {
    background-color: red;
}

.content-carousel .slide:nth-child(even) {
    background-color: blue;
}

/* Pagination & Controls */
.prev, .next { 
    position: absolute; 
    top: 50%; 
    transform: translateY(-50%); 
    cursor: pointer; 
    z-index: 10; 
}

.prev { left: 1rem; }
.next { right: 1rem; }

.pagination { 
    display: flex; 
    justify-content: center; 
    gap: 1rem; 
    position: absolute; 
    bottom: 0.5rem; 
    width: 100%; 
    z-index: 10; 
}

.dot { 
    height: 1rem; 
    width: 1rem; 
    background: #bbb; 
    border-radius: 50%; 
    cursor: pointer; 
}

.dot.active { 
    background: #717171; 
}

.highlighted-tours-section,
.misson-statement-section { 
    flex-direction: column; 
    padding: 1rem 5rem;
}

.custom-underline { 
    text-decoration: underline; 
}

.title-text {
    font-weight: bold;
}

.title-text.xs {
    font-size: .75rem;
}

.title-text.sm {
    font-size: 1.1rem;
}

.title-text.md {
    font-size: 1.25rem;
}

.title-text.lg {
    font-size: 1.5rem;
}

.title-text.xl {
    font-size: 2rem;
}

.centered {
    text-align: center;
}

.card-element {
    display: flex;
    flex-direction: column;
    border: 0.1rem solid orange;
    border-radius: 0.25rem;
    width: auto;
    height: 50vh;
}

.card-element .header {
    flex: 1 1 50%;
    position: relative;
    border-bottom: 0.25rem solid orange;
}

.card-element .header .pricing {
    position: absolute;
    bottom: 0;
    right: 0;
    width: fit-content;
    padding: 1rem;
    color: white;
}

.card-element:nth-child(odd) .header .pricing {
    background-color: orange;
}

.card-element:nth-child(even) .header .pricing {
    background-color: blue;
}

.card-element .body {
    flex: 1 1 auto;
    padding: 0rem 1rem;
}

.footer-section {
    display: flex;
    justify-content: center;
    gap: 1rem;
    padding: 1rem 5rem;
    background-color: orange;
}

.disclaimer-container,
.map-container,
.contact-info-container {
    flex: 1;
    text-align: center;
}

.map-container {
    height: 100%;
}

.copyright-section {
    display: flex;
    justify-content: center;
    background-color: blue;
    color: white;
}