/* Room Amenities Grid Styling */
.room-amenities-container {
	margin-top: 40px;
	margin-bottom: 30px;
}



.room-amenities-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
}


.single-mphb_room_type .mphb-booking-form  {
	box-shadow: 0px 0px 4px 1px #cccccc;
	padding: 15px;
}

.single-mphb_room_type .room-amenities-container {
	margin-top: 40px;
	margin-bottom: 30px;
	box-shadow: 0px 0px 4px 1px #cccccc;
	padding: 15px;
}

.room-amenities-title {
	color: #b47d4c;
	margin: 0;
}

.toggle-button {
	background: #b47d4c;
	color: white;
	border: none;
	padding: 8px 15px;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.toggle-button:hover {
	background: #b38c45;
}

.room-amenities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(calc(5% - 0px), 3fr));
	gap: 10px;
}

.room-amenities-grid.two-columns{
grid-template-columns: repeat(auto-fill, minmax(calc(20% - 10px), 3fr));
}

.two-column .room-amenity-item{
	display: flex;
}

.single-mphb_room_type h2 {
	font-size: 31px;
	font-size: 25px;
}

.mphb-single-room-type-attributes li {
	border: 0px solid #ededed !important;
	border-bottom: 1px solid #f5f5f5 !important;
}


.mphb-single-room-type-attributes li .mphb-attribute-title {
	border-right: 0px solid #ededed !important;
}

.mphb-single-room-type-attributes li .mphb-attribute-title{
	display: table-cell;
	padding: 5px 11px !important;
}

.room-amenity-item {
	text-align: center;
	background: #f9f9f900;
	padding: 0px;
	border-radius: 5px;
	transition: transform 0.2sease, box-shadow 0.2sease;
}

.room-amenity-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.amenity-image {
	margin-bottom: 0px;
}

.amenity-image img {
	max-width: 100%;
	height: auto;
	max-height: 40px;
}

.amenity-name {
	font-weight: 500;
	font-size: 8px;
	line-height: 15px;
}

li.mphb-room-type-facilities  {
	display: none !important;
}

.mphb-single-room-type-attributes li {
	font-size: 12px !important;
}

.datepick-month.last{
	display: none;
}

.mphb-reserve-btn-wrapper .mphb-reserve-btn {
	margin-top: 25px !important;
	padding: 10px 15px !important;
	background: #b47d4c !important;
}


.single-mphb_room_type .site-content {
	padding-left: 30px;
	padding-right: 30px;
}

.mphb-single-room-type-attributes li .mphb-attribute-value {
	padding: 10px 0.25rem !important;
}

.mphb-single-room-type-attributes li:before {
	padding: 0 .5em 0 0em !important;
}

.mphb-single-room-type-attributes li .mphb-attribute-title {
	display: table-cell;
	padding: 0px 0px !important;
}

input[type='text'].mphb-datepick.is-datepick{
	padding: 5px 1em !important; 
}

.single-mphb_room_type .mphb-booking-form  select {
	padding: 0px 15px !important;
	height: 40px !important; 
}

.single-mphb_room_type .mphb-booking-form p {
	margin: 0 0 0.5em;
}

/* ============================================================
   ROOM DETAILS – RESPONSIVE LAYOUT
   Desktop ≥1024px  |  Tablet 768–1023px  |  Mobile <768px
   ============================================================ */

/* ----- Shared layout: content + sidebar side-by-side on ≥1024px ----- */
@media (min-width: 1024px) {
	/* Two-column layout: description left, booking form right */
	.single-mphb_room_type .entry-content-inner-wrapper {
		display: grid;
		grid-template-columns: 1fr 340px;
		gap: 40px;
		align-items: start;
	}

	/* Booking form sticks to top while scrolling */
	.single-mphb_room_type .mphb-booking-form {
		position: sticky;
		top: 100px;
	}

	/* Hero image: taller on desktop */
	.single-mphb_room_type .site-content
		.post-thumbnail.mphb-single-room-type-post-thumbnail {
		height: 70vh;
		min-height: 420px;
	}

	/* Title sits lower in hero for breathing room */
	.single-mphb_room_type .site-content h1.mphb-room-type-title {
		top: 55vh;
		font-size: 42px;
		letter-spacing: 1px;
	}

	/* Price overlay position */
	.single-mphb_room_type .site-content .mphb-regular-price {
		top: 65vh;
	}

	/* Amenities: 4-column grid */
	.single-mphb_room_type .room-amenities-grid {
		grid-template-columns: repeat(4, 1fr) !important;
	}

	/* Attributes table: two side-by-side columns */
	.single-mphb_room_type .mphb-single-room-type-attributes {
		columns: 2;
		column-gap: 30px;
	}

	.single-mphb_room_type .mphb-single-room-type-attributes li {
		break-inside: avoid;
	}
}

/* ----- Tablet: 768px – 1023px ----- */
@media (min-width: 768px) and (max-width: 1023px) {
	/* Stack content above booking form */
	.single-mphb_room_type .entry-content-inner-wrapper {
		display: flex;
		flex-direction: column;
		gap: 30px;
	}

	.single-mphb_room_type .mphb-booking-form {
		max-width: 540px;
		margin: 0 auto;
		width: 100%;
	}

	/* Hero: medium height */
	.single-mphb_room_type .site-content
		.post-thumbnail.mphb-single-room-type-post-thumbnail {
		height: 55vh;
		min-height: 320px;
	}

	.single-mphb_room_type .site-content h1.mphb-room-type-title {
		top: 42vh;
		font-size: 32px;
	}

	.single-mphb_room_type .site-content .mphb-regular-price {
		top: 52vh;
	}

	/* Amenities: 3-column grid */
	.single-mphb_room_type .room-amenities-grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}

	/* Padding */
	.single-mphb_room_type .site-content {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* ----- Mobile: < 768px ----- */
@media (max-width: 767px) {
	/* Full-width stacked layout */
	.single-mphb_room_type .entry-content-inner-wrapper {
		display: flex;
		flex-direction: column;
		gap: 20px;
	}

	/* Hero: compact */
	.single-mphb_room_type .site-content
		.post-thumbnail.mphb-single-room-type-post-thumbnail {
		height: 50vw;
		min-height: 220px;
		margin-left: -15px !important;
		margin-right: -15px !important;
		margin-bottom: 50px;
	}

	.single-mphb_room_type .site-content h1.mphb-room-type-title {
		font-size: 22px;
		top: 35vw;
		padding: 0 15px;
		line-height: 1.3;
	}

	.single-mphb_room_type .site-content .mphb-regular-price {
		top: 46vw;
		font-size: 18px !important;
	}

	/* Full-width hero image */
	.single-mphb_room_type .site-content {
		padding-left: 15px;
		padding-right: 15px;
	}

	/* Booking form: full width, remove shadow overflow */
	.single-mphb_room_type .mphb-booking-form {
		width: 100%;
		box-sizing: border-box;
	}

	/* Booking form inputs: full width */
	.single-mphb_room_type .mphb-booking-form input,
	.single-mphb_room_type .mphb-booking-form select {
		width: 100% !important;
		box-sizing: border-box;
	}

	/* Amenities: 2-column grid on mobile */
	.single-mphb_room_type .room-amenities-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 8px;
	}

	/* Amenity text: bigger on mobile for tap targets */
	.single-mphb_room_type .amenity-name {
		font-size: 10px !important;
	}

	/* Attributes list: full width */
	.single-mphb_room_type .mphb-single-room-type-attributes {
		width: 100%;
	}

	/* Gallery: full-screen height on mobile */
	.mphb-room-type-images .flex-viewport {
		max-height: 260px;
	}

	/* Gallery slider arrows: bigger touch targets */
	.mphb-single-room-type-gallery-wrapper .slick-prev,
	.mphb-single-room-type-gallery-wrapper .slick-next {
		width: 36px;
		height: 36px;
	}

	/* Room description text */
	.single-mphb_room_type p {
		font-size: 13px;
		line-height: 1.7;
	}

	/* Amenities container */
	.single-mphb_room_type .room-amenities-container {
		padding: 12px !important;
		margin-top: 20px;
		margin-bottom: 20px;
	}

	/* Header of amenities */
	.room-amenities-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	/* Reserve button: full width */
	.mphb-reserve-btn-wrapper .mphb-reserve-btn {
		width: 100%;
		text-align: center;
	}
}

/* ================================================================
   SINGLE ROOM TYPE — VISUAL REDESIGN
   Gallery mosaic, two-column layout, details/amenities cards,
   calendar + reservation form styling.
   ================================================================ */

:root {
	--room-gold: #b47d4c;
	--room-gold-dark: #9a6539;
	--room-ink: #1a1a1a;
	--room-cream: #faf7f3;
	--room-line: #ece2d8;
}

/* ------ Gallery: plain CSS grid mosaic + lightbox (no slider) ------ */
.mphb-single-room-type-gallery-wrapper {
	margin: 0 0 40px;
}

.mphb-single-room-type-gallery-wrapper .gallery {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 130px;
	gap: 8px;
	margin: 0 !important;
	padding: 0;
}

.mphb-single-room-type-gallery-wrapper .gallery-item {
	width: 100% !important;
	margin: 0 !important;
	height: 100%;
}

.mphb-single-room-type-gallery-wrapper .gallery-item:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

.mphb-single-room-type-gallery-wrapper .gallery-icon {
	height: 100%;
	border-radius: 6px;
	overflow: hidden;
	position: relative;
}

.mphb-single-room-type-gallery-wrapper .gallery-icon a {
	display: block;
	height: 100%;
	cursor: zoom-in;
}

.mphb-single-room-type-gallery-wrapper .gallery-icon img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	object-position: center;
	transition: transform 0.5s ease;
}

.mphb-single-room-type-gallery-wrapper .gallery-icon:hover img {
	transform: scale(1.06);
}

/* Some rooms have 40-60+ near-duplicate photos — show a tidy 9-tile
   mosaic and let the lightbox (loop:true) handle the rest instead of
   forcing everyone to scroll past dozens of thumbnails. */
.mphb-single-room-type-gallery-wrapper .gallery-item:nth-child(n + 10) {
	display: none !important;
}

.mphb-single-room-type-gallery-wrapper .gallery-item:nth-child(9):nth-last-child(n + 2) .gallery-icon::after {
	content: "+ Voir toutes les photos";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 8px;
	background: rgba(20, 15, 10, 0.55);
	color: #fff;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	pointer-events: none;
}

/* ------ Two-column layout ------ */
.mphb-room-layout {
	display: block;
	max-width: 1100px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.mphb-room-sidebar {
	margin-top: 40px;
}

@media (min-width: 1024px) {
	.mphb-room-layout {
		display: grid;
		grid-template-columns: 1fr 360px;
		gap: 56px;
		align-items: start;
	}

	.mphb-room-sidebar {
		margin-top: 0;
		position: sticky;
		top: 100px;
	}
}

/* ------ Section titles ------ */
.mphb-details-title,
.mphb-calendar-title,
.mphb-reservation-form-title,
.room-amenities-title {
	font-family: "DM Serif Display", serif;
	font-size: 24px;
	font-weight: normal;
	color: var(--room-ink);
	margin: 0 0 20px;
	position: relative;
	padding-bottom: 12px;
}

.mphb-details-title::after,
.mphb-calendar-title::after,
.mphb-reservation-form-title::after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 40px;
	height: 2px;
	background: var(--room-gold);
}

/* ------ Details list: icon-badge rows on a clean card ------ */
.mphb-single-room-type-attributes {
	list-style: none;
	margin: 0 0 36px !important;
	padding: 4px 0 !important;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 24px;
	border: none !important;
}

.mphb-single-room-type-attributes li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0 !important;
	border: none !important;
	border-bottom: 1px solid var(--room-line) !important;
	font-size: 14px;
	color: #444;
}

.mphb-single-room-type-attributes li::before {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: var(--room-cream);
	border-radius: 50%;
	color: var(--room-gold) !important;
	font-size: 15px !important;
	padding: 0 !important;
}

.mphb-single-room-type-attributes .mphb-attribute-title {
	font-weight: 600;
	color: var(--room-ink);
	margin-right: 4px;
}

.mphb-single-room-type-attributes .mphb-attribute-value {
	color: #666;
}

.mphb-single-room-type-attributes li.mphb-room-type-facilities {
	display: none !important;
}

/* ------ Amenities card ------ */
.room-amenities-container {
	background: #fff;
	border: 1px solid var(--room-line);
	border-radius: 10px;
	padding: 28px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
	margin: 0 0 40px;
}

.room-amenities-title {
	margin-bottom: 0;
	padding-bottom: 0;
}

.room-amenities-title::after {
	display: none;
}

.toggle-button {
	background: transparent;
	color: var(--room-gold);
	border: 1px solid var(--room-gold);
	border-radius: 20px;
	padding: 6px 18px;
	font-size: 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.toggle-button:hover {
	background: var(--room-gold);
	color: #fff;
}

.room-amenities-grid {
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: 20px;
}

.room-amenity-item {
	padding: 14px 8px;
	border-radius: 8px;
	background: var(--room-cream);
}

.room-amenity-item img,
.room-amenity-item svg {
	max-height: 30px;
}

/* ------ Price ------ */
.mphb-room-main > .mphb-regular-price,
.mphb-room-sidebar .mphb-regular-price {
	font-family: "DM Serif Display", serif;
	font-size: 28px;
	color: var(--room-gold);
	margin: 0 0 20px !important;
}

.mphb-regular-price .mphb-price-period {
	font-family: "Jost", sans-serif;
	font-size: 13px;
	color: #999;
}

/* ------ Calendar card ------ */
.mphb-room-sidebar {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.mphb-room-sidebar .mphb-calendar-title,
.mphb-room-sidebar .mphb-reservation-form-title {
	font-size: 20px;
}

.mphb-calendar {
	background: #fff;
	border: 1px solid var(--room-line);
	border-radius: 10px;
	padding: 20px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.mphb-calendar table {
	width: 100%;
}

/* The parent theme's motopress-hotel-booking.css hardcodes the
   calendar widget to 35rem/36.5rem !important (sized for its default
   2-month layout). Now that numberOfMonthCalendar is patched to 1
   (see mphb-customizations.php), that oversized width just reserves
   dead space next to a single narrower month. Give it back the
   sidebar's actual width so the one visible month fills it properly. */
.mphb-calendar .datepick {
	width: 100% !important;
	margin: 0 auto;
}

/* .datepick-month itself is capped to max-width:50% at >=768px in the
   parent theme (built for the stock 2-month-side-by-side layout), so
   even a width:100% table inside it was still boxed into half the
   available width. With numberOfMonthCalendar patched to 1, this
   single month should claim the full row. */
.mphb-calendar .datepick-month-row {
	width: 100% !important;
	float: none !important;
}

.mphb-calendar .datepick-month {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	padding: 0 12px !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}

.mphb-calendar .datepick-month table {
	width: 100% !important;
}

.mphb-calendar .datepick-highlight a,
.mphb-calendar td a {
	border-radius: 4px;
}

/* ------ Reservation CTA (opens the site's real booking popup) ------ */
.mphb-reservation-cta {
	background: var(--room-gold);
	border-radius: 10px;
	padding: 28px 24px;
	color: #fff;
	text-align: center;
	display: none;
}

.mphb-reservation-cta .mphb-reservation-form-title {
	color: #fff;
	font-size: 20px;
	margin-bottom: 12px;
	padding-bottom: 0;
}

.mphb-reservation-cta .mphb-reservation-form-title::after {
	display: none;
}

.mphb-reservation-cta p {
	color: rgba(255, 255, 255, 0.85);
	font-size: 13px;
	line-height: 1.6;
	margin: 0 0 20px;
}

.mphb-reservation-cta .dar-reservation-cta-button {
	display: block;
	background: #fff;
	color: var(--room-gold-dark) !important;
	border-radius: 6px;
	padding: 14px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 0.2s ease;
}

.mphb-reservation-cta .dar-reservation-cta-button:hover {
	transform: translateY(-2px);
}

/* ------ Reservation form card ------ */
.mphb-booking-form {
	background: #fff;
	border: 1px solid var(--room-line);
	border-radius: 10px;
	padding: 24px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.mphb-booking-form label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #777;
}

.mphb-booking-form input[type="text"],
.mphb-booking-form select {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--room-line);
	border-radius: 6px;
	padding: 10px 12px;
	margin-top: 6px;
	font-size: 14px;
	background: var(--room-cream);
}

.mphb-booking-form input[type="text"]:focus,
.mphb-booking-form select:focus {
	outline: none;
	border-color: var(--room-gold);
}

.mphb-booking-form .mphb-capacity-wrapper {
	display: inline-block;
	width: 48%;
}

.mphb-booking-form .mphb-adults-wrapper {
	margin-right: 4%;
}

.mphb-reserve-btn-wrapper .mphb-reserve-btn {
	width: 100%;
	background: var(--room-gold) !important;
	border: none !important;
	border-radius: 6px;
	padding: 14px !important;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: background 0.25s ease;
}

.mphb-reserve-btn-wrapper .mphb-reserve-btn:hover {
	background: var(--room-gold-dark) !important;
}

/* ------ Responsive ------ */
@media (max-width: 1023px) {
	.mphb-single-room-type-gallery-wrapper .gallery {
		grid-template-columns: repeat(3, 1fr);
		grid-auto-rows: 110px;
	}
}

@media (max-width: 767px) {
	.mphb-single-room-type-gallery-wrapper .gallery {
		grid-template-columns: repeat(2, 1fr);
		grid-auto-rows: 90px;
		gap: 6px;
	}

	.mphb-single-room-type-gallery-wrapper .gallery-item:first-child {
		grid-column: span 2;
		grid-row: span 2;
	}

	.mphb-single-room-type-attributes {
		grid-template-columns: 1fr;
	}

	.room-amenities-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.mphb-booking-form .mphb-capacity-wrapper {
		width: 100%;
	}

	.mphb-booking-form .mphb-adults-wrapper {
		margin-right: 0;
	}
}


