/**
 * Hostal Playamar — estilo inspirado en portales de reserva (cabecera clara, acento amarillo, marca del logo).
 */

/* Ancho de contenido global (theme.json layout 1199px en PC): cabeceras sin tocar */
@media (min-width: 782px) {
	header.wp-block-template-part .is-layout-constrained,
	header .wp-block-group.is-layout-constrained,
	.hp-header-wrap.is-layout-constrained {
		max-width: none !important;
	}
}

:root {
	--hp-brand: #154284;
	--hp-brand-light: #99badd;
	--hp-bg-page: #f5f6fa;
	--hp-accent: #febb02;
	--hp-border: #e7e7e7;
	/* Formularios (estilo portal tipo Booking.com) */
	--hp-input-border: #bdbdbd;
	--hp-input-border-hover: #949494;
	--hp-input-radius: 4px;
	--hp-form-card-radius: 8px;
	--hp-form-card-bg: #ffffff;
	--hp-form-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	--hp-form-label: #262626;
	--hp-form-label-muted: #6b6b6b;
	--hp-focus-ring: 0 0 0 2px #fff, 0 0 0 4px var(--hp-brand);
}

body {
	background-color: var(--hp-bg-page);
	color: #262626;
}

/* Título de página / entrada (plantilla): mismo azul que el menú y centrado */
h1.wp-block-post-title {
	text-align: center;
	color: var(--hp-brand);
}

/* Plantillas de archivo / listados que usan el bloque título */
h1.wp-block-query-title {
	text-align: center;
	color: var(--hp-brand);
}

/* Cabecera tipo Booking: blanca, sombra suave, borde inferior */
.hp-header-wrap {
	background: #fff;
	border-bottom: 1px solid var(--hp-border);
	box-shadow: 0 1px 8px rgba(21, 66, 132, 0.08);
}

.hp-header-wrap .wp-block-navigation .wp-block-navigation-item a {
	color: var(--hp-brand);
	font-weight: 600;
	font-size: 0.95rem;
}

.hp-header-wrap .wp-block-navigation .wp-block-navigation-item a:hover {
	color: #0f3260;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.hp-site-logo img {
	height: auto;
	max-height: 67px; /* +20% respecto a 56px */
	width: auto;
}

@media (min-width: 782px) {
	.hp-site-logo img {
		max-height: 77px; /* +20% respecto a 64px */
	}
}

/* Hero: franja clara + tarjeta blanca */
.hp-hero-section {
	background: var(--hp-bg-page);
}

/* Fondo del cover a todo el ancho del viewport (evita franja estrecha si un contenedor limita el bloque) */
.hp-hero-cover.wp-block-cover.alignfull {
	max-width: none;
	width: 100%;
	box-sizing: border-box;
}

.hp-hero-cover .wp-block-cover__image-background {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

/* Hero: slider de fondo (Cullera y alrededores) */
.hp-hero-cover--slider {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 2rem 1rem !important;
	overflow: hidden;
}

.hp-hero-cover--slider .hp-hero-slider {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hp-hero-cover--slider .wp-block-group.hp-booking-card--on-cover {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: min(720px, 94vw);
	margin-left: auto;
	margin-right: auto;
}

.hp-hero-slider {
	pointer-events: none;
}

.hp-hero-slider__slides {
	position: absolute;
	inset: 0;
}

.hp-hero-slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.15s ease-in-out;
}

.hp-hero-slider__slide.is-active {
	opacity: 1;
	z-index: 1;
}

.hp-hero-slider__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
}

.hp-hero-slider__dim {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: rgba(0, 0, 0, 0.3);
	pointer-events: none;
}

.hp-hero-cover .wp-block-cover__inner-container {
	width: 100%;
	max-width: min(720px, 94vw);
	margin-left: auto;
	margin-right: auto;
}

.hp-booking-card {
	background: #fff;
	border: 1px solid var(--hp-border);
	border-radius: 8px;
	box-shadow: 0 4px 24px rgba(21, 66, 132, 0.1);
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.hp-booking-card--on-cover {
	max-width: min(640px, 92vw);
	background: #fff;
	backdrop-filter: none;
}

/* Franja fachada (web actual) */
.hp-franja-fachada__img img {
	width: 100%;
	height: auto;
	max-height: 140px;
	object-fit: cover;
	display: block;
	border-radius: 0;
}

.hp-vistas-wide img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(21, 66, 132, 0.12);
}

.hp-service-shot img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	margin-bottom: 1rem;
	object-fit: cover;
	max-height: 220px;
}

.hp-mosaic-img img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

.hp-hero-logo img {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: min(480px, 92vw);
	height: auto;
}

/* Botón principal estilo Booking (amarillo) */
.hp-booking-card .wp-block-button__link.has-booking-accent-background-color,
.hp-cta-strip .wp-block-button__link.has-booking-accent-background-color {
	border-radius: 4px;
	font-weight: 600;
	padding: 0.65rem 1.35rem;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
}

.hp-booking-card .wp-block-button__link.has-booking-accent-background-color:hover,
.hp-cta-strip .wp-block-button__link.has-booking-accent-background-color:hover {
	filter: brightness(1.05);
}

/* Botón secundario outline */
.hp-booking-card .wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid var(--hp-brand);
	color: var(--hp-brand);
	border-radius: 4px;
	font-weight: 600;
	background: transparent;
}

.hp-booking-card .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: rgba(21, 66, 132, 0.06);
}

/* Bloque servicios: tarjeta sobre fondo página */
.hp-services-card {
	background: #fff;
	border: 1px solid var(--hp-border);
	border-radius: 8px;
	padding: 1.75rem 1.5rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

/* Página Servicios (contenido editorial) */
.hp-servicios-page {
	padding-top: 0.5rem;
	padding-bottom: 2rem;
}

.hp-servicios-page .hp-servicios-lead {
	font-size: 1.05rem;
	line-height: 1.55;
	max-width: 52rem;
	margin-left: auto;
	margin-right: auto;
}

.hp-servicios-page h2.wp-block-heading {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.hp-servicios-page .hp-servicios-lista li {
	margin-bottom: 0.35rem;
}

/* Franja CTA inferior */
.hp-cta-strip {
	background: linear-gradient(180deg, #154284 0%, #0f3260 100%);
	border-top: 3px solid var(--hp-accent);
}

.hp-cta-strip h2,
.hp-cta-strip p {
	color: #fff !important;
}

.hp-cta-strip .wp-block-button__link.has-brand-color.has-booking-accent-background-color {
	color: var(--hp-brand) !important;
}

/* Pie */
.hp-footer-booking {
	background: #fff;
	border-top: 1px solid var(--hp-border);
}

.hp-footer-booking a {
	color: var(--hp-brand);
	font-weight: 500;
}

/* Listado de tipos de habitación (página Habitaciones) */
.mphb_sc_rooms-wrapper.mphb-room-types {
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}

.mphb_sc_rooms-wrapper .mphb-room-type {
	background: #fff;
	border: 1px solid var(--hp-border);
	border-radius: 8px;
	padding: 1.25rem;
	margin-bottom: 1.5rem;
	box-shadow: 0 2px 12px rgba(21, 66, 132, 0.06);
}

.mphb_sc_rooms-wrapper .mphb-room-type-title {
	color: var(--hp-brand);
	font-size: 1.35rem;
	margin-top: 0;
}

/* MotoPress / formularios: acento coherente con la marca */
/* Botones MotoPress (shortcodes): mismo criterio que CTAs tipo Booking (acento amarillo) */
.mphb_sc_search-wrapper input[type="submit"],
.mphb_sc_search-wrapper input[type="button"],
.mphb_sc_search-wrapper button:not(.ui-datepicker-trigger),
.mphb_sc_booking_form-wrapper input[type="submit"],
.mphb_sc_booking_form-wrapper input[type="button"],
.mphb_sc_booking_form-wrapper button,
.mphb_sc_search_results-wrapper .button,
.mphb_sc_search_results-wrapper input[type="submit"],
.mphb_sc_checkout-wrapper .button,
.mphb_sc_checkout-wrapper input[type="submit"],
.mphb-checkout-wrapper .button,
.mphb-checkout-wrapper input[type="submit"],
.mphb_sc_rooms-wrapper .button,
.mphb_sc_rooms-wrapper .mphb-book-button,
.mphb_sc_availability_calendar-wrapper .button,
.mphb_sc_availability_search-wrapper .button,
.mphb-confirm-button,
button.mphb-btn,
input.mphb-btn,
.mphb_sc_search-submit-button {
	background: var(--hp-accent) !important;
	color: var(--hp-brand) !important;
	border: 1px solid rgba(21, 66, 132, 0.18) !important;
	border-radius: 4px !important;
	font-weight: 600 !important;
	padding: 0.65rem 1.35rem !important;
	min-height: 2.75rem;
	box-shadow: 0 2px 8px rgba(21, 66, 132, 0.1);
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.mphb_sc_search-wrapper input[type="submit"]:hover,
.mphb_sc_search-wrapper input[type="button"]:hover,
.mphb_sc_booking_form-wrapper input[type="submit"]:hover,
.mphb_sc_search_results-wrapper .button:hover,
.mphb_sc_checkout-wrapper .button:hover,
.mphb-checkout-wrapper .button:hover,
.mphb_sc_rooms-wrapper .button:hover,
.mphb_sc_rooms-wrapper .mphb-book-button:hover,
.mphb-confirm-button:hover,
button.mphb-btn:hover,
input.mphb-btn:hover,
.mphb_sc_search-submit-button:hover {
	background: #ffc933 !important;
	color: var(--hp-brand) !important;
	border-color: rgba(21, 66, 132, 0.22) !important;
	box-shadow: 0 3px 12px rgba(21, 66, 132, 0.14);
	filter: none;
}

/* --------------------------------------------------------------------------
   MotoPress — página de resultados de búsqueda (estilo portal tipo Booking.com)
   -------------------------------------------------------------------------- */

.mphb_sc_search_results-wrapper {
	background: var(--hp-form-card-bg);
	border: 1px solid var(--hp-border);
	border-radius: var(--hp-form-card-radius);
	box-shadow: var(--hp-form-shadow);
	padding: 1.35rem 1.25rem 1.75rem;
	max-width: min(960px, 100%);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

/* Franja informativa: fechas + número de alojamientos */
.mphb_sc_search_results-wrapper .mphb_sc_search_results-info {
	margin: 0 0 1.35rem;
	padding: 0.85rem 1rem;
	background: linear-gradient(180deg, #f0f6ff 0%, #e8f1fc 100%);
	border: 1px solid #d3e3f5;
	border-radius: 6px;
	font-size: 0.95rem;
	line-height: 1.45;
	color: #1a1a1a;
	font-weight: 600;
}

/* Carrito de reserva y recomendaciones: bloques secundarios */
.mphb_sc_search_results-wrapper .mphb-reservation-cart,
.mphb_sc_search_results-wrapper .mphb-recommendation {
	background: #fafbfd;
	border: 1px solid var(--hp-border);
	border-radius: 8px;
	padding: 1rem 1.15rem;
	margin-bottom: 1.5rem;
	box-sizing: border-box;
}

.mphb_sc_search_results-wrapper .mphb-reservation-cart::after,
.mphb_sc_search_results-wrapper .mphb-recommendation-details-list::after {
	content: '';
	display: table;
	clear: both;
}

.mphb_sc_search_results-wrapper .mphb-reservation-details,
.mphb_sc_search_results-wrapper .mphb-cart-message {
	font-size: 0.9rem;
	line-height: 1.5;
	color: #333;
}

.mphb_sc_search_results-wrapper .mphb-cart-total-price,
.mphb_sc_search_results-wrapper .mphb-recommendation-total {
	font-weight: 700;
	color: var(--hp-brand);
	font-size: 1.05rem;
}

/* Cada habitación encontrada: tarjeta (sustituye el margen 4em del plugin) */
.mphb_sc_search_results-wrapper .mphb-room-type:not(:first-of-type) {
	margin-top: 1.25rem !important;
}

.mphb_sc_search_results-wrapper .mphb-room-type {
	background: #fff;
	border: 1px solid var(--hp-border);
	border-radius: 8px;
	padding: 1.15rem 1.2rem;
	box-shadow: 0 2px 10px rgba(21, 66, 132, 0.06);
	box-sizing: border-box;
}

.mphb_sc_search_results-wrapper .mphb-room-type-title {
	color: var(--hp-brand);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 0.5rem;
}

.mphb_sc_search_results-wrapper .mphb-loop-room-thumbnail img,
.mphb_sc_search_results-wrapper .mphb-room-type-images img {
	border-radius: 6px;
	width: 100%;
	height: auto;
	object-fit: cover;
	vertical-align: middle;
}

.mphb_sc_search_results-wrapper .mphb-loop-room-thumbnail {
	margin: 0 0 0.75rem;
}

.mphb_sc_search_results-wrapper .mphb-regular-price,
.mphb_sc_search_results-wrapper .mphb-price {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--hp-brand);
}

.mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes {
	margin: 0.65rem 0;
	padding: 0;
	list-style: none;
	font-size: 0.88rem;
	line-height: 1.45;
	color: #444;
}

.mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes li {
	padding: 0.35rem 0;
	border-bottom: 1px solid #f0f0f0;
}

.mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes li:last-child {
	border-bottom: none;
}

.mphb_sc_search_results-wrapper .mphb-attribute-title {
	color: var(--hp-form-label-muted);
	font-weight: 600;
	margin-right: 0.35rem;
}

.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper .button,
.mphb_sc_search_results-wrapper .mphb-to-book-btn-wrapper .button,
.mphb_sc_search_results-wrapper .mphb-book-button {
	background: var(--hp-accent) !important;
	color: var(--hp-brand) !important;
	border: 1px solid rgba(21, 66, 132, 0.18) !important;
	border-radius: 4px !important;
	font-weight: 600 !important;
	padding: 0.55rem 1.1rem !important;
	min-height: 2.65rem;
	box-shadow: 0 2px 8px rgba(21, 66, 132, 0.1);
}

.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper .button:hover,
.mphb_sc_search_results-wrapper .mphb-to-book-btn-wrapper .button:hover,
.mphb_sc_search_results-wrapper .mphb-book-button:hover {
	background: #ffc933 !important;
	color: var(--hp-brand) !important;
}

.mphb_sc_search_results-wrapper .mphb-room-type-details-title {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--hp-form-label-muted);
	margin: 0.75rem 0 0.4rem;
}

/* Escritorio: imagen a la izquierda, datos a la derecha (listado tipo Booking) */
@media screen and (min-width: 782px) {
	.mphb_sc_search_results-wrapper .mphb-room-type {
		display: grid;
		grid-template-columns: minmax(200px, 280px) 1fr;
		column-gap: 1.35rem;
		row-gap: 0.45rem;
		align-items: start;
		padding: 1.25rem 1.35rem;
	}

	.mphb_sc_search_results-wrapper .mphb-room-type > :first-child:is(.mphb-room-type-images, .post-thumbnail.mphb-loop-room-thumbnail) {
		grid-row: 1 / -1;
		align-self: stretch;
	}

	.mphb_sc_search_results-wrapper .mphb-loop-room-thumbnail img,
	.mphb_sc_search_results-wrapper .mphb-room-type-images .mphb-flexslider img {
		max-height: 220px;
	}

	.mphb_sc_search_results-wrapper .mphb-to-book-btn-wrapper,
	.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper {
		margin-top: 0.35rem;
	}
}

/* Galería (página con todas las fotos) */
.hp-gallery-intro {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.hp-gallery-grid .wp-block-image {
	margin-bottom: 0;
}

.hp-gallery-grid img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

/* Página Ubicación: mapa Google embebido */
.hp-ubicacion-page .hp-map-embed {
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(21, 66, 132, 0.12);
	background: #e9eef5;
}

.hp-ubicacion-page .hp-map-embed iframe {
	display: block;
	width: 100%;
	min-height: 320px;
	height: 45vh;
	max-height: 520px;
	border: 0;
	vertical-align: bottom;
}

.hp-ubicacion-page .wp-block-buttons {
	margin-top: 1.25rem;
}

/* Formulario de contacto (shortcode) */
.hp-contacto-page .hp-contact-form-wrap {
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

.hp-contact-form-intro {
	text-align: center;
	font-size: 0.95rem;
	margin-bottom: 1.25rem;
}

.hp-contact-form-notice {
	padding: 0.85rem 1rem;
	border-radius: 6px;
	margin-bottom: 1.25rem;
	text-align: center;
}

.hp-contact-form-notice--ok {
	background: #e8f4ea;
	color: #1e4620;
	border: 1px solid #c3e6cb;
}

.hp-contact-form-notice--err {
	background: #fdecea;
	color: #611a15;
	border: 1px solid #f5c6cb;
}

.hp-contact-form .hp-contact-field {
	margin-bottom: 1rem;
}

.hp-contact-form .hp-contact-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: var(--wp--preset--color--brand, #154284);
}

.hp-contact-form .hp-contact-field .required {
	color: #c62828;
	font-weight: 700;
}

.hp-contact-form input[type="text"],
.hp-contact-form input[type="email"],
.hp-contact-form input[type="tel"],
.hp-contact-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.6rem 0.75rem;
	border: 1px solid #c5ced9;
	border-radius: 4px;
	font: inherit;
	background: #fff;
}

.hp-contact-form textarea {
	resize: vertical;
	min-height: 8rem;
}

.hp-contact-form .hp-contact-field--honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: 0;
}

.hp-contact-privacy {
	font-size: 0.85rem;
	line-height: 1.45;
	color: #4a5568;
	margin-bottom: 1rem;
}

.hp-contact-submit {
	margin-top: 0.5rem;
}

.hp-contact-submit .wp-block-button__link {
	cursor: pointer;
	border: none;
	font-weight: 600;
	padding: 0.65rem 1.5rem;
	border-radius: 4px;
}

.hp-contact-submit .wp-block-button__link:hover,
.hp-contact-submit .wp-block-button__link:focus {
	filter: brightness(0.97);
}

/* --------------------------------------------------------------------------
   Formularios globales — estilo tipo Booking.com (campos, etiquetas, tarjetas)
   -------------------------------------------------------------------------- */

/* Contenedor tipo “barra de búsqueda”: fondo blanco, sombra suave */
.mphb_sc_search-wrapper,
.mphb_sc_booking_form-wrapper,
.mphb_sc_checkout-wrapper,
.mphb-checkout-wrapper,
form.mphb_cb_search_form,
form.mphb_widget_search-form,
.hp-contact-form-wrap {
	background: var(--hp-form-card-bg);
	border: 1px solid var(--hp-border);
	border-radius: var(--hp-form-card-radius);
	box-shadow: var(--hp-form-shadow);
	box-sizing: border-box;
}

.mphb_sc_search-wrapper,
.mphb_sc_booking_form-wrapper,
.mphb_sc_checkout-wrapper,
.mphb-checkout-wrapper {
	padding: 1.25rem 1.5rem;
	max-width: min(960px, 100%);
	margin-left: auto;
	margin-right: auto;
}

.hp-contact-form-wrap {
	padding: 1.5rem 1.35rem;
}

/* Campos de texto: borde gris, esquinas redondeadas, foco azul marca */
main .wp-block-post-content input[type="text"],
main .wp-block-post-content input[type="email"],
main .wp-block-post-content input[type="tel"],
main .wp-block-post-content input[type="url"],
main .wp-block-post-content input[type="number"],
main .wp-block-post-content input[type="search"],
main .wp-block-post-content input[type="password"],
main .wp-block-post-content select,
main .wp-block-post-content textarea,
.wp-block-search__input,
.wp-block-post-comments-form input[type="text"],
.wp-block-post-comments-form input[type="email"],
.wp-block-post-comments-form input[type="url"],
.wp-block-post-comments-form textarea,
.hp-contact-form input[type="text"],
.hp-contact-form input[type="email"],
.hp-contact-form input[type="tel"],
.hp-contact-form textarea,
.mphb_sc_search-form input[type="text"],
.mphb_sc_search-form input[type="email"],
.mphb_sc_search-form input[type="tel"],
.mphb_sc_search-form input[type="number"],
.mphb_sc_search-form select,
.mphb_sc_search-form textarea,
.mphb-date-input input,
form.mphb_cb_search_form input[type="text"],
form.mphb_cb_search_form select,
form.mphb_cb_search_form textarea,
form.mphb_widget_search-form input[type="text"],
form.mphb_widget_search-form select,
.mphb_checkout-form input[type="text"],
.mphb_checkout-form input[type="email"],
.mphb_checkout-form input[type="tel"],
.mphb_checkout-form input[type="url"],
.mphb_checkout-form input[type="number"],
.mphb_checkout-form input[type="password"],
.mphb_checkout-form select,
.mphb_checkout-form textarea,
.mphb-booking-form input[type="text"],
.mphb-booking-form input[type="email"],
.mphb-booking-form input[type="tel"],
.mphb-booking-form select,
.mphb-booking-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--hp-input-border);
	border-radius: var(--hp-input-radius);
	background: #fff;
	color: var(--hp-form-label);
	font: inherit;
	font-size: 0.95rem;
	line-height: 1.4;
	transition:
		border-color 0.15s ease,
		box-shadow 0.15s ease;
}

main .wp-block-post-content select,
.mphb_sc_search-form select,
.mphb_checkout-form select,
.mphb-booking-form select {
	min-height: 2.65rem;
	cursor: pointer;
	appearance: auto;
}

main .wp-block-post-content input:hover,
main .wp-block-post-content select:hover,
main .wp-block-post-content textarea:hover,
.hp-contact-form input:hover,
.hp-contact-form textarea:hover,
.mphb_sc_search-form input:hover,
.mphb_sc_search-form select:hover,
.mphb_sc_search-form textarea:hover,
.mphb-date-input input:hover,
.mphb_checkout-form input:hover,
.mphb_checkout-form select:hover,
.mphb_checkout-form textarea:hover,
.mphb-booking-form input:hover,
.mphb-booking-form select:hover,
.mphb-booking-form textarea:hover {
	border-color: var(--hp-input-border-hover);
}

main .wp-block-post-content input:focus,
main .wp-block-post-content select:focus,
main .wp-block-post-content textarea:focus,
.wp-block-search__input:focus,
.wp-block-post-comments-form input:focus,
.wp-block-post-comments-form textarea:focus,
.hp-contact-form input:focus,
.hp-contact-form textarea:focus,
.mphb_sc_search-form input:focus,
.mphb_sc_search-form select:focus,
.mphb_sc_search-form textarea:focus,
.mphb-date-input input:focus,
.mphb_checkout-form input:focus,
.mphb_checkout-form select:focus,
.mphb_checkout-form textarea:focus,
.mphb-booking-form input:focus,
.mphb-booking-form select:focus,
.mphb-booking-form textarea:focus {
	outline: none;
	border-color: var(--hp-brand);
	box-shadow: var(--hp-focus-ring);
}

main .wp-block-post-content input:disabled,
main .wp-block-post-content select:disabled,
main .wp-block-post-content textarea:disabled,
.mphb_checkout-form input:disabled,
.mphb_checkout-form select:disabled {
	opacity: 0.65;
	cursor: not-allowed;
	background: #f5f5f5;
}

/* Etiquetas compactas y legibles (como en portales de reserva) */
.mphb_sc_search-form label,
.mphb_checkout-form label,
.mphb-booking-form label,
form.mphb_cb_search_form label,
form.mphb_widget_search-form label,
.hp-contact-form .hp-contact-field label,
main .wp-block-post-content .wp-block-post-comments-form label {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--hp-form-label);
	letter-spacing: 0.02em;
	margin-bottom: 0.4rem;
}

.mphb_sc_search-form .mphb-tip,
.mphb_checkout-form .description,
.mphb-booking-form .description {
	font-size: 0.8rem;
	color: var(--hp-form-label-muted);
	line-height: 1.4;
}

/* Checkboxes y radios: alinear con texto */
.mphb_checkout-form input[type="checkbox"],
.mphb_checkout-form input[type="radio"],
.mphb-booking-form input[type="checkbox"],
.mphb-booking-form input[type="radio"],
main .wp-block-post-content input[type="checkbox"],
main .wp-block-post-content input[type="radio"] {
	width: auto;
	accent-color: var(--hp-brand);
	cursor: pointer;
}

/* Tablas en checkout / resumen: cabecera discreta */
.mphb_sc_checkout-wrapper table th,
.mphb-checkout-wrapper table th,
.mphb_sc_search_results-wrapper table th {
	background: #f7f9fc;
	color: var(--hp-brand);
	font-weight: 600;
	font-size: 0.85rem;
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid var(--hp-border);
}

.mphb_sc_checkout-wrapper table td,
.mphb-checkout-wrapper table td,
.mphb_sc_search_results-wrapper table td {
	padding: 0.6rem 0.75rem;
	border-bottom: 1px solid var(--hp-border);
	vertical-align: middle;
}

/* Errores MotoPress */
.mphb-errors-wrapper .mphb-error,
.mphb-checkout-form .mphb-error {
	border-radius: var(--hp-input-radius);
	padding: 0.5rem 0.65rem;
}

/* --------------------------------------------------------------------------
   Responsive (móvil y tablet estrecha)
   -------------------------------------------------------------------------- */

/* hidden evita scroll horizontal sin el comportamiento de "clip" que en algunos
   navegadores interfiere con popups de calendario (MotoPress / datepick). */
html {
	overflow-x: hidden;
}

body .wp-site-blocks {
	overflow-x: hidden;
	max-width: 100vw;
}

/* MotoPress: el selector de fechas debe quedar por encima y recibir clics */
.datepick-popup,
#datepick-div.datepick-popup,
body > .datepick-popup {
	z-index: 100050 !important;
}

.mphb_sc_search-wrapper,
.mphb_sc_booking_form-wrapper,
.mphb-date-input,
form.mphb_sc_search-form,
form.mphb-search-form {
	overflow: visible !important;
}

.mphb-date-input input[readonly],
.mphb_sc_search-form .mphb-date-input input {
	cursor: pointer;
	pointer-events: auto;
}

/* Solo en páginas con MotoPress: evitar que el contenido recorte el datepick */
main .wp-block-post-content:has(.mphb_sc_search-wrapper),
main .wp-block-post-content:has(.mphb_sc_booking_form-wrapper),
main .wp-block-post-content:has(.mphb-date-input) {
	overflow: visible;
}

/* --------------------------------------------------------------------------
   MotoPress datepick — aspecto tipo Booking.com (cabecera azul marca, selección amarilla)
   -------------------------------------------------------------------------- */

.datepick-popup.mphb-datepick-popup {
	padding: 0 !important;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru.datepick {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
	border: 1px solid #d0d7e2;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-nav {
	background: var(--hp-brand) !important;
	border-color: var(--hp-brand) !important;
	border-radius: 0;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-nav a {
	color: #fff !important;
	font-weight: 600;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-nav a:hover {
	background: rgba(255, 255, 255, 0.12) !important;
	color: #fff !important;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-nav a.datepick-disabled {
	color: rgba(255, 255, 255, 0.45) !important;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month-header,
.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month-header select,
.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month-header input {
	background: #f7f9fc !important;
	color: var(--hp-brand) !important;
	font-weight: 600 !important;
	border-bottom: 1px solid #e3e8f0 !important;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month th,
.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month th a {
	background: #fff !important;
	color: #6b7c93 !important;
	font-size: 0.72rem !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month td .datepick-today {
	font-weight: 700 !important;
	color: var(--hp-brand) !important;
	box-shadow: inset 0 0 0 2px var(--hp-accent);
	border-radius: 4px;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month td .datepick-selected,
.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-month td a.datepick-highlight {
	background-color: var(--hp-accent) !important;
	color: var(--hp-brand) !important;
	border-radius: 4px;
	font-weight: 700;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-ctrl {
	background: #fff !important;
	border-color: #e3e8f0 !important;
}

.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru .datepick-ctrl a,
.datepick-popup.mphb-datepick-popup .mphb-datepicker-peru a.datepick-cmd {
	color: var(--hp-brand) !important;
}

/*
 * Popup sin skin «peru» o con estilos por defecto del plugin (cabecera negra, pie rojo):
 * mismas reglas Booking aplicadas a selectores genéricos + #datepick-div.
 */
.datepick-popup .datepick,
#datepick-div.datepick-popup .datepick,
#datepick-div .datepick {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
	border: 1px solid #d0d7e2;
}

.datepick-popup .datepick-nav,
#datepick-div .datepick-nav {
	background: var(--hp-brand) !important;
	border-color: var(--hp-brand) !important;
}

.datepick-popup .datepick-nav a,
#datepick-div .datepick-nav a {
	color: #fff !important;
	font-weight: 600;
}

.datepick-popup .datepick-nav a:hover,
#datepick-div .datepick-nav a:hover {
	background: rgba(255, 255, 255, 0.12) !important;
	color: #fff !important;
}

.datepick-popup .datepick-nav a.datepick-disabled,
#datepick-div .datepick-nav a.datepick-disabled {
	color: rgba(255, 255, 255, 0.45) !important;
}

.datepick-popup .datepick-month-header,
.datepick-popup .datepick-month-header select,
.datepick-popup .datepick-month-header input,
#datepick-div .datepick-month-header,
#datepick-div .datepick-month-header select,
#datepick-div .datepick-month-header input {
	background: #f7f9fc !important;
	color: var(--hp-brand) !important;
	font-weight: 600 !important;
	border-bottom: 1px solid #e3e8f0 !important;
}

.datepick-popup .datepick-month th,
.datepick-popup .datepick-month th a,
#datepick-div .datepick-month th,
#datepick-div .datepick-month th a {
	background: #fff !important;
	color: #6b7c93 !important;
	font-size: 0.72rem !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.datepick-popup .datepick-month td,
#datepick-div .datepick-month td {
	background: #fff !important;
}

.datepick-popup .datepick-month td a,
#datepick-div .datepick-month td a {
	color: #262626 !important;
}

.datepick-popup .datepick-month td .datepick-today,
#datepick-div .datepick-month td .datepick-today {
	font-weight: 700 !important;
	color: var(--hp-brand) !important;
	box-shadow: inset 0 0 0 2px var(--hp-accent);
	border-radius: 4px;
}

.datepick-popup .datepick-month td .datepick-selected,
.datepick-popup .datepick-month td a.datepick-highlight,
#datepick-div .datepick-month td .datepick-selected,
#datepick-div .datepick-month td a.datepick-highlight {
	background-color: var(--hp-accent) !important;
	color: var(--hp-brand) !important;
	border-radius: 4px;
	font-weight: 700;
}

.datepick-popup .datepick-month td .datepick-weekend,
#datepick-div .datepick-month td .datepick-weekend {
	background: #fafbfc !important;
}

.datepick-popup .datepick-ctrl,
#datepick-div .datepick-ctrl {
	background: #f7f9fc !important;
	border-color: #e3e8f0 !important;
	border-top: 1px solid #e3e8f0 !important;
}

.datepick-popup .datepick-ctrl a,
.datepick-popup a.datepick-cmd,
#datepick-div .datepick-ctrl a,
#datepick-div a.datepick-cmd {
	color: var(--hp-brand) !important;
	background: transparent !important;
	font-weight: 600 !important;
}

.datepick-popup .datepick-ctrl a:hover,
#datepick-div .datepick-ctrl a:hover {
	background: rgba(21, 66, 132, 0.08) !important;
}

/* Calendario de disponibilidad en ficha de habitación (inline) */
.mphb-calendar.mphb-datepick .mphb-datepicker-peru.datepick {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(21, 66, 132, 0.08);
	border: 1px solid #d0d7e2;
}

.mphb-calendar.mphb-datepick .mphb-datepicker-peru {
	--mphb-available-date-bg: #e8f4ea;
	--mphb-available-date-color: #1e4620;
	--mphb-not-available-date-bg: #fdecea;
	--mphb-not-available-date-color: #6b4a4a;
	--mphb-booked-date-bg: #fdecea;
	--mphb-booked-date-color: #6b4a4a;
	--mphb-selected-date-bg: var(--hp-accent);
	--mphb-selected-date-color: var(--hp-brand);
}

.mphb-calendar.mphb-datepick .mphb-datepicker-peru .datepick-nav {
	background: var(--hp-brand) !important;
	border-color: var(--hp-brand) !important;
}

.mphb-calendar.mphb-datepick .mphb-datepicker-peru .datepick-nav a {
	color: #fff !important;
	font-weight: 600;
}

.mphb-calendar.mphb-datepick .mphb-datepicker-peru .datepick-month-header,
.mphb-calendar.mphb-datepick .mphb-datepicker-peru .datepick-month-header select,
.mphb-calendar.mphb-datepick .mphb-datepicker-peru .datepick-month-header input {
	background: #f7f9fc !important;
	color: var(--hp-brand) !important;
	font-weight: 600 !important;
}

/* Evita desbordes por alignfull / márgenes negativos del tema padre */
.wp-block-group.alignfull {
	max-width: 100%;
	box-sizing: border-box;
}

/* Cabecera: logo centrado + menú debajo (hamburguesa en móvil con overlayMenu: mobile) */
.hp-header-inner,
.hp-header-wrap > .wp-block-group {
	row-gap: 0.75rem;
	column-gap: 1rem;
	width: 100%;
	box-sizing: border-box;
	display: flex !important;
	flex-flow: column nowrap !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center;
}

.hp-header-inner .hp-site-logo,
.hp-header-wrap > .wp-block-group > .hp-site-logo {
	margin-left: auto;
	margin-right: auto;
}

.hp-header-inner .wp-block-navigation,
.hp-header-wrap > .wp-block-group > .wp-block-navigation {
	justify-content: center;
	flex-wrap: wrap;
	width: 100%;
}

@media (max-width: 781px) {
	.hp-header-inner,
	.hp-header-wrap > .wp-block-group {
		align-items: center;
	}

	.hp-header-inner .wp-block-navigation,
	.hp-header-wrap > .wp-block-group > .wp-block-navigation {
		width: 100%;
		justify-content: center;
	}

	.hp-header-wrap .hp-site-logo {
		max-width: min(312px, 85vw); /* +20% respecto a 260px */
		margin-left: auto;
		margin-right: auto;
		width: auto !important;
	}

	.hp-header-wrap .hp-site-logo img {
		max-height: 58px; /* +20% respecto a 48px */
		width: auto;
	}

	.hp-header-wrap .wp-block-navigation .wp-block-navigation-item a {
		font-size: 0.9rem;
	}
}

/* Hero: menos altura y título legible en pantallas pequeñas */
@media (max-width: 781px) {
	.hp-hero-cover.wp-block-cover {
		min-height: min(48vh, 380px) !important;
	}

	.hp-hero-cover .has-x-large-font-size {
		font-size: clamp(1.2rem, 5.5vw, 1.55rem) !important;
		line-height: 1.25;
		padding-left: 0.25rem;
		padding-right: 0.25rem;
	}

	.hp-booking-card--on-cover {
		margin-left: max(0px, env(safe-area-inset-left, 0));
		margin-right: max(0px, env(safe-area-inset-right, 0));
	}
}

/* Botones del hero y CTA: envolver y espaciar */
.hp-booking-card .wp-block-buttons,
.hp-cta-strip .wp-block-buttons {
	flex-wrap: wrap;
	gap: 0.65rem 0.75rem;
	justify-content: center;
}

.hp-booking-card .wp-block-buttons .wp-block-button,
.hp-cta-strip .wp-block-buttons .wp-block-button {
	flex: 0 1 auto;
}

.hp-booking-card .wp-block-button__link,
.hp-cta-strip .wp-block-button__link {
	white-space: normal;
	text-align: center;
	line-height: 1.35;
}

/* Servicios: tarjeta con menos padding lateral */
@media (max-width: 781px) {
	.hp-services-card {
		padding: 1.15rem 1rem;
	}

	/* Columnas WordPress: asegurar separación al apilarse */
	.hp-services-card .wp-block-columns,
	.wp-block-group:not(.hp-header-wrap) .wp-block-columns {
		gap: 1.5rem 1rem;
	}
}

/* CTA inferior */
@media (max-width: 781px) {
	.hp-cta-strip {
		padding-left: max(1rem, env(safe-area-inset-left, 0));
		padding-right: max(1rem, env(safe-area-inset-right, 0));
	}
}

/* Pie: columnas más legibles al apilarse */
@media (max-width: 781px) {
	.hp-footer-booking .wp-block-columns {
		gap: 1.5rem;
	}

	.hp-footer-booking p.has-text-align-center {
		line-height: 1.55;
		word-break: break-word;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
}

/* MotoPress: formularios y listados no desbordan */
@media (max-width: 781px) {
	.mphb_sc_rooms-wrapper.mphb-room-types {
		padding-left: 0.25rem;
		padding-right: 0.25rem;
	}

	.mphb_sc_rooms-wrapper .mphb-room-type {
		padding: 1rem 0.9rem;
	}

	.mphb_sc_rooms-wrapper .mphb-room-type-title {
		font-size: 1.2rem;
	}

	.mphb_sc_search-wrapper,
	.mphb_sc_checkout-wrapper,
	.mphb-checkout-wrapper,
	[class*="mphb_sc_"] {
		max-width: 100%;
		box-sizing: border-box;
	}

	.mphb_sc_search-form,
	.mphb-search-form,
	.mphb-checkout-wrapper form {
		max-width: 100%;
	}

	.mphb_sc_search-form input[type="text"],
	.mphb_sc_search-form input[type="email"],
	.mphb_sc_search-form input[type="tel"],
	.mphb_sc_search-form select,
	.mphb_sc_search-form textarea,
	.mphb-date-input input,
	.mphb_checkout-form input,
	.mphb_checkout-form select {
		max-width: 100%;
		box-sizing: border-box;
	}

	/* Formulario de búsqueda MPHB: campos en columna en móvil */
	.mphb_sc_search-form table {
		display: block;
		width: 100%;
	}

	.mphb_sc_search-form table tbody,
	.mphb_sc_search-form table tr {
		display: block;
		width: 100%;
	}

	.mphb_sc_search-form table td,
	.mphb_sc_search-form table th {
		display: block;
		width: 100% !important;
		box-sizing: border-box;
		padding: 0.35rem 0 !important;
	}

	/* Checkout / tablas de precio: scroll horizontal si no caben */
	.mphb_sc_checkout-wrapper,
	.mphb-checkout-wrapper {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.mphb_sc_checkout-wrapper table,
	.mphb-checkout-wrapper table {
		width: 100%;
		min-width: 0;
	}

	.mphb_sc_search-submit-button {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		min-height: 2.75rem;
	}

	.mphb_sc_rooms-wrapper .mphb-book-button,
	button.mphb-btn:not(.mphb_sc_search-submit-button) {
		box-sizing: border-box;
	}
}

/* Extra pequeño: telefonillos */
@media (max-width: 360px) {
	.hp-booking-card .wp-block-button__link,
	.hp-cta-strip .wp-block-button__link {
		padding-left: 0.85rem;
		padding-right: 0.85rem;
		font-size: 0.95rem;
	}
}
