:root {
    --bt-size: 64px;
    --bt-bg: #ffffff;
    --bt-fg: #111111;
    --bt-shadow: 0 0 15px rgba(0,0,0,.05);
    --bt-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    --bt-right: 24px;
    --bt-z: 9999;
    --bt-threshold: 360;
    --bt-slide-ms: 320ms;
  }
::selection { 
	background: #D9A163; 
	color: #000; 
}
*::selection { 
	background: #D9A163; 
	color: #000; 
} 

a {
	color: var(--e-global-color-primary);
}
/* nested elements */
  input::selection, textarea::selection { 
		background: #D9A163; 
		color: #000; 
}

/* text fill animation */
.txt-fill.block .fill {
    position: relative;
    display: inline-block;
    -webkit-text-fill-color: rgba(0, 0, 0, 0.6);
    -webkit-background-clip: text;
    background-repeat: no-repeat;
    background-image: linear-gradient(#000, #000);
    background-size: 0% 100%;
    transition: background-size 0.3s ease-out;
}


.txt-fill .fill {
    position: relative;
    display: inline;
    -webkit-text-fill-color: color-mix(in srgb, currentColor 40%, transparent);
    -webkit-background-clip: text;
    background-repeat: no-repeat;
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 0% 100%;
    transition: background-size 0.3s ease-out;
}


.txt-fill.light .fill {
    -webkit-text-fill-color: rgba(255, 255, 255, 0.2) !important;
    background-image: linear-gradient(#fff, #fff) !important;
}

/* Link Styling */
.px-link a { 
	position: relative; 
	text-decoration: none; 
	display: inline-block;
} 
.px-link a::after { 
	content: ""; 
	position: absolute; 
	left: 0; 
	bottom: -.2em; 
	width: 100%; 
	height: 1px; 
	background-color: currentColor !important; 
	transform: scaleX(0); 
	transform-origin: right; 
	transition: transform 0.4s ease-in-out; 
	opacity: 1 !important; 
} 
.px-link a:hover::after { 
	transform: scaleX(1); 
	transform-origin: left; 
}

/* Alt Link Styling */
.px-link-alt a { 
	position: relative; 
	text-decoration: none; 
	display: inline-block;
} 
.px-link-alt a::after { 
	content: ""; 
	position: absolute; 
	left: 0; 
	bottom: -.2em; 
	width: 100%; 
	height: 1px; 
	background-color: currentColor !important; 
	transform: scaleX(1); 
	transform-origin: right; 
	transition: 0.4s ease-in-out; 
	opacity: 1 !important; 
} 
.px-link-alt a:hover::after { 
	transform: scaleX(0); 
	transform-origin: right;
}

/* Link Styling - Icon List */
.px-link .elementor-icon-list-item a { 
  text-decoration: none;
}

.px-link .elementor-icon-list-text {
  position: relative;
  display: inline-block;
}


.px-link .elementor-icon-list-item a::after { 
    content: none; 
} 

.px-link .elementor-icon-list-text::after {           
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.2em;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .4s;
}

.px-link .elementor-icon-list-item a:hover .elementor-icon-list-text::after {
  transform: scaleX(1);
  transform-origin: left;
}


/* Button Styling */
.px-button .elementor-button {
    position: relative;
}
.px-button .elementor-button {
    overflow: hidden;
}

.px-button .elementor-button:before {
    position: absolute;
    top: 0;
    left: -100%;
    content: '';
    background: rgba(128,128,128,.3);
    width: 100%;
    height: 100%;
    transition: .5s ease-in-out;
}

.px-button .elementor-button:hover:before {
    left: 0;
}

.px-button span {
    z-index: 10;
    transition: .5s ease-in-out;
}


.px-glare-btn .elementor-button, .px-glare-btn.btn {
    overflow: hidden;
    position: relative;
}

.px-glare-btn .elementor-button:before, .px-glare-btn.btn:before {
    content: "";
    opacity: 1;
    z-index: 0;
    border: 0;
    position: absolute;
    width: 100%;
    bottom: 0;
    height: 100%;
    transform: translateX(-150%) skew(-15deg);
    background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    background-color: transparent;
    transition: transform 2s ease; 
    border-radius: 0;
}

.px-glare-btn .elementor-button:hover:before, .px-glare-btn.btn:hover:before {
    transform: translateX(100%) skew(-15deg);
}


/* PX Spark Bullet */
.px-spark-bullet { --spark-rot: 0deg; }

.px-spark-bullet ul { 
	padding-inline-start: 0; 
}

.px-spark-bullet li {
  list-style: none;
  position: relative;
  padding-left: 1em;
}

.px-spark-bullet li::before {
  content: "";
  position: absolute;
  top: .3em;
  left: 0;
  width: .7em;
  height: .7em;
  transform: translateY(0%) rotate(var(--spark-rot, 0deg));
  transform-origin: 50% 50%;
  will-change: transform;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOS43NCAxOS43NCI+PHBhdGggZD0iTTkuODcsMGgwYy41LDUuMjMsNC42NCw5LjM3LDkuODcsOS44N2gwLDBjLTUuMjMuNS05LjM3LDQuNjQtOS44Nyw5Ljg3aDBzMCwwLDAsMEM5LjM3LDE0LjUxLDUuMjMsMTAuMzcsMCw5Ljg3aDAsMEM1LjIzLDkuMzcsOS4zNyw1LjIzLDkuODcsMGgwWiIvPjwvc3ZnPg==");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.px-spark-bullet { 
	padding-inline-start: 0; 
}

.px-spark-bullet {
  list-style: none;
  position: relative;
  padding-left: 1.5em;
}

.px-spark-bullet::before {
  content: "";
  position: absolute;
  top: .1em;
  left: 0;
  width: .7em;
  height: .7em;
/*   transform: translateY(0%) rotate(var(--spark-rot, 0deg));
  transform-origin: 50% 50%; */
  will-change: transform;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOS43NCAxOS43NCI+PHBhdGggZD0iTTkuODcsMGgwYy41LDUuMjMsNC42NCw5LjM3LDkuODcsOS44N2gwLDBjLTUuMjMuNS05LjM3LDQuNjQtOS44Nyw5Ljg3aDBzMCwwLDAsMEM5LjM3LDE0LjUxLDUuMjMsMTAuMzcsMCw5Ljg3aDAsMEM1LjIzLDkuMzcsOS4zNyw1LjIzLDkuODcsMGgwWiIvPjwvc3ZnPg==");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* Background color change */
body {
        transition: background 1s ease;
    }
    
    .color-white {
        background: #fff;
    }
    
		.color-light {
        background: #EEE8E1;
    }

    .color-beige {
        background: #ddc6a8;
    }
		
    
    .color-dark {
        background: #90754E;
    }

		.color-black {
        background: black;
    }
    
    .color-dark .px-panel .elementor-element p, .color-dark .px-panel .elementor-heading-title, .color-dark .px-panel .elementor-element .elementor-heading-title, .color-dark .px-panel li span, .color-dark .px-panel span, .color-black .px-panel span, .color-dark .px-panel div, .color-black .px-panel div, .color-black .px-inc-logo, .color-black .elementor-icon-box-title {
        fill: white;
        color: white !important;
    }

.color-dark .px-panel .px-link a::after, .color-black .px-panel .px-link a::after { 
	background-color: white !important;
} 

.color-dark .px-panel .px-link-alt a::after, .color-black .px-panel .px-link-alt a::after { 
	background-color: #D9A163 !important;
} 
    
.color-dark .px-panel .px-logos-carousel .swiper-slide-image, .color-black .px-panel .px-logos-carousel .swiper-slide-image, .color-dark .px-panel .px-img-invert, .color-black .px-panel .px-img-invert {
	filter: invert(1);
}

.color-dark .px-panel .elementor-button-text, .color-dark .px-panel .elementor-button-icon {
        color: white;
    }
    

.color-black .px-panel .elementor-button-text, .color-black .px-panel .elementor-button-icon {
        color: white !important;
    }
    
.color-black .px-panel p, .color-black .px-panel .elementor-heading-title, .color-black .px-panel li span {
        color: white !important;
    }

.color-dark .px-panel .elementor-icon-list-icon svg, .color-black .px-panel .elementor-icon-list-icon svg, .color-dark .px-panel .elementor-icon-list-icon i, .color-black .px-panel .elementor-icon-list-icon i {
	fill: white !important;
	color: white !important;
}

    .color-black .px-panel .elementor-button {
        background: white;
        color: var( --e-global-color-4da9a17 );
    }

.color-beige .px-panel .px-outline-icon {
        stroke: #000 !important;
    }

/* Cursor Styling */
.px-custom-cursor {
    font-family: 'Inclusive Sans', Sans-Serif;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 200;
}

/* Website Grain texture */
/* :root{
  --grain-opacity: .1;
  --grain-size: 140px;
}

body::after{
  content: "";
  position: fixed;
  inset: 0;
	margin: 0;
  pointer-events: none;
  z-index: 99999;
  background-image: url("https://cdn.prod.website-files.com/64ea2afe862892bff8adbb79/64ea2d60f889e9794f2d0df1_grain.gif");
  background-size: var(--grain-size) var(--grain-size);
  background-repeat: repeat;
  mix-blend-mode: multiply;
  opacity: var(--grain-opacity);
} */

.px-trip-teaser {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.px-limit-text {
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Celebrate Cards */
@media screen and (min-width: 1024px) {
	@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(10px);
  }
}

.px-card {
  min-height: max(70vh, 600px);
}
	
.px-card .px-hidden-header {
  opacity: 0;
}

.px-card:hover .px-hidden-header {
  animation: fadeInUp 0.5s ease forwards;
  pointer-events: auto;
}

.px-card:not(:hover) .px-hidden-header {
  animation: fadeOutDown 0.3s ease forwards;
}

.px-card:before {
	    background-color: transparent;
    --background-overlay: '';
    background-image: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.1) 100%);
}
.px-card:hover:before {
	    background-color: transparent;
    --background-overlay: '';
    background-image: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.1) 100%);
}
}

@media screen and (max-width: 1024px) {
.px-card {
  min-height: max(60vh, 400px);
}

.px-card:before {
	    background-color: transparent;
    --background-overlay: '';
    background-image: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.1) 100%);
}
}

/* Journeys Progress Bar */
.px-timeline-left {

        position: sticky;
        top:50vh;

    }
#day-heading {
  transition: opacity 0.2s ease-in-out;
}

.px-bar-container {
  position: relative; 
}


.px-timeline-bar {
  position: absolute;
  top: 0;
  bottom: 0; 
  left: 0;
  width: 3px;  
  overflow: hidden; 
  pointer-events: none;
}

.px-progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  transform-origin: top;
  transform: scaleY(0.0001);
  will-change: transform;
  backface-visibility: hidden;
}

.px-bar-container:empty::before {
  content: "";
  display: block;
  min-height: 60vh;
}

/* Logos Marquee */
.px-logos-carousel .swiper-slide-image {
	max-height: 50px;
}
        
.px-logos-carousel .swiper-slide {
	max-width: 200px;
}
        
.px-logos-carousel .elementor-image-carousel-wrapper {
	overflow: visible;
}

.px-logos-carousel .elementor-main-swiper {
	overflow: visible;
}
        
.px-logos-carousel .swiper-wrapper {
	-webkit-transition-timing-function: linear !important;
	-moz-transition-timing-function: linear !important;
	-o-transition-timing-function: linear !important;
	transition-timing-function: linear !important; 
}

/* PX CSS */
.px-carousel-gallery .gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 0;
    column-gap: 140px;
    overflow: hidden;
    min-height: 120px;
}

.px-carousel-gallery .gallery figure {
    max-width: 100% !important;
}

.px-carousel-gallery .gallery .gallery-icon.landscape {
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateY(100%);
    opacity: 0;
    cursor: pointer;
    will-change: opacity, transform;
	min-height: 120px;
}

.px-carousel-gallery .gallery figure img {
    max-height: 120px !important;
    transition: .3s;
}

.px-carousel-gallery .gallery figure:hover img {
    transform: scale(1.1);
}

/**** Start designing a custom fill text ****/

.txt-fill.block .fill {
    position: relative;
    display: inline-block;
    -webkit-text-fill-color: color-mix(in srgb, currentColor 40%, transparent);
    -webkit-background-clip: text;
    background-repeat: no-repeat;
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 0% 100%;
    transition: background-size 0.3s ease-out;
}

.txt-fill .fill {
    position: relative;
    display: inline;
    -webkit-text-fill-color: color-mix(in srgb, currentColor 40%, transparent);
    -webkit-background-clip: text;
    background-repeat: no-repeat;
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 0% 100%;
    transition: background-size 0.3s ease-out;
}

.txt-fill.light .fill {
    -webkit-text-fill-color: rgba(255, 255, 255, 0.2) !important;
    background-image: linear-gradient(#fff, #fff) !important;
}

/**** End designing a custom fill text ****/


/**** Start designing a custom title ****/

.px-heading {
    display: inline-flex;
    flex-direction: column;
    font-family: "Inter", Sans-serif;
    font-size: 48px;
    font-weight: normal;
    line-height: 68px;
    color: #FFFFFF;
/*     text-transform: capitalize; */
}

.px-first-part {
    position: relative;
    width: fit-content;
}

.px-first-part::after {
    content: '\e5c8';
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    position: absolute;
    left: 102%;
    bottom: 0;
    font-size: 68px;
    color: #EF5DA8;
    transition: .4s;
}

.px-heading:hover .px-first-part::after {
    left: 108%;
}

.px-word-ticker-wrapper {
    width: 100%;
}

.px-word-ticker-wrapper .px-word-ticker {
    display: inline-grid;
    flex-direction: column;
    position: relative;
    width: fit-content;
}

.px-word-ticker-wrapper .px-word-ticker span {
    grid-area: 1 / -1;
}

/**** End designing a custom title ****/


/**** Start designing a custom cursor ****/

.px-custom-cursor {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 20px;
    height: 20px;
	color: #000000;
    background: #ffffff;
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(1);
    transition: width 0.2s ease, height 0.2s ease;
    z-index: 9997;
    cursor: none;
	-webkit-box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
	-moz-box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
	box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
}

[class="px-custom-cursor"],
[class="px-hover"],
[class="px-custom-cursor px-hover"],
[class="px-hover px-custom-cursor"] {
    mix-blend-mode: difference;
}

.px-custom-cursor.px-hover {
    width: 50px;
    height: 50px;
}

.px-custom-cursor.px-show-icon {
    width: 65px;
    height: 65px;
}

.px-custom-cursor.px-show-name {
    width: fit-content;
    padding: 4px 16px;
    border-radius: 15px;
}

.px-custom-cursor svg {
    width: 36px !important;
    height: 36px !important;
    fill: #000000 !important;
}

.px-custom-cursor::after {
    content: attr(data-label);
    position: absolute;
    top: auto;
    left: auto;
    font-size: 12px;
    font-weight: 400;
    text-transform: uppercase;
}

/**** End designing a custom cursor ****/


/**** Start designing a custom button ****/

.px-btn .elementor-button-content-wrapper {
    align-items: center;
}

.px-btn .elementor-button-text,
.px-btn .elementor-button-icon {
    transition: .7s ease;
}

.px-btn .elementor-button-text {
    z-index: 1;
    padding-right: 10px;
}

.px-btn a:hover .elementor-button-text {
    padding-right: 0px;
    padding-left: 10px;
}

.px-btn .elementor-button-icon {
    z-index: 2;
}

.px-btn .elementor-button-icon svg {
    width: 60px;
    height: 60px;
}

.px-btn a:hover .elementor-button-icon rect {
    fill: black;
}

.px-btn a:hover .elementor-button-icon path {
    fill: white;
}

/**** End designing a custom button ****/

/**** Start designing a custom hover links ****/

.px-hover-links a,
.px-hover-link a {
    display: inline-grid !important;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

.px-hover-links a span,
.px-hover-link a span {
    grid-area: 1 / -1;
    transition: transform 0.4s ease, opacity 0.2s ease;
}

/**** End designing a custom hover links ****/

/**** Start designing a custom page loader ****/

.px-page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 0vh;
    background-color: #fff;
    z-index: 9999;
    overflow: hidden;
    transition: 1s ease;
    /* transition: 1s ease 1.1s; */
}

.px-page-loader::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    background: conic-gradient(from 45deg, #000000 , #dddddddd , #ffffff );
    background-size: 400% 400%;
    animation: gradientBG 4s ease-in infinite;
    transition: height 1s ease;
}

/* Animation from one color to another */
@keyframes gradientBG {
    0% {
        background-position: 0% 60%;
    }

    50% {
        background-position: 80% 80%;
    }

    100% {
        background-position: 100% 100%;
    }
}


/* background: conic-gradient(from 90deg, #000000, rgb(139, 139, 139), rgb(255, 255, 255),#000000); */
/* background: linear-gradient(-45deg, #000000, #ffffff, #000000, #ffffff); */
.px-page-loader.finish {
    height: 0;
}

.px-page-loader.finish::after {
    height: 0;
    /* transform: scaleY(0);  */
}

.px-page-loader svg {
    width: 100px;
    height: auto;
    max-width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    fill: red;
    z-index: 10001;
}



/**** End designing a custom page loader ****/

/* Slide-in reveal section */
.px-slide-in {
  position: relative;
  overflow: hidden;
}

.px-slide-in::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  transition: transform 1s ease;
  transform: translateY(0);
  z-index: 99;
}

.px-slide-in.reveal::before {
  transform: translateY(-100%);
}

/* PX Marquee Text Loop */
.px-marquee-text {
    overflow: hidden;
    white-space: nowrap;
    position: relative;
  }
  .px-marquee-track {
    display: inline-flex;
    will-change: transform;
  }

  .px-marquee-item {
    flex: none;
    padding-right: 2rem;
  }


/* Back to top */
.back-to-top {
    position: fixed;
    right: var(--bt-right);
    bottom: var(--bt-bottom);
    width: var(--bt-size);
    height: var(--bt-size);
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,.1);
    background: var(--bt-bg);
    color: var(--bt-fg);
    box-shadow: var(--bt-shadow);
    font: 300 14px/1 "Inclusive Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    line-height: 1em;
    display: grid;
    place-items: center;
    cursor: pointer;
    z-index: var(--bt-z);

    transform: translateY(140%) rotate(0deg);
    opacity: 0;
    pointer-events: none;

    transition:
      transform var(--bt-slide-ms) cubic-bezier(.2,.8,.2,1),
      opacity var(--bt-slide-ms) ease;
    will-change: transform, opacity;
  }

  .back-to-top--visible {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
    pointer-events: auto;
  }

  .back-to-top__label { letter-spacing: 1px; user-select: none; }

  .back-to-top:focus-visible {
    outline: 2px solid #3b82f6; outline-offset: 3px;
  }

  @media (prefers-reduced-motion: reduce) {
    .back-to-top { transition: none; }
  }