[data-tsva-surface] {
  --ts-primary-color: #1d7185;
  --ts-primary: #1d7185;
  --ts-hotel-ink: #102a35;
  --ts-accent-color: #d63e65;
  --ts-hotel-primary: #d63e65;
  --ts-button-bg: #102a35;
  --ts-button-text: #f4f6f1;
  --ts-widget-bg: transparent;
  --ts-hotel-bg: transparent;
  --ts-card-bg: #fff;
  --ts-hotel-card: #fff;
  --ts-card-border: #c7ceca;
  --ts-hotel-border: #c7ceca;
  --ts-muted: #627365;
  --ts-hotel-muted: #627365;
  --ts-card-radius: 2px;
  --ts-hotel-radius: 2px;
  --ts-card-shadow: none;
  --ts-font-heading: "Familjen Grotesk", Arial, Helvetica, sans-serif;
  --ts-font-body: "Source Sans 3", Arial, Helvetica, sans-serif;
  --ts-surface-width: 1280px;
  --ts-surface-gap: clamp(24px, 4vw, 52px);
  color: #102a35;
  font-family: var(--ts-font-body);
}

body.sdt-site [data-tsva-surface] :is(h1, h2, h3, h4, .travelspark-widget__title, .travelspark-card__title, .travelspark-hotel-card__title) {
  color: #102a35;
  font-family: var(--ts-font-heading) !important;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.06;
}

body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget.tsva-widget {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget.tsva-widget::before,
body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget.tsva-widget::after {
  display: none !important;
}

body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget .tsva-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget .tsva-card-grid > :last-child:nth-child(odd) {
  display: grid !important;
  grid-column: 1 / -1 !important;
  grid-template-columns: minmax(180px, 0.85fr) minmax(0, 1.15fr) !important;
}

[data-tsva-surface] :where([data-tsva-component="offers"], [data-tsva-component="featured"], .tsva-widget-container, .tsva-placement, .travelspark-widget) {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

[data-tsva-surface] :where(.tsva-card, .travelspark-card, .travelspark-hotel-card) {
  background: #fff !important;
  border: 1px solid #c7ceca !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  color: #102a35;
  overflow: clip;
}

[data-tsva-surface] :where(.travelspark-card__media, .travelspark-hotel-card__media) {
  background: #c7ceca;
  overflow: hidden;
}

[data-tsva-surface] :where(.travelspark-card__image, .travelspark-hotel-card__media img) {
  aspect-ratio: 5 / 3;
  height: auto !important;
  object-fit: cover;
  width: 100%;
}

[data-tsva-surface] :where(.travelspark-card__description, .travelspark-card__meta, .travelspark-hotel-card__description, .travelspark-hotel-card__amenities) {
  color: #627365;
  line-height: 1.5;
}

[data-tsva-surface] :where(.travelspark-card__rating, .travelspark-hotel-card__rating) {
  color: #ad533f;
  font-weight: 750;
}

[data-tsva-surface] :where(.travelspark-card__price, .travelspark-hotel-card__price) {
  color: #102a35;
  font-family: var(--ts-font-heading);
  font-weight: 700;
}

[data-tsva-surface] :where(.travelspark-card__button, .travelspark-hotel-card__booking, .tsva-button, button[type="submit"]) {
  background: #102a35 !important;
  border: 1px solid #102a35 !important;
  border-radius: 2px !important;
  color: #f4f6f1 !important;
  font-weight: 750;
  min-height: 46px;
  text-decoration: none;
}

[data-tsva-surface] :where(.travelspark-card__button, .travelspark-hotel-card__booking, .tsva-button, button[type="submit"]):hover {
  background: #1d7185 !important;
  border-color: #1d7185 !important;
  color: #fff !important;
}

[data-tsva-surface] :where(.travelspark-card__button, .travelspark-hotel-card__booking, .tsva-button, button[type="submit"]):focus-visible {
  outline: 3px solid #d63e65;
  outline-offset: 3px;
}

[data-tsva-surface] :where(.tsva-card-grid, .travelspark-card-grid, .travelspark-hotel-grid) {
  display: grid;
  gap: clamp(18px, 3vw, 32px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

[data-tsva-surface] .tsva-featured-card.travelspark-card--featured {
  align-items: stretch;
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  margin-bottom: clamp(24px, 4vw, 46px);
}

[data-tsva-surface] .tsva-featured-card.travelspark-card--featured :where(.travelspark-card__media, .travelspark-card__image) {
  height: 100%;
}

[data-tsva-surface="tours-index"] [data-tsva-component] {
  margin-block: clamp(58px, 8vw, 118px);
}

[data-tsva-surface="tours-index"] [data-tsva-component="hero"] {
  border-bottom: 1px solid #a99f92;
  margin-top: 0;
  padding-bottom: clamp(36px, 5vw, 70px);
}

[data-tsva-surface="tours-index"] [data-tsva-component="search"] {
  background: #c7ceca;
  border-left: 5px solid #d63e65;
  padding: clamp(22px, 4vw, 42px);
}

[data-tsva-surface="tours-index"] [data-tsva-component="interests"] {
  border-bottom: 1px solid #c7ceca;
  border-top: 1px solid #c7ceca;
  padding-block: 18px;
}

[data-tsva-surface="tours-index"] [data-tsva-component="cross_sell"] {
  border-top: 4px solid #d63e65;
  padding-top: clamp(28px, 4vw, 52px);
}

[data-tsva-surface] :where(input, select, textarea) {
  background: #fff;
  border: 1px solid #a99f92;
  border-radius: 2px;
  color: #102a35;
  min-height: 46px;
}

@media (max-width: 1080px) {
  [data-tsva-surface] :where(.tsva-card-grid, .travelspark-card-grid, .travelspark-hotel-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  body.sdt-site.tsva-exit-cta-visible .tsva-sticky-cta[data-tsva-sticky-cta] {
    display: none !important;
  }

  body.sdt-site.tsva-exit-cta-visible .travelspark-tour-helper--sticky {
    display: none !important;
  }

  body.sdt-site.tsva-exit-cta-visible.tsva-has-sticky {
    padding-bottom: 0 !important;
  }

  body.sdt-site.tsva-has-sticky:not(.tsva-exit-cta-visible) .travelspark-tour-helper--sticky {
    bottom: 78px !important;
  }
}

@media (max-width: 780px) {
  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] {
    align-items: start !important;
    box-sizing: border-box !important;
    gap: 12px !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    max-width: calc(100vw - 24px) !important;
    padding: 12px !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] > img {
    height: 72px !important;
    object-fit: cover !important;
    width: 72px !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] > div {
    min-width: 0 !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] .tsva-eyebrow,
  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] h2 {
    padding-right: 48px !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] h2 {
    font-size: clamp(1.35rem, 6vw, 1.7rem) !important;
    line-height: 1.08 !important;
    margin: 0 0 6px !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] p {
    font-size: 0.88rem !important;
    line-height: 1.35 !important;
    margin-bottom: 10px !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] .tsva-button {
    align-items: center !important;
    display: inline-flex !important;
    justify-content: center !important;
    min-height: 44px !important;
    min-width: 96px !important;
    padding: 10px 16px !important;
  }

  body.sdt-site .tsva-exit-cta[data-tsva-exit-cta] > .tsva-exit-close {
    align-items: center !important;
    display: inline-flex !important;
    height: 44px !important;
    justify-content: center !important;
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
    right: 8px !important;
    top: 8px !important;
    width: 44px !important;
  }

  body.sdt-site .tsva-sticky-cta[data-tsva-sticky-cta] {
    align-items: center !important;
    box-sizing: border-box !important;
    display: grid;
    gap: 6px !important;
    grid-template-columns: 44px minmax(0, 1fr) auto 44px !important;
    min-height: 60px !important;
    padding: 8px !important;
    width: 100% !important;
  }

  body.sdt-site .tsva-sticky-cta[data-tsva-sticky-cta] > img {
    grid-column: 1;
    grid-row: 1;
    height: 44px !important;
    object-fit: cover !important;
    width: 44px !important;
  }

  body.sdt-site .tsva-sticky-cta[data-tsva-sticky-cta] > span {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box !important;
    font-size: clamp(0.76rem, 3.6vw, 0.9rem) !important;
    grid-column: 2;
    grid-row: 1;
    line-height: 1.2 !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  body.sdt-site .tsva-sticky-cta[data-tsva-sticky-cta] > a {
    align-items: center !important;
    display: inline-flex !important;
    font-size: clamp(0.76rem, 3.4vw, 0.88rem) !important;
    grid-column: 3;
    grid-row: 1;
    justify-content: center !important;
    min-height: 44px !important;
    min-width: 76px !important;
    padding: 8px 10px !important;
    white-space: nowrap !important;
  }

  body.sdt-site .tsva-sticky-cta[data-tsva-sticky-cta] > .tsva-sticky-close {
    grid-column: 4;
    grid-row: 1;
    height: 44px !important;
    inset: auto !important;
    margin: 0 !important;
    min-height: 44px !important;
    min-width: 44px !important;
    position: static !important;
    width: 44px !important;
  }

  html.js-menu-open body.sdt-site .tsva-sticky-cta[data-tsva-sticky-cta] {
    display: none !important;
  }
}

@media (max-width: 680px) {

  [data-tsva-surface] :where(.tsva-card-grid, .travelspark-card-grid, .travelspark-hotel-grid),
  [data-tsva-surface] .tsva-featured-card.travelspark-card--featured {
    grid-template-columns: 1fr !important;
  }

  body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget .tsva-card-grid {
    grid-template-columns: 1fr !important;
  }

  body.sdt-site [data-tsva-surface="tour-article-widget"].travelspark-widget .tsva-card-grid > :last-child:nth-child(odd) {
    display: flex !important;
    grid-column: auto !important;
    grid-template-columns: none !important;
  }

  [data-tsva-surface] :where(.tsva-widget-container, .tsva-placement, .travelspark-widget) {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }

  [data-tsva-surface="tours-index"] [data-tsva-component] {
    margin-block: 52px;
  }
}
