/* Island experience cards. TravelSpark continues to own data, placement,
   product counts, mobile limits, controls and article insertion frequency. */
.tvi-site { --island-blue: #174edb; --island-coral: #ff633c; --island-lime: #c5ef39; }
.tvi-site .island-brand-vibrant { display: block; width: 280px; height: 88px; overflow: hidden; }
.tvi-site .island-brand-vibrant img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: center; }
.tvi-site .site-brand .custom-logo-link { width: 280px; height: 88px; overflow: hidden; }
.tvi-site .site-brand .custom-logo { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: center; }
.tvi-site .site-footer { background: #182426; }
@media (max-width: 820px) {
  .tvi-site .site-brand .island-brand-vibrant { width: 220px; height: 70px; }
  .tvi-site .site-brand .custom-logo-link { width: 220px; height: 70px; }
}
.tvi-site .article-layout { gap: clamp(2rem, 4vw, 4rem); }
.tvi-site .article-sidebar { position: static; display: block; }
.tvi-site .provider-surface--sidebar { display: flex; flex-direction: column; gap: 2rem; }
.tvi-site .provider-surface--sidebar > .travelspark-sidebar-widget { order: -1; }
.tvi-site .travelspark-widget { --tsva-card-radius: 16px; --tsva-button-radius: 9px; color: #182426; }
.tvi-site :is(.article-content,.provider-surface) .travelspark-widget {
  padding: clamp(18px, 3vw, 28px); margin-block: 2rem; border: 1px solid #d9e1de;
  border-top: 4px solid var(--island-coral); border-radius: 20px;
  background: #f0f4f0; box-shadow: none;
}
.tvi-site .provider-surface--sidebar .travelspark-widget { margin: 0; padding: 0; border: 0; background: transparent; }
.tvi-site .travelspark-widget .travelspark-widget__header { margin: 0 0 22px; padding: 0; }
.tvi-site .travelspark-widget .travelspark-widget__title {
  margin: 8px 0 12px; color: #182426; font: 750 clamp(22px, 2.6vw, 30px)/1.14 var(--body); letter-spacing: -.035em;
}
.tvi-site .travelspark-widget .travelspark-widget__description { font: 400 15px/1.6 var(--body); color: #4a5b56; margin: 0; }
.tvi-site .travelspark-widget .travelspark-widget__eyebrow { font: 750 11px/1.5 var(--body); letter-spacing: .12em; color: #465b43; }
.tvi-site .travelspark-widget .travelspark-widget__grid { gap: 20px; align-items: stretch; }
.tvi-site .article-content .travelspark-widget__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.tvi-site .article-sidebar .travelspark-widget__grid--sidebar { grid-template-columns: minmax(0, 1fr) !important; }
.tvi-site .travelspark-widget .travelspark-card,
.tvi-site .travelspark-live-card:not(.travelspark-live-card--skeleton) {
  min-width: 0; grid-template-columns: minmax(0,1fr); flex-direction: column;
  padding: 0; border: 1px solid #dce3df !important; border-radius: 16px !important;
  overflow: hidden; background: #fff !important; color: #182426;
  box-shadow: 0 6px 18px #18242608 !important;
}
.tvi-site .travelspark-widget .travelspark-card__media { grid-column: auto; width: 100%; min-width: 0; margin: 0; }
.tvi-site .travelspark-widget .travelspark-card__image-link { display: block; width: 100%; height: auto; padding: 0; }
.tvi-site .travelspark-widget .travelspark-card__image,
.tvi-site .travelspark-live-card__image img { width: 100%; height: auto !important; aspect-ratio: 16/10; object-fit: cover; border-radius: 0; margin: 0; }
.tvi-site .travelspark-widget .travelspark-card__content,
.tvi-site .travelspark-live-card__body { display: flex; flex-direction: column; gap: 12px; flex: 1; min-width: 0; padding: 20px; }
.tvi-site .travelspark-widget .travelspark-card__rating,
.tvi-site .travelspark-live-card__rating { align-self: flex-start; padding: 5px 9px; border-radius: 6px; background: #eef6db; color: #34471d; font: 700 12px/1.4 var(--body); margin: 0; }
.tvi-site .travelspark-widget .travelspark-card__title,
.tvi-site .travelspark-live-card__title { margin: 0; font: 750 20px/1.22 var(--body); letter-spacing: -.025em; color: #182426; text-wrap: pretty; }
.tvi-site .travelspark-widget .travelspark-card__title a { color: inherit; text-decoration: none; font: inherit; }
.tvi-site .travelspark-widget .travelspark-card__description,
.tvi-site .travelspark-live-card__body > p { display: block !important; margin: 0; color: #50605b; font: 400 14px/1.6 var(--body); max-height: none; overflow: visible; -webkit-line-clamp: unset; }
.tvi-site .travelspark-widget .travelspark-card__meta { margin: 0; font: 600 12px/1.45 var(--body); color: #345c46; }
.tvi-site .travelspark-widget .travelspark-card__footer,
.tvi-site .travelspark-live-card__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid #e8ede9; }
.tvi-site .travelspark-widget .travelspark-card__price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; color: #42534c; }
.tvi-site .travelspark-widget .travelspark-card__price { color: #182426; font: 800 23px/1.2 var(--body); letter-spacing: -.04em; }
.tvi-site .travelspark-widget a.travelspark-card__button,
.tvi-site a.travelspark-live-card__cta {
  display: inline-flex; justify-content: center; align-items: center; gap: 8px;
  min-height: 46px; padding: 12px 16px; border: 0; border-radius: 9px !important;
  background: var(--island-blue) !important; color: #fff !important;
  font: 750 13px/1.35 var(--body); text-decoration: none; white-space: normal;
}
.tvi-site .travelspark-widget a.travelspark-card__button::after { content: '↗'; font-size: 18px; }
.tvi-site .travelspark-widget a.travelspark-card__button:hover,
.tvi-site a.travelspark-live-card__cta:hover { background: #103bab !important; }
.tvi-site .travelspark-widget a:focus-visible,
.tvi-site .travelspark-live-card a:focus-visible { outline: 3px solid #ff633c; outline-offset: 3px; }
.tvi-site .travelspark-widget .tsva-powered { margin: 16px 0 0; font: 400 11px/1.5 var(--body); color: #56665e; }
.tvi-site .article-sidebar .travelspark-hotel-cards { margin: 0; }
.tvi-site .travelspark-hotel-cards { border: 1px solid #dce3df; border-radius: 16px; background: #fff; color: #182426; overflow: hidden; }
.tvi-site .travelspark-hotel-cards--sidebar { width: 100%; }

/* Provider presets use important declarations; keep the visual contract local
   and leave card visibility/mobile limits untouched. */
.tvi-site :is(.article-content,.provider-surface) .travelspark-widget {
  background: #f0f4f0 !important; border: 1px solid #d9e1de !important;
  border-top: 4px solid var(--island-coral) !important; border-radius: 20px !important;
  box-shadow: none !important;
}
.tvi-site .provider-surface--sidebar .travelspark-widget { background: transparent !important; border: 0 !important; padding: 0 !important; }
.tvi-site .travelspark-widget .travelspark-widget__grid { display: grid !important; gap: 20px !important; }
.tvi-site .article-content .travelspark-widget__grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
.tvi-site .travelspark-widget .travelspark-widget__title { font: 750 clamp(22px,2.6vw,30px)/1.14 var(--body) !important; margin: 8px 0 12px !important; }
.tvi-site .travelspark-widget .travelspark-card { grid-template-columns: minmax(0,1fr) !important; flex-direction: column !important; }
body.tvi-site .article-content .travelspark-widget .travelspark-card.travelspark-card--featured { grid-template-columns: minmax(0,1fr) !important; }
.tvi-site .article-content .travelspark-widget__showcase-stack { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.tvi-site .article-content .travelspark-widget__showcase-stack > .travelspark-card { margin: 0 !important; }
.tvi-site .travelspark-widget .travelspark-card__media { width: 100% !important; min-width: 0 !important; min-height: 0 !important; grid-column: auto !important; grid-row: auto !important; }
.tvi-site .travelspark-widget .travelspark-card__image-link { height: auto !important; min-height: 0 !important; }
.tvi-site .travelspark-widget .travelspark-card__content { padding: 20px !important; gap: 12px !important; }
.tvi-site .travelspark-widget .travelspark-card__title { font: 750 20px/1.22 var(--body) !important; margin: 0 !important; }
.tvi-site .travelspark-widget .travelspark-card__title a { font: inherit !important; }
.tvi-site .travelspark-widget :is(.travelspark-card__title,.travelspark-card__title a) { display: block !important; overflow: visible !important; max-height: none !important; -webkit-line-clamp: unset !important; white-space: normal !important; }
.tvi-site .travelspark-widget .travelspark-card__rating { font: 700 12px/1.4 var(--body) !important; }
.tvi-site .travelspark-widget .travelspark-card__description { font: 400 14px/1.6 var(--body) !important; }
.tvi-site .travelspark-widget .travelspark-card__price { font: 800 23px/1.2 var(--body) !important; }
.tvi-site .travelspark-widget a.travelspark-card__button { font: 750 13px/1.35 var(--body) !important; box-shadow: none !important; }
.tvi-site .travelspark-card__button-text { white-space: normal !important; text-overflow: clip !important; overflow: visible !important; }

/* Native and classic article tables share an accessible scroll container. */
.tvi-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; margin: 2rem 0; border: 1px solid #d3dfd8; border-radius: 14px; background: #fff; box-shadow: 0 5px 18px #18242606; }
.tvi-table-scroll:focus-visible { outline: 3px solid var(--island-blue); outline-offset: 3px; }
.tvi-site .prose .tvi-table-scroll table { display: table; width: 100%; min-width: 520px; max-width: none; margin: 0; border-collapse: collapse; font: 400 14px/1.55 var(--body); }
.tvi-site .prose table :is(th,td) { padding: 16px 18px; border: 0; border-bottom: 1px solid #e1e8e3; vertical-align: top; text-align: left; }
.tvi-site .prose table thead th { background: #214538; color: #fff; font-weight: 750; font-size: 12px; letter-spacing: .035em; }
.tvi-site .prose table tbody tr:nth-child(even) { background: #f2f6f1; }
.tvi-site .prose table tbody tr:hover { background: #eaf2dc; }
.tvi-site .prose table tbody :is(th,td):first-child { color: #213f32; font-weight: 700; }
.tvi-site .prose table tr:last-child :is(th,td) { border-bottom: 0; }
.tvi-site .prose table a { color: #1748bf; text-underline-offset: 3px; }
.tvi-site .prose table caption { padding: 14px 18px; font-weight: 650; text-align: left; color: #42554b; }
.tvi-site .prose .wp-block-table { margin-inline: 0; }
@media (max-width: 820px) {
  .tvi-site .article-sidebar .travelspark-widget__grid--sidebar { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 560px) {
  .tvi-site .article-content .travelspark-widget__showcase-stack { grid-template-columns: minmax(0,1fr); }
  .tvi-site .article-content .travelspark-widget__grid { grid-template-columns: minmax(0,1fr) !important; }
  .tvi-site .article-sidebar .travelspark-widget__grid--sidebar { grid-template-columns: minmax(0,1fr) !important; }
  .tvi-site :is(.article-content,.provider-surface) .travelspark-widget { padding: 16px; border-radius: 16px; }
  .tvi-site .provider-surface--sidebar .travelspark-widget { padding: 0; }
}
