/**
 * discover.css — Discover Sri Lanka (2.0 Phase 2): destination guides,
 * interactive map, trip planner and cost calculator. Loaded only on
 * those pages (see inc/discover-tags.php). Builds on v2.css tokens.
 */

/* ================= Destination guide ================= */
.ll-dest-hero.has-image {
	min-height: min(78vh, 700px);
}
.ll-travel-hero__sub {
	max-width: 760px;
	font-size: clamp(16px, 1.6vw, 19px);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
}
.ll-dest-hero__types {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 18px 0 0;
	padding: 0;
}
.ll-dest-hero__types a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	color: #fff;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	background: rgba(255, 255, 255, 0.08);
}
.ll-dest-hero__types a:hover {
	border-color: var(--ll-gold);
}
.ll-dest-hero:not(.has-image) .ll-dest-hero__types a {
	color: var(--ll-navy);
	border-color: var(--ll-border);
}
.ll-dest-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

/* Sticky in-page nav */
.ll-dnav {
	position: sticky;
	top: 0;
	z-index: 30;
	background: #fff;
	border-bottom: 1px solid var(--ll-border);
	box-shadow: 0 6px 18px rgba(11, 26, 51, 0.05);
}
body.admin-bar .ll-dnav {
	top: 32px;
}
@media (max-width: 782px) {
	body.admin-bar .ll-dnav {
		top: 0;
	}
}
.ll-dnav__list {
	list-style: none;
	display: flex;
	gap: 4px;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.ll-dnav__list::-webkit-scrollbar {
	display: none;
}
.ll-dnav__list a {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 0 14px;
	white-space: nowrap;
	color: var(--ll-navy);
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	border-bottom: 3px solid transparent;
}
.ll-dnav__list a:hover,
.ll-dnav__list a.is-active {
	border-bottom-color: var(--ll-gold);
}

.ll-dest-sec {
	padding: clamp(44px, 6vw, 80px) 0;
	scroll-margin-top: 64px;
}
.ll-dest-sec--alt {
	background: var(--ll-ivory);
}
.ll-dest-sec .ll-v2-section__head h2 {
	margin: 0;
}
.ll-dest-sec .ll-v2-section__head .ll-eyebrow {
	margin: 0;
}
.ll-dest-sub {
	font-family: var(--ll-font-display);
	font-size: clamp(20px, 2vw, 24px);
	margin: 32px 0 14px;
}

/* About + at a glance */
.ll-dest-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}
.ll-dest-about__main h2 {
	font-size: clamp(28px, 3.2vw, 40px);
	margin: 6px 0 18px;
}
.ll-dest-about__main .ll-travel-prose {
	font-size: 17px;
	line-height: 1.75;
}
.ll-dest-why {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.ll-dest-why li {
	position: relative;
	padding: 14px 16px 14px 44px;
	background: var(--ll-ivory);
	border-radius: 14px;
	line-height: 1.45;
}
.ll-dest-why li::before {
	content: '✦';
	position: absolute;
	left: 16px;
	top: 13px;
	color: var(--ll-gold-text);
}
.ll-dest-glance {
	position: sticky;
	top: 76px;
	background: #fff;
	border-radius: var(--ll-radius-lg);
	box-shadow: var(--ll-shadow-soft);
	padding: 24px;
	display: grid;
	gap: 12px;
}
.ll-dest-glance__title {
	font-family: var(--ll-font-display);
	font-size: 22px;
	font-weight: 700;
	margin: 0;
}
.ll-dest-glance dl {
	margin: 0;
	display: grid;
	gap: 12px;
}
.ll-dest-glance dt {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ll-muted);
	font-weight: 700;
}
.ll-dest-glance dd {
	margin: 2px 0 0;
	line-height: 1.45;
}
.ll-dest-stats {
	list-style: none;
	margin: 4px 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}
.ll-dest-stats a {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 10px;
	align-items: center;
	padding: 10px 12px;
	border-radius: 12px;
	background: var(--ll-ivory);
	color: var(--ll-navy);
	text-decoration: none;
	min-height: 44px;
}
.ll-dest-stats a:hover {
	background: #fff4cc;
}
.ll-dest-stats span {
	grid-row: span 2;
	font-size: 22px;
}
.ll-dest-stats strong {
	font-size: 18px;
	line-height: 1;
}
.ll-dest-stats small {
	font-size: 12px;
	color: var(--ll-muted);
}

/* Things to do */
.ll-todo-grid {
	list-style: none;
	counter-reset: todo;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}
.ll-todo-grid li {
	counter-increment: todo;
	position: relative;
	background: #fff;
	border-radius: 16px;
	padding: 52px 20px 20px;
	box-shadow: var(--ll-shadow-soft);
	line-height: 1.5;
	font-weight: 500;
}
.ll-todo-grid li::before {
	content: counter(todo, decimal-leading-zero);
	position: absolute;
	top: 16px;
	left: 20px;
	font-family: var(--ll-font-display);
	font-size: 22px;
	font-weight: 700;
	color: var(--ll-gold-text);
}

/* Food */
.ll-food-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
}
.ll-food-list li {
	background: var(--ll-ivory);
	border-radius: 16px;
	padding: 18px 20px;
	border-left: 4px solid var(--ll-gold);
	display: grid;
	gap: 4px;
}
.ll-food-list strong {
	font-size: 16px;
}
.ll-food-list span {
	color: var(--ll-muted);
	font-size: 14.5px;
	line-height: 1.45;
}

/* Best time */
.ll-months {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 6px;
}
.ll-months li {
	text-align: center;
	padding: 14px 0;
	border-radius: 10px;
	background: #fff;
	border: 1px solid var(--ll-border);
	font-weight: 700;
	font-size: 13px;
	color: var(--ll-muted);
}
.ll-months li.is-good {
	background: var(--ll-navy);
	border-color: var(--ll-navy);
	color: var(--ll-gold);
}
.ll-months__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin: 14px 0 0;
	font-size: 14px;
	color: var(--ll-muted);
}
.ll-months__legend span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.ll-months__dot {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 4px;
	background: #fff;
	border: 1px solid var(--ll-border);
}
.ll-months__dot.is-good {
	background: var(--ll-navy);
	border-color: var(--ll-navy);
}
.ll-dest-best {
	font-size: 18px;
	font-weight: 600;
	margin: 20px 0 6px;
}
.ll-dest-note {
	color: var(--ll-muted);
	margin: 0;
	font-size: 14.5px;
}

/* Maps (mini + full) */
.ll-mini-map,
.ll-map {
	position: relative;
	z-index: 0;
	border-radius: var(--ll-radius-lg);
	overflow: hidden;
	background: #dfe7ea;
	box-shadow: var(--ll-shadow-soft);
}
.ll-mini-map {
	height: clamp(320px, 48vw, 480px);
}
.ll-mini-map__links {
	margin: 12px 0 0;
}
.ll-map__error {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 24px;
	text-align: center;
	color: var(--ll-muted);
}
.leaflet-container {
	font-family: inherit;
}
.ll-pin {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	background: var(--ll-navy);
	border: 2px solid #fff;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}
.ll-pin > span {
	transform: rotate(45deg);
	font-size: 16px;
	line-height: 1;
}
.ll-pin--me {
	background: var(--ll-gold);
	width: 42px;
	height: 42px;
}
.ll-pin--me > span {
	font-size: 20px;
}
.ll-pin--item {
	width: 28px;
	height: 28px;
	background: #fff;
	border-color: var(--ll-navy);
}
.ll-pin--item > span {
	font-size: 14px;
}
.ll-pin--dim {
	opacity: 0.35;
}
.ll-pop {
	min-width: 200px;
	max-width: 260px;
	font-size: 14px;
	color: var(--ll-navy);
}
.ll-pop img {
	display: block;
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 10px;
	margin-bottom: 10px;
}
.ll-pop strong {
	display: block;
	font-family: var(--ll-font-display);
	font-size: 17px;
	margin-bottom: 4px;
}
.ll-pop small {
	display: block;
	color: var(--ll-muted);
	margin-bottom: 8px;
}
.ll-pop ul {
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.ll-pop li {
	background: var(--ll-ivory);
	border-radius: 999px;
	padding: 3px 9px;
	font-size: 12.5px;
}
.ll-pop a.ll-pop__cta {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	background: var(--ll-gold);
	color: #14213d;
	font-weight: 700;
	text-decoration: none;
}
.leaflet-popup-content-wrapper {
	border-radius: 16px;
}

/* Nearby */
.ll-nearby-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.ll-nearby-grid__item {
	position: relative;
	height: 300px;
}
.ll-nearby-grid__item .ll-dest-card {
	height: 100%;
}
.ll-nearby-grid__km {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	background: rgba(255, 255, 255, 0.92);
	color: var(--ll-navy);
	border-radius: 999px;
	padding: 4px 10px;
	font-size: 12.5px;
	font-weight: 700;
	pointer-events: none;
}
.ll-dest-refs {
	padding-top: 32px;
	padding-bottom: 32px;
}
.ll-dest-refs .ll-dest-sub {
	margin-top: 0;
}
.ll-dest-cta__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* Item pages: "Destination guides" chips (also styled in v2.css). */

@media (max-width: 1024px) {
	.ll-dest-about__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.ll-dest-glance {
		position: static;
	}
	.ll-nearby-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.ll-dest-why {
		grid-template-columns: minmax(0, 1fr);
	}
	.ll-months {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
	.ll-nearby-grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.ll-nearby-grid__item {
		height: 240px;
	}
	.ll-dest-hero__ctas .ll-btn {
		flex: 1 1 100%;
		justify-content: center;
	}
	.ll-dest-cta__btns .ll-btn {
		flex: 1 1 100%;
		justify-content: center;
	}
}

/* ================= Tool pages (map / planner / calculator) ================= */
.ll-tool-header {
	padding-bottom: clamp(56px, 7vw, 84px) !important;
}
.ll-tool-header .ll-breadcrumb,
.ll-tool-header .ll-breadcrumb a {
	color: rgba(255, 255, 255, 0.8);
}
.ll-catchip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 42px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1px solid var(--ll-border);
	background: #fff;
	color: var(--ll-navy);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}
.ll-catchip:hover {
	border-color: var(--ll-gold);
}
.ll-catchip[aria-pressed='true'],
.ll-catchip--check:has(input:checked) {
	background: var(--ll-navy);
	border-color: var(--ll-navy);
	color: #fff;
}
.ll-catchip--check input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.ll-catchip--check:focus-within {
	outline: 3px solid var(--ll-gold);
	outline-offset: 2px;
}

/* Map page */
.ll-mapapp {
	padding: 0 0 clamp(40px, 6vw, 72px);
}
.ll-mapapp__bar {
	position: relative;
	margin-top: -30px;
	background: #fff;
	border-radius: var(--ll-radius-lg);
	box-shadow: var(--ll-shadow-soft);
	padding: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
}
.ll-mapapp__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ll-mapapp__search input,
.ll-field input,
.ll-field select,
.ll-field textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 46px;
	border: 1px solid var(--ll-border);
	border-radius: 12px;
	padding: 10px 14px;
	font: inherit;
	font-size: 16px;
	background: #fff;
	color: var(--ll-navy);
}
.ll-mapapp__search {
	flex: 0 1 260px;
}
.ll-mapapp__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: 18px;
	margin-top: 18px;
}
.ll-mapapp__map {
	height: min(74vh, 720px);
	min-height: 420px;
}
.ll-mapapp__side {
	max-height: min(74vh, 720px);
	overflow: auto;
	background: #fff;
	border-radius: var(--ll-radius-lg);
	box-shadow: var(--ll-shadow-soft);
}
.ll-maplist {
	list-style: none;
	margin: 0;
	padding: 8px;
}
.ll-maplist__item {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 12px;
	align-items: center;
	width: 100%;
	padding: 8px;
	border: 0;
	background: none;
	border-radius: 12px;
	text-align: start;
	font: inherit;
	color: var(--ll-navy);
	cursor: pointer;
	min-height: 60px;
}
.ll-maplist__item:hover {
	background: var(--ll-ivory);
}
.ll-maplist__item img,
.ll-maplist__noimg {
	width: 64px;
	height: 48px;
	object-fit: cover;
	border-radius: 8px;
	background: var(--ll-ivory-2);
	display: block;
}
.ll-maplist__item strong {
	display: block;
	font-size: 15px;
}
.ll-maplist__item small {
	color: var(--ll-muted);
	font-size: 13px;
}
.ll-maplist__empty {
	padding: 18px;
	color: var(--ll-muted);
}
.ll-mapapp__note {
	color: var(--ll-muted);
	font-size: 13.5px;
	margin: 14px 0 0;
}
.ll-mapapp__content {
	margin-top: 32px;
}

/* Planner + calculator forms */
.ll-planner {
	padding: 0 0 clamp(48px, 6vw, 80px);
}
.ll-tool-form {
	position: relative;
	background: #fff;
	border-radius: var(--ll-radius-lg);
	box-shadow: var(--ll-shadow-soft);
	padding: clamp(18px, 3vw, 30px);
}
.ll-planner > .ll-container > .ll-tool-form:first-child,
.ll-calc__grid > .ll-tool-form {
	margin-top: -34px;
}
.ll-tool-form__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 14px;
}
.ll-field {
	display: grid;
	gap: 6px;
	font-weight: 600;
	font-size: 14px;
}
.ll-field--wide {
	grid-column: 1 / -1;
}
.ll-field input[type='range'] {
	padding: 0;
	min-height: 32px;
	accent-color: var(--ll-navy);
	border: 0;
}
.ll-field output {
	font-size: 20px;
	font-weight: 700;
}
.ll-interests {
	border: 0;
	margin: 18px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ll-interests legend {
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 8px;
	padding: 0;
}
.ll-catchip--check {
	position: relative;
}
.ll-tool-form > .ll-btn {
	margin-top: 20px;
}
.ll-tool-form__error {
	color: #b42318;
	font-weight: 600;
	margin: 14px 0 0;
}
.ll-tool-form__msg {
	margin: 14px 0 0;
	font-weight: 600;
}
.ll-tool-form__msg:empty {
	display: none;
}
.ll-tool-form__msg.is-ok {
	color: #067647;
}
.ll-tool-form__msg.is-error {
	color: #b42318;
}
.ll-hp {
	position: absolute !important;
	clip-path: inset(50%);
	white-space: nowrap;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.ll-consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 16px;
	font-size: 14.5px;
	line-height: 1.45;
}
.ll-consent input {
	width: 20px;
	height: 20px;
	margin-top: 1px;
	flex: none;
	accent-color: var(--ll-navy);
}

/* Planner result */
.ll-plan-result {
	margin-top: clamp(28px, 4vw, 48px);
}
.ll-plan-result__head {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 20px;
}
.ll-plan-result__head h2 {
	font-size: clamp(24px, 3vw, 36px);
	margin: 4px 0 12px;
}
.ll-plan-result__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ll-route {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 0;
	align-items: center;
	font-weight: 600;
	font-size: 14.5px;
}
.ll-route li {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.ll-route li + li::before {
	content: '→';
	color: var(--ll-gold-text);
	margin: 0 8px;
}
.ll-route a {
	color: var(--ll-navy);
}
.ll-route small {
	color: var(--ll-muted);
	font-weight: 500;
}
.ll-plan-result__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 22px;
	align-items: start;
}
.ll-plan-side {
	position: sticky;
	top: 80px;
	display: grid;
	gap: 16px;
}
.ll-plan-map {
	height: 320px;
}
.ll-plan-days {
	display: grid;
	gap: 14px;
}
.ll-day {
	background: #fff;
	border-radius: 18px;
	box-shadow: var(--ll-shadow-soft);
	padding: 18px 20px;
	border-left: 4px solid var(--ll-gold);
}
.ll-day header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 12px;
}
.ll-day__no {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ll-gold-text);
}
.ll-day h3 {
	margin: 0;
	font-family: var(--ll-font-display);
	font-size: 21px;
}
.ll-day h3 a {
	color: var(--ll-navy);
	text-decoration: none;
}
.ll-day__season {
	font-size: 12.5px;
	padding: 2px 10px;
	border-radius: 999px;
	background: #fff4e5;
	color: #8a4b00;
}
.ll-day__season.is-good {
	background: #e8f6ee;
	color: #067647;
}
.ll-day__drive,
.ll-day__stay,
.ll-day__free {
	margin: 10px 0 0;
	font-size: 14.5px;
	color: var(--ll-muted);
}
.ll-day__stay a {
	color: var(--ll-navy);
	font-weight: 600;
}
.ll-day__list {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.ll-day__item {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 12px;
	align-items: center;
}
.ll-day__item img,
.ll-day__icon {
	width: 56px;
	height: 42px;
	border-radius: 8px;
	object-fit: cover;
	background: var(--ll-ivory);
	display: grid;
	place-items: center;
	font-size: 18px;
}
.ll-day__item a {
	color: var(--ll-navy);
	font-weight: 600;
}
.ll-day__item small {
	display: block;
	color: var(--ll-muted);
	font-size: 12.5px;
}
.ll-plan-tours {
	margin-top: 28px;
}
.ll-plan-tours h3 {
	font-family: var(--ll-font-display);
	font-size: 22px;
}
.ll-plan-tours__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}
.ll-plan-tours__list a {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 12px;
	align-items: center;
	background: #fff;
	border-radius: 14px;
	box-shadow: var(--ll-shadow-soft);
	padding: 10px;
	color: var(--ll-navy);
	text-decoration: none;
}
.ll-plan-tours__list img {
	width: 80px;
	height: 60px;
	object-fit: cover;
	border-radius: 10px;
}
.ll-plan-tours__list small {
	display: block;
	color: var(--ll-muted);
}

/* Cost box */
.ll-costbox {
	background: var(--ll-navy);
	color: #fff;
	border-radius: var(--ll-radius-lg);
	padding: 22px;
	display: grid;
	gap: 8px;
}
.ll-costbox:empty {
	display: none;
}
.ll-costbox__title {
	margin: 0;
	font-family: var(--ll-font-display);
	font-size: 21px;
	color: var(--ll-gold);
}
.ll-costbox__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14.5px;
}
.ll-costbox__table th {
	text-align: start;
	font-weight: 500;
	padding: 8px 0;
	color: rgba(255, 255, 255, 0.85);
}
.ll-costbox__table td {
	text-align: end;
	font-weight: 700;
	padding: 8px 0;
}
.ll-costbox__table small {
	display: block;
	font-weight: 500;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.65);
}
.ll-costbox__table tbody tr {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.ll-costbox__table tfoot th,
.ll-costbox__table tfoot td {
	font-size: 18px;
	color: var(--ll-gold);
	padding-top: 12px;
}
.ll-costbox__range {
	margin: 0;
	font-size: 13.5px;
	color: rgba(255, 255, 255, 0.75);
}
.ll-costbox__pp {
	margin: 0;
	font-size: 15px;
}
.ll-costbox__note {
	margin: 4px 0 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.7);
}
.ll-costbox .ll-btn {
	margin-top: 8px;
}
.ll-calc__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 22px;
	align-items: start;
}
.ll-costbox--big {
	position: sticky;
	top: 80px;
}
.ll-enquiry {
	margin-top: clamp(36px, 5vw, 60px);
	scroll-margin-top: 80px;
}
.ll-enquiry h2 {
	font-size: clamp(24px, 3vw, 34px);
	margin: 0 0 6px;
}
.ll-enquiry > p {
	color: var(--ll-muted);
	margin: 0 0 18px;
	max-width: 680px;
}
.ll-planner__content {
	margin-top: 36px;
}

@media (max-width: 1024px) {
	.ll-mapapp__grid,
	.ll-plan-result__grid,
	.ll-calc__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.ll-mapapp__map {
		height: 62vh;
		min-height: 360px;
	}
	.ll-mapapp__side {
		max-height: none;
	}
	.ll-plan-side,
	.ll-costbox--big {
		position: static;
	}
	.ll-maplist {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	}
}
@media (max-width: 640px) {
	.ll-mapapp__chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		width: 100%;
		padding-bottom: 4px;
		scrollbar-width: none;
	}
	.ll-mapapp__search {
		flex: 1 1 100%;
	}
	.ll-tool-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ll-tool-form > .ll-btn {
		width: 100%;
		justify-content: center;
	}
	.ll-plan-result__actions .ll-btn {
		flex: 1 1 auto;
		justify-content: center;
	}
}
@media (max-width: 380px) {
	.ll-tool-form__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Print: just the itinerary */
@media print {
	.ll-header,
	.ll-footer,
	.ll-tool-form,
	.ll-enquiry,
	.ll-plan-result__actions,
	.ll-tool-header,
	.ll-plan-map {
		display: none !important;
	}
	.ll-plan-result__grid {
		grid-template-columns: 1fr;
	}
	.ll-day,
	.ll-costbox {
		box-shadow: none;
		break-inside: avoid;
	}
	.ll-costbox {
		background: #fff;
		color: #000;
		border: 1px solid #ccc;
	}
	.ll-costbox * {
		color: #000 !important;
	}
}
[dir='rtl'] .ll-route li + li::before,
.rtl .ll-route li + li::before {
	content: '←';
}

/* ================= Festivals & events ================= */
.ll-evcal {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
.ll-evcal__month {
	background: #fff;
	border-radius: 16px;
	padding: 16px 18px;
	box-shadow: var(--ll-shadow-soft);
	border-top: 4px solid var(--ll-border);
}
.ll-evcal__month.is-now {
	border-top-color: var(--ll-gold);
}
.ll-evcal__month h3 {
	margin: 0 0 8px;
	font-family: var(--ll-font-display);
	font-size: 19px;
}
.ll-evcal__month ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 6px;
}
.ll-evcal__month a {
	color: var(--ll-navy);
	font-weight: 600;
	font-size: 14.5px;
	line-height: 1.35;
	text-decoration: none;
	border-bottom: 1px solid var(--ll-border);
}
.ll-evcal__month a:hover {
	border-bottom-color: var(--ll-gold);
}
.ll-evcal__none {
	margin: 0;
	color: var(--ll-muted);
}
.ll-event-months .ll-months {
	margin-top: 4px;
}
.ll-event-months .ll-dest-note {
	margin-top: 10px;
}
@media (max-width: 1024px) {
	.ll-evcal {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 720px) {
	.ll-evcal {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 400px) {
	.ll-evcal {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ================= Hub pages (Food / Wildlife / Beaches / Transport) ================= */
.ll-hub__prose {
	max-width: 820px;
	font-size: 17px;
	line-height: 1.75;
}
.ll-hub__prose h2 {
	font-family: var(--ll-font-display);
	font-size: clamp(24px, 2.6vw, 32px);
	margin: 40px 0 12px;
}
.ll-hub__prose h2:first-child {
	margin-top: 0;
}
.ll-hub__prose h3 {
	font-size: 19px;
	margin: 26px 0 8px;
}
.ll-hub__prose ul {
	padding-left: 1.2em;
}
.ll-hub__prose li {
	margin: 6px 0;
}
.ll-foodmap {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 14px;
}
.ll-foodmap__card {
	background: #fff;
	border-radius: 16px;
	padding: 18px 20px;
	box-shadow: var(--ll-shadow-soft);
	border-top: 4px solid var(--ll-gold);
}
.ll-foodmap__card h3 {
	margin: 0;
	font-family: var(--ll-font-display);
	font-size: 20px;
}
.ll-foodmap__card h3 a {
	color: var(--ll-navy);
	text-decoration: none;
}
.ll-foodmap__region {
	margin: 2px 0 10px;
	font-size: 12.5px;
	color: var(--ll-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.ll-foodmap__card ul {
	margin: 0;
	padding-left: 1.1em;
	font-size: 14.5px;
	line-height: 1.5;
}
.ll-season {
	position: relative; /* contain the screen-reader-only labels inside the scroller */
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.ll-season__picker {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 14px;
}
.ll-season__picker .ll-catchip {
	min-height: 38px;
	padding: 0 12px;
}
.ll-season__table {
	width: 100%;
	min-width: 640px;
	border-collapse: separate;
	border-spacing: 3px;
	font-size: 14px;
}
.ll-season__table thead th {
	font-size: 12px;
	color: var(--ll-muted);
	font-weight: 700;
	text-align: center;
	padding: 4px 0;
}
.ll-season__table thead th:first-child {
	text-align: start;
}
.ll-season__table abbr {
	text-decoration: none;
}
.ll-season__table tbody th {
	text-align: start;
	font-weight: 700;
	padding: 6px 10px 6px 0;
	white-space: nowrap;
}
.ll-season__table tbody th a {
	color: var(--ll-navy);
	text-decoration: none;
}
.ll-season__table tbody th small {
	display: block;
	font-weight: 500;
	font-size: 12px;
	color: var(--ll-muted);
}
.ll-season__cell {
	height: 30px;
	border-radius: 6px;
	background: #fff;
	border: 1px solid var(--ll-border);
}
.ll-season__cell.is-good {
	background: var(--ll-navy);
	border-color: var(--ll-navy);
}
.ll-season .is-col {
	outline: 2px solid var(--ll-gold);
	outline-offset: -1px;
}
.ll-season thead .is-col {
	outline: none;
	color: var(--ll-navy);
}
.ll-season.is-selectable tbody tr:not(.is-in) th a {
	color: var(--ll-muted);
}
.ll-season__result {
	margin: 12px 0 0;
	font-weight: 700;
	font-size: 16px;
}
.ll-table-wrap {
	position: relative;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	background: #fff;
	border-radius: var(--ll-radius-lg);
	box-shadow: var(--ll-shadow-soft);
}
.ll-ttable {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}
.ll-ttable th,
.ll-ttable td {
	padding: 12px 16px;
	text-align: start;
	border-bottom: 1px solid var(--ll-border);
	vertical-align: top;
}
.ll-ttable thead th {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ll-muted);
}
.ll-ttable tbody th {
	width: 30%;
	min-width: 140px;
}
.ll-ttable tbody th a {
	color: var(--ll-navy);
	font-weight: 700;
	text-decoration: none;
}
.ll-ttable tbody th small {
	display: block;
	font-weight: 500;
	font-size: 12px;
	color: var(--ll-muted);
}
.ll-ttable tbody tr:last-child th,
.ll-ttable tbody tr:last-child td {
	border-bottom: 0;
}
