/*
 * Hela Lanka Tours — front end.
 * Uses the Hela Lanka theme colours when present (--hl-*), with fallbacks so
 * the plugin also looks right with other themes.
 */
.hlt {
	--hlt-navy: var(--hl-navy, #0b1f3a);
	--hlt-ink: var(--hl-ink, #0f1b2d);
	--hlt-text: var(--hl-text, #475467);
	--hlt-muted: var(--hl-muted, #5d6b82);
	--hlt-border: var(--hl-border, #e4e8ef);
	--hlt-sky: var(--hl-sky, #eef5fc);
	--hlt-blue: var(--hl-blue, #1b4f9c);
	--hlt-green: var(--hl-green, #15803d);
	--hlt-green-700: var(--hl-green-700, #166534);
	--hlt-green-50: var(--hl-green-50, #ecfdf3);
	--hlt-red: #b42318;
	--hlt-amber: #f59e0b;
	--hlt-radius: 12px;
	--hlt-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 16px rgba(16, 24, 40, .06);
	color: var(--hlt-text);
	line-height: 1.6;
}
.hlt *, .hlt *::before, .hlt *::after { box-sizing: border-box; }
.hlt h1, .hlt h2, .hlt h3, .hlt h4 { color: var(--hlt-ink); line-height: 1.25; margin: 0; }
.hlt p { margin: 0 0 .75em; }
.hlt ul, .hlt ol { margin: 0; padding: 0; list-style: none; }
.hlt img { max-width: 100%; height: auto; display: block; }
:where(.hlt) a { color: var(--hlt-blue); }
.hlt .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.hlt-icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; vertical-align: -.2em; }
.hlt-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.hlt :focus-visible { outline: 3px solid var(--hlt-blue); outline-offset: 2px; }

/* Buttons & links */
.hlt-btn { display: inline-flex; align-items: center; justify-content: center; gap: .45em; padding: .72em 1.25em; border-radius: 8px; border: 1.5px solid transparent; font: inherit; font-weight: 600; font-size: .95rem; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.hlt-btn--primary { background: var(--hlt-green); color: #fff; }
.hlt-btn--primary:hover { background: var(--hlt-green-700); color: #fff; }
.hlt-btn--whatsapp { background: var(--hlt-green); color: #fff; font-size: 1rem; padding: .9em 1.25em; }
.hlt-btn--whatsapp:hover { background: var(--hlt-green-700); color: #fff; }
.hlt-btn--outline { border-color: var(--hlt-green); color: var(--hlt-green); background: #fff; }
.hlt-btn--outline:hover { background: var(--hlt-green-50); color: var(--hlt-green-700); }
.hlt-btn--ghost { background: transparent; color: var(--hlt-ink); border-color: var(--hlt-border); }
.hlt-btn--ghost:hover { background: var(--hlt-sky); }
.hlt-btn--sm { padding: .55em .95em; font-size: .875rem; }
.hlt-btn--block { display: flex; width: 100%; }
.hlt-link { display: inline-flex; align-items: center; gap: .25em; font-weight: 600; text-decoration: none; color: var(--hlt-blue); }
.hlt-link:hover { text-decoration: underline; }

/* Breadcrumbs */
.hlt-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .35em; font-size: .875rem; }
.hlt-breadcrumbs li + li::before { content: "›"; margin-right: .35em; opacity: .7; }
.hlt-breadcrumbs a { color: inherit; text-decoration: none; }
.hlt-breadcrumbs a:hover { text-decoration: underline; }
.hlt-single .hlt-breadcrumbs { color: var(--hlt-muted); padding: 20px 0 12px; }

/* Badges & chips */
.hlt-badge { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--hlt-green); color: #fff; font-size: .75rem; font-weight: 700; padding: .3em .7em; border-radius: 999px; letter-spacing: .01em; }
.hlt-badge--lg { font-size: .85rem; top: 16px; left: 16px; padding: .35em .9em; }
.hlt-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.hlt-chips li { display: inline-flex; align-items: center; gap: .35em; padding: .3em .75em; border-radius: 999px; background: var(--hlt-sky); color: var(--hlt-blue); font-size: .85rem; font-weight: 500; }
.hlt-chip { display: inline-flex; align-items: center; gap: .35em; padding: .3em .7em; border-radius: 6px; background: #f2f4f7; color: var(--hlt-ink); font-size: .8rem; }
.hlt-chip .hlt-icon { color: var(--hlt-green); }
.hlt-chip--hotel { background: var(--hlt-sky); }
.hlt-chip--meals { background: #fff7e6; }

/* ---------- Listing: hero ---------- */
.hlt-hero { position: relative; color: #fff; padding: 36px 0 84px; background: linear-gradient(120deg, var(--hlt-navy), #123766 60%, #17507a); overflow: hidden; }
.hlt-hero--image { background: linear-gradient(90deg, rgba(11, 31, 58, .88), rgba(11, 31, 58, .55) 60%, rgba(11, 31, 58, .25)), var(--hlt-hero) center / cover no-repeat; }
.hlt-hero .hlt-breadcrumbs { color: rgba(255, 255, 255, .85); margin-bottom: 18px; }
.hlt-hero__title { color: #fff !important; font-size: clamp(1.9rem, 4vw, 2.9rem); font-weight: 700; margin-bottom: 12px !important; }
.hlt-hero__intro { max-width: 640px; font-size: 1.05rem; color: rgba(255, 255, 255, .9); }
.hlt-trust { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 20px !important; }
.hlt-trust li { display: inline-flex; align-items: center; gap: .55em; font-weight: 600; font-size: .95rem; }
.hlt-trust__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #fff; color: var(--hlt-green); }

/* Search bar */
.hlt-search { position: relative; z-index: 3; display: grid; grid-template-columns: 1.3fr 1fr 1fr auto; gap: 14px; align-items: end; background: #fff; border-radius: var(--hlt-radius); box-shadow: 0 10px 30px rgba(16, 24, 40, .12); padding: 18px; }
.hlt-listing .hlt-search { margin-top: -50px; }
.hlt-search__field label { display: flex; align-items: center; gap: .4em; font-size: .82rem; font-weight: 600; color: var(--hlt-ink); margin-bottom: 6px; }
.hlt-search__field label .hlt-icon { color: var(--hlt-green); }
.hlt-search select, .hlt-search input, .hlt-sort select, .hlt-book__fields input {
	width: 100%; min-height: 46px; padding: .6em .8em; border: 1px solid var(--hlt-border); border-radius: 8px; background: #fff; color: var(--hlt-ink); font: inherit; font-size: .95rem;
}
.hlt-search__submit { min-height: 46px; padding-inline: 1.6em; }

/* Listing body */
.hlt-listing__body { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 28px; padding-top: 28px; padding-bottom: 48px; align-items: start; }
.hlt-filters__box { background: #fff; border: 1px solid var(--hlt-border); border-radius: var(--hlt-radius); padding: 6px 18px 18px; position: sticky; top: 16px; }
.hlt-filters__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; cursor: pointer; list-style: none; }
.hlt-filters__head::-webkit-details-marker { display: none; }
.hlt-filters__title { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; color: var(--hlt-ink); font-size: 1.05rem; }
.hlt-filters__chev { display: none; transition: transform .2s; }
.hlt-filter { border: 0; border-top: 1px solid var(--hlt-border); margin: 0; padding: 14px 0 6px; min-width: 0; }
.hlt-filter legend { float: left; width: 100%; font-weight: 700; color: var(--hlt-ink); margin-bottom: 8px; font-size: .95rem; padding: 0; }
.hlt-filter legend + * { clear: both; }
.hlt-check { display: flex; align-items: center; gap: .55em; padding: 5px 0; cursor: pointer; font-size: .92rem; }
.hlt-check input { width: 18px; height: 18px; accent-color: var(--hlt-green); margin: 0; flex: 0 0 auto; }
.hlt-check__label { flex: 1; color: var(--hlt-ink); }
.hlt-check__count { color: var(--hlt-muted); font-size: .85rem; }
.hlt-range { width: 100%; accent-color: var(--hlt-green); }
.hlt-range__out { display: flex; justify-content: space-between; font-size: .85rem; color: var(--hlt-muted); margin: 4px 0 0 !important; }
.hlt-range__out output { color: var(--hlt-ink); font-weight: 600; }
.hlt-filters__actions { display: grid; gap: 8px; margin-top: 14px; }
.hlt.is-js [data-hlt-apply] { display: none; }

.hlt-results__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.hlt-h2, .hlt-section__title { font-size: clamp(1.35rem, 2.4vw, 1.65rem); font-weight: 700; }
.hlt-results__count { margin: 4px 0 0 !important; color: var(--hlt-muted); font-size: .9rem; }
.hlt-sort { display: flex; align-items: center; gap: 8px; }
.hlt-sort label { font-size: .9rem; color: var(--hlt-muted); white-space: nowrap; }
.hlt-sort select { width: auto; min-height: 40px; padding-right: 2em; }

/* Cards */
.hlt-grid { display: grid; gap: 22px; }
.hlt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hlt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hlt-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hlt-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--hlt-border); border-radius: var(--hlt-radius); overflow: hidden; box-shadow: var(--hlt-shadow); transition: transform .2s, box-shadow .2s; }
.hlt-card:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(16, 24, 40, .12); }
.hlt-card__media { position: relative; aspect-ratio: 16 / 10; background: var(--hlt-sky); }
.hlt-card__media > a { display: block; height: 100%; }
.hlt-card__img { width: 100%; height: 100% !important; object-fit: cover; }
.hlt-card__img--empty { display: grid; place-items: center; color: #9db4cf; }
.hlt-card__img--empty .hlt-icon { width: 48px; height: 48px; }
.hlt-fav { position: absolute; top: 10px; right: 10px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .95); color: var(--hlt-ink); display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); padding: 0; }
.hlt-fav[aria-pressed="true"] { color: #e11d48; }
.hlt-fav[aria-pressed="true"] svg { fill: currentColor; }
.hlt-card__body { display: flex; flex-direction: column; flex: 1; padding: 16px 18px 18px; }
.hlt-card__title { font-size: 1.12rem; font-weight: 700; margin-bottom: 6px !important; }
.hlt-card__title a { color: var(--hlt-ink); text-decoration: none; }
.hlt-card__title a:hover { color: var(--hlt-green); }
.hlt-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.hlt-card__places { display: flex; gap: .35em; align-items: flex-start; color: var(--hlt-muted); font-size: .86rem; margin-bottom: 10px !important; }
.hlt-card__places .hlt-icon { color: var(--hlt-green); margin-top: .15em; }
.hlt-card__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .86rem; color: var(--hlt-text); margin-bottom: 14px !important; }
.hlt-card__meta li { display: inline-flex; align-items: center; gap: .4em; }
.hlt-card__meta .hlt-icon { color: var(--hlt-green); }
.hlt-card__foot { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--hlt-border); }
.hlt-card__foot .hlt-btn { position: relative; z-index: 2; white-space: nowrap; flex: 0 0 auto; }
.hlt-card-price { display: flex; flex-direction: column; line-height: 1.25; font-size: .78rem; color: var(--hlt-muted); }
.hlt-card-price__amount { color: var(--hlt-green); font-size: 1.15rem; font-weight: 700; }
.hlt-card-price--request .hlt-card-price__amount { color: var(--hlt-ink); font-size: .92rem; white-space: nowrap; }

.hlt-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 28px; }
.hlt-pagination a, .hlt-pagination span { display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--hlt-border); text-decoration: none; color: var(--hlt-ink); background: #fff; }
.hlt-pagination .current { background: var(--hlt-green); border-color: var(--hlt-green); color: #fff; }
.hlt-empty { text-align: center; padding: 48px 20px; border: 1px dashed var(--hlt-border); border-radius: var(--hlt-radius); background: #fff; }
.hlt-empty > .hlt-icon { width: 44px; height: 44px; color: var(--hlt-green); margin-bottom: 8px; }
.hlt-empty h3 { margin-bottom: 6px; }

.hlt-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 32px; padding: 22px 24px; border-radius: var(--hlt-radius); background: linear-gradient(100deg, var(--hlt-sky), #f3faf6); border: 1px solid #d6e6f5; }
.hlt-cta__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #fff; color: var(--hlt-green); box-shadow: var(--hlt-shadow); }
.hlt-cta__icon .hlt-icon { width: 28px; height: 28px; }
.hlt-cta__text { flex: 1 1 280px; }
.hlt-cta__text h2 { font-size: 1.25rem; margin-bottom: 4px; }
.hlt-cta__text p { margin: 0; }

.hlt-strip { background: #f7f9fc; border-top: 1px solid var(--hlt-border); padding: 26px 0; }
.hlt-strip__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.hlt-strip__list li { display: flex; align-items: center; gap: 12px; }
.hlt-strip__list strong { display: block; color: var(--hlt-ink); font-size: .95rem; }
.hlt-strip__list small { display: block; color: var(--hlt-muted); font-size: .82rem; line-height: 1.35; }
.hlt-strip__icon { display: grid; place-items: center; flex: 0 0 46px; height: 46px; border-radius: 50%; background: var(--hlt-green-50); color: var(--hlt-green); }

/* ---------- Single tour ---------- */
.hlt-single { padding-bottom: 56px; }
.hlt-tour-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.hlt-tour-head__main { flex: 1 1 520px; }
.hlt-tour-head__title { font-size: clamp(1.7rem, 3.4vw, 2.35rem); font-weight: 700; }
.hlt-rating { display: flex; align-items: center; gap: .5em; margin: 8px 0 0 !important; font-size: .92rem; }
.hlt-rating a { color: var(--hlt-text); }
.hlt-stars { display: inline-block; font-size: 1rem; letter-spacing: 2px; line-height: 1; }
.hlt-stars::before { content: "★★★★★"; background: linear-gradient(90deg, var(--hlt-amber) calc(var(--hlt-rating, 5) / 5 * 100%), #d0d5dd 0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hlt-facts { display: flex; flex-wrap: wrap; align-content: flex-start; gap: 10px; }
.hlt-facts li { display: inline-flex; align-items: center; gap: .5em; padding: .55em .9em; border: 1px solid var(--hlt-border); border-radius: 10px; background: #fff; color: var(--hlt-ink); font-weight: 600; font-size: .9rem; }
.hlt-facts .hlt-icon { color: var(--hlt-green); }

/* Gallery */
.hlt-gallery { margin-bottom: 26px; }
.hlt-gallery__main { position: relative; border-radius: var(--hlt-radius); overflow: hidden; background: var(--hlt-sky); aspect-ratio: 16 / 7; }
.hlt-gallery__slides, .hlt-gallery__slide { height: 100%; }
.hlt-gallery__slide img { width: 100%; height: 100% !important; object-fit: cover; }
.hlt-gallery__slide[hidden] { display: none; }
.hlt-gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--hlt-ink); display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, .2); padding: 0; }
.hlt-gallery__nav--prev { left: 14px; }
.hlt-gallery__nav--next { right: 14px; }
.hlt-gallery__count { position: absolute; right: 14px; bottom: 14px; margin: 0 !important; background: rgba(15, 27, 45, .75); color: #fff; font-size: .85rem; font-weight: 600; padding: .3em .8em; border-radius: 999px; }
.hlt-gallery__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 10px !important; }
.hlt-gallery__thumb { position: relative; display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 10; outline-offset: 2px; }
.hlt-gallery__thumb img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .3s; }
.hlt-gallery__thumb:hover img { transform: scale(1.04); }
.hlt-gallery__thumb.is-active { box-shadow: 0 0 0 3px var(--hlt-green); }
.hlt-gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 10px 7px; background: linear-gradient(transparent, rgba(0, 0, 0, .7)); color: #fff; font-size: .8rem; font-weight: 600; }
.hlt-gallery__more { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; background: rgba(11, 31, 58, .62); color: #fff; font-weight: 700; font-size: .92rem; }
.hlt-lightbox { width: min(1100px, 96vw); max-height: 92vh; border: 0; border-radius: var(--hlt-radius); padding: 0; }
.hlt-lightbox::backdrop { background: rgba(11, 31, 58, .8); }
.hlt-lightbox__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: #fff; border-bottom: 1px solid var(--hlt-border); }
.hlt-lightbox__title { margin: 0 !important; font-weight: 700; color: var(--hlt-ink); }
.hlt-lightbox__close { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--hlt-border); background: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; color: var(--hlt-ink); }
.hlt-lightbox__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px; }
.hlt-lightbox__grid figure { margin: 0; }
.hlt-lightbox__grid img { border-radius: 8px; width: 100%; }
.hlt-lightbox__grid figcaption { font-size: .85rem; color: var(--hlt-muted); padding-top: 4px; }

/* Layout */
.hlt-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 32px; align-items: start; }
.hlt-tabs { position: sticky; top: 0; z-index: 5; background: #fff; border-bottom: 1px solid var(--hlt-border); margin-bottom: 8px; }
body.admin-bar .hlt-tabs { top: 32px; }
.hlt-tabs ul { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.hlt-tabs a { display: block; padding: 14px 14px 12px; color: var(--hlt-muted); font-weight: 600; text-decoration: none; white-space: nowrap; border-bottom: 3px solid transparent; }
.hlt-tabs a:hover { color: var(--hlt-ink); }
.hlt-tabs a[aria-current="true"] { color: var(--hlt-green); border-bottom-color: var(--hlt-green); }
.hlt-section { padding-top: 26px; scroll-margin-top: 70px; }
.hlt-section__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 14px; }
.hlt-section > .hlt-section__title { margin-bottom: 14px; }
.hlt-section__sub { font-size: 1.1rem; margin: 22px 0 12px !important; }
.hlt-section__lead { color: var(--hlt-muted); margin: 4px 0 0 !important; }
.hlt-prose { font-size: 1rem; }
.hlt-prose p:last-child { margin-bottom: 0; }

.hlt-feature-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px !important; }
.hlt-feature-row li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 14px 8px; border: 1px solid var(--hlt-border); border-radius: 10px; font-size: .86rem; font-weight: 600; color: var(--hlt-ink); background: #fff; }
.hlt-feature-row__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--hlt-green-50); color: var(--hlt-green); }

.hlt-list li { display: flex; gap: .55em; align-items: flex-start; padding: 5px 0; color: var(--hlt-ink); }
.hlt-list .hlt-icon { margin-top: .2em; }
.hlt-list--check .hlt-icon { color: var(--hlt-green); }
.hlt-list--x .hlt-icon { color: var(--hlt-red); }
.hlt-list--2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }

/* Itinerary timeline */
.hlt-timeline { position: relative; }
.hlt-timeline::before { content: ""; position: absolute; left: 17px; top: 10px; bottom: 10px; width: 2px; background: repeating-linear-gradient(var(--hlt-green) 0 6px, transparent 6px 11px); opacity: .45; }
.hlt-day { position: relative; padding-left: 54px; margin-bottom: 16px; }
.hlt-day__marker { position: absolute; left: 0; top: 14px; width: 36px; height: 36px; border-radius: 50%; background: var(--hlt-green); color: #fff; font-weight: 700; display: grid; place-items: center; box-shadow: 0 0 0 4px #fff; }
.hlt-day__card { display: flex; gap: 16px; background: #fff; border: 1px solid var(--hlt-border); border-radius: var(--hlt-radius); padding: 14px; }
.hlt-day__media { flex: 0 0 200px; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; }
.hlt-day__media img { width: 100%; height: 100% !important; object-fit: cover; }
.hlt-day__body { flex: 1; min-width: 0; }
.hlt-day__title { font-size: 1.05rem; font-weight: 700; margin-bottom: 6px !important; }
.hlt-day__label { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--hlt-green); margin-bottom: 2px; }
.hlt-day__desc { font-size: .95rem; }
.hlt-day__desc p:last-child { margin-bottom: 0; }
.hlt-day__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px !important; }

.hlt-incl { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 8px; }
.hlt-section--box { background: #fff; border: 1px solid var(--hlt-border); border-radius: var(--hlt-radius); padding: 20px; margin-top: 18px; }

/* Map */
.hlt-map { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 18px; align-items: start; }
.hlt-map__canvas { width: 100%; max-width: 520px; position: relative; border-radius: var(--hlt-radius); overflow: hidden; border: 1px solid var(--hlt-border); background: #e7f1fa; aspect-ratio: 1 / 1; max-height: 560px; }
.hlt-map__canvas.is-google { aspect-ratio: auto; height: 520px; }
.hlt-map__canvas > svg, .hlt-map__svg { display: block; width: 100%; height: 100%; }
.hlt-map__gmap { position: absolute; inset: 0; }
.hlt-map__sea { fill: #e7f1fa; }
.hlt-map__land { fill: #f3f0e4; stroke: #b8c7ad; }
.hlt-map__route-bg { fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; }
.hlt-map__route { fill: none; stroke: var(--hlt-blue); stroke-linecap: round; stroke-linejoin: round; }
.hlt-map__labels text { fill: var(--hlt-ink); stroke: #fff; paint-order: stroke; font-weight: 600; font-family: inherit; }
.hlt-map__pin circle { fill: var(--hlt-green); stroke: #fff; }
.hlt-map__pin--start circle { fill: var(--hlt-blue); }
.hlt-map__pin .hlt-map__pin-shadow { fill: rgba(15, 27, 45, .25); stroke: none; }
.hlt-map__pin text { fill: #fff; font-weight: 700; font-family: inherit; }
.hlt-map__pin.is-hover circle:not(.hlt-map__pin-shadow) { fill: #f59e0b; }
.hlt-map__inset rect { fill: #fff; stroke: #c8d1dc; }
.hlt-map__inset path { fill: #dfe7d6; }
.hlt-map__inset .hlt-map__inset-view { fill: rgba(220, 38, 38, .08); stroke: #dc2626; }
.hlt-stops { counter-reset: none; display: grid; gap: 4px; }
.hlt-stops li { display: grid; grid-template-columns: 30px 1fr; gap: 0 10px; align-items: center; padding: 8px 10px; border-radius: 10px; cursor: default; }
.hlt-stops li:hover, .hlt-stops li.is-hover { background: var(--hlt-sky); }
.hlt-stops__n { grid-row: span 2; width: 28px; height: 28px; border-radius: 50%; background: var(--hlt-green); color: #fff; font-weight: 700; font-size: .85rem; display: grid; place-items: center; }
.hlt-stops li:first-child .hlt-stops__n { background: var(--hlt-blue); }
.hlt-stops__name { font-weight: 600; color: var(--hlt-ink); line-height: 1.25; }
.hlt-stops__day { font-size: .8rem; color: var(--hlt-muted); }

/* FAQ */
.hlt-faq { display: grid; gap: 10px; }
.hlt-faq__item { border: 1px solid var(--hlt-border); border-radius: 10px; background: #fff; }
.hlt-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer; font-weight: 600; color: var(--hlt-ink); list-style: none; }
.hlt-faq__item summary::-webkit-details-marker { display: none; }
.hlt-faq__chev { transition: transform .2s; color: var(--hlt-muted); }
.hlt-faq__item[open] .hlt-faq__chev { transform: rotate(90deg); }
.hlt-faq__a { padding: 0 16px 14px; }
.hlt-faq__a p:last-child { margin-bottom: 0; }

/* Reviews */
.hlt-reviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hlt-review { margin: 0; padding: 16px; border: 1px solid var(--hlt-border); border-radius: 10px; background: #fff; }
.hlt-review__top { display: flex; justify-content: space-between; align-items: center; font-size: .82rem; color: var(--hlt-muted); }
.hlt-review blockquote { margin: 8px 0; padding: 0; border: 0; font-style: normal; color: var(--hlt-ink); }
.hlt-review figcaption { font-size: .88rem; color: var(--hlt-muted); }

/* Aside */
.hlt-aside { position: sticky; top: 16px; display: grid; gap: 16px; }
body.admin-bar .hlt-aside { top: 48px; }
.hlt-box { background: #fff; border: 1px solid var(--hlt-border); border-radius: var(--hlt-radius); padding: 20px; box-shadow: var(--hlt-shadow); }
.hlt-box--soft { background: linear-gradient(140deg, #f3f8fe, #f2fbf5); box-shadow: none; }
.hlt-box__title { display: flex; align-items: center; gap: .45em; font-size: 1.05rem !important; font-weight: 700; margin-bottom: 8px !important; }
.hlt-box__title .hlt-icon { color: var(--hlt-green); }
.hlt-box p { font-size: .92rem; }
.hlt-book-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3em; color: var(--hlt-muted); font-size: .9rem; }
.hlt-book-price__amount { color: var(--hlt-green); font-size: 1.75rem; font-weight: 700; line-height: 1.1; }
.hlt-book-price--request .hlt-book-price__amount { color: var(--hlt-ink); font-size: 1.4rem; }
.hlt-book__facts { display: grid; gap: 6px; margin: 14px 0 !important; padding: 12px 0 !important; border-top: 1px solid var(--hlt-border); border-bottom: 1px solid var(--hlt-border); }
.hlt-book__facts li { display: flex; align-items: center; gap: .55em; color: var(--hlt-ink); font-size: .92rem; }
.hlt-book__facts .hlt-icon { color: var(--hlt-green); }
.hlt-book__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.hlt-book__fields label span { display: block; font-size: .8rem; font-weight: 600; color: var(--hlt-ink); margin-bottom: 4px; }
.hlt-book__fields input { min-height: 42px; }
.hlt-book__note { font-size: .78rem !important; color: var(--hlt-muted); margin: 8px 0 0 !important; text-align: center; }
.hlt-help { display: flex; gap: 14px; align-items: flex-start; }
.hlt-help__icon { display: grid; place-items: center; flex: 0 0 46px; height: 46px; border-radius: 50%; background: var(--hlt-green-50); color: var(--hlt-green); }
.hlt-help p { margin-bottom: 6px !important; }
.hlt-help__phone { display: inline-flex; align-items: center; gap: .4em; font-weight: 700; font-size: 1.05rem; color: var(--hlt-ink); text-decoration: none; }
.hlt-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hlt-feature-grid li { display: flex; flex-direction: column; gap: 6px; padding: 10px; border-radius: 10px; background: #f7f9fc; font-size: .82rem; font-weight: 600; color: var(--hlt-ink); line-height: 1.3; }
.hlt-feature-grid__icon { color: var(--hlt-green); }

.hlt-similar { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--hlt-border); }
.hlt-mobilebar { display: none; }
.hlt-note { padding: 12px 14px; border: 1px dashed var(--hlt-border); border-radius: 8px; color: var(--hlt-muted); }
.hlt-sc { margin: 0; }

/* Responsive */
@media (max-width: 1100px) {
	.hlt-grid--3, .hlt-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hlt-listing__body { grid-template-columns: 240px minmax(0, 1fr); gap: 20px; }
	.hlt-layout { grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; }
	.hlt-map { grid-template-columns: 1fr; }
	.hlt-map__canvas { max-width: 520px; }
	.hlt-stops { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
}
@media (max-width: 900px) {
	.hlt-search { grid-template-columns: 1fr 1fr; }
	.hlt-search__field:first-child, .hlt-search__submit { grid-column: 1 / -1; }
	.hlt-listing__body { grid-template-columns: minmax(0, 1fr); }
	.hlt-filters__box { position: static; }
	.hlt-filters__chev { display: block; }
	.hlt-filters__box[open] .hlt-filters__chev { transform: rotate(90deg); }
	.hlt-layout { grid-template-columns: minmax(0, 1fr); }
	.hlt-aside { position: static; }
	.hlt-strip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hlt-gallery__main { aspect-ratio: 16 / 10; }
	.hlt-feature-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hlt-mobilebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--hlt-border); box-shadow: 0 -6px 18px rgba(16, 24, 40, .08); }
	.hlt-mobilebar .hlt-btn { padding: .75em 1.1em; }
	.hlt-single { padding-bottom: 96px; }
	.hlt-tabs { top: 0; }
	body.admin-bar .hlt-tabs { top: 0; }
}
@media (max-width: 640px) {
	.hlt-grid--2, .hlt-grid--3, .hlt-grid--4 { grid-template-columns: 1fr; }
	.hlt-search { grid-template-columns: 1fr; padding: 14px; }
	.hlt-hero { padding-bottom: 76px; }
	.hlt-trust { gap: 10px 14px; }
	.hlt-trust li { font-size: .85rem; }
	.hlt-gallery__thumbs { gap: 6px; }
	.hlt-gallery__thumb { aspect-ratio: 1 / 1; border-radius: 8px; }
	.hlt-gallery__cap { display: none; }
	.hlt-gallery__more { font-size: .72rem; text-align: center; padding: 4px; }
	.hlt-gallery__nav { width: 38px; height: 38px; }
	.hlt-list--2col, .hlt-reviews, .hlt-lightbox__grid { grid-template-columns: 1fr; }
	.hlt-day { padding-left: 46px; }
	.hlt-day__card { flex-direction: column; }
	.hlt-day__media { flex-basis: auto; aspect-ratio: 16 / 9; }
	.hlt-strip__list { grid-template-columns: 1fr; }
	.hlt-results__head { align-items: stretch; flex-direction: column; }
	.hlt-sort select { flex: 1; }
	.hlt-tour-head { flex-direction: column; }
	.hlt-tour-head__main { flex-basis: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.hlt-card, .hlt-gallery__thumb img, .hlt-faq__chev { transition: none; }
	.hlt-card:hover { transform: none; }
}
@media print {
	.hlt-tabs, .hlt-aside, .hlt-mobilebar, .hlt-gallery__nav, .hlt-fav, .hlt-filters { display: none !important; }
	.hlt-layout { display: block; }
}
