/**
 * Image-led customer pages for Cabañas Theme 1.3.0.
 */

/*
 * Elementor assigns 10px padding and a 20px gap to new containers. These
 * component tokens neutralize only those defaults; explicit theme spacing
 * declared below remains in control.
 */
#primary :is([class*="ct70-"]).e-con {
	--gap: 0px;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

#primary .ct70-public-hero,
#primary .ct70-public-content {
	--ct70-ink: #17342a;
	--ct70-paper: #f7f4ed;
	--ct70-sand: #e7ddce;
	--ct70-accent: #c66b3d;
	width: 100%;
	max-width: none;
}

/* =========================================================
   1.3.0 — calibrated editorial scale and booking composition
   ========================================================= */
#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;
}

/* The booking component needs two columns, not a third lifestyle sidebar. */
#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;
}

@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 {
		grid-template-columns: 1fr;
	}

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

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

	#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: 680px) {
	#primary .ct70-public-hero__title .elementor-heading-title {
		font-size: clamp(42px, 12vw, 52px) !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;
	}
}

#primary .ct70-public-hero {
	background: #17342a;
	color: #fff;
	overflow: hidden;
}

#primary .ct70-public-hero__inner {
	display: grid !important;
	grid-template-columns: minmax(0, .82fr) minmax(520px, 1.18fr);
	min-height: 650px;
	max-width: 1600px;
	margin: 0 auto;
}

#primary .ct70-public-hero__copy {
	justify-content: center;
	padding: clamp(90px, 9vw, 145px) clamp(28px, 7vw, 106px);
}

#primary .ct70-public-kicker .elementor-heading-title,
#primary .ct70-public-kicker {
	color: #ccaa78 !important;
	font: 700 10px/1.4 Manrope, sans-serif !important;
	letter-spacing: .18em;
	text-transform: uppercase;
}

#primary .ct70-public-kicker--dark .elementor-heading-title,
#primary .ct70-public-kicker--dark {
	color: #9b6948 !important;
}

#primary .ct70-public-eyebrow .elementor-heading-title {
	color: rgba(255,255,255,.58) !important;
	font: 600 13px/1.4 Manrope, sans-serif !important;
	letter-spacing: .08em;
	margin-top: 34px;
	text-transform: uppercase;
}

#primary .ct70-public-hero__title .elementor-heading-title {
	color: #fff !important;
	font: 500 clamp(51px, 5.8vw, 88px)/.94 "Cormorant Garamond", Fraunces, serif !important;
	letter-spacing: -.04em;
	margin-top: 14px;
}

#primary .ct70-public-hero__text,
#primary .ct70-public-hero__text p {
	color: rgba(255,255,255,.7) !important;
	font: 500 16px/1.75 Manrope, sans-serif !important;
	margin: 26px 0 0;
	max-width: 590px;
}

#primary .ct70-public-hero__media {
	min-height: 650px;
	position: relative;
}

#primary .ct70-public-hero__media > .elementor-widget-image,
#primary .ct70-public-hero__media > .elementor-widget-image .elementor-widget-container {
	height: 100%;
}

#primary .ct70-public-hero__image img {
	display: block;
	height: 650px !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-public-hero__caption {
	background: rgba(23,52,42,.9);
	bottom: 26px;
	left: 26px;
	padding: 12px 15px;
	position: absolute;
}

#primary .ct70-public-hero__caption .elementor-heading-title {
	color: #fff !important;
	font: 700 9px/1.3 Manrope, sans-serif !important;
	letter-spacing: .14em;
	text-transform: uppercase;
}

#primary .ct70-public-content {
	background: #f7f4ed;
	padding: clamp(75px, 9vw, 135px) 28px;
}

#primary .ct70-public-content__inner {
	display: flex !important;
	gap: clamp(65px, 8vw, 120px);
	max-width: 1320px;
	margin: 0 auto;
}

#primary .ct70-section-heading {
	max-width: 820px;
}

#primary .ct70-section-heading--split {
	display: grid !important;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
	gap: 50px;
	align-items: end;
	max-width: none;
}

#primary .ct70-section-title .elementor-heading-title,
#primary .ct70-section-title {
	color: #17342a !important;
	font: 500 clamp(41px, 4.6vw, 68px)/1 "Cormorant Garamond", serif !important;
	letter-spacing: -.035em;
	margin-top: 17px;
}

#primary .ct70-section-text,
#primary .ct70-section-text p {
	color: #637069 !important;
	font: 500 15px/1.75 Manrope, sans-serif !important;
	margin: 0;
}

#primary .ct70-number-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	border-left: 1px solid #d9cfc0;
}

#primary .ct70-number-card {
	border-bottom: 1px solid #d9cfc0;
	border-right: 1px solid #d9cfc0;
	min-height: 240px;
	padding: 26px;
}

#primary .ct70-number-card__index .elementor-heading-title {
	color: #c66b3d !important;
	font: 700 11px/1 Manrope, sans-serif !important;
	letter-spacing: .14em;
}

#primary .ct70-number-card__title .elementor-heading-title {
	color: #17342a !important;
	font: 500 29px/1.08 "Cormorant Garamond", serif !important;
	margin-top: 62px;
}

#primary .ct70-number-card__text,
#primary .ct70-number-card__text p {
	color: #68736e !important;
	font: 500 13px/1.65 Manrope, sans-serif !important;
	margin: 13px 0 0;
}

#primary .ct70-widget-shell {
	background: #fff;
	border: 1px solid #ded6c9;
	box-shadow: 0 26px 70px rgba(23,52,42,.08);
	padding: clamp(24px, 4vw, 58px);
}

#primary .ct70-widget-shell--cabins {
	padding: clamp(18px, 3vw, 36px);
}

#primary .ct70-editorial-split,
#primary .ct70-booking-layout,
#primary .ct70-contact-layout,
#primary .ct70-account-layout,
#primary .ct70-faq-layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
	gap: clamp(40px, 7vw, 100px);
	align-items: center;
}

#primary .ct70-editorial-split__media {
	min-height: 610px;
	position: relative;
}

#primary .ct70-editorial-split__image img {
	display: block;
	height: 610px !important;
	object-fit: cover;
	width: calc(100% - 74px);
}

#primary .ct70-editorial-split__image-small {
	bottom: -36px;
	position: absolute;
	right: 0;
	width: 43%;
}

#primary .ct70-editorial-split__image-small img {
	border: 10px solid #f7f4ed;
	display: block;
	height: 245px !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-editorial-split__copy {
	max-width: 520px;
}

#primary .ct70-button .elementor-button {
	background: #17342a !important;
	border: 1px solid #17342a !important;
	border-radius: 0 !important;
	color: #fff !important;
	font: 700 11px/1 Manrope, sans-serif !important;
	letter-spacing: .1em;
	margin-top: 26px;
	padding: 16px 22px !important;
	text-transform: uppercase;
}

#primary .ct70-button--light .elementor-button {
	background: #f7f4ed !important;
	border-color: #f7f4ed !important;
	color: #17342a !important;
}

#primary .ct70-media-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
}

#primary .ct70-media-card {
	background: #fff;
	box-shadow: 0 18px 55px rgba(23,52,42,.07);
	overflow: hidden;
}

#primary .ct70-media-card__image img {
	display: block;
	height: 330px !important;
	object-fit: cover;
	transition: transform .6s ease;
	width: 100%;
}

#primary .ct70-media-card:hover .ct70-media-card__image img {
	transform: scale(1.025);
}

#primary .ct70-media-card__copy {
	padding: 28px 30px 34px;
}

#primary .ct70-media-card__title .elementor-heading-title {
	color: #17342a !important;
	font: 500 31px/1.05 "Cormorant Garamond", serif !important;
}

#primary .ct70-media-card__text,
#primary .ct70-media-card__text p {
	color: #68736e !important;
	font: 500 13px/1.65 Manrope, sans-serif !important;
	margin: 12px 0 0;
}

#primary .ct70-image-cta {
	min-height: 570px;
	overflow: hidden;
	position: relative;
}

#primary .ct70-image-cta::after {
	background: linear-gradient(90deg, rgba(11,29,23,.88), rgba(11,29,23,.12));
	content: "";
	inset: 0;
	position: absolute;
}

#primary .ct70-image-cta > .elementor-widget-image,
#primary .ct70-image-cta > .elementor-widget-image .elementor-widget-container {
	height: 100%;
	position: absolute;
	width: 100%;
}

#primary .ct70-image-cta__image img {
	display: block;
	height: 570px !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-image-cta__copy {
	justify-content: center;
	max-width: 700px;
	min-height: 570px;
	padding: 60px;
	position: relative;
	z-index: 2;
}

#primary .ct70-image-cta__title .elementor-heading-title {
	color: #fff !important;
	font: 500 clamp(48px, 6vw, 82px)/.95 "Cormorant Garamond", serif !important;
}

#primary .ct70-booking-layout {
	align-items: start;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
}

#primary .ct70-booking-aside {
	background: #17342a;
	color: #fff;
	padding-bottom: 32px;
	position: sticky;
	top: 100px;
}

#primary .ct70-booking-aside__image img {
	display: block;
	height: 350px !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-booking-aside__title .elementor-heading-title {
	color: #fff !important;
	font: 500 34px/1.05 "Cormorant Garamond", serif !important;
	padding: 28px 30px 0;
}

#primary .ct70-booking-aside__text,
#primary .ct70-booking-aside__text p {
	color: rgba(255,255,255,.67) !important;
	font: 500 13px/1.65 Manrope, sans-serif !important;
	margin: 12px 30px 0;
}

#primary .ct70-story-gallery {
	display: grid !important;
	grid-template-columns: 1.35fr .65fr;
	grid-template-rows: 280px 280px;
	gap: 18px;
}

#primary .ct70-story-gallery .elementor-widget-image,
#primary .ct70-story-gallery .elementor-widget-container {
	height: 100%;
}

#primary .ct70-story-gallery__image--wide {
	grid-row: 1 / 3;
}

#primary .ct70-story-gallery__image img {
	display: block;
	height: 100% !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-contact-layout {
	align-items: stretch;
}

#primary .ct70-contact-media {
	min-height: 620px;
	position: relative;
}

#primary .ct70-contact-media > .elementor-widget-image,
#primary .ct70-contact-media > .elementor-widget-image .elementor-widget-container {
	height: 100%;
}

#primary .ct70-contact-media__image img {
	display: block;
	height: 620px !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-contact-note {
	background: #c66b3d;
	bottom: 24px;
	left: 24px;
	max-width: 340px;
	padding: 26px;
	position: absolute;
}

#primary .ct70-contact-note__title .elementor-heading-title {
	color: #fff !important;
	font: 500 29px/1.05 "Cormorant Garamond", serif !important;
}

#primary .ct70-contact-note__text,
#primary .ct70-contact-note__text p {
	color: rgba(255,255,255,.77) !important;
	font: 500 12px/1.55 Manrope, sans-serif !important;
	margin: 10px 0 0;
}

#primary .ct70-faq-layout {
	align-items: start;
	grid-template-columns: minmax(320px, .55fr) minmax(0, 1.45fr);
}

#primary .ct70-faq-aside {
	background: #17342a;
	color: #fff;
	padding-bottom: 38px;
	position: sticky;
	top: 100px;
}

#primary .ct70-faq-aside__image img {
	display: block;
	height: 330px !important;
	object-fit: cover;
	width: 100%;
}

#primary .ct70-faq-aside__title .elementor-heading-title {
	color: #fff !important;
	font: 500 38px/1 "Cormorant Garamond", serif !important;
	padding: 32px 32px 0;
}

#primary .ct70-faq-aside .ct70-button {
	padding: 0 32px;
}

#primary .ct70-faq-grid,
#primary .ct70-policy-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	border-left: 1px solid #d9cfc0;
}

#primary .ct70-faq-grid .ct70-number-card,
#primary .ct70-policy-grid .ct70-number-card {
	min-height: 285px;
}

#primary .ct70-editorial-split--policies .ct70-editorial-split__image img {
	width: 100%;
}

#primary .ct70-account-layout {
	align-items: start;
	grid-template-columns: minmax(0, 1.2fr) minmax(330px, .8fr);
}

@media (max-width: 1024px) {
	#primary .ct70-public-hero__inner,
	#primary .ct70-section-heading--split,
	#primary .ct70-editorial-split,
	#primary .ct70-booking-layout,
	#primary .ct70-contact-layout,
	#primary .ct70-account-layout,
	#primary .ct70-faq-layout {
		grid-template-columns: 1fr;
	}

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

	#primary .ct70-number-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	#primary .ct70-booking-aside,
	#primary .ct70-faq-aside {
		position: relative;
		top: auto;
	}
}

@media (max-width: 680px) {
	#primary .ct70-public-hero__copy {
		padding: 80px 20px 54px;
	}

	#primary .ct70-public-hero__title .elementor-heading-title {
		font-size: 48px !important;
	}

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

	#primary .ct70-public-content {
		padding-left: 18px;
		padding-right: 18px;
	}

	#primary .ct70-number-grid,
	#primary .ct70-media-grid,
	#primary .ct70-faq-grid,
	#primary .ct70-policy-grid {
		grid-template-columns: 1fr;
	}

	#primary .ct70-editorial-split__media,
	#primary .ct70-editorial-split__image img {
		height: 430px !important;
		min-height: 430px;
		width: 100%;
	}

	#primary .ct70-editorial-split__image-small {
		bottom: -22px;
		width: 48%;
	}

	#primary .ct70-editorial-split__image-small img {
		height: 170px !important;
		min-height: 170px;
	}

	#primary .ct70-image-cta,
	#primary .ct70-image-cta__copy,
	#primary .ct70-image-cta__image img {
		height: 500px !important;
		min-height: 500px;
	}

	#primary .ct70-image-cta__copy {
		padding: 34px 24px;
	}

	#primary .ct70-story-gallery {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 300px 190px;
	}

	#primary .ct70-story-gallery__image--wide {
		grid-column: 1 / 3;
		grid-row: auto;
	}
}
