.gr-property-template{
	background:#fff;
}

.gr-property-template-container{
	padding-top:26px;
	padding-bottom:72px;
}

.gr-property-template-header{
	width:100%;
}

.gr-property-template-layout{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(320px,380px);
	gap:clamp(42px,4vw,72px);
	align-items:start;
	margin-top:4px;
}

.gr-property-template-main{
	min-width:0;
}

.gr-property-template-sidebar{
	position:sticky;
	top:24px;
	min-width:0;
	padding-top:52px;
}

@media (min-width:1025px){
	.gr-property-template-sidebar{
		top:calc(var(--gr-header-height) + 24px);
	}
}

.gr-property-template-sidebar .grbb-desktop-stack,
.gr-property-template-sidebar .grbb-desktop-card{
	width:100%;
	max-width:380px;
	margin-left:auto;
}

.gr-property-template .gr-property-description,
.gr-property-template .gr-amenidades-wrap,
.gr-property-template-calendar,
.gr-property-template-reviews,
.gr-property-template .gr-property-map-section{
	width:100%;
	margin-left:0;
	margin-right:0;
}

.gr-property-template .gr-property-description{
	margin-top:30px;
	padding-top:28px;
	border-top:1px solid #e5e7eb;
}

.gr-property-template .gr-property-description__content{
	max-width:860px;
}

.gr-property-template .gr-amenidades-wrap{
	margin-top:0;
	border-top:0;
}

.gr-property-template-calendar{
	margin-top:34px;
	padding-top:30px;
	border-top:0;
}

.gr-property-template-calendar > h2{
	margin:0 0 5px;
	color:#111827;
	font-size:22px;
	font-weight:500;
	line-height:1.3;
}

.gr-property-template-reviews{
	margin-top:34px;
	padding-top:30px;
	border-top:0;
}

.gr-property-template .gr-property-map-section{
	margin-top:36px;
	padding-top:30px;
	border-top:1px solid #e5e7eb;
}

/*
 * MotoPress stays alive as the engine for the custom GR booking UI.
 * Do not use display:none: the current booking bridge must be able to
 * interact with the real native controls.
 */
.gr-property-native-engine{
	position:absolute!important;
	left:-10000px!important;
	top:0!important;
	width:420px!important;
	min-height:300px!important;
	overflow:hidden!important;
	opacity:.001!important;
	pointer-events:none!important;
	z-index:-1!important;
}

.gr-property-native-engine .mphb-booking-form,
.gr-property-native-engine .mphb-reservation-form{
	display:block!important;
	visibility:visible!important;
}

/* Laptop */
@media (min-width:783px) and (max-width:1180px){
	.gr-property-template-container{
		padding-top:24px;
	}

	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) minmax(300px,350px);
		gap:34px;
	}

	.gr-property-template-sidebar{
		top:18px;
	}
}

/* Larger desktop */
@media (min-width:1440px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) minmax(350px,400px);
		gap:clamp(56px,4.5vw,86px);
	}

	.gr-property-template-main{
		max-width:none;
	}

	.gr-property-template .gr-property-description__content{
		max-width:920px;
	}

	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:400px;
	}
}

/* Big monitor */
@media (min-width:1720px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 420px;
		gap:92px;
	}

	.gr-property-template .gr-property-description__content{
		max-width:980px;
	}
}

/* Mobile owns a completely different flow. */
@media (max-width:782px){
	.gr-property-template-container{
		width:100%;
		padding:0 0 38px;
	}

	.gr-property-template-header{
		width:100%;
	}

	.gr-property-template-layout{
		display:block;
		margin:0;
	}

	.gr-property-template-main{
		padding:0 20px;
	}

	.gr-property-template-sidebar{
		display:none;
	}

	.gr-property-template .gr-property-description{
		margin-top:0;
		padding-top:24px;
		border-top:0;
	}

	.gr-property-template .gr-amenidades-wrap{
		margin-top:26px;
	}

	.gr-property-template-calendar,
	.gr-property-template-reviews,
	.gr-property-template .gr-property-map-section{
		margin-top:28px;
		padding-top:26px;
	}
}


@media (min-width:783px){
	.gr-property-template-header{
		min-width:0;
	}

	.gr-property-template-main{
		min-width:0;
	}

	/* The booking card begins approximately level with the gallery,
	   while the property title remains above the gallery on the left. */
	.gr-property-template-sidebar{
		padding-top:58px;
	}

	.gr-property-template-header + .gr-property-description{
		margin-top:30px;
	}

	/* Let the gallery use all available width inside the left column. */
	.gr-property-template-header .grcp-wrap,
	.gr-property-template-header .grcp-desktop{
		width:100%;
		max-width:none;
	}
}

@media (min-width:1180px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) minmax(340px,390px);
		gap:clamp(38px,3.4vw,64px);
	}
}

@media (min-width:1440px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) minmax(370px,410px);
		gap:clamp(46px,3.8vw,72px);
	}

	.gr-property-template-sidebar{
		padding-top:62px;
	}
}

@media (min-width:1720px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 420px;
		gap:78px;
	}
}

/* On mobile the header/gallery remains edge-to-edge and the desktop
   booking card stays hidden as before. */
@media (max-width:782px){
	.gr-property-template-main{
		padding:0;
	}

	.gr-property-template-header{
		width:100%;
	}

	.gr-property-template-main > .gr-property-description,
	.gr-property-template-main > .gr-amenidades-wrap,
	.gr-property-template-main > .gr-property-template-calendar,
	.gr-property-template-main > .gr-property-template-reviews,
	.gr-property-template-main > .gr-property-map-section{
		margin-left:20px;
		margin-right:20px;
		width:calc(100% - 40px);
	}
}


.gr-property-template-full{
	width:100%;
	margin-top:38px;
}

.gr-property-template-full-section{
	width:100%;
	margin:0;
	padding:36px 0 0;
	border-top:1px solid #e5e7eb;
}

/* The reviews component supplies its own single divider. */
.gr-property-template-full-section.gr-property-template-reviews{
	border-top:0;
}

.gr-property-template-full-section + .gr-property-template-full-section{
	margin-top:42px;
}

.gr-property-template-full .gr-reviews-ui,
.gr-property-template-full .gr-reviews-inner,
.gr-property-template-full .gr-rules-wrap,
.gr-property-template-full .gr-property-map-section{
	width:100%;
	max-width:none;
	margin-left:0;
	margin-right:0;
}

.gr-property-template-full .gr-property-map-section{
	margin-top:0;
	padding-top:0;
	border-top:0;
}

.gr-property-template-full .gr-property-map{
	height:clamp(410px,32vw,540px);
	min-height:410px;
}

.gr-property-template-full .gr-rules-wrap{
	margin-top:0;
}

/* Remove old lower-module spacing that belonged to the left column. */
.gr-property-template-main > .gr-property-template-reviews,
.gr-property-template-main > .gr-property-map-section{
	margin-top:0;
}

/* Large screens let reviews/rules/map use the complete GR container.
   Their internal plugin grids remain responsible for readable columns. */
@media (min-width:1440px){
	.gr-property-template-full{
		margin-top:46px;
	}

	.gr-property-template-full-section{
		padding-top:40px;
	}

	.gr-property-template-full-section + .gr-property-template-full-section{
		margin-top:48px;
	}
}

@media (min-width:1720px){
	.gr-property-template-full .gr-property-map{
		height:560px;
	}
}

/* Mobile: upper header remains edge-to-edge; all lower modules use the
   same comfortable 20px page gutter. */
@media (max-width:782px){
	.gr-property-template-full{
		margin-top:28px;
		padding:0 20px;
	}

	/* The reviews plugin already adds its own mobile gutter. Inside the
	   theme's full-width lower zone that produced a second inset, while the
	   map used only the theme gutter. Keep one shared 20px alignment line. */
	.gr-property-template-reviews .gr-reviews-ui,
	.gr-property-template-reviews .gr-reviews-inner{
		width:100%!important;
		max-width:100%!important;
		margin-left:0!important;
		margin-right:0!important;
	}

	.gr-property-template-reviews .gr-reviews-inner{
		padding-left:0!important;
		padding-right:0!important;
	}

	.gr-property-template-map,
	.gr-property-template-map .gr-property-map-section,
	.gr-property-template-map .gr-property-map-card{
		width:100%;
		max-width:100%;
		margin-left:0;
		margin-right:0;
	}

	.gr-property-template-full-section{
		padding-top:28px;
	}

	.gr-property-template-full-section + .gr-property-template-full-section{
		margin-top:30px;
	}

	.gr-property-template-full .gr-property-map{
		height:455px;
		min-height:455px;
	}
}


/* Main two-column area */
@media (min-width:783px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) minmax(340px,370px);
		gap:40px;
	}

	.gr-property-template-main{
		min-width:0;
	}

	.gr-property-template-sidebar{
		width:100%;
		max-width:370px;
		justify-self:end;
	}

	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		width:100%;
		max-width:370px;
	}

	/* Description stays readable, unlike gallery/calendar/amenities. */
	.gr-property-template .gr-property-description__content{
		max-width:880px;
	}

	/* Amenities should use all available width of the left column. */
	.gr-property-template .gr-amenidades-wrap{
		width:100%;
		max-width:none;
	}

	.gr-property-template .gr-amenidades-grid{
		width:100%;
		grid-template-columns:repeat(2,minmax(0,1fr));
		column-gap:clamp(42px,6vw,110px);
	}

	/* Calendar should fill the entire left column. */
	.gr-property-template-calendar{
		width:100%;
		max-width:none;
	}

	.gr-property-template-calendar .gr-airbnb-calendar{
		width:100%!important;
		max-width:none!important;
	}

	.gr-property-template-calendar .gr-airbnb-calendar__months,
	.gr-property-template-calendar .gr-airbnb-calendar__months-wrap,
	.gr-property-template-calendar [class*="calendar__months"]{
		width:100%!important;
		max-width:none!important;
	}

	.gr-property-template-calendar .gr-airbnb-calendar__month,
	.gr-property-template-calendar [class*="calendar__month"]{
		min-width:0!important;
		max-width:none!important;
	}
}

/* Typical laptop / 13-inch Mac */
@media (min-width:783px) and (max-width:1179px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) minmax(320px,350px);
		gap:32px;
	}

	.gr-property-template-sidebar{
		max-width:350px;
	}

	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:350px;
	}

	.gr-property-template .gr-amenidades-grid{
		column-gap:36px;
	}
}

/* Standard desktop */
@media (min-width:1180px) and (max-width:1439px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 370px;
		gap:40px;
	}
}

/* 1440–1719: give the main content noticeably more room */
@media (min-width:1440px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 390px;
		gap:48px;
	}

	.gr-property-template-sidebar{
		max-width:390px;
	}

	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:390px;
	}

	.gr-property-template .gr-property-description__content{
		max-width:900px;
	}

	.gr-property-template .gr-amenidades-grid{
		column-gap:clamp(70px,7vw,130px);
	}
}

/* Big monitor: preserve whitespace, but not huge dead zones */
@media (min-width:1720px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 400px;
		gap:56px;
	}

	.gr-property-template-sidebar{
		max-width:400px;
	}

	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:400px;
	}

	.gr-property-template .gr-property-description__content{
		max-width:920px;
	}
}


@media (min-width:783px){
	.gr-property-template-calendar{
		display:block;
	}

	.gr-property-template-calendar > h2{
		max-width:960px;
	}

	.gr-property-template-calendar .gr-airbnb-calendar{
		justify-self:start;
	}
}


@media (min-width:1720px){
	.gr-property-template-calendar > h2{
		max-width:864px;
	}
}


@media (min-width:783px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 300px;
		gap:24px;
	}

	.gr-property-template-sidebar,
	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		width:100%;
		max-width:300px;
	}
}

@media (min-width:783px) and (max-width:1179px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 284px;
		gap:20px;
	}

	.gr-property-template-sidebar,
	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:284px;
	}
}

/* Standard desktop: apply the requested large-screen reduction from
   1180px, including 1280px laptop/retina browser viewports. */
@media (min-width:1180px) and (max-width:1439px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 278px;
		gap:24px;
	}

	.gr-property-template-sidebar,
	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:278px;
	}
}

@media (min-width:1440px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 293px;
		gap:24px;
	}

	.gr-property-template-sidebar,
	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:293px;
	}
}

@media (min-width:1720px){
	.gr-property-template-layout{
		grid-template-columns:minmax(0,1fr) 301px;
		gap:24px;
	}

	.gr-property-template-sidebar,
	.gr-property-template-sidebar .grbb-desktop-stack,
	.gr-property-template-sidebar .grbb-desktop-card{
		max-width:301px;
	}
}


@media (min-width:783px){
	body.gr-is-property .gr-property-template-container{
		padding-left:clamp(20px,2.25vw,46px);
		padding-right:clamp(20px,2.25vw,46px);
	}
}

@media (min-width:1440px){
	body.gr-is-property .gr-property-template-container{
		width:min(
			calc(100% - (var(--gr-page-gutter,44px) * 2)),
			var(--gr-content-wide,1520px)
		);
		max-width:var(--gr-content-wide,1520px);
		margin-inline:auto;
		padding-left:clamp(34px,2.4vw,52px);
		padding-right:clamp(34px,2.4vw,52px);
	}

	body.gr-is-property .gr-property-template-layout,
	body.gr-is-property .gr-property-template-full{
		width:100%;
		max-width:none;
	}
}

@media (min-width:1720px){
	body.gr-is-property .gr-property-template-container{
		padding-left:clamp(42px,2.6vw,58px);
		padding-right:clamp(42px,2.6vw,58px);
	}
}
