.single-sp_package #main #content-wrap{ padding-top:0 !important; }

/* Layout */
.sp-heroLR{
  width: min(1240px, calc(100% - 36px));
  margin: 22px auto 0;
  display:grid;
  grid-template-columns: 1.25fr .75fr; /* keep original hero ratio */
  gap: 22px;
  align-items:start;
}

/* =========================
   LEFT: GALLERY
========================= */
.sp-gal{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  background: #0b0d12;
  box-shadow: 0 18px 60px rgba(0,0,0,.22);
  aspect-ratio: 16/9;
}

.sp-gal__track{
  display:flex;
  width:100%;
  height:100%;
  transition: transform .35s ease;
}

.sp-gal__slide{
  min-width:100%;
  height:100%;
  position: relative;
}

.sp-gal__slide img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.sp-gal__fade{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.0) 45%, rgba(0,0,0,.55) 100%);
}

.sp-gal__caption{
  position:absolute;
  left: 16px;
  right: 16px;
  bottom: 14px;
  text-align:center;
  color:#fff;
  font-weight:800;
  font-size: 22px;
  letter-spacing: -0.02em;
  text-shadow: 0 16px 50px rgba(0,0,0,.55);
}

.sp-gal__nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(10px);
  cursor:pointer;
  box-shadow: 0 18px 55px rgba(0,0,0,.25);
}
.sp-gal__nav:before{
  content:"";
  position:absolute;
  inset: 0;
  margin:auto;
  width: 10px;
  height: 10px;
  border: 2px solid rgba(255,255,255,.95);
  border-top:0;
  border-right:0;
  transform: rotate(45deg);
  border-radius: 2px;
}
.sp-gal__nav--prev{ left: 14px; }
.sp-gal__nav--next{ right: 14px; }
.sp-gal__nav--next:before{ transform: rotate(-135deg); }
.sp-gal__nav:hover{ transform: translateY(-50%) scale(1.03); }

.sp-gal__dots{
  position:absolute;
  left:0; right:0;
  bottom: 10px;
  display:flex;
  justify-content:center;
  gap: 8px;
  z-index: 3;
}
.sp-gal__dots button{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  background: rgba(255,255,255,.35);
  cursor:pointer;
}
.sp-gal__dots button.is-active{ background: rgba(255,255,255,.92); }

/* =========================
   RIGHT PANEL
========================= */
.sp-heroLR__right{
  display:flex;
  flex-direction:column;
  gap: 8px;
  padding-top: 6px;
}

.sp-kicker{
  font-size: 13px;
  font-weight: 700;
  color: rgba(11,13,18,.65);
}

.sp-title{
  margin: 0;
  font-size: 36px;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

/* Meta line: pill + stars + text (one row) */
.sp-metaLine{
  display:flex;
  align-items:center;
  gap: 12px;
  flex-wrap:wrap;
  margin-top: 6px;
}

.sp-pill{
  display:inline-flex;
  align-items:center;
  padding: 7px 10px;
  border-radius: 6px;
  background: rgba(11,13,18,.80);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

/* Stars */
.sp-stars{
  display:inline-flex;
  gap: 3px;
  align-items:center;
}
.sp-stars i{
  width: 14px;
  height: 14px;
  display:inline-block;
  background: #f59e0b;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.sp-metaText{
  font-size: 13px;
  color: rgba(11,13,18,.65);
  font-weight: 700;
}

/* Card */
.sp-card{
  margin-top: 12px;
  border-radius: 14px;
  border: 1px solid rgba(11,13,18,.12);
  background:#fff;
  box-shadow: 0 18px 55px rgba(0,0,0,.08);
  padding: 16px;
}

/* Price row */
.sp-priceRow{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 12px;
}

.sp-priceMain{
  display:flex;
  align-items:baseline;
  gap: 10px;
  flex-wrap:wrap;
}
.sp-priceAmt{
  font-size: 30px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: #0b0d12;
}
.sp-priceUnit{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  color: rgba(11,13,18,.55);
}

.sp-priceSide{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.sp-priceMrp{
  font-size: 13px;
  font-weight: 800;
  color: rgba(11,13,18,.45);
  text-decoration: line-through;
}
.sp-offBadge{
  font-size: 12px;
  font-weight: 900;
  padding: 6px 10px;
  border-radius: 999px;
  background: #f97316;
  color: #fff;
}

/* Save line */
.sp-saveLine{
  margin-top: 8px;
  font-size: 13px;
  color: #059669;
  font-weight: 800;
}

/* CTA GRID: 40/40/20 */
.sp-ctaGrid{
  margin-top: 14px;
  display:grid;
  grid-template-columns: minmax(0,2fr) minmax(0,2fr) 52px; /* 40/40/20 + fixed WA */
  gap: 10px;
  align-items:center;
}

.sp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border-radius: 999px;
  padding: 12px 14px;
  font-weight: 700;
  font-size: 13px;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  border: 1px solid rgba(11,13,18,.10);
  min-height: 44px;
}
.sp-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 55px rgba(0,0,0,.14);
}

/* Book Now */
.sp-btn--book{
  color:#fff !important;
  border: 0;
  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,168,90,.95));
}
.sp-btn--book:hover{
  color:#fff !important;
  filter: brightness(0.98);
}

/* Enquire (black hover text) */
.sp-btn--enq{
  background: #fff;
  color:#111 !important;
  border: 1px solid rgba(11,13,18,.14);
}
.sp-btn--enq:hover{
  color:#111 !important;
  background: rgba(0,0,0,.03);
  border-color: rgba(0,0,0,.16);
}

/* WhatsApp (green circular button, white icon) */
.sp-btn--wa{
  background: #16a34a;
  border: 0;
  width: 52px;
  height: 44px;
  padding: 0;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow: 0 12px 30px rgba(0,0,0,.12);
}
.sp-btn--wa:hover{
  filter: brightness(0.98);
}
.sp-btn--wa i{
  color:#fff;
  font-size: 18px;
  line-height: 1;
}
.sp-waIcon{
  width: 18px;
  height: 18px;
  display:inline-block;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M19.11 17.45c-.28-.14-1.64-.81-1.89-.9-.25-.09-.44-.14-.62.14-.18.28-.71.9-.87 1.09-.16.18-.32.21-.6.07-.28-.14-1.17-.43-2.23-1.38-.82-.73-1.38-1.64-1.54-1.92-.16-.28-.02-.43.12-.57.13-.13.28-.32.43-.48.14-.16.19-.28.28-.46.09-.18.05-.35-.02-.48-.07-.14-.62-1.5-.85-2.06-.22-.53-.45-.46-.62-.47l-.53-.01c-.18 0-.48.07-.73.35-.25.28-.96.94-.96 2.29s.99 2.66 1.13 2.84c.14.18 1.95 2.98 4.73 4.18.66.29 1.18.46 1.58.59.66.21 1.26.18 1.74.11.53-.08 1.64-.67 1.87-1.32.23-.65.23-1.2.16-1.32-.07-.12-.25-.19-.53-.33zM16.02 3C9.4 3 4.02 8.38 4.02 15c0 2.09.55 4.13 1.6 5.93L4 29l8.25-1.57c1.74.95 3.7 1.45 5.77 1.45 6.62 0 12-5.38 12-12S22.64 3 16.02 3zm0 23.2c-1.88 0-3.69-.51-5.26-1.47l-.38-.23-4.9.93.94-4.78-.25-.39A10.1 10.1 0 0 1 5.9 15c0-5.57 4.55-10.1 10.12-10.1S26.14 9.43 26.14 15s-4.55 10.2-10.12 10.2z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M19.11 17.45c-.28-.14-1.64-.81-1.89-.9-.25-.09-.44-.14-.62.14-.18.28-.71.9-.87 1.09-.16.18-.32.21-.6.07-.28-.14-1.17-.43-2.23-1.38-.82-.73-1.38-1.64-1.54-1.92-.16-.28-.02-.43.12-.57.13-.13.28-.32.43-.48.14-.16.19-.28.28-.46.09-.18.05-.35-.02-.48-.07-.14-.62-1.5-.85-2.06-.22-.53-.45-.46-.62-.47l-.53-.01c-.18 0-.48.07-.73.35-.25.28-.96.94-.96 2.29s.99 2.66 1.13 2.84c.14.18 1.95 2.98 4.73 4.18.66.29 1.18.46 1.58.59.66.21 1.26.18 1.74.11.53-.08 1.64-.67 1.87-1.32.23-.65.23-1.2.16-1.32-.07-.12-.25-.19-.53-.33zM16.02 3C9.4 3 4.02 8.38 4.02 15c0 2.09.55 4.13 1.6 5.93L4 29l8.25-1.57c1.74.95 3.7 1.45 5.77 1.45 6.62 0 12-5.38 12-12S22.64 3 16.02 3zm0 23.2c-1.88 0-3.69-.51-5.26-1.47l-.38-.23-4.9.93.94-4.78-.25-.39A10.1 10.1 0 0 1 5.9 15c0-5.57 4.55-10.1 10.12-10.1S26.14 9.43 26.14 15s-4.55 10.2-10.12 10.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Responsive */
@media (max-width: 980px){
  .sp-heroLR{ grid-template-columns: 1fr; }
  .sp-gal{ aspect-ratio: 16/10; }
}
@media (max-width: 520px){
  /* Keep in ONE row: 40% + 40% + 20% */
  .sp-ctaGrid{
    grid-template-columns: 2.5fr 2.5fr .5fr; /* 40/40/20 */
    gap: 8px;
    align-items: center;
  }

  /* Buttons should not wrap */
  .sp-btn{
    width: 100%;
    min-width: 0;
    padding: 12px 10px;   /* slightly tighter on small screens */
    white-space: nowrap;  /* keep text in one line */
  }

  /* WhatsApp becomes the 20% column (not fixed 52px) */
  .sp-btn--wa{
    width: 100%;
    height: 44px;
    padding: 0;
  }
}


/* =========================
   PRICING: FROM / TO ROW
========================= */
.sp-routeRow{
  margin-top: 12px;
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
}
.sp-routeItem{
  flex: 1 1 140px;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(11,13,18,.02);
  border-radius: 12px;
  padding: 10px 12px;
}
.sp-routeLbl{
  display:block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  color: rgba(11,13,18,.55);
}
.sp-routeVal{
  display:block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 800;
  color: rgba(11,13,18,.92);
  line-height: 1.25;
}


/* Responsive fine-tuning */
@media (max-width: 520px){
  .sp-btn--wa{
    width: 44px;
  }
}

/* =========================
   STICKY NAV (under fixed header)
========================= */
.sp-stickyNav{
  position: relative;
  z-index: 90;
  background: transparent;
  padding: 14px 0;
}

/* When hero is out => FIXED under header */
.sp-stickyNav.is-stuck{
  position: fixed;
  left: 0;
  right: 0;
  top: var(--spStickyTop, 0px); /* set by JS to match header height */
  z-index: 99996; /* below header (cc-header:99997), above content */
}

/* Pill container */
.sp-stickyNav__inner{
  width: min(1240px, calc(100% - 36px)); /* same as hero */
  margin: 0 auto;

  background: #ffffff;
  border: 1px solid rgba(11,13,18,.14);
  border-radius: 18px;

  box-shadow: 0 10px 26px rgba(0,0,0,.06);
  padding: 12px 14px;

  display: flex;
  align-items: center;
  gap: 28px;

  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.sp-stickyNav__inner::-webkit-scrollbar{ display:none; }

/* Links */
.sp-stickyNav__link{
  position: relative;
  display: inline-flex;
  align-items: center;

  white-space: nowrap;
  text-decoration: none;

  font-size: 14px;
  font-weight: 600;
  color: rgba(11,13,18,.75);

  padding: 10px 6px;
  transition: color .18s ease;
}
.sp-stickyNav__link:hover{ color: rgba(11,13,18,1); }

/* Active state */
.sp-stickyNav__link.is-active{
  color: #f97316;
  font-weight: 700;
}

/* Orange underline */
.sp-stickyNav__link::after{
  content:"";
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 4px;

  height: 2px;
  border-radius: 999px;

  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,168,90,.95));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}
.sp-stickyNav__link.is-active::after{ transform: scaleX(1); }

/* Tablet */
@media (max-width: 980px){
  .sp-stickyNav__inner{
    gap: 20px;
    padding: 10px 12px;
    border-radius: 16px;
  }
  .sp-stickyNav__link{
    font-size: 13px;
    padding: 9px 6px;
  }
}

/* Mobile */
@media (max-width: 520px){
  .sp-stickyNav{ padding: 10px 0; }
  .sp-stickyNav__inner{
    gap: 16px;
    padding: 10px;
    border-radius: 16px;
  }
}
@media (max-width: 767px){
  .sp-stickyNav__inner{ scroll-snap-type: x mandatory; }
  .sp-stickyNav__link{ scroll-snap-align: start; }
}

/* =========================
   STICKY NAV – CENTER ITEMS (DESKTOP ONLY)
========================= */
@media (min-width: 981px){
  .sp-stickyNav__inner{
    justify-content: center;
  }
}


/* Prevent content from sliding under fixed sticky nav */
.sp-stickyNav.is-stuck + .sp-ovDep{ margin-top: calc(18px + var(--spStickyNavH, 0px)); }

/* =========================
   OVERVIEW + DEPARTURES (70/30)
========================= */ (70/30)
========================= */
.sp-ovDep{
  margin: 18px 0 0;
}
.sp-ovDep__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr; /* mobile default */
  gap: 18px;
}

/* Desktop 70/30 */
@media (min-width: 981px){
  .sp-ovDep__inner{
    grid-template-columns: 1.65fr .35fr; /* bigger overview, smaller calendar */
    align-items: stretch;
  }
  .sp-ovDep__inner > .sp-box{
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .sp-box--overview .sp-overview{ flex: 1; }
  .sp-box--depart .sp-calPanels{ flex: 1; }
}


.sp-box{
  border-radius: 16px;
  border: 1px solid rgba(11,13,18,.12);
  background: #fff;
  box-shadow: 0 18px 55px rgba(0,0,0,.08);
  padding: 16px;
}

/* Equal height (desktop): make both columns stretch and allow inner content to grow */
@media (min-width: 981px){
  .sp-ovDep__inner{ align-items: stretch; }
  .sp-ovDep__inner > .sp-box{
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  /* Overview: let readmore block fill remaining space */
  #sp-overview .sp-overview{ flex: 1; }
  /* Departures: let panels fill remaining space */
  #sp-departures .sp-calPanels{ flex: 1; }
}

.sp-box__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.sp-box__title{
  margin: 0;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: #0b0d12;
}

.sp-muted{
  font-size: 13px;
  color: rgba(11,13,18,.60);
  font-weight: 700;
}

/* =========================
   OVERVIEW: READ MORE
========================= */
.sp-overview{
  position: relative;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(11,13,18,.02);
  border-radius: 14px;
  padding: 14px 14px 46px; /* leave room for button */
}

.sp-overview__content{
  font-size: 14px;
  line-height: 1.7;
  color: rgba(11,13,18,.86);
  font-weight: 600;
}

/* collapsed state */
.sp-overview:not(.is-open) .sp-overview__content{
  max-height: 340px;
  overflow: hidden;
}

/* fade */
.sp-overview__fade{
  position: absolute;
  left: 0; right: 0;
  bottom: 40px;
  height: 90px;
  border-radius: 0 0 14px 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 55%, rgba(255,255,255,1) 100%);
  pointer-events: none;
}
.sp-overview.is-open .sp-overview__fade{ display:none; }

/* toggle button */
.sp-overview__toggle{
  position: absolute;
  left: 14px;
  bottom: 12px;

  border: 0;
  cursor: pointer;
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .01em;

  color: #fff;
  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,168,90,.95));
  box-shadow: 0 14px 36px rgba(0,0,0,.12);
}

.sp-overview.is-open .sp-overview__toggle{
  background: #fff;
  color: #111;
  border: 1px solid rgba(11,13,18,.14);
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}

/* =========================
   HIGHLIGHTS
========================= */
.sp-hl{
  margin-top: 14px;
}
.sp-hl__title{
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  color: rgba(11,13,18,.55);
  margin-bottom: 10px;
  text-transform: uppercase;
}

.sp-hl__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.sp-hl__item{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(11,13,18,.10);
  color: rgba(11,13,18,.86);
  font-weight: 800;
  font-size: 13px;
}

.sp-hl__item::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,168,90,.95));
}

/* =========================
   DEPARTURES LIST
========================= */
.sp-dep{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sp-dep__row{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(11,13,18,.02);
}

.sp-dep__date{
  font-size: 14px;
  font-weight: 900;
  color: rgba(11,13,18,.92);
  letter-spacing: -0.01em;
}

.sp-dep__meta{
  margin-top: 6px;
}

.sp-dep__chip{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  background: #fff;
  border: 1px solid rgba(11,13,18,.10);
  color: rgba(11,13,18,.72);
}

.sp-dep__right{
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}

.sp-dep__badge{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  border: 1px solid rgba(11,13,18,.12);
  background: #fff;
  color: rgba(11,13,18,.78);
}

/* Status colors (kept premium + aligned with orange theme) */
.sp-dep__badge.is-available{
  border-color: rgba(5,150,105,.22);
  color: #059669;
}
.sp-dep__badge.is-limited{
  border-color: rgba(255,122,26,.28);
  color: #f97316;
}
.sp-dep__badge.is-sold_out{
  border-color: rgba(239,68,68,.24);
  color: #ef4444;
}

.sp-dep__seats{
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,13,18,.55);
}
/* =========================
   MONTH TABS (only available months)
========================= */

/* Month tabs with arrows */
.sp-calTabsWrap{
  display: flex;
  align-items: center;
  gap: 10px;
}
.sp-calTabsArrow{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(11,13,18,.12);
  background: #fff;
  cursor: pointer;
  position: relative;
  flex: 0 0 auto;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.sp-calTabsArrow::before{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width: 10px;
  height: 10px;
  border: 2px solid rgba(11,13,18,.7);
  border-top: 0;
  border-right: 0;
  border-radius: 2px;
}
.sp-calTabsArrow.is-left::before{ transform: rotate(45deg); }
.sp-calTabsArrow.is-right::before{ transform: rotate(-135deg); }

.sp-calTabsArrow:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
}
.sp-calTabsArrow:disabled{
  opacity: .35;
  cursor: default;
  transform: none;
  box-shadow: none;
}

/* Tabs container remains scrollable (desktop + mobile) */
.sp-calTabs{
  flex: 1 1 auto;
}
@media (max-width: 520px){
  .sp-calTabsArrow{ width: 32px; height: 32px; }
}
.sp-calTabs{
  display:flex;
  gap: 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 2px 2px 10px;
}
.sp-calTabs::-webkit-scrollbar{ display:none; }

.sp-calTabs__tab{
  border: 1px solid rgba(11,13,18,.12);
  background: #fff;
  color: rgba(11,13,18,.70);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .02em;
  border-radius: 999px;
  padding: 9px 12px;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease;
  white-space: nowrap;
}
.sp-calTabs__tab:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
}

.sp-calTabs__tab.is-active{
  border-color: rgba(255,122,26,.35);
  color: #f97316;
  box-shadow: 0 14px 35px rgba(0,0,0,.10);
}

/* =========================
   PANELS SWITCH
========================= */
.sp-calPanel{ display:none; }
.sp-calPanel.is-active{ display:block; }

/* =========================
   CALENDAR (refined for status highlights)
========================= */
.sp-cal{
  margin-top: 0;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(11,13,18,.02);
  border-radius: 14px;
  padding: 12px;
  position: relative;
}

.sp-cal__head{ margin-bottom: 10px; }
.sp-cal__title{
  font-size: 13px;
  font-weight: 900;
  color: rgba(11,13,18,.88);
  letter-spacing: -0.01em;
}

.sp-cal__grid{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
}

.sp-cal__wd{
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(11,13,18,.45);
  text-align:center;
}

.sp-cal__cell{
  position: relative;
  height: 36px;
  border-radius: 10px;
  border: 1px solid rgba(11,13,18,.08);
  background: #fff;
  padding: 0;

  display:flex;
  align-items:center;
  justify-content:center;
}

.sp-cal__cell.is-empty{
  border: 0;
  background: transparent;
}

.sp-cal__cell.is-off{
  background: rgba(255,255,255,.65);
  border-color: rgba(11,13,18,.06);
}

.sp-cal__day{
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,13,18,.55);
}

/* Active departure dates */
.sp-cal__cell.is-has{
  cursor: pointer;
  border: 0;
  color: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.sp-cal__cell.is-has:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 35px rgba(0,0,0,.12);
  filter: brightness(0.98);
}
.sp-cal__cell.is-has .sp-cal__day{
  color: #fff;
}

.sp-cal__dot{ display:none !important; }

/* Status differentiation (background highlight, white text) */
.sp-cal__cell.is-available{ background: #059669; }
.sp-cal__cell.is-limited{ background: #f97316; }
.sp-cal__cell.is-sold_out{
  background: #ef4444;
  opacity: .90;
}


/* Legend (color meaning) */
.sp-calLegend{
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sp-calLegend__item{
  display: inline-flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
  color: #fff;
}
.sp-calLegend__item.is-available{ background:#059669; }
.sp-calLegend__item.is-limited{ background:#f97316; }
.sp-calLegend__item.is-sold_out{ background:#ef4444; }

/* Tooltip */
.sp-calTip{
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  border-radius: 14px;
  border: 1px solid rgba(11,13,18,.12);
  background: #fff;
  box-shadow: 0 18px 55px rgba(0,0,0,.12);
  padding: 10px 12px;
}

.sp-calTip__date{
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,13,18,.90);
}

.sp-calTip__meta{
  margin-top: 6px;
  font-size: 12px;
  font-weight: 800;
  color: rgba(11,13,18,.62);
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}

.sp-calTip__pill{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(11,13,18,.02);
}
.sp-calTip__pill.is-available{ color:#059669; border-color: rgba(5,150,105,.22); background: rgba(5,150,105,.06); }
.sp-calTip__pill.is-limited{ color:#f97316; border-color: rgba(255,122,26,.28); background: rgba(255,122,26,.08); }
.sp-calTip__pill.is-sold_out{ color:#ef4444; border-color: rgba(239,68,68,.24); background: rgba(239,68,68,.06); }

@media (max-width: 520px){
  .sp-cal__cell{ height: 34px; }
  .sp-cal__grid{ gap: 7px; }
}



/* =========================
   V2 Tuning: Smaller calendar + bigger overview
========================= */

/* Make overview bigger than calendar on desktop */
@media (min-width: 981px){
  .sp-ovDep__inner{
    grid-template-columns: 1.65fr .35fr; /* bigger overview, smaller calendar */
    align-items: stretch;
  }
  /* Keep calendar column from expanding too wide */
  .sp-ovDep__inner > #sp-departures{
    max-width: 450px;
    justify-self: end;
  }
}

/* Calendar: reduce overall density */
#sp-departures .sp-cal{
  padding: 12px;
}
#sp-departures .sp-cal__title{
  font-size: 14px;
  font-weight: 800;
}

/* Month tabs: smaller, show fewer at a time (scroll/arrow handles the rest) */
#sp-departures .sp-calTabsWrap{
  gap: 10px;
  margin-bottom: 10px;
}
#sp-departures .sp-calTabs{
  gap: 8px;
  padding-bottom: 8px;
  max-width: 340px;            /* forces fewer visible months */
}
#sp-departures .sp-calTabs__tab{
  font-size: 11px;
  font-weight: 800;
  padding: 8px 10px;
}
#sp-departures .sp-calTabsArrow{
  width: 38px;
  height: 38px;
}

/* Grid + cells */
#sp-departures .sp-cal__wd{
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
}
#sp-departures .sp-cal__grid{
  gap: 8px;
}
#sp-departures .sp-cal__cell{
  min-height: 36px;
  border-radius: 12px;
}
#sp-departures .sp-cal__day{
  font-size: 12px;
  font-weight: 700;
}

/* Legend: centered + smaller + lighter weight */
#sp-departures .sp-calLegend{
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}
#sp-departures .sp-calLegend__item{
  font-size: 11px;
  font-weight: 600;  /* lower weight */
  padding: 8px 10px;
  border-radius: 999px;
}

/* Mobile: keep tabs readable without taking height */
@media (max-width: 767px){
  #sp-departures .sp-calTabs{ max-width: 100%; }
  #sp-departures .sp-calTabs__tab{ padding: 8px 10px; }
}
@media (min-width: 981px){
  .sp-ovDep__inner{
    grid-template-columns: 1.8fr .2fr;
  }
  .sp-ovDep__inner > #sp-departures{
    max-width: 450px;
    justify-self: end;
  }
}


/* =========================
   FIX: Equal height + proper column stretch (Overview wrapper is not .sp-box)
========================= */
@media (min-width: 981px){
  .sp-ovDep__inner > .sp-ovDep__left{
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .sp-ovDep__inner > .sp-ovDep__left .sp-box{
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .sp-ovDep__inner > #sp-departures{
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  #sp-departures .sp-calPanels{ flex: 1; }
}
/* =========================
   MOBILE: FIX RIGHT-SIDE CUT
========================= */
@media (max-width: 767px){

  /* Never let page exceed viewport width */
  html, body{
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Force all major sections to be true 100% */
  .sp-heroLR,
  .sp-tabsBar,
  .sp-ovDep{
    width: calc(100% - 16px) !important;
    max-width: calc(100% - 16px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Calendar card + inner blocks must not exceed */
  #sp-departures,
  #sp-departures *{
    max-width: 100%;
  }

  /* Tabs row is usually the overflow source */
  .sp-calTabsWrap{
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .sp-calTabs{
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .sp-calTabs__tab{
    flex: 0 0 auto; /* prevent squish and prevent row overflow */
  }

  /* Safety: prevent any accidental transform overflow */
  .sp-box, .sp-card{
    overflow: hidden;
  }
}
/* PROMO BANNER (below Overview + Calendar) */
.sp-promo{
  margin: 22px 0 0;
}

.sp-promo__inner{
  width: min(1240px, calc(100% - 36px)); /* same container logic used across your layout */
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 55px rgba(0,0,0,.12);
}

.sp-promo__inner img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

@media (max-width: 767px){
  .sp-promo__inner{
    width: calc(100% - 16px);
    border-radius: 14px;
  }
}
/* =========================
   QUICK SUMMARY (FULL WIDTH)
========================= */

.sp-qsSection{
  margin: 22px 0 0;
}

.sp-qsSection__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
}

/* Table shell */
.sp-qs{
  margin-top: 10px;
}

.sp-qs__table{
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(11,13,18,.02);
  border-radius: 14px;
  overflow: hidden;
}

/* Desktop table row grid */
.sp-qs__tr{
  display: grid;
  grid-template-columns: 92px 1.9fr 1fr .9fr .9fr 1.1fr;
  gap: 10px;
  padding: 12px 12px;
  align-items: center;
  border-top: 1px solid rgba(11,13,18,.08);
  background: #fff;
}

.sp-qs__tr--head{
  border-top: 0;
  background: linear-gradient(180deg, rgba(11,13,18,.06), rgba(11,13,18,.02));
}

.sp-qs__th{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  color: rgba(11,13,18,.60);
  text-transform: uppercase;
}

.sp-qs__td{
  font-size: 13px;
  font-weight: 700;
  color: rgba(11,13,18,.85);
  line-height: 1.35;
}

/* Day pill */
.sp-qs__dayPill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  color: #fff;
  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,168,90,.95));
  box-shadow: 0 14px 35px rgba(0,0,0,.10);
}

/* Mobile/tablet: keep columns readable via horizontal scroll */
@media (max-width: 980px){
  .sp-qs__table{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sp-qs__tr{
    min-width: 980px;
  }
}

/* Mobile container width safety (matches your other fixes) */
@media (max-width: 767px){
  .sp-qsSection__inner{
    width: calc(100% - 16px);
  }
}
/* =========================
   QUICK SUMMARY — PREMIUM UPGRADE
========================= */

/* Table container: glassy surface + better border */
.sp-qs__table{
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  overflow: hidden;
}

/* Sticky header (works when table scrolls horizontally on smaller screens too) */
.sp-qs__tr--head{
  position: sticky;
  top: 0;
  z-index: 3;
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(245,246,248,.96));
  border-bottom: 1px solid rgba(11,13,18,.08);
}

/* Header typography: premium small-caps look */
.sp-qs__th{
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: .16em;
  color: rgba(11,13,18,.55);
  text-transform: uppercase;
}

/* Row base: remove harsh lines, add subtle depth */
.sp-qs__tr{
  border-top: 0; /* remove hard separators */
  background: rgba(255,255,255,.92);
  box-shadow: inset 0 -1px 0 rgba(11,13,18,.07);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

/* Zebra (very soft) */
.sp-qs__tbody .sp-qs__tr:nth-child(even){
  background: rgba(250,250,251,.92);
}

/* Hover premium interaction */
@media (hover:hover){
  .sp-qs__tbody .sp-qs__tr:hover{
    transform: translateY(-1px);
    background: #fff;
    box-shadow:
      inset 0 -1px 0 rgba(11,13,18,.06),
      0 14px 40px rgba(0,0,0,.08);
  }
}

/* Body typography: slightly calmer + more expensive */
.sp-qs__td{
  font-size: 13px;
  font-weight: 550;
  color: rgba(11,13,18,.82);
  line-height: 1.45;
}

/* Make Description column feel “primary” */
.sp-qs__tr .sp-qs__td:nth-child(2){
  font-weight: 650;
  color: rgba(11,13,18,.90);
}

/* Day pill: premium gradient + subtle highlight */
.sp-qs__dayPill{
  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,184,120,.92));
  box-shadow: 0 12px 30px rgba(0,0,0,.10);
  position: relative;
}
.sp-qs__dayPill::after{
  content:"";
  position:absolute;
  inset: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0));
  pointer-events: none;
}

/* Column sizing tuning: avoids cramped “Climate/Stay” */
@media (min-width: 981px){
  .sp-qs__tr{
    grid-template-columns: 92px 2.1fr 1.1fr .9fr 1fr 1.25fr;
  }
}

/* Mobile scroll looks more premium with padding and fade hint */
@media (max-width: 980px){
  .sp-qs__table{
    position: relative;
  }
  .sp-qs__table::after{
    content:"";
    position:absolute;
    top: 0;
    right: 0;
    width: 34px;
    height: 100%;
    background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.95));
    pointer-events: none;
  }
}
/* =========================
   LOCATION MAP 60% + VIDEO 40%
========================= */

#sp-map{
  scroll-margin-top: calc(var(--spStickyTop, 0px) + var(--spStickyNavH, 0px) + 18px);
}

/* ONE height control for both */
.sp-mapVideo{
  margin: 22px 0 0;
  --spMediaH: 345px; /* ↓ set this to match your video */
}

@media (max-width: 767px){
  .sp-mapVideo{ --spMediaH: 240px; }
}

.sp-mapVideo__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

/* Desktop 60 / 40 */
@media (min-width: 981px){
  .sp-mapVideo--60-40 .sp-mapVideo__inner{
    grid-template-columns: 1.5fr 1fr; /* 60 / 40 */
    align-items: start; /* important: avoid stretch weirdness */
  }
}

/* MAP */
.sp-mapFrame{
  margin-top: 10px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  box-shadow: 0 18px 55px rgba(0,0,0,.08);
}

.sp-mapFrame iframe{
  width: 100%;
  height: 275px;
  border: 0;
  display: block;
}

/* VIDEO — PURE */
.sp-mapVideo__video{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #000; /* fallback */
  height: var(--spMediaH);
}

/* Some oEmbed providers wrap the iframe in a div */
.sp-mapVideo__video > div{
  height: 100%;
}

.sp-mapVideo__video iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
/* =========================
   ITINERARY (ACCORDION)
========================= */

#sp-itinerary{
  scroll-margin-top: calc(var(--spStickyTop, 0px) + var(--spStickyNavH, 0px) + 18px);
}

.sp-itin{
  margin: 22px 0 0;
}

.sp-itin__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
}

.sp-itin__head{
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.sp-itin__title{
  margin: 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: rgba(11,13,18,.92);
}

.sp-itin__sub{
  margin-top: 4px;
  font-size: 13px;
  font-weight: 700;
  color: rgba(11,13,18,.55);
}

/* List shell */
.sp-itin__list{
  display:flex;
  flex-direction: column;
  gap: 12px;
}

/* Item card */
.sp-itinItem{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 55px rgba(0,0,0,.06);
}

/* Top button */
.sp-itinItem__top{
  width: 100%;
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 14px 14px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
}

.sp-itinItem__left{
  display:flex;
  align-items:center;
  gap: 12px;
  min-width: 0;
}

.sp-itinItem__day{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  color: #fff;
  background: linear-gradient(135deg, rgba(255,122,26,.95), rgba(255,184,120,.92));
  box-shadow: 0 12px 30px rgba(0,0,0,.10);
  white-space: nowrap;
}

.sp-itinItem__name{
  font-size: 14px;
  font-weight: 900;
  color: rgba(11,13,18,.90);
  line-height: 1.25;
  max-width: 100%;
}

/* Right */
.sp-itinItem__right{
  display:flex;
  align-items:center;
  gap: 10px;
  flex: 0 0 auto;
}

.sp-itinMeals{
  display:flex;
  gap: 6px;
}

.sp-itinMeals__m{
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,13,18,.80);
  background: rgba(11,13,18,.04);
  border: 1px solid rgba(11,13,18,.10);
}

.sp-itinItem__chev{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  position: relative;
  box-shadow: 0 14px 35px rgba(0,0,0,.06);
}
.sp-itinItem__chev::before{
  content:"";
  position:absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(11,13,18,.75);
  border-bottom: 2px solid rgba(11,13,18,.75);
  transform: translate(-50%, -60%) rotate(45deg);
  transition: transform .18s ease;
}
.sp-itinItem.is-open .sp-itinItem__chev::before{
  transform: translate(-50%, -35%) rotate(-135deg);
}

/* Body accordion */
.sp-itinItem__body{
  overflow: hidden;
  max-height: 0;
  transition: max-height .25s ease;
  border-top: 1px solid rgba(11,13,18,.08);
  background: rgba(255,255,255,.92);
}

.sp-itinMeta{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 14px 0;
}

.sp-itinMeta__chip{
  display:flex;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(11,13,18,.03);
  border: 1px solid rgba(11,13,18,.10);
}

.sp-itinMeta__k{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(11,13,18,.55);
}

.sp-itinMeta__v{
  font-size: 12px;
  font-weight: 800;
  color: rgba(11,13,18,.82);
}

.sp-itinContent{
  padding: 12px 14px 14px;
  font-size: 13px;
  font-weight: 650;
  color: rgba(11,13,18,.82);
  line-height: 1.7;
}
.sp-itinContent p{ margin: 0 0 10px; }
.sp-itinContent p:last-child{ margin-bottom: 0; }
.sp-itinContent ul, .sp-itinContent ol{ margin: 10px 0 0 18px; }

/* Mobile */
@media (max-width: 767px){
  .sp-itin__inner{
    width: calc(100% - 16px);
  }
  .sp-itinItem__top{
    padding: 12px;
  }
  .sp-itinItem__name{
    font-size: 13px;
  }
  .sp-itinMeals__m{
    width: 24px;
    height: 24px;
    font-size: 11px;
  }
}
/* Itinerary controls (Open all / Collapse all) */
.sp-itinCtl{
  display:flex;
  gap: 10px;
  align-items:center;
}

.sp-itinCtl__btn{
  appearance:none;
  border: 1px solid rgba(11,13,18,.12);
  background: rgba(11,13,18,.92);
  color: #fff;
  border-radius: 999px;
  padding: 10px 12px;
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.sp-itinCtl__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 55px rgba(0,0,0,.14);
  filter: brightness(1.02);
}

.sp-itinCtl__btn--ghost{
  background: #fff;
  color: rgba(11,13,18,.85);
}

/* Meal icons (SVG) */
.sp-itinMeals{
  display:flex;
  gap: 8px;
  align-items:center;
}

.sp-itinMeals__ico{
  width: 34px;
  height: 34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(11,13,18,.10);
  background: rgba(255,255,255,.95);
  box-shadow: 0 14px 35px rgba(0,0,0,.06);
  color: rgba(11,13,18,.78);
}

.sp-itinMeals__ico svg{
  width: 18px;
  height: 18px;
  display:block;
}

@media (max-width: 767px){
  .sp-itinCtl__btn{
    padding: 9px 11px;
    font-size: 11px;
  }
  .sp-itinMeals__ico{
    width: 32px;
    height: 32px;
  }
  .sp-itinMeals__ico svg{
    width: 17px;
    height: 17px;
  }
}
/* =========================
   INCLUSIONS / EXCLUSIONS (50/50) + READ MORE  — FULL UPDATED
   (Includes: hard override + centered tick + diagonal X)
========================= */

#sp-inclusions{
  scroll-margin-top: calc(var(--spStickyTop, 0px) + var(--spStickyNavH, 0px) + 18px);
}

/* Section */
.sp-incExc{
  margin: 26px 0 0;
  padding: 26px 0;
}

.sp-incExc__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
}

.sp-incExc__head{ margin-bottom: 12px; }

.sp-incExc__title{
  margin: 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: rgba(11,13,18,.92);
}

.sp-incExc__sub{
  margin-top: 4px;
  font-size: 13px;
  font-weight: 700;
  color: rgba(11,13,18,.55);
}

/* Grid */
.sp-incExc__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 981px){
  .sp-incExc__grid{
    grid-template-columns: 1fr 1fr; /* 50/50 */
    align-items: start;
  }
}

/* Cards */
.sp-incExc__card{
  border-radius: 18px;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 30px rgba(0,0,0,.06), 0 1px 0 rgba(0,0,0,.04);
}

.sp-incExc__card--inc{ border-left: 3px solid rgba(20,160,90,.25); }
.sp-incExc__card--exc{ border-left: 3px solid rgba(215,70,70,.25); }

.sp-incExc__cardHead{
  display:flex;
  align-items:center;
  gap: 12px;
  padding: 14px;
  background: linear-gradient(180deg, #ffffff, rgba(245,246,248,.95));
  border-bottom: 1px solid rgba(11,13,18,.08);
}

/* Header icon circle */
.sp-incExc__icon{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  box-shadow: 0 14px 35px rgba(0,0,0,.06);
  flex: 0 0 auto;
}

.sp-incExc__icon svg{
  width: 20px;
  height: 20px;
  display:block;
}

.sp-incExc__icon--inc{ color: rgba(20,160,90,.95); }
.sp-incExc__icon--exc{ color: rgba(215,70,70,.95); }

.sp-incExc__label{
  font-size: 14px;
  font-weight: 900;
  color: rgba(11,13,18,.90);
  line-height: 1.1;
}

.sp-incExc__hint{
  margin-top: 3px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(11,13,18,.55);
}

/* Content */
.sp-incExc__content{
  padding: 12px 14px 14px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(11,13,18,.82);
  line-height: 1.7;
  background: #fff;
}

.sp-incExc__empty{
  padding: 14px;
  font-size: 13px;
  font-weight: 700;
  color: rgba(11,13,18,.55);
}

/* WYSIWYG typography */
.sp-incExc__content p{ margin: 0 0 10px; }
.sp-incExc__content p:last-child{ margin-bottom: 0; }
.sp-incExc__content ol{ margin: 10px 0 0 18px; }
.sp-incExc__content li{ margin: 8px 0; }

/* =========================
   LIST ICONS — HARD OVERRIDE + PERFECT CENTERING
   (Fixes theme arrows + ensures tick/X centered)
========================= */

/* Reset default bullets */
.sp-incExc__content ul{
  list-style: none !important;
  padding-left: 0 !important;
  margin: 10px 0 0 !important;
}

/* Base list item */
.sp-incExc__content ul li{
  position: relative !important;
  padding-left: 34px !important;
  margin: 8px 0 !important;
  line-height: 1.65;
}

/* Kill any theme-injected pseudo icons on UL LIs */
.sp-incExc__content ul li::before,
.sp-incExc__content ul li::after{
  content: "" !important;
  background: none !important;
  border: 0 !important;
  transform: none !important;
}

/* Circle */
.sp-incExc__content ul li::before{
  content:"" !important;
  position:absolute !important;
  left: 0 !important;
  top: 0.35em !important;               /* aligns with first line */
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: rgba(11,13,18,.03) !important;
  border: 1px solid rgba(11,13,18,.10) !important;
}

/* Icon layer (centered) */
.sp-incExc__content ul li::after{
  content:"" !important;
  position:absolute !important;
  left: 0 !important;
  top: 0.35em !important;
  width: 18px !important;
  height: 18px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
  transform: none !important;
}

/* INCLUSIONS — green circle + SVG tick (centered) */
.sp-incExc__card--inc .sp-incExc__content ul li::before{
  background: rgba(20,160,90,.10) !important;
  border-color: rgba(20,160,90,.30) !important;
}
.sp-incExc__card--inc .sp-incExc__content ul li::after{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='%2314a05a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

/* EXCLUSIONS — red circle + diagonal X (NO SVG, cannot become +) */
.sp-incExc__card--exc .sp-incExc__content ul li::before{
  background: rgba(215,70,70,.10) !important;
  border-color: rgba(215,70,70,.30) !important;
}
.sp-incExc__card--exc .sp-incExc__content ul li::after{
  background-image:
    linear-gradient(45deg,
      transparent 48%,
      rgba(215,70,70,.90) 48%,
      rgba(215,70,70,.90) 52%,
      transparent 52%),
    linear-gradient(-45deg,
      transparent 48%,
      rgba(215,70,70,.90) 48%,
      rgba(215,70,70,.90) 52%,
      transparent 52%) !important;

  background-size: 8px 8px !important;   /* ↓ smaller */
  background-position: center !important;
  background-repeat: no-repeat !important;
}


/* ========== Read More ========== */
.sp-readMore{
  --spReadMoreH: 360px;
}

.sp-readMore__clip{
  max-height: var(--spReadMoreH);
  overflow: hidden;
  position: relative;
}

.sp-readMore__clip::after{
  content:"";
  position:absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 70px;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,1));
  pointer-events: none;
}

.sp-readMore.is-open .sp-readMore__clip{ max-height: none; }
.sp-readMore.is-open .sp-readMore__clip::after{ display:none; }

.sp-readMore__btn{
  margin-top: 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(11,13,18,.12);
  background: rgba(11,13,18,.92);
  color: #fff;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.sp-readMore__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 55px rgba(0,0,0,.14);
  filter: brightness(1.02);
}

/* Mobile */
@media (max-width: 767px){
  .sp-incExc__inner{ width: calc(100% - 16px); }
  .sp-incExc{ padding: 18px 0; }
  .sp-incExc__cardHead{ padding: 12px; }
  .sp-incExc__content{ padding: 12px; }
  .sp-readMore{ --spReadMoreH: 320px; }
}
/* =========================
   NOTES & POLICIES — TABS (NO STICKY SYNC)
========================= */

#sp-important-notes{
  scroll-margin-top: calc(var(--spStickyTop, 0px) + var(--spStickyNavH, 0px) + 18px);
}

.sp-policies{
  margin: 26px 0 0;
}

.sp-policies__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
}

.sp-policies__head{
  margin-bottom: 12px;
}

.sp-policies__title{
  margin: 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: rgba(11,13,18,.92);
}

/* Tabs bar */
.sp-policies__tabs{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 12px 0 12px;
}

.sp-policies__tab{
  appearance: none;
  border: 1px solid rgba(11,13,18,.12);
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
  color: rgba(11,13,18,.75);
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}

.sp-policies__tab:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 55px rgba(0,0,0,.10);
}

.sp-policies__tab.is-active,
.sp-policies__tab[aria-selected="true"]{
  background: rgba(11,13,18,.92);
  color: #fff;
  border-color: rgba(11,13,18,.18);
}

/* Panel wrapper */
.sp-policies__panelWrap{
  border-radius: 18px;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.06), 0 1px 0 rgba(0,0,0,.04);
  overflow: hidden;
}

.sp-policies__panel{
  padding: 14px;
}

/* Notes cards */
.sp-policies__notes{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 981px){
  .sp-policies__notes{
    grid-template-columns: 1fr 1fr;
  }
}

.sp-policies__note{
  border: 1px solid rgba(11,13,18,.10);
  background: linear-gradient(180deg, #ffffff, rgba(245,246,248,.95));
  border-radius: 14px;
  padding: 12px;
}

.sp-policies__noteTitle{
  font-size: 13px;
  font-weight: 900;
  color: rgba(11,13,18,.90);
  margin-bottom: 6px;
}

.sp-policies__noteText{
  font-size: 13px;
  font-weight: 600;
  color: rgba(11,13,18,.70);
  line-height: 1.65;
}

/* WYSIWYG */
.sp-policies__wysiwyg{
  font-size: 13px;
  font-weight: 500;
  color: rgba(11,13,18,.82);
  line-height: 1.75;
}

.sp-policies__wysiwyg p{ margin: 0 0 10px; }
.sp-policies__wysiwyg p:last-child{ margin-bottom: 0; }
.sp-policies__wysiwyg ul{ margin: 10px 0 0 18px; }
.sp-policies__wysiwyg li{ margin: 6px 0; }

@media (max-width: 767px){
  .sp-policies__inner{
    width: calc(100% - 16px);
  }
  .sp-policies__panel{
    padding: 12px;
  }
  .sp-policies__tabs{
    gap: 8px;
  }
  .sp-policies__tab{
    padding: 10px 11px;
  }
}
.sp-policies__sub{
  margin-top: 4px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(11,13,18,.55);
}
/* =========================
   REVIEWS (DUMMY) — #review
========================= */

#review{
  scroll-margin-top: calc(var(--spStickyTop, 0px) + var(--spStickyNavH, 0px) + 18px);
}

.sp-reviews{
  margin: 26px 0 26px;
  padding: 10px 0 0;
}

.sp-reviews__inner{
  width: min(1240px, calc(100% - 36px));
  margin: 0 auto;
}

.sp-reviews__head{
  margin-bottom: 12px;
}

x
.sp-reviews__title{
  margin: 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: rgba(11,13,18,.92);
}

.sp-reviews__sub{
  margin-top: 4px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(11,13,18,.55);
}

/* Layout */
.sp-reviews__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 981px){
  .sp-reviews__grid{
    grid-template-columns: 0.42fr 0.58fr; /* premium split */
    align-items: start;
  }
}

/* Summary */
.sp-reviews__summary{
  border-radius: 18px;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.06), 0 1px 0 rgba(0,0,0,.04);
  padding: 14px;
}

.sp-reviews__score{
  text-align: left;
}

.sp-reviews__num{
  font-size: 44px;
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1;
  color: rgba(11,13,18,.92);
}

.sp-reviews__stars{
  margin-top: 6px;
  font-size: 14px;
  letter-spacing: 2px;
  color: rgba(11,13,18,.88);
}

.sp-reviews__meta{
  margin-top: 6px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(11,13,18,.55);
}

/* Bars */
.sp-reviews__bars{
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.sp-reviews__barRow{
  display: grid;
  grid-template-columns: 16px 1fr 44px;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  font-weight: 800;
  color: rgba(11,13,18,.70);
}

.sp-reviews__barRow i{
  height: 8px;
  border-radius: 999px;
  background: rgba(11,13,18,.08);
  overflow: hidden;
  display: block;
}

.sp-reviews__barRow i b{
  height: 100%;
  display: block;
  border-radius: 999px;
  background: rgba(11,13,18,.82);
}

.sp-reviews__barRow em{
  font-style: normal;
  font-weight: 800;
  color: rgba(11,13,18,.50);
  text-align: right;
}

/* Buttons */
.sp-reviews__cta{
  margin-top: 14px;
  display: grid;
  gap: 8px;
}

.sp-reviews__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(11,13,18,.12);
  background: rgba(11,13,18,.92);
  color: #fff;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.sp-reviews__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 55px rgba(0,0,0,.14);
  filter: brightness(1.02);
}

.sp-reviews__btn--ghost{
  background: #fff;
  color: rgba(11,13,18,.90);
}

/* List */
.sp-reviews__list{
  border-radius: 18px;
  border: 1px solid rgba(11,13,18,.10);
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.06), 0 1px 0 rgba(0,0,0,.04);
  padding: 14px;
}

.sp-reviews__item{
  padding: 12px 0;
  border-bottom: 1px solid rgba(11,13,18,.08);
}

.sp-reviews__item:last-of-type{
  border-bottom: 0;
}

.sp-reviews__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.sp-reviews__name{
  font-size: 13px;
  font-weight: 900;
  color: rgba(11,13,18,.90);
}

.sp-reviews__starsSmall{
  font-size: 12px;
  letter-spacing: 1.5px;
  color: rgba(11,13,18,.88);
}

.sp-reviews__date{
  margin-top: 4px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(11,13,18,.50);
}

.sp-reviews__text{
  margin-top: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(11,13,18,.75);
  line-height: 1.7;
}

.sp-reviews__more{
  margin-top: 10px;
}

@media (max-width: 767px){
  .sp-reviews__inner{
    width: calc(100% - 16px);
  }
}
/* =========================
   REVIEWS HEADER – FIXED
========================= */

.sp-reviews__head{
  margin-bottom: 18px;
}

.sp-reviews__title{
  margin: 0;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: rgba(11,13,18,.92);
}

.sp-reviews__sub{
  margin: 6px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: rgba(11,13,18,.55);
  max-width: 520px;
}
/* =========================================================
   FIX: QUICK SUMMARY horizontal scroll on mobile/tablet
   (must be AFTER the "premium upgrade" block)
========================================================= */
@media (max-width: 980px){
  .sp-qs__table{
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    display: block;                 /* important for overflow on iOS */
    max-width: 100%;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }

  /* Keep rows wide so horizontal scroll actually happens */
  .sp-qs__tr{
    min-width: 980px;
  }
}
