/**
 * Cabañas Theme 1.3.5 — final identity and proportion corrections.
 *
 * This layer loads last. It keeps header actions and footers consistent while
 * moving between a premium home, a public page and an individual cabin.
 */

/* =========================================================
   Permanent header button identity
   ========================================================= */
body.cabanas-demo-home.cabanas-demo-home--showcase,
body.cabanas-design--showcase {
	--ch-button-bg: #d7ad5d;
	--ch-button-ink: #181a1f;
	--ch-button-hover-bg: #f0ce89;
	--ch-button-hover-ink: #181a1f;
	--ch-button-font: "Manrope", sans-serif;
	--ch-button-radius: 999px;
	--ch-button-transform: none;
	--ch-button-spacing: 0;
}

body.cabanas-demo-home--mountain,
body.cabanas-design--mountain {
	--ch-button-bg: #e7c98c;
	--ch-button-ink: #16251d;
	--ch-button-hover-bg: #f0d9aa;
	--ch-button-hover-ink: #16251d;
	--ch-button-font: "Manrope", sans-serif;
	--ch-button-radius: 999px;
	--ch-button-transform: none;
	--ch-button-spacing: 0;
}

body.cabanas-demo-home--boutique,
body.cabanas-design--boutique {
	--ch-button-bg: #6e414c;
	--ch-button-ink: #fffaf5;
	--ch-button-hover-bg: #9f5d67;
	--ch-button-hover-ink: #fffaf5;
	--ch-button-font: "Inter", sans-serif;
	--ch-button-radius: 999px;
	--ch-button-transform: uppercase;
	--ch-button-spacing: .07em;
}

body.cabanas-demo-home--family,
body.cabanas-design--family {
	--ch-button-bg: #194c48;
	--ch-button-ink: #ffffff;
	--ch-button-hover-bg: #b73e24;
	--ch-button-hover-ink: #ffffff;
	--ch-button-font: "Nunito Sans", sans-serif;
	--ch-button-radius: 999px;
	--ch-button-transform: none;
	--ch-button-spacing: 0;
}

body.cabanas-demo-home--adventure,
body.cabanas-design--adventure {
	--ch-button-bg: #ff6426;
	--ch-button-ink: #091316;
	--ch-button-hover-bg: #ff7a45;
	--ch-button-hover-ink: #091316;
	--ch-button-font: "Manrope", sans-serif;
	--ch-button-radius: 999px;
	--ch-button-transform: uppercase;
	--ch-button-spacing: .1em;
}

body.cabanas-demo-home--minimal,
body.cabanas-design--minimal {
	--ch-button-bg: #191917;
	--ch-button-ink: #ffffff;
	--ch-button-hover-bg: #f4f3ee;
	--ch-button-hover-ink: #191917;
	--ch-button-font: "Instrument Sans", sans-serif;
	--ch-button-radius: 999px;
	--ch-button-transform: uppercase;
	--ch-button-spacing: .08em;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-button--header .elementor-button, .header-booking-button),
body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-layout-header-shell, .site-header).is-scrolled :is(.ct32-button--header .elementor-button, .header-booking-button) {
	min-height: 40px;
	padding: 9px 17px !important;
	border: 1px solid var(--ch-button-bg) !important;
	border-radius: var(--ch-button-radius) !important;
	background: var(--ch-button-bg) !important;
	color: var(--ch-button-ink) !important;
	font-family: var(--ch-button-font) !important;
	font-size: .76rem !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: var(--ch-button-spacing) !important;
	text-transform: var(--ch-button-transform) !important;
	text-decoration: none !important;
	white-space: nowrap;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-button--header .elementor-button, .header-booking-button):is(:hover, :focus-visible),
body:is(.cabanas-demo-home, .cabanas-demo-public) .ct32-layout-header-shell.is-scrolled :is(.ct32-button--header .elementor-button, .header-booking-button):is(:hover, :focus-visible) {
	border-color: var(--ch-button-hover-bg) !important;
	background: var(--ch-button-hover-bg) !important;
	color: var(--ch-button-hover-ink) !important;
}

/* =========================================================
   Footer contrast independent from header navigation
   ========================================================= */
body.cabanas-demo-home.cabanas-demo-home--showcase,
body.cabanas-design--showcase {
	--cf-bg: #181a1f;
	--cf-ink: #ffffff;
	--cf-text: #c9cbd0;
	--cf-link: #e5e6e8;
	--cf-accent: #f0ce89;
	--cf-border: rgba(255, 255, 255, .16);
}

body:is(.cabanas-demo-home--mountain, .cabanas-design--mountain) {
	--cf-bg: #10271c;
	--cf-ink: #ffffff;
	--cf-text: #cbd7d0;
	--cf-link: #e6ede9;
	--cf-accent: #f0d9aa;
	--cf-border: rgba(255, 255, 255, .15);
}

body:is(.cabanas-demo-home--boutique, .cabanas-design--boutique) {
	--cf-bg: #35252d;
	--cf-ink: #fffaf5;
	--cf-text: #dacbd0;
	--cf-link: #eadde1;
	--cf-accent: #f2cbd0;
	--cf-border: rgba(255, 250, 245, .16);
}

body:is(.cabanas-demo-home--family, .cabanas-design--family) {
	--cf-bg: #194c48;
	--cf-ink: #ffffff;
	--cf-text: #d5e3df;
	--cf-link: #e9f2ee;
	--cf-accent: #ffd0c0;
	--cf-border: rgba(255, 255, 255, .16);
}

body:is(.cabanas-demo-home--adventure, .cabanas-design--adventure) {
	--cf-bg: #071417;
	--cf-ink: #ffffff;
	--cf-text: #c5d0d2;
	--cf-link: #e3e9e9;
	--cf-accent: #ff956b;
	--cf-border: rgba(255, 255, 255, .17);
}

body:is(.cabanas-demo-home--minimal, .cabanas-design--minimal) {
	--cf-bg: #f4f3ee;
	--cf-ink: #191917;
	--cf-text: #4f4f4a;
	--cf-link: #30302c;
	--cf-accent: #191917;
	--cf-border: #b8b7b0;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-layout-footer-shell, .site-footer) {
	background: var(--cf-bg) !important;
	color: var(--cf-text) !important;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-layout-footer, .site-footer) :is(
	.site-brand__text,
	.ct32-layout-footer__title .elementor-heading-title,
	h2,
	h3
) {
	color: var(--cf-ink) !important;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-layout-footer, .site-footer) :is(
	.ct32-elementor-menu a,
	.ct34-footer-links a,
	.footer-menu a
) {
	background: transparent !important;
	color: var(--cf-link) !important;
	font-family: inherit !important;
	text-decoration: none;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-layout-footer, .site-footer) :is(
	.ct32-elementor-menu a,
	.ct34-footer-links a,
	.footer-menu a
):is(:hover, :focus-visible) {
	color: var(--cf-accent) !important;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(.ct32-layout-footer, .site-footer) :is(
	.ct32-layout-footer__text p,
	.cabanas-business-info,
	.cabanas-business-info li,
	.ct32-copyright,
	.ct32-layout-footer__version p,
	.site-footer__bottom
) {
	color: var(--cf-text) !important;
}

body:is(.cabanas-demo-home, .cabanas-demo-public) :is(
	.ct32-layout-footer__bottom,
	.ct32-layout-footer .cabanas-business-info li,
	.site-footer__bottom,
	.site-footer .cabanas-business-info li
) {
	border-color: var(--cf-border) !important;
}

/* =========================================================
   Mountain: compact gallery and horizontal cabin photography
   ========================================================= */
body.cabanas-demo-home--mountain #primary .ct50-mountain-cabin-list .cabanas-grid {
	gap: 30px;
	align-items: start;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-cabin-list .cabanas-card:nth-child(2) {
	transform: none;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-cabin-list .cabanas-card__media {
	width: 100%;
	min-height: 0;
	aspect-ratio: 16 / 10 !important;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-cabin-list .cabanas-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery {
	padding-block: clamp(72px, 6vw, 92px) !important;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__inner {
	gap: clamp(30px, 3vw, 42px);
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__copy {
	max-width: 780px;
	gap: 10px;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__title .elementor-heading-title {
	font-size: clamp(3.2rem, 5vw, 5.6rem) !important;
	line-height: .94 !important;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__grid {
	display: grid !important;
	grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
	grid-template-rows: 310px 235px;
	gap: 16px;
	align-items: stretch;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__grid > .ct50-mountain-media {
	width: auto !important;
	min-width: 0;
	min-height: 0;
	margin: 0 !important;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-media--tall {
	grid-column: 1;
	grid-row: 1 / 3;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-media--wide {
	grid-column: 2;
	grid-row: 1;
}

body.cabanas-demo-home--mountain #primary .ct50-mountain-media--small {
	grid-column: 2;
	grid-row: 2;
}

/* =========================================================
   Guest account: editorial width and friendly form controls
   ========================================================= */
body.cabanas-demo-public--customer-account #primary .ct70-account-layout {
	max-width: 1080px;
}

body.cabanas-demo-public--customer-account #primary .ct70-widget-shell--account {
	width: 100%;
	max-width: 1080px;
	margin-inline: auto;
	border-radius: 24px !important;
}

body.cabanas-demo-public--customer-account #primary .cabanas-customer-access {
	width: 100%;
	max-width: 960px;
	margin-right: auto;
	margin-left: auto;
	border-radius: 24px !important;
}

body.cabanas-demo-public--customer-account #primary .cabanas-customer-account {
	width: 100%;
	max-width: 1000px;
	margin-right: auto;
	margin-left: auto;
}

body.cabanas-demo-public--customer-account #primary .cabanas-customer-access__forms form input:not([type="checkbox"]) {
	border-radius: 12px !important;
}

body.cabanas-demo-public--customer-account #primary .cabanas-customer-access__forms nav,
body.cabanas-demo-public--customer-account #primary .cabanas-customer-access__forms nav a {
	border-radius: 999px !important;
}

@media (max-width: 900px) {
	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery {
		padding-block: 68px !important;
	}

	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: none;
		grid-auto-rows: 320px;
	}

	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__grid > :is(
		.ct50-mountain-media--tall,
		.ct50-mountain-media--wide,
		.ct50-mountain-media--small
	) {
		grid-column: 1;
		grid-row: auto;
		min-height: 320px;
	}
}

@media (max-width: 620px) {
	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery {
		padding-block: 56px !important;
	}

	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__inner {
		gap: 26px;
	}

	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__grid {
		grid-auto-rows: 260px;
		gap: 12px;
	}

	body.cabanas-demo-home--mountain #primary .ct50-mountain-gallery__grid > :is(
		.ct50-mountain-media--tall,
		.ct50-mountain-media--wide,
		.ct50-mountain-media--small
	) {
		min-height: 260px;
	}

	body.cabanas-demo-public--customer-account #primary .ct70-widget-shell--account,
	body.cabanas-demo-public--customer-account #primary .cabanas-customer-access {
		border-radius: 18px !important;
	}
}
