/* ==========================================================================
   Hotel Rio Lindo — styles for rl-* classes used inside Elementor.
   Anything set in Elementor's Style tab overrides these (higher specificity),
   so these are sensible defaults, not locks.
   ========================================================================== */

/* ---------- Base resets for Elementor widgets ---------- */
.elementor .elementor-heading-title { line-height: 1.15; }
.elementor p:last-child { margin-bottom: 0; }

/* ---------- Sections ---------- */
.e-con.rl-section {
	--padding-top: 96px;
	--padding-bottom: 96px;
	--gap: 40px;
	--row-gap: 40px;
}
@media (max-width: 767px) {
	.e-con.rl-section { --padding-top: 64px; --padding-bottom: 64px; --gap: 28px; --row-gap: 28px; }
}
.e-con.rl-bg-cream { background-color: var(--rl-cream); }
.e-con.rl-bg-sand { background-color: var(--rl-sand); }
.e-con.rl-bg-white { background-color: var(--rl-white); }
.e-con.rl-bg-green { background-color: var(--rl-green); }
.e-con.rl-bg-brown { background-color: var(--rl-brown); }

.rl-dark,
.rl-dark .elementor-widget-text-editor { color: rgba(255, 255, 255, 0.78); }
.rl-dark .elementor-heading-title,
.rl-dark h1, .rl-dark h2, .rl-dark h3, .rl-dark h4 { color: var(--rl-white); }

.rl-center, .rl-center .elementor-heading-title { text-align: center; }
.rl-center.elementor-widget-text-editor { max-width: 640px; margin-left: auto; margin-right: auto; }

/* ---------- Typography helpers ---------- */
.rl-eyebrow .elementor-heading-title,
.elementor-widget.rl-eyebrow .elementor-heading-title {
	font: 600 12px/1.4 var(--rl-font-body);
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--rl-orange);
}
.rl-eyebrow--light .elementor-heading-title { color: #f3a67c; }
.rl-eyebrow a { color: inherit; text-decoration: none; }

.rl-title .elementor-heading-title { font-size: clamp(2rem, 3.6vw, 3rem); font-family: var(--rl-font-head); font-weight: 600; }
.rl-subtitle .elementor-heading-title { font: italic 500 1.3rem/1.4 var(--rl-font-head); color: var(--rl-green-3); }
.rl-lead { font-size: 1.05rem; color: var(--rl-muted); }
.rl-dark .rl-lead { color: rgba(255, 255, 255, 0.72); }
.rl-body { color: var(--rl-muted); }
.rl-dark .rl-body { color: rgba(255, 255, 255, 0.75); }
.rl-muted { color: var(--rl-muted); }

/* Section header row */
.e-con.rl-section-head { --gap: 16px 48px; --row-gap: 16px; --column-gap: 48px; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.e-con.rl-section-head__main { --gap: 0; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --width: auto; flex: 1 1 380px; }
.e-con .elementor-widget.rl-section-head__side { flex: 1 1 360px; max-width: 520px; width: auto; }

/* Remove default inner padding on nested layout containers */
.e-con.rl-about, .e-con.rl-about__copy, .e-con.rl-features, .e-con.rl-rooms, .e-con.rl-menus, .e-con.rl-extras,
.e-con.rl-adventures, .e-con.rl-reviews, .e-con.rl-insta, .e-con.rl-contact, .e-con.rl-contact__info,
.e-con.rl-stats, .e-con.rl-hero__actions, .e-con.rl-actions, .e-con.rl-room-row, .e-con.rl-room-row__copy,
.e-con.rl-room-row__media, .e-con.rl-split, .e-con.rl-menu-page__copy, .e-con.rl-adv-list, .e-con.rl-cta__copy,
.e-con.rl-room-card__foot, .e-con.rl-menu-card__foot {
	--padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0;
}

/* ---------- Buttons (Elementor button widget) ---------- */
.rl-btn-primary .elementor-button,
.rl-btn-ghost .elementor-button,
.rl-btn-outline .elementor-button,
.rl-btn-outline-light .elementor-button,
.rl-btn-light .elementor-button {
	border-radius: 999px;
	padding: 15px 28px;
	font: 600 15px/1 var(--rl-font-body);
	letter-spacing: 0.02em;
	border: 2px solid transparent;
	transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.rl-btn-primary .elementor-button { background: var(--rl-orange); color: var(--rl-white); }
.rl-btn-primary .elementor-button:hover { background: var(--rl-orange-dark); color: var(--rl-white); transform: translateY(-1px); }
.rl-btn-ghost .elementor-button { background: rgba(255, 255, 255, 0.08); color: var(--rl-white); border-color: rgba(255, 255, 255, 0.6); backdrop-filter: blur(4px); }
.rl-btn-ghost .elementor-button:hover { background: var(--rl-white); color: var(--rl-green); }
.rl-btn-outline .elementor-button { background: transparent; color: var(--rl-green); border-color: var(--rl-green); }
.rl-btn-outline .elementor-button:hover { background: var(--rl-green); color: var(--rl-white); }
.rl-btn-outline-light .elementor-button { background: transparent; color: var(--rl-white); border-color: rgba(255, 255, 255, 0.6); }
.rl-btn-light .elementor-button { background: var(--rl-white); color: var(--rl-green); }
.rl-btn-light .elementor-button:hover { background: var(--rl-cream); color: var(--rl-orange-dark); }
.rl-btn-link .elementor-button { background: none; padding: 0; color: var(--rl-orange); font: 700 15px/1 var(--rl-font-body); border-radius: 0; }
.rl-btn-link .elementor-button:hover { color: var(--rl-orange-dark); }

/* ---------- Hero ---------- */
.e-con.rl-hero {
	--min-height: 88vh;
	min-height: min(88vh, 860px);
	--justify-content: center;
	--padding-top: 120px;
	--padding-bottom: 160px;
	--gap: 18px;
	justify-content: center;
}
.e-con.rl-hero > .e-con-inner { justify-content: center; gap: 18px; }
.rl-hero__title .elementor-heading-title {
	font-family: var(--rl-font-head);
	font-size: clamp(2.8rem, 7vw, 5.6rem);
	font-weight: 600;
	line-height: 1.02;
	color: var(--rl-white);
	max-width: 12ch;
}
.e-con .elementor-widget.rl-hero__lead { max-width: 560px; color: rgba(255, 255, 255, 0.86); font-size: 1.15rem; }
.e-con.rl-hero__actions { --gap: 12px; --row-gap: 12px; --column-gap: 12px; margin-top: 8px; }

/* Booking bar overlapping the hero */
.e-con.rl-booking-wrap { --padding-top: 0; --padding-bottom: 0; position: relative; z-index: 5; background: transparent; }
.rl-booking-wrap .rl-booking { transform: translateY(-50%); margin-bottom: -50px; }
.e-con.rl-booking-wrap + .e-con.rl-section { --padding-top: 24px; }
@media (max-width: 960px) { .rl-booking-wrap .rl-booking { transform: translateY(-64px); margin-bottom: -64px; } }

/* ---------- Welcome / About ---------- */
.e-con.rl-about { align-items: center; }
.e-con.rl-about__media { position: relative; --padding-top: 0; --padding-bottom: 60px; --padding-left: 0; --padding-right: 60px; }
.rl-about__main img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--rl-radius); box-shadow: var(--rl-shadow); }
.elementor-widget.rl-about__inset { position: absolute; right: 0; bottom: 0; width: 48%; }
.rl-about__inset img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--rl-radius); border: 6px solid var(--rl-cream); box-shadow: var(--rl-shadow); }
.e-con.rl-badge {
	position: absolute; top: 28px; right: 20px; width: 128px; height: 128px; border-radius: 50%;
	background: var(--rl-orange); color: var(--rl-white); text-align: center;
	--gap: 2px; --padding-top: 0; --padding-bottom: 0; --padding-left: 12px; --padding-right: 12px;
	justify-content: center; align-items: center; box-shadow: var(--rl-shadow);
}
.rl-badge__big .elementor-heading-title { font: 700 2rem/1 var(--rl-font-head); color: var(--rl-white); }
.rl-badge__small .elementor-heading-title { font: 500 12px/1.3 var(--rl-font-body); color: var(--rl-white); }
.e-con.rl-about__copy { --gap: 16px; }
.e-con.rl-stats { margin-top: 12px; padding-top: 24px !important; border-top: 1px solid var(--rl-line); }
.rl-stat .elementor-counter-number-wrapper { font: 600 2.4rem/1 var(--rl-font-head); color: var(--rl-green); justify-content: flex-start; }
.rl-stat .elementor-counter-title { font-size: 14px; color: var(--rl-muted); text-align: left; justify-content: flex-start; }
.rl-stat .elementor-counter { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 6px; }
@media (max-width: 767px) {
	.e-con.rl-about__media { --padding-right: 30px; --padding-bottom: 40px; }
	.e-con.rl-badge { width: 100px; height: 100px; top: 16px; right: 8px; }
	.rl-badge__big .elementor-heading-title { font-size: 1.5rem; }
}

/* ---------- Feature cards (icon-box) ---------- */
.rl-feature .elementor-icon-box-wrapper,
.rl-mini .elementor-icon-box-wrapper {
	height: 100%; padding: 26px; border-radius: var(--rl-radius);
	background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1);
	transition: background .25s, transform .25s;
}
.rl-feature:hover .elementor-icon-box-wrapper { background: rgba(255, 255, 255, 0.09); transform: translateY(-3px); }
.rl-feature .elementor-icon-box-icon, .rl-mini .elementor-icon-box-icon { margin-bottom: 18px; display: inline-block; }
.rl-feature .elementor-icon, .rl-mini .elementor-icon {
	display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 12px;
	background: rgba(226, 112, 58, 0.18); color: #f3a67c; font-size: 20px;
}
.rl-feature .elementor-icon svg, .rl-mini .elementor-icon svg { width: 20px; height: 20px; fill: currentColor; }
.rl-feature .elementor-icon-box-title, .rl-mini .elementor-icon-box-title { font: 600 1.2rem/1.25 var(--rl-font-head); color: var(--rl-white); margin: 0 0 8px; }
.rl-feature .elementor-icon-box-title a, .rl-mini .elementor-icon-box-title a { color: inherit; }
.rl-feature .elementor-icon-box-description, .rl-mini .elementor-icon-box-description { font-size: 15px; color: rgba(255, 255, 255, 0.7); margin: 0; }
.rl-feature .elementor-icon-box-wrapper, .rl-mini .elementor-icon-box-wrapper { text-align: left; }

/* Light variant for mini cards on cream backgrounds */
.rl-mini--light .elementor-icon-box-wrapper { background: var(--rl-white); border-color: var(--rl-line); box-shadow: var(--rl-shadow-sm); }
.rl-mini--light .elementor-icon-box-title { color: var(--rl-green); }
.rl-mini--light .elementor-icon-box-description { color: var(--rl-muted); }
.rl-mini--light .elementor-icon { color: var(--rl-orange); background: rgba(226, 112, 58, 0.12); }

/* ---------- Room cards ---------- */
.e-con.rl-room-card {
	--padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0;
	background: var(--rl-white); border-radius: var(--rl-radius); overflow: hidden; box-shadow: var(--rl-shadow-sm);
	transition: transform .25s, box-shadow .25s;
}
.e-con.rl-room-card:hover { transform: translateY(-4px); box-shadow: var(--rl-shadow); }
.e-con.rl-room-card__media { position: relative; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.rl-room-card__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s; }
.e-con.rl-room-card:hover .rl-room-card__img img { transform: scale(1.04); }
.rl-room-card__img { overflow: hidden; }
.elementor-widget.rl-room-card__tag { position: absolute; top: 14px; left: 14px; width: auto; }
.elementor-widget.rl-room-card__tag.rl-static { position: static; }
.rl-room-card__tag .elementor-heading-title {
	display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--rl-cream); color: var(--rl-green);
	font: 700 11px/1 var(--rl-font-body); letter-spacing: .12em; text-transform: uppercase;
}
.e-con.rl-room-card__body { --padding-top: 22px; --padding-bottom: 22px; --padding-left: 22px; --padding-right: 22px; --gap: 10px; flex-grow: 1; }
.rl-room-card__title .elementor-heading-title { font: 600 1.35rem/1.2 var(--rl-font-head); color: var(--rl-green); }
.rl-room-card__meta .elementor-icon-list-items { gap: 4px 14px; }
.rl-room-card__meta .elementor-icon-list-item { font-size: 13px; color: var(--rl-muted); margin: 0 !important; }
.rl-room-card__meta .elementor-icon-list-icon i, .rl-room-card__meta .elementor-icon-list-icon svg { color: var(--rl-orange); fill: var(--rl-orange); font-size: 12px; width: 12px; }
.rl-room-card__text { font-size: 15px; color: var(--rl-muted); }
.e-con.rl-room-card__foot { margin-top: auto; padding-top: 14px !important; border-top: 1px solid var(--rl-line); }
.rl-room-card__price { font-size: 14px; font-weight: 600; color: var(--rl-green); }
.rl-room-card__price small { display: block; font-weight: 500; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: var(--rl-muted); }

/* ---------- Restaurant & Bar ---------- */
.rl-pills .elementor-icon-list-items.elementor-inline-items { gap: 10px; margin: 0; }
.rl-pills .elementor-icon-list-items .elementor-icon-list-item {
	margin: 0 !important; padding: 10px 18px !important; gap: 8px; border-radius: 999px;
	background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.14);
}
.rl-pills .elementor-icon-list-item:first-child { background: var(--rl-orange); border-color: var(--rl-orange); }
.rl-pills .elementor-icon-list-text { color: var(--rl-white); font-size: 14px; font-weight: 600; }
.rl-pills .elementor-icon-list-icon i, .rl-pills .elementor-icon-list-icon svg { color: var(--rl-white); fill: var(--rl-white); font-size: 13px; width: 13px; }

.e-con.rl-menu-card {
	--padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0;
	background: var(--rl-cream); border-radius: var(--rl-radius); overflow: hidden; color: var(--rl-ink);
}
.e-con.rl-menu-card--dark { background: var(--rl-green); color: rgba(255, 255, 255, 0.8); }
.rl-menu-card__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.e-con.rl-menu-card__body { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 32px; --padding-right: 32px; --gap: 12px; flex-grow: 1; }
.rl-menu-card__title .elementor-heading-title { font: 600 1.8rem/1.1 var(--rl-font-head); color: var(--rl-green); }
.rl-menu-card--dark .rl-menu-card__title .elementor-heading-title { color: var(--rl-white); }
.rl-dark .rl-menu-card:not(.rl-menu-card--dark) .elementor-widget-text-editor { color: var(--rl-muted); }
.rl-menu-card__desc { font-size: 15px; }
.rl-menu-list { list-style: none; margin: 8px 0; padding: 0; }
.rl-menu-list li { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; }
.rl-menu-list__name { font-weight: 600; color: var(--rl-green); }
.rl-menu-card--dark .rl-menu-list__name, .rl-dark .rl-split .rl-menu-list__name { color: var(--rl-white); }
.rl-menu-list__dots { flex: 1; border-bottom: 1px dashed currentColor; opacity: .3; transform: translateY(-4px); }
.rl-menu-list__price { font-weight: 700; color: var(--rl-orange); }
.e-con.rl-menu-card__foot { margin-top: auto; --gap: 12px; }
.rl-menu-card__hours .elementor-heading-title { font: 600 12px/1.4 var(--rl-font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--rl-muted); }
.rl-menu-card--dark .rl-menu-card__hours .elementor-heading-title, .rl-dark .rl-split .rl-menu-card__hours .elementor-heading-title { color: #f3a67c; }

.e-con.rl-live {
	grid-column: span 1; border-radius: var(--rl-radius); overflow: hidden;
	--padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; --gap: 10px;
	justify-content: flex-end; min-height: 280px;
}
.rl-live__title .elementor-heading-title { font: 600 1.6rem/1.15 var(--rl-font-head); color: var(--rl-white); }
.rl-live__text { font-size: 15px; color: rgba(255, 255, 255, 0.8); }
.rl-mini .elementor-icon-box-wrapper { display: flex; flex-direction: column; justify-content: flex-end; }

/* ---------- Adventures ---------- */
.e-con.rl-adventures { grid-auto-rows: minmax(230px, auto); }
.e-con.rl-adv-card {
	position: relative; border-radius: var(--rl-radius); overflow: hidden; min-height: 230px;
	--padding-top: 24px; --padding-bottom: 24px; --padding-left: 24px; --padding-right: 24px; --gap: 6px;
	justify-content: flex-end; transition: transform .25s;
}
.e-con.rl-adv-card:hover { transform: translateY(-3px); }
.e-con.rl-adv-card--feature { grid-row: span 2; min-height: 480px; }
.e-con.rl-adv-card--plain { background: linear-gradient(150deg, var(--rl-green-3), var(--rl-green)); }
.e-con.rl-adv-card--plain:nth-child(3) { background: linear-gradient(150deg, #2c6d80, #123f4d); }
.e-con.rl-adv-card--plain:nth-child(4) { background: linear-gradient(150deg, #d9793f, #9a4419); }
.e-con.rl-adv-card--plain:nth-child(5) { background: linear-gradient(150deg, #6b5237, #33261a); }
.rl-adv-card__icon { margin-bottom: auto !important; }
.rl-adv-card__icon .elementor-icon { font-size: 26px; color: rgba(255, 255, 255, 0.9); }
.rl-adv-card__icon .elementor-icon svg { fill: rgba(255, 255, 255, 0.9); width: 26px; height: 26px; }
.e-con .elementor-widget.rl-adv-card__icon, .rl-adv-card__icon .elementor-icon-wrapper { text-align: left; align-self: flex-start; width: auto; }
.rl-adv-card__tag .elementor-heading-title { font: 700 11px/1.3 var(--rl-font-body); letter-spacing: .2em; text-transform: uppercase; color: #f3c3a4; }
.rl-adv-card__title .elementor-heading-title { font: 600 1.5rem/1.15 var(--rl-font-head); color: var(--rl-white); }
.rl-adv-card--feature .rl-adv-card__title .elementor-heading-title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.rl-adv-card__text { color: rgba(255, 255, 255, 0.82); max-width: 420px; }
@media (max-width: 1024px) {
	.e-con.rl-adv-card--feature { grid-row: span 1; grid-column: 1 / -1; min-height: 360px; }
}

/* Adventure / package list cards (inner pages) */
.e-con.rl-adv-full {
	background: var(--rl-white); border-radius: var(--rl-radius); box-shadow: var(--rl-shadow-sm); overflow: hidden;
	--padding-top: 0; --padding-bottom: 26px; --padding-left: 0; --padding-right: 0; --gap: 10px;
}
.e-con.rl-adv-full > .elementor-widget:not(.rl-adv-full__img) { padding-left: 24px; padding-right: 24px; }
.rl-adv-full__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rl-adv-full__icon { padding-top: 26px !important; }
.e-con .elementor-widget.rl-adv-full__icon, .rl-adv-full__icon .elementor-icon-wrapper { text-align: left; align-self: flex-start; }
.rl-adv-full__icon .elementor-icon {
	display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 14px;
	background: rgba(226, 112, 58, 0.12); color: var(--rl-orange); font-size: 22px;
}
.rl-adv-full__icon .elementor-icon svg { width: 22px; height: 22px; fill: var(--rl-orange); }

/* ---------- CTA banner ---------- */
.e-con.rl-cta {
	background: linear-gradient(120deg, var(--rl-orange), #eb8c4f); border-radius: var(--rl-radius);
	--padding-top: 32px; --padding-bottom: 32px; --padding-left: 40px; --padding-right: 40px; --gap: 20px;
	color: var(--rl-white);
}
.e-con.rl-cta__copy { --gap: 4px; --width: auto; flex: 1 1 320px; }
.rl-cta__title .elementor-heading-title { font: 600 1.8rem/1.15 var(--rl-font-head); color: var(--rl-white); }
.rl-cta__text { color: rgba(255, 255, 255, 0.92); }
@media (max-width: 767px) { .e-con.rl-cta { --padding-left: 24px; --padding-right: 24px; } }

/* ---------- Gallery ---------- */
.rl-gallery .gallery { display: grid !important; grid-template-columns: repeat(var(--rl-cols, 4), 1fr); gap: 14px; margin: 0 !important; }
.rl-gallery .gallery-columns-3 { --rl-cols: 3; }
.rl-gallery .gallery-columns-2 { --rl-cols: 2; }
.rl-gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.rl-gallery .gallery-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--rl-radius-sm); border: 0 !important; transition: transform .4s, filter .3s; }
.rl-gallery .gallery-item a { display: block; overflow: hidden; border-radius: var(--rl-radius-sm); }
.rl-gallery .gallery-item a:hover img { transform: scale(1.05); filter: brightness(1.05); }
.rl-gallery .gallery > br { display: none; }
@media (max-width: 767px) {
	.rl-gallery .gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ---------- Reviews ---------- */
.rl-review .elementor-testimonial-wrapper {
	height: 100%; padding: 28px; border-radius: var(--rl-radius); background: var(--rl-white); box-shadow: var(--rl-shadow-sm); text-align: left;
}
.rl-review .elementor-testimonial-content { font: italic 400 1.05rem/1.6 var(--rl-font-head); color: var(--rl-ink); margin-bottom: 18px; }
.rl-review .elementor-testimonial-name { font-weight: 700; color: var(--rl-green); }
.rl-review .elementor-testimonial-job { font-size: 13px; color: var(--rl-muted); }

/* ---------- Instagram strip ---------- */
.e-con.rl-insta { margin-top: 12px; }
.rl-insta__img a, .rl-insta__img img { display: block; border-radius: var(--rl-radius-sm); overflow: hidden; }
.rl-insta__img img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .4s, opacity .3s; }
.rl-insta__img a:hover img { transform: scale(1.06); opacity: .9; }

/* ---------- Contact ---------- */
.e-con.rl-contact__info { --gap: 18px; }
.e-con.rl-form-card {
	background: var(--rl-white); border-radius: var(--rl-radius); box-shadow: var(--rl-shadow);
	--padding-top: 36px; --padding-bottom: 36px; --padding-left: 36px; --padding-right: 36px; --gap: 10px;
}
.rl-form-card__title .elementor-heading-title { font: 600 1.7rem/1.15 var(--rl-font-head); color: var(--rl-green); }
.rl-map iframe { border-radius: var(--rl-radius); filter: saturate(0.9); }
@media (max-width: 767px) { .e-con.rl-form-card { --padding-left: 22px; --padding-right: 22px; } }

/* ---------- Inner page banner ---------- */
.e-con.rl-banner { --padding-top: 130px; --padding-bottom: 110px; --gap: 12px; min-height: 380px; justify-content: flex-end; }
.e-con.rl-banner > .e-con-inner { justify-content: flex-end; }
.rl-banner__title .elementor-heading-title { font: 600 clamp(2.6rem, 6vw, 4.6rem)/1.05 var(--rl-font-head); color: var(--rl-white); }
.rl-banner__lead { max-width: 620px; color: rgba(255, 255, 255, 0.86); font-size: 1.1rem; }

/* ---------- Rooms page rows ---------- */
.e-con.rl-stack { --gap: 80px; --row-gap: 80px; }
.e-con.rl-room-row { align-items: center; }
.rl-room-row__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rl-radius); box-shadow: var(--rl-shadow); }
.e-con.rl-room-row__copy { --gap: 14px; }
.rl-checklist .elementor-icon-list-item { padding: 6px 0; color: var(--rl-ink); }
.rl-checklist .elementor-icon-list-icon i, .rl-checklist .elementor-icon-list-icon svg { color: var(--rl-orange); fill: var(--rl-orange); width: 16px; font-size: 15px; }
.e-con.rl-actions { --gap: 12px; --row-gap: 12px; --column-gap: 12px; margin-top: 8px; }
@media (max-width: 1024px) {
	.e-con.rl-room-row--flip > .rl-room-row__copy { order: 2; }
}
.e-con.rl-split { align-items: center; }
.rl-rounded-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rl-radius); box-shadow: var(--rl-shadow); }
.e-con.rl-menu-page__copy { --gap: 14px; }

/* ==========================================================================
   Elementor HEADER template
   ========================================================================== */
.e-con.rl-hdr-top {
	background: var(--rl-green); color: rgba(255, 255, 255, 0.85);
	--padding-top: 0; --padding-bottom: 0;
}
.e-con.rl-hdr-top__row { --padding-top: 8px; --padding-bottom: 8px; --padding-left: 0; --padding-right: 0; --gap: 16px; }
.rl-hdr-top__list .elementor-icon-list-items { gap: 4px 22px; }
.rl-hdr-top__list .elementor-icon-list-item { margin: 0 !important; font-size: 13px; }
.rl-hdr-top__list .elementor-icon-list-text, .rl-hdr-top__list a { color: rgba(255, 255, 255, 0.85); }
.rl-hdr-top__list a:hover .elementor-icon-list-text { color: var(--rl-white); }
.rl-hdr-top__list .elementor-icon-list-icon i, .rl-hdr-top__list .elementor-icon-list-icon svg { color: #f3a67c; fill: #f3a67c; font-size: 12px; width: 12px; }

.rl-social-icons .elementor-social-icons-wrapper { display: flex; gap: 8px; }
.rl-social-icons .elementor-social-icon {
	background: transparent; border: 1px solid rgba(255, 255, 255, 0.35); --icon-padding: 0.55em; font-size: 14px; transition: .2s; margin: 0 !important;
}
.rl-social-icons .elementor-social-icon i { color: var(--rl-white); }
.rl-social-icons .elementor-social-icon svg { fill: var(--rl-white); }
.rl-social-icons .elementor-social-icon:hover { background: var(--rl-orange); border-color: var(--rl-orange); }
.rl-social-icons--sm .elementor-social-icon { border: 0; font-size: 13px; --icon-padding: 0.4em; }

.e-con.rl-hdr-main { background: var(--rl-cream); --padding-top: 0; --padding-bottom: 0; }
.e-con.rl-hdr-main__row { --padding-top: 14px; --padding-bottom: 14px; --padding-left: 0; --padding-right: 0; --gap: 20px; min-height: var(--rl-header-h); }
.rl-hdr-logo img { max-height: 46px; width: auto; }
.elementor-widget.rl-hdr-nav { flex: 1 1 auto; width: auto; display: flex; justify-content: center; }
.rl-hdr-nav .elementor-shortcode { display: flex; justify-content: center; }
.elementor-widget.rl-hdr-cta .elementor-button { padding: 13px 24px; }

@media (max-width: 1024px) {
	.e-con.rl-hdr-top { display: none; }
	.elementor-widget.rl-hdr-nav { order: 3; flex: 0 0 auto; }
	.rl-hdr-logo img { max-height: 38px; }
}
@media (max-width: 480px) {
	.elementor-widget.rl-hdr-cta .elementor-button { padding: 11px 16px; font-size: 14px; }
	.rl-hdr-logo img { max-height: 32px; }
}

/* ==========================================================================
   Elementor FOOTER template
   ========================================================================== */
.e-con.rl-ftr { background: var(--rl-green); color: rgba(255, 255, 255, 0.75); --padding-top: 80px; --padding-bottom: 56px; }
.e-con.rl-ftr-grid { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.e-con.rl-ftr-col { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 14px; }
.rl-ftr-logo img { max-height: 54px; width: auto; }
.rl-ftr-logo .elementor-widget-container, .rl-ftr-logo { text-align: left; }
.rl-ftr-text { color: rgba(255, 255, 255, 0.72); font-size: 15px; }
.rl-ftr-title .elementor-heading-title { font: 700 13px/1.3 var(--rl-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--rl-white); }
.rl-ftr-links .elementor-icon-list-item { padding: 4px 0; }
.rl-ftr-links .elementor-icon-list-text { color: rgba(255, 255, 255, 0.78); font-size: 15px; transition: color .2s; }
.rl-ftr-links a:hover .elementor-icon-list-text { color: var(--rl-orange); }
.rl-ftr-links .elementor-icon-list-icon i, .rl-ftr-links .elementor-icon-list-icon svg { color: #f3a67c; fill: #f3a67c; font-size: 13px; width: 13px; }

.e-con.rl-ftr-bottom { background: var(--rl-green); --padding-top: 0; --padding-bottom: 0; }
.e-con.rl-ftr-bottom__row {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	--padding-top: 22px; --padding-bottom: 26px; --padding-left: 0; --padding-right: 0; --gap: 10px;
}
.rl-ftr-copy, .rl-ftr-credit { font-size: 14px; color: rgba(255, 255, 255, 0.65); }
.rl-ftr-copy a, .rl-ftr-credit a { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
.rl-ftr-copy a:hover { color: var(--rl-orange); }

/* Dark nav in footer context is not used; keep menu toggle visible on cream header. */
.rl-site-header .rl-nav__toggle { color: var(--rl-green); }

/* Stacked (mobile) rows: flex-basis must not turn into a height. */
@media (max-width: 767px) {
	.e-con.rl-section-head__main,
	.e-con .elementor-widget.rl-section-head__side,
	.e-con.rl-cta__copy { flex: 0 0 auto; max-width: none; }
	.e-con.rl-section-head { align-items: flex-start; }
	.rl-hero__title .elementor-heading-title { font-size: clamp(2.4rem, 11vw, 3.2rem); }
	.e-con.rl-hero { --padding-top: 80px; --padding-bottom: 120px; min-height: 0; }
	.rl-stat .elementor-counter-number-wrapper { font-size: 1.9rem; }
	.rl-stat .elementor-counter-title { font-size: 12px; }
}

/* ==========================================================================
   Rooms showcase carousel ("Discover our rooms")
   ========================================================================== */
.e-con.rl-rooms-showcase {
	--slide-w: min(48vw, 660px);
	--slide-h: clamp(360px, 32vw, 460px);
	--gap: 44px; --row-gap: 44px;
	--padding-left: 0; --padding-right: 0;
	overflow: hidden;
}
@media (max-width: 1024px) { .e-con.rl-rooms-showcase { --slide-w: 70vw; --slide-h: 420px; } }
@media (max-width: 767px)  { .e-con.rl-rooms-showcase { --slide-w: 84vw; --slide-h: 440px; --gap: 28px; --row-gap: 28px; } }

/* Heading row */
.e-con.e-flex.rl-showcase__head { --padding-top: 0; --padding-bottom: 0; --gap: 20px; }
.e-con.e-flex.rl-showcase__main, .e-con.e-flex.rl-showcase__label { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --width: auto; }
.e-con.e-flex.rl-showcase__main { --gap: 14px; }
.e-con.e-flex.rl-showcase__label { --gap: 18px; }
.rl-num-badge .elementor-heading-title {
	display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 50%;
	border: 1px solid var(--rl-green); outline: 1px dashed rgba(15, 61, 51, 0.45); outline-offset: 4px;
	font: 500 12px/1 var(--rl-font-body); letter-spacing: .08em; color: var(--rl-green);
}
.rl-showcase__eyebrow .elementor-heading-title { font: 600 11px/1.4 var(--rl-font-body); letter-spacing: .32em; text-transform: uppercase; color: var(--rl-green); }
.rl-showcase__title .elementor-heading-title { font: 400 clamp(2.4rem, 4.6vw, 3.9rem)/1.05 var(--rl-font-head); color: var(--rl-green); letter-spacing: -0.015em; }
.rl-carousel-counter .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; font: 500 12px/1 var(--rl-font-body); color: var(--rl-green); padding-bottom: 14px; }
.rl-carousel-counter b { font: 600 20px/1 var(--rl-font-body); color: var(--rl-orange); }
.rl-carousel-counter i { display: inline-block; width: 28px; height: 1px; background: currentColor; }

/* Track */
.rl-carousel { position: relative; width: 100%; }
.e-con.e-flex.rl-rooms-track {
	position: relative;
	--gap: 18px; --column-gap: 18px;
	--padding-top: 0; --padding-bottom: 0;
	--padding-left: calc((100% - var(--slide-w)) / 2);
	--padding-right: calc((100% - var(--slide-w)) / 2);
	padding-left: calc((100% - var(--slide-w)) / 2);
	padding-right: calc((100% - var(--slide-w)) / 2);
	overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	cursor: grab;
}
.e-con.e-flex.rl-rooms-track::-webkit-scrollbar { display: none; }
.e-con.e-flex.rl-rooms-track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.e-con.e-flex.rl-rooms-track.is-dragging .rl-room-slide { pointer-events: none; }

/* Slide */
.e-con.e-flex.rl-room-slide {
	--width: var(--slide-w); --flex-grow: 0; --flex-shrink: 0; --flex-basis: var(--slide-w);
	flex: 0 0 var(--slide-w); max-width: none; width: var(--slide-w); height: var(--slide-h); min-height: var(--slide-h);
	position: relative; overflow: hidden; border-radius: 6px;
	scroll-snap-align: center;
	--padding-top: 0; --padding-bottom: 0; --padding-left: 24px; --padding-right: 24px;
	justify-content: center; align-items: center; text-decoration: none; color: var(--rl-white);
	background-size: cover; background-position: center;
	transition: transform .5s ease, filter .5s ease;
}
.e-con.e-flex.rl-room-slide::after {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(8, 30, 25, 0.10) 0%, rgba(8, 30, 25, 0.30) 55%, rgba(8, 30, 25, 0.70) 100%);
	transition: background .4s;
}
.e-con.e-flex.rl-room-slide > * { position: relative; z-index: 1; }
.e-con.e-flex.rl-room-slide:not(.is-active) { filter: saturate(0.85) brightness(0.92); }
.e-con.e-flex.rl-room-slide:hover::after { background: linear-gradient(180deg, rgba(8, 30, 25, 0.05) 0%, rgba(8, 30, 25, 0.25) 55%, rgba(8, 30, 25, 0.65) 100%); }

.rl-room-slide__title .elementor-heading-title {
	font: 400 clamp(2rem, 3.6vw, 3.2rem)/1.05 var(--rl-font-head); color: var(--rl-white); text-align: center;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.25);
}

/* Round price badge */
.e-con.e-flex.rl-room-slide > .e-con.e-flex.rl-room-slide__badge {
	position: absolute; top: 26px; right: 26px; z-index: 2;
	width: 62px; height: 62px; border-radius: 50%; background: var(--rl-white);
	--width: 62px; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 2px;
	justify-content: center; align-items: center; box-shadow: 0 6px 20px -8px rgba(0, 0, 0, 0.4);
}
.rl-room-slide__from .elementor-heading-title { font: 700 8px/1 var(--rl-font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--rl-green); }
.rl-room-slide__price .elementor-heading-title { font: 700 15px/1 var(--rl-font-body); color: var(--rl-orange); }

/* Bottom details line */
.e-con.e-flex.rl-room-slide > .elementor-widget.rl-room-slide__meta {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; width: 100%; max-width: none;
	border-top: 1px solid rgba(255, 255, 255, 0.35); padding: 16px 20px;
}
.rl-room-slide__meta .elementor-heading-title { font: 700 10px/1.4 var(--rl-font-body); letter-spacing: .18em; color: var(--rl-white); text-align: center; }

/* Arrows (added by theme.js) */
.rl-carousel__btn {
	position: absolute; top: 50%; z-index: 5; transform: translateY(-50%);
	display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
	border: 0; background: rgba(255, 255, 255, 0.35); color: var(--rl-white);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	cursor: pointer; transition: background .2s, color .2s, transform .2s;
}
.rl-carousel__btn:hover, .rl-carousel__btn:focus-visible { background: var(--rl-white); color: var(--rl-green); }
.rl-carousel__btn--prev { left: calc(50% - var(--slide-w) / 2 - 80px); }
.rl-carousel__btn--next { right: calc(50% - var(--slide-w) / 2 - 80px); }
@media (max-width: 767px) {
	.rl-carousel__btn { width: 40px; height: 40px; }
	.rl-carousel__btn--prev { left: calc(50% - var(--slide-w) / 2 + 12px); }
	.rl-carousel__btn--next { right: calc(50% - var(--slide-w) / 2 + 12px); }
	.e-con.e-flex.rl-room-slide > .e-con.e-flex.rl-room-slide__badge { top: 16px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .e-con.e-flex.rl-rooms-track { scroll-behavior: auto; } }

/* No default Elementor widget spacing inside the slides */
.e-con.e-flex.rl-room-slide { --kit-widget-spacing: 0px; --widgets-spacing: 0px; }
.e-con.e-flex.rl-room-slide .elementor-widget { margin: 0; }
.e-con.e-flex.rl-room-slide__badge .elementor-heading-title { text-align: center; }

/* Price badge: FROM stacked tightly above the price (all screen sizes) */
.e-con.e-flex.rl-room-slide > .e-con.e-flex.rl-room-slide__badge {
	--flex-direction: column; flex-direction: column;
	--justify-content: center; justify-content: center;
	--align-items: center; align-items: center;
	--gap: 3px; --row-gap: 3px; gap: 3px;
}
.e-con.e-flex.rl-room-slide__badge > .elementor-widget { margin: 0 !important; width: auto; line-height: 1; }

/* "1 min" circle: keep its caption inside the circle */
.e-con.e-flex.rl-badge { overflow: hidden; }
.e-con.e-flex.rl-badge > .elementor-widget { width: 100%; max-width: 100%; margin: 0 !important; text-align: center; }
.rl-badge__small .elementor-heading-title { display: block; text-align: center; }

/* ==========================================================================
   Hero — full-screen slideshow, centred light serif title, glass booking pill
   ========================================================================== */
.e-con.e-flex.rl-hero2 {
	position: relative;
	/* Fill the screen below the header (main bar + top contact bar). */
	min-height: calc(100vh - var(--rl-header-h) - var(--rl-topbar-h, 0px));
	min-height: calc(100svh - var(--rl-header-h) - var(--rl-topbar-h, 0px));
	--padding-top: 56px; --padding-bottom: 140px; --padding-left: 24px; --padding-right: 24px;
	--gap: 22px; --row-gap: 22px;
	justify-content: center; align-items: center; text-align: center;
	overflow: hidden;
}
/* Extra shade at top and bottom so the text and the pill stay readable on any photo */
.e-con.e-flex.rl-hero2::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(180deg, rgba(6, 24, 19, 0.35) 0%, rgba(6, 24, 19, 0) 30%, rgba(6, 24, 19, 0) 60%, rgba(6, 24, 19, 0.55) 100%);
}
.e-con.e-flex.rl-hero2 > .elementor-widget { position: relative; z-index: 2; }

.rl-hero2__kicker .elementor-heading-title {
	font: 500 clamp(0.95rem, 1.3vw, 1.1rem)/1.5 var(--rl-font-body);
	color: rgba(255, 255, 255, 0.92); text-align: center; max-width: 760px; margin: 0 auto;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.3);
}
.rl-hero2__title .elementor-heading-title {
	font-family: var(--rl-font-head); font-weight: 300;
	font-size: clamp(3rem, min(7.4vw, 13vh), 7rem); line-height: 0.95; letter-spacing: -0.02em;
	color: var(--rl-white); text-align: center;
	text-shadow: 0 4px 30px rgba(0, 0, 0, 0.25);
}

/* Booking pill sits at the bottom of the hero */
.e-con.e-flex.rl-hero2 > .elementor-widget.rl-hero2__booking {
	position: absolute; left: 50%; bottom: 36px; transform: translateX(-50%);
	width: min(760px, calc(100% - 32px)); max-width: none;
}

.rl-booking--pill {
	display: flex; align-items: center; gap: 0; padding: 7px 7px 7px 10px;
	background: rgba(255, 255, 255, 0.10); border: 1px solid rgba(255, 255, 255, 0.55); border-radius: 999px;
	box-shadow: none; backdrop-filter: blur(10px) saturate(1.2); -webkit-backdrop-filter: blur(10px) saturate(1.2);
}
.rl-booking--pill .rl-booking__field {
	flex: 1 1 0; min-width: 0; position: relative; padding: 4px 18px; cursor: pointer;
}
.rl-booking--pill .rl-booking__field + .rl-booking__field::before {
	content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 1px; background: rgba(255, 255, 255, 0.45);
}
.rl-booking--pill .rl-booking__field span {
	display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 2px;
	font: 600 14px/1.2 var(--rl-font-body); letter-spacing: 0; text-transform: none; color: var(--rl-white);
}
.rl-booking--pill .rl-booking__chev { opacity: .8; flex-shrink: 0; }
.rl-booking--pill input,
.rl-booking--pill select {
	width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
	font: 400 12.5px/1.4 var(--rl-font-body); color: rgba(255, 255, 255, 0.78);
	color-scheme: dark; cursor: pointer; appearance: none; -webkit-appearance: none;
}
.rl-booking--pill input:focus, .rl-booking--pill select:focus { outline: none; box-shadow: none; border: 0; color: var(--rl-white); }
.rl-booking--pill select option { color: var(--rl-ink); }
.rl-booking--pill input::-webkit-calendar-picker-indicator { opacity: 0; position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.rl-booking--pill .rl-booking__field:focus-within span { color: #ffd9c2; }

.rl-booking__search {
	flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; margin-left: 8px;
	padding: 15px 30px; border: 0; border-radius: 999px; cursor: pointer;
	background: #e59a5c; color: var(--rl-white);
	font: 700 12px/1 var(--rl-font-body); letter-spacing: .16em; text-transform: uppercase;
	transition: background .2s, transform .2s;
}
.rl-booking__search:hover { background: var(--rl-orange); transform: translateY(-1px); }

@media (max-width: 767px) {
	.e-con.e-flex.rl-hero2 { --padding-top: 90px; --padding-bottom: 40px; min-height: calc(92svh - var(--rl-header-h)); }
	.e-con.e-flex.rl-hero2 > .elementor-widget.rl-hero2__booking {
		position: relative; left: auto; bottom: auto; transform: none; width: 100%; margin-top: 18px;
	}
	.rl-booking--pill { flex-wrap: wrap; border-radius: 22px; padding: 8px; }
	.rl-booking--pill .rl-booking__field { flex: 1 1 45%; padding: 10px 14px; }
	.rl-booking--pill .rl-booking__field:nth-child(3) { flex-basis: 100%; }
	.rl-booking--pill .rl-booking__field:nth-child(3)::before { display: none; }
	.rl-booking__search { flex: 1 1 100%; justify-content: center; margin: 6px 0 0; }
}
