/* ==========================================================================
   Sri Lanka Travel Tours — Homepage
   ========================================================================== */

:root {
  /* ---- Legacy aliases (kept as-is so nothing on the site shifts) ---- */
  --slt-red: #ff1717;
  --slt-blue: #1769ff;
  --slt-green: #1AAE4B;
  --slt-green-hover: #168f3e;
  --slt-ink: #121212;
  --slt-gray-600: #5b5b5b;
  --slt-gray-200: #e6e6e6;
  --slt-gray-50: #f7f7f8;
  --slt-white: #ffffff;

  /* ---- Brand ramps — see BRAND-GUIDELINES.md for usage rules ---- */
  --slt-red-50: #fff3f3;
  --slt-red-100: #ffe8e8;
  --slt-red-200: #ffb9b9;
  --slt-red-300: #ff8b8b;
  --slt-red-400: #ff5d5d;
  --slt-red-500: #ff1717;
  --slt-red-600: #d91414;
  --slt-red-700: #b31010;
  --slt-red-800: #8c0d0d;
  --slt-red-900: #660909;

  --slt-blue-50: #f3f8ff;
  --slt-blue-100: #e8f0ff;
  --slt-blue-200: #b9d2ff;
  --slt-blue-300: #8bb4ff;
  --slt-blue-400: #5d96ff;
  --slt-blue-500: #1769ff;
  --slt-blue-600: #1459d9;
  --slt-blue-700: #104ab3;
  --slt-blue-800: #0d3a8c;
  --slt-blue-900: #092a66;

  --slt-slate-50: #f9f9f9;
  --slt-slate-100: #eff0f0;
  --slt-slate-200: #d7d8d9;
  --slt-slate-300: #aeb2b4;
  --slt-slate-400: #868b8e;
  --slt-slate-500: #65696d;
  --slt-slate-600: #353e43;
  --slt-slate-700: #2d3539;
  --slt-slate-800: #252b2f;
  --slt-slate-900: #1d2225;

  --slt-gold-400: #d4af6a;
  --slt-gold-500: #c79a3e;
  --slt-gold-600: #a87f2e;

  /* ---- Semantic roles — what to reach for, not which hex ---- */
  --slt-text-primary: var(--slt-slate-900);
  --slt-text-secondary: var(--slt-slate-500);
  --slt-text-muted: var(--slt-slate-400);
  --slt-text-on-brand: var(--slt-white);

  --slt-surface: var(--slt-white);
  --slt-surface-subtle: var(--slt-slate-50);
  --slt-border: var(--slt-slate-200);
  --slt-border-strong: var(--slt-slate-300);

  --slt-action: var(--slt-blue-500);
  --slt-action-hover: var(--slt-blue-600);
  --slt-action-active: var(--slt-blue-700);

  --slt-urgent: var(--slt-red-500);
  --slt-urgent-hover: var(--slt-red-600);
  --slt-urgent-subtle-bg: var(--slt-red-50);
  --slt-urgent-subtle-text: var(--slt-red-700);

  --slt-success: var(--slt-green);
  --slt-success-hover: var(--slt-green-hover);
  --slt-warning: #f59e0b;
  --slt-warning-subtle-bg: #fef3e2;
  --slt-warning-subtle-text: #92400e;

  --slt-link: var(--slt-blue-500);
  --slt-link-hover: var(--slt-blue-400);
  --slt-link-visited: var(--slt-blue-800);

  --slt-highlight-bg: var(--slt-blue-100);
  --slt-highlight-text: var(--slt-blue-800);

  --slt-message-bg: var(--slt-slate-50);
  --slt-message-border: var(--slt-slate-200);
  --slt-message-text: var(--slt-slate-700);

  --slt-alert-bg: var(--slt-red-50);
  --slt-alert-border: var(--slt-red-200);
  --slt-alert-text: var(--slt-red-700);

  --slt-container-max: 1320px;
  --slt-radius-sm: 6px;

  --font-base: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---- Dark theme ----
   Only the structural tokens flip (surface, ink, the gray scale, and the
   semantic aliases built on top of them). --slt-white stays literally
   white on purpose — it's also used as on-color text for colored buttons
   (e.g. white text on a blue button), which must stay white in both
   themes. Toggled via [data-theme] on <html>, set by js/theme.js. */
:root[data-theme="dark"] {
  --slt-surface: #14171a;
  --slt-ink: #f1f1f1;
  --slt-gray-600: #aeb2b4;
  --slt-gray-200: #353e43;
  --slt-gray-50: #1d2225;

  --slt-text-primary: #f1f1f1;
  --slt-text-secondary: #aeb2b4;
  --slt-text-muted: #868b8e;
  --slt-surface-subtle: #1d2225;
  --slt-border: #353e43;
  --slt-border-strong: #65696d;

  /* Semantic tint tokens (highlight spans, warning banners) built from
     the light-mode numbered ramps above — without an override here they
     silently keep their light-mode pastel value (e.g. --slt-blue-100) in
     dark mode, leaving a light patch behind dark-mode text. */
  --slt-highlight-bg: rgba(139, 180, 255, 0.16);
  --slt-highlight-text: var(--slt-blue-300);
  --slt-warning-subtle-bg: rgba(245, 158, 11, 0.16);
  --slt-warning-subtle-text: #fbbf6b;

  /* Tells the browser to render native form-control chrome (the <select>
     dropdown listbox, scrollbars, etc.) in its dark variant — without
     this the popup list stays light/white even though the site's own
     dark theme is active. */
  color-scheme: dark;
}

* {
  box-sizing: border-box;
}

::selection {
  background-color: var(--slt-blue-400);
  color: var(--slt-white);
}

html {
  overflow-x: hidden;
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  font-family: var(--font-base);
  color: var(--slt-ink);
  background-color: var(--slt-surface);
  transition: background-color 0.2s ease, color 0.2s ease;
}

img {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

.slt-container {
  width: 100%;
  max-width: var(--slt-container-max);
  margin-inline: auto;
  padding-inline: 24px;
}

@media (min-width: 1920px) {
  :root {
    --slt-container-max: 1760px;
  }
}

/* ---- Secondary header — a floating "Plan My Trip" CTA pinned near the
   BOTTOM of the viewport (not a full-width bar). Hidden at the very top of
   the page, appears while scrolling through the middle of the page, and
   hides again once the footer comes into view (assets/js/header-nav.js
   scroll handler checks .slt-footer-full's position). Same size as the
   top-right "Plan My Trip" CTA (.slt-icon-btn--customize). ---- */
.slt-header-mini {
  position: fixed;
  bottom: 10px;
  right: 20px;
  z-index: 1000;
  transform: translateY(150%);
  transition: transform 0.25s ease;
}

.slt-header-mini.is-visible {
  transform: translateY(0);
}

.slt-header-mini__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-red-600);
  color: var(--slt-white);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.slt-header-mini__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.slt-header-mini__cta:hover {
  background-color: var(--slt-red-700);
}

/* ---- Header ---- */
.slt-header {
  position: relative;
  background-color: var(--slt-surface);
  padding-block: 8px;
}

.slt-header__inner {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-inline: 20px;
}

/* flex-shrink: 0 — without it, this flex item (an <a> wrapping an <img
   width: auto>) could shrink all the way to 0 and disappear once the
   header's other flex children (actions + hamburger, both a fixed size)
   don't leave enough room, e.g. at narrow phone widths. */
.slt-logo {
  flex-shrink: 0;
}

.slt-logo img {
  height: 60px;
  width: auto;
}

.slt-nav {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1;
}

/* :not(.slt-mega-menu *) on all four rules below: these style the
   top-level nav links and dropdown triggers only. Without it, this
   selector's specificity (class + element) beats every mega-menu content
   class (.slt-mega-menu__cat, __item, __more a, __viewall — all single
   classes) and silently overwrites their padding/radius/font-size. */
.slt-nav a:not(.slt-mega-menu *) {
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--slt-ink);
  transition: color 0.2s ease;
}

.slt-nav a:not(.slt-nav__cta):not(.slt-mega-menu *) {
  /* Vertical padding tuned so the hover/active background box is 40px
     tall — the same height as the "Plan My Trip" button (.slt-icon-btn--
     customize) it sits alongside. */
  padding: 8.4px 14px;
  border-radius: var(--slt-radius-sm);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.slt-nav a:not(.slt-mega-menu *):hover {
  color: var(--slt-blue);
}

.slt-nav a:not(.slt-nav__cta):not(.slt-mega-menu *):hover {
  background-color: var(--slt-surface-subtle);
}

.slt-nav a.is-active {
  color: var(--slt-blue);
  font-weight: 500;
}

.slt-nav a:not(.slt-nav__cta):not(.slt-mega-menu *).is-active {
  background-color: var(--slt-surface-subtle);
}

/* ---- "Things to Do" mega menu ---- */
.slt-nav__item {
  display: flex;
}

.slt-nav__dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

/* Keeps the trigger highlighted while its mega menu is open, even once the
   cursor has moved off the trigger itself and down into the panel — without
   this, the ":hover" styling above drops the instant the mouse leaves the
   link, making it look like nothing is selected while the menu is still
   open. */
.slt-nav__item.is-open .slt-nav__dropdown-toggle {
  color: var(--slt-blue);
  background-color: var(--slt-surface-subtle);
}

.slt-nav__chevron {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.slt-mega-menu {
  position: absolute;
  top: calc(100% + 0px);
  left: 0;
  right: 0;
  background-color: var(--slt-surface);
  z-index: 40;
}

.slt-mega-menu[hidden] {
  display: none;
}

/* ---- "Tours" mega menu — reuses the same style-category values already
   driving the filter pills on tours.html (data-group="style"), so the nav
   and the on-page filter taxonomy never disagree. ---- */
.slt-mega-menu__media--tour-classic { background: linear-gradient(135deg, #cfd8e0, #6d7f90); }
.slt-mega-menu__media--tour-adventure { background: linear-gradient(135deg, #f6b183, #c9622a); }
.slt-mega-menu__media--tour-wildlife { background: linear-gradient(135deg, #d7c98a, #7c6a2e); }
.slt-mega-menu__media--tour-family { background: linear-gradient(135deg, #a9d8c9, #3f8f72); }
.slt-mega-menu__media--tour-food { background: linear-gradient(135deg, #f0a8a8, #b5443f); }

/* ---- "Tours", "Destinations" and "Things to Do" mega menus — split layout (left sidebar of category groups,
   right panel of categories that swaps on hover, "View all" footer bar).
   The dropdown itself is full width (inherits the base .slt-mega-menu
   100vw behavior), and the inner content now matches that same full
   width — same padding as .slt-header__inner — rather than the
   narrower site container, so the panel lines up edge-to-edge with the
   nav bar above it. One background color throughout — sidebar/panel
   and panel/footer are separated by border lines only, not by shaded
   zones. ---- */
.slt-mega-menu__inner--split {
  width: 100%;
  padding-inline: 24px;
  display: flex;
  align-items: stretch;
}

.slt-mega-menu__sidebar {
  width: 280px;
  flex-shrink: 0;
  padding: 10px 14px;
   
}

.slt-mega-menu__sidebar-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  text-align: left;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--slt-ink);
  background: transparent;
  border: 2px solid transparent;
  border-radius: var(--slt-radius-sm);
  padding: 8px 16px;
  margin-bottom: 1px;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.slt-mega-menu__sidebar-arrow {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.slt-mega-menu__sidebar-item:hover {
  color: var(--slt-blue);
}

.slt-mega-menu__sidebar-item:focus-visible {
  color: var(--slt-blue);
  border-color: var(--slt-blue);
}

.slt-mega-menu__sidebar-item.is-active {
  color: var(--slt-blue);
  border-color: var(--slt-blue);
}

/* --slt-blue (#1769ff) on the dark-mode surface only reaches a ~3.9:1
   contrast ratio — below WCAG AA's 4.5:1 for normal text. Same lighter
   shade already used for links elsewhere in dark mode (e.g. blog tags,
   highlight spans). */
:root[data-theme="dark"] .slt-mega-menu__sidebar-item:hover,
:root[data-theme="dark"] .slt-mega-menu__sidebar-item:focus-visible,
:root[data-theme="dark"] .slt-mega-menu__sidebar-item.is-active {
  color: var(--slt-blue-300);
  border-color: var(--slt-blue-300);
}

.slt-mega-menu__sidebar-item:focus-visible .slt-mega-menu__sidebar-arrow,
.slt-mega-menu__sidebar-item.is-active .slt-mega-menu__sidebar-arrow {
  opacity: 1;
  transform: translateX(0);
}

.slt-mega-menu__panels {
  flex: 1;
  padding: 20px 24px;
  min-height: 320px;
}

.slt-mega-menu__panel {
  grid-template-columns: repeat(3, 1fr);
  gap: 4px 20px;
}

.slt-mega-menu__panel.is-active {
  display: grid;
}

.slt-mega-menu__cat {
  display: flex;
  align-items: center;
  align-self: start;
  gap: 12px;
  margin: 8px;
  border-radius: var(--slt-radius-sm);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--slt-ink);
  transition: background-color 0.15s ease, color 0.15s ease;
}

.slt-mega-menu__cat:hover {
  background-color: var(--slt-surface-subtle);
  color: var(--slt-blue);
}

.slt-mega-menu__cat-icon {
  width: 66.67px;
  height: 50px;
  border-radius: var(--slt-radius-sm) 0 0 var(--slt-radius-sm);
  flex-shrink: 0;
}

.slt-mega-menu__cat-icon--photo {
  overflow: hidden;
}

.slt-mega-menu__cat-icon--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.15s ease;
}

.slt-mega-menu__cat:hover .slt-mega-menu__cat-icon--photo img {
  transform: scale(1.1);
}

.slt-mega-menu__cat-icon--nature { background: linear-gradient(135deg, #b7d8a0, #4c7a3a); }
.slt-mega-menu__cat-icon--culture { background: linear-gradient(135deg, #e8c98a, #9a6a2e); }
.slt-mega-menu__cat-icon--wellness { background: linear-gradient(135deg, #cbb8e8, #6f4fa0); }
.slt-mega-menu__cat-icon--leisure { background: linear-gradient(135deg, #8ecfd8, #2b6e78); }
.slt-mega-menu__cat-icon--occasions { background: linear-gradient(135deg, #f3b6c9, #b5446e); }
.slt-mega-menu__cat-icon--business { background: linear-gradient(135deg, #a8b4c4, #3f4f66); }
.slt-mega-menu__cat-icon--adventure { background: linear-gradient(135deg, #f6b183, #c9622a); }
.slt-mega-menu__cat-icon--family { background: linear-gradient(135deg, #f5c99a, #c97a2e); }
.slt-mega-menu__cat-icon--honeymoon { background: linear-gradient(135deg, #f0a8c4, #a83f6e); }

.slt-mega-menu__footer {
  width: 100%;
  padding: 0;
  text-align: center;
}

/* IDs used here (not just the class) because the base ".slt-nav
   a:not(.slt-nav__cta)" rule outranks a plain single-class selector and
   was silently overriding this button's padding/radius. Default state
   mirrors the top nav's own hover color (outline only); on hover it
   becomes the exact top-nav hover treatment (subtle fill + blue text).
   Square corners, full width, flush with the dropdown's bottom edge —
   outline-offset:-3px pulls the 3px line inward so it lands exactly on
   the panel's own boundary instead of drawing 3px past it. */
#toursMegaMenu .slt-mega-menu__viewall,
#destMegaMenu .slt-mega-menu__viewall,
#ttdMegaMenu .slt-mega-menu__viewall {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--slt-ink);
  text-decoration: underline;
  text-underline-offset: 6px;
  background-color: transparent;
  border: none;
  outline: 1px solid var(--slt-ink);
  outline-offset: -1px;
  padding: 20px 30px;
  border-radius: var(--slt-radius-sm);
  transition: background-color 0.2s ease, color 0.2s ease;
}

#toursMegaMenu .slt-mega-menu__viewall:hover,
#destMegaMenu .slt-mega-menu__viewall:hover,
#ttdMegaMenu .slt-mega-menu__viewall:hover {
  background-color: var(--slt-surface-subtle);
  color: var(--slt-ink);
}

/* "Tours" is the primary CTA of the app — kept as a real, crawlable nav
   link (good for SEO/anchor text) but visually set apart from the other
   nav items so it reads as the main action. */
@keyframes slt-nav-cta-pulse {
  0% { box-shadow: 0 0 0 0 rgba(23, 105, 255, 0.45); }
  70% { box-shadow: 0 0 0 8px rgba(23, 105, 255, 0); }
  100% { box-shadow: 0 0 0 0 rgba(23, 105, 255, 0); }
}

.slt-nav a.slt-nav__cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background-color: transparent;
  animation: slt-nav-cta-pulse 2s infinite;
  border: 3px solid var(--slt-blue);
  color: var(--slt-ink);
  font-weight: 500;
  padding: 5px 15px;
  border-radius: var(--slt-radius-sm);
}

.slt-nav a.slt-nav__cta.is-active {
  color: var(--slt-white);
}

.slt-nav a.slt-nav__cta.is-active {
  background-color: var(--slt-blue);
  border-color: var(--slt-blue-400);
  color: var(--slt-white);
  animation: none;
}

.slt-nav__cta-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.slt-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;

}

/* Icon + small label underneath */
.slt-icon-btn {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: auto;
  height: auto;
  border: none;
  border-radius: var(--slt-radius-sm);
  padding: 6px 9px;
  background: transparent;
  cursor: pointer;
  color: var(--slt-ink);
  font-family: inherit;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.slt-icon-btn__label {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 0.64rem;
  font-weight: 600;
  white-space: nowrap;
}

.slt-icon-btn .slt-icon-btn__chevron {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.slt-icon-btn--profile {
  flex-direction: row;
  gap: 3px;
  padding-inline: 3px;
}

.slt-icon-btn--customize {
  flex-direction: row;
  gap: 6px;
  padding: 10px 16px;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-red-600);
  color: var(--slt-white);
  transition: background-color 0.2s ease;
}

.slt-icon-btn--customize:hover {
  background-color: var(--slt-red-700);
}

.slt-icon-btn.slt-icon-btn--customize svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.slt-icon-btn--customize .slt-icon-btn__label {
  font-size: 1rem;
  font-weight: 600;
}

.slt-icon-btn__badge {
  position: absolute;
  top: 4px;
  right: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 3px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-red);
  color: var(--slt-white);
  font-size: 0.8rem;
  font-weight: 500;
}

.slt-icon-btn__badge svg {
  width: 9px;
  height: 9px;
}

.slt-icon-btn__dot {
  position: absolute;
  top: 4px;
  right: 5px;
  width: 12px;
  height: 12px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-slate-400);
  box-shadow: 0 0 0 2px var(--slt-surface);
}

.slt-icon-btn__dot.is-active {
  background-color: var(--slt-red-400);
}

/* ---- Theme toggle ---- */
.slt-theme-icon--moon {
  display: none;
}

:root[data-theme="dark"] .slt-theme-icon--sun {
  display: none;
}

:root[data-theme="dark"] .slt-theme-icon--moon {
  display: block;
}

.slt-theme-picker {
  position: relative;
}

.slt-icon-btn--theme:hover,
.slt-icon-btn--theme[aria-expanded="true"] {
  background-color: var(--slt-surface-subtle);
}

/* Custom tooltip (not the native `title` attribute) so it matches the
   site's own type/surface tokens in both themes. Sits below the icon —
   above it clipped against the viewport top since the header hugs y:0.
   Right-anchored (not centered) — the button sits at the far right edge
   of the header, so a centered tooltip's right half ran off-screen and
   got clipped; anchoring to the right edge instead grows it leftward
   into the available space, same as .slt-theme-menu below. Hidden while
   the menu is open so the two floating panels never show at once. */
.slt-theme-tooltip {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  transform: translateY(-2px);
  z-index: 30;
  padding: 6px 10px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-surface);
  color: var(--slt-ink);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  font-size: 0.76rem;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.slt-icon-btn--theme:hover .slt-theme-tooltip,
.slt-icon-btn--theme:focus-visible .slt-theme-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.slt-theme-picker:has(.slt-theme-menu:not([hidden])) .slt-theme-tooltip {
  display: none;
}

/* .slt-mega-menu is full-width with a higher z-index (40 vs. this
   tooltip's 30) and opaque background, so it visually buries the tooltip
   underneath it whenever a nav item's mega menu is open — hide the
   tooltip in that case rather than fighting it for stacking order. */
.slt-header__inner:has(.slt-nav__item.is-open) .slt-theme-tooltip {
  display: none;
}

.slt-theme-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 30;
  min-width: 200px;
  padding: 6px;
  background-color: var(--slt-surface);
  border-radius: var(--slt-radius-sm);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.slt-theme-menu[hidden] {
  display: none;
}

.slt-theme-menu__item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 10px;
  border: none;
  border-radius: var(--slt-radius-sm);
  background: none;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--slt-ink);
  text-align: left;
  cursor: pointer;
}

.slt-theme-menu__item:hover,
.slt-theme-menu__item:focus-visible {
  background-color: var(--slt-surface-subtle);
}

/* Dark scrim behind the Appearance menu once it becomes a mobile bottom
   sheet below — invisible above that width, where the menu stays a small
   anchored dropdown with no backdrop. Same pattern as tour-detail.css's
   .td-sheet-backdrop / plan-my-trip's .mct-sheet-backdrop. */
.slt-theme-sheet-backdrop {
  display: none;
}

@media (max-width: 575.98px) {
  .slt-theme-sheet-backdrop:not([hidden]) {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background-color: rgba(0, 0, 0, 0.5);
  }

  .slt-theme-menu {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    min-width: 0;
    padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 0px));
    border-radius: 0;
    border-top: 1px solid var(--slt-border);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.18);
    z-index: 1001;
  }

  .slt-theme-menu__item {
    gap: 14px;
    padding: 14px;
    font-size: 1rem;
  }

  .slt-theme-menu .slt-theme-menu__item svg:first-child {
    width: 22px;
    height: 22px;
  }

  .slt-theme-menu .slt-theme-menu__check {
    width: 20px;
    height: 20px;
  }
}

.slt-theme-menu__item svg:first-child {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--slt-text-secondary);
}

.slt-theme-menu__item span {
  flex: 1;
}

.slt-theme-menu__check {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--slt-blue);
  visibility: hidden;
}

.slt-theme-menu__item[aria-checked="true"] .slt-theme-menu__check {
  visibility: visible;
}

.slt-theme-menu__item[aria-checked="true"] svg:first-child {
  color: var(--slt-blue);
}

.slt-icon-btn svg {
  width: 30px;
  height: 30px;
}

/* ---- Header actions — just Custom Tour now (Wishlist/Profile removed
   for first phase), so no more boxed multi-cell table treatment. ---- */
.slt-header__nav-table {
  display: flex;
  align-items: stretch;
 gap:24px;
}

.slt-header__nav-cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ---- Profile dropdown ---- */
.slt-profile {
  position: relative;
}

.slt-profile__menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 200px;
  background-color: var(--slt-surface);
  padding: 20px;
  z-index: 30;
}

.slt-profile__menu[hidden] {
  display: none;
}

.slt-profile__menu a,
.slt-profile__menu button {
  display: block;
  width: 100%;
  text-align: left;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--slt-ink);
  background: transparent;
  border: none;
  padding: 10px 12px;
  border-radius: var(--slt-radius-sm);
  cursor: pointer;
}

.slt-profile__menu a:hover,
.slt-profile__menu button:hover {
  background-color: var(--slt-surface-subtle);
  color: var(--slt-blue);
}

.slt-profile__divider {
  height: 1px;
  background-color: var(--slt-gray-200);
  margin: 6px 4px;
}

.slt-profile__menu button.slt-profile__menu-theme {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.slt-profile__menu-theme svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.slt-profile__menu-theme-label {
  white-space: nowrap;
}

.slt-header__signin:hover {
  border-color: var(--slt-blue);
  color: var(--slt-blue);
}

/* ---- Login / sign-up modal ---- */
.slt-auth-modal {
  position: relative;
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
  background-color: var(--slt-surface);
  border: 1px solid var(--slt-white);
  border-radius: var(--slt-radius-sm);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.16);
  padding: 28px;
}

.slt-auth-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
}

.slt-auth-modal h3 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 18px;
  padding-right: 30px;
  color: var(--slt-ink);
}

.slt-auth__optin {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 20px;
  cursor: pointer;
}

.slt-auth__optin input {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--slt-blue);
}

.slt-auth__optin span {
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--slt-gray-600);
}

.slt-auth__social {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}

.slt-auth__social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--slt-ink);
  background-color: var(--slt-surface);
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 11px 16px;
  cursor: pointer;
}

.slt-auth__social-btn:hover {
  border-color: var(--slt-border-strong);
  background-color: var(--slt-surface-subtle);
}

.slt-auth__social-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.slt-auth__divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 4px 0 18px;
  color: var(--slt-gray-600);
  font-size: 0.78rem;
}

.slt-auth__divider::before,
.slt-auth__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: var(--slt-gray-200);
}

.slt-auth__field {
  display: block;
  margin-bottom: 16px;
}

.slt-auth__field span {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--slt-gray-600);
  margin-bottom: 6px;
}

.slt-auth__field input {
  width: 100%;
  font-family: inherit;
  font-size: 0.9rem;
  color: var(--slt-ink);
  background-color: var(--slt-surface);
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 11px 14px;
}

.slt-auth__field input:focus {
  outline: none;
  border-color: var(--slt-blue);
}

.slt-auth__submit {
  display: block;
  width: 100%;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--slt-white);
  background-color: var(--slt-blue);
  border: none;
  border-radius: var(--slt-radius-sm);
  padding: 12px 16px;
  cursor: pointer;
  margin-bottom: 16px;
}

.slt-auth__submit:hover {
  background-color: #0e54d6;
}

.slt-auth__terms {
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--slt-gray-600);
  text-align: center;
  margin: 0;
}

.slt-auth__terms a {
  color: var(--slt-blue);
  text-decoration: underline;
}

/* ---- Page breadcrumb bar (+ h1 on listing pages), shared across all pages ---- */
.tours-titlebar {
  padding-block: 28px 8px;
}

.tours-titlebar + .td-page,
.pd-split-hero + .td-page {
  padding-top: 0;
}

.tours-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 1.05rem;
  margin-bottom: 10px;
}

.tours-breadcrumb a {
  color: var(--slt-ink);
  text-decoration: underline;
  text-underline-offset: 6px;
}

.tours-breadcrumb a:hover {
  color: var(--slt-blue);
}

.tours-breadcrumb__arrow {
  width: 14px;
  height: 14px;
  color: var(--slt-gray-600);
  flex-shrink: 0;
}

.tours-titlebar h1 {
  font-size: 56px;
  font-weight: 700;
  letter-spacing: -2px;
  line-height: 4rem;
  margin: 0 0 6px;
}

.tours-titlebar p {
  margin: 0 0 18px;
  color: var(--slt-gray-600);
  font-size: 0.95rem;
}

@media (max-width: 575.98px) {
  .tours-titlebar h1 {
    font-size: 2.25rem;
    letter-spacing: -0.5px;
    line-height: 2.75rem;
  }

  .tours-titlebar p {
    font-size: 1rem;
  }

  .tours-breadcrumb {
    font-size: 0.9rem;
  }

  .tours-breadcrumb .pd-share {
    margin-left: auto;
  }
}

/* ---- My Trip popup ---- */
.slt-trip {
  position: relative;
}

.slt-trip-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.72);
  padding: 20px;
}

.slt-trip-overlay[hidden] {
  display: none;
}

.slt-trip-modal {
  position: relative;
  width: 100%;
  max-width: 530px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  background-color: var(--slt-surface);
  border: 1px solid var(--slt-white);
  border-radius: var(--slt-radius-sm);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.16);
  padding: 26px;
}

/* ---- Shown over the modal content when closing would discard adjusted
   itinerary data — replaces a blocking native confirm() so it matches
   the site's styling and never freezes the page. ---- */
.slt-trip-modal__confirm-close {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 26px;
  text-align: center;
  background-color: var(--slt-surface);
  border-radius: var(--slt-radius-sm);
}

.slt-trip-modal__confirm-close[hidden] {
  display: none;
}

.slt-trip-modal__confirm-close h2 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--slt-ink);
}

@media (max-width: 575.98px) {
  .slt-trip-modal__confirm-close h2 {
    font-size: 1.5rem;
  }
}

.slt-trip-modal__confirm-actions {
  display: flex;
  gap: 10px;
}

.slt-trip-modal__confirm-keep,
.slt-trip-modal__confirm-yes {
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 10px 18px;
  border-radius: var(--slt-radius-sm);
  cursor: pointer;
}

.slt-trip-modal__confirm-keep {
  border: 1px solid var(--slt-gray-200);
  background: transparent;
  color: var(--slt-ink);
}

.slt-trip-modal__confirm-keep:hover {
  border-color: var(--slt-blue-400);
  color: var(--slt-blue-400);
}

.slt-trip-modal__confirm-yes {
  border: none;
  background-color: var(--slt-red-600);
  color: var(--slt-white);
}

.slt-trip-modal__confirm-yes:hover {
  background-color: var(--slt-red-700);
}

.slt-trip-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.slt-trip-modal__head h3 {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.5px;
  margin: 0 0 8px;
  color: var(--slt-ink);
}

.slt-trip-modal__head .td-title__days {
  font-size: 0.82rem;
  padding: 4px 12px;
}

.td-title__days {
  display: inline-block;
  font-size: 22px;
  font-weight: 500;
  color: var(--slt-slate-600);
  padding: 4px 0px;
  margin: 0;
}

.td-title__days[hidden] {
  display: none;
}

:root[data-theme="dark"] .td-title__days {
  color: var(--slt-gray-600);
   
}

.ttd-title-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ttd-title-meta__left {
  display: flex;
  align-items: center;
}

.ttd-stops-count {
  display: inline-block;
  margin-left: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--slt-gray-600);
}

.ttd-stops-count[hidden] {
  display: none;
}

.td-route-point {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  margin: 6px 0;
  background-color: var(--slt-surface-subtle);
  border-radius: var(--slt-radius-sm);
  color: var(--slt-gray-600);
  font-size: 0.82rem;
  font-weight: 600;
}

.td-route-point svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--slt-red-400);  
}

.slt-trip-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-surface-subtle);
  color: var(--slt-gray-600);
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s;
}

.slt-trip-modal__close:hover {
  background-color: var(--slt-gray-200);
  color: var(--slt-ink);
}

.slt-trip-modal__close svg {
  width: 20px;
  height: 20px;
}

.slt-trip__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.slt-trip__lead {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--slt-gray-600);
  margin: 0 0 12px;
}

.slt-trip__lead[hidden] {
  display: none;
}

/* ---- Customize empty state — mini animated walkthrough shown before any
   tour has been picked, plus a fallback CTA into the tours list ---- */
.slt-customize-demo-wrap {
  margin-bottom: 16px;
}

.slt-customize-demo {
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 16px;
  background-color: var(--slt-surface-subtle);
}

.slt-customize-demo__stage {
  position: relative;
  height: 110px;
}

.slt-customize-demo__dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 8px;
}

.slt-customize-demo__dot {
  width: 6px;
  height: 6px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-gray-200);
}

.slt-customize-demo__dot.is-active {
  background-color: var(--slt-blue);
}

.slt-customize-demo__caption {
  text-align: center;
  font-size: 0.82rem;
  color: var(--slt-gray-600);
  margin: 8px 0 0;
  min-height: 18px;
}

.slt-customize-demo__day {
  width: 56px;
  height: 64px;
  border-radius: var(--slt-radius-sm);
  border: 1px solid var(--slt-gray-200);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  color: var(--slt-gray-600);
  flex-shrink: 0;
}

.slt-customize-demo__day--filled {
  height: 80px;
  flex-direction: column;
  gap: 3px;
  border: 1.5px solid var(--slt-blue);
  background-color: rgba(23, 105, 255, 0.08);
  color: var(--slt-blue);
  text-align: center;
  padding: 4px;
}

.slt-customize-demo__day--filled span {
  font-size: 0.66rem;
}

.slt-customize-demo__day--filled svg {
  width: 14px;
  height: 14px;
}

.slt-customize-demo__thumb {
  width: 52px;
  height: 52px;
  border-radius: var(--slt-radius-sm);
  flex-shrink: 0;
}

.slt-customize-demo__plus {
  width: 26px;
  height: 26px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-blue);
  color: var(--slt-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.slt-customize-demo__plus svg {
  width: 14px;
  height: 14px;
}

.slt-customize-demo__browse {
  display: block;
  width: 100%;
  text-align: center;
  margin-top: 10px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--slt-ink);
  background-color: transparent;
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 11px 22px;
  cursor: pointer;
}

.slt-customize-demo__browse:hover {
  border-color: var(--slt-blue-400);
  color: var(--slt-blue-400);
}

.ttd-builder {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.ttd-builder[hidden] {
  display: none;
}

.ttd-builder__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  max-height: 50vh;
  overflow-y: auto;
  padding-right: 2px;
  margin-bottom: 12px;
  scrollbar-width: thin;
  scrollbar-color: var(--slt-gray-200) transparent;
}

.ttd-builder__list::-webkit-scrollbar {
  width: 10px;
}

.ttd-builder__list::-webkit-scrollbar-track {
  background: transparent;
}

.ttd-builder__list::-webkit-scrollbar-thumb {
  background-color: var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
}

.ttd-builder__list::-webkit-scrollbar-thumb:hover {
  background-color: var(--slt-gray-600);
}

.ttd-builder__list:empty {
  max-height: 0;
  margin-bottom: 0;
}

.ttd-builder__day {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 10px 10px;
  background-color: var(--slt-surface);
}

.ttd-builder__addstop {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1.5px dashed var(--slt-blue);
  background-color: rgba(23, 105, 255, 0.08);
  border-radius: var(--slt-radius-sm);
  padding: 8px 10px;
}

.ttd-builder__addstop--empty {
  border-radius: var(--slt-radius-sm);
  padding: 20px 16px;
}

.ttd-builder__reverse {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--slt-ink);
  background-color: transparent;
  border: 1.5px solid var(--slt-ink);
  padding: 0;
  cursor: pointer;
}

.ttd-builder__reverse:hover {
  opacity: 0.7;
}

.ttd-builder__reverse[hidden] {
  display: none;
}

.ttd-builder__reverse svg {
  width: 20px;
  height: 20px;
}

.ttd-builder__addstop-btn {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--slt-blue);
  background-color: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}

.ttd-builder__addstop-btn svg {
  width: 14px;
  height: 14px;
}

.ttd-builder__addstop-btn--empty {
  flex-direction: column;
  width: 100%;
  gap: 8px;
  text-align: center;
}

.ttd-builder__addstop-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-blue);
  color: var(--slt-white);
}

.ttd-builder__addstop-icon svg {
  width: 16px;
  height: 16px;
}

.ttd-builder__addstop-btn--empty strong {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--slt-blue);
}

.ttd-builder__addstop-hint {
  font-size: 0.74rem;
  font-weight: 400;
  color: var(--slt-gray-600);
}

.ttd-builder__addstop-input {
  flex: 1;
  min-width: 0;
  font-family: inherit;
  font-size: 0.86rem;
  color: var(--slt-ink);
  background-color: transparent;
  border: none;
  outline: none;
}

.ttd-builder__addstop-confirm,
.ttd-builder__addstop-cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: transparent;
  color: var(--slt-gray-600);
  cursor: pointer;
}

.ttd-builder__addstop-confirm {
  background-color: var(--slt-green);
  color: var(--slt-white);
}

.ttd-builder__addstop-cancel:hover {
  background-color: var(--slt-surface-subtle);
  color: var(--slt-ink);
}

.ttd-builder__addstop-confirm:hover {
  background-color: var(--slt-green-hover);
  color: var(--slt-white);
}

.ttd-builder__addstop-confirm svg,
.ttd-builder__addstop-cancel svg {
  width: 13px;
  height: 13px;
}

.ttd-builder__num {
  text-align: left;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--slt-gray-600);
  flex-shrink: 0;
  white-space: nowrap;
}

.ttd-builder__name {
  flex: 1;
  min-width: 110px;
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--slt-ink);
}

.ttd-builder__nights {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.ttd-builder__nights-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  background-color: transparent;
  color: var(--slt-ink);
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
}

.ttd-builder__nights-btn:hover {
  background-color: var(--slt-surface-subtle);
}

.ttd-builder__nights-count {
  min-width: 14px;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--slt-ink);
}

.ttd-builder__actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.ttd-builder__move,
.ttd-builder__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: transparent;
  color: var(--slt-gray-600);
  cursor: pointer;
}

.ttd-builder__move:hover,
.ttd-builder__remove:hover {
  background-color: var(--slt-surface-subtle);
  color: var(--slt-ink);
}

.ttd-builder__move svg,
.ttd-builder__remove svg {
  width: 13px;
  height: 13px;
}

.ttd-builder__move[disabled] {
  opacity: 0.35;
  cursor: default;
}

.ttd-builder__move[disabled]:hover {
  background-color: transparent;
  color: var(--slt-gray-600);
}

.ttd-builder__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.ttd-step[hidden] {
  display: none;
}

.ttd-details {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 16px;
}

.ttd-field {
  display: block;
}

.ttd-field__label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--slt-gray-600);
  margin-bottom: 6px;
}

.ttd-field__select,
.ttd-field__input,
.ttd-field__textarea {
  width: 100%;
  font-family: inherit;
  font-size: 0.86rem;
  color: var(--slt-ink);
  background-color: var(--slt-surface);
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 9px 12px;
  cursor: pointer;
}

.ttd-field__input,
.ttd-field__textarea {
  cursor: text;
}

.ttd-field__textarea {
  resize: vertical;
}

.ttd-field__select:focus,
.ttd-field__input:focus,
.ttd-field__textarea:focus {
  outline: none;
  border-color: var(--slt-blue);
}

/* A filled field keeps the same border used on focus/click, instead of
   looking unstyled again the moment it loses focus. */
.ttd-field__input:not(:placeholder-shown),
.ttd-field__textarea:not(:placeholder-shown) {
  border-color: var(--slt-blue);
}

/* Browsers auto-highlight recognized/autofilled fields (name, email, tel)
   with their own solid fill color that background-color can't override
   directly — neutralize it and restore this form's own surface + text
   color via the oversized inset-shadow trick, and match the border
   treatment above instead. */
.ttd-field__input:-webkit-autofill,
.ttd-field__input:-webkit-autofill:hover,
.ttd-field__input:-webkit-autofill:focus,
.ttd-field__textarea:-webkit-autofill,
.ttd-field__textarea:-webkit-autofill:hover,
.ttd-field__textarea:-webkit-autofill:focus {
  border-color: var(--slt-blue);
  -webkit-text-fill-color: var(--slt-ink);
  -webkit-box-shadow: 0 0 0 1000px var(--slt-surface) inset;
  transition: background-color 9999s ease-in-out 0s;
}

.ttd-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.ttd-pax {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 8px 12px;
}

.ttd-pax__count {
  font-size: 0.86rem;
  color: var(--slt-ink);
}

.ttd-security {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background-color: var(--slt-surface-subtle);
  border-radius: var(--slt-radius-sm);
  padding: 10px 12px;
}

.ttd-security svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--slt-green);
}

.ttd-security span {
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--slt-gray-600);
}

.ttd-builder__back {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-shrink: 0;
  font-family: inherit;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--slt-ink);
  background-color: transparent;
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 16px 40px;
  cursor: pointer;
}

.ttd-builder__back:hover {
  border-color: var(--slt-blue-400);
  color: var(--slt-blue-400);
}

.ttd-builder__back svg {
  width: 20px;
  height: 20px;
}

.ttd-builder__tier {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex: 1;
  min-width: 0;
}

.ttd-builder__tier[hidden] {
  display: none;
}

.ttd-builder__tier-label {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--slt-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ttd-builder__tier-change {
  flex-shrink: 0;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--slt-blue);
  text-decoration: underline;
  text-underline-offset: 6px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}

.ttd-builder__tier-change:hover {
  color: #0e54d6;
}

.ttd-builder__tier-select {
  flex: 1;
  min-width: 0;
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--slt-ink);
  background-color: var(--slt-surface);
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  padding: 9px 20px;
  cursor: pointer;
}

.ttd-builder__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: inherit;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--slt-white);
  background-color: var(--slt-blue);
  border: none;
  border-radius: var(--slt-radius-sm);
  padding: 16px 40px;
  cursor: pointer;
}

.ttd-builder__submit--full {
  width: 100%;
}

.ttd-builder__submit:hover {
  background-color: #0e54d6;
}

.ttd-builder__submit[disabled] {
  background-color: var(--slt-gray-200);
  color: var(--slt-gray-600);
  cursor: not-allowed;
}

/* ---- Search bar ---- */
.slt-search {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 85%;
  max-width: 480px;
  margin-inline: auto;
  border: none;
  background-color: rgba(18, 18, 18, 1);
  outline: 10px solid rgba(18, 18, 18, 1);
  border-radius: var(--slt-radius-sm);
  padding: 10px 12px 10px 24px;
}

.slt-search svg {
  width: 20px;
  height: 20px;
  color: #cfcfcf;
  flex-shrink: 0;
}

.slt-search input {
  flex: 1;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 1.05rem;
  color: var(--slt-white);
  background: transparent;
}

.slt-search input::placeholder {
  color: #a0a0a0;
}

.slt-search__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background-color: var(--slt-red);
  color: var(--slt-white);
  padding: 0;
  border: none;
  border-radius: var(--slt-radius-sm);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.slt-search__btn svg {
  width: 18px;
  height: 18px;
  color: inherit;
  stroke-width: 4;
}

.slt-search__btn:hover {
  background-color: #d91414;
}

/* ---- Full-width promo boxes (homepage, below Sri Lanka Tours) ----
   True full-bleed: this section is a direct child of <body> (not
   nested in .slt-container), so it's already edge-to-edge by default
   — no width/vw hack needed. (A 100vw + negative-margin bleed trick
   here would overflow horizontally, since <html> reserves a stable
   scrollbar gutter that 100vw doesn't account for.) Boxes sit side by
   side (left / right) with a 30px gap between them. ---- */
.slt-home-boxes {
  display: flex;
  gap: 20px;
  padding: 40px 0px;
}

.slt-home-box {
  flex: 1 1 0;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--slt-surface-subtle);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--slt-gray-600);
}

/* ---- Inspo for Adventurers (homepage, below the promo boxes) ----
   True full-bleed like .slt-home-boxes: direct child of <body>, own
   gutter padding instead of --slt-container-max. 3-column staggered
   "masonry" layout — each column is its own flex stack so the middle
   column can be nudged down independently (a shared CSS Grid track
   would force all 3 columns to drop together). ---- */
.slt-inspo {
  padding: 56px 0 72px;
}

/* 3-column grid keeps the title truly centered on the page (not just
   text-align within a shrink-to-fit box) while "View all" still pins
   to the row's right edge — an empty 1fr track on the left balances
   the 1fr track "View all" sits in on the right. */
.slt-inspo__head {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  gap: 20px;
  margin-bottom: 32px;
}

.slt-inspo__title {
  grid-column: 2;
  justify-self: center;
  font-family: var(--font-base);
  font-size: 3.5rem;
  font-weight: 700;
  letter-spacing: -2px;
  line-height: 3rem;
  text-align: center;
  margin: 0;
  color: var(--slt-ink);
}

.slt-inspo__head .slt-rail__viewall {
  grid-column: 3;
  justify-self: end;
}

/* Destinations title link — plain, non-interactive text on desktop
   (matches the old bare-text title exactly); becomes a real underlined
   link with a trailing arrow only at the mobile breakpoint, once the
   separate "View all" is hidden there. Same pattern as Best Value
   Tours' .slt-rail__title-link. */
.slt-inspo__title-link {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
}

.slt-inspo__title-arrow {
  display: none;
  vertical-align: middle;
}

.slt-inspo__grid {
  display: flex;
  align-items: flex-start;
  gap: clamp(16px, 2vw, 24px);
  padding: 0 20px;
}

.slt-inspo__col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2vw, 24px);
  min-width: 0;
}

.slt-inspo__col--offset {
  margin-top: clamp(24px, 5vw, 64px);
}

.slt-inspo__card {
  position: relative;
  display: flex;
  align-items: flex-end;
  aspect-ratio: 2 / 3;
  border-radius: var(--slt-radius-sm);
  overflow: hidden;
  isolation: isolate;
}

.slt-inspo__card-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  transition: transform 0.4s ease;
}

.slt-inspo__card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.75) 100%);
  transition: background-color 0.25s ease;
}

.slt-inspo__card-title {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 24px 20px;
  text-align: center;
  color: var(--slt-white);
}

.slt-inspo__card-name {
  display: block;
  font-family: "Krona One", var(--font-base);
  font-size: 2.75rem;
  font-weight: 400;
  line-height: 1.15;
}

.slt-inspo__card-tagline {
  display: block;
  margin-top: 10px;
  font-family: var(--font-base);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.88);
}

.slt-inspo__card:hover .slt-inspo__card-media {
  transform: scale(1.06);
}

.slt-inspo__card:hover::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.12) 40%, rgba(0, 0, 0, 0.8) 100%);
}

/* Placeholder gradients per destination — swap with real photography */
.slt-inspo__card-media--sigiriya { background: url("../images/destination/sigiriya-destinaction.webp") center/cover no-repeat; }
.slt-inspo__card-media--ella     { background: url("../images/destination/ella-destination-sri-lanka-travel-tours.webp") center/cover no-repeat; }
.slt-inspo__card-media--yala     { background: url("../images/destination/yala-destination-sri-lanka-travel-tours.webp") center/cover no-repeat; }
.slt-inspo__card-media--mirissa  { background: url("../images/destination/mirissa-sri-lanka-travel-tours.webp") center/cover no-repeat; }
.slt-inspo__card-media--temple   { background: url("../images/destination/temple-of-the-sacred-tooth-relic-sri-lanka-travel-tours.webp") center/cover no-repeat; }
.slt-inspo__card-media--galle    { background: url("../images/destination/galle-dutch-fort-sri-lanka-travel-tours.webp") center/cover no-repeat; }

/* ---- Design Your Perfect Journey (Custom Tour showcase) ----
   Container-width (unlike the full-bleed sections above it), copy
   left-aligned at the H1 type scale, video area right. ---- */
.slt-custom-tour {
  position: relative;
  padding: 72px 0;
}


.slt-custom-tour__grid {
  display: grid;
  grid-template-columns: 5fr 7fr;
  align-items: center;
  gap: 56px;
}

.slt-custom-tour__copy {
  text-align: left;
}

.slt-custom-tour__title {
  font-family: var(--font-base);
  font-size: 3.5rem;
  font-weight: 700;
  letter-spacing: -2px;
  line-height: 3rem;
  margin: 0 0 20px;
  color: var(--slt-ink);
}

.slt-custom-tour__text {
  font-size: 1.2rem;
  line-height: 1.4;
  color: var(--slt-text-secondary);
  margin: 0 0 28px;
  max-width: 44ch;
}

.slt-custom-tour__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-red-600);
  color: var(--slt-white);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.slt-custom-tour__cta:hover {
  background-color: var(--slt-red-700);
}

.slt-custom-tour__cta .slt-viewall-arrow {
  width: 14px;
  height: 14px;
}

.slt-custom-tour__cta svg:not(.slt-viewall-arrow) {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Video placeholder — same gray "not wired up yet" treatment as
   .slt-home-box; swap the play button for a real <video>/embed once
   footage exists. */
.slt-custom-tour__video {
  position: relative;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--slt-surface-subtle);
  border-radius: var(--slt-radius-sm);
  overflow: hidden;
}

.slt-custom-tour__video-play {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border: none;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-white);
  color: var(--slt-ink);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  transition: transform 0.2s ease;
}

.slt-custom-tour__video-play:hover {
  transform: scale(1.06);
}

.slt-custom-tour__video-play svg {
  width: 26px;
  height: 26px;
  margin-left: 3px;
}

/* ---- Hero ---- */
.slt-hero {
  padding-bottom: 0px;
}

.slt-hero__media {
  position: relative;
  overflow: hidden;
  height: 498px;
}

.slt-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slt-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.15) 20%, rgba(0, 0, 0, 0.5) 100%);
  pointer-events: none;
}

/* ---- Dot mesh — a subtle repeating dot texture laid over the video via
   mix-blend-mode, so it breaks up compression artifacts (banding,
   blockiness) from the heavily size-reduced file instead of leaving them
   plainly visible. ---- */
.slt-hero__dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.5) 1px, transparent 1.2px);
  background-size: 4px 4px;
  mix-blend-mode: overlay;
  opacity: 0.5;
  pointer-events: none;
}

:root[data-theme="dark"] .slt-hero__dots {
  background-image: radial-gradient(rgba(0, 0, 0, 0.5) 1px, transparent 1.2px);
}

.slt-hero__search {
  position: absolute;
  left: 50%;
  bottom: 128px;
  transform: translateX(-50%);
}

/* Left-aligned hero title stack — text background hugs each line of
   text the way a mouse text-selection highlight does (box-decoration-break:
   clone gives every wrapped line its own background block instead of
   one rectangle behind the whole paragraph). Left edge lines up with
   the Trending card below via the same bleed-gutter formula. */
.slt-hero__content {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0px;
  max-width: 640px;
  transform: translateX(-50%) rotate(3deg);

}

.slt-hero__eyebrow,
.slt-hero__title {
  margin: 0;
  display: grid;
}

/* Highlight (background box, blended with the photo) and label (solid
   white text, never blended) sit in the same grid cell so they share
   identical line-wrapping — only the highlight layer gets mix-blend-mode,
   the text glyphs stay fully opaque on top. */
.slt-hero__eyebrow > span,
.slt-hero__title > span {
  grid-area: 1 / 1;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  transform: rotate(-6deg);
  padding: 2px 8px;
}

.slt-hero__highlight {
  color: transparent;
  mix-blend-mode: multiply;
}

.slt-hero__label {
  color: #fff;
}

.slt-hero__eyebrow {
  font-family: "Krona One", var(--font-base);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.5;
}

.slt-hero__eyebrow .slt-hero__highlight {
  background-color: rgb(255 23 23 / 60%);
}

.slt-hero__title {
  font-family: "Krona One", var(--font-base);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -1px;
  text-align: center;
  /* Reserves one line's height even while the cycling tagline below is
     fully deleted (empty text collapses a block to 0 height) — otherwise
     .slt-hero__content (bottom-anchored) shrinks and the eyebrow line
     above drifts down until typing resumes. */
  min-height: 1.2em;
}

.slt-hero__title .slt-hero__highlight {
  background-color: rgb(23 105 255 / 60%);
}

/* ---- Generic placeholder (swap for real photography) ---- */
.slt-placeholder-img {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #cfe8d8 0%, #9fcdb3 50%, #5b9678 100%);
  color: rgba(11, 43, 38, 0.65);
  font-size: 0.85rem;
  font-weight: 500;
  text-align: center;
  padding: 16px;
}

.slt-placeholder-img__label {
  max-width: 80%;
}

.slt-placeholder-img__label code {
  background: rgba(255, 255, 255, 0.5);
  padding: 1px 6px;
  border-radius: var(--slt-radius-sm);
}

/* ---- Trip rails ---- */
.slt-rail {
  padding-block: 36px;
}

.slt-rail--overlay {
  position: relative;
  width: 100%;
  background-color: var(--slt-surface);
}

.slt-rail__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 36px;
}

.slt-rail__title {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 3.5rem;
  font-weight: 700;
  letter-spacing: -1px;
  line-height: 3rem;
  margin: 0;
  color: var(--slt-ink);
}

.slt-rail__title-icon {
  height: 0.8em;
  width: auto;
  flex-shrink: 0;
}

/* .slt-rail__title-link — plain, non-interactive text on desktop
   (matches the old bare-text title exactly); becomes a real underlined
   link with a trailing arrow only at the mobile breakpoint below, once
   .slt-rail__viewall is hidden there and this is the only way left to
   reach /tours/ from this section. */
.slt-rail__title-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
  pointer-events: none;
}

.slt-rail__title-arrow {
  display: none;
  flex-shrink: 0;
}

.slt-rail__heading {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.slt-rail__heading--center {
  grid-column: 2;
  justify-self: center;
  align-items: center;
  text-align: center;
}

/* Things to Do heading link — wraps both the h1 and the subtitle so
   the whole two-line heading is one target; plain/non-interactive on
   desktop like .slt-inspo__title-link above, only becoming a real
   underlined link with a trailing arrow at the mobile breakpoint. */
.slt-rail__heading--link {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
}

.slt-rail__heading-arrow {
  display: none;
  vertical-align: middle;
}

.slt-rail__subtitle {
  font-size: 56px;
  font-weight: 700;
  letter-spacing: -1px;
  line-height: 1;
  color: var(--slt-text-secondary);
  margin: 0;
}

.slt-rail__title-icon--dark {
  display: none;
}

:root[data-theme="dark"] .slt-rail__title-icon--light {
  display: none;
}

:root[data-theme="dark"] .slt-rail__title-icon--dark {
  display: block;
}

.slt-rail__viewall {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--slt-ink);
  text-decoration: underline;
  text-underline-offset: 6px;
  white-space: nowrap;
}

.slt-viewall-arrow {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* Full-bleed masonry mockup — direct child of .slt-rail, deliberately
   NOT wrapped in .slt-container so it spans the full viewport width. */
.slt-ttd-masonry {
  column-count: 5;
  column-gap: 20px;
  column-fill: auto;
  height: 1320px;
  padding: 40px 20px 0;
}

.slt-ttd-masonry__item {
  display: block;
  break-inside: avoid;
  margin-bottom: 20px;
}

.slt-ttd-masonry__media {
  display: block;
  width: 100%;
  border-radius: var(--slt-radius-sm);
  margin-bottom: 10px;
  object-fit: cover;
  transition: opacity 0.2s ease;
}

.slt-ttd-masonry__item:hover .slt-ttd-masonry__media {
  opacity: 0.85;
}

.slt-ttd-masonry__caption {
  display: block;
  font-size: 0.85rem;
  color: var(--slt-text-secondary);
}

.slt-ttd-masonry__caption strong {
  color: var(--slt-ink);
  font-weight: 600;
}

.slt-ttd-masonry__item--s .slt-ttd-masonry__media  { height: 160px; }
.slt-ttd-masonry__item--m .slt-ttd-masonry__media  { height: 230px; }
.slt-ttd-masonry__item--l .slt-ttd-masonry__media  { height: 300px; }
.slt-ttd-masonry__item--xl .slt-ttd-masonry__media { height: 380px; }

.slt-ttd-masonry__item:nth-child(6n+1) .slt-ttd-masonry__media { background: linear-gradient(135deg, #e8d9a0, #b89656); }
.slt-ttd-masonry__item:nth-child(6n+2) .slt-ttd-masonry__media { background: linear-gradient(135deg, #b9d99a, #6b9c4a); }
.slt-ttd-masonry__item:nth-child(6n+3) .slt-ttd-masonry__media { background: linear-gradient(135deg, #9bc7d6, #3d7e95); }
.slt-ttd-masonry__item:nth-child(6n+4) .slt-ttd-masonry__media { background: linear-gradient(135deg, #e8c07a, #8c3d2e); }
.slt-ttd-masonry__item:nth-child(6n+5) .slt-ttd-masonry__media { background: linear-gradient(135deg, #a9c7e8, #5380b5); }
.slt-ttd-masonry__item:nth-child(6n+6) .slt-ttd-masonry__media { background: linear-gradient(135deg, #d8c389, #8a6d3b); }

.slt-rail__track {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.slt-rail__track::-webkit-scrollbar {
  display: none;
}

/* ---- Tour cards inside a rail — same fixed width as tours.html and
   the related-tours strips, so a card looks and behaves identically
   everywhere it appears on the site. Height is content-driven (image +
   body) with the image itself pinned to 4:3, instead of a fixed 412px
   box. ---- */
.slt-rail__track > .tour-card {
  flex: 0 0 300px;
  height: auto;
  scroll-snap-align: start;
}

.slt-rail__track > .tour-card .tour-card__media {
  flex: none;
  aspect-ratio: 4 / 3;
}

/* Below 575.98px, cards scale with the viewport instead of sitting at a
   small fixed 260px (which left the next card's edge awkwardly peeking
   in on anything wider than a very small phone) — 82% of the container
   reads as "large" while still hinting there's more to scroll. Card
   height is content-driven (image + body) instead of the desktop's
   fixed 300:412 ratio, with the image itself pinned to 4:3 and the
   label/title/duration/price text sized up to match the tours listing
   grid's mobile treatment. */
@media (max-width: 575.98px) {
  .slt-rail__track > .tour-card {
    flex: 0 0 82%;
    height: auto;
  }

  .slt-rail__track > .tour-card .tour-card__media {
    flex: none;
    aspect-ratio: 4 / 3;
  }

  .slt-rail__track > .tour-card .tour-card__meta {
    padding-bottom: 0;
    margin-bottom: 0;
  }

  .slt-rail__track > .tour-card .tour-card__style {
    font-size: 1.05rem;
  }

  .slt-rail__track > .tour-card .tour-card__body h3 {
    font-size: 1.45rem;
  }

  .slt-rail__track > .tour-card .tour-card__duration {
    font-size: 1.2rem;
  }

  .slt-rail__track > .tour-card .tour-card__price {
    font-size: 1.1rem;
  }

  .slt-rail__track > .tour-card .tour-card__price strong {
    font-size: 1.65rem;
  }

  .slt-rail__track > .tour-card .tour-card__price-unit {
    font-size: 0.8rem;
  }
}

/* ---- Reusable horizontal-scroll arrow nav (GetYourGuide-style) ---- */
.slt-rail-wrap {
  position: relative;
}

/* ---- Full-bleed rail: the card row breaks out of the centered
   .slt-container on BOTH sides (Lonely Planet / GetYourGuide style).
   The clip/viewport boundary itself is a small, symmetric 24px inset
   from the true edge on both left and right, so scrolling in either
   direction bleeds all the way out, nothing gets walled off. The
   container-aligned resting position for card 1 is achieved with
   padding on the scrollable track itself (part of scrollWidth), not
   on the clip boundary — so it only affects where card 1 sits before
   any scrolling, never how far you can scroll into view. ---- */
.slt-rail-wrap--bleed {
  --bleed-gutter: max(24px, calc((100vw - var(--slt-container-max)) / 2 + 24px));
  padding-left: 24px;
  padding-right: 0px;
}

/* A real (empty) flex item, not padding — so its start edge is a
   valid scroll-snap stop at position 0. Padding on the track would
   shift card 1's snap-align:start point away from 0, and the
   mandatory snap would then refuse to ever rest at true 0 again
   once scrolled away and back. */
.slt-rail__spacer {
  flex: 0 0 auto;
  width: 0;
  scroll-snap-align: start;
}

.slt-rail-wrap--bleed .slt-rail__spacer {
  width: max(0px, calc(var(--bleed-gutter) - 24px - 20px));
}

.slt-rail-wrap--bleed .slt-rail-nav--prev {
  left: 28px;
}

.slt-rail-wrap--bleed .slt-rail-nav--next {
  right: 28px;
}

.slt-rail-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: var(--slt-radius-sm);
  border: 1px solid var(--slt-gray-200);
  background-color: var(--slt-surface);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.slt-rail-nav:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.slt-rail-wrap--bleed .slt-rail-nav,
.slt-rail-wrap--bleed .slt-rail-nav:hover {
  box-shadow: none;
}

/* Best Value Tours and Related Tours card-rail arrows — a fully
   transparent background made the arrow disappear into the page, so
   both use a translucent 38% tint of the theme surface color instead
   (color-mix keeps it correct in both light and dark automatically,
   at every width, no separate mobile rule needed). */
.slt-rail--overlay .slt-rail-nav,
.td-related .slt-rail-nav {
  background-color: color-mix(in srgb, var(--slt-surface) 38%, transparent);
}

.slt-rail-nav svg {
  width: 18px;
  height: 18px;
  color: var(--slt-ink);
}

.slt-rail-nav--prev {
  left: 4px;
}

.slt-rail-nav--next {
  right: 4px;
}

.slt-rail-nav[hidden] {
  display: none;
}

/* ---- Explore / inspiration links (no filters, just SEO-friendly lists) ---- */
.slt-explore {
  padding-block: 40px 16px;
  border-top: 1px solid var(--slt-gray-200);
}

.slt-explore__title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 24px;
}

.slt-explore__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}

.slt-explore__col h3 {
  font-size: 0.95rem;
  font-weight: 700;
  margin: 0 0 14px;
}

.slt-explore__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.slt-explore__col li {
  margin-bottom: 11px;
  font-size: 0.88rem;
}

.slt-explore__col a {
  color: var(--slt-gray-600);
}

.slt-explore__col a:hover {
  color: var(--slt-blue-400);
}

.slt-explore__col a span {
  color: var(--slt-gray-600);
  font-size: 0.82rem;
}

/* ---- Footer (mini) — used on tours/detail/things-to-do pages, paired
   with the "Explore more" rail above it. Exact copy of the home
   footer's bottom bar (.slt-footer-full__bottom / __bottom-inner /
   __divider / __legal) — same structure and spacing, just recolored
   for a light/transparent surface instead of the dark blue band. ---- */
.slt-footer {
  border-top: 1px solid var(--slt-gray-200);
  margin-top: 24px;
}

.slt-footer__mini {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 16px;
  width: 100%;
  padding: 28px 20px;
}

.slt-footer__mini p {
  margin: 0;
  font-size: 0.95rem;
  color: var(--slt-gray-600);
}

.slt-footer__credit-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.slt-footer__credit-link:hover {
  color: var(--slt-blue);
}

.slt-footer__divider {
  color: var(--slt-gray-200);
}

.slt-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.slt-footer__legal span {
  color: var(--slt-gray-200);
}

.slt-footer__legal a {
  font-size: 0.95rem;
  color: var(--slt-gray-600);
  text-decoration: underline;
  text-underline-offset: 6px;
}

.slt-footer__legal a:hover {
  color: var(--slt-ink);
  text-decoration: underline;
}

/* ---- "Explore more" rail — Klook-style: a heading per group, with
   numbered chip-links wrapping in rows (tours/detail/things-to-do pages) ---- */
.slt-explore-more {
  padding-block: 44px 8px;
  border-top: 1px solid var(--slt-gray-200);
}

.slt-explore-more__title {
  font-size: 1.7rem;
  font-weight: 700;
  margin: 0 0 32px;
}

.slt-explore-more__group {
  margin-bottom: 32px;
}

.slt-explore-more__group h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 16px;
}

.slt-explore-more__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.slt-explore-more__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 8px 8px;
  border: 1px solid var(--slt-gray-200);
  border-radius: var(--slt-radius-sm);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--slt-ink);
  transition: border-color 0.2s ease, color 0.2s ease;
}

.slt-explore-more__chip:hover {
  border-color: var(--slt-blue-400);
  color: var(--slt-blue-400);
}

.slt-explore-more__chip-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: var(--slt-radius-sm);
  background-color: var(--slt-surface-subtle);
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--slt-gray-600);
}

/* ---- Footer (full) — G Adventures-style: dark band, brand + social +
   country selector on the left, link columns on the right ---- */
.slt-footer-full {
  margin-top: 24px;
  background-color: var(--slt-blue-800);
  color: rgba(255, 255, 255, 0.88);
}

.slt-footer-full__top {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr;
  gap: 48px;
  width: 100%;
  padding: 64px 20px 48px;
}

.slt-footer-full__brand img {
  height: 100px;
  width: auto;
  margin-bottom: 18px;
}

.slt-footer-full__social {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
  margin-bottom: 24px;
}

.slt-footer-full__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--slt-white);
  opacity: 0.85;
  transition: opacity 0.15s ease;
}

.slt-footer-full__social a:hover {
  opacity: 1;
}

.slt-footer-full__social svg {
  width: 28px;
  height: 28px;
}

.slt-footer-full__col h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--slt-white);
  margin: 0 0 22px;
}

.slt-footer-full__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.slt-footer-full__col a,
.slt-footer-full__contact li {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: underline;
  text-underline-offset: 6px;
}

.slt-footer-full__col a:hover {
  color: var(--slt-white);
}

/* Bottom bar shares the footer's single background color — separated
   from the columns above by a hairline only, not a second color. */
.slt-footer-full__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.slt-footer-full__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 16px;
  width: 100%;
  padding: 28px 20px;
}

.slt-footer-full__bottom p {
  margin: 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.75);
}

.slt-footer-full__credit-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.slt-footer-full__credit-link:hover {
  color: #fff;
}

.slt-footer-full__divider {
  color: rgba(255, 255, 255, 0.35);
}

.slt-footer-full__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.slt-footer-full__legal span {
  color: rgba(255, 255, 255, 0.35);
}

.slt-footer-full__legal a {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.75);
  text-decoration: underline;
  text-underline-offset: 6px;
}

.slt-footer-full__legal a:hover {
  color: var(--slt-white);
  text-decoration: underline;
}

/* ---- Mobile nav trigger — 2-line hamburger that morphs into an X.
   Hidden by default; shown at (max-width: 900px), the same point
   .slt-nav disappears at. ---- */
.slt-hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 42px;
  border: none;
  background: none;
  color: var(--slt-ink);
  cursor: pointer;
}

.slt-hamburger__box {
  position: relative;
  width: 46px;
  height: 14px;
}

.slt-hamburger__line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 0;
  background-color: currentColor;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease, top 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.slt-hamburger__line:nth-child(1) { top: 0; }
.slt-hamburger__line:nth-child(2) { top: 12px; }

.slt-hamburger[aria-expanded="true"] .slt-hamburger__line:nth-child(1) {
  top: 6px;
  transform: rotate(45deg);
}

.slt-hamburger[aria-expanded="true"] .slt-hamburger__line:nth-child(2) {
  top: 6px;
  transform: rotate(-45deg);
}

/* ---- Mobile nav — Lonely Planet style: full-width panel docked directly
   under the header (not a side drawer, no logo of its own — the real
   header/logo stays visible above it), with staged drill-down navigation
   (tap a category, its subcategories replace the view with a back row to
   return). assets/js/mobile-nav.js builds every stage's content from
   .slt-nav's existing links/mega-menus, so there's nothing to keep in
   sync here beyond the shell. `top` is set inline by that script (equal
   to the header's own bottom edge) since header height varies per page. ---- */
.slt-mobilemenu {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 200;
  background-color: var(--slt-surface);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.slt-mobilemenu.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.slt-mobilemenu__stage {
  display: none;
  flex-direction: column;
  height: 100%;
}

.slt-mobilemenu__stage.is-active {
  display: flex;
}

/* Pinned bar at the top of every non-root stage — "< Back" left,
   current-section badge right — stays put while .slt-mobilemenu__list
   below it scrolls independently. */
.slt-mobilemenu__stagehead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
  padding: 16px 16px;
  border-bottom: 1px solid var(--slt-border);
  background-color: var(--slt-surface-subtle);
}

.slt-mobilemenu__back {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--slt-ink);
  cursor: pointer;
  padding: 4px;
}

.slt-mobilemenu__back svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.slt-mobilemenu__back:hover {
  color: var(--slt-blue);
}

/* Same skewed-card language as .tour-card__style's badges elsewhere on
   the site, so this reads as "current section" at a glance. */
.slt-mobilemenu__badge {
  padding: 8px 16px;
  background-color: var(--slt-blue-400);
  color: var(--slt-white);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transform: rotate(-3deg);
  white-space: nowrap;
}

.slt-mobilemenu__list {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 4px 12px 24px;
}

.slt-mobilemenu__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--slt-radius-sm);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--slt-ink);
  text-decoration: none;
  background: none;
  border: none;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.slt-mobilemenu__link-text {
  flex: 1 1 auto;
}

/* Root-level rows (Tours/Destinations/Things to Do/Why Choose Us) — same
   vertical padding as .slt-mobilemenu__stagehead's 16px so the row
   height matches the pinned back bar shown one level in. */
.slt-mobilemenu__list--root .slt-mobilemenu__link {
  padding-top: 20px;
  padding-bottom: 20px;
}

/* Font size steps down a level at a time as the drill-down goes deeper —
   main nav (root) keeps the 1.4rem base above, category is the mid
   stage (e.g. Tours > Wildlife/Cultural/...), leaf is the real links
   (e.g. Tours > Wildlife > Yala Safari Tour). */
.slt-mobilemenu__list--category .slt-mobilemenu__link {
  font-size: 1.2rem;
}

.slt-mobilemenu__list--leaf .slt-mobilemenu__link {
  font-size: 1rem;
}

.slt-mobilemenu__link:hover {
  background-color: var(--slt-surface-subtle);
}

.slt-mobilemenu__chevron {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: var(--slt-gray-600);
}

.slt-mobilemenu__viewall .slt-viewall-arrow {
  width: 20px;
  height: 20px;
}

/* Pinned footer bar — same outline/underline treatment as the desktop
   mega-menu's own .slt-mega-menu__viewall footer. */
.slt-mobilemenu__viewall {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 18px 20px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--slt-ink);
  text-decoration: underline;
  text-underline-offset: 6px;
  background-color: var(--slt-surface);
  outline: 1px solid var(--slt-ink);
  outline-offset: -1px;
  border-top: 1px solid var(--slt-border);
}

.slt-mobilemenu__viewall:hover {
  background-color: var(--slt-surface-subtle);
}

/* ==========================================================================
   Breakpoints
   ========================================================================== */

/* .slt-ttd-masonry's other adjustment lives in the (max-width: 900px)
   block below — this plugs the 901px-991.98px gap above it, where the
   masonry was still at its desktop column-count: 5 / fixed height:
   1320px, which forced an overflow column past the viewport's right
   edge once 5 columns no longer fit. */
@media (max-width: 991.98px) {
  .slt-ttd-masonry {
    column-count: 3;
    column-fill: balance;
    height: auto;
  }

  /* Main 4 nav links only (:not(.slt-mega-menu *) excludes dropdown
     panel contents) — nav itself is hidden below 900px, so this only
     matters in the 768px-991px band where it's still visible. */
  .slt-nav a:not(.slt-mega-menu *) {
    font-size: 1rem;
  }

  /* Why Choose Us / Itinerary promo boxes — one after another instead
     of side by side. */
  .slt-home-boxes {
    flex-direction: column;
  }

  /* Design Your Perfect Journey — stack with the video above the copy/CTA. */
  .slt-custom-tour__grid {
    grid-template-columns: 1fr;
  }

  .slt-custom-tour__video {
    order: -1;
  }
}

@media (max-width: 900px) {
  .slt-nav {
    display: none;
  }

  /* .slt-nav (flex: 1) normally pushes everything after it flush right —
     hidden here, so without this the theme toggle + Plan My Trip actions
     and the hamburger would each get spaced out independently (actions
     landing in the dead-center of the header instead of sitting together
     on the right next to the hamburger). margin-left: auto on the actions
     group achieves the same "flush right" result as a single unit, with
     the existing 32px header gap providing space between the group and
     the hamburger. */
  .slt-header__actions {
    margin-left: auto;
  }

  .slt-hamburger {
    display: inline-flex;
  }

  .slt-ttd-masonry {
    column-count: 3;
    column-fill: balance;
    height: auto;
  }

  .slt-explore__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 24px;
  }

  .slt-inspo__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .slt-inspo__col,
  .slt-inspo__col--offset {
    display: contents;
  }

  .slt-inspo__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  .slt-inspo__head .slt-rail__viewall {
    justify-self: auto;
  }

  .slt-inspo__title {
    font-size: 2.25rem;
    line-height: 2.25rem;
  }

  .slt-custom-tour__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .slt-custom-tour__title {
    font-size: 2.25rem;
    line-height: 2.25rem;
  }

  .slt-footer-full__top {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }

  .slt-footer-full__brand {
    grid-column: 1 / -1;
  }

  .slt-footer-full__col h3 {
    font-size: 1.25rem;
    line-height: 1.35;
  }

  .slt-footer__mini p {
    font-size: 1rem;
  }
}

@media (max-width: 560px) {
  .slt-btn-ask span {
    display: none;
  }

  .slt-rail__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 16px;
  }

  .slt-rail__viewall {
    align-self: flex-end;
  }

  .slt-rail__title {
    font-size: 2.25rem;
    line-height: 2.25rem;
    white-space: nowrap;
  }

  /* Best Value Tours only (.slt-rail--overlay is unique to that section)
     — the title itself becomes the way to reach /tours/ on mobile, so
     the separate "View all" link next to it is redundant here, and the
     decorative highlight icon is dropped to leave room for the
     underline + arrow treatment. */
  .slt-rail--overlay .slt-rail__viewall {
    display: none;
  }

  .slt-rail--overlay .slt-rail__title-icon.slt-rail__title-icon--light,
  .slt-rail--overlay .slt-rail__title-icon.slt-rail__title-icon--dark {
    display: none;
  }

  .slt-rail--overlay .slt-rail__title-link {
    pointer-events: auto;
    text-decoration: underline;
    text-underline-offset: 6px;
  }

  .slt-rail--overlay .slt-rail__title-arrow {
    display: inline-block;
    width: 0.7em;
    height: 0.7em;
    color: inherit;
    fill: none;
    stroke-width: 0.2rem;
  }

  /* Destinations + Things to Do — same title-becomes-link treatment as
     Best Value Tours above: hide the separate "View all" (shared by
     both sections via .slt-inspo__head) and turn the title itself into
     the underlined link with a trailing arrow. */
  .slt-inspo__head .slt-rail__viewall {
    display: none;
  }

  .slt-inspo__title-link,
  .slt-rail__heading--link {
    pointer-events: auto;
    text-decoration: underline;
    text-underline-offset: 6px;
  }

  .slt-inspo__title-arrow,
  .slt-rail__heading-arrow {
    display: inline-block;
    width: 0.7em;
    height: 0.7em;
    color: inherit;
    fill: none;
    stroke-width: 0.2rem;
    margin-left: 6px;
  }

  .slt-inspo__head {
    padding-bottom: 16px;
  }

  /* "Things to Do" (h1) + "Best Experiences & Activities" (this
     subtitle) read as two visually different styles at the size/color
     contrast the desktop two-tone treatment uses — matched to the
     title's own mobile size/weight/color here so the pair reads as one
     consistent heading on phones. */
  .slt-rail__subtitle {
    font-size: 2.25rem;
    line-height: 2.25rem;
    font-weight: 700;
    color: var(--slt-ink);
  }

  .slt-ttd-masonry {
    column-count: 2;
    column-fill: balance;
    height: auto;
  }

  /* The (max-width: 900px) block above switches .slt-inspo__grid to a
     real 2-column grid (.slt-inspo__col/--offset become display:
     contents, flattening their cards straight into it) — this collapses
     it to one column so cards go full width on phones instead of
     staying cramped at half the container. */
  .slt-inspo__grid {
    grid-template-columns: 1fr;
  }

  .slt-inspo__card {
    aspect-ratio: 4 / 3;
  }

  .slt-inspo__card-name {
    font-size: 1.6rem;
  }

  .slt-hero__media {
    height: 400px;
  }

  .slt-hero__content {
    bottom: 40px;
    max-width: calc(100% - 48px);
  }

  .slt-hero__eyebrow {
    font-size: 15px;
  }

  .slt-hero__title {
    font-size: 32px;
    letter-spacing: -0.5px;
    text-align: center;
  }

  .slt-rail--overlay {
    margin-top: -220px;
  }

  .slt-explore__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* ---- Hero slider — square on narrow phones, text stays overlaid on
   top of the image (.slt-hero__content is already position: absolute)
   but sized down further than the general (max-width: 560px) step
   above so it doesn't crowd a much shorter square media box. Text
   scales fluidly with clamp() across this whole range instead of one
   flat size — a 320px phone and a 575px one get a square media box of
   very different sizes, so a fixed font looked tiny on the larger end.
   Each clamp's max is tuned to land on the (max-width: 560px) block's
   fixed size right at the 575.98px boundary, so there's no visible
   jump crossing between the two breakpoints. ---- */
@media (max-width: 575.98px) {
  .slt-hero__media {
    aspect-ratio: 4 / 3;
    height: auto;
  }

  .slt-hero__content {
    bottom: 24px;
    max-width: calc(100% - 64px);
  }

  .slt-hero__eyebrow {
    font-size: clamp(12px, 8.2px + 1.18vw, 15px);
  }

  .slt-hero__title {
    font-size: clamp(19px, -1px + 4.17vw, 23px);
    letter-spacing: -0.5px;
  }

  /* The (max-width: 560px) block above still pulls the Trending rail up
     -220px to tuck it into the hero — tuned for the old fixed 400px-tall
     hero. A square hero is only as tall as the viewport is wide (e.g.
     375px on a 375px phone), so that same -220px now drags the opaque
     rail background up over the hero's overlaid title text instead of
     just its lower edge, burying it. No overlap at all reads better than
     guessing a new per-width offset that has to keep working as the
     square resizes with the viewport. */
  .slt-rail--overlay {
    margin-top: 0;
  }

  .slt-home-box {
    aspect-ratio: 3 / 4;
  }
}

/* ---- Top-right "Plan My Trip" CTA — icon only below 575.98px, keeping
   its red background; the label text is dropped for space, aria-label
   on the link still names it for screen readers. ---- */
@media (max-width: 575.98px) {
  .slt-icon-btn--customize {
    padding: 8px;
  }

  .slt-icon-btn--customize .slt-icon-btn__label {
    display: none;
  }
}
