/* WLS Experience Cards - frontend */
.wls-exp-carousel,
.wls-exp-card {
  --wls-text: #171717;
  --wls-muted: #555;
  --wls-border: #e9e9e9;
  --wls-green: #16752b;
  --wls-green-bg: #eef8f0;
  font-family: var(--gp-font--mona-sans), "Mona Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.wls-exp-carousel *,
.wls-exp-card * { box-sizing: border-box; }

.wls-exp-carousel { width: 100%; }
.wls-exp-carousel__header { display:flex; align-items:center; justify-content:space-between; margin:0 0 18px; }
.wls-exp-carousel__title { margin:0; color:var(--wls-text); font:700 clamp(24px,2vw,32px)/1.15 inherit; letter-spacing:-.02em; }
.wls-exp-carousel__viewport { position:relative; }
.wls-exp-carousel__track {
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior-inline:contain;
  padding:3px 2px 14px;
  -webkit-overflow-scrolling:touch;
}
.wls-exp-carousel__track::-webkit-scrollbar { display:none; }
.wls-exp-carousel__track > .wp-block-wls-experience-card,
.wls-exp-carousel__track > .wls-exp-card {
  flex:0 0 calc((100% - 54px)/4);
  min-width:0;
  scroll-snap-align:start;
}

.wls-exp-carousel__arrow {
  position:absolute;
  z-index:5;
  top:50%;
  width:46px;
  height:46px;
  margin-top:-23px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:999px;
  background:#fff;
  color:#171717;
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.wls-exp-carousel__arrow span { font:400 34px/1 Arial,sans-serif; transform:translateY(-1px); }
.wls-exp-carousel__arrow--prev { left:-20px; }
.wls-exp-carousel__arrow--next { right:-20px; }
.wls-exp-carousel__arrow:hover { transform:scale(1.06); box-shadow:0 10px 30px rgba(0,0,0,.18); }
.wls-exp-carousel__arrow:focus-visible { outline:3px solid rgba(25,118,210,.35); outline-offset:2px; }
.wls-exp-carousel__arrow[hidden] { display:none !important; }

.wls-exp-card {
  width:100%;
  min-width:0;
  background:#fff;
  border:1px solid var(--wls-border);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 7px 24px rgba(0,0,0,.07);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  scroll-snap-align:start;
}
.wls-exp-card__link { display:block; height:100%; color:inherit; text-decoration:none !important; }
.wls-exp-card__image-wrap { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; background:#f4f4f4; }
.wls-exp-card__image,
.wls-exp-card__image-placeholder { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.2,.75,.25,1), filter .25s ease; }
.wls-exp-card__image-placeholder { background:linear-gradient(135deg,#eef3f6,#dfe9ef); }
.wls-exp-card__badge {
  position:absolute;
  top:13px;
  left:13px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:calc(100% - 26px);
  padding:7px 10px;
  border-radius:999px;
  background:rgba(23,23,23,.94);
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:700;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.wls-exp-card__badge-check { width:15px; height:15px; flex:0 0 15px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#fff; color:#171717; font-size:10px; font-weight:800; }
.wls-exp-card__body { padding:15px 16px 16px; }
.wls-exp-card__rating { display:flex; align-items:center; gap:6px; margin-bottom:9px; color:#202020; font-size:13px; line-height:1.2; }
.wls-exp-card__google { width:18px; height:18px; flex:0 0 18px; }
.wls-exp-card__rating strong { font-size:14px; font-weight:700; }
.wls-exp-card__rating span { color:#4d4d4d; font-size:12.5px; font-weight:400; }
.wls-exp-card__title { margin:0 0 10px; color:var(--wls-text); font-size:18.5px; line-height:1.2; font-weight:700; letter-spacing:-.02em; }
.wls-exp-card__meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:13px; color:var(--wls-muted); font-size:12.25px; line-height:1.35; }
.wls-exp-card__meta-item { display:inline-flex; align-items:center; gap:4px; color:var(--wls-muted); }
.wls-exp-card__meta-icon { width:14px; height:14px; flex:0 0 14px; }
.wls-exp-card__meta-sep { color:#b7b7b7; }
.wls-exp-card__bottom { border-top:1px solid #ededed; padding-top:12px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.wls-exp-card__cancel { display:inline-flex; align-items:center; min-width:0; padding:5px 7px; border-radius:7px; background:var(--wls-green-bg); color:var(--wls-green); font-size:10.5px; line-height:1.1; font-weight:600; white-space:nowrap; }
.wls-exp-card__price { flex:0 0 auto; text-align:right; white-space:nowrap; }
.wls-exp-card__price-top { display:flex; align-items:baseline; justify-content:flex-end; gap:4px; }
.wls-exp-card__from { color:#48617e; font-size:12px; line-height:1; font-weight:500; }
.wls-exp-card__amount { color:var(--wls-text); font-size:20px; line-height:1; font-weight:800; letter-spacing:-.03em; }
.wls-exp-card__person { display:block; margin-top:3px; color:#48617e; font-size:11.5px; line-height:1; font-weight:500; }

@media (hover:hover) and (pointer:fine) {
  .wls-exp-card:hover {
    transform:translateY(-5px);
    box-shadow:0 16px 36px rgba(0,0,0,.12);
    border-color:#dedede;
  }
  .wls-exp-card:hover .wls-exp-card__image { transform:scale(1.035); filter:saturate(1.03) contrast(1.01); }
  .wls-exp-card:hover .wls-exp-card__badge { transform:translateY(-1px); }
}

@media (min-width:700px) and (max-width:1023px) {
  .wls-exp-carousel__track > .wp-block-wls-experience-card,
  .wls-exp-carousel__track > .wls-exp-card { flex-basis:42%; }
  .wls-exp-carousel__arrow--prev { left:-10px; }
  .wls-exp-carousel__arrow--next { right:-10px; }
}

@media (max-width:699px) {
  .wls-exp-carousel__header { margin-bottom:14px; }
  .wls-exp-carousel__title { font-size:24px; }
  .wls-exp-carousel__track { gap:12px; padding-bottom:10px; scroll-padding-left:0; }
  .wls-exp-carousel__track > .wp-block-wls-experience-card,
  .wls-exp-carousel__track > .wls-exp-card { flex:0 0 72%; }
  .wls-exp-carousel__arrow { display:none !important; }
  .wls-exp-card { border-radius:18px; }
  .wls-exp-card__badge { top:12px; left:12px; max-width:calc(100% - 24px); padding:7px 9px; font-size:10.25px; }
  .wls-exp-card__body { padding:14px 14px 15px; }
  .wls-exp-card__title { font-size:17px; }
  .wls-exp-card__rating { gap:5px; }
  .wls-exp-card__rating strong { font-size:13px; }
  .wls-exp-card__rating span { font-size:11.5px; }
  .wls-exp-card__meta { gap:5px; font-size:11.2px; }
  .wls-exp-card__meta-icon { width:13px; height:13px; flex-basis:13px; }
  .wls-exp-card__bottom { gap:7px; }
  .wls-exp-card__cancel { font-size:9.6px; padding:5px 6px; }
  .wls-exp-card__from { font-size:11px; }
  .wls-exp-card__amount { font-size:18px; }
  .wls-exp-card__person { font-size:10.5px; }
}

@media (max-width:360px) {
  .wls-exp-carousel__track > .wp-block-wls-experience-card,
  .wls-exp-carousel__track > .wls-exp-card { flex-basis:76%; }
  .wls-exp-card__body { padding-left:13px; padding-right:13px; }
  .wls-exp-card__title { font-size:16.5px; }
  .wls-exp-card__cancel { white-space:normal; max-width:130px; }
}

@media (prefers-reduced-motion:reduce) {
  .wls-exp-carousel__track { scroll-behavior:auto; }
  .wls-exp-card,
  .wls-exp-card__image,
  .wls-exp-carousel__arrow { transition:none !important; }
}

/* ==================================================
   WLS EXPERIENCE GALLERY
================================================== */

.wls-exp-gallery {
  --wls-gallery-radius: 16px;
  --wls-gallery-gap: 8px;
  width: 100%;
  font-family: var(--gp-font--mona-sans), "Mona Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.wls-exp-gallery * { box-sizing: border-box; }


/* ==========================================================
   v1.15.0 — Stable performance pass
   Responsive gallery sources: only the active desktop/mobile
   layout downloads real images; the hidden layout gets a 1px source.
   ========================================================== */
.wls-exp-gallery .wls-exp-picture {
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
}
.wls-exp-gallery .wls-exp-picture > img {
  display:block;
  width:100%;
  height:100%;
}

.wls-exp-gallery__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  gap: var(--wls-gallery-gap);
  width: 100%;
  aspect-ratio: 16 / 7.2;
  min-height: 360px;
  max-height: 620px;
}

.wls-exp-gallery__hero,
.wls-exp-gallery__thumbs,
.wls-exp-gallery__media,
.wls-exp-gallery__empty {
  min-width: 0;
  min-height: 0;
}

.wls-exp-gallery__hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--wls-gallery-radius) 0 0 var(--wls-gallery-radius);
  background: #f2f2f2;
}

.wls-exp-gallery__media {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: #f2f2f2;
  overflow: hidden;
  cursor: zoom-in;
}

.wls-exp-gallery:not(.has-lightbox) .wls-exp-gallery__media { cursor: default; }

.wls-exp-gallery__media img,
.wls-exp-gallery__media video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.2,.75,.25,1), filter .25s ease;
}

.wls-exp-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: var(--wls-gallery-gap);
}

.wls-exp-gallery__thumbs[data-count="1"] .wls-exp-gallery__thumb {
  grid-column: 1 / -1;
  grid-row: 1 / -1;
}

.wls-exp-gallery__thumbs[data-count="2"] .wls-exp-gallery__thumb {
  grid-column: 1 / -1;
}

.wls-exp-gallery__thumb:nth-child(2),
.wls-exp-gallery__thumb:nth-child(4) {
  border-radius: 0 var(--wls-gallery-radius) var(--wls-gallery-radius) 0;
}

.wls-exp-gallery__thumbs[data-count="1"] .wls-exp-gallery__thumb,
.wls-exp-gallery__thumbs[data-count="2"] .wls-exp-gallery__thumb:last-child,
.wls-exp-gallery__thumbs[data-count="3"] .wls-exp-gallery__thumb:nth-child(2) {
  border-radius: 0 var(--wls-gallery-radius) var(--wls-gallery-radius) 0;
}

.wls-exp-gallery__empty {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 24px;
  color: #667078;
  background: linear-gradient(135deg,#f4f7f8,#e7eef1);
  text-align: center;
}

.wls-exp-gallery__actions {
  position: absolute;
  z-index: 4;
  top: 14px;
  right: 14px;
  display: flex;
  gap: 9px;
}

.wls-exp-gallery__action {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 999px;
  background: rgba(255,255,255,.95);
  color: #171717;
  box-shadow: 0 5px 16px rgba(0,0,0,.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}

.wls-exp-gallery__action svg {
  width: 21px;
  height: 21px;
}

.wls-exp-gallery__favorite.is-active {
  background: #171717;
  color: #fff;
}

.wls-exp-gallery__favorite.is-active svg { fill: currentColor; }

.wls-exp-gallery__play {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  transform: translate(-50%,-50%);
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #171717;
  box-shadow: 0 10px 30px rgba(0,0,0,.2);
  pointer-events: none;
  transition: transform .2s ease, background .2s ease;
}

.wls-exp-gallery__play svg {
  width: 31px;
  height: 31px;
  transform: translateX(2px);
}

.wls-exp-gallery__more {
  position: absolute;
  right: 12px;
  bottom: 12px;
  min-width: 54px;
  height: 42px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(20,20,20,.78);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  pointer-events: none;
}

@media (hover:hover) and (pointer:fine) {
  .wls-exp-gallery__media:hover img,
  .wls-exp-gallery__media:hover video {
    transform: scale(1.035);
    filter: saturate(1.04) contrast(1.015);
  }

  .wls-exp-gallery__media--hero:hover .wls-exp-gallery__play {
    transform: translate(-50%,-50%) scale(1.06);
    background: #fff;
  }

  .wls-exp-gallery__action:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
  }
}

.wls-exp-gallery__action:focus-visible,
.wls-exp-gallery__media:focus-visible,
.wls-exp-gallery__close:focus-visible,
.wls-exp-gallery__nav:focus-visible {
  outline: 3px solid rgba(25,118,210,.4);
  outline-offset: 3px;
}

/* Lightbox */
html.wls-gallery-modal-open,
html.wls-gallery-modal-open body { overflow: hidden; }

.wls-exp-gallery__lightbox[hidden] { display: none !important; }

.wls-exp-gallery__lightbox {
  position: fixed;
  z-index: 999999;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
}

.wls-exp-gallery__lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8,10,12,.94);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.wls-exp-gallery__lightbox-shell {
  position: relative;
  z-index: 1;
  width: min(1200px, 100%);
  height: min(86vh, 820px);
  display: grid;
  place-items: center;
}

.wls-exp-gallery__lightbox-topbar {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2px;
  color: #fff;
}

.wls-exp-gallery__counter {
  font-size: 14px;
  font-weight: 600;
}

.wls-exp-gallery__close,
.wls-exp-gallery__nav {
  border: 0;
  background: rgba(255,255,255,.12);
  color: #fff;
  cursor: pointer;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.wls-exp-gallery__close {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font: 300 34px/1 Arial,sans-serif;
}

.wls-exp-gallery__nav {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  margin-top: -25px;
  border-radius: 999px;
  font: 300 38px/1 Arial,sans-serif;
}

.wls-exp-gallery__nav--prev { left: 0; }
.wls-exp-gallery__nav--next { right: 0; }

.wls-exp-gallery__lightbox-media {
  width: calc(100% - 130px);
  height: calc(100% - 72px);
  display: grid;
  place-items: center;
  margin-top: 52px;
  touch-action: pan-y;
}

.wls-exp-gallery__lightbox-media img,
.wls-exp-gallery__lightbox-media video {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 10px;
}

.wls-exp-gallery__lightbox-media video {
  width: 100%;
  max-height: 100%;
  background: #000;
}

/* Tablet */
@media (min-width:700px) and (max-width:1023px) {
  .wls-exp-gallery__grid {
    grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr);
    aspect-ratio: 16 / 8.4;
    min-height: 330px;
  }
}

/* Mobile */
@media (max-width:699px) {
  .wls-exp-gallery {
    --wls-gallery-radius: 14px;
    --wls-gallery-gap: 9px;
  }

  .wls-exp-gallery__grid {
    display: block;
    aspect-ratio: auto;
    min-height: 0;
    max-height: none;
  }

  .wls-exp-gallery__hero {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: var(--wls-gallery-radius);
  }

  .wls-exp-gallery__actions {
    top: 11px;
    right: 11px;
    gap: 7px;
  }

  .wls-exp-gallery__action {
    width: 42px;
    height: 42px;
  }

  .wls-exp-gallery__play {
    width: 60px;
    height: 60px;
  }

  .wls-exp-gallery__play svg {
    width: 28px;
    height: 28px;
  }

  .wls-exp-gallery__thumbs {
    display: flex;
    gap: 8px;
    width: 100%;
    margin-top: 9px;
    padding: 0 0 4px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .wls-exp-gallery__thumbs::-webkit-scrollbar { display: none; }

  .wls-exp-gallery__thumb {
    flex: 0 0 30%;
    aspect-ratio: 4 / 3;
    min-width: 98px;
    border-radius: 11px !important;
    scroll-snap-align: start;
  }

  .wls-exp-gallery__more {
    right: 8px;
    bottom: 8px;
    min-width: 48px;
    height: 36px;
    font-size: 13px;
  }

  .wls-exp-gallery__lightbox {
    padding: 10px;
  }

  .wls-exp-gallery__lightbox-shell {
    height: 92vh;
  }

  .wls-exp-gallery__lightbox-media {
    width: 100%;
    height: calc(100% - 68px);
    margin-top: 48px;
  }

  .wls-exp-gallery__nav {
    width: 42px;
    height: 42px;
    top: auto;
    bottom: 8px;
    margin-top: 0;
    background: rgba(255,255,255,.14);
  }

  .wls-exp-gallery__nav--prev { left: calc(50% - 50px); }
  .wls-exp-gallery__nav--next { right: calc(50% - 50px); }

  .wls-exp-gallery__lightbox-topbar {
    min-height: 46px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .wls-exp-gallery__media img,
  .wls-exp-gallery__media video,
  .wls-exp-gallery__play,
  .wls-exp-gallery__action { transition: none !important; }
}

.wls-exp-gallery.no-thumbs .wls-exp-gallery__grid {
  grid-template-columns: 1fr;
  aspect-ratio: 16 / 8.5;
}

.wls-exp-gallery.no-thumbs .wls-exp-gallery__hero {
  border-radius: var(--wls-gallery-radius);
}

.wls-exp-gallery__share.is-confirmed {
  background: #eef8f0;
  color: #16752b;
}

@media (max-width:699px) {
  .wls-exp-gallery.no-thumbs .wls-exp-gallery__grid { aspect-ratio: auto; }
}

/* Precise outer corners for the desktop mosaic. */
@media (min-width:700px) {
  .wls-exp-gallery__thumb { border-radius: 0 !important; }
  .wls-exp-gallery__thumbs[data-count="4"] .wls-exp-gallery__thumb:nth-child(2) { border-radius: 0 var(--wls-gallery-radius) 0 0 !important; }
  .wls-exp-gallery__thumbs[data-count="4"] .wls-exp-gallery__thumb:nth-child(4) { border-radius: 0 0 var(--wls-gallery-radius) 0 !important; }
  .wls-exp-gallery__thumbs[data-count="3"] .wls-exp-gallery__thumb:nth-child(2) { border-radius: 0 var(--wls-gallery-radius) 0 0 !important; }
  .wls-exp-gallery__thumbs[data-count="3"] .wls-exp-gallery__thumb:nth-child(3) { grid-column: 1 / -1; border-radius: 0 0 var(--wls-gallery-radius) 0 !important; }
  .wls-exp-gallery__thumbs[data-count="2"] .wls-exp-gallery__thumb:first-child { border-radius: 0 var(--wls-gallery-radius) 0 0 !important; }
  .wls-exp-gallery__thumbs[data-count="2"] .wls-exp-gallery__thumb:last-child { border-radius: 0 0 var(--wls-gallery-radius) 0 !important; }
  .wls-exp-gallery__thumbs[data-count="1"] .wls-exp-gallery__thumb { border-radius: 0 var(--wls-gallery-radius) var(--wls-gallery-radius) 0 !important; }
}

/* v1.4.3 - Carousel subtitle + optional CTA */
.wls-exp-carousel__heading { min-width:0; }
.wls-exp-carousel__subtitle {
  margin:7px 0 0;
  max-width:760px;
  color:var(--wls-muted);
  font-size:15px;
  line-height:1.5;
  font-weight:400;
}
.wls-exp-carousel__footer {
  display:flex;
  justify-content:center;
  margin-top:18px;
}
.wls-exp-carousel__cta {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:11px 18px;
  border:1px solid #171717;
  border-radius:999px;
  background:#171717;
  color:#fff !important;
  text-decoration:none !important;
  font-size:14px;
  line-height:1;
  font-weight:700;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.wls-exp-carousel__cta-arrow { font-size:17px; line-height:1; transition:transform .18s ease; }
@media (hover:hover) and (pointer:fine) {
  .wls-exp-carousel__cta:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.14); background:#252525; }
  .wls-exp-carousel__cta:hover .wls-exp-carousel__cta-arrow { transform:translateX(3px); }
}
.wls-exp-carousel__cta:focus-visible { outline:3px solid rgba(25,118,210,.35); outline-offset:3px; }
@media (max-width:600px) {
  .wls-exp-carousel__subtitle { margin-top:5px; font-size:13.5px; line-height:1.45; }
  .wls-exp-carousel__footer { justify-content:flex-start; margin-top:14px; }
  .wls-exp-carousel__cta { min-height:44px; padding:11px 16px; font-size:13.5px; }
}
@media (prefers-reduced-motion:reduce) {
  .wls-exp-carousel__cta, .wls-exp-carousel__cta-arrow { transition:none !important; }
}

/* ==================================================
   v1.4.4 - Flexible carousel typography + WLS CTA
================================================== */
.wls-exp-carousel__heading {
  width:100%;
}
.wls-exp-carousel__title {
  font-size:var(--wls-carousel-title-size,32px);
  line-height:1.15;
}
.wls-exp-carousel__subtitle {
  font-size:var(--wls-carousel-subtitle-size,17px);
  line-height:1.5;
  max-width:820px;
}

.wls-exp-carousel.is-heading-left .wls-exp-carousel__heading,
.wls-exp-carousel.is-heading-left .wls-exp-carousel__title,
.wls-exp-carousel.is-heading-left .wls-exp-carousel__subtitle { text-align:left; }
.wls-exp-carousel.is-heading-left .wls-exp-carousel__subtitle { margin-left:0; margin-right:auto; }

.wls-exp-carousel.is-heading-center .wls-exp-carousel__heading,
.wls-exp-carousel.is-heading-center .wls-exp-carousel__title,
.wls-exp-carousel.is-heading-center .wls-exp-carousel__subtitle { text-align:center; }
.wls-exp-carousel.is-heading-center .wls-exp-carousel__subtitle { margin-left:auto; margin-right:auto; }

.wls-exp-carousel.is-heading-right .wls-exp-carousel__heading,
.wls-exp-carousel.is-heading-right .wls-exp-carousel__title,
.wls-exp-carousel.is-heading-right .wls-exp-carousel__subtitle { text-align:right; }
.wls-exp-carousel.is-heading-right .wls-exp-carousel__subtitle { margin-left:auto; margin-right:0; }

.wls-exp-carousel.is-cta-left .wls-exp-carousel__footer { justify-content:flex-start; }
.wls-exp-carousel.is-cta-center .wls-exp-carousel__footer { justify-content:center; }
.wls-exp-carousel.is-cta-right .wls-exp-carousel__footer { justify-content:flex-end; }

/* Default: use the site's GeneratePress Accent color, with WLS blue fallback. */
.wls-exp-carousel.is-cta-style-accent .wls-exp-carousel__cta {
  background:var(--accent,#0787b5);
  border-color:var(--accent,#0787b5);
  color:#fff !important;
}
.wls-exp-carousel.is-cta-style-dark .wls-exp-carousel__cta {
  background:#171717;
  border-color:#171717;
  color:#fff !important;
}
.wls-exp-carousel.is-cta-style-outline .wls-exp-carousel__cta {
  background:transparent;
  border-color:var(--accent,#0787b5);
  color:var(--accent,#0787b5) !important;
}

.wls-exp-carousel__cta {
  gap:10px;
}
.wls-exp-carousel__cta-arrow {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:1px;
}

.wls-exp-carousel.is-cta-size-small .wls-exp-carousel__cta {
  min-height:38px;
  padding:9px 14px;
  font-size:13px;
}
.wls-exp-carousel.is-cta-size-medium .wls-exp-carousel__cta {
  min-height:44px;
  padding:11px 18px;
  font-size:14px;
}
.wls-exp-carousel.is-cta-size-large .wls-exp-carousel__cta {
  min-height:50px;
  padding:13px 22px;
  font-size:15px;
}

@media (hover:hover) and (pointer:fine) {
  .wls-exp-carousel.is-cta-style-accent .wls-exp-carousel__cta:hover,
  .wls-exp-carousel.is-cta-style-dark .wls-exp-carousel__cta:hover {
    filter:brightness(.93);
  }
  .wls-exp-carousel.is-cta-style-outline .wls-exp-carousel__cta:hover {
    background:rgba(7,135,181,.07);
  }
}

@media (max-width:600px) {
  .wls-exp-carousel__title {
    font-size:var(--wls-carousel-title-size-mobile,24px);
  }
  .wls-exp-carousel__subtitle {
    font-size:var(--wls-carousel-subtitle-size-mobile,15px);
  }
  .wls-exp-carousel.is-cta-left .wls-exp-carousel__footer { justify-content:flex-start; }
  .wls-exp-carousel.is-cta-center .wls-exp-carousel__footer { justify-content:center; }
  .wls-exp-carousel.is-cta-right .wls-exp-carousel__footer { justify-content:flex-end; }
}

/* ==================================================
   v1.5.1 - Gallery UX fixes
================================================== */

/* Touch/click reliability on all gallery media. */
.wls-exp-gallery__media {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Lightbox controls: SVG icons are perfectly centered. */
.wls-exp-gallery__close,
.wls-exp-gallery__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 0;
  font-size: 0;
}
.wls-exp-gallery__close svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}
.wls-exp-gallery__nav svg {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
}

/* Use the available viewport without ever cropping the original media. */
.wls-exp-gallery__lightbox-shell {
  width: min(1400px, 100%);
  height: min(92vh, 960px);
  height: min(92dvh, 960px);
}
.wls-exp-gallery__lightbox-media {
  position: absolute;
  top: 58px;
  right: 70px;
  bottom: 16px;
  left: 70px;
  width: auto;
  height: auto;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  touch-action: pan-y;
}
.wls-exp-gallery__lightbox-media img,
.wls-exp-gallery__lightbox-media video {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
  object-position: center center;
  border-radius: 10px;
}
.wls-exp-gallery__lightbox-media video {
  background: #000;
}

/* Mobile: one hero + one true horizontal thumbnail rail. */
@media (max-width:699px) {
  .wls-exp-gallery__grid {
    display: block !important;
    width: 100%;
    min-width: 0;
  }

  .wls-exp-gallery__thumbs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 9px !important;
    padding: 0 0 5px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .wls-exp-gallery__thumbs::-webkit-scrollbar {
    display: none;
  }

  .wls-exp-gallery__thumb {
    display: block !important;
    flex: 0 0 31% !important;
    width: 31% !important;
    min-width: 98px !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: 11px !important;
    scroll-snap-align: start;
  }

  .wls-exp-gallery__thumb img,
  .wls-exp-gallery__thumb video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .wls-exp-gallery__lightbox {
    padding: 8px;
  }

  .wls-exp-gallery__lightbox-shell {
    width: 100%;
    height: calc(100vh - 16px);
    height: calc(100dvh - 16px);
  }

  .wls-exp-gallery__lightbox-topbar {
    min-height: 46px;
    padding: 0 2px;
  }

  .wls-exp-gallery__lightbox-media {
    top: 52px;
    right: 4px;
    bottom: 58px;
    left: 4px;
    width: auto;
    height: auto;
    margin: 0;
  }

  .wls-exp-gallery__lightbox-media img,
  .wls-exp-gallery__lightbox-media video {
    border-radius: 8px;
  }

  .wls-exp-gallery__nav {
    width: 44px;
    height: 44px;
    top: auto;
    bottom: 4px;
    margin: 0;
  }
  .wls-exp-gallery__nav--prev { left: calc(50% - 52px); }
  .wls-exp-gallery__nav--next { right: calc(50% - 52px); }
}

/* ==================================================
   v1.5.2 - Mobile gallery rebuilt as a native swipe carousel
================================================== */

/* Dedicated mobile rail is hidden on tablet/desktop. */
.wls-exp-gallery__mobile {
  display: none;
}

/* Anchor-based media keep the same visual behavior and provide a no-JS fallback. */
a.wls-exp-gallery__media,
a.wls-exp-gallery__mobile-slide {
  text-decoration: none !important;
  color: inherit;
}

@media (max-width: 699px) {
  /* On phones we use one purpose-built gallery, not a compressed desktop mosaic. */
  .wls-exp-gallery > .wls-exp-gallery__grid {
    display: none !important;
  }

  .wls-exp-gallery__mobile {
    position: relative;
    display: block !important;
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .wls-exp-gallery__mobile-track {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 8% 3px 0;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 0;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
  }

  .wls-exp-gallery__mobile-track::-webkit-scrollbar {
    display: none;
  }

  .wls-exp-gallery__mobile-slide {
    position: relative;
    display: block !important;
    flex: 0 0 92% !important;
    width: 92% !important;
    min-width: 0 !important;
    max-width: none !important;
    aspect-ratio: 3 / 2;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: #f1f3f4 !important;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    -webkit-tap-highlight-color: transparent;
    cursor: zoom-in;
  }

  .wls-exp-gallery:not(.has-lightbox) .wls-exp-gallery__mobile-slide {
    cursor: pointer;
  }

  .wls-exp-gallery__mobile-slide img,
  .wls-exp-gallery__mobile-slide video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: cover !important;
    object-position: center center;
    border-radius: 0 !important;
  }

  .wls-exp-gallery__mobile-slide .wls-exp-gallery__play {
    width: 58px;
    height: 58px;
  }

  /* Compact GetYourGuide-style position indicator. */
  .wls-exp-gallery__mobile-dots {
    position: absolute;
    z-index: 5;
    left: 46%;
    bottom: 12px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 22px;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 2px 10px rgba(0,0,0,.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    pointer-events: none;
  }

  .wls-exp-gallery__mobile-dot {
    display: block;
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 999px;
    background: rgba(23,23,23,.28);
    transition: width .18s ease, background-color .18s ease;
  }

  .wls-exp-gallery__mobile-dot.is-active {
    width: 22px;
    flex-basis: 22px;
    background: #171717;
  }

  /* True fullscreen lightbox on phones. Media always uses contain: never crop. */
  .wls-exp-gallery__lightbox {
    padding: 0 !important;
    background: #0b0d0f;
  }

  .wls-exp-gallery__lightbox-backdrop {
    background: #0b0d0f;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .wls-exp-gallery__lightbox-shell {
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
  }

  .wls-exp-gallery__lightbox-topbar {
    top: 0;
    min-height: 58px;
    padding: 7px 12px 0;
  }

  .wls-exp-gallery__counter {
    font-size: 13px;
  }

  .wls-exp-gallery__close {
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,.14);
  }

  .wls-exp-gallery__lightbox-media {
    position: absolute !important;
    inset: 58px 8px 58px 8px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    touch-action: pan-y pinch-zoom;
  }

  .wls-exp-gallery__lightbox-media img,
  .wls-exp-gallery__lightbox-media video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }

  .wls-exp-gallery__nav {
    width: 44px;
    height: 44px;
    top: auto !important;
    bottom: 7px !important;
    margin: 0 !important;
    background: rgba(255,255,255,.14);
  }

  .wls-exp-gallery__nav--prev {
    left: calc(50% - 52px) !important;
  }

  .wls-exp-gallery__nav--next {
    right: calc(50% - 52px) !important;
  }
}

@media (max-width: 359px) {
  .wls-exp-gallery__mobile-track {
    padding-right: 10%;
  }

  .wls-exp-gallery__mobile-slide {
    flex-basis: 90% !important;
    width: 90% !important;
  }

  .wls-exp-gallery__mobile-dots {
    gap: 4px;
    padding: 4px 7px;
  }

  .wls-exp-gallery__mobile-dot {
    width: 6px;
    height: 6px;
    flex-basis: 6px;
  }

  .wls-exp-gallery__mobile-dot.is-active {
    width: 18px;
    flex-basis: 18px;
  }
}

/* ==================================================
   v1.5.3 - hard mobile gallery reset
   Cache-busted asset + fixed-ratio native horizontal rail.
================================================== */
@media (max-width: 782px) {
  .wls-exp-gallery {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  .wls-exp-gallery > .wls-exp-gallery__grid {
    display: none !important;
  }

  .wls-exp-gallery__mobile {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
  }

  .wls-exp-gallery__mobile-track {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 88% !important;
    grid-template-columns: none !important;
    align-items: stretch !important;
    column-gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 10% 4px 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding: 0 !important;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
    touch-action: pan-x pan-y !important;
  }

  .wls-exp-gallery__mobile-track::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  .wls-exp-gallery__mobile-slide,
  .wls-exp-gallery__mobile-track > .wls-exp-gallery__mobile-slide {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: #f3f4f5 !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent;
    cursor: zoom-in;
  }

  .wls-exp-gallery__mobile-slide > img,
  .wls-exp-gallery__mobile-slide > picture,
  .wls-exp-gallery__mobile-slide > picture > img,
  .wls-exp-gallery__mobile-slide > video {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .wls-exp-gallery__mobile-dots {
    left: 44% !important;
    bottom: 12px !important;
  }

  /* Lightbox: show every image in full, irrespective of original orientation. */
  .wls-exp-gallery__lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #0b0d0f !important;
  }

  .wls-exp-gallery__lightbox-shell {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
  }

  .wls-exp-gallery__lightbox-media {
    position: absolute !important;
    inset: 58px 10px 62px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .wls-exp-gallery__lightbox-media img,
  .wls-exp-gallery__lightbox-media video {
    position: static !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
  }
}

/* ==================================================
   v1.6.0 - Experience hero / conversion header
================================================== */
.wls-exp-hero-summary {
  --wls-hero-accent: var(--accent, #0787b5);
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 326px);
  gap: 18px;
  align-items: start;
  margin: 22px 0 34px;
  font-family: var(--gp-font--mona-sans), "Mona Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #171717;
}

.wls-exp-hero-summary *,
.wls-exp-hero-summary *::before,
.wls-exp-hero-summary *::after {
  box-sizing: border-box;
}

.wls-exp-hero-summary__main {
  min-width: 0;
}

.wls-exp-hero-summary__location {
  margin: 0 0 8px;
  color: #5d6369;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .01em;
}

.wls-exp-hero-summary__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}
.wls-exp-hero-summary__category { font-weight: 720; }
.wls-exp-hero-summary__meta-separator { color: #9aa2a7; font-weight: 700; }

.wls-exp-hero-summary__title {
  margin: 0;
  max-width: none;
  color: #111418;
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.06;
  font-weight: 780;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.wls-exp-hero-summary__rating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 13px;
  color: #454b50;
  font-size: 14px;
  line-height: 1.3;
}

.wls-exp-hero-summary__rating .wls-exp-card__google {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
}

.wls-exp-hero-summary__rating strong {
  color: #16191c;
  font-size: 15px;
  font-weight: 750;
}

.wls-exp-hero-summary__intro {
  max-width: none;
  margin: 17px 0 0;
  color: #454b50;
  font-size: 16px;
  line-height: 1.55;
}

.wls-exp-hero-summary__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
  color: #52585e;
  font-size: 13.5px;
  line-height: 1.35;
}

.wls-exp-hero-summary__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.wls-exp-hero-summary__meta-item .wls-exp-card__meta-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.wls-exp-hero-summary__meta-sep {
  color: #b4b9bd;
}

.wls-exp-hero-summary__trust {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.wls-exp-hero-summary__tested,
.wls-exp-hero-summary__cancel {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
}

.wls-exp-hero-summary__tested {
  background: #171717;
  color: #fff;
}

.wls-exp-hero-summary__tested-check {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  color: #171717;
  font-size: 10px;
  line-height: 1;
}

.wls-exp-hero-summary__cancel {
  background: #edf8ef;
  color: #166d2b;
}

.wls-exp-booking-card {
  position: sticky;
  top: 90px;
  width: 100%;
  padding: 22px;
  border: 1px solid #e2e4e7;
  border-top: 3px solid var(--wls-hero-accent);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(17, 24, 39, .09);
}

.wls-exp-booking-card__price-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.wls-exp-booking-card__original {
  margin-bottom: 3px;
  color: #777f86;
  font-size: 13px;
  line-height: 1.2;
  text-decoration: line-through;
}

.wls-exp-booking-card__price {
  display: flex;
  align-items: baseline;
  gap: 5px;
  color: #2f353a;
  font-size: 14px;
}

.wls-exp-booking-card__price strong {
  color: #111418;
  font-size: 30px;
  line-height: 1;
  font-weight: 820;
  letter-spacing: -.04em;
}

.wls-exp-booking-card__suffix {
  margin-top: 4px;
  color: #596067;
  font-size: 12.5px;
}

.wls-exp-booking-card__mini-trust {
  display: inline-flex;
  align-items: center;
  padding: 6px 8px;
  border-radius: 8px;
  background: #edf8ef;
  color: #166d2b;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 700;
  text-align: right;
}

.wls-exp-booking-card__payment {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 18px;
  padding: 11px 12px;
  border-radius: 10px;
  background: #f4f8fb;
  color: #3f4c58;
  font-size: 12px;
  line-height: 1.35;
}

.wls-exp-booking-card__payment strong {
  color: #1f2a33;
  font-size: 12.5px;
}

.wls-exp-booking-card__cta {
  width: 100%;
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
  padding: 13px 18px;
  border: 1px solid var(--wls-hero-accent);
  border-radius: 999px;
  background: var(--wls-hero-accent);
  color: #fff !important;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 760;
  line-height: 1;
  box-shadow: 0 7px 18px rgba(0, 0, 0, .08);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.wls-exp-booking-card__cta span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .18s ease;
}

.wls-exp-booking-card__note {
  margin: 11px 0 0;
  color: #6a7177;
  font-size: 11.5px;
  line-height: 1.4;
  text-align: center;
}

@media (hover: hover) and (pointer: fine) {
  .wls-exp-booking-card__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .13);
    filter: brightness(.97);
  }
  .wls-exp-booking-card__cta:hover span {
    transform: translateX(3px);
  }
}

.wls-exp-mobile-booking {
  display: none;
}

@media (max-width: 900px) {
  .wls-exp-hero-summary {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    margin: 18px 0 28px;
  }

  .wls-exp-booking-card {
    position: static;
    top: auto;
  }
}

@media (max-width: 600px) {
  .wls-exp-hero-summary {
    gap: 18px;
    margin-top: 15px;
  }

  .wls-exp-hero-summary__location {
    margin-bottom: 6px;
    font-size: 12px;
  }

  .wls-exp-hero-summary__title {
    font-size: clamp(26px, 8vw, 34px);
    line-height: 1.08;
    letter-spacing: -.035em;
  }

  .wls-exp-hero-summary__rating {
    margin-top: 11px;
    gap: 6px;
    font-size: 13px;
  }

  .wls-exp-hero-summary__rating strong {
    font-size: 14px;
  }

  .wls-exp-hero-summary__intro {
    margin-top: 14px;
    font-size: 14.5px;
    line-height: 1.5;
  }

  .wls-exp-hero-summary__meta {
    gap: 6px;
    margin-top: 14px;
    font-size: 12.5px;
  }

  .wls-exp-hero-summary__meta-item {
    gap: 5px;
  }

  .wls-exp-hero-summary__trust {
    gap: 6px;
    margin-top: 14px;
  }

  .wls-exp-hero-summary__tested,
  .wls-exp-hero-summary__cancel {
    min-height: 30px;
    padding: 6px 9px;
    font-size: 11px;
  }

  .wls-exp-booking-card {
    padding: 17px;
    border-radius: 16px;
    box-shadow: 0 7px 22px rgba(17, 24, 39, .08);
  }

  .wls-exp-booking-card__price strong {
    font-size: 26px;
  }

  .wls-exp-booking-card__mini-trust {
    max-width: 132px;
    white-space: normal;
  }

  .wls-exp-booking-card__payment {
    margin-top: 14px;
  }

  .wls-exp-booking-card__cta {
    min-height: 48px;
    margin-top: 14px;
    font-size: 14px;
  }

  .wls-exp-hero-summary.has-mobile-sticky {
    padding-bottom: 76px;
  }

  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    position: fixed;
    z-index: 99990;
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    bottom: max(10px, env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 10px 10px 13px;
    border: 1px solid #e1e4e7;
    border-radius: 17px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 12px 36px rgba(0,0,0,.18);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .wls-exp-mobile-booking__price {
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    column-gap: 4px;
    color: #4d555c;
    font-size: 11px;
    line-height: 1;
  }

  .wls-exp-mobile-booking__price strong {
    color: #111418;
    font-size: 22px;
    font-weight: 820;
  }

  .wls-exp-mobile-booking__price small {
    grid-column: 1 / -1;
    margin-top: 3px;
    font-size: 10px;
    color: #596067;
  }

  .wls-exp-mobile-booking > a {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border-radius: 999px;
    background: var(--wls-hero-accent);
    color: #fff !important;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 750;
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wls-exp-booking-card__cta,
  .wls-exp-booking-card__cta span {
    transition: none !important;
  }
}


/* ==================================================
   v1.6.1 - Experience hero refinement
   More premium desktop balance + more compact mobile booking
================================================== */
@media (min-width: 901px) {
  .wls-exp-hero-summary {
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 46px;
    margin: 28px 0 42px;
  }

  .wls-exp-hero-summary__main {
    padding-top: 2px;
  }

  .wls-exp-hero-summary__location {
    margin-bottom: 9px;
    font-size: 13px;
    color: #656b70;
  }

  .wls-exp-hero-summary__title {
    max-width: 780px;
    font-size: clamp(32px, 2.65vw, 42px);
    line-height: 1.075;
    letter-spacing: -.038em;
  }

  .wls-exp-hero-summary__rating {
    margin-top: 14px;
  }

  .wls-exp-hero-summary__intro {
    max-width: 760px;
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.6;
  }

  .wls-exp-hero-summary__meta {
    margin-top: 19px;
    font-size: 13.5px;
  }

  .wls-exp-hero-summary__trust {
    margin-top: 19px;
  }

  .wls-exp-booking-card {
    top: 96px;
    padding: 24px;
    border: 1px solid #e6e9ec;
    border-top: 3px solid var(--wls-hero-accent);
    border-radius: 22px;
    box-shadow: 0 14px 38px rgba(17, 24, 39, .085);
    overflow: hidden;
  }

  .wls-exp-booking-card__price-row {
    align-items: center;
  }

  .wls-exp-booking-card__original {
    font-size: 13px;
  }

  .wls-exp-booking-card__price {
    margin-top: 1px;
    font-size: 14px;
  }

  .wls-exp-booking-card__price strong {
    font-size: 34px;
  }

  .wls-exp-booking-card__suffix {
    margin-top: 5px;
    font-size: 12.5px;
  }

  .wls-exp-booking-card__mini-trust {
    padding: 6px 9px;
    font-size: 11px;
  }

  .wls-exp-booking-card__payment {
    margin-top: 19px;
    padding: 12px 13px;
    border: 1px solid #edf0f2;
    background: #f6f8fa;
  }

  .wls-exp-booking-card__cta {
    min-height: 52px;
    margin-top: 15px;
    font-size: 15px;
  }
}

@media (max-width: 600px) {
  .wls-exp-hero-summary {
    gap: 16px;
    margin: 17px 0 28px;
  }

  .wls-exp-hero-summary__location {
    margin-bottom: 7px;
    font-size: 12.5px;
  }

  .wls-exp-hero-summary__title {
    font-size: clamp(27px, 7.8vw, 32px);
    line-height: 1.09;
    letter-spacing: -.034em;
  }

  .wls-exp-hero-summary__rating {
    margin-top: 12px;
  }

  .wls-exp-hero-summary__intro {
    margin-top: 15px;
    font-size: 15px;
    line-height: 1.55;
  }

  .wls-exp-hero-summary__meta {
    margin-top: 15px;
    font-size: 12.75px;
  }

  .wls-exp-hero-summary__trust {
    margin-top: 15px;
  }

  .wls-exp-booking-card {
    display: flex;
    flex-direction: column;
    padding: 16px;
    border: 1px solid #e6e9ec;
    border-top: 3px solid var(--wls-hero-accent);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(17, 24, 39, .075);
  }

  .wls-exp-booking-card__price-row {
    order: 1;
    align-items: center;
  }

  .wls-exp-booking-card__price strong {
    font-size: 30px;
  }

  .wls-exp-booking-card__suffix {
    font-size: 12px;
  }

  .wls-exp-booking-card__mini-trust {
    display: none;
  }

  .wls-exp-booking-card__cta {
    order: 2;
    min-height: 50px;
    margin-top: 14px;
    font-size: 14px;
    box-shadow: none;
  }

  .wls-exp-booking-card__payment {
    order: 3;
    gap: 2px;
    margin-top: 11px;
    padding: 10px 0 0;
    border: 0;
    border-top: 1px solid #edf0f2;
    border-radius: 0;
    background: transparent;
    font-size: 11.5px;
  }

  .wls-exp-booking-card__payment strong {
    font-size: 12px;
  }

  .wls-exp-booking-card__note {
    order: 4;
    margin-top: 9px;
  }
}

/* ==========================================================
   v1.7.0 — Editorial experience sections / WLS design system
   ========================================================== */

.wls-exp-content-section {
  --wls-section-accent: var(--accent, #0787b5);
  --wls-section-text: #171717;
  --wls-section-muted: #64676b;
  --wls-section-border: #e8eaec;
  --wls-section-radius: 20px;
  width: 100%;
  margin: 56px 0;
  color: var(--wls-section-text);
  font-family: inherit;
}

.wls-exp-content-section *,
.wls-exp-content-section *::before,
.wls-exp-content-section *::after { box-sizing: border-box; }

.wls-exp-section-head {
  max-width: 760px;
  margin: 0 0 24px;
}

.wls-exp-section-kicker {
  display: inline-flex;
  align-items: center;
  margin-bottom: 8px;
  color: var(--wls-section-accent);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.wls-exp-section-head h2 {
  margin: 0;
  color: var(--wls-section-text);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -.035em;
}

.wls-exp-section-head p {
  margin: 11px 0 0;
  color: var(--wls-section-muted);
  font-size: 16px;
  line-height: 1.55;
}

/* WHY CHOOSE */
.wls-exp-highlights__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.wls-exp-highlight-card {
  position: relative;
  min-height: 150px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 20px;
  border: 1px solid var(--wls-section-border);
  border-radius: var(--wls-section-radius);
  background: linear-gradient(145deg, #fff 0%, #fbfcfc 100%);
  box-shadow: 0 8px 24px rgba(16, 31, 43, .045);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.wls-exp-highlight-card::after {
  content: "";
  position: absolute;
  inset: auto -32px -42px auto;
  width: 100px;
  height: 100px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--wls-section-accent) 8%, transparent);
  pointer-events: none;
}

.wls-exp-highlight-card__icon {
  position: relative;
  z-index: 1;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: color-mix(in srgb, var(--wls-section-accent) 10%, #fff);
  color: var(--wls-section-accent);
}

.wls-exp-highlight-card__icon svg { width: 20px; height: 20px; }
.wls-exp-highlight-card h3 { margin: 2px 0 0; font-size: 16px; line-height: 1.25; font-weight: 750; letter-spacing: -.015em; }
.wls-exp-highlight-card p { margin: 7px 0 0; color: var(--wls-section-muted); font-size: 13.5px; line-height: 1.45; }

@media (hover:hover) and (pointer:fine) {
  .wls-exp-highlight-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--wls-section-accent) 22%, var(--wls-section-border));
    box-shadow: 0 14px 32px rgba(16, 31, 43, .08);
  }
}

/* ITINERARY */
.wls-exp-itinerary__track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.wls-exp-itinerary-card {
  min-width: 0;
  border: 1px solid var(--wls-section-border);
  border-radius: var(--wls-section-radius);
  background: #fff;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(16, 31, 43, .05);
  transition: transform .22s ease, box-shadow .22s ease;
}

.wls-exp-itinerary-card__image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f3f4f4;
}

.wls-exp-itinerary-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .4s ease;
}

.wls-exp-itinerary-card__body { padding: 17px 18px 19px; }
.wls-exp-itinerary-card__topline { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.wls-exp-itinerary-card__number {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:28px;
  padding:0 8px;
  border-radius:999px;
  background:var(--wls-section-text);
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:800;
  letter-spacing:.04em;
}
.wls-exp-itinerary-card__meta { color:var(--wls-section-accent); font-size:11.5px; line-height:1.2; font-weight:700; text-align:right; }
.wls-exp-itinerary-card h3 { margin:0; font-size:18px; line-height:1.18; font-weight:800; letter-spacing:-.025em; }
.wls-exp-itinerary-card p { margin:8px 0 0; color:var(--wls-section-muted); font-size:13.5px; line-height:1.5; }

@media (hover:hover) and (pointer:fine) {
  .wls-exp-itinerary-card:hover { transform: translateY(-4px); box-shadow:0 15px 34px rgba(16,31,43,.09); }
  .wls-exp-itinerary-card:hover .wls-exp-itinerary-card__image img { transform: scale(1.035); }
}

/* INCLUDED / NOT INCLUDED */
.wls-exp-inclusions__grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.wls-exp-inclusions__grid.is-single { grid-template-columns:minmax(0, 1fr); max-width:760px; }
.wls-exp-inclusion-panel {
  padding:24px;
  border-radius:var(--wls-section-radius);
  border:1px solid transparent;
}
.wls-exp-inclusion-panel.is-included { background:#f0f8f2; border-color:#dceee1; }
.wls-exp-inclusion-panel.is-excluded { background:#fbf3ef; border-color:#f1e2da; }
.wls-exp-inclusion-panel__title {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:16px;
  font-size:17px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:-.02em;
}
.wls-exp-inclusion-panel__title span {
  width:26px;
  height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#fff;
  font-weight:900;
}
.wls-exp-inclusion-panel.is-included .wls-exp-inclusion-panel__title { color:#17692c; }
.wls-exp-inclusion-panel.is-excluded .wls-exp-inclusion-panel__title { color:#8a4738; }
.wls-exp-inclusion-panel ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.wls-exp-inclusion-panel li { position:relative; padding-left:18px; color:#363a3e; font-size:14px; line-height:1.45; }
.wls-exp-inclusion-panel.is-included li::before,
.wls-exp-inclusion-panel.is-excluded li::before { position:absolute; left:0; top:0; font-weight:800; }
.wls-exp-inclusion-panel.is-included li::before { content:"✓"; color:#258a41; }
.wls-exp-inclusion-panel.is-excluded li::before { content:"–"; color:#aa6656; }

@media (max-width: 900px) {
  .wls-exp-highlights__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .wls-exp-itinerary__track { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 600px) {
  .wls-exp-content-section { margin: 40px 0; }
  .wls-exp-section-head { margin-bottom:18px; padding:0 1px; }
  .wls-exp-section-kicker { margin-bottom:7px; font-size:10px; }
  .wls-exp-section-head h2 { font-size:26px; line-height:1.08; }
  .wls-exp-section-head p { margin-top:9px; font-size:14px; }

  .wls-exp-highlights__grid { grid-template-columns:1fr; gap:9px; }
  .wls-exp-highlight-card { min-height:0; padding:16px; border-radius:16px; }
  .wls-exp-highlight-card__icon { width:32px; height:32px; flex-basis:32px; border-radius:10px; }
  .wls-exp-highlight-card h3 { font-size:15px; }
  .wls-exp-highlight-card p { font-size:13px; }

  .wls-exp-itinerary__track {
    display:flex;
    gap:11px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    padding:2px 12vw 12px 1px;
    margin-right:-16px;
  }
  .wls-exp-itinerary__track::-webkit-scrollbar { display:none; }
  .wls-exp-itinerary-card {
    flex:0 0 82%;
    scroll-snap-align:start;
    border-radius:17px;
  }
  .wls-exp-itinerary-card__body { padding:15px 16px 17px; }
  .wls-exp-itinerary-card h3 { font-size:17px; }
  .wls-exp-itinerary-card p { font-size:13px; }

  .wls-exp-inclusions__grid,
  .wls-exp-inclusions__grid.is-single { grid-template-columns:1fr; gap:10px; max-width:none; }
  .wls-exp-inclusion-panel { padding:18px; border-radius:16px; }
  .wls-exp-inclusion-panel__title { margin-bottom:13px; font-size:16px; }
  .wls-exp-inclusion-panel li { font-size:13.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .wls-exp-highlight-card,
  .wls-exp-itinerary-card,
  .wls-exp-itinerary-card__image img { transition:none !important; }
}

/* ==================================================
   v1.8.0 - Unified Experience Page
================================================== */
.wls-exp-page{
  width:100%;
  min-width:0;
}
.wls-exp-page > .wls-exp-gallery{
  margin-bottom:18px;
}
.wls-exp-page > .wls-exp-hero-summary{
  margin-bottom:52px;
}
.wls-exp-page > .wls-exp-content-section{
  scroll-margin-top:96px;
}
@media (max-width:782px){
  .wls-exp-page > .wls-exp-gallery{margin-bottom:26px}
  .wls-exp-page > .wls-exp-hero-summary{margin-bottom:42px}
}


/* ==================================================
   v1.9.0 — Experience page refinement
================================================== */
.wls-exp-section-head--compact{max-width:860px}

/* Timeline itinerary: compact, readable, no images. */
.wls-exp-itinerary__track,
.wls-exp-itinerary-card{display:none !important}
.wls-exp-itinerary__timeline{
  position:relative;
  display:grid;
  gap:0;
  max-width:920px;
}
.wls-exp-itinerary-step{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:16px;
  min-width:0;
}
.wls-exp-itinerary-step__rail{position:relative;display:flex;justify-content:center}
.wls-exp-itinerary-step__rail::after{
  content:"";
  position:absolute;
  top:36px;
  bottom:-2px;
  width:2px;
  background:#dfe3e6;
}
.wls-exp-itinerary-step:last-child .wls-exp-itinerary-step__rail::after{display:none}
.wls-exp-itinerary-step__dot{
  position:relative;z-index:1;
  width:34px;height:34px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  background:#171717;color:#fff;
  font-size:13px;line-height:1;font-weight:800;
  box-shadow:0 0 0 6px #fff;
}
.wls-exp-itinerary-step__content{
  padding:3px 0 28px;
  min-width:0;
}
.wls-exp-itinerary-step__heading{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
}
.wls-exp-itinerary-step__heading h3{
  margin:0;color:#171717;font-size:18px;line-height:1.25;font-weight:800;letter-spacing:-.02em;
}
.wls-exp-itinerary-step__heading span{
  flex:0 0 auto;color:var(--wls-section-accent);font-size:12px;line-height:1.3;font-weight:700;
}
.wls-exp-itinerary-step__content p{
  margin:8px 0 0;color:#555b61;font-size:14px;line-height:1.55;
}
.wls-exp-itinerary__note{
  max-width:920px;margin:3px 0 0 64px;padding:11px 13px;
  border-radius:12px;background:#f6f8f9;color:#687078;font-size:12.5px;line-height:1.45;
}

/* WLS trust panel */
.wls-exp-why-wls__panel{
  display:grid;grid-template-columns:minmax(210px,.8fr) minmax(0,2fr);gap:34px;
  padding:30px 32px;border-radius:22px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#0787b5) 12%,#fff) 0%,#f8fbfc 100%);
  border:1px solid color-mix(in srgb,var(--accent,#0787b5) 18%,#e7ecef);
}
.wls-exp-why-wls__title-wrap h2{
  margin:0;font-size:clamp(27px,2.7vw,38px);line-height:1.05;font-weight:820;letter-spacing:-.035em;
}
.wls-exp-why-wls__items{display:grid;gap:18px}
.wls-exp-why-wls__item{display:grid;grid-template-columns:40px minmax(0,1fr);gap:13px;align-items:start}
.wls-exp-why-wls__icon{
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;
  background:#fff;color:var(--accent,#0787b5);box-shadow:0 5px 16px rgba(16,31,43,.07)
}
.wls-exp-why-wls__icon svg{width:22px;height:22px}
.wls-exp-why-wls__item h3{margin:1px 0 0;font-size:17px;line-height:1.22;font-weight:800}
.wls-exp-why-wls__item p{margin:5px 0 0;color:#596068;font-size:13.5px;line-height:1.48}

/* How it works */
.wls-exp-how__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;counter-reset:wls-how}
.wls-exp-how__step{position:relative;padding:4px 22px 4px 0;min-width:0}
.wls-exp-how__step:not(:last-child)::after{
  content:"";position:absolute;right:0;top:8px;bottom:8px;width:1px;background:#e2e6e8;
}
.wls-exp-how__number{
  width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:13px;border:1.5px solid #171717;border-radius:999px;color:#171717;font-size:12px;font-weight:800;
}
.wls-exp-how__step h3{margin:0;font-size:17px;line-height:1.25;font-weight:800}
.wls-exp-how__step p{margin:7px 0 0;color:#5e646a;font-size:13.5px;line-height:1.5}

/* Booking, cancellation and weather */
.wls-exp-policies__hero{
  display:flex;align-items:center;gap:14px;padding:18px 20px;margin-bottom:14px;
  border-radius:18px;background:#daf5e6;border:1px solid #c7ecd8;color:#153f2a;
  box-shadow:inset 0 -4px 0 rgba(44,158,96,.16)
}
.wls-exp-policies__hero-icon{
  width:38px;height:38px;flex:0 0 38px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;background:#fff;color:#168047;font-weight:900;box-shadow:0 3px 10px rgba(0,0,0,.06)
}
.wls-exp-policies__hero strong{font-size:18px;line-height:1.25;font-weight:820}
.wls-exp-policies__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.wls-exp-policy-card{padding:18px;border-radius:17px;border:1px solid #e7e9eb;min-width:0}
.wls-exp-policy-card.is-payment{background:#f5f2ff;border-color:#e5defa}
.wls-exp-policy-card.is-weather{background:#fff7ee;border-color:#f3e4d4}
.wls-exp-policy-card.is-support{background:#eef7fb;border-color:#dcecf4}
.wls-exp-policy-card__eyebrow{display:block;margin-bottom:7px;font-size:9.5px;line-height:1;font-weight:850;letter-spacing:.08em;color:#62676c}
.wls-exp-policy-card h3{margin:0;font-size:15px;line-height:1.25;font-weight:800}
.wls-exp-policy-card p{margin:7px 0 0;color:#5d6369;font-size:12.8px;line-height:1.5}

@media (max-width:900px){
  .wls-exp-why-wls__panel{grid-template-columns:1fr;gap:22px}
  .wls-exp-policies__grid{grid-template-columns:1fr 1fr}
  .wls-exp-policy-card:last-child{grid-column:1/-1}
}
@media (max-width:600px){
  .wls-exp-itinerary-step{grid-template-columns:40px minmax(0,1fr);gap:11px}
  .wls-exp-itinerary-step__dot{width:30px;height:30px;font-size:12px;box-shadow:0 0 0 5px #fff}
  .wls-exp-itinerary-step__rail::after{top:32px}
  .wls-exp-itinerary-step__content{padding-bottom:23px}
  .wls-exp-itinerary-step__heading{display:block}
  .wls-exp-itinerary-step__heading h3{font-size:16px}
  .wls-exp-itinerary-step__heading span{display:block;margin-top:4px;font-size:11.5px}
  .wls-exp-itinerary-step__content p{font-size:13px;line-height:1.5}
  .wls-exp-itinerary__note{margin-left:51px;font-size:11.5px}

  .wls-exp-why-wls__panel{padding:21px 18px;border-radius:18px}
  .wls-exp-why-wls__title-wrap h2{font-size:25px}
  .wls-exp-why-wls__items{gap:15px}
  .wls-exp-why-wls__item{grid-template-columns:36px minmax(0,1fr);gap:11px}
  .wls-exp-why-wls__icon{width:36px;height:36px;border-radius:11px}
  .wls-exp-why-wls__item h3{font-size:15.5px}
  .wls-exp-why-wls__item p{font-size:12.8px}

  .wls-exp-how__steps{grid-template-columns:1fr;gap:0}
  .wls-exp-how__step{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:12px;padding:0 0 20px}
  .wls-exp-how__step:not(:last-child)::after{left:13px;right:auto;top:31px;bottom:0;width:1px}
  .wls-exp-how__number{grid-row:1/3;margin:0;width:28px;height:28px}
  .wls-exp-how__step h3{font-size:15.5px}
  .wls-exp-how__step p{font-size:12.8px}

  .wls-exp-policies__hero{padding:15px 16px;border-radius:16px}
  .wls-exp-policies__hero strong{font-size:15.5px}
  .wls-exp-policies__grid{grid-template-columns:1fr;gap:9px}
  .wls-exp-policy-card:last-child{grid-column:auto}
  .wls-exp-policy-card{padding:15px;border-radius:15px}
}

/* ==================================================
   v1.9.1 — Persistent booking rail + unified content column
   The gallery stays full-width. Everything below it lives in a
   two-column experience shell on desktop: content + sticky booking.
================================================== */
.wls-exp-page {
  --wls-page-sidebar: 340px;
  --wls-page-gap: 32px;
  --wls-page-sticky-top: 96px;
}

.wls-exp-page__gallery {
  width: 100%;
  min-width: 0;
  margin-bottom: 20px;
}

.wls-exp-page__layout {
  width: 100%;
  min-width: 0;
}

.wls-exp-page__main,
.wls-exp-page__sidebar {
  min-width: 0;
}

@media (min-width: 1024px) {
  .wls-exp-page__layout.has-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--wls-page-sidebar);
    column-gap: var(--wls-page-gap);
    align-items: start;
  }

  .wls-exp-page__main {
    grid-column: 1;
  }

  .wls-exp-page__sidebar {
    grid-column: 2;
    align-self: stretch;
    position: relative;
  }

  .wls-exp-page__sidebar > .wls-exp-booking-card {
    position: sticky;
    top: var(--wls-page-sticky-top);
    width: 100%;
    z-index: 8;
  }

  /* The page has one persistent desktop booking card in the right rail. */
  .wls-exp-page__main > .wls-exp-hero-summary {
    display: block;
    width: 100%;
    margin: 0 0 44px;
  }

  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    display: none !important;
  }

  /* Main-column content should use all the available space up to the rail. */
  .wls-exp-page__main .wls-exp-hero-summary__main,
  .wls-exp-page__main .wls-exp-hero-summary__title,
  .wls-exp-page__main .wls-exp-hero-summary__intro,
  .wls-exp-page__main .wls-exp-content-section,
  .wls-exp-page__main .wls-exp-section-head,
  .wls-exp-page__main .wls-exp-section-head--compact,
  .wls-exp-page__main .wls-exp-itinerary__timeline,
  .wls-exp-page__main .wls-exp-itinerary__note {
    max-width: none;
  }

  .wls-exp-page__main .wls-exp-content-section {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  /* Four tiny highlight cards become a cleaner 2×2 grid in the content rail. */
  .wls-exp-page__main .wls-exp-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Tablet and mobile keep the booking box inline, directly after the intro. */
@media (max-width: 1023px) {
  .wls-exp-page__layout,
  .wls-exp-page__layout.has-sidebar {
    display: block;
  }

  .wls-exp-page__sidebar {
    display: none;
  }

  .wls-exp-page__main > .wls-exp-hero-summary {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }

  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    display: block;
  }
}

@media (max-width: 600px) {
  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    display: flex;
    flex-direction: column;
  }
}

@media (max-width: 782px) {
  .wls-exp-page__gallery {
    margin-bottom: 26px;
  }
}

/* ==================================================
   v1.9.2 — Mobile gallery, expandable description,
   unified booking / cancellation / assistance section
================================================== */

/* Mobile gallery: more immersive, closer to a travel-app hero. */
@media (max-width: 782px) {
  .wls-exp-gallery__mobile-track {
    grid-auto-columns: 90% !important;
    padding-right: 8% !important;
  }

  .wls-exp-gallery__mobile-slide,
  .wls-exp-gallery__mobile-track > .wls-exp-gallery__mobile-slide {
    aspect-ratio: 1 / 1 !important;
  }
}

/* Full description with progressive disclosure. */
.wls-exp-description {
  position: relative;
  min-width: 0;
}

.wls-exp-description__body {
  position: relative;
  max-height: 180px;
  overflow: hidden;
  color: #4f555b;
  font-size: 15px;
  line-height: 1.68;
  transition: max-height .28s ease;
}

.wls-exp-description__body::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 64px;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 84%);
  transition: opacity .2s ease;
}

.wls-exp-description__body > :first-child { margin-top: 0; }
.wls-exp-description__body > :last-child { margin-bottom: 0; }
.wls-exp-description__body p { margin: 0 0 14px; }
.wls-exp-description__body ul,
.wls-exp-description__body ol { margin: 10px 0 16px 22px; }

.wls-exp-description.is-expanded .wls-exp-description__body {
  max-height: 5000px;
}

.wls-exp-description.is-expanded .wls-exp-description__body::after,
.wls-exp-description.is-short .wls-exp-description__body::after {
  opacity: 0;
}

.wls-exp-description__toggle {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 10px 0 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #171717;
  font: inherit;
  font-size: 13.5px;
  line-height: 1;
  font-weight: 750;
  cursor: pointer;
}

.wls-exp-description__toggle svg {
  width: 17px;
  height: 17px;
  transition: transform .2s ease;
}

.wls-exp-description.is-expanded .wls-exp-description__toggle svg {
  transform: rotate(180deg);
}

.wls-exp-description__toggle:hover { color: var(--accent, #0787b5); }
.wls-exp-description__toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0787b5) 65%, #fff);
  outline-offset: 4px;
  border-radius: 4px;
}

/* One conversion section instead of two visually disconnected modules. */
.wls-exp-booking-guide__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.wls-exp-booking-guide__card {
  position: relative;
  min-width: 0;
  padding: 21px 19px 20px;
  border: 1px solid #e7e9eb;
  border-radius: 18px;
  overflow: hidden;
}

.wls-exp-booking-guide__card.is-booking {
  background: #f4f1ff;
  border-color: #e5def9;
}

.wls-exp-booking-guide__card.is-cancellation {
  background: #fff5ec;
  border-color: #f2dfcf;
}

.wls-exp-booking-guide__card.is-support {
  background: #edf7fb;
  border-color: #d8ebf3;
}

.wls-exp-booking-guide__icon {
  width: 29px;
  height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 13px;
  border-radius: 999px;
  background: #fff;
  color: #171717;
  font-size: 12px;
  line-height: 1;
  font-weight: 850;
  box-shadow: 0 3px 10px rgba(15, 27, 36, .07);
}

.wls-exp-booking-guide__eyebrow {
  display: block;
  margin-bottom: 7px;
  color: #646a70;
  font-size: 9px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .075em;
}

.wls-exp-booking-guide__card h3 {
  margin: 0;
  color: #171717;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 820;
  letter-spacing: -.015em;
}

.wls-exp-booking-guide__card p {
  margin: 8px 0 0;
  color: #565d63;
  font-size: 12.8px;
  line-height: 1.55;
}

@media (max-width: 900px) {
  .wls-exp-booking-guide__grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

@media (max-width: 600px) {
  .wls-exp-description__body {
    max-height: 158px;
    font-size: 13.5px;
    line-height: 1.62;
  }

  .wls-exp-description__body::after { height: 54px; }
  .wls-exp-description__toggle { font-size: 13px; padding-top: 9px; }

  .wls-exp-booking-guide__card {
    padding: 17px 16px;
    border-radius: 16px;
  }

  .wls-exp-booking-guide__icon {
    width: 27px;
    height: 27px;
    margin-bottom: 11px;
  }

  .wls-exp-booking-guide__card h3 { font-size: 15.5px; }
  .wls-exp-booking-guide__card p { font-size: 12.7px; line-height: 1.5; }
}

@media (prefers-reduced-motion: reduce) {
  .wls-exp-description__body,
  .wls-exp-description__toggle svg {
    transition: none !important;
  }
}

/* ==================================================
   v1.9.3 — Quick highlights, full description source,
   meeting point and taller mobile gallery
================================================== */

/* Make the mobile gallery more immersive without changing desktop mosaic. */
@media (max-width: 782px) {
  .wls-exp-gallery__mobile-track {
    grid-auto-columns: 92% !important;
    padding-right: 6% !important;
  }

  .wls-exp-gallery__mobile-slide,
  .wls-exp-gallery__mobile-track > .wls-exp-gallery__mobile-slide {
    aspect-ratio: 6 / 7 !important;
  }
}

/* QUICK HIGHLIGHTS — immediately after the commercial hero. */
.wls-exp-quick-highlights {
  margin: 30px 0 46px;
  min-width: 0;
}

.wls-exp-quick-highlights__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
}

.wls-exp-quick-highlight {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 2px 0;
}

.wls-exp-quick-highlight__icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: #f1f4f6;
  color: #18334d;
}

.wls-exp-quick-highlight__icon svg {
  width: 22px;
  height: 22px;
}

.wls-exp-quick-highlight h3 {
  margin: 1px 0 0;
  color: #171717;
  font-size: 15.5px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: -.015em;
}

.wls-exp-quick-highlight p {
  margin: 4px 0 0;
  color: #687078;
  font-size: 12.8px;
  line-height: 1.45;
}

/* MEETING POINT */
.wls-exp-meeting__panel {
  padding: 18px;
  border: 1px solid #e2e6e9;
  border-radius: 20px;
  background: #fff;
}

.wls-exp-meeting__label {
  display: block;
  margin: 0 0 8px;
  color: #697178;
  font-size: 10px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.wls-exp-meeting__select-wrap {
  position: relative;
  margin-bottom: 12px;
}

.wls-exp-meeting__select {
  width: 100%;
  min-height: 46px;
  padding: 0 42px 0 14px;
  border: 1px solid #d8dde1;
  border-radius: 12px;
  background: #fff;
  color: #202326;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.wls-exp-meeting__select:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0787b5) 60%, #fff);
  outline-offset: 2px;
}

.wls-exp-meeting__card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background: #f7f8f8;
}

.wls-exp-meeting__pin {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: #fff;
  color: var(--accent, #0787b5);
  box-shadow: 0 3px 12px rgba(18, 34, 44, .06);
}

.wls-exp-meeting__pin svg {
  width: 22px;
  height: 22px;
}

.wls-exp-meeting__copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.wls-exp-meeting__copy strong {
  color: #202326;
  font-size: 14.5px;
  line-height: 1.25;
  font-weight: 800;
}

.wls-exp-meeting__copy span {
  color: #697178;
  font-size: 12.5px;
  line-height: 1.4;
}

.wls-exp-meeting__maps {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid color-mix(in srgb, var(--accent, #0787b5) 30%, #d8dde1);
  border-radius: 11px;
  background: color-mix(in srgb, var(--accent, #0787b5) 7%, #fff);
  color: var(--accent, #0787b5);
  text-decoration: none;
  font-size: 12px;
  line-height: 1.1;
  font-weight: 800;
  white-space: nowrap;
  transition: transform .18s ease, background-color .18s ease;
}

.wls-exp-meeting__maps.is-hidden { display: none; }

@media (hover:hover) and (pointer:fine) {
  .wls-exp-meeting__maps:hover {
    transform: translateY(-1px);
    background: color-mix(in srgb, var(--accent, #0787b5) 12%, #fff);
  }
}

.wls-exp-meeting__note {
  margin: 12px 2px 0;
  color: #7a8085;
  font-size: 11.5px;
  line-height: 1.45;
}

@media (max-width: 700px) {
  .wls-exp-quick-highlights {
    margin: 24px 0 38px;
  }

  .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 12px;
  }

  .wls-exp-quick-highlight {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
  }

  .wls-exp-quick-highlight__icon {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .wls-exp-quick-highlight__icon svg {
    width: 18px;
    height: 18px;
  }

  .wls-exp-quick-highlight h3 {
    font-size: 13.5px;
    line-height: 1.25;
  }

  .wls-exp-quick-highlight p {
    margin-top: 3px;
    font-size: 11.5px;
    line-height: 1.38;
  }

  .wls-exp-meeting__panel {
    padding: 14px;
    border-radius: 17px;
  }

  .wls-exp-meeting__card {
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 12px;
    gap: 10px;
  }

  .wls-exp-meeting__pin {
    width: 38px;
    height: 38px;
    border-radius: 11px;
  }

  .wls-exp-meeting__maps {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 2px;
  }
}

@media (max-width: 360px) {
  .wls-exp-quick-highlights__grid {
    grid-template-columns: 1fr;
  }
}

/* ==================================================
   v1.9.4 — cleaner highlights, compact conversion copy
================================================== */

/* QUICK HIGHLIGHTS
   No automatic icon column: editors can add an emoji directly to each title.
   This keeps the system flexible and avoids mismatched generic icons. */
.wls-exp-quick-highlights {
  margin: 26px 0 42px;
}

.wls-exp-quick-highlights__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  border-top: 1px solid #e9ecef;
  border-bottom: 1px solid #e9ecef;
}

.wls-exp-quick-highlight {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid #edf0f2;
}

.wls-exp-quick-highlight:nth-last-child(-n+2) {
  border-bottom-color: transparent;
}

.wls-exp-quick-highlight h3 {
  margin: 0;
  color: #171717;
  font-size: 15.5px;
  line-height: 1.28;
  font-weight: 800;
}

.wls-exp-quick-highlight p {
  margin: 4px 0 0;
  color: #4f565d;
  font-size: 12.9px;
  line-height: 1.45;
}

.wls-exp-quick-highlight__icon {
  display: none !important;
}

/* WHY THIS EXPERIENCE
   Compact editorial list instead of oversized cards. */
.wls-exp-highlights__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 26px;
  padding: 4px 20px;
  border: 1px solid #e8ecef;
  border-radius: 18px;
  background: #fbfcfc;
}

.wls-exp-highlight-card {
  min-height: 0;
  padding: 16px 0;
  gap: 10px;
  border: 0;
  border-bottom: 1px solid #e7ebed;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.wls-exp-highlight-card::after {
  display: none;
}

.wls-exp-highlight-card:nth-last-child(-n+2) {
  border-bottom-color: transparent;
}

.wls-exp-highlight-card__icon {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  margin-top: 1px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--wls-section-accent) 10%, #fff);
}

.wls-exp-highlight-card__icon svg {
  width: 15px;
  height: 15px;
}

.wls-exp-highlight-card h3 {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.3;
  font-weight: 800;
}

.wls-exp-highlight-card p {
  margin: 4px 0 0;
  color: #42494f;
  font-size: 13px;
  line-height: 1.48;
}

@media (hover:hover) and (pointer:fine) {
  .wls-exp-highlight-card:hover {
    transform: none;
    border-color: #e7ebed;
    box-shadow: none;
  }
}

/* WLS BENEFITS — slightly denser now that it sits higher in the page. */
.wls-exp-why-wls__panel {
  padding: 25px 28px;
  gap: 28px;
}

.wls-exp-why-wls__items {
  gap: 14px;
}

.wls-exp-why-wls__item {
  grid-template-columns: 34px minmax(0,1fr);
  gap: 11px;
}

.wls-exp-why-wls__icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.wls-exp-why-wls__icon svg {
  width: 18px;
  height: 18px;
}

.wls-exp-why-wls__item h3 {
  font-size: 16px;
}

.wls-exp-why-wls__item p {
  margin-top: 4px;
  color: #495158;
  font-size: 13px;
  line-height: 1.45;
}

/* BOOKING / CANCELLATION / SUPPORT — less vertical space, same clarity. */
.wls-exp-booking-guide__card {
  padding: 17px 17px 16px;
  border-radius: 16px;
}

.wls-exp-booking-guide__icon {
  width: 25px;
  height: 25px;
  margin-bottom: 9px;
  font-size: 11px;
}

.wls-exp-booking-guide__eyebrow {
  margin-bottom: 5px;
  font-size: 8.8px;
}

.wls-exp-booking-guide__card h3 {
  font-size: 15.5px;
}

.wls-exp-booking-guide__card p {
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.46;
}

@media (max-width: 782px) {
  .wls-exp-quick-highlights__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .wls-exp-quick-highlight,
  .wls-exp-quick-highlight:nth-last-child(-n+2) {
    padding: 12px 0;
    border-bottom: 1px solid #edf0f2;
  }

  .wls-exp-quick-highlight:last-child {
    border-bottom-color: transparent;
  }

  .wls-exp-highlights__grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 2px 16px;
  }

  .wls-exp-highlight-card,
  .wls-exp-highlight-card:nth-last-child(-n+2) {
    padding: 14px 0;
    border-bottom: 1px solid #e7ebed;
  }

  .wls-exp-highlight-card:last-child {
    border-bottom-color: transparent;
  }

  .wls-exp-why-wls__panel {
    padding: 20px 17px;
  }

  .wls-exp-booking-guide__card {
    padding: 15px 15px 14px;
  }
}

/* ==================================================
   v1.9.5 — warmer WLS palette, flexible highlights,
   compact experience benefits and practical info
================================================== */

/* INITIAL HIGHLIGHTS
   Flexible cards: no artificial item limit and no automatic icon.
   Editors can add an emoji directly in the title when useful. */
.wls-exp-quick-highlights {
  margin: 28px 0 44px;
}

.wls-exp-quick-highlights__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border: 0;
}

.wls-exp-quick-highlight,
.wls-exp-quick-highlight:nth-last-child(-n+2) {
  position: relative;
  min-width: 0;
  padding: 15px 16px 14px;
  border: 1px solid #dceff6;
  border-radius: 15px;
  background: linear-gradient(135deg, #f8fdff 0%, #eef9fd 100%);
  box-shadow: 0 5px 16px rgba(18, 72, 95, .045);
  overflow: hidden;
}

.wls-exp-quick-highlight::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: color-mix(in srgb, var(--accent, #0787b5) 66%, #7dd6ef);
  opacity: .9;
}

.wls-exp-quick-highlight:nth-child(3n+2) {
  border-color: #dcefe9;
  background: linear-gradient(135deg, #fbfffd 0%, #eefaf6 100%);
}

.wls-exp-quick-highlight:nth-child(3n+2)::before {
  background: #69c6aa;
}

.wls-exp-quick-highlight:nth-child(3n) {
  border-color: #f1e6cf;
  background: linear-gradient(135deg, #fffdf8 0%, #fff7e9 100%);
}

.wls-exp-quick-highlight:nth-child(3n)::before {
  background: #e9b75e;
}

.wls-exp-quick-highlight h3 {
  margin: 0;
  color: #132d3a;
  font-size: 15.5px;
  line-height: 1.28;
  font-weight: 800;
}

.wls-exp-quick-highlight p {
  margin: 5px 0 0;
  color: #405966;
  font-size: 12.9px;
  line-height: 1.46;
}

/* WHY CHOOSE THIS EXPERIENCE
   Soft sky progression: first card is light, later cards progressively stronger. */
.wls-exp-highlights__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.wls-exp-highlight-card,
.wls-exp-highlight-card:nth-last-child(-n+2) {
  min-height: 0;
  padding: 16px 17px;
  gap: 11px;
  border: 1px solid #dceff6;
  border-radius: 16px;
  background: linear-gradient(135deg, #f6fcff 0%, #edf9fd 100%);
  box-shadow: 0 5px 16px rgba(18, 72, 95, .04);
  overflow: hidden;
}

.wls-exp-highlight-card:nth-child(2) {
  border-color: #d3ecf5;
  background: linear-gradient(135deg, #eefaff 0%, #e2f5fb 100%);
}
.wls-exp-highlight-card:nth-child(3) {
  border-color: #cae7f2;
  background: linear-gradient(135deg, #e7f7fd 0%, #d7f0f9 100%);
}
.wls-exp-highlight-card:nth-child(4) {
  border-color: #c1e2ef;
  background: linear-gradient(135deg, #def3fb 0%, #cbeaf5 100%);
}
.wls-exp-highlight-card:nth-child(5) {
  border-color: #b7ddea;
  background: linear-gradient(135deg, #d5eff8 0%, #bee4f1 100%);
}
.wls-exp-highlight-card:nth-child(n+6) {
  border-color: #add7e6;
  background: linear-gradient(135deg, #ccebf6 0%, #b1deed 100%);
}

.wls-exp-highlight-card::after {
  display: none;
}

.wls-exp-highlight-card__icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  margin-top: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: #087da6;
  box-shadow: 0 2px 8px rgba(13, 91, 121, .06);
}

.wls-exp-highlight-card__icon svg {
  width: 16px;
  height: 16px;
}

.wls-exp-highlight-card h3 {
  margin: 1px 0 0;
  color: #11384a;
  font-size: 15.5px;
  line-height: 1.28;
  font-weight: 800;
}

.wls-exp-highlight-card p {
  margin: 5px 0 0;
  color: #315565;
  font-size: 13px;
  line-height: 1.46;
}

@media (hover:hover) and (pointer:fine) {
  .wls-exp-highlight-card:hover,
  .wls-exp-quick-highlight:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(18, 72, 95, .075);
  }
}

/* IMPORTANT / THINGS TO KNOW */
.wls-exp-important__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.wls-exp-important__item {
  position: relative;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 15px 16px;
  border: 1px solid #dcecf3;
  border-radius: 15px;
  background: #f7fcfe;
}

.wls-exp-important__item:nth-child(3n+2) {
  border-color: #dcefe8;
  background: #f5fcf9;
}

.wls-exp-important__item:nth-child(3n) {
  border-color: #efe5d3;
  background: #fffaf1;
}

.wls-exp-important__marker {
  width: 8px;
  height: 8px;
  margin-top: 6px;
  border-radius: 999px;
  background: var(--accent, #0787b5);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent, #0787b5) 10%, transparent);
}

.wls-exp-important__item:nth-child(3n+2) .wls-exp-important__marker { background: #4eb897; box-shadow: 0 0 0 4px rgba(78,184,151,.11); }
.wls-exp-important__item:nth-child(3n) .wls-exp-important__marker { background: #e5aa49; box-shadow: 0 0 0 4px rgba(229,170,73,.12); }

.wls-exp-important__item h3 {
  margin: 0;
  color: #1c303a;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
}

.wls-exp-important__item p {
  margin: 5px 0 0;
  color: #485d67;
  font-size: 12.9px;
  line-height: 1.48;
}

/* Itinerary disclaimer: lighter and less boxy. */
.wls-exp-itinerary__note {
  margin-top: 8px;
  background: #f2f9fc;
  color: #43606d;
  border: 1px solid #dceef5;
}

/* Slightly warmer WLS benefits panel, avoiding a generic grey surface. */
.wls-exp-why-wls__panel {
  background: linear-gradient(135deg, #f0fbff 0%, #f8fffc 52%, #fffaf1 100%);
  border-color: #d9edf3;
}

@media (max-width: 782px) {
  .wls-exp-quick-highlights__grid,
  .wls-exp-highlights__grid,
  .wls-exp-important__grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .wls-exp-quick-highlight,
  .wls-exp-quick-highlight:nth-last-child(-n+2) {
    padding: 13px 14px 12px;
    border-bottom: 1px solid #dceff6;
    border-radius: 14px;
  }

  .wls-exp-quick-highlight:last-child {
    border-bottom-color: #dceff6;
  }

  .wls-exp-highlight-card,
  .wls-exp-highlight-card:nth-last-child(-n+2) {
    padding: 14px 15px;
    border-bottom: 1px solid #dceff6;
    border-radius: 15px;
  }

  .wls-exp-highlight-card:last-child {
    border-bottom-color: #dceff6;
  }

  .wls-exp-important__item {
    padding: 13px 14px;
    border-radius: 14px;
  }
}

/* ==================================================
   v1.9.6 — calmer information palette + related experiences
================================================== */

/* Initial highlights: keep the card treatment, but use one calm neutral surface
   throughout the section so the page doesn't become visually noisy. */
.wls-exp-quick-highlight,
.wls-exp-quick-highlight:nth-child(3n+2),
.wls-exp-quick-highlight:nth-child(3n),
.wls-exp-quick-highlight:nth-last-child(-n+2) {
  border-color: #e4eaed;
  background: #f7f9fa;
  box-shadow: 0 4px 14px rgba(16, 40, 52, .035);
}

.wls-exp-quick-highlight::before,
.wls-exp-quick-highlight:nth-child(3n+2)::before,
.wls-exp-quick-highlight:nth-child(3n)::before {
  background: color-mix(in srgb, var(--accent, #0787b5) 62%, #9fc9d8);
  opacity: .78;
}

.wls-exp-quick-highlight h3 { color: #182b34; }
.wls-exp-quick-highlight p { color: #4f626b; }

/* Cose da sapere: list-like rows rather than another wall of cards. */
.wls-exp-important__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 26px;
  row-gap: 0;
  border-top: 1px solid #e7ecee;
}

.wls-exp-important__item,
.wls-exp-important__item:nth-child(3n+2),
.wls-exp-important__item:nth-child(3n) {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 15px 2px;
  border: 0;
  border-bottom: 1px solid #e7ecee;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.wls-exp-important__marker,
.wls-exp-important__item:nth-child(3n+2) .wls-exp-important__marker,
.wls-exp-important__item:nth-child(3n) .wls-exp-important__marker {
  width: 7px;
  height: 7px;
  margin-top: 7px;
  background: var(--accent, #0787b5);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent, #0787b5) 9%, transparent);
}

.wls-exp-important__item h3 { color: #1d3039; }
.wls-exp-important__item p { color: #52636b; }

/* Automatic related experiences sit after the two-column content/booking rail,
   so the four-card carousel can use the full page width. */
.wls-exp-page__related {
  width: 100%;
  min-width: 0;
  margin-top: 58px;
  padding-top: 42px;
  border-top: 1px solid #e8edef;
}

.wls-exp-related .wls-exp-carousel__header { margin-bottom: 20px; }
.wls-exp-related .wls-exp-carousel__title { letter-spacing: -.025em; }

@media (max-width: 782px) {
  .wls-exp-important__grid {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .wls-exp-important__item,
  .wls-exp-important__item:nth-child(3n+2),
  .wls-exp-important__item:nth-child(3n) {
    padding: 13px 1px;
  }

  .wls-exp-page__related {
    margin-top: 42px;
    padding-top: 30px;
  }
}

@media (min-width: 1024px) {
  .wls-exp-related.has-1-items .wls-exp-carousel__track > .wls-exp-card { flex-basis: min(330px, 100%); }
  .wls-exp-related.has-2-items .wls-exp-carousel__track > .wls-exp-card { flex-basis: calc((100% - 18px)/2); }
  .wls-exp-related.has-3-items .wls-exp-carousel__track > .wls-exp-card { flex-basis: calc((100% - 36px)/3); }
}

/* ==================================================
   v1.10.0 — editorial rhythm, trust and conversion
   Fewer repeated cards, stronger WLS identity, reviews + FAQ.
================================================== */

/* Keep the fast-scanning highlights as the only dense card grid near the top. */
.wls-exp-quick-highlights {
  margin-top: 22px;
  margin-bottom: 38px;
}
.wls-exp-quick-highlight,
.wls-exp-quick-highlight:nth-child(3n+2),
.wls-exp-quick-highlight:nth-child(3n),
.wls-exp-quick-highlight:nth-last-child(-n+2) {
  background: #f7f9fa !important;
  border: 1px solid #e5ebee !important;
  box-shadow: 0 3px 12px rgba(16, 40, 52, .025) !important;
}
.wls-exp-quick-highlight::before,
.wls-exp-quick-highlight:nth-child(3n+2)::before,
.wls-exp-quick-highlight:nth-child(3n)::before {
  background: color-mix(in srgb, var(--accent, #0787b5) 68%, #a7cedc) !important;
  opacity: .78;
}

/* "Perché vale la pena": open editorial rows, not another wall of boxes. */
.wls-exp-highlights__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 30px;
  row-gap: 0;
}
.wls-exp-highlight-card,
.wls-exp-highlight-card:nth-last-child(-n+2) {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  padding: 18px 0;
  margin: 0;
  border: 0;
  border-bottom: 1px solid #e6ecef;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.wls-exp-highlight-card__icon { display: none !important; }
.wls-exp-highlight-card__index {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent, #0787b5) 9%, #fff);
  border: 1px solid color-mix(in srgb, var(--accent, #0787b5) 22%, #dce8ed);
  color: var(--accent, #0787b5);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .03em;
}
.wls-exp-highlight-card h3 {
  margin: 1px 0 4px;
  color: #172a33;
  font-size: 16px;
  line-height: 1.28;
  font-weight: 800;
}
.wls-exp-highlight-card p {
  margin: 0;
  color: #53636b;
  font-size: 13.5px;
  line-height: 1.52;
}
@media (hover:hover) and (pointer:fine) {
  .wls-exp-highlight-card:hover .wls-exp-highlight-card__index {
    background: color-mix(in srgb, var(--accent, #0787b5) 15%, #fff);
    transform: translateY(-1px);
  }
}

/* WLS signature trust panel: a single branded colour moment, not three more cards. */
.wls-exp-why-wls__panel {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(180px, .85fr) minmax(0, 1.65fr);
  gap: 30px;
  padding: 28px 30px;
  border: 1px solid #e3edf0;
  border-radius: 22px;
  background: linear-gradient(135deg, #eefaff 0%, #f5fbfc 46%, #fff8ed 100%);
  box-shadow: 0 8px 26px rgba(20, 52, 65, .045);
}
.wls-exp-why-wls__panel::after {
  content: "";
  position: absolute;
  right: -58px;
  bottom: -70px;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent, #0787b5) 8%, transparent);
  pointer-events: none;
}
.wls-exp-why-wls__title-wrap,
.wls-exp-why-wls__items { position: relative; z-index: 1; }
.wls-exp-why-wls__title-wrap h2 {
  margin-top: 4px;
  max-width: 11ch;
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.04;
  letter-spacing: -.035em;
}
.wls-exp-why-wls__items {
  display: grid;
  gap: 0;
}
.wls-exp-why-wls__item {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 11px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(38, 82, 98, .12);
}
.wls-exp-why-wls__item:last-child { border-bottom: 0; }
.wls-exp-why-wls__icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(34, 94, 115, .13);
  color: var(--accent, #0787b5);
  box-shadow: none;
}
.wls-exp-why-wls__icon svg { width: 17px; height: 17px; }
.wls-exp-why-wls__item h3 {
  margin: 0 0 3px;
  color: #17313b;
  font-size: 15px;
  line-height: 1.28;
  font-weight: 800;
}
.wls-exp-why-wls__item p {
  margin: 0;
  color: #4f626a;
  font-size: 12.9px;
  line-height: 1.48;
}

/* Reviews: warm colour break. Horizontal on mobile to preserve page rhythm. */
.wls-exp-reviews-section {
  padding: 24px;
  border: 1px solid #efe8dd;
  border-radius: 22px;
  background: #fffaf3;
}
.wls-exp-reviews-section .wls-exp-section-head { margin-bottom: 18px; }
.wls-exp-reviews-section__summary {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 7px !important;
  color: #4d5960 !important;
}
.wls-exp-reviews-section__summary svg { width: 18px; height: 18px; }
.wls-exp-reviews-section__summary strong { color: #172a33; }
.wls-exp-reviews-section__track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.wls-exp-review-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(104, 83, 54, .12);
  border-radius: 16px;
  background: rgba(255,255,255,.86);
}
.wls-exp-review-card__top {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  margin-bottom: 11px;
}
.wls-exp-review-card__avatar {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f1f4f5;
  color: #263b44;
  font-size: 13px;
  font-weight: 800;
}
.wls-exp-review-card h3 { margin: 0; font-size: 13.5px; line-height: 1.2; }
.wls-exp-review-card__top div > span { display:block; margin-top:2px; color:#788187; font-size:11px; }
.wls-exp-review-card__top > strong { color:#d68a00; font-size:12px; white-space:nowrap; }
.wls-exp-review-card > p { margin:0; color:#4f5e65; font-size:12.7px; line-height:1.52; }

/* FAQ: native details keeps JS cost at zero and remains keyboard accessible. */
.wls-exp-faq__list { border-top: 1px solid #e3e9ec; }
.wls-exp-faq__item {
  margin: 0;
  border-bottom: 1px solid #e3e9ec;
}
.wls-exp-faq__item summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 2px;
  color: #172a33;
  cursor: pointer;
  list-style: none;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 750;
}
.wls-exp-faq__item summary::-webkit-details-marker { display:none; }
.wls-exp-faq__item summary > span {
  position: relative;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 50%;
  border: 1px solid #d7e0e4;
}
.wls-exp-faq__item summary > span::before,
.wls-exp-faq__item summary > span::after {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:9px;
  height:1.5px;
  border-radius:2px;
  background:#49616c;
  transform:translate(-50%,-50%);
  transition:transform .2s ease;
}
.wls-exp-faq__item summary > span::after { transform:translate(-50%,-50%) rotate(90deg); }
.wls-exp-faq__item[open] summary > span::after { transform:translate(-50%,-50%) rotate(0deg); }
.wls-exp-faq__item > div { padding: 0 44px 17px 2px; }
.wls-exp-faq__item p { margin:0; color:#55656d; font-size:13px; line-height:1.58; }
.wls-exp-faq__item summary:focus-visible { outline:2px solid var(--accent,#0787b5); outline-offset:3px; border-radius:6px; }

/* Maintain a deliberate page rhythm between white and coloured moments. */
.wls-exp-description-section,
.wls-exp-highlights,
.wls-exp-itinerary,
.wls-exp-important,
.wls-exp-meeting,
.wls-exp-faq {
  background: transparent;
}

@media (max-width: 782px) {
  .wls-exp-highlights__grid { grid-template-columns: 1fr; column-gap: 0; }
  .wls-exp-highlight-card,
  .wls-exp-highlight-card:nth-last-child(-n+2) { padding: 15px 0; }
  .wls-exp-highlight-card h3 { font-size: 15px; }
  .wls-exp-highlight-card p { font-size: 12.8px; }

  .wls-exp-why-wls__panel {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 22px 18px;
    border-radius: 18px;
  }
  .wls-exp-why-wls__title-wrap h2 { max-width: 14ch; font-size: 25px; }
  .wls-exp-why-wls__item { grid-template-columns: 30px minmax(0,1fr); padding: 11px 0; }
  .wls-exp-why-wls__icon { width: 28px; height: 28px; }

  .wls-exp-reviews-section {
    padding: 20px 16px 18px;
    margin-left: 0;
    margin-right: 0;
    border-radius: 18px;
  }
  .wls-exp-reviews-section__track {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    padding: 1px 14% 4px 0;
  }
  .wls-exp-reviews-section__track::-webkit-scrollbar { display:none; }
  .wls-exp-review-card {
    flex: 0 0 86%;
    scroll-snap-align: start;
  }

  .wls-exp-faq__item summary { padding: 16px 1px; font-size: 13.5px; }
  .wls-exp-faq__item > div { padding-right: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .wls-exp-highlight-card__index,
  .wls-exp-faq__item summary > span::after { transition:none !important; }
}

/* ==================================================
   v1.10.3 — rating Google manuale + WLS reviews
================================================== */
.wls-google-maps-attribution{
  font-family:Roboto,Arial,sans-serif;
  font-style:normal;
  font-weight:400;
  font-size:12px;
  line-height:1.2;
  letter-spacing:normal;
  white-space:nowrap;
  color:#5e5e5e;
}
.wls-exp-hero-summary__rating .wls-google-maps-attribution{
  margin-left:3px;
}
.wls-exp-hero-summary__rating.is-loading,
.wls-exp-quick-highlight.is-loading,
.wls-exp-google-proof.is-loading{
  opacity:.72;
}
.wls-exp-google-proof{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:18px 0 20px;
  border-top:1px solid rgba(82,70,51,.13);
  border-bottom:1px solid rgba(82,70,51,.13);
}
.wls-exp-google-proof__brand{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 6px rgba(31,35,38,.08);
}
.wls-exp-google-proof__brand svg{width:20px;height:20px}
.wls-exp-google-proof__content{min-width:0}
.wls-exp-google-proof__label{
  display:block;
  margin-bottom:5px;
  color:#5b6468;
  font-size:12.5px;
  line-height:1.35;
}
.wls-exp-google-proof__score-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:5px;
}
.wls-exp-google-proof__score-line strong{
  color:#172a33;
  font-size:24px;
  line-height:1;
  letter-spacing:-.03em;
}
.wls-exp-google-proof__stars{
  color:#d68a00;
  font-size:14px;
  letter-spacing:1px;
}
.wls-exp-google-proof__content p{
  margin:0;
  max-width:660px;
  color:#58666c;
  font-size:12.8px;
  line-height:1.5;
}
.wls-exp-reviews-section__direct-head{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:5px 9px;
  margin:18px 0 12px;
  color:#20343d;
  font-size:12.5px;
}
.wls-exp-reviews-section__direct-head span{color:#737d82;font-size:11.8px}
@media(max-width:782px){
  .wls-exp-google-proof{grid-template-columns:38px minmax(0,1fr);gap:11px;padding:16px 0 18px}
  .wls-exp-google-proof__brand{width:36px;height:36px}
  .wls-exp-google-proof__brand svg{width:18px;height:18px}
  .wls-exp-google-proof__score-line strong{font-size:22px}
}

/* ==================================================
   v1.10.2 — Google trust copy + live cards
================================================== */
.wls-exp-card__rating .wls-google-maps-attribution{
  margin-left:2px;
  font-size:10.5px;
  color:#737b80;
}
.wls-exp-card__rating.is-loading,
.wls-exp-hero-summary__rating.is-loading{
  opacity:.72;
}
.wls-exp-google-proof__content{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
}
.wls-exp-google-proof__headline,
.wls-exp-google-proof__count{
  margin:0 !important;
  max-width:none !important;
}
.wls-exp-google-proof__headline{
  color:#172a33 !important;
  font-size:16px !important;
  line-height:1.35 !important;
  letter-spacing:-.015em;
}
.wls-exp-google-proof__headline strong{font-weight:750}
.wls-exp-google-proof__count{
  color:#56656c !important;
  font-size:13px !important;
  line-height:1.45 !important;
}
.wls-exp-google-proof__count strong{color:#263c46;font-weight:700}
.wls-exp-google-proof__attribution{
  display:inline-block;
  margin-top:3px;
}
@media(max-width:782px){
  .wls-exp-google-proof__headline{font-size:15px !important}
  .wls-exp-google-proof__count{font-size:12.5px !important}
}

/* ==================================================
   v1.10.4 — polish: consistent editorial rows + compact trust strip
================================================== */

/* Older nth-child rules must never recolour a single "Perché vale la pena" row. */
.wls-exp-highlights .wls-exp-highlight-card,
.wls-exp-highlights .wls-exp-highlight-card:nth-child(2),
.wls-exp-highlights .wls-exp-highlight-card:nth-child(3),
.wls-exp-highlights .wls-exp-highlight-card:nth-child(4),
.wls-exp-highlights .wls-exp-highlight-card:nth-child(5),
.wls-exp-highlights .wls-exp-highlight-card:nth-child(n+6),
.wls-exp-highlights .wls-exp-highlight-card:nth-last-child(-n+2) {
  min-height: 0 !important;
  padding: 18px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #e6ecef !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

/* Cleaner WLS signature panel: no decorative corner bubble. */
.wls-exp-why-wls__panel::after {
  content: none !important;
  display: none !important;
}

/* Google rating + WLS verification + cancellation now read as one trust cluster. */
.wls-exp-hero-summary__proof-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 9px;
  margin-top: 13px;
}
.wls-exp-hero-summary__proof-row .wls-exp-hero-summary__rating,
.wls-exp-hero-summary__proof-row .wls-exp-hero-summary__trust {
  margin-top: 0;
}
.wls-exp-hero-summary__proof-row .wls-exp-hero-summary__trust {
  gap: 6px;
}
.wls-exp-hero-summary__proof-row .wls-exp-hero-summary__tested,
.wls-exp-hero-summary__proof-row .wls-exp-hero-summary__cancel {
  min-height: 29px;
  padding: 6px 9px;
  font-size: 11.5px;
}

/* v1.10.4 uses manually entered aggregate Google data: no redundant micro-label. */
.wls-google-maps-attribution {
  display: none !important;
}

@media (max-width: 600px) {
  .wls-exp-hero-summary__proof-row {
    margin-top: 11px;
    gap: 6px;
  }
  .wls-exp-hero-summary__proof-row .wls-exp-hero-summary__tested,
  .wls-exp-hero-summary__proof-row .wls-exp-hero-summary__cancel {
    min-height: 28px;
    padding: 5px 8px;
    font-size: 10.8px;
  }
  .wls-exp-highlights .wls-exp-highlight-card,
  .wls-exp-highlights .wls-exp-highlight-card:nth-child(2),
  .wls-exp-highlights .wls-exp-highlight-card:nth-child(3),
  .wls-exp-highlights .wls-exp-highlight-card:nth-child(4),
  .wls-exp-highlights .wls-exp-highlight-card:nth-child(5),
  .wls-exp-highlights .wls-exp-highlight-card:nth-child(n+6),
  .wls-exp-highlights .wls-exp-highlight-card:nth-last-child(-n+2) {
    padding: 15px 0 !important;
  }
}

/* v1.10.5 — content hierarchy cleanup: reputation duplicate removed; booking section reframed as a 3-step process. */

/* ==================================================
   v1.10.6 — Premium booking rail + mobile conversion bar
================================================== */
.wls-exp-booking-card {
  overflow: hidden;
  padding: 0;
  border: 1px solid #dfe8ec;
  border-top: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(19, 40, 52, .11);
}

.wls-exp-booking-card::before {
  content: "";
  display: block;
  height: 5px;
  background: linear-gradient(90deg, var(--wls-hero-accent), #7acdde 58%, #d9f3f6);
}

.wls-exp-booking-card__eyebrow {
  padding: 20px 21px 10px;
  color: #1f2b32;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 780;
  letter-spacing: .015em;
}

.wls-exp-booking-card__tariffs {
  margin: 0 21px;
  border-top: 1px solid #edf1f3;
  border-bottom: 1px solid #edf1f3;
}

.wls-exp-booking-card__tariff {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 62px;
  padding: 11px 0;
}

.wls-exp-booking-card__tariff + .wls-exp-booking-card__tariff {
  border-top: 1px solid #edf1f3;
}

.wls-exp-booking-card__tariff-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.wls-exp-booking-card__tariff-copy strong {
  color: #171d21;
  font-size: 14px;
  line-height: 1.25;
  font-weight: 760;
}

.wls-exp-booking-card__tariff-copy span {
  color: #717a80;
  font-size: 11.5px;
  line-height: 1.25;
}

.wls-exp-booking-card__tariff-price {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px;
  flex: 0 0 auto;
  color: #4c565d;
  white-space: nowrap;
}

.wls-exp-booking-card__tariff-price > span {
  font-size: 11.5px;
  font-weight: 650;
}

.wls-exp-booking-card__tariff-price strong {
  color: #101619;
  font-size: 21px;
  line-height: 1;
  font-weight: 840;
  letter-spacing: -.035em;
}

.wls-exp-booking-card__tariff.is-primary .wls-exp-booking-card__tariff-price strong {
  font-size: 28px;
}

.wls-exp-booking-card__tariff-price del {
  margin-right: 2px;
  color: #8b9499;
  font-size: 11.5px;
  text-decoration-thickness: 1px;
}

.wls-exp-booking-card__trust-list {
  display: grid;
  gap: 0;
  margin: 13px 21px 0;
}

.wls-exp-booking-card__trust-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
}

.wls-exp-booking-card__trust-row + .wls-exp-booking-card__trust-row {
  border-top: 1px solid #f0f3f4;
}

.wls-exp-booking-card__trust-icon {
  flex: 0 0 29px;
  width: 29px;
  height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f4f8f9;
  color: #137342;
  font-size: 14px;
  font-weight: 850;
}

.wls-exp-booking-card__trust-row.is-google .wls-exp-booking-card__trust-icon {
  background: #f7f9fa;
}

.wls-exp-booking-card__trust-icon .wls-exp-card__google {
  width: 17px;
  height: 17px;
  margin: 0;
}

.wls-exp-booking-card__trust-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.wls-exp-booking-card__trust-copy strong {
  color: #20282d;
  font-size: 12.5px;
  line-height: 1.3;
  font-weight: 760;
}

.wls-exp-booking-card__trust-copy > span {
  color: #687278;
  font-size: 11.3px;
  line-height: 1.35;
}

.wls-exp-booking-card__payment {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  margin: 13px 21px 0;
  padding: 11px 12px;
  border: 1px solid #dceef3;
  border-radius: 13px;
  background: linear-gradient(135deg, #f4fbfd 0%, #eef8fb 100%);
}

.wls-exp-booking-card__payment-mark {
  flex: 0 0 29px;
  width: 29px;
  height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  color: var(--wls-hero-accent);
  box-shadow: 0 2px 8px rgba(22, 73, 91, .08);
  font-size: 13px;
  font-weight: 850;
}

.wls-exp-booking-card__payment-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.wls-exp-booking-card__payment-copy strong {
  color: #20323a;
  font-size: 12.4px;
  line-height: 1.3;
}

.wls-exp-booking-card__payment-copy > span {
  color: #64737a;
  font-size: 11.2px;
  line-height: 1.3;
}

.wls-exp-booking-card__cta {
  width: auto;
  min-height: 52px;
  margin: 15px 21px 0;
  border-radius: 14px;
  box-shadow: 0 9px 22px rgba(3, 125, 167, .20);
  font-size: 14.5px;
}

.wls-exp-booking-card__note {
  margin: 9px 21px 18px;
  color: #7a8388;
  font-size: 10.8px;
  line-height: 1.35;
}

@media (max-width: 1023px) {
  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    max-width: 520px;
  }
}

@media (max-width: 600px) {
  /* On phones the persistent bottom bar replaces the large inline booking box. */
  .wls-exp-page.has-mobile-sticky .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    display: none !important;
  }

  .wls-exp-page.has-mobile-sticky {
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }

  .wls-exp-hero-summary.has-mobile-sticky {
    padding-bottom: 0;
  }

  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    left: max(8px, env(safe-area-inset-left));
    right: max(8px, env(safe-area-inset-right));
    bottom: max(8px, env(safe-area-inset-bottom));
    display: block;
    padding: 7px 8px 8px;
    border: 1px solid rgba(211, 220, 224, .92);
    border-radius: 18px;
    background: rgba(255, 255, 255, .965);
    box-shadow: 0 14px 38px rgba(20, 35, 43, .20);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .wls-exp-mobile-booking__trust {
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 6px 4px;
    color: #526067;
    font-size: 10.5px;
    line-height: 1;
    white-space: nowrap;
  }

  .wls-exp-mobile-booking__google {
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }

  .wls-exp-mobile-booking__google .wls-exp-card__google {
    width: 13px;
    height: 13px;
    margin: 0;
  }

  .wls-exp-mobile-booking__google strong {
    color: #242b2f;
    font-weight: 780;
  }

  .wls-exp-mobile-booking__cancel {
    color: #277343;
    font-weight: 720;
  }

  .wls-exp-mobile-booking__sep {
    color: #b0b8bc;
  }

  .wls-exp-mobile-booking__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .wls-exp-mobile-booking__price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    padding-left: 4px;
    color: #4d555c;
    line-height: 1.05;
  }

  .wls-exp-mobile-booking__price > span {
    display: flex;
    align-items: baseline;
    gap: 3px;
    white-space: nowrap;
  }

  .wls-exp-mobile-booking__price > span small {
    color: #626d73;
    font-size: 10px;
    font-weight: 650;
  }

  .wls-exp-mobile-booking__price strong {
    color: #11171a;
    font-size: 21px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: -.035em;
  }

  .wls-exp-mobile-booking__price em {
    color: #687278;
    font-size: 10px;
    font-style: normal;
    font-weight: 600;
  }

  .wls-exp-mobile-booking__price > small {
    margin: 0;
    color: #5c6970;
    font-size: 9.8px;
    line-height: 1.1;
  }

  .wls-exp-mobile-booking__main > a {
    min-width: 156px;
    min-height: 47px;
    padding: 0 15px;
    border-radius: 13px;
    box-shadow: 0 7px 18px rgba(3, 125, 167, .20);
    font-size: 12.6px;
    font-weight: 780;
  }
}

@media (max-width: 380px) {
  .wls-exp-mobile-booking__trust {
    gap: 5px;
    font-size: 9.7px;
  }

  .wls-exp-mobile-booking__main > a {
    min-width: 142px;
    padding-left: 12px;
    padding-right: 12px;
    font-size: 12px;
  }

  .wls-exp-mobile-booking__price strong {
    font-size: 19px;
  }
}

/* ==================================================
   v1.10.7 — Softer trust badge + hierarchy refinements
================================================== */
.wls-exp-hero-summary__tested {
  background: #f2f4f4;
  color: #3f4b50;
  border: 1px solid #e1e5e6;
  box-shadow: none;
}
.wls-exp-hero-summary__tested-check {
  background: #fff;
  color: #526168;
  border: 1px solid #dce2e4;
}

/* Keep the verification badge neutral also on experience cards. */
.wls-exp-card__badge {
  background: rgba(255, 255, 255, .94);
  color: #354249;
  border: 1px solid rgba(224, 230, 232, .96);
  box-shadow: 0 5px 16px rgba(16, 35, 44, .10);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.wls-exp-card__badge-check {
  background: #eef1f2;
  color: #48575e;
}


/* ==================================================
   v1.10.8 — Booking card hierarchy + two child fare bands
================================================== */
.wls-exp-booking-card {
  border: 1px solid #e2e8eb;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(18, 37, 47, .10);
}

.wls-exp-booking-card::before { display: none; }

.wls-exp-booking-card__header {
  padding: 22px 24px 18px;
  background: linear-gradient(150deg, #fbfefe 0%, #f5fafc 100%);
  border-bottom: 1px solid #edf1f3;
}

.wls-exp-booking-card__eyebrow {
  padding: 0;
  margin: 0 0 7px;
  color: #5b6970;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 780;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.wls-exp-booking-card__title {
  margin: 0;
  color: #151c20;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 820;
  letter-spacing: -.022em;
}

.wls-exp-booking-card__proofs {
  display: grid;
  gap: 7px;
  margin-top: 15px;
}

.wls-exp-booking-card__proof {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  max-width: 100%;
  color: #556269;
  font-size: 11.4px;
  line-height: 1.3;
  font-weight: 650;
}

.wls-exp-booking-card__proof.is-cancellation { color: #257343; }
.wls-exp-booking-card__proof.is-wls { color: #48565d; }
.wls-exp-booking-card__proof.is-google { color: #4d595f; }

.wls-exp-booking-card__proof.is-google .wls-exp-card__google {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  margin: 0;
}

.wls-exp-booking-card__proof.is-google strong {
  color: #222b30;
  font-weight: 800;
}

.wls-exp-booking-card__proof.is-google > span:last-child {
  color: #68747a;
  font-weight: 600;
}

.wls-exp-booking-card__tariff-box {
  margin: 18px 24px 0;
  padding: 7px 14px 5px;
  border: 1px solid #e3e9ec;
  border-radius: 17px;
  background: #f7f9fa;
}

.wls-exp-booking-card__tariff-heading {
  padding: 6px 0 7px;
  color: #67747a;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 780;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.wls-exp-booking-card__tariffs { margin: 0; border: 0; }

.wls-exp-booking-card__tariff {
  min-height: 57px;
  padding: 11px 0;
}

.wls-exp-booking-card__tariff + .wls-exp-booking-card__tariff {
  border-top: 1px solid #e2e8eb;
}

.wls-exp-booking-card__tariff-copy strong {
  font-size: 13.5px;
}

.wls-exp-booking-card__tariff-copy span {
  color: #707b80;
  font-size: 11px;
}

.wls-exp-booking-card__tariff-price strong {
  color: #11191d;
  font-size: 17px;
  font-weight: 840;
}

.wls-exp-booking-card__tariff.is-primary .wls-exp-booking-card__tariff-price strong {
  font-size: 25px;
}

.wls-exp-booking-card__payment {
  margin: 15px 24px 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.wls-exp-booking-card__payment-mark {
  flex: 0 0 27px;
  width: 27px;
  height: 27px;
  background: #eef8fb;
  box-shadow: none;
}

.wls-exp-booking-card__payment-copy strong {
  font-size: 12.2px;
}

.wls-exp-booking-card__payment-copy > span {
  margin-top: 1px;
  font-size: 10.9px;
}

.wls-exp-booking-card__cta {
  margin: 16px 24px 0;
  min-height: 52px;
  border-radius: 14px;
}

.wls-exp-booking-card__note {
  margin: 9px 24px 20px;
  text-align: center;
}

@media (min-width: 901px) {
  .wls-exp-booking-card { padding: 0; }
}

@media (max-width: 600px) {
  .wls-exp-mobile-booking__trust {
    justify-content: flex-start;
    overflow: hidden;
    padding-left: 5px;
    padding-right: 5px;
    font-size: 9.7px;
  }

  .wls-exp-mobile-booking__verified {
    color: #536168;
    font-weight: 700;
    white-space: nowrap;
  }

  .wls-exp-mobile-booking__price > small {
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 380px) {
  .wls-exp-mobile-booking__verified { display: none; }
  .wls-exp-mobile-booking__price > small { max-width: 132px; }
}

/* ==================================================
   v1.10.9 — Booking card visual refinement
   Cleaner palette, stronger hierarchy and consistent fare sizing.
================================================== */
.wls-exp-booking-card {
  --wls-booking-blue: #087fa8;
  --wls-booking-blue-dark: #066d91;
  border-color: #dbe4e8;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 20px 52px rgba(20, 39, 49, .12);
}

.wls-exp-booking-card__header {
  padding: 24px 26px 19px;
  background: #ffffff;
  border-bottom: 1px solid #edf1f3;
}

.wls-exp-booking-card__eyebrow {
  margin-bottom: 8px;
  color: var(--wls-booking-blue-dark);
  font-size: 11px;
  font-weight: 820;
  letter-spacing: .075em;
}

.wls-exp-booking-card__title {
  color: #11191d;
  font-size: 18.5px;
  line-height: 1.23;
  font-weight: 840;
  letter-spacing: -.025em;
}

.wls-exp-booking-card__proofs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  margin-top: 16px;
}

.wls-exp-booking-card__proof {
  width: 100%;
  min-height: 32px;
  padding: 7px 10px;
  border: 1px solid #e8edef;
  border-radius: 10px;
  background: #f8fafb;
  color: #46545b;
  font-size: 12.5px;
  line-height: 1.25;
  font-weight: 700;
}

.wls-exp-booking-card__proof.is-cancellation {
  border-color: #dcefe2;
  background: #f3fbf5;
  color: #25713f;
}

.wls-exp-booking-card__proof.is-google {
  background: #fafbfb;
  color: #344148;
}

.wls-exp-booking-card__proof.is-wls {
  background: #f7f9fa;
  color: #46535a;
}

.wls-exp-booking-card__proof.is-google .wls-exp-card__google {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
}

.wls-exp-booking-card__proof.is-google strong {
  color: #182126;
  font-size: 12.7px;
  font-weight: 830;
}

.wls-exp-booking-card__proof.is-google > span:last-child {
  color: #58666d;
  font-size: 12.2px;
  font-weight: 650;
}

.wls-exp-booking-card__tariff-box {
  margin: 18px 26px 0;
  padding: 10px 15px 7px;
  border: 1px solid #dfe7ea;
  border-radius: 17px;
  background: #f8fafb;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.wls-exp-booking-card__tariff-heading {
  padding: 5px 0 8px;
  color: #65737a;
  font-size: 11px;
  font-weight: 820;
  letter-spacing: .065em;
}

.wls-exp-booking-card__tariff {
  min-height: 61px;
  padding: 12px 0;
}

.wls-exp-booking-card__tariff-copy strong {
  color: #1b2429;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 790;
}

.wls-exp-booking-card__tariff-copy span {
  margin-top: 1px;
  color: #718087;
  font-size: 11.5px;
  line-height: 1.2;
}

.wls-exp-booking-card__tariff-price {
  gap: 5px;
}

.wls-exp-booking-card__tariff-price > span {
  color: #59666d;
  font-size: 11.5px;
  font-weight: 700;
}

.wls-exp-booking-card__tariff-price strong,
.wls-exp-booking-card__tariff.is-primary .wls-exp-booking-card__tariff-price strong {
  color: #11191d;
  font-size: 20px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.025em;
}

.wls-exp-booking-card__tariff-price del {
  color: #8a959a;
  font-size: 11px;
}

.wls-exp-booking-card__payment {
  margin: 15px 26px 0;
  padding: 10px 12px;
  border: 1px solid #dceaf0;
  border-radius: 12px;
  background: #f3f9fb;
}

.wls-exp-booking-card__payment-mark {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  background: #ffffff;
  color: var(--wls-booking-blue-dark);
  border: 1px solid #dce9ee;
  box-shadow: none;
}

.wls-exp-booking-card__payment-copy strong {
  color: #25363e;
  font-size: 12.6px;
  font-weight: 780;
}

.wls-exp-booking-card__payment-copy > span {
  color: #64737a;
  font-size: 11px;
}

/* Explicit WLS CTA colors: do not inherit a white GeneratePress accent. */
.wls-exp-booking-card a.wls-exp-booking-card__cta {
  width: calc(100% - 52px);
  min-height: 54px;
  margin: 16px 26px 0;
  border: 1px solid var(--wls-booking-blue) !important;
  border-radius: 14px;
  background: var(--wls-booking-blue) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(8, 127, 168, .24);
  font-size: 15px;
  font-weight: 820;
  letter-spacing: -.01em;
  opacity: 1 !important;
}

.wls-exp-booking-card a.wls-exp-booking-card__cta:visited,
.wls-exp-booking-card a.wls-exp-booking-card__cta:focus {
  background: var(--wls-booking-blue) !important;
  border-color: var(--wls-booking-blue) !important;
  color: #ffffff !important;
}

@media (hover: hover) and (pointer: fine) {
  .wls-exp-booking-card a.wls-exp-booking-card__cta:hover {
    background: var(--wls-booking-blue-dark) !important;
    border-color: var(--wls-booking-blue-dark) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 28px rgba(6, 109, 145, .27);
  }
}

.wls-exp-booking-card__note {
  margin: 10px 26px 20px;
  color: #7b868b;
  font-size: 11px;
}

@media (max-width: 600px) {
  .wls-exp-mobile-booking__trust {
    color: #48565d;
    font-size: 10px;
  }

  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a {
    border: 1px solid #087fa8 !important;
    background: #087fa8 !important;
    color: #fff !important;
    box-shadow: 0 7px 18px rgba(8, 127, 168, .23);
    opacity: 1 !important;
  }
}

/* ==================================================
   v1.10.10 — Booking card consistency + compact mobile dock
   Equal fare hierarchy, unified green trust signals, less grey,
   and a floating mobile CTA that leaves room for the language flag.
================================================== */
.wls-exp-booking-card {
  --wls-booking-blue: #087fa8;
  --wls-booking-blue-dark: #066d91;
  --wls-booking-green: #237a46;
  --wls-booking-green-bg: #f1faf4;
  --wls-booking-green-border: #d8ecdf;
}

/* One visual language for all trust signals. */
.wls-exp-booking-card__proof,
.wls-exp-booking-card__proof.is-cancellation,
.wls-exp-booking-card__proof.is-google,
.wls-exp-booking-card__proof.is-wls {
  min-height: 34px;
  padding: 8px 10px;
  border-color: var(--wls-booking-green-border);
  background: var(--wls-booking-green-bg);
  color: var(--wls-booking-green);
  font-size: 12.7px;
  line-height: 1.25;
  font-weight: 720;
}

.wls-exp-booking-card__proof > span:first-child {
  color: var(--wls-booking-green);
  font-weight: 900;
}

.wls-exp-booking-card__proof.is-google strong,
.wls-exp-booking-card__proof.is-google > span:last-child {
  color: var(--wls-booking-green);
  font-size: inherit;
  font-weight: inherit;
}

/* Warmer, quieter tariff surface: less generic grey. */
.wls-exp-booking-card__tariff-box {
  border-color: #e7e2d8;
  background: #fbfaf7;
}

/* Adult and child fares now use exactly the same typographic scale. */
.wls-exp-booking-card__tariff-price strong,
.wls-exp-booking-card__tariff.is-primary .wls-exp-booking-card__tariff-price strong {
  font-size: 19px !important;
  line-height: 1.05 !important;
  font-weight: 830 !important;
  letter-spacing: -.022em !important;
  white-space: nowrap;
}

.wls-exp-booking-card__tariff-price > span {
  font-size: 19px !important;
  line-height: 1.05 !important;
  font-weight: 830 !important;
}

/* Keep the deposit supportive, not visually dominant. */
.wls-exp-booking-card__payment {
  border-color: #e0ebef;
  background: #f6fafb;
}

/* Mobile: compact floating dock, deliberately offset from the lower-left
   to coexist with the Google Translate language flag. */
@media (max-width: 600px) {
  .wls-exp-page.has-mobile-sticky {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }

  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    left: max(68px, calc(env(safe-area-inset-left) + 68px));
    right: max(10px, env(safe-area-inset-right));
    bottom: max(12px, calc(env(safe-area-inset-bottom) + 12px));
    padding: 7px;
    border: 1px solid rgba(214, 224, 228, .95);
    border-radius: 17px;
    background: rgba(255,255,255,.975);
    box-shadow: 0 12px 30px rgba(20,35,43,.18);
  }

  /* Trust details already live near the top of the page; hiding them here
     keeps the persistent bar thin and avoids covering content. */
  .wls-exp-mobile-booking__trust {
    display: none !important;
  }

  .wls-exp-mobile-booking__main {
    min-height: 50px;
    gap: 8px;
  }

  .wls-exp-mobile-booking__price {
    padding-left: 5px;
    gap: 1px;
  }

  .wls-exp-mobile-booking__price strong {
    font-size: 18px;
  }

  .wls-exp-mobile-booking__price em,
  .wls-exp-mobile-booking__price > span small {
    font-size: 9px;
  }

  .wls-exp-mobile-booking__price > small {
    max-width: 116px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 8.7px;
  }

  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a {
    min-width: 132px;
    min-height: 46px;
    padding: 0 13px;
    border-radius: 12px;
    font-size: 11.8px;
    line-height: 1.1;
  }
}

@media (max-width: 380px) {
  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    left: max(60px, calc(env(safe-area-inset-left) + 60px));
    right: 7px;
  }

  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a {
    min-width: 118px;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 11px;
  }

  .wls-exp-mobile-booking__price strong {
    font-size: 17px;
  }
}

/* ==================================================
   v1.10.11 — Booking refinement
   Compact desktop fares + full inline mobile booking card +
   raised full-width sticky CTA that appears only after the inline card.
================================================== */

/* Desktop/tablet: make the fare module denser and keep every fare equal. */
.wls-exp-booking-card__tariff-box {
  margin-top: 14px;
  padding: 7px 14px 5px;
  border-radius: 15px;
}

.wls-exp-booking-card__tariff-heading {
  padding: 2px 0 4px;
  font-size: 10.5px;
  line-height: 1.1;
}

.wls-exp-booking-card__tariff {
  min-height: 49px;
  padding: 8px 0;
}

.wls-exp-booking-card__tariff-copy strong {
  font-size: 13.5px;
}

.wls-exp-booking-card__tariff-copy span {
  font-size: 10.7px;
}

.wls-exp-booking-card__tariff-price strong,
.wls-exp-booking-card__tariff.is-primary .wls-exp-booking-card__tariff-price strong,
.wls-exp-booking-card__tariff-price > span {
  font-size: 17px !important;
  line-height: 1.05 !important;
}

.wls-exp-booking-card__tariff-price del {
  font-size: 10px;
}

.wls-exp-booking-card__payment {
  margin-top: 12px;
  padding-top: 8px;
  padding-bottom: 8px;
}

/* Phones: keep the complete booking card inside the page. The sticky CTA is
   a secondary convenience, not a replacement for the full fare information. */
@media (max-width: 600px) {
  .wls-exp-page.has-mobile-sticky .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    display: flex !important;
    width: 100%;
    max-width: none;
    margin-top: 18px;
    border-radius: 20px;
    box-shadow: 0 12px 30px rgba(20, 39, 49, .10);
  }

  .wls-exp-booking-card__header {
    padding: 20px 19px 16px;
  }

  .wls-exp-booking-card__title {
    font-size: 17px;
  }

  .wls-exp-booking-card__proofs {
    margin-top: 13px;
    gap: 6px;
  }

  .wls-exp-booking-card__proof,
  .wls-exp-booking-card__proof.is-cancellation,
  .wls-exp-booking-card__proof.is-google,
  .wls-exp-booking-card__proof.is-wls {
    min-height: 31px;
    padding: 7px 9px;
    font-size: 12px;
  }

  .wls-exp-booking-card__tariff-box {
    margin: 14px 18px 0;
    padding: 7px 13px 5px;
  }

  .wls-exp-booking-card__payment {
    margin: 12px 18px 0;
  }

  .wls-exp-booking-card a.wls-exp-booking-card__cta {
    width: calc(100% - 36px);
    margin: 14px 18px 0;
  }

  .wls-exp-booking-card__note {
    margin-left: 18px;
    margin-right: 18px;
  }

  /* Reserve room for the raised dock and the language selector. */
  .wls-exp-page.has-mobile-sticky {
    padding-bottom: calc(144px + env(safe-area-inset-bottom));
  }

  /* Full-width floating dock. It is intentionally raised enough to clear
     the fixed Google Translate flag in the lower-left corner. */
  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    bottom: max(74px, calc(env(safe-area-inset-bottom) + 74px));
    display: block;
    padding: 8px;
    border: 1px solid rgba(211, 220, 224, .96);
    border-radius: 18px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 12px 30px rgba(20,35,43,.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  }

  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .wls-exp-mobile-booking__trust {
    display: none !important;
  }

  .wls-exp-mobile-booking__main {
    min-height: 50px;
    gap: 10px;
  }

  .wls-exp-mobile-booking__price {
    min-width: 0;
    padding-left: 7px;
  }

  .wls-exp-mobile-booking__price strong {
    font-size: 18px;
  }

  .wls-exp-mobile-booking__price > small {
    max-width: 46vw;
    font-size: 9px;
  }

  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a {
    flex: 0 0 auto;
    min-width: 158px;
    min-height: 46px;
    padding: 0 16px;
    border-radius: 13px;
    font-size: 12.5px;
  }
}

@media (max-width: 380px) {
  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    left: 7px;
    right: 7px;
    bottom: max(70px, calc(env(safe-area-inset-bottom) + 70px));
  }

  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a {
    min-width: 142px;
    padding-left: 12px;
    padding-right: 12px;
    font-size: 11.8px;
  }
}

/* ==================================================
   v1.10.12 — Mobile booking cleanup + unified green trust badge
   - Mobile inline booking card avoids repeating trust proof already shown above.
   - Floating CTA text is truly centered.
   - "Testata da We Love Sicily" matches the green cancellation pill everywhere.
================================================== */

/* Hero trust badges: WLS verification uses the same calm green language as cancellation. */
.wls-exp-hero-summary__tested {
  background: #edf8ef !important;
  color: #166d2b !important;
  border: 0 !important;
  box-shadow: none !important;
}

.wls-exp-hero-summary__tested-check {
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  color: #166d2b !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: inherit !important;
  font-weight: 850 !important;
}

@media (max-width: 600px) {
  /* The same three trust proofs are already visible directly above the mobile
     booking card. Keep the in-page card focused on title, fares and conversion. */
  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card .wls-exp-booking-card__proofs {
    display: none !important;
  }

  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card__header,
  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card .wls-exp-booking-card__header {
    padding-bottom: 15px;
  }

  /* Persistent mobile CTA: keep the label optically and vertically centered. */
  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.15 !important;
    white-space: nowrap;
  }

  /* Slightly cleaner dock proportions without making it taller. */
  .wls-exp-hero-summary.has-mobile-sticky .wls-exp-mobile-booking {
    padding: 7px 8px;
  }

  .wls-exp-mobile-booking__main {
    min-height: 48px;
    gap: 12px;
  }

  .wls-exp-mobile-booking__price {
    padding-left: 8px;
  }
}


/* ==================================================
   v1.10.13 — Mobile complete booking card after practical highlights
================================================== */
.wls-exp-page__mobile-inline-booking {
  display: none;
}

@media (max-width: 1023px) {
  /* The hero is now kept clean: the full booking card appears after the
     practical highlights instead of before them. */
  .wls-exp-page__main > .wls-exp-hero-summary > .wls-exp-booking-card {
    display: none !important;
  }

  .wls-exp-page__mobile-inline-booking {
    display: block;
    width: 100%;
    margin: 4px 0 38px;
  }

  .wls-exp-page__mobile-inline-booking > .wls-exp-booking-card {
    width: 100%;
    margin: 0;
  }
}

@media (max-width: 600px) {
  .wls-exp-page__mobile-inline-booking {
    margin-top: 8px;
    margin-bottom: 34px;
  }
}


/* ==================================================
   v1.10.14 — Warm sand booking CTA
   Keep the page palette focused on green trust signals + warm sand conversion CTA.
================================================== */
.wls-exp-booking-card {
  --wls-booking-sand: #e2c777;
  --wls-booking-sand-hover: #d5b967;
  --wls-booking-sand-border: #cfb25f;
  --wls-booking-sand-text: #252117;
}

/* Main availability button — desktop + inline mobile card. */
.wls-exp-booking-card a.wls-exp-booking-card__cta,
.wls-exp-booking-card a.wls-exp-booking-card__cta:visited,
.wls-exp-booking-card a.wls-exp-booking-card__cta:focus {
  border-color: var(--wls-booking-sand-border) !important;
  background: var(--wls-booking-sand) !important;
  color: var(--wls-booking-sand-text) !important;
  box-shadow: 0 9px 22px rgba(116, 91, 31, .16);
}

.wls-exp-booking-card a.wls-exp-booking-card__cta span {
  color: inherit !important;
}

@media (hover: hover) and (pointer: fine) {
  .wls-exp-booking-card a.wls-exp-booking-card__cta:hover {
    border-color: var(--wls-booking-sand-border) !important;
    background: var(--wls-booking-sand-hover) !important;
    color: var(--wls-booking-sand-text) !important;
    box-shadow: 0 11px 25px rgba(116, 91, 31, .21);
  }
}

/* Persistent mobile availability button uses the exact same palette. */
@media (max-width: 600px) {
  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a,
  .wls-exp-mobile-booking__main > a:visited,
  .wls-exp-mobile-booking a:visited,
  .wls-exp-mobile-booking__main > a:focus,
  .wls-exp-mobile-booking a:focus {
    border-color: var(--wls-booking-sand-border) !important;
    background: var(--wls-booking-sand) !important;
    color: var(--wls-booking-sand-text) !important;
    box-shadow: 0 7px 18px rgba(116, 91, 31, .16);
  }
}

/* ==================================================
   v1.10.15 — Booking palette consolidation + mobile deduplication
   Three visual families only: green trust, warm sand conversion, neutral surfaces.
================================================== */
.wls-exp-booking-card {
  --wls-booking-warm-surface: #fbf8f2;
  --wls-booking-warm-soft: #f7f1e7;
  --wls-booking-warm-cta: #e7d6b7;
  --wls-booking-warm-cta-hover: #ddc79f;
  --wls-booking-warm-border: #d9c6a3;
  --wls-booking-warm-text: #28231c;
}

/* Keep the fare module and conversion CTA in the same warm family. */
.wls-exp-booking-card__tariff-box {
  border-color: #e5dac8 !important;
  background: var(--wls-booking-warm-surface) !important;
}

.wls-exp-booking-card a.wls-exp-booking-card__cta,
.wls-exp-booking-card a.wls-exp-booking-card__cta:visited,
.wls-exp-booking-card a.wls-exp-booking-card__cta:focus {
  border-color: var(--wls-booking-warm-border) !important;
  background: var(--wls-booking-warm-cta) !important;
  color: var(--wls-booking-warm-text) !important;
  box-shadow: 0 8px 20px rgba(94, 73, 42, .13) !important;
}

.wls-exp-booking-card a.wls-exp-booking-card__cta span {
  color: inherit !important;
}

@media (hover: hover) and (pointer: fine) {
  .wls-exp-booking-card a.wls-exp-booking-card__cta:hover {
    border-color: #ceb488 !important;
    background: var(--wls-booking-warm-cta-hover) !important;
    color: var(--wls-booking-warm-text) !important;
    box-shadow: 0 10px 23px rgba(94, 73, 42, .17) !important;
  }
}

/* Deposit information no longer introduces a fourth (blue) color. */
.wls-exp-booking-card__payment {
  border-color: #e7dcc9 !important;
  background: var(--wls-booking-warm-soft) !important;
}

.wls-exp-booking-card__payment-mark {
  background: #fffdf8 !important;
  color: #7b6442 !important;
  box-shadow: 0 2px 8px rgba(94, 73, 42, .08) !important;
}

.wls-exp-booking-card__payment-copy strong {
  color: #342d24 !important;
}

/* Persistent mobile CTA uses the same warm tone as the full booking card. */
@media (max-width: 600px) {
  .wls-exp-mobile-booking__main > a,
  .wls-exp-mobile-booking a,
  .wls-exp-mobile-booking__main > a:visited,
  .wls-exp-mobile-booking a:visited,
  .wls-exp-mobile-booking__main > a:focus,
  .wls-exp-mobile-booking a:focus {
    border-color: var(--wls-booking-warm-border) !important;
    background: var(--wls-booking-warm-cta) !important;
    color: var(--wls-booking-warm-text) !important;
    box-shadow: 0 7px 18px rgba(94, 73, 42, .14) !important;
  }

  /* The full in-page booking card follows the highlights on phones. The same
     trust signals are already directly above the highlights, so do not repeat
     them here. Desktop/tablet remain unchanged. */
  .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__proofs {
    display: none !important;
  }

  .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__header {
    padding-bottom: 16px !important;
  }
}

/* ==========================================================
   v1.10.16 — Deposit info integrated into fares
   ========================================================== */
/* Payment/deposit is supporting information, not another action. Keep it
   inside the tariff module and remove the separate card-like treatment. */
.wls-exp-booking-card__payment {
  display: none !important;
}

.wls-exp-booking-card__tariff-payment-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(90, 76, 54, .12);
  color: #4f473d;
  font-size: 12.5px;
  line-height: 1.35;
}

.wls-exp-booking-card__tariff-payment-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border: 1px solid #dfd1bb;
  border-radius: 999px;
  background: #fffdf9;
  color: #756044;
  font-size: 12px;
  font-weight: 800;
}

.wls-exp-booking-card__tariff-payment-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.wls-exp-booking-card__tariff-payment-copy strong {
  color: #3f382f;
  font-size: inherit;
  font-weight: 750;
}

.wls-exp-booking-card__tariff-payment-copy span {
  color: #786f64;
  font-size: 11.5px;
}

@media (max-width: 600px) {
  .wls-exp-booking-card__tariff-payment-note {
    margin-top: 7px;
    padding-top: 9px;
    font-size: 13px;
  }
}

/* ==========================================================
   v1.10.22 — Mobile gallery + native Amelia checkout
   - Show exactly two gallery slides on phones.
   - Do not override Amelia modal height, scrolling, footer, fields or
     Google Places UI. Checkout reliability takes priority over a fixed CTA.
   ========================================================== */

@media (max-width: 600px) {
  .wls-exp-gallery__mobile-track {
    grid-auto-columns: calc((100% - 10px) / 2) !important;
    padding-right: 0 !important;
    column-gap: 10px !important;
  }

  .wls-exp-gallery__mobile-slide,
  .wls-exp-gallery__mobile-track > .wls-exp-gallery__mobile-slide {
    aspect-ratio: 4 / 5 !important;
  }
}


/* ==========================================================
   v1.10.23 — Amelia mobile: minimal persistent action footer
   Keep Amelia's native modal, scrolling and form fields untouched.
   Only pin the existing action footer and reserve enough content space
   so Continue / Payment remains visible without covering the last fields.
   ========================================================== */
@media only screen and (max-width: 768px) {
  body .amelia-v2-booking #amelia-container .am-fs__main-content {
    padding-bottom: 86px !important;
  }

  body .amelia-v2-booking #amelia-container .am-fs__main-footer {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    z-index: 2147483000 !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 -8px 24px rgba(28,35,42,.10) !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }

  body .amelia-v2-booking #amelia-container .am-fs__main-footer button,
  body .amelia-v2-booking #amelia-container .am-fs__main-footer .am-button-continue {
    min-height: 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}


/* ==========================================================
   v1.12.1 — Booking privacy reassurance
   - The former fourth journey card is merged into step 1.
   - The compact privacy reassurance below availability remains.
   ========================================================== */
.wls-exp-booking-card__privacy-note {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-top: 11px !important;
  color: #5f6964 !important;
  font-size: 11.5px !important;
  line-height: 1.45 !important;
}

.wls-exp-booking-card__privacy-note > span {
  flex: 0 0 auto;
  margin-top: 1px;
  font-size: 12px;
}

@media (max-width: 600px) {
  .wls-exp-booking-guide__grid {
    grid-template-columns: 1fr;
  }

  .wls-exp-booking-card__privacy-note {
    font-size: 11.5px !important;
  }
}

/* ==================================================
   v1.11.0 — Automatic public experience template
================================================== */
.wls-public-experience-shell{
  width:min(100% - 40px, 1240px);
  margin:0 auto;
  padding:34px 0 76px;
  min-width:0;
}
.wls-public-experience-main{width:100%;min-width:0}
body.wls-public-experience .site-content,
body.wls-public-experience .content-area,
body.wls-public-experience main.site-main{min-width:0}
@media (max-width:782px){
  .wls-public-experience-shell{
    width:min(100% - 28px, 1240px);
    padding:18px 0 72px;
  }
}


/* ==========================================================
   v1.13.6 — concise "In breve" summary
   Five central facts are automatic; experience-specific facts can be appended.
   ========================================================== */
.wls-exp-quick-highlights {
  margin: 20px 0 36px !important;
}

.wls-exp-quick-highlights__eyebrow {
  display: block;
  margin: 0 0 9px;
  color: #53656e;
  font-size: 9.5px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .085em;
}

.wls-exp-quick-highlights__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  border: 0 !important;
}

.wls-exp-quick-highlight,
.wls-exp-quick-highlight:nth-child(3n+2),
.wls-exp-quick-highlight:nth-child(3n),
.wls-exp-quick-highlight:nth-last-child(-n+2) {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 72px;
  padding: 11px 13px 10px !important;
  border: 1px solid #e2e9ed !important;
  border-radius: 13px !important;
  background: #f8fafb !important;
  box-shadow: none !important;
  overflow: hidden;
}

.wls-exp-quick-highlight::before,
.wls-exp-quick-highlight:nth-child(3n+2)::before,
.wls-exp-quick-highlight:nth-child(3n)::before {
  width: 2px !important;
  background: color-mix(in srgb, var(--accent, #0787b5) 72%, #b2d5e1) !important;
  opacity: .9 !important;
}

.wls-exp-quick-highlight__label {
  display: block;
  overflow: hidden;
  color: #6a777e;
  font-size: 9.5px;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
  text-overflow: ellipsis;
}

.wls-exp-quick-highlight__value {
  display: block;
  min-width: 0;
  color: #172c36;
  font-size: 14.5px;
  line-height: 1.25;
  font-weight: 820;
  letter-spacing: -.012em;
  overflow-wrap: anywhere;
}

@media (max-width: 980px) {
  .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .wls-exp-quick-highlights {
    margin: 16px 0 28px !important;
  }
  .wls-exp-quick-highlights__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .wls-exp-quick-highlight,
  .wls-exp-quick-highlight:nth-child(3n+2),
  .wls-exp-quick-highlight:nth-child(3n),
  .wls-exp-quick-highlight:nth-last-child(-n+2) {
    min-height: 66px;
    padding: 9px 10px 8px !important;
    border-radius: 11px !important;
  }
  .wls-exp-quick-highlight__value {
    font-size: 13.4px;
    line-height: 1.2;
  }
  .wls-exp-quick-highlight__label {
    font-size: 8.5px;
    line-height: 1.1;
  }
  /* With only the five automatic facts, Lingue closes the summary as a compact full-width row.
     As soon as an extra fact is added it naturally pairs with it in the two-column grid. */
  .wls-exp-quick-highlight.is-languages:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    min-height: 58px;
  }
}

@media (max-width: 340px) {
  .wls-exp-quick-highlight__value { font-size: 12.8px; }
  .wls-exp-quick-highlight__label { font-size: 8.2px; }
}



/* ==========================================================
   v1.13.8 — mobile Dati principali: always-visible 2-column grid
   Strongly scoped rules intentionally override the older responsive layers
   still kept in the historical stylesheet.
   ========================================================== */
body.wls-public-experience .wls-exp-quick-highlights__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  overflow: visible !important;
  border: 0 !important;
}

body.wls-public-experience .wls-exp-quick-highlight,
body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n+2),
body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n),
body.wls-public-experience .wls-exp-quick-highlight:nth-last-child(-n+2) {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 76px !important;
  padding: 11px 13px 10px !important;
  gap: 5px !important;
  grid-column: auto !important;
  border: 1px solid #e2e9ed !important;
  border-radius: 13px !important;
  background: #f8fafb !important;
}

body.wls-public-experience .wls-exp-quick-highlight__label {
  display: block !important;
  order: 1 !important;
  margin: 0 !important;
  color: #6a777e !important;
  font-size: 9.5px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
}

body.wls-public-experience .wls-exp-quick-highlight__value {
  display: block !important;
  order: 2 !important;
  margin: 0 !important;
  color: #172c36 !important;
  font-size: 14.5px !important;
  line-height: 1.22 !important;
  font-weight: 820 !important;
  letter-spacing: -.012em !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 980px) {
  body.wls-public-experience .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  body.wls-public-experience .wls-exp-quick-highlights {
    margin: 16px 0 28px !important;
  }

  body.wls-public-experience .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body.wls-public-experience .wls-exp-quick-highlight,
  body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n+2),
  body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n),
  body.wls-public-experience .wls-exp-quick-highlight:nth-last-child(-n+2),
  body.wls-public-experience .wls-exp-quick-highlight.is-languages:last-child:nth-child(odd) {
    grid-column: auto !important;
    min-height: 82px !important;
    padding: 10px 11px 9px !important;
    border-radius: 12px !important;
  }

  body.wls-public-experience .wls-exp-quick-highlight__label {
    font-size: 8.8px !important;
    line-height: 1.1 !important;
  }

  body.wls-public-experience .wls-exp-quick-highlight__value {
    font-size: 13.2px !important;
    line-height: 1.2 !important;
  }
}

@media (max-width: 360px) {
  body.wls-public-experience .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__value {
    font-size: 12.4px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__label {
    font-size: 8.2px !important;
  }
}


/* ==========================================================
   v1.13.9 — compact quick facts
   Four fixed facts: Durata, Località, Attività, Lingue.
   Rating/reviews remain in the hero to avoid duplication.
   ========================================================== */
body.wls-public-experience .wls-exp-quick-highlights {
  margin: 10px 0 28px !important;
}

body.wls-public-experience .wls-exp-quick-highlights__eyebrow {
  display: none !important;
}

body.wls-public-experience .wls-exp-quick-highlights__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.wls-public-experience .wls-exp-quick-highlight,
body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n+2),
body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n),
body.wls-public-experience .wls-exp-quick-highlight:nth-last-child(-n+2),
body.wls-public-experience .wls-exp-quick-highlight.is-languages:last-child:nth-child(odd) {
  grid-column: auto !important;
  min-height: 62px !important;
  padding: 8px 10px 7px !important;
  gap: 3px !important;
  border-radius: 11px !important;
}

body.wls-public-experience .wls-exp-quick-highlight__label {
  font-size: 8.7px !important;
  line-height: 1.08 !important;
}

body.wls-public-experience .wls-exp-quick-highlight__value {
  font-size: 13.6px !important;
  line-height: 1.16 !important;
}

@media (max-width: 980px) {
  body.wls-public-experience .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  body.wls-public-experience .wls-exp-quick-highlights {
    margin: 12px 0 24px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight,
  body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n+2),
  body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n),
  body.wls-public-experience .wls-exp-quick-highlight:nth-last-child(-n+2),
  body.wls-public-experience .wls-exp-quick-highlight.is-languages:last-child:nth-child(odd) {
    min-height: 64px !important;
    padding: 8px 9px 7px !important;
    gap: 3px !important;
    border-radius: 10px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__label {
    font-size: 8.3px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__value {
    font-size: 12.9px !important;
    line-height: 1.16 !important;
  }
}

@media (max-width: 360px) {
  body.wls-public-experience .wls-exp-quick-highlight {
    min-height: 62px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__label {
    font-size: 8px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__value {
    font-size: 12.2px !important;
  }
}

/* ==========================================================
   v1.14.0 — visual refinement: "Perché vale la pena" + booking journey
   ========================================================== */

/* Perché vale la pena: replace technical 01/02 counters with a calmer,
   premium confirmation mark and lightweight editorial cards. */
body.wls-public-experience .wls-exp-highlights__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px 12px !important;
}

body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card,
body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(2),
body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(3),
body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(4),
body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(5),
body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(n+6),
body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-last-child(-n+2) {
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  gap: 11px !important;
  align-items: start !important;
  min-height: 0 !important;
  padding: 15px 16px !important;
  border: 1px solid #e4ecef !important;
  border-radius: 15px !important;
  background: linear-gradient(145deg, #ffffff 0%, #f9fbfc 100%) !important;
  box-shadow: 0 5px 18px rgba(18, 50, 64, .035) !important;
  overflow: hidden !important;
}

body.wls-public-experience .wls-exp-highlight-card__index {
  position: relative !important;
  width: 30px !important;
  height: 30px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid color-mix(in srgb, var(--accent, #0787b5) 24%, #dbe9ee) !important;
  border-radius: 10px !important;
  background: color-mix(in srgb, var(--accent, #0787b5) 9%, #fff) !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

body.wls-public-experience .wls-exp-highlight-card__index::before {
  content: "✓";
  color: var(--accent, #0787b5);
  font-size: 15px;
  line-height: 1;
  font-weight: 900;
}

body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card h3 {
  margin: 1px 0 4px !important;
  color: #172a33 !important;
  font-size: 15.5px !important;
  line-height: 1.25 !important;
  font-weight: 820 !important;
}

body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card p {
  margin: 0 !important;
  color: #5b686f !important;
  font-size: 13px !important;
  line-height: 1.48 !important;
}

@media (hover:hover) and (pointer:fine) {
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:hover {
    transform: translateY(-1px) !important;
    border-color: color-mix(in srgb, var(--accent, #0787b5) 22%, #dfe9ed) !important;
    box-shadow: 0 8px 22px rgba(18, 50, 64, .055) !important;
  }
}

/* Prenotare è semplice: one branded journey surface using the same
   blue-to-cream colour language as the WLS trust panel. */
body.wls-public-experience .wls-exp-how__steps {
  position: relative !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  padding: 12px !important;
  border: 1px solid #e3edf0 !important;
  border-radius: 20px !important;
  background: linear-gradient(135deg, #eefaff 0%, #f5fbfc 46%, #fff8ed 100%) !important;
  box-shadow: 0 8px 26px rgba(20, 52, 65, .04) !important;
  overflow: hidden !important;
}

body.wls-public-experience .wls-exp-how__step {
  position: relative !important;
  display: block !important;
  min-width: 0 !important;
  padding: 16px 15px 15px !important;
  border: 1px solid rgba(255,255,255,.88) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.72) !important;
  box-shadow: 0 3px 12px rgba(20, 52, 65, .025) !important;
}

body.wls-public-experience .wls-exp-how__step::after {
  content: none !important;
  display: none !important;
}

body.wls-public-experience .wls-exp-how__number {
  width: 29px !important;
  height: 29px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 0 11px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #dff4fb !important;
  color: #087ca8 !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
}

body.wls-public-experience .wls-exp-how__step:nth-child(2) .wls-exp-how__number {
  background: #edf5f2 !important;
  color: #477a70 !important;
}

body.wls-public-experience .wls-exp-how__step:nth-child(3) .wls-exp-how__number {
  background: #fff1d8 !important;
  color: #9a6a18 !important;
}

body.wls-public-experience .wls-exp-how__step h3 {
  margin: 0 !important;
  color: #172a33 !important;
  font-size: 15.5px !important;
  line-height: 1.25 !important;
  font-weight: 820 !important;
}

body.wls-public-experience .wls-exp-how__step p {
  margin: 6px 0 0 !important;
  color: #59676d !important;
  font-size: 12.8px !important;
  line-height: 1.5 !important;
}

@media (max-width: 700px) {
  body.wls-public-experience .wls-exp-highlights__grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card,
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(2),
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(3),
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(4),
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(5),
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(n+6),
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-last-child(-n+2) {
    grid-template-columns: 31px minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 13px 14px !important;
    border-radius: 13px !important;
  }
  body.wls-public-experience .wls-exp-highlight-card__index {
    width: 28px !important;
    height: 28px !important;
    border-radius: 9px !important;
  }
  body.wls-public-experience .wls-exp-highlight-card__index::before {
    font-size: 14px !important;
  }

  body.wls-public-experience .wls-exp-how__steps {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    padding: 9px !important;
    border-radius: 17px !important;
  }
  body.wls-public-experience .wls-exp-how__step {
    display: grid !important;
    grid-template-columns: 30px minmax(0, 1fr) !important;
    column-gap: 10px !important;
    padding: 13px !important;
    border-radius: 13px !important;
  }
  body.wls-public-experience .wls-exp-how__number {
    grid-row: 1 / 3 !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
  }
  body.wls-public-experience .wls-exp-how__step h3 {
    font-size: 14.8px !important;
  }
  body.wls-public-experience .wls-exp-how__step p {
    margin-top: 5px !important;
    font-size: 12.4px !important;
  }
}

/* ==================================================
   v1.14.1 — Booking journey palette + mobile swipe rail
   Correct target: .wls-exp-booking-guide ("Prenotare è semplice")
================================================== */
body.wls-public-experience .wls-exp-booking-guide__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 11px !important;
}

body.wls-public-experience .wls-exp-booking-guide__card {
  min-width: 0 !important;
  padding: 17px 17px 16px !important;
  border-radius: 17px !important;
  box-shadow: 0 5px 18px rgba(20, 52, 65, .035) !important;
}

/* Same colour language used by the WLS trust panel: blue -> calm neutral -> cream. */
body.wls-public-experience .wls-exp-booking-guide__card.is-booking {
  background: #eefaff !important;
  border-color: #d9edf4 !important;
}
body.wls-public-experience .wls-exp-booking-guide__card.is-cancellation {
  background: #f6fbf9 !important;
  border-color: #e1eee9 !important;
}
body.wls-public-experience .wls-exp-booking-guide__card.is-support {
  background: #fff8ed !important;
  border-color: #f1e3c9 !important;
}

body.wls-public-experience .wls-exp-booking-guide__icon {
  width: 27px !important;
  height: 27px !important;
  margin-bottom: 10px !important;
  border: 1px solid rgba(255,255,255,.95) !important;
  border-radius: 9px !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: 0 3px 10px rgba(20, 52, 65, .055) !important;
}
body.wls-public-experience .wls-exp-booking-guide__card.is-booking .wls-exp-booking-guide__icon {
  color: #087ca8 !important;
}
body.wls-public-experience .wls-exp-booking-guide__card.is-cancellation .wls-exp-booking-guide__icon {
  color: #477a70 !important;
}
body.wls-public-experience .wls-exp-booking-guide__card.is-support .wls-exp-booking-guide__icon {
  color: #936419 !important;
}

body.wls-public-experience .wls-exp-booking-guide__eyebrow {
  color: #66747a !important;
}
body.wls-public-experience .wls-exp-booking-guide__card h3 {
  color: #172a33 !important;
}
body.wls-public-experience .wls-exp-booking-guide__card p {
  color: #59676d !important;
}

@media (max-width: 700px) {
  /* One primary card at a time, with a deliberate peek of the next one.
     The scroll hint is visual rather than instructional. */
  body.wls-public-experience .wls-exp-booking-guide__grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 34px 6px 0 !important;
    margin-right: -18px !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding-left: 0 !important;
    overscroll-behavior-inline: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  body.wls-public-experience .wls-exp-booking-guide__grid::-webkit-scrollbar {
    display: none !important;
  }
  body.wls-public-experience .wls-exp-booking-guide__card {
    flex: 0 0 calc(100% - 42px) !important;
    width: calc(100% - 42px) !important;
    max-width: none !important;
    padding: 16px 15px 15px !important;
    border-radius: 16px !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
  }
}


/* ==================================================
   v1.14.2 — Things-to-know refinement
   Compact, readable information panels without another heavy card wall.
================================================== */
body.wls-public-experience .wls-exp-important__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  border-top: 0 !important;
}

body.wls-public-experience .wls-exp-important__item,
body.wls-public-experience .wls-exp-important__item:nth-child(3n+2),
body.wls-public-experience .wls-exp-important__item:nth-child(3n) {
  position: relative !important;
  display: block !important;
  min-width: 0 !important;
  padding: 14px 15px 14px 17px !important;
  border: 1px solid #e3eaed !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #fbfdfe 0%, #f7fafb 100%) !important;
  box-shadow: 0 3px 12px rgba(20, 52, 65, .025) !important;
  overflow: hidden !important;
}

body.wls-public-experience .wls-exp-important__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: color-mix(in srgb, var(--accent, #0787b5) 72%, #8fc9dc);
}

body.wls-public-experience .wls-exp-important__marker,
body.wls-public-experience .wls-exp-important__item:nth-child(3n+2) .wls-exp-important__marker,
body.wls-public-experience .wls-exp-important__item:nth-child(3n) .wls-exp-important__marker {
  display: none !important;
}

body.wls-public-experience .wls-exp-important__item h3 {
  margin: 0 0 5px !important;
  color: #182c35 !important;
  font-size: 14.5px !important;
  line-height: 1.28 !important;
  font-weight: 800 !important;
  letter-spacing: -.01em !important;
}

body.wls-public-experience .wls-exp-important__item p {
  margin: 0 !important;
  color: #53636b !important;
  font-size: 12.8px !important;
  line-height: 1.5 !important;
}

@media (hover:hover) and (pointer:fine) {
  body.wls-public-experience .wls-exp-important__item:hover {
    border-color: #d9e7ec !important;
    background: #fbfdfe !important;
    box-shadow: 0 7px 20px rgba(20, 52, 65, .045) !important;
  }
}

@media (max-width: 782px) {
  body.wls-public-experience .wls-exp-important__grid {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }
  body.wls-public-experience .wls-exp-important__item,
  body.wls-public-experience .wls-exp-important__item:nth-child(3n+2),
  body.wls-public-experience .wls-exp-important__item:nth-child(3n) {
    padding: 12px 13px 12px 15px !important;
    border-radius: 13px !important;
  }
  body.wls-public-experience .wls-exp-important__item::before {
    top: 10px;
    bottom: 10px;
  }
  body.wls-public-experience .wls-exp-important__item h3 {
    font-size: 14px !important;
  }
  body.wls-public-experience .wls-exp-important__item p {
    font-size: 12.6px !important;
    line-height: 1.48 !important;
  }
}

/* =========================================================
   v1.14.3 — FAQ progressive disclosure
   ========================================================= */
.wls-exp-faq__more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 16px 0 0;
  padding: 10px 16px;
  border: 1px solid #c9d8df;
  border-radius: 999px;
  background: #fff;
  color: #0c647f;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.wls-exp-faq__more:hover {
  background: #f5fafc;
  border-color: #9fc3d1;
}
.wls-exp-faq__more:focus-visible {
  outline: 2px solid var(--accent,#0787b5);
  outline-offset: 3px;
}
.wls-exp-faq__more:active { transform: translateY(1px); }
.wls-exp-faq__item[hidden] { display: none !important; }

@media (max-width: 767px) {
  .wls-exp-faq__more {
    width: 100%;
    margin-top: 14px;
    padding: 12px 16px;
  }
}

/* ==========================================================
   v1.14.5 — Mobile UX compact pass; GTranslate relocation rolled back
   Same information architecture, less vertical travel on phones.
   ========================================================== */

/* The mobile "Cose da sapere" toggles are progressively enhanced by JS.
   Desktop remains fully expanded and visually consistent. */
body.wls-public-experience .wls-exp-important__content {
  min-width: 0;
}
body.wls-public-experience .wls-exp-important__item h3 {
  margin: 0 0 5px !important;
}
body.wls-public-experience .wls-exp-important__toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  text-align: left;
}
body.wls-public-experience .wls-exp-important__toggle-icon {
  display: none;
}
body.wls-public-experience .wls-exp-important__body[hidden] {
  display: none !important;
}

@media (max-width: 782px) {
  body.wls-public-experience .wls-public-experience-shell {
    padding-top: 7px !important;
    padding-bottom: 26px !important;
  }

  body.wls-public-experience .wls-exp-page__gallery {
    margin-bottom: 16px !important;
  }

  /* Hero: keep hierarchy, remove unnecessary air. */
  body.wls-public-experience .wls-exp-page__main > .wls-exp-hero-summary {
    gap: 14px !important;
    margin-top: 8px !important;
    margin-bottom: 20px !important;
  }
  body.wls-public-experience .wls-exp-hero-summary__location {
    margin-bottom: 5px !important;
  }
  body.wls-public-experience .wls-exp-hero-summary__rating {
    margin-top: 9px !important;
  }
  body.wls-public-experience .wls-exp-hero-summary__trust {
    margin-top: 10px !important;
  }
  body.wls-public-experience .wls-exp-hero-summary__intro {
    margin-top: 12px !important;
  }

  /* Four quick facts: same 2x2 scan pattern, slightly denser. */
  body.wls-public-experience .wls-exp-quick-highlights {
    margin: 8px 0 19px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlights__grid {
    gap: 6px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight,
  body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n+2),
  body.wls-public-experience .wls-exp-quick-highlight:nth-child(3n),
  body.wls-public-experience .wls-exp-quick-highlight:nth-last-child(-n+2),
  body.wls-public-experience .wls-exp-quick-highlight.is-languages:last-child:nth-child(odd) {
    min-height: 56px !important;
    padding: 7px 9px 6px !important;
    gap: 2px !important;
    border-radius: 10px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__label {
    font-size: 8px !important;
  }
  body.wls-public-experience .wls-exp-quick-highlight__value {
    font-size: 12.5px !important;
    line-height: 1.14 !important;
  }

  /* Consistent mobile rhythm: content remains premium but no section wastes a screen. */
  body.wls-public-experience .wls-exp-content-section {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
  }
  body.wls-public-experience .wls-exp-section-head {
    margin-bottom: 14px !important;
  }
  body.wls-public-experience .wls-exp-section-head h2 {
    font-size: 25px !important;
  }
  body.wls-public-experience .wls-exp-section-head p {
    margin-top: 7px !important;
  }

  /* The complete mobile booking card stays useful but consumes less height. */
  body.wls-public-experience .wls-exp-page__mobile-inline-booking {
    margin: 3px 0 27px !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking > .wls-exp-booking-card {
    border-radius: 18px !important;
    box-shadow: 0 10px 26px rgba(20,39,49,.085) !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__header {
    padding: 16px 17px 12px !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__eyebrow {
    margin-bottom: 6px !important;
    font-size: 10px !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__title {
    font-size: 16px !important;
    line-height: 1.2 !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__tariff-box {
    margin: 10px 14px 0 !important;
    padding: 6px 11px 4px !important;
    border-radius: 14px !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__tariff-heading {
    padding: 2px 0 3px !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__tariff {
    min-height: 43px !important;
    padding: 6px 0 !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__tariff-payment-note {
    margin-top: 5px !important;
    padding-top: 7px !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card a.wls-exp-booking-card__cta {
    width: calc(100% - 28px) !important;
    min-height: 48px !important;
    margin: 11px 14px 0 !important;
  }
  body.wls-public-experience .wls-exp-page__mobile-inline-booking .wls-exp-booking-card__privacy-note {
    margin: 8px 14px 14px !important;
    font-size: 10.8px !important;
    line-height: 1.4 !important;
  }

  /* Strong points: keep every reason visible, with less card-wall effect. */
  body.wls-public-experience .wls-exp-highlights__grid {
    gap: 6px !important;
  }
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card,
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card:nth-child(n) {
    grid-template-columns: 28px minmax(0,1fr) !important;
    gap: 9px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
  }
  body.wls-public-experience .wls-exp-highlight-card__index {
    width: 26px !important;
    height: 26px !important;
    border-radius: 8px !important;
  }
  body.wls-public-experience .wls-exp-highlight-card__index::before {
    font-size: 13px !important;
  }
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card h3 {
    margin-bottom: 3px !important;
    font-size: 14.3px !important;
  }
  body.wls-public-experience .wls-exp-highlights .wls-exp-highlight-card p {
    font-size: 12.25px !important;
    line-height: 1.42 !important;
  }

  /* WLS trust signature: same design language, roughly 20% less vertical space. */
  body.wls-public-experience .wls-exp-why-wls__panel {
    gap: 9px !important;
    padding: 18px 15px !important;
    border-radius: 17px !important;
  }
  body.wls-public-experience .wls-exp-why-wls__title-wrap h2 {
    max-width: 14ch !important;
    font-size: 23px !important;
  }
  body.wls-public-experience .wls-exp-why-wls__item {
    grid-template-columns: 27px minmax(0,1fr) !important;
    gap: 9px !important;
    padding: 8px 0 !important;
  }
  body.wls-public-experience .wls-exp-why-wls__icon {
    width: 26px !important;
    height: 26px !important;
  }
  body.wls-public-experience .wls-exp-why-wls__icon svg {
    width: 15px !important;
    height: 15px !important;
  }
  body.wls-public-experience .wls-exp-why-wls__item h3 {
    font-size: 14.2px !important;
  }
  body.wls-public-experience .wls-exp-why-wls__item p {
    font-size: 12.35px !important;
    line-height: 1.42 !important;
  }

  /* Included / excluded remains immediately visible, just tighter. */
  body.wls-public-experience .wls-exp-inclusions__grid,
  body.wls-public-experience .wls-exp-inclusions__grid.is-single {
    gap: 8px !important;
  }
  body.wls-public-experience .wls-exp-inclusion-panel {
    padding: 14px !important;
    border-radius: 14px !important;
  }
  body.wls-public-experience .wls-exp-inclusion-panel__title {
    margin-bottom: 10px !important;
    font-size: 15px !important;
  }
  body.wls-public-experience .wls-exp-inclusion-panel ul {
    gap: 7px !important;
  }
  body.wls-public-experience .wls-exp-inclusion-panel li {
    font-size: 12.8px !important;
    line-height: 1.4 !important;
  }

  /* Things to know: titles are always scannable; details expand only when needed. */
  body.wls-public-experience .wls-exp-important__grid {
    display: block !important;
    border-top: 1px solid #e2e9ec !important;
  }
  body.wls-public-experience .wls-exp-important__item,
  body.wls-public-experience .wls-exp-important__item:nth-child(n) {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e2e9ec !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  body.wls-public-experience .wls-exp-important__item::before,
  body.wls-public-experience .wls-exp-important__marker {
    display: none !important;
  }
  body.wls-public-experience .wls-exp-important__item h3 {
    margin: 0 !important;
  }
  body.wls-public-experience .wls-exp-important__toggle {
    min-height: 48px;
    padding: 12px 1px;
    cursor: pointer;
    color: #19303a;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 790;
  }
  body.wls-public-experience .wls-exp-important__toggle-icon {
    position: relative;
    display: inline-flex;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    border: 1px solid #d5e1e6;
    border-radius: 50%;
  }
  body.wls-public-experience .wls-exp-important__toggle-icon::before,
  body.wls-public-experience .wls-exp-important__toggle-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 9px;
    height: 1.5px;
    border-radius: 2px;
    background: #44616d;
    transform: translate(-50%,-50%);
    transition: transform .18s ease;
  }
  body.wls-public-experience .wls-exp-important__toggle-icon::after {
    transform: translate(-50%,-50%) rotate(90deg);
  }
  body.wls-public-experience .wls-exp-important__toggle[aria-expanded="true"] .wls-exp-important__toggle-icon::after {
    transform: translate(-50%,-50%) rotate(0deg);
  }
  body.wls-public-experience .wls-exp-important__body {
    padding: 0 36px 13px 1px;
  }
  body.wls-public-experience .wls-exp-important__body p {
    font-size: 12.65px !important;
    line-height: 1.48 !important;
  }

  /* Meeting point: same clarity with less card nesting and padding. */
  body.wls-public-experience .wls-exp-meeting__panel {
    padding: 13px !important;
    border-radius: 17px !important;
  }
  body.wls-public-experience .wls-exp-meeting__card {
    padding: 13px !important;
    border-radius: 14px !important;
  }
  body.wls-public-experience .wls-exp-meeting__maps {
    min-height: 43px !important;
  }
  body.wls-public-experience .wls-exp-meeting__note {
    margin-top: 10px !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
  }

  /* Related cards end closer to the footer; remove the artificial tail. */
  body.wls-public-experience .wls-exp-page__related {
    margin-top: 34px !important;
    padding-top: 24px !important;
  }
  body.wls-public-experience .wls-exp-related .wls-exp-carousel__header {
    margin-bottom: 13px !important;
  }
  body.wls-public-experience .wls-exp-related .wls-exp-carousel__track {
    padding-bottom: 2px !important;
  }

  /* Keep the persistent CTA thin. Its vertical offset only changes when the
     language widget was actually relocated successfully. */
  body.wls-public-experience .wls-exp-mobile-booking__main {
    min-height: 45px !important;
  }
  body.wls-public-experience .wls-exp-mobile-booking__main > a,
  body.wls-public-experience .wls-exp-mobile-booking a {
    min-height: 43px !important;
  }

}

@media (prefers-reduced-motion: reduce) {
  body.wls-public-experience .wls-exp-important__toggle-icon::after {
    transition: none !important;
  }
}


/* v1.15.1 — Amelia is hydrated only after an explicit booking interaction. */
[data-wls-amelia-trigger="1"].is-wls-booking-loading {
  position: relative;
  color: transparent !important;
  cursor: wait;
  pointer-events: none;
}
[data-wls-amelia-trigger="1"].is-wls-booking-loading * {
  visibility: hidden !important;
}
[data-wls-amelia-trigger="1"].is-wls-booking-loading::after {
  content: "Caricamento…";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #17252c;
  font: inherit;
  font-weight: 800;
}

/* v1.15.2 — Lazy Amelia booking without parent-page reload. */
html.wls-booking-modal-open,
body.wls-booking-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}
.wls-booking-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
}
.wls-booking-modal.is-open { opacity: 1; visibility: visible; }
.wls-booking-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 24, 31, .62);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.wls-booking-modal__panel {
  position: relative;
  z-index: 1;
  width: min(920px, 100%);
  height: min(90dvh, 860px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(10, 31, 42, .28);
  border: 1px solid rgba(7, 92, 125, .12);
}
.wls-booking-modal__close {
  position: absolute;
  z-index: 4;
  top: 12px;
  right: 12px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(10, 48, 65, .15);
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  color: #102c39;
  box-shadow: 0 5px 16px rgba(10,31,42,.12);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.wls-booking-modal__frame {
  display: block;
  width: 100%;
  height: auto;
  flex: 1 1 auto;
  min-height: 0;
  border: 0;
  background: #fff;
  opacity: 0;
  transition: opacity .18s ease;
}
.wls-booking-modal__frame.is-loaded { opacity: 1; }
.wls-booking-modal__notice {
  position: relative;
  z-index: 3;
  flex: 0 0 auto;
  margin: 0;
  padding: 14px 66px 13px 18px;
  border-bottom: 1px solid rgba(7, 116, 160, .14);
  background: #eefaff;
  color: #17313e;
}
.wls-booking-modal__notice[hidden] { display: none !important; }
.wls-booking-modal__notice strong {
  display: block;
  margin: 0 0 3px;
  color: #075c7d;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.wls-booking-modal__notice p {
  margin: 0;
  color: #2d4652;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
}
.wls-booking-modal__loading,
.wls-booking-modal__error {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 32px;
  text-align: center;
  background: linear-gradient(145deg,#f0fbff 0%,#fff 58%,#fff8e8 100%);
  color: #17313e;
}
.wls-booking-modal__loading[hidden],
.wls-booking-modal__error[hidden] { display: none !important; }
.wls-booking-modal__loading strong,
.wls-booking-modal__error strong { font-size: 18px; }
.wls-booking-modal__loading small { color: #647782; }
.wls-booking-modal__spinner {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 3px solid rgba(7,116,160,.16);
  border-top-color: #0877a5;
  animation: wlsBookingSpin .75s linear infinite;
}
.wls-booking-modal__error a {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 20px;
  border-radius: 12px;
  background: #0877a5;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
}
@keyframes wlsBookingSpin { to { transform: rotate(360deg); } }
@media (max-width: 699px) {
  .wls-booking-modal { padding: 0; place-items: stretch; }
  .wls-booking-modal__panel {
    width: 100%;
    height: 100dvh;
    max-height: none;
    border: 0;
    border-radius: 0;
  }
  .wls-booking-modal__close {
    top: max(10px, env(safe-area-inset-top));
    right: 10px;
  }
  .wls-booking-modal__notice {
    padding: max(12px, env(safe-area-inset-top)) 58px 11px 14px;
  }
  .wls-booking-modal__notice strong { font-size: 11px; }
  .wls-booking-modal__notice p { font-size: 13px; line-height: 1.4; }
}
@media (prefers-reduced-motion: reduce) {
  .wls-booking-modal,
  .wls-booking-modal__frame { transition: none; }
  .wls-booking-modal__spinner { animation-duration: 1.5s; }
}

/* ==================================================
   v1.15.10 — Compact optional extra-cost cue
   Main booking box stays visually quiet; full pricing details belong in
   Non incluso / Cose da sapere. Sticky mobile keeps the same micro-label.
================================================== */
.wls-exp-booking-card__extra-cost-inline {
  margin: 6px 0 0;
  color: #776b56;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: .01em;
}

.wls-exp-booking-card__extra-cost-inline > span {
  font-weight: 900;
}

.wls-exp-mobile-booking__extra-cost {
  display: block;
  margin-top: 1px;
  color: #856315 !important;
  font-size: 9.5px !important;
  line-height: 1.15;
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 600px) {
  .wls-exp-booking-card__extra-cost-inline {
    margin-top: 5px;
    font-size: 10px;
  }

  .wls-exp-mobile-booking__price > .wls-exp-mobile-booking__extra-cost {
    display: block !important;
    max-width: 132px;
    margin-top: 1px;
    color: #856315 !important;
    font-size: 9px !important;
    font-weight: 800;
  }
}

/* ==================================================
   v1.15.12 — Optional private-tour callout
================================================== */
.wls-exp-private-tour {
  margin-top: 18px;
  padding: 17px 18px;
  border: 1px solid #d9edf4;
  border-radius: 16px;
  background: #eefaff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.wls-exp-private-tour__copy { min-width: 0; }
.wls-exp-private-tour__eyebrow {
  display: block;
  margin-bottom: 4px;
  color: #0877a5;
  font-size: 10px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: .08em;
}
.wls-exp-private-tour h3 {
  margin: 0;
  color: #17324a;
  font-size: 17px;
  line-height: 1.25;
}
.wls-exp-private-tour p {
  margin: 5px 0 0;
  color: #5b6670;
  font-size: 13.5px;
  line-height: 1.45;
}
.wls-exp-private-tour__cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  padding: 0 15px;
  border: 1px solid rgba(8,119,165,.22);
  border-radius: 12px;
  background: #fff;
  color: #0877a5;
  text-decoration: none;
  font-size: 12.5px;
  font-weight: 850;
  box-shadow: 0 5px 16px rgba(17,67,88,.06);
}
.wls-exp-private-tour__cta:hover {
  color: #075f83;
  border-color: rgba(8,119,165,.38);
  transform: translateY(-1px);
}
@media (max-width: 699px) {
  .wls-exp-private-tour {
    margin-top: 12px;
    padding: 14px;
    border-radius: 14px;
    align-items: flex-start;
    flex-direction: column;
    gap: 11px;
  }
  .wls-exp-private-tour h3 { font-size: 15.5px; }
  .wls-exp-private-tour p { font-size: 12.5px; }
  .wls-exp-private-tour__cta {
    min-height: 39px;
    padding: 0 13px;
  }
}

/* ==================================================
   v1.15.14 — Private-tour callout visual refinement
   Calm light-blue surface (same family as booking step 1), with a
   slimmer mobile treatment and no eyebrow label on small screens.
================================================== */
.wls-exp-page .wls-exp-highlights .wls-exp-private-tour {
  background: #eefaff !important;
  border-color: #d9edf4 !important;
  box-shadow: 0 5px 18px rgba(20, 52, 65, .035) !important;
}

@media (max-width: 699px) {
  .wls-exp-page .wls-exp-highlights .wls-exp-private-tour {
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 11px 12px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    align-items: stretch !important;
    border: 1px solid #d9edf4 !important;
    border-radius: 14px !important;
    background: #eefaff !important;
    box-shadow: 0 4px 14px rgba(20, 52, 65, .035) !important;
  }

  .wls-exp-page .wls-exp-highlights .wls-exp-private-tour__copy {
    min-width: 0 !important;
    display: block !important;
  }

  /* On mobile the title is self-explanatory: removing the eyebrow saves
     vertical space and keeps this callout visually secondary. */
  .wls-exp-page .wls-exp-highlights .wls-exp-private-tour__eyebrow {
    display: none !important;
  }

  .wls-exp-page .wls-exp-highlights .wls-exp-private-tour h3 {
    margin: 0 !important;
    color: #17324a !important;
    font-size: 15.5px !important;
    line-height: 1.18 !important;
    font-weight: 850 !important;
  }

  .wls-exp-page .wls-exp-highlights .wls-exp-private-tour p {
    margin: 3px 0 0 !important;
    color: #5b6670 !important;
    font-size: 12.25px !important;
    line-height: 1.36 !important;
  }

  .wls-exp-page .wls-exp-highlights .wls-exp-private-tour__cta {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 36px !important;
    padding: 0 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    border: 1px solid rgba(8,119,165,.22) !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.82) !important;
    color: #0877a5 !important;
    text-decoration: none !important;
    font-size: 12.25px !important;
    line-height: 1 !important;
    font-weight: 850 !important;
    box-shadow: none !important;
  }
}

/* Keep optional extra-cost labels exact and compact. */
.wls-exp-booking-card__extra-cost-inline,
.wls-exp-mobile-booking__extra-cost {
  max-width: 100%;
  overflow-wrap: anywhere;
}
