/* Tri-Bikram Sliders v1.1.0 - styled to match the original Slider Revolution design */
.tby-slider {
	--tby-speed: 300ms; /* original: fade, 300ms */
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.tby-slider__track {
	position: relative;
	width: 100%;
	height: 100%;
}

.tby-slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--tby-speed) ease, visibility 0s linear var(--tby-speed);
}

.tby-slider__slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity var(--tby-speed) ease, visibility 0s;
	z-index: 1;
}

.tby-slider__img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: cover;
	object-position: center center;
}

/* =========================================================================
 * Homepage hero - original grid 1280 x 580, "fullwidth" layout.
 * Everything scales down proportionally below 1280px, like the original.
 * ====================================================================== */
.tby-slider--hero {
	--tby-vw: calc(100vw - var(--tby-sbw, 0px));
	--u: min(1px, calc(var(--tby-vw) / 1280));
	width: var(--tby-vw);
	margin-left: calc(50% - var(--tby-vw) / 2);
	height: calc(580 * var(--u));
	background: #1a1a1a;
}

.tby-stage {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	z-index: 2;
	width: calc(1280 * var(--u));
	transform: translateX(-50%);
	pointer-events: none;
}

.tby-stage a {
	pointer-events: auto;
}

.tby-slider--hero .tby-slider__heading {
	position: static;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: inherit;
	line-height: inherit;
	text-shadow: none;
}

.tby-layer {
	position: absolute;
	left: calc(var(--x) * var(--u));
	margin: 0;
	white-space: nowrap;
}

.tby-layer--mid {
	top: calc(50% + var(--y) * var(--u));
	transform: translateY(-50%);
}

.tby-layer--top {
	top: calc(var(--t) * var(--u));
}

.tby-anim {
	display: inline-block;
}

/* Line 1: Poppins 600, 85px, orange */
.tby-slider__small {
	color: #fb5b21;
	font-family: Poppins, sans-serif;
	font-size: calc(var(--fs, 85) * var(--u));
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: uppercase;
}

/* Line 2: Raleway 500, 40px / 60px, white (masked slide-in) */
.tby-slider__title {
	overflow: hidden;
	color: #fff;
	font-family: Raleway, sans-serif;
	font-size: calc(40 * var(--u));
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0;
	line-height: calc(60 * var(--u));
	text-transform: uppercase;
}

/* Slide 3 used Actor 48px for line 2 */
.tby-slider__title.tby-font-actor {
	font-family: Actor, sans-serif;
	font-size: calc(var(--fs, 48) * var(--u));
	font-weight: 400;
	line-height: normal;
}

/* Button: Roboto 900, 16px, green #7cd67d, 3px radius, hover #f29c06 */
.tby-slider a.tby-slider__btn,
.tby-slider a.tby-slider__btn:link,
.tby-slider a.tby-slider__btn:visited {
	display: inline-block;
	padding: calc(20 * var(--u)) calc(32 * var(--u));
	border: 0;
	border-radius: calc(3 * var(--u));
	background: #7cd67d;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	font-family: Roboto, sans-serif;
	font-size: calc(16 * var(--u));
	font-style: normal;
	font-weight: 900;
	letter-spacing: 0;
	line-height: calc(12 * var(--u));
	text-decoration: none;
	text-transform: uppercase;
	outline: none;
}

.tby-slider a.tby-slider__btn:hover,
.tby-slider a.tby-slider__btn:focus,
.tby-slider a.tby-slider__btn:active {
	background: #f29c06;
	color: #fff;
	text-decoration: none;
}

.tby-slider a.tby-slider__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

/* ---------- Entrance animations (from the original layer settings) ---------- */
@keyframes tby-smooth-slide-bottom {
	from { opacity: 0; transform: translateY(100%); }
	to   { opacity: 1; transform: none; }
}

@keyframes tby-smooth-mask-right {
	from { opacity: 0; transform: translateX(100%); }
	to   { opacity: 1; transform: none; }
}

@keyframes tby-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.tby-slider--hero .tby-anim,
.tby-slider--hero a.tby-slider__btn {
	opacity: 0;
}

/* SmoothSlideFromBottom, 1500ms, Power4.easeInOut */
.tby-slider--hero .is-active .tby-slider__small .tby-anim {
	animation: tby-smooth-slide-bottom 1500ms cubic-bezier(0.77, 0, 0.175, 1) var(--d, 0ms) both;
}

/* SmoothMaskFromRight, 1500ms, Power3.easeOut */
.tby-slider--hero .is-active .tby-slider__title .tby-anim {
	animation: tby-smooth-mask-right 1500ms cubic-bezier(0.215, 0.61, 0.355, 1) var(--d, 0ms) both;
}

/* tp-fade, 300ms, Power2.easeInOut */
.tby-slider--hero .is-active a.tby-slider__btn {
	animation: tby-fade 300ms cubic-bezier(0.455, 0.03, 0.515, 0.955) var(--d, 0ms) both;
}

/* ---------- Photo sliders ("auto" layout, full content width) ---------- */
.tby-slider--gallery {
	width: 100%;
	aspect-ratio: var(--tby-ratio, 16/10);
	margin: 0 auto;
	background: #f2f2f2;
}

/* =========================================================================
 * Navigation - Slider Revolution "uranus" style
 * ====================================================================== */
.tby-slider .tby-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	min-width: 0;
	min-height: 0;
	margin: -25px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #fff;
	line-height: 0;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.tby-slider__arrow svg {
	width: 24px;
	height: 40px;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: opacity 0.3s;
}

.tby-slider__arrow:hover svg {
	opacity: 0.75;
}

.tby-slider__arrow--prev {
	left: 20px;
}

.tby-slider__arrow--next {
	right: 20px;
}

/* Room sliders: arrows only show on hover (original "arrows_always_on: false") */
.tby-slider--gallery .tby-slider__arrow {
	opacity: 0;
}

.tby-slider--gallery:hover .tby-slider__arrow,
.tby-slider--gallery:focus-within .tby-slider__arrow {
	opacity: 1;
}

@media (hover: none) {
	.tby-slider--gallery .tby-slider__arrow {
		opacity: 1;
	}
}

.tby-slider__dots {
	position: absolute;
	bottom: 25px;
	left: 0;
	right: 0;
	z-index: 3;
	display: flex;
	justify-content: center;
	gap: 10px;
	line-height: 0;
}

.tby-slider .tby-slider__dot {
	position: relative;
	width: 15px;
	height: 15px;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0);
	cursor: pointer;
	transition: box-shadow 0.3s ease;
}

.tby-slider .tby-slider__dot::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.3);
	transition: background-color 0.3s ease, transform 0.3s ease;
}

.tby-slider .tby-slider__dot.is-active,
.tby-slider .tby-slider__dot:hover {
	box-shadow: 0 0 0 2px #fff;
}

.tby-slider .tby-slider__dot.is-active::before,
.tby-slider .tby-slider__dot:hover::before {
	background-color: #fff;
	transform: scale(0.4);
}

.tby-slider__arrow:focus-visible,
.tby-slider__dot:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/* =========================================================================
 * Phones: the original scaled everything down to a tiny size (button text
 * ~5px). Below 768px keep the same look but at a readable size.
 * ====================================================================== */
@media (max-width: 767px) {
	.tby-slider--hero {
		height: max(300px, calc(580 * var(--u)));
	}

	.tby-stage {
		left: 0;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-end;
		box-sizing: border-box;
		width: 100%;
		padding: 0 20px 60px;
		transform: none;
	}

	.tby-slider--hero .tby-slider__heading {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.tby-layer,
	.tby-layer--mid,
	.tby-layer--top {
		position: static;
		transform: none;
		white-space: normal;
	}

	.tby-slider__small {
		font-size: 34px;
		line-height: 1.2;
	}

	.tby-slider__title {
		font-size: 18px;
		line-height: 26px;
	}

	.tby-slider__title.tby-font-actor {
		font-size: 22px;
		line-height: 1.2;
	}

	.tby-slider a.tby-slider__btn,
	.tby-slider a.tby-slider__btn:link,
	.tby-slider a.tby-slider__btn:visited {
		margin-top: 14px;
		padding: 14px 22px;
		border-radius: 3px;
		font-size: 13px;
		line-height: 12px;
	}

	.tby-slider--hero .tby-slider__arrow {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tby-slider {
		--tby-speed: 0ms;
	}

	.tby-slider--hero .tby-anim,
	.tby-slider--hero a.tby-slider__btn,
	.tby-slider--hero .is-active .tby-slider__small .tby-anim,
	.tby-slider--hero .is-active .tby-slider__title .tby-anim,
	.tby-slider--hero .is-active a.tby-slider__btn {
		animation: none;
		opacity: 1;
	}
}
