@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap');

:root {
  --vp-blue: #0060e3;
  --vp-navy: #0F1D35;
  --vp-navy-2: #022949;
  --vp-ink: #001023;
  --vp-ink-2: #585D6C;
  --vp-line: #d6d8da;
  --vp-bg: #f5f4f3;
  --vp-card: #ffffff;
  --vp-green: #008009;
}

/* ========================================
   Bootstrap 3 Grid System
   ======================================== */

* {
  box-sizing: border-box;
}

.container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

.container::after,
.row::after {
  content: "";
  display: table;
  clear: both;
}

.row {
  margin-left: -15px;
  margin-right: -15px;
}

/* Columns - Base */
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1,
.col-xs-2, .col-sm-2, .col-md-2, .col-lg-2,
.col-xs-3, .col-sm-3, .col-md-3, .col-lg-3,
.col-xs-4, .col-sm-4, .col-md-4, .col-lg-4,
.col-xs-5, .col-sm-5, .col-md-5, .col-lg-5,
.col-xs-6, .col-sm-6, .col-md-6, .col-lg-6,
.col-xs-7, .col-sm-7, .col-md-7, .col-lg-7,
.col-xs-8, .col-sm-8, .col-md-8, .col-lg-8,
.col-xs-9, .col-sm-9, .col-md-9, .col-lg-9,
.col-xs-10, .col-sm-10, .col-md-10, .col-lg-10,
.col-xs-11, .col-sm-11, .col-md-11, .col-lg-11,
.col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
}

/* XS: Extra small devices (phones, <768px) */
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4,
.col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8,
.col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}

.col-xs-12 { width: 100%; }
.col-xs-11 { width: 91.66666667%; }
.col-xs-10 { width: 83.33333333%; }
.col-xs-9 { width: 75%; }
.col-xs-8 { width: 66.66666667%; }
.col-xs-7 { width: 58.33333333%; }
.col-xs-6 { width: 50%; }
.col-xs-5 { width: 41.66666667%; }
.col-xs-4 { width: 33.33333333%; }
.col-xs-3 { width: 25%; }
.col-xs-2 { width: 16.66666667%; }
.col-xs-1 { width: 8.33333333%; }

/* SM: Small devices (tablets, ≥768px) */
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4,
  .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8,
  .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }

  .col-sm-12 { width: 100%; }
  .col-sm-11 { width: 91.66666667%; }
  .col-sm-10 { width: 83.33333333%; }
  .col-sm-9 { width: 75%; }
  .col-sm-8 { width: 66.66666667%; }
  .col-sm-7 { width: 58.33333333%; }
  .col-sm-6 { width: 50%; }
  .col-sm-5 { width: 41.66666667%; }
  .col-sm-4 { width: 33.33333333%; }
  .col-sm-3 { width: 25%; }
  .col-sm-2 { width: 16.66666667%; }
  .col-sm-1 { width: 8.33333333%; }
}

/* MD: Medium devices (desktops, ≥992px) */
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4,
  .col-md-5, .col-md-6, .col-md-7, .col-md-8,
  .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }

  .col-md-12 { width: 100%; }
  .col-md-11 { width: 91.66666667%; }
  .col-md-10 { width: 83.33333333%; }
  .col-md-9 { width: 75%; }
  .col-md-8 { width: 66.66666667%; }
  .col-md-7 { width: 58.33333333%; }
  .col-md-6 { width: 50%; }
  .col-md-5 { width: 41.66666667%; }
  .col-md-4 { width: 33.33333333%; }
  .col-md-3 { width: 25%; }
  .col-md-2 { width: 16.66666667%; }
  .col-md-1 { width: 8.33333333%; }
}

/* LG: Large devices (large desktops, ≥1200px) */
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4,
  .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8,
  .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }

  .col-lg-12 { width: 100%; }
  .col-lg-11 { width: 91.66666667%; }
  .col-lg-10 { width: 83.33333333%; }
  .col-lg-9 { width: 75%; }
  .col-lg-8 { width: 66.66666667%; }
  .col-lg-7 { width: 58.33333333%; }
  .col-lg-6 { width: 50%; }
  .col-lg-5 { width: 41.66666667%; }
  .col-lg-4 { width: 33.33333333%; }
  .col-lg-3 { width: 25%; }
  .col-lg-2 { width: 16.66666667%; }
  .col-lg-1 { width: 8.33333333%; }
}

.text-center {
  text-align: center;
}

/* Bootstrap 3: hidden-xs only hides below 768px. Do not force display:block
   on desktop — that overrides .vacation_product_banner display:flex centering. */
.visible-xs {
  display: none !important;
}

@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
  .visible-xs {
    display: block !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
  .visible-sm {
    display: block !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
  .visible-md {
    display: block !important;
  }
}

@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
  .visible-lg {
    display: block !important;
  }
}

/* Bootstrap utility classes */
.clearfix::after {
  content: "";
  display: table;
  clear: both;
}

.img-responsive {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Hero banner image — do not let .img-responsive height: auto shrink it.
   Match activatelocal: fill the 280px strip, crop from center. */
.vacation_product_banner .top_banner_img.img-responsive,
.vacation_product_banner .top_banner_img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  display: block;
  object-fit: cover;
  object-position: center;
}

/* ========================================
   Global Enhancements & Accessibility
   ======================================== */

/* Smooth scrolling for anchor links */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Focus visible styles for keyboard navigation */
*:focus-visible {
  outline: 2px solid var(--vp-blue);
  outline-offset: 2px;
}

/* Button and link focus improvements */
button:focus-visible,
a:focus-visible {
  outline: 3px solid var(--vp-blue);
  outline-offset: 3px;
}

/* Universal transitions (respect user preferences) */
* {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

a {
  transition: color 0.2s ease, background-color 0.2s ease, transform 0.15s ease;
}

button {
  transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

img {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* =========================================
   Vacation Product (Price Box) Styles
   ======================================== */

.vacation_product_detail {
  width: 100%;
  float: left;
  clear: both;
  position: relative;
  padding: 90px 0px 40px;
  background-color: #fff !important;
}

.vacation_product_detail_padding {
  padding-top: 0px;
}

.vacation_product_hotel_space {
  margin-top: 0px;
  box-shadow: none;
}

.vacation_product_hotel_space .vacation_product_hotel_content {
  overflow: hidden;
  position: relative;
}

.box_space_new {
  padding: 20px 0px 20px 20px;
}

.vacation_product_detail_main {
  width: 100%;
  float: left;
  border: 10px solid #0060e3;
  box-shadow: -1px 13px 23px 12px rgba(75, 76, 78, 0.08);
}

.vacation_product_detail_inside_bg {
  align-items: center;
  background: #0F1D35 !important;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content {
  display: flex;
  align-items: center;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content h2 {
  font-size: 20px;
  font-family: Roboto, sans-serif;
  font-weight: 500;
  color: #022949;
  text-transform: uppercase;
  margin: 0px;
  background: #fff;
  min-height: 74px;
  display: inline-flex;
  align-items: center;
  padding: 0px 10px;
  position: relative;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content h2 i {
  padding-right: 15px;
  color: #0060e3;
  font-size: 22px;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content h2 img {
  margin-right: 5px;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content h2::after {
  content: "";
  position: absolute;
  height: 0;
  width: 0;
  left: 100%;
  top: 0;
  border: 37px solid transparent !important;
  border-left: 23px solid #fff !important;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content h4 {
  font-size: 20px;
  font-family: Roboto, sans-serif;
  font-weight: 500;
  color: #fff;
  margin-left: 50px;
}

.vacation_product_detail_inside_bg .vacation_product_detail_content h4 i {
  font-size: 20px;
  padding-left: 5px;
}

.vacation_product_detail_inside_bg ul.countdown {
  text-align: left;
  padding-left: 20px;
  margin-top: 20px;
}

.vacation_product_detail_inside_bg ul.countdown li span {
  color: #FFFFFF !important;
}

.vacation_product_detail_inside_bg ul.countdown li p {
  font-family: Roboto, sans-serif;
  margin: -8px 0 0 0;
  color: #FFFFFF !important;
  font-size: 9px;
  text-transform: uppercase;
}

.vacation_product_detail_inside_bg ul.countdown li.seperator {
  color: #FFFFFF !important;
}

.vacation_product_detail_inside_bg .buy_it_btn {
  width: 35%;
  float: left;
  margin-top: -10px;
}

/* Duplicated Bootstrap grid above would otherwise win over vacation-product2
   .width_large 79% and leave the BOOK NOW button short of the right edge. */
.vacation_product_detail_inside .width_small {
  width: 25%;
}
.vacation_product_detail_inside .width_large {
  width: 79%;
}

.vacation_product_detail .countdown_main {
  display: inline-block;
  width: 65%;
  float: left;
  padding-right: 45px;
}

.vacation_product_detail .buy_it_btn .regular_txt_price,
.vacation_product_detail .regular_txt_price {
  border-radius: 2px;
  font-family: Roboto, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
}

.vacation_product_detail .buy_it_btn .regular_txt_price {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 260px;
  float: right;
}

.vacation_product_detail_padding .vacation_product_detail_main_top {
  margin-top: -65px !important;
  z-index: 1;
  position: relative;
}

/* landing.blade.php: bottom desktop price box sits below Sustainable Tourism,
   not pulled up into it like the hero price box. */
.vacation_product_detail_three.vacation_product_detail_padding .vacation_product_detail_main_top {
  margin-top: 30px !important;
}

.vacation_product_hotel_space .vacation_product_hotel_description ul li {
  font-family: Roboto-Regular;
  font-size: 18px;
  align-items: center;
}

.vacation_product_hotel_right {
  width: 100%;
}

.vacation_product_hotel_description {
  width: 100%;
}

.vacation_product_hotel {
  width: 100%;
  float: left;
}

@media screen and (max-width: 1199px) and (min-width: 992px) {
  .vacation_product_detail_inside_bg .vacation_product_detail_content h2 {
    font-size: 15px;
    padding: 0px 10px;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h4 {
    font-size: 16px;
    margin-left: 40px;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h2 img {
    width: 32px;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h4 i {
    font-size: 18px;
  }

  .vacation_product_detail_inside_bg ul.countdown li span {
    font-size: 32px;
  }
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .vacation_product_detail_inside_bg .vacation_product_detail_content h2 {
    font-size: 13px;
    padding: 0px 6px;
  }

  .vacation_product_detail_main {
    border: 5px solid #0060e3;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h2::after {
    border-left: 18px solid #fff !important;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h2 i {
    padding-right: 5px;
    font-size: 18px;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h4 {
    font-size: 13px;
    margin-left: 23px;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h2 img {
    width: 30px;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h4 i {
    font-size: 15px;
  }

  .vacation_product_detail_inside_bg ul.countdown li span {
    font-size: 25px;
  }

  .vacation_product_detail_inside_bg ul.countdown {
    padding-left: 10px;
  }

  .vacation_product_detail_inside_bg .countdown_main {
    padding-right: 15px;
  }

  .vacation_product_detail_inside_bg .buy_it_btn {
    width: 45%;
    margin-top: -5px;
  }

  .vacation_product_detail_inside_bg ul.countdown li.seperator {
    margin: 0 7px;
    vertical-align: bottom;
  }
}

@media screen and (max-width: 767px) {
  .vacation_product_detail_inside_bg .vacation_product_detail_content {
    display: block;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h2::after {
    display: none;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h2 {
    width: 100%;
    justify-content: center;
  }

  .vacation_product_detail_inside_bg .vacation_product_detail_content h4 {
    text-align: center;
    margin-left: 0px;
  }

  .vacation_product_detail_inside_bg .buy_it_btn {
    width: 100%;
    margin-top: 10px;
  }

  .vacation_product_detail_padding .vacation_product_detail_main_top {
    margin-top: 25px;
  }

  .vacation_product_detail_inside_bg ul.countdown {
    text-align: center;
    padding-left: 0px;
    margin-top: 10px;
  }
}

/* ======================================== */

.lp-page {
  min-height: 100vh;
  color: var(--vp-ink);
  font-family: 'Roboto', sans-serif;
}

.lp-page__panel {
  max-width: 520px;
  margin: 80px auto;
  padding: 32px;
  background: var(--vp-card);
  border-radius: 12px;
}

.lp-page__muted { color: var(--vp-ink-2); font-size: 14px; text-align: center; padding: 48px 16px; }

/* —— Banner —— */
.lp-banner {
  height: 280px;
  position: relative;
  background-size: cover;
  background-position: center;
}
.lp-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}
.lp-banner--fallback {
  background: radial-gradient(circle at 30% 30%, #2b4c7e, var(--vp-navy));
}
.lp-banner__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.lp-banner__title {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 38px);
  color: #fff;
  margin: 0 0 16px;
  max-width: 800px;
  line-height: 1.2;
}
.lp-banner__phone {
  position: absolute;
  bottom: 25px;
  right: 34px;
  display: flex;
  align-items: center;
  gap: 15px;
  color: #fff;
}
.lp-banner__phone-icon {
  font-size: 46px;
}
.lp-banner__phone-text {
  line-height: 1.2;
  text-align: left;
}
.lp-banner__phone-label {
  font-size: 15px;
}
.lp-banner__phone-number {
  font-size: 29px;
  font-weight: 700;
}

/* —— Price box frame —— */
.lp-price {
  max-width: 1200px;
  margin: -65px auto 0;
  padding: 0 16px 48px;
  position: relative;
  z-index: 1;
}
.lp-price--bottom { margin-top: 32px; }

.lp-price__frame {
  border: 10px solid var(--vp-blue);
  box-shadow: -1px 13px 23px 12px rgba(75, 76, 78, 0.08);
}

/* —— Urgency timer bar —— */
.lp-price__urgency {
  background: var(--vp-navy);
  display: flex;
  align-items: center;
  padding: 0;
}
.lp-price__urgency-ribbon {
  background: #fff;
  min-height: 74px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  position: relative;
}
.lp-price__urgency-ribbon::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border: 37px solid transparent;
  border-left: 23px solid #fff;
}
.lp-price__urgency-label {
  font-size: 20px;
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  color: var(--vp-navy-2);
  text-transform: uppercase;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.lp-price__urgency-label svg {
  width: 23px;
  height: auto;
}
.lp-price__urgency-right {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 20px;
}

/* —— Countdown —— */
.lp-countdown {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  font-variant-numeric: tabular-nums;
}
.lp-countdown li { display: flex; flex-direction: column; align-items: center; min-width: 52px; }
.lp-countdown__val {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.lp-countdown__label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #fff;
  margin-top: -8px;
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
}
.lp-countdown__sep {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  padding-bottom: 14px;
}

.lp-price__book-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ffcb00;
  color: var(--vp-navy-2);
  text-decoration: none;
  padding: 14px 18px;
  border-radius: 2px;
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  font-family: 'Roboto', sans-serif;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  gap: 10px;
  margin-top: -10px;
  cursor: pointer;
  border: none;
}

.lp-price__book-btn:hover {
  background: #ffd633;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 203, 0, 0.4);
}

.lp-price__book-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(255, 203, 0, 0.3);
}

.lp-price__book-btn:focus-visible {
  outline: 3px solid var(--vp-blue);
  outline-offset: 3px;
}

.lp-price__book-btn svg {
  width: 20px;
  height: auto;
  transition: transform 0.2s ease;
}

.lp-price__book-btn:hover svg {
  transform: scale(1.1);
}

/* —— Price card body —— */
.lp-price__card {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  background: var(--vp-card);
  overflow: hidden;
}
.lp-price__photo {
  position: relative;
  min-height: 320px;
  background-size: cover;
  background-position: center;
}
.lp-price__photo--fallback {
  background: linear-gradient(145deg, #16325c, var(--vp-navy));
}
.lp-price__photo-caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 24px;
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  height: 100%;
}
.lp-price__photo-caption h2 {
  font-family: 'Roboto', sans-serif;
  font-weight: 900;
  margin: 0 0 8px;
  font-size: 40px;
  text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.3);
}
.lp-price__photo-caption p { 
  margin: 0; 
  font-size: 20px; 
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
  text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.3);
}

.lp-price__body { 
  padding: 20px 28px 32px; 
  display: flex; 
  flex-direction: column; 
  gap: 20px; 
}

.lp-price__bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.lp-price__bullets li {
  position: relative;
  padding-left: 32px;
  font-size: 18px;
  line-height: 1.4;
  color: var(--vp-ink);
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
  display: flex;
  align-items: center;
}
.lp-price__bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 21px;
  height: 16px;
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMS4xMzMiIGhlaWdodD0iMTYuMzg3IiB2aWV3Qm94PSIwIDAgMjEuMTMzIDE2LjM4NyI+PHBhdGggZD0iTTEwLjc3NSwxOS41MjlsLTQuNjMzLTQuNjRMNC41LDE2LjQ1NWw2LjI3NSw2LjI2MUwyNC4yLDkuM0wyMi41NTksNy43MzRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy43ODQgLTcuMDM1KSIgZmlsbD0iIzAwODAwOSIgc3Ryb2tlPSIjMDA4MDA5IiBzdHJva2Utd2lkdGg9IjEiLz48L3N2Zz4=');
  background-repeat: no-repeat;
  background-size: contain;
}

.lp-price__compare { display: grid; gap: 10px; }
.lp-price__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  font-size: 18px;
  font-family: 'Roboto', sans-serif;
}
.lp-price__row--retail strong {
  text-decoration: line-through;
  color: var(--vp-ink-2);
  font-weight: 600;
}
.lp-price__row--member strong { color: var(--vp-green); font-size: 22px; font-weight: 700; }
.lp-price__row--due {
  padding-top: 10px;
  border-top: 1px solid var(--vp-line);
  font-weight: 700;
}
.lp-price__row--due strong { font-size: 24px; color: var(--vp-navy); font-weight: 700; }
.lp-price__savings {
  margin: 0;
  color: var(--vp-green);
  font-weight: 600;
  font-size: 14px;
}
.lp-price__row .lp-cta {
  width: 100%;
  background: #ffcb00;
  color: var(--vp-navy-2);
  font-weight: 700;
  padding: 16px;
  border-radius: 2px;
  text-transform: uppercase;
}
.lp-price__row .lp-cta:hover {
  background: #ffd633;
}

/* —— Shared sections —— */
.lp-section { padding: 48px 16px; background: #fff; }
.lp-section:nth-child(even of .lp-section) { background: var(--vp-bg); }
.lp-section__inner { max-width: 1200px; margin: 0 auto; }
.lp-section__title {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  color: var(--vp-ink);
  margin: 0 0 12px;
  line-height: 1.2;
}
.lp-section__lede {
  margin: 0 0 28px;
  color: var(--vp-ink-2);
  font-size: 16px;
  line-height: 1.5;
  max-width: 40rem;
  font-family: 'Roboto', sans-serif;
}

/* Gallery arrows: landing.blade.php @push('head-css') + style.css gallery block.
   Scoped so CDN Font Awesome (loaded after style.css) cannot drop the 4px glyph nudge. */
.vacation_gallery_slider .lSAction>a {
  border: 2px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-image: none;
  background-color: white;
  opacity: 1;
}

.vacation_gallery_slider .lSAction>a span {
  font-size: 32px;
  color: #5991b2;
}

.vacation_gallery_slider .fa-angle-right:before {
  content: "\\f105";
  color: #60B7DD;
  margin-left: 4px;
}

.vacation_gallery_slider .fa-angle-left:before {
  content: "\\f104";
  color: #60B7DD;
  margin-right: 4px;
}

/* Landing blade extra CSS for recent-hotels-section (hotel-name-section spacing). */
.vacation_hotel_content .hotel-name-section {
  margin-bottom: 0px !important;
}

@media (min-width: 768px) {
  .hotel-name-section h3 {
    margin-top: 0px;
  }
}

@media screen and (max-width: 767px) {
  .recent-hotels-section .popularVacationPackages {
    margin-top: 0px !important;
  }
}

/* vacation-info.blade.php inline styles (landing how-it-works section). */
.how-it-works-section {
  position: relative;
  display: inline-block;
  width: 100%;
}

.how-it-works {
  width: 100%;
  position: relative;
  padding: 0 10px;
  margin-bottom: 10px;
}
.how-it-works .content {
  background-color: #F7F8FA;
  border-radius: 0px;
  padding: 30px 40px 40px !important;
  width: 100%;
  margin: 0;
}
.how-it-works .header {
  text-align: center;
}

.how-it-works .header h3 {
  color: #202840;
  font-family: Roboto-Bold !important;
  font-size: 34px;
  margin-bottom: 5px;
  text-transform: capitalize;
}

.how-it-works .header p {
  color: #585D6C;
  font-family: Roboto-Regular !important;
  font-size: 26px;
}

.how-it-works .purchase {
  grid-area: purchase;
}

.how-it-works .presentation {
  grid-area: presentation;
}

.how-it-works .book {
  grid-area: book;
}
.how-it-works .purchase, .how-it-works .presentation, .how-it-works .book {
  border-radius: 0px;
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.2);
}

.how-it-works .steps {
  width: 100%;
  display: grid;
  grid-template-columns: 4fr 4fr 4fr;
  grid-template-areas:
    "purchase presentation book";
  grid-gap: 30px;
  padding: 15px 0;
  margin-top: 0px;
}

.how-it-works .steps>div {
  background-color: #fff;
  padding: 35px;
  text-align: center;
}

.how-it-works .steps .icon {
  height: 90px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.how-it-works .steps h4 {
  color: #202840;
  font-size: 28px;
  font-family: Roboto-Medium;
  margin: 10px 0px 15px;
}

.how-it-works .steps p {
  font-size: 19px;
  font-family: Roboto-Medium;
}

@media (max-width: 767px) {
  .how-it-works-section {
    margin-top: 40px;
  }
  .how-it-works-section .container {
    padding: 0;
  }

  .how-it-works {
    padding: 0 0px;
  }

  .how-it-works .content {
    padding: 20px 15px !important;
    box-shadow: 0px 2px 6px rgba(0, 3, 6, 0.1);
  }

  .how-it-works .header h3 {
    font-size: 28px;
    text-align: left;
  }

  .how-it-works .header p {
    font-size: 16px !important;
    text-align: left;
  }

  .how-it-works .steps {
    grid-template-columns: 4fr;
    grid-template-areas:
      "purchase"
      "presentation"
      "book";
    grid-gap: 20px;
    margin-top: 0;
  }

  .how-it-works .steps>div {
    background: none;
    box-shadow: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 5px !important;
  }

  .how-it-works .steps>div div.icon {
    flex: 0 0 30%;
    max-width: 30%;
    box-sizing: border-box;
    padding-right: 10px;
  }
  .how-it-works .steps>div div.text {
    flex: 0 0 70%;
    max-width: 70%;
    box-sizing: border-box;
    padding-right: 10px;
  }
  .how-it-works .steps h4 {
    font-size: 22px !important;
    text-align: left;
  }
  .how-it-works .steps p {
    font-size: 16px;
    text-align: left;
  }
}

/* why-stay-here.blade.php inline styles */
.why-stay-here-section {
  width: 100%;
  float: left;
  clear: both;
  background-color: #fff;
  margin-bottom: 30px;
  overflow: hidden;
}
.why-stay-here-section h3 {
  font-family: Roboto-Bold;
  color: #202840;
  margin-top: 0;
  font-size: 36px;
}
.why-stay-here {
  padding: 0 10px;
}
.why-stay-here .detail_main_info_content img {
  width: 100%;
  max-width: 100%;
  max-height: 300px;
  object-fit: cover;
  overflow: hidden;
}

.why-stay-here .info_right_description ul {
  padding-left: 0px;
}

.why-stay-here .info_right_description li {
  list-style: none;
  font-family: Roboto-Regular;
  font-size: 18px;
  color: #202840;
  display: flex;
  align-items: center;
  padding-bottom: 10px;
}
.why-stay-here .info_right_description li span {
  padding-right: 8px;
}

@media (max-width: 767px) {
  .why-stay-here-section {
    padding-top: 20px;
    padding-bottom: 20px;
    margin-bottom: 0px;
  }
  .why-stay-here-section .container {
    padding: 0;
  }
  .why-stay-here {
    padding: 0 20px;
  }
  .why-stay-here-section h3.bonus_head_text {
    font-size: 22px;
    margin-bottom: 10px;
  }
  .detail_main_info_content {
    margin-bottom: 20px;
  }
  .why-stay-here .info_right_description li {
    font-size: 16px;
    padding-bottom: 5px;
  }
}

/* partners.blade.php — style.css + vacation-product2.css */
.vacation_partners {
  width: 100%;
  float: left;
  clear: both;
  background-color: #fff;
  margin-bottom: 0px;
}
.vacation_partners .container .partners-content {
  padding-bottom: 40px !important;
  border-bottom: 1px #b7b3b3 !important;
}
.vacation_partners .redeemHotelPartnerLogo {
  width: 100%;
  float: left;
  padding-top: 25px;
  filter: grayscale(100%);
}
.vacation_partners .redeemHotelPartnerLogo .hotelLogoHeight {
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vacation_partners .redeem_logo_inside {
  width: 100%;
  float: left;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 0;
}
.vacation_partners .redeemHotelPartner {
  width: 100%;
  float: left;
  text-align: center;
  padding-top: 20px;
  padding-bottom: 30px;
  border: none;
  border-top: 0px solid #aaaaaa;
  border-bottom: 0px solid #aaaaaa;
  background: #fff;
  margin-bottom: 0px;
}
.vacation_partners .redeemHotelPartner p {
  font-size: 21px;
  color: #4f6f8f;
  font-family: Roboto-Regular !important;
  width: 90%;
  margin: 0 auto;
  font-weight: 400;
}
.boxSoonheading {
  font-family: Roboto-Medium;
  color: #2c475d;
  font-size: 21px;
  margin-bottom: 10px;
}
section .boxSoonheading {
  color: #202840 !important;
  font-family: Roboto-Bold !important;
  font-size: 30px !important;
  padding: 5px;
  margin-top: 0px;
}
.vacation_partners .container .redeemHotelPartner p {
  color: #202840;
  font-family: Roboto-Regular !important;
  font-size: 24px;
  width: 100%;
}
.vacation_partners .container .partners-content {
  padding: 0 10px;
}

/* sustainable-tourism.blade.php inline styles */
.sustainable-tourism-section {
  position: relative;
  width: 100%;
  float: left;
  clear: both;
  background-color: #fff;
  overflow: hidden;
}
.sustainable-tourism-image-wrapper {
  position: relative;
  text-align: center;
}
.sustainable-tourism-image-wrapper img {
  width: 100%;
  display: block;
  background: rgba(0, 0, 0, 0.4);
}
.sustainable-tourism-text {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
  font-family: Roboto, sans-serif;
  text-align: center;
  padding: 0 20px;
}
.sustainable-tourism-text h2 {
  font-size: 40px;
  font-weight: 700;
  margin: 0 10px;
}
.sustainable-tourism-text p {
  font-size: 18px;
  margin-top: 10px;
}

@media (max-width: 768px) {
  .sustainable-tourism-text {
    padding: 0 10px;
    top: 50%;
  }
  .sustainable-tourism-text h2 {
    font-size: 1.5rem;
  }
  .sustainable-tourism-text p {
    font-size: 1rem;
  }
  .sustainable-tourism-section {
    top: 4%;
    margin-bottom: 10%;
  }
}

@media screen and (max-width: 767px) {
  section .boxSoonheading {
    background: none;
    color: #202840 !important;
    font-size: 20px !important;
    line-height: 28px;
    text-align: left;
    margin-bottom: 0;
    margin-top: 20px;
    padding: 0;
  }
  section.vacation_partners {
    border: none;
    margin-bottom: 0;
  }
  section.vacation_partners .redeemHotelPartner {
    margin-top: 0;
    margin-bottom: 0;
    padding: 0 0 20px;
  }
  .vacation_partners .container .partners-content {
    padding: 0 5px 10px;
  }
  .vacation_partners .container .redeemHotelPartner p {
    color: #787E8E;
    font-size: 18px;
  }
  .vacation_partners .redeemHotelPartnerLogo {
    padding-top: 10px;
  }
  .vacation_partners .redeemHotelPartner p {
    width: 100%;
    text-align: left;
  }
}

@media screen and (max-width: 480px) {
  .vacation_partners .redeemHotelPartner {
    border-top: none;
    border-bottom: none;
  }
  .vacation_partners .redeemHotelPartnerLogo .hotelLogoHeight {
    height: 83px;
  }
}

/* Sayings */
.lp-sayings__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
}
.lp-sayings__card {
  background: var(--vp-card);
  border: 1px solid var(--vp-line);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
}
.lp-sayings__card img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 12px;
}
.lp-sayings__card h3 { margin: 0 0 8px; font-size: 16px; font-family: 'Roboto', sans-serif; font-weight: 500; }
.lp-sayings__card p { margin: 0; font-size: 14px; color: var(--vp-ink-2); line-height: 1.45; font-family: 'Roboto', sans-serif; }

/* faq.blade.php — vacation-product2.css */
.faq-section {
  display: inline-block;
  position: relative;
  width: 100%;
  clear: both;
  margin-bottom: 30px;
  background-color: #fff;
}
.faq-section .faq {
  padding: 0 10px;
}
.faq-section h3 {
  color: #202840;
  font-family: Roboto-Bold;
  font-size: 36px;
  text-align: center;
  text-transform: capitalize;
}
.faq-section .accordion {
  font-family: Roboto-Regular;
  font-size: 24px;
  border-bottom: 1px solid #efefef;
  margin-top: 0;
  padding: 20px 0;
  cursor: pointer;
  width: 100%;
  outline: none;
  transition: 0.8s;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: auto;
  color: #003C8A;
}
.faq-section .accordion.active {
  font-family: Roboto-Bold;
  font-size: 24px;
  color: #003c8a;
  border-bottom: 1px solid #003c8a;
}
.faq-section .dropdown_icon {
  font-size: 23px;
  color: #003C8A;
  scale: 0.7;
  text-align: right;
}
.faq-section .active .dropdown_icon {
  color: #003c8a;
  -moz-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}
.faq-section .panel {
  padding: 0;
  display: none;
  background-color: white;
  overflow: hidden;
  border: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.faq-section .panel p {
  color: #001023;
  font-family: Roboto-Regular !important;
  font-size: 20px;
  margin-top: 20px;
}
.faq-section .panel p strong {
  font-family: Roboto-Bold !important;
}
.faq-section .panel ul {
  list-style: none;
  font-size: 20px;
}
.faq-section .panel ul li {
  font-size: 20px;
}

.faq-section + section {
  clear: both;
  width: 100%;
  float: left;
  background-color: #fff;
  padding: 10px 0 20px;
}

.bottom-spacer {
  float: left;
  width: 100%;
  height: 30px;
  background: #FFFFFF;
}

/* midnight-deal sticky bar — vacation-product2.css + countdown_timer.js */
.midnight-deal.fixedReserveItNowDiv {
  position: fixed;
  z-index: 1000;
  width: 100%;
  bottom: -1px;
  opacity: 1;
}
.midnight-deal {
  background-color: #0F1D35;
  padding: 8px 0 0 9px;
  margin-top: 23px;
}
.vacation_product_detail_inside_footer_bg {
  background: #0F1D35 !important;
}
.vacation_product_detail_content_footer h2.vacation_product_detail_content_footer_h2 {
  background: #fff !important;
  color: #0F1D35 !important;
}
.vacation_product_detail_content_footer h2.vacation_product_detail_content_footer_h2::after {
  border: 21px solid transparent !important;
  border-left: 19px solid #fff !important;
}
.vacation_product_detail_inside_bg ul.countdown li span.footer_color_white,
.vacation_product_detail_inside_bg ul.countdown li p.footer_color_white,
.vacation_product_detail_inside_bg ul.countdown li.footer_color_white {
  color: #fff !important;
}
.hide_bottom_bar {
  display: none;
}
.vacation_product_banner_right_footer ul.countdown {
  margin-top: 15px !important;
}
.vacation_product_banner_right_footer ul.countdown li.seperator {
  color: white !important;
}

@media screen and (max-width: 767px) {
  .midnight-deal {
    margin-top: 0px !important;
  }
  .vacation_product_banner_right_footer .buy_it_btn {
    margin-top: 0px !important;
  }
  .vacation_product_banner_right_footer .buy_it_btn .regular_txt_price {
    margin-top: 0px;
    margin-bottom: 0px;
    border: solid 1px white;
  }
}

/* templates/tp_layout/footer.blade.php + landing.blade.php head-css */
.blueFooter {
  padding: 20px;
  margin-top: 50px;
  background-color: #F7F8FA !important;
  color: #666666;
  text-align: center;
  font-family: Roboto-Regular;
  width: 100%;
  float: left;
  clear: both;
}
.blueFooter img {
  width: 500px;
  max-width: 100%;
}
.blueFooterLinks {
  margin: 10px 0 0;
  color: #2B2B2B;
}
.blueFooterCopyText {
  margin: 20px;
  color: #2B2B2B;
}
.footerLink {
  color: #2B2B2B !important;
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .faq-section {
    margin-top: 0px;
    margin-bottom: 20px;
  }
  .faq-section .faq {
    padding: 0 5px;
  }
  .faq-section h3 {
    font-size: 28px;
    margin-top: 0;
  }
  .faq-section .accordion {
    font-size: 18px;
    padding: 15px 0;
  }
  .faq-section .accordion.active {
    font-size: 18px;
  }
  .faq-section .panel p {
    font-size: 18px;
  }
  .faq-section .panel ul li {
    font-size: 18px;
  }
}

/* Sticky bottom CTA */
.lp-sticky-cta {
  position: sticky;
  bottom: 0;
  z-index: 20;
  background: var(--vp-navy);
  padding: 0;
}
.lp-sticky-cta__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
}
.lp-sticky-cta__ribbon {
  background: #fff;
  min-height: 74px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  position: relative;
  width: 21%;
}
.lp-sticky-cta__ribbon::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border: 37px solid transparent;
  border-left: 23px solid #fff;
}
.lp-sticky-cta__label {
  font-size: 20px;
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  color: var(--vp-navy-2);
  text-transform: uppercase;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.lp-sticky-cta__right {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 20px;
}

@media (max-width: 900px) {
  .lp-banner { height: auto; min-height: 200px; }
  .lp-banner__inner { padding: 32px 16px; }
  .lp-banner__phone { position: static; margin-top: 16px; }
  .lp-price { margin-top: -24px; }
  .lp-price__urgency { flex-wrap: wrap; }
  .lp-price__card { grid-template-columns: 1fr; }
  .lp-price__photo { min-height: 220px; }
  .lp-price__body { padding: 20px; }
  .lp-sticky-cta__ribbon { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

.lp-page { padding-bottom: 0; }

/* image-reviews.blade.php inline styles */
.image-reviews-section {
  width: 100%;
  float: left;
  background-color: #fff;
}
.image-reviews-section h3 {
  font-family: Roboto-Bold;
  color: #202840;
  margin-top: 0;
}
.image-reviews {
  padding: 0 10px;
}
.image-reviews .content {
  padding: 20px 0 !important;
}

@media (max-width: 767px) {
  .image-reviews-section .container {
    padding: 0;
  }
  .image-reviews {
    background: #F7F8FA;
    box-shadow: 0px 2px 6px rgba(0, 3, 6, 0.1);
    padding: 0px 20px !important;
  }
  .image-reviews .content {
    padding-top: 0px !important;
    padding-bottom: 20px !important;
  }
}

.rating-banner {
  display: flex;
  flex-wrap: wrap;
  background-color: #003087;
  color: white;
  font-family: Arial, sans-serif;
  text-align: center;
}

.rating-box {
  flex: 1;
  padding: 1%;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.left .stars {
  font-size: 28px;
  color: gold;
}

.left .score {
  font-size: 20px;
  font-weight: 800;
}

.center {
  display: flex;
  justify-content: center;
}

.white-box {
  background: white;
  color: black;
  width: 100%;
  max-width: 370px;
}

.center-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
}

.left-side, .right-side {
  text-align: center;
  flex: 1;
}

.brand-line,
.google-line {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 5px;
}

.brand-logo {
  height: 40px;
}

.gold-stars {
  font-size: 20px;
  color: gold;
  line-height: 1;
  margin-top: 5px;
}

.review-count {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 2px;
}

.verified {
  font-size: 12px;
  margin-bottom: 5px;
}

.google-logo {
  height: 30px;
}

.right .satisfaction {
  font-size: 25px;
  font-weight: bold;
}

.right .based {
  font-size: 18px;
}

.right .verified-info {
  font-size: 14px;
}

.stars {
  display: flex;
  font-size: 28px;
  color: #ccc;
}

.stars .full {
  color: gold;
}

.stars .half {
  position: relative;
  color: #ffffff;
}

.stars .half::before {
  content: '★';
  color: gold;
  position: absolute;
  left: 0;
  width: 50%;
  overflow: hidden;
}

@media (max-width: 768px) {
  .rating-banner {
    flex-direction: column;
    align-items: center;
  }

  .center-row {
    flex-direction: column;
  }

  .left-side, .right-side {
    text-align: center;
  }
}

/* video-reviews-2.blade.php inline styles */
.video-reviews-section {
  width: 100%;
  float: left;
  background-color: #fff;
}
.video-reviews-section h3 {
  font-family: Roboto-Bold;
  color: #202840;
  margin-top: 0;
}
.video-reviews {
  padding: 0 10px;
}

@media (max-width: 767px) {
  .video-reviews-section .container {
    padding: 0;
  }
  .video-reviews {
    background: #F7F8FA;
    box-shadow: 0px 2px 6px rgba(0, 3, 6, 0.1);
    padding: 20px !important;
  }
  .video-reviews-section h3 {
    font-size: 28px;
    text-align: left !important;
    margin-bottom: 20px;
  }
  .video-reviews .content {
    padding-bottom: 30px;
  }
}

/* landing.blade.php @push head-css */
.video-reviews-section {
  margin-bottom: 0px;
}

.vacation_product_detail_three.vacation_product_detail_padding .vacation_product_detail_main_top {
  margin-top: 30px !important;
}

/* ========================================
   Polish & Enhancements (Phase 6)
   ======================================== */

img[src=""],
img:not([src]) {
  opacity: 0;
}

/* Better mobile touch targets */
@media (max-width: 767px) {
  button,
  .lp-price__book-btn {
    min-height: 48px;
    min-width: 48px;
  }
}

/* Optimize animations for performance */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Ensure proper z-index stacking */
.lp-sticky-cta {
  z-index: 100;
}

.lp-banner {
  z-index: 1;
}

.vacation_product_detail {
  z-index: 2;
}

.customer-testimonial-section {
  width: 100%;
  float: left;
  background-color: #fff;
}

.customer-testimonial-section h3 {
  font-family: Roboto-Bold, Roboto, sans-serif;
  color: #202840;
  margin-top: 0;
}

.customer-testimonial {
  position: relative;
  padding: 25px;
  background: url(/assets/v2/images/studyarrow1.png) 20px 35px no-repeat #f4f4f4;
  margin-bottom: 20px;
}

.customer-testimonial__quote {
  font-family: Roboto-Regular, Roboto, sans-serif;
  font-size: 15px;
  font-style: italic;
  color: #555;
  padding: 20px 50px;
  padding-bottom: 0;
}

.customer-testimonial__customer {
  font-family: Roboto-Regular, Roboto, sans-serif;
  font-size: 15px;
  font-style: italic;
  color: #555;
  text-align: end;
  margin-right: 35px;
  padding-top: 0;
  padding-bottom: 20px;
  padding-left: 50px;
  padding-right: 50px;
}

.customer-testimonial::after {
  position: absolute;
  right: 30px;
  width: 45px;
  height: 33px;
  content: " ";
  background: url(/assets/v2/images/studyarrow2.png) left top no-repeat;
  color: #fff;
  display: inline-block;
  bottom: 35px;
}

@media (max-width: 767px) {
  .customer-testimonial-section .container {
    padding: 0;
  }
  .customer-testimonial {
    background-color: #F7F8FA;
    box-shadow: 0px 2px 6px rgba(0, 3, 6, 0.1);
    padding: 20px !important;
  }
}

/* Optimize font loading */
@font-face {
  font-family: 'Roboto';
  font-display: swap;
}

/* Print styles */
@media print {
  .lp-sticky-cta,
  .countdown,
  button {
    display: none !important;
  }
  
  * {
    background: white !important;
    color: black !important;
  }
}
