/* ==========================================================================
   Elite by Phyl — global custom CSS
   --------------------------------------------------------------------------
   Shipped by the theme as assets/css/brand.css. It can also be pasted into
   Elementor > Site Settings > Custom CSS, or Appearance > Customize >
   Additional CSS on a site not using this theme.

   The templates carry their own styling inline, the way Elementor works
   natively. This file only covers what Elementor's per-widget controls cannot
   reach: link colours inside rich text, form step indicators, the data tables
   and breadcrumbs that ship as raw HTML, and the scroll offset that keeps a
   sticky header from covering an anchor target.
   ========================================================================== */

:root {
  /* Fallbacks only: assets/css/palette-identity.css sets the real values.
     These match it, so the site is on-brand even if that file fails to load. */
  --ebp-navy:        #0E4B5D;
  --ebp-navy-deep:   #041316;
  --ebp-navy-soft:   #17636F;
  --ebp-gold:        #2D9A9A;
  --ebp-gold-light:  #A8F0F0;
  --ebp-cream:       #E9F4F3;
  --ebp-ink:         #26454B;
  --ebp-muted:       #547174;
  --ebp-muted-light: #A7C8CE;
  --ebp-border:      #C4DAD9;

  /* Messages (colour system): meaning only, never decoration. */
  --ebp-success-bg:  #E3F4EC;
  --ebp-success:     #1E5A40;
  --ebp-error-bg:    #FBEAEA;
  --ebp-error:       #7E2A2A;

  /* rgb triples for translucent shadows and focus rings. Overridden per
     scheme by assets/css/palette-<slug>.css. */
  --ebp-primary-rgb: 14, 75, 93;
  --ebp-deep-rgb:    4, 19, 22;
  --ebp-accent-rgb:  45, 154, 154;

  /* Easing. The built-in keywords are too weak to read as deliberate; these
     are the standard strong curves. Entering and exiting UI uses ease-out,
     because ease-in delays the moment the user is actually watching. */
  --ebp-ease-out:    cubic-bezier(0.23, 1, 0.32, 1);
  --ebp-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);

  /* Motion speeds (brand motion system): fast for hovers and colour, base
     for small movements, slow for photos and larger movement. */
  --ebp-dur-fast:    .18s;
  --ebp-dur-base:    .25s;
  --ebp-dur-slow:    .6s;
}

/* --------------------------------------------------------------------------
   Keyboard focus (UI kit). One rule for every clickable thing: a 3px ring
   with a 3px gap, Eden Blue on light grounds and Viking Blue on dark ones
   (brand-filled sections, photos, the footer), so it is always visible.
   -------------------------------------------------------------------------- */
a:focus-visible, button:focus-visible, summary:focus-visible,
[role="button"]:focus-visible, [tabindex]:focus-visible,
.elementor-button:focus-visible {
  outline: 3px solid var(--ebp-focus, #0E4B5D) !important;
  outline-offset: 3px;
}
:root { --ebp-focus: var(--ebp-navy); }
.ebp-on-dark, .ebp-footer, .ebp-slideshow, .ebp-reviews,
.elementor-location-footer { --ebp-focus: #55D8D8; }
/* Back on a light card inside a dark band, the ring goes dark again. */
.ebp-on-dark .ebp-light, .ebp-footer .ebp-light { --ebp-focus: var(--ebp-navy); }

/* --------------------------------------------------------------------------
   1. Links inside body copy
   -------------------------------------------------------------------------- */
.elementor-widget-text-editor a {
  color: var(--ebp-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--ebp-gold);
  transition: color var(--ebp-dur-fast) var(--ebp-ease-out), border-color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.elementor-widget-text-editor a:hover {
  color: var(--ebp-gold);
  border-bottom-color: var(--ebp-navy);
}

/* Footer links sit on navy, so they need the inverse treatment. */
footer .elementor-widget-text-editor a,
.elementor-location-footer .elementor-widget-text-editor a {
  color: var(--ebp-muted-light);
  border-bottom-color: transparent;
}
footer .elementor-widget-text-editor a:hover,
.elementor-location-footer .elementor-widget-text-editor a:hover {
  color: var(--ebp-gold-light);
  border-bottom-color: var(--ebp-gold-light);
}

/* --------------------------------------------------------------------------
   2. Anchor offset
   The Services page jump links (#travel-essentials, #customize-your-travel)
   must clear the sticky header.
   -------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }
.elementor-menu-anchor { scroll-margin-top: 110px; }

/* --------------------------------------------------------------------------
   3. Forms
   -------------------------------------------------------------------------- */
.ebp-step-intro {
  margin: 0 0 4px;
  color: var(--ebp-muted);
  font-size: 15px;
  line-height: 1.7;
}

/* Field labels: small, confident, not shouty. */
.elementor-field-group > label {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 11.5px !important;
  color: var(--ebp-navy);
}

.elementor-field-group .elementor-field {
  padding: 14px 16px !important;
  transition: border-color var(--ebp-dur-fast) var(--ebp-ease-out), box-shadow var(--ebp-dur-fast) var(--ebp-ease-out);
}
.elementor-field-group .elementor-field:focus {
  border-color: var(--ebp-navy) !important;
  box-shadow: 0 0 0 3px rgba(85, 216, 216, .45);
  outline: none;
}

/* --------------------------------------------------------------------------
   Multi-step progress indicator.

   Elementor gives each step a narrow flex cell and lets the label wrap inside
   it, which breaks a multi-word label into one word per line. Fixing it needs
   three things: the step laid out as a centred column, the label allowed to
   size itself, and the connecting rule aligned to the middle of the numbers.
   -------------------------------------------------------------------------- */
.e-form__indicators {
  display: flex;
  align-items: flex-start;
  margin-bottom: 30px;
  gap: 0;
}

.e-form__indicators__indicator {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
  padding: 0 6px;
}

.e-form__indicators__indicator__label {
  white-space: nowrap;
  text-align: center;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.3;
}

/* The rule between steps sits level with the centre of the number circles. */
.e-form__indicators__indicator__separator {
  flex: 1 1 auto;
  margin-top: 17px;
  min-width: 24px;
}

/* Number circles. Stated explicitly because Elementor's own colour controls
   for the inactive and completed states are inconsistent between versions. */
.e-form__indicators__indicator__icon {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  flex: 0 0 auto;
}
.e-form__indicators__indicator--state-inactive .e-form__indicators__indicator__icon {
  background-color: #fff !important;
  border: 1px solid var(--ebp-border) !important;
  color: var(--ebp-muted) !important;
}
.e-form__indicators__indicator--state-inactive .e-form__indicators__indicator__label {
  color: var(--ebp-muted) !important;
}
.e-form__indicators__indicator--state-active .e-form__indicators__indicator__icon,
.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__icon {
  background-color: var(--ebp-accent) !important;
  border: 1px solid var(--ebp-accent) !important;
  color: var(--ebp-on-accent) !important;
}
.e-form__indicators__indicator--state-active .e-form__indicators__indicator__label,
.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
  color: var(--ebp-primary) !important;
}
.e-form__indicators__indicator__progress__meter {
  background-color: var(--ebp-accent) !important;
}

@media (max-width: 600px) {
  /* Numbers alone below this width — three labels will not fit on a phone. */
  .e-form__indicators__indicator__label { display: none; }
  .e-form__indicators__indicator__separator { margin-top: 17px; }
}

/* Buttons inside the multi-step form should match site buttons. */
/* "Continue" between steps is solid Eden; coral is kept for the final
   submit, which is the Plan My Trip action itself (UI kit). */
.e-form__buttons__wrapper__button-next {
  background-color: var(--ebp-navy) !important;
  color: #fff !important;
}
.e-form__buttons__wrapper__button-next:hover { filter: brightness(.86); }
.e-form__buttons__wrapper__button-previous {
  background-color: transparent !important;
  color: var(--ebp-navy) !important;
  border: 1px solid var(--ebp-border) !important;
}
.e-form__buttons__wrapper__button-previous:hover {
  background-color: var(--ebp-navy) !important;
  color: #fff !important;
}

/* --------------------------------------------------------------------------
   4. Cards and image tiles
   Motion is what separates a designed page from a stack of boxes. Kept
   restrained: a small lift, a slightly deeper shadow, nothing bouncy.
   -------------------------------------------------------------------------- */
.ebp-card {
  transition: transform var(--ebp-dur-base) var(--ebp-ease-out), box-shadow var(--ebp-dur-base) var(--ebp-ease-out);
}

/* Hover motion is gated: on a touch screen a tap fires a false hover, and the
   card would stay lifted after the finger left. The shadow is ungated because
   it is paint, not movement, and reads as depth rather than as a response.

   will-change lives here rather than on .ebp-card. A destination grid holds up
   to 24 cards and a country page more; promoting every one of them to its own
   compositor layer for a hover that may never happen costs memory on exactly
   the devices least able to spare it. */
@media (hover: hover) and (pointer: fine) {
  .ebp-card:hover {
    transform: translateY(-6px);
    will-change: transform;
    box-shadow: 0 28px 56px -28px rgba(var(--ebp-deep-rgb), .45) !important;
  }
}

.ebp-tile {
  overflow: hidden;
  transition: box-shadow var(--ebp-dur-base) var(--ebp-ease-out);
}
.ebp-tile::after {
  /* Hairline inner edge so a photo never sits flush against a white section. */
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .10);
  pointer-events: none;
}
.ebp-tile:hover { box-shadow: 0 24px 50px -26px rgba(var(--ebp-deep-rgb), .5); }

/* Respect a user's reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
  .ebp-card, .ebp-tile { transition: none; }
  .ebp-card:hover { transform: none; }
}

/* --------------------------------------------------------------------------
   5. Data tables
   Used by the visa fee schedule and by the "when to visit" season table on
   every destination page. Related columns readers scan across, so they stay
   real tables. On a phone they scroll sideways inside their own container
   rather than squeezing into an unreadable width.
   -------------------------------------------------------------------------- */
.ebp-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--ebp-border);
  border-radius: 2px;

  /* A flex item will not shrink below its content by default, so the 720px
     table was forcing this wrapper to 722px inside a 375px screen: the
     overflow-x never engaged, and html's overflow guard simply clipped the
     fee columns off the side of the page where nobody could scroll to them. */
  min-width: 0;
}

/* Same reason, one level up: the widget wrapper holding the table is itself a
   flex item. */
.elementor-widget-html,
.elementor-widget-text-editor,
.e-wid { min-width: 0; max-width: 100%; }

.ebp-table {
  width: 100%;
  min-width: 460px;
  border-collapse: collapse;
  font-family: Montserrat, sans-serif;
  font-size: 14.5px;
  background: #fff;
}
/* The visa fee table has four columns and needs more room than the two-column
   season tables on the destination pages. */
.ebp-table--visa { min-width: 720px; }

.ebp-table thead th {
  background: var(--ebp-primary);
  color: #fff;
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 14px 16px;
  white-space: nowrap;
}
.ebp-table td {
  padding: 15px 16px;
  border-bottom: 1px solid var(--ebp-border);
  color: var(--ebp-ink);
  vertical-align: top;
  line-height: 1.55;
}
.ebp-table tbody tr:nth-child(even) { background: var(--ebp-surface); }
.ebp-table tbody tr:last-child td { border-bottom: 0; }
.ebp-table td:first-child { font-weight: 600; white-space: nowrap; }
.ebp-table .ebp-fee {
  font-weight: 600;
  color: var(--ebp-primary);
  white-space: nowrap;
}
.ebp-table td:last-child { color: var(--ebp-muted); font-size: 13.5px; }

/* Hint that the table scrolls, on the widths where it does. */
@media (max-width: 780px) {
  .ebp-table-wrap { position: relative; }
  .ebp-table-wrap::after {
    content: "";
    position: sticky;
    right: 0; top: 0;
    display: block;
    width: 28px;
    height: 100%;
    pointer-events: none;
  }
}

/* --------------------------------------------------------------------------
   6. Accordion (FAQ)
   -------------------------------------------------------------------------- */
.elementor-accordion .elementor-accordion-item {
  border-left: none;
  border-right: none;
  border-top: none;
}
.elementor-accordion .elementor-tab-title { padding: 22px 4px; }
.elementor-accordion .elementor-tab-content { padding: 0 4px 24px; }

/* --------------------------------------------------------------------------
   7. Print — legal pages get printed and filed
   -------------------------------------------------------------------------- */
@media print {
  header, footer, .elementor-widget-button, .e-con[data-ebp-cta] { display: none !important; }
  body { color: #000; }
}

/* --------------------------------------------------------------------------
   8. Wayfinding — the site is four levels deep

   With 92 destinations and 92 itineraries under six regions, a visitor who
   arrives from search needs to know where they landed, and a visitor who
   already knows the country should not have to scroll a grid of cards to
   reach it. The breadcrumb answers the first; the A-Z directory the second.
   -------------------------------------------------------------------------- */
.ebp-crumbs {
  font-family: Montserrat, sans-serif;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--ebp-muted);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  width: 100%;
}
.ebp-crumbs a {
  color: var(--ebp-muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.ebp-crumbs a { position: relative; }
/* 44px tall tap area, no visual change (accessibility: target size). */
.ebp-crumbs a::after { content: ""; position: absolute; left: 0; right: 0; top: -12px; bottom: -12px; }
.ebp-crumbs a:hover {
  color: var(--ebp-primary);
  border-bottom-color: var(--ebp-accent);
}
.ebp-crumbs span:last-child { color: var(--ebp-primary); font-weight: 600; }
.ebp-crumb-sep { color: var(--ebp-border); }

.ebp-az {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  font-family: Montserrat, sans-serif;
  font-size: 15px;
}
.ebp-az li {
  display: flex;
  gap: 18px;
  align-items: baseline;
  padding: 13px 0;
  border-bottom: 1px solid var(--ebp-border);
}
.ebp-az li:last-child { border-bottom: 0; }
.ebp-az-key {
  flex: 0 0 auto;
  min-width: 2.4em;
  font-family: Fraunces, Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--ebp-accent);
  line-height: 1.2;
}
.ebp-az-list { color: var(--ebp-ink); line-height: 1.9; }
.ebp-az-list a {
  color: var(--ebp-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--ebp-border);
}
.ebp-az-list a:hover {
  color: var(--ebp-primary);
  border-bottom-color: var(--ebp-accent);
}

/* Grouped itinerary lists put a country name in the key column, so it needs
   room the single-letter version does not. */
.ebp-az-key:not(:only-child) { min-width: 0; }
.ebp-az li:has(.ebp-az-key:not(:empty)) .ebp-az-key { white-space: nowrap; }

@media (max-width: 620px) {
  .ebp-az li { flex-direction: column; gap: 4px; }
}

/* Opening hours on the contact page. A definition list rather than .ebp-az:
   the day is a label, not a heading, so it stays in the body face at body
   size. Saturday and Sunday keep their own rows because they keep their own
   hours, and a visitor who reads only the first line should still be right
   about a weekday. */
.ebp-hours {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  font-family: Montserrat, sans-serif;
  font-size: 15px;
}
.ebp-hours li {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  justify-content: space-between;
  padding: 9px 0;
  border-bottom: 1px solid var(--ebp-border);
}
.ebp-hours li:last-child { border-bottom: 0; }
.ebp-hours dt,
.ebp-hours .ebp-hours-day { color: var(--ebp-muted); }
.ebp-hours .ebp-hours-time {
  color: var(--ebp-ink);
  font-weight: 600;
  text-align: right;
}

/* --------------------------------------------------------------------------
   9. Itinerary day logistics and editorial notes

   "Accommodation: [Lodge Name] · Meals: Breakfast · Lunch" is reference
   information, not prose, so it is set apart from the day's description.
   -------------------------------------------------------------------------- */
.ebp-day-meta {
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid var(--ebp-border);
}
.ebp-day-meta ul { display: flex !important; flex-wrap: wrap; gap: 8px 28px; margin: 0; padding: 0; }
.ebp-day-meta li { display: inline-flex !important; align-items: center !important; gap: 8px !important; margin: 0 !important; padding: 0 !important; }
.ebp-day-meta li::after { display: none !important; }
.ebp-day-meta .elementor-icon-list-icon { display: inline-flex; padding: 0 !important; }
.ebp-day-meta li i { line-height: 1 !important; }
.ebp-day-meta .elementor-icon-list-text { padding: 0 !important; }
.ebp-day-meta b { font-weight: 600; color: var(--ebp-navy); }

/* Notes to the site's editors. Deliberately conspicuous: every one of these
   marks something the client still has to supply, and none of them should
   survive to launch. */
.ebp-note,
.ebp-credentials {
  display: inline-block;
  font-family: Montserrat, sans-serif;
  font-size: 13px;
  line-height: 1.65;
  color: var(--ebp-muted);
  background: rgba(var(--ebp-accent-rgb), .07);
  border-left: 2px solid var(--ebp-accent);
  padding: 10px 14px;
  border-radius: 2px;
  text-align: left;
}

/* --------------------------------------------------------------------------
   10. Header — the navigation bar

   Every selector below is one Elementor Pro's nav-menu widget actually
   renders. An earlier version of this section styled invented class names
   (.ebp-menu-list, .ebp-burger) that only the design preview produced, so all
   of it matched in review and none of it on the live site.

   Elementor supplies the burger and the dropdown mechanics; this supplies the
   craft it does not — hover gating, strong easing, a drawer instead of a
   dropped panel, real tap targets, and the "Plan My Trip" button staying
   reachable on a phone.
   -------------------------------------------------------------------------- */

/* Sticky bar: once the visitor scrolls it darkens and gains a shadow, but it
   never changes height. It used to lose 12px of padding here, and because
   the bar is in the page flow that pulled the content up as it switched,
   which could flip it back and forth near the threshold: the bar jumped
   when scrolling up. Only paint-only properties change now. */
.ebp-header {
  transition: background-color var(--ebp-dur-base) var(--ebp-ease-out),
              box-shadow var(--ebp-dur-base) var(--ebp-ease-out);
}
.ebp-header.is-stuck {
  background-color: var(--ebp-deep) !important;
  box-shadow: 0 10px 30px -18px rgba(4, 19, 22, .85);
}

/* Over the hero (pages that open with a dark or photo hero; site.js adds
   .is-over): the bar starts transparent, with a soft Viking Black fade behind
   the menu so white text stays readable on a bright photo, then turns solid
   once the visitor scrolls (.is-stuck, above). The open mobile menu always
   gets the solid bar. */
.ebp-header.is-over:not(.is-stuck) {
  background-color: transparent !important;
  background-image: linear-gradient(180deg, rgba(4, 19, 22, .55) 0%, rgba(4, 19, 22, .18) 70%, rgba(4, 19, 22, 0) 100%) !important;
  box-shadow: none;
}
.ebp-header.is-over:not(.is-stuck):has(.elementor-menu-toggle[aria-expanded="true"]) {
  background-color: var(--ebp-deep) !important;
  background-image: none !important;
}
.ebp-header.is-over.is-stuck { background-image: none !important; }

/* The logo shrinks by transform, not by max-height. max-height is a layout
   property and this runs on scroll alongside the bar condensing. Scale from
   the left edge so the wordmark stays anchored to the corner. */
.elementor-widget-theme-site-logo img {
  transform-origin: left center;
  transition: transform var(--ebp-dur-base) var(--ebp-ease-out);
}
.ebp-header.is-stuck .elementor-widget-theme-site-logo img { transform: scale(.82); }

/* --- cards ----------------------------------------------------------------
   A card's photograph governs its height, so a row of cards is only aligned
   while every image shares one aspect ratio. The bundled tiles do, but the
   client will replace them from the Media Library with whatever their camera
   produced, and a single portrait upload would knock every heading and button
   in its row out of line. Crop in CSS so the grid cannot be broken by the
   contents of an image. */

.ebp-card img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

/* Equal-height cards, with whatever ends the card pinned to the bottom so the
   buttons across a row sit on one line regardless of how long the copy runs.

   flex-grow, not height:100%. The column wrapping each card is stretched to
   the row's height rather than given one, and a percentage height has nothing
   definite to resolve against — so height:100% silently collapsed back to the
   content height, and the margin-top:auto below computed to 0 for want of any
   free space to distribute. */
.ebp-card {
  flex-grow: 1;
  align-self: stretch;
}
.ebp-card > .elementor-widget-button:last-child {
  margin-top: auto;
}


/* --- header fit ------------------------------------------------------------
   Three things the live site showed that the static preview could not, because
   each depends on content the preview does not have. */

/* The menu list was allowed to wrap, so the last item dropped onto a second
   row and doubled the header's height. Six items at 13px never need two rows
   on a desktop; if a seventh is ever added the answer is a shorter label or
   the drawer, not a second row in the middle of the header. */
@media (min-width: 1200px) {
  /* Elementor's own widget-nav-menu.min.css sets flex-wrap:wrap on
     `.elementor-nav-menu--layout-horizontal .elementor-nav-menu` — the same
     specificity as a two-class rule of ours, and it loads after brand.css, so
     an equal-weight rule here silently loses. Both selectors below carry three
     classes so they win on specificity rather than on load order, which is not
     ours to control. */
  .ebp-header .elementor-nav-menu--main .elementor-nav-menu,
  .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    flex-wrap: nowrap;
  }
}

/* Six menu items (Travel Styles was added) fit one line at 1200px and up,
   which is where the drawer gives way to the full menu. A label must never
   break inside itself ("Travel / Styles"). */
@media (min-width: 1200px) {
  .ebp-header .elementor-nav-menu--main .elementor-nav-menu > li { flex-shrink: 0; }
  .ebp-header .elementor-nav-menu--main .elementor-nav-menu a.elementor-item {
    white-space: nowrap;
    display: inline-flex !important;      /* label and its arrow stay together */
    align-items: center;
  }
}
/* The header button's label never breaks across two lines. */
.ebp-cta-col .elementor-button,
.ebp-header .elementor-button {
  white-space: nowrap;
}

/* Until a logo is uploaded, Elementor's Site Logo widget renders its own
   placeholder — 164x109 on this build, which alone pushed the header from
   106px to 166px. Capping the height means an unset logo, or an oversized
   one, cannot resize the header. Replace it at Customizer > Site Identity. */
.ebp-logo-col img {
  max-height: 52px;
  width: auto;
  object-fit: contain;
}


/* --- mobile drawer, asserted over Elementor --------------------------------
   Everything that positions the drawer is written above against
   `nav.elementor-nav-menu--dropdown` — one class and one element. Elementor
   styles the same node as `.elementor-nav-menu__container.elementor-nav-menu--dropdown`,
   two classes, and wins: on the live site the panel kept Elementor's
   max-height:0 and scaleY(0), so the burger opened a drawer with no height.
   These re-assert the handful of properties that decide whether it is on
   screen at all, at a weight Elementor cannot outrank. */

@media (max-width: 1199px) {
  .ebp-header nav.elementor-nav-menu--dropdown {
    position: fixed !important;
    inset: 0 0 0 auto !important;
    width: min(88vw, 380px) !important;
    max-height: none !important;
    height: auto !important;
    overflow-y: auto !important;
    transform: translateX(100%) !important;
    z-index: 50 !important;
  }
  .ebp-header .elementor-menu-toggle[aria-expanded="true"] ~ nav.elementor-nav-menu--dropdown {
    transform: translateX(0) !important;
  }
}


/* --- footer ---------------------------------------------------------------
   Every link in the footer is a raw <a> inside a text widget. Elementor's
   text-colour setting styles the paragraph, never the anchors inside it, so
   without this block the browser default wins and the whole footer renders in
   #0000EE underlined. One rule on the band owns all of them. */

.ebp-footer a {
  color: var(--ebp-muted-light);
  text-decoration: none;
  transition: color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-footer a:hover { color: var(--ebp-accent); }
.ebp-footer a:focus-visible {
  outline: 3px solid var(--ebp-focus);
  outline-offset: 3px;
  border-radius: 1px;
}

/* Link columns. Lists rather than <br>-separated anchors: the run of breaks
   gave every column the paragraph line-height, which is set for prose and too
   tight to aim at, and left no way to size the gap independently. */
.ebp-foot-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ebp-foot-list li + li { margin-top: 11px; }
.ebp-foot-list a {
  display: inline-block;
  position: relative;
  line-height: 1.35;
}
/* The same centre-growing underline the main menu uses, so a link behaves the
   same way wherever it appears on the site. */
.ebp-foot-list a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: var(--ebp-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--ebp-dur-base) var(--ebp-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .ebp-foot-list a:hover::after { transform: scaleX(1); }
}

/* Contact block. A label column and a value column, so the four values line up
   instead of starting at four different x positions after their prefixes. */
.ebp-foot-contact {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ebp-foot-contact li {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 0 10px;
  align-items: baseline;
  line-height: 1.45;
}
.ebp-foot-contact li + li { margin-top: 9px; }
.ebp-foot-contact span {
  font-size: 11.5px;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .42);
}

/* Legal bar. The separators are literal middots in the copy; nowrap keeps a
   two-word policy name from breaking across the middot that follows it. */
.ebp-foot-legal a { white-space: nowrap; }
.ebp-foot-legal a:hover { text-decoration: underline; text-underline-offset: 3px; }


/* --- desktop menu --------------------------------------------------------- */
.elementor-nav-menu--main .elementor-nav-menu {
  display: flex;
  align-items: center;
  gap: 22px;
  justify-content: flex-end;
  list-style: none;
  margin: 0;
  padding: 0;
}
.elementor-nav-menu--main .elementor-nav-menu > li { position: relative; }

.elementor-nav-menu--main .elementor-item {
  color: #fff;
  text-decoration: none;
  display: inline-block;
  padding: 8px 0;
  position: relative;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .6px;
  transition: color var(--ebp-dur-fast) var(--ebp-ease-out);
}

/* Underline growing from the centre. scaleX rather than animating left/right:
   those are layout properties and would run layout and paint on every frame
   of a hover, six menu items over. */
.elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--ebp-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--ebp-dur-base) var(--ebp-ease-out);
}
.elementor-nav-menu--main .elementor-nav-menu > li:focus-within > .elementor-item::after,
.elementor-nav-menu--main .elementor-nav-menu > .current-menu-item > .elementor-item::after,
.elementor-nav-menu--main .elementor-nav-menu > .current-menu-ancestor > .elementor-item::after {
  transform: scaleX(1);
}

/* --- desktop submenu ------------------------------------------------------ */
.elementor-nav-menu--main .sub-menu {
  list-style: none;
  margin: 0;
  padding: 10px 0;
  position: absolute;
  top: 100%;
  left: -18px;
  min-width: 216px;
  background: var(--ebp-deep);
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: 2px;
  box-shadow: 0 24px 48px -28px rgba(4, 19, 22, .9);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity var(--ebp-dur-fast) var(--ebp-ease-out),
              transform var(--ebp-dur-fast) var(--ebp-ease-out),
              visibility .18s;
  z-index: 60;
}
.elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.elementor-nav-menu--main .sub-menu .elementor-sub-item {
  display: block;
  padding: 9px 20px;
  font-size: 13.5px;
  color: #fff;
  text-decoration: none;
  border-left: 2px solid transparent;
}

/* Hover is gated throughout: on a touch screen a tap fires a false hover, and
   a flyout would stay open behind the drawer that replaces it. Focus and the
   current-page state are not gated — they must work on touch and by keyboard. */
@media (hover: hover) and (pointer: fine) {
  .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:hover::after {
    transform: scaleX(1);
  }
  .elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover {
    background: rgba(255, 255, 255, .05);
    border-left-color: var(--ebp-accent);
  }
}

/* Chevron on a parent item. Doubles as the tap target that opens the submenu
   inside the drawer, so it is sized as one there. */
.elementor-nav-menu .sub-arrow {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
  margin-left: 6px;
  width: 20px;
  height: 20px;
  position: relative;
  vertical-align: middle;
}
/* Elementor renders its own caret-down SVG inside .sub-arrow, and the chevron
   below is drawn in CSS — showing both is the double arrow. The burger icon is
   hidden the same way a few rules up; this is the same treatment for the
   submenu indicator. */
.elementor-nav-menu .sub-arrow > i,
.elementor-nav-menu .sub-arrow > svg {
  display: none !important;
}

/* Keep the chevron on the same line as the label.

   Elementor sets .sub-arrow to display:flex, which is block-level, so the
   chevron dropped onto a line of its own under the word. An equal-weight rule
   here loses to it — hence !important and the .ebp-header scope, which also
   keeps this away from the mobile drawer, where the arrow is deliberately
   positioned as a 44px tap target instead. */
.ebp-header .elementor-nav-menu--main .sub-arrow {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  position: relative;
  top: -1px;
}
.ebp-header .elementor-nav-menu--main .elementor-nav-menu a.elementor-item {
  display: inline-block !important;
}

.elementor-nav-menu .sub-arrow::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 5px;
  width: 7px;
  height: 7px;
  border-right: 2px solid rgba(255, 255, 255, .65);
  border-bottom: 2px solid rgba(255, 255, 255, .65);
  transform: rotate(45deg);
  transition: transform var(--ebp-dur-base) var(--ebp-ease-out), border-color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.menu-item-has-children.is-open > .sub-arrow::before { transform: rotate(-135deg); }

/* --- burger --------------------------------------------------------------- */
.elementor-menu-toggle {
  display: none;
  background: none;
  border: 0;
  cursor: pointer;
  width: 44px;               /* a real 44px tap target, not a 20px icon */
  height: 44px;
  padding: 12px 9px;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  z-index: 60;
}
.elementor-menu-toggle__bar {
  display: block;
  height: 2px;
  width: 100%;
  background: #fff;
  border-radius: 2px;
  transition: transform var(--ebp-dur-fast) var(--ebp-ease-out), opacity var(--ebp-dur-fast) var(--ebp-ease-out);
}
.elementor-menu-toggle[aria-expanded="true"] .elementor-menu-toggle__bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.elementor-menu-toggle[aria-expanded="true"] .elementor-menu-toggle__bar:nth-child(2) {
  opacity: 0;
}
.elementor-menu-toggle[aria-expanded="true"] .elementor-menu-toggle__bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Elementor ships its own icon inside the toggle, and the three bars above
   replace it — but only where those bars exist. They are in the preview's
   markup and in the theme's fallback header; the Elementor Theme Builder
   header has only Elementor's own SVG. Hiding it unconditionally left a 44px
   button with nothing drawn in it, which is a burger menu that has vanished.
   So hide it only when there is something of ours to show instead. */
.elementor-menu-toggle:has(.elementor-menu-toggle__bar) i,
.elementor-menu-toggle:has(.elementor-menu-toggle__bar) svg { display: none; }

/* No bars: let Elementor's own icon through, sized to the button. */
.elementor-menu-toggle:not(:has(.elementor-menu-toggle__bar)) svg {
  display: block;
  width: 26px;
  height: 26px;
  fill: currentColor;
}
.elementor-menu-toggle:not(:has(.elementor-menu-toggle__bar))[aria-expanded="false"]
  .elementor-menu-toggle__icon--close,
.elementor-menu-toggle:not(:has(.elementor-menu-toggle__bar))[aria-expanded="true"]
  .elementor-menu-toggle__icon--open { display: none; }

.ebp-menu-cta { display: none; }

/* Above the breakpoint the drawer must be gone, not merely unstyled. Every
   rule that positions it off-canvas lives in the max-width block below, so
   without this the container renders as a bare <ul> inside the header — which
   pushes the sticky header to ~490px and buries the page under it. Elementor
   Pro hides it on the live site; the static preview has no Elementor CSS, so
   the rule has to be ours. */
@media (min-width: 1200px) {
  nav.elementor-nav-menu--dropdown { display: none !important; }
}

@media (max-width: 1199px) {
  .elementor-nav-menu--main { display: none; }
  .elementor-menu-toggle { display: flex; }

/* Elementor puts .elementor-nav-menu--dropdown on TWO different things: the
   mobile container <nav>, and every submenu <ul> in the main menu. Selecting
   it bare matched the first submenu in the document instead of the drawer, so
   the drawer laid out at zero width. Every rule below qualifies by element. */
  /* Elementor drops its mobile menu as a panel directly under the header.
     Restyled here as a right-hand drawer: on a tall phone a dropdown pushes
     the page around and the last items land under the fold, where a drawer
     scrolls on its own and leaves the page where it was. */
  nav.elementor-nav-menu--dropdown {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(88vw, 380px);
    background: var(--ebp-deep);
    padding: 92px 26px 40px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    /* A drawer curve, not Material's standard one — that is an ease-in-out
       and starts slow, which is the wrong half to be slow on. */
    transition: transform var(--ebp-dur-base) var(--ebp-ease-drawer);
    box-shadow: -30px 0 60px -30px rgba(4, 19, 22, .9);
    z-index: 50;
    display: block !important;
    max-height: none;
  }
  .elementor-menu-toggle[aria-expanded="true"] ~ nav.elementor-nav-menu--dropdown {
    transform: translateX(0);
  }

  nav.elementor-nav-menu--dropdown .elementor-nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: block;
  }
  nav.elementor-nav-menu--dropdown .menu-item {
    position: relative;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
  }
  nav.elementor-nav-menu--dropdown .elementor-item,
  nav.elementor-nav-menu--dropdown .elementor-sub-item {
    display: block;
    padding: 16px 0;
    font-size: 16px;
    color: #fff;
    text-decoration: none;
  }

  nav.elementor-nav-menu--dropdown .sub-arrow {
    position: absolute;
    right: 0;
    top: 12px;
    width: 44px;
    height: 44px;
    margin: 0;
  }
  nav.elementor-nav-menu--dropdown .sub-arrow::before { top: 17px; left: 18px; }

  /* Submenus become an accordion rather than a hover flyout — there is no
     hover on a touch screen.

     max-height, not the grid 0fr/1fr trick: that trick only sizes the first
     grid row, so with six regions in the list Africa collapsed to zero height
     while the other five rendered normally. */
  nav.elementor-nav-menu--dropdown .sub-menu {
    position: static;
    opacity: 0;
    visibility: visible;
    transform: none;
    background: none;
    border: 0;
    box-shadow: none;
    padding: 0;
    min-width: 0;
    display: block;
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--ebp-dur-base) var(--ebp-ease-out),
                opacity var(--ebp-dur-base) var(--ebp-ease-out);
  }
  nav.elementor-nav-menu--dropdown .menu-item-has-children.is-open > .sub-menu {
    max-height: 460px;
    opacity: 1;
  }
  nav.elementor-nav-menu--dropdown .sub-menu .elementor-sub-item {
    padding: 11px 0 11px 16px;
    border-left: 2px solid rgba(255, 255, 255, .14);
    color: var(--ebp-muted-light);
    font-size: 15px;
  }
  nav.elementor-nav-menu--dropdown .menu-item-has-children.is-open > .sub-menu
    > .menu-item:last-child { padding-bottom: 12px; }

  .ebp-menu-cta { display: block; border-bottom: 0 !important; margin-top: 26px; }
  .ebp-menu-cta .elementor-item {          /* the drawer's Plan My Trip */
    background: var(--ebp-action, var(--ebp-accent));
    color: var(--ebp-on-action, var(--ebp-on-accent));
    text-align: center;
    padding: 16px 20px;
    font-weight: 600;
    font-size: 13.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    border-radius: 2px;
  }
  .ebp-menu-cta .elementor-item::after { display: none; }
}

/* Scrim behind the open drawer. Added by assets/js/site.js. */
.ebp-scrim {
  position: fixed;
  inset: 0;
  background: rgba(4, 19, 22, .55);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--ebp-dur-base) var(--ebp-ease-out), visibility var(--ebp-dur-base);
  z-index: 40;
}
.ebp-scrim.is-open { opacity: 1; visibility: visible; }
body.ebp-menu-open { overflow: hidden; }

/* --------------------------------------------------------------------------
   11. Footer

   Four link columns stacked on a phone is a long scroll to reach the legal
   line, so below the tablet breakpoint each column collapses to a tappable
   heading.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .ebp-foot-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 0;
    background: none;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .10);
    color: #fff;
    font: 600 12px/1 Montserrat, sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
  }
  .ebp-foot-toggle::after {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--ebp-accent);
    border-bottom: 2px solid var(--ebp-accent);
    transform: rotate(45deg);
    transition: transform var(--ebp-dur-base) var(--ebp-ease-out);
  }
  .ebp-foot-toggle[aria-expanded="true"]::after { transform: rotate(-135deg); }

  .ebp-foot-panel {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height var(--ebp-dur-base) var(--ebp-ease-out),
                opacity var(--ebp-dur-base) var(--ebp-ease-out);
  }
  .ebp-foot-panel.is-open { max-height: 420px; opacity: 1; }
}

/* Social icons: a lift on hover, and a proper tap target on touch. */
.elementor-social-icon {
  transition: transform var(--ebp-dur-fast) var(--ebp-ease-out), background-color var(--ebp-dur-fast) var(--ebp-ease-out);
  min-width: 40px;
  min-height: 40px;
}
@media (hover: hover) and (pointer: fine) {
  .elementor-social-icon:hover { transform: translateY(-3px); }
}

/* --------------------------------------------------------------------------
   12. Back to top

   The destination pages run to several thousand pixels and the itineraries
   are longer still. Appears once the visitor is far enough down to want it.
   -------------------------------------------------------------------------- */
.ebp-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: var(--ebp-accent);
  color: var(--ebp-on-accent);
  cursor: pointer;
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity var(--ebp-dur-base) var(--ebp-ease-out),
              transform var(--ebp-dur-base) var(--ebp-ease-out),
              visibility .25s;
  box-shadow: 0 12px 26px -12px rgba(4, 19, 22, .7);
  z-index: 45;
}
.ebp-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.ebp-to-top::before {
  content: "";
  width: 9px;
  height: 9px;
  border-left: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(45deg) translate(1px, 1px);
}

/* --------------------------------------------------------------------------
   12b. Hero slideshow controls: previous / next, pause / play, counter

   WCAG 2.2.2: anything that moves on its own for over five seconds needs a
   way to pause it, and visitors should be able to bring back a photo they
   missed. site.js adds these controls to every .ebp-slideshow hero. 44px+
   targets, readable on any photo (their own dark fill), with the same
   focus ring as the rest of the site.
   -------------------------------------------------------------------------- */
.ebp-slideshow { position: relative; }
/* Pause button and "2 / 4" counter sit together, bottom right. */
.ebp-slideshow > .ebp-slide-bar {
  position: absolute !important;
  right: 20px;
  bottom: 20px;
  z-index: 3 !important;
  display: flex;
  align-items: center;
  gap: 10px;
}
.ebp-slideshow > .ebp-slide-bar[hidden],
.ebp-slideshow > .ebp-slide-arrow[hidden] { display: none; }
.ebp-slide-count {
  min-width: 44px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(4, 19, 22, .55);
  color: #fff;
  font: 600 12px/1 var(--ebp-sans, sans-serif);
  letter-spacing: .08em;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.ebp-sr {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.ebp-slide-toggle {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 999px;
  background: rgba(4, 19, 22, .55);
  color: #fff;
  font: 600 12px/1 var(--ebp-sans, sans-serif);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color var(--ebp-dur-fast) var(--ebp-ease-out), border-color var(--ebp-dur-fast) var(--ebp-ease-out);
}
/* Previous / next: vertically centred on the hero's edges. */
.ebp-slideshow > .ebp-slide-arrow {
  position: absolute !important;
  top: 50%;
  z-index: 3 !important;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 50%;
  background: rgba(4, 19, 22, .45);
  color: #fff;
  cursor: pointer;
  transition: background-color var(--ebp-dur-fast) var(--ebp-ease-out), border-color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-slide-arrow--prev { left: 20px; }
.ebp-slide-arrow--next { right: 20px; }
.ebp-slide-arrow span {
  width: 11px;
  height: 11px;
  border-left: 2px solid currentColor;
  border-top: 2px solid currentColor;
}
.ebp-slide-arrow--prev span { transform: translateX(2px) rotate(-45deg); }
.ebp-slide-arrow--next span { transform: translateX(-2px) rotate(135deg); }
@media (hover: hover) {
  .ebp-slide-toggle:hover,
  .ebp-slideshow > .ebp-slide-arrow:hover { background: rgba(4, 19, 22, .78); border-color: #fff; }
}
.ebp-slideshow > .ebp-slide-arrow:focus-visible,
.ebp-slide-toggle:focus-visible {
  outline: 3px solid var(--ebp-focus);
  outline-offset: 3px;
}
.ebp-slide-toggle__icon { position: relative; width: 10px; height: 12px; }
/* pause: two bars */
.ebp-slide-toggle__icon::before,
.ebp-slide-toggle__icon::after {
  content: "";
  position: absolute;
  top: 0;
  width: 3px;
  height: 12px;
  background: currentColor;
}
.ebp-slide-toggle__icon::before { left: 0; }
.ebp-slide-toggle__icon::after { right: 0; }
/* play: one triangle */
.ebp-slide-toggle.is-paused .ebp-slide-toggle__icon::before {
  width: 0;
  height: 0;
  background: none;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 10px solid currentColor;
}
.ebp-slide-toggle.is-paused .ebp-slide-toggle__icon::after { display: none; }
/* Phones: the hero copy runs edge to edge, so the arrows move down beside
   the bar instead of sitting over the text. */
@media (max-width: 767px) {
  .ebp-slideshow > .ebp-slide-bar { right: 12px; bottom: 12px; }
  .ebp-slideshow > .ebp-slide-arrow { top: auto; bottom: 12px; margin-top: 0; width: 44px; height: 44px; }
  .ebp-slide-arrow--prev { left: 12px; }
  .ebp-slide-arrow--next { left: 64px; right: auto; }
}
/* No autoplay under reduced motion (site.js), and if the visitor presses
   play anyway the photos change in place rather than sliding across. */
@media (prefers-reduced-motion: reduce) {
  .ebp-slide,
  .elementor-background-slideshow .swiper-wrapper,
  .elementor-background-slideshow .swiper-slide { transition: none !important; transition-duration: 0ms !important; }
}

/* Reduced motion means gentler, not none.
   Movement goes: the panel and the accordions arrive without sliding, the
   chevrons and burger snap, the back-to-top does not rise. The opacity fades
   stay, because a scrim or a button appearing instantly is more jarring than
   the fade it replaces, and neither one moves anything. */
@media (prefers-reduced-motion: reduce) {
  nav.elementor-nav-menu--dropdown,
  nav.elementor-nav-menu--dropdown .sub-menu,
  .elementor-nav-menu--main .sub-menu,
  .elementor-menu-toggle__bar,
  .elementor-nav-menu .sub-arrow::before,
  .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item::after,
  .ebp-foot-panel,
  .ebp-foot-toggle::after { transition: none !important; }

  /* The logo keeps its size rather than snapping between two of them. */
  .elementor-widget-theme-site-logo img { transition: none !important; }
  .ebp-header.is-stuck .elementor-widget-theme-site-logo img { transform: none !important; }

  .ebp-scrim { transition: opacity .2s ease, visibility .2s !important; }
  .ebp-to-top {
    transition: opacity .2s ease, visibility .2s !important;
    transform: none !important;
  }
  .elementor-social-icon:hover { transform: none !important; }
}

/* Header columns size to their content rather than to fixed percentages.
   The percentages were a guess, and the guess was wrong: six menu items need
   700px where 56% of a 1200px row gives 650, so "Services" was clipped and
   the Plan My Trip button was pushed off the right edge entirely. */
@media (min-width: 1200px) {
  .ebp-logo-col,
  .ebp-cta-col { flex: 0 0 auto; width: auto !important; }
  .ebp-nav-col { flex: 1 1 auto; width: auto !important; min-width: 0; }
}

/* On a phone the bar reads logo | Plan My Trip | burger: the button comes
   before the menu because it is the thing most visitors are looking for. */
@media (max-width: 1199px) {
  .ebp-nav-col { order: 3; flex: 0 0 auto; width: auto !important; }
  .ebp-cta-col { order: 2; }

  /* The label must not wrap: "Plan My Trip" over three lines turned the bar
     into a 220px-tall block on a phone. */
  .ebp-cta-col .elementor-button,
  .ebp-cta-col a {
    white-space: nowrap;
    padding: 12px 16px !important;
    font-size: 11px !important;
    letter-spacing: .08em !important;
  }
}

@media (max-width: 380px) {
  /* Narrow phones: the wordmark and the button together are too wide, so the
     button loses its label and keeps only its meaning. */
  .ebp-cta-col .elementor-button,
  .ebp-cta-col a { padding: 11px 13px !important; font-size: 10.5px !important; }
}


/* --- header drawer up to 1199px ----------------------------------------------
   Elementor's nav widget switches to its full menu at 1025px (its "tablet"
   breakpoint). Six items, the logo and Contact Us need about 1200px, so from
   1025 to 1199 we keep the burger and drawer instead, overriding Elementor's
   own show/hide at a weight its stylesheet cannot outrank. */
@media (min-width: 1025px) and (max-width: 1199px) {
  .ebp-header .elementor-nav-menu--main { display: none !important; }
  .ebp-header .elementor-menu-toggle { display: flex !important; }
  .ebp-header nav.elementor-nav-menu--dropdown { display: block !important; }
}


/* --- header phone number ------------------------------------------------------
   A tap-to-call link, bold and centred directly under the Contact Us button.
   The column shrinks to the wider of the two and centres both, so the number
   lines up with the button at every width. Two-class selectors outrank the
   `.ebp-cta-col a` button sizing above. */
.ebp-cta-col.e-con,
.ebp-cta-col > .e-con-inner {
  align-items: center !important;
  row-gap: 5px !important;
  gap: 5px !important;
}
.ebp-cta-col { flex: 0 0 auto !important; width: auto !important; }
.ebp-cta-col .elementor-widget { width: auto !important; margin-bottom: 0 !important; }
.ebp-cta-col .elementor-widget-html { text-align: center; }
.ebp-cta-col a.ebp-header-phone {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 !important;
  color: #fff;
  font-family: var(--ebp-sans, inherit);
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: .04em !important;
  line-height: 1.3;
  white-space: nowrap;
  text-decoration: none;
  transition: color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-cta-col a.ebp-header-phone { position: relative; }
/* A 44px tap area around the number without changing how it looks. */
.ebp-cta-col a.ebp-header-phone::after { content: ""; position: absolute; inset: -14px -6px; }
.ebp-cta-col a.ebp-header-phone:hover { color: var(--ebp-accent); }
.ebp-cta-col a.ebp-header-phone:hover span { text-decoration: underline; text-underline-offset: 3px; }
.ebp-cta-col a.ebp-header-phone:focus-visible {
  outline: 3px solid var(--ebp-focus);
  outline-offset: 3px;
  border-radius: 2px;
}
@media (max-width: 1199px) {
  .ebp-cta-col a.ebp-header-phone { font-size: 11.5px !important; gap: 4px; }
}


/* --- review slider -----------------------------------------------------------
   A full-width band in the footer's deep colour; the review sits centred in
   it, the words in the display italic, sliding right to left like the hero
   photos. Every slide shares one grid cell, so the band is as tall as the
   longest review and the page never jumps. Until site.js marks it ready (or
   with no JavaScript) the reviews simply stack. */
.ebp-reviews { width: 100%; margin: 0 auto; }
.elementor-element:has(> .ebp-reviews),
.elementor-element:has(> .elementor-widget-container > .ebp-reviews) {
  align-self: stretch;
  width: 100% !important;
  max-width: 100%;
}
.ebp-reviews__stage { display: flex; align-items: center; gap: 24px; }
.ebp-reviews__track { flex: 1; min-width: 0; display: grid; gap: 28px; overflow: hidden; }
.ebp-reviews.is-ready .ebp-reviews__track { gap: 0; touch-action: pan-y; }
.ebp-reviews.is-ready .ebp-review { grid-area: 1 / 1; }
.ebp-reviews.is-ready .ebp-review:not(.is-active) {
  visibility: hidden;
  opacity: 0;
  transform: translateX(60px);
}
.ebp-reviews.is-ready .ebp-review.is-leaving { transform: translateX(-60px); }
.ebp-review {
  margin: 0;
  background: none;
  color: #fff;
  padding: 10px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity var(--ebp-dur-slow) var(--ebp-ease-out), transform var(--ebp-dur-slow) var(--ebp-ease-out, ease), visibility var(--ebp-dur-slow);
}
.ebp-review__mark {
  font-family: Fraunces, Georgia, serif;
  font-size: 96px;
  line-height: .6;
  height: 40px;
  color: var(--ebp-highlight, var(--ebp-gold-light));
}
.ebp-review__quote { margin: 0 auto 22px; max-width: 820px; border: 0; padding: 0; }
.ebp-review__quote p {
  margin: 0;
  color: #fff;
  font-family: Fraunces, Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.55;
}
.ebp-review__rule { display: block; width: 56px; height: 1px; background: rgba(255,255,255,.3); margin: 0 auto 14px; }
.ebp-review figcaption { display: flex; flex-direction: column; align-items: center; gap: 3px; font-family: Montserrat, sans-serif; }
.ebp-review__name { color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.ebp-review__trip { color: #fff; font-size: 13px; }
.ebp-review__stars { color: var(--ebp-highlight, var(--ebp-gold-light)); font-size: 13px; margin-top: 4px; }
.ebp-review__stars [aria-hidden] { letter-spacing: .12em; margin-right: 6px; }

.ebp-reviews__arrow,
.ebp-reviews__toggle {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,.45);
  cursor: pointer;
  transition: background var(--ebp-dur-fast) var(--ebp-ease-out), color var(--ebp-dur-fast) var(--ebp-ease-out), border-color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-reviews__arrow { width: 48px; height: 48px; border-radius: 50%; padding: 0; }
.ebp-reviews__toggle {
  height: 32px; padding: 0 12px; border-radius: 16px; gap: 6px;
  font: 600 11px/1 Montserrat, sans-serif; letter-spacing: .1em; text-transform: uppercase;
}
.ebp-reviews__arrow:hover,
.ebp-reviews__toggle:hover { background: #fff; color: var(--ebp-navy-deep); border-color: #fff; }
.ebp-reviews__arrow:focus-visible,
.ebp-reviews__toggle:focus-visible,
.ebp-reviews__dot:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 3px; }
.ebp-reviews__arrow svg { width: 18px; height: 18px; }
.ebp-reviews__toggle svg { width: 12px; height: 12px; }

.ebp-reviews__nav { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 22px; }
.ebp-reviews__dots { display: flex; gap: 4px; }
.ebp-reviews__dot {
  width: 24px; height: 24px;               /* 24px target, 10px dot */
  padding: 0; border: 0; background: none; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
}
.ebp-reviews__dot::before {
  content: ""; width: 10px; height: 10px; border-radius: 50%;
  border: 1.5px solid #fff; box-sizing: border-box;
  transition: background var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-reviews__dot[aria-current="true"]::before { background: #fff; }
.ebp-reviews__count { font-family: Montserrat, sans-serif; font-size: 12px; color: var(--ebp-muted-light); min-width: 3.2em; }

/* Phones: the review takes the full width and the arrows join the dots. */
@media (max-width: 767px) {
  .ebp-review { padding: 6px 4px; }
  .ebp-review__quote p { font-size: 19px; }
  .ebp-review__mark { font-size: 76px; height: 32px; }
  .ebp-reviews__stage > .ebp-reviews__arrow { display: none; }
  .ebp-reviews__nav { flex-wrap: wrap; gap: 10px; }
  .ebp-reviews__nav .ebp-reviews__arrow { display: inline-flex; width: 42px; height: 42px; }
}
@media (min-width: 768px) {
  .ebp-reviews__nav .ebp-reviews__arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ebp-review { transition: opacity .2s ease, visibility .2s; }
  .ebp-reviews.is-ready .ebp-review:not(.is-active),
  .ebp-reviews.is-ready .ebp-review.is-leaving { transform: none; }
}


/* --- edge-to-edge header -----------------------------------------------------
   Logo against the left edge, Contact Us against the right, the menu centred
   on the page. The two outer columns share the leftover space equally
   (flex: 1 1 0), so the menu sits on the page's true centre line even though
   the logo and the button are different widths. */
@media (min-width: 1200px) {
  .ebp-header .ebp-logo-col,
  .ebp-header .ebp-cta-col { flex: 1 1 0 !important; width: auto !important; min-width: max-content; }
  .ebp-header .ebp-nav-col { flex: 0 0 auto !important; width: auto !important; }
  .ebp-header .ebp-nav-col .elementor-nav-menu--main .elementor-nav-menu { justify-content: center; }
  /* The button and the phone number stay a centred pair, pushed to the right
     edge: a one-column grid at the end of the cell, items centred in it. */
  .ebp-header .ebp-cta-col.e-con,
  .ebp-header .ebp-cta-col > .e-con-inner {
    display: grid !important;
    justify-content: end;
    justify-items: center;
    align-content: center;
  }
  .ebp-header .ebp-logo-col.e-con,
  .ebp-header .ebp-logo-col > .e-con-inner { align-items: flex-start !important; }
}

/* Smaller laptops: the same layout with less air, so six menu items, the
   logo and the button still fit on one row without a sideways scroll. */
@media (min-width: 1200px) and (max-width: 1359px) {
  .ebp-header { padding-left: 24px !important; padding-right: 24px !important; }
  .ebp-header .elementor-nav-menu--main .elementor-nav-menu,
  .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal .elementor-nav-menu { gap: 16px !important; }
  .ebp-header .ebp-logo-col img { max-height: 46px; }
}
@media (min-width: 1200px) and (max-width: 1279px) {
  .ebp-header .elementor-nav-menu--main .elementor-nav-menu,
  .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal .elementor-nav-menu { gap: 12px !important; }
  .ebp-header .ebp-cta-col .elementor-button { padding-left: 22px !important; padding-right: 22px !important; }
}


/* --- footer newsletter ---------------------------------------------------------
   Email and Sign Up share a row; the consent checkbox sits on its own line
   underneath. Elementor renders the submit button after every field, so the
   checkbox is moved below it with `order`. */
.ebp-newsletter .elementor-form-fields-wrapper,
.ebp-newsletter .frm { display: flex; flex-wrap: wrap; align-items: flex-end; }
.ebp-newsletter .elementor-field-type-email,
.ebp-newsletter .fg-email { order: 1; }
.ebp-newsletter .elementor-field-type-submit,
.ebp-newsletter .fsub { order: 2; }
.ebp-newsletter .elementor-field-type-acceptance,
.ebp-newsletter .fg-acc { order: 3; flex-basis: 100% !important; max-width: 100%; }
.ebp-newsletter .elementor-field-type-acceptance label,
.ebp-newsletter .fg-acc label {
  color: var(--ebp-muted-light) !important;
  font-size: 13px !important;
  line-height: 1.5;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}
.ebp-newsletter .elementor-field-type-acceptance a,
.ebp-newsletter .fg-acc a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.ebp-newsletter input[type="checkbox"] {
  width: 18px !important; height: 18px; margin: 0 10px 0 0 !important;
  accent-color: var(--ebp-accent); vertical-align: -3px; flex: 0 0 auto;
}
@media (max-width: 767px) {
  .ebp-newsletter .elementor-field-type-email,
  .ebp-newsletter .fg-email,
  .ebp-newsletter .elementor-field-type-submit,
  .ebp-newsletter .fsub { flex-basis: 100% !important; max-width: 100%; }
}


/* --- place cards ----------------------------------------------------------------
   Continents, countries and destinations: the photo fills the card and the
   name sits on it over a soft fade, so the picture gets all the room. */
.ebp-place-col { padding: 0 !important; }
/* The card is a linked Elementor container: an Image widget fills it and a
   text container (Heading + two Text Editors) sits on the photo. Sizes and
   colours are set here at class level, so anything changed on a widget in
   the editor still wins. */
.e-con.ebp-place {
  position: relative;
  width: 100% !important;
  align-self: stretch;
  padding: 0 !important;
  aspect-ratio: 4 / 5;
  border-radius: 4px;
  overflow: hidden;
  background: var(--ebp-navy);
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}
.e-con.ebp-place--wide { aspect-ratio: 3 / 2; }
.ebp-place > .ebp-place__img { position: absolute !important; inset: 0; margin: 0 !important; width: 100% !important; height: 100%; }
.ebp-place__img .elementor-widget-container { height: 100%; }
.ebp-place .ebp-place__img img {
  display: block;
  width: 100% !important; height: 100% !important; max-width: none;
  object-fit: cover;
  border-radius: 0;
  transition: transform var(--ebp-dur-slow) var(--ebp-ease-out, ease);
}
.ebp-place::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(4,19,22,0) 45%, rgba(4,19,22,.72) 100%);
  z-index: 1;
  pointer-events: none;
}
.e-con.ebp-place__text {
  position: absolute !important; left: 0; right: 0; bottom: 0; top: auto; z-index: 2;
  width: auto !important;
  padding: 22px 24px;
  gap: 2px;
}
.ebp-place .ebp-place__name .elementor-heading-title {
  margin: 0;
  font-family: Fraunces, Georgia, serif;
  font-weight: 600;
  font-size: 26px;
  line-height: 1.15;
  color: #fff;
  text-shadow: 0 1px 12px rgba(4,19,22,.35);
}
.ebp-place.ebp-place--wide .ebp-place__name .elementor-heading-title { font-size: 30px; }
.ebp-place .ebp-place__sub,
.ebp-place .ebp-place__sub p {
  margin: 0;
  font-family: Montserrat, sans-serif;
  font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.6;
  color: rgba(255,255,255,.85);
}
.ebp-place:hover .ebp-place__img img { transform: scale(1.05); }
.ebp-place:hover .ebp-place__name .elementor-heading-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.ebp-place:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 3px; }
@media (max-width: 767px) {
  .e-con.ebp-place, .e-con.ebp-place--wide { aspect-ratio: 4 / 3; }
  .ebp-place .ebp-place__name .elementor-heading-title,
  .ebp-place.ebp-place--wide .ebp-place__name .elementor-heading-title { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .ebp-place .ebp-place__img img { transition: none; }
  .ebp-place:hover .ebp-place__img img { transform: none; }
}


/* --- place chips ("Explore more" strips) ---------------------------------------- */
.elementor-element:has(> .ebp-chips),
.elementor-element:has(> .elementor-widget-container > .ebp-chips) { width: 100% !important; }
.ebp-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ebp-chip {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 18px 6px 6px;
  background: #fff;
  border: 1px solid var(--ebp-border);
  border-radius: 999px;
  color: var(--ebp-navy);
  font-family: Montserrat, sans-serif; font-weight: 600; font-size: 14px;
  text-decoration: none;
  transition: border-color var(--ebp-dur-fast) var(--ebp-ease-out), background var(--ebp-dur-fast) var(--ebp-ease-out), color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-chip img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.ebp-chip:hover { border-color: var(--ebp-navy); background: var(--ebp-navy); color: #fff; }
.ebp-chip:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 3px; }

.ebp-place .ebp-place__cta { margin-top: 8px; }
.ebp-place .ebp-place__cta p {
  margin: 0;
  font-family: Montserrat, sans-serif;
  font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; line-height: 1.6;
  color: #fff;
  display: flex; align-items: center; gap: 6px;
}
.ebp-place__arrow { display: inline-block; transition: transform var(--ebp-dur-base) var(--ebp-ease-out, ease); }
.ebp-place:hover .ebp-place__arrow,
.ebp-place:focus-visible .ebp-place__arrow { transform: translateX(5px); }
@media (prefers-reduced-motion: reduce) {
  .ebp-place:hover .ebp-place__arrow, .ebp-place:focus-visible .ebp-place__arrow { transform: none; }
}

/* In a four-up row the landscape card's type steps down to fit. */
.e-con:has(> .ebp-place-col:nth-child(4)) .ebp-place--wide .ebp-place__name .elementor-heading-title { font-size: 22px; }
.e-con:has(> .ebp-place-col:nth-child(4)) .e-con.ebp-place__text { padding: 16px 18px; }


/* --- header stays at the top -------------------------------------------------------
   The header is pinned while the page scrolls (client request), using CSS
   rather than Elementor Pro's Sticky effect, so it works whether or not that
   feature is active. On WordPress the bar sits inside Elementor's header
   location wrapper, which is exactly as tall as the bar, so the wrapper is
   what has to stick; the bar itself sticks where it is a direct child of the
   page (the preview, and the theme's fallback header). */
.elementor-location-header,
.ebp-fallback-header,
body > .ebp-header {
  position: sticky !important;
  top: 0;
  z-index: 100;
}
body.admin-bar .elementor-location-header,
body.admin-bar .ebp-fallback-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .elementor-location-header,
  body.admin-bar .ebp-fallback-header { top: 46px; }
}
@media (max-width: 600px) {
  /* WordPress's own admin bar scrolls away on small phones. */
  body.admin-bar .elementor-location-header,
  body.admin-bar .ebp-fallback-header { top: 0; }
}


/* --- review cards (Testimonials page) --------------------------------------------
   The slider's review, as a card: same centring, Fraunces italic and peach
   accents, on the footer's deep colour. Cards in a row share one height. */
.ebp-review-col { padding: 0 !important; }
.elementor-element:has(> .ebp-review--card),
.elementor-element:has(> .elementor-widget-container > .ebp-review--card) { width: 100% !important; height: 100%; }
.ebp-review--card {
  background: var(--ebp-navy-deep);
  border-radius: 4px;
  padding: 40px 30px 32px;
  height: 100%;
  justify-content: flex-start;
}
.ebp-review--card .ebp-review__mark { font-size: 76px; height: 32px; }
.ebp-review--card .ebp-review__quote { margin-bottom: 18px; flex: 1; }
.ebp-review--card .ebp-review__quote p { font-size: 18px; line-height: 1.55; }


/* Homepage hero: a lighter scrim than the inner pages, so the type carries
   its own soft shadow to stay readable on bright aerial and beach shots. */
.ebp-home-hero .elementor-heading-title,
.ebp-home-hero .elementor-widget-text-editor,
.ebp-home-hero .elementor-widget-text-editor p,
.ebp-home-hero h1, .ebp-home-hero h2, .ebp-home-hero p {
  text-shadow: 0 2px 22px rgba(4, 19, 22, .55), 0 1px 3px rgba(4, 19, 22, .35);
}
.ebp-home-hero .elementor-widget-text-editor p { font-weight: 500; }


/* --- process steps ("How we will work together") ---------------------------------
   After Scott Dunn's "Four Steps": a light section, large soft icon circles,
   the number in a big Fraunces title, readable Montserrat copy, and small
   chevrons between the steps. Generous space throughout. */
.elementor-element:has(> .ebp-steps),
.elementor-element:has(> .elementor-widget-container > .ebp-steps) { width: 100% !important; }
.ebp-steps {
  --circle: var(--ebp-cream, #E9F4F3);
  --icon: var(--ebp-navy);
  --title: var(--ebp-navy);
  --text: var(--ebp-ink);
  --arrow: var(--ebp-accent);
  list-style: none; margin: 18px auto 0; padding: 0; max-width: 1180px;
  display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 56px;
}
.ebp-steps--dark {
  --circle: rgba(168, 240, 240, .12);
  --icon: var(--ebp-accent-light, #A8F0F0);
  --title: #fff;
  --text: rgba(255, 255, 255, .85);
  --arrow: var(--ebp-accent-light, #A8F0F0);
}
.ebp-step { position: relative; text-align: center; display: flex; flex-direction: column; align-items: center; }
.ebp-step + .ebp-step::before {    /* chevron between steps, centred on the icon row */
  content: ""; position: absolute; top: 44px; left: -34px;
  width: 11px; height: 11px;
  border-top: 2px solid var(--arrow); border-right: 2px solid var(--arrow);
  transform: translateY(-50%) rotate(45deg);
}
.ebp-step__icon {
  width: 88px; height: 88px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--circle); color: var(--icon);
  margin-bottom: 26px;
}
.ebp-step__icon svg { width: 38px; height: 38px; stroke-width: 1.5; }
.ebp-step__body { display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 270px; }
.ebp-step__label { display: none; }   /* the number lives in the title now */
.ebp-step__title {
  font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 26px;
  line-height: 1.22; color: var(--title);
}
.ebp-step__text {
  font-family: Montserrat, sans-serif; font-weight: 400; font-size: 17px;
  line-height: 1.6; color: var(--text);
}

/* Tablets and phones: one step per row, icon beside the text, chevrons
   pointing down between them. */
@media (max-width: 1024px) {
  .ebp-steps { grid-template-columns: 1fr; gap: 40px; max-width: 560px; }
  .ebp-step { flex-direction: row; align-items: flex-start; text-align: left; gap: 22px; }
  .ebp-step + .ebp-step::before { top: -26px; left: 38px; transform: rotate(135deg); }
  .ebp-step__icon { width: 76px; height: 76px; margin: 0; flex: 0 0 auto; }
  .ebp-step__icon svg { width: 32px; height: 32px; }
  .ebp-step__body { align-items: flex-start; max-width: none; gap: 8px; padding-top: 6px; }
  .ebp-step__title { font-size: 22px; }
  .ebp-step__text { font-size: 16px; }
}


/* --- FAQ and other accordions: full width of a centred reading column ------------
   The accordion widget used to shrink to its longest question (about 400px)
   and sit against the left edge of its column. It now fills the column, and
   the column is capped at a comfortable reading width and centred under the
   section heading. */
.elementor-widget-accordion,
.elementor-element:has(> .elementor-accordion-item),
.elementor-element:has(> .elementor-widget-container > .elementor-accordion) {
  width: 100% !important;
  max-width: 100%;
  align-self: stretch;
}
.e-con:has(> .elementor-widget-accordion),
.e-con:has(> .elementor-element > .elementor-accordion-item) {
  width: 100% !important;
  max-width: 860px;
  margin-left: auto !important;
  margin-right: auto !important;
  align-self: center;
}


/* --- trusted by travelers: review-platform logos ----------------------------------
   One colour, the brand's darker Eden Blue, for every mark and wordmark
   (client request), well spaced in a single row. */
.elementor-element:has(> .ebp-trust),
.elementor-element:has(> .elementor-widget-container > .ebp-trust) { width: 100% !important; }
.ebp-trust {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 32px 88px; padding: 6px 0;
  color: var(--ebp-navy);
}
.ebp-trust__logo-link {
  display: inline-flex; align-items: center; gap: 12px;
  color: var(--ebp-navy); text-decoration: none;
  transition: opacity var(--ebp-dur-fast) var(--ebp-ease-out);
}
a.ebp-trust__logo-link:hover { opacity: .75; }
.ebp-trust__logo-link:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 6px; border-radius: 4px; }
.ebp-trust__mark svg { width: 38px; height: 38px; display: block; }
.ebp-trust__mark--getyourguide svg { width: 52px; height: 52px; }
.ebp-trust__mark--getyourguide text { fill: #fff; }
.ebp-trust__word {
  font-family: Arial, Helvetica, sans-serif; font-size: 25px; font-weight: 700;
  letter-spacing: -.4px; color: var(--ebp-navy); line-height: 1;
}
.ebp-trust__word span { font-weight: 400; }
@media (max-width: 600px) {
  .ebp-trust { gap: 26px 44px; }
  .ebp-trust__word { font-size: 21px; }
  .ebp-trust__mark svg { width: 32px; height: 32px; }
  .ebp-trust__mark--getyourguide svg { width: 44px; height: 44px; }
}


/* Itinerary preview: the day-by-day card spans the full width of the band.
   The FAQ rule above caps any container holding an accordion at 860px and
   centres it; this card is not an FAQ, so it is exempt. */
.e-con.ebp-days-card,
.ebp-days-card {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-self: stretch !important;
}


/* --- scroll reveal (brand motion system) -----------------------------------------
   site.js marks the contents of each section below the hero and reveals them
   once as they come into view: text rises 18px and fades in, items in a row
   follow 80ms apart. Only when JS runs and motion is allowed, so nothing is
   ever hidden for anyone else. */
@media (prefers-reduced-motion: no-preference) {
  /* Hidden instantly (no transition), so nothing fades out first. */
  .ebp-reveal-on .ebp-reveal:not(.is-in) {
    opacity: 0;
    transform: translateY(18px);
  }
  .ebp-reveal-on .ebp-reveal.is-in {
    opacity: 1;
    transform: none;
    transition: opacity var(--ebp-dur-slow) var(--ebp-ease-out),
                transform var(--ebp-dur-slow) var(--ebp-ease-out);
    transition-delay: var(--ebp-reveal-delay, 0s);
  }
}

/* The homepage hero's slow Ken Burns zoom stops for reduced motion. */
@media (prefers-reduced-motion: reduce) {
  .elementor-ken-burns,
  .elementor-ken-burns--active { transition: none !important; transform: none !important; }
}


/* --- form messages (colour system: success and error) -------------------------- */
.elementor-message.elementor-message-success {
  background: var(--ebp-success-bg); color: var(--ebp-success);
  padding: 14px 18px; border-radius: 6px; font-weight: 600;
}
.elementor-message.elementor-message-danger,
.elementor-message.elementor-message-error {
  background: var(--ebp-error-bg); color: var(--ebp-error);
  padding: 14px 18px; border-radius: 6px; font-weight: 600;
}
.elementor-message::before { display: none; }
.elementor-field-group .elementor-field-textual[aria-invalid="true"] { border-color: var(--ebp-error) !important; }
.elementor-field-group .elementor-message-danger { background: none; padding: 6px 0 0; color: var(--ebp-error); font-size: 12.5px; }


/* Italic accent word in hero headlines (typography option C). */
.elementor-heading-title em { font-style: italic; font-weight: 400; }

/* --- conversation starters (after Vaya Adventures and Scott Dunn) ------------------
   Hero shortcut chips, the trust strip under the hero, the "talk to a
   specialist" card on itineraries and the call bar pinned to the bottom. */

/* Hero chips: frosted pills under the headline. */
.ebp-chips {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
  margin-top: 10px;
}
.ebp-chip {
  display: inline-flex; align-items: center; min-height: 40px; padding: 8px 18px;
  border-radius: 999px; border: 1px solid rgba(255, 255, 255, .45);
  background: rgba(4, 19, 22, .28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: #fff !important; text-decoration: none !important;
  font: 500 14px/1.2 "Montserrat", Arial, sans-serif; letter-spacing: .2px;
  transition: background-color var(--ebp-dur-fast) var(--ebp-ease-out), border-color var(--ebp-dur-fast) var(--ebp-ease-out);
}
.ebp-chip:hover { background: rgba(255, 255, 255, .16); border-color: #fff; }
.ebp-chip:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 3px; }
.elementor-element:has(> .ebp-chips),
.elementor-element:has(> .elementor-widget-container > .ebp-chips) { width: 100% !important; }
@media (max-width: 600px) {
  .ebp-chips { gap: 8px; }
  .ebp-chip { font-size: 13px; padding: 7px 14px; min-height: 36px; }
}

/* Trust strip: rating, then the platform logos, on one quiet line. */
.ebp-trust--strip { gap: 18px 44px; padding: 0; }
.ebp-trust--strip .ebp-trust__mark svg { width: 26px; height: 26px; }
.ebp-trust--strip .ebp-trust__mark--getyourguide svg { width: 36px; height: 36px; }
.ebp-trust--strip .ebp-trust__word { font-size: 18px; }
.ebp-trust__score { display: inline-flex; align-items: center; gap: 10px; color: var(--ebp-navy); font: 500 15px/1.2 "Montserrat", Arial, sans-serif; }
.ebp-trust__score strong { font: 600 26px/1 "Fraunces", Georgia, serif; }
.ebp-trust__stars { color: #2D9A9A; letter-spacing: 2px; font-size: 17px; }
@media (max-width: 600px) {
  .ebp-trust--strip { gap: 14px 26px; }
  .ebp-trust__score { flex-basis: 100%; justify-content: center; }
}

/* "Talk to a specialist" card. */
.ebp-specialist {
  background: var(--ebp-navy); color: #fff; border-radius: 6px; padding: 28px 26px;
  display: grid; gap: 14px; box-shadow: 0 24px 50px -30px rgba(4, 19, 22, .8);
}
.ebp-specialist__eyebrow { margin: 0; font: 700 11px/1 "Montserrat", Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #A8F0F0; }
.ebp-specialist__who { display: flex; align-items: center; gap: 14px; }
.ebp-specialist__who strong { display: block; font: 600 21px/1.2 "Fraunces", Georgia, serif; color: #fff; }
.ebp-specialist__who span span { display: block; font: 400 14px/1.4 "Montserrat", Arial, sans-serif; color: #A8F0F0; }
.ebp-specialist__photo {
  flex: 0 0 64px; width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center;
  background: #55D8D8; color: #0E4B5D; font: 600 22px/1 "Fraunces", Georgia, serif;
  background-size: cover; background-position: center;
}
.ebp-specialist__text { margin: 0; font: 400 15px/1.6 "Montserrat", Arial, sans-serif; color: #E9F4F3; }
.ebp-specialist__btn {
  display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 2px;
  font: 700 13px/1 "Montserrat", Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; text-decoration: none !important;
}
.ebp-specialist__btn--plan { background: var(--ebp-action, #C24848); color: var(--ebp-on-action, #fff) !important; }
.ebp-specialist__btn--plan:hover { background: var(--ebp-action-hover, #D75555); }
.ebp-specialist__btn--wa { border: 1px solid rgba(255, 255, 255, .5); color: #fff !important; }
.ebp-specialist__btn--wa:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.ebp-specialist__phone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: #fff !important; font: 500 15px/1 "Montserrat", Arial, sans-serif; text-decoration: none !important; min-height: 44px; }
.ebp-specialist__phone:hover span { text-decoration: underline; text-underline-offset: 3px; }
.ebp-specialist a:focus-visible { outline: 3px solid #55D8D8; outline-offset: 3px; }
@media (min-width: 1025px) {
  .elementor-element:has(> .ebp-specialist),
  .elementor-element:has(> .elementor-widget-container > .ebp-specialist) { position: sticky; top: 120px; }
}

/* Call bar: pinned to the bottom once the visitor is past the hero. */
.ebp-callbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 44;
  display: flex; align-items: center; justify-content: center; gap: 12px 28px; flex-wrap: wrap;
  padding: 12px 24px calc(12px + env(safe-area-inset-bottom, 0px));
  background: rgba(4, 19, 22, .96); color: #fff; box-shadow: 0 -10px 30px -18px rgba(4, 19, 22, .9);
  transform: translateY(110%); transition: transform var(--ebp-dur-base) var(--ebp-ease-out);
}
.ebp-callbar.is-visible { transform: none; }
.ebp-callbar__text { font: italic 400 17px/1.3 "Fraunces", Georgia, serif; color: #E9F4F3; }
.ebp-callbar__link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #fff !important; text-decoration: none !important; font: 500 14.5px/1 "Montserrat", Arial, sans-serif; }
.ebp-callbar__link:hover span { text-decoration: underline; text-underline-offset: 3px; }
.ebp-callbar__btn {
  display: inline-flex; align-items: center; min-height: 42px; padding: 0 22px; border-radius: 2px;
  background: var(--ebp-action, #C24848); color: var(--ebp-on-action, #fff) !important; text-decoration: none !important;
  font: 700 13.5px/1 "Montserrat", Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase;
}
.ebp-callbar__btn:hover { background: var(--ebp-action-hover, #D75555); }
.ebp-callbar a:focus-visible { outline: 3px solid #55D8D8; outline-offset: 3px; }
body.ebp-has-callbar .ebp-to-top { bottom: 92px; }
@media (max-width: 767px) {
  .ebp-callbar { justify-content: space-between; gap: 8px; padding-left: 16px; padding-right: 16px; }
  .ebp-callbar__text { display: none; }
  .ebp-callbar__link span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ebp-callbar__link { width: 44px; justify-content: center; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; }
  .ebp-callbar__btn { flex: 1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .ebp-callbar { transition: none; } }
@media print { .ebp-callbar { display: none !important; } }


/* --- where to go when (month guide) ------------------------------------------------ */
.elementor-element:has(> .ebp-months),
.elementor-element:has(> .elementor-widget-container > .ebp-months) { width: 100% !important; }
.ebp-months { max-width: 1200px; margin: 0 auto; }
.ebp-months__tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 36px; }
.ebp-months__tab {
  min-width: 64px; min-height: 44px; padding: 0 14px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--ebp-border, #C4DAD9); background: #fff; color: var(--ebp-navy);
  font: 600 14px/1 "Montserrat", Arial, sans-serif; letter-spacing: .4px;
}
.ebp-months__tab:hover { border-color: var(--ebp-navy); }
.ebp-months__tab[aria-pressed="true"] { background: var(--ebp-navy); border-color: var(--ebp-navy); color: #fff; }
.ebp-months__tab:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 2px; }
.ebp-month { margin-bottom: 48px; }
.ebp-months.is-ready .ebp-month { display: none; margin-bottom: 0; }
.ebp-months.is-ready .ebp-month.is-active { display: block; }
.ebp-months .ebp-month__name { font: 600 34px/1.1 "Fraunces", Georgia, serif !important; color: var(--ebp-navy) !important; text-align: center; margin: 0 0 24px !important; letter-spacing: 0 !important; text-transform: none !important; }
.ebp-month__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ebp-month-pick {
  display: flex; flex-direction: column; gap: 10px; padding: 26px 22px; border-radius: 4px;
  background: #fff; border: 1px solid var(--ebp-border, #C4DAD9); text-decoration: none !important;
  box-shadow: 0 18px 40px -28px rgba(4, 19, 22, .45);
  transition: transform var(--ebp-dur-base) var(--ebp-ease-out), box-shadow var(--ebp-dur-base) var(--ebp-ease-out);
}
.ebp-month-pick:hover { transform: translateY(-3px); box-shadow: 0 24px 46px -26px rgba(4, 19, 22, .55); }
.ebp-month-pick:focus-visible { outline: 3px solid var(--ebp-focus); outline-offset: 3px; }
.ebp-month-pick__place { font: 600 22px/1.2 "Fraunces", Georgia, serif; color: var(--ebp-navy); }
.ebp-month-pick__why { font: 400 15px/1.6 "Montserrat", Arial, sans-serif; color: var(--ebp-ink, #26454B); flex: 1; }
.ebp-month-pick__go { font: 600 13px/1 "Montserrat", Arial, sans-serif; letter-spacing: .6px; color: #1F7373; }
@media (max-width: 1024px) { .ebp-month__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .ebp-month__grid { grid-template-columns: 1fr; }
  .ebp-months__tab { min-width: 52px; padding: 0 10px; font-size: 13px; }
  .ebp-months .ebp-month__name { font-size: 28px !important; }
}
@media (prefers-reduced-motion: reduce) { .ebp-month-pick { transition: none; } .ebp-month-pick:hover { transform: none; } }


/* --- phone layout, simplified (after Vaya and Scott Dunn, Oct 2026) -------------------
   Up to 767px the site follows the pattern both use on phones: a slim bar
   (logo, a call icon, the menu), a shorter hero with one line of text and one
   button, shortcuts in a single swipeable row, and small slideshow controls.
   Contact Us moves into the menu panel (site.js) and the call bar. */
@media (max-width: 767px) {
  /* Slim header: logo left; a round call button and the menu right. */
  .ebp-header { padding-top: 10px !important; padding-bottom: 10px !important; }
  .ebp-header .ebp-cta-col .elementor-widget-button,
  .ebp-header .ebp-cta-col .elementor-button-wrapper { display: none !important; }
  .ebp-header .ebp-logo-col img { max-height: 34px !important; width: auto !important; }
  .ebp-cta-col a.ebp-header-phone {
    width: 42px; height: 42px; border-radius: 50%; justify-content: center; padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, .45); font-size: 0 !important; gap: 0 !important;
  }
  .ebp-cta-col a.ebp-header-phone span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ebp-cta-col a.ebp-header-phone svg { width: 17px !important; height: 17px !important; }
  .ebp-cta-col a.ebp-header-phone::after { inset: -2px; }
  .ebp-header .ebp-logo-col { flex: 1 1 auto !important; width: auto !important; }
  .ebp-header .ebp-cta-col { flex: 0 0 auto !important; width: auto !important; align-items: flex-end !important; }
  .ebp-header .ebp-nav-col { flex: 0 0 auto !important; width: auto !important; }

  /* Heroes: shorter, tighter, one idea at a time. */
  .ebp-header-over .ebp-on-dark.ebp-slideshow,
  .ebp-home-hero { min-height: 0 !important; }
  /* Hero type sizes for phones are set on the widgets (brand.py, _photo_hero). */
  .ebp-on-dark.ebp-slideshow .elementor-widget-divider { display: none; }
  /* A long hero paragraph shows three lines, with "Read more" (site.js). */
  .ebp-hero-clamp p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .ebp-hero-more {
    display: inline-block; margin-top: 6px; padding: 6px 2px; min-height: 32px; background: none; border: 0; cursor: pointer;
    color: #A8F0F0; font: 600 13px/1 "Montserrat", Arial, sans-serif; letter-spacing: .4px; text-decoration: underline; text-underline-offset: 3px;
  }

  /* Shortcuts: one swipeable row instead of three wrapped rows. */
  .ebp-chips {
    flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scroll-snap-type: x proximity;
    margin: 6px -20px 0; padding: 2px 20px 6px; scroll-padding-left: 20px; scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 36px), transparent 100%);
            mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 36px), transparent 100%);
  }
  .ebp-chips::-webkit-scrollbar { display: none; }
  .ebp-chip { flex: 0 0 auto; scroll-snap-align: start; white-space: nowrap; }

  /* Slideshow controls: small and out of the way; the counter goes. */
  .ebp-slideshow > .ebp-slide-arrow { width: 36px !important; height: 36px !important; bottom: 14px !important; }
  .ebp-slideshow > .ebp-slide-bar .ebp-slide-count { display: none !important; }
  .ebp-slideshow > .ebp-slide-bar .ebp-slide-toggle { min-height: 36px; padding: 0 12px; font-size: 11px; }

  /* Trip facts: a compact two-by-two grid instead of four tall rows. */
  .e-con.ebp-trip-meta { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px 12px !important; }
  .e-con.ebp-trip-meta > .e-con { width: auto !important; }
}

.ebp-hero-more { display: none; }
@media (max-width: 767px) { .ebp-hero-more { display: inline-block; } }
.ebp-hero-clamp.is-open p { display: block; -webkit-line-clamp: unset; overflow: visible; }

/* Contact Us inside the phone menu panel (site.js adds it). */
.ebp-drawer-cta { display: none; }
@media (max-width: 1199px) {
  .ebp-drawer-cta {
    display: flex; align-items: center; justify-content: center; margin: 18px 20px 22px; min-height: 44px; border-radius: 2px;
    background: var(--ebp-action, #C24848); color: #fff !important; text-decoration: none !important;
    font: 700 14px/1 "Montserrat", Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase;
  }
}


/* --- phone layout, round two: less to scroll -------------------------------------
   Vaya and Scott Dunn never stack big cards one per screen on a phone: places
   sit two to a row, short features are a compact list, and the hero is one
   headline, one line and one button. */
@media (max-width: 767px) {
  /* Hero: no eyebrow, no arrows (the slideshow still plays and can be paused). */
  .ebp-on-dark.ebp-slideshow .ebp-eyebrow { display: none !important; }
  .ebp-slideshow > .ebp-slide-arrow { display: none !important; }

  /* Short feature cards: a compact list, icon beside the words, no boxes. */
  .e-con.ebp-feature {
    display: grid !important; grid-template-columns: 52px 1fr; column-gap: 16px; row-gap: 2px;
    align-items: start; text-align: left !important;
    padding: 16px 0 !important; background: transparent !important; border: 0 !important;
    border-bottom: 1px solid var(--ebp-border, #C4DAD9) !important; box-shadow: none !important; border-radius: 0 !important;
  }
  .e-con.ebp-feature > .elementor-widget-spacer { display: none !important; }
  .e-con.ebp-feature > .elementor-widget-icon { grid-row: 1 / span 2; }
  .e-con.ebp-feature .elementor-icon { padding: 13px !important; }
  .e-con.ebp-feature .elementor-icon i,
  .e-con.ebp-feature .elementor-icon svg { font-size: 20px !important; width: 20px !important; height: 20px !important; }
  .e-con.ebp-feature .elementor-widget-heading,
  .e-con.ebp-feature .elementor-widget-text-editor { text-align: left !important; }
  .e-con.ebp-feature .elementor-heading-title { font-size: 19px !important; text-align: left !important; }
  .e-con.ebp-feature .elementor-widget-text-editor,
  .e-con.ebp-feature .elementor-widget-text-editor p { font-size: 14.5px !important; line-height: 1.5 !important; text-align: left !important; margin: 0; }
  .e-con:has(> .e-con.ebp-feature) { gap: 0 !important; }
  .e-con:has(> .e-con > .e-con.ebp-feature) { gap: 0 !important; }

  /* Places and team: two to a row. The rows dissolve into one grid. */
  *:has(> .e-con > .ebp-place-col),
  *:has(> .e-con > .ebp-team-card) {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important;
  }
  *:has(> .e-con > .ebp-place-col) > *,
  *:has(> .e-con > .ebp-team-card) > * { grid-column: 1 / -1; }
  *:has(> .e-con > .ebp-place-col) > .e-con:has(> .ebp-place-col),
  *:has(> .e-con > .ebp-team-card) > .e-con:has(> .ebp-team-card) { display: contents !important; }
  .e-con:has(> .ebp-place-col) > .e-con:not(.ebp-place-col),
  .e-con:has(> .ebp-team-card) > .e-con:not(.ebp-team-card) { display: none !important; }
  .ebp-place-col, .e-con.ebp-team-card { grid-column: auto !important; width: auto !important; min-width: 0; }
  .e-con.ebp-place { aspect-ratio: 1 / 1; border-radius: 3px; }
  .ebp-place__text { padding: 12px 12px !important; }
  .ebp-place .ebp-place__name .elementor-heading-title { font-size: 18px !important; line-height: 1.15 !important; }
  .ebp-place .ebp-place__cta p { font-size: 10.5px !important; }
  .e-con.ebp-team-card { padding: 12px !important; gap: 6px !important; }
  .e-con.ebp-team-card .elementor-heading-title { font-size: 17px !important; }
  .e-con.ebp-team-card .elementor-widget-text-editor p { font-size: 13.5px !important; }

  /* Trust strip on one line: score, then the logos without their words. */
  .ebp-trust--strip { flex-wrap: nowrap; gap: 14px !important; }
  .ebp-trust--strip .ebp-trust__score { flex-basis: auto; gap: 6px; font-size: 12.5px; }
  .ebp-trust--strip .ebp-trust__score strong { font-size: 20px; }
  .ebp-trust--strip .ebp-trust__stars { font-size: 12px; letter-spacing: 1px; }
  .ebp-trust--strip .ebp-trust__score > span:not(.ebp-trust__stars):not(.ebp-sr) { display: none; }
  .ebp-trust--strip .ebp-trust__word { font-size: 13px; }
  .ebp-trust--strip .ebp-trust__word span { display: none; }
  .ebp-trust--strip .ebp-trust__mark svg { width: 22px; height: 22px; }
  .ebp-trust--strip .ebp-trust__mark--getyourguide svg { width: 28px; height: 28px; }
  .ebp-trust--strip .ebp-trust__logo-link { gap: 5px; }

  /* The four steps: smaller icons, shorter gaps. */
  .ebp-steps { gap: 22px; }
  .ebp-step { gap: 16px; }
  .ebp-step + .ebp-step::before { display: none; }
  .ebp-step__icon { width: 52px; height: 52px; }
  .ebp-step__icon svg { width: 24px; height: 24px; }
  .ebp-step__title { font-size: 18px; }
  .ebp-step__text { font-size: 14.5px; line-height: 1.5; }

  /* Sections breathe less on a small screen. */
  body .elementor > .e-con:not(.ebp-on-dark),
  body > .e-con:not(.ebp-header):not(.ebp-on-dark) { padding-top: 56px !important; padding-bottom: 56px !important; }
}

/* The slideshow's "1 / 9" counter is gone (client request): the dots of
   progress added nothing a visitor needs. The pause button stays, so moving
   images can always be stopped. */
.ebp-slide-count { display: none !important; }

/* Hero button: a ghost button on the photo (after Vaya). Its colours are set
   on the button itself (brand.py, _photo_hero); only the frosted glass,
   which Elementor has no control for, is added here. */
.ebp-on-dark.ebp-slideshow .elementor-widget-button .elementor-button {
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}


/* --- brand graphics on the site (client approved, Oct 2026) ----------------------
   Watermark-quiet: patterns only on dark bands with headline-sized text,
   6–8% visible; one seal or illustration per page at most; nothing behind
   body text, forms or prices. */

/* 1. The lean bar replaces the plain rule under headings: the logo's 27.5°
      lean as a small parallelogram. */
.elementor-widget-divider .elementor-divider-separator,
.elementor-widget-divider .w-div {
  border-top: 0 !important;
  width: 46px !important;
  height: 7px !important;
  background: var(--ebp-accent, #2D9A9A) !important;
  clip-path: polygon(9% 0, 100% 0, 91% 100%, 0 100%);
}
.ebp-on-dark .elementor-widget-divider .elementor-divider-separator,
.ebp-on-dark .elementor-widget-divider .w-div { background: #55D8D8 !important; }

/* 2–4. Patterns behind dark bands: Terrain everywhere, Giraffe only on
        African itinerary previews. Laid over the band's own colour. */
.ebp-terrain,
.ebp-giraffe { position: relative; isolation: isolate; }
/* Paused (client, Oct 2026: line patterns behind text distract). The classes
   stay on the bands; the chosen treatment from the options review goes here. */
.e-con.ebp-terrain::before,
.e-con.ebp-giraffe::before {
  display: none;
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-repeat: repeat;
}
.e-con.ebp-terrain::before {
  background-image: url("../img/brand/pattern-terrain-overlay.svg");
  background-size: 560px auto; opacity: .75;
}
.e-con.ebp-giraffe::before {
  background-image: url("../img/brand/pattern-giraffe-overlay.svg");
  background-size: 300px auto; opacity: .8;
}
/* Elementor paints a section's colour on the element itself; keep content above the pattern. */
.ebp-terrain > *, .ebp-giraffe > * { position: relative; z-index: 1; }

/* 5. Seals: small, centred, quiet. */
.elementor-widget.ebp-seal { width: 100% !important; }
.ebp-seal img { display: block; height: auto; margin: 10px auto 0; opacity: .9; }
.elementor-element:has(> .ebp-seal),
.elementor-element:has(> .elementor-widget-container > .ebp-seal) { width: 100% !important; }

/* 6. Line illustrations (confirmation pages, month guide). */
.elementor-widget.ebp-art { width: 100% !important; }
.ebp-art--hero img { display: block; max-width: 60vw; height: auto; margin: 0 auto 6px; }
.ebp-art--guide { display: block; width: 150px; height: auto; margin: 0 auto 18px; opacity: .85; }
.elementor-element:has(> .ebp-art),
.elementor-element:has(> .elementor-widget-container > .ebp-art) { width: 100% !important; }

/* 7. A Terrain corner on the specialist card, away from its words. */
.ebp-specialist { position: relative; overflow: hidden; isolation: isolate; }
.ebp-specialist::before {
  display: none;   /* paused with the patterns, pending the options review */
  content: ""; position: absolute; top: 0; right: 0; width: 220px; height: 220px; z-index: -1;
  background: url("../img/brand/pattern-terrain-overlay.svg") 0 0 / 440px auto;
  -webkit-mask-image: radial-gradient(circle at 100% 0, #000 0, transparent 70%);
          mask-image: radial-gradient(circle at 100% 0, #000 0, transparent 70%);
  pointer-events: none;
}



/* === brand icons (generated by build/make_icon_css.py) === */
/* Outline icons (Tabler, MIT licence) drawn in the current text colour. */
.ebp-ic{display:inline-block;width:1em;height:1em;background-color:currentColor;-webkit-mask:var(--ebp-ic) center/contain no-repeat;mask:var(--ebp-ic) center/contain no-repeat;vertical-align:-.125em;font-style:normal}
.ebp-ic::before{content:none!important}
.ebp-ic-air-balloon{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 19m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v1a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z' /%3E %3Cpath d='M12 16c3.314 0 6 -4.686 6 -8a6 6 0 1 0 -12 0c0 3.314 2.686 8 6 8z' /%3E %3Cpath d='M12 9m-2 0a2 7 0 1 0 4 0a2 7 0 1 0 -4 0' /%3E%3C/svg%3E")}
.ebp-ic-alert-triangle{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4' /%3E %3Cpath d='M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0z' /%3E %3Cpath d='M12 16h.01' /%3E%3C/svg%3E")}
.ebp-ic-arrow-left{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l14 0' /%3E %3Cpath d='M5 12l6 6' /%3E %3Cpath d='M5 12l6 -6' /%3E%3C/svg%3E")}
.ebp-ic-arrow-right{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l14 0' /%3E %3Cpath d='M13 18l6 -6' /%3E %3Cpath d='M13 6l6 6' /%3E%3C/svg%3E")}
.ebp-ic-award{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9m-6 0a6 6 0 1 0 12 0a6 6 0 1 0 -12 0' /%3E %3Cpath d='M12 15l3.4 5.89l1.598 -3.233l3.598 .232l-3.4 -5.889' /%3E %3Cpath d='M6.802 12l-3.4 5.89l3.598 -.233l1.598 3.232l3.4 -5.889' /%3E%3C/svg%3E")}
.ebp-ic-beach{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.553 16.75a7.5 7.5 0 0 0 -10.606 0' /%3E %3Cpath d='M18 3.804a6 6 0 0 0 -8.196 2.196l10.392 6a6 6 0 0 0 -2.196 -8.196z' /%3E %3Cpath d='M16.732 10c1.658 -2.87 2.225 -5.644 1.268 -6.196c-.957 -.552 -3.075 1.326 -4.732 4.196' /%3E %3Cpath d='M15 9l-3 5.196' /%3E %3Cpath d='M3 19.25a2.4 2.4 0 0 1 1 -.25a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 1 .25' /%3E%3C/svg%3E")}
.ebp-ic-bed{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' /%3E %3Cpath d='M22 17v-3h-20' /%3E %3Cpath d='M2 8v9' /%3E %3Cpath d='M12 14h10v-2a3 3 0 0 0 -3 -3h-7v5z' /%3E%3C/svg%3E")}
.ebp-ic-bike{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0' /%3E %3Cpath d='M19 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0' /%3E %3Cpath d='M12 19l0 -4l-3 -3l5 -4l2 3l3 0' /%3E %3Cpath d='M17 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0' /%3E%3C/svg%3E")}
.ebp-ic-binoculars{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 16m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0' /%3E %3Cpath d='M17 16m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0' /%3E %3Cpath d='M16.346 9.17l-.729 -1.261c-.16 -.248 -1.056 -.203 -1.117 .091l-.177 1.38' /%3E %3Cpath d='M19.761 14.813l-2.84 -5.133c-.189 -.31 -.592 -.68 -1.421 -.68c-.828 0 -1.5 .448 -1.5 1v6' /%3E %3Cpath d='M7.654 9.17l.729 -1.261c.16 -.249 1.056 -.203 1.117 .091l.177 1.38' /%3E %3Cpath d='M4.239 14.813l2.84 -5.133c.189 -.31 .592 -.68 1.421 -.68c.828 0 1.5 .448 1.5 1v6' /%3E %3Crect width='4' height='2' x='10' y='12' /%3E%3C/svg%3E")}
.ebp-ic-brand-facebook{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10v4h3v7h4v-7h3l1 -4h-4v-2a1 1 0 0 1 1 -1h3v-4h-3a5 5 0 0 0 -5 5v2h-3' /%3E%3C/svg%3E")}
.ebp-ic-brand-instagram{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4m0 4a4 4 0 0 1 4 -4h8a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4z' /%3E %3Cpath d='M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0' /%3E %3Cpath d='M16.5 7.5l0 .01' /%3E%3C/svg%3E")}
.ebp-ic-brand-tiktok{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 7.917v4.034a9.948 9.948 0 0 1 -5 -1.951v4.5a6.5 6.5 0 1 1 -8 -6.326v4.326a2.5 2.5 0 1 0 4 2v-11.5h4.083a6.005 6.005 0 0 0 4.917 4.917z' /%3E%3C/svg%3E")}
.ebp-ic-brand-whatsapp{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.65 -3.8a9 9 0 1 1 3.4 2.9l-5.05 .9' /%3E %3Cpath d='M9 10a.5 .5 0 0 0 1 0v-1a.5 .5 0 0 0 -1 0v1a5 5 0 0 0 5 5h1a.5 .5 0 0 0 0 -1h-1a.5 .5 0 0 0 0 1' /%3E%3C/svg%3E")}
.ebp-ic-briefcase{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z' /%3E %3Cpath d='M8 7v-2a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v2' /%3E %3Cpath d='M12 12l0 .01' /%3E %3Cpath d='M3 13a20 20 0 0 0 18 0' /%3E%3C/svg%3E")}
.ebp-ic-building-arch{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l18 0' /%3E %3Cpath d='M4 21v-15a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v15' /%3E %3Cpath d='M9 21v-8a3 3 0 0 1 6 0v8' /%3E%3C/svg%3E")}
.ebp-ic-building-castle{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 19v-2a3 3 0 0 0 -6 0v2a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-14h4v3h3v-3h4v3h3v-3h4v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z' /%3E %3Cpath d='M3 11l18 0' /%3E%3C/svg%3E")}
.ebp-ic-building-skyscraper{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l18 0' /%3E %3Cpath d='M5 21v-14l8 -4v18' /%3E %3Cpath d='M19 21v-10l-6 -4' /%3E %3Cpath d='M9 9l0 .01' /%3E %3Cpath d='M9 12l0 .01' /%3E %3Cpath d='M9 15l0 .01' /%3E %3Cpath d='M9 18l0 .01' /%3E%3C/svg%3E")}
.ebp-ic-calendar-event{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z' /%3E %3Cpath d='M16 3l0 4' /%3E %3Cpath d='M8 3l0 4' /%3E %3Cpath d='M4 11l16 0' /%3E %3Cpath d='M8 15h2v2h-2z' /%3E%3C/svg%3E")}
.ebp-ic-camera{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7h1a2 2 0 0 0 2 -2a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-9a2 2 0 0 1 2 -2' /%3E %3Cpath d='M9 13a3 3 0 1 0 6 0a3 3 0 0 0 -6 0' /%3E%3C/svg%3E")}
.ebp-ic-car-suv{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M16 17a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M5 9l2 -4h7.438a2 2 0 0 1 1.94 1.515l.622 2.485h3a2 2 0 0 1 2 2v3' /%3E %3Cpath d='M10 9v-4' /%3E %3Cpath d='M2 7v4' /%3E %3Cpath d='M22.001 14.001a4.992 4.992 0 0 0 -4.001 -2.001a4.992 4.992 0 0 0 -4 2h-3a4.998 4.998 0 0 0 -8.003 .003' /%3E %3Cpath d='M5 12v-3h13' /%3E%3C/svg%3E")}
.ebp-ic-check{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10 -10' /%3E%3C/svg%3E")}
.ebp-ic-checklist{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.615 20h-2.615a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8' /%3E %3Cpath d='M14 19l2 2l4 -4' /%3E %3Cpath d='M9 8h4' /%3E %3Cpath d='M9 12h2' /%3E%3C/svg%3E")}
.ebp-ic-chevron-down{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6' /%3E%3C/svg%3E")}
.ebp-ic-circle-check{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0' /%3E %3Cpath d='M9 12l2 2l4 -4' /%3E%3C/svg%3E")}
.ebp-ic-clock{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0' /%3E %3Cpath d='M12 7v5l3 3' /%3E%3C/svg%3E")}
.ebp-ic-coffee{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14c.83 .642 2.077 1.017 3.5 1c1.423 .017 2.67 -.358 3.5 -1c.83 -.642 2.077 -1.017 3.5 -1c1.423 -.017 2.67 .358 3.5 1' /%3E %3Cpath d='M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2' /%3E %3Cpath d='M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2' /%3E %3Cpath d='M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z' /%3E %3Cpath d='M16.746 16.726a3 3 0 1 0 .252 -5.555' /%3E%3C/svg%3E")}
.ebp-ic-compass{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16l2 -6l6 -2l-2 6l-6 2' /%3E %3Cpath d='M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0' /%3E %3Cpath d='M12 3l0 2' /%3E %3Cpath d='M12 19l0 2' /%3E %3Cpath d='M3 12l2 0' /%3E %3Cpath d='M19 12l2 0' /%3E%3C/svg%3E")}
.ebp-ic-confetti{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h2' /%3E %3Cpath d='M5 4v2' /%3E %3Cpath d='M11.5 4l-.5 2' /%3E %3Cpath d='M18 5h2' /%3E %3Cpath d='M19 4v2' /%3E %3Cpath d='M15 9l-1 1' /%3E %3Cpath d='M18 13l2 -.5' /%3E %3Cpath d='M18 19h2' /%3E %3Cpath d='M19 18v2' /%3E %3Cpath d='M14 16.518l-6.518 -6.518l-4.39 9.58a1 1 0 0 0 1.329 1.329l9.579 -4.39z' /%3E%3C/svg%3E")}
.ebp-ic-download{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2' /%3E %3Cpath d='M7 11l5 5l5 -5' /%3E %3Cpath d='M12 4l0 12' /%3E%3C/svg%3E")}
.ebp-ic-external-link{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6' /%3E %3Cpath d='M11 13l9 -9' /%3E %3Cpath d='M15 4h5v5' /%3E%3C/svg%3E")}
.ebp-ic-eye{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6' /%3E%3C/svg%3E")}
.ebp-ic-fish{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.69 7.44a6.973 6.973 0 0 0 -1.69 4.56c0 1.747 .64 3.345 1.699 4.571' /%3E %3Cpath d='M2 9.504c7.715 8.647 14.75 10.265 20 2.498c-5.25 -7.761 -12.285 -6.142 -20 2.504' /%3E %3Cpath d='M18 11v.01' /%3E %3Cpath d='M11.5 10.5c-.667 1 -.667 2 0 3' /%3E%3C/svg%3E")}
.ebp-ic-friends{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' /%3E %3Cpath d='M5 22v-5l-1 -1v-4a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4l-1 1v5' /%3E %3Cpath d='M17 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' /%3E %3Cpath d='M15 22v-4h-2l2 -6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1l2 6h-2v4' /%3E%3C/svg%3E")}
.ebp-ic-glass-full{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21l8 0' /%3E %3Cpath d='M12 15l0 6' /%3E %3Cpath d='M17 3l1 7c0 3.012 -2.686 5 -6 5s-6 -1.988 -6 -5l1 -7h10z' /%3E %3Cpath d='M6 10a5 5 0 0 1 6 0a5 5 0 0 0 6 0' /%3E%3C/svg%3E")}
.ebp-ic-headset{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-3a8 8 0 1 1 16 0v3' /%3E %3Cpath d='M18 19c0 1.657 -2.686 3 -6 3' /%3E %3Cpath d='M4 14a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2v-3z' /%3E %3Cpath d='M15 14a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2v-3z' /%3E%3C/svg%3E")}
.ebp-ic-heart{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572' /%3E%3C/svg%3E")}
.ebp-ic-heart-handshake{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572' /%3E %3Cpath d='M12 6l-3.293 3.293a1 1 0 0 0 0 1.414l.543 .543c.69 .69 1.81 .69 2.5 0l1 -1a3.182 3.182 0 0 1 4.5 0l2.25 2.25' /%3E %3Cpath d='M12.5 15.5l2 2' /%3E %3Cpath d='M15 13l2 2' /%3E%3C/svg%3E")}
.ebp-ic-id{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v10a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z' /%3E %3Cpath d='M9 10m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' /%3E %3Cpath d='M15 8l2 0' /%3E %3Cpath d='M15 12l2 0' /%3E %3Cpath d='M7 16l10 0' /%3E%3C/svg%3E")}
.ebp-ic-info-circle{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0' /%3E %3Cpath d='M12 9h.01' /%3E %3Cpath d='M11 12h1v4h1' /%3E%3C/svg%3E")}
.ebp-ic-leaf{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21c.5 -4.5 2.5 -8 7 -10' /%3E %3Cpath d='M9 18c6.218 0 10.5 -3.288 11 -12v-2h-4.014c-9 0 -11.986 4 -12 9c0 1 0 3 2 5h3z' /%3E%3C/svg%3E")}
.ebp-ic-lock{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z' /%3E %3Cpath d='M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0' /%3E %3Cpath d='M8 11v-4a4 4 0 1 1 8 0v4' /%3E%3C/svg%3E")}
.ebp-ic-luggage{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z' /%3E %3Cpath d='M9 6v-1a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v1' /%3E %3Cpath d='M6 10h12' /%3E %3Cpath d='M6 16h12' /%3E %3Cpath d='M9 20v1' /%3E %3Cpath d='M15 20v1' /%3E%3C/svg%3E")}
.ebp-ic-mail{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z' /%3E %3Cpath d='M3 7l9 6l9 -6' /%3E%3C/svg%3E")}
.ebp-ic-map-2{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 18.5l-3 -1.5l-6 3v-13l6 -3l6 3l6 -3v7.5' /%3E %3Cpath d='M9 4v13' /%3E %3Cpath d='M15 7v5.5' /%3E %3Cpath d='M21.121 20.121a3 3 0 1 0 -4.242 0c.418 .419 1.125 1.045 2.121 1.879c1.051 -.89 1.759 -1.516 2.121 -1.879z' /%3E %3Cpath d='M19 18v.01' /%3E%3C/svg%3E")}
.ebp-ic-map-pin{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0' /%3E %3Cpath d='M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z' /%3E%3C/svg%3E")}
.ebp-ic-massage{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0' /%3E %3Cpath d='M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0' /%3E %3Cpath d='M4 22l4 -2v-3h12' /%3E %3Cpath d='M11 20h9' /%3E %3Cpath d='M8 14l3 -2l1 -4c3 1 3 4 3 6' /%3E%3C/svg%3E")}
.ebp-ic-message-circle{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20l1.3 -3.9c-2.324 -3.437 -1.426 -7.872 2.1 -10.374c3.526 -2.501 8.59 -2.296 11.845 .48c3.255 2.777 3.695 7.266 1.029 10.501c-2.666 3.235 -7.615 4.215 -11.574 2.293l-4.7 1' /%3E%3C/svg%3E")}
.ebp-ic-messages{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10' /%3E %3Cpath d='M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2' /%3E%3C/svg%3E")}
.ebp-ic-minus{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l14 0' /%3E%3C/svg%3E")}
.ebp-ic-mountain{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18l-6.921 -14.612a2.3 2.3 0 0 0 -4.158 0l-6.921 14.612z' /%3E %3Cpath d='M7.5 11l2 2.5l2.5 -2.5l2 3l2.5 -2' /%3E%3C/svg%3E")}
.ebp-ic-paw{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 13.5c-1.1 -2 -1.441 -2.5 -2.7 -2.5c-1.259 0 -1.736 .755 -2.836 2.747c-.942 1.703 -2.846 1.845 -3.321 3.291c-.097 .265 -.145 .677 -.143 .962c0 1.176 .787 2 1.8 2c1.259 0 3 -1 4.5 -1s3.241 1 4.5 1c1.013 0 1.8 -.823 1.8 -2c0 -.285 -.049 -.697 -.146 -.962c-.475 -1.451 -2.512 -1.835 -3.454 -3.538z' /%3E %3Cpath d='M20.188 8.082a1.039 1.039 0 0 0 -.406 -.082h-.015c-.735 .012 -1.56 .75 -1.993 1.866c-.519 1.335 -.28 2.7 .538 3.052c.129 .055 .267 .082 .406 .082c.739 0 1.575 -.742 2.011 -1.866c.516 -1.335 .273 -2.7 -.54 -3.052z' /%3E %3Cpath d='M9.474 9c.055 0 .109 0 .163 -.011c.944 -.128 1.533 -1.346 1.32 -2.722c-.203 -1.297 -1.047 -2.267 -1.932 -2.267c-.055 0 -.109 0 -.163 .011c-.944 .128 -1.533 1.346 -1.32 2.722c.204 1.293 1.048 2.267 1.933 2.267z' /%3E %3Cpath d='M16.456 6.733c.214 -1.376 -.375 -2.594 -1.32 -2.722a1.164 1.164 0 0 0 -.162 -.011c-.885 0 -1.728 .97 -1.93 2.267c-.214 1.376 .375 2.594 1.32 2.722c.054 .007 .108 .011 .162 .011c.885 0 1.73 -.974 1.93 -2.267z' /%3E %3Cpath d='M5.69 12.918c.816 -.352 1.054 -1.719 .536 -3.052c-.436 -1.124 -1.271 -1.866 -2.009 -1.866c-.14 0 -.277 .027 -.407 .082c-.816 .352 -1.054 1.719 -.536 3.052c.436 1.124 1.271 1.866 2.009 1.866c.14 0 .277 -.027 .407 -.082z' /%3E%3C/svg%3E")}
.ebp-ic-phone{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2' /%3E%3C/svg%3E")}
.ebp-ic-plane-arrival{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.157 11.81l4.83 1.295a2 2 0 1 1 -1.036 3.863l-14.489 -3.882l-1.345 -6.572l2.898 .776l1.414 2.45l2.898 .776l-.12 -7.279l2.898 .777l2.052 7.797z' /%3E %3Cpath d='M3 21h18' /%3E%3C/svg%3E")}
.ebp-ic-plane-departure{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.639 10.258l4.83 -1.294a2 2 0 1 1 1.035 3.863l-14.489 3.883l-4.45 -5.02l2.897 -.776l2.45 1.414l2.897 -.776l-3.743 -6.244l2.898 -.777l5.675 5.727z' /%3E %3Cpath d='M3 21h18' /%3E%3C/svg%3E")}
.ebp-ic-plus{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5l0 14' /%3E %3Cpath d='M5 12l14 0' /%3E%3C/svg%3E")}
.ebp-ic-pool{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1' /%3E %3Cpath d='M2 16a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1' /%3E %3Cpath d='M15 12v-7.5a1.5 1.5 0 0 1 3 0' /%3E %3Cpath d='M9 12v-7.5a1.5 1.5 0 0 0 -3 0' /%3E %3Cpath d='M15 5l-6 0' /%3E %3Cpath d='M9 10l6 0' /%3E%3C/svg%3E")}
.ebp-ic-receipt{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21v-16a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v16l-3 -2l-2 2l-2 -2l-2 2l-2 -2l-3 2m4 -14h6m-6 4h6m-2 4h2' /%3E%3C/svg%3E")}
.ebp-ic-route{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4z' /%3E %3Cpath d='M11 19h5.5a3.5 3.5 0 0 0 0 -7h-8a3.5 3.5 0 0 1 0 -7h4.5' /%3E%3C/svg%3E")}
.ebp-ic-search{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0' /%3E %3Cpath d='M21 21l-6 -6' /%3E%3C/svg%3E")}
.ebp-ic-send{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14l11 -11' /%3E %3Cpath d='M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5' /%3E%3C/svg%3E")}
.ebp-ic-shield-check{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.46 20.846a12 12 0 0 1 -7.96 -14.846a12 12 0 0 0 8.5 -3a12 12 0 0 0 8.5 3a12 12 0 0 1 -.09 7.06' /%3E %3Cpath d='M15 19l2 2l4 -4' /%3E%3C/svg%3E")}
.ebp-ic-ship{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1' /%3E %3Cpath d='M4 18l-1 -5h18l-2 4' /%3E %3Cpath d='M5 13v-6h8l4 6' /%3E %3Cpath d='M7 7v-4h-1' /%3E%3C/svg%3E")}
.ebp-ic-star{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z' /%3E%3C/svg%3E")}
.ebp-ic-sun{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0' /%3E %3Cpath d='M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7' /%3E%3C/svg%3E")}
.ebp-ic-tent{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 14l4 6h6l-9 -16l-9 16h6l4 -6' /%3E%3C/svg%3E")}
.ebp-ic-ticket{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l0 2' /%3E %3Cpath d='M15 11l0 2' /%3E %3Cpath d='M15 17l0 2' /%3E %3Cpath d='M5 5h14a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-3a2 2 0 0 0 0 -4v-3a2 2 0 0 1 2 -2' /%3E%3C/svg%3E")}
.ebp-ic-tools-kitchen-2{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 3v12h-5c-.023 -3.681 .184 -7.406 5 -12zm0 12v6h-1v-3m-10 -14v17m-3 -17v3a3 3 0 1 0 6 0v-3' /%3E%3C/svg%3E")}
.ebp-ic-trekking{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0' /%3E %3Cpath d='M7 21l2 -4' /%3E %3Cpath d='M13 21v-4l-3 -3l1 -6l3 4l3 2' /%3E %3Cpath d='M10 14l-1.827 -1.218a2 2 0 0 1 -.831 -2.15l.28 -1.117a2 2 0 0 1 1.939 -1.515h1.439l4 1l3 -2' /%3E %3Cpath d='M17 12v9' /%3E %3Cpath d='M16 20h2' /%3E%3C/svg%3E")}
.ebp-ic-user{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0' /%3E %3Cpath d='M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2' /%3E%3C/svg%3E")}
.ebp-ic-user-check{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0' /%3E %3Cpath d='M6 21v-2a4 4 0 0 1 4 -4h4' /%3E %3Cpath d='M15 19l2 2l4 -4' /%3E%3C/svg%3E")}
.ebp-ic-users-group{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M8 21v-1a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v1' /%3E %3Cpath d='M15 5a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M17 10h2a2 2 0 0 1 2 2v1' /%3E %3Cpath d='M5 5a2 2 0 1 0 4 0a2 2 0 0 0 -4 0' /%3E %3Cpath d='M3 13v-1a2 2 0 0 1 2 -2h2' /%3E%3C/svg%3E")}
.ebp-ic-wallet{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 8v-3a1 1 0 0 0 -1 -1h-10a2 2 0 0 0 0 4h12a1 1 0 0 1 1 1v3m0 4v3a1 1 0 0 1 -1 1h-12a2 2 0 0 1 -2 -2v-12' /%3E %3Cpath d='M20 12v4h-4a2 2 0 0 1 0 -4h4' /%3E%3C/svg%3E")}
.ebp-ic-wifi{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 18l.01 0' /%3E %3Cpath d='M9.172 15.172a4 4 0 0 1 5.656 0' /%3E %3Cpath d='M6.343 12.343a8 8 0 0 1 11.314 0' /%3E %3Cpath d='M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0' /%3E%3C/svg%3E")}
.ebp-ic-world{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0' /%3E %3Cpath d='M3.6 9h16.8' /%3E %3Cpath d='M3.6 15h16.8' /%3E %3Cpath d='M11.5 3a17 17 0 0 0 0 18' /%3E %3Cpath d='M12.5 3a17 17 0 0 1 0 18' /%3E%3C/svg%3E")}
.ebp-ic-x{--ebp-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6l-12 12' /%3E %3Cpath d='M6 6l12 12' /%3E%3C/svg%3E")}
/* === end brand icons === */

/* --- itinerary days with pictures (client approved, Oct 2026) ------------------
   Each day: a photo of where it is spent (or a line illustration on travel
   days) beside its copy; numbered on a dotted timeline; the route above. */
.ebp-route { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; margin: 0 0 18px;
  font: 600 13px/1.2 var(--ebp-sans, Montserrat, sans-serif); letter-spacing: .06em; text-transform: uppercase; color: var(--ebp-navy, #0E4B5D); }
.ebp-route span { background: #fff; border: 1px solid #C4DAD9; border-radius: 40px; padding: 8px 14px; }
.ebp-route small { margin-left: 6px; font-weight: 500; letter-spacing: .02em; text-transform: none; color: #547174; }
.ebp-route i { display: block; width: 18px; height: 2px; background: #2D9A9A; }

.ebp-days { position: relative; padding-left: 62px !important; }
.ebp-days::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 40px; width: 2px; opacity: .55;
  background: repeating-linear-gradient(#2D9A9A 0 6px, transparent 6px 12px); }
.e-con.ebp-day, .ebp-day { position: relative; background: #fff; border: 1px solid #C4DAD9; border-radius: 4px;
  flex-direction: row !important; }
.ebp-day__media { min-height: 290px; border-radius: 4px 0 0 4px; background-size: cover; background-position: center; }
.ebp-day__media--art { justify-content: center !important; background: #F5F7FA; border-right: 1px solid #C4DAD9; }
.ebp-day__art { width: 78%; max-width: 300px; margin: 0 auto; opacity: .9; }
.ebp-day__art img { display: block; width: 100%; height: auto; }
.elementor-widget.ebp-day__num { position: absolute !important; left: -62px; top: 18px; width: 44px !important; height: 44px; margin: 0 !important;
  border-radius: 50%; display: grid; place-items: center;
  background: var(--ebp-navy, #0E4B5D); box-shadow: 0 0 0 6px var(--ebp-cream, #E9F4F3); }
.elementor-widget.ebp-day__num .elementor-heading-title { margin: 0; color: #fff; font: 600 17px/1 Fraunces, Georgia, serif; }
.ebp-day__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 0; }
.ebp-day__tags span { font-size: 12px; font-weight: 600; color: var(--ebp-navy, #0E4B5D); background: #E9F4F3; border-radius: 3px; padding: 4px 9px; }
.ebp-day .ebp-day-meta { margin-top: 6px; padding-top: 14px; border-top: 1px solid #C4DAD9; }

@media (max-width: 1024px) {
  .ebp-days { padding-left: 0 !important; }
  .ebp-days::before { display: none; }
  .e-con.ebp-day, .ebp-day { flex-direction: column !important; }
  .ebp-day__media { width: 100% !important; min-height: 0; aspect-ratio: 16 / 10; border-radius: 4px 4px 0 0; }
  .ebp-day__media--art { aspect-ratio: 16 / 7; border-right: 0; border-bottom: 1px solid #C4DAD9; }
  .ebp-day__art { width: 44%; }
  .elementor-widget.ebp-day__num { left: 14px; top: 14px; width: 40px !important; height: 40px; box-shadow: none; z-index: 2; }
  .elementor-widget.ebp-day__num .elementor-heading-title { font-size: 16px; }
}
@media (max-width: 767px) {
  .ebp-route { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px 10px; padding: 0 16px 4px; font-size: 11.5px; }
  .ebp-route span { white-space: nowrap; } .ebp-route i { flex: 0 0 12px; }
  .ebp-day__text { padding: 20px 20px 18px !important; }
}
/* the number hangs on the timeline, outside the card */
.e-con.ebp-day > .e-con, .ebp-day > .ebp-day__text, .ebp-day__text > .e-con-inner { position: static !important; }
@media (max-width: 1024px) { .e-con.ebp-day > .ebp-day__text { position: static !important; } }
/* month guide: each pick leads with a photo of the place (Oct 2026) */
.ebp-month-pick { padding: 0 0 22px; overflow: hidden; }
.ebp-month-pick > span { padding: 0 22px; }
.ebp-month-pick__img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin: 0 0 6px; }
@media (max-width: 600px) { .ebp-month-pick__img { aspect-ratio: 16 / 9; } }

/* --- best sellers (client approved price option A + layout option 1, Oct 2026) ----------
   Left-aligned heading with a link on the right, then a 4-column grid of trip
   cards (like Vaya Adventures) and a "we tailor everything" tile. 2 columns on
   tablets, a swipe row on phones. */
.ebp-bs-sec > .e-con { position: relative; }
.ebp-bs__more { position: absolute; right: 0; top: 118px; font-size: 13.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #0E4B5D !important; border-bottom: 2px solid #2D9A9A; padding-bottom: 4px; text-decoration: none !important; white-space: nowrap; }
.ebp-bs__more:hover { border-color: #0E4B5D; }
.ebp-bs-sec .elementor-widget-text-editor p { max-width: 580px; }
.ebp-bs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 26px; margin-top: 22px; }
.ebp-bs__card { display: flex; flex-direction: column; text-decoration: none !important; color: #26454B; }
.ebp-bs__card:focus-visible { outline: 3px solid var(--ebp-focus, #0E4B5D); outline-offset: 4px; }
.ebp-bs__ph { position: relative; display: block; aspect-ratio: 4 / 3; background: center / cover; border-radius: 3px; overflow: hidden; transition: transform .5s; }
.ebp-bs__card:hover .ebp-bs__ph { transform: scale(1.02); }
.ebp-bs__dep { position: absolute; left: 12px; top: 12px; background: rgba(4, 19, 22, .72); color: #fff; font-size: 11.5px; font-weight: 600; letter-spacing: .04em; padding: 5px 10px; border-radius: 30px; }
.ebp-bs__name { font: 600 22px/1.2 "Fraunces", Georgia, serif; color: #0E4B5D; margin: 18px 0 6px; }
.ebp-bs__pr { display: block; font-size: 13.5px; line-height: 1.5; color: #547174; }
.ebp-bs__pr b { color: #0E4B5D; font-size: 15px; font-weight: 700; }
.ebp-bs__kes { color: #26454B; font-weight: 600; }
.ebp-bs__basis { display: block; }
.ebp-bs__bl { display: block; margin: 10px 0 16px; font-size: 14.5px; line-height: 1.55; flex: 1; }
.ebp-bs__btn { align-self: flex-start; border: 1.5px solid #0E4B5D; color: #0E4B5D; font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 9px 16px; border-radius: 2px; transition: background .2s, color .2s; }
.ebp-bs__card:hover .ebp-bs__btn { background: #0E4B5D; color: #fff; }
.ebp-bs__tile { background: #0E4B5D; color: #E9F4F3; border-radius: 3px; padding: 34px 30px; display: flex; flex-direction: column; justify-content: center; }
.ebp-bs__tile p { margin: 0 0 24px; font-size: 14.5px; line-height: 1.55; color: #A8F0F0; }
.ebp-bs__tile .ebp-bs__q { font: italic 400 23px/1.35 "Fraunces", Georgia, serif; color: #fff; margin: 0 0 18px; }
.ebp-bs__cta { align-self: flex-start; background: #C24848; color: #fff !important; font-size: 12.5px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 20px; border-radius: 2px; text-decoration: none !important; }
.ebp-bs__note { font-size: 12.5px; color: #547174; margin: 18px 0 0; }
@media (max-width: 1024px) { .ebp-bs { grid-template-columns: repeat(2, 1fr); } .ebp-bs__more { position: static; display: inline-block; } }
@media (max-width: 767px) {
  .ebp-bs { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 20px; margin: 14px -20px 0; padding: 0 20px 10px; -webkit-overflow-scrolling: touch;
    scrollbar-width: thin; scrollbar-color: #2D9A9A transparent; }
  .ebp-bs > * { flex: 0 0 78%; scroll-snap-align: start; }
  .ebp-bs::-webkit-scrollbar { height: 6px; } .ebp-bs::-webkit-scrollbar-thumb { background: #2D9A9A; border-radius: 6px; }
}

/* --- rename banner (remove ~6 months after launch: EBP_RENAME_BANNER) --- */
.ebp-rename{position:relative;background:#041316;color:#E9F4F3;font:500 13px/1.4 Montserrat,Arial,sans-serif;text-align:center;padding:9px 48px}
.ebp-rename p{margin:0}
.ebp-rename strong{font-weight:600;color:#fff}
.ebp-rename a{color:#A8F0F0;font-weight:600;text-decoration:none;margin-left:6px;white-space:nowrap}
.ebp-rename a:hover{text-decoration:underline}
.ebp-rename button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:0;color:#E9F4F3;font-size:20px;line-height:1;cursor:pointer;padding:4px 8px;opacity:.75}
.ebp-rename button:hover{opacity:1}
@media (max-width:600px){.ebp-rename{font-size:12px;padding:8px 40px 8px 14px;text-align:left}}

/* --- starting-price panel on a best seller's own page (best_sellers.price_panel) --- */
.ebp-pps { width: 100%; max-width: 1040px; margin: 18px auto 0; text-align: left; }
.ebp-pp { display: grid; grid-template-columns: 250px 1fr 250px; background: #E9F4F3; border-radius: 4px; overflow: hidden; }
.ebp-pp + .ebp-pp { margin-top: 16px; }
.ebp-pp__ph { display: block; min-height: 200px; background: center / cover; }
.ebp-pp__tx { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 30px 34px; }
.ebp-pp__eb { font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #1F7373; }
.ebp-pp__name { font: 600 26px/1.15 "Fraunces", Georgia, serif; color: #0E4B5D; }
.ebp-pp__bl { font-size: 15px; line-height: 1.55; color: #26454B; }
.ebp-pp__pr { display: flex; flex-direction: column; justify-content: center; padding: 28px 30px; border-left: 1px solid #C4DAD9; background: #fff; }
.ebp-pp__lbl { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #547174; }
.ebp-pp__pr b { font: 600 34px/1.1 "Fraunces", Georgia, serif; color: #0E4B5D; }
.ebp-pp__kes { font-size: 15px; font-weight: 600; color: #26454B; margin-top: 2px; }
.ebp-pp__basis { font-size: 13px; color: #547174; }
.ebp-pp__btn { align-self: flex-start; margin-top: 16px; background: #C24848; color: #fff !important; font-size: 12.5px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 20px; border-radius: 2px; text-decoration: none !important; }
.ebp-pp__btn:hover { background: #A93D3D; }
.ebp-pp__note { font-size: 12.5px; color: #547174; margin: 12px 0 0; }
.ebp-pp__note a { color: #0E4B5D; font-weight: 700; text-decoration: none; border-bottom: 1.5px solid #2D9A9A; }
@media (max-width: 900px) { .ebp-pp { grid-template-columns: 1fr; } .ebp-pp__ph { min-height: 180px; }
  .ebp-pp__pr { border-left: 0; border-top: 1px solid #C4DAD9; } .ebp-pp__tx { padding: 24px 22px 20px; } .ebp-pp__pr { padding: 22px; } }

/* --- slimmer header Contact Us (client, Oct 2026): ~40px tall on desktop --- */
@media (min-width: 1200px) {
  .ebp-cta-col .elementor-button, .ebp-cta-col a.w-btn { padding: 10px 22px !important; font-size: 12.5px !important; line-height: 1.4 !important; letter-spacing: .1em !important; }
}

/* --- header search (client request, Oct 2026; assets/js/search.js) --------- */
.ebp-search-btn { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin-right: -6px;
  background: transparent; border: 1.5px solid rgba(233, 244, 243, .35); border-radius: 50%; color: #fff; cursor: pointer; transition: background .2s, border-color .2s; }
.ebp-search-btn:hover, .ebp-search-btn:focus-visible { background: rgba(233, 244, 243, .12); border-color: #A8F0F0; outline: none; }
.ebp-search-btn svg { width: 18px; height: 18px; }
@media (max-width: 1199px) { .ebp-search-btn { order: 2; width: 42px; height: 42px; margin: 0 -6px 0 0; } }
@media (max-width: 420px) { .ebp-search-btn { width: 40px; height: 40px; margin-right: -8px; } }
html.ebp-search-open { overflow: hidden; }
.ebp-search { position: fixed; inset: 0; z-index: 100000; background: rgba(4, 19, 22, .97); color: #E9F4F3; overflow-y: auto;
  opacity: 0; transition: opacity .2s; font-family: Montserrat, Arial, sans-serif; }
.ebp-search.is-open { opacity: 1; }
.ebp-search__in { position: relative; max-width: 820px; margin: 0 auto; padding: 14vh 24px 60px; }
.ebp-search__close { position: absolute; top: 24px; right: 24px; width: 46px; height: 46px; border-radius: 50%; background: transparent;
  border: 1.5px solid rgba(233, 244, 243, .35); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.ebp-search__close:hover { border-color: #A8F0F0; }
.ebp-search__label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #A8F0F0; margin-bottom: 14px; }
.ebp-search__field { display: flex; align-items: center; gap: 14px; border-bottom: 2px solid #2D9A9A; padding-bottom: 12px; }
.ebp-search__field svg { width: 28px; height: 28px; color: #55D8D8; flex: 0 0 auto; }
.ebp-search__field input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #fff; padding: 0;
  font: 400 clamp(26px, 4vw, 40px)/1.2 Fraunces, Georgia, serif; }
.ebp-search__field input::placeholder { color: rgba(233, 244, 243, .45); }
.ebp-search__field input::-webkit-search-cancel-button { display: none; }
.ebp-search__list { margin-top: 26px; }
.ebp-search__hint { color: rgba(233, 244, 243, .7); font-size: 14px; margin: 0 0 14px; }
.ebp-search__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ebp-search__chip { background: transparent; border: 1.5px solid rgba(233, 244, 243, .3); color: #E9F4F3; border-radius: 30px; padding: 8px 16px;
  font: 600 13.5px Montserrat, Arial, sans-serif; cursor: pointer; }
.ebp-search__chip:hover { border-color: #A8F0F0; color: #fff; }
.ebp-search__item { display: grid; grid-template-columns: 110px 1fr auto; grid-template-areas: "k t go" "k w go"; align-items: center; column-gap: 18px;
  padding: 14px 16px; border-radius: 4px; color: #E9F4F3 !important; text-decoration: none !important; border-bottom: 1px solid rgba(233, 244, 243, .08); }
.ebp-search__item:hover, .ebp-search__item.is-active { background: rgba(45, 154, 154, .18); }
.ebp-search__k { grid-area: k; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #55D8D8; }
.ebp-search__t { grid-area: t; font: 600 20px/1.25 Fraunces, Georgia, serif; color: #fff; }
.ebp-search__t mark { background: none; color: #A8F0F0; }
.ebp-search__w { grid-area: w; font-size: 13px; color: rgba(233, 244, 243, .65); }
.ebp-search__go { grid-area: go; font-size: 18px; color: #A8F0F0; opacity: 0; transition: opacity .2s; }
.ebp-search__item:hover .ebp-search__go, .ebp-search__item.is-active .ebp-search__go { opacity: 1; }
.ebp-search__none { color: #E9F4F3; font-size: 16px; line-height: 1.6; }
.ebp-search__none a, .ebp-search__all { color: #A8F0F0 !important; font-weight: 600; }
.ebp-search__all { display: inline-block; margin-top: 20px; font-size: 14px; text-decoration: none; border-bottom: 1.5px solid #2D9A9A; }
@media (max-width: 600px) {
  .ebp-search__in { padding-top: 90px; }
  .ebp-search__close { top: 18px; right: 16px; }
  .ebp-search__item { grid-template-columns: 1fr auto; grid-template-areas: "k go" "t go" "w go"; row-gap: 2px; padding: 12px 6px; }
}

/* --- photo credits page --- */
.ebp-credits { margin: 6px 0 0; padding-left: 20px; font-size: 14px; line-height: 1.6; color: #547174; }
.ebp-credits li { margin: 0 0 8px; }
.ebp-credits a { color: #0E4B5D; }

/* --- journal article (single.php + build/blog_preview.py), Oct 2026 ------------------
   Photo header, an answer-first lead, question headings, branded tables, the
   "What we tell our clients" tip (Quote block), author box, CTA band, related. */
.ebp-post { background: #F5F7FA; }
.ebp-post__hero { position: relative; background: #0E4B5D center / cover no-repeat; color: #fff; }
.ebp-post__hero.has-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,19,22,.88) 0%, rgba(4,19,22,.45) 55%, rgba(4,19,22,.25) 100%); }
.ebp-post__hero-in { position: relative; max-width: 900px; margin: 0 auto; padding: 150px 24px 56px; }
.ebp-post__crumbs { margin: 0 0 14px; font: 700 12px/1.4 Montserrat, Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #A8F0F0; }
.ebp-post__crumbs a { color: #A8F0F0; text-decoration: none; }
.ebp-post__crumbs a:hover { color: #fff; }
.ebp-post__crumbs span { margin: 0 8px; opacity: .6; }
.ebp-post__title { margin: 0; font: 600 clamp(32px, 4.6vw, 50px)/1.12 Fraunces, Georgia, serif; color: #fff; text-wrap: balance; }
.ebp-post__meta { margin: 18px 0 0; font: 500 14px/1.6 Montserrat, Arial, sans-serif; color: #E9F4F3; }
.ebp-post__meta span { margin: 0 6px; opacity: .6; }
.ebp-post__wrap { max-width: 760px; margin: 0 auto; padding: 56px 24px 24px; }
.ebp-post__body { font: 400 17px/1.75 Montserrat, Arial, sans-serif; color: #26454B; }
.ebp-post__body > p:first-child { margin-top: 0; padding: 22px 26px; background: #E9F4F3; border-left: 4px solid #2D9A9A; border-radius: 0 3px 3px 0; font-size: 18.5px; line-height: 1.65; color: #0E4B5D; }
.ebp-post__body h2 { margin: 52px 0 14px; font: 600 30px/1.2 Fraunces, Georgia, serif; color: #0E4B5D; }
.ebp-post__body h3 { margin: 36px 0 10px; font: 600 22px/1.3 Fraunces, Georgia, serif; color: #0E4B5D; }
.ebp-post__body p { margin: 0 0 18px; }
.ebp-post__body a { color: #1F7373; text-decoration: underline; text-decoration-color: #2D9A9A; text-underline-offset: 3px; }
.ebp-post__body a:hover { color: #0E4B5D; }
.ebp-post__body strong { color: #0E4B5D; }
.ebp-post__body ul, .ebp-post__body ol { margin: 0 0 22px; padding-left: 22px; }
.ebp-post__body li { margin: 0 0 8px; }
.ebp-post__body li::marker { color: #2D9A9A; font-weight: 700; }
.ebp-post__body figure { margin: 28px 0; }
.ebp-post__body img { max-width: 100%; height: auto; border-radius: 3px; display: block; }
.ebp-post__body figcaption { margin-top: 8px; font-size: 13px; color: #547174; }
.ebp-post__body .wp-block-table, .ebp-post__body .ebp-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 26px 0 30px; }
.ebp-post__body table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; background: #fff; border: 1px solid #C4DAD9; }
.ebp-post__body thead th, .ebp-post__body tr:first-child th { background: #0E4B5D; color: #fff; font-weight: 600; text-align: left; }
.ebp-post__body th, .ebp-post__body td { padding: 12px 14px; border-bottom: 1px solid #C4DAD9; vertical-align: top; text-align: left; }
.ebp-post__body tbody tr:nth-child(even) td { background: #F5F7FA; }
.ebp-post__body blockquote, .ebp-post__body .wp-block-quote { margin: 34px 0; padding: 24px 28px 22px 28px; background: #fff; border: 1px solid #C4DAD9; border-left: 4px solid #0E4B5D; border-radius: 0 3px 3px 0; font-style: normal; }
.ebp-post__body blockquote p { margin: 0; font-size: 16.5px; }
.ebp-post__body blockquote p + p { margin-top: 10px; }
.ebp-post__body blockquote strong:first-child { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #1F7373; }
.ebp-post__body blockquote cite { display: block; margin-top: 10px; font-size: 13px; font-style: normal; color: #547174; }
.ebp-post__author { display: flex; gap: 18px; align-items: flex-start; margin: 48px 0 0; padding: 26px 0 0; border-top: 1px solid #C4DAD9; }
.ebp-post__initials { flex: 0 0 56px; height: 56px; border-radius: 50%; background: #0E4B5D; color: #55D8D8; display: flex; align-items: center; justify-content: center; font: 600 20px Fraunces, Georgia, serif; }
.ebp-post__author-name { margin: 2px 0 4px; font: 600 18px Fraunces, Georgia, serif; color: #0E4B5D; }
.ebp-post__author-bio { margin: 0; font-size: 14.5px; line-height: 1.6; color: #547174; }
.ebp-post__cta { margin-top: 56px; background: #E9F4F3; color: #26454B; border-top: 1px solid #C4DAD9; }
.ebp-post__cta-in { max-width: 760px; margin: 0 auto; padding: 56px 24px; text-align: center; }
.ebp-post__cta h2 { margin: 0 0 10px; font: 600 32px/1.2 Fraunces, Georgia, serif; color: #0E4B5D; }
.ebp-post__cta p { margin: 0 0 24px; font-size: 16px; line-height: 1.6; }
.ebp-post__cta-btns { display: flex; gap: 22px; justify-content: center; align-items: center; flex-wrap: wrap; margin: 0 !important; }
.ebp-post__btn { background: #C24848; color: #fff !important; font: 700 13px Montserrat, Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; padding: 15px 28px; border-radius: 2px; text-decoration: none !important; }
.ebp-post__btn:hover { background: #A93D3D; }
.ebp-post__link { color: #1F7373 !important; font-weight: 700; text-decoration: none !important; }
.ebp-post__related { padding: 64px 0 72px; }
.ebp-post__related-in { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.ebp-post__related h2 { margin: 0 0 26px; font: 600 30px Fraunces, Georgia, serif; color: #0E4B5D; }
.ebp-post__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.ebp-post__card { display: flex; flex-direction: column; text-decoration: none !important; color: #26454B; }
.ebp-post__card-ph { display: block; aspect-ratio: 16 / 10; background: #C4DAD9 center / cover; border-radius: 3px; }
.ebp-post__card-title { margin: 14px 0 6px; font: 600 20px/1.3 Fraunces, Georgia, serif; color: #0E4B5D; }
.ebp-post__card:hover .ebp-post__card-title { text-decoration: underline; text-decoration-color: #2D9A9A; }
.ebp-post__card-meta { font-size: 13px; color: #547174; }
@media (max-width: 767px) {
  .ebp-post__hero-in { padding: 120px 20px 40px; }
  .ebp-post__wrap { padding: 36px 20px 16px; }
  .ebp-post__body { font-size: 16px; }
  .ebp-post__body h2 { font-size: 25px; margin-top: 40px; }
  .ebp-post__body > p:first-child { padding: 18px 18px; font-size: 17px; }
  .ebp-post__cards { grid-template-columns: 1fr; }
}
/* The footer's newsletter band overlaps the section above it by ~106px; the article's last section leaves room. */
.ebp-post__cta:last-child .ebp-post__cta-in { padding-bottom: 168px; }
.ebp-post__related:last-child { padding-bottom: 182px; }
