/* ========================================================================== */
/* HOTELS MODULE - styles/hotels.css                                        */
/* Loaded via @import in styles/main.css                                    */
/* Icons: components/code/material-symbols.css.php (not duplicated here)    */
/*                                                                          */
/* INDEX - search "SECTION:" to jump:                                       */
/*   layout-global       .hotels-page shared container / padding            */
/*   index-intro         hotels/index.php + hotels/sections/hotels-intro.php*/
/*   destination-list    hotels/cusco|aguas-calientes/sections/hotels-listing.php */
/*   index-reviews       hotels/sections/hotel-reviews.php                  */
/*   index-faqs          hotels/sections/hotel-faqs.php                     */
/*   destination-page    hotels/cusco|aguas-calientes/index.php spacing     */
/*   detail-hero         hotels/sections/hotel-detail-hero.php              */
/*                         -> templates/heroes/hotels-gallery-hero.php       */
/*   listing-card        hotels/templates/cards/hotel-listing-card.php      */
/*   detail-body         hotels/sections/hotel-detail-body.php (80/20)      */
/*   detail-about        hotels/sections/hotel-detail-about.php             */
/*   detail-services     hotels/sections/hotel-detail-services.php          */
/*   detail-content      hotels/sections/hotel-detail-content.php           */
/*   detail-accommodation hotels/sections/hotel-detail-accommodation.php    */
/*   room-card           hotels/templates/cards/hotel-room-card.php       */
/*                         + hotel-room-card-gallery.php                    */
/*   extend-stay-card    hotels/templates/cards/hotel-extend-stay-card.php  */
/*   form-validation     public/assets/js/components/hotel-form-validation.js */
/*   extend-stay-form    hotels/forms/extend-stay/widget.php                */
/*   form-recaptcha      widget.php - .hotel-extend-form__recaptcha         */
/*   form-responsive     extend-stay widget - max-width 767px               */
/* ========================================================================== */

/* SECTION: layout-global */
/* Page shell: hotels/index.php, hotels/templates/hotel-detail.php (body.hotels-page) */
/* -------------------------------------------------------------------------- */

.hotels-page {
	overflow-x: clip;
}

.hotels-page .main-container {
	overflow-x: clip;
	max-width: 100%;
}

.hotels-page .inca-trail-permit-availability-section,
.hotels-page .hotels-gallery-hero,
.hotels-page .hotels-detail-body {
	padding-left: 0;
	padding-right: 0;
}

.hotels-page .inca-trail-permit-availability-section .container.page-hero__container,
.hotels-page .hotels-gallery-hero .container.page-hero__container,
.hotels-page .hotels-detail-body .container.page-hero__container {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-top: 4.8rem;
	padding-bottom: 4.8rem;
}

@media screen and (max-width: 991px) {
	.hotels-page .page-hero__content .container {
		padding-left: 3.2rem;
		padding-right: 3.2rem;
	}

	.hotels-page .inca-trail-permit-availability-section {
		padding-left: 0;
		padding-right: 0;
	}

	.hotels-page:not(.hotels-detail-page) .inca-trail-permit-availability-section .container.page-hero__container,
	.hotels-page:not(.hotels-detail-page) .hotels-gallery-hero .container.page-hero__container,
	.hotels-page:not(.hotels-detail-page) .hotels-detail-body .container.page-hero__container {
		padding-top: 6.4rem;
		padding-bottom: 6.4rem;
		padding-left: 3.2rem;
		padding-right: 3.2rem;
	}

	.hotels-page.hotels-detail-page .inca-trail-permit-availability-section .container.page-hero__container,
	.hotels-page.hotels-detail-page .hotels-gallery-hero .container.page-hero__container,
	.hotels-page.hotels-detail-page .hotels-detail-body .container.page-hero__container {
		padding-left: 3.2rem;
		padding-right: 3.2rem;
	}

	.hotels-page .hotels-intro:has(+ .reviews-slider) .container.page-hero__container,
	.hotels-page .reviews-slider:has(+ .hotels-faqs) .container.page-hero__container {
		padding-bottom: 0;
	}

	.hotels-page .reviews-slider .inca-trail-permit-book-tours__slider {
		margin-top: 2.4rem;
	}

	.hotels-page .reviews-slider .review-card {
		min-height: 0;
	}
}

@media screen and (max-width: 767px) {
	.hotels-page .inca-trail-permit-section-intro {
		margin-bottom: 2rem;
	}

	.hotels-intro .inca-trail-permit-availability-section__title,
	.reviews-slider .inca-trail-permit-availability-section__title,
	.hotels-faqs .inca-trail-permit-availability-section__title {
		font-size: 2.2rem;
		overflow-wrap: break-word;
	}

	.hotels-faqs .inca-trail-permit-faqs__accordion {
		flex-direction: column;
	}

	.hotels-faqs .accordion-item__title {
		font-size: 1.4rem;
		padding-right: 3.6rem;
		overflow-wrap: break-word;
	}

	.hotels-intro .hotel-dest-grid {
		margin-top: 2rem;
		gap: 1.6rem;
	}

	.hotel-dest-card {
		min-height: 0;
		aspect-ratio: 4 / 5;
	}

	.hotel-dest-card__link {
		min-height: 100%;
	}
}

/* SECTION: index-intro */
/* hotels/sections/hotels-intro.php + components/card/dest-card.php (.hotel-dest-*) */
/* -------------------------------------------------------------------------- */

.hotels-intro .inca-trail-permit-availability-section__title {
	color: #000;
}

.hotels-intro .inca-trail-permit-section-intro .inca-trail-permit-availability-section__title::after {
	border-radius: 999px;
}

.hotels-page .hotels-intro.inca-trail-permit-availability-section,
.hotels-page .reviews-slider.inca-trail-permit-availability-section,
.hotels-page .hotels-faqs.inca-trail-permit-availability-section {
	padding-top: 0;
	padding-bottom: 0;
}

/* SECTION: destination-list */
/* hotels/cusco/sections/hotels-listing.php                                 */
/* hotels/aguas-calientes/sections/hotels-listing.php                       */
/* hotels/sections/hotels-listing-cards.php                                 */
/* -------------------------------------------------------------------------- */

.hotels-destination .inca-trail-permit-availability-section__title {
	color: #000;
}

.hotels-destination .inca-trail-permit-section-intro .inca-trail-permit-availability-section__title::after {
	border-radius: 999px;
}

.hotels-destination__grid {
	margin-top: 0;
}

.hotels-destination__price {
	font-size: 3.5rem;
}

.hotels-destination__note {
	text-align: center;
	color: #555;
	font-weight: 500;
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
	padding: 2rem 0;
	margin: 5rem 0 3rem 0;
	font-style: italic;
	font-size: 1.8rem;
}

.hotels-destination__note strong {
	color: #000;
	font-weight: 700;
}

/* Destination cards grid - part of hotels/sections/hotels-intro.php          */
/* -------------------------------------------------------------------------- */

/** Grid **/
.hotel-dest-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 3rem;
}

@media screen and (min-width: 768px) {
	.hotel-dest-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/** Card - layout **/
.hotel-dest-card {
	height: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 35rem;
	border-radius: 12px;
	overflow: hidden;
}

@media screen and (min-width: 768px) {
	.hotel-dest-card {
		min-height: 45rem;
	}
}

.hotel-dest-card__link {
	position: relative;
	display: flex;
	align-items: flex-end;
	width: 100%;
	height: 100%;
	min-height: inherit;
	padding: 3.2rem;
	color: #fff;
	text-decoration: none;
	background-color: #111;
}

.hotel-dest-card__link:hover {
	color: #fff;
	text-decoration: none;
}

/** Card - media **/
.hotel-dest-card__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform .4s ease;
}

.hotel-dest-card__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	height: 70%;
	background: linear-gradient(180deg,
			rgba(0, 0, 0, 0) 0%,
			rgba(0, 0, 0, 0.3) 40%,
			rgba(0, 0, 0, 0.55) 75%,
			rgba(0, 0, 0, 0.65) 100%);
	pointer-events: none;
}

.hotel-dest-card__link:hover .hotel-dest-card__image {
	transform: scale(1.05);
}

/** Card - content **/
.hotel-dest-card__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	width: 100%;
}

.hotel-dest-card__eyebrow {
	font-size: 1.4rem;
	font-weight: 300;
	font-style: italic;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
}

.hotel-dest-card__title {
	margin: 0;
	color: #fff;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.15;
	text-transform: uppercase;
}

@media screen and (max-width: 767px) {
	.hotel-dest-card__title {
		font-size: 2.2rem;
		overflow-wrap: break-word;
	}

	.hotel-dest-card__link {
		padding: 2rem;
	}
}

.hotel-dest-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	margin-top: 0.8rem;
	padding: 0.8rem 2.4rem;
	border: 2px solid #fff;
	border-radius: 4px;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transition: background-color .25s ease, color .25s ease;
}

.hotel-dest-card__link:hover .hotel-dest-card__cta {
	background-color: #fff;
	color: #111;
}

/* SECTION: index-reviews */
/* hotels/sections/hotel-reviews.php                                        */
/* components/card/review-card.php + components/sections/reviews-slider.php */
/* -------------------------------------------------------------------------- */

.reviews-slider .inca-trail-permit-section-intro {
	margin-bottom: 0;
}

.reviews-slider.inca-trail-permit-availability-section {
	overflow: visible;
}

.reviews-slider .container.inca-trail-permit-availability-section__container {
	overflow: visible;
}

.reviews-slider .inca-trail-permit-book-tours__slider,
.reviews-slider__carousel {
	--cards-slider-gap: 10px;
	margin-top: 4rem;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
}

.reviews-slider .cards-slider__viewport {
	overflow: hidden;
	padding: 1.2rem 0.8rem 1.6rem;
	margin: -1.2rem -0.8rem -1.6rem;
	box-sizing: border-box;
}

.reviews-slider .inca-trail-permit-availability-section__title {
	color: #000;
}

.reviews-slider .cards-slider__controls {
	position: relative;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	padding-left: 2.4rem;
	padding-right: 2.4rem;
}

.reviews-slider .cards-slider__btn {
	z-index: 10;
	pointer-events: auto;
}

.reviews-slider .cards-slider__btn--prev {
	left: 0;
	transform: translate(0, -50%);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.reviews-slider .cards-slider__btn--next {
	right: 0;
	transform: translate(0, -50%);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.reviews-slider .cards-slider__slide {
	display: flex;
	height: auto;
	align-items: stretch;
}

.reviews-slider .cards-slider__slide .review-card {
	flex: 1 1 auto;
	min-width: 0;
}

.reviews-slider .cards-slider {
	max-width: 100%;
	min-width: 0;
	overflow: visible;
}

.reviews-slider .inca-trail-permit-section-intro .inca-trail-permit-availability-section__title::after {
	border-radius: 999px;
}

.review-card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	min-height: 0;
	padding: 1.8rem 1.6rem 1.6rem;
	border: 1px solid #f5f5f5;
	border-radius: 12px;
	background-color: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.review-card__header {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-bottom: 1rem;
}

.review-card__avatar {
	flex: 0 0 auto;
	width: 4rem;
	height: 4rem;
	overflow: hidden;
	border-radius: 50%;
}

.review-card__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.review-card__user {
	min-width: 0;
}

.review-card__name {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.2rem;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.25;
	color: #111;
}

.review-card__verified {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background-color: #00aa6c;
	color: #fff;
	font-size: 0.75rem;
	line-height: 1;
}

.review-card__verified .material-symbols-outlined {
	font-size: 1rem;
}

.review-card__date {
	display: block;
	font-size: 0.95rem;
	font-style: normal;
	font-weight: 300;
	line-height: 1.2;
	color: #888;
}

.review-card__stars {
	display: flex;
	gap: 0.25rem;
	margin-bottom: 0.9rem;
}

.review-card__stars .review-card__star-icon {
	color: #00aa6c;
	font-size: 1.05rem;
}

.review-card__title {
	margin: 0 0 0.7rem;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.35;
	color: #111;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.review-card__text {
	flex: 1 1 auto;
	margin-bottom: 1.2rem;
}

.review-card__text p {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1.65;
	letter-spacing: 0.03em;
	color: #777;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

.review-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding-top: 1.2rem;
	border-top: 1.5px solid #eee;
}

.review-card__link {
	font-size: 1.2rem;
	font-weight: 600;
	color: #00aa6c;
	text-decoration: none;
}

.review-card__link:hover {
	color: #008f5a;
	text-decoration: underline;
}

.review-card__likes {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.95rem;
	font-weight: 300;
	color: #888;
}

.review-card__likes .material-symbols-outlined {
	font-size: 1.1rem;
	color: #b5b5b5;
}

@media screen and (max-width: 767px) {
	.review-card {
		padding: 1.6rem 1.4rem 1.4rem;
	}
}

/* SECTION: index-faqs */
/* hotels/sections/hotel-faqs.php                                           */
/* hotels/cusco/sections/hotel-faqs.php + aguas-calientes/sections/...      */
/* -------------------------------------------------------------------------- */

.hotels-faqs .inca-trail-permit-availability-section__title {
	color: #000;
}

.hotels-faqs .inca-trail-permit-section-intro .inca-trail-permit-availability-section__title::after {
	border-radius: 999px;
}

.hotels-faqs .inca-trail-permit-faqs__accordion .accordion-item {
	border: 1px solid #eee;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}

.hotels-faqs .accordion-item__title::after {
	content: none;
	display: none;
}

.hotels-faqs .accordion-item__toggle-icon {
	position: absolute;
	right: 1.6rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 2rem;
	color: var(--fc-heading);
	pointer-events: none;
}

.hotels-faqs .accordion-item__toggle-icon--open {
	display: none;
}

.hotels-faqs .accordion-item.active .accordion-item__toggle-icon--closed {
	display: none;
}

.hotels-faqs .accordion-item.active .accordion-item__toggle-icon--open {
	display: inline-block;
}

.hotels-faqs .accordion-item.active .accordion-item__toggle-icon {
	color: #fff;
}

.faqs-accordion--with-toggle-icons .inca-trail-permit-faqs__accordion .accordion-item {
	border: 1px solid #eee;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}

.faqs-accordion--with-toggle-icons .accordion-item__title::after {
	content: none;
	display: none;
}

.faqs-accordion--with-toggle-icons .accordion-item__toggle-icon {
	position: absolute;
	right: 1.6rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 2rem;
	color: var(--fc-heading);
	pointer-events: none;
}

.faqs-accordion--with-toggle-icons .accordion-item__toggle-icon--open {
	display: none;
}

.faqs-accordion--with-toggle-icons .accordion-item.active .accordion-item__toggle-icon--closed {
	display: none;
}

.faqs-accordion--with-toggle-icons .accordion-item.active .accordion-item__toggle-icon--open {
	display: inline-block;
}

.faqs-accordion--with-toggle-icons .accordion-item.active .accordion-item__toggle-icon {
	color: #fff;
}

/* SECTION: destination-page */
/* hotels/cusco/index.php + hotels/aguas-calientes/index.php                */
/* Listing + FAQs vertical spacing (.hotels-cusco-page, .hotels-aguas-...)  */
/* -------------------------------------------------------------------------- */

.hotels-cusco-page .hotels-cusco.inca-trail-permit-availability-section,
.hotels-aguas-calientes-page .hotels-aguas-calientes.inca-trail-permit-availability-section {
	background-color: #fff;
}

.hotels-cusco-page .hotels-cusco .inca-trail-permit-section-intro,
.hotels-aguas-calientes-page .hotels-aguas-calientes .inca-trail-permit-section-intro {
	margin-top: 0;
}

/* Aguas Calientes + Cusco - listing y FAQs: padding vertical del contenedor */
.hotels-aguas-calientes-page .hotels-aguas-calientes.inca-trail-permit-availability-section,
.hotels-aguas-calientes-page .hotels-faqs.inca-trail-permit-availability-section,
.hotels-cusco-page .hotels-cusco.inca-trail-permit-availability-section,
.hotels-cusco-page .hotels-faqs.inca-trail-permit-availability-section {
	padding-top: 0;
	padding-bottom: 0;
}

.hotels-aguas-calientes-page .hotels-aguas-calientes .container.page-hero__container,
.hotels-aguas-calientes-page .hotels-faqs .container.page-hero__container,
.hotels-cusco-page .hotels-cusco .container.page-hero__container,
.hotels-cusco-page .hotels-faqs .container.page-hero__container {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

@media screen and (max-width: 991px) {

	.hotels-aguas-calientes-page .hotels-aguas-calientes .container.page-hero__container,
	.hotels-aguas-calientes-page .hotels-faqs .container.page-hero__container,
	.hotels-cusco-page .hotels-cusco .container.page-hero__container,
	.hotels-cusco-page .hotels-faqs .container.page-hero__container {
		padding-top: 6.4rem;
		padding-bottom: 6.4rem;
	}
}

@media screen and (min-width: 992px) {

	.hotels-aguas-calientes-page .hotels-aguas-calientes .container.page-hero__container,
	.hotels-aguas-calientes-page .hotels-faqs .container.page-hero__container,
	.hotels-cusco-page .hotels-cusco .container.page-hero__container,
	.hotels-cusco-page .hotels-faqs .container.page-hero__container {
		padding-top: 6.4rem;
		padding-bottom: 6.4rem;
	}
}

/* Entre listado y FAQs: evitar doble padding inferior + superior */
.hotels-aguas-calientes-page .hotels-aguas-calientes:has(+ .hotels-faqs) .container.page-hero__container,
.hotels-cusco-page .hotels-cusco:has(+ .hotels-faqs) .container.page-hero__container {
	padding-bottom: 0;
}

.hotels-aguas-calientes-page .hotels-aguas-calientes:has(+ .hotels-faqs) .hotels-destination__note,
.hotels-cusco-page .hotels-cusco:has(+ .hotels-faqs) .hotels-destination__note {
	margin-bottom: 0;
}

/* Hotel detail - padding vertical cuerpo 80/20 (hotels-detail-body) */
.hotels-detail-page .hotels-detail-body .container.page-hero__container {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

@media screen and (min-width: 992px) {

	.hotels-detail-page .hotels-detail-body .container.page-hero__container {
		padding-bottom: 6.4rem;
	}
}

.hotels-detail-page .hotels-gallery-hero .container.page-hero__container {
	padding-top: 1.6rem;
	padding-bottom: 2.4rem;
}

@media screen and (min-width: 992px) {
	.hotels-detail-page .hotels-gallery-hero .container.page-hero__container {
		padding-top: 2.4rem;
		padding-bottom: 3.2rem;
	}
}

/* SECTION: detail-hero */
/* hotels/sections/hotel-detail-hero.php                                    */
/* hotels/templates/heroes/hotels-gallery-hero.php (.hotels-gallery-hero)   */
/* -------------------------------------------------------------------------- */

.hotels-gallery-hero {
	background-color: #fff;
}

.hotels-page .inca-trail-permit-availability-section .hotels-gallery-hero__breadcrumbs {
	margin-bottom: 2.4rem;
}

.hotels-page .inca-trail-permit-availability-section .inca-trail-permit-section-intro--center {
	margin-top: 0;
}

/* Breadcrumb */
.hotels-gallery-hero__breadcrumbs {
	margin-bottom: 1.2rem;
}

.hotels-gallery-hero__bc-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.2rem 0;
	padding: 0;
	margin: 0;
	list-style: none;
	font-size: 1.25rem;
	font-weight: 400;
	color: #b5b5b5;
}

.hotels-gallery-hero__bc-list .breadcrumbs__item {
	display: flex;
	align-items: center;
	color: #b5b5b5;
	white-space: nowrap;
}

.hotels-gallery-hero__bc-list .breadcrumbs__item+.breadcrumbs__item::before {
	content: '';
	display: inline-block;
	width: 0.4rem;
	height: 0.4rem;
	margin: 0 0.6rem;
	border-top: 1.5px solid #b5b5b5;
	border-right: 1.5px solid #b5b5b5;
	transform: rotate(45deg);
	flex-shrink: 0;
}

.hotels-gallery-hero__bc-list .breadcrumbs__item a,
.hotels-gallery-hero__bc-list .breadcrumbs__item a:link,
.hotels-gallery-hero__bc-list .breadcrumbs__item a:visited {
	color: #b5b5b5 !important;
	font-weight: 400;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.hotels-gallery-hero__bc-list .breadcrumbs__item a:hover,
.hotels-gallery-hero__bc-list .breadcrumbs__item a:focus {
	color: #DB5F15 !important;
	text-decoration: underline !important;
}

.hotels-gallery-hero__bc-list .breadcrumbs__item--current {
	color: #111;
	font-weight: 500;
	min-width: 0;
	white-space: normal;
	overflow: visible;
	text-overflow: unset;
	max-width: none;
}

@media screen and (max-width: 767px) {
	.hotels-gallery-hero__breadcrumbs {
		margin-bottom: 1rem;
	}

	.hotels-gallery-hero__bc-list {
		font-size: 1.2rem;
		flex-wrap: wrap;
	}

	.hotels-gallery-hero__bc-list .breadcrumbs__item {
		white-space: nowrap;
	}

	.hotels-gallery-hero__bc-list .breadcrumbs__item--current {
		white-space: normal;
		overflow: visible;
		text-overflow: unset;
		max-width: none;
	}
}

.hotels-gallery-hero__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.2rem;
	width: 100%;
	height: 50vh;
	min-height: 32rem;
}

.hotels-gallery-hero__item--featured,
.hotels-gallery-hero__thumbs {
	height: 100%;
	min-height: 0;
}

.hotels-gallery-hero__thumbs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 1.2rem;
}

.hotels-gallery-hero__item {
	overflow: hidden;
	border-radius: 10px;
	background-color: #f0f0f0;
	min-height: 0;
}

.hotels-gallery-hero__link {
	display: block;
	width: 100%;
	height: 100%;
	cursor: zoom-in;
	text-decoration: none;
}

.hotels-gallery-hero__link picture {
	display: block;
	width: 100%;
	height: 100%;
}

.hotels-gallery-hero__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

@media screen and (max-width: 767px) {
	.hotels-gallery-hero__grid {
		grid-template-columns: 1fr;
		height: auto;
		min-height: 0;
		gap: 0.8rem;
	}

	.hotels-gallery-hero__item--featured {
		height: 50vw;
		min-height: 22rem;
		max-height: 36rem;
	}

	.hotels-gallery-hero__thumbs {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-template-rows: auto;
		gap: 0.6rem;
		height: auto;
	}

	.hotels-gallery-hero__item--thumb {
		aspect-ratio: 4 / 3;
	}

	.hotels-gallery-hero,
	.hotels-gallery-hero__grid {
		max-width: 100%;
		min-width: 0;
	}
}

.hotels-gallery-hero__item--more {
	position: relative;
}

.hotels-gallery-hero__item--more .hotels-gallery-hero__link {
	position: relative;
	z-index: 0;
}

.hotels-gallery-hero__more-label {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0, 0, 0, 0.45);
	border-radius: 10px;
	color: #fff;
	font-size: 1.3rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	pointer-events: none;
}

/* SECTION: listing-card */
/* hotels/templates/cards/hotel-listing-card.php                            */
/* hotels/cusco/sections/hotels-listing.php                                 */
/* -------------------------------------------------------------------------- */

.hotels-listing-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2.4rem;
	width: 100%;
	margin-top: 3rem;
}

@media screen and (min-width: 768px) {
	.hotels-listing-grid--multi {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (min-width: 1200px) {
	.hotels-listing-grid--multi {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hotel-listing-card {
	width: 100%;
	aspect-ratio: 4 / 5;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.hotel-listing-card__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	text-decoration: none;
	overflow: hidden;
}

.hotel-listing-card__link:hover {
	color: #fff;
	text-decoration: none;
}

.hotel-listing-card__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.5s ease;
}

.hotel-listing-card__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.35);
	pointer-events: none;
}

.hotel-listing-card__badge {
	position: absolute;
	top: 2.4rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1.6rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.hotel-listing-card__badge--rating {
	left: 2.4rem;
}

.hotel-listing-card__badge--reviews {
	right: 2.4rem;
}

.hotel-listing-card__rating-star {
	color: #f5c518;
	font-size: 1rem;
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 20;
}

.hotel-listing-card__footer {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 3.2rem 3rem;
}

.hotel-listing-card__address {
	width: 100%;
	margin: 0;
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.3rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.01em;
}

.hotel-listing-card__body {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	width: 100%;
}

.hotel-listing-card h3.hotel-listing-card__title {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35em;
	flex: 1;
	min-width: 0;
	margin: 0;
	color: #fff;
	font-size: clamp(2rem, 2.2vw, 3.2rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.hotel-listing-card__title-line {
	display: inline;
	line-height: 1.15;
}

.hotel-listing-card__action {
	flex-shrink: 0;
	align-self: flex-end;
	display: grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	margin-bottom: 0.2rem;
	margin-left: auto;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition: background 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}

.hotel-listing-card__action-icon {
	grid-area: 1 / 1;
	display: grid;
	place-items: center;
	margin: 0;
	padding: 0;
	font-size: 28px;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 28;
	line-height: 1;
	transform-origin: center center;
	transition: opacity 0.65s ease-in-out, transform 0.65s ease-in-out;
}

.hotel-listing-card__action-icon--default {
	opacity: 1;
	transform: scale(1);
}

.hotel-listing-card__action-icon--hover {
	opacity: 0;
	transform: scale(0.92);
}

.hotel-listing-card__link:hover .hotel-listing-card__image {
	transform: scale(1.04);
}

.hotel-listing-card__link:hover .hotel-listing-card__action {
	background: rgba(255, 255, 255, 0.28);
	transform: translateY(-0.2rem);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
}

.hotel-listing-card__link:hover .hotel-listing-card__action-icon--default {
	opacity: 0;
	transform: scale(0.92);
}

.hotel-listing-card__link:hover .hotel-listing-card__action-icon--hover {
	opacity: 1;
	transform: scale(1);
}

/* SECTION: detail-body */
/* hotels/sections/hotel-detail-body.php - layout main 80% / aside 20%        */
/* -------------------------------------------------------------------------- */

.hotels-detail-body {
	--hotels-detail-gap: 2rem;
	background-color: #fff;
}

.hotels-detail-body__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--hotels-detail-gap);
	align-items: start;
}

@media screen and (max-width: 991px) {
	.hotels-page .hotels-detail-body .container.page-hero__container {
		padding-left: 3.2rem;
		padding-right: 3.2rem;
	}

	.hotels-detail-body__layout {
		min-width: 0;
		max-width: 100%;
		overflow-x: visible;
	}

	.hotels-detail-body__main {
		min-width: 0;
		max-width: 100%;
		overflow-x: visible;
	}

	.hotels-detail-body__main .hotels-detail-accommodation--main {
		overflow: visible;
	}

	.hotels-detail-body__aside {
		display: none;
	}

	.hotels-detail-accommodation--main {
		min-width: 0;
		width: 100%;
		max-width: 100%;
	}

	.hotels-detail-accommodation--extend-only {
		display: none;
	}

	.hotels-detail-accommodation--extend-inline {
		display: block;
	}

	.hotels-detail-about__title {
		font-size: 2.2rem;
		overflow-wrap: break-word;
	}

	.hotels-detail-accommodation__slider .hotel-room-card__title {
		font-size: 1.5rem;
		overflow-wrap: break-word;
	}

	.hotels-listing-grid--multi {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media screen and (min-width: 992px) {
	.hotels-detail-body__layout:not(.hotels-detail-body__layout--full) {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		gap: var(--hotels-detail-gap);
		min-width: 0;
		max-width: 100%;
	}

	.hotels-detail-body__main {
		flex: 1 1 0;
		min-width: 0;
		max-width: 100%;
	}

	.hotels-detail-body__main>* {
		min-width: 0;
		max-width: 100%;
	}

	.hotels-detail-body__main .hotels-detail-accommodation--main {
		overflow: visible;
	}

	.hotels-detail-body__aside {
		position: sticky;
		top: 0.5rem;
		align-self: start;
		flex: 0 0 32rem;
		width: 32rem;
		max-width: 32rem;
		min-width: 0;
	}

	.hotels-detail-accommodation--extend-inline {
		display: none;
	}
}

.hotels-detail-body__main {
	display: grid;
	gap: var(--hotels-detail-gap);
	min-width: 0;
}

/* SECTION: detail-about */
/* hotels/sections/hotel-detail-about.php (.hotels-detail-about)            */
/* -------------------------------------------------------------------------- */

.hotels-detail-about__title {
	margin: 0 0 1.2rem;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.2;
	color: #000;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.hotels-detail-about__title-accent {
	color: #000;
}

@media screen and (min-width: 992px) {
	.hotels-detail-about__title {
		font-size: 3.4rem;
	}
}

.hotels-detail-about__title-line {
	display: block;
	width: 100%;
	height: 2px;
	margin-top: 1.2rem;
	background-color: var(--main-color);
	border-radius: 999px;
}

.hotels-detail-services__title-line,
.hotels-detail-info__title-line,
.hotels-detail-accommodation__title-line {
	display: block;
	width: 100%;
	height: 1px;
	margin-top: 1rem;
	background-color: rgba(0, 0, 0, 0.08);
	border-radius: 999px;
}

.hotels-detail-services__title,
.hotels-detail-info__section-title,
.hotels-detail-accommodation__title,
.hotels-detail-extend__title {
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.3;
	color: #333;
}

.hotels-detail-info__section-title {
	margin: 0 0 1.6rem;
}

.hotels-detail-about__general {
	margin-top: 1.6rem;
}

.hotels-detail-about__general p {
	margin: 0 0 1.6rem;
	font-size: 1.6rem;
	line-height: 1.7;
	color: #555;
	overflow-wrap: anywhere;
}

.hotels-detail-about__general p:last-child {
	margin-bottom: 0;
}

/* SECTION: detail-services */
/* hotels/sections/hotel-detail-services.php                                */
/* hotels/templates/cards/hotel-service-item.php                            */
.hotels-detail-services {
	padding-bottom: 0.8rem;
}

.hotels-detail-services__title {
	margin: 0 0 1.6rem;
}

.hotels-detail-services__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.2rem 1.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media screen and (min-width: 576px) {
	.hotels-detail-services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (min-width: 992px) {
	.hotels-detail-services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.2rem 2rem;
	}
}

@media screen and (min-width: 1400px) {
	.hotels-detail-body__layout:not(.hotels-detail-body__layout--full) .hotels-detail-services__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.hotels-detail-services__item {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	min-width: 0;
}

.hotels-detail-services__icon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background-color: #f3f8ef;
	color: #6a9b4a;
	border: 1px solid #e2edd8;
}

.hotels-detail-services__icon .material-symbols-outlined {
	font-size: 1.4rem;
}

.hotels-detail-services__label {
	font-size: 1.4rem;
	line-height: 1.4;
	color: #555;
}

/* SECTION: detail-content */
/* hotels/sections/hotel-detail-content.php (.hotels-detail-info, map)      */
/* -------------------------------------------------------------------------- */

.hotels-detail-info {
	background-color: #fff;
	display: grid;
	gap: var(--hotels-detail-gap);
}

.hotels-detail-info__restaurant {
	min-width: 0;
	padding-bottom: 0.8rem;
}

.hotels-detail-info__columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--hotels-detail-gap);
}

@media screen and (min-width: 992px) {
	.hotels-detail-info__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--hotels-detail-gap);
	}
}

.hotels-detail-info__text {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.65;
	color: #555;
}

.hotels-detail-info__contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hotels-detail-info__contact-list li {
	display: flex;
	align-items: center;
	gap: 0.8rem;
}

.hotels-detail-info__contact-list li+li {
	margin-top: 1rem;
}

.hotels-detail-info__contact-icon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background-color: var(--main-color);
	color: #fff;
}

.hotels-detail-info__contact-icon .material-symbols-outlined {
	font-size: 1.4rem;
}

.hotels-detail-info__contact-text {
	font-size: 1.4rem;
	line-height: 1.4;
	color: #555;
}

.hotels-detail-info__location {
	margin-top: 3.2rem;
}

.hotels-detail-info__map {
	overflow: hidden;
	border-radius: 8px;
	min-height: 45rem;
}

.hotels-detail-info__map iframe {
	display: block;
	width: 100%;
	min-height: 45rem;
	height: 45rem;
	border: 0;
}

/* SECTION: detail-accommodation */
/* hotels/sections/hotel-detail-accommodation.php                           */
/* Variants: --main | --extend-only (aside) | --extend-inline (mobile form) */
/* -------------------------------------------------------------------------- */

.hotels-detail-accommodation--main .hotels-detail-accommodation__header,
.hotels-detail-accommodation--main .hotels-detail-accommodation__title,
.hotels-detail-accommodation--main .hotels-detail-accommodation__note {
	text-align: left;
}

.hotels-detail-accommodation__title {
	margin: 0;
}

.hotels-detail-accommodation__title-accent {
	font: inherit;
	color: inherit;
	text-transform: inherit;
}

.hotels-detail-accommodation--main {
	overflow: visible;
	background-color: #fff;
}

.hotels-detail-accommodation__note {
	margin: 1.2rem 0 0;
	font-size: 1.3rem;
	font-style: italic;
	line-height: 1.5;
	color: #777;
}

.hotels-detail-body__aside .hotels-detail-extend:not(.hotels-detail-extend--widget) {
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 6px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
	margin-top: 2rem;
}

.hotels-detail-accommodation__slider {
	--cards-slider-gap: 1.6rem;
	--accommodation-slider-arrow-space: 3.2rem;
	position: relative;
	margin-top: 0;
	margin-bottom: 1.2rem;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	padding-inline: 0;
}

.hotels-detail-accommodation__slider-hints {
	display: grid;
	gap: 0.8rem;
	margin: 0 0 2rem;
	text-align: left;
}

.hotels-detail-accommodation__slider-hint {
	display: flex;
	align-items: flex-start;
	gap: 0.8rem;
	margin: 0;
	padding: 1.1rem 1.3rem;
	border-radius: 6px;
	background-color: var(--orange-o10, #fff4ec);
	border: 1px solid var(--orange-o25, #f5d4bc);
}

.hotels-detail-accommodation__slider-hint-icon {
	flex-shrink: 0;
	font-size: 1.7rem;
	line-height: 1;
	color: var(--orange, #d6621b);
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 20;
}

.hotels-detail-accommodation__slider-hint-content {
	display: grid;
	gap: 0.55rem;
	min-width: 0;
	font-size: 1.2rem;
	line-height: 1.55;
	color: #7a4a1e;
}

.hotels-detail-accommodation__slider-hint-content p {
	margin: 0;
}

.hotels-detail-accommodation__slider-hint-content strong {
	font-weight: 700;
	color: #5c3818;
}

.hotels-detail-accommodation__slider .cards-slider__viewport {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
	padding: 1.6rem 0.6rem 1.8rem;
}

.hotels-detail-accommodation__slider.cards-slider--fit .cards-slider__viewport {
	overflow: visible;
	padding: 0.8rem 0.4rem 1.4rem;
}

.hotels-detail-accommodation__slider .cards-slider__controls {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	container-type: inline-size;
}

.hotels-detail-accommodation__slider .cards-slider__track {
	align-items: stretch;
}

.hotels-detail-accommodation__slider .cards-slider__slide {
	display: flex;
	align-items: stretch;
	align-self: stretch;
	min-width: 0;
	height: 100%;
}

.hotels-detail-accommodation__slider .cards-slider__slide .hotel-room-card {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	min-height: 100%;
	height: 100%;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.07), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.hotels-detail-accommodation__slider .hotel-room-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.8rem;
	min-height: 0;
}

.hotels-detail-accommodation__slider .hotel-room-card__title,
.hotels-detail-accommodation__slider .hotel-room-card__text {
	margin: 0;
}

.hotels-detail-accommodation__slider .hotel-room-card__text {
	flex: 1 1 auto;
}

.hotels-detail-accommodation__slider .hotel-room-card__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	gap: 0;
	margin-top: auto;
	flex-shrink: 0;
	min-width: 0;
	padding-top: 1.2rem;
	border-top: 1px solid #ececec;
}

.hotels-detail-accommodation__slider.cards-slider--fit .cards-slider__track {
	padding: 0.4rem 0.2rem 0.8rem;
	align-items: stretch;
}

.hotels-detail-accommodation__slider .cards-slider__btn {
	/* Vertical center of 16:10 gallery image + viewport top padding */
	top: calc(1.2rem + (100cqi - var(--cards-slider-gap) * (var(--cards-slider-spv) - 1)) / var(--cards-slider-spv) * 5 / 16);
	bottom: auto;
	z-index: 4;
	pointer-events: auto;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.hotels-detail-accommodation__slider .cards-slider__btn--prev {
	left: 0;
	transform: translate(-50%, -50%);
}

.hotels-detail-accommodation__slider .cards-slider__btn--next {
	right: 0;
	transform: translate(50%, -50%);
}

.hotels-detail-accommodation__slider .hotel-room-card {
	container-type: inline-size;
}

@container (max-width: 280px) {
	.hotels-detail-accommodation__slider .hotel-room-card__footer {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.hotels-detail-accommodation__slider .hotel-room-card__price-wrap {
		padding-right: 0;
		border-right: 0;
		padding-bottom: 0.4rem;
		border-bottom: 1px solid #ececec;
	}

	.hotels-detail-accommodation__slider .hotel-room-card__cta {
		padding-left: 0;
	}

	.hotels-detail-accommodation__slider .hotel-room-card__btn {
		width: 100%;
		justify-content: center;
	}
}

/* SECTION: room-card */
/* hotels/templates/cards/hotel-room-card.php                                 */
/* hotels/templates/cards/hotel-room-card-gallery.php                         */
/* scripts/cards-slider.js - slider in hotel-detail-accommodation.php       */
/* -------------------------------------------------------------------------- */

.hotel-room-card {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow: hidden;
	border-radius: 6px;
	background-color: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08);
}

.hotel-room-card-gallery {
	position: relative;
	width: 100%;
	min-width: 0;
	overflow: hidden;
	border-radius: 6px 6px 0 0;
}

.hotel-room-card-gallery__viewport {
	container-type: inline-size;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
}

.hotel-room-card-gallery__viewport::-webkit-scrollbar {
	display: none;
}

.hotel-room-card-gallery__track {
	display: flex;
	min-width: 0;
}

.hotel-room-card-gallery__slide {
	flex: 0 0 100cqi;
	flex-shrink: 0;
	width: 100cqi;
	max-width: 100cqi;
	min-width: 100cqi;
	box-sizing: border-box;
	scroll-snap-align: center;
	scroll-snap-stop: always;
}

.hotel-room-card-gallery__slide picture {
	display: block;
	width: 100%;
	max-width: 100%;
}

.hotel-room-card-gallery__image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	user-select: none;
	-webkit-user-drag: none;
}

.hotels-detail-accommodation__slider .hotel-room-card-gallery__image {
	aspect-ratio: 16 / 10;
}

.hotel-room-card-gallery__dots {
	position: absolute;
	bottom: 1rem;
	left: 50%;
	z-index: 1;
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	background-color: rgba(0, 0, 0, 0.45);
	transform: translateX(-50%);
}

.hotel-room-card-gallery__dot {
	width: 0.6rem;
	height: 0.6rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.45);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.hotel-room-card-gallery__dot--active {
	background-color: #fff;
	transform: scale(1.15);
}

.hotel-room-card__body {
	padding: 1.4rem;
	min-width: 0;
}

.hotels-detail-body .hotel-room-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.hotels-detail-body .hotel-room-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.hotels-detail-body .hotel-room-card__title,
.hotels-detail-body .hotel-room-card__text {
	margin: 0;
}

.hotel-room-card__title {
	margin: 0 0 0.8rem;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.35;
	color: #000;
}

.hotel-room-card__text {
	margin: 0 0 1.6rem;
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.6;
	color: #757575;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

.hotels-detail-body .hotel-room-card__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	gap: 0;
	margin-top: auto;
	margin-bottom: 0;
	min-width: 0;
	padding-top: 1.2rem;
	border-top: 1px solid #ececec;
}

.hotels-detail-body .hotels-detail-accommodation__slider .cards-slider__slide .hotel-room-card {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
	min-height: 100%;
	height: 100%;
}

.hotels-detail-body .hotels-detail-accommodation__slider .hotel-room-card__body {
	flex: 1 1 auto;
	min-height: 0;
}

.hotels-detail-body .hotels-detail-accommodation__slider .hotel-room-card__text {
	flex: 1 1 auto;
	margin: 0;
}

.hotels-detail-body .hotels-detail-accommodation__slider .hotel-room-card__footer {
	margin-top: auto;
	flex-shrink: 0;
}

.hotel-room-card__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	gap: 0;
	min-width: 0;
	padding-top: 1.2rem;
	border-top: 1px solid #ececec;
}

.hotel-room-card__footer--dual {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
}

.hotel-room-card__col {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
}

.hotel-room-card__col .hotel-room-card__price-wrap {
	border-right: none;
	padding: 0 1.2rem 1.2rem 1.2rem;
	flex: 1 1 auto;
}

.hotel-room-card__col:first-child .hotel-room-card__price-wrap {
	padding-left: 0;
	border-right: 1px solid #ececec;
}

.hotel-room-card__col:last-child .hotel-room-card__price-wrap {
	padding-right: 0;
}

.hotel-room-card__col .hotel-room-card__cta {
	padding: 0 1.2rem;
	width: 100%;
	box-sizing: border-box;
}

.hotel-room-card__col:first-child .hotel-room-card__cta {
	padding-left: 0;
}

.hotel-room-card__col:last-child .hotel-room-card__cta {
	padding-right: 0;
}

.hotel-room-card__price-label {
	display: block;
	font-size: 1.1rem;
	font-weight: 600;
	text-transform: uppercase;
	color: #888;
	margin-bottom: 0.4rem;
	letter-spacing: 0.05em;
}

.hotel-room-card__cta .hotel-room-card__btn.general-button.hotel-room-card__btn--outline {
	background: transparent !important;
	border: 1.5px solid var(--main-color, #e06616) !important;
	color: var(--main-color, #e06616) !important;
}

.hotel-room-card__cta .hotel-room-card__btn.general-button.hotel-room-card__btn--outline span {
	color: var(--main-color, #e06616) !important;
}

.hotel-room-card__cta .hotel-room-card__btn.general-button.hotel-room-card__btn--outline:hover {
	background: var(--main-color, #e06616) !important;
	color: #fff !important;
}

.hotel-room-card__cta .hotel-room-card__btn.general-button.hotel-room-card__btn--outline:hover span {
	color: #fff !important;
}

.hotel-room-card__price-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0.45rem;
	min-width: 0;
	padding-right: 1rem;
	border-right: 1px solid #ececec;
}

.hotel-room-card__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding-left: 1rem;
}

.hotel-room-card__cta .hotel-room-card__btn.general-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: 40px;
	min-height: 40px;
	max-height: 40px;
	border: none;
	border-radius: 6px;
	padding: 0 2rem;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
	overflow: hidden;
	text-decoration: none;
}

.hotel-room-card__cta .hotel-room-card__btn.general-button span {
	position: relative;
	z-index: 1;
	font-size: inherit;
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
}

.hotel-room-card__price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 0.5rem;
	min-width: 0;
	line-height: 1.25;
}

.hotel-room-card__price {
	margin: 0;
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.2;
	color: #111;
	letter-spacing: -0.01em;
}

.hotel-room-card__price--person {
	font-size: 1.15rem;
	font-weight: 600;
	color: #444;
}

.hotel-room-card__price-row--person .hotel-room-card__note {
	font-size: 0.95rem;
	color: #999;
}

.hotels-detail-body .hotel-room-card__price-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0.45rem;
}

.hotels-detail-body .hotel-room-card__note {
	margin: 0;
}

.hotel-room-card__note {
	display: inline;
	margin: 0;
	font-size: 1rem;
	font-weight: 400;
	font-style: italic;
	color: #888;
}

@media screen and (max-width: 767px) {
	.hotel-room-card__footer--dual {
		grid-template-columns: 1fr !important;
		gap: 0 !important;
	}

	.hotel-room-card__footer--dual .hotel-room-card__col:last-child {
		padding-top: 1.2rem !important;
	}

	.hotel-room-card__footer--dual .hotel-room-card__col {
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding-top: 1rem;
		gap: 1.5rem;
	}

	.hotel-room-card__footer--dual .hotel-room-card__col:first-child {
		border-right: none !important;
		border-bottom: 1px solid #ececec;
		padding-bottom: 1.2rem;
	}

	.hotel-room-card__footer--dual .hotel-room-card__col .hotel-room-card__price-wrap {
		padding: 0 !important;
		border-right: none !important;
		margin-bottom: 0 !important;
	}

	.hotel-room-card__footer--dual .hotel-room-card__col .hotel-room-card__cta {
		padding: 0 !important;
		width: auto !important;
		flex-shrink: 0;
	}

	.hotel-room-card__footer--dual .hotel-room-card__col .hotel-room-card__btn.general-button {
		width: auto !important;
		min-width: 130px !important;
		padding: 0 1.5rem !important;
	}
}

/* SECTION: extend-stay-card */
/* hotels/templates/cards/hotel-extend-stay-card.php (.hotels-detail-extend) */
/* Includes promo block; form styles in SECTION: extend-stay-form below      */
/* -------------------------------------------------------------------------- */
.hotels-detail-extend {
	display: grid;
	gap: 1.2rem;
	margin-top: 0;
}

.hotels-detail-extend--widget {
	justify-items: stretch;
	gap: 1.2rem;
	padding: 0.6rem 1.2rem 1.4rem;
	border-radius: 6px;
	box-shadow: none;
	background-color: #fff;
	text-align: left;
	transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.hotels-detail-extend--widget.is-highlighted {
	box-shadow: 0 0 0 2px var(--orange-o25);
	transform: none;
}

@keyframes pulse-icon {
	0% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(214, 98, 27, 0.4);
	}
	70% {
		transform: scale(1.08);
		box-shadow: 0 0 0 10px rgba(214, 98, 27, 0);
	}
	100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(214, 98, 27, 0);
	}
}

@keyframes pulse-scale {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.25);
	}
	100% {
		transform: scale(1);
	}
}

.hotels-detail-extend__promo {
	display: grid;
	justify-items: center;
	gap: 1rem;
	margin-bottom: 1.6rem;
	padding-bottom: 1.6rem;
	border-bottom: 1px solid var(--grey-35);
	text-align: center;
}

.hotels-detail-extend--widget .hotels-detail-extend__icon {
	display: grid;
	place-items: center;
	width: 3.4rem;
	height: 3.4rem;
	border-radius: 12px;
	background-color: var(--orange-o10);
	color: var(--orange);
	animation: pulse-icon 2s infinite ease-in-out;
}

.hotels-detail-extend--widget .hotels-detail-extend__icon .material-symbols-outlined {
	font-size: 2rem;
}

.hotels-detail-extend--widget .hotels-detail-extend__title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--fc-dark-80);
}

.hotels-detail-extend--widget .hotels-detail-extend__text {
	margin: 0;
	font-size: 1.3rem;
	line-height: 1.65;
	color: var(--fc-dark-60, #444);
	font-weight: 400;
}

.hotels-detail-extend--widget .hotels-detail-extend__text strong {
	font-weight: 700;
	color: var(--fc-dark-90, #111);
}

.hotels-detail-body__aside .hotels-detail-accommodation--extend-only {
	margin: 0;
	padding: 0;
	min-width: 0;
	max-width: 100%;
}

.hotels-detail-body__aside .hotels-detail-extend--widget {
	border: 1px solid var(--grey-35);
	border-radius: 6px;
	box-shadow: none;
	margin-top: 1.2rem;
	padding: 1.2rem 1.2rem 1.4rem;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.hotels-detail-body__aside .hotel-extend-form.hotel-extend-form--widget {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.hotel-extend-form.hotel-extend-form--widget .arrow-down {
	flex-shrink: 0;
	width: 0;
	height: 0;
	border-left: calc(var(--hotel-dropdown-chevron-width) / 2) solid transparent;
	border-right: calc(var(--hotel-dropdown-chevron-width) / 2) solid transparent;
	border-top: var(--hotel-dropdown-chevron-height) solid var(--hotel-dropdown-chevron-color);
	margin-left: 0.8rem;
}

.hotel-form__required {
	color: #d93025;
	margin-left: 0.15em;
}

/* SECTION: form-validation */
/* public/assets/js/components/hotel-form-validation.js                     */
/* -------------------------------------------------------------------------- */
.hotel-form__field--invalid.hotel-extend-form__field .hotel-extend-form__input,
.hotel-form__field--invalid.hotel-extend-form__field .hotel-extend-form__textarea,
.hotel-form__field--invalid.hotel-extend-form__field .hotel-extend-form__picker-input,
.hotel-form__field--invalid.hotel-extend-form__field select.form-input,
.hotel-form__field--invalid.hotel-extend-form__field .selected-country,
.hotel-extend-form__field--invalid .hotel-extend-form__input,
.hotel-extend-form__field--invalid .hotel-extend-form__textarea,
.hotel-extend-form__field--invalid .hotel-extend-form__picker-input,
.hotel-extend-form__field--invalid .hotel-extend-form__room-trigger,
.hotel-extend-form__field--invalid .hotel-extend-form__date-range-trigger,
.hotel-extend-form__field--invalid select.form-input {
	border-color: #d93025 !important;
	box-shadow: 0 0 0 1px #d93025;
}

.hotel-form__field-error {
	margin: 0.45rem 0 0;
	color: #d93025;
	font-size: 1.25rem;
	line-height: 1.35;
}

/* SECTION: extend-stay-form */
/* hotels/forms/extend-stay/widget.php (.hotel-extend-form--widget)         */
/* JS: public/assets/js/components/hotel-extend-stay-ui.js                  */
/* -------------------------------------------------------------------------- */

.hotel-extend-form {
	--hotel-dropdown-chevron-color: #666;
	--hotel-dropdown-chevron-width: 10px;
	--hotel-dropdown-chevron-height: 6px;
	--extend-primary: var(--orange);
	--extend-primary-light: var(--orange-light);
	--extend-primary-soft: var(--orange-o10);
	--extend-primary-ring: var(--orange-o25);
	--extend-border: var(--grey-35);
	--extend-border-outer: var(--grey-50);
	--extend-text: var(--fc-dark-40);
	--extend-text-strong: var(--fc-dark-80);
	--extend-text-muted: var(--fc-dark-30);
	--extend-placeholder: var(--fc-dark-30);
	--extend-focus-bg: var(--grey-25);
	--extend-label-size: 1.2rem;
	--extend-input-size: 1.35rem;
	--extend-field-padding-y: 1.35rem;
	--extend-field-padding-x: 1.2rem;
	--extend-field-gap: 0.65rem;
	--extend-chevron-color: var(--hotel-dropdown-chevron-color);
	--extend-surface: #fff;
	--extend-btn-bg: var(--orange);
	position: relative;
}


.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__form {
	display: grid;
	gap: 1.2rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__hotel-name {
	margin: 0 0 0.85rem;
	padding: 0;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--extend-primary);
	text-align: center;
	overflow-wrap: anywhere;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--extend-border-outer);
	border-radius: 4px;
	overflow: visible;
	background-color: var(--extend-surface);
	box-shadow: none;
	isolation: isolate;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__card> :first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__card> :last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__card>.hotel-extend-form__row--split:last-child>.hotel-extend-form__field:first-child {
	border-bottom-left-radius: 4px;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__card>.hotel-extend-form__row--split:last-child>.hotel-extend-form__field:last-child {
	border-bottom-right-radius: 4px;
}

/* Separador horizontal entre filas del card (fechas, contacto, booking...) */
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__card>*+* {
	border-top: 1px solid var(--extend-border);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__row--split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Separador vertical entre check-in y check-out */
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__row--split>.hotel-extend-form__field:first-child {
	border-right: 1px solid var(--extend-border);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--date-range {
	position: relative;
	z-index: 1;
	padding: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--date-range.is-open {
	z-index: 40;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--date-range:focus-within {
	background-color: var(--extend-focus-bg);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--nights .hotel-extend-form__input {
	text-align: left;
	background-color: var(--grey-25, #f7f7f7);
	cursor: default;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-range-trigger {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
	align-items: stretch;
	width: 100%;
	padding: var(--extend-field-padding-y) var(--extend-field-padding-x);
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	text-align: left;
	transition: background-color 0.15s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-range-trigger:hover,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-range-trigger:focus-visible {
	outline: none;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-range-col {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: var(--extend-field-gap);
	min-width: 0;
	padding-right: 1rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-range-col+.hotel-extend-form__date-range-col {
	padding-left: 1rem;
	padding-right: 0;
	border-left: 1px solid var(--extend-border);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__label--date {
	display: block;
	margin: 0;
	font-size: var(--extend-label-size);
	font-weight: 600;
	line-height: 1.3;
	color: var(--extend-text);
	transition: color 0.15s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--date-range:focus-within .hotel-extend-form__label--date {
	color: var(--extend-primary);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-display {
	display: block;
	min-height: 2.4rem;
	font-size: var(--extend-input-size);
	font-weight: 400;
	line-height: 1.45;
	color: var(--extend-text-strong);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-display.is-placeholder {
	color: var(--extend-placeholder);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__date-range-icon {
	align-self: center;
	flex-shrink: 0;
	margin-left: 0.5rem;
	font-size: 1.8rem;
	font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
	color: var(--extend-text-muted);
	pointer-events: none;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar {
	position: absolute;
	top: calc(100% + 0.35rem);
	left: 0;
	right: auto;
	z-index: 50;
	width: min(42rem, calc(100vw - 2rem));
	padding: 1.2rem 1rem 1rem;
	border: 1px solid var(--extend-border-outer);
	border-radius: 4px;
	background: var(--extend-surface);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.16);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-body {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: start;
	gap: 0.35rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-months {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.2rem;
	min-width: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-month-panel {
	min-width: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-month-title {
	margin-bottom: 0.75rem;
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	color: var(--extend-text-strong);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6rem;
	height: 2.6rem;
	margin-top: 0.15rem;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: var(--extend-text-strong);
	cursor: pointer;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-nav:hover,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-nav:focus-visible {
	background: var(--extend-focus-bg);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-weekdays,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.1rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-weekdays {
	margin-bottom: 0.35rem;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	color: var(--extend-text-muted);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 2.8rem;
	padding: 0.15rem 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	font-size: 1.2rem;
	line-height: 1;
	color: var(--extend-text-strong);
	cursor: pointer;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-empty {
	pointer-events: none;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-disabled {
	color: var(--extend-text-muted);
	opacity: 0.45;
	cursor: not-allowed;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-today::after {
	content: attr(data-today-label);
	display: block;
	margin-top: 0.1rem;
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--extend-primary);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-in-range {
	border-radius: 0;
	background: var(--extend-primary-soft);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-range-start {
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-range-end {
	border-top-right-radius: 4px;
	border-bottom-right-radius: 4px;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-selected {
	background: var(--extend-primary);
	color: #fff;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day.is-selected.is-today::after {
	color: #fff;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-day:hover:not(.is-disabled):not(.is-empty):not(.is-selected) {
	background: var(--extend-focus-bg);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--extend-border);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-summary {
	flex: 1;
	min-width: 0;
	font-size: 1.2rem;
	font-weight: 500;
	color: var(--extend-text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-actions {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-clear,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-apply {
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	font-weight: 600;
	cursor: pointer;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-clear {
	color: var(--extend-text-strong);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-clear:hover,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-clear:focus-visible {
	color: var(--extend-primary);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-apply {
	min-width: 7rem;
	padding: 0.65rem 1.2rem;
	border-radius: 4px;
	background: var(--extend-primary);
	color: #fff;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-apply:hover:not(:disabled),
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-apply:focus-visible:not(:disabled) {
	background: var(--extend-primary-light);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-apply:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field {
	margin: 0;
	border-radius: 0;
	display: grid;
	gap: var(--extend-field-gap);
	padding: var(--extend-field-padding-y) var(--extend-field-padding-x);
	min-width: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field:focus-within {
	background-color: var(--extend-focus-bg);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__label {
	font-size: var(--extend-label-size);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--extend-text);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field:focus-within .hotel-extend-form__label {
	color: var(--extend-primary);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-type {
	border: 0;
	margin: 0;
	padding: var(--extend-field-padding-y) var(--extend-field-padding-x);
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-type .hotel-extend-form__label {
	display: block;
	margin-bottom: 0;
	padding: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__radio-group {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__radio {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--extend-border, #ececec);
	border-radius: 6px;
	background-color: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__radio:has(input:checked) {
	border-color: var(--extend-primary, var(--orange, #d6621b));
	background-color: var(--orange-o10, #fff4ec);
	box-shadow: 0 0 0 1px var(--extend-primary, var(--orange, #d6621b));
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__radio input {
	flex-shrink: 0;
	width: 1.6rem;
	height: 1.6rem;
	margin: 0;
	accent-color: var(--extend-primary, var(--orange, #d6621b));
	cursor: pointer;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__radio-text {
	flex: 1;
	font-size: var(--extend-input-size);
	font-weight: 500;
	line-height: 1.35;
	color: var(--extend-text-strong);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-hint {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0;
	padding: 0.95rem 1.1rem;
	border-radius: 6px;
	background-color: var(--orange-o10, #fff4ec);
	border: 1px solid var(--orange-o25, #f5d4bc);
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transform: translateY(-0.35rem);
	transition:
		max-height 0.25s ease,
		opacity 0.2s ease,
		transform 0.2s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-hint.is-visible {
	max-height: 8rem;
	opacity: 1;
	transform: translateY(0);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-hint.is-updating .hotel-extend-form__request-hint-text {
	opacity: 0.55;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-hint-icon {
	flex-shrink: 0;
	font-size: 1.45rem;
	line-height: 1;
	color: var(--extend-primary, var(--orange, #d6621b));
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 20;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__request-hint-text {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.45;
	color: #7a4a1e;
	transition: opacity 0.15s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__dates-block[hidden] {
	display: none;
}

@media screen and (max-width: 575px) {
	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__radio-group {
		grid-template-columns: 1fr;
	}
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__input,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field .form-input,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__select,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__textarea {
	width: 100%;
	min-height: 2.4rem;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background-color: transparent;
	font-size: var(--extend-input-size);
	font-weight: 400;
	line-height: 1.45;
	color: var(--extend-text-strong);
	box-shadow: none !important;
	outline: none !important;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--select.hotel-extend-form__picker {
	position: relative;
	z-index: 1;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field--select.hotel-extend-form__picker.is-open {
	z-index: 40;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-control {
	position: relative;
	width: 100%;
	min-width: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 2.4rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-value {
	flex: 1;
	min-width: 0;
	font-size: var(--extend-input-size);
	font-weight: 400;
	line-height: 1.45;
	color: var(--extend-text-strong);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-value.is-placeholder {
	color: var(--extend-placeholder);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-list {
	display: none;
	position: absolute;
	top: calc(100% + 0.4rem);
	left: 0;
	right: 0;
	width: 100%;
	max-height: 14rem;
	overflow-x: hidden;
	overflow-y: auto;
	background: #fff;
	border: 1px solid var(--extend-border-outer);
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 50;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-list.active {
	display: block !important;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.85rem 1rem;
	font-size: var(--extend-input-size);
	line-height: 1.35;
	color: var(--extend-text-strong);
	white-space: normal;
	cursor: pointer;
	transition: background-color 0.12s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-option-title {
	flex: 1 1 auto;
	min-width: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-option-price {
	flex: 0 0 auto;
	font-weight: 600;
	color: var(--orange, #d6621b);
	white-space: nowrap;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-value.has-price {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	padding-right: 1.75rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-value-title {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-value-price {
	flex: 0 0 auto;
	font-weight: 600;
	color: var(--orange, #d6621b);
	white-space: nowrap;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-option+.hotel-extend-form__room-option {
	border-top: 1px solid var(--grey-25, #f0f0f0);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-option:hover,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__room-option:focus {
	background-color: #fff4ec;
	color: var(--orange, #d6621b);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__select,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field select.form-input {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23666' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0 center;
	background-size: var(--hotel-dropdown-chevron-width) var(--hotel-dropdown-chevron-height);
	padding-right: 1.4rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__select:invalid,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__select option[value=""],
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field select.form-input:invalid,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field select.form-input option[value=""] {
	color: var(--extend-placeholder);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__input::placeholder {
	font-size: var(--extend-input-size);
	color: var(--extend-placeholder);
	font-weight: 400;
}

.hotel-extend-form.hotel-extend-form--widget input[type="date"] {
	font-size: var(--extend-input-size);
	color: var(--extend-text-strong);
	min-height: 2.4rem;
	line-height: 1.45;
}

.hotel-extend-form.hotel-extend-form--widget input[type="date"]::-webkit-calendar-picker-indicator {
	opacity: 0.45;
	cursor: pointer;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__input:focus,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__field .form-input:focus,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__select:focus,
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__textarea:focus {
	outline: none;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__picker {
	position: relative;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__picker .selected-country {
	width: 100%;
	min-height: 2.4rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__picker .country-content {
	gap: 0.6rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__picker .country-name {
	font-size: var(--extend-input-size);
	font-weight: 400;
	line-height: 1.35;
	color: var(--extend-text-strong);
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__picker .country-flag {
	width: 2rem;
	height: 2rem;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__picker .country-list {
	z-index: 20;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__status {
	margin: 0;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__status .response-box {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

/* SECTION: form-recaptcha */
/* hotels/forms/extend-stay/widget.php - .hotel-extend-form__recaptcha      */
/* -------------------------------------------------------------------------- */
.hotel-extend-form__recaptcha {
	max-width: 100%;
	overflow: visible;
	min-height: 78px;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__recaptcha {
	margin: 0.8rem 0 0;
}

.hotel-extend-form__recaptcha>.g-recaptcha {
	display: block;
	max-width: 100%;
	transform: scale(0.95);
	transform-origin: left top;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 4.2rem;
	padding: 1rem 1.2rem;
	border: 0;
	border-radius: 6px;
	background-color: var(--extend-btn-bg);
	color: #fff;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: filter 0.2s ease, opacity 0.2s ease;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__submit:hover:not(:disabled),
.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__submit:focus:not(:disabled) {
	filter: brightness(1.08);
	color: #fff;
}

.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__footnote {
	margin: 0;
	font-size: 1rem;
	line-height: 1.45;
	color: var(--extend-text-muted);
	text-align: center;
}

.hotel-extend-form__availability-hint {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin: 0;
	padding: 1rem 1.2rem;
	border-radius: 6px;
	background-color: var(--orange-o10, #fff4ec);
	border: 1px solid var(--orange-o25, #f5d4bc);
	font-size: 1.3rem;
	line-height: 1.45;
	color: #7a4a1e;
}

.hotel-extend-form__availability-hint .material-symbols-outlined {
	flex-shrink: 0;
	font-size: 1.6rem;
	line-height: 1;
	color: var(--orange, #d6621b);
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 20;
	animation: pulse-scale 2s infinite ease-in-out;
	display: inline-block;
}

.hotels-detail-accommodation--extend-inline .hotels-detail-extend--widget {
	padding: 1rem 1.1rem 1.2rem;
	border-radius: 6px;
	box-shadow: none;
	border: 1px solid var(--grey-35);
	scroll-margin-top: 8rem;
}

/* SECTION: form-responsive */
/* extend-stay widget - @media max-width 767px (calendar, date split rows)   */
/* -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__row--split>.hotel-extend-form__field:first-child {
		border-right: 0;
		border-bottom: 1px solid var(--extend-border);
	}

	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__row--split>.hotel-extend-form__field+.hotel-extend-form__field {
		border-top: 0;
	}

	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar {
		left: 0;
		width: min(42rem, calc(100vw - 2rem));
		transform: none;
	}

	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-months {
		grid-template-columns: 1fr;
	}

	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.hotel-extend-form.hotel-extend-form--widget .hotel-extend-form__calendar-actions {
		justify-content: flex-end;
	}
}

/* END HOTELS MODULE */