/* Presentation only: preserve provider roots, data, links and hidden states. */
body.tpcb-site :is(.travelspark-surface, .travelspark-widget, .tsva-widget, .tsva-sidebar, .travelspark-live-search, .travelspark-hotel-cards) {
  --ts-primary: #10324c;
  --ts-primary-color: #10324c;
  --ts-accent: #084dbb;
  --ts-accent-color: #084dbb;
  --ts-button-bg: #084dbb;
  --ts-button-text: #f5fafc;
  --ts-bg: transparent;
  --ts-widget-bg: transparent;
  --ts-card-bg: transparent;
  --ts-card-border: #ced5d8;
  --ts-border: #ced5d8;
  --ts-radius: 0px;
  --ts-card-radius: 0px;
  --ts-image-radius: 0px;
  --ts-shadow: none;
  --ts-card-shadow: none;
  --ts-font-heading: "Barlow Condensed", "Arial Narrow", sans-serif;
  --ts-font-body: "Onest", Arial, sans-serif;
  /* frontend.css and site-design use different names for these same tokens. */
  --ts-heading-font: var(--ts-font-heading, "Barlow Condensed", "Arial Narrow", sans-serif);
  --ts-body-font: var(--ts-font-body, "Onest", Arial, sans-serif);
  --ts-hotel-ink: #10324c;
  --ts-hotel-bg: transparent;
  --ts-hotel-card: transparent;
  --ts-hotel-border: #ced5d8;
  --ts-hotel-radius: 0px;
  color: #10324c;
  font-family: "Onest", Arial, sans-serif;
  min-width: 0;
  max-width: 100%;
}

body.tpcb-site :is(.travelspark-widget, .tsva-widget, .tsva-sidebar, .travelspark-hotel-cards, .travelspark-expedia-box, .travelspark-expedia-collection) {
  margin: 0 0 2.5rem;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Native widget roots carry important frame rules and an ::after disc.
   Scope the reset to supported outer surfaces; card fields and controls stay intact. */
body.tpcb-site .travelspark-surface.travelspark-widget:is(.tsva-widget, .tsva-sidebar),
body.tpcb-site .travelspark-surface:is(.travelspark-expedia-box, .travelspark-expedia-collection, .travelspark-hotel-cards) {
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.tpcb-site .travelspark-surface.travelspark-widget:is(.tsva-widget, .tsva-sidebar)::before,
body.tpcb-site .travelspark-surface.travelspark-widget:is(.tsva-widget, .tsva-sidebar)::after,
body.tpcb-site .travelspark-surface:is(.travelspark-expedia-box, .travelspark-expedia-collection, .travelspark-hotel-cards)::before,
body.tpcb-site .travelspark-surface:is(.travelspark-expedia-box, .travelspark-expedia-collection, .travelspark-hotel-cards)::after {
  content: none !important;
  display: none !important;
}
body.tpcb-site .travelspark-surface.travelspark-widget .travelspark-widget__title {
  font-family: var(--ts-font-heading, "Barlow Condensed", "Arial Narrow", sans-serif) !important;
}

.tpcb-provider-slot { min-width: 0; }
.tpcb-provider-slot--sidebar { display: flex; flex-direction: column; gap: 1.5rem; }
.tpcb-provider-slot--sidebar > * { order: 1; min-width: 0; }
/* User's visual preference; native sibling wrappers remain byte-for-byte intact. */
.tpcb-provider-slot--sidebar > [data-tsva-surface="tour-sidebar-widget"] { order: 0; }

body.tpcb-site :is(.travelspark-widget__title, .travelspark-hotel-cards__header h2, .travelspark-tours-index h2, .travelspark-tours-index h3) {
  font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
  font-weight: 700;
  line-height: 1.08;
  color: #10324c;
  text-transform: none;
  letter-spacing: 0;
}
body.tpcb-site .travelspark-widget__title { margin: .35rem 0 .7rem; font-size: clamp(1.75rem, 3vw, 2.6rem); }
body.tpcb-site :is(.travelspark-widget__description, .travelspark-card__description, .travelspark-hotel-card__description) {
  font: 400 1rem/1.55 "Onest", Arial, sans-serif;
  color: #10324c;
  margin: .6rem 0 1rem;
  -webkit-line-clamp: unset;
  max-height: none;
  overflow: visible;
}
body.tpcb-site :is(.travelspark-widget__grid, .tsva-card-grid) { gap: 1.5rem; }
body.tpcb-site .travelspark-widget__grid--sidebar { grid-template-columns: minmax(0, 1fr); }

body.tpcb-site :is(.travelspark-card, .tsva-card, .tsva-featured-card, .travelspark-live-card, .travelspark-hotel-card) {
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}
body.tpcb-site :is(.travelspark-card, .tsva-featured-card, .travelspark-live-card, .travelspark-hotel-card):not([hidden]) {
  grid-template-columns: minmax(0, 1fr);
  flex-direction: column;
  align-content: start;
}
body.tpcb-site .travelspark-widget .travelspark-card.tsva-featured-card {
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}
body.tpcb-site .travelspark-widget .travelspark-card.tsva-featured-card .travelspark-card__content.tsva-card-body { padding: 1rem 0 0; }
body.tpcb-site .travelspark-widget .travelspark-card.tsva-featured-card .travelspark-card__media,
body.tpcb-site .travelspark-widget .travelspark-card.tsva-featured-card .travelspark-card__image-link.tsva-image-link { min-height: 0; }
body.tpcb-site :is(.travelspark-card__media, .travelspark-live-card__media, .travelspark-hotel-card__media) {
  min-width: 0;
  width: 100%;
  border-radius: 0;
  overflow: hidden;
}
body.tpcb-site :is(.travelspark-card__image-link, .travelspark-live-card__image, .travelspark-hotel-card__image-link) {
  display: block;
  border-radius: 0;
  aspect-ratio: 4 / 3;
  width: 100%;
}
body.tpcb-site :is(.travelspark-card__image, .travelspark-live-card__image img, .travelspark-hotel-card__image) {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0;
}
body.tpcb-site :is(.travelspark-card__content, .travelspark-live-card__body, .travelspark-hotel-card__body) {
  padding: 1rem 0 0;
  background: transparent;
  min-width: 0;
}
body.tpcb-site :is(.travelspark-card__title, .travelspark-live-card__title, .travelspark-hotel-card h3) {
  font: 700 1.6rem/1.12 "Barlow Condensed", "Arial Narrow", sans-serif;
  margin: .45rem 0 .65rem;
  color: #10324c;
  overflow-wrap: anywhere;
}
body.tpcb-site .travelspark-card__title a { color: inherit; text-decoration: none; }
body.tpcb-site :is(.travelspark-card__rating, .travelspark-card__meta, .travelspark-live-card__meta, .travelspark-live-card__rating) {
  font: 600 .85rem/1.45 "Onest", Arial, sans-serif;
  color: #436c55;
}
body.tpcb-site :is(.travelspark-card__footer, .travelspark-live-card__footer, .travelspark-hotel-card__booking) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .9rem 0 0;
  margin-top: auto;
  border: 0;
  background: transparent;
}
body.tpcb-site :is(.travelspark-card__price, .travelspark-live-card__price-row, .travelspark-hotel-card__price) {
  color: #10324c;
  font-family: "Onest", Arial, sans-serif;
}
body.tpcb-site :is(.travelspark-card__button, .travelspark-live-card__cta, .travelspark-hotel-button, .tsva-sticky-cta > a) {
  min-height: 44px;
  padding: .7rem 1rem;
  border: 1px solid #084dbb;
  border-radius: 4px;
  background: #084dbb;
  color: #f5fafc;
  box-shadow: none;
  font: 600 .95rem/1.25 "Onest", Arial, sans-serif;
  text-decoration: none;
  white-space: normal;
  text-align: center;
}
body.tpcb-site :is(.travelspark-card__button, .travelspark-live-card__cta, .travelspark-hotel-button):hover { background: #10324c; border-color: #10324c; color: #f5fafc; }
body.tpcb-site :is(.travelspark-widget, .travelspark-tours-index, .travelspark-hotel-cards, .travelspark-tour-helper) :is(a, button, input, select):focus-visible {
  outline: 3px solid #084dbb;
  outline-offset: 3px;
}
/* Override native compact/collision typography without changing card eligibility. */
body.tpcb-site .travelspark-surface.travelspark-sidebar-widget.travelspark-widget .travelspark-widget__title {
  font-size: 1.625rem !important;
  line-height: 1.12 !important;
}
body.tpcb-site .travelspark-surface.travelspark-widget .travelspark-card__title,
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__body h3,
body.tpcb-site .travelspark-surface .travelspark-expedia__hotel-name,
body.tpcb-site .travelspark-surface .travelspark-expedia-card h4 {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
body.tpcb-site .travelspark-surface.travelspark-widget .travelspark-card__title a,
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__body h3 a,
body.tpcb-site .travelspark-surface .travelspark-expedia-card h4 a {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}
/* Only existing descriptive fields are revealed; native hidden/ARIA states win. */
body.tpcb-site .travelspark-surface.travelspark-widget .travelspark-card__description:not([hidden]):not([aria-hidden="true"]),
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__description:not([hidden]):not([aria-hidden="true"]),
body.tpcb-site .travelspark-surface .travelspark-expedia__description:not([hidden]):not([aria-hidden="true"]) {
  display: block !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
  height: auto;
  max-height: none !important;
  -webkit-line-clamp: unset !important;
  overflow: visible !important;
}
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__benefits-slot:not(:empty):not([hidden]):not([aria-hidden="true"]) { display: block; }
/* A 190px native cap and height:100% defeated the sidebar's aspect ratio. */
body.tpcb-site .travelspark-sidebar-widget.travelspark-widget .travelspark-card__media,
body.tpcb-site .travelspark-sidebar-widget.travelspark-widget .travelspark-card__image-link.tsva-image-link,
body.tpcb-site .travelspark-sidebar-widget.travelspark-widget .travelspark-card__image,
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__media,
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__image-link,
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-card__image {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover;
}
body.tpcb-site .travelspark-surface.travelspark-widget .travelspark-card__button:not([hidden]):not([aria-hidden="true"]),
body.tpcb-site .travelspark-hotel-cards .travelspark-hotel-button:not([hidden]):not([aria-hidden="true"]),
body.tpcb-site .travelspark-surface :is(.travelspark-expedia__button, .travelspark-expedia-card__button):not([hidden]):not([aria-hidden="true"]),
body.tpcb-site .travelspark-live-card .travelspark-live-card__cta:not([hidden]):not([aria-hidden="true"]) {
  box-sizing: border-box;
  min-height: 48px !important;
  height: auto !important;
  padding: .8rem 1rem !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}
body.tpcb-site .travelspark-surface.travelspark-widget .travelspark-card__button-text {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}
body.tpcb-site .travelspark-card--featured { margin-bottom: 1.5rem; }
body.tpcb-site .tsva-powered { margin: 1rem 0 0; font-size: .8rem; color: #10324c; }
body.tpcb-site .travelspark-hotel-card-grid { gap: 1.5rem; }
body.tpcb-site .travelspark-hotel-cards--sidebar .travelspark-hotel-card-grid { grid-template-columns: minmax(0, 1fr); }
body.tpcb-site .travelspark-expedia-box { grid-template-columns: minmax(0, 1fr); color: #10324c; }
body.tpcb-site .travelspark-expedia-box .travelspark-expedia__media { width: 100%; aspect-ratio: 4 / 3; min-height: 0; border-radius: 0; }
body.tpcb-site .travelspark-expedia-box .travelspark-expedia__media img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
body.tpcb-site .travelspark-expedia-box .travelspark-expedia__body { padding: 1rem 0 0; background: transparent; color: #10324c; }
body.tpcb-site .travelspark-expedia-box :is(h2, h3, .travelspark-expedia__hotel-name) { font-family: "Barlow Condensed", "Arial Narrow", sans-serif; color: #10324c; }
body.tpcb-site .travelspark-expedia-box :is(.travelspark-expedia__subtitle, .travelspark-expedia__description, .travelspark-expedia__text-link, .travelspark-expedia__link-target) { color: #10324c; }
body.tpcb-site .travelspark-expedia-box .travelspark-expedia__button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .7rem 1rem; background: #084dbb; color: #f5fafc; border: 1px solid #084dbb; border-radius: 4px; box-shadow: none; }

/* Twelve protected Tours components remain present; only their treatment changes. */
body.tpcb-site .travelspark-tours-index { width: min(1200px, calc(100% - 40px)); margin: 0 auto; padding: 2rem 0 4rem; background: transparent; }
body.tpcb-site :is(.travelspark-tours-index__hero, .travelspark-tours-index__hero-panel, .travelspark-tours-index__section, .travelspark-live-search, .travelspark-live-search__hero, .travelspark-live-search__filters, .travelspark-live-search__main) {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
body.tpcb-site .travelspark-tours-index__hero { display: block; padding: 1rem 0 2.5rem; }
body.tpcb-site .travelspark-tours-index__hero-copy { max-width: 66ch; }
body.tpcb-site .travelspark-tours-index__hero h1 { max-width: 24ch; text-wrap: balance; margin: .4rem 0 1rem; font: 700 clamp(3rem, 7vw, 6rem)/1.03 "Barlow Condensed", "Arial Narrow", sans-serif; color: #10324c; }
body.tpcb-site .travelspark-tours-index__hero p { font: 400 1.1rem/1.6 "Onest", Arial, sans-serif; color: #10324c; }
body.tpcb-site .travelspark-tours-index .travelspark-tours-index__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: .75rem 1.5rem;
}
body.tpcb-site .travelspark-tours-index__actions > :is(.travelspark-live-card__cta, .travelspark-tours-index__text-link) {
  display: inline-flex;
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  white-space: normal;
}
body.tpcb-site .travelspark-tours-index__actions > .travelspark-tours-index__text-link {
  padding: .6rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #084dbb;
  text-decoration: underline !important;
  text-underline-offset: .2em;
}
body.tpcb-site .travelspark-tours-index__hero-panel { margin-top: 1.6rem; padding: 0; display: flex; flex-wrap: wrap; gap: 1.5rem; color: #10324c; }
body.tpcb-site .travelspark-tours-index__hero-panel > div { flex: 1 1 200px; padding: 0; border: 0; background: transparent; }
body.tpcb-site .travelspark-tours-index__section { margin: 0 0 3rem; padding: 0; }
body.tpcb-site .travelspark-live-search__main { margin: 0; padding: 0; min-width: 0; width: 100%; }
body.tpcb-site .travelspark-live-search__body { grid-template-columns: minmax(190px, 230px) minmax(0, 1fr); gap: 2rem; }
body.tpcb-site .travelspark-live-search--no-filters .travelspark-live-search__body { grid-template-columns: minmax(0, 1fr); }
body.tpcb-site .travelspark-live-search__results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
body.tpcb-site .travelspark-tours-index__section--widget .travelspark-widget__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.tpcb-site .travelspark-live-search__disclosure { color: #10324c; background: transparent; border: 0; }

/* Native dismissal and hidden flags always win: there is no forced display. */
body.tpcb-site :is([data-tsva-sticky-close], [data-tsva-exit-close], [data-tsva-helper-close], [data-tsva-details-close], .travelspark-live-search__filters-head button) {
  min-width: 44px;
  min-height: 44px;
  border-radius: 4px;
  font-family: "Onest", Arial, sans-serif;
}
body.tpcb-site .tsva-sticky-cta { color: #10324c; background: #f5fafc; border-color: #ced5d8; box-shadow: none; }
body.tpcb-site .tsva-sticky-cta span { color: #10324c; font: 600 .9rem/1.4 "Onest", Arial, sans-serif; }
body.tpcb-site .tsva-exit-cta { background: #f5fafc; color: #10324c; border-color: #ced5d8; border-radius: 4px; box-shadow: none; }
body.tpcb-site .tsva-exit-cta h2 { color: #10324c; font-family: "Barlow Condensed", "Arial Narrow", sans-serif; }
body.tpcb-site .tsva-exit-cta p { color: #10324c; font-family: "Onest", Arial, sans-serif; }
body.tpcb-site :is(.travelspark-tour-helper-panel, .travelspark-tour-helper-callout) { background: #f5fafc; color: #10324c; border: 1px solid #ced5d8; border-radius: 4px; box-shadow: none; font-family: "Onest", Arial, sans-serif; }
body.tpcb-site .travelspark-tour-helper-callout { background: transparent; border: 0; }
body.tpcb-site :is(.travelspark-tour-helper-panel, .travelspark-tour-helper-callout) :is(h2, h3) { font-family: "Barlow Condensed", "Arial Narrow", sans-serif; color: #10324c; }
body.tpcb-site :is(.travelspark-tour-helper-trigger, .travelspark-tour-helper-callout__button, .travelspark-tour-helper-form button) { min-height: 44px; border-radius: 4px; background: #084dbb; color: #f5fafc; border-color: #084dbb; box-shadow: none; font-family: "Onest", Arial, sans-serif; }
body.tpcb-site :is(.travelspark-live-card__details, .travelspark-live-card__compare, .travelspark-live-search__page) { min-height: 44px; border-radius: 4px; font-family: "Onest", Arial, sans-serif; }
body.tpcb-site [data-tpcb-provider-muted="true"],
body.tpcb-site [data-tpcb-provider-muted="true"] * { visibility: hidden !important; pointer-events: none !important; }
/* Hide-only safeguards: never override a provider dismissal with visible/display. */
body.tpcb-site :is([data-tsva-surface], .travelspark-live-search, .travelspark-tour-helper, .travelspark-hotel-cards) [hidden] { display: none !important; }

@media (max-width: 980px) {
  body.tpcb-site .travelspark-live-search__body { grid-template-columns: minmax(0, 1fr); }
  body.tpcb-site .travelspark-live-search__filters { background: #f5fafc; }
}
@media (max-width: 760px) {
  body.tpcb-site .travelspark-live-search__body { grid-template-columns: minmax(0, 1fr); }
  body.tpcb-site :is(.travelspark-live-search__results, .travelspark-tours-index__section--widget .travelspark-widget__grid, .travelspark-hotel-card-grid) { grid-template-columns: minmax(0, 1fr); }
  body.tpcb-site .travelspark-tours-index { padding-top: 1rem; }
  body.tpcb-site .travelspark-tours-index__hero-panel { display: block; }
  body.tpcb-site .travelspark-tours-index__hero-panel > div + div { margin-top: 1rem; }
  body.tpcb-site .travelspark-live-search__filters { background: #f5fafc; }
}
@media (prefers-reduced-motion: reduce) {
  body.tpcb-site :is(.travelspark-card, .travelspark-live-card, .travelspark-hotel-card, .tsva-sticky-cta, .tsva-exit-cta) { transition: none; }
}

/* Floating booking controls use the same accessible action colors as cards. */
body.tpcb-site .tsva-sticky-cta > a,
body.tpcb-site .tsva-exit-cta a.tsva-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px !important;
  padding: 12px 16px;
  color: #f5fafc !important;
  background: #084dbb !important;
  border-color: #084dbb;
  font: 600 16px/1.4 "Onest", Arial, sans-serif;
  text-decoration: none;
}
body.tpcb-site .tsva-sticky-cta > a span,
body.tpcb-site .tsva-exit-cta a.tsva-button span { color: inherit !important; }
