.roamoz-wts,
.roamoz-wts * {
  box-sizing: border-box;
}

.roamoz-wts {
  position: relative;
  z-index: 0;
  width: 100%;
  max-width: var(--roamoz-wts-max-width, 1800px);
  margin: var(--roamoz-wts-top-margin, 36px) auto var(--roamoz-wts-bottom-margin, 48px);
  padding: var(--roamoz-wts-padding, 38px);
  overflow: hidden;
}

.roamoz-wts--full-band::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: calc(var(--roamoz-wts-band-top-bleed, 72px) * -1);
  bottom: calc(var(--roamoz-wts-band-bottom-bleed, 36px) * -1);
  width: 100vw;
  transform: translateX(-50%);
  background: var(--roamoz-wts-band-bg, #f5f5f5);
}

.roamoz-wts--outer-panel {
  background: var(--roamoz-wts-section-bg, #fff);
  border: 1px solid var(--roamoz-wts-section-border, #e2e2dc);
  border-radius: var(--roamoz-wts-radius, 18px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
}

.roamoz-wts--no-outer-panel {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding-left: 0;
  padding-right: 0;
  overflow: visible;
}

.roamoz-wts--outer-panel.roamoz-wts--full-band::before {
  display: none;
}

.roamoz-wts__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, var(--roamoz-wts-panel-width, 430px));
  gap: var(--roamoz-wts-gap, 58px);
  align-items: stretch;
}

.roamoz-wts__intro {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.roamoz-wts__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  margin: 0 0 18px;
  color: var(--roamoz-wts-accent, #f47a10);
  font-family: 'Barlow Condensed', 'Saira Condensed', 'Arial Narrow', Arial, sans-serif;
  font-size: 18px;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.roamoz-wts__eyebrow-icon {
  display: inline-flex;
  width: 24px;
  height: 24px;
  line-height: 0;
}

.roamoz-wts__eyebrow-icon svg {
  width: 24px;
  height: 24px;
}

.roamoz-wts__heading {
  margin: 0 0 18px;
  color: var(--roamoz-wts-text, #111820);
  font-size: clamp(28px, 3vw, 46px);
  line-height: 1.08;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.roamoz-wts__body {
  max-width: 980px;
  color: var(--roamoz-wts-body, #5d6469);
  font-size: 18px;
  line-height: 1.68;
}

.roamoz-wts__body p {
  margin: 0 0 18px;
}

.roamoz-wts__body p:last-child {
  margin-bottom: 0;
}

.roamoz-wts__note {
  margin-top: auto;
  padding: 14px 18px;
  color: #7a3b0a;
  background: #fff7ef;
  border: 1px solid #ffd2ad;
  border-radius: 10px;
  font-size: 16px;
  line-height: 1.45;
}

.roamoz-wts__body + .roamoz-wts__note {
  margin-top: 28px;
}

.roamoz-wts__explorer {
  position: relative;
  min-width: 0;
  padding: 28px;
  background: var(--roamoz-wts-panel-bg, #111);
  border-radius: max(8px, calc(var(--roamoz-wts-radius, 18px) - 2px));
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.roamoz-wts__explorer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 7px;
  background: var(--roamoz-wts-accent, #f47a10);
}

.roamoz-wts--flat-explorer .roamoz-wts__explorer {
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.roamoz-wts--flat-explorer .roamoz-wts__explorer::before {
  display: none;
}

.roamoz-wts--flat-explorer .roamoz-wts__panel-title {
  color: var(--roamoz-wts-text, #1f2428);
}

.roamoz-wts--flat-explorer .roamoz-wts__panel-intro {
  color: var(--roamoz-wts-body, #5d6469);
}

.roamoz-wts__panel-title {
  position: relative;
  margin: 0 0 10px;
  color: var(--roamoz-wts-panel-text, #fff);
  font-family: 'Barlow Condensed', 'Saira Condensed', 'Arial Narrow', Arial, sans-serif;
  font-size: 30px;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.roamoz-wts__panel-intro {
  position: relative;
  margin: 0 0 22px;
  color: var(--roamoz-wts-panel-body, #d8d8d8);
  font-size: 16px;
  line-height: 1.5;
}

.roamoz-wts__actions {
  position: relative;
  display: grid;
  gap: 12px;
}

.roamoz-wts__action {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 12px;
  min-height: var(--roamoz-wts-action-height, 78px);
  padding: 14px 16px;
  color: #fff;
  text-decoration: none;
  background-image:
    linear-gradient(90deg, var(--roamoz-wts-overlay-left, rgba(0,0,0,0.78)), var(--roamoz-wts-overlay-right, rgba(0,0,0,0.25))),
    var(--roamoz-wts-action-image, linear-gradient(135deg, #333, #111));
  background-size: cover;
  background-position: var(--roamoz-wts-action-position, center center);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 11px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.roamoz-wts__action::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, 0);
  transition: background 160ms ease;
}

.roamoz-wts__action:hover,
.roamoz-wts__action:focus-visible {
  color: #fff;
  text-decoration: none;
  border-color: var(--roamoz-wts-accent, #f47a10);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3);
}

.roamoz-wts__action:hover .roamoz-wts__action-label,
.roamoz-wts__action:focus-visible .roamoz-wts__action-label {
  color: var(--roamoz-wts-action-text, #fff);
}

.roamoz-wts__action:hover .roamoz-wts__action-icon,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon {
  color: var(--roamoz-wts-action-icon, var(--roamoz-wts-action-text, #fff));
}

.roamoz-wts__action:hover .roamoz-wts__action-arrow,
.roamoz-wts__action:focus-visible .roamoz-wts__action-arrow {
  color: var(--roamoz-wts-action-arrow, var(--roamoz-wts-action-icon, #fff));
}

.roamoz-wts__action:hover::after,
.roamoz-wts__action:focus-visible::after {
  background: rgba(0, 0, 0, 0.08);
}

.roamoz-wts__action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: var(--roamoz-wts-action-icon, var(--roamoz-wts-action-text, #fff));
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.7));
}

.roamoz-wts__action-icon svg {
  width: 29px;
  height: 29px;
}

.roamoz-wts__action-icon--image img {
  display: block;
  width: 29px;
  height: 29px;
  object-fit: contain;
}

.roamoz-wts__action-icon--mask {
  background-color: var(--roamoz-wts-action-icon, var(--roamoz-wts-action-text, #fff));
  -webkit-mask-image: var(--roamoz-wts-custom-icon);
  mask-image: var(--roamoz-wts-custom-icon);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.roamoz-wts__action-label {
  color: var(--roamoz-wts-action-text, #fff);
  font-size: 17px;
  line-height: 1.15;
  font-weight: 800;
  text-shadow: 0 2px 4px rgba(0,0,0,.75);
}

.roamoz-wts__action-arrow {
  color: var(--roamoz-wts-action-arrow, var(--roamoz-wts-action-icon, #fff));
  font-size: 34px;
  line-height: 1;
  font-weight: 800;
  text-align: right;
  text-shadow: 0 2px 4px rgba(0,0,0,.75);
}

@media (max-width: 1199.98px) {
  .roamoz-wts__content {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 390px);
    gap: 34px;
  }

  .roamoz-wts {
    padding: max(24px, calc(var(--roamoz-wts-padding, 38px) - 8px));
  }
}

@media (max-width: 991.98px) {
  .roamoz-wts__content {
    grid-template-columns: 1fr;
  }

  .roamoz-wts__explorer {
    max-width: none;
  }

  .roamoz-wts__note {
    margin-top: 24px;
  }
}

@media (max-width: 575.98px) {
  .roamoz-wts {
    padding: 22px;
    border-radius: 14px;
  }

  .roamoz-wts__heading {
    font-size: 30px;
  }

  .roamoz-wts__body {
    font-size: 16px;
  }

  .roamoz-wts__explorer {
    padding: 22px;
  }

  .roamoz-wts__action {
    grid-template-columns: 30px minmax(0, 1fr) 18px;
    gap: 10px;
    min-height: max(64px, var(--roamoz-wts-action-height, 78px));
    padding: 12px 13px;
  }

  .roamoz-wts__action-icon,
  .roamoz-wts__action-icon svg {
    width: 28px;
    height: 28px;
  }

  .roamoz-wts__action-label {
    font-size: 16px;
  }
}

.roamoz-wts__section-heading {
  color: var(--roamoz-wts-section-heading, var(--roamoz-wts-text, #111820)) !important;
}

.roamoz-wts__section-icon {
  color: var(--roamoz-wts-section-icon, var(--roamoz-wts-accent, #f47a10)) !important;
}

.roamoz-wts__section-icon svg {
  fill: currentColor;
}


/* =========================================================
   Welcome / Where to Start button hover polish v0.2.3
   Image brightens, overlay clears, arrow slides right,
   and the button gently grows without jumping upward.
   ========================================================= */

/* Make image buttons scale from centre and keep layout stable */
.roamoz-wts__action,
.roamoz-wts__button,
.roamoz-wts__card,
.roamoz-wts__tile,
.roamoz-wts__link {
  transform-origin: center center;
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
  will-change: transform;
}

/* Replace lift/jump with a subtle all-round grow */
.roamoz-wts__action:hover,
.roamoz-wts__action:focus-visible,
.roamoz-wts__button:hover,
.roamoz-wts__button:focus-visible,
.roamoz-wts__card:hover,
.roamoz-wts__card:focus-visible,
.roamoz-wts__tile:hover,
.roamoz-wts__tile:focus-visible,
.roamoz-wts__link:hover,
.roamoz-wts__link:focus-visible {
  transform: scale(1.018) !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.20);
}

/* Smooth image brightening */
.roamoz-wts__action img,
.roamoz-wts__button img,
.roamoz-wts__card img,
.roamoz-wts__tile img,
.roamoz-wts__link img {
  transition: filter 0.28s ease, transform 0.28s ease;
}

/* Brighten the image on hover */
.roamoz-wts__action:hover img,
.roamoz-wts__action:focus-visible img,
.roamoz-wts__button:hover img,
.roamoz-wts__button:focus-visible img,
.roamoz-wts__card:hover img,
.roamoz-wts__card:focus-visible img,
.roamoz-wts__tile:hover img,
.roamoz-wts__tile:focus-visible img,
.roamoz-wts__link:hover img,
.roamoz-wts__link:focus-visible img {
  filter: brightness(1.16) contrast(1.04) saturate(1.06) !important;
}

/* If the dark overlay is a pseudo-element on the button/media, fade it back on hover */
.roamoz-wts__action::before,
.roamoz-wts__action::after,
.roamoz-wts__button::before,
.roamoz-wts__button::after,
.roamoz-wts__card::before,
.roamoz-wts__card::after,
.roamoz-wts__tile::before,
.roamoz-wts__tile::after,
.roamoz-wts__link::before,
.roamoz-wts__link::after,
.roamoz-wts__media::before,
.roamoz-wts__media::after,
.roamoz-wts__image::before,
.roamoz-wts__image::after {
  transition: opacity 0.28s ease, background 0.28s ease, transform 0.28s ease;
}

/* Lose most of the dark overlay on hover while keeping text readable */
.roamoz-wts__action:hover::before,
.roamoz-wts__action:hover::after,
.roamoz-wts__button:hover::before,
.roamoz-wts__button:hover::after,
.roamoz-wts__card:hover::before,
.roamoz-wts__card:hover::after,
.roamoz-wts__tile:hover::before,
.roamoz-wts__tile:hover::after,
.roamoz-wts__link:hover::before,
.roamoz-wts__link:hover::after,
.roamoz-wts__action:focus-visible::before,
.roamoz-wts__action:focus-visible::after,
.roamoz-wts__button:focus-visible::before,
.roamoz-wts__button:focus-visible::after,
.roamoz-wts__card:focus-visible::before,
.roamoz-wts__card:focus-visible::after,
.roamoz-wts__tile:focus-visible::before,
.roamoz-wts__tile:focus-visible::after,
.roamoz-wts__link:focus-visible::before,
.roamoz-wts__link:focus-visible::after {
  opacity: 0 !important;
}

/* Arrow slides right by 10px */
.roamoz-wts__arrow,
.roamoz-wts__button-arrow,
.roamoz-wts__action-arrow,
.roamoz-wts__cta-arrow,
.roamoz-wts__link-arrow {
  transition: transform 0.28s ease;
  will-change: transform;
}

.roamoz-wts__action:hover .roamoz-wts__arrow,
.roamoz-wts__action:focus-visible .roamoz-wts__arrow,
.roamoz-wts__button:hover .roamoz-wts__button-arrow,
.roamoz-wts__button:focus-visible .roamoz-wts__button-arrow,
.roamoz-wts__action:hover .roamoz-wts__action-arrow,
.roamoz-wts__action:focus-visible .roamoz-wts__action-arrow,
.roamoz-wts__card:hover .roamoz-wts__cta-arrow,
.roamoz-wts__card:focus-visible .roamoz-wts__cta-arrow,
.roamoz-wts__tile:hover .roamoz-wts__link-arrow,
.roamoz-wts__tile:focus-visible .roamoz-wts__link-arrow,
.roamoz-wts__link:hover .roamoz-wts__link-arrow,
.roamoz-wts__link:focus-visible .roamoz-wts__link-arrow {
  transform: translateX(10px) !important;
}

/* Respect reduced-motion users */
@media (prefers-reduced-motion: reduce) {
  .roamoz-wts__action,
  .roamoz-wts__button,
  .roamoz-wts__card,
  .roamoz-wts__tile,
  .roamoz-wts__link,
  .roamoz-wts__action img,
  .roamoz-wts__button img,
  .roamoz-wts__card img,
  .roamoz-wts__tile img,
  .roamoz-wts__link img,
  .roamoz-wts__arrow,
  .roamoz-wts__button-arrow,
  .roamoz-wts__action-arrow,
  .roamoz-wts__cta-arrow,
  .roamoz-wts__link-arrow {
    transition: none !important;
  }
}


/* =========================================================
   Welcome button overlay full-brightness fix v0.2.4
   Removes the dark translucent image veil on hover/focus.
   ========================================================= */

/* Store the normal background so hover can clear only the overlay layer cleanly. */
.roamoz-wts__action {
  transition:
    transform 0.28s ease,
    box-shadow 0.28s ease,
    border-color 0.28s ease,
    background 0.28s ease,
    background-color 0.28s ease !important;
}

/* On hover, remove only the dark gradient layer but KEEP the actual image. */
.roamoz-wts__action:hover,
.roamoz-wts__action:focus-visible {
  background-image: var(--roamoz-wts-action-image, linear-gradient(135deg, #333, #111)) !important;
  background-color: transparent !important;
}

/* Force any generated overlay layer on the action to disappear fully. */
.roamoz-wts__action:hover::before,
.roamoz-wts__action:focus-visible::before,
.roamoz-wts__action:hover::after,
.roamoz-wts__action:focus-visible::after {
  opacity: 0 !important;
  background: transparent !important;
  background-image: none !important;
}

/* If the custom image icon itself carries a darkened treatment, clear it too. */
.roamoz-wts__action:hover .roamoz-wts__action-icon,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon,
.roamoz-wts__action:hover .roamoz-wts__action-icon--image,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon--image {
  opacity: 1 !important;
  filter: brightness(1.18) contrast(1.05) saturate(1.08) !important;
}

/* Keep button copy legible when the image becomes brighter. */
.roamoz-wts__action:hover .roamoz-wts__action-label,
.roamoz-wts__action:focus-visible .roamoz-wts__action-label {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.55) !important;
}


/* =========================================================
   Welcome button hover image retention fix v0.2.5
   Do not remove the actual image layer on hover.
   ========================================================= */

/* Normal state: image plus dark readability gradient. */
.roamoz-wts__action {
  background-image:
    linear-gradient(90deg, var(--roamoz-wts-overlay-left, rgba(0,0,0,0.78)), var(--roamoz-wts-overlay-right, rgba(0,0,0,0.25))),
    var(--roamoz-wts-action-image, linear-gradient(135deg, #333, #111)) !important;
  background-size: cover !important;
  background-position: center center !important;
}

/* Hover/focus: keep the image, remove the dark gradient layer. */
.roamoz-wts__action:hover,
.roamoz-wts__action:focus-visible {
  background-image: var(--roamoz-wts-action-image, linear-gradient(135deg, #333, #111)) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-color: transparent !important;
}

/* Any pseudo overlay should disappear fully on hover/focus. */
.roamoz-wts__action:hover::before,
.roamoz-wts__action:focus-visible::before,
.roamoz-wts__action:hover::after,
.roamoz-wts__action:focus-visible::after {
  opacity: 0 !important;
  background: transparent !important;
  background-image: none !important;
}


/* =========================================================
   Welcome button label/icon brightness hover v0.2.6
   Text, icon and arrow brighten smoothly on full-colour hover.
   ========================================================= */

/* Smooth fade up/down for text and icon elements. */
.roamoz-wts__action-label,
.roamoz-wts__action-icon,
.roamoz-wts__action-icon svg,
.roamoz-wts__action-icon img,
.roamoz-wts__action-arrow {
  transition:
    color 0.28s ease,
    filter 0.28s ease,
    opacity 0.28s ease,
    text-shadow 0.28s ease,
    transform 0.28s ease !important;
}

/* Brighten the label/icon/arrow when the image overlay clears. */
.roamoz-wts__action:hover .roamoz-wts__action-label,
.roamoz-wts__action:focus-visible .roamoz-wts__action-label,
.roamoz-wts__action:hover .roamoz-wts__action-icon,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon,
.roamoz-wts__action:hover .roamoz-wts__action-icon svg,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon svg,
.roamoz-wts__action:hover .roamoz-wts__action-icon img,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon img,
.roamoz-wts__action:hover .roamoz-wts__action-arrow,
.roamoz-wts__action:focus-visible .roamoz-wts__action-arrow {
  color: var(--roamoz-wts-action-hover-icon, var(--roamoz-wts-action-icon, #ffffff)) !important;
  opacity: 1 !important;
  filter: brightness(1.35) contrast(1.08) drop-shadow(0 2px 5px rgba(0, 0, 0, 0.55)) !important;
}

/* Give the label stronger separation on bright images. */
.roamoz-wts__action:hover .roamoz-wts__action-label,
.roamoz-wts__action:focus-visible .roamoz-wts__action-label {
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.75),
    0 0 14px rgba(0, 0, 0, 0.45) !important;
}

/* Keep the existing 10px arrow slide while also brightening it. */
.roamoz-wts__action:hover .roamoz-wts__action-arrow,
.roamoz-wts__action:focus-visible .roamoz-wts__action-arrow {
  transform: translateX(10px) !important;
}

/* Respect reduced-motion users. */
@media (prefers-reduced-motion: reduce) {
  .roamoz-wts__action-label,
  .roamoz-wts__action-icon,
  .roamoz-wts__action-icon svg,
  .roamoz-wts__action-icon img,
  .roamoz-wts__action-arrow {
    transition: none !important;
  }
}


/* =========================================================
   Welcome button custom hover colours v0.2.7
   Uses module-entered hover colours, or calculated lighter colours.
   ========================================================= */

.roamoz-wts__action-label,
.roamoz-wts__action-icon,
.roamoz-wts__action-icon svg,
.roamoz-wts__action-arrow {
  transition:
    color 0.28s ease,
    filter 0.28s ease,
    opacity 0.28s ease,
    text-shadow 0.28s ease,
    transform 0.28s ease !important;
}

/* Text fades from normal action text colour to hover text colour. */
.roamoz-wts__action:hover .roamoz-wts__action-label,
.roamoz-wts__action:focus-visible .roamoz-wts__action-label {
  color: var(--roamoz-wts-action-hover-text, var(--roamoz-wts-action-text, #ffffff)) !important;
  filter: brightness(1.08) contrast(1.04) !important;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.75),
    0 0 14px rgba(0, 0, 0, 0.45) !important;
}

/* Built-in/SVG icons fade to hover icon colour. */
.roamoz-wts__action:hover .roamoz-wts__action-icon:not(.roamoz-wts__action-icon--image),
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon:not(.roamoz-wts__action-icon--image),
.roamoz-wts__action:hover .roamoz-wts__action-icon:not(.roamoz-wts__action-icon--image) svg,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon:not(.roamoz-wts__action-icon--image) svg {
  color: var(--roamoz-wts-action-hover-icon, var(--roamoz-wts-action-icon, #ffffff)) !important;
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.55)) !important;
}

/* Mask icons use background-colour, not text colour. */
.roamoz-wts__action:hover .roamoz-wts__action-icon--mask,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon--mask {
  background-color: var(--roamoz-wts-action-hover-icon, var(--roamoz-wts-action-icon, #ffffff)) !important;
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.55)) !important;
}

/* Original image icons cannot be recoloured accurately, so brighten them instead. */
.roamoz-wts__action:hover .roamoz-wts__action-icon--image,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon--image,
.roamoz-wts__action:hover .roamoz-wts__action-icon--image img,
.roamoz-wts__action:focus-visible .roamoz-wts__action-icon--image img {
  filter: brightness(1.18) contrast(1.08) saturate(1.08) drop-shadow(0 2px 5px rgba(0, 0, 0, 0.55)) !important;
}

/* Arrow fades to its own hover colour and still slides 10px right. */
.roamoz-wts__action:hover .roamoz-wts__action-arrow,
.roamoz-wts__action:focus-visible .roamoz-wts__action-arrow {
  color: var(--roamoz-wts-action-hover-arrow, var(--roamoz-wts-action-arrow, #ffffff)) !important;
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.55)) !important;
  transform: translateX(10px) !important;
}


/* =========================================================
   Welcome button shine sweep v0.2.8
   Adds the same translucent white image sweep used elsewhere.
   Does not change scale, arrow movement, overlay clearing or colours.
   ========================================================= */

/* The button already holds the background image, so the shine attaches to the action itself. */
.roamoz-wts__action {
  position: relative !important;
  overflow: hidden !important;
}

/* Shine layer. Use ::before because ::after is used by the button overlay in older styles. */
.roamoz-wts__action::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: -85% !important;
  width: 52% !important;
  height: 100% !important;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.28), transparent) !important;
  transform: skewX(-20deg) !important;
  transition: left 0.65s ease !important;
  pointer-events: none !important;
  z-index: 2 !important;
  opacity: 1 !important;
}

/* Trigger shine on button hover/focus. */
.roamoz-wts__action:hover::before,
.roamoz-wts__action:focus-visible::before {
  left: 135% !important;
}

/* Ensure visible text/icon/arrow remain above the shine layer. */
.roamoz-wts__action-icon,
.roamoz-wts__action-label,
.roamoz-wts__action-arrow {
  position: relative !important;
  z-index: 3 !important;
}

/* Keep the existing dark overlay pseudo-element from sitting above content/shine if present. */
.roamoz-wts__action::after {
  z-index: 1 !important;
}

/* Reduced motion support. */
@media (prefers-reduced-motion: reduce) {
  .roamoz-wts__action::before {
    transition: none !important;
  }
}


/* =========================================================
   Welcome button shine rollover fix v0.2.9
   Earlier hover overlay rules were hiding ::before on rollover.
   This forces the shine layer visible while hovering/focusing.
   ========================================================= */

.roamoz-wts__action::before {
  opacity: 1 !important;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.28), transparent) !important;
  background-image: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.28), transparent) !important;
}

/* Rollover: visible sweep from left to right. */
.roamoz-wts__action:hover::before,
.roamoz-wts__action:focus-visible::before {
  left: 135% !important;
  opacity: 1 !important;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.28), transparent) !important;
  background-image: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.28), transparent) !important;
}

/* Roll-off: reset off the left side ready for the next hover. */
.roamoz-wts__action:not(:hover):not(:focus-visible)::before {
  left: -85% !important;
  opacity: 1 !important;
}
