/* Top-level desktop zoom: render the whole layout at 90% without altering any component dimensions, font sizes, or spacing. Scoped to desktop so the responsive mobile/tablet layouts stay at their natural scale. */

    @media screen and (min-width: 992px) {
      body { zoom: 0.9; }
    }
  

.photoinstance {
  cursor: pointer;
  width: 64px;
  transition: all 0.3s ease-in-out;
}
.photoinstance.active {
  width: 880px;
  z-index: 10;
}
.menusecondlevel,
.photostrip,
.guestrevphotogall,
.acccardphotogall,
.herophotosrow-2,
.herophotosrow-3{
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.menusecondlevel::-webkit-scrollbar,
.photostrip::-webkit-scrollbar,
.guestrevphotogall::-webkit-scrollbar,
.acccardphotogall::-webkit-scrollbar,
.herophotosrow-2::-webkit-scrollbar,
.herophotosrow-3::-webkit-scrollbar {
  display: none; 
}

.hero {
  background-image: url('../images/hero-home.webp') !important;
  background-color: transparent !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
}
/* Phones: the original Webflow rule locks .hero to height:480px; overflow:clip, which cuts off the stacked offer widget (attention bar + price + Reserve). Let it size to its content like tablet already does, so nothing … */

@media screen and (max-width: 479px) {
  .hero { height: auto !important; overflow: visible !important; }
}

@media screen and (max-width: 767px) {
  .hero {
    height: auto !important;
    overflow: visible !important;
    background-image: none !important;
  }
  .campaignlogoand-price {
    background-image: url('../images/orlando-hero.webp');
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    justify-content: flex-start;
    align-items: center;
  }
  .flex-block-6 { justify-content: flex-start; padding-top: 40px; }
}

.offerexpirecounter.acm-attention {
  background-color: #fff;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom: 1px solid #e0e0e0;
}
.acm-attention-icon { width: 44px; height: 44px; flex-shrink: 0; object-fit: contain; }
.acm-attention-text { font-size: 16px; line-height: 1.4; color: #262626; margin: 0; text-align: left; flex: 0 1 auto; }
.acm-attention-text strong { color: #071330; font-weight: 700; display: block; }
.acm-attention-count { color: #ee1e27; font-weight: 700; }

.checkout-cta.toppercta {
  background-color: #e9654a;
  border-radius: 30px;
  padding: 8px 26px;
  font-size: 14px;
  font-weight: 600;
}
.checkout-cta.toppercta:hover {
  background-color: #b64f39;
}

#video {
	max-height: 90vh;
  width: auto;
  padding: 24px;
  }

.vv-visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.cta-button--call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 52px; 
  margin-top: 10px;
  padding: 14px 28px;
  border: 2px solid #e9654a;
  border-radius: 40px;
  background: #fff;
  color: #e9654a;
  font-family: Roboto, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}

.cta-button--call:hover,
.cta-button--call:focus-visible {
  background: #e9654a;
  color: #fff;
}

.cta-call-microcopy {
  margin: 8px 0 0;
  color: #667085;
  font-family: Roboto, sans-serif;
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
}

.msc-actions {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
}

.msc-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: 0 0 auto;
  min-height: 44px;
  padding: 10px 16px;
  border: 2px solid #215272;
  border-radius: 40px;
  background: #fff;
  color: #215272;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.msc-call svg,
.msc-call i {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.msc-actions .msc-cta {
  flex: 1 1 auto;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (max-width: 400px) {
  .msc-call {
    padding: 10px 14px;
  }
  .msc-call-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

.footer-taxes {
  margin: 6px 0;
  color: inherit;
  font-family: Roboto, sans-serif;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}

.vv-gallery-item {
  position: relative;
}

.vv-gallery-item img {
  cursor: zoom-in;
}

.vv-gallery-expand {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: rgba(7, 19, 48, .62);
  color: #fff;
  cursor: pointer;
  transition: background-color .15s ease;
}

.vv-gallery-expand:hover,
.vv-gallery-expand:focus-visible {
  background: rgba(7, 19, 48, .85);
}

.vv-gallery-expand svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.vv-gallery-modal[hidden] {
  display: none;
}

.vv-gallery-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.vv-gallery-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 19, 48, .88);
}

.vv-gallery-modal__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  touch-action: pan-y pinch-zoom;

  max-width: min(1500px, 94vw);
  max-height: 100%;
}

.vv-gallery-modal__img {
  width: min(1500px, 94vw);
  max-width: 100%;
  

  max-height: 84vh;
  height: auto;
  border-radius: 12px;
  object-fit: contain;
}

.vv-gallery-modal__caption {
  margin: 0;
  color: #fff;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  text-align: center;
}

.vv-gallery-modal__close {
  position: absolute;
  top: -6px;
  right: -6px;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #071330;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.vv-gallery-modal__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .18);
  color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background-color .15s ease;
}

.vv-gallery-modal__nav:hover,
.vv-gallery-modal__nav:focus-visible {
  background: rgba(255, 255, 255, .32);
}

.vv-gallery-modal__prev { left: 20px; }
.vv-gallery-modal__next { right: 20px; }

.vv-gallery-modal__nav svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media screen and (max-width: 767px) {
  .vv-gallery-modal__nav {
    width: 40px;
    height: 40px;
  }
  .vv-gallery-modal__prev { left: 8px; }
  .vv-gallery-modal__next { right: 8px; }
  .vv-gallery-modal__nav svg {
    width: 24px;
    height: 24px;
  }
}

/* Lock scroll without losing position (JS pins body via top offset). */

body.vv-modal-open {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
}

/* Decorative chrome must not read as interactive: no pointer cursor, no hover lift, no button affordance. Anything that looks tappable must DO something. */

.pb-container,
.pb-container *,
.campaignlogoand-price,
.hero-title-badge,
.priceblock,
.priceblock *,
.stayperiod-3,
.sealsrow img,
.sealstamp,
img[alt^="Seal"] {
  cursor: default;
  pointer-events: none;
  box-shadow: none;
}

.campaignlogoand-price a,
.campaignlogoand-price button,
.priceblock a,
.priceblock button {
  pointer-events: auto;
  cursor: pointer;
}

.sealsrow img:hover,
.sealstamp:hover,
img[alt^="Seal"]:hover {
  transform: none;
  filter: none;
  opacity: 1;
}

.hero-title-badge-img {
  display: block;
  width: 100%;
  max-width: 620px;
  height: auto;
  margin: 0 auto 14px;
  
  cursor: default;
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .hero-title-badge-img { max-width: 460px; margin-bottom: 10px; }
}
@media screen and (max-width: 479px) {
  .hero-title-badge-img { max-width: 300px; margin-bottom: 8px; }
}

.offer-card-logo {
  display: block;
  width: auto;
  max-width: 190px;
  max-height: 74px;
  height: auto;
  margin: 0 auto 6px;
  object-fit: contain;
  cursor: default;
  pointer-events: none;
}

@media screen and (max-width: 479px) {
  .offer-card-logo { max-width: 140px; max-height: 56px; }
}

.property-sogno-wg-orlando-99-8-26 .price-family-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 0;
  padding-left: 124px;
  padding-right: 80px;
  position: relative;
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .price-family-row {
    padding-left: 137px;
    padding-right: 57px;
  }
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .discount.discount-badge--absolute {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  flex: none;
  order: 0;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 20px 28px 20px 16px;
  border-radius: 0 40px 40px 0;
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 0.95;
  text-align: center;
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .discount.discount-badge--absolute.hero-pct-badge {
  display: none;
}

/* A DEFINITE width, not `width:100%`: the wrapper takes its size from this image, so a percentage width is circular and collapsed the whole prop to 0px. */

.bch-tickets-img.waterpark-access-card {
  display: block;
  width: 340px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  border-radius: 10px;
}

.bch-tickets:has(.waterpark-access-card) {
  width: auto;
  min-width: 340px;
}

@media screen and (max-width: 767px) {
  .bch-tickets-img.waterpark-access-card { width: 260px; }
  .bch-tickets:has(.waterpark-access-card) { min-width: 0; }
}

.gr-testimonials {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 12px;
  width: 100%;
  margin: 26px 0 4px;
}

.gr-vid {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #0d1f48;
  cursor: pointer;
  aspect-ratio: 4 / 5;
}

.gr-vid img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gr-vid-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gr-vid-play svg {
  width: 42px;
  height: 42px;
  fill: #fff;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .55));
  transition: transform .15s ease;
}

.gr-vid:hover .gr-vid-play svg,
.gr-vid:focus-visible .gr-vid-play svg {
  transform: scale(1.12);
}

.gr-vid:focus-visible {
  outline: 3px solid #fe5925;
  outline-offset: 2px;
}

@media screen and (max-width: 991px) {
  .gr-testimonials { grid-template-columns: repeat(4, 1fr); }
}
@media screen and (max-width: 560px) {
  .gr-testimonials { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .gr-vid-play svg { width: 30px; height: 30px; }
}

.vv-video-modal[hidden] { display: none; }

.vv-video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.vv-video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 19, 48, .9);
}

.vv-video-modal__panel {
  position: relative;
  z-index: 1;
  width: min(460px, 100%);
  max-height: 100%;
}

.vv-video-modal__video {
  width: 100%;
  max-height: 82vh;
  border-radius: 14px;
  background: #000;
  display: block;
}

.vv-video-modal__close {
  position: absolute;
  top: -10px;
  right: -10px;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #071330;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.vv-legal-modal[hidden] { display: none; }

.vv-legal-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.vv-legal-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 19, 48, .88);
}

.vv-legal-modal__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(860px, 96vw);
  height: min(86vh, 900px);
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
  padding: 52px 28px 28px;
  box-sizing: border-box;
}

.vv-legal-modal__iframe {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
  border-radius: 4px;
}

.vv-legal-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #0d1f48;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.vv-legal-modal__close:hover,
.vv-legal-modal__close:focus-visible {
  background: #fe5925;
}

@media screen and (max-width: 767px) {
  .vv-legal-modal {
    padding: 10px;
  }
  .vv-legal-modal__panel {
    width: 100%;
    height: min(92vh, 100%);
    border-radius: 12px;
    padding: 48px 18px 18px;
  }
}

/* Badge sized per breakpoint — no CSS zoom (Safari/Chrome render zoom differently). */

.ob-sticker img.hero-title-badge-img {
  width: 560px;
  max-width: none;
  height: auto;
  aspect-ratio: 797 / 302;
  object-fit: contain;
}
@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img.hero-title-badge-img,
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img {
    width: 459px;
    max-width: none;
  }
}

/* Nothing on this page may scroll the document sideways on desktop. On phone Massanutten leaves overflow visible so the 344px sticker and left-edge pill can sit flush; clip was shrinking the 375px layout. */

.property-sogno-wg-orlando-99-8-26 .hero,
.property-sogno-wg-orlando-99-8-26 .herocontainer {
  max-width: 100%;
}

@media screen and (min-width: 768px) {
  .property-sogno-wg-orlando-99-8-26 .hero,
  .property-sogno-wg-orlando-99-8-26 .herocontainer,
  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    overflow-x: clip;
  }
}

/* The export's hero lets its offer group bleed past narrow viewports (the control page does the same: its oversized sticker is deliberate). Rather than re-engineer that layout, the banner is sized against the VIEWPORT s… */

.property-sogno-wg-orlando-99-8-26 .bch-card-img {
  width: 340px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  border-radius: 10px;
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .bch-card-img { width: 260px; }
}

/* The label grew from "Reserve Now" to "RESERVE ONLINE — $99 Per Package", which overflowed once the CALL NOW button took its share of the row. */

@media screen and (max-width: 420px) {
  .msc-actions {
    gap: 6px;
    min-width: 0;
  }
  .msc-actions .msc-cta {
    flex: 1 1 auto;
    min-width: 0;
    padding-inline: 10px;
    font-size: 13px;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
  }
  .msc-call {
    flex: 0 0 auto;
    padding: 10px 12px;
    min-width: 44px;
  }
}

/* Desktop: full-bleed Orlando hero on .hero */
.property-sogno-wg-orlando-99-8-26 .hero {
  background: center top / cover no-repeat url('../images/orlando-hero.webp') !important;
}

.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
  background: none !important;
}

/*
  Desktop left column: real flex wrapper (NOT display:contents).
  Keep position:static so .hero-sales-banner's absolute bottom:0 anchors to
  .hero — not this stage (that trapped the bonus banner mid-hero).
*/
.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 100%;
  height: 100%;
  position: static;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.property-sogno-wg-orlando-99-8-26 .hero-mobile-picture,
.property-sogno-wg-orlando-99-8-26 .hero-mobile-photo {
  display: none !important;
}

/* Reserve in the left column: phones + tablet; desktop uses the offer card CTA. */
@media screen and (min-width: 992px) {
  .property-sogno-wg-orlando-99-8-26 .hero-cta-in-column {
    display: none !important;
  }
}

/* Desktop: pin bonus banner to the hero bottom (same axis as before mobile-stage). */
@media screen and (min-width: 992px) {
  .property-sogno-wg-orlando-99-8-26 .hero {
    position: relative;
  }

  .property-sogno-wg-orlando-99-8-26 .herocontainer,
  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    align-items: stretch;
    min-height: 100%;
    height: 100%;
  }

  .property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .flex-block-6 {
    flex: 0 1 auto;
    margin-top: auto;
    margin-bottom: auto;
    padding-bottom: 120px; /* clearance so content clears the absolute banner */
  }

  .property-sogno-wg-orlando-99-8-26 .hero-sales-banner.hero-sales-banner--in-hero {
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(calc(-50% - 258px)) !important;
    width: 620px !important;
    max-width: 46% !important;
    margin: 0 !important;
    z-index: 1;
  }
}

@media screen and (max-width: 767px) {
  body.property-sogno-wg-orlando-99-8-26 .w-layout-blockcontainer.hero.w-container,
  body.property-sogno-wg-orlando-99-8-26 .hero {
    background: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .herocontainer,
  body.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    align-self: stretch !important;
  }

  /* Show the offer-details card on mobile (same as Orlando 59), flush under the bonus banner.
     No bottom margin: body/html is navy (#0d1f48) for footer bleed — a gap would paint a blue strip above the submenu. */
  body.property-sogno-wg-orlando-99-8-26 .offerwidget {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Keep logo bar flush with hero; preserve vertical padding so the mark isn't on the orange rule. */
  body.property-sogno-wg-orlando-99-8-26 .tb {
    margin-bottom: 0 !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .tb-top {
    margin-bottom: 0 !important;
    padding: 12px 14px 16px !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .tb-logo {
    height: 22px !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-submenu {
    top: var(--mobile-header-offset, 46px);
    z-index: 19;
    background-color: #fff;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-submenu-inner {
    background-color: #fff;
    flex-wrap: nowrap;
  }

  /*
    One mobile hero block: photo behind title + price + play + Reserve + bonus banners.
    Absolute photo stretches to the full stage height so CTA/banner are included on the image.
  */
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-picture {
    display: block !important;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    z-index: 0;
    pointer-events: none;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-photo {
    display: block !important;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    object-fit: cover;
    object-position: top center;
    z-index: 0;
    pointer-events: none;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-cta-in-column {
    display: flex !important;
  }

  /*
    Badge must sit beside the price circle — NOT at 50% of the tall stage
    (that lands on Reserve once banners are included).
  */
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .hero-pct-badge,
  body.property-sogno-wg-orlando-99-8-26 .discount.discount-badge--absolute.hero-pct-badge {
    z-index: 3;
    left: 0;
    top: 36% !important;
    transform: translateY(-50%) !important;
    font-size: 16px;
    padding: 14px 12px 14px 10px;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .flex-block-6 {
    position: relative;
    z-index: 1;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 12px 10px;
    margin: 0;
    background: none !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: min(58vw, 340px);
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-group {
    width: 100%;
    max-width: 100%;
    gap: 8px;
    align-items: center;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-sticker {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-sticker img.hero-title-badge-img,
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-sticker img {
    width: min(300px, 86vw) !important;
    max-width: 86vw !important;
    height: auto !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-combo,
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .flex-block-6 > .video-resort {
    transform: none !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-combo .pb-container {
    font-size: clamp(6.5px, 2.1vw, 8px);
    width: 19.4em;
    height: 19.4em;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .hero-cta-in-column {
    display: flex !important;
    width: 100%;
    box-sizing: border-box;
    padding: 4px 4px 8px;
    margin: 0;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .hero-cta-in-column .checkout-cta {
    width: 100%;
    max-width: none;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .hero-sales-banner--in-hero {
    display: block !important;
    position: relative !important;
    z-index: 1;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .includes-banner-cta {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .includes-banner-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px 12px 0 0;
  }
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .discount.discount-badge--absolute {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  order: 0;
  flex: none;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 20px 28px 20px 16px;
  border-radius: 0 40px 40px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.property-sogno-wg-orlando-99-8-26 .price-family-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding-left: 124px;
  padding-right: 80px;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .price-family-row {
    padding-left: 137px;
    padding-right: 57px;
  }
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .newprice-3 {
  margin: 0;
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .stayperiod-3 {
  margin: 0 0 0 12px;
  text-align: left;
  line-height: 1.1;
}

.property-sogno-wg-orlando-99-8-26 .hs-price-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: auto;
}

.property-sogno-wg-orlando-99-8-26 .hs-badge {
  order: 0;
  flex: 0 0 auto;
  width: auto;
  margin: 0;
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  border-radius: 12px;
}

.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.property-sogno-wg-orlando-99-8-26 .flex-block-6,
.property-sogno-wg-orlando-99-8-26 .offerwidget {
  position: relative;
  z-index: 2;   
}

.property-sogno-wg-orlando-99-8-26 .offerwidget {
  margin-block: 28px;
}

.property-sogno-wg-orlando-99-8-26 .sealset.trust-badges {
  margin-bottom: 24px;
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    margin-block: 0;
    margin-bottom: 0 !important;
  }
  .property-sogno-wg-orlando-99-8-26 .sealset.trust-badges { margin-bottom: 16px; }
}

.property-sogno-wg-orlando-99-8-26 .rd-slider-wrap,
.property-sogno-wg-orlando-99-8-26 .rd-slide {
  width: 100%;
}

.property-sogno-wg-orlando-99-8-26 .rd-slide img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  object-position: center 45%;
  border-radius: 0 0 24px 24px;
  
  filter: none;
  cursor: default;
}
.property-sogno-wg-orlando-99-8-26 .rd-slide .vv-gallery-expand {
  display: none;
}

/* The CALL NOW button in the bonus bar rendered as a raw blue link: these rules were lost in a revert and never re-added, so the markup had no styling at all. */

.bch-cta-actions {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.bch-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  min-height: 48px;
  padding: 13px 22px;
  border: 2px solid #fff;
  border-radius: 40px;
  background: transparent;
  color: #fff;
  font-family: Roboto, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;   
  white-space: nowrap;
}

.bch-call:hover,
.bch-call:focus-visible { background: rgba(255, 255, 255, .14); color: #fff; }

.bch-call svg,
.bch-call i { width: 18px; height: 18px; flex-shrink: 0; }

.bch-cta-actions .bch-cta {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
}

@media screen and (max-width: 400px) {
  .bch-cta-actions { gap: 6px; }
  .bch-call { padding: 12px 14px; min-width: 48px; }
  .bch-call-text {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
  }
  .bch-cta-actions .bch-cta { font-size: 13px; padding-inline: 10px; white-space: normal; }
}

.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-bottom: 0;
}

.property-sogno-wg-orlando-99-8-26 .flex-block-6,
.property-sogno-wg-orlando-99-8-26 .offerwidget { position: relative; z-index: 2; }

.property-sogno-wg-orlando-99-8-26 .offerwidget {
  margin-block: 20px;
  padding-top: 18px;
  padding-bottom: 18px;
}

.property-sogno-wg-orlando-99-8-26 .offerdetails { gap: 10px; }
.property-sogno-wg-orlando-99-8-26 .includingslist { gap: 6px; margin-block: 8px; }
.property-sogno-wg-orlando-99-8-26 .booking-disclaimer { margin-block: 8px; }
.property-sogno-wg-orlando-99-8-26 .booking-disclaimer p { margin: 2px 0; }
.property-sogno-wg-orlando-99-8-26 .cta-button--call { margin-top: 8px; min-height: 46px; padding-block: 11px; }
.property-sogno-wg-orlando-99-8-26 .cta-call-microcopy { margin-top: 6px; }
.property-sogno-wg-orlando-99-8-26 .sealset.trust-badges { margin-top: 10px; margin-bottom: 16px; }

/* The banner column was 717px tall inside an 864px hero container, so "bottom of the column" was 146px short of the hero's bottom edge. Stretch the column so `margin-top:auto` actually pins the banner to the hero. */

.property-sogno-wg-orlando-99-8-26 .herocontainer {
  align-items: stretch;
}

.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
  flex: 1 1 auto;
  align-self: stretch;
}

/* The Orlando banner art is 2.23:1 where the reference ribbon is 3.36:1, so at equal width it stood ~85px taller and inflated the hero. Bound its HEIGHT and let width follow, matching the reference ribbon's footprint. */

/* Banner: the left column refuses to stretch to the hero's height, so pin the banner to the hero's bottom edge directly. This is what "resting on the bottom of the hero image" needs, and it takes the banner out of flow … */

.property-sogno-wg-orlando-99-8-26 .hero {
  position: relative;
  

  padding-top: 28px;
}

@media screen and (max-width: 767px) {
  body.property-sogno-wg-orlando-99-8-26 .hero {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
}

.property-sogno-wg-orlando-99-8-26 .offerdetails { gap: 6px; padding-block: 10px; }
.property-sogno-wg-orlando-99-8-26 .widgettitle { gap: 4px; }
.property-sogno-wg-orlando-99-8-26 .offer-card-logo { max-height: 80px; margin-bottom: 2px; }
.property-sogno-wg-orlando-99-8-26 .priceanddiscount { padding-block: 8px; }
.property-sogno-wg-orlando-99-8-26 .includingslist { gap: 4px; margin-block: 4px; padding-block: 4px; }
.property-sogno-wg-orlando-99-8-26 .includingslist .listitem { line-height: 1.25; }
.property-sogno-wg-orlando-99-8-26 .div-block-22 { padding-block: 6px; }
.property-sogno-wg-orlando-99-8-26 .booking-disclaimer { margin-block: 4px; padding-bottom: 4px; }
.property-sogno-wg-orlando-99-8-26 .sealset.trust-badges { margin-top: 6px; margin-bottom: 10px; padding-bottom: 6px; }

.gs {
  padding: 48px 20px 56px;
  background: #eef4fb;
  text-align: center;
}

.gs-heading {
  margin: 0 0 28px;
  color: #0d1f48;
  font-family: Roboto, sans-serif;
  font-size: clamp(22px, 2.6vw, 34px);
  font-weight: 900;
  text-transform: uppercase;
}

.gs-track {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding: 4px 4px 12px;
  

  max-width: 1488px;
  margin: 0 auto;
}
.gs-track::-webkit-scrollbar { display: none; }

.gs-card {
  position: relative;
  

  flex: 1 1 168px;
  max-width: 240px;
  aspect-ratio: 4 / 5;
  padding: 0;
  border: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #0d1f48;
  cursor: pointer;
}

.gs-card--featured {
  flex: 0 0 300px;
  aspect-ratio: 1 / 1;
  border: 6px solid #fff;
  box-shadow: 0 10px 26px rgba(13, 31, 72, .22);
}

.gs-card img { display: block; width: 100%; height: 100%; object-fit: cover; }

.gs-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gs-play svg {
  width: 54px; height: 54px;
  fill: #fff;
  background: rgba(46, 134, 222, .82);
  border-radius: 50%;
  padding: 12px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .3);
}
.gs-card--featured .gs-play svg { width: 74px; height: 74px; }

.gs-meta {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 22px 10px 8px;
  background: linear-gradient(to top, rgba(0,0,0,.72), transparent);
  color: #fff;
  text-align: left;
}
.gs-name { font-family: Roboto, sans-serif; font-size: 13px; font-weight: 700; }
.gs-loc { font-family: Roboto, sans-serif; font-size: 12px; opacity: .92; }

.gs-card:focus-visible { outline: 3px solid #fe5925; outline-offset: 2px; }

@media screen and (max-width: 767px) {
  .gs { padding: 32px 12px 40px; }
  .gs-play svg { width: 40px; height: 40px; padding: 9px; }
}

.property-sogno-wg-orlando-99-8-26 .hero { position: relative; }

.property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
  padding-bottom: 12px;
}

@media screen and (max-width: 991px) {
  
/* Tablet: the columns are too narrow for an absolutely-placed banner — at 768 it overlapped the offer card. Return it to normal flow below the card. */

}

.property-sogno-wg-orlando-99-8-26 .offerwidget {
  
/* Centre the card in the hero and let equal margins guarantee the clearance. A right margin was tried but it narrowed the left column, which moved the price circle off the 488px axis the banner is aligned to - so it is … */

  align-self: center;
  
/* The hero's top padding pushed the centred card 13px low (47/21 split). The heavier bottom margin lifts it back so both edges clear the 32px minimum. */

  margin-top: 32px;
  margin-bottom: 58px;
}

.property-sogno-wg-orlando-99-8-26 .offerdetails { gap: 4px; padding-block: 8px; }
.property-sogno-wg-orlando-99-8-26 .priceanddiscount { padding-block: 6px; }
.property-sogno-wg-orlando-99-8-26 .includingslist { gap: 3px; margin-block: 3px; padding-block: 3px; }

/* Half-moon hangs ~17px below the $99 row. Massanutten clears it with 16px price-block padding + 8px list padding. Card compression above collapsed that, so the badge overlapped the first amenity. */

.property-sogno-wg-orlando-99-8-26 .priceanddiscount.pricing-section--highlighted {
  padding-block: 16px;
}
.property-sogno-wg-orlando-99-8-26 .includingslist {
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 0;
  padding: 8px 32px;
}
.property-sogno-wg-orlando-99-8-26 .div-block-22 { padding-block: 4px; }
.property-sogno-wg-orlando-99-8-26 .booking-disclaimer { margin-block: 3px; padding-bottom: 3px; }
.property-sogno-wg-orlando-99-8-26 .sealset.trust-badges { margin-top: 4px; margin-bottom: 6px; padding-bottom: 4px; }

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget { margin-top: 24px; margin-bottom: 32px; }
}

.property-sogno-wg-orlando-99-8-26 .price-family-row {
  padding-right: 0;
  padding-left: 0;
  column-gap: 10px;
  align-items: baseline;
  justify-content: center;
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .stayperiod-3 {
  text-align: left;
  line-height: 1.1;
  margin: 0;
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .newprice-3 { margin: 0; }

.vv-gallery-expand {
  opacity: 0;
  transition: opacity .15s ease, background-color .15s ease;
}

.vv-gallery-item:hover .vv-gallery-expand,
.vv-gallery-item:focus-within .vv-gallery-expand,
.vv-gallery-expand:focus-visible {
  opacity: 1;
}

@media (hover: none) {
  .vv-gallery-expand { opacity: 1; }
}

.property-sogno-wg-orlando-99-8-26 .herocontainer {
  max-width: 1136px;   
  margin-inline: auto;
  column-gap: 100px;   
  padding-right: 0;
  padding-left: 0;
}

@media screen and (min-width: 1200px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    flex: 0 0 416px;     
    width: 416px;
    min-width: 416px;
    max-width: 416px;
    box-sizing: border-box;
  }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .herocontainer {
    max-width: 100%;
    column-gap: 32px;
    padding-inline: 24px;
  }

  

}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .herocontainer { padding-inline: 0; column-gap: 0; }
  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    flex: 1 1 auto; width: auto; min-width: 0; max-width: 100%;
  }

}

/* The inner card must never cast the outer card's shadow. The inner .offerdetails carried the same `0 3px 3px #0003` as the card that wraps it, which read as a doubled line under the trust seals. */

.property-sogno-wg-orlando-99-8-26 .offerdetails {
  box-shadow: none;
}

/* Desktop is the rounded card. Mobile is flat top AND bottom, which is what the Webflow export already did at <=991px until an unscoped 20px radius here overrode it. */

@media screen and (min-width: 992px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget { border-radius: 20px; }
  .property-sogno-wg-orlando-99-8-26 .offerdetails { border-radius: 0 0 20px 20px; }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget,
  .property-sogno-wg-orlando-99-8-26 .offerdetails { border-radius: 0; }
}

/* THE 8px SEAM under the mobile bonus bar. The export ships `position: static; top: 8px` on .offerwidget - `top` is inert while the element is static, so it never showed. Our own `position: relative` (added so the card … */

.property-sogno-wg-orlando-99-8-26 .offerwidget {
  top: 0;
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget { margin-top: 0; }
}

.property-sogno-wg-orlando-99-8-26 .offerwidget::after,
.property-sogno-wg-orlando-99-8-26 .offerdetails::after {
  content: none;
  display: none;
}

.property-sogno-wg-orlando-99-8-26 .whyyougetsubtitle.darker {
  background-color: #2189ce;
}

/* Tab panel images: the supplied art is a short, wide banner (~4.9:1), so the previous 16:9 viewport cropped it heavily. Match the artwork's proportions and keep all four panels identical. */

.property-sogno-wg-orlando-99-8-26 .rd-slide img {
  
/* NO fixed aspect-ratio, and no cover. These four banners carry baked-in text ("Free BREAKFAST", "WATER PARK"), and they are not all the same shape - bonus is 3:1, the other three are 4.86:1. Any single imposed ratio cr… */

  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: fill;
  border-radius: 0;
  filter: none;
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .ob-sticker img.hero-title-badge-img,
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img {
    width: min(390px, 100%);
    max-width: 100%;
  }
}

@media screen and (max-width: 479px) {
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img.hero-title-badge-img,
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img {
    width: min(344px, 100%);
    max-width: 100%;
  }
}

@media screen and (max-width: 360px) {
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img.hero-title-badge-img,
  .property-sogno-wg-orlando-99-8-26 .ob-sticker img {
    width: min(310px, 100%);
    max-width: 100%;
  }
}

.property-sogno-wg-orlando-99-8-26 .discount.discount-badge--absolute.hero-pct-badge {
  display: none;
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    position: relative;
    padding-top: 0 !important;
  }
  .property-sogno-wg-orlando-99-8-26 .discount.discount-badge--absolute.hero-pct-badge {
    display: flex;
    z-index: 5;
    position: absolute;
    left: 0;
    /* Beside the price circle — not 50% of the tall stage (that hits Reserve). */
    top: 36% !important;
    transform: translateY(-50%) !important;
    background: #fff;
    color: #e9654a;
    
/* Mass locks .discount to 80px for "86% OFF!". $540 VALUE is wider — keep the flat left edge, let the tab grow right. */

    width: auto;
    min-width: 0;
    max-width: none;
    height: auto;
    box-sizing: border-box;
    padding: 20px 16px 20px 14px;
    font-size: 22px;
    line-height: 0.95;
    overflow: visible;
    white-space: nowrap;
  }

  
  .property-sogno-wg-orlando-99-8-26 .cta-wrapper {
    order: 5;
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .property-sogno-wg-orlando-99-8-26 .cta-wrapper .checkout-cta {
    width: 100%;
    max-width: none;
  }

  

}

@media screen and (max-width: 479px) {
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .hero-pct-badge,
  body.property-sogno-wg-orlando-99-8-26 .discount.discount-badge--absolute.hero-pct-badge {
    top: 34% !important;
    transform: translateY(-50%) !important;
  }

  /* Do not shift the price circle on Orlando mobile — it clipped the title/badge. */
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .ob-combo,
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage .flex-block-6 > .video-resort {
    transform: none !important;
  }
}
@media screen and (max-width: 390px) {
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .hero-pct-badge,
  body.property-sogno-wg-orlando-99-8-26 .discount.discount-badge--absolute.hero-pct-badge {
    top: 32% !important;
    transform: translateY(-50%) !important;
  }
}
@media screen and (max-width: 375px) {
  body.property-sogno-wg-orlando-99-8-26 .hero-mobile-stage > .hero-pct-badge,
  body.property-sogno-wg-orlando-99-8-26 .discount.discount-badge--absolute.hero-pct-badge {
    top: 32% !important;
    transform: translateY(-50%) !important;
  }
}

/* WCAG 2.2 AA: 44x44 minimum touch targets on mobile. The anchor-nav pills and the strip carousel arrows measured 32px tall. */

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .menul2item {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }
  .property-sogno-wg-orlando-99-8-26 .hero-submenu-arrow {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
  

  .property-sogno-wg-orlando-99-8-26 .msc-actions .msc-cta {
    min-width: 0;
    flex: 1 1 auto;
    white-space: normal;
  }
}

@media screen and (min-width: 768px) and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .hero-submenu .menul2item:not(.checkout-cta),
  .property-sogno-wg-orlando-99-8-26 .hero-submenu .menul2item.playvideo {
    font-size: 17px;
  }
}

/* Bonus panel split overflowed its half at 414 and 768: the two panels are a fixed 50/50 with content wider than the column. Let them wrap and contain. */

.property-sogno-wg-orlando-99-8-26 #bonus-cta {
  flex-wrap: wrap;
  overflow-x: clip;
}

.property-sogno-wg-orlando-99-8-26 .bch-left,
.property-sogno-wg-orlando-99-8-26 .bch-right {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  padding-inline: 16px;
}

.property-sogno-wg-orlando-99-8-26 .bch-headline,
.property-sogno-wg-orlando-99-8-26 .bch-eyebrow {
  max-width: 100%;
  overflow-wrap: anywhere;
}

@media screen and (max-width: 900px) {
  .property-sogno-wg-orlando-99-8-26 .bch-left,
  .property-sogno-wg-orlando-99-8-26 .bch-right { flex: 1 1 100%; }
  .property-sogno-wg-orlando-99-8-26 .bch-divider { display: none; }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .rd-tab {
    min-height: 44px;
    padding-block: 8px;
  }
  

  .property-sogno-wg-orlando-99-8-26 .text-block-5,
  .property-sogno-wg-orlando-99-8-26 .text-block-6,
  .property-sogno-wg-orlando-99-8-26 .footer-2 a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}

@media screen and (max-width: 560px) {
  .property-sogno-wg-orlando-99-8-26 #bonus-cta {
    display: flex;
    flex-direction: column;
  }
  .property-sogno-wg-orlando-99-8-26 .bch-left,
  .property-sogno-wg-orlando-99-8-26 .bch-right {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
  }
}

@media screen and (max-width: 560px) {
  .property-sogno-wg-orlando-99-8-26 .bch-cta-bar {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding-inline: 16px;
    padding-block: 32px;   
  }
  .property-sogno-wg-orlando-99-8-26 .bch-cta-actions {
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
  }
  .property-sogno-wg-orlando-99-8-26 .bch-cta-actions .bch-cta,
  .property-sogno-wg-orlando-99-8-26 .bch-call {
    flex: 1 1 100%;
    min-width: 0;
    box-sizing: border-box;
  }
}

@media screen and (max-width: 767px) {
  
  .property-sogno-wg-orlando-99-8-26 .msc-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.05;
    white-space: normal;
    text-align: center;
    padding: 6px 10px;
  }

  
  .property-sogno-wg-orlando-99-8-26 .msc-pkg {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.1;
    white-space: normal;
  }

  
  .property-sogno-wg-orlando-99-8-26 .msc-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
  }
  .property-sogno-wg-orlando-99-8-26 .msc-call,
  .property-sogno-wg-orlando-99-8-26 .msc-actions .msc-cta {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding-inline: 8px;
    font-size: 13px;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
  }
  .property-sogno-wg-orlando-99-8-26 .msc-call-text {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    clip: auto;
    overflow: visible;
    white-space: normal;
  }
}

.property-sogno-wg-orlando-99-8-26 .includingslist {
  align-items: flex-start;
}

.property-sogno-wg-orlando-99-8-26 .includingslist .listitem {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  width: 100%;
  gap: 8px;
}

.property-sogno-wg-orlando-99-8-26 .includingslist .listitem i,
.property-sogno-wg-orlando-99-8-26 .includingslist .listitem .feature-icon {
  flex: 0 0 auto;
  margin-top: 2px;
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .offerdetails .includingslist {
    width: fit-content;
    max-width: calc(100% - 64px);
    margin-inline: auto;
    align-self: center;
    padding-inline: 0;
    align-items: flex-start;
    text-align: left;
    justify-content: flex-start;
  }

  .property-sogno-wg-orlando-99-8-26 .offerdetails .includingslist .listitem {
    width: auto;
    max-width: 100%;
  }

  .property-sogno-wg-orlando-99-8-26 .offerdetails .div-block-22 {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
    margin-inline: 0;
    box-sizing: border-box;
    padding-inline: 32px;
  }
}

.property-sogno-wg-orlando-99-8-26 .price-family-row {
  align-items: center;
}

.property-sogno-wg-orlando-99-8-26 .price-family-row .stayperiod-3 {
  align-self: center;
}

@media screen and (max-width: 767px) {
  
  .property-sogno-wg-orlando-99-8-26 .msc-badge {
    align-self: stretch;
    min-height: 100%;
    padding: 14px 12px;
    font-size: 15px;
    border-radius: 0 14px 14px 0;
  }
  .property-sogno-wg-orlando-99-8-26 .msc-info {
    align-items: stretch;
  }
  
  .property-sogno-wg-orlando-99-8-26 .msc-pkg {
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .01em;
  }
}

@media screen and (max-width: 991px) {
  /* Match Orlando $59 tablet: show Reserve under play, full-width in the column. */
  .property-sogno-wg-orlando-99-8-26 .hero-cta-in-column,
  .property-sogno-wg-orlando-99-8-26 .hero .cta-wrapper.hero-cta-in-column {
    display: flex !important;
    flex-flow: column;
    justify-content: center;
    width: 100%;
  }

  .property-sogno-wg-orlando-99-8-26 .hero .cta-wrapper.hero-cta-in-column .checkout-cta {
    margin-inline: auto;
    display: block;
    text-align: center;
    width: 100%;
    max-width: none;
  }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .hero .cta-wrapper {
    display: flex;
    justify-content: center;
    width: 100%;
  }
  .property-sogno-wg-orlando-99-8-26 .hero .cta-wrapper .checkout-cta {
    margin-inline: auto;
    display: block;
    text-align: center;
    width: 100%;
    max-width: none;
  }
}

/* Tab panel image fit: the slider wrap carried a fixed 300px height while the banner art renders ~218px, leaving a grey band beneath every tab image. Let the container follow the image so all four tabs sit flush. */

.property-sogno-wg-orlando-99-8-26 .rd-slider-wrap,
.property-sogno-wg-orlando-99-8-26 .rd-slide {
  height: auto;
  min-height: 0;
  background-color: transparent;
  display: block;
  overflow: hidden;
}

.property-sogno-wg-orlando-99-8-26 .rd-slide img {
  display: block;
  width: 100%;
  height: auto;
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    margin-top: 0;
  }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price { row-gap: 0; }

}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .herocontainer {
    row-gap: 0;
    gap: 0;
  }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    padding-bottom: 0;
    margin-bottom: 0;
  }
}

.property-sogno-wg-orlando-99-8-26 #guest-reviews .gr-cta {
  margin-top: 32px;
  margin-bottom: 8px;
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 #guest-reviews .gr-cta {
    margin-top: 24px;
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .msc-info {
    display: flex;
    align-items: stretch;
    min-height: 76px;
  }
  .property-sogno-wg-orlando-99-8-26 .msc-badge,
  .property-sogno-wg-orlando-99-8-26 .msc-info-left,
  .property-sogno-wg-orlando-99-8-26 .msc-price {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    align-self: stretch;
  }
  .property-sogno-wg-orlando-99-8-26 .msc-info-left { align-items: flex-start; }
  .property-sogno-wg-orlando-99-8-26 .msc-price { align-items: flex-end; }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .msc-call-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.15;
  }
  .property-sogno-wg-orlando-99-8-26 .msc-call-label,
  .property-sogno-wg-orlando-99-8-26 .msc-call-num {
    display: block;
    white-space: nowrap;
  }
}

.bch-call-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.15;
}

.bch-call-label, .bch-call-num {
  display: block;
  white-space: nowrap;
}

@media screen and (max-width: 400px) {
  .property-sogno-wg-orlando-99-8-26 .bch-call-text {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    clip: auto;
    overflow: visible;
  }
  .property-sogno-wg-orlando-99-8-26 .bch-cta-actions .bch-call { flex: 1 1 100%; }
}

.property-sogno-wg-orlando-99-8-26 .nav-call {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 6px 16px;
  border: 2px solid #0d1f48;
  border-radius: 40px;
  color: #0d1f48;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.property-sogno-wg-orlando-99-8-26 .nav-call:hover,
.property-sogno-wg-orlando-99-8-26 .nav-call:focus-visible {
  background: #0d1f48;
  color: #fff;
}

.property-sogno-wg-orlando-99-8-26 .nav-call i,
.property-sogno-wg-orlando-99-8-26 .nav-call svg { width: 18px; height: 18px; flex-shrink: 0; }

.property-sogno-wg-orlando-99-8-26 .nav-call-text {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  line-height: 1.2;
}
.property-sogno-wg-orlando-99-8-26 .nav-call-label,
.property-sogno-wg-orlando-99-8-26 .nav-call-num {
  display: inline;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
  opacity: 1;
  white-space: nowrap;
}

@media screen and (min-width: 768px) {
  .property-sogno-wg-orlando-99-8-26 .hero-submenu-inner {
    flex-wrap: nowrap;
    gap: 10px;
    max-width: none;
  }
  .property-sogno-wg-orlando-99-8-26 .nav-call {
    flex: 0 0 auto;
    padding-inline: 12px;
  }
}

@media screen and (max-width: 767px) {
  

  .property-sogno-wg-orlando-99-8-26 .nav-call,
  .property-sogno-wg-orlando-99-8-26 .menul2item.checkout-cta.nav-variant {
    display: none !important;
  }
}

.property-sogno-wg-orlando-99-8-26 .bch-cta-actions .bch-cta,
.property-sogno-wg-orlando-99-8-26 .bch-call,
.property-sogno-wg-orlando-99-8-26 .hs-cta {
  box-sizing: border-box;
  min-height: 48px;
  height: 48px;
  padding-block: 14px;
  font-size: 17px;
  line-height: 20px;
  display: inline-flex;          
  align-items: center;
  justify-content: center;
}

.property-sogno-wg-orlando-99-8-26 .bch-call {
  padding-block: 12px;
}

.property-sogno-wg-orlando-99-8-26 .bch-cta-actions {
  align-items: center;
}

.property-sogno-wg-orlando-99-8-26 .hs-cta {
  display: flex;                 
}

.property-sogno-wg-orlando-99-8-26 .cta-call-text,
.property-sogno-wg-orlando-99-8-26 .bch-call-text,
.property-sogno-wg-orlando-99-8-26 .msc-call-text {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  gap: 1px;
}

.property-sogno-wg-orlando-99-8-26 .cta-call-label,
.property-sogno-wg-orlando-99-8-26 .bch-call-label,
.property-sogno-wg-orlando-99-8-26 .msc-call-label {
  font-size: .78em;
  letter-spacing: .04em;
  opacity: .9;
}

.property-sogno-wg-orlando-99-8-26 .cta-call-num,
.property-sogno-wg-orlando-99-8-26 .bch-call-num,
.property-sogno-wg-orlando-99-8-26 .msc-call-num {
  font-weight: 700;
  white-space: nowrap;
}

.property-sogno-wg-orlando-99-8-26 .cta-button--call,
.property-sogno-wg-orlando-99-8-26 .bch-call {
  box-sizing: border-box;
  min-height: 48px;
  height: 48px;
  padding-block: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.property-sogno-wg-orlando-99-8-26 .cta-call-hours,
.property-sogno-wg-orlando-99-8-26 .bch-call-hours {
  margin: 6px 0 0;
  font-family: Roboto, sans-serif;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
  opacity: .85;
}

.property-sogno-wg-orlando-99-8-26 .cta-call-hours { color: #5a6472; }
.property-sogno-wg-orlando-99-8-26 .bch-call-hours { color: #fff; flex: 1 1 100%; width: 100%; }

.property-sogno-wg-orlando-99-8-26 .bch-cta-bar {
  background: #071330;
  

  padding-block: 32px;
}

.property-sogno-wg-orlando-99-8-26 .bch-cta-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  max-width: 520px;
  margin-inline: auto;
}

.property-sogno-wg-orlando-99-8-26 .bch-cta-actions .bch-cta,
.property-sogno-wg-orlando-99-8-26 .bch-call {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.property-sogno-wg-orlando-99-8-26 .bch-call-hours {
  color: #fff;
  width: 100%;
  margin-top: 10px;
}

.property-sogno-wg-orlando-99-8-26 .gr-slide {
  image-rendering: auto;
}

/* Guest reviews: two-column only from 1280px (match Orlando $59).
   992–1279: photo full-width above, three cards share the row. */
@media screen and (min-width: 1280px) {
  .property-sogno-wg-orlando-99-8-26 .gr-reviews-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 573px;
    grid-template-rows: auto auto;
    column-gap: 32px;
    row-gap: 20px;
    align-items: start;
  }

  .property-sogno-wg-orlando-99-8-26 .gr-slideshow {
    position: relative;
    inset: auto;
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 100%;
    height: 100%;
    min-height: 363px;
  }

  .property-sogno-wg-orlando-99-8-26 .gr-cards { grid-column: 1; grid-row: 1; }

  .property-sogno-wg-orlando-99-8-26 .gr-cta {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    max-width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .gr-slideshow {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    min-height: 240px;
    margin-top: 20px;
  }
  .property-sogno-wg-orlando-99-8-26 .gr-cta { width: 100%; max-width: 100%; }
}

@media screen and (min-width: 992px) and (max-width: 1279px) {
  .property-sogno-wg-orlando-99-8-26 .gr-slideshow {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    min-height: 300px;
    margin-bottom: 28px;
  }
  .property-sogno-wg-orlando-99-8-26 .gr-cards {
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
  }
  .property-sogno-wg-orlando-99-8-26 .gr-cards .gr-card {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: none;
  }
  .property-sogno-wg-orlando-99-8-26 .gr-cta { width: 100%; max-width: 100%; }
}

.property-sogno-wg-orlando-99-8-26 .gs-track {
  justify-content: center;
  flex-wrap: wrap;
  row-gap: 16px;
}

.property-sogno-wg-orlando-99-8-26 .gs {
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
}

.property-sogno-wg-orlando-99-8-26 .gs-track {
  width: 100%;
  max-width: 1560px;
  margin-inline: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .gs {
    padding-left: 32px;
    padding-right: 32px;
  }
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .gs {
    padding-left: 24px;
    padding-right: 24px;
  }

  /* Match Orlando $59: 2-up guest stories on phones. */
  .property-sogno-wg-orlando-99-8-26 .gs-track {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 479px) {
  .property-sogno-wg-orlando-99-8-26 .gs {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1042px) {
  .property-sogno-wg-orlando-99-8-26 .gs-track {
    flex-wrap: nowrap;
    gap: 10px;
  }

  .property-sogno-wg-orlando-99-8-26 .gs-card {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
  }

  .property-sogno-wg-orlando-99-8-26 .gs-play svg {
    width: 40px;
    height: 40px;
    padding: 9px;
  }

  .property-sogno-wg-orlando-99-8-26 .gs-name { font-size: 12px; }
  .property-sogno-wg-orlando-99-8-26 .gs-loc { font-size: 11px; }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .gs-track {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    overflow-x: visible;
    justify-content: center;
  }

  .property-sogno-wg-orlando-99-8-26 .gs-card {
    flex: none;
    width: 100%;
    max-width: none;
  }
}

@media screen and (max-width: 479px) {
  .property-sogno-wg-orlando-99-8-26 .gs-track {
    gap: 10px;
  }

  .property-sogno-wg-orlando-99-8-26 .gs-name { font-size: 11px; }
  .property-sogno-wg-orlando-99-8-26 .gs-loc { font-size: 10px; }
  .property-sogno-wg-orlando-99-8-26 .gs-meta { padding: 16px 8px 6px; }
}

@media screen and (min-width: 992px) {
  .property-sogno-wg-orlando-99-8-26 .gr-cards {
    align-items: stretch;
    flex-wrap: nowrap;
  }
  .property-sogno-wg-orlando-99-8-26 .gr-cards .gr-card {
    flex: 1 1 0;
    min-width: 0;
  }
}

.property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .amndiv {
  align-items: center;
}

.property-sogno-wg-orlando-99-8-26 .amndiv .div-block-21 {
  width: 100%;
  max-width: 100%;
  align-self: stretch;
  box-sizing: border-box;
}

.property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .anatableoflists {
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
}

.property-sogno-wg-orlando-99-8-26 .whatyougetcontainer > .checkout-cta,
.property-sogno-wg-orlando-99-8-26 .amndiv .div-block-21 > .checkout-cta,
.property-sogno-wg-orlando-99-8-26 #everything-included .rd-cta.rd-cta-full {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  align-self: stretch;
  box-sizing: border-box;
}

.property-sogno-wg-orlando-99-8-26 .wyg-extra-nights {
  width: 100%;
  margin: 16px 0 0;
  text-align: center;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #262626;
}

.property-sogno-wg-orlando-99-8-26 .hs-price-group {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media screen and (min-width: 992px) {
  .property-sogno-wg-orlando-99-8-26 .hs-left {
    justify-content: center;
    padding-left: 48px;
    padding-right: 48px;
  }

  .property-sogno-wg-orlando-99-8-26 .hs-left-inner {
    margin-inline: auto;
  }
}

html:has(> .property-sogno-wg-orlando-99-8-26),
.property-sogno-wg-orlando-99-8-26 {
  overflow-x: clip;
}

@media screen and (min-width: 992px) {
  .property-sogno-wg-orlando-99-8-26 .photostrip-3.photostrip {
    max-width: 100%;
    overflow-x: clip;
  }
}

@media screen and (max-width: 991px) {

  .property-sogno-wg-orlando-99-8-26 #resort-details {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: 100%;
  }

  .property-sogno-wg-orlando-99-8-26 .hs-left,
  .property-sogno-wg-orlando-99-8-26 .hs-right,
  .property-sogno-wg-orlando-99-8-26 .hs-left-inner {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
}

html:has(> .property-sogno-wg-orlando-99-8-26),
.property-sogno-wg-orlando-99-8-26 {
  background-color: #0d1f48;
}

.property-sogno-wg-orlando-99-8-26 .footer-2 {
  box-shadow: 0 100vh 0 100vh #0d1f48;
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 {
    padding-bottom: 0;
  }
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 .footer-2 {
    padding-bottom: 154px;
  }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    align-self: stretch;
    
/* The export pins the card to a fixed 340px height with overflow:hidden. Its content needs 524px at 940, so the last 184px - the trust seals and the "Prefer to talk" line - was being cut off at the card's edge, which is… */

    height: auto;
    min-height: 0;
    overflow: visible;
  }

  
  .property-sogno-wg-orlando-99-8-26 .herocontainer {
    align-items: stretch;
  }
}

@media screen and (min-width: 992px) and (max-width: 1199px) {
  .property-sogno-wg-orlando-99-8-26 .herocontainer {
    flex-direction: row;
    align-items: stretch;
    max-width: 100%;
    column-gap: 32px;
    padding-inline: 24px;
  }

  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
    max-width: 416px;
    box-sizing: border-box;
    align-self: stretch;
    border-radius: 20px;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
}

.property-sogno-wg-orlando-99-8-26 .vv-carousel-dots {
  display: none;
}

.property-sogno-wg-orlando-99-8-26 .vv-carousel-dot {
  flex: 0 0 44px;
}

.property-sogno-wg-orlando-99-8-26 .vv-carousel-dot {
  position: relative;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.property-sogno-wg-orlando-99-8-26 .vv-carousel-dot::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  background: rgba(7, 19, 48, .22);
  transition: background .18s ease, transform .18s ease;
}

.property-sogno-wg-orlando-99-8-26 .vv-carousel-dot.is-active::before {
  background: #e9654a;
  transform: scale(1.35);
}

.property-sogno-wg-orlando-99-8-26 .vv-carousel-dot:focus-visible::before {
  box-shadow: 0 0 0 3px rgba(233, 101, 74, .35);
}

.property-sogno-wg-orlando-99-8-26 #bonus-cta {
  min-height: 0;
  grid-template-rows: auto auto;
}

.property-sogno-wg-orlando-99-8-26 #bonus-cta .bch-left,
.property-sogno-wg-orlando-99-8-26 #bonus-cta .bch-right {
  min-height: 520px;
  

  padding-bottom: 64px;
}

.property-sogno-wg-orlando-99-8-26 .bch-cta-bar {
  position: static;
  grid-column: 1 / -1;
  grid-row: 2;
}

@media screen and (min-width: 768px) {
  .property-sogno-wg-orlando-99-8-26 #bonus-cta::before {
    inset: 0;
    height: auto;
  }

  .property-sogno-wg-orlando-99-8-26 .bch-divider {
    top: 0;
    bottom: auto;
    height: 520px;
  }
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 #bonus-cta {
    display: flex;
    flex-direction: column;
  }

  .property-sogno-wg-orlando-99-8-26 #bonus-cta .bch-left,
  .property-sogno-wg-orlando-99-8-26 #bonus-cta .bch-right {
    min-height: 0;
  }

  .property-sogno-wg-orlando-99-8-26 .bch-cta-bar {
    grid-row: auto;
    order: 3;
  }

  .property-sogno-wg-orlando-99-8-26 .bch-left { order: 1; }
  .property-sogno-wg-orlando-99-8-26 .bch-right { order: 2; }

  .property-sogno-wg-orlando-99-8-26 #bonus-cta::before {
    inset: 0;
    height: auto;
    bottom: 0;
  }

  .property-sogno-wg-orlando-99-8-26 .bch-divider {
    height: auto;
  }
}

.property-sogno-wg-orlando-99-8-26 .rd-bottom-bar {
  justify-content: center;
}

/* Desktop (≥1024): keep badge + package group centered in the bar. */
@media screen and (min-width: 1024px) {
  .property-sogno-wg-orlando-99-8-26 .rd-bottom-bar {
    justify-content: center;
  }
}

@media screen and (max-width: 599px) {
  .property-sogno-wg-orlando-99-8-26 .rd-bottom-bar {
    flex-flow: column;
    align-items: center;
    justify-content: center;
  }
}

.property-sogno-wg-orlando-99-8-26 .anatableoflists {
  gap: 56px;
}

.property-sogno-wg-orlando-99-8-26 .anacolumn {
  justify-content: center;
  gap: 48px;
}

/* 992-1149: equal halves + tighter gaps so four label columns fit (match Orlando $59). */
@media screen and (min-width: 992px) and (max-width: 1149px) {
  .property-sogno-wg-orlando-99-8-26 .anatableoflists {
    gap: 20px;
  }
  .property-sogno-wg-orlando-99-8-26 .anacolumn {
    gap: 32px;
    flex: 1 1 0;
  }
  .property-sogno-wg-orlando-99-8-26 .listcontainer {
    column-gap: 10px;
    width: 100%;
  }
  .property-sogno-wg-orlando-99-8-26 .listcontainer .amattlist {
    flex: 1 1 0;
    min-width: 0;
  }
  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .amattlistitem {
    font-size: 13px;
  }
  .property-sogno-wg-orlando-99-8-26 .amattlistitem {
    align-items: flex-start;
  }
  .property-sogno-wg-orlando-99-8-26 .amattlistitem i,
  .property-sogno-wg-orlando-99-8-26 .amattlistitem svg {
    margin-top: 2px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1023px) {
  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .amattlistitem {
    font-size: 12.5px;
  }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .anatableoflists {
    gap: 40px;
  }
  .property-sogno-wg-orlando-99-8-26 .anatableoflists .titlestay2 {
    display: none;
  }
  .property-sogno-wg-orlando-99-8-26 .anacolumn {
    gap: 28px;
    align-items: center;
    flex: 1 1 auto;
    width: 100%;
  }

  
  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .analisttitle {
    text-align: center;
    width: 100%;
    max-width: 560px;
  }

  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .listcontainer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    max-width: 560px;
    margin-inline: auto;
    gap: 20px 28px;
    justify-content: stretch;
    box-sizing: border-box;
  }

  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .amattlist {
    align-items: flex-start;
    text-align: left;
    min-width: 0;
  }

  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .amattlistitem {
    justify-content: flex-start;
    text-align: left;
  }
}

/* Tablet: give each list ~290px so "Onsite Movie Theater – Free of Charge" stays on one line (same as Orlando $59). */
@media screen and (min-width: 768px) and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .listcontainer {
    max-width: 650px;
    gap: 20px 70px;
    grid-template-columns: 290px 290px;
    justify-content: center;
  }
}

@media screen and (max-width: 767px) {
  .property-sogno-wg-orlando-99-8-26 #amenitiesAndAttractions .listcontainer {
    grid-template-columns: 1fr;
    gap: 8px;
    max-width: 420px;
  }
}

/* The card is a flex item in the stacked hero column, and default `flex-shrink:1` let the container squeeze it to 340px when its content needed 506px - so the trust seals and the "Prefer to talk" line were clipped by ov… */

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .gr-cards {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .property-sogno-wg-orlando-99-8-26 .gr-cards .gr-card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  

  .property-sogno-wg-orlando-99-8-26 .gr-reviews-row .gr-cta,
  .property-sogno-wg-orlando-99-8-26 .gr-cta {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }
}

@media screen and (min-width: 1200px) {
  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price > .flex-block-6 {
    margin-top: 31px;
  }
}

@media screen and (max-width: 991px) {
  .property-sogno-wg-orlando-99-8-26 .herocontainer {
    padding-inline: 0;
  }

  .property-sogno-wg-orlando-99-8-26 .offerwidget {
    margin-bottom: 0;
  }

  
/* Massanutten centres this column so calc(50% - 50vw) on the banner lands on the viewport edge. Stretch + max-width:640 left-aligned it, which pulled the 100vw banner off-screen at 767. */

  .property-sogno-wg-orlando-99-8-26 .campaignlogoand-price {
    align-self: center;
    width: 100%;
  }

  
/* Massanutten: banner is 100vw, pulled out of .campaignlogoand-price's 28px padding with calc(50% - 50vw). Later Orlando rules set width:100% and cancelled that, which left a 28px gutter on each side. */

}

/* Under-hero strip: Massanutten's 280×200 clipped tiles. The export's aspect-ratio:4/3 on the <img> made the photo 189px in a 180px tile. */

.property-sogno-wg-orlando-99-8-26 .photostrip-3 .herolightboxstrip-4 {
  overflow: clip;
  cursor: zoom-in;
}
.property-sogno-wg-orlando-99-8-26 .photostrip-3 .herostripphoto-3 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: auto;
}

.property-sogno-wg-orlando-99-8-26 .photostrip-dots {
  display: none;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 12px 16px 4px;
  box-sizing: border-box;
}

.property-sogno-wg-orlando-99-8-26 .photostrip-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #d0d0d0;
  cursor: pointer;
  transition: width .2s ease, background-color .2s ease, border-radius .2s ease;
}

.property-sogno-wg-orlando-99-8-26 .photostrip-dot.is-active {
  width: 22px;
  border-radius: 4px;
  background: #fe5925;
}

@media screen and (max-width: 763px) {
  .property-sogno-wg-orlando-99-8-26 .photostrip-3.photostrip {
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herophotosrow-2 {
    width: 100%;
    padding: 0;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pinch-zoom;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herolightboxstrip-4 {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    border-radius: 0;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herostripphoto-3 {
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-dots {
    display: flex;
  }
}

@media screen and (max-width: 767px) {
  
  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herolightboxstrip-4 {
    width: 100%;
    min-width: 100%;
  }
}

.property-sogno-wg-orlando-99-8-26 .photostrip-3 .vv-gallery-expand {
  display: none;
}

/* Ultra-wide (≥2130): hide arrows, equal-width tiles, fill the viewport edge-to-edge. Paint the white band with box-shadow/clip-path instead of calc(100vw / 0.9), which inflated body width and caused horizontal scroll. */

@media screen and (min-width: 2130px) {
  .property-sogno-wg-orlando-99-8-26 .photostrip-3.photostrip {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding: 8px 16px;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    box-shadow: 0 0 0 100vmax #fff;
    clip-path: inset(0 -100vmax);
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .arrow-left,
  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .arrow-right {
    display: none !important;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herophotosrow-2 {
    display: flex;
    width: 100%;
    max-width: none;
    padding: 0;
    gap: 12px;
    overflow: hidden;
    box-sizing: border-box;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herolightboxstrip-4 {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: none;
    height: 200px;
    max-height: 200px;
  }

  .property-sogno-wg-orlando-99-8-26 .photostrip-3 .herostripphoto-3 {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* prefers-reduced-motion: collapse CSS transitions/animations (Webflow IX2 paint via CSS). */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
