/**
 * Cabañas Theme 1.3.0
 * Persistent visual identities for the complete public customer journey.
 *
 * The content remains native Elementor. This layer turns the shared public
 * page structure into five complete design systems without duplicating pages.
 */

/* =========================================================
   Design tokens
   ========================================================= */
body.cabanas-design--mountain {
	--cd-paper: #f2eee4;
	--cd-paper-alt: #e7e0d2;
	--cd-surface: #fffdf8;
	--cd-ink: #14271d;
	--cd-muted: #647169;
	--cd-accent: #d0ad70;
	--cd-accent-ink: #19271f;
	--cd-dark: #10271c;
	--cd-dark-2: #244936;
	--cd-border: #d8cfbf;
	--cd-heading: "Cormorant Garamond", Fraunces, serif;
	--cd-text: Manrope, sans-serif;
	--cd-radius: 0px;
	--cd-radius-large: 0px;
	--cd-button-radius: 999px;
	--cd-shadow: 0 26px 70px rgba(17, 43, 30, .12);
	--cd-image-filter: saturate(.9) contrast(1.03);
	--cabanas-accent: #2b654a;
	--cabanas-dark: #17382b;
	--cabanas-cream: #eee8dc;
	--cabanas-border: #d8cfbf;
	--cb-forest: #173e2c;
	--cb-forest-2: #2c674b;
	--cb-paper: #f4f0e7;
	--cb-line: #d8cfbf;
}

body.cabanas-design--boutique {
	--cd-paper: #f7f0e9;
	--cd-paper-alt: #eaded6;
	--cd-surface: #fffaf5;
	--cd-ink: #3c2930;
	--cd-muted: #78686d;
	--cd-accent: #9f5d67;
	--cd-accent-ink: #fff8f1;
	--cd-dark: #35252d;
	--cd-dark-2: #6e414c;
	--cd-border: #d9c8c3;
	--cd-heading: "Bodoni Moda", "Cormorant Garamond", serif;
	--cd-text: Inter, sans-serif;
	--cd-radius: 2px;
	--cd-radius-large: 2px;
	--cd-button-radius: 0px;
	--cd-shadow: 0 28px 80px rgba(65, 38, 46, .11);
	--cd-image-filter: saturate(.78) sepia(.06) contrast(1.02);
	--cabanas-accent: #9f5d67;
	--cabanas-dark: #35252d;
	--cabanas-cream: #f2e8e0;
	--cabanas-border: #d9c8c3;
	--cb-forest: #70414c;
	--cb-forest-2: #9f5d67;
	--cb-paper: #f7f0e9;
	--cb-line: #d9c8c3;
}

body.cabanas-design--family {
	--cd-paper: #f7f4e9;
	--cd-paper-alt: #dcece5;
	--cd-surface: #fffdf8;
	--cd-ink: #174b47;
	--cd-muted: #627875;
	--cd-accent: #ff8e6b;
	--cd-accent-ink: #173f3c;
	--cd-dark: #194c48;
	--cd-dark-2: #39766e;
	--cd-border: #cfe0d8;
	--cd-heading: Fraunces, serif;
	--cd-text: "Nunito Sans", sans-serif;
	--cd-radius: 24px;
	--cd-radius-large: 38px;
	--cd-button-radius: 999px;
	--cd-shadow: 0 22px 65px rgba(29, 78, 74, .11);
	--cd-image-filter: saturate(1.03) contrast(.98);
	--cabanas-accent: #e87154;
	--cabanas-dark: #194c48;
	--cabanas-cream: #e8f1eb;
	--cabanas-border: #cfe0d8;
	--cb-forest: #194c48;
	--cb-forest-2: #39766e;
	--cb-paper: #f3f6ef;
	--cb-line: #cfe0d8;
}

body.cabanas-design--adventure {
	--cd-paper: #e8e6df;
	--cd-paper-alt: #d6d3ca;
	--cd-surface: #f7f5ef;
	--cd-ink: #0a171a;
	--cd-muted: #526064;
	--cd-accent: #ff6426;
	--cd-accent-ink: #091316;
	--cd-dark: #071417;
	--cd-dark-2: #17363b;
	--cd-border: #aeb6b4;
	--cd-heading: "Barlow Condensed", Impact, sans-serif;
	--cd-text: Manrope, sans-serif;
	--cd-radius: 0px;
	--cd-radius-large: 0px;
	--cd-button-radius: 0px;
	--cd-shadow: 12px 12px 0 rgba(8, 20, 23, .16);
	--cd-image-filter: saturate(.82) contrast(1.18);
	--cabanas-accent: #ff6426;
	--cabanas-dark: #071417;
	--cabanas-cream: #dedcd4;
	--cabanas-border: #aeb6b4;
	--cb-forest: #0b2024;
	--cb-forest-2: #ff6426;
	--cb-paper: #ebe9e2;
	--cb-line: #aeb6b4;
}

body.cabanas-design--minimal {
	--cd-paper: #f4f3ee;
	--cd-paper-alt: #e8e7e1;
	--cd-surface: #faf9f5;
	--cd-ink: #191917;
	--cd-muted: #62625d;
	--cd-accent: #191917;
	--cd-accent-ink: #fff;
	--cd-dark: #191917;
	--cd-dark-2: #363633;
	--cd-border: #1f1f1c;
	--cd-heading: "Instrument Serif", Georgia, serif;
	--cd-text: "Instrument Sans", sans-serif;
	--cd-radius: 0px;
	--cd-radius-large: 0px;
	--cd-button-radius: 0px;
	--cd-shadow: none;
	--cd-image-filter: grayscale(1) contrast(1.04);
	--cabanas-accent: #191917;
	--cabanas-dark: #191917;
	--cabanas-cream: #ecebe5;
	--cabanas-border: #1f1f1c;
	--cb-forest: #191917;
	--cb-forest-2: #3c3c38;
	--cb-paper: #f4f3ee;
	--cb-line: #1f1f1c;
}

body[class*="cabanas-design--"] {
	background: var(--cd-paper);
	color: var(--cd-ink);
	font-family: var(--cd-text);
}

body[class*="cabanas-design--"] :is(h1, h2, h3, h4, h5, h6) {
	color: var(--cd-ink);
	font-family: var(--cd-heading);
}

/* =========================================================
   Header and navigation
   ========================================================= */
body.cabanas-demo-public .ct32-layout-render--header {
	position: sticky;
	top: 0;
	z-index: 1000;
}

body.cabanas-demo-public .site-header {
	border-color: color-mix(in srgb, var(--cd-border) 78%, transparent);
	background: color-mix(in srgb, var(--cd-surface) 94%, transparent);
	backdrop-filter: blur(18px) saturate(130%);
}

body.admin-bar.cabanas-demo-public .ct32-layout-render--header {
	top: 32px;
}

body.cabanas-demo-public .ct32-layout-header-shell {
	border-color: color-mix(in srgb, var(--cd-border) 78%, transparent);
	background: color-mix(in srgb, var(--cd-surface) 94%, transparent);
	backdrop-filter: blur(18px) saturate(130%);
}

body.cabanas-demo-public .ct32-layout-header {
	min-height: 78px;
}

body.cabanas-demo-public :is(.ct32-layout-header .site-brand__text, .ct32-elementor-menu a) {
	color: var(--cd-ink);
	font-family: var(--cd-text);
}

body.cabanas-demo-public :is(.site-header .site-brand__text, .site-header .site-menu a) {
	color: var(--cd-ink);
	font-family: var(--cd-text);
}

body.cabanas-demo-public .ct32-site-brand-widget__tagline {
	color: var(--cd-muted);
}

body.cabanas-demo-public .ct32-navigation__toggle {
	border-color: var(--cd-border);
	background: transparent;
}

body.cabanas-demo-public .ct32-navigation__toggle span:not(.screen-reader-text) {
	background: var(--cd-ink);
}

body.cabanas-demo-public .ct32-button--header .elementor-button {
	border: 1px solid var(--cd-accent);
	border-radius: var(--cd-button-radius);
	background: var(--cd-accent);
	color: var(--cd-accent-ink);
	font-family: var(--cd-text);
}

body.cabanas-demo-public .header-booking-button {
	border: 1px solid var(--cd-accent);
	border-radius: var(--cd-button-radius);
	background: var(--cd-accent);
	color: var(--cd-accent-ink) !important;
	font-family: var(--cd-text);
}

body.cabanas-demo-public .ct32-elementor-menu--horizontal .sub-menu {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	box-shadow: var(--cd-shadow);
}

body.cabanas-demo-public .ct32-elementor-menu--horizontal .sub-menu::before {
	border-color: var(--cd-border);
	background: var(--cd-surface);
}

body.cabanas-demo-public .ct32-elementor-menu--horizontal .sub-menu a {
	border-radius: var(--cd-radius);
	color: var(--cd-ink) !important;
}

body.cabanas-demo-public .ct32-elementor-menu--horizontal .sub-menu a:hover {
	background: var(--cd-paper-alt);
	color: var(--cd-ink) !important;
}

body.cabanas-demo-public.cabanas-design--mountain .ct32-layout-header-shell,
body.cabanas-demo-public.cabanas-design--adventure .ct32-layout-header-shell,
body.cabanas-demo-public.cabanas-design--mountain .site-header,
body.cabanas-demo-public.cabanas-design--adventure .site-header {
	border-color: rgba(255, 255, 255, .14);
	background: color-mix(in srgb, var(--cd-dark) 94%, transparent);
}

body.cabanas-demo-public.cabanas-design--mountain :is(.ct32-layout-header .site-brand__text, .ct32-elementor-menu > li > a),
body.cabanas-demo-public.cabanas-design--adventure :is(.ct32-layout-header .site-brand__text, .ct32-elementor-menu > li > a),
body.cabanas-demo-public.cabanas-design--mountain :is(.site-header .site-brand__text, .site-header .site-menu > li > a),
body.cabanas-demo-public.cabanas-design--adventure :is(.site-header .site-brand__text, .site-header .site-menu > li > a) {
	color: #fff;
}

body.cabanas-demo-public.cabanas-design--mountain .ct32-site-brand-widget__tagline,
body.cabanas-demo-public.cabanas-design--adventure .ct32-site-brand-widget__tagline {
	color: rgba(255, 255, 255, .58);
}

body.cabanas-demo-public.cabanas-design--mountain .ct32-navigation__toggle,
body.cabanas-demo-public.cabanas-design--adventure .ct32-navigation__toggle {
	border-color: rgba(255, 255, 255, .3);
}

body.cabanas-demo-public.cabanas-design--mountain .ct32-navigation__toggle span:not(.screen-reader-text),
body.cabanas-demo-public.cabanas-design--adventure .ct32-navigation__toggle span:not(.screen-reader-text) {
	background: #fff;
}

body.cabanas-demo-public.cabanas-design--boutique .ct32-layout-header-shell {
	width: min(calc(100% - 36px), 1440px);
	margin: 12px auto;
	border: 1px solid var(--cd-border);
}

body.cabanas-demo-public.cabanas-design--boutique .site-header__inner {
	width: min(calc(100% - 36px), 1440px);
	margin: 12px auto;
	border: 1px solid var(--cd-border);
	background: var(--cd-surface);
}

body.cabanas-demo-public.cabanas-design--boutique .ct32-elementor-menu > li > a,
body.cabanas-demo-public.cabanas-design--minimal .ct32-elementor-menu > li > a,
body.cabanas-demo-public.cabanas-design--boutique .site-menu > li > a,
body.cabanas-demo-public.cabanas-design--minimal .site-menu > li > a {
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
}

body.cabanas-demo-public.cabanas-design--family .ct32-layout-header-shell {
	width: min(calc(100% - 28px), 1440px);
	margin: 10px auto;
	border-radius: 22px;
	box-shadow: 0 14px 45px rgba(29, 78, 74, .09);
}

body.cabanas-demo-public.cabanas-design--family .site-header__inner {
	width: min(calc(100% - 28px), 1440px);
	margin: 10px auto;
	border: 1px solid var(--cd-border);
	border-radius: 22px;
	background: var(--cd-surface);
	box-shadow: 0 14px 45px rgba(29, 78, 74, .09);
}

body.cabanas-demo-public.cabanas-design--adventure .ct32-elementor-menu > li > a {
	font-family: var(--cd-text);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.cabanas-demo-public.cabanas-design--adventure .site-menu > li > a {
	font-family: var(--cd-text);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-header-shell {
	border-width: 0 0 1px;
	background: var(--cd-paper);
	backdrop-filter: none;
}

body.cabanas-demo-public.cabanas-design--minimal .site-header {
	border-width: 0 0 1px;
	background: var(--cd-paper);
	backdrop-filter: none;
}

body.cabanas-demo-public.cabanas-design--minimal .site-header__inner {
	min-height: 90px;
}

body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-header {
	min-height: 90px;
}

/* =========================================================
   Shared public-page composition
   ========================================================= */
body[class*="cabanas-design--"] #primary .ct70-public-hero {
	background: var(--cd-dark);
	color: #fff;
}

body[class*="cabanas-design--"] #primary .ct70-public-hero__inner {
	width: min(100%, 1480px) !important;
	max-width: 1480px !important;
	min-height: 680px;
	grid-template-columns: minmax(0, 1fr) minmax(460px, .92fr);
}

body[class*="cabanas-design--"] #primary .ct70-public-hero__copy {
	padding: 90px clamp(38px, 5.5vw, 86px);
}

body[class*="cabanas-design--"] #primary .ct70-public-kicker,
body[class*="cabanas-design--"] #primary .ct70-public-kicker .elementor-heading-title {
	color: var(--cd-accent) !important;
	font-family: var(--cd-text) !important;
	font-size: .67rem !important;
	font-weight: 800 !important;
	letter-spacing: .18em;
}

body[class*="cabanas-design--"] #primary .ct70-public-kicker--dark,
body[class*="cabanas-design--"] #primary .ct70-public-kicker--dark .elementor-heading-title {
	color: var(--cd-accent) !important;
}

body[class*="cabanas-design--"] #primary .ct70-public-hero__title .elementor-heading-title {
	max-width: 690px;
	margin-top: 18px;
	color: #fff !important;
	font-family: var(--cd-heading) !important;
	font-size: clamp(54px, 5vw, 78px) !important;
	font-weight: 500 !important;
	line-height: .96 !important;
	letter-spacing: -.04em;
	text-wrap: balance;
}

body[class*="cabanas-design--"] #primary .ct70-public-hero__text,
body[class*="cabanas-design--"] #primary .ct70-public-hero__text p {
	max-width: 610px;
	color: rgba(255, 255, 255, .72) !important;
	font-family: var(--cd-text) !important;
	font-size: 1rem !important;
	line-height: 1.75 !important;
}

body[class*="cabanas-design--"] #primary .ct70-public-eyebrow .elementor-heading-title {
	color: rgba(255, 255, 255, .54) !important;
	font-family: var(--cd-text) !important;
}

body[class*="cabanas-design--"] #primary .ct70-public-hero__media,
body[class*="cabanas-design--"] #primary .ct70-public-hero__image img {
	height: 680px !important;
	min-height: 680px;
}

body[class*="cabanas-design--"] #primary :is(.ct70-public-hero__image, .ct70-media-card__image, .ct70-editorial-split__image, .ct70-editorial-split__image-small, .ct70-image-cta__image, .ct70-story-gallery__image, .ct70-contact-media__image, .ct70-booking-aside__image, .ct70-faq-aside__image) img,
body[class*="cabanas-design--"] :is(.cabanas-card__media, .cabin-gallery__item) img {
	filter: var(--cd-image-filter);
}

body[class*="cabanas-design--"] #primary .ct70-public-hero__caption {
	background: color-mix(in srgb, var(--cd-dark) 90%, transparent);
}

body[class*="cabanas-design--"] #primary .ct70-public-content {
	background: var(--cd-paper);
	padding: clamp(82px, 8vw, 120px) 28px;
}

body[class*="cabanas-design--"] #primary .ct70-public-content__inner {
	max-width: 1320px;
	gap: clamp(64px, 7vw, 104px);
}

body[class*="cabanas-design--"] #primary .ct70-section-title,
body[class*="cabanas-design--"] #primary .ct70-section-title .elementor-heading-title {
	color: var(--cd-ink) !important;
	font-family: var(--cd-heading) !important;
	font-size: clamp(42px, 4vw, 60px) !important;
	font-weight: 500 !important;
	line-height: 1.02 !important;
	letter-spacing: -.035em;
}

body[class*="cabanas-design--"] #primary .ct70-section-text,
body[class*="cabanas-design--"] #primary .ct70-section-text p {
	color: var(--cd-muted) !important;
	font-family: var(--cd-text) !important;
	line-height: 1.75 !important;
}

body[class*="cabanas-design--"] #primary .ct70-number-grid,
body[class*="cabanas-design--"] #primary :is(.ct70-faq-grid, .ct70-policy-grid) {
	border-color: var(--cd-border);
}

body[class*="cabanas-design--"] #primary .ct70-number-card {
	border-color: var(--cd-border);
	background: transparent;
}

body[class*="cabanas-design--"] #primary .ct70-number-card__index .elementor-heading-title {
	color: var(--cd-accent) !important;
	font-family: var(--cd-text) !important;
}

body[class*="cabanas-design--"] #primary .ct70-number-card__title .elementor-heading-title {
	color: var(--cd-ink) !important;
	font-family: var(--cd-heading) !important;
}

body[class*="cabanas-design--"] #primary .ct70-number-card__text,
body[class*="cabanas-design--"] #primary .ct70-number-card__text p {
	color: var(--cd-muted) !important;
	font-family: var(--cd-text) !important;
}

body[class*="cabanas-design--"] #primary :is(.ct70-widget-shell, .ct70-media-card) {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	box-shadow: var(--cd-shadow);
}

body[class*="cabanas-design--"] #primary .ct70-media-card {
	overflow: hidden;
}

body[class*="cabanas-design--"] #primary .ct70-media-card__title .elementor-heading-title {
	color: var(--cd-ink) !important;
	font-family: var(--cd-heading) !important;
}

body[class*="cabanas-design--"] #primary .ct70-media-card__text,
body[class*="cabanas-design--"] #primary .ct70-media-card__text p {
	color: var(--cd-muted) !important;
	font-family: var(--cd-text) !important;
}

body[class*="cabanas-design--"] #primary .ct70-button .elementor-button {
	border-color: var(--cd-dark) !important;
	border-radius: var(--cd-button-radius) !important;
	background: var(--cd-dark) !important;
	color: #fff !important;
	font-family: var(--cd-text) !important;
}

body[class*="cabanas-design--"] #primary .ct70-button .elementor-button:hover {
	border-color: var(--cd-accent) !important;
	background: var(--cd-accent) !important;
	color: var(--cd-accent-ink) !important;
}

body[class*="cabanas-design--"] #primary .ct70-button--light .elementor-button {
	border-color: #fff !important;
	background: #fff !important;
	color: var(--cd-dark) !important;
}

body[class*="cabanas-design--"] #primary .ct70-editorial-split__image-small img {
	border-color: var(--cd-paper);
}

body[class*="cabanas-design--"] #primary :is(.ct70-booking-aside, .ct70-faq-aside) {
	border-radius: var(--cd-radius);
	background: var(--cd-dark);
	overflow: hidden;
}

body[class*="cabanas-design--"] #primary :is(.ct70-booking-aside__title, .ct70-booking-aside__title .elementor-heading-title, .ct70-faq-aside__title, .ct70-faq-aside__title .elementor-heading-title) {
	color: #fff !important;
	font-family: var(--cd-heading) !important;
}

body[class*="cabanas-design--"] #primary .ct70-contact-note {
	border-radius: var(--cd-radius);
	background: var(--cd-accent);
}

body[class*="cabanas-design--"] #primary .ct70-contact-note__title .elementor-heading-title {
	color: var(--cd-accent-ink) !important;
	font-family: var(--cd-heading) !important;
}

body[class*="cabanas-design--"] #primary .ct70-contact-note__text,
body[class*="cabanas-design--"] #primary .ct70-contact-note__text p {
	color: color-mix(in srgb, var(--cd-accent-ink) 78%, transparent) !important;
	font-family: var(--cd-text) !important;
}

body[class*="cabanas-design--"] #primary .ct70-image-cta::after {
	background: linear-gradient(90deg, color-mix(in srgb, var(--cd-dark) 94%, transparent), color-mix(in srgb, var(--cd-dark) 8%, transparent));
}

body[class*="cabanas-design--"] #primary .ct70-image-cta__title .elementor-heading-title {
	font-family: var(--cd-heading) !important;
}

/* =========================================================
   Reservation, account and cabin components
   ========================================================= */
body[class*="cabanas-design--"] #primary :is(.cabanas-booking-form, .cabanas-lookup, .cabanas-business-info, .cabanas-booking-summary, .cabanas-public-calendar, .cabanas-customer-access, .cabanas-customer-account__section) {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	box-shadow: none;
}

body[class*="cabanas-design--"] #primary :is(.cabanas-field input, .cabanas-field select, .cabanas-field textarea, .cabanas-booking-start input, .cabanas-customer-access input) {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	color: var(--cd-ink);
	font-family: var(--cd-text);
}

body[class*="cabanas-design--"] #primary :is(.cabanas-button, .cabanas-customer-access__forms nav a.is-active) {
	border-radius: var(--cd-button-radius);
	background: var(--cd-accent);
	color: var(--cd-accent-ink) !important;
	font-family: var(--cd-text);
}

body[class*="cabanas-design--"] #primary .cabanas-button:hover {
	background: var(--cd-dark);
	color: #fff !important;
}

body[class*="cabanas-design--"] #primary .cabanas-form-step {
	border-color: var(--cd-border);
}

body[class*="cabanas-design--"] #primary .cabanas-form-step__heading > span {
	background: var(--cd-dark);
}

body[class*="cabanas-design--"] #primary .cabanas-quote-card {
	border: 1px solid color-mix(in srgb, var(--cd-accent) 55%, var(--cd-dark));
	border-radius: var(--cd-radius);
	background: var(--cd-dark);
	box-shadow: var(--cd-shadow);
}

body[class*="cabanas-design--"] #primary .cabanas-customer-access__intro,
body[class*="cabanas-design--"] #primary .cabanas-customer-account__hero {
	border-radius: var(--cd-radius);
	background: linear-gradient(145deg, var(--cd-dark), var(--cd-dark-2));
}

body[class*="cabanas-design--"] #primary .cabanas-customer-access__forms nav {
	border-radius: var(--cd-button-radius);
	background: var(--cd-paper-alt);
}

body[class*="cabanas-design--"] #primary .cabanas-cabin-list {
	--cabanas-accent: var(--cd-accent);
	--cabanas-dark: var(--cd-dark);
	--cabanas-border: var(--cd-border);
}

body[class*="cabanas-design--"] #primary .cabanas-card {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	box-shadow: var(--cd-shadow);
}

body[class*="cabanas-design--"] #primary .cabanas-card__body h3 {
	color: var(--cd-ink);
	font-family: var(--cd-heading);
}

body[class*="cabanas-design--"] #primary .cabanas-card__eyebrow {
	color: var(--cd-accent);
	font-family: var(--cd-text);
}

body[class*="cabanas-design--"] #primary .cabanas-card__facts span {
	border-color: var(--cd-border);
	border-radius: var(--cd-button-radius);
	background: var(--cd-paper);
}

body[class*="cabanas-design--"] :is(.archive-hero--cabins, .cabanas-promo--cabins) {
	background-color: var(--cd-dark);
}

body[class*="cabanas-design--"] .archive-hero--cabins {
	background-image: linear-gradient(110deg, color-mix(in srgb, var(--cd-dark) 94%, transparent), color-mix(in srgb, var(--cd-dark-2) 70%, transparent)), url("../images/demo/hero-mountain.jpg");
}

body[class*="cabanas-design--"] .cabanas-section,
body[class*="cabanas-design--"] .cabin-single {
	color: var(--cd-ink);
	font-family: var(--cd-text);
}

body[class*="cabanas-design--"] .cabanas-static-grid--features article,
body[class*="cabanas-design--"] .cabin-policy-grid article,
body[class*="cabanas-design--"] .amenities-list li,
body[class*="cabanas-design--"] .cabin-single__booking {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	box-shadow: var(--cd-shadow);
}

body[class*="cabanas-design--"] .cabin-gallery {
	border-radius: var(--cd-radius-large);
	background: var(--cd-paper-alt);
}

body[class*="cabanas-design--"] .cabin-gallery__open,
body[class*="cabanas-design--"] .cabin-facts--large,
body[class*="cabanas-design--"] .cabin-facts--large span,
body[class*="cabanas-design--"] .cabin-content-section--notice,
body[class*="cabanas-design--"] .cabin-rate-summary > div {
	border-color: var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
}

body[class*="cabanas-design--"] :is(.cabin-single__heading h1, .cabin-content-section h2, .cabin-rate-summary strong, .cabin-facts--large strong) {
	color: var(--cd-ink);
	font-family: var(--cd-heading);
}

body[class*="cabanas-design--"] :is(.cabin-single__lead, .cabin-content-section p, .cabin-single__breadcrumbs, .cabin-rate-summary small) {
	color: var(--cd-muted);
}

body[class*="cabanas-design--"] .amenities-list li::before {
	color: var(--cd-accent);
}

/* =========================================================
   Footer
   ========================================================= */
body.cabanas-demo-public .ct32-layout-footer-shell {
	background: var(--cd-dark);
	color: rgba(255, 255, 255, .72);
}

body.cabanas-demo-public .site-footer {
	background: var(--cd-dark);
	color: rgba(255, 255, 255, .72);
	font-family: var(--cd-text);
}

body.cabanas-demo-public .ct32-layout-footer {
	font-family: var(--cd-text);
}

body.cabanas-demo-public .ct32-layout-footer :is(.site-brand__text, .ct32-layout-footer__title .elementor-heading-title) {
	color: #fff;
}

body.cabanas-demo-public .site-footer :is(.site-brand__text, h2) {
	color: #fff;
}

body.cabanas-demo-public .ct32-layout-footer .ct32-elementor-menu a:hover {
	color: var(--cd-accent);
}

body.cabanas-demo-public.cabanas-design--boutique .ct32-layout-footer-shell {
	border-top: 8px solid var(--cd-accent);
}

body.cabanas-demo-public.cabanas-design--boutique .site-footer {
	border-top: 8px solid var(--cd-accent);
}

body.cabanas-demo-public.cabanas-design--family .ct32-layout-footer-shell {
	border-radius: 42px 42px 0 0;
}

body.cabanas-demo-public.cabanas-design--family .site-footer {
	border-radius: 42px 42px 0 0;
}

body.cabanas-demo-public.cabanas-design--adventure .ct32-layout-footer-shell {
	border-top: 9px solid var(--cd-accent);
}

body.cabanas-demo-public.cabanas-design--adventure .site-footer {
	border-top: 9px solid var(--cd-accent);
}

body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-footer-shell {
	border-top: 1px solid var(--cd-border);
	background: var(--cd-paper);
	color: var(--cd-muted);
}

body.cabanas-demo-public.cabanas-design--minimal .site-footer {
	border-top: 1px solid var(--cd-border);
	background: var(--cd-paper);
	color: var(--cd-muted);
}

body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-footer :is(.site-brand__text, .ct32-layout-footer__title .elementor-heading-title) {
	color: var(--cd-ink);
}

body.cabanas-demo-public.cabanas-design--minimal .site-footer :is(.site-brand__text, h2) {
	color: var(--cd-ink);
}

body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-footer :is(.ct32-layout-footer__text p, .cabanas-business-info, .cabanas-business-info li, .ct32-elementor-menu a, .ct32-copyright, .ct32-layout-footer__version p) {
	color: var(--cd-muted);
}

body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-footer__bottom,
body.cabanas-demo-public.cabanas-design--minimal .ct32-layout-footer .cabanas-business-info li,
body.cabanas-demo-public.cabanas-design--minimal .site-footer__bottom,
body.cabanas-demo-public.cabanas-design--minimal .site-footer .cabanas-business-info li {
	border-color: var(--cd-border);
}

/* =========================================================
   Individual personalities
   ========================================================= */

/* Mountain: cinematic depth, warm brass and framed photography. */
body.cabanas-design--mountain #primary .ct70-public-hero {
	background: linear-gradient(135deg, #0c2117, #244a36);
}

body.cabanas-design--mountain #primary .ct70-public-hero__media::after {
	position: absolute;
	inset: 24px;
	border: 1px solid rgba(255, 255, 255, .24);
	content: "";
	pointer-events: none;
}

body.cabanas-design--mountain #primary .ct70-number-card {
	background: linear-gradient(145deg, rgba(255, 255, 255, .42), transparent);
}

body.cabanas-design--mountain #primary .ct70-media-card__image img {
	height: 350px !important;
}

body.cabanas-design--mountain #primary .ct70-widget-shell {
	outline: 1px solid rgba(208, 173, 112, .22);
	outline-offset: -10px;
}

/* Boutique: asymmetrical editorial pages with fine wine-colored rules. */
body.cabanas-design--boutique #primary .ct70-public-hero {
	background: var(--cd-paper);
	color: var(--cd-ink);
}

body.cabanas-design--boutique #primary .ct70-public-hero__inner {
	grid-template-columns: minmax(0, .88fr) minmax(520px, 1.12fr);
	padding: 54px;
}

body.cabanas-design--boutique #primary .ct70-public-hero__copy {
	padding: 74px clamp(24px, 4vw, 64px) 74px 12px;
}

body.cabanas-design--boutique #primary .ct70-public-hero__title .elementor-heading-title {
	color: var(--cd-ink) !important;
	font-size: clamp(58px, 5.4vw, 86px) !important;
	font-style: italic;
	line-height: .94 !important;
}

body.cabanas-design--boutique #primary .ct70-public-hero__text,
body.cabanas-design--boutique #primary .ct70-public-hero__text p {
	color: var(--cd-muted) !important;
}

body.cabanas-design--boutique #primary .ct70-public-eyebrow .elementor-heading-title {
	color: var(--cd-accent) !important;
}

body.cabanas-design--boutique #primary .ct70-public-hero__media,
body.cabanas-design--boutique #primary .ct70-public-hero__image img {
	height: 650px !important;
	min-height: 650px;
}

body.cabanas-design--boutique #primary .ct70-public-hero__media {
	border: 1px solid var(--cd-border);
	padding: 12px;
}

body.cabanas-design--boutique #primary .ct70-public-hero__caption {
	right: 26px;
	left: auto;
	background: var(--cd-accent);
}

body.cabanas-design--boutique #primary .ct70-section-heading--split {
	grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr);
	border-top: 1px solid var(--cd-border);
	padding-top: 28px;
}

body.cabanas-design--boutique #primary .ct70-number-card:nth-child(even) {
	background: var(--cd-paper-alt);
}

body.cabanas-design--boutique #primary .ct70-media-grid {
	gap: 42px 24px;
}

body.cabanas-design--boutique #primary .ct70-media-card:nth-child(even) {
	transform: translateY(36px);
}

body.cabanas-design--boutique #primary .ct70-media-card__copy {
	border-top: 5px solid var(--cd-accent);
}

/* Family: approachable scale, soft shapes and warm interactive surfaces. */
body.cabanas-design--family #primary .ct70-public-hero {
	background: linear-gradient(145deg, #dcece5 0%, #f7f4e9 62%);
	color: var(--cd-ink);
	padding: 28px;
}

body.cabanas-design--family #primary .ct70-public-hero__inner {
	min-height: 650px;
	overflow: hidden;
	border: 1px solid var(--cd-border);
	border-radius: 42px;
	background: rgba(255, 253, 248, .72);
}

body.cabanas-design--family #primary .ct70-public-hero__title .elementor-heading-title {
	color: var(--cd-ink) !important;
	font-size: clamp(50px, 4.8vw, 72px) !important;
	line-height: 1 !important;
}

body.cabanas-design--family #primary .ct70-public-hero__text,
body.cabanas-design--family #primary .ct70-public-hero__text p {
	color: var(--cd-muted) !important;
}

body.cabanas-design--family #primary .ct70-public-eyebrow .elementor-heading-title {
	color: var(--cd-accent) !important;
}

body.cabanas-design--family #primary .ct70-public-hero__media,
body.cabanas-design--family #primary .ct70-public-hero__image img {
	height: 650px !important;
	min-height: 650px;
}

body.cabanas-design--family #primary .ct70-public-hero__image img {
	border-radius: 180px 0 0 0;
}

body.cabanas-design--family #primary .ct70-public-hero__caption {
	border-radius: 999px;
	background: var(--cd-accent);
}

body.cabanas-design--family #primary .ct70-number-grid,
body.cabanas-design--family #primary :is(.ct70-faq-grid, .ct70-policy-grid) {
	gap: 16px;
	border: 0;
}

body.cabanas-design--family #primary .ct70-number-card {
	border: 1px solid var(--cd-border);
	border-radius: var(--cd-radius);
	background: var(--cd-surface);
	box-shadow: 0 12px 35px rgba(29, 78, 74, .06);
}

body.cabanas-design--family #primary .ct70-media-card__image img {
	height: 310px !important;
}

body.cabanas-design--family #primary :is(.ct70-editorial-split__image img, .ct70-contact-media__image img, .ct70-story-gallery) {
	border-radius: var(--cd-radius-large);
}

body.cabanas-design--family #primary .ct70-editorial-split__image-small img {
	border-width: 8px;
	border-radius: var(--cd-radius);
}

/* Adventure: angular contrast, condensed headlines and high-energy orange. */
body.cabanas-design--adventure #primary .ct70-public-hero {
	border-bottom: 10px solid var(--cd-accent);
	background: var(--cd-dark);
}

body.cabanas-design--adventure #primary .ct70-public-hero__inner {
	grid-template-columns: minmax(0, .78fr) minmax(540px, 1.22fr);
}

body.cabanas-design--adventure #primary .ct70-public-hero__copy {
	border-right: 1px solid rgba(255, 255, 255, .18);
}

body.cabanas-design--adventure #primary .ct70-public-hero__title .elementor-heading-title {
	font-size: clamp(68px, 6.5vw, 106px) !important;
	font-weight: 700 !important;
	line-height: .82 !important;
	letter-spacing: -.025em;
	text-transform: uppercase;
}

body.cabanas-design--adventure #primary :is(.ct70-section-title, .ct70-section-title .elementor-heading-title, .ct70-number-card__title .elementor-heading-title, .ct70-media-card__title .elementor-heading-title) {
	font-weight: 700 !important;
	letter-spacing: -.02em;
	text-transform: uppercase;
}

body.cabanas-design--adventure #primary .ct70-public-hero__caption {
	bottom: 0;
	left: 0;
	background: var(--cd-accent);
}

body.cabanas-design--adventure #primary .ct70-public-hero__caption .elementor-heading-title {
	color: var(--cd-accent-ink) !important;
}

body.cabanas-design--adventure #primary .ct70-number-card {
	border-width: 2px;
}

body.cabanas-design--adventure #primary .ct70-number-card__index .elementor-heading-title {
	font-size: 1rem !important;
}

body.cabanas-design--adventure #primary .ct70-media-card {
	border-width: 2px;
}

body.cabanas-design--adventure #primary .ct70-media-card__copy {
	border-top: 8px solid var(--cd-accent);
}

body.cabanas-design--adventure #primary .ct70-image-cta {
	border-bottom: 10px solid var(--cd-accent);
}

body.cabanas-design--adventure #primary :is(.cabanas-button, .ct70-button .elementor-button) {
	font-weight: 800 !important;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Minimal: architecture, whitespace, monochrome imagery and visible grid. */
body.cabanas-design--minimal #primary .ct70-public-hero {
	border-bottom: 1px solid var(--cd-border);
	background: var(--cd-paper);
	color: var(--cd-ink);
}

body.cabanas-design--minimal #primary .ct70-public-hero__inner {
	grid-template-columns: minmax(0, .72fr) minmax(560px, 1.28fr);
	min-height: 760px;
}

body.cabanas-design--minimal #primary .ct70-public-hero__copy {
	border-right: 1px solid var(--cd-border);
	padding: 110px clamp(40px, 6vw, 96px);
}

body.cabanas-design--minimal #primary .ct70-public-hero__title .elementor-heading-title {
	color: var(--cd-ink) !important;
	font-size: clamp(62px, 6vw, 98px) !important;
	font-weight: 400 !important;
	line-height: .91 !important;
	letter-spacing: -.05em;
}

body.cabanas-design--minimal #primary .ct70-public-hero__text,
body.cabanas-design--minimal #primary .ct70-public-hero__text p {
	color: var(--cd-muted) !important;
}

body.cabanas-design--minimal #primary .ct70-public-eyebrow .elementor-heading-title {
	color: var(--cd-muted) !important;
}

body.cabanas-design--minimal #primary .ct70-public-hero__media,
body.cabanas-design--minimal #primary .ct70-public-hero__image img {
	height: 760px !important;
	min-height: 760px;
}

body.cabanas-design--minimal #primary .ct70-public-hero__caption {
	right: 0;
	bottom: 0;
	left: auto;
	border: 1px solid var(--cd-border);
	background: var(--cd-paper);
}

body.cabanas-design--minimal #primary .ct70-public-hero__caption .elementor-heading-title {
	color: var(--cd-ink) !important;
}

body.cabanas-design--minimal #primary .ct70-public-content {
	padding-top: clamp(110px, 11vw, 170px);
	padding-bottom: clamp(110px, 11vw, 170px);
}

body.cabanas-design--minimal #primary .ct70-public-content__inner {
	gap: clamp(90px, 10vw, 150px);
}

body.cabanas-design--minimal #primary .ct70-section-title,
body.cabanas-design--minimal #primary .ct70-section-title .elementor-heading-title {
	font-size: clamp(50px, 5.4vw, 78px) !important;
	font-weight: 400 !important;
	line-height: .95 !important;
}

body.cabanas-design--minimal #primary .ct70-section-heading--split {
	border-top: 1px solid var(--cd-border);
	padding-top: 22px;
}

body.cabanas-design--minimal #primary .ct70-number-card {
	min-height: 270px;
	padding: 30px 22px;
}

body.cabanas-design--minimal #primary .ct70-media-grid {
	gap: 1px;
	border: 1px solid var(--cd-border);
	background: var(--cd-border);
}

body.cabanas-design--minimal #primary .ct70-media-card {
	border: 0;
}

body.cabanas-design--minimal #primary .ct70-media-card__copy {
	min-height: 190px;
	border-top: 1px solid var(--cd-border);
}

body.cabanas-design--minimal #primary :is(.ct70-widget-shell, .cabanas-booking-form, .cabanas-quote-card, .cabanas-card, .cabin-single__booking) {
	box-shadow: none;
}

body.cabanas-design--minimal #primary .cabanas-quote-card {
	background: var(--cd-dark);
}

body.cabanas-design--minimal #primary .ct70-story-gallery {
	gap: 1px;
	background: var(--cd-border);
}

/* =========================================================
   Responsive calibration
   ========================================================= */
@media (max-width: 1100px) {
	body[class*="cabanas-design--"] #primary .ct70-public-hero__inner,
	body.cabanas-design--boutique #primary .ct70-public-hero__inner,
	body.cabanas-design--adventure #primary .ct70-public-hero__inner,
	body.cabanas-design--minimal #primary .ct70-public-hero__inner {
		grid-template-columns: 1fr;
	}

	body.cabanas-design--boutique #primary .ct70-public-hero__inner {
		padding: 38px;
	}

	body.cabanas-design--boutique #primary .ct70-public-hero__copy {
		padding-left: 18px;
	}

	body.cabanas-design--minimal #primary .ct70-public-hero__copy {
		border-right: 0;
		border-bottom: 1px solid var(--cd-border);
	}

	body.cabanas-design--boutique #primary .ct70-media-card:nth-child(even) {
		transform: none;
	}
}

/*
 * Mobile Elementor navigation uses a light, theme-aware sheet.  Keep every
 * nested level on that same contrast system; older rules assumed a dark
 * drawer and made submenu labels unreadable over the light panel.
 */
@media (max-width: 1180px) {
	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal {
		border-color: var(--cd-border) !important;
		background: var(--cd-surface) !important;
		color: var(--cd-ink) !important;
	}

	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal > li {
		border-color: var(--cd-border) !important;
	}

	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal a {
		color: var(--cd-ink) !important;
	}

	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal .sub-menu {
		border: 1px solid var(--cd-border) !important;
		background: var(--cd-paper-alt) !important;
	}

	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal .sub-menu a {
		background: transparent !important;
		color: var(--cd-ink) !important;
	}

	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal :is(a:hover, a:focus-visible),
	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal :is(.current-menu-item, .current-menu-ancestor) > a {
		background: var(--cd-surface) !important;
		color: var(--cd-ink) !important;
	}
}

@media (max-width: 900px) {
	body.cabanas-demo-public .ct32-layout-header-shell {
		width: 100%;
		margin: 0;
		border-radius: 0;
	}

	body.cabanas-demo-public :is(.site-header__inner, .cabanas-design--boutique .site-header__inner, .cabanas-design--family .site-header__inner) {
		width: 100%;
		margin: 0;
		border-width: 0 0 1px;
		border-radius: 0;
	}

	body.cabanas-demo-public .ct32-navigation.is-open {
		border-top: 1px solid color-mix(in srgb, var(--cd-border) 45%, transparent);
		background: var(--cd-dark);
	}

	body.cabanas-demo-public .site-navigation.is-open {
		border-color: color-mix(in srgb, var(--cd-border) 45%, transparent);
		background: var(--cd-dark);
	}

	body.cabanas-demo-public .ct32-navigation.is-open .ct32-elementor-menu > li > a {
		color: #fff;
	}

	body.cabanas-demo-public .site-navigation.is-open .site-menu > li > a {
		color: #fff;
	}

	body.cabanas-demo-public .ct32-navigation .ct32-elementor-menu--horizontal .sub-menu a {
		color: var(--cd-ink) !important;
	}

	body.cabanas-demo-public .site-navigation.is-open .site-menu .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		margin: 0 0 6px 14px;
		padding: 0 0 0 12px;
		border: 0;
		border-left: 1px solid rgba(255, 255, 255, .18);
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	body.cabanas-demo-public .site-navigation.is-open .site-menu .sub-menu a {
		color: rgba(255, 255, 255, .74);
	}
}

@media (max-width: 782px) {
	body.admin-bar.cabanas-demo-public .ct32-layout-render--header {
		top: 46px;
	}
}

@media (max-width: 680px) {
	body[class*="cabanas-design--"] #primary .ct70-public-hero,
	body.cabanas-design--family #primary .ct70-public-hero {
		padding: 0;
	}

	body.cabanas-design--boutique #primary .ct70-public-hero__inner {
		padding: 0;
	}

	body.cabanas-design--family #primary .ct70-public-hero__inner {
		border-width: 0 0 1px;
		border-radius: 0;
	}

	body[class*="cabanas-design--"] #primary .ct70-public-hero__copy {
		padding: 72px 20px 52px;
	}

	body[class*="cabanas-design--"] #primary .ct70-public-hero__title .elementor-heading-title,
	body.cabanas-design--adventure #primary .ct70-public-hero__title .elementor-heading-title,
	body.cabanas-design--minimal #primary .ct70-public-hero__title .elementor-heading-title {
		font-size: clamp(44px, 13vw, 62px) !important;
		line-height: .95 !important;
	}

	body[class*="cabanas-design--"] #primary .ct70-public-hero__media,
	body[class*="cabanas-design--"] #primary .ct70-public-hero__image img,
	body.cabanas-design--boutique #primary .ct70-public-hero__media,
	body.cabanas-design--boutique #primary .ct70-public-hero__image img,
	body.cabanas-design--family #primary .ct70-public-hero__media,
	body.cabanas-design--family #primary .ct70-public-hero__image img,
	body.cabanas-design--minimal #primary .ct70-public-hero__media,
	body.cabanas-design--minimal #primary .ct70-public-hero__image img {
		height: 410px !important;
		min-height: 410px;
	}

	body.cabanas-design--family #primary .ct70-public-hero__image img {
		border-radius: 90px 0 0;
	}

	body[class*="cabanas-design--"] #primary .ct70-public-content {
		padding: 72px 18px;
	}

	body[class*="cabanas-design--"] #primary .ct70-public-content__inner {
		gap: 64px;
	}

	body[class*="cabanas-design--"] #primary .ct70-section-title,
	body[class*="cabanas-design--"] #primary .ct70-section-title .elementor-heading-title,
	body.cabanas-design--minimal #primary .ct70-section-title,
	body.cabanas-design--minimal #primary .ct70-section-title .elementor-heading-title {
		font-size: clamp(39px, 11vw, 52px) !important;
	}

	body.cabanas-design--boutique #primary .ct70-section-heading--split {
		grid-template-columns: 1fr;
	}

	body.cabanas-design--family #primary :is(.ct70-number-card, .ct70-widget-shell, .ct70-media-card, .ct70-booking-aside, .ct70-faq-aside) {
		border-radius: 18px;
	}
}
