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

/* Cabecera a ancho completo del viewport (fuera del contenedor 1199px del contenido) */
.wp-site-blocks > header.wp-block-template-part {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
}

header.wp-block-template-part .hp-header-wrap,
header.wp-block-template-part .hp-header-wrap.is-layout-constrained {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Ancho de contenido global (1199px): no limitar la cabecera */
@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;
}

/* Cabecera arriba y pie al final del viewport en páginas cortas (reservas, checkout MPHB) */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

footer.wp-block-template-part {
	margin-top: auto;
}

/* 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: una sola fila a ancho completo, logo izquierda y menú derecha */
header.wp-block-template-part,
header.wp-block-template-part > .wp-block-group {
	width: 100%;
	max-width: 100%;
}

.hp-header-wrap {
	background: #fff;
	border-bottom: 1px solid var(--hp-border);
	box-shadow: 0 1px 8px rgba(21, 66, 132, 0.08);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.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 global (template part): fondo marca y texto claro (evita enlaces azules invisibles sobre azul) */
.hp-footer-booking {
	background-color: var(--hp-brand) !important;
	border-top: none;
	color: #fff;
}

.hp-footer-booking p,
.hp-footer-booking a {
	color: #fff !important;
	font-weight: 500;
}

.hp-footer-booking a:hover {
	color: var(--hp-brand-light) !important;
	text-decoration: underline;
}

/* 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: fila única — logo izquierda, menú derecha (hamburguesa en móvil) */
.hp-header-inner,
.hp-header-inner.is-vertical,
.hp-header-wrap > .wp-block-group.hp-header-inner,
.hp-header-wrap > .wp-block-group:not(.hp-header-wrap) {
	display: flex !important;
	flex-direction: row !important;
	flex-flow: row nowrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 1rem;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	text-align: left;
}

.hp-header-inner .hp-site-logo,
.hp-header-wrap .hp-site-logo {
	margin: 0;
	flex: 0 0 auto;
	max-width: min(220px, 38vw);
}

.hp-header-inner .wp-block-navigation,
.hp-header-wrap .wp-block-navigation {
	flex: 1 1 auto;
	justify-content: flex-end !important;
	flex-wrap: nowrap !important;
	width: auto;
	min-width: 0;
	margin-left: auto;
}

.hp-header-wrap .wp-block-navigation .wp-block-navigation__container {
	flex-wrap: nowrap;
	justify-content: flex-end;
	gap: 0.35rem 0.85rem;
}

@media (max-width: 781px) {
	.hp-header-wrap {
		padding-left: max(0.85rem, env(safe-area-inset-left, 0)) !important;
		padding-right: max(0.85rem, env(safe-area-inset-right, 0)) !important;
	}

	.hp-header-wrap .hp-site-logo {
		max-width: min(180px, 42vw);
	}

	.hp-header-wrap .hp-site-logo img {
		max-height: 52px;
		width: auto;
	}

	.hp-header-inner .wp-block-navigation,
	.hp-header-wrap .wp-block-navigation {
		flex: 0 0 auto;
		justify-content: flex-end !important;
	}
}

/* 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));
	}

	/* Hero móvil: evita que el logo/tarjeta se salgan por la derecha */
	.hp-hero-cover--slider .hp-booking-card--on-cover {
		width: calc(100vw - 1.5rem) !important;
		max-width: calc(100vw - 1.5rem) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		margin-inline: auto !important;
		padding-left: 0.9rem !important;
		padding-right: 0.9rem !important;
		box-sizing: border-box !important;
		overflow: hidden;
	}

	.hp-hero-cover--slider .hp-hero-logo,
	.hp-hero-cover--slider .hp-hero-logo img {
		max-width: 100% !important;
	}

	.hp-hero-cover--slider .hp-hero-logo img {
		width: min(320px, 78vw) !important;
		height: auto !important;
		display: block;
		margin-left: auto;
		margin-right: auto;
	}
}

/* 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;
	}
}

/* ==========================================================================
   MÓVIL — Rediseño consolidado estilo Booking (<= 781px)
   Objetivo: centrado simétrico, sin desbordes, padding lateral uniforme.
   Este bloque es el ÚLTIMO en ganar la cascada; sobreescribe reglas previas.
   ========================================================================== */
@media (max-width: 781px) {

	/* Evita scroll horizontal provocado por cualquier bloque ancho */
	html,
	body {
		overflow-x: hidden;
	}

	/* --- 1) Normalizar contenedores de WP en páginas de contenido ---------- */
	/* En páginas/entradas (no portada):
	   - El <main> conserva su has-global-padding (padding lateral del theme),
	     así que marcamos todos los .alignfull dentro de main con margin 0 y
	     padding 0 (evita el calc(-1 * var(--wp--style--root--padding-*)) que
	     desplazaba todo el contenido fuera del viewport por la izquierda).
	   - El .wp-block-post-content es quien gestiona el padding de lectura. */

	/* Neutralizar el margin/width negativo que introduce .alignfull en los
	   wrappers intermedios (main y el wp-block-group envolvente), SIN resetear
	   su padding (el padding útil lo gestiona .wp-block-post-content). */
	body:not(.home) main > .alignfull,
	body:not(.home) main > .wp-block-group.alignfull,
	body:not(.home) main > .wp-block-cover.alignfull {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		left: auto !important;
		right: auto !important;
		width: auto !important;
		max-width: 100% !important;
	}

	/* El propio .wp-block-post-content también lleva .alignfull: neutralizamos
	   solo margen/ancho, pero NO el padding (que da el respiro interior). */
	body:not(.home) main .wp-block-post-content.alignfull {
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: auto !important;
		right: auto !important;
		width: auto !important;
		max-width: 100% !important;
	}

	/* Neutralizar padding acumulado de has-global-padding en los wrappers
	   intermedios (main y el wp-block-group envolvente); solo dejamos el
	   padding útil en el .wp-block-post-content. */
	body:not(.home) main.wp-block-group.has-global-padding,
	body:not(.home) main > .wp-block-group.has-global-padding {
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box;
	}

	body:not(.home) .wp-block-post-content.has-global-padding,
	body:not(.home) .wp-block-post-content {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
		box-sizing: border-box;
	}

	/* Hijos directos del contenido: ancho 100% sin márgenes asimétricos */
	body:not(.home) .wp-block-post-content > *,
	body:not(.home) .wp-block-post-content > p,
	body:not(.home) .wp-block-post-content > .wp-block-group,
	body:not(.home) .wp-block-post-content > [class*="mphb_sc_"] {
		width: auto !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box;
	}

	/* --- 2) MotoPress: buscador y checkout ---------------------------------- */
	.mphb_sc_search-wrapper,
	.mphb_sc_checkout-wrapper,
	.mphb-checkout-wrapper,
	[class*="mphb_sc_"] {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box !important;
	}

	/* Tarjeta del formulario: mismo padding a ambos lados, centrada */
	.mphb_sc_search-wrapper .mphb_sc_search-form,
	.mphb_sc_search-wrapper .mphb-search-form,
	.mphb-checkout-wrapper form {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding: 1.25rem 1.15rem !important;
		box-sizing: border-box !important;
		background: var(--hp-form-card-bg, #fff);
		border-radius: var(--hp-form-card-radius, 8px);
		box-shadow: var(--hp-form-shadow, 0 2px 12px rgba(0, 0, 0, 0.06));
	}

	.mphb_sc_search-wrapper .mphb_sc_search-form p,
	.mphb_sc_search-wrapper .mphb-search-form p {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* Tabla interna del buscador: columna única en móvil */
	.mphb_sc_search-form table,
	.mphb_sc_search-form table tbody,
	.mphb_sc_search-form table tr {
		display: block !important;
		width: 100% !important;
	}

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

	/* Campos y selects ocupan todo el ancho disponible */
	.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,
	.mphb_checkout-form input,
	.mphb_checkout-form select {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	/* Botón de buscar: full-width tipo Booking, buena área táctil */
	.mphb_sc_search-submit-button,
	.mphb_sc_search-wrapper input[type="submit"] {
		width: 100% !important;
		max-width: 100% !important;
		min-height: 2.75rem;
		box-sizing: border-box;
	}

	/* Resultados / listados de habitaciones — tarjeta tipo Booking */
	.mphb_sc_rooms-wrapper.mphb-room-types,
	.mphb_sc_search_results-wrapper {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.mphb_sc_rooms-wrapper .mphb-room-type,
	.mphb_sc_search_results-wrapper .mphb-room-type {
		background: #fff;
		border: 1px solid var(--hp-border);
		border-radius: var(--hp-form-card-radius, 8px);
		box-shadow: var(--hp-form-shadow, 0 2px 12px rgba(0, 0, 0, 0.06));
		padding: 1.15rem 1.15rem 1.25rem !important;
		margin-bottom: 1rem !important;
	}

	.mphb_sc_rooms-wrapper .mphb-room-type-title,
	.mphb_sc_search_results-wrapper .mphb-room-type-title {
		font-size: 1.15rem;
		margin-top: 0;
		margin-bottom: 0.5rem;
	}

	.mphb_sc_rooms-wrapper .mphb-room-type-title a,
	.mphb_sc_search_results-wrapper .mphb-room-type-title a {
		text-decoration: none;
	}

	/* Botones de la card (Ver detalles / Hacer reserva): mismo ancho y estilo */
	.mphb_sc_rooms-wrapper .mphb-view-details-button-wrapper,
	.mphb_sc_rooms-wrapper .mphb-to-book-btn-wrapper,
	.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper,
	.mphb_sc_search_results-wrapper .mphb-to-book-btn-wrapper {
		display: block !important;
		width: 100% !important;
		margin: 0.4rem 0 0 !important;
	}

	.mphb_sc_rooms-wrapper .mphb-view-details-button-wrapper .button,
	.mphb_sc_rooms-wrapper .mphb-to-book-btn-wrapper .button,
	.mphb_sc_rooms-wrapper .mphb-book-button,
	.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 {
		display: block !important;
		width: 100% !important;
		text-align: center !important;
		text-decoration: none !important;
		min-height: 2.75rem;
		padding: 0.75rem 1rem !important;
		font-weight: 700;
		box-sizing: border-box !important;
	}

	/* Variante secundaria para "Ver detalles": sin fondo amarillo,
	   con borde y texto azul marca (jerarquía visual tipo Booking) */
	.mphb_sc_rooms-wrapper .mphb-view-details-button-wrapper .button,
	.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper .button {
		background: #fff !important;
		color: var(--hp-brand) !important;
		border: 1px solid var(--hp-brand) !important;
	}

	/* Precio: un poco más destacado */
	.mphb_sc_rooms-wrapper .mphb-price,
	.mphb_sc_search_results-wrapper .mphb-price {
		font-weight: 700;
		font-size: 1.05rem;
	}

	/* Lista de atributos: menos sangría */
	.mphb_sc_rooms-wrapper .mphb-loop-room-type-attributes,
	.mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes {
		padding-left: 1.1rem !important;
		margin: 0.4rem 0 0.75rem !important;
	}

	/* Tablas de checkout/precios: scroll horizontal si hace falta */
	.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;
	}

	/* --- 3) Tipografía y títulos en páginas de contenido ----------------- */
	body:not(.home) h1.wp-block-post-title {
		font-size: clamp(1.4rem, 6.5vw, 1.9rem);
		line-height: 1.2;
		margin-top: 0.25rem;
		margin-bottom: 0.75rem;
	}

	body:not(.home) h2 {
		font-size: clamp(1.15rem, 5.2vw, 1.45rem);
		line-height: 1.25;
	}

	body:not(.home) .wp-block-post-content img,
	body:not(.home) .wp-block-post-content figure {
		max-width: 100%;
		height: auto;
	}

	body:not(.home) .wp-block-post-content figure {
		margin-left: 0;
		margin-right: 0;
	}

	/* Columnas: se apilan limpias con separación adecuada */
	body:not(.home) .wp-block-post-content .wp-block-columns {
		gap: 1rem;
	}

	body:not(.home) .wp-block-post-content .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
	}

	/* Botones de contenido: área táctil cómoda */
	body:not(.home) .wp-block-post-content .wp-block-button__link {
		display: inline-block;
		min-height: 2.6rem;
		padding-top: 0.65rem;
		padding-bottom: 0.65rem;
	}

	/* Mapas / iframes embebidos: sin desbordes */
	body:not(.home) .wp-block-post-content iframe,
	body:not(.home) .wp-block-post-content .wp-block-embed__wrapper {
		max-width: 100% !important;
		width: 100% !important;
	}

	/* --- 4) Espacio inferior para que el botón de cookies no tape --------- */
	body:not(.home) .wp-block-post-content {
		padding-bottom: max(4.5rem, env(safe-area-inset-bottom, 0));
	}
}

/* ==========================================================================
   Single habitación (/accommodation/...) — estilo Booking
   ========================================================================== */

/* Ocultar meta del tema (Escrito por X en Y), navegación prev/next, comentarios
   y bloque "Más entradas": no tienen sentido en la ficha de una habitación. */
body.single-mphb_room_type .wp-block-post-author,
body.single-mphb_room_type .wp-block-post-author-name,
body.single-mphb_room_type .wp-block-post-date,
body.single-mphb_room_type main .wp-block-group.has-accent-4-color.has-small-font-size,
body.single-mphb_room_type .wp-block-post-navigation-link,
body.single-mphb_room_type nav.wp-block-group:has(.wp-block-post-navigation-link),
body.single-mphb_room_type .wp-block-comments,
body.single-mphb_room_type .wp-block-post-comments-form,
body.single-mphb_room_type main > .wp-block-group > .wp-block-group:has(> .wp-block-query),
body.single-mphb_room_type main .wp-block-query {
	display: none !important;
}

/* H1 de la habitación: centrado, azul marca (ya está globalmente centrado) */
body.single-mphb_room_type h1.wp-block-post-title {
	margin-bottom: 0.75rem;
}

/* Descripción (párrafo inicial bajo el título) */
body.single-mphb_room_type .wp-block-post-content > p:first-of-type {
	font-size: 1.02rem;
	line-height: 1.55;
	color: #333;
}

/* Secciones de MPHB (Detalles, Disponibilidad, Formulario): tarjeta blanca */
body.single-mphb_room_type .mphb-details-wrapper,
body.single-mphb_room_type .mphb-calendar-wrapper,
body.single-mphb_room_type .mphb-reservation-form-wrapper,
body.single-mphb_room_type .wp-block-post-content > .mphb-room-details,
body.single-mphb_room_type .wp-block-post-content > form.mphb-booking-form {
	background: #fff;
	border: 1px solid var(--hp-border);
	border-radius: var(--hp-form-card-radius, 8px);
	box-shadow: var(--hp-form-shadow, 0 2px 12px rgba(0, 0, 0, 0.06));
	padding: 1.25rem 1.15rem;
	margin: 1rem 0;
	box-sizing: border-box;
}

/* Títulos de sección MPHB (color marca) */
body.single-mphb_room_type .mphb-details-title,
body.single-mphb_room_type .mphb-calendar-title,
body.single-mphb_room_type .mphb-reservation-form-title {
	font-size: 1.15rem;
	color: var(--hp-brand);
	margin: 0 0 0.75rem 0;
	line-height: 1.2;
}

/* Lista de atributos (Huéspedes, etc.) */
body.single-mphb_room_type .mphb-room-attributes,
body.single-mphb_room_type .mphb-details-wrapper ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem 1rem;
}

body.single-mphb_room_type .mphb-room-attributes li,
body.single-mphb_room_type .mphb-details-wrapper ul li {
	background: var(--hp-bg-page, #f5f6fa);
	padding: 0.55rem 0.75rem;
	border-radius: 6px;
	font-size: 0.92rem;
	line-height: 1.35;
}

/* Precio: destacar "30 € por noche" */
body.single-mphb_room_type .mphb-price,
body.single-mphb_room_type p:has(.mphb-price),
body.single-mphb_room_type p strong:first-child {
	font-size: 1.1rem;
}

body.single-mphb_room_type .mphb-price {
	color: var(--hp-brand);
	font-weight: 700;
}

/* Calendario de disponibilidad: centrado y con aire */
body.single-mphb_room_type .mphb-calendar {
	display: flex;
	justify-content: center;
	margin: 0 auto;
}

/* Móvil: lista de atributos a una columna, padding simétrico */
@media (max-width: 781px) {
	body.single-mphb_room_type .mphb-room-attributes,
	body.single-mphb_room_type .mphb-details-wrapper ul {
		grid-template-columns: 1fr;
	}

	body.single-mphb_room_type .mphb-details-wrapper,
	body.single-mphb_room_type .mphb-calendar-wrapper,
	body.single-mphb_room_type .mphb-reservation-form-wrapper,
	body.single-mphb_room_type .wp-block-post-content > form.mphb-booking-form {
		padding: 1rem;
	}
}

/* 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;
	}
}

/*
 * Resultados de búsqueda MPHB: mostrar solo tipos con disponibilidad (sin nº de habitaciones/unidades).
 * El selector de cantidad y el resumen “N alojamientos encontrados” ocultan la percepción de inventario;
 * MotoPress sigue enviando cantidad 1 por tipo al carrito (el select sigue en el DOM si existe).
 */
.mphb_sc_search_results-wrapper .mphb-rooms-quantity-wrapper,
.mphb_sc_search_results-wrapper .mphb-available-rooms-count,
.mphb_sc_search_results-wrapper .mphb_sc_search_results-info,
.mphb_sc_search_results-wrapper #mphb-recommendation,
.mphb_sc_search_results-wrapper .mphb-recommendation {
	display: none !important;
}

/* Páginas legales (RGPD, LSSI, cookies, términos) */
.hp-legal-page {
	max-width: 48rem;
	margin: 0 auto 3rem;
	line-height: 1.65;
	color: #333;
}
.hp-legal-page h1 {
	color: var(--hp-brand, #154284);
	font-size: 1.75rem;
	margin-bottom: 1rem;
}
.hp-legal-page h2 {
	color: var(--hp-brand, #154284);
	font-size: 1.25rem;
	margin: 2rem 0 0.75rem;
	border-bottom: 1px solid var(--hp-border, #e7e7e7);
	padding-bottom: 0.35rem;
}
.hp-legal-page h3 {
	font-size: 1.05rem;
	margin: 1.25rem 0 0.5rem;
}
.hp-legal-page p,
.hp-legal-page li {
	font-size: 0.98rem;
}
.hp-legal-page ul,
.hp-legal-page ol {
	margin: 0.5rem 0 1rem 1.25rem;
}
.hp-legal-page table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0 1.5rem;
	font-size: 0.9rem;
}
.hp-legal-page th,
.hp-legal-page td {
	border: 1px solid var(--hp-border, #e7e7e7);
	padding: 0.6rem 0.75rem;
	text-align: left;
	vertical-align: top;
}
.hp-legal-page th {
	background: #f5f6fa;
	font-weight: 600;
}
.hp-legal-page a {
	color: var(--hp-brand, #154284);
}
@media (max-width: 600px) {
	.hp-legal-page table {
		display: block;
		overflow-x: auto;
	}
}
