/**
 * Cabañas Theme 1.3.0
 * Final responsive calibration loaded after Elementor.
 * Public design identities load after this file and deliberately override it.
 */

/* Public pages */
#primary .ct70-public-hero__inner {
	grid-template-columns: minmax(0, 1.08fr) minmax(460px, .92fr);
	min-height: 680px;
	width: min(100%, 1440px) !important;
	max-width: 1440px !important;
}

#primary .ct70-public-hero__copy {
	padding: 88px clamp(42px, 4.2vw, 64px);
}

#primary .ct70-public-hero__title .elementor-heading-title {
	font-size: clamp(52px, 4.2vw, 68px) !important;
	line-height: .98 !important;
	max-width: 650px;
	text-wrap: balance;
}

#primary .ct70-public-hero__media,
#primary .ct70-public-hero__image img {
	height: 680px !important;
	min-height: 680px;
}

#primary .ct70-public-content {
	padding-bottom: clamp(78px, 7vw, 104px);
	padding-top: clamp(78px, 7vw, 104px);
}

#primary .ct70-public-content__inner {
	gap: clamp(52px, 5vw, 76px);
}

#primary .ct70-section-title .elementor-heading-title,
#primary .ct70-section-title {
	font-size: clamp(40px, 4vw, 58px) !important;
	line-height: 1.02 !important;
	text-wrap: balance;
}

#primary .ct70-number-card {
	min-height: 220px;
}

#primary .ct70-number-card__title .elementor-heading-title {
	margin-top: 44px;
}

#primary .ct70-booking-layout {
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	width: 100%;
}

#primary .ct70-widget-shell--booking {
	container-type: inline-size;
	padding: clamp(28px, 3.5vw, 48px);
	width: 100%;
}

#primary .ct70-widget-shell--booking .cabanas-booking-experience {
	grid-template-columns: minmax(0, 1fr) minmax(330px, 380px) !important;
	gap: 28px !important;
	width: 100%;
}

#primary .ct70-widget-shell--booking .cabanas-booking-form,
#primary .ct70-widget-shell--booking .cabanas-quote-card {
	min-width: 0;
}

#primary .ct70-booking-aside {
	align-items: center;
	display: grid !important;
	grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
	grid-template-rows: auto auto;
	padding: 0;
	position: relative;
	top: auto;
}

#primary .ct70-booking-aside__image {
	grid-column: 1;
	grid-row: 1 / 3;
	height: 240px;
}

#primary .ct70-booking-aside__image img {
	height: 240px !important;
}

#primary .ct70-booking-aside__title {
	align-self: end;
	grid-column: 2;
	padding: 34px 40px 0;
}

#primary .ct70-booking-aside__title .elementor-heading-title {
	padding: 0;
}

#primary .ct70-booking-aside__text {
	align-self: start;
	grid-column: 2;
	padding: 10px 40px 34px;
}

#primary .ct70-booking-aside__text,
#primary .ct70-booking-aside__text p {
	margin: 0;
}

/* Showroom */
#primary .ct60-showcase-hero,
#primary .ct60-showcase-hero__inner {
	min-height: 720px;
}

#primary .ct60-showcase-hero__inner {
	grid-template-columns: minmax(0, 1fr) minmax(500px, 1fr);
	width: min(100%, 1440px) !important;
	max-width: 1440px !important;
}

#primary .ct60-showcase-hero__copy {
	padding: 88px clamp(44px, 4.4vw, 66px);
}

#primary .ct60-showcase-hero__title .elementor-heading-title,
#primary .ct60-showcase-hero__title {
	font-size: clamp(58px, 5vw, 72px) !important;
	line-height: .96 !important;
	max-width: 620px;
	text-wrap: balance;
}

#primary .ct60-showcase-hero__media,
#primary .ct60-showcase-hero__image img {
	height: 720px !important;
	min-height: 720px;
}

#primary .ct60-showcase-manifesto,
#primary .ct60-showcase-collection,
#primary .ct60-showcase-comparison,
#primary .ct60-showcase-story {
	padding-bottom: clamp(82px, 7vw, 104px);
	padding-top: clamp(82px, 7vw, 104px);
}

#primary .ct60-showcase-manifesto__inner {
	grid-template-columns: 160px minmax(0, 1fr) minmax(260px, 320px);
	gap: 36px;
}

#primary .ct60-showcase-manifesto__title .elementor-heading-title,
#primary .ct60-showcase-manifesto__title {
	font-size: clamp(44px, 4vw, 58px) !important;
	line-height: 1.02 !important;
	text-wrap: balance;
}

#primary .ct60-showcase-heading {
	grid-template-columns: 160px minmax(0, 1fr) minmax(260px, 320px);
	gap: 36px;
	margin-bottom: 42px;
}

#primary .ct60-showcase-heading__title .elementor-heading-title,
#primary .ct60-showcase-heading__title {
	font-size: clamp(44px, 4vw, 58px) !important;
	line-height: 1.02 !important;
	text-wrap: balance;
}

#primary .ct60-showcase-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

#primary .ct60-showcase-card,
#primary .ct60-showcase-card:nth-child(even) {
	grid-template-columns: 1fr;
	min-height: 0;
}

#primary .ct60-showcase-card:nth-child(even) .ct60-showcase-card__media {
	order: initial;
}

#primary .ct60-showcase-card__media,
#primary .ct60-showcase-card__image img {
	height: 300px !important;
	min-height: 300px;
}

#primary .ct60-showcase-card__copy {
	justify-content: flex-start;
	min-height: 270px;
	padding: 34px 36px 38px;
}

#primary .ct60-showcase-card__title .elementor-heading-title {
	font-size: clamp(38px, 3.3vw, 50px) !important;
}

#primary .ct60-showcase-card:first-child {
	grid-column: 1 / -1;
	grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
}

#primary .ct60-showcase-card:first-child .ct60-showcase-card__media,
#primary .ct60-showcase-card:first-child .ct60-showcase-card__image img {
	height: 460px !important;
	min-height: 460px;
}

#primary .ct60-showcase-card:first-child .ct60-showcase-card__copy {
	justify-content: center;
	min-height: 460px;
	padding: 44px;
}

#primary .ct60-showcase-heading--light {
	grid-template-columns: 160px minmax(0, 1fr);
}

#primary .ct60-showcase-compare-card {
	min-height: 240px;
	padding: 24px 20px;
}

#primary .ct60-showcase-compare-card__title .elementor-heading-title {
	margin-top: 42px;
}

#primary .ct60-showcase-story__inner {
	grid-template-columns: minmax(380px, .9fr) minmax(0, 1.1fr);
	gap: clamp(44px, 5vw, 70px);
}

#primary .ct60-showcase-story__copy {
	max-width: 560px;
}

#primary .ct60-showcase-story__title .elementor-heading-title {
	font-size: clamp(43px, 3.8vw, 56px) !important;
	line-height: 1.02 !important;
	text-wrap: balance;
}

#primary .ct60-showcase-cta {
	padding-bottom: clamp(76px, 6vw, 92px);
	padding-top: clamp(76px, 6vw, 92px);
}

#primary .ct60-showcase-cta__title .elementor-heading-title {
	font-size: clamp(48px, 4.8vw, 68px) !important;
	line-height: .98 !important;
	text-wrap: balance;
}

@container (max-width: 940px) {
	#primary .ct70-widget-shell--booking .cabanas-booking-experience {
		grid-template-columns: 1fr !important;
	}

	#primary .ct70-widget-shell--booking .cabanas-quote-card {
		position: static;
	}
}

@media (max-width: 1100px) {
	#primary .ct70-public-hero__inner,
	#primary .ct60-showcase-hero__inner,
	#primary .ct60-showcase-manifesto__inner,
	#primary .ct60-showcase-heading,
	#primary .ct60-showcase-story__inner {
		grid-template-columns: 1fr;
	}

	#primary .ct60-showcase-hero,
	#primary .ct60-showcase-hero__inner {
		min-height: auto;
	}

	#primary .ct70-public-hero__copy,
	#primary .ct60-showcase-hero__copy {
		padding: 86px 46px 66px;
	}

	#primary .ct70-public-hero__media,
	#primary .ct70-public-hero__image img {
		height: 520px !important;
		min-height: 520px;
	}

	#primary .ct60-showcase-hero__media,
	#primary .ct60-showcase-hero__image img {
		height: 540px !important;
		min-height: 540px;
	}

	#primary .ct70-widget-shell--booking .cabanas-booking-experience {
		grid-template-columns: 1fr !important;
	}

	#primary .ct70-widget-shell--booking .cabanas-quote-card {
		position: static;
	}

	#primary .ct60-showcase-card:first-child {
		grid-template-columns: 1fr;
	}

	#primary .ct60-showcase-card:first-child .ct60-showcase-card__media,
	#primary .ct60-showcase-card:first-child .ct60-showcase-card__image img {
		height: 380px !important;
		min-height: 380px;
	}

	#primary .ct60-showcase-card:first-child .ct60-showcase-card__copy {
		min-height: 0;
	}
}

@media (max-width: 760px) {
	#primary .ct60-showcase-grid {
		grid-template-columns: 1fr;
	}

	#primary .ct60-showcase-card:first-child {
		grid-column: auto;
	}
}

@media (max-width: 680px) {
	#primary .ct70-public-hero__title .elementor-heading-title {
		font-size: clamp(42px, 12vw, 52px) !important;
	}

	#primary .ct60-showcase-hero__title .elementor-heading-title {
		font-size: clamp(44px, 12vw, 54px) !important;
	}

	#primary .ct70-booking-aside {
		grid-template-columns: 1fr;
	}

	#primary .ct70-booking-aside__image {
		grid-column: 1;
		grid-row: auto;
	}

	#primary .ct70-booking-aside__title,
	#primary .ct70-booking-aside__text {
		grid-column: 1;
	}

	#primary .ct70-booking-aside__title {
		padding: 28px 24px 0;
	}

	#primary .ct70-booking-aside__text {
		padding: 10px 24px 28px;
	}

	#primary .ct70-widget-shell--booking .cabanas-form-grid {
		grid-template-columns: 1fr;
	}

	#primary .ct70-widget-shell--booking .cabanas-field--wide {
		grid-column: auto;
	}
}
