/* ============================================================
   Viator Affiliate Plugin – Public Stylesheet
   ============================================================ */

/* ── CSS Custom Properties ───────────────────────────────── */
:root {
  --v-primary:        #00a591;
  --v-primary-dark:   #007f71;
  --v-accent:         #ff6b35;
  --v-success:        #28a745;
  --v-warning:        #ffc107;
  --v-danger:         #dc3545;
  --v-text:           #1a1a2e;
  --v-text-muted:     #6c757d;
  --v-bg:             #ffffff;
  --v-bg-alt:         #f8f9fa;
  --v-border:         #dee2e6;
  --v-radius:         10px;
  --v-radius-sm:      6px;
  --v-shadow:         0 2px 12px rgba(0,0,0,.08);
  --v-shadow-hover:   0 6px 24px rgba(0,0,0,.14);
  --v-font:           -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --v-transition:     .2s ease;
}

/* ── Reset (scoped) ──────────────────────────────────────── */
.viator-search-wrap *,
.viator-pdp *,
.viator-reviews *,
.viator-attraction *,
.viator-searchbar *,
.viator-booking-form *,
.viator-carousel-wrap *,
.viator-destinations *,
.viator-exchange-rates *,
.viator-modal * {
  box-sizing: border-box;
}

/* ── Grid ────────────────────────────────────────────────── */
.viator-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 1.4rem;
  margin: 1.4rem 0;
}
.viator-grid--destinations { grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap: 1rem; }

/* ── Cards ───────────────────────────────────────────────── */
.viator-card {
  background: var(--v-bg);
  border-radius: var(--v-radius);
  box-shadow: var(--v-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--v-transition), transform var(--v-transition);
  font-family: var(--v-font);
}
.viator-card:hover {
  box-shadow: var(--v-shadow-hover);
  transform: translateY(-3px);
}
.viator-card__image-wrap { position: relative; overflow: hidden; aspect-ratio: 16/10; }
.viator-card__image      { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.viator-card:hover .viator-card__image { transform: scale(1.04); }
.viator-card__body       { padding: 1rem; display: flex; flex-direction: column; flex: 1; gap: .5rem; }
.viator-card__title      { font-size: 1rem; font-weight: 700; color: var(--v-text); margin: 0; line-height: 1.3; }
.viator-card__desc       { font-size: .85rem; color: var(--v-text-muted); margin: 0; }
.viator-card__meta       { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; font-size: .8rem; }
.viator-card__footer     { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: .6rem; border-top: 1px solid var(--v-border); }
.viator-card__price      { font-size: .9rem; color: var(--v-text-muted); }
.viator-card__price strong { color: var(--v-primary); font-size: 1.05rem; }
.viator-card__rating     { display: flex; align-items: center; gap: .25rem; }
.viator-card__rating-num { font-weight: 700; }
.viator-card__review-cnt { color: var(--v-text-muted); font-size: .8rem; }
.viator-card__duration   { color: var(--v-text-muted); font-size: .8rem; }

/* ── Stars ───────────────────────────────────────────────── */
.viator-stars            { display: inline-flex; gap: 2px; }
.viator-star             { position: relative; font-size: 1rem; color: #d4d4d4; }
.viator-star::before     { content: '★'; position: absolute; left:0; top:0; overflow: hidden; width: calc(var(--fill,0) * 1%); color: #f4a91f; }

/* ── Badges ──────────────────────────────────────────────── */
.viator-badge {
  display: inline-block; padding: .2rem .55rem; border-radius: 30px;
  font-size: .7rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
}
.viator-badge--cancel  { background: #e6f9f4; color: var(--v-primary); }
.viator-badge--sellout { background: #fff3e0; color: #e65100; }
.viator-badge--instant { background: #e8f5e9; color: #2e7d32; }
.viator-card__image-wrap .viator-badge {
  position: absolute; top: .6rem; left: .6rem;
}

/* ── Buttons ─────────────────────────────────────────────── */
.viator-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  padding: .55rem 1.1rem; border-radius: var(--v-radius-sm);
  font-size: .88rem; font-weight: 600; cursor: pointer;
  border: 2px solid transparent; transition: all var(--v-transition);
  font-family: var(--v-font); text-decoration: none; white-space: nowrap;
}
.viator-btn--primary  { background: var(--v-primary);  color: #fff; border-color: var(--v-primary); }
.viator-btn--primary:hover  { background: var(--v-primary-dark); border-color: var(--v-primary-dark); }
.viator-btn--secondary{ background: var(--v-bg-alt); color: var(--v-text); border-color: var(--v-border); }
.viator-btn--secondary:hover { background: var(--v-border); }
.viator-btn--success  { background: var(--v-success); color:#fff; border-color:var(--v-success); }
.viator-btn--ghost    { background: transparent; color: var(--v-primary); border-color: var(--v-primary); }
.viator-btn--ghost:hover { background: var(--v-primary); color:#fff; }
.viator-btn--block    { width:100%; }
.viator-btn--filter   { padding: .4rem .9rem; }
.viator-btn:disabled  { opacity: .5; cursor: not-allowed; }

/* ── Filters ─────────────────────────────────────────────── */
.viator-filters { background: var(--v-bg-alt); border: 1px solid var(--v-border); border-radius: var(--v-radius); padding: 1rem; margin-bottom: 1.2rem; }
.viator-filters__row { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.viator-filters__row + .viator-filters__row { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid var(--v-border); }
.viator-filter-label { font-size: .85rem; font-weight: 600; color: var(--v-text); }
.viator-filter-label--checkbox { display: flex; align-items: center; gap: .35rem; cursor: pointer; font-weight: 400; }
.viator-select, .viator-input { padding: .4rem .7rem; border: 1px solid var(--v-border); border-radius: var(--v-radius-sm); font-size: .85rem; background: var(--v-bg); color: var(--v-text); }
.viator-input--small { width: 80px; }
.viator-results-count { font-size: .85rem; color: var(--v-text-muted); margin: 0 0 .8rem; }

/* ── Section title ───────────────────────────────────────── */
.viator-section-title { font-size: 1.4rem; font-weight: 700; color: var(--v-text); margin: 0 0 1rem; font-family: var(--v-font); }

/* ── Lists ───────────────────────────────────────────────── */
.viator-list          { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.viator-list--check li::before { content: '✓'; color: var(--v-primary); font-weight: 700; margin-right: .5rem; }
.viator-list--cross li::before { content: '✗'; color: var(--v-danger);  font-weight: 700; margin-right: .5rem; }

/* ── Load More ───────────────────────────────────────────── */
.viator-load-more-wrap { text-align: center; margin: 1.5rem 0; }
.viator-no-results     { text-align: center; color: var(--v-text-muted); padding: 2rem; }

/* ── Spinner ─────────────────────────────────────────────── */
@keyframes viator-spin { to { transform: rotate(360deg); } }
.viator-spinner {
  display: inline-block; width: 22px; height: 22px;
  border: 3px solid var(--v-border); border-top-color: var(--v-primary);
  border-radius: 50%; animation: viator-spin .7s linear infinite; vertical-align: middle;
}

/* ── Modal ───────────────────────────────────────────────── */
.viator-modal           { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; }
.viator-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.viator-modal__content  { position: relative; background: var(--v-bg); border-radius: var(--v-radius); width: min(92vw, 900px); max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.viator-modal__close    { position: sticky; top: .6rem; float: right; margin: .6rem .6rem 0 0; background: var(--v-bg-alt); border: 1px solid var(--v-border); border-radius: 50%; width: 34px; height: 34px; cursor: pointer; font-size: 1rem; z-index: 1; transition: background var(--v-transition), transform var(--v-transition); display: flex; align-items: center; justify-content: center; }
.viator-modal__close:hover { background: var(--v-border); transform: scale(1.1); }
.viator-modal__body     { padding: 1.5rem; }

/* ── PDP ─────────────────────────────────────────────────── */
.viator-pdp                   { font-family: var(--v-font); color: var(--v-text); }
.viator-pdp__gallery          { margin-bottom: 1.5rem; }
.viator-pdp__gallery-hero     { width: 100%; border-radius: var(--v-radius); aspect-ratio: 16/9; object-fit: cover; }
.viator-pdp__gallery-thumbs   { display: flex; gap: .5rem; margin-top: .5rem; flex-wrap: wrap; }
.viator-pdp__gallery-thumb    { width: 80px; height: 60px; object-fit: cover; border-radius: var(--v-radius-sm); cursor: pointer; border: 2px solid transparent; transition: border-color var(--v-transition); }
.viator-pdp__gallery-thumb:hover, .viator-pdp__gallery-thumb.is-active { border-color: var(--v-primary); }
.viator-pdp__layout           { display: grid; grid-template-columns: 1fr 320px; gap: 2rem; align-items: start; }
.viator-pdp__title            { font-size: 1.8rem; font-weight: 800; margin: 0 0 .7rem; line-height: 1.2; }
.viator-pdp__badges           { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .8rem; }
.viator-pdp__rating           { display: flex; align-items: center; gap: .4rem; margin-bottom: .6rem; }
.viator-pdp__duration         { font-size: .9rem; color: var(--v-text-muted); margin: 0 0 1rem; }
.viator-pdp__description      { line-height: 1.7; margin-bottom: 1.5rem; }
.viator-pdp__section          { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--v-border); }
.viator-pdp__section-title    { font-size: 1.15rem; font-weight: 700; margin: 0 0 .8rem; }
.viator-pdp__inclusions       { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.viator-itinerary             { list-style: none; padding: 0; counter-reset: itinerary; }
.viator-itinerary__item       { position: relative; padding: .8rem 0 .8rem 3rem; border-left: 2px solid var(--v-border); margin-left: 1rem; }
.viator-itinerary__item::before { counter-increment: itinerary; content: counter(itinerary); position: absolute; left: -1.2rem; top: .8rem; width: 2rem; height: 2rem; background: var(--v-primary); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; }
.viator-options               { list-style: none; padding: 0; display: flex; flex-direction: column; gap: .8rem; }
.viator-options__item         { padding: .8rem; border: 1px solid var(--v-border); border-radius: var(--v-radius-sm); }

/* ── Booking panel (sidebar) ─────────────────────────────── */
.viator-booking-panel         { background: var(--v-bg); border: 2px solid var(--v-border); border-radius: var(--v-radius); padding: 1.4rem; position: sticky; top: 80px; }
.viator-booking-panel__price  { text-align: center; margin-bottom: 1rem; }
.viator-booking-panel__from   { font-size: .8rem; color: var(--v-text-muted); display: block; }
.viator-booking-panel__amount { font-size: 2rem; color: var(--v-primary); display: block; }
.viator-booking-panel__per    { font-size: .8rem; color: var(--v-text-muted); }
.viator-booking-panel__cancel-note { font-size: .8rem; color: var(--v-primary); text-align: center; margin: .7rem 0 0; }

/* ── Booking form steps ──────────────────────────────────── */
.viator-steps            { display: flex; gap: 0; margin-bottom: 1.5rem; border-radius: var(--v-radius-sm); overflow: hidden; border: 1px solid var(--v-border); }
.viator-steps__step      { flex: 1; text-align: center; padding: .5rem .3rem; font-size: .75rem; font-weight: 600; color: var(--v-text-muted); background: var(--v-bg-alt); border-right: 1px solid var(--v-border); transition: all var(--v-transition); }
.viator-steps__step:last-child { border-right: none; }
.viator-steps__step.is-active  { background: var(--v-primary); color: #fff; }
.viator-steps__step.is-done    { background: #e6f9f4; color: var(--v-primary); }
.viator-book-nav         { display: flex; justify-content: space-between; margin-top: 1.2rem; }
.viator-field            { margin-bottom: 1rem; }
.viator-label            { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .35rem; color: var(--v-text); }
.viator-input            { width: 100%; padding: .5rem .75rem; border: 1px solid var(--v-border); border-radius: var(--v-radius-sm); font-size: .9rem; background: var(--v-bg); color: var(--v-text); transition: border-color var(--v-transition); }
.viator-input:focus      { outline: none; border-color: var(--v-primary); box-shadow: 0 0 0 3px rgba(0,165,145,.15); }
.viator-counter          { display: flex; align-items: center; gap: .5rem; }
.viator-counter__btn     { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--v-border); background: var(--v-bg-alt); cursor: pointer; font-size: 1.1rem; font-weight: 700; transition: all var(--v-transition); }
.viator-counter__btn:hover { border-color: var(--v-primary); background: var(--v-primary); color: #fff; }
.viator-counter__input   { width: 50px; text-align: center; border: 1px solid var(--v-border); border-radius: var(--v-radius-sm); padding: .3rem; font-size: .9rem; }
.viator-timeslots        { display: flex; flex-wrap: wrap; gap: .4rem; }
.viator-timeslot         { padding: .35rem .7rem; border: 1px solid var(--v-border); border-radius: var(--v-radius-sm); cursor: pointer; font-size: .82rem; transition: all var(--v-transition); }
.viator-timeslot.is-selected { border-color: var(--v-primary); background: var(--v-primary); color: #fff; }
.viator-price-estimate   { font-size: 1.1rem; font-weight: 700; color: var(--v-primary); margin: .8rem 0; }
.viator-avail-status     { font-size: .85rem; font-weight: 600; }
.viator-avail-status.available   { color: var(--v-success); }
.viator-avail-status.unavailable { color: var(--v-danger); }
.viator-booking-summary  { background: var(--v-bg-alt); border-radius: var(--v-radius-sm); padding: 1rem; margin-bottom: 1rem; font-size: .9rem; line-height: 1.6; }
.viator-book-error       { background: #fce8e8; color: var(--v-danger); padding: .8rem 1rem; border-radius: var(--v-radius-sm); margin-top: .8rem; font-size: .9rem; }
.viator-book-confirmed   { text-align: center; padding: 2rem; }
.viator-confirmed-icon   { font-size: 3rem; color: var(--v-success); }

/* ── Reviews ─────────────────────────────────────────────── */
.viator-reviews__summary { display: flex; gap: 1.5rem; align-items: center; margin-bottom: 1.5rem; }
.viator-reviews__bars    { flex: 1; display: flex; flex-direction: column; gap: .35rem; }
.viator-reviews__bar-row { display: flex; align-items: center; gap: .5rem; font-size: .8rem; }
.viator-reviews__bar-label { width: 20px; text-align: right; font-weight: 600; }
.viator-reviews__bar-track { flex: 1; height: 8px; background: var(--v-border); border-radius: 4px; overflow: hidden; }
.viator-reviews__bar-fill  { height: 100%; background: var(--v-primary); border-radius: 4px; transition: width .6s ease; }
.viator-reviews__bar-pct   { width: 30px; font-size: .75rem; color: var(--v-text-muted); }
.viator-review           { padding: 1rem 0; border-bottom: 1px solid var(--v-border); }
.viator-review:last-child{ border-bottom: none; }
.viator-review__header   { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: .4rem; }
.viator-review__author   { font-size: .9rem; }
.viator-review__date     { font-size: .8rem; color: var(--v-text-muted); }
.viator-review__text     { margin: 0; font-size: .9rem; line-height: 1.6; }
.viator-review__helpful  { display: block; margin-top: .3rem; color: var(--v-text-muted); }

/* ── Search bar ──────────────────────────────────────────── */
.viator-searchbar          { position: relative; max-width: 640px; font-family: var(--v-font); }
.viator-searchbar__inner   { display: flex; align-items: center; border: 2px solid var(--v-border); border-radius: 40px; overflow: hidden; background: var(--v-bg); transition: border-color var(--v-transition); }
.viator-searchbar__inner:focus-within { border-color: var(--v-primary); }
.viator-searchbar__icon    { padding: 0 .7rem 0 1rem; color: var(--v-text-muted); font-size: 1rem; }
.viator-searchbar__input   { flex: 1; border: none; outline: none; padding: .7rem .5rem; font-size: .95rem; background: transparent; color: var(--v-text); }
.viator-searchbar__btn     { border-radius: 0 40px 40px 0; padding: .7rem 1.3rem; }
.viator-searchbar__dropdown { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: var(--v-bg); border: 1px solid var(--v-border); border-radius: var(--v-radius); box-shadow: var(--v-shadow-hover); z-index: 9999; max-height: 420px; overflow-y: auto; }
.viator-searchbar__section-label { padding: .5rem .9rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--v-text-muted); border-bottom: 1px solid var(--v-border); }
.viator-searchbar__results { list-style: none; padding: 0; margin: 0; }
.viator-searchbar__results li { padding: .6rem .9rem; cursor: pointer; font-size: .88rem; border-bottom: 1px solid var(--v-border); transition: background var(--v-transition); }
.viator-searchbar__results li:hover { background: var(--v-bg-alt); }
.viator-searchbar__results li:last-child { border-bottom: none; }
.viator-searchbar__loading, .viator-searchbar__no-results { padding: .8rem; text-align: center; font-size: .85rem; color: var(--v-text-muted); }

/* ── Attraction ──────────────────────────────────────────── */
.viator-attraction__hero          { height: 340px; background-size: cover; background-position: center; border-radius: var(--v-radius); position: relative; overflow: hidden; margin-bottom: 1.5rem; }
.viator-attraction__hero-overlay  { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.7), transparent); display: flex; align-items: flex-end; padding: 1.5rem; }
.viator-attraction__title         { color: #fff; font-size: 2rem; font-weight: 800; margin: 0; font-family: var(--v-font); text-shadow: 0 2px 8px rgba(0,0,0,.4); }
.viator-attraction__title--no-img { font-size: 2rem; font-weight: 800; color: var(--v-text); margin: 0 0 1rem; font-family: var(--v-font); }
.viator-attraction__desc          { line-height: 1.7; margin-bottom: 1.5rem; }

/* ── Destinations ────────────────────────────────────────── */
.viator-dest-card          { position: relative; border-radius: var(--v-radius); overflow: hidden; display: block; aspect-ratio: 4/3; background: var(--v-border); transition: transform var(--v-transition); text-decoration: none; }
.viator-dest-card:hover    { transform: scale(1.03); }
.viator-dest-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.65), transparent); display: flex; align-items: flex-end; padding: .7rem; }
.viator-dest-card__name    { color: #fff; font-weight: 700; font-size: .9rem; font-family: var(--v-font); }
.viator-destinations--list ul { list-style: none; padding: 0; }
.viator-destinations--list li { border-bottom: 1px solid var(--v-border); }
.viator-destinations--list a  { display: block; padding: .6rem 0; font-size: .9rem; color: var(--v-primary); text-decoration: none; transition: padding-left var(--v-transition); }
.viator-destinations--list a:hover { padding-left: .4rem; }

/* ── Exchange rates ──────────────────────────────────────── */
.viator-table        { width: 100%; border-collapse: collapse; font-family: var(--v-font); font-size: .9rem; }
.viator-table th     { background: var(--v-bg-alt); font-weight: 700; padding: .6rem .8rem; text-align: left; border-bottom: 2px solid var(--v-border); }
.viator-table td     { padding: .55rem .8rem; border-bottom: 1px solid var(--v-border); }
.viator-table tr:hover td { background: var(--v-bg-alt); }

/* ── Widget product list ─────────────────────────────────── */
.viator-widget-products    { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; }
.viator-widget-product     { display: flex; gap: .7rem; align-items: center; cursor: pointer; padding: .4rem; border-radius: var(--v-radius-sm); transition: background var(--v-transition); border: 1px solid transparent; }
.viator-widget-product:hover { background: var(--v-bg-alt); border-color: var(--v-border); }
.viator-widget-product img { width: 64px; height: 48px; object-fit: cover; border-radius: var(--v-radius-sm); flex-shrink: 0; }
.viator-widget-product-info { flex: 1; min-width: 0; }
.viator-widget-product-title { font-size: .82rem; font-weight: 600; color: var(--v-text); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
.viator-widget-price       { display: block; color: var(--v-primary); font-weight: 700; font-size: .8rem; margin-top: .15rem; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .viator-pdp__layout        { grid-template-columns: 1fr; }
  .viator-pdp__inclusions    { grid-template-columns: 1fr; }
  .viator-grid               { grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); }
  .viator-steps__step        { font-size: .65rem; padding: .4rem .15rem; }
  .viator-attraction__hero   { height: 220px; }
  .viator-pdp__title         { font-size: 1.3rem; }
}

@media (max-width: 480px) {
  .viator-grid               { grid-template-columns: 1fr; }
  .viator-filters__row       { flex-direction: column; align-items: stretch; }
  .viator-input--small       { width: 100%; }
}

/* ══════════════════════════════════════════════════════════════
   PDP v2 – Modern overrides & new policy components
   ══════════════════════════════════════════════════════════════ */

/* ── PDP header ──────────────────────────────────────────────── */
.viator-pdp__header         { margin-bottom: 1.6rem; }
.viator-pdp__meta-row       { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: .6rem; }
.viator-pdp__duration-pill  {
  display: inline-flex; align-items: center; gap: .35rem;
  background: var(--v-bg-alt); border: 1px solid var(--v-border);
  border-radius: 30px; padding: .2rem .65rem;
  font-size: .82rem; color: var(--v-text-muted);
}

/* ── Highlights ──────────────────────────────────────────────── */
.viator-list--highlights    { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.viator-list--highlights li {
  display: flex; align-items: flex-start; gap: .45rem;
  font-size: .9rem; line-height: 1.45;
}
.viator-list--highlights li::before {
  content: ''; flex-shrink: 0; width: 6px; height: 6px;
  background: var(--v-primary); border-radius: 50%; margin-top: .45rem;
}
@media (max-width: 600px) { .viator-list--highlights { grid-template-columns: 1fr; } }

/* ── Inclusions labels ───────────────────────────────────────── */
.viator-inc-label           { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 .5rem; }
.viator-inc-label--yes      { color: var(--v-primary); }
.viator-inc-label--no       { color: var(--v-danger); }

/* ── Language tags ───────────────────────────────────────────── */
.viator-lang-grid           { display: flex; flex-wrap: wrap; gap: .4rem; }
.viator-lang-tag            {
  background: var(--v-bg-alt); border: 1px solid var(--v-border);
  border-radius: 20px; padding: .2rem .7rem; font-size: .8rem; color: var(--v-text-muted);
}

/* ── Logistics ───────────────────────────────────────────────── */
.viator-logistics           { display: flex; flex-direction: column; gap: .8rem; }
.viator-logistics__point    { display: flex; align-items: flex-start; gap: .75rem; }
.viator-logistics__dot      { flex-shrink: 0; width: 10px; height: 10px; border-radius: 50%; margin-top: .35rem; }
.viator-logistics__dot--start { background: var(--v-primary); }
.viator-logistics__dot--end   { background: var(--v-accent); }
.viator-logistics__label    { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--v-text-muted); }
.viator-logistics__point p  { margin: .1rem 0 0; font-size: .9rem; }

/* ── Itinerary update ────────────────────────────────────────── */
.viator-itinerary__duration {
  display: inline-block; margin-top: .25rem;
  background: var(--v-bg-alt); border: 1px solid var(--v-border);
  border-radius: 20px; padding: .1rem .5rem; font-size: .75rem; color: var(--v-text-muted);
}

/* ── Gallery thumb buttons ───────────────────────────────────── */
.viator-pdp__gallery-thumb-btn {
  background: none; border: 2px solid transparent;
  border-radius: var(--v-radius-sm); padding: 0; cursor: pointer;
  transition: border-color var(--v-transition);
}
.viator-pdp__gallery-thumb-btn.is-active,
.viator-pdp__gallery-thumb-btn:hover { border-color: var(--v-primary); }

/* ══════════════════════════════════════════════════════════════
   POLICY SECTION
   ══════════════════════════════════════════════════════════════ */
.viator-policy              { background: var(--v-bg-alt); border-radius: var(--v-radius); padding: 1.5rem; border: 1px solid var(--v-border); }
.viator-policy .viator-pdp__section-title { font-size: 1.1rem; }

.viator-policy__summary     { font-size: .92rem; line-height: 1.65; color: var(--v-text); margin: 0 0 1.2rem; }

/* Refund tiers */
.viator-policy__refund-grid { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1.2rem; }
.viator-refund-tier         {
  display: grid; grid-template-columns: 120px 50px 1fr; align-items: center; gap: .6rem;
}
.viator-refund-tier__bar    {
  height: 8px; background: var(--v-border); border-radius: 4px; overflow: hidden; position: relative;
}
.viator-refund-tier__fill   {
  position: absolute; inset: 0 auto 0 0; border-radius: 4px;
  background: var(--v-primary); transition: width .4s ease;
}
.viator-refund-tier--none   .viator-refund-tier__fill { background: var(--v-danger); }
.viator-refund-tier--partial .viator-refund-tier__fill { background: var(--v-warning); }
.viator-refund-tier__pct    { font-size: .9rem; font-weight: 700; text-align: right; }
.viator-refund-tier--full   .viator-refund-tier__pct { color: var(--v-primary); }
.viator-refund-tier--none   .viator-refund-tier__pct { color: var(--v-danger); }
.viator-refund-tier--partial .viator-refund-tier__pct { color: #8a6500; }
.viator-refund-tier__label  { font-size: .82rem; color: var(--v-text-muted); }

/* Supplier cancellation flags */
.viator-policy__flags       { margin-bottom: 1.1rem; }
.viator-policy__flags-title { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--v-text-muted); margin: 0 0 .5rem; }
.viator-policy__flags .viator-list li::before { content: '!'; color: var(--v-warning); }

/* Confirmation type row */
.viator-policy__confirmation {
  display: flex; align-items: flex-start; gap: .75rem;
  background: var(--v-bg); border: 1px solid var(--v-border); border-radius: var(--v-radius-sm);
  padding: .85rem 1rem; margin-bottom: 1.1rem;
}
.viator-policy__conf-icon   { flex-shrink: 0; color: var(--v-primary); margin-top: .1rem; }
.viator-policy__confirmation strong { display: block; font-size: .9rem; margin-bottom: .15rem; }
.viator-policy__confirmation p { margin: 0; font-size: .83rem; color: var(--v-text-muted); }

/* Requirements */
.viator-policy__requirements { margin-bottom: 1.1rem; }

/* Additional info */
.viator-policy__additional  { }
.viator-list--info li::before { content: 'ℹ'; color: #5b6af5; font-style: normal; margin-right: .45rem; }

/* ── Booking panel trust list ────────────────────────────────── */
.viator-booking-panel__trust {
  list-style: none; padding: 0; margin: .9rem 0 0;
  display: flex; flex-direction: column; gap: .4rem;
  border-top: 1px solid var(--v-border); padding-top: .9rem;
}
.viator-booking-panel__trust li {
  display: flex; align-items: center; gap: .45rem;
  font-size: .8rem; color: var(--v-text-muted);
}
.viator-booking-panel__trust li svg { flex-shrink: 0; color: var(--v-primary); }
.viator-booking-panel__trust a { color: var(--v-primary); text-decoration: none; }
.viator-booking-panel__trust a:hover { text-decoration: underline; }

/* ── Mobile responsive tweaks ────────────────────────────────── */
@media (max-width: 600px) {
  .viator-refund-tier { grid-template-columns: 80px 44px 1fr; gap: .4rem; }
  .viator-policy      { padding: 1rem; }
}
