/**
 * main.css — loads on EVERY page (see class-lankalux-assets.php).
 * Keep this file light: it is the one CSS cost every Travel page
 * pays, so nothing astrology-specific belongs in here. Astro's own
 * dark navy/gold look lives entirely in astro.css, scoped under
 * body.ll-body--astro so it never leaks onto Tours/Hotels/Contact.
 */

:root {
	/* Shared brand tokens used by BOTH the light travel site and (as
	   overridden below) the dark Astro module, so the two feel like
	   one brand family rather than two unrelated sites. */
	--ll-gold: #ffd21c;
	--ll-gold-deep: #caa300;
	--ll-radius: 14px;
	--ll-radius-sm: 8px;
	--ll-font-sinhala: 'Noto Sans Sinhala', 'Noto Serif Sinhala', system-ui, sans-serif;
	--ll-font-body: 'Noto Sans Sinhala', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--ll-shadow: 0 10px 30px rgba(11, 20, 36, 0.12);

	/* Light (Travel) palette */
	--ll-bg: #ffffff;
	--ll-bg-alt: #f6f3ea;
	--ll-card: #ffffff;
	--ll-text: #16213a;
	--ll-muted: #5b6577;
	--ll-border: #e4e1d4;
}

body.ll-body {
	margin: 0;
	background: var(--ll-bg);
	color: var(--ll-text);
	font-family: var(--ll-font-body);
	line-height: 1.6;
}

.ll-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Visually hidden but available to screen readers. Uses clipping, not
   left:-9999px — an off-screen offset creates a horizontal scrollbar in
   right-to-left (Arabic) layouts. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	word-wrap: normal !important;
}

.ll-skip-link {
	position: absolute;
	left: 0;
	top: 0;
	transform: translateY(-120%);
	background: var(--ll-gold);
	color: #16213a;
	padding: 10px 16px;
	z-index: 1000;
	border-radius: 0 0 8px 0;
}
.ll-skip-link:focus {
	transform: none;
}

/* ---------------- Header ---------------- */
.ll-header {
	background: #ffffff;
	border-bottom: 1px solid var(--ll-border);
	position: sticky;
	top: 0;
	z-index: 100;
}
.ll-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 14px 20px;
	display: flex;
	align-items: center;
	gap: 20px;
}
.ll-header__brand {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	font-weight: 700;
	font-size: 19px;
	color: var(--ll-text);
	margin-right: auto;
}
.ll-header__logo-mark {
	color: var(--ll-gold-deep);
}
.ll-header__toggle {
	display: none;
	background: none;
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius-sm);
	padding: 8px;
	cursor: pointer;
}
.ll-header__toggle-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
	margin: 4px 0;
}
.ll-nav__list,
.ll-astro-nav__list,
.ll-footer-nav__list {
	list-style: none;
	display: flex;
	gap: 22px;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}
.ll-nav__list a,
.ll-astro-nav__list a {
	text-decoration: none;
	color: var(--ll-text);
	font-size: 15px;
	font-weight: 500;
}
.ll-nav__list a.is-astro {
	color: var(--ll-gold-deep);
	font-weight: 700;
}
.ll-header__right {
	display: flex;
	align-items: center;
	gap: 14px;
}
.ll-lang-switch {
	display: inline-flex;
	border: 1px solid var(--ll-border);
	border-radius: 999px;
	overflow: hidden;
}
/* Legacy one-button-per-language markup (kept for any custom template
   still rendering it — see language-runtime.js back-compat note). */
.ll-lang-switch__btn {
	border: none;
	background: transparent;
	padding: 6px 12px;
	font-size: 13px;
	cursor: pointer;
	color: var(--ll-muted);
}
.ll-lang-switch__btn.is-active {
	background: var(--ll-text);
	color: #fff;
}
.ll-body--astro .ll-lang-switch__btn.is-active {
	background: var(--ll-gold);
	color: #16213a;
}

/* Current markup: a native <select> dropdown (header.php). Scales to
   any number of enabled languages without the header row running out
   of space — si/en/ta/hi/de today, zh/ar/es addable purely via the
   admin's language list. */
.ll-lang-switch--select {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--ll-border);
	border-radius: 999px;
	background: transparent;
}
.ll-lang-switch__select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: none;
	background: transparent
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235b6577' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
		no-repeat right 12px center;
	padding: 6px 30px 6px 14px;
	font-size: 13px;
	font-family: inherit;
	color: var(--ll-muted);
	cursor: pointer;
	border-radius: 999px;
	max-width: 140px;
}
.ll-lang-switch__select:hover,
.ll-lang-switch__select:focus-visible {
	color: var(--ll-text);
}
.ll-lang-switch__select option {
	color: #16213a;
	background: #fff;
}
.ll-body--astro .ll-lang-switch--select {
	border-color: rgba(255, 210, 28, 0.35);
}
.ll-body--astro .ll-lang-switch__select {
	color: var(--ll-gold);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ffd21c' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
		no-repeat right 12px center;
}

/* ---------------- Buttons ---------------- */
.ll-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: var(--ll-radius-sm);
	text-decoration: none;
	font-weight: 700;
	font-size: 15px;
	border: none;
	cursor: pointer;
	transition: transform 0.12s ease, box-shadow 0.12s ease, opacity 0.12s ease;
}
.ll-btn:hover {
	transform: translateY(-1px);
}
.ll-btn--primary {
	background: var(--ll-text);
	color: #fff;
}
.ll-btn--gold {
	background: var(--ll-gold);
	color: #16213a;
}
.ll-btn--gold:hover {
	background: var(--ll-gold-deep);
}
.ll-btn--block {
	width: 100%;
}

/* ---------------- Travel homepage ---------------- */
/* Photo hero: full-bleed image, text on the left over a dark gradient
   (the photo's subject — Sigiriya and the traveller — sits centre/right). */
.ll-hero-travel {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: min(78vh, 720px);
	padding: 90px 0;
	background: #0b1424;
	color: #fff;
	overflow: hidden;
}
.ll-hero-travel__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.ll-hero-travel__media picture,
.ll-hero-travel__img {
	display: block;
	width: 100%;
	height: 100%;
}
.ll-hero-travel__img {
	object-fit: cover;
	object-position: 62% center;
}
.ll-hero-travel::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(11, 20, 36, 0.82) 0%, rgba(11, 20, 36, 0.55) 38%, rgba(11, 20, 36, 0.05) 70%),
		linear-gradient(0deg, rgba(11, 20, 36, 0.45) 0%, rgba(11, 20, 36, 0) 35%);
}
.ll-hero-travel__inner {
	width: 100%;
	box-sizing: border-box;
}
.ll-hero-travel__inner > * {
	max-width: 580px;
}
.ll-hero-travel .ll-eyebrow {
	color: var(--ll-gold);
}
.ll-hero-travel .ll-btn--gold {
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.25);
}
.ll-eyebrow {
	color: var(--ll-gold-deep);
	font-weight: 700;
	letter-spacing: 0.08em;
	font-size: 13px;
}
.ll-hero-travel h1 {
	font-size: clamp(34px, 5vw, 58px);
	line-height: 1.1;
	margin: 10px 0 18px;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.ll-hero-travel__sub {
	margin: 0 0 28px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 18px;
}
/* RTL (Arabic): text on the right, so mirror the gradient. */
[dir='rtl'] .ll-hero-travel::after {
	background:
		linear-gradient(270deg, rgba(11, 20, 36, 0.82) 0%, rgba(11, 20, 36, 0.55) 38%, rgba(11, 20, 36, 0.05) 70%),
		linear-gradient(0deg, rgba(11, 20, 36, 0.45) 0%, rgba(11, 20, 36, 0) 35%);
}
.ll-modules-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	padding-top: 60px;
	padding-bottom: 80px;
}
.ll-module-card {
	display: block;
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius);
	padding: 26px;
	text-decoration: none;
	color: var(--ll-text);
	background: #fff;
	box-shadow: var(--ll-shadow);
	transition: transform 0.15s ease;
}
.ll-module-card:hover {
	transform: translateY(-3px);
}
.ll-module-card h3 {
	margin: 0 0 8px;
}
.ll-module-card p {
	color: var(--ll-muted);
	margin: 0;
	font-size: 14px;
}
.ll-module-card--astro {
	background: #0b1424;
	color: #fff;
	border-color: #0b1424;
}
.ll-module-card--astro p {
	color: #aab6c8;
}

/* ---------------- Generic page/content ---------------- */
.ll-page__title,
.ll-single__header h1 {
	font-size: 34px;
}
.ll-post-card {
	padding: 20px 0;
	border-bottom: 1px solid var(--ll-border);
}
.ll-disclaimer {
	background: #fff8df;
	border-left: 4px solid var(--ll-gold-deep);
	padding: 14px 16px;
	border-radius: 4px;
	font-size: 14px;
	color: #5b4a37;
	margin: 20px 0;
}
.ll-hela-page__header {
	padding: 50px 0 20px;
	text-align: center;
}
.ll-content-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	padding-bottom: 60px;
}

/* ---------------- CPT archive/single: Tours, Hotels, Experiences, Hela ---------------- */
.ll-empty-state {
	text-align: center;
	padding: 60px 20px;
	color: var(--ll-muted);
}
.ll-empty-state__si {
	font-size: 18px;
	color: var(--ll-text);
	margin-bottom: 6px;
}
.ll-cpt-card {
	overflow: hidden;
	padding: 0;
}
.ll-cpt-card__thumb img {
	width: 100%;
	height: 160px;
	object-fit: cover;
}
.ll-cpt-card h3,
.ll-cpt-card p {
	padding-left: 20px;
	padding-right: 20px;
}
.ll-cpt-card h3 {
	margin-top: 16px;
}
.ll-cpt-card__meta {
	color: var(--ll-gold-deep);
	font-size: 13px;
	margin: 0 0 6px !important;
}
.ll-cpt-card__price {
	font-weight: 700;
	margin-bottom: 16px !important;
}
.ll-single__thumb img {
	width: 100%;
	border-radius: var(--ll-radius);
	margin: 16px 0;
}
.ll-cpt-meta-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 14px;
	margin: 24px 0;
	padding: 18px;
	background: var(--ll-bg-alt);
	border-radius: var(--ll-radius);
}
.ll-cpt-meta-item {
	display: flex;
	flex-direction: column;
	font-size: 14px;
}
.ll-cpt-meta-item__label {
	font-size: 12px;
	color: var(--ll-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ll-cpt-list {
	padding-left: 20px;
}
.ll-cpt-itinerary {
	line-height: 1.7;
}
.ll-cpt-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
	margin: 20px 0;
}
.ll-cpt-gallery img {
	width: 100%;
	height: 110px;
	object-fit: cover;
	border-radius: 8px;
}
.ll-cpt-ctas {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin: 20px 0;
}
.ll-single__video a {
	color: var(--ll-gold-deep);
	font-weight: 700;
}

/* ---------------- Footer ---------------- */
.ll-footer {
	background: #101827;
	color: #cfd6e4;
	margin-top: 40px;
}
.ll-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	justify-content: space-between;
}
.ll-footer__brand strong {
	color: #fff;
	font-size: 18px;
}
.ll-footer-nav__list a {
	color: #cfd6e4;
	text-decoration: none;
}
.ll-footer__bottom {
	text-align: center;
	font-size: 12.5px;
	padding: 14px 20px 24px;
	color: #7f8ba0;
}

/* ---------------- Right-to-left (Arabic) ----------------
   The plugin sets WordPress's text direction to RTL for Arabic, so
   <html dir="rtl"> is emitted. Flex/grid layouts mirror on their own;
   these are the few rules that use physical left/right. */
[dir='rtl'] .ll-header__brand {
	margin-right: 0;
	margin-left: auto;
}
[dir='rtl'] .ll-skip-link {
	left: auto;
	right: 0;
	border-radius: 0 0 0 8px;
}
[dir='rtl'] .ll-lang-switch__select {
	padding: 6px 14px 6px 30px;
	background-position: left 12px center;
}
[dir='rtl'] .ll-disclaimer {
	border-left: none;
	border-right: 4px solid var(--ll-gold-deep);
}
[dir='rtl'] .ll-cpt-list {
	padding-left: 0;
	padding-right: 20px;
}

/* =====================================================================
   Tours / Hotels / Experiences — cards, filters, archives, singles,
   homepage featured sections. Same tokens as the rest of the travel
   site (gold/navy, 14px radius, soft shadow) so it reads as one brand.
   ===================================================================== */

.ll-btn--ghost {
	background: transparent;
	color: var(--ll-text);
	box-shadow: inset 0 0 0 1px var(--ll-border);
}
.ll-btn--ghost:hover {
	box-shadow: inset 0 0 0 1px var(--ll-gold-deep);
}

/* ---- Card grid + card ---- */
.ll-travel-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.ll-travel-card {
	height: 100%;
}
.ll-travel-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--ll-card);
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius);
	box-shadow: var(--ll-shadow);
	overflow: hidden;
	text-decoration: none;
	color: var(--ll-text);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.ll-travel-card__link:hover,
.ll-travel-card__link:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 16px 36px rgba(11, 20, 36, 0.16);
}
.ll-travel-card__link:focus-visible {
	outline: 2px solid var(--ll-gold-deep);
	outline-offset: 2px;
}
.ll-travel-card__media {
	position: relative;
	aspect-ratio: 16 / 11;
	background: linear-gradient(135deg, #0b1424, #1d2c48);
	overflow: hidden;
}
.ll-travel-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}
.ll-travel-card__link:hover .ll-travel-card__img {
	transform: scale(1.04);
}
.ll-travel-card__placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 42px;
	color: var(--ll-gold);
}
.ll-travel-card__badge,
.ll-travel-card__chip {
	position: absolute;
	top: 12px;
	font-size: 12px;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 999px;
	line-height: 1.4;
}
.ll-travel-card__badge {
	left: 12px;
	background: var(--ll-gold);
	color: #16213a;
}
.ll-travel-card__chip {
	right: 12px;
	background: rgba(11, 20, 36, 0.78);
	color: #fff;
	font-weight: 500;
}
.ll-travel-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 18px 20px 20px;
}
.ll-travel-card__location {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ll-gold-deep);
}
.ll-travel-card__title {
	margin: 0 0 8px;
	font-size: 19px;
	line-height: 1.3;
}
.ll-travel-card__excerpt {
	margin: 0 0 12px;
	color: var(--ll-muted);
	font-size: 14px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ll-travel-card__facts {
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.ll-travel-card__facts li {
	font-size: 12.5px;
	background: var(--ll-bg-alt);
	border-radius: 999px;
	padding: 3px 10px;
}
.ll-travel-card__footer {
	margin-top: auto;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 10px;
	padding-top: 12px;
	border-top: 1px solid var(--ll-border);
}
.ll-travel-card__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px;
}
.ll-travel-card__price strong {
	font-size: 18px;
}
.ll-travel-card__price small,
.ll-travel-card__price--ask {
	color: var(--ll-muted);
	font-size: 12.5px;
}
.ll-travel-card__cta {
	font-weight: 700;
	font-size: 14px;
	color: var(--ll-gold-deep);
	white-space: nowrap;
}

/* ---- Archive ---- */
.ll-travel-archive__header {
	background: linear-gradient(180deg, var(--ll-bg-alt), #fff);
	padding: 56px 0 34px;
	text-align: center;
}
.ll-travel-archive__header h1 {
	font-size: clamp(30px, 4.5vw, 46px);
	margin: 8px 0 10px;
}
.ll-travel-archive__sub {
	color: var(--ll-muted);
	margin: 0 auto;
	max-width: 620px;
}
.ll-travel-archive__body {
	padding-bottom: 70px;
}

/* ---- Filters ---- */
.ll-filters {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 14px;
	align-items: end;
	margin: -22px 0 10px;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius);
	box-shadow: var(--ll-shadow);
	position: relative;
}
.ll-filters__field label,
.ll-filters__label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ll-muted);
	margin-bottom: 6px;
}
.ll-filters select,
.ll-filters input[type='number'] {
	width: 100%;
	min-height: 42px;
	padding: 8px 10px;
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius-sm);
	background: #fff;
	color: var(--ll-text);
	font: inherit;
	font-size: 14px;
	box-sizing: border-box;
}
.ll-filters select:focus,
.ll-filters input:focus {
	outline: 2px solid var(--ll-gold);
	outline-offset: 1px;
}
.ll-filters__range {
	display: flex;
	align-items: center;
	gap: 6px;
}
.ll-filters__actions {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ll-filters__actions .ll-btn {
	min-height: 42px;
	flex: 1;
}
.ll-filters__reset {
	color: var(--ll-muted);
	font-size: 14px;
}
.ll-filters__count {
	color: var(--ll-muted);
	font-size: 14px;
	margin: 0 0 18px;
}

/* ---- Pagination ---- */
.ll-pagination {
	margin-top: 34px;
}
.ll-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.ll-pagination .page-numbers {
	min-width: 40px;
	padding: 8px 12px;
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius-sm);
	text-align: center;
	text-decoration: none;
	color: var(--ll-text);
}
.ll-pagination .page-numbers.current {
	background: var(--ll-gold);
	border-color: var(--ll-gold);
	font-weight: 700;
}

/* ---- Homepage featured ---- */
.ll-featured {
	padding: 10px 0 60px;
}
.ll-featured:nth-of-type(even) {
	background: var(--ll-bg-alt);
	padding-top: 50px;
}
.ll-featured__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}
.ll-featured__header h2 {
	margin: 4px 0 0;
	font-size: clamp(24px, 3vw, 32px);
}
.ll-featured__all {
	font-weight: 700;
	color: var(--ll-gold-deep);
	text-decoration: none;
	white-space: nowrap;
}

/* ---- Single ---- */
.ll-travel-hero {
	position: relative;
	padding: 70px 0 56px;
	background: linear-gradient(180deg, var(--ll-bg-alt), #fff);
}
.ll-travel-hero.has-image {
	padding: 150px 0 56px;
	color: #fff;
	background: linear-gradient(180deg, rgba(11, 20, 36, 0.15) 0%, rgba(11, 20, 36, 0.82) 100%), var(--ll-hero-img) center / cover no-repeat, #0b1424;
}
.ll-travel-hero__title {
	font-size: clamp(30px, 5vw, 50px);
	line-height: 1.15;
	margin: 6px 0 12px;
	max-width: 860px;
}
.ll-travel-hero__sub {
	max-width: 720px;
	font-size: 17px;
	margin: 0;
	opacity: 0.92;
}
.ll-travel-hero.has-image .ll-eyebrow {
	color: var(--ll-gold);
}
.ll-travel-hero__badge {
	display: inline-block;
	margin-left: 8px;
	background: var(--ll-gold);
	color: #16213a;
	border-radius: 999px;
	padding: 2px 10px;
	font-size: 12px;
}
.ll-breadcrumb {
	font-size: 13px;
	margin-bottom: 14px;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.ll-breadcrumb a {
	color: inherit;
	opacity: 0.8;
}
.ll-travel-single__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 40px;
	padding-top: 40px;
	padding-bottom: 40px;
	align-items: start;
}
.ll-travel-section {
	margin-bottom: 36px;
}
.ll-travel-section h2 {
	font-size: 22px;
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--ll-gold);
	display: inline-block;
}
.ll-travel-prose {
	line-height: 1.75;
}
.ll-travel-prose img {
	max-width: 100%;
	height: auto;
}
.ll-travel-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.ll-travel-list li {
	position: relative;
	padding-left: 26px;
}
.ll-travel-list li::before {
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 700;
}
.ll-travel-list--star li::before {
	content: '✦';
	color: var(--ll-gold-deep);
}
.ll-travel-list--check li::before {
	content: '✓';
	color: #1f8a4c;
}
.ll-travel-list--cross li::before {
	content: '✕';
	color: #b3261e;
}
.ll-travel-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.ll-travel-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 10px;
}
.ll-travel-gallery img {
	width: 100%;
	height: 150px;
	object-fit: cover;
	border-radius: var(--ll-radius-sm);
	display: block;
}
.ll-travel-map {
	border-radius: var(--ll-radius);
	overflow: hidden;
	border: 1px solid var(--ll-border);
	aspect-ratio: 16 / 9;
}
.ll-travel-map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.ll-travel-map__link {
	color: var(--ll-gold-deep);
	font-weight: 700;
}
.ll-booking-box {
	position: sticky;
	top: 90px;
	background: #fff;
	border: 1px solid var(--ll-border);
	border-radius: var(--ll-radius);
	box-shadow: var(--ll-shadow);
	padding: 22px;
}
.ll-booking-box__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ll-border);
}
.ll-booking-box__price strong {
	font-size: 26px;
}
.ll-booking-box__price small {
	color: var(--ll-muted);
}
.ll-booking-box__facts {
	margin: 0 0 18px;
	display: grid;
	gap: 10px;
}
.ll-booking-box__facts div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
}
.ll-booking-box__facts dt {
	color: var(--ll-muted);
}
.ll-booking-box__facts dd {
	margin: 0;
	text-align: right;
	font-weight: 600;
}
.ll-booking-box__ctas {
	display: grid;
	gap: 10px;
}
.ll-booking-box__ctas .ll-btn,
.ll-filters .ll-btn {
	box-sizing: border-box;
	width: 100%;
	text-align: center;
}
.ll-related {
	background: var(--ll-bg-alt);
	padding: 44px 0 60px;
}
.ll-related h2 {
	margin-top: 0;
}

/* RTL (Arabic) mirror for the travel components. */
[dir='rtl'] .ll-travel-card__badge {
	left: auto;
	right: 12px;
}
[dir='rtl'] .ll-travel-card__chip {
	right: auto;
	left: 12px;
}
/* :dir() follows each item's own direction (items carry dir="auto"),
   so an English bullet inside an Arabic page keeps its LTR layout. */
.ll-travel-list li:dir(rtl) {
	padding-left: 0;
	padding-right: 26px;
}
.ll-travel-list li:dir(rtl)::before {
	left: auto;
	right: 0;
}
[dir='rtl'] .ll-booking-box__facts dd {
	text-align: left;
}
[dir='rtl'] .ll-travel-hero__badge {
	margin-left: 0;
	margin-right: 8px;
}

/* ---- Hela Wellness / Hela Heritage additions (1.4.0) ---- */
.ll-travel-card__badge--extra {
	background: #0b1424;
	color: var(--ll-gold);
	border: 1px solid rgba(255, 210, 28, 0.6);
}
.ll-travel-card__badge--extra.is-stacked {
	top: 46px;
}
.ll-booking-box__title {
	margin: 0 0 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--ll-border);
	font-weight: 700;
	font-size: 18px;
}
.ll-travel-list--ref li {
	font-size: 14px;
	color: var(--ll-muted);
}
.ll-travel-list--ref li::before {
	content: '§';
	color: var(--ll-gold-deep);
}
.ll-travel-video iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: var(--ll-radius);
}
.ll-travel-archive__notice {
	margin: -8px 0 30px;
}
.ll-travel-archive__notice + .ll-filters {
	margin-top: 0;
}
.ll-travel-single__notice {
	margin-bottom: 28px;
}

/* 1.19.1 — Ceylon Web Studio footer ad (works on every footer: travel and Astro) */
.ll-cws { padding: 22px 20px 0; }
.ll-cws__in { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; padding: 16px 20px; border-radius: 16px; background: linear-gradient(120deg, #1c2a55 0%, #2b2366 55%, #3a2b6f 100%); border: 1px solid rgba(255, 210, 28, .35); box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .5); color: #e9edf6; }
.ll-cws__copy { display: flex; flex-direction: column; gap: 4px; min-width: 0; text-align: left; font-family: "Noto Sans Sinhala", system-ui, sans-serif; }
.ll-cws__kicker { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: #ffd21c; }
.ll-cws__title { font-size: 17px; line-height: 1.4; color: #fff; }
.ll-cws__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ll-cws__chip { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; background: rgba(255, 255, 255, .1); color: #fff; border: 1px solid rgba(255, 255, 255, .18); }
.ll-cws__chip--hot { background: #ffd21c; color: #1b1f3a; border-color: #ffd21c; }
.ll-cws__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ll-footer .ll-cws__btn, .ll-cws__btn { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; background: #ffd21c; color: #1b1f3a !important; font-weight: 700; font-size: 14.5px; text-decoration: none !important; white-space: nowrap; }
.ll-footer .ll-cws__wa, .ll-cws__wa { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .35); color: #fff !important; font-weight: 600; font-size: 14px; text-decoration: none !important; }
.ll-cws__btn:hover, .ll-cws__wa:hover { filter: brightness(1.08); }
@media (max-width: 600px) { .ll-cws { padding: 18px 16px 0; } .ll-cws__actions { width: 100%; } .ll-cws__btn { flex: 1 1 auto; justify-content: center; } }
@media print { .ll-cws { display: none !important; } }
