/* ==========================================================================
   04 — Página Inicio (slider, contacto, imagen del formulario)
   ========================================================================== */

/* Hero slider */
.pbmit-slider-one .pbmit-slider-item {
	height: 35rem !important;
}
.pbmit-slider-area .pbmit-title {
	font-size: 58px !important;
	line-height: 66px !important;
	margin-bottom: 16px !important;
}
.pbmit-slider-one .pbmit-slider-content {
	padding-top: 0 !important;
}
.pbmit-slider-one .swiper-slide:nth-child(1) .pbmit-slider-bg {
	background-image: url("../../images/slider/slider1.png");
}
.pbmit-slider-one .swiper-slide:nth-child(2) .pbmit-slider-bg {
	background-image: url("../../images/slider/slider2.png");
}
.pbmit-slider-one .swiper-slide:nth-child(3) .pbmit-slider-bg {
	background-image: url("../../images/slider/slider3.avif");
}
@media (max-width: 1024px) {
	.pbmit-slider-one .pbmit-slider-item {
		height: 340px !important;
	}
	.pbmit-slider-area .pbmit-title {
		font-size: 46px !important;
		line-height: 54px !important;
	}
}
@media (max-width: 767px) {
	.pbmit-slider-one .pbmit-slider-item {
		height: 300px !important;
	}
	.pbmit-slider-area .pbmit-title {
		font-size: 38px !important;
		line-height: 46px !important;
	}
}

/* Imagen del bloque de reserva */
.contact-us-section-one .contact-us-image {
	background-image: url("../../images/contact/deville_people_reception_01.png");
	background-size: cover;
	background-position: center;
}

/* Datos de contacto bajo el formulario */
.deville-contact-info {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(10, 19, 46, .18);
}
.deville-contact-info__eyebrow {
	display: block;
	margin-bottom: 11px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(10, 19, 46, .6);
}
.deville-contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 9px 10px;
}
.deville-contact-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 11px;
	background: rgba(255, 255, 255, .4);
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 11px;
	transition: background .3s ease, transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease;
}
.deville-contact-item:hover {
	background: rgba(255, 255, 255, .65);
	transform: translateY(-3px);
	box-shadow: 0 10px 20px rgba(10, 19, 46, .13);
}
.deville-contact-ico {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--pbmit-blackish-color);
	color: #fff;
	font-size: 14px;
	box-shadow: 0 4px 10px rgba(10, 19, 46, .22);
	transition: transform .35s ease, background .3s ease;
}
.deville-contact-item:hover .deville-contact-ico {
	transform: scale(1.08) rotate(-5deg);
}
.deville-contact-data {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.deville-contact-label {
	margin-bottom: 1px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(10, 19, 46, .55);
}
.deville-contact-value {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--pbmit-blackish-color);
	text-decoration: none;
	word-break: break-word;
	transition: color .25s ease;
}
a.deville-contact-value:hover {
	color: #fff;
}
a.deville-contact-value[href^="mailto"] {
	font-size: 12px;
	letter-spacing: -.2px;
}
@media (max-width: 767px) {
	.deville-contact-list {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Adorno animado del panel "Reserva tu estadía"
   ============================================================ */
.contact-us-bg { position: relative; overflow: hidden; }
.contact-us-bg > *:not(.deville-reserva-deco) { position: relative; z-index: 1; }
.deville-reserva-deco {
	position: absolute;
	top: 40px;
	right: 46px;
	width: 210px;
	height: 210px;
	z-index: 0;
	pointer-events: none;
}
.deville-reserva-deco__ring {
	position: absolute;
	inset: 0;
	border: 2px dashed rgba(255,255,255,.45);
	border-radius: 50%;
	animation: dvRingSpin 24s linear infinite;
}
@keyframes dvRingSpin { to { transform: rotate(360deg); } }
.deville-reserva-deco__icon {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 92px;
	height: 92px;
	margin: -46px 0 0 -46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255,255,255,.16);
	border: 1px solid rgba(255,255,255,.4);
	color: #fff;
	font-size: 34px;
	animation: dvFloat 6s ease-in-out infinite;
}
@keyframes dvFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.deville-reserva-deco__dot {
	position: absolute;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	box-shadow: 0 0 0 6px rgba(255,255,255,.14);
}
.deville-reserva-deco__dot--1 { width: 14px; height: 14px; top: -4px; left: 32%; animation: dvFloat 5s ease-in-out infinite; }
.deville-reserva-deco__dot--2 { width: 10px; height: 10px; bottom: 6px; right: 10%; animation: dvFloat 7s ease-in-out .6s infinite; }
.deville-reserva-deco__dot--3 { width: 8px; height: 8px; top: 42%; right: -6px; animation: dvPulse 4s ease-in-out infinite; }
@keyframes dvPulse { 0%,100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.7); opacity: .35; } }
@media (max-width: 991px) {
	.deville-reserva-deco { width: 150px; height: 150px; top: 24px; right: 24px; }
	.deville-reserva-deco__icon { width: 66px; height: 66px; margin: -33px 0 0 -33px; font-size: 26px; }
}
@media (max-width: 575px) {
	.deville-reserva-deco { display: none; }
}

.testimonial-section-one .swiper-slide {
	height: auto;
	display: flex;
}
.testimonial-section-one .pbmit-testimonial-style-1 {
	width: 100%;
	height: 100%;
	display: flex;
}
.testimonial-section-one .pbmit-testimonial-style-1 .pbminfotech-post-item {
	width: 100%;
	height: 100%;
	display: flex;
}
.testimonial-section-one .pbmit-testimonial-style-1 .pbminfotech-post-item::after {
	pointer-events: none;
}
.testimonial-section-one .pbmit-testimonial-style-1 .pbmit-box-content-wrap {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	min-height: 320px;
}
.testimonial-section-one .pbminfotech-box-desc {
	flex: 1;
}
.deville-testimonio-captura__link {
	position: relative;
	z-index: 2;
	display: block;
	cursor: pointer;
	pointer-events: auto;
	text-decoration: none;
	color: inherit;
	margin-top: 15px;
}
.deville-testimonio-captura__img {
	width: 100%;
	height: 148px;
	object-fit: contain;
	object-position: top center;
	border-radius: 16px;
	background: #fff;
	display: block;
	padding-top: 15px;
}
.deville-testimonio-captura__cta {
	display: inline-block;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #780005;
}
.deville-testimonio-captura__link:hover .deville-testimonio-captura__img {
	opacity: 0.9;
}
.deville-testimonio-captura__link:hover .deville-testimonio-captura__cta {
	text-decoration: underline;
}
.deville-testimonio-captura__link:focus-visible {
	outline: 2px solid #780005;
	outline-offset: 4px;
	border-radius: 16px;
}
.deville-testimonio-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #eee8df;
	color: #9a8f82;
}
.deville-testimonio-placeholder::before {
	content: "";
	width: 36px;
	height: 36px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-8 13c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-8 13c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.deville-testimonio-placeholder--avatar {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	display: inline-flex;
}
.deville-testimonio-placeholder--avatar::before {
	width: 28px;
	height: 28px;
}
.deville-testimonio-placeholder--captura {
	width: 100%;
	height: 148px;
	border-radius: 16px;
}

/* Fechas + lupa del formulario de reserva */
.deville-reserva-dates {
	display: flex;
	align-items: flex-end;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}
.deville-reserva-date-field {
	flex: 1 1 160px;
	min-width: 0;
}
.deville-reserva-date-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: rgba(255,255,255,.9);
}
.deville-reserva-lupa {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 50%;
	background: #1a1d2b;
	color: #fff;
	font-size: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease;
	margin-top: 1px; 
    align-self: center; 
}
.deville-reserva-lupa:hover {
	background: #000;
	transform: scale(1.06);
}
.deville-reserva-dates-hint {
	font-size: 12.5px;
	line-height: 1.45;
	color: rgba(255,255,255,.78);
	margin: 0 0 12px;
}
.deville-avail-modal .modal-header {
	border-bottom: 1px solid rgba(10,19,46,.08);
	padding: 18px 24px;
}
.deville-avail-modal .modal-title {
	font-size: 22px;
	font-weight: 800;
	margin: 0;
	color: var(--pbmit-blackish-color);
}
.deville-avail-modal-lead {
	margin: 0 0 16px;
	color: #5a6178;
	font-size: 15px;
}
.deville-avail-modal .deville-availability.is-modal-lg .deville-cal-cell {
	min-height: 68px;
	font-size: 15px;
}
@media (max-width: 767px) {
	.deville-reserva-lupa { width: 44px; height: 44px; flex-basis: 44px; }
	.deville-avail-modal .deville-availability.is-modal-lg .deville-cal-cell {
		min-height: 44px;
		font-size: 13px;
		padding: 6px;
	}
}
