/* Additions on top of the design CSS (main.css and pages.css stay untouched): small-screen table scrolling, long words. */
.table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll > table { min-width: 0; }
.sources li, .sources a, .prose li { overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .price-table th, .price-table td { padding: 10px 8px; font-size: 13px; }
  .price-table td strong { font-size: 15px; }
  .price-table thead th { font-size: 11px; letter-spacing: .02em; }
}

/* Itinerary day photos (the design has no pattern for them): a small row inside the day body. */
.itinerary__photos { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 6px; }
.itinerary__photos figure { margin: 0; flex: 0 1 200px; max-width: 100%; }
.itinerary__photos img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.itinerary__photos figcaption { margin-top: 4px; font-size: 13px; color: var(--c-muted); }
@media (max-width: 480px) { .itinerary__photos figure { flex-basis: calc(50% - 5px); } }

/* Footer column titles and the CTA sentence are paragraphs (not headings) for a clean heading outline; same look as the design. */
.site-footer__col .site-footer__title { margin: 0 0 18px; font-size: 16px; font-weight: 700; color: var(--c-white); }

/* "Places on this trip" line and "Trips for this topic" list (internal links; the design has no pattern for them). */
.trip-places { margin-top: 16px; font-size: 15px; color: var(--c-muted); }
.trip-places a { text-decoration: underline; text-underline-offset: 2px; color: var(--c-ink); }
.aside-trips { margin-top: 20px; padding: 18px 20px; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--radius); }
.aside-trips__title { margin: 0 0 8px; font-weight: 700; }
.aside-trips ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.aside-trips a { text-decoration: underline; text-underline-offset: 2px; }

/* Closing CTA band: the title is a <p> and was greyed by ".cta-band__box p". */
.cta-band__box p.cta-band__title { margin-top: 0; color: var(--c-white); }

/* Listing pages (packages, day tours): filters are dropdowns in the bar above the cards, three cards per row. */
.listing__grid { grid-template-columns: minmax(0, 1fr); }
.listing__bar { flex-wrap: wrap; gap: 12px 16px; padding: 12px 14px; border: 1px solid var(--c-line); border-radius: 18px; background: var(--c-white); }
.listing__bar .filters-panel { position: static; flex: 1 1 auto; flex-direction: row; align-items: center; gap: 10px; padding: 0; border: 0; border-radius: 0; background: none; }
.filters-toggle { display: none; align-items: center; gap: 8px; padding: 11px 16px; border: 1.5px solid var(--c-line); border-radius: 999px; background: var(--c-white); font: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; }
.filters-toggle .icon { width: 18px; height: 18px; color: var(--c-gold-dark); }
.filters-body { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.filter-dd { position: relative; }
.filter-dd__btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border: 1.5px solid var(--c-line); border-radius: 999px; background: var(--c-white); font: inherit; font-size: 14.5px; font-weight: 600; color: var(--c-ink); cursor: pointer; transition: border-color .15s, background .15s; }
.filter-dd__btn::after { content: ""; width: 7px; height: 7px; margin: -3px 0 0 2px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .15s; }
.filter-dd__btn:hover { border-color: var(--c-ink); }
.filter-dd__btn[aria-expanded="true"] { border-color: var(--c-ink); background: #FAF7F1; }
.filter-dd__btn[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(-135deg); }
.filter-dd__btn:focus-visible, .filters-toggle:focus-visible { outline: 2px solid var(--c-gold-dark); outline-offset: 2px; }
.filter-dd__count, .filters-toggle__count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--c-ink); color: var(--c-white); font-size: 12px; font-weight: 700; }
.filter-dd__count[hidden], .filters-toggle__count[hidden], .filters-clear[hidden] { display: none; }
.filter-dd .filter-group { position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; display: none; flex-direction: column; gap: 4px; min-width: 250px; max-height: 340px; margin: 0; padding: 12px 14px; overflow-y: auto; border: 1px solid var(--c-line); border-radius: 16px; background: var(--c-white); box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .3); }
.filter-dd.is-open .filter-group { display: flex; }
.filter-dd .filter-group legend { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.filter-dd .check { padding: 8px 6px; border-radius: 10px; }
.filter-dd .check:hover { background: #FAF7F1; }
.filters-body__foot { display: flex; align-items: center; gap: 12px; }
.filters-clear { padding: 6px 4px; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 700; color: var(--c-gold-dark); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.filters-done { display: none; }
.listing__tools { display: flex; align-items: center; gap: 16px; margin-left: auto; }
@media (max-width: 800px) {
	.listing__bar .filters-panel { display: contents; }
	.listing__bar { gap: 10px 12px; }
	.filters-toggle { display: inline-flex; order: 1; }
	.listing__tools { order: 2; flex: 1 1 auto; justify-content: space-between; margin-left: 0; }
	.filters-body { display: none; order: 3; flex: 1 1 100%; flex-direction: column; align-items: stretch; gap: 16px; padding-top: 14px; border-top: 1px solid var(--c-line-2); }
	.filters-panel.is-open .filters-body { display: flex; }
	.filter-dd__btn { display: none; }
	.filter-dd .filter-group { position: static; display: flex; min-width: 0; max-height: none; padding: 0; overflow: visible; border: 0; border-radius: 0; box-shadow: none; flex-direction: row; flex-wrap: wrap; gap: 4px 6px; }
	.filter-dd .filter-group legend { position: static; width: auto; height: auto; margin: 0 0 6px; overflow: visible; clip-path: none; width: 100%; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
	.filter-dd .check { flex: 1 1 calc(50% - 6px); min-width: 140px; }
	.filters-body__foot { position: sticky; bottom: 0; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--c-line-2); background: var(--c-white); }
	.filters-done { display: inline-flex; }
}
@media (max-width: 800px) { .filters-panel.is-open .filters-body { max-height: 62vh; overflow-y: auto; overscroll-behavior: contain; } }

/* Packages and day tours: intro card above the cards, quick links below them. */
.hub-intro { padding: 56px 0 0; }
.hub-intro__card { position: relative; max-width: 1040px; margin: 0 auto; padding: 42px 52px 36px; border: 1px solid #EADFC8; border-radius: 26px; background: var(--c-white); box-shadow: 0 24px 60px -28px rgba(40, 28, 8, .35); text-align: center; }
.hub-intro__card::before { content: ""; position: absolute; top: -1px; left: 50%; width: 84px; height: 4px; transform: translateX(-50%); border-radius: 0 0 4px 4px; background: var(--c-gold); }
.hub-intro__eyebrow { margin: 0 0 10px; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-gold-dark); }
.hub-intro__title { margin: 0 auto 16px; max-width: 760px; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.15; font-weight: 800; letter-spacing: -.02em; color: var(--c-ink); }
.hub-intro__text, .hub-intro__rest p { max-width: 820px; margin: 0 auto; font-size: 17px; line-height: 1.7; color: #4A453B; }
.hub-intro__rest { display: grid; gap: 14px; margin-top: 14px; }
.hub-intro__rest[hidden] { display: none; }
.hub-intro__toggle { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; padding: 11px 22px; border: 1.5px solid var(--c-line); border-radius: 999px; background: var(--c-white); font: inherit; font-size: 14.5px; font-weight: 700; color: var(--c-ink); cursor: pointer; transition: border-color .15s, background .15s; }
.hub-intro__toggle[hidden] { display: none; }
.hub-intro__toggle::after { content: ""; width: 7px; height: 7px; margin-top: -3px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .15s; }
.hub-intro__toggle:hover { border-color: var(--c-ink); background: #FAF7F1; }
.hub-intro__toggle:focus-visible { outline: 2px solid var(--c-gold-dark); outline-offset: 2px; }
.hub-intro__toggle[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(-135deg); }
.hub-intro__toggle[aria-expanded="true"] .hub-intro__more-open, .hub-intro__toggle[aria-expanded="false"] .hub-intro__more-close { display: none; }
.is-paged-out { display: none !important; }
.listing__more { display: flex; justify-content: center; margin-top: 34px; }
.listing__more[hidden], .listing__more:has(> [hidden]) { display: none; }
.listing__more .btn { padding-inline: 34px; }
.hub-intro + .listing { padding-top: 40px; }

.hub-links--below { padding: 76px 0 84px; border-top: 1px solid var(--c-line); background: var(--c-white); }
.hub-links__head { max-width: 640px; margin: 0 auto 38px; text-align: center; }
.hub-links__head .eyebrow { margin-bottom: 8px; }
.hub-links__head .section-title { margin: 0; }
.hub-links--below .quick-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 0; padding: 0; list-style: none; }
.hub-links--below .quick-link { flex: 0 1 calc(25% - 12px); min-width: 250px; }
.hub-links--below .quick-link a { position: relative; gap: 16px; padding: 20px 22px; border: 1px solid var(--c-line); border-radius: 20px; background: linear-gradient(180deg, var(--c-white), #FDFBF6); transition: transform .2s, border-color .2s, box-shadow .2s; }
.hub-links--below .quick-link a:hover { transform: translateY(-3px); border-color: var(--c-gold); box-shadow: 0 18px 34px -22px rgba(60, 40, 10, .5); }
.hub-links--below .quick-link__icon { flex: 0 0 54px; height: 54px; border-radius: 16px; background: linear-gradient(145deg, #FBF1D8, #F3DFB0); transition: background .2s, color .2s; }
.hub-links--below .quick-link a:hover .quick-link__icon { background: var(--c-gold); color: var(--c-ink); }
.quick-link__text { flex: 1 1 auto; min-width: 0; }
.hub-links--below .quick-link strong { font-size: 16.5px; line-height: 1.25; }
.hub-links--below .quick-link small { display: block; margin-top: 3px; font-size: 13.5px; }
.quick-link__go { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border: 1.5px solid var(--c-line); border-radius: 50%; color: var(--c-ink); transition: background .2s, border-color .2s, transform .2s; }
.quick-link__go .icon { width: 14px; height: 14px; }
.hub-links--below .quick-link a:hover .quick-link__go { border-color: var(--c-gold); background: var(--c-gold); transform: translateX(3px); }
@media (max-width: 1024px) { .hub-links--below .quick-link { flex-basis: calc(50% - 8px); } }
@media (max-width: 800px) {
	.hub-intro { padding-top: 36px; }
	.hub-intro__card { padding: 34px 22px 28px; border-radius: 22px; }
	.hub-intro__text, .hub-intro__rest p { font-size: 16px; }
	.hub-links--below { padding: 56px 0 64px; }
}
@media (max-width: 560px) { .hub-links--below .quick-link { flex-basis: 100%; } }

/* The SVG logo has a viewBox but no width/height: give it its ratio so it never collapses to zero width. */
.site-header__logo img, .site-footer__logo img { aspect-ratio: 15 / 4; object-fit: contain; }

/* Package card: duration chip on the photo, route, clamped title and text, two fact lines, price line. */
.package-card { border-radius: 22px; box-shadow: 0 1px 2px rgba(40, 28, 8, .05); transition: transform .25s, box-shadow .25s, border-color .25s; }
.package-card:hover { transform: translateY(-4px); border-color: #E6D7B5; box-shadow: 0 22px 44px -24px rgba(60, 40, 10, .45); }
.package-card__media { height: 232px; overflow: hidden; }
.package-card__media img { transition: transform .6s ease; }
.package-card:hover .package-card__media img { transform: scale(1.05); }
.package-card__media::after { content: ""; position: absolute; inset: auto 0 0 0; height: 90px; background: linear-gradient(to top, rgba(18, 14, 8, .55), transparent); pointer-events: none; }
.package-card__flag { top: 14px; left: 14px; z-index: 2; max-width: calc(100% - 28px); padding: 6px 13px; overflow: hidden; font-size: 12.5px; letter-spacing: .01em; white-space: nowrap; text-overflow: ellipsis; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .4); }
.package-card__duration { position: absolute; left: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; border-radius: 999px; background: rgba(255, 255, 255, .96); font-size: 13px; font-weight: 700; color: var(--c-ink); box-shadow: 0 8px 18px -10px rgba(0, 0, 0, .5); }
.package-card__duration .icon { width: 15px; height: 15px; color: var(--c-gold-dark); }
.package-card__body { gap: 10px; padding: 20px 22px 22px; }
.package-card__route { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 13px; font-weight: 600; color: var(--c-gold-dark); }
.package-card__route .icon { flex: none; width: 15px; height: 15px; }
.package-card__route span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.package-card__title { display: -webkit-box; min-height: 2.6em; margin: 0; overflow: hidden; font-size: 20px; line-height: 1.3; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.package-card__text { display: -webkit-box; margin: 0; overflow: hidden; font-size: 14.5px; line-height: 1.55; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.package-card__features { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 4px 0 0; padding: 14px 0 0; border-top: 1px dashed var(--c-line); list-style: none; }
.package-card__features li { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.package-card__features li span { display: -webkit-box; min-width: 0; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.package-card__features .icon { flex: none; width: 16px; height: 16px; margin-top: 1px; }
.package-card__footer { align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; }
.package-card__features + .package-card__footer, .package-card__text + .package-card__footer { margin-top: auto; }
.package-card .price strong { font-size: 24px; line-height: 1.1; }
.package-card .price--request strong { font-size: 15px; font-weight: 800; color: var(--c-ink); }
.package-card .price__label { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.package-card__cta { height: 40px; padding: 0 16px 0 18px; }
.package-card__link:hover .package-card__cta .icon { transform: translateX(3px); }
.package-card__cta .icon { transition: transform .2s; }
@media (max-width: 640px) { .package-card__media { height: 210px; } .package-card__body { padding: 18px 18px 20px; } }

/* Trip style pages: trips at a glance and what is included. */
.style-glance .section-title { margin: 0 0 22px; }
.style-glance .table-scroll { overflow-x: auto; }
.style-glance .price-table th a { color: var(--c-ink); font-weight: 700; text-decoration: none; }
.style-glance .price-table th a:hover { color: var(--c-gold-dark); text-decoration: underline; text-underline-offset: 3px; }
.style-glance .price-table td strong { font-size: 15px; }
.style-included { padding: 76px 0 24px; }
.inc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.inc-card { padding: 28px 30px; border: 1px solid var(--c-line); border-radius: 22px; background: var(--c-white); }
.inc-card h3 { margin: 0 0 14px; font-size: 1.15rem; font-weight: 800; }
.inc-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.inc-card li { position: relative; padding-left: 28px; font-size: 15.5px; line-height: 1.5; color: #3F3A31; }
.inc-card li::before { position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; text-align: center; font-size: 12px; font-weight: 800; line-height: 20px; }
.inc-card--yes li::before { content: "✓"; background: #E7F4EC; color: #1F7A4D; }
.inc-card--no li::before { content: "–"; background: #F3EDE2; color: #8A7B61; }
.inc-card--yes { border-color: #CFE5D8; }
.inc-note { max-width: 760px; margin: 22px auto 0; text-align: center; font-size: 14.5px; color: var(--c-muted); }
@media (max-width: 800px) { .inc-grid { grid-template-columns: minmax(0, 1fr); } .style-included { padding-top: 56px; } }

/* Services of a day (reception, pick-up, guide, transport, entrance fees, meals). */
.itinerary__services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px dashed var(--c-line); list-style: none; }
.itinerary__services li { display: flex; align-items: flex-start; gap: 11px; font-size: 14.5px; line-height: 1.4; font-weight: 600; color: var(--c-ink); }
.itinerary__services li .icon { flex: none; width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: var(--c-gold-soft); color: var(--c-gold-dark); }
.itinerary__services small { display: block; margin-bottom: 1px; font-size: 11.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--c-muted); }
@media (max-width: 640px) { .itinerary__services { grid-template-columns: minmax(0, 1fr); } }

/* Itinerary: space between the labelled paragraphs of a day; services in two columns without the list dots. */
.itinerary__body p { font-size: 15.5px; line-height: 1.65; color: #3F3A31; }
.itinerary__body p + p { margin-top: 12px; }
.itinerary__body p strong { color: var(--c-ink); }
.itinerary__body .itinerary__services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; margin-top: 22px; padding-top: 20px; }
.itinerary__body .itinerary__services li { padding-left: 0; font-size: 14.5px; line-height: 1.4; }
.itinerary__body .itinerary__services li::before { content: none; display: none; }
@media (max-width: 640px) { .itinerary__body .itinerary__services { grid-template-columns: minmax(0, 1fr); } }

/* Price matrix: group sizes down the side, hotel levels across the top. */
.price-matrix-wrap { overflow-x: auto; border-radius: 20px; background: var(--c-white); box-shadow: 0 0 0 1px var(--c-line), 0 10px 30px -18px rgba(22, 20, 15, .25); -webkit-overflow-scrolling: touch; }
.price-matrix { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 0; font-size: 16px; }
.price-matrix th, .price-matrix td { padding: 18px 22px; text-align: center; border-bottom: 1px solid var(--c-line); }
.price-matrix thead th { background: #FAF7F1; vertical-align: bottom; border-bottom: 1px solid var(--c-line); }
.price-matrix__corner { display: block; text-align: left; font-size: 12.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--c-muted); }
.price-matrix__stars { display: block; margin-bottom: 4px; font-size: 14px; letter-spacing: .12em; color: var(--c-gold); }
.price-matrix__name { display: block; font-size: 16px; font-weight: 800; color: var(--c-ink); }
.price-matrix tbody th { text-align: left; font-weight: 700; color: var(--c-ink); background: var(--c-white); position: sticky; left: 0; }
.price-matrix tbody th small { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 600; color: var(--c-muted); }
.price-matrix td strong { font-size: 20px; font-weight: 800; color: var(--c-ink); }
.price-matrix thead th.is-mid { background: var(--c-gold-soft); box-shadow: inset 0 3px 0 var(--c-gold); }
.price-matrix td.is-mid { background: #FFF8EA; }
.price-matrix tbody tr:last-child th, .price-matrix tbody tr:last-child td { border-bottom: 0; }
@media (max-width: 640px) { .price-matrix th, .price-matrix td { padding: 14px 12px; } .price-matrix td strong { font-size: 17px; } }

/* Home hero text column. */
.hero__content { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }

/* Day tours: filter on the left (the design's side panel), cards on the right. */
.listing--side .listing__grid { grid-template-columns: 290px minmax(0, 1fr); gap: 32px; align-items: start; }
.listing--side .listing__bar { padding: 10px 14px; }
.listing--side .listing__tools { margin-left: auto; }
.filters-panel--side { position: sticky; top: 110px; display: block; padding: 22px 22px 18px; border: 1px solid var(--c-line); border-radius: 20px; background: var(--c-white); }
.filters-panel--side .filters-body { display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 0; }
.filters-panel--side .filters-panel__title { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 18px; font-weight: 800; }
.filters-panel--side .filters-panel__title .icon { width: 20px; height: 20px; color: var(--c-gold-dark); }
.filters-panel--side .filter-group { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 16px 0 12px; border: 0; border-top: 1px solid var(--c-line-2); }
.filters-panel--side .filter-group legend { margin-bottom: 8px; padding: 0; font-size: 12.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.filters-panel--side .check { padding: 7px 4px; border-radius: 10px; font-size: 15px; }
.filters-panel--side .check:hover { background: #FAF7F1; }
.filters-panel--side .filters-body__foot { margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--c-line-2); }
.filters-panel--side .filters-toggle { display: none; }
@media (max-width: 1020px) {
  .listing--side .listing__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .filters-panel--side { position: static; padding: 0; border: 0; background: none; }
  .filters-panel--side .filters-toggle { display: inline-flex; }
  .filters-panel--side .filters-body { display: none; margin-top: 12px; padding: 16px 18px; border: 1px solid var(--c-line); border-radius: 18px; background: var(--c-white); }
  .filters-panel--side.is-open .filters-body { display: flex; max-height: 70vh; overflow-y: auto; }
  .filters-panel--side .filters-panel__title { display: none; }
  .filters-panel--side .filters-done { display: inline-flex; }
}

/* Search page. */
.search-form { display: flex; gap: 10px; max-width: 620px; margin: 18px auto 0; }
.search-form__input { flex: 1 1 auto; min-width: 0; padding: 14px 20px; border: 1.5px solid var(--c-line); border-radius: 999px; background: var(--c-white); font: inherit; font-size: 16px; color: var(--c-ink); }
.search-form__input:focus { outline: 2px solid var(--c-gold-dark); outline-offset: 2px; }
.search-results { padding-top: 10px; }
.search-results__title { margin: 28px 0 16px; font-size: 24px; font-weight: 800; }
.search-results__list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.search-results__list a { display: block; padding: 16px 20px; border: 1px solid var(--c-line); border-radius: 16px; background: var(--c-white); }
.search-results__list a:hover { border-color: var(--c-ink); }
.search-results__list strong { display: block; font-size: 17px; }
.search-results__list span { display: block; margin-top: 4px; font-size: 14.5px; color: var(--c-muted); }
.search-empty { max-width: 640px; margin: 24px auto 40px; padding: 34px 28px; border: 1px solid var(--c-line); border-radius: 22px; background: var(--c-white); text-align: center; }
.search-empty h2 { margin: 0 0 8px; font-size: 24px; font-weight: 800; }
.search-empty p { color: var(--c-muted); }
.search-empty__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; }

/* Thank-you page: the three steps from request to booking. */
.ebe-ty-steps { display: grid; gap: 12px; margin: 18px 0 4px; padding: 0; list-style: none; counter-reset: ty; text-align: left; }
.ebe-ty-steps li { position: relative; padding: 2px 0 2px 46px; counter-increment: ty; }
.ebe-ty-steps li::before { content: counter(ty); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-gold-soft); color: var(--c-gold-dark); font-weight: 800; }
.ebe-ty-steps b { display: block; font-size: 15.5px; color: var(--c-ink); }
.ebe-ty-steps span { display: block; font-size: 14.5px; line-height: 1.5; color: var(--c-muted); }

/* Tour cards: white background. */
.tour-card { background: var(--c-white); }

/* Booking box: the lowest price with its basis, then the price for the chosen group. */
.booking-box__price small { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 600; color: var(--c-muted); }
.booking-box__yours { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 0; padding: 12px 2px 2px; border-top: 1px dashed var(--c-line); font-size: 14px; color: var(--c-muted); }
.booking-box__yours strong { font-size: 15px; color: var(--c-ink); }
.booking-box__yours b { font-size: 20px; font-weight: 800; }
.booking-box__yours small { font-size: 13px; font-weight: 600; color: var(--c-muted); }

/* Good to know: folding policy panels. */
.policy-list { display: grid; gap: 10px; }
.policy { border: 1px solid var(--c-line); border-radius: 16px; background: var(--c-white); }
.policy summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; font-size: 16.5px; font-weight: 800; cursor: pointer; list-style: none; }
.policy summary::-webkit-details-marker { display: none; }
.policy summary::after { content: "+"; font-size: 22px; font-weight: 600; color: var(--c-gold-dark); }
.policy[open] summary::after { content: "\2212"; }
.policy__body { padding: 0 20px 18px; font-size: 15.5px; line-height: 1.6; color: #3F3A31; }
.policy__body p { margin: 0 0 10px; }
.policy__body ul { margin: 0 0 10px; padding-left: 20px; }
.policy__body li { margin-bottom: 6px; }
.policy-table { width: 100%; margin: 4px 0 12px; border-collapse: collapse; font-size: 14.5px; }
.policy-table th, .policy-table td { padding: 9px 12px; border-bottom: 1px solid var(--c-line-2); text-align: left; }
.policy-table thead th { background: #FAF7F1; font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }

/* Phones: nothing in the inquiry section may be wider than the screen. */
.inquiry, .inquiry * { box-sizing: border-box; }
.inquiry-form, .inquiry__grid, .inquiry-form__consent { min-width: 0; max-width: 100%; }
.inquiry-form__consent { overflow-wrap: anywhere; }
.page-hero__title, .ebe-ty h1, .ebe-ty__title { overflow-wrap: anywhere; }

/* Internal link blocks: guides, cross trips and country pages. */
.related--guides, .related--cross, .related--countries { padding: 8px 0 28px; }
.country-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.country-links a { display: inline-block; padding: 12px 20px; border: 1.5px solid var(--c-line); border-radius: 999px; background: var(--c-white); font-weight: 700; color: var(--c-ink); }
.country-links a:hover { border-color: var(--c-ink); }
.cta-band__more { margin: 10px 0 0; font-size: 14px; opacity: .85; }
.cta-band__more a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Home hero: YouTube background (added by assets/js/hero-youtube.js). */
.hero__yt { position: absolute; inset: 0; z-index: 1; overflow: hidden; opacity: 0; transition: opacity .8s; pointer-events: none; }
.hero__yt[hidden] { display: none; }
.hero__yt.is-playing { opacity: 1; }
.hero__yt iframe { position: absolute; top: 50%; left: 50%; max-width: none; border: 0; transform: translate(-50%, -50%); }

/* Cards: what the From price is for. */
.price__basis { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 600; color: var(--c-muted); line-height: 1.3; }
.tour-card__basis { font-size: 12px; font-weight: 600; color: var(--c-muted); }

/* Links inside the text: a gold line that fills up on hover, and a small arrow that says where the link goes. */
.prose a:not(.btn):not(.link-card):not(.cta-band a):not([class*="cta"]),
.article__body a:not(.btn):not(.link-card):not([class*="cta"]),
.itinerary__body p a, .block .prose a:not(.btn) {
  color: var(--c-nile); font-weight: 700; text-decoration: none; padding: 0 2px; margin: 0 -2px; border-radius: 4px;
  background-image: linear-gradient(var(--c-gold), var(--c-gold)), linear-gradient(var(--c-gold-soft), var(--c-gold-soft));
  background-repeat: no-repeat; background-position: 0 100%, 0 100%; background-size: 100% 2px, 0 100%;
  transition: background-size .22s ease, color .15s;
}
.prose a:not(.btn):not(.link-card):not([class*="cta"]):hover,
.article__body a:not(.btn):not(.link-card):not([class*="cta"]):hover,
.itinerary__body p a:hover, .block .prose a:not(.btn):hover { color: var(--c-ink); background-size: 100% 2px, 100% 100%; }
.prose a:focus-visible, .itinerary__body p a:focus-visible { outline: 2px solid var(--c-gold-dark); outline-offset: 2px; }
.ebe-ilink::after { content: "\2192"; display: inline-block; margin-left: 4px; font-size: .85em; font-weight: 800; color: var(--c-gold-dark); transition: transform .18s; }
.ebe-ilink:hover::after { transform: translateX(3px); }
.ebe-ilink--trip::after { content: "\2192"; }
.ebe-ilink--hub::after { content: "\2197"; }
.ebe-ilink--guide::after { content: "\2192"; color: var(--c-muted); }
.prose a[target="_blank"]::after { content: "\2197"; margin-left: 3px; font-size: .8em; color: var(--c-muted); }

/* Related link cards inside a guide. */
.link-card { display: flex; align-items: center; gap: 16px; margin: 28px 0; padding: 16px 18px; border: 1px solid var(--c-line); border-left: 4px solid var(--c-gold); border-radius: 16px; background: var(--c-white); box-shadow: 0 10px 24px -20px rgba(22, 20, 15, .5); color: var(--c-ink); text-decoration: none !important; transition: transform .18s, box-shadow .18s, border-color .18s; }
.link-card:hover { transform: translateY(-2px); border-color: var(--c-gold); box-shadow: 0 16px 30px -18px rgba(22, 20, 15, .55); }
.link-card__icon { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--c-gold-soft); color: var(--c-gold-dark); }
.link-card__icon .icon { width: 22px; height: 22px; }
.link-card__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.link-card__body small { font-size: 11.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--c-gold-dark); }
.link-card__body strong { font-size: 17px; line-height: 1.3; font-weight: 800; color: var(--c-ink); }
.link-card__body span { font-size: 14px; line-height: 1.4; font-weight: 500; color: var(--c-muted); }
.link-card__arrow { margin-left: auto; flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--c-ink); color: var(--c-white); transition: transform .18s; }
.link-card__arrow .icon { width: 18px; height: 18px; }
.link-card:hover .link-card__arrow { transform: translateX(4px); background: var(--c-gold); color: var(--c-ink); }
@media (max-width: 560px) { .link-card { gap: 12px; padding: 14px; } .link-card__icon { width: 40px; height: 40px; } .link-card__arrow { display: none; } }

.ebe-ilink::after { font-family: system-ui, "Segoe UI Symbol", sans-serif; }
.related--ring { padding: 8px 0 28px; }

/* Key facts block of the hubs and trip style pages */
.hub-glance { padding: 8px 0 40px; }
.hub-glance__card { background: var(--white, #fff); border: 1px solid var(--line, #e3dccf); border-radius: 16px; padding: 28px 28px 22px; }
.hub-glance__title { margin: 0 0 14px; font-size: 1.35rem; }
.glance-list { margin: 0; display: grid; gap: 0; }
.glance-list > div { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 11px 0; border-top: 1px solid var(--line, #e3dccf); }
.glance-list dt { font-weight: 700; }
.glance-list dd { margin: 0; }
.glance-list a { text-decoration: underline; text-underline-offset: 3px; }
.glance-table { width: 100%; margin-top: 18px; border-collapse: collapse; font-size: .95rem; }
.glance-table caption { text-align: left; font-weight: 700; padding-bottom: 8px; }
.glance-table th, .glance-table td { text-align: left; padding: 9px 10px; border-top: 1px solid var(--line, #e3dccf); vertical-align: top; }
.glance-updated { margin: 14px 0 0; font-size: .85rem; opacity: .7; }
@media (max-width: 640px) {
	.hub-glance__card { padding: 20px 16px 16px; }
	.glance-list > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Search results page */
.trip-finder--page { flex-wrap: wrap; gap: 14px 0; margin-top: 28px; max-width: 1100px; }
.trip-finder--page .trip-finder__field { flex: 1 1 180px; }
.trip-finder--page .trip-finder__field:nth-child(4) { border-right: 1px solid var(--c-line); }
.trip-finder--page .trip-finder__field:nth-child(5) { border-right: 0; }
.trip-finder--page .trip-finder__submit { height: 56px; }
.listing__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.listing__count { margin: 0; font-weight: 700; }
.search-note { margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; background: var(--c-sand, #f5efe3); }
.listing__more { text-align: center; margin: 28px 0 0; }
@media (max-width: 720px) { .trip-finder--page .trip-finder__field { flex-basis: 100%; border-right: 0; padding: 0 0 12px; } }
