/* UW — Adorable Safaris, class layer.
   Every value below reads a token from Tools ▸ Colors / Typography / Spacing.
   No hard-coded colours or sizes. */

/* ---- 1. Page canvas + hidden scrollbar ---- */
html, body { scrollbar-width: none; -ms-overflow-style: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; width: 0; height: 0; }
.uw-scroll-x { scrollbar-width: none; -ms-overflow-style: none; }
.uw-scroll-x::-webkit-scrollbar { display: none; width: 0; height: 0; }

body {
  background: var(--uw-canvas);
  font-family: var(--uw-font);
  font-size: var(--uw-body-size);
  line-height: var(--uw-body-lh);
  color: var(--uw-body-color);
  -webkit-font-smoothing: antialiased;
}

/* ---- 2. Type roles ---- */
.uw-display, .uw-single-title {
  font-size: var(--uw-display-size); line-height: var(--uw-display-lh);
  --uw-ls: var(--uw-display-ls); font-weight: var(--uw-display-weight);
  color: var(--uw-display-color); text-wrap: balance; margin: 0;
}
.uw-h2 { font-size: var(--uw-h2-size); line-height: var(--uw-h2-lh); --uw-ls: var(--uw-h2-ls); font-weight: var(--uw-h2-weight); color: var(--uw-h2-color); text-wrap: balance; margin: 0; }
.uw-h3 { font-size: var(--uw-h3-size); line-height: var(--uw-h3-lh); font-weight: var(--uw-h3-weight); color: var(--uw-h3-color); margin: 0; }
.uw-h4 { font-size: var(--uw-h4-size); line-height: var(--uw-h4-lh); font-weight: var(--uw-h4-weight); color: var(--uw-h4-color); margin: 0; }
.uw-lead { font-size: var(--uw-lead-size); line-height: var(--uw-lead-lh); font-weight: var(--uw-lead-weight); color: var(--uw-lead-color); max-width: 30ch; margin: 0; text-wrap: pretty; }
.uw-lead--wide { max-width: 46ch; }
.uw-body { font-size: var(--uw-body-size); line-height: var(--uw-body-lh); color: var(--uw-body-color); max-width: 65ch; }
.uw-small { font-size: var(--uw-small-size); line-height: var(--uw-small-lh); color: var(--uw-small-color); }
.uw-micro {
  font-size: var(--uw-micro-size); line-height: var(--uw-micro-lh);
  --uw-ls: var(--uw-micro-ls); font-weight: var(--uw-micro-weight);
  text-transform: var(--uw-micro-transform); color: var(--uw-micro-color);
}
/* One-word italic emphasis inside a display heading. Descender clearance included. */
.uw-display em, .uw-h2 em { font-style: italic; font-weight: inherit; padding-bottom: .06em; display: inline-block; }

/* Numbered section label — the house device, set editorially, not as a meta caps chip. */
.uw-eyebrow { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.uw-eyebrow__num { font-size: var(--uw-micro-size); font-weight: 500; color: var(--uw-gold); font-variant-numeric: tabular-nums; }
.uw-eyebrow__txt { font-size: var(--uw-micro-size); --uw-ls: var(--uw-micro-ls); text-transform: uppercase; color: var(--uw-slate); }

/* ---- 3. Vertical rhythm: ONE token, ONE direction (bottom). ---- */
.uw-section { padding-top: 0 !important; padding-bottom: var(--uw-section-air) !important; }
.uw-hero + .uw-section,
.uw-section.uw-on-photo,
.uw-section.uw-on-photo + .uw-section,
.uw-section.uw-on-dark,
.uw-section.uw-on-dark + .uw-section,
.uw-section.uw-on-sand,
.uw-section.uw-on-sand + .uw-section { padding-top: var(--uw-section-air) !important; }

/* Text on a band flips through one token, not per widget. */
.uw-section { --uw-band-text: var(--uw-ink); }
.uw-on-photo, .uw-on-dark { --uw-band-text: var(--uw-ondark); }
.uw-on-photo .uw-h2, .uw-on-dark .uw-h2,
.uw-on-photo .uw-h3, .uw-on-dark .uw-h3,
.uw-on-photo .uw-display, .uw-on-dark .uw-display { color: var(--uw-band-text); }
.uw-on-photo .uw-lead, .uw-on-dark .uw-lead,
.uw-on-photo .uw-body, .uw-on-dark .uw-body { color: color-mix(in srgb, var(--uw-band-text) 78%, transparent); }

/* ---- 4. The inset rounded block — the reference's signature ---- */
.uw-block {
  margin-left: var(--uw-gutter); margin-right: var(--uw-gutter);
  border-radius: var(--uw-radius-lg); overflow: hidden;
}
.uw-block--forest { background: var(--uw-forest); }
/* Two green blocks in a row join into one continuous block: no gap, no inner corners,
   and one section's worth of space between their contents. */
.uw-block + .uw-block { margin-top: -1px !important; border-top-left-radius: 0; border-top-right-radius: 0; }
/* the 1px overlap hides the hairline some screens draw where two blocks meet on a fractional pixel */
.uw-block:has(+ .uw-block) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.uw-section.uw-block.uw-on-dark + .uw-section.uw-block.uw-on-dark { padding-top: 0 !important; }
.uw-block--sand   { background: var(--uw-sand); }
.uw-block--white  { background: var(--uw-surface); }
.uw-inner { width: 100%; max-width: var(--uw-content); margin-inline: auto; }

/* ---- 5. Buttons — the only element with a hover state ---- */
.uw-btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--uw-font); font-size: var(--uw-btn-size); line-height: 1;
  font-weight: var(--uw-btn-weight); --uw-ls: .02em;
  padding: 14px 21px; border-radius: var(--uw-radius-sm); border: 1px solid transparent;
  background: var(--uw-forest); color: var(--uw-ondark); text-decoration: none;
  cursor: pointer;
}
.uw-btn[disabled], .uw-btn.is-disabled { opacity: .45; pointer-events: none; }
.uw-btn:focus-visible { outline: 2px solid var(--uw-gold); outline-offset: 3px; }

.uw-btn--ghost { background: transparent; border-color: var(--uw-line); color: var(--uw-ink); }
.uw-on-photo .uw-btn--ghost, .uw-on-dark .uw-btn--ghost { border-color: color-mix(in srgb, var(--uw-ondark) 40%, transparent); color: var(--uw-ondark); }
.uw-btn--gold { background: var(--uw-gold); color: var(--uw-ink); }

/* ---- 6. Hero — green-volt reference values (inset block, centred text) ---- */
.uw-hero {
  position: relative; margin: var(--uw-gutter) var(--uw-gutter) 0;
  border-radius: var(--uw-radius-lg); overflow: hidden;
  min-height: 815px; padding: 225px 20px 38px;
  display: flex; justify-content: center; align-items: flex-start; text-align: center;
}
.uw-hero__bg { position: absolute; inset: 0; z-index: 0; }
.uw-hero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: rgba(0,0,0,.4); }
.uw-hero__inner { position: relative; z-index: 2; width: 100%; display: flex; justify-content: center; }
.uw-hero__text { max-width: 654px; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 45px; }
.uw-hero__titleblock { display: flex; flex-direction: column; align-items: center; gap: 25px; }
.uw-hero__title { color: var(--uw-ondark); margin: 0; text-align: center; }
.uw-hero__sub { max-width: 564px; margin: 0; font-size: var(--uw-body-size); line-height: var(--uw-body-lh); color: var(--uw-ondark); }
.uw-hero__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.uw-hero__cta { min-height: 52px; }
@media (max-width: 767px) { .uw-hero { min-height: 640px; padding: 160px 16px 38px; } }

/* ---- 7. Fact strip — overlaps the hero seam ---- */
.uw-facts {
  position: relative; z-index: 3; margin-top: -44px;
  background: var(--uw-surface); border-radius: var(--uw-radius-lg);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--uw-forest) 10%, transparent),
              0 18px 40px -22px color-mix(in srgb, var(--uw-forest) 34%, transparent);
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.uw-facts__cell { padding: 24px 28px; border-right: 1px solid var(--uw-line); }
.uw-facts__cell:last-child { border-right: 0; }
.uw-facts__k { display: block; margin-bottom: 6px; }
.uw-facts__v { font-size: var(--uw-h4-size); line-height: 1.2; font-weight: 500; color: var(--uw-ink); font-variant-numeric: tabular-nums; }
.uw-facts__v--price { color: var(--uw-gold); }

/* ---- 8. Sticky in-page anchor bar ---- */
.uw-anchors {
  position: sticky; top: var(--uw-header-h); z-index: 20;
  display: flex; gap: 4px; overflow-x: auto; padding: 8px;
  background: color-mix(in srgb, var(--uw-canvas) 88%, transparent);
  backdrop-filter: blur(10px); border-radius: var(--uw-radius-pill);
  transition: box-shadow .25s ease;
}
.uw-anchors.is-stuck { box-shadow: 0 8px 24px -16px color-mix(in srgb, var(--uw-forest) 45%, transparent); }
.uw-anchors a {
  flex: 0 0 auto; padding: 9px 16px; border-radius: var(--uw-radius-pill);
  font-size: var(--uw-small-size); color: var(--uw-slate); text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.uw-anchors a.is-active { background: var(--uw-forest); color: var(--uw-ondark); }

/* ---- 9. Chips + lists ---- */
.uw-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.uw-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: var(--uw-radius-pill);
  border: 1px solid var(--uw-line); background: var(--uw-surface);
  font-size: var(--uw-small-size); color: var(--uw-ink);
}
.uw-chip--gold { border-color: color-mix(in srgb, var(--uw-gold) 45%, transparent); color: var(--uw-gold); }
.uw-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.uw-list li { position: relative; padding-left: 28px; font-size: var(--uw-body-size); line-height: var(--uw-body-lh); color: var(--uw-slate); }
.uw-list li::before {
  content: ""; position: absolute; left: 0; top: .45em; width: 14px; height: 8px;
  border-left: 1.5px solid var(--uw-forest); border-bottom: 1.5px solid var(--uw-forest);
  transform: rotate(-45deg);
}
.uw-list--x li::before {
  border: 0; width: 12px; height: 12px; top: .3em; transform: none;
  background: linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat;
  color: color-mix(in srgb, var(--uw-slate) 55%, transparent);
}
.uw-on-dark .uw-list li, .uw-on-photo .uw-list li { color: color-mix(in srgb, var(--uw-ondark) 80%, transparent); }
.uw-on-dark .uw-list li::before, .uw-on-photo .uw-list li::before { border-color: var(--uw-gold); }

/* ---- 10. Cards ---- */
.uw-grid { display: grid; gap: var(--uw-stack); }
.uw-grid--3 { grid-template-columns: repeat(3, 1fr); }
.uw-grid--2 { grid-template-columns: repeat(2, 1fr); }
.uw-card {
  background: var(--uw-surface); border-radius: var(--uw-radius-lg);
  overflow: hidden; display: flex; flex-direction: column;
  border: 1px solid var(--uw-line);
}
.uw-card__media { aspect-ratio: 2 / 1; overflow: hidden; } /* same photo height as the homepage Signature Safaris cards, everywhere and on every screen */
.uw-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-card__body { padding: 20px 20px 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.uw-card__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: auto; }
.uw-card__price { color: var(--uw-gold); font-weight: 500; font-variant-numeric: tabular-nums; }

/* ---- 11. Numbered route strip ---- */
.uw-route { display: flex; gap: 0; overflow-x: auto; }
.uw-route__stop { flex: 0 0 auto; min-width: 190px; padding: 0 24px 0 0; position: relative; }
.uw-route__stop::before {
  content: ""; position: absolute; left: 0; right: 0; top: 13px; height: 1px; background: var(--uw-line);
}
.uw-route__dot {
  position: relative; z-index: 1; width: 26px; height: 26px; border-radius: 50%;
  background: var(--uw-forest); color: var(--uw-ondark);
  display: grid; place-items: center; font-size: 11px; font-weight: 500; font-variant-numeric: tabular-nums;
}
.uw-route__day { margin: 14px 0 4px; }
.uw-route__place { font-size: var(--uw-body-size); color: var(--uw-ink); }

/* ---- 12. Itinerary timeline with a spine that draws on scroll ---- */
.uw-itinerary { position: relative; padding-left: 44px; }
.uw-itinerary__spine {
  position: absolute; left: 12px; top: 8px; bottom: 8px; width: 1.5px;
  background: var(--uw-line);
}
.uw-itinerary__spine::after {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 100%;
  height: 100%; background: var(--uw-forest);
}
.uw-itinerary h4 {
  position: relative; margin: 0 0 10px;
  font-size: var(--uw-h4-size); line-height: var(--uw-h4-lh);
  font-weight: var(--uw-h4-weight); color: var(--uw-ink);
}
.uw-itinerary h4::before {
  content: ""; position: absolute; left: -38px; top: .38em;
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--uw-canvas); border: 1.5px solid var(--uw-forest);
}
.uw-itinerary h4 + p { margin-top: 0; }
.uw-itinerary p { margin: 0 0 32px; font-size: var(--uw-body-size); line-height: var(--uw-body-lh); color: var(--uw-slate); max-width: 62ch; }
.uw-itinerary p:last-child { margin-bottom: 0; }
.uw-itinerary ul { margin: 0 0 32px; padding-left: 18px; color: var(--uw-slate); }

/* ---- 13. Numbered step cards (experiences) ---- */
.uw-steps { counter-reset: uwstep; display: grid; gap: var(--uw-stack); }
.uw-steps h4 {
  counter-increment: uwstep; position: relative; padding-left: 52px; margin: 0 0 8px;
  font-size: var(--uw-h4-size); line-height: var(--uw-h4-lh); color: var(--uw-ink);
}
.uw-steps h4::before {
  content: counter(uwstep, decimal-leading-zero);
  position: absolute; left: 0; top: 0;
  font-size: var(--uw-micro-size); font-weight: 500; color: var(--uw-gold);
  font-variant-numeric: tabular-nums;
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--uw-gold) 40%, transparent);
  display: grid; place-items: center;
}
.uw-steps p { margin: 0 0 28px; padding-left: 52px; color: var(--uw-slate); max-width: 60ch; }

/* ---- 14. Editorial offset gallery ---- */
.uw-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--uw-stack); align-items: start; }
.uw-gallery figure { margin: 0; border-radius: var(--uw-radius-lg); overflow: hidden; }
.uw-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-gallery__a { grid-column: 1 / 8;  aspect-ratio: 16 / 10; }
.uw-gallery__b { grid-column: 8 / 13; aspect-ratio: 4 / 5; margin-top: 48px; }
.uw-gallery__c { grid-column: 1 / 5;  aspect-ratio: 1 / 1; }
.uw-gallery__d { grid-column: 5 / 13; aspect-ratio: 16 / 9; }
.uw-gallery__e { grid-column: 1 / 7;  aspect-ratio: 3 / 2; margin-top: 24px; }
.uw-gallery__f { grid-column: 7 / 13; aspect-ratio: 3 / 2; }

/* ---- 15. Accordion ---- */
.uw-acc details {
  border-bottom: 1px solid var(--uw-line); padding: 22px 0;
}
.uw-acc details > summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px;
  font-size: var(--uw-h4-size); line-height: 1.35; font-weight: 500; color: var(--uw-ink);
}
.uw-acc details > summary::-webkit-details-marker { display: none; }
.uw-acc details > summary::after {
  content: ""; flex: 0 0 auto; width: 12px; height: 12px; margin-top: .35em;
  border-right: 1.5px solid var(--uw-forest); border-bottom: 1.5px solid var(--uw-forest);
  transform: rotate(45deg); transition: transform .25s ease;
}
.uw-acc details[open] > summary::after { transform: rotate(-135deg); }
.uw-acc details > div { padding-top: 14px; color: var(--uw-slate); max-width: 68ch; }

/* ---- 16. Sticky enquiry rail ---- */
.uw-rail {
  position: sticky; top: calc(var(--uw-header-h) + 24px);
  background: var(--uw-surface); border: 1px solid var(--uw-line);
  border-radius: var(--uw-radius-lg); padding: 24px;
  display: flex; flex-direction: column; gap: 16px;
}
.uw-rail__price { font-size: var(--uw-h3-size); color: var(--uw-gold); font-weight: 500; font-variant-numeric: tabular-nums; }
.uw-rail__dock { display: none; }

/* ---- 17. Map ---- */
.uw-map { border-radius: var(--uw-radius-lg); overflow: hidden; aspect-ratio: 21 / 9; }
.uw-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.25) contrast(1.05); }


/* ---- 19. Responsive ---- */
@media (max-width: 1024px) {
  .uw-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .uw-facts { grid-template-columns: repeat(2, 1fr); }
  .uw-facts__cell:nth-child(2n) { border-right: 0; }
  .uw-facts__cell:nth-child(-n+2) { border-bottom: 1px solid var(--uw-line); }
  .uw-gallery__a, .uw-gallery__d { grid-column: 1 / 13; }
  .uw-gallery__b, .uw-gallery__c, .uw-gallery__e, .uw-gallery__f { grid-column: span 6; margin-top: 0; }
}
@media (max-width: 767px) {
  .uw-grid--3, .uw-grid--2 { grid-template-columns: 1fr; }
  .uw-facts { grid-template-columns: 1fr; margin-top: -28px; }
  .uw-facts__cell { border-right: 0; border-bottom: 1px solid var(--uw-line); padding: 18px 20px; }
  .uw-facts__cell:last-child { border-bottom: 0; }
  .uw-gallery { grid-template-columns: 1fr; }
  .uw-gallery figure { grid-column: 1 / -1 !important; margin-top: 0 !important; }
  .uw-lead { max-width: none; }
  .uw-itinerary { padding-left: 32px; }
  .uw-itinerary__spine { left: 6px; }
  .uw-itinerary h4::before { left: -31px; }
  .uw-steps h4, .uw-steps p { padding-left: 46px; }

  /* Rail docks to the bottom of the screen */
  .uw-rail { position: static; }
  .uw-rail__dock {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    align-items: center; justify-content: space-between; gap: 16px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: var(--uw-surface); border-top: 1px solid var(--uw-line);
    transform: translateY(110%);
  }
  .uw-rail__dock.is-in { transform: none; }
}

/* ---- 21. Elementor editor: never leave the canvas looking empty ---- */
body.elementor-editor-active .uw-rail__dock { display: none !important; }

/* ---- 22. Fact sheet (Label | Value rows) ---- */
.uw-factsheet { margin: 0; display: grid; gap: 0; }
.uw-factsheet__row {
  display: grid; grid-template-columns: 200px 1fr; gap: 24px;
  padding: 16px 0; border-bottom: 1px solid var(--uw-line);
}
.uw-factsheet__row:first-child { border-top: 1px solid var(--uw-line); }
.uw-factsheet dt { margin: 0; }
.uw-factsheet dd { margin: 0; color: var(--uw-ink); font-variant-numeric: tabular-nums; }
@media (max-width: 767px) { .uw-factsheet__row { grid-template-columns: 1fr; gap: 4px; } }

/* ---- 23. Prose blocks coming out of WYSIWYG fields ---- */
.uw-prose { max-width: 68ch; }
.uw-prose > :first-child { margin-top: 0; }
.uw-prose > :last-child { margin-bottom: 0; }
.uw-prose p { margin: 0 0 18px; }
.uw-prose h4 { font-size: var(--uw-h4-size); line-height: var(--uw-h4-lh); font-weight: 500; color: var(--uw-ink); margin: 28px 0 8px; }
.uw-prose ul, .uw-prose ol { margin: 0 0 18px; padding-left: 20px; }
.uw-prose li { margin-bottom: 6px; }

/* ---- 24. Filters + pagination ---- */
.uw-filters { padding-bottom: 4px; }
.uw-filters .uw-chip { text-decoration: none; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.uw-filters .uw-chip.is-active { background: var(--uw-forest); border-color: var(--uw-forest); color: var(--uw-ondark); }
.uw-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 48px; flex-wrap: wrap; }
.uw-pagination .page-numbers {
  min-width: 42px; height: 42px; padding: 0 14px; border-radius: var(--uw-radius-pill);
  border: 1px solid var(--uw-line); background: var(--uw-surface);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: var(--uw-small-size); color: var(--uw-ink); text-decoration: none;
}
.uw-pagination .page-numbers.current { background: var(--uw-forest); border-color: var(--uw-forest); color: var(--uw-ondark); }

/* ---- 25. Card links carry no underline and no hover motion ---- */
a.uw-card { text-decoration: none; color: inherit; }
a.uw-card .uw-h3 { color: var(--uw-ink); }

/* ---- 26. Two-column body + rail ---- */
.uw-with-rail { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 64px; align-items: start; }
@media (max-width: 1024px) { .uw-with-rail { grid-template-columns: 1fr; gap: 40px; } }

/* ---- 27. Classes used by the block shortcodes (no inline styles anywhere) ---- */
.uw-on-img { color: var(--uw-ondark); }
.uw-on-img-dim { color: color-mix(in srgb, var(--uw-ondark) 78%, transparent); }
.uw-facts__basis { font-size: .58em; color: var(--uw-slate); font-weight: 400; margin-left: 4px; }
.uw-rail__note { margin: 0; }
.uw-rail__price--dock { font-size: 20px; }

/* ---- 28. Box model. Hello Elementor sets this globally, but the class layer
         must not depend on the theme for its own geometry. ---- */
[class^="uw-"], [class*=" uw-"], [class^="uw-"] *, [class*=" uw-"] * { box-sizing: border-box; }

/* ---- 29. Section shell utilities used by the Elementor containers ---- */
.uw-inner { padding-left: var(--uw-gutter); padding-right: var(--uw-gutter); }
.uw-band-pad { padding-top: var(--uw-section-air); padding-bottom: var(--uw-section-air); }
.uw-section.uw-block { padding-top: 0 !important; padding-bottom: var(--uw-section-air) !important; }

/* Two-column body split, and the vertical spacers that read the block-gap token. */
.uw-two { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
@media (max-width: 900px) { .uw-two { grid-template-columns: 1fr; gap: 40px; } }
.uw-gap { height: var(--uw-block-gap); }
.uw-gap-s { height: 24px; }
.uw-wide { max-width: 68ch; }

/* ---- 30. Vertical rhythm corrections (§2-A) ---- */

/* The fact strip is the one section under a hero that must NOT take top air:
   it overlaps the hero seam by design. */
.uw-hero + .uw-section.uw-facts-wrap { padding-top: 0 !important; }
.uw-facts-wrap { padding-top: 0 !important; padding-bottom: var(--uw-section-air) !important; }

/* A band encloses its own air on both sides, so the section immediately BEFORE
   a band must not also contribute bottom air. Without this the seam at every
   background change is double every other seam on the page. */
.uw-section:has(+ .uw-section.uw-on-sand),
.uw-section:has(+ .uw-section.uw-on-dark),
.uw-section:has(+ .uw-section.uw-on-photo) { padding-bottom: 0 !important; }

/* ---- 31. Hero corrections found in browser QA ---- */
.uw-eyebrow { flex-wrap: wrap; }
@media (max-width: 767px) {
  .uw-eyebrow { flex-direction: column; align-items: flex-start; gap: 4px; }
}

/* ---- 32. Reference Lock corrections (green-volt manifest) ---- */

/* Secondary button is solid moss on the reference; it has no outline buttons. */
.uw-btn--moss { background: var(--uw-moss); color: var(--uw-ondark); }

.uw-word { display: inline-block; }

/* ---- 33. Elementor container bridge. Theme Builder templates carry classes only;
         every width, gutter and gap below reads a token. ---- */
.e-con.uw-section {
  --content-width: min(100%, var(--uw-content));
  --padding-left: var(--uw-gutter); --padding-right: var(--uw-gutter);
  --gap: var(--uw-block-gap); --row-gap: var(--uw-block-gap); --column-gap: var(--uw-block-gap);
  --widgets-spacing: var(--uw-block-gap);
}
.e-con.uw-hero-wrap { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; }
.uw-section .e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; }
.e-con.uw-head { --gap: 12px; --row-gap: 12px; --widgets-spacing: 12px; }
.e-con.uw-stack { --gap: var(--uw-stack); --row-gap: var(--uw-stack); --widgets-spacing: var(--uw-stack); }
.e-con.uw-two, .e-con.uw-with-rail { display: grid; }
.uw-with-rail > .e-con { align-self: stretch; }
.uw-with-rail .elementor-widget:has(.uw-rail) { position: sticky; top: calc(var(--uw-header-h) + 84px); }
.uw-with-rail .uw-rail { position: static; }
@media (max-width: 767px) { .uw-with-rail .elementor-widget:has(.uw-rail) { position: static; } }

/* Section labels (01, 02 …) and heading roles on native Heading widgets. */
.uw-label .elementor-heading-title {
  font-size: var(--uw-micro-size); line-height: var(--uw-micro-lh); --uw-ls: var(--uw-micro-ls);
  font-weight: var(--uw-micro-weight); text-transform: uppercase; color: var(--uw-gold);
  font-variant-numeric: tabular-nums;
}
.uw-h2 .elementor-heading-title, .uw-h3 .elementor-heading-title, .uw-h4 .elementor-heading-title,
.uw-display .elementor-heading-title, .uw-lead .elementor-heading-title {
  font: inherit; color: inherit; line-height: inherit; margin: 0;
}
.elementor-widget.uw-lead { max-width: 30ch; }
.uw-on-dark .uw-label .elementor-heading-title { color: var(--uw-gold); }
.uw-on-dark .elementor-widget-text-editor { color: color-mix(in srgb, var(--uw-ondark) 78%, transparent); }
.uw-on-dark .elementor-button { background: var(--uw-moss); color: var(--uw-ondark); }

/* Sticky anchor bar: the container sticks, so it can travel the whole page. */
.e-con.uw-anchors-wrap { position: sticky; top: var(--uw-header-h); z-index: 20; }
.uw-anchors-wrap .uw-anchors { position: static; }
.uw-facts-wrap:has(+ .uw-anchors-wrap) { padding-bottom: var(--uw-block-gap) !important; }

/* A coloured block encloses its own air top and bottom (overrides §29's block rule). */
.uw-section.uw-block.uw-on-dark,
.uw-section.uw-block.uw-on-sand,
.uw-section.uw-block.uw-on-photo { padding-top: var(--uw-section-air) !important; padding-bottom: var(--uw-section-air) !important; }
/* The last band on a page sits one gutter above the footer, as on the reference. */
.uw-section.uw-block:last-child { margin-bottom: var(--uw-gutter); }

/* Side-entering reveals start 60px outside their column; clip (not hidden) so
   sticky elements keep working. */
html, body { overflow-x: clip; }

/* Blog article column */
.e-con.uw-article > .e-con-inner > .elementor-widget { width: 100%; max-width: 68ch; margin-inline: auto; }
.uw-prose h2 { font-size: var(--uw-h2-size); line-height: var(--uw-h2-lh); font-weight: var(--uw-h2-weight); color: var(--uw-ink); margin: 48px 0 12px; }
.uw-prose h3 { font-size: var(--uw-h3-size); line-height: var(--uw-h3-lh); font-weight: var(--uw-h3-weight); color: var(--uw-ink); margin: 32px 0 10px; }
.uw-meta { text-align: center; }

/* ---- 34. Template QA corrections (1440 / 1024 / 390 pass) ---- */
/* Inset blocks: Elementor gives every container width:100%, which with the gutter
   margins pushed the block past the right edge. */
.e-con.uw-block { --width: calc(100% - 2 * var(--uw-gutter)); }
/* Inset blocks keep normal air outside them; the band-seam rule in §30 is for
   full-bleed bands only. */
.uw-section:has(+ .uw-section.uw-block) { padding-bottom: var(--uw-section-air) !important; }
/* The anchor bar sits one block-gap above the first section, not a full section's air. */
.uw-section.uw-anchors-wrap { padding-bottom: var(--uw-block-gap) !important; }
/* Headings on a dark block read in the on-dark colour; labels keep gold. */
.uw-on-dark .elementor-widget-heading:not(.uw-label) .elementor-heading-title { color: var(--uw-ondark); }
/* The route fits the content width instead of clipping its last stop. */
.uw-route { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); }
.uw-route__stop { min-width: 0; }
@media (max-width: 767px) {
  .uw-route { grid-auto-flow: row; grid-template-columns: 1fr 1fr; grid-auto-columns: auto; row-gap: 28px; }
  .uw-route__stop::before { display: none; }
}
/* A section straight under the hero (no fact strip) takes one block-gap of air. */
.uw-hero-wrap + .uw-section:not(.uw-facts-wrap) { padding-top: var(--uw-section-air) !important; } /* same air as between any two sections */
/* A block that opens the page sits one gutter below the header, like the hero. */
.uw-section.uw-block:first-child { margin-top: var(--uw-gutter); }
/* A data block with nothing to show takes no space (e.g. no map for this trip). */
.elementor-widget-shortcode:has(> .elementor-shortcode:empty),
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode:empty) { display: none; }

/* ==========================================================================
   35. Reference corrections, second capture pass (green-volt, 24 Sep, 1440px)
   ========================================================================== */

/* Section label "{ 01 }": 14/21, slate on light, white on dark. Not a caps chip. */
.uw-label .elementor-heading-title, .uw-label-t {
  font-size: var(--uw-small-size); line-height: var(--uw-small-lh); --uw-ls: 0px;
  font-weight: 400; text-transform: none; color: var(--uw-slate);
}
.uw-on-dark .uw-label .elementor-heading-title, .uw-on-dark .uw-label-t { color: var(--uw-ondark); }

/* Headings mix roman and italic: the italic run is weight 400 in the primary colour. */
.uw-h2 em, .uw-h2 .elementor-heading-title em, .uw-display em {
  font-style: italic; font-weight: 400; color: var(--uw-forest); padding: 0; display: inline;
}
.uw-on-dark .uw-h2 em, .uw-on-dark .elementor-heading-title em { color: inherit; }

/* Buttons: 16/24 label, 14/21 padding, radius 6. Secondary is an outline on imagery. */
.uw-btn { font-size: var(--uw-btn-size); line-height: var(--uw-btn-lh); }
.uw-btn--moss, .uw-btn--line {
  background: transparent; color: var(--uw-ondark);
  border: 1px solid color-mix(in srgb, var(--uw-ondark) 85%, transparent);
}
.elementor-widget-button .elementor-button {
  font-family: var(--uw-font); font-size: var(--uw-btn-size); line-height: var(--uw-btn-lh); font-weight: 400;
  padding: 14px 21px; border-radius: var(--uw-radius-sm); background: var(--uw-forest); color: var(--uw-ondark);
  border: 1px solid transparent;
}
.uw-btn-outline .elementor-button {
  background: transparent !important; border-color: color-mix(in srgb, var(--uw-ondark) 85%, transparent);
}
.uw-btn-light .elementor-button { background: var(--uw-surface) !important; color: var(--uw-ink) !important; }
.uw-on-dark .elementor-button { background: var(--uw-surface); color: var(--uw-ink); }

/* ---------------- Header: glass bar floating over the hero ---------------- */
.elementor-location-header { position: relative; z-index: 60; }
.e-con.uw-header {
  position: absolute; left: 0; right: 0; top: calc(var(--uw-gutter) + 20px);
  --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; background: none;
}
.admin-bar .e-con.uw-header { top: calc(var(--uw-gutter) + 20px); }
.e-con.uw-nav {
  --width: min(1180px, calc(100% - 2 * (var(--uw-gutter) + 20px)));
  margin-inline: auto; min-height: 72px; flex-direction: row; align-items: center; justify-content: space-between;
  --padding-top: 12px; --padding-bottom: 12px; --padding-left: 14px; --padding-right: 8px; --gap: 20px;
  background: rgba(255, 255, 255, .18); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  border-radius: var(--uw-radius-sm);
}
.uw-logo .elementor-heading-title { font-size: 20px; line-height: 30px; font-weight: 500; color: var(--uw-ondark); --uw-ls: -.01em; }
.uw-logo .elementor-heading-title a { color: inherit; }
.uw-menu .elementor-nav-menu > li > a.elementor-item {
  font-family: var(--uw-font); font-size: 16px; line-height: 24px; font-weight: 400;
  color: var(--uw-ondark) !important; padding: 0 !important;
}
.uw-menu .elementor-nav-menu--main .elementor-nav-menu { gap: 13px; align-items: center; }
.uw-menu .elementor-nav-menu--main .elementor-nav-menu > li + li::before {
  content: "|"; color: color-mix(in srgb, var(--uw-ondark) 70%, transparent); margin-right: 13px; font-size: 14px;
}
.uw-menu .elementor-nav-menu--main .elementor-nav-menu > li { display: flex; align-items: center; }
.uw-menu .e--pointer-underline .elementor-item::after, .uw-menu .elementor-item::before, .uw-menu .elementor-item::after { display: none !important; }
.uw-nav .elementor-widget-button .elementor-button { padding: 12px 18px; }
.uw-menu .elementor-menu-toggle { color: var(--uw-ondark); background: transparent; font-size: 22px; }
.uw-menu .elementor-menu-toggle svg { fill: var(--uw-ondark); }
.uw-menu .elementor-nav-menu--dropdown {
  background: var(--uw-surface); border-radius: var(--uw-radius-lg); margin-top: 16px; padding: 8px 0; overflow: hidden;
}
.uw-menu .elementor-nav-menu--dropdown a { color: var(--uw-ink) !important; font-size: 16px; padding: 12px 20px !important; background: none !important; }
@media (max-width: 1024px) {
  .uw-nav .elementor-widget-button { display: none; }
  .e-con.uw-nav { min-height: 60px; }
}

/* ---------------- Footer: image zone holding the CTA and the white footer block ---------------- */
.e-con.uw-footzone {
  position: relative; --padding-top: 130px; --padding-bottom: var(--uw-gutter);
  --padding-left: var(--uw-gutter); --padding-right: var(--uw-gutter); --gap: 120px; --row-gap: 120px;
  margin-top: var(--uw-section-air);
}
.e-con.uw-footzone::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .25); pointer-events: none; }
.e-con.uw-footzone > .e-con { position: relative; z-index: 1; }
.e-con.uw-footzone { isolation: isolate; }
.e-con.uw-footzone > .uw-footvid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; pointer-events: none; opacity: 0; }
.e-con.uw-footzone.has-video > .uw-footvid { opacity: 1; }
.e-con.uw-footzone.has-video::before { background: rgba(0, 0, 0, .34); }
.e-con.uw-cta { --width: min(534px, 100%); margin-inline: auto; align-items: center; text-align: center; --gap: 45px; --row-gap: 45px; }
.e-con.uw-cta-head { align-items: center; --gap: 25px; --row-gap: 25px; }
.uw-cta-title .elementor-heading-title { font-size: 40px; line-height: 48px; font-weight: 500; color: var(--uw-ondark); }
.uw-cta-text { color: var(--uw-ondark); font-size: var(--uw-body-size); line-height: var(--uw-body-lh); }
.uw-cta-text p { margin: 0; }
.e-con.uw-cta-actions { flex-direction: row; justify-content: center; --gap: 14px; flex-wrap: wrap; }
.e-con.uw-footer {
  background: var(--uw-surface); border-radius: var(--uw-radius-lg);
  --padding-top: 80px; --padding-bottom: 40px; --padding-left: 80px; --padding-right: 80px; --gap: 48px; --row-gap: 48px;
}
.e-con.uw-foot-row { flex-direction: row; justify-content: space-between; align-items: flex-start; --gap: 40px; flex-wrap: wrap; }
.e-con.uw-foot-news { --width: min(485px, 100%); --gap: 23px; --row-gap: 23px; }
.uw-foot-h .elementor-heading-title { font-size: var(--uw-h2-size); line-height: var(--uw-h2-lh); font-weight: 500; color: var(--uw-ink); }
.uw-foot-col-h .elementor-heading-title { font-size: 20px; line-height: 30px; font-weight: 500; color: var(--uw-ink); }
.uw-foot-p, .uw-foot-p p { color: var(--uw-slate); font-size: var(--uw-body-size); line-height: var(--uw-body-lh); margin: 0; }
.e-con.uw-socials { flex-direction: row; --gap: 10px; flex-wrap: wrap; --width: auto; }
.uw-socials .elementor-button {
  background: #F1F1F1 !important; color: var(--uw-slate) !important; padding: 9px 28px !important; border: 0 !important;
}
.uw-foot-logo .elementor-heading-title { font-size: 28px; line-height: 36px; font-weight: 500; color: var(--uw-forest); }
.uw-foot-links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.uw-foot-links a { color: var(--uw-slate); font-size: 16px; line-height: 24px; text-decoration: none; }
.e-con.uw-foot-cols { flex-direction: row; --gap: 60px; --width: auto; }
.e-con.uw-foot-col { --gap: 16px; --row-gap: 16px; --width: auto; --padding-left: 0; --padding-right: 0; }
.e-con.uw-foot-col + .e-con.uw-foot-col { border-left: 1px solid var(--uw-line); --padding-left: 60px; }
.uw-foot-copy { border-top: 1px solid var(--uw-line); padding-top: 24px; }
.uw-foot-copy p.uw-foot-line { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.uw-foot-copy p { margin: 0; color: var(--uw-slate); font-size: var(--uw-small-size); line-height: var(--uw-small-lh); }
.uw-foot-copy a { color: inherit; }
@media (max-width: 1024px) {
  .e-con.uw-footer { --padding-top: 56px; --padding-left: 40px; --padding-right: 40px; }
}
@media (max-width: 767px) {
  .e-con.uw-footzone { --padding-top: 96px; --gap: 72px; --row-gap: 72px; }
  .uw-cta-title .elementor-heading-title { font-size: 30px; line-height: 38px; }
  .e-con.uw-footer { --padding-top: 48px; --padding-left: 20px; --padding-right: 20px; }
  .e-con.uw-foot-cols { flex-direction: column; --gap: 32px; }
  .e-con.uw-foot-col + .e-con.uw-foot-col { border-left: 0; --padding-left: 0; }
}

/* ---------------- Forms (enquiry popup, contact page, newsletter) ---------------- */
.uw-form .elementor-field-group { margin-bottom: 14px; }
.uw-form .elementor-field-label { font-size: var(--uw-small-size); line-height: var(--uw-small-lh); color: var(--uw-slate); font-weight: 400; margin-bottom: 6px; }
.uw-form .elementor-field-textual, .uw-form select.elementor-field {
  background: var(--uw-canvas) !important; border: 1px solid var(--uw-line) !important; border-radius: var(--uw-radius-sm) !important;
  font-family: var(--uw-font); font-size: 16px; line-height: 24px; color: var(--uw-ink) !important; padding: 12px 14px !important; min-height: 50px;
}
.uw-form textarea.elementor-field-textual { min-height: 110px; }
.uw-form .elementor-field-textual:focus { outline: 2px solid var(--uw-moss); outline-offset: 0; border-color: transparent !important; }
.uw-form .elementor-field-type-acceptance label, .uw-form .elementor-field-option label { font-size: var(--uw-small-size); color: var(--uw-slate); }
.uw-form .elementor-button {
  background: var(--uw-forest) !important; color: var(--uw-ondark) !important; font-size: 16px; line-height: 24px;
  padding: 14px 21px; border-radius: var(--uw-radius-sm); min-height: 52px;
}
.uw-form .elementor-message { font-size: var(--uw-small-size); margin-top: 12px; }
.uw-form .elementor-message-success { color: var(--uw-forest); }
.uw-form--inline .elementor-field-textual { background: var(--uw-surface) !important; }
.uw-form--inline .elementor-form-fields-wrapper { flex-wrap: nowrap; gap: 8px; }
.uw-form--inline .elementor-field-group { margin-bottom: 0; padding: 0 !important; }
.uw-form--inline .elementor-field-type-submit { width: auto !important; flex: 0 0 auto; }
.uw-form--inline .elementor-field-type-email { flex: 1 1 auto; }
.uw-form--inline .elementor-button { min-height: 50px; padding: 9px 21px; }

/* Enquiry popup */
.uw-enq-trip .elementor-heading-title { font-size: var(--uw-h3-size); line-height: var(--uw-h3-lh); font-weight: 500; color: var(--uw-forest); }
.e-con.uw-enq { --gap: 24px; --row-gap: 24px; }
.uw-enq-note, .uw-enq-note p { color: var(--uw-slate); font-size: var(--uw-small-size); line-height: var(--uw-small-lh); margin: 0; }

/* ---------------- Home ---------------- */
.uw-hero__card {
  position: absolute; left: 105px; bottom: 38px; z-index: 2; width: 164px; text-align: left;
  padding: 10px 8px; border-radius: var(--uw-radius-sm);
  background: rgba(255, 255, 255, .18); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, .35); color: var(--uw-ondark); display: flex; flex-direction: column; gap: 4px;
}
.uw-hero__card-k { font-size: 12px; line-height: 18px; }
.uw-hero__card-v { font-size: 26px; line-height: 32px; font-weight: 500; }
.uw-hero__card-t { font-size: 10px; line-height: 14px; opacity: .9; }
@media (max-width: 767px) { .uw-hero__card { display: none; } }

.e-con.uw-split { display: grid; grid-template-columns: 1fr 1fr; align-items: start; --gap: 64px; }
.e-con.uw-split > .e-con { --gap: 25px; --row-gap: 25px; }
@media (max-width: 900px) { .e-con.uw-split { grid-template-columns: 1fr; --gap: 32px; } }
.uw-split-note, .uw-split-note p { max-width: 300px; color: var(--uw-slate); margin: 0; }
.e-con.uw-split-end { align-items: flex-start; }

.e-con.uw-stats { display: grid; grid-template-columns: repeat(4, 1fr); --gap: 20px; }
.e-con.uw-stat {
  border: 1px solid var(--uw-line); border-radius: var(--uw-radius-sm); min-height: 170px;
  --padding-top: 16px; --padding-bottom: 16px; --padding-left: 16px; --padding-right: 16px; justify-content: space-between;
}
.uw-stat-k .elementor-heading-title { font-size: 12px; line-height: 20px; --uw-ls: .6px; color: var(--uw-slate); font-weight: 400; }
.uw-stat-v .elementor-heading-title { font-size: 40px; line-height: 48px; font-weight: 500; color: var(--uw-forest); text-align: center; font-variant-numeric: tabular-nums; }
@media (max-width: 1024px) { .e-con.uw-stats { grid-template-columns: repeat(2, 1fr); } }

.uw-rail-x { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 380px); gap: var(--uw-stack); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
.uw-rail-x > .uw-card { scroll-snap-align: start; }
@media (max-width: 767px) { .uw-rail-x { grid-auto-columns: 85%; } }

.uw-countries { display: grid; grid-template-columns: 1fr 1fr; gap: var(--uw-stack); }
.uw-country {
  display: grid; grid-template-columns: 1fr 180px; gap: 20px; align-items: stretch; text-decoration: none;
  background: color-mix(in srgb, var(--uw-ondark) 12%, transparent); border-radius: var(--uw-radius-lg); padding: 20px;
}
.uw-country__text { display: flex; flex-direction: column; gap: 10px; justify-content: flex-end; min-height: 200px; }
.uw-country .uw-h3 { color: var(--uw-ondark); }
.uw-country .uw-small { color: color-mix(in srgb, var(--uw-ondark) 80%, transparent); margin: 0; }
.uw-country__media { border-radius: var(--uw-radius-md); overflow: hidden; }
.uw-country__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-chip--glass { align-self: flex-start; background: transparent; color: var(--uw-ondark); border-color: color-mix(in srgb, var(--uw-ondark) 40%, transparent); font-size: 12px; padding: 4px 12px; }
@media (max-width: 900px) { .uw-countries { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .uw-country { grid-template-columns: 1fr; } .uw-country__media { aspect-ratio: 16 / 9; } }

.e-con.uw-why { display: grid; grid-template-columns: repeat(3, 1fr); --gap: 20px; }
.e-con.uw-why-card {
  background: var(--uw-surface); border-radius: 16px; --padding-top: 30px; --padding-bottom: 30px; --padding-left: 30px; --padding-right: 30px;
  min-height: 384px; justify-content: space-between;
}
.uw-why-n .elementor-heading-title { font-size: 22px; line-height: 32px; font-weight: 500; color: var(--uw-ink); }
.uw-why-t .elementor-heading-title { font-size: 22px; line-height: 32px; font-weight: 500; color: var(--uw-ink); }
.uw-why-p, .uw-why-p p { color: var(--uw-slate); font-size: 14px; line-height: 21px; margin: 0; }
@media (max-width: 900px) { .e-con.uw-why { grid-template-columns: 1fr; } .e-con.uw-why-card { min-height: 0; --gap: 40px; } }

.uw-faq { display: grid; gap: 12px; }
.uw-faq__row { background: var(--uw-surface); border-radius: 8px; padding: 18px 20px; }
.uw-faq__row > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 20px; line-height: 30px; font-weight: 500; color: var(--uw-ink); }
.uw-faq__row > summary::-webkit-details-marker { display: none; }
.uw-faq__row > summary i { flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--uw-forest); position: relative; transition: transform .3s ease; }
.uw-faq__row > summary i::before, .uw-faq__row > summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1.5px; background: var(--uw-ondark); transform: translate(-50%, -50%); }
.uw-faq__row > summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.uw-faq__row[open] > summary i { transform: rotate(45deg); }
.uw-faq__a { padding-top: 12px; color: var(--uw-slate); }
.uw-faq__a p { margin: 0 0 10px; }
.e-con.uw-faq-wrap { display: grid; grid-template-columns: 380px 1fr; --gap: 30px; align-items: start; }
.uw-faq-img img { width: 100%; aspect-ratio: 380 / 350; object-fit: cover; border-radius: var(--uw-radius-lg); display: block; }
/* The home FAQ list is longer than the photo: the photo rides along beside it. */
@media (min-width: 901px) { .e-con.uw-faq-wrap > .uw-faq-img { position: sticky; top: 120px; align-self: flex-start; } }
@media (max-width: 900px) { .e-con.uw-faq-wrap { grid-template-columns: 1fr; } }

/* ---- 36. Pages: contact card, popup scroll, lead width ---- */
.e-con.uw-contact-form {
  background: var(--uw-surface); border-radius: var(--uw-radius-lg);
  --padding-top: 40px; --padding-bottom: 32px; --padding-left: 40px; --padding-right: 40px;
}
@media (max-width: 767px) { .e-con.uw-contact-form { --padding-top: 28px; --padding-left: 20px; --padding-right: 20px; } }
.uw-steps-list { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.elementor-popup-modal .dialog-message { max-height: 92vh; overflow-y: auto; }
.elementor-widget.uw-lead--wide { max-width: 46ch; }
.uw-split-end .elementor-widget-button { margin-top: 8px; }
.uw-form .elementor-field-type-acceptance > .elementor-field-label { display: none; }
.uw-on-dark .uw-split-note, .uw-on-dark .uw-split-note p { color: color-mix(in srgb, var(--uw-ondark) 80%, transparent); }

/* Header at tablet/mobile: logo and burger stay on one 60px row; the dropdown hangs
   below the glass bar at the bar's width. */
.e-con.uw-nav { flex-wrap: nowrap; position: relative; }
.uw-nav > .elementor-widget-nav-menu { width: auto; flex: 0 0 auto; position: static; }
.uw-nav > .uw-logo { flex: 0 1 auto; }
.uw-menu .elementor-nav-menu--dropdown .elementor-nav-menu > li > a.elementor-item {
  color: var(--uw-ink) !important; padding: 12px 20px !important; font-size: 16px; line-height: 24px;
}
.uw-menu .elementor-nav-menu--dropdown .elementor-nav-menu > li + li { border-top: 1px solid var(--uw-line); }

/* ---- 37. Inner-page hero: the archive-header block, with the photo kept.
         Short, left-aligned, content-width text; the home page keeps the full hero. ---- */
.uw-hero.uw-hero--page {
  min-height: 0; padding: var(--uw-section-air) var(--uw-gutter);
  justify-content: flex-start; align-items: flex-start; text-align: left;
}
.uw-hero--page .uw-hero__inner { max-width: var(--uw-content); margin-inline: auto; justify-content: flex-start; }
.uw-hero--page .uw-hero__text { max-width: 760px; align-items: flex-start; gap: 32px; }
.uw-hero--page .uw-hero__titleblock { align-items: flex-start; gap: 12px; }
.uw-hero--page .uw-hero__title { text-align: left; }
.uw-hero--page .uw-hero__sub { max-width: 640px; }
.uw-hero--page .uw-hero__actions { justify-content: flex-start; }
.uw-hero--page .uw-hero__actions:empty { display: none; }
.uw-hero__label { margin: 0; font-size: var(--uw-small-size); line-height: var(--uw-small-lh); color: var(--uw-ondark); }
@media (max-width: 767px) {
  .uw-hero.uw-hero--page { min-height: 0; padding: 120px 20px var(--uw-section-air); }
}

/* ---- 38. Static site (client request, Sept 2026): no animation of any kind —
         no reveals, slides, scroll effects, hover transitions or widget entrances.
         Everything renders in its final state. ---- */
html { scroll-behavior: auto !important; }
*, *::before, *::after { animation: none !important; transition: none !important; }
.elementor-invisible, .uw-rv, .uw-rv-l, .uw-rv-r { opacity: 1 !important; visibility: visible !important; transform: none !important; }

/* Archive header block on phones clears the header bar the same way the hero does. */
@media (max-width: 767px) {
  .uw-section.uw-block.uw-on-dark:first-child { padding-top: 120px !important; }
}

/* ---- 39. Logo (adorablesafaris.com artwork, attachment "Adorable Safaris East Africa — logo").
         Header: sits in the 72px glass bar. Footer: the artwork's white "East Africa"
         line needs a dark ground, so it sits on a forest badge. ---- */
.e-con.uw-nav { --padding-top: 6px; --padding-bottom: 6px; }
.uw-logo-img { flex: 0 0 auto; }
.uw-logo-img img { display: block; height: 60px; width: auto; max-width: none; }
.uw-foot-logo-img img { display: block; width: 132px; height: auto; background: var(--uw-forest); border-radius: var(--uw-radius-sm); padding: 14px; box-sizing: content-box; }
@media (max-width: 767px) {
  .uw-logo-img img { height: 52px; }
  .uw-foot-logo-img img { width: 112px; }
}

/* ---- 40. Spacing audit (Sept 2026): tighter rhythm. Section air 104/80/64 and
         block gap 40/32/28 now come from the tokens. The fact strip, anchor bar and
         first section sit close together; the anchor bar pins flush to the top of
         the screen as a full-width white strip instead of floating over content. ---- */
.e-con.uw-section > .e-con-inner { padding-top: 0; padding-bottom: 0; }
.uw-facts-wrap:has(+ .uw-anchors-wrap) { padding-bottom: 16px !important; }
.e-con.uw-anchors-wrap {
  top: 0; background: var(--uw-canvas);
  padding-top: 10px !important; padding-bottom: 10px !important;
  margin-bottom: calc(var(--uw-block-gap) - 10px);
}
.e-con.uw-anchors-wrap.is-stuck { box-shadow: 0 1px 0 var(--uw-line); }
.admin-bar .e-con.uw-anchors-wrap { top: 32px; }
.uw-anchors { background: transparent; backdrop-filter: none; padding: 0; }
@media (max-width: 782px) { .admin-bar .e-con.uw-anchors-wrap { top: 46px; } }
@media (max-width: 767px) {
  .uw-facts-wrap:has(+ .uw-anchors-wrap) { padding-bottom: 8px !important; }
}
/* Inner-page hero: text starts a clear 56px below the floating header bar. */
@media (min-width: 768px) {
  .uw-hero.uw-hero--page { padding-top: calc(var(--uw-gutter) + 20px + 72px + 56px); }
}
/* Archive / Journal header block: label clears the header bar like the inner heroes;
   the filter row and the grid sit close under it. */
@media (min-width: 768px) {
  .uw-section.uw-block.uw-on-dark:first-child { padding-top: calc(72px + 20px + 56px) !important; padding-bottom: 80px !important; }
}
.uw-section.uw-block:first-child + .uw-section { padding-top: 56px !important; padding-bottom: var(--uw-block-gap) !important; }
@media (max-width: 767px) {
  .uw-section.uw-block:first-child + .uw-section { padding-top: 40px !important; }
}

/* ---- 41. Letter spacing (client request, Sept 2026): every piece of text runs
         2% (0.02em) tighter than its role's own tracking. Rules set --uw-ls (the
         role's tracking); this line applies it minus 0.02em of each element's own
         font size, so the reduction scales with the text. ---- */
*, *::before, *::after { letter-spacing: calc(var(--uw-ls, 0px) - 0.02em); }
/* Elementor's global "Accent" type style sets its own tracking on menu dropdown
   items; take the same 2% off that. */
.elementor-widget-nav-menu .elementor-nav-menu--dropdown a.elementor-item,
.elementor-widget-nav-menu .elementor-nav-menu--dropdown a.elementor-sub-item {
  letter-spacing: calc(var(--e-global-typography-accent-letter-spacing, 0px) - 0.02em);
}
@media (max-width: 1024px) {
  .uw-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: absolute !important; top: calc(100% + 8px) !important; left: 0 !important; right: 0 !important; width: auto !important; margin-top: 0;
  }
}

/* ---- 42. Home hero (Sept 2026): fits the screen, video background, card rail.
         The hero plus its top gutter never exceed the viewport height. ---- */
.uw-hero:not(.uw-hero--page) {
  min-height: 0; height: calc(100svh - 2 * var(--uw-gutter));
  padding: calc(var(--uw-gutter) + 20px + 72px + 24px) 20px 0;
  align-items: center; flex-direction: column; justify-content: center;
}
.uw-hero.uw-hero--rail { padding-bottom: 176px; }
.uw-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-hero--rail .uw-hero__inner { flex: 0 1 auto; }

/* Card rail: two identical sets side by side; the track moves left by one set's
   width and repeats, so the loop has no seam. Both ends fade out. The only motion
   on the site besides the hero video (client request). */
.uw-hero-rail {
  position: absolute; left: 0; right: 0; bottom: 38px; z-index: 2; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%);
}
.uw-hero-rail__track { display: flex; width: max-content; animation: uw-rail 70s linear infinite !important; }
.uw-hero-rail:hover .uw-hero-rail__track { animation-play-state: paused !important; }
.uw-hero-rail__set { display: flex; gap: 12px; padding-right: 12px; }
@keyframes uw-rail { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.uw-hero__card.uw-rail-card {
  position: static; flex: 0 0 auto; width: 196px; min-height: 118px; padding: 12px 12px;
  text-decoration: none; justify-content: flex-start;
}
a.uw-rail-card:hover { background: rgba(255, 255, 255, .26); }
.uw-rail-card .uw-hero__card-t { font-size: 11px; line-height: 15px; }
.uw-stars { color: var(--uw-gold); font-size: 22px; line-height: 32px; --uw-ls: 2px; }
@media (prefers-reduced-motion: reduce) { .uw-hero-rail__track { animation-duration: 140s !important; } }
@media (max-width: 767px) {
  .uw-hero:not(.uw-hero--page) { padding: 112px 16px 0; }
  .uw-hero.uw-hero--rail { padding-bottom: 150px; }
  .uw-hero-rail { bottom: 20px; }
  .uw-hero-rail .uw-hero__card { display: flex; }
  .uw-hero__card.uw-rail-card { width: 168px; min-height: 108px; }
  .uw-hero-rail__track { animation-duration: 55s !important; }
}
@media (max-height: 700px) and (min-width: 768px) {
  .uw-hero--rail .uw-hero__text { gap: 28px; }
  .uw-hero.uw-hero--rail { padding-bottom: 160px; }
}

/* ---- 43. Menu hover (reference M10): text roll. The only transition the site keeps
         besides the hero rail and tour slider, hence !important over §38. ---- */
.uw-menu .uw-roll { display: inline-block; height: 24px; line-height: 24px; overflow: hidden; vertical-align: top; }
.uw-menu .uw-roll__track { display: flex; flex-direction: column; gap: 10px;
  transition: transform .4s cubic-bezier(.34, 1.36, .64, 1) !important; }
.uw-menu .uw-roll__track > span { display: block; white-space: nowrap; }
.uw-menu a.elementor-item:hover .uw-roll__track,
.uw-menu a.elementor-item:focus-visible .uw-roll__track { transform: translateY(-34px); }

/* ---- 44. Split section headers (reference): the right-hand note is a 402px column
         set against the right edge, 16/24 slate, with the button 35px below. Applies
         to header rows only (right column holds .uw-split-note), not the About lead. ---- */
.e-con.uw-split:has(.uw-split-end .uw-split-note) { grid-template-columns: minmax(0, 1fr) minmax(0, 406px); }
.uw-split-end .uw-split-note, .uw-split-end .uw-split-note p { max-width: none; font-size: 16px; line-height: 24px; }
.e-con.uw-split:has(.uw-split-end .uw-split-note) > .e-con.uw-split-end { --gap: 35px; --row-gap: 35px; }
.uw-split-end .uw-split-note + .elementor-widget-button { margin-top: 0; }
@media (max-width: 900px) {
  .e-con.uw-split:has(.uw-split-end .uw-split-note) { grid-template-columns: 1fr; }
  .uw-split-end .uw-split-note, .uw-split-end .uw-split-note p { font-size: 15px; line-height: 22.5px; }
  .e-con.uw-split:has(.uw-split-end .uw-split-note) > .e-con.uw-split-end { --gap: 24px; --row-gap: 24px; }
}

/* ---- 45. Endless tour slider: three cards in view (two on tablet, one on phones).
         Images are a third shorter than the grid cards (4:3 → 2:1); the crop sits
         slightly above centre so horizons and animals stay in frame. ---- */
.uw-slider { overflow: hidden; touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; }
.uw-slider.is-dragging { cursor: grabbing; }
.uw-slider__track { display: flex; gap: 20px; will-change: transform; }
.uw-slider .uw-card { flex: 0 0 calc((100% - 40px) / 3); min-width: 0; }
.uw-slider .uw-card__media { aspect-ratio: 2 / 1; }
.uw-slider .uw-card__media img { object-position: 50% 40%; pointer-events: none; -webkit-user-drag: none; }
@media (max-width: 1024px) { .uw-slider .uw-card { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 767px) {
  .uw-slider__track { gap: 16px; }
  .uw-slider .uw-card { flex-basis: 100%; }
}

/* ---- 46. Parks — reference "Meet Our Experts" cards (about page): 3 columns, 20px
         gap; card 24px padding, 12px radius, white 60%; name 20/30, place 12/20 with
         0.6px tracking; the foot pairs a 185px summary with a 135px square photo,
         120px below the name. Tablet: photo on top of the text, full width. ---- */
.uw-parks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.uw-park {
  display: flex; flex-direction: column; justify-content: flex-start; gap: 120px;
  padding: 24px; border-radius: 12px; background: rgba(255, 255, 255, .6);
  text-decoration: none; color: inherit;
}
.uw-park:hover { background: rgba(255, 255, 255, .9); }
.uw-park__head { display: flex; flex-direction: column; gap: 10px; }
.uw-park__name { margin: 0; font-size: 20px; line-height: 30px; font-weight: 500; color: var(--uw-ink); }
.uw-park__place, .uw-park__text { margin: 0; font-size: 12px; line-height: 20px; --uw-ls: .6px; color: var(--uw-slate); }
.uw-park__foot { display: flex; align-items: flex-start; justify-content: center; gap: 10px; padding-inline: 4px; }
.uw-park__text { flex: 1 1 185px; }
.uw-park__media { flex: 0 0 135px; height: 135px; border-radius: 10px; overflow: hidden; }
.uw-park__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-parks-more { margin-top: 0; }
@media (max-width: 1100px) {
  .uw-park { padding: 12px; border-radius: 10px; gap: 16px; justify-content: flex-start; }
  .uw-park__name { font-size: 18px; line-height: 27px; }
  .uw-park__head { gap: 8px; }
  .uw-park__foot { flex-direction: column-reverse; gap: 12px; padding-inline: 0; }
  .uw-park__text { flex: 0 0 auto; }
  .uw-park__media { flex: 0 0 auto; width: 100%; height: auto; aspect-ratio: 225 / 199; }
}
@media (max-width: 767px) {
  .uw-parks { grid-template-columns: 1fr; }
  .uw-park__media { aspect-ratio: 326 / 289; }
}

/* ---- 47. Card corners (client, Sept 2026): cards and their images round at 5px max. ---- */
.uw-card, .uw-facts, .uw-rail, .uw-country, .uw-country__media, .e-con.uw-why-card, .uw-faq__row,
.uw-faq-img img, .e-con.uw-contact-form, .uw-park, .uw-park__media, .uw-hero__card, .uw-gallery figure,
.uw-map, .uw-post-card__media, .uw-why2__media, .uw-why2__media img, .uw-why2__quote { border-radius: 5px !important; }
.uw-why2__quote { border-radius: 5px 0 0 0 !important; }

/* ---- 48. Split headers: 50/50 columns site-wide; the right column starts level with
         the heading, not with the { 0n } label above it. ---- */
@media (min-width: 901px) {
  .e-con.uw-split:has(.uw-split-end .uw-split-note) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .e-con.uw-split:has(.uw-split-end .uw-split-note) > .e-con.uw-split-end { padding-top: calc(var(--uw-small-lh) + 25px) !important; }
}

/* ---- 49. Endless slider: cards fade in and out at both edges. ---- */
.uw-slider {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

/* ---- 50. Journal cards (reference: consultaro blog row): no card, 16:9 image,
         20/29 title, "DATE — N MIN READ" in 12px caps over a hairline. ---- */
.uw-post-card { display: flex; flex-direction: column; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--uw-line); text-decoration: none; color: inherit; }
.uw-post-card__media { aspect-ratio: 407 / 229; overflow: hidden; }
.uw-post-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-post-card__body { display: flex; flex-direction: column; gap: 40px; flex: 1; justify-content: space-between; }
.uw-post-card__title { margin: 0; font-size: 20px; line-height: 29px; font-weight: 500; color: var(--uw-ink); max-width: 370px; }
.uw-post-card:hover .uw-post-card__title { color: var(--uw-forest); }
.uw-post-card__meta { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 12px; font-weight: 500; text-transform: uppercase; --uw-ls: 1.2px; color: var(--uw-slate); }
.uw-post-card__meta i { display: block; width: 16px; height: 1px; background: color-mix(in srgb, var(--uw-ink) 20%, transparent); }
.uw-grid:has(> .uw-post-card) { column-gap: 30px; row-gap: 48px; }
@media (max-width: 767px) { .uw-post-card__title { font-size: 18px; line-height: 26px; } .uw-post-card__body { gap: 24px; } }

/* ---- 51. Parks: two rows of three. ---- */
.uw-parks { row-gap: 20px; }

/* ---- 52. Home "why it works" (reference: consultaro): big lead statement, split
         header, then an accordion list beside a tall photo with a quote card. ---- */
.uw-why2-lead .elementor-heading-title { font-size: clamp(26px, 3vw, 40px); line-height: 1.1; font-weight: 500; --uw-ls: -.02em; color: var(--uw-ink); max-width: 1180px; }
.uw-why2-lead .elementor-heading-title span { color: color-mix(in srgb, var(--uw-ink) 45%, transparent); }
.e-con.uw-why2-head { flex-direction: row; justify-content: space-between; align-items: flex-start; --gap: 40px; }
.e-con.uw-why2-head > .e-con { --width: 50%; --gap: 25px; --row-gap: 25px; }
.e-con.uw-why2-head > .e-con:last-child { align-items: flex-start; --gap: 35px; --row-gap: 35px; padding-top: calc(var(--uw-small-lh) + 25px) !important; }
.uw-why2-head .uw-split-note, .uw-why2-head .uw-split-note p { max-width: none; font-size: 16px; line-height: 24px; }
.e-con.uw-why2-body { display: grid; grid-template-columns: minmax(0, 640fr) minmax(0, 520fr); align-items: stretch; --gap: 40px; }
.uw-acc2 { padding-right: 50px; }

/* ---- 53. Content pages (UW — Single Page template): reading column with wide
         breakouts for card grids placed in the text (<div class="uw-wide">). ---- */
.uw-prose .uw-wide { max-width: none; position: relative; left: 50%; transform: translateX(-50%); width: min(var(--uw-content), calc(100vw - 2 * var(--uw-gutter) - 40px)); margin: 32px 0 40px; }
.uw-prose blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 2px solid var(--uw-forest); color: var(--uw-ink); font-size: 18px; line-height: 28px; }
.uw-prose ol { padding-left: 22px; }
.uw-prose a { color: var(--uw-forest); text-decoration: underline; text-underline-offset: 3px; }
.uw-prose .uw-wide a, .uw-prose .uw-faq a.uw-card { text-decoration: none; }
.uw-prose .uw-faq { margin: 16px 0 32px; }
.uw-page-article .uw-form { margin-top: 24px; }
.uw-page-article .uw-form-title { margin-top: 48px; }
.uw-page-article .uw-form-title .elementor-heading-title { font-size: var(--uw-h2-size); line-height: var(--uw-h2-lh); font-weight: 500; color: var(--uw-ink); }
.uw-form .uw-form-step { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--uw-line); font-size: 12px; line-height: 16px; font-weight: 500; text-transform: uppercase; --uw-ls: 1.2px; color: var(--uw-forest); }
.uw-form .elementor-field-group:first-child .uw-form-step { margin-top: 0; border-top: 0; padding-top: 0; }
.uw-form .elementor-field-type-checkbox .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.uw-page-stack { --gap: 0; --row-gap: 0; }
/* ---- 55. Services slider (reference: consultaro case studies): 12px-inset photo
         frame, dark glass panel on the left (tag pill, title, text, link at the
         foot), dashes bottom-right; a light bar underneath with a line and button. ---- */
.uw-svc-slider { position: relative; }
.uw-svc-slider__frame { position: relative; height: clamp(460px, 44vw, 642px); border-radius: 5px; overflow: hidden; background: var(--uw-forest); }
.uw-svc-slide { position: absolute; inset: 0; padding: 12px; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s linear .7s !important; }
.uw-svc-slide.is-active { opacity: 1; visibility: visible; transition: opacity .7s ease !important; z-index: 1; }
.uw-svc-slide__media { position: absolute; inset: 0; }
.uw-svc-slide__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-svc-slide__panel {
  position: relative; z-index: 1; height: 100%; width: min(493px, 100%);
  display: flex; flex-direction: column; justify-content: space-between; gap: 24px;
  padding: 32px; background: rgba(0, 0, 0, .4); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-radius: 2px; color: #fff;
}
.uw-svc-slide__top { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.uw-svc-slide__tag { padding: 6px 10px; border-radius: 999px; background: rgba(255, 255, 255, .12); font-size: 11px; line-height: 12px; font-weight: 500; text-transform: uppercase; --uw-ls: 1.2px; }
.uw-svc-slide__title { margin: 0; font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; font-weight: 500; color: #fff; max-width: 380px; }
.uw-svc-slide__text { margin: 0; font-size: 15px; line-height: 22.5px; color: rgba(255, 255, 255, .85); max-width: 360px; }
.uw-svc-slide__link { color: #fff; font-size: 16px; line-height: 22px; font-weight: 500; text-decoration: none; }
.uw-svc-slide__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.uw-svc-dots { position: absolute; right: 24px; bottom: 22px; z-index: 3; display: flex; gap: 6px; }
.uw-svc-dot { width: 26px; height: 3px; padding: 0; border: 0; border-radius: 2px; background: rgba(255, 255, 255, .35); cursor: pointer; }
.uw-svc-dot.is-active { background: #fff; }
.e-con.uw-svc-bar { flex-direction: row; align-items: center; justify-content: space-between; --gap: 24px; background: color-mix(in srgb, var(--uw-ink) 4%, transparent); border-radius: 5px; --padding-top: 28px; --padding-bottom: 28px; --padding-left: 32px; --padding-right: 32px; margin-top: 12px; }
.uw-svc-bar__text { display: flex; align-items: center; gap: 18px; }
.uw-svc-bar__avatars { display: flex; flex: 0 0 auto; }
.uw-svc-bar__avatars img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid var(--uw-canvas); margin-left: -12px; }
.uw-svc-bar__avatars img:first-child { margin-left: 0; }
.uw-svc-bar__title { margin: 0; font-size: 20px; line-height: 29px; font-weight: 500; color: var(--uw-ink); }
.uw-svc-bar__sub { margin: 0; font-size: 15px; line-height: 22.5px; color: var(--uw-slate); }
@media (max-width: 767px) {
  .uw-svc-slider__frame { height: 560px; }
  .uw-svc-slide__panel { padding: 22px; width: 100%; background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.2) 55%, rgba(0,0,0,.55)); backdrop-filter: none; }
  .e-con.uw-svc-bar { flex-direction: column; align-items: flex-start; --padding-left: 20px; --padding-right: 20px; }
  .uw-svc-bar__text { align-items: flex-start; }
}

/* ---- 56. Services page grid (reference: consultaro #services): white cards, 300px
         tall, icon tile top-left, title and line at the foot. List: long descriptions. ---- */
.uw-svc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.uw-svc-card { background: var(--uw-surface); border-radius: 5px; min-height: 300px; padding: 24px 20px 30px 30px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.uw-svc-card__icon { width: 36px; height: 36px; border-radius: 4px; background: #F1F1F1; color: var(--uw-forest); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.uw-svc-card__body { display: flex; flex-direction: column; gap: 10px; }
.uw-svc-card__title { margin: 0; font-size: 22px; line-height: 26px; font-weight: 500; color: var(--uw-ink); }
.uw-svc-card__text { margin: 0; font-size: 15px; line-height: 22.5px; color: var(--uw-slate); max-width: 330px; }
.uw-svc-list { display: grid; gap: 0; }
.uw-svc-row { display: flex; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--uw-line); }
.uw-svc-row h3 { margin: 4px 0 6px !important; font-size: 20px !important; line-height: 28px !important; }
.uw-svc-row p { margin: 0 !important; }
@media (max-width: 1024px) { .uw-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .uw-svc-grid { grid-template-columns: 1fr; } .uw-svc-card { min-height: 220px; } }

/* ---- 58. Theme pink (#c36) never shows: Hello's reset colours links and plain
         buttons pink/navy. These rules put our forest green in its place at the
         same strength, so any component with its own class still sets its own colour. ---- */
:where(html) a { color: var(--uw-forest); }
:where(html) a:not([class]):hover, :where(html) a:not([class]):active { color: color-mix(in srgb, var(--uw-forest) 80%, #000); }
/* Links styled as buttons, cards or chips keep their own colours on hover (the theme's
   a:hover rule would otherwise turn their text dark). One rule per component. */
a.uw-btn:is(:hover, :focus, :active) { color: var(--uw-ondark); }
a.uw-btn--moss:is(:hover, :focus, :active), a.uw-btn--line:is(:hover, :focus, :active) { color: var(--uw-ondark); }
a.uw-btn--ghost:is(:hover, :focus, :active), a.uw-btn--gold:is(:hover, :focus, :active) { color: var(--uw-ink); }
:is(.uw-on-photo, .uw-on-dark) a.uw-btn--ghost:is(:hover, :focus, :active) { color: var(--uw-ondark); }
.elementor-widget-button a.elementor-button:is(:hover, :focus, :active) { color: var(--uw-ondark); }
.uw-btn-light a.elementor-button:is(:hover, :focus, :active), .uw-on-dark a.elementor-button:is(:hover, :focus, :active) { color: var(--uw-ink); }
a.uw-country:is(:hover, :focus, :active) { color: var(--uw-forest); }
a.uw-park:is(:hover, :focus, :active), a.uw-post-card:is(:hover, :focus, :active) { color: var(--uw-slate); }
a.uw-card:is(:hover, :focus, :active), .uw-foot-copy a:is(:hover, :focus, :active) { color: inherit; }
a.uw-chip:is(:hover, :focus, :active) { color: var(--uw-ink); }
a.uw-chip--gold:is(:hover, :focus, :active) { color: var(--uw-gold); }
.uw-filters a.uw-chip.is-active:is(:hover, :focus, :active) { color: var(--uw-ondark); }
a.uw-exp-card:is(:hover, :focus, :active), a.uw-svc-slide__link:is(:hover, :focus, :active), a.uw-rail-card:is(:hover, :focus, :active) { color: var(--uw-ondark); }
/* No underlines on links anywhere. */
:where(html) a, :where(html) a:hover, .uw-prose a, a.uw-autolink, a.uw-autolink:hover, .uw-svc-slide__link:hover { text-decoration: none !important; }
.uw-rev__src, .uw-rev__src:hover { border-bottom-color: transparent !important; }
:where(html) [type=button], :where(html) [type=submit], :where(html) button { border-color: var(--uw-forest); color: var(--uw-forest); }
:where(html) [type=button]:hover, :where(html) [type=button]:focus, :where(html) [type=submit]:hover, :where(html) [type=submit]:focus, :where(html) button:hover, :where(html) button:focus { background-color: var(--uw-forest); color: #fff; }

/* ---- 57. Experience cards (layout: dentitive.framer.website #about): full-bleed photo,
         shade at the foot, type / name / description on the photo. Our type + 5px radius. ---- */
.uw-exp-card { position: relative; display: flex; align-items: flex-end; aspect-ratio: 418 / 494; border-radius: 5px; overflow: hidden; text-decoration: none; color: var(--uw-ondark); background: var(--uw-forest); }
.uw-exp-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; -webkit-user-drag: none; }
.uw-exp-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 26, 19, .82) 0%, rgba(10, 26, 19, .45) 32%, rgba(10, 26, 19, 0) 58%); }
.uw-exp-card__panel { position: relative; z-index: 1; padding: 0 24px 24px; display: flex; flex-direction: column; gap: 12px; max-width: 400px; }
.uw-exp-card__type { margin: 0 0 -4px; font-size: 13px; line-height: 18px; color: rgba(255, 255, 255, .72); }
.uw-exp-card__title { margin: 0; font-size: 20px; line-height: 26px; font-weight: 500; color: #fff; }
.uw-exp-card__text { margin: 0; font-size: 15px; line-height: 21px; color: rgba(255, 255, 255, .86); }
.uw-exp-card img.uw-exp-card__img { height: 100% !important; max-width: none; border-radius: 0; }
.uw-grid:has(> .uw-exp-card) { gap: 20px; }
.uw-slider .uw-exp-card { flex: 0 0 calc((100% - 40px) / 3); min-width: 0; }
@media (max-width: 1024px) { .uw-slider .uw-exp-card { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 767px) { .uw-slider .uw-exp-card { flex-basis: 82%; } .uw-exp-card__panel { padding: 0 18px 18px; } }

/* Publish dates are not shown anywhere on the site (client request). */
.elementor-post-info__item--type-date, .elementor-post-info__item--type-time, .elementor-icon-list-item:has(.elementor-post-info__item--type-date) { display: none !important; }

/* ---- 54. Header: desktop sub-menus (Safari Types, Travel Info, About pages). ---- */
.uw-menu .elementor-nav-menu--main .sub-menu {
  background: var(--uw-surface) !important; border-radius: 5px; padding: 8px 0; min-width: 220px !important;
  box-shadow: 0 16px 40px -20px rgba(0, 0, 0, .35);
}
.uw-menu .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
  color: var(--uw-ink) !important; background: transparent !important; font-size: 15px; line-height: 22px; padding: 10px 18px !important; border: 0 !important;
}
.uw-menu .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover { color: var(--uw-forest) !important; }
.uw-menu .elementor-nav-menu--main .elementor-nav-menu > li > .sub-menu { margin-top: 12px !important; }
.uw-menu .elementor-nav-menu--main .sub-arrow { padding-left: 4px; }
.uw-menu .elementor-nav-menu--main .sub-arrow svg, .uw-menu .elementor-nav-menu--main .sub-arrow i { fill: var(--uw-ondark); color: var(--uw-ondark); width: 10px; }
@media (max-width: 767px) { .uw-prose .uw-wide { width: 100%; left: 0; transform: none; } }
.uw-acc2__row { border-bottom: 1px solid var(--uw-line); padding: 23px 24px 23px 0; }
.uw-acc2__row[open] { padding-block: 25px; }
.uw-acc2__row > summary { list-style: none; cursor: pointer; font-size: 20px; line-height: 29px; font-weight: 500; color: var(--uw-ink); display: flex; justify-content: space-between; gap: 16px; }
.uw-acc2__row > summary::-webkit-details-marker { display: none; }
.uw-acc2__row > summary::after { content: "+"; font-weight: 400; color: var(--uw-slate); }
.uw-acc2__row[open] > summary::after { content: "–"; }
.uw-acc2__body { padding-top: 24px; max-width: 516px; }
.uw-acc2__body p { margin: 0 0 16px; font-size: 15px; line-height: 22.5px; color: var(--uw-slate); }
.uw-acc2__body ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.uw-acc2__body li { position: relative; padding-left: 28px; font-size: 15px; line-height: 22.5px; color: var(--uw-slate); }
.uw-acc2__body li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%;
  background: color-mix(in srgb, var(--uw-forest) 14%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B4332' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 11px no-repeat; }
.e-con.uw-why2__media { position: relative; overflow: hidden; min-height: 560px; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.uw-why2__media .elementor-widget-image, .uw-why2__media .elementor-widget-image .elementor-widget-container { position: absolute; inset: 0; margin: 0; }
.uw-why2__media .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uw-why2__quote { position: absolute !important; right: 0; bottom: 0; width: min(350px, 80%) !important; background: var(--uw-canvas); padding: 20px; z-index: 2; }
.uw-why2__quote p { margin: 0 0 20px; font-size: 16px; line-height: 22.4px; font-weight: 500; color: var(--uw-slate); }
.uw-why2__quote .uw-why2__by { margin: 0; display: flex; align-items: center; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--uw-line); font-weight: 400; }
.uw-why2__quote .uw-why2__by img { width: 44px; height: 44px; border-radius: 50%; background: var(--uw-forest); object-fit: contain; padding: 4px; }
.uw-why2__quote .uw-why2__by strong { display: block; font-size: 16px; line-height: 22.4px; font-weight: 500; color: var(--uw-ink); }
.uw-why2__quote .uw-why2__by span { display: block; font-size: 13px; line-height: 18px; color: var(--uw-slate); }
@media (max-width: 1024px) {
  .e-con.uw-why2-body { grid-template-columns: 1fr; }
  .uw-acc2 { padding-right: 0; }
  .e-con.uw-why2__media { min-height: 520px; }
}
@media (max-width: 767px) {
  .e-con.uw-why2-head { flex-direction: column; align-items: flex-start; --gap: 20px; }
  .e-con.uw-why2-head > .e-con { --width: 100%; }
  .e-con.uw-why2-head > .e-con:last-child { padding-top: 0 !important; --gap: 24px; --row-gap: 24px; }
  .e-con.uw-why2__media { min-height: 460px; }
  .uw-acc2__row > summary { font-size: 18px; line-height: 26px; }
}

/* ---- 59. Reviews (layout: reference testimonial columns). Each review is a small
         head card (photo, name, trip, number) and a tall body card (stars, source link,
         quote); every second column is flipped. Slider on the homepage, rows on /reviews/. ---- */
.uw-reviews { --rev-gap: 20px; }
.uw-rev { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.uw-rev--alt { flex-direction: column-reverse; }
.uw-rev__head { display: flex; align-items: center; gap: 16px; background: var(--uw-surface); border-radius: 5px; padding: 10px 16px 10px 10px; }
.uw-rev__img, .uw-rev__initials { width: 88px; height: 76px; flex: none; border-radius: 4px; object-fit: cover; }
.uw-rev__initials { display: grid; place-items: center; background: var(--uw-forest); color: var(--uw-ondark); font-size: 22px; line-height: 1; font-weight: 500; }
.uw-rev__who { flex: 1; min-width: 0; }
.uw-rev__name { margin: 0; font-size: 18px; line-height: 26px; font-weight: 500; color: var(--uw-ink); }
.uw-rev__trip { margin: 4px 0 0; font-size: 14px; line-height: 20px; color: var(--uw-slate); }
.uw-rev__n { align-self: flex-start; margin-top: 26px; font-size: 16px; line-height: 22px; color: var(--uw-slate); }
.uw-rev__body { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; background: var(--uw-surface); border-radius: 5px; padding: 30px; min-height: 376px; }
.uw-rev--alt .uw-rev__body { flex-direction: column-reverse; }
.uw-rev__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.uw-rev__stars { display: inline-flex; gap: 6px; }
.uw-rev__stars i { width: 21px; height: 20px; background: var(--uw-gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6-4.9-4.6 6.6-.8z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6-4.9-4.6 6.6-.8z'/%3E%3C/svg%3E") center / contain no-repeat; }
.uw-rev__src { font-size: 14px; line-height: 20px; color: var(--uw-forest); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--uw-forest) 30%, transparent); }
.uw-rev__src:hover { border-bottom-color: currentColor; }
.uw-rev__src--sample { color: var(--uw-slate); border: 0; }
.uw-rev__quote { margin: 0; padding: 0; border: 0; font-size: 18px; line-height: 27px; font-weight: 400; font-style: normal; color: var(--uw-slate); }
.uw-reviews__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * var(--rev-gap)) / 3); gap: var(--rev-gap);
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; cursor: grab; }
.uw-reviews__track::-webkit-scrollbar { display: none; }
.uw-reviews__track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.uw-reviews__track .uw-rev { scroll-snap-align: start; }
.uw-reviews__nav { display: flex; justify-content: flex-end; gap: 8px; margin-top: 24px; }
.uw-reviews__btn { width: 44px; height: 44px; border-radius: 5px; border: 1px solid var(--uw-line); background: var(--uw-surface); color: var(--uw-ink); font-size: 24px; line-height: 1; cursor: pointer; display: grid; place-items: center; padding: 0; }
.uw-reviews__btn:hover, .uw-reviews__btn:focus { background: var(--uw-forest); border-color: var(--uw-forest); color: #fff; }
.uw-reviews__btn:disabled { opacity: .35; cursor: default; background: var(--uw-surface); color: var(--uw-ink); border-color: var(--uw-line); }
.uw-reviews--grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px var(--rev-gap); }
@media (max-width: 1024px) {
  .uw-reviews__track { grid-auto-columns: calc((100% - var(--rev-gap)) / 2); }
  .uw-reviews--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .uw-reviews { --rev-gap: 14px; }
  .uw-reviews__track { grid-auto-columns: 88%; }
  .uw-reviews--grid { grid-template-columns: 1fr; gap: 24px; }
  .uw-rev__body { min-height: 300px; padding: 24px; }
  .uw-rev__img, .uw-rev__initials { width: 72px; height: 64px; }
  .uw-rev__quote { font-size: 17px; line-height: 26px; }
}

/* ---- 60. Why Travel With Us, now built from dashboard entries: same look as the
         Elementor cards it replaced (section 44). ---- */
.uw-why--dyn { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.uw-why--dyn .uw-why-card { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; background: var(--uw-surface); border-radius: 5px; padding: 30px; min-height: 384px; }
.uw-why--dyn .uw-why-card__top, .uw-why--dyn .uw-why-card__bottom { display: flex; flex-direction: column; gap: 20px; }
.uw-why--dyn .elementor-heading-title { margin: 0; }
@media (max-width: 900px) { .uw-why--dyn { grid-template-columns: 1fr; } .uw-why--dyn .uw-why-card { min-height: 0; gap: 40px; } }

/* ---- 61. Team login popup (footer link). ---- */
.uw-lg { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: flex-end; justify-content: center; }
.uw-lg[hidden] { display: none !important; }
html.uw-lg-open, html.uw-lg-open body { overflow: hidden; }
.uw-lg__scrim { position: absolute; inset: 0; background: rgba(17, 17, 17, .55); }
.uw-lg__panel { position: relative; width: 100%; max-width: 420px; background: var(--uw-surface); border-radius: 12px 12px 0 0; padding: 28px 22px calc(24px + env(safe-area-inset-bottom)); display: grid; gap: 14px; font-family: var(--uw-font); }
@media (min-width: 600px) { .uw-lg { align-items: center; } .uw-lg__panel { border-radius: 5px; padding: 36px 32px 30px; } }
.uw-lg__x { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border: 0 !important; background: transparent !important; color: var(--uw-slate) !important; font-size: 26px; line-height: 1; padding: 0; cursor: pointer; }
.uw-lg__kicker { margin: 0; font-size: 14px; line-height: 20px; color: var(--uw-slate); }
.uw-lg__title { margin: -6px 0 6px; font-size: 22px; line-height: 30px; font-weight: 500; color: var(--uw-ink); }
.uw-lg__field { display: grid; gap: 6px; font-size: 14px; line-height: 20px; color: var(--uw-ink); font-weight: 500; }
.uw-lg__field input { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #d6d6d6; border-radius: 6px; font: inherit; font-size: 16px; font-weight: 400; background: #fff; color: var(--uw-ink); }
.uw-lg__field input:focus { outline: none; border-color: var(--uw-forest); box-shadow: 0 0 0 3px color-mix(in srgb, var(--uw-forest) 18%, transparent); }
.uw-lg__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.uw-lg__check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--uw-slate); }
.uw-lg__check input { width: 18px; height: 18px; accent-color: var(--uw-forest); }
.uw-lg__msg { margin: 0; font-size: 14px; line-height: 20px; color: #B42318; }
.uw-lg__msg:empty { display: none; }
.uw-lg__btn { min-height: 48px; border-radius: 6px !important; border: 0 !important; background: var(--uw-forest) !important; color: #fff !important; font: inherit; font-size: 16px; cursor: pointer; }
.uw-lg__btn:disabled { opacity: .7; }
.uw-lg__lost { justify-self: center; font-size: 14px; color: var(--uw-slate) !important; }
/* Reviews page: the rows use the full content width, whatever column the page text sits in. */
.elementor-widget.uw-reviews-page { max-width: none !important; position: relative; left: 50%; transform: translateX(-50%); width: min(var(--uw-content), calc(100vw - 2 * var(--uw-gutter) - 40px)) !important; margin: 0 0 var(--uw-section-air); }
.uw-reviews .uw-rev__quote { margin: 0 !important; padding: 0 !important; border: 0 !important; font-size: 18px !important; line-height: 27px !important; color: var(--uw-slate) !important; }
@media (max-width: 767px) { .elementor-widget.uw-reviews-page { width: 100% !important; left: 0; transform: none; } .uw-reviews .uw-rev__quote { font-size: 17px !important; line-height: 26px !important; } }
.uw-reviews .uw-rev__name { margin: 0 !important; } .uw-reviews .uw-rev__trip { margin: 4px 0 0 !important; } .uw-reviews .uw-rev__n { margin-bottom: 0 !important; }
/* Cards of the same kind line up: same photo height (2:1), summaries capped at three lines. */
.uw-card__media img { object-position: 50% 40%; }
.uw-card .uw-card__body .uw-small { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* Destination cards everywhere use the Parks and Reserves format (section 46): same grid,
   same breakpoints, on archives, related sections and sliders. */
.uw-grid:has(> .uw-park) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.uw-slider .uw-park { flex: 0 0 calc((100% - 40px) / 3); min-width: 0; }
.uw-rail-x > .uw-park { scroll-snap-align: start; }
@media (max-width: 1024px) { .uw-slider .uw-park { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 767px) { .uw-grid:has(> .uw-park) { grid-template-columns: 1fr; } .uw-slider .uw-park { flex-basis: 100%; } }
/* Contextual links added to body text (inc/seo-links.php). */
a.uw-autolink { color: var(--uw-forest); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--uw-forest) 35%, transparent); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a.uw-autolink:hover { text-decoration-color: currentColor; }
.uw-on-dark a.uw-autolink { color: var(--uw-ondark); text-decoration-color: rgba(255,255,255,.5); }
/* Horizontal logo (circle + words): compact in the header, on a forest tile in the footer. */
.uw-logo-img img { height: 46px !important; width: auto !important; }
.uw-foot-logo-img img { width: auto !important; height: 64px !important; padding: 14px 18px !important; }
@media (max-width: 1024px) { .uw-logo-img img { height: 40px !important; } }
@media (max-width: 767px) { .uw-logo-img img { height: 34px !important; } .uw-foot-logo-img img { height: 52px !important; padding: 12px 14px !important; } }

/* ---- 62. Phones & tablets review (Sept 2026) ---- */
/* Nothing smaller than 12px */
.uw-hero__card-t, .uw-rail-card .uw-hero__card-t { font-size: 12px; line-height: 16px; }
.uw-svc-slide__tag { font-size: 12px; line-height: 14px; }
.uw-facts__basis { font-size: max(12px, .58em); }
/* Anchor bar: a soft fade on the right shows it scrolls sideways */
@media (max-width: 1024px) {
  .uw-anchors { scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); scroll-padding-inline: 8px; }
  .uw-anchors::-webkit-scrollbar { display: none; }
}
/* Phone/tablet menu: sub-menu items read like the main items, just indented */
.uw-menu .elementor-nav-menu--dropdown .sub-menu { background: transparent !important; border: 0 !important; box-shadow: none !important; margin: 0 !important; padding: 0 0 6px !important; }
.uw-menu .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item {
  font-size: 15px !important; line-height: 22px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: -0.02em !important;
  color: var(--uw-slate) !important; padding: 10px 20px 10px 36px !important; border: 0 !important;
}
.uw-menu .elementor-nav-menu--dropdown .sub-menu li.uw-sub-all a.elementor-sub-item { color: var(--uw-forest) !important; font-weight: 500 !important; }
/* The desktop menu never shows the helper line */
.uw-menu .elementor-nav-menu--main .uw-sub-all { display: none !important; }
/* Service slides: text stays readable over bright photos on small screens */
@media (max-width: 767px) { .uw-svc-slide__panel { background: rgba(0, 0, 0, .52); padding: 24px; } }
/* Slider dots: bigger touch area, same look */
.uw-svc-dot { position: relative; }
.uw-svc-dot::after { content: ""; position: absolute; left: -4px; right: -4px; top: -16px; bottom: -16px; }
/* Tablets: park cards two to a row */
@media (min-width: 768px) and (max-width: 1023px) { .uw-grid:has(> .uw-park) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Footer on phones: two link columns side by side, comfortable tap targets */
@media (max-width: 767px) {
  .e-con.uw-foot-cols { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 20px; }
  .e-con.uw-foot-cols > .e-con.uw-foot-col:nth-child(3) { grid-column: 1 / -1; }
  .e-con.uw-foot-cols > .e-con.uw-foot-col:nth-child(3) .uw-foot-links ul { grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .uw-foot-links ul { gap: 0; }
  .uw-foot-links a { display: block; padding: 7px 0; }
  .uw-foot-line a { display: inline-block; padding: 10px 0; }
}
/* Form consent tick: big enough to hit with a thumb */
.uw-form .elementor-field-type-acceptance input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--uw-forest); vertical-align: -4px; margin-right: 8px; }
/* Multiple-choice ticks (planner form): larger ticks and labels, two columns on phones */
.elementor-form .elementor-field-type-checkbox .elementor-field-subgroup,
.elementor-form .elementor-field-type-radio .elementor-field-subgroup { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; }
@media (min-width: 768px) {
  .elementor-form .elementor-field-type-checkbox .elementor-field-subgroup,
  .elementor-form .elementor-field-type-radio .elementor-field-subgroup { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.elementor-form .elementor-field-subgroup .elementor-field-option { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; }
.elementor-form .elementor-field-subgroup .elementor-field-option input { width: 20px; height: 20px; flex: none; margin: 0; accent-color: var(--uw-forest); }
.elementor-form .elementor-field-subgroup .elementor-field-option label { font-size: 15px; line-height: 20px; color: var(--uw-ink); margin: 0; }
.elementor-form .elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: flex-start; gap: 10px; }
.elementor-form .elementor-field-type-acceptance input[type=checkbox] { width: 20px; height: 20px; flex: none; margin: 2px 0 0; accent-color: var(--uw-forest); }
/* Hero buttons: always the same size as each other (both take the wider label's width).
   Narrow phones stack them, still equal. */
.uw-hero__actions { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: fit-content; max-width: 100%; margin-inline: auto; }
.uw-hero--page .uw-hero__actions { margin-inline: 0; }
.uw-hero__actions .uw-hero__cta { justify-content: center; text-align: center; white-space: nowrap; }
@media (max-width: 440px) { .uw-hero__actions { gap: 12px; } .uw-hero__actions .uw-hero__cta { padding-left: 12px; padding-right: 12px; } }
@media (max-width: 379px) { .uw-hero__actions { grid-auto-flow: row; } }
/* Inner pages have longer labels ("Enquire about this trip"): on phones they stack, equal width */
@media (max-width: 440px) { .uw-hero--page .uw-hero__actions { grid-auto-flow: row; } }
/* Footer bottom line (Login · copyright): same content width as the logo and link columns
   above it, which sit inside two 10px container paddings. */
.e-con .elementor-widget.uw-foot-copy { width: auto !important; margin-left: 20px; margin-right: 20px; }
/* Footer link columns: the three columns share 60% of the footer width, a third each,
   text starting just after each divider. Desktop: logo block on the left, columns on the right.
   Tablets and small laptops (columns below the logo): the full width, still a third each,
   because 60% there would squeeze the links onto two lines. */
@media (min-width: 768px) {
  .e-con.uw-foot-cols { --gap: 0px; gap: 0 !important; --width: 100%; width: 100%; max-width: 100%; }
  .e-con.uw-foot-cols > .e-con.uw-foot-col { flex: 0 0 33.3333%; --width: 33.3333%; max-width: 33.3333%; min-width: 0; box-sizing: border-box; --padding-left: 0px; --padding-right: 20px; }
  .e-con.uw-foot-cols > .e-con.uw-foot-col + .e-con.uw-foot-col { --padding-left: 28px; }
  .e-con.uw-foot-cols > .e-con.uw-foot-col:last-child { --padding-right: 0px; }
}
@media (min-width: 1200px) {
  .e-con.uw-foot-cols { --width: 60%; width: 60%; flex: 0 0 60%; }
  .e-con.uw-foot-row { flex-wrap: nowrap !important; }
  .e-con.uw-foot-row > .e-con.uw-foot-news { flex: 0 1 auto; max-width: calc(40% - 40px); }
}

/* Gallery, desktop: justified rows (sizes set by uw.js; 10px spacing as in the Elementor gallery) */
@media (min-width: 1025px) {
  .uw-gallery.is-justified { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
  .uw-gallery.is-justified > figure { flex: none; margin: 0 !important; aspect-ratio: auto !important; grid-column: auto; }
}
