/* ==== FONT DECLARATIONS ==== */
@font-face {
  font-family: "PP Fragment";
  src: url("../fonts/PPFragment-GlareLight.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Sans";
  src: url("../fonts/InstrumentSans-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Sans";
  src: url("../fonts/InstrumentSans-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Sans";
  src: url("../fonts/InstrumentSans-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}


:root {
  /* Colors */
  --charcoal-black: #1d1e1e;
  --deep-teal: #054052;
  --teal: #7396a0;
  --hazy-teal: #bbd0d1;
  --terra-cotta: #8a3a1c;
  --citrus-yellow: #dbde47;
  --light-citrus: #f3f4ae;
  --cream: #e1d1c3;
  --medium-cream: #f2e8df;
  --light-cream: #f9f5f2;
  --white: #ffffff;
  --grey: #848484;

  /* Typography */
  --font-heading: "PP Fragment", serif;
  --font-body: "Instrument Sans", sans-serif;

  /* Font sizes */
  --font-size-3xs: 11px;
  --font-size-2xs: 12px;
  --font-size-xs: 14px;
  --font-size-sm: 16px;
  --font-size-md: 18px;
  --font-size-lg: 24px;
  --font-size-xl: 28px;
  --font-size-2xl: 56px;
  --font-size-3xl: 84px;

  /* Font weights */
  --font-weight-light: 300; /* PP Fragment Glare Light */
  --font-weight-normal: 400; /* Instrument Sans Regular */
  --font-weight-medium: 500; /* Instrument Sans Medium */
  --font-weight-bold: 700; /* Instrument Sans Bold */

  /* Media queries */
  --breakpoint-sm: 480px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1200px;
  --breakpoint-2xl: 1440px;
}


@import "fonts.css";
@import "variables.css";
/* Base styles */
body {
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  margin: 0;
  padding: 0;
  background-color: var(--light-cream);
  color: var(--charcoal-black);
  font-size: var(--font-size-md);
  line-height: 1.6;
  height: 2000px;
}

.container {
  max-width: 63.5rem;
  margin: 0 auto;
  padding: 8.75rem 1.25rem;
  background-color: var(--light-cream);
}
@media screen and (max-width: 48rem) {
  .container {
    padding: 4.375rem 2.5rem;
  }
}

/* Utility Classes */
@media screen and (max-width: 768px) {
  .hide-on-mobile {
    display: none !important;
  }
}

@media screen and (min-width: 768px) {
  .hide-on-desktop {
    display: none !important;
  }
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  color: var(--deep-teal);
  margin: 0;
}

h1 {
  font-size: var(--font-size-3xl);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  line-height: 100%;
  letter-spacing: -1.8px;
  color: var(--white);
}
@media screen and (max-width: 768px) {
  h1 {
    font-size: var(--font-size-2xl);
  }
}

h2 {
  font-size: var(--font-size-2xl);
  font-family: var(--font-heading);
  color: var(--deep-teal);
  line-height: 100%;
  letter-spacing: -0.4px;
}
@media screen and (max-width: 768px) {
  h2 {
    font-size: 32px;
  }
}

h3 {
  font-size: var(--font-size-lg);
  letter-spacing: -0.4px;
}

p {
  margin: 0;
}

a {
  text-decoration: none;
}
a:hover {
  opacity: 0.9;
}

/* Font classes */
.instrument-regular {
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
}

.instrument-medium {
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
}

.instrument-bold {
  font-family: var(--font-body);
  font-weight: var(--font-weight-bold);
}

.pp-fragment {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  line-height: 100%;
  letter-spacing: -1.8px;
}

/* Button Component */
.button {
  display: flex;
  padding: 18px 16px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  align-self: stretch;
  border-radius: 12px;
  border: 1px solid rgba(29, 30, 30, 0.2) !important;
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(6px);
  font-size: var(--font-size-2xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--charcoal-black);
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease, border-radius 0.2s ease;
  max-height: 44px;
}
@media screen and (max-width: 768px) {
  .button {
    padding: 8px;
  }
}
.button:hover {
  background-color: var(--citrus-yellow);
  border-radius: 30px;
}

.button-icon {
  width: 20px;
  height: 20px;
  background-size: contain;
  border: none;
  background-color: transparent;
  cursor: pointer;
}

.hamburger-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTIuNSAxMEgxNy41TTIuNSA1SDE3LjVNMi41IDE1SDE3LjUiIHN0cm9rZT0iIzFEMUUxRSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPg==");
}

/* Expand Button With Icon */
.expand-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--charcoal-black);
  border: none;
  cursor: pointer;
  width: 40px; /* Only icon visible initially */
  transition: width 0.3s ease;
  white-space: nowrap;
}
.expand-button span:first-child {
  position: absolute;
  left: 10px;
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.expand-button span:last-child {
  transition: transform 0.3s ease;
}
.expand-button:hover {
  width: 130px;
  justify-content: flex-start;
}
.expand-button:hover span:first-child {
  position: static;
  margin-right: 8px;
  opacity: 1;
  transform: translateX(0);
}
.expand-button:hover span:last-child {
  transform: translateX(-10px);
}

/* Layout Component */
.layout {
  position: relative;
}

/* Fixed Container Component */
.fixed-container {
  position: fixed;
  top: 16px;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 100;
  pointer-events: none; /* Allow clicks to pass through the container */
}

.cta-collection {
  position: relative;
  height: 100%;
  /* Restore pointer events for all interactive elements */
}
.cta-collection button,
.cta-collection a,
.cta-collection .cta-collection__menu-container,
.cta-collection .cta-collection__contact-info-card,
.cta-collection .cta-collection__menu-item,
.cta-collection .cta-collection__menu-close,
.cta-collection .cta-collection__contact-info-close,
.cta-collection .cta-collection__book-price,
.cta-collection .cta-collection__contact-info,
.cta-collection .cta-collection__download-share {
  pointer-events: auto;
}
.cta-collection__menu {
  position: absolute;
  top: 0;
  left: 0;
}
.cta-collection__menu-container {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-120%);
  background-color: var(--deep-teal);
  border-radius: 12px;
  padding: 4px 24px;
  width: 240px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 200;
  transition: transform 0.3s ease, opacity 0.3s ease;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .cta-collection__menu-container {
    right: 0;
    bottom: 0;
    width: auto;
  }
}
.cta-collection__menu-close {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE0LjE2NjcgNS44MzMzM0w1LjgzMzM3IDE0LjE2NjdNNS44MzMzNyA1LjgzMzMzTDE0LjE2NjcgMTQuMTY2NyIgc3Ryb2tlPSIjMUQxRTFFIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=");
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  background-color: var(--hazy-teal);
  border: none;
  color: var(--charcoal-black);
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.cta-collection__menu-item {
  padding: 18px 0;
}
.cta-collection__menu-item a {
  color: var(--hazy-teal);
  text-decoration: none;
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-2xs);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  display: block;
  width: 100%;
}
.cta-collection__menu-item a:hover {
  color: var(--white);
}
.cta-collection__menu-item--download-share {
  margin-top: auto;
  margin-bottom: 16px;
}
.cta-collection__menu-item--download-share button {
  height: 44px;
  border-radius: 999px;
  background-color: var(--citrus-yellow);
  padding: 18px 20px;
}
.cta-collection__menu-item--download-share .cta-collection__menu-item--download {
  margin-bottom: 20px;
}
.cta-collection__contact-info-card {
  position: absolute;
  bottom: 0;
  right: 0;
  transform: translateX(120%);
  background-color: var(--light-cream);
  border-radius: 12px;
  padding: 0;
  overflow: hidden;
  width: 250px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 200;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
@media screen and (max-width: 768px) {
  .cta-collection__contact-info-card {
    right: 0;
    width: auto;
  }
}
.cta-collection__contact-info-close {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE0LjE2NjcgNS44MzMzM0w1LjgzMzM3IDE0LjE2NjdNNS44MzMzNyA1LjgzMzMzTDE0LjE2NjcgMTQuMTY2NyIgc3Ryb2tlPSIjMUQxRTFFIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=");
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  background-color: var(--light-cream);
  border: none;
  color: var(--charcoal-black);
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.cta-collection__contact-info-image {
  width: 100%;
  height: 180px;
  object-fit: cover;
  overflow: hidden;
}
.cta-collection__contact-info-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cta-collection__contact-info-description {
  padding: 32px 12px;
  border: 1px solid var(--cream);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.cta-collection__contact-info-description-name {
  font-size: var(--font-size-lg);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  color: var(--deep-teal);
  line-height: 110%;
}
.cta-collection__contact-info-description-title {
  font-size: var(--font-size-3xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--teal);
  text-transform: uppercase;
}
.cta-collection__contact-info-description-email {
  font-size: var(--font-size-sm);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 150%;
}
.cta-collection__contact-info-description-phone {
  font-size: var(--font-size-md);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 140%;
}
.cta-collection__book-price {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 0;
  right: 0;
  gap: 12px;
}
@media screen and (max-width: 768px) {
  .cta-collection__book-price {
    bottom: 0;
    right: 0;
    left: 0;
    top: auto;
    flex-direction: row-reverse;
    justify-content: space-between;
  }
}
.cta-collection__contact-info {
  position: absolute;
  bottom: 0;
  right: 0;
}
@media screen and (max-width: 768px) {
  .cta-collection__contact-info {
    top: 0;
    right: 0;
    bottom: auto;
  }
}
.cta-collection__download-share {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.cta-collection__download-button.expand-button:hover {
  width: 160px;
}
.cta-collection__copy-link-button.expand-button:hover {
  width: 125px;
}

.fixed-button__button {
  background-color: var(--white);
}

.download-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTIuNjY2NjcgMTAuODI4MkMxLjg2MjY4IDEwLjI5IDEuMzMzMzMgOS4zNzM0NyAxLjMzMzMzIDguMzMzMzNDMS4zMzMzMyA2Ljc3MDk1IDIuNTI3NjcgNS40ODc1MyA0LjA1MzE2IDUuMzQ2MjVDNC4zNjUyMSAzLjQ0ODA5IDYuMDEzNSAyIDggMkM5Ljk4NjUxIDIgMTEuNjM0OCAzLjQ0ODA5IDExLjk0NjggNS4zNDYyNUMxMy40NzIzIDUuNDg3NTMgMTQuNjY2NyA2Ljc3MDk1IDE0LjY2NjcgOC4zMzMzM0MxNC42NjY3IDkuMzczNDcgMTQuMTM3MyAxMC4yOSAxMy4zMzMzIDEwLjgyODJNNS4zMzMzMyAxMS4zMzMzTDggMTRNOCAxNEwxMC42NjY3IDExLjMzMzNNOCAxNFY4IiBzdHJva2U9IiMxRDFFMUUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}

.copy-link-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTUuNjY2NjggMTAuMzMzM0wxMC4zMzMzIDUuNjY2NjZNOC4wMDAwNCAxMS43NzEyTDYuNTg1ODIgMTMuMTg1NEM1LjU0NDQzIDE0LjIyNjggMy44NTU5OSAxNC4yMjY4IDIuODE0NTkgMTMuMTg1NEMxLjc3MzE5IDEyLjE0NCAxLjc3MzE5IDEwLjQ1NTYgMi44MTQ1OSA5LjQxNDE2TDQuMjI4OCA3Ljk5OTk1TTExLjc3MTMgNy45OTk5NUwxMy4xODU1IDYuNTg1NzNDMTQuMjI2OSA1LjU0NDMzIDE0LjIyNjkgMy44NTU4OSAxMy4xODU1IDIuODE0NUMxMi4xNDQxIDEuNzczMSAxMC40NTU2IDEuNzczMSA5LjQxNDI1IDIuODE0NUw4LjAwMDA0IDQuMjI4NzEiIHN0cm9rZT0iIzFEMUUxRSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4=");
}

/* Hero Component */
.hero {
  width: 100%;
  height: 100vh;
  /* Hero background will be set via inline style from data */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}
.hero__logo {
  width: 112px;
  margin: 26px auto auto;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .hero__logo {
    margin-top: 22px;
  }
}
.hero__content {
  display: flex;
  flex-direction: column;
  max-width: 800px;
  margin: 0 auto;
  gap: 32px;
  text-align: center;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .hero__content {
    padding-left: 16px;
    padding-right: 16px;
  }
}
.hero__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 15%, rgba(0, 0, 0, 0) 48.44%, rgba(0, 0, 0, 0.5) 75.38%, rgba(0, 0, 0, 0.85) 100%);
  z-index: 1;
}
.hero__title {
  position: relative;
  z-index: 2;
}
.hero__subtitle {
  font-size: 28px;
  color: var(--white);
  letter-spacing: -0.4px;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .hero__subtitle {
    font-size: 20px;
  }
}
.hero__details {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-transform: uppercase;
  color: var(--white);
  font-size: var(--font-size-2xs);
  font-family: var(--font-body);
  letter-spacing: 0.8px;
  margin-top: var(--font-size-lg);
  margin-bottom: 116px;
}
@media screen and (max-width: 768px) {
  .hero__details {
    margin-bottom: 95px;
    flex-direction: column;
    margin-top: 0;
  }
}
.hero__detail {
  font-weight: var(--font-weight-medium);
}

/* Tour Highlights Component */
.tour-highlights {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--font-size-lg);
  align-items: start;
}
@media screen and (max-width: 768px) {
  .tour-highlights {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}
.tour-highlights__left {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.tour-highlights__left h4 {
  font-size: var(--font-size-3xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.tour-highlights__left h2 {
  margin-top: 30px;
  margin-bottom: 30px;
}
@media screen and (max-width: 768px) {
  .tour-highlights__left h2 {
    margin-top: 20px;
    margin-bottom: 20px;
    margin-bottom: 40px;
  }
}
.tour-highlights__image {
  width: 380px;
  height: 380px;
  border-radius: var(--font-size-sm);
  overflow: hidden;
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .tour-highlights__image {
    width: 100%;
    height: auto;
    margin-top: 0;
  }
}
.tour-highlights__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1/1;
}
.tour-highlights__right {
  max-width: 488px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .tour-highlights__right {
    max-width: 100%;
  }
}
.tour-highlights__item {
  font-size: var(--font-size-md);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 140%;
  letter-spacing: -0.144px;
  padding-top: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--cream);
}
@media screen and (max-width: 768px) {
  .tour-highlights__item {
    font-size: var(--font-size-sm);
    padding-top: 24px;
    padding-bottom: 24px;
  }
}
.tour-highlights__item:first-child {
  border-top: 1px solid var(--cream);
}

/* Video Component */
.video-component {
  width: 100%;
  margin: 0;
  padding: 0;
  background-color: var(--charcoal-black);
  max-width: 100%; /* Ensure it takes full width */
  overflow: hidden; /* Prevent any overflow issues */
  /* Separate rule for muted state to ensure it works with BEM structure */
}
.video-component__container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 aspect ratio */
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .video-component__container {
    padding-top: 100%; /* 1:1 aspect ratio */
  }
}
.video-component__element {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.video-component__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%);
  z-index: 10;
  pointer-events: none; /* Allow clicks to pass through to the video */
}
.video-component__mute-toggle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(6px);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  z-index: 100;
  opacity: 1;
}
.video-component__mute-toggle:hover {
  background-color: var(--citrus-yellow);
}
.video-component__mute-toggle.hidden {
  opacity: 0;
  pointer-events: none;
}
.video-component__container:hover .video-component__mute-toggle.hidden {
  opacity: 1;
  pointer-events: auto;
}
.video-component__mute-icon {
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIxIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE2Ljk1NjYgNC4xNjY2OUMxOC4xMzc3IDUuODA4NTUgMTguODMzNCA3LjgyMzA1IDE4LjgzMzQgMTBDMTguODMzNCAxMi4xNzcgMTguMTM3NyAxNC4xOTE1IDE2Ljk1NjYgMTUuODMzNE0xMy42MjExIDYuNjY2NjlDMTQuMjgwMiA3LjYxMTU1IDE0LjY2NjcgOC43NjA2NSAxNC42NjY3IDEwQzE0LjY2NjcgMTEuMjM5NCAxNC4yODAyIDEyLjM4ODUgMTMuNjIxMSAxMy4zMzM0TTguNTI4NjIgNC40NzE0Mkw1Ljg5MDU0IDcuMTA5NUM1Ljc0NjQyIDcuMjUzNjIgNS42NzQzNiA3LjMyNTY5IDUuNTkwMjYgNy4zNzcyMkM1LjUxNTcgNy40MjI5MSA1LjQzNDQxIDcuNDU2NTggNS4zNDkzOCA3LjQ3N0M1LjI1MzQ3IDcuNTAwMDIgNS4xNTE1NiA3LjUwMDAyIDQuOTQ3NzQgNy41MDAwMkgzLjUwMDAyQzMuMDMzMzEgNy41MDAwMiAyLjc5OTk1IDcuNTAwMDIgMi42MjE2OSA3LjU5MDg1QzIuNDY0ODkgNy42NzA3NCAyLjMzNzQxIDcuNzk4MjMgMi4yNTc1MSA3Ljk1NTAzQzIuMTY2NjkgOC4xMzMyOSAyLjE2NjY5IDguMzY2NjQgMi4xNjY2OSA4LjgzMzM1VjExLjE2NjdDMi4xNjY2OSAxMS42MzM0IDIuMTY2NjkgMTEuODY2OCAyLjI1NzUxIDEyLjA0NUMyLjMzNzQxIDEyLjIwMTggMi40NjQ4OSAxMi4zMjkzIDIuNjIxNjkgMTIuNDA5MkMyLjc5OTk1IDEyLjUgMy4wMzMzMSAxMi41IDMuNTAwMDIgMTIuNUg0Ljk0Nzc0QzUuMTUxNTYgMTIuNSA1LjI1MzQ3IDEyLjUgNS4zNDkzOCAxMi41MjNDNS40MzQ0MSAxMi41NDM1IDUuNTE1NyAxMi41NzcxIDUuNTkwMjYgMTIuNjIyOEM1LjY3NDM2IDEyLjY3NDQgNS43NDY0MiAxMi43NDY0IDUuODkwNTQgMTIuODkwNUw4LjUyODYyIDE1LjUyODZDOC44ODU2IDE1Ljg4NTYgOS4wNjQwOSAxNi4wNjQxIDkuMjE3MzMgMTYuMDc2MUM5LjM1MDMgMTYuMDg2NiA5LjQ4MDI0IDE2LjAzMjggOS41NjY4NiAxNS45MzE0QzkuNjY2NjkgMTUuODE0NSA5LjY2NjY5IDE1LjU2MjEgOS42NjY2OSAxNS4wNTcyVjQuOTQyODNDOS42NjY2OSA0LjQzNzk4IDkuNjY2NjkgNC4xODU1NiA5LjU2Njg2IDQuMDY4NjdDOS40ODAyNCAzLjk2NzI1IDkuMzUwMyAzLjkxMzQzIDkuMjE3MzMgMy45MjM4OUM5LjA2NDA5IDMuOTM1OTUgOC44ODU2IDQuMTE0NDQgOC41Mjg2MiA0LjQ3MTQyWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4=");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: opacity 0.3s ease;
  opacity: 1;
}
.video-component__mute-icon.muted {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDVMNi4wMDAwNSA5SDJWMTVINi4wMDAwNUwxMSAxOVY1WiIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMjMgOUwxNyAxNSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTcgOUwyMyAxNSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K");
}
.video-component__mute-toggle.hidden .video-component__mute-icon {
  opacity: 0;
}
.video-component__container:hover .video-component__mute-toggle.hidden .video-component__mute-icon {
  opacity: 1;
}

/* Itinerary Component */
.itinerary {
  padding-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .itinerary {
    padding-bottom: 40px;
  }
}
.itinerary__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .itinerary__header {
    margin-bottom: 40px;
  }
}
.itinerary__header-left h2 {
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .itinerary__header-left h2 {
    margin-top: 10px;
  }
}
.itinerary__header-left h4 {
  font-size: var(--font-size-3xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.itinerary__header-right {
  font-size: var(--font-size-3xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--terra-cotta);
  text-transform: uppercase;
  letter-spacing: 1px;
  cursor: pointer;
  transition: color 0.2s ease;
}
@media screen and (max-width: 768px) {
  .itinerary__header-right {
    margin-top: 20px;
  }
}
.itinerary__header-right:hover {
  text-decoration: underline;
  text-decoration-color: var(---terra-cotta);
}
.itinerary__accordions {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.itinerary__accordion {
  overflow: hidden;
  /* Active state for accordion */
}
.itinerary__accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0;
  cursor: pointer;
  border-bottom: 1px solid var(--cream);
  transition: border-color 0.3s ease;
}
@media screen and (max-width: 768px) {
  .itinerary__accordion-header {
    padding: 16px 0;
  }
}
.itinerary__accordion-title {
  display: flex;
  align-items: center;
  gap: 16px;
}
.itinerary__accordion-day {
  font-size: var(--font-size-xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--charcoal-black);
  text-transform: uppercase;
  letter-spacing: 1px;
  position: relative;
  padding-right: 16px;
  width: 200px;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .itinerary__accordion-day {
    font-size: var(--font-size-2xs);
  }
}
.itinerary__accordion-day::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 16px;
  width: 1px;
  background-color: var(--cream);
}
.itinerary__accordion-location {
  font-size: var(--font-size-lg);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  color: var(--charcoal-black);
  line-height: 110%;
}
@media screen and (max-width: 768px) {
  .itinerary__accordion-location {
    font-size: 20px;
  }
}
.itinerary__accordion-toggle {
  width: 35px;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
}
.itinerary__accordion-icon {
  position: relative;
  width: 20px;
  height: 20px;
}
.itinerary__accordion-icon:before, .itinerary__accordion-icon:after {
  content: "";
  position: absolute;
  background-color: var(--cream);
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.itinerary__accordion-icon:before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(-50%);
}
.itinerary__accordion-icon:after {
  top: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
}
.itinerary__accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.2s ease;
  opacity: 0;
}
.itinerary__accordion-inner {
  padding: 24px 0 0;
  display: grid;
  grid-template-columns: minmax(0, 30%) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
.itinerary__accordion-left {
  grid-column: 1;
  grid-row: 1 / span 2;
  padding-right: 40px;
}
.itinerary__accordion-right {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

/* Daily Content featured image (KaptioTravel__FeaturedImage__c): below narrative in right column when populated */
.itinerary__accordion-day-featured {
  grid-column: 2;
  grid-row: 2;
  margin-top: 20px;
  max-width: 50rem;
  overflow: hidden;
}
.itinerary__accordion-day-featured-img {
  display: block;
  width: 40rem;
  max-width: 100%;
  border-radius: 1rem;
  height: auto;
  vertical-align: top;
  object-fit: cover;
}

/* Mobile stack must follow the desktop grid placement above: equal specificity,
   so source order decides which wins. */
@media screen and (max-width: 768px) {
  .itinerary__accordion-title {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .itinerary__accordion-day {
    width: auto;
    max-width: 100%;
    padding-right: 0;
  }
  .itinerary__accordion-day::after {
    display: none;
  }
  .itinerary__accordion-inner {
    padding: 16px 0 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .itinerary__accordion-left {
    grid-column: 1;
    grid-row: 2;
    border-bottom: 1px solid var(--cream);
    padding-right: 0;
    padding-bottom: 24px;
  }
  .itinerary__accordion-right {
    grid-column: 1;
    grid-row: 1;
  }
  .itinerary__accordion-day-featured {
    grid-column: 1;
    grid-row: 3;
    max-width: 100%;
  }
  .itinerary__accordion-day-featured-img {
    width: 100%;
    max-width: 100%;
  }
}

/* Itinerary day row: Flexbox — Col1 30% fixed | Col2 image (optional, not in DOM if missing) | Col3 narrative flex:1 */
.itinerary__accordion-content .itinerary__accordion-day-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 24px;
  align-items: flex-start;
  padding: 24px 0 0;
  border-top: 1px solid var(--cream, #f5f0e8);
  transition: background-color 0.2s ease;
}
.itinerary__accordion-content .itinerary__accordion-day-row:hover {
  background-color: rgba(0, 0, 0, 0.02);
}
/* Column 1: Info — fixed 300px */
.itinerary__accordion-content .itinerary__accordion-day-info {
  margin-top: 2rem;
  width: 300px;
  flex: 0 0 300px;
  min-width: 0;
}
/* Column 2: Image — only present when image exists; fixed size for consistent row height */
.itinerary__accordion-content .itinerary__accordion-day-image-col {
  flex: 0 0 auto;
  min-width: 0;
}
.itinerary__accordion-content .itinerary__accordion-day-image-col .itinerary__accordion-day-image-wrapper {
  width: 500px;
  height: 500px;
  min-height: 500px;
  border-radius: var(--font-size-sm, 8px);
  overflow: hidden;
  flex-shrink: 0;
  border: 1px solid var(--cream, #f5f0e8);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.itinerary__accordion .itinerary__accordion-day-image-col .itinerary__accordion-day-image-wrapper:hover {
  border-color: rgba(0, 0, 0, 0.12);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.itinerary__accordion-content .itinerary__accordion-day-image-col .itinerary__accordion-day-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  display: block;
  vertical-align: top;
}
/* Column 3: Narrative — flex:1 (remaining space when image exists, else effectively 70%) */
.itinerary__accordion-content .itinerary__accordion-day-narrative-col {
  flex: 1;
  min-width: 0;
}
.itinerary__accordion-narrative {
  margin-top: 0;
  min-width: 0;
}
.itinerary__accordion-narrative p {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .itinerary__accordion-content .itinerary__accordion-day-row {
    flex-direction: column;
    flex-wrap: wrap;
    gap: 20px;
    padding: 16px 0 0;
  }
  .itinerary__accordion-content .itinerary__accordion-day-info {
    flex: 0 0 100%;
    border-bottom: 1px solid var(--cream, #f5f0e8);
    padding-bottom: 20px;
  }
  .itinerary__accordion-content .itinerary__accordion-day-image-col {
    flex: 0 0 100%;
  }
  .itinerary__accordion-content .itinerary__accordion-day-image-col .itinerary__accordion-day-image-wrapper {
    width: 100%;
    max-width: 500px;
    height: 500px;
    min-height: 500px;
  }
  .itinerary__accordion-content .itinerary__accordion-day-narrative-col {
    flex: 0 0 100%;
  }
}
.itinerary__accordion-info {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.itinerary__accordion-icon-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.itinerary__accordion-icon-img {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  display: block;
  box-sizing: border-box;
  background-color: transparent;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}
.itinerary__accordion-icon-inclusions {
  /* Same gray (#848484) as destinations/accommodations; 1.5px stroke vs 1.2 on pin icon — line art reads at small size */
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDM2IDM2IiBmaWxsPSJub25lIj48cGF0aCBkPSJNOCAxMWgxNE04IDE3aDEwTTggMjNoMTIiIHN0cm9rZT0iIzg0ODQ4NCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik0yNiAxMGwzIDMgNi03IiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=");
}
.itinerary__accordion-icon-meals {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDM2IDI1IiBmaWxsPSJub25lIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNy4wMzA3IDAuMDAwMTQwNjc2QzE2LjgyNTIgMC4wMDQ2MDM4NiAxNi42NjIxIDAuMTc2MDgyIDE2LjY2NjUgMC4zODMxMjhMMTYuNzgyNyA1LjgwODgzTDE2LjczNzMgNi40NzMxMUMxNi43MzY3IDYuNDgxNyAxNi43MzY0IDYuNDkwMyAxNi43MzY0IDYuNDk4OTFDMTYuNzM2NCA3LjA1OTUzIDE2LjU0IDcuNTkzOTcgMTYuMjIzOCA3Ljg5MzY0QzE2LjIyMzIgNy44OTQyMyAxNi4yMjI2IDcuODk0ODIgMTYuMjIyIDcuODk1NDJDMTYuMjIxMSA3Ljg5NjIyIDE2LjIyMDMgNy44OTcwMyAxNi4yMTk0IDcuODk3ODVMMTUuMzc5OCA4LjcyMDAyQzE1LjMwMzQgOC43OTQ4NiAxNS4yNjI1IDguODk5MDcgMTUuMjY3NSA5LjAwNjMyTDE1Ljg3OTkgMjIuMjU4QzE1Ljg5MTkgMjIuNTE5MyAxNS43OTk4IDIyLjc2NzQgMTUuNjIwNSAyMi45NTY2QzE1LjQ0MTIgMjMuMTQ1OCAxNS4xOTk0IDIzLjI1IDE0LjkzOTcgMjMuMjVDMTQuNjggMjMuMjUgMTQuNDM4MyAyMy4xNDU4IDE0LjI1ODkgMjIuOTU2NkMxNC4wNzk2IDIyLjc2NzQgMTMuOTg3NSAyMi41MTkzIDEzLjk5OTUgMjIuMjU4TDE0LjYxMTkgOS4wMDYzMkMxNC42MTY5IDguODk5MTQgMTQuNTc2IDguNzk0OTMgMTQuNDk5NyA4LjcyMDExTDEzLjYzNjcgNy44NzQ0OEwxMy42MzUzIDcuODczMTRDMTMuNjM0MyA3Ljg3MjE1IDEzLjYzMzMgNy44NzExNiAxMy42MzIyIDcuODcwMThDMTMuMzE2MSA3LjU3MDQ2IDEzLjExOTcgNy4wMzYwNSAxMy4xMTk3IDYuNDc1NDVWNS44MjE2NUwxMy4yMzYyIDAuMzgzMTI4QzEzLjI0MDYgMC4xNzYwODIgMTMuMDc3NiAwLjAwNDYwMzg3IDEyLjg3MiAwLjAwMDE0MDY3NkMxMi42NjUyIC0wLjAwNDc4MDI3IDEyLjQ5NjEgMC4xNTk5MjMgMTIuNDkxNyAwLjM2Njk2OUwxMi4zNzUxIDUuODA5NjNDMTIuMzc1IDUuODEyMzEgMTIuMzc1IDUuODE1MDEgMTIuMzc1IDUuODE3NzFWNi40NzU0NUMxMi4zNzUgNy4yNDYxOCAxMi42NTMzIDcuOTcwNjQgMTMuMTE5NiA4LjQxNDE2TDEzLjg2MDMgOS4xMzk5OUwxMy4yNTU3IDIyLjIyMzFDMTMuMjM0MSAyMi42OTEyIDEzLjM5OTEgMjMuMTM1NiAxMy43MjAzIDIzLjQ3NDVDMTQuMDQxNSAyMy44MTM0IDE0LjQ3NDUgMjQgMTQuOTM5NyAyNEMxNS40MDQ5IDI0IDE1LjgzNzkgMjMuODEzNCAxNi4xNTkxIDIzLjQ3NDVDMTYuNDgwMyAyMy4xMzU2IDE2LjY0NTQgMjIuNjkxMiAxNi42MjM3IDIyLjIyMzFMMTYuMDE5MSA5LjE0MDA4TDE2LjczNjUgOC40Mzc1OEMxNy4yMDAxIDcuOTk2NjQgMTcuNDc3OCA3LjI3ODA0IDE3LjQ4MSA2LjUxMjI1TDE3LjUyNjggNS44NDM1QzE3LjUyNzYgNS44MzIyMiAxNy41Mjc4IDUuODIwOTEgMTcuNTI3NiA1LjgwOTYzTDE3LjQxMSAwLjM2Njk2OUMxNy40MDY2IDAuMTU5OTQ2IDE3LjIzNzkgLTAuMDA1NTEyNjkgMTcuMDMwNyAwLjAwMDE0MDY3NlpNMjMuNjI0MyAyMi4yMzE5TDIzLjAzMTkgMC41NDkyMjVDMjMuMDI4OCAwLjI5MDMxNSAyMi44NDY2IDAuMDIyMDg4NyAyMi40NDQgMC4wMDEzMjkxMkMyMS45NTUyIC0wLjAyMzQ4MTYgMjEuMjQxMiAwLjMyMzMxOSAyMC42NzA0IDAuODY1NDcxQzIwLjE1NDcgMS4zNTUyOCAxOS41MTEyIDIuMjIyMzMgMTkuMzczOSAzLjU3MTA1QzE5LjIwODkgNS4xNzY0NiAxOS4wNzQ1IDYuMzgyODQgMTguOTc2NCA3LjI2NDE1TDE4Ljk3NjMgNy4yNjQ0M0wxOC45NzYgNy4yNjc1NkwxOC45NzU1IDcuMjcxODVMMTguOTc1NSA3LjI3MTk0QzE4LjkwNjYgNy44ODk1NCAxOC44NTIzIDguMzc3NTggMTguODE0IDguNzYzNjZDMTguNjk5MiA5LjkxOTcyIDE5LjUxNDkgMTAuOTU1NiAyMC42NzExIDExLjEyMTlDMjAuNjczMyAxMS4xMjIyIDIwLjY3NTUgMTEuMTIyNSAyMC42Nzc3IDExLjEyMjhMMjAuNjgwMyAxMS4xMjMxTDIwLjczMjQgMTEuMTI5M0wyMC4yMjgzIDIyLjIwMDhDMjAuMjA3IDIyLjY2ODYgMjAuMzcyMSAyMy4xMTI4IDIwLjY5MzMgMjMuNDUxNEMyMS4wMTQ0IDIzLjc5IDIxLjQ0NzMgMjMuOTc2NSAyMS45MTIzIDIzLjk3NjVIMjEuOTM5MUMyMi4zOTgyIDIzLjk3NjUgMjIuODI3MyAyMy43OTQgMjMuMTQ3NCAyMy40NjI2QzIzLjQ2NzYgMjMuMTMxMiAyMy42MzY5IDIyLjY5NDEgMjMuNjI0MyAyMi4yMzE5Wk0yMi42MTM3IDIyLjkzOTZDMjIuNDM1IDIzLjEyNDYgMjIuMTk1NCAyMy4yMjY1IDIxLjkzOTEgMjMuMjI2NUgyMS45MTIzQzIxLjY1MjcgMjMuMjI2NSAyMS40MTEgMjMuMTIyNCAyMS4yMzE3IDIyLjkzMzRDMjEuMDUyNCAyMi43NDQzIDIwLjk2MDIgMjIuNDk2NCAyMC45NzIxIDIyLjIzNTJMMjEuNDkyMSAxMC44MTQ5QzIxLjUwMTEgMTAuNjE4MyAyMS4zNTc4IDEwLjQ0ODIgMjEuMTYzNyAxMC40MjUyTDIwLjc3MjEgMTAuMzc4OEMyMC4wMTQ1IDEwLjI2NzYgMTkuNDgwMSA5LjU5MTc2IDE5LjU1NDkgOC44MzgzQzE5LjU5MjkgOC40NTU4IDE5LjY0NzIgNy45NjgzNSAxOS43MTYgNy4zNTEyMUwxOS43MTczIDcuMzM5NzdMMTkuNzE3MyA3LjMzOTY4QzE5LjgxNTUgNi40NTc2OSAxOS45NDk4IDUuMjUxOTEgMjAuMTE0NiAzLjY0NzkxQzIwLjI1NzMgMi4yNDYxNyAyMS4wNDI2IDEuNDc5MDEgMjEuNDk4MSAxLjE0NjQ1QzIxLjg0NDMgMC44OTM2IDIyLjEzMDcgMC43OTEyMjIgMjIuMjkyNyAwLjc2MDMyM0wyMi44OCAyMi4yNTI1QzIyLjg4NyAyMi41MTA2IDIyLjc5MjUgMjIuNzU0NiAyMi42MTM3IDIyLjkzOTZaTTE1LjMyMzcgNi4yNTUwNUMxNS4zMjM3IDYuNDYyMTcgMTUuMTU3IDYuNjMwMDUgMTQuOTUxMyA2LjYzMDA1QzE0Ljc0NTcgNi42MzAwNSAxNC41NzkgNi40NjIxNyAxNC41NzkgNi4yNTUwNVYwLjM3NTA0NUMxNC41NzkgMC4xNjc5MyAxNC43NDU3IDQuNTc3NjNlLTA1IDE0Ljk1MTMgNC41Nzc2M2UtMDVDMTUuMTU3IDQuNTc3NjNlLTA1IDE1LjMyMzcgMC4xNjc5MyAxNS4zMjM3IDAuMzc1MDQ1VjYuMjU1MDVaIiBmaWxsPSIjQTBBMEEwIi8+Cjwvc3ZnPg==");
}
.itinerary__accordion-icon-destinations {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDM2IDI1IiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE4IDEzQzE5LjY1NjkgMTMgMjEgMTEuNjU2OSAyMSAxMEMyMSA4LjM0MzE1IDE5LjY1NjkgNyAxOCA3QzE2LjM0MzEgNyAxNSA4LjM0MzE1IDE1IDEwQzE1IDExLjY1NjkgMTYuMzQzMSAxMyAxOCAxM1oiIHN0cm9rZT0iIzg0ODQ4NCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTggMjJDMjIgMTggMjYgMTQuNDE4MyAyNiAxMEMyNiA1LjU4MTcyIDIyLjQxODMgMiAxOCAyQzEzLjU4MTcgMiAxMCA1LjU4MTcyIDEwIDEwQzEwIDE0LjQxODMgMTQgMTggMTggMjJaIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.itinerary__accordion-icon-bike {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDM2IDI1IiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTkuOTUzODggMjEuMDUwM0MxMi4yODc3IDIxLjA1MDMgMTQuMjQ0OCAxOS40MjU5IDE0Ljc2NjcgMTcuMjQ5N0wxNS40NjczIDE3LjM1MTNDMTUuNTY3OSAxOC4zODU5IDE2LjQzMjQgMTkuMjAwMyAxNy40OTMgMTkuMjAwM0MxOC42MjA5IDE5LjIwMDMgMTkuNTM4NCAxOC4yODI2IDE5LjUzODQgMTcuMTU0N0MxOS41Mzg0IDE2LjUyNzkgMTkuMjQ5MSAxNS45NzMyIDE4LjgwMzkgMTUuNTk3N0wyMi42NzM4IDEwLjA0NTZMMjMuMTUzMyAxMi4wMjM0QzIxLjg2MTQgMTIuOTE4NCAyMS4wMTIyIDE0LjQwOTMgMjEuMDEyMiAxNi4wOTY0QzIxLjAxMjIgMTguODI3OSAyMy4yMzQ2IDIxLjA1MDMgMjUuOTY2MSAyMS4wNTAzQzI4LjY5NzcgMjEuMDUwMyAzMC45MiAxOC44Mjc5IDMwLjkyIDE2LjA5NjRDMzAuOTIgMTMuMzY0OCAyOC42OTc3IDExLjE0MjUgMjUuOTY2MSAxMS4xNDI1QzI1LjI1NjEgMTEuMTQyNSAyNC41ODIgMTEuMjk1NCAyMy45NzA5IDExLjU2NTZMMjIuNDc4OCA1LjQxMDYxSDI1LjI3NjdDMjUuMzE1NyA1LjQyMTQxIDI1LjM1NjIgNS40MjcxMyAyNS4zOTc2IDUuNDI3MTNDMjYuMDk5MiA1LjQyNzEzIDI2LjY3MDEgNS45OTgwMyAyNi42NzAxIDYuNjk5NTlDMjYuNjcwMSA3LjQwMTE1IDI2LjA5OTIgNy45NzE4MyAyNS4zOTc2IDcuOTcxODNDMjUuMTQ4NCA3Ljk3MTgzIDI0Ljk0NjQgOC4xNzM4OCAyNC45NDY0IDguNDIzMDhDMjQuOTQ2NCA4LjY3MjI4IDI1LjE0ODQgOC44NzQzNCAyNS4zOTc2IDguODc0MzRDMjYuNTk3IDguODc0MzQgMjcuNTcyNiA3Ljg5ODY3IDI3LjU3MjYgNi42OTk1OUMyNy41NzI2IDUuNTQwNjEgMjYuNjYxMyA0LjU5MDUxIDI1LjUxNzcgNC41Mjc5M0MyNS40NzU0IDQuNTE0OTMgMjUuNDMwOSA0LjUwODEgMjUuMzg1NSA0LjUwODFIMjEuOTA1MUMyMS43NjY3IDQuNTA4MSAyMS42MzYgNC41NzE1NiAyMS41NTAzIDQuNjgwNDFDMjEuNDY0OCA0Ljc4OTI1IDIxLjQzNCA0LjkzMTE1IDIxLjQ2NjYgNS4wNjU3OEwyMi4xNzExIDcuOTcxODNIMTQuODAwNUwxMy43MzI0IDQuOTAyNTFIMTQuOTkzNUMxNS4yNDI3IDQuOTAyNTEgMTUuNDQ0NyA0LjcwMDQ2IDE1LjQ0NDcgNC40NTEyNUMxNS40NDQ3IDQuMjAyMDUgMTUuMjQyNyA0IDE0Ljk5MzUgNEgxMS4zMjg2QzExLjA3OTQgNCAxMC44NzczIDQuMjAyMDUgMTAuODc3MyA0LjQ1MTI1QzEwLjg3NzMgNC43MDA0NiAxMS4wNzk0IDQuOTAyNTEgMTEuMzI4NiA0LjkwMjUxSDEyLjc3NjlMMTMuOTg0OSA4LjM3NDA2TDEyLjA2ODUgMTEuNjIzMkMxMS40MjYxIDExLjMxODMgMTAuNzExIDExLjE0MjUgOS45NTM4OCAxMS4xNDI1QzcuMjIyMzQgMTEuMTQyNSA1IDEzLjM2NDggNSAxNi4wOTY0QzUgMTguODI3OSA3LjIyMjM0IDIxLjA1MDMgOS45NTM4OCAyMS4wNTAzWk0zMC4wMTc1IDE2LjA5NjRDMzAuMDE3NSAxOC4zMzA0IDI4LjIwMDEgMjAuMTQ3OCAyNS45NjYxIDIwLjE0NzhDMjMuNzMyMSAyMC4xNDc4IDIxLjkxNDggMTguMzMwNCAyMS45MTQ4IDE2LjA5NjRDMjEuOTE0OCAxNC43NzUgMjIuNTUzNCAxMy42MDMxIDIzLjUzNTEgMTIuODYzMUwyNS43MjU3IDE2LjMzN0MyNS44MTE0IDE2LjQ3MzIgMjUuOTU4IDE2LjU0NzYgMjYuMTA3OCAxNi41NDc2QzI2LjE5IDE2LjU0NzYgMjYuMjczMyAxNi41MjUyIDI2LjM0OCAxNi40NzhDMjYuNTU4OCAxNi4zNDUxIDI2LjYyMjEgMTYuMDY2NCAyNi40ODkgMTUuODU1OEwyNC4zMTEzIDEyLjQwMjJDMjQuODE3MiAxMi4xNzQ2IDI1LjM3NjMgMTIuMDQ1IDI1Ljk2NjEgMTIuMDQ1QzI4LjIwMDEgMTIuMDQ1IDMwLjAxNzUgMTMuODYyNCAzMC4wMTc1IDE2LjA5NjRaTTE3LjQ5MyAxOC4yOTc4QzE2Ljg2MjYgMTguMjk3OCAxNi4zNDk5IDE3Ljc4NTEgMTYuMzQ5OSAxNy4xNTQ3QzE2LjM0OTkgMTYuNTI0NSAxNi44NjI2IDE2LjAxMTggMTcuNDkzIDE2LjAxMThDMTguMTIzMiAxNi4wMTE4IDE4LjYzNTkgMTYuNTI0NSAxOC42MzU5IDE3LjE1NDdDMTguNjM1OSAxNy43ODUxIDE4LjEyMzIgMTguMjk3OCAxNy40OTMgMTguMjk3OFpNMjIuMzg5OSA4Ljg3NDM0TDE3Ljk5NTYgMTUuMTc5MkMxNy44MzM5IDE1LjEzNzkgMTcuNjY3NCAxNS4xMDkzIDE3LjQ5MyAxNS4xMDkzQzE3LjQyMzkgMTUuMTA5MyAxNy4zNTg2IDE1LjEyMjkgMTcuMjkxMiAxNS4xMjk2TDE1LjExNDUgOC44NzQzNEgyMi4zODk5Wk0xNC4zNzM3IDkuNDkxMzRMMTYuNDM0NCAxNS40MTMyQzE2LjA0MTkgMTUuNjUyNyAxNS43MzkgMTYuMDE3OCAxNS41Nzg1IDE2LjQ1NTRMMTQuODk0NiAxNi4zNTYzQzE0Ljg5OTEgMTYuMjY5NiAxNC45MDc4IDE2LjE4NDEgMTQuOTA3OCAxNi4wOTY0QzE0LjkwNzggMTQuNDQ0NiAxNC4wOTIgMTIuOTgyOSAxMi44NDU0IDEyLjA4MjNMMTQuMzczNyA5LjQ5MTM0Wk0xNC4wMDUyIDE2LjA5NjRDMTQuMDA1MiAxNi4xNDAzIDE0LjAwMDEgMTYuMTgyOSAxMy45OTg3IDE2LjIyNjRMMTAuNjg0MyAxNS43NDYyTDEyLjM4NDkgMTIuODYzMUMxMy4zNjY2IDEzLjYwMzEgMTQuMDA1MiAxNC43NzUgMTQuMDA1MiAxNi4wOTY0Wk05Ljk1Mzg4IDEyLjA0NUMxMC41NDM4IDEyLjA0NSAxMS4xMDI5IDEyLjE3NDYgMTEuNjA5IDEyLjQwMjNMOS41NjUyIDE1Ljg2NzJDOS41NDk2NyAxNS44OTM1IDkuNTQ2MDkgMTUuOTIyNCA5LjUzNjQyIDE1Ljk1MDJDOS41MjY3NSAxNS45Nzc1IDkuNTExNiAxNi4wMDE4IDkuNTA3MjUgMTYuMDMxNkM5LjUwNzE0IDE2LjAzMjQgOS41MDc1IDE2LjAzMzEgOS41MDczOSAxNi4wMzM5QzkuNDk5MTMgMTYuMDkzIDkuNTAyMzggMTYuMTUyNyA5LjUxNzE0IDE2LjIwOTZDOS41MjQ4IDE2LjIzOSA5LjU0MjUzIDE2LjI2MzYgOS41NTU3MyAxNi4yOTA2QzkuNTY3OTggMTYuMzE1OCA5LjU3NTA5IDE2LjM0MzEgOS41OTIwMyAxNi4zNjU5QzkuNjI3MjUgMTYuNDEzMiA5LjY3MTg3IDE2LjQ1MzEgOS43MjMyOSAxNi40ODM4QzkuNzIzODcgMTYuNDg0MSA5LjcyNDE1IDE2LjQ4NDcgOS43MjQ3MyAxNi40ODUxQzkuNzcxNTIgMTYuNTEyOCA5LjgyMTUxIDE2LjUyNzcgOS44NzIxMSAxNi41MzY5QzkuODc4MjIgMTYuNTM4MSA5Ljg4MjkgMTYuNTQyMSA5Ljg4OTEgMTYuNTQzTDEzLjg2OTIgMTcuMTE5N0MxMy40MTQxIDE4Ljg1ODkgMTEuODMzOCAyMC4xNDc4IDkuOTUzODggMjAuMTQ3OEM3LjcxOTg2IDIwLjE0NzggNS45MDI1MSAxOC4zMzA0IDUuOTAyNTEgMTYuMDk2NEM1LjkwMjUxIDEzLjg2MjQgNy43MTk4NiAxMi4wNDUgOS45NTM4OCAxMi4wNDVaIiBmaWxsPSIjODQ4NDg0Ii8+Cjwvc3ZnPg==");
}
.itinerary__accordion-icon-longer-option {
  background-image: url("data:image/svg+xml;base64,"); /* You can add the base64 SVG data here */
}
.itinerary__accordion-icon-accommodations {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgdmlld0JveD0iLTYgMCAzNiAxOCIgZmlsbD0ibm9uZSI+CjxwYXRoIGQ9Ik0xLjAwMjUgMTcuMDAwMVYxNC42Mzk0TTIyLjA4NDQgMTcuMDAwMUMyMi4wODQ0IDE2LjM4ODcgMjIuMDg0NCAxNS41NTA5IDIyLjA4NDQgMTQuNjM5NE0xLjAwMjUgMTQuNjM5NFY5LjEzMTI3QzAuOTY3NTI2IDguNTU0MjIgMS4yODU3OCA3LjQwMDEyIDIuODM4NTYgNy40MDAxMkM0LjM5MTM1IDcuNDAwMTIgMTQuNDk1NCA3LjQwMDEyIDIwLjM1MzMgNy40MDAxMkMyMC45MzA0IDcuMzMwMTggMjIuMDg0NCA3LjU3ODQ4IDIyLjA4NDQgOS4xMzEyN0MyMi4wODQ0IDEwLjIwMzYgMjIuMDg0NCAxMi42MDUxIDIyLjA4NDQgMTQuNjM5NE0xLjAwMjUgMTQuNjM5NEgyMi4wODQ0IiBzdHJva2U9IiM4NDg0ODQiLz4KPHBhdGggZD0iTTMuMjA5IDcuMzk5OTlWMi4xNTQxQzMuMTU2NTUgMS43Njk0IDMuMzg3MzYgMSA0LjczMDMxIDFDNi4wNzMyNiAxIDEzLjI1MDUgMSAxOC42NzEzIDFDMTkuMDU2IDEuMDE3NDkgMTkuODI1NCAxLjI3Mjc5IDE5LjgyNTQgMi4xNTQxQzE5LjgyNTQgMy4wMzU0MSAxOS44MjU0IDYuMDE4NTcgMTkuODI1NCA3LjM5OTk5TTYuMDQxNzkgNy4zOTk5OVY0LjU2NzIxSDkuODY0NzZWNy4zOTk5OU0xMi45NTk4IDcuMzk5OTlWNC41NjcyMUgxNi43ODI4VjcuMzk5OTkiIHN0cm9rZT0iIzg0ODQ4NCIvPgo8L3N2Zz4=");
}
.itinerary__accordion-icon-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.itinerary__accordion-icon-content h4 {
  font-size: var(--font-size-3xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--grey);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
.itinerary__accordion-icon-content p {
  font-size: var(--font-size-sm) !important;
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 140%;
  margin: 0;
}
.itinerary__accordion p {
  font-size: var(--font-size-sm);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 160%;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .itinerary__accordion p {
    font-size: var(--font-size-sm);
  }
}
.itinerary__accordion p:last-child {
  margin-bottom: 0;
}
.itinerary__accordion.active .itinerary__accordion-header {
  border-bottom-color: var(--terra-cotta);
}
.itinerary__accordion.active .itinerary__accordion-toggle {
  background-color: transparent;
}
.itinerary__accordion.active .itinerary__accordion-icon:before, .itinerary__accordion.active .itinerary__accordion-icon:after {
  background-color: var(--terra-cotta);
}
.itinerary__accordion.active .itinerary__accordion-icon:after {
  transform: translateX(-50%) rotate(90deg);
}
.itinerary__accordion.active .itinerary__accordion-content {
  max-height: 5000px; /* Increased to accommodate stacked mobile content */
  opacity: 1;
}

/* Accommodations Carousel */
.accommodations-carousel {
  padding: 120px 0;
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  background-color: var(--medium-cream);
}
@media screen and (max-width: 768px) {
  .accommodations-carousel {
    padding: 70px 0;
  }
}
.accommodations-carousel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
  max-width: 1016px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .accommodations-carousel__header {
    flex-direction: column-reverse;
    align-items: start;
    padding: 0 40px;
    margin-bottom: 40px;
    gap: 12px;
  }
}
.accommodations-carousel__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.accommodations-carousel__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
}

.accommodations-swiper {
  position: relative;
  overflow: visible;
  margin: 0;
  padding-bottom: 60px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .accommodations-swiper {
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
  }
}
.accommodations-swiper .swiper-wrapper {
  display: flex;
  align-items: stretch;
}
@media screen and (max-width: 768px) {
  .accommodations-swiper .swiper-wrapper {
    padding: 0;
  }
}
.accommodations-swiper .swiper-slide {
  height: auto;
  width: 1016px; /* Fixed width for desktop slides */
  max-width: 100%;
  box-sizing: border-box;
}
@media screen and (max-width: 1080px) {
  .accommodations-swiper .swiper-slide {
    padding-left: 20px;
  }
}
@media screen and (max-width: 768px) {
  .accommodations-swiper .swiper-slide {
    padding-left: 40px;
    padding-right: 40px;
  }
}
.accommodations-swiper__navigation-wrapper {
  max-width: 1016px;
  margin: 0 auto;
  display: flex;
  justify-content: start;
  flex-wrap: wrap;
  gap: 30px;
  align-items: flex-start;
  margin-top: 30px;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .accommodations-swiper__navigation-wrapper {
    flex-direction: column;
    gap: 20px;
    padding: 0 40px;
  }
}
.accommodations-swiper__navigation {
  display: flex;
  align-items: center;
  z-index: 10;
  max-width: 1016px;
}
@media screen and (max-width: 768px) {
  .accommodations-swiper__navigation {
    width: 100%;
    justify-content: center;
    transform: none;
    padding: 0 20px;
  }
}
.accommodations-swiper__note {
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  line-height: 150%;
  white-space: normal;
  flex: 1 1 16rem;
  min-width: 0;
  max-width: 100%;
}
.accommodations-swiper__note p {
  margin: 0 0 0.5em;
}
.accommodations-swiper__note p:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .accommodations-swiper__note {
    position: relative;
    width: 100%;
    flex: 1 1 100%;
  }
}
.accommodations-swiper .swiper-button-prev,
.accommodations-swiper .swiper-button-next {
  position: static;
  width: 52px;
  max-height: 28px;
  margin: 0;
  background-color: var(--terra-cotta);
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.accommodations-swiper .swiper-button-prev::after,
.accommodations-swiper .swiper-button-next::after {
  font-size: 16px;
}
.accommodations-swiper .swiper-button-prev::after {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE2LjY2NjcgMTBIMy4zMzMzNE0zLjMzMzM0IDEwTDguMzMzMzQgNU0zLjMzMzM0IDEwTDguMzMzMzQgMTUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.accommodations-swiper .swiper-button-next::after {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTMuMzMzMzQgMTBIMTYuNjY2N00xNi42NjY3IDEwTDExLjY2NjcgNU0xNi42NjY3IDEwTDExLjY2NjcgMTUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.accommodations-swiper .swiper-pagination {
  position: static;
  width: auto;
  margin: 0 16px;
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
}
.accommodations-swiper .swiper-button-disabled {
  background-color: var(--cream);
  opacity: 1 !important;
}

.accommodation-card {
  display: flex;
  height: 442px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.accommodation-card__image {
  position: relative;
  width: 70%;
  height: 100%;
  flex-shrink: 0;
  overflow: hidden;
}
.accommodation-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.accommodation-card__content {
  padding: 32px;
  background-color: var(--terra-cotta);
  color: var(--white);
  flex-grow: 40;
  display: grid;
  flex-direction: column;
  width: 34%;
  padding: 40px 24px;
  justify-content: space-between;
}

.accommodation-card__nights {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  line-height: 150%;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--white);
}
.accommodation-card__nights-icon {
  flex-shrink: 0;
  display: inline-flex;
  color: var(--white);
}
.accommodation-card__nights-icon svg {
  width: 16px;
  height: 16px;
  display: block;
}
.accommodation-card__title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  line-height: 110%;
  letter-spacing: -0.4px;
  color: var(--white);
  padding-bottom: 5px;
  margin-bottom: 5px;
  margin-top: 0;
}

.accommodation-card__title a:hover {
  opacity: 0.9;
}

.accommodation-card__website-icon {
  flex-shrink: 0;
  display: inline-flex;
  color: var(--white);
}
.accommodation-card__website-icon svg {
  width: 16px;
  height: 16px;
  display: block;
}
a.accommodation-card__website-link,
a.accommodation-card__website-link:link,
a.accommodation-card__website-link:visited,
a.accommodation-card__website-link:hover,
a.accommodation-card__website-link:active {
  color: var(--white) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
a.accommodation-card__website-link:hover {
  opacity: 0.9;
}

.accommodation-card__button {
  margin-top: auto;
  align-self: stretch;
  flex-shrink: 0;
}
.accommodation-card__button-link,
.accommodation-card__button .accommodation-card__button-link {
  display: table-row-group;
  padding: 10px 14px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  align-self: stretch;
  border-radius: 0;
  border: none;
  background-color: transparent;
  background: transparent;
  font-size: var(--font-size-3xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--white) !important;
  cursor: pointer;
  text-decoration: none !important;
  transition: opacity 0.2s ease;
  max-height: 36px;
  box-sizing: border-box;
}
.accommodation-card__button-link:hover {
  background-color: transparent;
  background: transparent;
  color: var(--white) !important;
  opacity: 0.9;
}
.accommodation-card__button .accommodation-card__website-icon {
  color: var(--white);
}
.accommodation-card__button .accommodation-card__website-icon svg {
  width: 14px;
  height: 14px;
}

@media (max-width: 768px) {
  .accommodations-carousel {
    padding: 70px 0;
  }
  .accommodation-card {
    flex-direction: column;
    height: 472px;
  }
  .accommodation-card__image {
    width: 100%;
    height: 0;
    padding-bottom: 90%; /* 3/4 aspect ratio on mobile */
    position: relative;
  }
  .accommodation-card__image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .accommodation-card__title {
    font-size: var(--font-size-md);
  }
  .accommodations-swiper__navigation {
    justify-content: start;
    width: 100%;
  }
  .accommodations-swiper__note {
    text-align: left;
  }
}
@media screen and (max-width: 768px) {
  .accommodation-card {
    height: 100%;
    min-height: 472px;
  }
  .accommodation-card__content {
    width: 100%;
    box-sizing: border-box;
  }
  .accommodations-carousel + .inclusions-exclusions {
    padding-top: 70px;
  }
}
/* Travelers Notes Section */
.travelers-notes {
  padding: 120px 20px;
}
@media screen and (max-width: 768px) {
  .travelers-notes {
    padding: 70px 40px;
  }
}
.travelers-notes__content {
  display: flex;
  gap: 40px;
  background-color: var(--hazy-teal);
  border-radius: 16px;
  padding: 48px;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .travelers-notes__content {
    padding: 32px 24px;
    flex-direction: column;
    gap: 24px;
  }
}
.travelers-notes__title {
  color: var(--deep-teal);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  font-size: var(--font-size-xl);
  min-width: 30%;
}
@media screen and (max-width: 768px) {
  .travelers-notes__title {
    font-size: var(--font-size-lg);
  }
}
.travelers-notes__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 768px) {
  .travelers-notes__list {
    gap: 24px;
  }
}
.travelers-notes__item {
  flex: 1;
  position: relative;
  padding-left: 20px;
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  font-size: var(--font-size-sm);
  line-height: 155%;
  color: var(--charcoal-black);
}
.travelers-notes__item:before {
  content: "";
  background: var(--teal);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  top: 9px;
  position: absolute;
  left: 0;
  color: var(--teal);
  font-size: 20px;
  line-height: 1;
}

/* Inclusions + Exclusions Section */
.inclusions-exclusions {
  padding: 60px 20px;
}
@media screen and (max-width: 768px) {
  .inclusions-exclusions {
    padding: 0px 40px 70px;
  }
}
.inclusions-exclusions__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
}
@media screen and (max-width: 768px) {
  .inclusions-exclusions__header {
    flex-direction: column-reverse;
    align-items: start;
    margin-bottom: 40px;
    gap: 12px;
  }
}
.inclusions-exclusions__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.inclusions-exclusions__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
}
.inclusions-exclusions__grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 48px;
}
.inclusions-exclusions__block {
  background: none;
  border-radius: 0;
  box-shadow: none;
  padding: 36px 0;
  border-bottom: 1px solid var(--cream);
  margin: 0;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0;
}
.inclusions-exclusions__block:first-child {
  border-top: 1px solid var(--cream);
}
@media screen and (max-width: 768px) {
  .inclusions-exclusions__block {
    flex-direction: column;
    padding: 20px 0;
  }
}
.inclusions-exclusions__block:last-child {
  border-bottom: 1px solid var(--cream);
}
.inclusions-exclusions__block-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  color: var(--deep-teal);
  font-weight: var(--font-weight-light);
  margin-bottom: 0;
  letter-spacing: -0.5px;
  width: 50%;
  flex: 0 0 50%;
  padding-right: 24px;
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .inclusions-exclusions__block-title {
    width: 100%;
    flex: 0 0 100%;
    padding-right: 0;
    margin-bottom: 12px;
  }
}
.inclusions-exclusions__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 50%;
  flex: 0 0 50%;
}
@media screen and (max-width: 768px) {
  .inclusions-exclusions__list {
    width: 100%;
    flex: 0 0 100%;
  }
}
.inclusions-exclusions__list li {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  line-height: 150%;
  position: relative;
  display: flex;
  align-items: start;
  padding-left: 20px;
}
.inclusions-exclusions__list li:before {
  content: "";
  background: var(--cream);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  top: 9px;
  position: absolute;
  left: 0;
  font-size: 20px;
  line-height: 1;
}
.inclusions-exclusions__block--not-included {
  background: none;
  border: none;
}
.inclusions-exclusions__block--not-included .inclusions-exclusions__block-title--not-included {
  color: var(--teal);
}
.inclusions-exclusions__block--not-included .inclusions-exclusions__list--not-included li {
  color: var(--teal);
}
.inclusions-exclusions__block--not-included .inclusions-exclusions__list--not-included li:before {
  background-color: var(--teal);
}
.inclusions-exclusions__image {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  margin: 0 auto 0 0;
}
.inclusions-exclusions__image img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .inclusions-exclusions__image {
    display: none;
  }
}

/* Get To Your Tour Section */
.get-to-your-tour {
  width: 100%;
  position: relative;
  overflow: hidden;
  z-index: 1;
  padding-top: 50px;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour {
    padding-top: 0;
  }
}
.get-to-your-tour__image-wrapper {
  position: relative;
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__image-wrapper {
    height: auto;
    aspect-ratio: 1/1;
    min-height: 320px;
    max-height: 100vw;
  }
}
.get-to-your-tour__image {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__image {
    height: 100vw;
    aspect-ratio: 392/524;
    min-height: 524px;
  }
}
.get-to-your-tour__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40.71%, #000 100%);
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__overlay {
    height: 100%;
    aspect-ratio: 392/524;
    min-height: 524px;
  }
}
.get-to-your-tour__content {
  position: absolute;
  left: calc(50% - 488px);
  bottom: 0;
  z-index: 3;
  padding-bottom: 120px;
  color: var(--white);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__content {
    padding: 0 0 32px 40px;
    left: 0;
  }
}
.get-to-your-tour__label {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  color: var(--cream);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 18px;
  opacity: 0.85;
}
.get-to-your-tour__title {
  font-family: var(--font-heading);
  font-size: 56px;
  font-weight: var(--font-weight-light);
  color: var(--white);
  line-height: 110%;
  letter-spacing: -1.2px;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__title {
    font-size: 32px;
  }
}
.get-to-your-tour__details {
  width: 100%;
  background: var(--light-cream);
  padding: 120px 0;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details {
    padding: 60px 0;
  }
}
.get-to-your-tour__details-block {
  background: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0 40px;
}
.get-to-your-tour__details-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  padding-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details-header {
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 12px;
  }
}
.get-to-your-tour__details-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  color: var(--deep-teal);
  font-weight: var(--font-weight-light);
  margin: 0;
  letter-spacing: -0.5px;
}
.get-to-your-tour__details-icon, .pre-footer .pre-footer__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--hazy-teal);
  border: none;
  border-radius: 8px;
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details-icon, .pre-footer .pre-footer__icon {
    margin-left: 0;
  }
}
.get-to-your-tour__details-icon::before, .pre-footer .pre-footer__icon::before {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDIwIDE4IiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTIuNzQ4MjIgMTYuNTYxQzIuNjkzODggMTYuNTI5NiAyLjY3NDIyIDE2LjQ1NjEgMi43MjU2NSAxNi40MDI5TDguOTM5IDExLjEwODFMNC42MzkwNiA4LjYyNTUyQzMuNzU3MjQgOC42NDg0NCAxLjQ4NzE4IDguNjU3NjYgMS41MDUxNyA4LjYyNjQ5TDAuODY4NzEyIDguMjU5MDNDMC44MDY2MTggOC4yMjMxOCAwLjc5NTk3MiA4LjEzNDEgMC44NTA2NzIgOC4wOTMxM0wzLjEwNjAyIDUuOTQ3NDVMMy44ODU5NSAyLjgzNTg3QzMuODk0MDggMi43NjgwMiAzLjk3NjU0IDIuNzMyNzIgNC4wMzg2MyAyLjc2ODU3TDQuNjc1MDkgMy4xMzYwM0M0LjY3NTA5IDMuMTM2MDMgNS44MDY3OSA1LjExODI4IDYuMjAwOCA1LjkyMDVMMTAuNTAwNyA4LjQwMzA3TDExLjk3OTUgMC4zNzQ3NTlDMTEuOTk1NCAwLjMxMTM4NSAxMi4wNjg5IDAuMjkxNjM3IDEyLjEyMzIgMC4zMjMwMDVMMTIuNzEzMSAwLjY2MzU2NUMxMy4xNTU1IDAuOTE4OTkyIDEzLjQyNDUgMS4zODUyMSAxMy40MTg2IDEuODc5MzFMMTQuMjg4NCAxMC41ODk5TDE2LjY1NTcgMTEuOTU2NkMxNy4zMzg3IDEyLjM1MSAxOC4wNDY3IDEyLjg2MzQgMTguNzIzOCAxMy41NTQ4TDE5LjUzMjIgMTQuNjY0MUMxOS43NjM1IDE0Ljg5MDkgMTkuODEwNiAxNS4yMzk1IDE5LjY1OCAxNS41MDM4QzE5LjUwNTQgMTUuNzY4IDE5LjE4NDUgMTUuODkzNyAxOC44NjggMTUuODE0NkwxNy41MDc2IDE1LjY2MTNDMTYuNTc0NyAxNS40MTI5IDE1Ljc2NDcgMTUuMDU5MyAxNS4wODk1IDE0LjY2OTRMMTIuNzIyMiAxMy4zMDI3TDQuNzQzNzIgMTYuOTA0N0M0LjcyNjUxIDE3LjE2MTMgMy43ODA1IDE3LjE1NyAzLjMzODA4IDE2LjkwMTVMMi43NDgyMiAxNi41NjFaIiBmaWxsPSIjMUQxRTFFIi8+Cjwvc3ZnPg==");
  display: block;
  width: 24px;
  height: 24px;
  padding-left: 5px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.get-to-your-tour__details-icon-descending::before {
  transform: rotate(180deg);
  padding-left: 4px;
}
.get-to-your-tour__details-list {
  width: 100%;
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  background: none;
  border-radius: 0;
  overflow: visible;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details-list {
    margin-top: 16px;
  }
}
.get-to-your-tour__details-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  padding: 18px 0px;
  border-top: none;
  border-bottom: none;
  font-size: var(--font-size-md);
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details-row {
    flex-direction: column;
    align-items: flex-start;
    font-size: var(--font-size-sm);
  }
}
.get-to-your-tour__details-row:first-child {
  border-top: 1px solid var(--cream);
}
.get-to-your-tour__details-row:not(:first-child) {
  border-top: 1px solid var(--cream);
}
.get-to-your-tour__details-row:last-child {
  border-bottom: 1px solid var(--cream);
}
.get-to-your-tour__details-label {
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  color: var(--charcoal-black);
  text-transform: uppercase;
  letter-spacing: 1px;
  min-width: 312px;
  flex: 0 0 180px;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details-label {
    min-width: 0;
    flex: 0 0 100%;
    margin-bottom: 4px;
  }
}
.get-to-your-tour__details-value {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  margin-left: 24px;
  flex: 1 1 auto;
}
@media screen and (max-width: 768px) {
  .get-to-your-tour__details-value {
    margin-left: 0;
    font-size: var(--font-size-sm);
  }
}

/* Bikes Section */
.bikes,
.preparing-for-your-tour {
  width: 100%;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.bikes__image-wrapper,
.preparing-for-your-tour__image-wrapper {
  position: relative;
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .bikes__image-wrapper,
  .preparing-for-your-tour__image-wrapper {
    height: auto;
    aspect-ratio: 1/1;
    min-height: 320px;
    max-height: 100vw;
  }
}
.bikes__image,
.preparing-for-your-tour__image {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .bikes__image,
  .preparing-for-your-tour__image {
    height: 100vw;
    aspect-ratio: 392/524;
    min-height: 524px;
  }
}
.bikes__overlay,
.preparing-for-your-tour__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40.71%, #000 100%);
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .bikes__overlay,
  .preparing-for-your-tour__overlay {
    height: 100%;
    aspect-ratio: 392/524;
    min-height: 524px;
  }
}
.bikes__content,
.preparing-for-your-tour__content {
  position: absolute;
  left: calc(50% - 512px);
  bottom: 0;
  z-index: 3;
  padding-bottom: 120px;
  color: var(--white);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .bikes__content,
  .preparing-for-your-tour__content {
    padding: 0 0 32px 40px;
    left: 0;
  }
}
.bikes__label,
.preparing-for-your-tour__label {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  color: var(--light-cream);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 18px;
  opacity: 0.85;
}
.bikes__title,
.preparing-for-your-tour__title {
  font-family: var(--font-heading);
  font-size: 56px;
  font-weight: var(--font-weight-light);
  color: var(--white);
  line-height: 110%;
  letter-spacing: -1.2px;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .bikes__title,
  .preparing-for-your-tour__title {
    font-size: 32px;
  }
}

/* Bikes Carousel */
.bikes-carousel {
  padding: 120px 0;
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .bikes-carousel {
    padding: 70px 0;
  }
}
.bikes-carousel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
  max-width: 1016px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bikes-carousel__header {
    flex-direction: column-reverse;
    align-items: start;
    padding: 0 40px;
    margin-bottom: 40px;
    gap: 12px;
  }
}
.bikes-carousel__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.bikes-carousel__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
}

.bikes-carousel {
  padding: 120px 0;
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .bikes-carousel {
    padding: 70px 0;
  }
}
.bikes-carousel__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
  max-width: 1016px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bikes-carousel__header {
    flex-direction: column-reverse;
    align-items: start;
    padding: 0 40px;
    margin-bottom: 40px;
    gap: 12px;
  }
}
.bikes-carousel__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.bikes-carousel__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
}

.bikes-swiper {
  position: relative;
  overflow: visible;
  margin: 0;
  padding-bottom: 60px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .bikes-swiper {
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
  }
}
.bikes-swiper .swiper-wrapper {
  display: flex;
  align-items: stretch;
}
@media screen and (max-width: 768px) {
  .bikes-swiper .swiper-wrapper {
    padding: 0;
  }
}
.bikes-swiper .swiper-slide {
  height: auto;
  width: 1016px; /* Fixed width for desktop slides */
  max-width: 100%;
  box-sizing: border-box;
}
@media screen and (max-width: 1080px) {
  .bikes-swiper .swiper-slide {
    padding-left: 20px;
  }
}
@media screen and (max-width: 768px) {
  .bikes-swiper .swiper-slide {
    padding-left: 40px;
    padding-right: 40px;
  }
}
.bikes-swiper__navigation-wrapper {
  max-width: 1016px;
  margin: 0 auto;
  display: flex;
  justify-content: start;
  gap: 30px;
  align-items: center;
  margin-top: 30px;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bikes-swiper__navigation-wrapper {
    flex-direction: column;
    gap: 20px;
    padding: 0 40px;
  }
}
.bikes-swiper__navigation {
  display: flex;
  align-items: center;
  z-index: 10;
  max-width: 1016px;
}
@media screen and (max-width: 768px) {
  .bikes-swiper__navigation {
    width: 100%;
    justify-content: center;
    transform: none;
    padding: 0 20px;
  }
}
.bikes-swiper__note {
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  line-height: 150%;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .bikes-swiper__note {
    position: relative;
    width: 100%;
    white-space: normal;
  }
}
.bikes-swiper__slider-description {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: 500;
  line-height: 140%;
  color: var(--charcoal-black);
  white-space: nowrap;
}
.bikes-swiper--passenger .bike-card__passenger-name {
  font-family: var(--font-body);
  font-size: var(--font-size-md);
  font-weight: 500;
  line-height: 140%;
  color: var(--charcoal-black);
  margin-top: auto;
}
.bikes-swiper--passenger .bike-card__title + .bike-card__button {
  margin-top: auto;
}
.bikes-swiper--passenger .bike-card__passenger-name + .bike-card__button {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .bikes-swiper__slider-description {
    width: 100%;
    white-space: normal;
    text-align: center;
  }
}
.bikes-swiper .swiper-button-prev,
.bikes-swiper .swiper-button-next {
  position: static;
  width: 52px;
  max-height: 28px;
  margin: 0;
  background-color: var(--terra-cotta);
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bikes-swiper .swiper-button-prev::after,
.bikes-swiper .swiper-button-next::after {
  font-size: 16px;
}
.bikes-swiper .swiper-button-prev::after {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE2LjY2NjcgMTBIMy4zMzMzNE0zLjMzMzM0IDEwTDguMzMzMzQgNU0zLjMzMzM0IDEwTDguMzMzMzQgMTUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.bikes-swiper .swiper-button-next::after {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTMuMzMzMzQgMTBIMTYuNjY2N00xNi42NjY3IDEwTDExLjY2NjcgNU0xNi42NjY3IDEwTDExLjY2NjcgMTUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.bikes-swiper .swiper-pagination {
  position: static;
  width: auto;
  margin: 0 16px;
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
}
.bikes-swiper .swiper-button-disabled {
  background-color: var(--cream);
  opacity: 1 !important;
}

.bike-card {
  display: flex;
  height: 442px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.bike-card__image {
  position: relative;
  width: 70%;
  height: 100%;
  flex-shrink: 0;
  background-color: var(--white);
  overflow: hidden;
  margin: 0 auto;
}
.bike-card__image img {
  width: 100%;
  height: auto;
  object-fit: none;
  object-position: center;
  display: block;
}

.bike-detail-dialog::backdrop {
  background: rgba(26, 26, 26, 0.55);
}
.bike-detail-dialog__panel {
  position: relative;
  padding: 20px 52px 32px 28px;
  border-radius: 16px;
  background-color: var(--white);
  color: var(--charcoal-black);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
  max-height: min(70vh, 640px);
  overflow-y: auto;
}
.bike-detail-dialog__close {
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--medium-cream);
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--charcoal-black);
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 10px;
  right: 10px;
  margin: inherit;
}
.bike-detail-dialog__close::before {
  content: "\00d7";
  position: relative;
  top: -1px;
}
.bike-detail-dialog__close:hover {
  background-color: var(--cream);
}
.bike-detail-dialog__title {
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-light);
  line-height: 120%;
  margin: 0 0 16px;
  padding: 0;
  color: #c5c740;
}
.bike-detail-dialog__short-desc {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  line-height: 160%;
  margin: 0 0 20px;
  color: var(--charcoal-black);
}
.bike-detail-dialog__short-desc p {
  margin: 0 0 0.75em;
}
.bike-detail-dialog__short-desc p:last-child {
  margin-bottom: 0;
}
.bike-detail-dialog__short-desc ul,
.bike-detail-dialog__short-desc ol {
  margin: 0 0 0.75em;
  padding-left: 1.25em;
}
.bike-detail-dialog__specs {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  line-height: 160%;
  color: var(--charcoal-black);
}
.bike-detail-dialog__specs :first-child {
  margin-top: 0;
}
.bike-detail-dialog__specs :last-child {
  margin-bottom: 0;
}
.bike-detail-dialog__specs ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bike-detail-dialog__specs ul li {
  margin: 0;
  padding: 0;
}
.bike-detail-dialog__specs ul li strong {
  font-weight: var(--font-weight-medium);
}
.bike-detail-dialog__specs ol {
  margin: 0.75em 0;
  padding-left: 1.25em;
}
.bike-detail-dialog__specs img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
.bike-card__content {
  padding: 32px;
  background-color: var(--medium-cream);
  color: var(--charcoal-black);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
  justify-content: start;
  width: 34%;
  align-items: flex-start;
}
.bike-card__type {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-normal);
  line-height: 150%;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.bike-card__title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  line-height: 110%;
  letter-spacing: -0.4px;
  color: var(--charcoal-black);
}
.bike-card__price {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  line-height: 150%;
  margin-top: auto;
}
.bike-card__button button {
  background-color: var(--terra-cotta);
  color: var(--white);
  font-weight: var(--font-weight-regular);
}
.bike-card__button button:hover {
  background-color: var(--terra-cotta);
}

@media (max-width: 480px) {
  .bike-detail-dialog__specs ul {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 768px) {
  .bike-card__button button {
    padding: 18px 16px;
  }
}

@media (max-width: 768px) {
  .bike-card {
    flex-direction: column;
    height: 472px;
  }
}
@media screen and (max-width: 768px) and (max-width: 768px) {
  .bike-card {
    height: auto;
  }
}
@media (max-width: 768px) {
  .bike-card__image {
    width: 100%;
    height: 0;
    padding-bottom: 90%; /* 3/4 aspect ratio on mobile */
    position: relative;
  }
  .bike-card__image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .bike-card__content {
    width: auto;
    padding: 40px 24px;
    gap: 20px;
  }
  .bike-card__title {
    font-size: var(--font-size-lg);
  }
  .bikes-swiper__navigation {
    justify-content: start;
    width: 100%;
  }
  .bikes-swiper__note {
    text-align: left;
  }
}
/* Image Collection Carousel */
.image-collection-carousel {
  padding: 0px 0px 0px 20px;
  background: none;
}
@media screen and (max-width: 768px) {
  .image-collection-carousel {
    padding: 16px;
  }
}
.image-collection-carousel .image-collection-swiper {
  width: 100%;
  position: relative;
}
.image-collection-carousel .image-collection-swiper .swiper-wrapper {
  display: flex;
  align-items: center;
}
.image-collection-carousel .image-collection-swiper .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  min-width: 0;
  width: auto;
}
.image-collection-carousel .image-collection-swiper .image-collection-carousel__image-wrapper {
  width: 100%;
  max-width: 590px;
  flex: 0 0 590px;
  aspect-ratio: 1/1;
  height: auto;
  max-height: 590px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  border-radius: 16px;
  overflow: hidden;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .image-collection-carousel .image-collection-swiper .image-collection-carousel__image-wrapper {
    max-width: 100%;
    flex: 0 0 100%;
  }
}
.image-collection-carousel .image-collection-swiper .image-collection-carousel__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  max-width: 590px;
  max-height: 590px;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 768px) {
  .image-collection-carousel .image-collection-swiper .image-collection-carousel__image {
    max-width: 100%;
    max-height: 100vw;
  }
}
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation {
  position: absolute;
  top: 50%;
  left: 20px;
  right: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transform: translateY(-50%);
  pointer-events: auto;
  z-index: 10;
}
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-prev,
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-next {
  position: static;
  width: 52px;
  max-height: 28px;
  margin: 0;
  background-color: var(--terra-cotta);
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-prev::after,
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-next::after {
  font-size: 16px;
}
@media screen and (max-width: 768px) {
  .image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-prev,
  .image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-next {
    display: none;
  }
}
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-prev::after {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE2LjY2NjcgMTBIMy4zMzMzNE0zLjMzMzM0IDEwTDguMzMzMzQgNU0zLjMzMzM0IDEwTDguMzMzMzQgMTUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-next::after {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTMuMzMzMzQgMTBIMTYuNjY2N00xNi42NjY3IDEwTDExLjY2NjcgNU0xNi42NjY3IDEwTDExLjY2NjcgMTUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.image-collection-carousel .image-collection-swiper .image-collection-swiper__navigation .swiper-button-disabled {
  background-color: var(--cream);
  opacity: 1 !important;
}

/* Tour Price Section */
.tour-price {
  width: 100%;
  position: relative;
  overflow: hidden;
  z-index: 1;
  margin-top: 120px;
}
@media screen and (max-width: 768px) {
  .tour-price {
    margin-top: 70px;
  }
}
.tour-price__image-wrapper {
  position: relative;
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .tour-price__image-wrapper {
    height: auto;
    aspect-ratio: 1/1;
    min-height: 320px;
    max-height: 100vw;
  }
}
.tour-price__image {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .tour-price__image {
    height: 100vw;
    aspect-ratio: 392/524;
    min-height: 524px;
  }
}
.tour-price__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40.71%, #000 100%);
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .tour-price__overlay {
    height: 100%;
    aspect-ratio: 392/524;
    min-height: 524px;
  }
}
.tour-price__content {
  position: absolute;
  left: calc(50% - 512px);
  bottom: 0;
  z-index: 3;
  padding-bottom: 120px;
  color: var(--white);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .tour-price__content {
    padding: 0 0 32px 40px;
    left: 0;
  }
}
.tour-price__label {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  color: var(--light-cream);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 18px;
  opacity: 0.85;
}
.tour-price__title {
  font-family: var(--font-heading);
  font-size: 56px;
  font-weight: var(--font-weight-light);
  color: var(--white);
  line-height: 110%;
  letter-spacing: -1.2px;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .tour-price__title {
    font-size: 32px;
  }
}

/* Price Details Section */
.price-details {
  padding: 7.5rem 1.25rem 1.875rem 1.25rem;
}
@media screen and (max-width: 48rem) {
  .price-details {
    padding: 2.5rem 2.5rem 1.875rem 2.5rem;
  }
}
.price-details__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 3rem;
}
@media screen and (max-width: 56.25rem) {
  .price-details__header {
    flex-direction: column;
    gap: 1.25rem;
  }
}
.price-details__header-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  color: var(--deep-teal);
  font-weight: var(--font-weight-light);
  flex: 1 1 19.5rem;
}
@media screen and (max-width: 56.25rem) {
  .price-details__header-title {
    min-width: 0;
    flex: auto;
  }
}
.price-details__header-desc {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-normal);
  line-height: 1.5;
  flex: 1 1 50%;
}
@media screen and (max-width: 56.25rem) {
  .price-details__header-desc {
    max-width: 100%;
    flex: auto;
  }
}
/* Two-column grid: label column 312px (19.5rem), value column fluid */
.price-details__table {
  display: grid;
  grid-template-columns: 19.5rem 1fr;
  grid-auto-rows: minmax(3rem, auto);
  /* stretch so label/value cells share row height; center misaligned borders when heights differ */
  align-items: stretch;
  width: 100%;
  margin-bottom: 1.5rem;
  background: none;
  font-size: var(--font-size-sm);
}
@media screen and (max-width: 37.5rem) {
  .price-details__table {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-auto-rows: minmax(2.375rem, auto);
  }
}
.price-details__row {
  display: contents;
}
.price-details__row--total {
  font-weight: var(--font-weight-bold);
  background: none;
}
.price-details__row--total .price-details__label,
.price-details__row--total .price-details__value {
  font-weight: var(--font-weight-bold);
}

/* Pricing tiers block: same row/column treatment as .price-details__table */
.price-details__row--tier-header {
  font-weight: var(--font-weight-bold);
}
.price-details__row--tier-header .price-details__label {
  font-weight: var(--font-weight-bold);
}
@media screen and (max-width: 37.5rem) {
  .price-details__row--tier-header .price-details__label:last-child {
    text-align: right;
  }
}
.price-details__row--tier-agreed .price-details__label,
.price-details__row--tier-agreed .price-details__value {
  font-weight: var(--font-weight-bold);
  color: var(--deep-teal);
}

.price-details__label,
.price-details__value {
  flex: none;
  min-width: 0;
  border-bottom: 0.0625rem solid var(--cream);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.price-details__label {
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  color: var(--charcoal-black);
  text-transform: uppercase;
  letter-spacing: 0.0625rem;
  padding: 1.125rem 0; /* 18px 0 */
}
.price-details__value {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  padding: 1.125rem 0; /* 18px 0 */
  text-align: left;
}
.price-details__value--stacked {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.375rem;
  padding: 0.75rem 0 1.125rem;
}
@media screen and (max-width: 37.5rem) {
  .price-details__value {
    text-align: right;
  }
  .price-details__value--stacked {
    align-items: flex-end;
  }
}
.price-details__value-primary {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--charcoal-black);
}
.price-details__pax-hint {
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-medium);
  color: var(--charcoal-black);
  line-height: 1.3;
  max-width: 20rem;
}
/* Private proposals: "Based on … Travelers" sits under the label, not the price; avoid label uppercase */
.price-details__pax-hint--in-label {
  display: block;
  margin-top: 0.375rem;
  text-transform: none;
  letter-spacing: normal;
}
@media screen and (max-width: 37.5rem) {
  .price-details__pax-hint {
    text-align: right;
  }
  .price-details__pax-hint--in-label {
    text-align: left;
  }
}
.price-details__note {
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
  margin-top: 0.75rem;
  margin-bottom: 2rem;
}
.price-details__info-bar {
  background: var(--hazy-teal);
  color: var(--deep-teal);
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  border-radius: 0.75rem;
  padding: 1.125rem 2rem;
  margin-top: 2rem;
  display: inline-block;
  width: -webkit-fill-available;
}
@media screen and (max-width: 37.5rem) {
  .price-details__info-bar {
    padding: 0.875rem 1rem;
    margin-top: 0.75rem;
    font-size: var(--font-size-xs);
  }
}

/* pricing tiers (Document_Pricing_Control__c = Price Tiers) */
.pricing-tiers {
  margin-top: 0.5rem;
  margin-bottom: 3rem;
  padding: 0 1.25rem 1.875rem 1.25rem;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (min-width: 75rem) {
  .pricing-tiers {
    padding-left: 0;
    padding-right: 0;
  }
}

/* Update the Pricing Tiers section to match Pricing Details */
section#pricing-tiers {
  max-width: 63.5rem;
  padding-top: 7.5rem;
  margin-left: auto;
  margin-right: auto;
}
.pricing-tiers__title {
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  color: var(--deep-teal);
  font-weight: var(--font-weight-light);
  margin: 0 0 1.5rem;
}
.pricing-tiers__foot-note,
.pricing-tiers__disclaimer {
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
  line-height: 1.5;
  margin: 0 0 0.625rem;
  max-width: 50rem;
}
.pricing-tiers__disclaimer {
  margin-top: 0.25rem;
}

/* Travel Protection Card Section */
.travel-protection,
.pre-night,
.pre-tour-hotels {
  padding: 30px 20px 30px 20px;
}
@media screen and (max-width: 768px) {
  .travel-protection,
  .pre-night,
  .pre-tour-hotels {
    padding: 30px 40px;
  }
}
.travel-protection__card,
.pre-night__card,
.pre-tour-hotels__card {
  padding: 40px;
  background: var(--cream);
  border-radius: 16px;
  display: flex;
  justify-content: space-between;
  align-items: start;
}
@media screen and (max-width: 768px) {
  .travel-protection__card,
  .pre-night__card,
  .pre-tour-hotels__card {
    flex-direction: column;
    gap: 40px;
  }
}
.travel-protection__card-title,
.pre-night__card-title,
.pre-tour-hotels__card-title {
  display: flex;
  gap: 16px;
  flex: 1 1 280px;
}
@media screen and (max-width: 768px) {
  .travel-protection__card-title,
  .pre-night__card-title,
  .pre-tour-hotels__card-title {
    flex: auto;
  }
}
.travel-protection__card-title h2,
.pre-night__card-title h2,
.pre-tour-hotels__card-title h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-normal);
  line-height: 110%;
  letter-spacing: -0.4px;
  color: var(--charcoal-black);
  margin: 0;
  max-width: 200px;
}
@media screen and (max-width: 768px) {
  .travel-protection__card-title h2,
  .pre-night__card-title h2,
  .pre-tour-hotels__card-title h2 {
    max-width: 100%;
  }
}
.travel-protection__card-icon,
.pre-night__card-icon,
.pre-tour-hotels__card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--light-cream);
  border: none;
  border-radius: 8px;
}
@media screen and (max-width: 768px) {
  .travel-protection__card-icon,
  .pre-night__card-icon,
  .pre-tour-hotels__card-icon {
    margin-left: 0;
  }
}
.travel-protection__card-icon::before,
.pre-night__card-icon::before,
.pre-tour-hotels__card-icon::before {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KPHBhdGggZD0iTTE2LjI0OTggNi4yNTA5OEgxMy43NDk4VjQuMzc1OThDMTMuNzQ5OCAzLjM4MTQxIDEzLjM1NDggMi40Mjc1OSAxMi42NTE1IDEuNzI0MzNDMTEuOTQ4MiAxLjAyMTA2IDEwLjk5NDQgMC42MjU5NzcgOS45OTk4NSAwLjYyNTk3N0M5LjAwNTI5IDAuNjI1OTc3IDguMDUxNDYgMS4wMjEwNiA3LjM0ODIgMS43MjQzM0M2LjY0NDk0IDIuNDI3NTkgNi4yNDk4NSAzLjM4MTQxIDYuMjQ5ODUgNC4zNzU5OFY2LjI1MDk4SDMuNzQ5ODVDMy40MTgzMyA2LjI1MDk4IDMuMTAwMzggNi4zODI2NyAyLjg2NTk2IDYuNjE3MDlDMi42MzE1NCA2Ljg1MTUxIDIuNDk5ODUgNy4xNjk0NiAyLjQ5OTg1IDcuNTAwOThWMTYuMjUxQzIuNDk5ODUgMTYuNTgyNSAyLjYzMTU0IDE2LjkwMDQgMi44NjU5NiAxNy4xMzQ5QzMuMTAwMzggMTcuMzY5MyAzLjQxODMzIDE3LjUwMSAzLjc0OTg1IDE3LjUwMUgxNi4yNDk4QzE2LjU4MTQgMTcuNTAxIDE2Ljg5OTMgMTcuMzY5MyAxNy4xMzM3IDE3LjEzNDlDMTcuMzY4MiAxNi45MDA0IDE3LjQ5OTggMTYuNTgyNSAxNy40OTk4IDE2LjI1MVY3LjUwMDk4QzE3LjQ5OTggNy4xNjk0NiAxNy4zNjgyIDYuODUxNTEgMTcuMTMzNyA2LjYxNzA5QzE2Ljg5OTMgNi4zODI2NyAxNi41ODE0IDYuMjUwOTggMTYuMjQ5OCA2LjI1MDk4Wk03LjQ5OTg1IDQuMzc1OThDNy40OTk4NSAzLjcxMjk0IDcuNzYzMjQgMy4wNzcwNSA4LjIzMjA4IDIuNjA4MjFDOC43MDA5MiAyLjEzOTM3IDkuMzM2ODEgMS44NzU5OCA5Ljk5OTg1IDEuODc1OThDMTAuNjYyOSAxLjg3NTk4IDExLjI5ODggMi4xMzkzNyAxMS43Njc2IDIuNjA4MjFDMTIuMjM2NSAzLjA3NzA1IDEyLjQ5OTggMy43MTI5NCAxMi40OTk4IDQuMzc1OThWNi4yNTA5OEg3LjQ5OTg1VjQuMzc1OThaTTE2LjI0OTggMTYuMjUxSDMuNzQ5ODVWNy41MDA5OEgxNi4yNDk4VjE2LjI1MVoiIGZpbGw9IiMxRDFFMUUiLz4KPC9zdmc+");
  width: 40px;
  height: 40px;
  font-size: 26px;
  padding-left: 8px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.travel-protection__card-content,
.pre-night__card-content,
.pre-tour-hotels__card-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 50%;
}
@media screen and (max-width: 768px) {
  .travel-protection__card-content,
  .pre-night__card-content,
  .pre-tour-hotels__card-content {
    flex: auto;
    gap: 40px;
  }
}
.travel-protection__card-content-desc,
.pre-night__card-content-desc,
.pre-tour-hotels__card-content-desc {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-normal);
  line-height: 1.5;
}
.travel-protection__card-content-actions,
.pre-night__card-content-actions,
.pre-tour-hotels__card-content-actions {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: flex-start;
}
.travel-protection__card-content-actions-button,
.pre-night__card-content-actions-button,
.pre-tour-hotels__card-content-actions-button {
  background: var(--terra-cotta);
  color: var(--white);
  font-size: var(--font-size-3xs);
}
.travel-protection__card-content-actions-button:hover,
.pre-night__card-content-actions-button:hover,
.pre-tour-hotels__card-content-actions-button:hover {
  background: var(--terra-cotta);
  border-radius: 30px;
}
@media screen and (max-width: 768px) {
  .travel-protection__card-content-actions-button,
  .pre-night__card-content-actions-button,
  .pre-tour-hotels__card-content-actions-button {
    padding: 18px 16px;
  }
}
.travel-protection__card-content-actions-learn-more,
.pre-night__card-content-actions-learn-more,
.pre-tour-hotels__card-content-actions-learn-more {
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-medium);
  color: var(--terra-cotta);
  text-transform: uppercase;
  text-decoration: none;
}
.travel-protection__card-content-actions-learn-more:hover,
.pre-night__card-content-actions-learn-more:hover,
.pre-tour-hotels__card-content-actions-learn-more:hover {
  text-decoration: underline;
  text-decoration-color: var(--terra-cotta);
}
@media screen and (max-width: 768px) {
  .travel-protection__card-content-actions-learn-more,
  .pre-night__card-content-actions-learn-more,
  .pre-tour-hotels__card-content-actions-learn-more {
    display: none;
  }
}

/* Terms and Conditions Section */
.terms-and-conditions {
  padding: 30px 20px 30px 20px;
}
@media screen and (max-width: 768px) {
  .terms-and-conditions {
    padding: 30px 40px;
  }
}
.terms-and-conditions__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 48px;
}
@media screen and (max-width: 900px) {
  .terms-and-conditions__header {
    flex-direction: column;
    gap: 20px;
  }
}
.terms-and-conditions__header-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  color: var(--deep-teal);
  font-weight: var(--font-weight-light);
  flex: 1 1 312px;
}
@media screen and (max-width: 900px) {
  .terms-and-conditions__header-title {
    min-width: 0;
    flex: auto;
  }
}
.terms-and-conditions__header-desc {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-normal);
  line-height: 1.5;
  flex: 1 1 50%;
}
@media screen and (max-width: 900px) {
  .terms-and-conditions__header-desc {
    max-width: 100%;
    flex: auto;
  }
}
.terms-and-conditions__body {
  padding-bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 768px) {
  .terms-and-conditions__body {
    padding: 0;
    gap: 20px;
  }
}
.terms-and-conditions__link {
  color: var(--terra-cotta);
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  text-decoration: none;
  align-self: flex-start;
  display: block;
  margin-top: 24px;
}
.terms-and-conditions__link:hover {
  text-decoration: underline;
  text-decoration-color: var(--terra-cotta);
}
.terms-and-conditions__divider {
  border: none;
  border-top: 1px solid var(--cream);
  width: 100%;
}
.terms-and-conditions__section {
  display: block;
  flex-direction: row;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .terms-and-conditions__section {
    flex-direction: column;
  }
}
.terms-and-conditions__section-title {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-normal);
  margin-bottom: 8px;
  letter-spacing: -0.5px;
  flex: 1 1 312px;
}
@media screen and (max-width: 768px) {
  .terms-and-conditions__section-title {
    flex: auto;
  }
}
.terms-and-conditions__table-section-title {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-normal);
  letter-spacing: -0.5px;
  border-bottom: 1px solid var(--cream);
  padding-bottom: 12px;
}
.terms-and-conditions__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1 50%;
}
@media screen and (max-width: 768px) {
  .terms-and-conditions__list {
    flex: auto;
  }
}
.terms-and-conditions__list li {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  line-height: 150%;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.terms-and-conditions__list-label {
  font-weight: var(--font-weight-bold);
  color: var(--charcoal-black);
  margin-right: 6px;
}
.terms-and-conditions__table-wrapper {
  overflow-x: auto;
}
.terms-and-conditions__table {
  width: 100%;
  border-collapse: collapse;
  background: none;
}
.terms-and-conditions__table th,
.terms-and-conditions__table td {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  color: var(--charcoal-black);
  padding: 12px 16px;
  padding-left: 0;
  text-align: left;
  border-bottom: 1px solid var(--cream);
}
.terms-and-conditions__table th {
  font-weight: var(--font-weight-normal);
  text-transform: uppercase;
  font-size: var(--font-size-2xs);
  color: var(--charcoal-black);
  background: none;
  border-bottom: 1px solid var(--cream);
}
.terms-and-conditions__note {
  font-family: var(--font-body);
  font-size: var(--font-size-xs);
  color: var(--charcoal-black);
  margin-top: 12px;
  margin-bottom: 0;
}

/* Bikes Guides Section */
.bikes-guides {
  padding-bottom: 0px;
}
.bikes-guides__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
  max-width: 1016px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__header {
    flex-direction: column-reverse;
    align-items: start;
    padding: 0;
    margin-bottom: 32px;
    gap: 12px;
  }
}
.bikes-guides__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.bikes-guides__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
}
.bikes-guides__guides-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  max-width: 1016px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .bikes-guides__guides-list {
    gap: 32px;
  }
}
.bikes-guides__guide {
  display: flex;
  flex-direction: row;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__guide {
    flex-direction: column;
    gap: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--cream);
  }
}
.bikes-guides__guide-image {
  width: 312px;
  height: 312px;
  object-fit: cover;
  flex-shrink: 0;
}
.bikes-guides__guide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 768px) {
  .bikes-guides__guide-image {
    width: 100%;
    height: 100%;
  }
}
.bikes-guides__guide-info {
  display: flex;
  flex-direction: column;
  flex: 1 1 100%;
}
.bikes-guides__guide-name {
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-light);
  color: var(--charcoal-black);
  line-height: 110%;
  letter-spacing: -0.4px;
  margin-bottom: 30px;
}
.bikes-guides__guide-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--cream);
  border-top: 1px solid var(--cream);
  padding-top: 16px;
  padding-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__guide-item {
    grid-template-columns: 1fr;
  }
}
.bikes-guides__guide-item-label {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  line-height: 110%;
  color: var(--charcoal-black);
  text-transform: uppercase;
}
.bikes-guides__guide-item-value {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 110%;
}
.bikes-guides__guide-item-phone {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  text-decoration: none;
}
.bikes-guides__guide-item-phone:hover {
  text-decoration: underline;
}
.bikes-guides__guide-footer {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  margin-top: 24px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__guide-footer {
    flex-direction: column;
    align-items: start;
    gap: 16px;
    margin-top: 24px;
  }
}
.bikes-guides__guide-footer-left {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bikes-guides__guide-footer-left-email {
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-medium);
  line-height: 100%;
  color: var(--terra-cotta);
  text-transform: uppercase;
  text-decoration: none;
}
.bikes-guides__guide-footer-left-phone {
  font-family: var(--font-body);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-normal);
  line-height: 140%;
  letter-spacing: -0.144px;
  color: var(--charcoal-black);
  text-decoration: none;
}
.bikes-guides__guide-footer-right {
  display: flex;
  align-items: center;
  gap: 24px;
}
.bikes-guides__guide-footer-read-bio {
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-medium);
  line-height: 100%;
  color: var(--terra-cotta);
  text-transform: uppercase;
  text-decoration: none;
}
.bikes-guides__guide-footer-read-bio:hover {
  text-decoration: underline;
}
.bikes-guides__guide-footer-right-button {
  display: inline-flex;
  flex-direction: row;
  flex: none;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: 127px;
  min-width: 127px;
  max-width: 127px;
  height: 44px;
  padding: 0 16px;
  gap: 10px;
  border: none;
  border-radius: 12px;
  background: var(--terra-cotta);
  font-family: var(--font-body);
  font-style: normal;
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-3xs);
  line-height: 1;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  color: var(--white);
  cursor: pointer;
  transition: border-radius 0.2s ease, opacity 0.2s ease;
}
.bikes-guides__guide-footer-right-button:hover {
  background: var(--terra-cotta);
  opacity: 0.9;
  border-radius: 30px;
}
.bikes-guides__note {
  background: var(--hazy-teal);
  padding: 40px;
  border-radius: 16px;
  display: flex;
  flex-direction: row;
  gap: 40px;
  min-height: 150px;
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__note {
    flex-direction: column;
    min-height: 0;
    margin-top: 40px;
    gap: 24px;
  }
}
.bikes-guides__note-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-normal);
  line-height: 110%;
  color: var(--deep-teal);
  flex: 1 1 500px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__note-title {
    flex: auto;
  }
}
.bikes-guides__note-desc {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
}
.bikes-guides__note-desc-text {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  line-height: 155%;
  color: var(--deep-teal);
}
@media screen and (max-width: 768px) {
  .bikes-guides__note-desc {
    gap: 24px;
  }
}
.bikes-guides__note-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 30px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__note-actions {
    flex-direction: column;
    gap: 16px;
    align-items: start;
  }
}
.bikes-guides__note-actions-button {
  color: var(--white);
  background: var(--deep-teal);
  font-weight: var(--font-weight-normal);
  transition: border-radius 0.2s ease, background-color 0.2s ease;
}
.bikes-guides__note-actions-button:hover {
  background: var(--deep-teal);
  border-radius: 30px;
}
@media screen and (max-width: 768px) {
  .bikes-guides__note-actions-button {
    padding: 18px 16px;
  }
}
.bikes-guides__note-actions-phone {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  line-height: 155%;
  color: var(--deep-teal);
  text-decoration: none;
}

/* Bike Safety Section */
.bike-safety {
  width: 100%;
  margin: 0 auto;
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  .bike-safety {
    padding: 70px 0 0;
  }
}
.bike-safety__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
  max-width: 1016px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bike-safety__header {
    flex-direction: column-reverse;
    align-items: start;
    padding: 0 40px;
    margin-bottom: 40px;
    gap: 12px;
  }
}
.bike-safety__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.bike-safety__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
}
.bike-safety__video {
  position: relative;
  max-width: 1016px;
  margin: 0 auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bike-safety__video {
    padding-left: 40px;
    padding-right: 40px;
  }
}
.bike-safety__video video {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--font-size-sm);
}
.bike-safety__video-container {
  position: relative;
  overflow: hidden;
  border-radius: var(--font-size-sm);
}
.bike-safety__video-container--vimeo {
  padding-top: 56.25%;
}
.bike-safety__video-poster {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--font-size-sm);
}
.bike-safety__video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%);
  z-index: 10;
  pointer-events: none;
}
.bike-safety__video-play-toggle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(6px);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  z-index: 100;
}
@media screen and (max-width: 768px) {
  .bike-safety__video-play-toggle {
    width: 60px;
    height: 60px;
  }
}
.bike-safety__video-play-toggle:hover {
  background-color: var(--citrus-yellow);
}
.bike-safety__video-play-icon {
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 3px;
  margin-top: 1px;
  /* Play icon by default */
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUgM0wxOSAxMkw1IDIxVjNaIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=");
}
.bike-safety__video-play-icon.paused {
  margin: 0;
  /* Pause icon when video is playing */
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYgNEg5VjIwSDZWNFoiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE1IDRIMThWMjBIMTVWNFoiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==");
}
.bike-safety__video-element {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--font-size-sm);
}
.bike-safety__video-element--iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;
  border: none;
  border-radius: var(--font-size-sm);
}
.bike-safety__video-container--vimeo.is-playing .bike-safety__video-poster,
.bike-safety__video-container--vimeo.is-playing .bike-safety__video-overlay,
.bike-safety__video-container--vimeo.is-playing .bike-safety__video-play-toggle {
  display: none;
}
.bike-safety__video-container--vimeo.is-playing .bike-safety__video-element--iframe {
  display: block;
}
.bike-safety__items {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  max-width: 63.5rem;
  margin: 60px auto 0;
  padding: 30px 40px;
  background: var(--light-cream);
}
@media screen and (max-width: 768px) {
  .bike-safety__items {
    padding: 30px 40px;
    margin: 24px auto 0;
  }
}
.bike-safety__item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 40px;
  width: 100%;
  max-width: none;
  padding: 30px 0;
  border-top: 1px solid var(--cream);
  border-bottom: none;
}
@media screen and (max-width: 768px) {
  .bike-safety__item {
    flex-direction: column;
    gap: 20px;
    padding: 20px 0;
  }
}
.bike-safety__item-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  line-height: 110%;
  letter-spacing: -0.4px;
  color: var(--deep-teal);
  flex: 0 0 31%;
  max-width: 31%;
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .bike-safety__item-title {
    flex: 0 0 100%;
    max-width: 100%;
    font-size: 20px;
  }
}
.bike-safety__item-desc {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 30px;
  flex: 1 1 69%;
  max-width: 69%;
}
@media screen and (max-width: 768px) {
  .bike-safety__item-desc {
    flex: 0 0 100%;
    max-width: 100%;
    gap: 20px;
  }
}
.bike-safety__item-desc-text {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  line-height: 140%;
}
.bike-safety__item-desc-link-button {
  display: inline-flex;
  flex: none;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  min-width: 212px;
  height: 44px;
  padding: 0 16px;
  border: none;
  border-radius: 12px;
  background: var(--terra-cotta);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-3xs);
  line-height: 1;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  color: var(--white);
  cursor: pointer;
  transition: border-radius 0.2s ease, opacity 0.2s ease;
}
.bike-safety__item-desc-link-button:hover {
  background: var(--terra-cotta);
  border-radius: 30px;
  opacity: 0.9;
}
.bike-safety__item-desc-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bike-safety__item-desc-list-item {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 160%;
  position: relative;
  padding-left: 16px;
}
.bike-safety__item-desc-list-item:before {
  content: "";
  background: var(--cream);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  top: 9px;
  position: absolute;
  left: 0;
  top: 2px;
  font-size: 20px;
  line-height: 1;
}
.bike-safety__temperature-grid {
  max-width: 1016px;
  margin: 60px auto;
  padding: 0 20px;
  overflow-x: auto;
}
@media screen and (max-width: 768px) {
  .bike-safety__temperature-grid {
    display: none;
  }
}
.bike-safety__temperature-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.bike-safety__temperature-title {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  color: var(--deep-teal);
}
@media screen and (max-width: 768px) {
  .bike-safety__temperature-title {
    font-size: var(--font-size-lg);
  }
}
.bike-safety__temperature-toggle {
  font-family: var(--font-body);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-medium);
  color: var(--terra-cotta);
  background: none;
  border: none;
  cursor: pointer;
  text-transform: uppercase;
  padding: 0;
}
.bike-safety__temperature-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body);
}
.bike-safety__temperature-table thead {
  border-top: 1px solid var(--cream);
}
.bike-safety__temperature-table tbody {
  border-bottom: 1px solid var(--cream);
}
.bike-safety__temperature-column {
  padding: 18px 10px;
  text-align: center;
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  color: var(--charcoal-black);
  text-transform: uppercase;
  border-bottom: 1px solid var(--cream);
}
.bike-safety__temperature-column--label {
  text-align: left;
  padding-left: 0;
}
.bike-safety__temperature-row--high, .bike-safety__temperature-row--low {
  border-bottom: 1px solid var(--cream);
}
.bike-safety__temperature-cell {
  padding: 18px 10px;
  text-align: center;
  font-size: var(--font-size-3xs);
  color: var(--charcoal-black);
}
.bike-safety__temperature-cell--label {
  text-align: left;
  padding-left: 0;
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  color: var(--charcoal-black);
}
.bike-safety__note {
  max-width: 1016px;
  margin: 0 auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .bike-safety__note {
    display: none;
  }
}
.bike-safety__note-text {
  display: block;
  padding: 30px;
  background: var(--hazy-teal);
  border-radius: 16px;
  color: var(--deep-teal);
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  line-height: 140%;
  letter-spacing: 0.12px;
}

/* PreFooter Section */
.pre-footer {
  background: var(--hazy-teal);
  padding: 0;
  width: 100%;
}
.pre-footer .pre-footer__container {
  padding: 140px 20px;
  background: var(--hazy-teal);
}
@media screen and (max-width: 768px) {
  .pre-footer .pre-footer__container {
    padding: 60px 40px;
  }
}
.pre-footer .pre-footer__content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}
@media screen and (max-width: 900px) {
  .pre-footer .pre-footer__content {
    flex-direction: column;
    gap: 40px;
  }
}
.pre-footer .pre-footer__left {
  flex: 1 1 40%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  min-width: 260px;
  max-width: 340px;
  position: sticky;
  top: 20px;
  align-self: flex-start;
}
@media screen and (max-width: 900px) {
  .pre-footer .pre-footer__left {
    position: static;
    max-width: 100%;
    min-width: 0;
    align-items: flex-start;
  }
}
.pre-footer .pre-footer__subtitle {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 32px;
  opacity: 0.85;
}
.pre-footer .pre-footer__title {
  font-family: var(--font-heading);
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-light);
  color: var(--charcoal-black);
  line-height: 110%;
  letter-spacing: -1.2px;
  margin: 0;
}
@media screen and (max-width: 900px) {
  .pre-footer .pre-footer__title {
    font-size: var(--font-size-xl);
  }
}
.pre-footer .pre-footer__right {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: end;
  flex: 1 1 60%;
}
@media screen and (max-width: 900px) {
  .pre-footer .pre-footer__right {
    width: 100%;
  }
}
.pre-footer .pre-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  max-width: 488px;
}
.pre-footer .pre-footer__item {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 28px 0 28px 0;
  border-bottom: 1px solid var(--teal);
}
.pre-footer .pre-footer__item:first-child {
  border-top: 1px solid var(--teal);
}
@media screen and (max-width: 600px) {
  .pre-footer .pre-footer__item {
    padding: 20px 0 20px 0;
  }
}
.pre-footer .pre-footer__icon {
  /* Inherit all from .get-to-your-tour__details-icon */
  background: var(--white);
  flex-shrink: 0;
  margin-left: 0;
  width: 28px;
  height: 28px;
  padding: 6px;
}
.pre-footer .pre-footer__icon.flag-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI4IDI4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTYuMzMzNCA4LjE2NjY3SDIyLjkxMzhDMjMuNDM1NyA4LjE2NjY3IDIzLjY5NjYgOC4xNjY2NyAyMy44NDkyIDguMjc2MzhDMjMuOTgyMyA4LjM3MjExIDI0LjA2OSA4LjUxOTQ1IDI0LjA4OCA4LjY4MjMzQzI0LjEwOTggOC44NjkgMjMuOTgzMSA5LjA5NzA5IDIzLjcyOTcgOS41NTMyN0wyMi4xNTkyIDEyLjM4MDFDMjIuMDY3MyAxMi41NDU1IDIyLjAyMTQgMTIuNjI4MiAyMi4wMDM0IDEyLjcxNThDMjEuOTg3NCAxMi43OTM0IDIxLjk4NzQgMTIuODczMyAyMi4wMDM0IDEyLjk1MDhDMjIuMDIxNCAxMy4wMzg0IDIyLjA2NzMgMTMuMTIxMiAyMi4xNTkyIDEzLjI4NjZMMjMuNzI5NyAxNi4xMTM0QzIzLjk4MzEgMTYuNTY5NiAyNC4xMDk4IDE2Ljc5NzcgMjQuMDg4IDE2Ljk4NDNDMjQuMDY5IDE3LjE0NzIgMjMuOTgyMyAxNy4yOTQ2IDIzLjg0OTIgMTcuMzkwM0MyMy42OTY2IDE3LjUgMjMuNDM1NyAxNy41IDIyLjkxMzggMTcuNUgxNC43QzE0LjA0NjYgMTcuNSAxMy43MTk5IDE3LjUgMTMuNDcwNCAxNy4zNzI4QzEzLjI1MDggMTcuMjYxIDEzLjA3MjQgMTcuMDgyNSAxMi45NjA1IDE2Ljg2M0MxMi44MzM0IDE2LjYxMzQgMTIuODMzNCAxNi4yODY3IDEyLjgzMzQgMTUuNjMzM1YxMi44MzMzTTQuNjY2NjkgMjQuNUw0LjY2NjY5IDQuNjY2NjdNNC42NjY2OSAxMi44MzMzSDE0LjQ2NjdDMTUuMTIwMSAxMi44MzMzIDE1LjQ0NjggMTIuODMzMyAxNS42OTYzIDEyLjcwNjJDMTUuOTE1OSAxMi41OTQzIDE2LjA5NDMgMTIuNDE1OCAxNi4yMDYyIDEyLjE5NjNDMTYuMzMzNCAxMS45NDY4IDE2LjMzMzQgMTEuNjIwMSAxNi4zMzM0IDEwLjk2NjdWNS4zNjY2N0MxNi4zMzM0IDQuNzEzMjcgMTYuMzMzNCA0LjM4NjU3IDE2LjIwNjIgNC4xMzcwMUMxNi4wOTQzIDMuOTE3NDkgMTUuOTE1OSAzLjczOTAxIDE1LjY5NjMgMy42MjcxNkMxNS40NDY4IDMuNSAxNS4xMjAxIDMuNSAxNC40NjY3IDMuNUg2LjUzMzM1QzUuODc5OTYgMy41IDUuNTUzMjYgMy41IDUuMzAzNyAzLjYyNzE2QzUuMDg0MTggMy43MzkwMSA0LjkwNTcgMy45MTc0OSA0Ljc5Mzg1IDQuMTM3MDFDNC42NjY2OSA0LjM4NjU3IDQuNjY2NjkgNC43MTMyNyA0LjY2NjY5IDUuMzY2NjdWMTIuODMzM1oiIHN0cm9rZT0iIzA1NDA1MiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4=");
}
.pre-footer .pre-footer__icon.users-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI4IDI4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTguNjY2NiA0LjA0NTcyQzIwLjM5NTMgNC45MDQ4IDIxLjU4MzMgNi42ODg2NiAyMS41ODMzIDguNzVDMjEuNTgzMyAxMC44MTEzIDIwLjM5NTMgMTIuNTk1MiAxOC42NjY2IDEzLjQ1NDNNMjEgMTkuNTYwOEMyMi43NjMzIDIwLjM1ODcgMjQuMzUxMyAyMS42NTkyIDI1LjY2NjYgMjMuMzMzM00yLjMzMzMxIDIzLjMzMzNDNC42MDQyMiAyMC40NDMgNy42ODczNiAxOC42NjY3IDExLjA4MzMgMTguNjY2N0MxNC40NzkzIDE4LjY2NjcgMTcuNTYyNCAyMC40NDMgMTkuODMzMyAyMy4zMzMzTTE2LjMzMzMgOC43NUMxNi4zMzMzIDExLjY0OTUgMTMuOTgyOCAxNCAxMS4wODMzIDE0QzguMTgzODIgMTQgNS44MzMzMSAxMS42NDk1IDUuODMzMzEgOC43NUM1LjgzMzMxIDUuODUwNTEgOC4xODM4MiAzLjUgMTEuMDgzMyAzLjVDMTMuOTgyOCAzLjUgMTYuMzMzMyA1Ljg1MDUxIDE2LjMzMzMgOC43NVoiIHN0cm9rZT0iIzA1NDA1MiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4=");
}
.pre-footer .pre-footer__icon.glass-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI0IDI4IiBmaWxsPSJub25lIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4LjI0NTYgNy40Mzc1QzE4LjI0OTggMTIuMjgzMSAxNS43MzY2IDE2LjI2NDMgMTIuNTYyNSAxNi42MDE4VjI3LjEyNUgxNS42MjVDMTUuNzQxIDI3LjEyNSAxNS44NTIzIDI3LjE3MTEgMTUuOTM0NCAyNy4yNTMxQzE2LjAxNjQgMjcuMzM1MiAxNi4wNjI1IDI3LjQ0NjUgMTYuMDYyNSAyNy41NjI1QzE2LjA2MjUgMjcuNjc4NSAxNi4wMTY0IDI3Ljc4OTggMTUuOTM0NCAyNy44NzE5QzE1Ljg1MjMgMjcuOTUzOSAxNS43NDEgMjggMTUuNjI1IDI4SDEyLjEyNUg4LjYyNUM4LjUwODk3IDI4IDguMzk3NjkgMjcuOTUzOSA4LjMxNTY0IDI3Ljg3MTlDOC4yMzM1OSAyNy43ODk4IDguMTg3NSAyNy42Nzg1IDguMTg3NSAyNy41NjI1QzguMTg3NSAyNy40NDY1IDguMjMzNTkgMjcuMzM1MiA4LjMxNTY0IDI3LjI1MzFDOC4zOTc2OSAyNy4xNzExIDguNTA4OTcgMjcuMTI1IDguNjI1IDI3LjEyNUgxMS42ODc1VjE2LjYwMTdDOC45NzM3NSAxNi4zMTE4IDYuNjcwOTggMTMuMzQ2NSA2LjEyNjg4IDkuMjk2ODhDNi4wNDI4MSA4LjY4MDY0IDYuMDAwNDIgOC4wNTk0NCA2IDcuNDM3NUM2IDUuNDkwNjIgNi40Mzc1IDEuODExMjUgNy4xOSAwLjI0NUw3LjMxMjUgMEgxNi45Mzc1TDE3LjA1NTYgMC4yNDVDMTcuNzA3NSAxLjU1NzUgMTguMTE0NCA0LjQxODc1IDE4LjIxOTQgNi41MDEyNUMxOC4yMTk0IDYuNjc2OCAxOC4yMjY1IDYuODQ2NDIgMTguMjMzMyA3LjAwODg1TDE4LjIzMzMgNy4wMDg4OVY3LjAwODlDMTguMjM5NiA3LjE1ODE1IDE4LjI0NTYgNy4zMDEzMyAxOC4yNDU2IDcuNDM3NVpNNy4wNzU1NSA5LjcwOTgyQzcuNzEwNCAxMy4yMzU5IDkuNzgwNDYgMTUuNzUgMTIuMTI1IDE1Ljc1QzE1LjAyMTIgMTUuNzUgMTcuMzc1IDEyLjAyMjUgMTcuMzc1IDcuNDM3NUMxNy4zNzUgNy4yNzg1MyAxNy4zNzUgNy4xMDkwNSAxNy4zNjk3IDYuOTM1MjFDMTcuMTc3NyA2LjkyMzI1IDE2Ljk4NTcgNi45MTY3OSAxNi43ODg5IDYuOTE2NzlDMTUuMjA0MyA2Ljg4MTM1IDEzLjY0OTMgNy4zNTAxNCAxMi4zNDgzIDguMjU1NTRDMTAuOTExIDkuMjQyMDQgOS4xOTk5MSA5Ljc1MTcgNy40NTcwNiA5LjcxMjQxQzcuMzI4MTQgOS43MTI0MSA3LjIwMTM1IDkuNzEyNDEgNy4wNzU1NSA5LjcwOTgyWk02Ljk0ODkzIDguODIzNkM3LjExOTUgOC44MzI4MSA3LjI5MzIgOC44Mzc0MSA3LjQ3NDU2IDguODM3NDFDOS4wNTkyMiA4Ljg3Mjg1IDEwLjYxNDIgOC40MDQwNiAxMS45MTUyIDcuNDk4NjZDMTMuMzQ4MyA2LjUxMzI1IDE1LjA1NDQgNi4wMDIxOCAxNi43OTMzIDYuMDM3NDFDMTYuOTcxNCA2LjAzNzQxIDE3LjE0NTIgNi4wMzc0MiAxNy4zMTc4IDYuMDQ0MDhDMTcuMTkxMiA0LjIxMTM3IDE2Ljg2NDggMi4wNDQzOSAxNi4zODE5IDAuODc1SDcuODY4MTNDNy4yNTEyNSAyLjQwMTg4IDYuODc1IDUuNjM5MzcgNi44NzUgNy40Mzc1QzYuODc0OTIgNy45MDA2MSA2Ljg5OTYxIDguMzYzMyA2Ljk0ODkzIDguODIzNloiIGZpbGw9IiMwNTQwNTIiLz4KPC9zdmc+");
}
.pre-footer .pre-footer__icon.bed-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIxNyIgdmlld0JveD0iMCAwIDI0IDE3IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMS40NjAyNiAxNy4wMDAxVjE0LjYzOTRNMjIuNTQyMiAxNy4wMDAxQzIyLjU0MjIgMTYuMzg4NyAyMi41NDIyIDE1LjU1MDkgMjIuNTQyMiAxNC42Mzk0TTEuNDYwMjYgMTQuNjM5NFY5LjEzMTI3QzEuNDI1MjkgOC41NTQyMiAxLjc0MzU0IDcuNDAwMTIgMy4yOTYzMyA3LjQwMDEyQzQuODQ5MTEgNy40MDAxMiAxNC45NTMxIDcuNDAwMTIgMjAuODExMSA3LjQwMDEyQzIxLjM4ODEgNy4zMzAxOCAyMi41NDIyIDcuNTc4NDggMjIuNTQyMiA5LjEzMTI3QzIyLjU0MjIgMTAuMjAzNiAyMi41NDIyIDEyLjYwNTEgMjIuNTQyMiAxNC42Mzk0TTEuNDYwMjYgMTQuNjM5NEgyMi41NDIyIiBzdHJva2U9IiMwNTQwNTIiLz4KICA8cGF0aCBkPSJNMy42NjY4MyA3LjM5OTk5VjIuMTU0MUMzLjYxNDM3IDEuNzY5NCAzLjg0NTE5IDEgNS4xODgxNCAxQzYuNTMxMDkgMSAxMy43MDgzIDEgMTkuMTI5MSAxQzE5LjUxMzggMS4wMTc0OSAyMC4yODMyIDEuMjcyNzkgMjAuMjgzMiAyLjE1NDFDMjAuMjgzMiAzLjAzNTQxIDIwLjI4MzIgNi4wMTg1NyAyMC4yODMyIDcuMzk5OTlNNi40OTk2MSA3LjM5OTk5VjQuNTY3MjFIMTAuMzIyNlY3LjM5OTk5TTEzLjQxNzYgNy4zOTk5OVY0LjU2NzIxSDE3LjI0MDZWNy4zOTk5OSIgc3Ryb2tlPSIjMDU0MDUyIi8+Cjwvc3ZnPg==");
}
.pre-footer .pre-footer__icon.check-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI4IDI4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMjUuNjY2NyAxMi45MzNWMTQuMDA2NEMyNS42NjUyIDE2LjUyMjIgMjQuODUwNiAxOC45NzAxIDIzLjM0NDIgMjAuOTg1MUMyMS44Mzc4IDIzLjAwMDIgMTkuNzIwNSAyNC40NzQyIDE3LjMwNzkgMjUuMTg3NkMxNC44OTUzIDI1LjkwMDkgMTIuMzE2OCAyNS44MTUyIDkuOTU2ODYgMjQuOTQzNEM3LjU5Njk0IDI0LjA3MTUgNS41ODIwOCAyMi40NjAxIDQuMjEyNzcgMjAuMzQ5NkMyLjg0MzQ2IDE4LjIzOTEgMi4xOTMwNyAxNS43NDI0IDIuMzU4NiAxMy4yMzIxQzIuNTI0MTQgMTAuNzIxNyAzLjQ5NjcyIDguMzMyMDcgNS4xMzEzMSA2LjQxOTZDNi43NjU4OSA0LjUwNzE0IDguOTc0OSAzLjE3NDMgMTEuNDI4OSAyLjYxOTg2QzEzLjg4MjggMi4wNjU0MSAxNi40NTAzIDIuMzE5MDggMTguNzQ4MyAzLjM0MzAyTTI1LjY2NjYgNC42NjYzNEwxNCAxNi4zNDQ3TDEwLjUgMTIuODQ0NyIgc3Ryb2tlPSIjMDU0MDUyIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPg==");
}
.pre-footer .pre-footer__icon.bike-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDM0IDIyIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNi44MDcwMiAyMS44NTRDOS43NzgzNyAyMS44NTQgMTIuMjcgMTkuNzg1OSAxMi45MzQ0IDE3LjAxNTRMMTMuODI2NCAxNy4xNDQ2QzEzLjk1NDUgMTguNDYxOSAxNS4wNTUxIDE5LjQ5ODcgMTYuNDA1NCAxOS40OTg3QzE3Ljg0MTQgMTkuNDk4NyAxOS4wMDk1IDE4LjMzMDMgMTkuMDA5NSAxNi44OTQzQzE5LjAwOTUgMTYuMDk2NCAxOC42NDEyIDE1LjM5MDIgMTguMDc0NCAxNC45MTIxTDIzLjAwMTQgNy44NDM0M0wyMy42MTE4IDEwLjM2MTRDMjEuOTY3MSAxMS41MDA5IDIwLjg4NiAxMy4zOTkxIDIwLjg4NiAxNS41NDdDMjAuODg2IDE5LjAyNDYgMjMuNzE1MyAyMS44NTQgMjcuMTkzIDIxLjg1NEMzMC42NzA2IDIxLjg1NCAzMy41IDE5LjAyNDYgMzMuNSAxNS41NDdDMzMuNSAxMi4wNjkzIDMwLjY3MDYgOS4yMzk5NSAyNy4xOTMgOS4yMzk5NUMyNi4yODkgOS4yMzk5NSAyNS40MzA4IDkuNDM0NjMgMjQuNjUyNyA5Ljc3ODY2TDIyLjc1MzEgMS45NDI0SDI2LjMxNTJDMjYuMzY0OSAxLjk1NjE0IDI2LjQxNjUgMS45NjM0NCAyNi40NjkyIDEuOTYzNDRDMjcuMzYyNCAxLjk2MzQ0IDI4LjA4OTMgMi42OTAyOCAyOC4wODkzIDMuNTgzNDZDMjguMDg5MyA0LjQ3NjY1IDI3LjM2MjQgNS4yMDMyMSAyNi40NjkyIDUuMjAzMjFDMjYuMTUyIDUuMjAzMjEgMjUuODk0NyA1LjQ2MDQ1IDI1Ljg5NDcgNS43Nzc3MkMyNS44OTQ3IDYuMDk1IDI2LjE1MiA2LjM1MjI0IDI2LjQ2OTIgNi4zNTIyNEMyNy45OTYxIDYuMzUyMjQgMjkuMjM4MyA1LjExMDA4IDI5LjIzODMgMy41ODM0NkMyOS4yMzgzIDIuMTA3OTEgMjguMDc4IDAuODk4Mjg5IDI2LjYyMjEgMC44MTg2MkMyNi41NjgzIDAuODAyMDY5IDI2LjUxMTYgMC43OTMzNzMgMjYuNDUzOCAwLjc5MzM3M0gyMi4wMjI2QzIxLjg0NjUgMC43OTMzNzMgMjEuNjgwMSAwLjg3NDE2NCAyMS41NzEgMS4wMTI3NEMyMS40NjIyIDEuMTUxMzIgMjEuNDIyOSAxLjMzMTk4IDIxLjQ2NDQgMS41MDMzOEwyMi4zNjEzIDUuMjAzMjFIMTIuOTc3NEwxMS42MTc2IDEuMjk1NTFIMTMuMjIzMkMxMy41NDA0IDEuMjk1NTEgMTMuNzk3NyAxLjAzODI3IDEzLjc5NzcgMC43MjA5OTdDMTMuNzk3NyAwLjQwMzcyNSAxMy41NDA0IDAuMTQ2NDg0IDEzLjIyMzIgMC4xNDY0ODRIOC41NTcyMUM4LjIzOTk0IDAuMTQ2NDg0IDcuOTgyNyAwLjQwMzcyNSA3Ljk4MjcgMC43MjA5OTdDNy45ODI3IDEuMDM4MjcgOC4yMzk5NCAxLjI5NTUxIDguNTU3MjEgMS4yOTU1MUgxMC40MDExTDExLjkzOTEgNS43MTUzMUw5LjQ5OTIxIDkuODUxOTVDOC42ODEzOCA5LjQ2MzcgNy43NzA5IDkuMjM5OTUgNi44MDcwMiA5LjIzOTk1QzMuMzI5MzcgOS4yMzk5NSAwLjUgMTIuMDY5MyAwLjUgMTUuNTQ3QzAuNSAxOS4wMjQ2IDMuMzI5MzcgMjEuODU0IDYuODA3MDIgMjEuODU0Wk0zMi4zNTEgMTUuNTQ3QzMyLjM1MSAxOC4zOTEyIDMwLjAzNzIgMjAuNzA1IDI3LjE5MyAyMC43MDVDMjQuMzQ4NyAyMC43MDUgMjIuMDM1IDE4LjM5MTIgMjIuMDM1IDE1LjU0N0MyMi4wMzUgMTMuODY0NyAyMi44NDgxIDEyLjM3MjYgMjQuMDk4IDExLjQzMDVMMjYuODg2OSAxNS44NTMzQzI2Ljk5NjEgMTYuMDI2NyAyNy4xODI2IDE2LjEyMTUgMjcuMzczNCAxNi4xMjE1QzI3LjQ3OCAxNi4xMjE1IDI3LjU4NCAxNi4wOTI5IDI3LjY3OTEgMTYuMDMyOEMyNy45NDc2IDE1Ljg2MzcgMjguMDI4MSAxNS41MDg4IDI3Ljg1ODcgMTUuMjQwNkwyNS4wODYxIDEwLjg0MzdDMjUuNzMwMiAxMC41NTQgMjYuNDQyMSAxMC4zODkgMjcuMTkzIDEwLjM4OUMzMC4wMzcyIDEwLjM4OSAzMi4zNTEgMTIuNzAyNyAzMi4zNTEgMTUuNTQ3Wk0xNi40MDU0IDE4LjM0OTdDMTUuNjAyOSAxOC4zNDk3IDE0Ljk1MDEgMTcuNjk2OSAxNC45NTAxIDE2Ljg5NDNDMTQuOTUwMSAxNi4wOTIgMTUuNjAyOSAxNS40MzkyIDE2LjQwNTQgMTUuNDM5MkMxNy4yMDc3IDE1LjQzOTIgMTcuODYwNSAxNi4wOTIgMTcuODYwNSAxNi44OTQzQzE3Ljg2MDUgMTcuNjk2OSAxNy4yMDc3IDE4LjM0OTcgMTYuNDA1NCAxOC4zNDk3Wk0yMi42Mzk5IDYuMzUyMjRMMTcuMDQ1MyAxNC4zNzkyQzE2LjgzOTUgMTQuMzI2NyAxNi42Mjc0IDE0LjI5MDIgMTYuNDA1NCAxNC4yOTAyQzE2LjMxNzUgMTQuMjkwMiAxNi4yMzQzIDE0LjMwNzYgMTYuMTQ4NiAxNC4zMTYyTDEzLjM3NzIgNi4zNTIyNEgyMi42Mzk5Wk0xMi40MzQxIDcuMTM3NzdMMTUuMDU3NyAxNC42NzcyQzE0LjU1NzkgMTQuOTgyMSAxNC4xNzIzIDE1LjQ0NjkgMTMuOTY4IDE2LjAwNEwxMy4wOTczIDE1Ljg3NzhDMTMuMTAzIDE1Ljc2NzYgMTMuMTE0IDE1LjY1ODcgMTMuMTE0IDE1LjU0N0MxMy4xMTQgMTMuNDQ0IDEyLjA3NTQgMTEuNTgzIDEwLjQ4ODQgMTAuNDM2NUwxMi40MzQxIDcuMTM3NzdaTTExLjk2NSAxNS41NDdDMTEuOTY1IDE1LjYwMjkgMTEuOTU4NCAxNS42NTcxIDExLjk1NjYgMTUuNzEyNUw3LjczNjkyIDE1LjEwMTFMOS45MDIwNCAxMS40MzA1QzExLjE1MTkgMTIuMzcyNiAxMS45NjUgMTMuODY0NyAxMS45NjUgMTUuNTQ3Wk02LjgwNzAyIDEwLjM4OUM3LjU1ODAyIDEwLjM4OSA4LjI2OTk1IDEwLjU1NCA4LjkxNDE4IDEwLjg0MzhMNi4zMTIxOCAxNS4yNTUyQzYuMjkyNCAxNS4yODg3IDYuMjg3ODQgMTUuMzI1NSA2LjI3NTUzIDE1LjM2MDhDNi4yNjMyMyAxNS4zOTU2IDYuMjQzOTQgMTUuNDI2NiA2LjIzODQgMTUuNDY0NUM2LjIzODI2IDE1LjQ2NTUgNi4yMzg3MSAxNS40NjY0IDYuMjM4NTcgMTUuNDY3NEM2LjIzODU3IDE1LjQ2NzYgNi4yMzg3MSAxNS40Njg1IDYuMjM4NTcgMTUuNDY5M0M2LjIzODQ2IDE1LjU0MjcgNi4yMzIxOSAxNS42MTg3IDYuMjUwOTkgMTUuNjkxMkM2LjI2MDc0IDE1LjcyODYgNi4yODMzMiAxNS43NTk5IDYuMzAwMTEgMTUuNzk0MkM2LjMxNTcyIDE1LjgyNjMgNi4zMjQ3NyAxNS44NjExIDYuMzQ2MzMgMTUuODlDNi4zOTExOCAxNS45NTAzIDYuNDQ3OTkgMTYuMDAxMiA2LjUxMzQ1IDE2LjA0MDJDNi41MTQxOSAxNi4wNDA2IDYuNTE0NTQgMTYuMDQxNCA2LjUxNTI4IDE2LjA0MThDNi41NzQ4NSAxNi4wNzcxIDYuNjM4NSAxNi4wOTYxIDYuNzAyOTEgMTYuMTA3OUM2LjcxMDcgMTYuMTA5MyA2LjcxNjY2IDE2LjExNDQgNi43MjQ1NSAxNi4xMTU2TDExLjc5MTggMTYuODQ5OEMxMS4yMTI0IDE5LjA2NDEgOS4yMDA0OSAyMC43MDUgNi44MDcwMiAyMC43MDVDMy45NjI3OSAyMC43MDUgMS42NDkwMyAxOC4zOTEyIDEuNjQ5MDMgMTUuNTQ3QzEuNjQ5MDMgMTIuNzAyNyAzLjk2Mjc5IDEwLjM4OSA2LjgwNzAyIDEwLjM4OVoiIGZpbGw9IiMwNTQwNTIiLz4KPC9zdmc+");
}
.pre-footer .pre-footer__icon.route-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI4IDI4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTMuNDE2NiA1LjgzMzAxSDEzLjkyMzRDMTcuNDc4NiA1LjgzMzAxIDE5LjI1NjEgNS44MzMwMSAxOS45MzA5IDYuNDcxNTFDMjAuNTE0MiA3LjAyMzQ0IDIwLjc3MjYgNy44MzY1IDIwLjYxNTIgOC42MjM5MkMyMC40MzMgOS41MzQ4NiAxOC45ODE4IDEwLjU2MTMgMTYuMDc5MyAxMi42MTQzTDExLjMzNzMgMTUuOTY4NEM4LjQzNDg3IDE4LjAyMTMgNi45ODM2MyAxOS4wNDc4IDYuODAxNDUgMTkuOTU4OEM2LjY0Mzk4IDIwLjc0NjIgNi45MDI0NyAyMS41NTkyIDcuNDg1NzQgMjIuMTExMkM4LjE2MDUgMjIuNzQ5NyA5LjkzODA2IDIyLjc0OTcgMTMuNDkzMiAyMi43NDk3SDE0LjU4MzNNOS4zMzMzMSA1LjgzMzAxQzkuMzMzMzEgNy43NjYgNy43NjYzMSA5LjMzMzAxIDUuODMzMzEgOS4zMzMwMUMzLjkwMDMyIDkuMzMzMDEgMi4zMzMzMSA3Ljc2NiAyLjMzMzMxIDUuODMzMDFDMi4zMzMzMSAzLjkwMDAxIDMuOTAwMzIgMi4zMzMwMSA1LjgzMzMxIDIuMzMzMDFDNy43NjYzMSAyLjMzMzAxIDkuMzMzMzEgMy45MDAwMSA5LjMzMzMxIDUuODMzMDFaTTI1LjY2NjYgMjIuMTY2M0MyNS42NjY2IDI0LjA5OTMgMjQuMDk5NiAyNS42NjYzIDIyLjE2NjYgMjUuNjY2M0MyMC4yMzM3IDI1LjY2NjMgMTguNjY2NiAyNC4wOTkzIDE4LjY2NjYgMjIuMTY2M0MxOC42NjY2IDIwLjIzMzMgMjAuMjMzNyAxOC42NjYzIDIyLjE2NjYgMTguNjY2M0MyNC4wOTk2IDE4LjY2NjMgMjUuNjY2NiAyMC4yMzMzIDI1LjY2NjYgMjIuMTY2M1oiIHN0cm9rZT0iIzA1NDA1MiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4=");
}
.pre-footer .pre-footer__icon.globe-icon {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDI4IDI4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTQgMi4zMzMwMUMxNi45MTgxIDUuNTI3NzUgMTguNTc2NSA5LjY3MzcxIDE4LjY2NjYgMTMuOTk5N0MxOC41NzY1IDE4LjMyNTYgMTYuOTE4MSAyMi40NzE2IDE0IDI1LjY2NjNNMTQgMi4zMzMwMUMxMS4wODE4IDUuNTI3NzUgOS40MjM0NCA5LjY3MzcxIDkuMzMzMzEgMTMuOTk5N0M5LjQyMzQ0IDE4LjMyNTYgMTEuMDgxOCAyMi40NzE2IDE0IDI1LjY2NjNNMTQgMi4zMzMwMUM3LjU1NjY2IDIuMzMzMDEgMi4zMzMzMSA3LjU1NjM1IDIuMzMzMzEgMTMuOTk5N0MyLjMzMzMxIDIwLjQ0MyA3LjU1NjY2IDI1LjY2NjMgMTQgMjUuNjY2M00xNCAyLjMzMzAxQzIwLjQ0MzMgMi4zMzMwMSAyNS42NjY2IDcuNTU2MzUgMjUuNjY2NiAxMy45OTk3QzI1LjY2NjYgMjAuNDQzIDIwLjQ0MzMgMjUuNjY2MyAxNCAyNS42NjYzTTIuOTE2NjcgMTAuNDk5N0gyNS4wODMzTTIuOTE2NjUgMTcuNDk5N0gyNS4wODMzIiBzdHJva2U9IiMwNTQwNTIiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
}
.pre-footer .pre-footer__item-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pre-footer .pre-footer__item-label {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 2px;
}
.pre-footer .pre-footer__item-desc {
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  color: var(--charcoal-black);
  font-weight: var(--font-weight-light);
  line-height: 140%;
  letter-spacing: -0.1px;
}
@media screen and (max-width: 600px) {
  .pre-footer .pre-footer__item-desc {
    font-size: var(--font-size-md);
  }
}

/* Footer Section */
.footer {
  background: var(--charcoal-black);
  padding: 70px 20px;
}
@media screen and (max-width: 768px) {
  .footer {
    padding: 70px 40px;
  }
}
.footer__container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding: 0;
  background: var(--charcoal-black);
}
.footer__logo {
  display: flex;
  width: 130px;
}
.footer__socials {
  display: flex;
  gap: 30px;
  align-items: center;
}
.footer__social-link {
  text-decoration: none;
  display: flex;
}
.footer__social-icon {
  width: 22px;
  height: 22px;
}
.footer__social-icon--instagram {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMyIgdmlld0JveD0iMCAwIDIxIDIzIiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfOTUxNl8xMzQ0NikiPgogICAgPHBhdGggZD0iTTEwLjc1OTggMS44QzEzLjQyNjQgMS44IDEzLjc0MzEgMS44IDE0LjgwMTQgMS44NTgzM0MxNy41MDk4IDEuOTgzMzMgMTguNzc2NCAzLjI2NjY3IDE4LjkwMTQgNS45NTgzM0MxOC45NTE0IDcuMDE2NjcgMTguOTU5OCA3LjMzMzMzIDE4Ljk1OTggMTBDMTguOTU5OCAxMi42NjY3IDE4Ljk1OTggMTIuOTgzMyAxOC45MDE0IDE0LjA0MTdDMTguNzc2NCAxNi43MzMzIDE3LjUxODEgMTguMDE2NyAxNC44MDE0IDE4LjE0MTdDMTMuNzQzMSAxOC4xOTE3IDEzLjQzNDggMTguMiAxMC43NTk4IDE4LjJDOC4wODQ3NyAxOC4yIDcuNzc2NDMgMTguMiA2LjcxODEgMTguMTQxN0M0LjAwMTQzIDE4LjAxNjcgMi43NDMxIDE2LjcyNSAyLjYxODEgMTQuMDQxN0MyLjU2ODEgMTIuOTgzMyAyLjU1OTc3IDEyLjY3NSAyLjU1OTc3IDEwQzIuNTU5NzcgNy4zMjUgMi41NTk3NyA3LjAxNjY3IDIuNjE4MSA1Ljk1ODMzQzIuNzQzMSAzLjI2NjY3IDQuMDA5NzcgMS45ODMzMyA2LjcxODEgMS44NTgzM0M3Ljc3NjQzIDEuODE2NjcgOC4wOTMxIDEuOCAxMC43NTk4IDEuOFpNMTAuNzU5OCAwQzguMDQzMSAwIDcuNzAxNDMgMCA2LjYzNDc3IDAuMDU4MzMzM0MzLjAwMTQzIDAuMjI1IDAuOTg0NzY2IDIuMjQxNjcgMC44MDE0MzIgNS44OTE2N0MwLjc1OTc2NiA2Ljk0MTY3IDAuNzU5NzY2IDcuMjgzMzMgMC43NTk3NjYgMTBDMC43NTk3NjYgMTIuNzE2NyAwLjc1OTc2NiAxMy4wNTgzIDAuODE4MDk5IDE0LjEyNUMwLjk4NDc2NiAxNy43NTgzIDMuMDAxNDMgMTkuNzc1IDYuNjUxNDMgMTkuOTU4M0M3LjcwMTQzIDIwIDguMDQzMSAyMCAxMC43NTk4IDIwQzEzLjQ3NjQgMjAgMTMuODE4MSAyMCAxNC44ODQ4IDE5Ljk0MTdDMTguNTA5OCAxOS43NzUgMjAuNTM0OCAxNy43NTgzIDIwLjcxODEgMTQuMTA4M0MyMC43NTk4IDEzLjA1ODMgMjAuNzU5OCAxMi43MTY3IDIwLjc1OTggMTBDMjAuNzU5OCA3LjI4MzMzIDIwLjc1OTggNi45NDE2NyAyMC43MDE0IDUuODc1QzIwLjUzNDggMi4yNSAxOC41MTgxIDAuMjI1IDE0Ljg2ODEgMC4wNDE2NjY3QzEzLjgxODEgMCAxMy40NzY0IDAgMTAuNzU5OCAwWk0xMC43NTk4IDQuODY2NjdDOS43NDQ0OSA0Ljg2NjY3IDguNzUyMDEgNS4xNjc3MyA3LjkwNzg0IDUuNzMxNzlDNy4wNjM2NyA2LjI5NTg1IDYuNDA1NzEgNy4wOTc1NiA2LjAxNzE4IDguMDM1NTZDNS42Mjg2NSA4Ljk3MzU1IDUuNTI3IDEwLjAwNTcgNS43MjUwNyAxMS4wMDE1QzUuOTIzMTQgMTEuOTk3MiA2LjQxMjA0IDEyLjkxMTkgNy4xMjk5NSAxMy42Mjk4QzcuODQ3ODYgMTQuMzQ3NyA4Ljc2MjUzIDE0LjgzNjYgOS43NTgzIDE1LjAzNDdDMTAuNzU0MSAxNS4yMzI4IDExLjc4NjIgMTUuMTMxMSAxMi43MjQyIDE0Ljc0MjZDMTMuNjYyMiAxNC4zNTQxIDE0LjQ2MzkgMTMuNjk2MSAxNS4wMjggMTIuODUxOUMxNS41OTIgMTIuMDA3OCAxNS44OTMxIDExLjAxNTMgMTUuODkzMSAxMEMxNS44OTMxIDguNjM4NTYgMTUuMzUyMyA3LjMzMjg3IDE0LjM4OTYgNi4zNzAxOEMxMy40MjY5IDUuNDA3NSAxMi4xMjEyIDQuODY2NjcgMTAuNzU5OCA0Ljg2NjY3Wk0xMC43NTk4IDEzLjMzMzNDMTAuMTAwNSAxMy4zMzMzIDkuNDU2MDMgMTMuMTM3OCA4LjkwNzg2IDEyLjc3MTZDOC4zNTk3IDEyLjQwNTMgNy45MzI0NiAxMS44ODQ3IDcuNjgwMTcgMTEuMjc1NkM3LjQyNzg3IDEwLjY2NjUgNy4zNjE4NiA5Ljk5NjMgNy40OTA0OCA5LjM0OTdDNy42MTkxIDguNzAzMSA3LjkzNjU3IDguMTA5MTUgOC40MDI3NCA3LjY0Mjk4QzguODY4OTIgNy4xNzY4IDkuNDYyODYgNi44NTkzMyAxMC4xMDk1IDYuNzMwNzJDMTAuNzU2MSA2LjYwMjEgMTEuNDI2MyA2LjY2ODExIDEyLjAzNTQgNi45MjA0QzEyLjY0NDUgNy4xNzI2OSAxMy4xNjUxIDcuNTk5OTQgMTMuNTMxMyA4LjE0ODFDMTMuODk3NiA4LjY5NjI2IDE0LjA5MzEgOS4zNDA3MyAxNC4wOTMxIDEwQzE0LjA5MzEgMTAuODg0MSAxMy43NDE5IDExLjczMTkgMTMuMTE2OCAxMi4zNTdDMTIuNDkxNyAxMi45ODIxIDExLjY0MzggMTMuMzMzMyAxMC43NTk4IDEzLjMzMzNaTTE2LjEwMTQgMy40NTgzM0MxNS44NjQxIDMuNDU4MzMgMTUuNjMyMSAzLjUyODcxIDE1LjQzNDcgMy42NjA1N0MxNS4yMzc0IDMuNzkyNDMgMTUuMDgzNiAzLjk3OTg0IDE0Ljk5MjggNC4xOTkxMUMxNC45MDIgNC40MTgzOCAxNC44NzgyIDQuNjU5NjYgMTQuOTI0NSA0Ljg5MjQ0QzE0Ljk3MDggNS4xMjUyMiAxNS4wODUxIDUuMzM5MDQgMTUuMjUyOSA1LjUwNjg2QzE1LjQyMDcgNS42NzQ2OCAxNS42MzQ1IDUuNzg4OTcgMTUuODY3MyA1LjgzNTI4QzE2LjEwMDEgNS44ODE1OCAxNi4zNDE0IDUuODU3ODEgMTYuNTYwNyA1Ljc2Njk5QzE2Ljc3OTkgNS42NzYxNiAxNi45NjczIDUuNTIyMzYgMTcuMDk5MiA1LjMyNTAyQzE3LjIzMTEgNS4xMjc2OCAxNy4zMDE0IDQuODk1NjcgMTcuMzAxNCA0LjY1ODMzQzE3LjMwMTQgNC4zNDAwNyAxNy4xNzUgNC4wMzQ4NSAxNi45NSAzLjgwOTgxQzE2LjcyNDkgMy41ODQ3NiAxNi40MTk3IDMuNDU4MzMgMTYuMTAxNCAzLjQ1ODMzWiIgZmlsbD0id2hpdGUiLz4KICA8L2c+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImNsaXAwXzk1MTZfMTM0NDYiPgogICAgICA8cmVjdCB3aWR0aD0iMjAuMDk2IiBoZWlnaHQ9IjIyLjE5MzMiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjc1OTc2NikiLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgo8L3N2Zz4=");
}
.footer__social-icon--vimeo {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMyIgdmlld0JveD0iMCAwIDIxIDIzIiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzMTNfMjg3NykiPgogICAgPHBhdGggZD0iTTIwLjAxMDIgOS4zMDcyMkMxNy45NjU1IDE0LjEzMTUgMTMuMDI5NCAyMC42OTg5IDkuOTA5NDggMjAuNjk4OUM2LjgzNDc5IDIwLjY5ODkgNi4zOTAxNyAxMy40NTc0IDQuNzExMzIgOC42Mzc3MkMzLjg4NDg3IDYuMjY1ODEgMy4zNTE0OSA2LjgxMDQ3IDEuODAyNDIgOC4wMDc5OUwwLjg1NzkxIDYuNjYyNTJDMy4xMTcwNCA0LjQ2OTA4IDUuMzc3ODMgMS45MjE0NyA2Ljc2Njk3IDEuNzc5OTlDOC4zMzExMSAxLjYxNDQ2IDkuMjk0MDQgMi43OTUzMyA5LjY1NDEgNS4zMjM1MkMxMC4xMjk3IDguNjQ2MDUgMTAuNzk0NSAxMy44MDMyIDExLjk1NTEgMTMuODAzMkMxMi44NTk0IDEzLjgwMzIgMTUuMDg3NSA5LjcxMjI1IDE1LjIwMjMgOC4yNDkzNEMxNS40MDU3IDYuMTA3NjkgMTMuNzc2MyA2LjA0Mjk2IDEyLjM2MiA2LjcxMTUzQzE0LjYwMDIgLTEuMzgzNDggMjMuOTExNCAwLjEwNzE2NyAyMC4wMTAyIDkuMzA3MjJaIiBmaWxsPSJ3aGl0ZSIvPgogIDwvZz4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfMTAzMTNfMjg3NyI+CiAgICAgIDxyZWN0IHdpZHRoPSIyMC4wOTYiIGhlaWdodD0iMjIuMTkzMyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuODU1OTU3KSIvPgogICAgPC9jbGlwUGF0aD4KICA8L2RlZnM+Cjwvc3ZnPg==");
}
.footer__social-icon--facebook {
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMSIgaGVpZ2h0PSIyMyIgdmlld0JveD0iMCAwIDExIDIzIiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzMTNfMjg3OSkiPgogICAgPHBhdGggZD0iTTMuNDYzNjYgNy4zOTc3N0gwLjk1MTY2VjExLjA5NjdIMy40NjM2NlYyMi4xOTMzSDcuNjUwMzNWMTEuMDk2N0gxMC42OTgyTDEwLjk5OTcgNy4zOTc3N0g3LjY1MDMzVjUuODUzNDlDNy42NTAzMyA0Ljk3NSA3LjgwOTQyIDQuNjIzNjEgOC41Nzk3NyA0LjYyMzYxSDEwLjk5OTdWMEg3LjgwOTQyQzQuODAzMzkgMCAzLjQ2MzY2IDEuNDYxMDYgMy40NjM2NiA0LjI2Mjk3VjcuMzk3NzdaIiBmaWxsPSJ3aGl0ZSIvPgogIDwvZz4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfMTAzMTNfMjg3OSI+CiAgICAgIDxyZWN0IHdpZHRoPSIxMC4wNDgiIGhlaWdodD0iMjIuMTkzMyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuOTUxNjYpIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+");
}

.pricing-supressed .pre-footer {
  margin-top: 120px;
}
@media screen and (max-width: 768px) {
  .pricing-supressed .pre-footer {
    margin-top: 70px;
  }
}

.pre-night {
  padding-top: 10px;
  padding-bottom: 0;
}
.pre-night__card {
  background-color: var(--medium-cream);
}
@media screen and (max-width: 768px) {
  .pre-night__card {
    gap: 24px;
  }
}
.pre-night__card-title {
  flex: 1 1 180px;
}
@media screen and (max-width: 768px) {
  .pre-night__card-title {
    flex: auto;
  }
}
.pre-night__card-content {
  gap: 30px;
}

.pre-tour-hotels {
  padding-top: 10px;
  padding-bottom: 0;
}
.pre-tour-hotels__card {
  background-color: var(--hazy-teal);
}
@media screen and (max-width: 768px) {
  .pre-tour-hotels__card {
    gap: 24px;
  }
}
.pre-tour-hotels__card-title {
  flex: 1 1 180px;
}
@media screen and (max-width: 768px) {
  .pre-tour-hotels__card-title {
    flex: auto;
  }
}
.pre-tour-hotels__card-title h2 {
  color: var(--deep-teal);
}
.pre-tour-hotels__card-content {
  gap: 30px;
}

.packing-list {
  max-width: 1016px;
  margin: 120px auto;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .packing-list {
    padding: 0 40px;
    margin: 70px auto;
  }
}
.packing-list__accordions {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.packing-list__accordion {
  overflow: hidden;
  /* Active state for accordion */
}
.packing-list__accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0;
  cursor: pointer;
  border-bottom: 1px solid var(--cream);
  transition: border-color 0.3s ease;
}
@media screen and (max-width: 768px) {
  .packing-list__accordion-header {
    padding: 16px 0;
  }
}
.packing-list__accordion-title {
  display: flex;
  align-items: center;
  gap: 16px;
}
.packing-list__accordion-day {
  font-size: var(--font-size-xs);
  font-family: var(--font-body);
  font-weight: var(--font-weight-medium);
  color: var(--charcoal-black);
  text-transform: uppercase;
  letter-spacing: 1px;
  position: relative;
  padding-right: 16px;
}
@media screen and (max-width: 768px) {
  .packing-list__accordion-day {
    font-size: var(--font-size-2xs);
  }
}
.packing-list__accordion-day::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 16px;
  width: 1px;
  background-color: var(--cream);
}
.packing-list__accordion-location {
  font-size: var(--font-size-lg);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  color: var(--charcoal-black);
  line-height: 110%;
}
@media screen and (max-width: 768px) {
  .packing-list__accordion-location {
    font-size: 20px;
  }
}
.packing-list__accordion-toggle {
  width: 35px;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
}
.packing-list__accordion-icon {
  position: relative;
  width: 20px;
  height: 20px;
}
.packing-list__accordion-icon:before, .packing-list__accordion-icon:after {
  content: "";
  position: absolute;
  background-color: var(--cream);
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.packing-list__accordion-icon:before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(-50%);
}
.packing-list__accordion-icon:after {
  top: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
}
.packing-list__accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.2s ease;
  opacity: 0;
}
.packing-list__accordion-inner {
  padding: 24px 0 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .packing-list__accordion-inner {
    padding: 16px 0 24px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.packing-list__accordion-inner-items {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.packing-list__accordion-inner-item {
  font-size: var(--font-size-sm);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--charcoal-black);
  line-height: 140%;
  position: relative;
  padding-left: 14px;
}
.packing-list__accordion-inner-item:before {
  content: "";
  background-color: var(--teal);
  border-radius: 50%;
  position: absolute;
  width: 4px;
  height: 4px;
  left: 0;
  top: 8px;
  color: var(--teal);
  line-height: 1;
}
.packing-list__accordion-inner-note {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 30px;
  border-radius: 16px;
  background-color: var(--hazy-teal);
}
@media screen and (max-width: 768px) {
  .packing-list__accordion-inner-note {
    grid-template-columns: 1fr;
  }
}
.packing-list__accordion-inner-note-text {
  font-size: var(--font-size-md);
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  color: var(--deep-teal);
  line-height: 140%;
}
.packing-list__accordion-inner-note-desc {
  font-size: 15px;
  font-family: var(--font-body);
  font-weight: var(--font-weight-light);
  color: var(--deep-teal);
  line-height: 150%;
}
.packing-list__accordion.active .packing-list__accordion-header {
  border-bottom-color: var(--terra-cotta);
}
.packing-list__accordion.active .packing-list__accordion-toggle {
  background-color: transparent;
}
.packing-list__accordion.active .packing-list__accordion-icon:before, .packing-list__accordion.active .packing-list__accordion-icon:after {
  background-color: var(--terra-cotta);
}
.packing-list__accordion.active .packing-list__accordion-icon:after {
  transform: translateX(-50%) rotate(90deg);
}
.packing-list__accordion.active .packing-list__accordion-content {
  max-height: 2000px; /* Large enough to accommodate content */
  opacity: 1;
}
.packing-list__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .packing-list__header {
    margin-bottom: 24px;
  }
}
.packing-list__header h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  color: var(--deep-teal);
}
.packing-list__header h4 {
  font-family: var(--font-body);
  font-size: var(--font-size-3xs);
  font-weight: var(--font-weight-medium);
  color: var(--terra-cotta);
  text-transform: uppercase;
  letter-spacing: 1px;
  cursor: pointer;
}

.map-placeholder {
  padding: 0 20px 120px;
}
@media screen and (max-width: 768px) {
  .map-placeholder {
    padding: 0 40px 60px;
  }
}
.map-placeholder__image-wrapper {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 16px;
}
.map-placeholder__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  aspect-ratio: 1016/570;
  border-radius: 16px;
}
@media screen and (max-width: 768px) {
  .map-placeholder__image {
    aspect-ratio: 1/1;
  }
}

/* PDF Page */
.pdf-page .accommodations-swiper-pdf {
  display: flex;
  flex-direction: column;
  gap: 24px;
  background-color: var(--medium-cream);
  padding-top: 0;
  padding-bottom: 0;
}
.pdf-page .bikes-swiper-pdf {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 0;
  padding-bottom: 0;
}
.pdf-page .image-collection-swiper-pdf {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  padding-top: 0;
  padding-bottom: 0;
}
.pdf-page .image-collection-swiper-pdf img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 16px;
  display: block;
  aspect-ratio: 1/1;
}

/* Expanded itinerary for print layout measurement (beforeprint JS) */
body.duvine-print-prep .itinerary__accordion-content {
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
}

body.duvine-print-prep .itinerary__accordion-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 45%) minmax(0, 1fr) !important;
  gap: 2.5rem !important;
  padding-top: 16px !important;
}

body.duvine-print-prep .itinerary__accordion-left {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  max-width: none !important;
  width: auto !important;
  padding-right: 0 !important;
}

body.duvine-print-prep .itinerary__accordion-right {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

body.duvine-print-prep .itinerary__accordion-day-featured {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

body.duvine-print-prep .itinerary__accordion-right,
body.duvine-print-prep .itinerary__accordion-narrative,
body.duvine-print-prep .itinerary__accordion-narrative p {
  font-size: 13px !important;
  line-height: 1.45 !important;
}

body.duvine-print-prep .itinerary__accordion-icon-content h4 {
  font-size: 10px !important;
}

body.duvine-print-prep .itinerary__accordion-icon-content p {
  font-size: 11px !important;
}

body.duvine-print-prep .itinerary__accordion-day-featured,
body.duvine-print-prep .itinerary__accordion-day-featured-img {
  max-width: 9rem !important;
}

body.duvine-print-prep .itinerary__accordion-day-featured-img {
  max-height: 6rem !important;
  object-fit: cover !important;
}

/* Print Media Queries for PDF Generation */
@media print {
  @page {
    size: A4 portrait;
    margin: 0;
  }

  /* Hide interactive elements for PDF */
  .cta-collection,
  .cta-collection__menu,
  .cta-collection__download-share,
  .cta-collection__menu-item--download,
  .cta-collection__menu-item--copy-link,
  button:not(.keep-for-pdf),
  .analytics-tracker {
    display: none !important;
  }

  /* PDF layout tokens (Figma canvas 1432px, content 1016px, gutter 208px) */
  :root {
    --pdf-content-width: 71%;
    --pdf-side-padding: 14.5%;
    --pdf-accommodation-width: 71%;
    --pdf-section-pad-y: 8.4vh;
    --font-size-3xs: 9px;
    --font-size-2xs: 10px;
    --font-size-xs: 11px;
    --font-size-sm: 13px;
    --font-size-md: 14px;
    --font-size-lg: 18px;
    --font-size-xl: 21px;
    --font-size-2xl: 42px;
    --font-size-3xl: 58px;
  }

  /* The document rarely ends exactly at a page boundary. The canvas takes the
     footer colour so the strip left over below the footer on the last sheet
     reads as part of the footer instead of bare cream. Body keeps the cream
     background and covers every page up to the end of the content. */
  html {
    background: var(--charcoal-black) !important;
  }

  body {
    margin: 0;
    padding: 0;
    height: auto !important;
    min-height: 0 !important;
    background: #f9f5f2 !important;
  }

  /* Full-bleed intro imagery (not hero — hero has its own A4 first-page rules) */
  .get-to-your-tour__image-wrapper,
  .get-to-your-tour__image,
  .get-to-your-tour__overlay,
  .bikes__image-wrapper,
  .preparing-for-your-tour__image-wrapper,
  .bikes__image,
  .preparing-for-your-tour__image,
  .bikes__overlay,
  .preparing-for-your-tour__overlay,
  .tour-price__image-wrapper,
  .tour-price__image,
  .tour-price__overlay {
    height: auto !important;
    max-height: 5.5in !important;
    min-height: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  /* Video section — not printable */
  #video-component,
  .video-component {
    display: none !important;
  }

  /* Print: interactive chrome no PDF should show (safe for every master doc) */
  .duvine-hold-expired-banner,
  .bikes-guides__guide-footer-read-bio,
  .bikes-guides__guide-footer-right-button,
  .bikes-guides__note-actions-button,
  .bike-safety__video-play-toggle,
  .bike-safety__video-overlay,
  .bike-safety__item-desc-link-button,
  .accommodations-swiper__note,
  .bikes-swiper__navigation-wrapper,
  .bikes-swiper__slider-description {
    display: none !important;
  }

  /* Post-Booking (final_document) only — restrict the printed frame set to the
     posted Figma sections. Scoped to body.duvine-doc-final-document so other
     master documents keep pricing / image collection in print (IMP1-696 review). */
  body.duvine-doc-final-document #tour-price,
  body.duvine-doc-final-document .tour-price,
  body.duvine-doc-final-document #price-details,
  body.duvine-doc-final-document .price-details,
  body.duvine-doc-final-document #pricing-tiers,
  body.duvine-doc-final-document .pricing-tiers,
  body.duvine-doc-final-document #image-collection,
  body.duvine-doc-final-document .image-collection-carousel,
  body.duvine-doc-final-document #packing-list,
  body.duvine-doc-final-document .packing-list,
  body.duvine-doc-final-document #pre-footer,
  body.duvine-doc-final-document .pre-footer {
    display: none !important;
  }

  /* Hero — full A4 first page; cover fills page, keeps aspect ratio, centers crop */
  .hero {
    width: 100% !important;
    height: 297mm !important;
    min-height: 297mm !important;
    max-height: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    overflow: hidden !important;
    page-break-after: always !important;
    break-after: page !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  .hero__content {
    position: relative !important;
    z-index: 2 !important;
    width: var(--pdf-content-width) !important;
    max-width: var(--pdf-content-width) !important;
    height: 100% !important;
    min-height: 297mm !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
  }

  .hero__logo {
    flex: none !important;
    margin: 7mm auto 0 !important;
  }

  .hero__title {
    margin-top: auto !important;
    color: #fff !important;
  }

  .hero__subtitle {
    color: #fff !important;
  }

  .hero__details {
    flex: none !important;
    margin-top: 2rem !important;
    margin-bottom: 10mm !important;
    color: #fff !important;
  }

  .hero__overlay {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
    height: 100% !important;
    min-height: 297mm !important;
    z-index: 1 !important;
    pointer-events: none !important;
  }

  .hero__overlay {
    display: block !important;
  }

  .hero .play-button,
  .play-button {
    display: none !important;
  }

  /* Content width and section rhythm — clear screen 8.75rem vertical padding */
  .container,
  .section-container {
    max-width: var(--pdf-content-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Tour Highlights — baseline for every master doc: stack image then bullets
     (380px fixed image overflows the 71% column otherwise). */
  #tour-highlights.tour-highlights,
  .tour-highlights {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
    align-items: start !important;
    padding-top: var(--pdf-section-pad-y) !important;
    padding-bottom: var(--pdf-section-pad-y) !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  .tour-highlights__left,
  .tour-highlights__right {
    width: 100% !important;
    max-width: 100% !important;
  }

  .tour-highlights__image {
    width: 100% !important;
    max-width: 55% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    margin-top: 0.75rem !important;
    overflow: hidden !important;
  }

  .tour-highlights__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .tour-highlights__item {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  /* Tour Highlights: Figma left title+image (~42%), right ruled bullets, as on
     the web document. */
  #tour-highlights.tour-highlights,
  .tour-highlights {
    grid-template-columns: minmax(0, 42%) minmax(0, 1fr) !important;
    gap: 2.5rem !important;
  }

  .tour-highlights__image {
    max-width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    border-radius: 12px !important;
  }

  .tour-highlights__item {
    padding: 1.25rem 0 !important;
    border-top: 1px solid #e1d1c3 !important;
  }

  .tour-highlights__item:last-child {
    border-bottom: 1px solid #e1d1c3 !important;
  }

  .get-to-your-tour__content,
  .tour-price__content,
  .bikes__content,
  .preparing-for-your-tour__content {
    position: absolute !important;
    left: var(--pdf-side-padding) !important;
    bottom: 0 !important;
    padding-bottom: var(--pdf-section-pad-y) !important;
    z-index: 3 !important;
    max-width: var(--pdf-content-width) !important;
  }

  .tour-price {
    width: 100% !important;
    page-break-before: auto !important;
  }

  /* Keep the default slice behaviour: the section inset applies once at the
     start and end of the itinerary. Cloning it re-applies 2 x 10vh on every
     page fragment, which leaves too little room for a second day to fit. */
  .itinerary {
    padding: var(--pdf-section-pad-y) 0 !important;
    background: #f9f5f2 !important;
  }

  .itinerary.container {
    max-width: 100% !important;
  }

  .itinerary__header,
  .itinerary__accordions,
  .itinerary__footnote {
    max-width: var(--pdf-content-width) !important;
    width: var(--pdf-content-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .itinerary__header {
    margin-bottom: 2rem !important;
    padding-top: 2vh !important;
  }

  .itinerary__accordion-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 45%) minmax(0, 1fr) !important;
    gap: 2.5rem !important;
    padding-top: 16px !important;
  }

  .itinerary__accordion-left {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    max-width: none !important;
    width: auto !important;
    padding-right: 0 !important;
  }

  .itinerary__accordion-right {
    grid-column: 2 !important;
    grid-row: 1 !important;
    max-width: none !important;
    width: auto !important;
  }

  .itinerary__accordion-day-featured {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
  }

  .bikes-carousel {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    padding: var(--pdf-section-pad-y) 0 !important;
    background: #f9f5f2 !important;
  }

  /* Same top rhythm as the accommodations header. */
  .bikes-carousel__header {
    width: var(--pdf-accommodation-width) !important;
    max-width: var(--pdf-accommodation-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 1.5rem !important;
    margin-bottom: 3rem !important;
    padding: 0 !important;
    flex: none !important;
    page-break-after: avoid !important;
    break-after: avoid-page !important;
  }

  /* Accommodations — medium cream, header + 3 stacked cards per page */
  .accommodations-carousel {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    align-self: stretch !important;
    width: 100% !important;
    min-height: auto !important;
    max-height: none !important;
    padding: var(--pdf-section-pad-y) 0 !important;
    gap: 3rem !important;
    background: #f2e8df !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  .accommodations-carousel__header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    width: var(--pdf-accommodation-width) !important;
    max-width: var(--pdf-accommodation-width) !important;
    margin: 1.5rem auto 2.5rem !important;
    padding: 0 !important;
    flex: none !important;
    page-break-after: avoid !important;
    break-after: avoid-page !important;
  }

  .accommodations-swiper {
    width: 100% !important;
    padding-bottom: 0 !important;
    flex: none !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .accommodations-swiper .swiper-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    transform: none !important;
    overflow: visible !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
    width: var(--pdf-accommodation-width) !important;
    max-width: var(--pdf-accommodation-width) !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .accommodations-swiper .swiper-slide {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    flex: none !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  .accommodations-swiper .swiper-slide:first-child {
    page-break-before: avoid !important;
    break-before: avoid-page !important;
  }

  .accommodation-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc((100vh - 2 * var(--pdf-section-pad-y) - 6rem - 24px) / 3) !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  .accommodation-card__image {
    width: 52% !important;
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
  }

  .accommodation-card__image img {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .accommodation-card__content {
    width: 48% !important;
    padding: 1.75rem !important;
    background-color: #8a3a1c !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 0.75rem !important;
    overflow: visible !important;
    min-height: 0 !important;
  }

  .accommodation-card__title,
  h3.accommodation-card__title {
    display: block !important;
    visibility: visible !important;
    overflow: visible !important;
    font-size: var(--font-size-lg) !important;
    line-height: 110% !important;
    color: #fff !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
  }

  .accommodation-card__nights {
    font-size: var(--font-size-sm) !important;
    color: #fff !important;
    flex-shrink: 0 !important;
  }

  .accommodation-card__description {
    display: block !important;
    margin: 0 !important;
    font-family: var(--font-body) !important;
    font-size: var(--font-size-sm) !important;
    font-weight: var(--font-weight-normal) !important;
    line-height: 1.45 !important;
    color: #fff !important;
    flex-shrink: 1 !important;
    overflow: hidden !important;
  }

  .accommodations-swiper__navigation,
  .accommodations-swiper__navigation-wrapper {
    display: none !important;
  }

  /* Remove fixed/sticky positioning for PDF */
  header,
  .header,
  .cta-collection {
    position: static !important;
  }

  /* Prevent page breaks inside important elements */
  .itinerary-day,
  .accommodation-card,
  .accommodations-card,
  .pricing-section,
  .highlight-card,
  .day-card {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Ensure proper page breaks between sections */
  .section {
    page-break-after: auto;
  }

  /* Ensure images print correctly */
  img {
    max-width: 100%;
    page-break-inside: avoid;
  }

  /* Make sure backgrounds print */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  /* Expand all itinerary days for PDF */
  .itinerary__header-right,
  #toggle-all-accordions {
    display: none !important;
  }

  .itinerary__accordion-content {
    max-height: none !important;
    overflow: visible !important;
    opacity: 1 !important;
  }

  .itinerary__accordion-toggle {
    display: none !important;
  }

  /* Let Chrome calculate whether the complete day fits in the space left on the
     current sheet. Normal days stay together and move to the next sheet when
     needed. Overflow is visible, so an exceptionally tall day can still
     fragment rather than being clipped or omitted. */
  .itinerary__accordion {
    overflow: visible !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    /* Every day carries the inset, so a day that starts a new sheet is not
       flush against the page margin. */
    padding-top: 2vh !important;
  }

  .itinerary__accordion-header {
    page-break-after: avoid !important;
    break-after: avoid-page !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  .itinerary__accordion-right,
  .itinerary__accordion-narrative,
  .itinerary__accordion-narrative p {
    font-size: var(--font-size-sm) !important;
    line-height: 1.45 !important;
  }

  .itinerary__accordion-icon-content h4 {
    font-size: var(--font-size-2xs) !important;
  }

  .itinerary__accordion-icon-content p {
    font-size: var(--font-size-xs) !important;
  }

  /* Bikes — Figma: stacked cards, 65% image / 35% cream panel, no description */
  .bikes-swiper,
  .bikes-swiper .swiper-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    transform: none !important;
    overflow: visible !important;
    width: var(--pdf-accommodation-width) !important;
    max-width: var(--pdf-accommodation-width) !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  .bikes-swiper {
    width: 100% !important;
    padding-bottom: 0 !important;
  }

  /* The rule above caps the swiper at the content width; the wrapper inherited
     the same cap, which nested the cards at 71% of 71% of the page. */
  .bikes-swiper .swiper-wrapper {
    width: 100% !important;
    max-width: 100% !important;
  }

  .bikes-swiper .swiper-slide {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  .bikes-swiper .swiper-slide:first-child {
    page-break-before: avoid !important;
    break-before: avoid-page !important;
  }

  .bike-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1016 / 498 !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    box-shadow: none !important;
  }

  /* The printed page lays out narrower than 768px, so the mobile breakpoint
     applies here too. Its padding-bottom aspect-ratio box and absolutely
     positioned image have to be undone or the picture area overruns the card
     and the bike sits in its top-left corner. */
  .bike-card__image {
    width: 65.35% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    flex-shrink: 0 !important;
    background-color: #ffffff !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .bike-card__image img {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    max-width: 73.2% !important;
    max-height: 64.9% !important;
    object-fit: contain !important;
    object-position: center !important;
    mix-blend-mode: multiply !important;
  }

  .bike-card__specs,
  .bike-card__specs-short-desc,
  .bike-card__specs-list {
    display: none !important;
  }

  /* Panel reading order is traveller assignment, bike type, bike model, then
     the supplement pinned to the bottom where the Learn more button sits on
     screen. The markup order differs, so the panel is reordered with flex. */
  .bike-card__content {
    width: 34.65% !important;
    padding: 1.75rem !important;
    box-sizing: border-box !important;
    background-color: #f2e8df !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 0.35rem !important;
    overflow: visible !important;
  }

  .bike-card__type {
    order: 2 !important;
    font-size: var(--font-size-3xs) !important;
    font-weight: 500 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    color: #1d1e1e !important;
    flex-shrink: 0 !important;
  }

  .bike-card__title,
  h3.bike-card__title {
    order: 3 !important;
    display: block !important;
    visibility: visible !important;
    overflow: visible !important;
    font-size: var(--font-size-lg) !important;
    font-weight: var(--font-weight-light) !important;
    line-height: 110% !important;
    letter-spacing: -0.4px !important;
    color: #1d1e1e !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
  }

  .bike-card__price {
    order: 4 !important;
    font-size: var(--font-size-md) !important;
    font-weight: 500 !important;
    line-height: 140% !important;
    color: #1d1e1e !important;
    margin-top: auto !important;
  }

  .bikes-swiper--passenger .bike-card__passenger-name {
    order: 1 !important;
    display: block !important;
    font-size: var(--font-size-md) !important;
    font-weight: 500 !important;
    line-height: 140% !important;
    color: #1d1e1e !important;
    margin-top: 0 !important;
    margin-bottom: 1.25rem !important;
  }

  .bikes-swiper--passenger .bike-card__title + .bike-card__button {
    margin-top: auto !important;
  }

  .bikes-swiper--passenger .bike-card__passenger-name + .bike-card__button {
    margin-top: 0 !important;
  }

  /* Image collection — Figma: two-up row at content width */
  .image-collection-carousel {
    padding: 0 var(--pdf-side-padding) !important;
    background: #f9f5f2 !important;
  }

  .image-collection-swiper,
  .image-collection-swiper .swiper-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 1rem !important;
    transform: none !important;
    overflow: visible !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  .image-collection-swiper {
    width: var(--pdf-content-width) !important;
    max-width: var(--pdf-content-width) !important;
    margin: 0 auto !important;
  }

  .image-collection-swiper .swiper-slide {
    width: calc(50% - 0.5rem) !important;
    max-width: calc(50% - 0.5rem) !important;
    flex: 0 0 calc(50% - 0.5rem) !important;
    page-break-inside: avoid !important;
  }

  .image-collection-carousel__image-wrapper {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }

  .image-collection-carousel__image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 16px !important;
  }

  .swiper-slide {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    margin: 0 auto !important;
    page-break-inside: avoid;
  }

  .bike-card__button,
  .accommodation-card__button,
  .bike-detail-dialog,
  .swiper-button-next,
  .swiper-button-prev,
  .swiper-pagination,
  .bikes-swiper__navigation,
  .image-collection-swiper__navigation,
  .get-to-your-tour__navigation,
  .preparing-for-your-tour__play,
  .bike-safety__play,
  button.main-button,
  .travel-protection__button,
  .pre-tour__button {
    display: none !important;
  }

  /* Section backgrounds and padding per Figma */
  .travelers-notes,
  .inclusions-exclusions,
  .get-to-your-tour__details,
  .price-details,
  .travel-protection,
  .terms-and-conditions,
  .packing-list,
  .bike-safety,
  .bike-safety__items {
    background: #f9f5f2 !important;
  }

  .travelers-notes {
    padding: var(--pdf-section-pad-y) var(--pdf-side-padding) 3.75rem !important;
  }

  .travelers-notes__content {
    background: #bbd0d1 !important;
    border-radius: 16px !important;
    padding: 1.875rem !important;
    gap: 2.5rem !important;
  }

  .inclusions-exclusions,
  .price-details,
  .travel-protection,
  .terms-and-conditions {
    padding: 3.75rem var(--pdf-side-padding) var(--pdf-section-pad-y) !important;
  }

  .inclusions-exclusions__header {
    width: var(--pdf-content-width) !important;
    max-width: var(--pdf-content-width) !important;
    margin: 0 auto 3rem !important;
  }

  .inclusions-exclusions__image {
    display: block !important;
    width: var(--pdf-content-width) !important;
    max-width: var(--pdf-content-width) !important;
    margin: 0 auto 3.75rem !important;
    border-radius: 4px !important;
  }

  .inclusions-exclusions__grid {
    width: var(--pdf-content-width) !important;
    max-width: var(--pdf-content-width) !important;
    margin: 0 auto !important;
  }

  .inclusions-exclusions__block-title {
    flex: 0 0 31% !important;
    width: 31% !important;
    max-width: 31% !important;
  }

  .inclusions-exclusions__list {
    flex: 1 1 69% !important;
    width: 69% !important;
    max-width: 69% !important;
  }

  .get-to-your-tour__details {
    padding: 2.5rem 0 1.5rem !important;
  }

  /* The parent .container is already at the content width. */
  .get-to-your-tour__details-block {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  .get-to-your-tour__details-icon {
    display: none !important;
  }

  .get-to-your-tour__details-row {
    gap: 2.5rem !important;
    padding: 1.5rem 0 !important;
    border-top: 1px solid #e1d1c3 !important;
  }

  /* Getting To Your Tour — Post-Booking only: show the arrival/departure icons
     as the viewer does. */
  body.duvine-doc-final-document .get-to-your-tour__details-icon {
    display: inline-flex !important;
    width: 2rem !important;
    height: 2rem !important;
    flex-shrink: 0 !important;
  }

  .get-to-your-tour__details-row--instructions {
    align-items: flex-start !important;
  }

  /* Screen sets min-width: 312px on the label, which swallows the narrower A4
     row and squeezes the value into a near-vertical column. */
  .get-to-your-tour__details-label {
    flex: 0 0 31% !important;
    max-width: 31% !important;
    min-width: 0 !important;
  }

  .get-to-your-tour__details-value {
    flex: 1 1 69% !important;
    max-width: 69% !important;
    margin-left: 0 !important;
  }

  /* The .container reset above strips this section's own top padding, leaving
     the heading on the page edge. Restore the accommodations top rhythm. */
  .bike-safety {
    padding-top: var(--pdf-section-pad-y) !important;
  }

  .bike-safety__header {
    margin-top: 1.5rem !important;
  }

  .bike-safety__items {
    width: var(--pdf-content-width) !important;
    max-width: var(--pdf-content-width) !important;
    margin: 3.75rem auto 0 !important;
    padding: 1.875rem 0 !important;
  }

  .bike-safety__item {
    width: 100% !important;
    max-width: none !important;
    align-items: flex-start !important;
    gap: 2.5rem !important;
    padding: 1.5rem 0 !important;
    border-top: 1px solid #e1d1c3 !important;
    border-bottom: none !important;
  }

  .bike-safety__item-title {
    flex: 0 0 31% !important;
    max-width: 31% !important;
    min-width: 0 !important;
    align-items: flex-start !important;
  }

  .bike-safety__item-desc {
    flex: 1 1 69% !important;
    max-width: 69% !important;
    justify-content: flex-start !important;
  }

  .price-details__header {
    gap: 2.5rem !important;
    margin-bottom: 3rem !important;
  }

  .price-details__header-title {
    flex: 0 0 31% !important;
    max-width: 31% !important;
  }

  .price-details__header-desc {
    flex: 1 1 69% !important;
    max-width: 69% !important;
  }

  .price-details__table {
    grid-template-columns: 31% 1fr !important;
  }

  /* Chrome keeps this card with the bike safety guidance list that precedes it.
     The list is a flex container it will not fragment, so the pair overflows and
     the whole list is pushed off the safety page. Giving the card its own page
     lets the list stay under the safety video. Only Post-Booking has the bike
     safety list; elsewhere the forced sheet left Price Details half empty. */
  .travel-protection {
    padding: 3.75rem var(--pdf-side-padding) !important;
  }

  body.duvine-doc-final-document .travel-protection {
    page-break-before: always !important;
    break-before: page !important;
  }

  .travel-protection__card {
    background: #e1d1c3 !important;
    border-radius: 16px !important;
    padding: 2.5rem !important;
    gap: 2.5rem !important;
  }

  .travel-protection__card-content-actions-button,
  .travel-protection__card-content-actions-learn-more {
    display: none !important;
  }

  .terms-and-conditions__header {
    display: flex !important;
    gap: 2.5rem !important;
    margin-bottom: 3rem !important;
  }

  .terms-and-conditions__header-title {
    flex: 0 0 31% !important;
    max-width: 31% !important;
  }

  .terms-and-conditions__header-desc {
    flex: 1 1 69% !important;
    max-width: 69% !important;
  }

  .terms-and-conditions__link {
    display: none !important;
  }

  .terms-and-conditions__section {
    display: flex !important;
    gap: 4.5rem !important;
    padding: 2.25rem 0 !important;
  }

  .terms-and-conditions__section-title {
    flex: 0 0 28% !important;
    max-width: 28% !important;
  }

  .terms-and-conditions__list {
    flex: 1 1 72% !important;
  }

  .pre-footer,
  .pre-footer .pre-footer__container {
    background: #bbd0d1 !important;
    padding: var(--pdf-section-pad-y) var(--pdf-side-padding) !important;
  }

  .pre-footer .pre-footer__left {
    position: static !important;
  }

  .footer,
  .footer__container {
    background: #1d1e1e !important;
    padding: 4.9% var(--pdf-side-padding) !important;
  }

  /* Expand packing list accordions for PDF */
  .packing-list__header-right,
  .packing-list__accordion-toggle {
    display: none !important;
  }

  .packing-list__accordion-content {
    max-height: none !important;
    overflow: visible !important;
    opacity: 1 !important;
  }

  .packing-list__accordion-inner {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 2.5rem !important;
  }

  .packing-list__accordion-inner-item {
    flex: 0 0 calc(50% - 1.25rem) !important;
  }

  /* Itinerary featured image: full column width under the narrative, uncropped */
  .itinerary__accordion-day-featured,
  .itinerary__accordion-day-featured-img {
    max-width: 100% !important;
    width: 100% !important;
  }

  .itinerary__accordion-day-featured-img {
    height: auto !important;
    max-height: none !important;
    object-fit: initial !important;
  }

  /* Ensure proper text rendering */
  h1, h2, h3, h4, h5, h6, p, li, td {
    orphans: 3;
    widows: 3;
  }

  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
  }

  /* Remove shadows and transitions for cleaner print */
  * {
    box-shadow: none !important;
    text-shadow: none !important;
    transition: none !important;
    animation: none !important;
  }

  /* Ensure links are visible */
  a[href]:after {
    content: none; /* Don't print URLs after links */
  }

  /* Page fragmentation for every master document (Proposal, Option, Private
     Proposal, Post-Booking). Kept last in the print block so these rules win
     over the component layout rules above at equal specificity. */

  /* Section boundaries: each major section starts on a new page, so a section's
     top padding and background never strand on the previous sheet. */
  #itinerary,
  #accommodations {
    page-break-before: always !important;
    break-before: page !important;
  }

  /* Mini containers below the itinerary (IMP1-696).
     Chromium fragments a column flex container by squeezing its items instead of
     honouring break-inside on them, which is why a bike slide could still be cut
     into a strip. Laying the wrappers out as normal block flow while printing
     puts the units back on the block fragmentation path, where the browser's own
     fit calculation moves a unit that does not fit to the next sheet. Flex gaps
     are restored as adjacent-sibling margins. */
  .accommodations-carousel,
  .accommodations-swiper,
  .accommodations-swiper .swiper-wrapper,
  .bikes-carousel,
  .bikes-swiper,
  .bikes-swiper .swiper-wrapper,
  .bikes-guides__guides-list,
  .get-to-your-tour__details,
  .get-to-your-tour__details-list,
  .bike-safety__items,
  .inclusions-exclusions__grid {
    display: block !important;
  }

  .accommodations-swiper .swiper-slide + .swiper-slide,
  .bikes-swiper .swiper-slide + .swiper-slide {
    margin-top: 12px !important;
  }

  .bikes-guides__guide + .bikes-guides__guide {
    margin-top: 32px !important;
  }

  .get-to-your-tour__details-block + .get-to-your-tour__details-block {
    margin-top: 2.5rem !important;
  }

  .bike-safety__item + .bike-safety__item {
    margin-top: 30px !important;
  }

  /* An atomic unit that is itself a flex container is still fragmented by
     Chromium: the Support block measured 244px with break-inside: avoid-page and
     was cut across pages 9 and 10 in a real A4 render. A grid block was also cut
     (Not Included across pages 7 and 8 of a Mallorca proposal). A floated title
     in a flow-root block keeps the 31/69 columns and is honoured. */
  .inclusions-exclusions__block {
    display: flow-root !important;
  }

  .inclusions-exclusions__block-title {
    float: left !important;
    flex: none !important;
    width: 31% !important;
    max-width: 31% !important;
  }

  .inclusions-exclusions__list {
    flex: none !important;
    width: auto !important;
    max-width: none !important;
    margin-left: 31% !important;
  }

  /* Atomic units. A unit taller than one sheet still fragments, which is
     preferred over clipping it. */
  .accommodations-swiper .swiper-slide,
  .inclusions-exclusions__block,
  .get-to-your-tour__details-row,
  .bikes-guides__guide,
  .bikes-guides__note,
  .bikes-swiper .swiper-slide,
  .bike-safety__item,
  .travel-protection__card {
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  /* Arrival and Departure groups move whole when they fit on one sheet. On
     longer tours a group runs past a full sheet and still fragments between its
     atomic rows. The heading is tied to the first row so a group never starts
     with a stranded title. */
  .get-to-your-tour__details-block {
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  .get-to-your-tour__details-header {
    page-break-after: avoid !important;
    break-after: avoid-page !important;
  }

  /* The Inclusions heading and photo travel with the first block. */
  .inclusions-exclusions__header,
  .inclusions-exclusions__image {
    page-break-after: avoid !important;
    break-after: avoid-page !important;
  }

  .inclusions-exclusions__image {
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  /* Moved whole when they fit on one sheet; a taller one still fragments. */
  .image-collection-carousel,
  .price-details,
  .pricing-tiers,
  .terms-and-conditions__table-section,
  .pre-footer {
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }
  /* Print scale. The pre-footer section and its container both carried 14.5%
     side padding on a 100% width, so the section measured 1024px on a 794px
     sheet and Chromium shrank every page of the document to 77.5%. Any print
     rule that widens an element past the sheet has the same effect. */
  .pre-footer {
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .pre-footer .pre-footer__container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 3.5rem var(--pdf-side-padding) !important;
  }

  /* The screen min-width 260px / max-width 488px squeezed the list. */
  .pre-footer .pre-footer__content {
    display: grid !important;
    grid-template-columns: 36% 1fr !important;
    gap: 2.5rem !important;
  }

  .pre-footer .pre-footer__left {
    min-width: 0 !important;
    max-width: none !important;
  }

  .pre-footer .pre-footer__right {
    align-items: stretch !important;
  }

  .pre-footer .pre-footer__list {
    max-width: none !important;
  }

  .pre-footer .pre-footer__item {
    padding: 0.9rem 0 !important;
  }

  .pre-footer .pre-footer__title {
    font-size: 34px !important;
  }

  /* The icons share .get-to-your-tour__details-icon, hidden in print above. */
  .pre-footer .pre-footer__icon {
    display: inline-flex !important;
  }

  /* Closing sheet: the pre-footer fills the last sheet above a 30mm footer.
     Post-Booking has no pre-footer, so the footer closes the Terms sheet. */
  .pre-footer {
    page-break-before: always !important;
    break-before: page !important;
    break-after: avoid-page !important;
    min-height: calc(297mm - 30mm) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .footer {
    break-before: avoid-page !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    height: 30mm !important;
    box-sizing: border-box !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
  }

  .footer__container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.duvine-doc-final-document .terms-and-conditions {
    padding-bottom: 2rem !important;
  }

  /* Section openers. The wrapper had height: auto around an absolutely
     positioned image, so it collapsed to 0 and clipped the photo and title.
     Each opener starts a sheet and stays with the content that follows. */
  .get-to-your-tour__image-wrapper,
  .bikes__image-wrapper,
  .tour-price__image-wrapper {
    position: relative !important;
    height: 70mm !important;
    max-height: none !important;
    overflow: hidden !important;
    break-inside: avoid-page !important;
    break-after: avoid-page !important;
  }

  .bikes__image-wrapper {
    height: 80mm !important;
  }

  .get-to-your-tour__image,
  .bikes__image,
  .tour-price__image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .get-to-your-tour__overlay,
  .bikes__overlay,
  .tour-price__overlay {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    max-height: none !important;
  }

  .get-to-your-tour__content,
  .bikes__content,
  .tour-price__content {
    color: #fff !important;
    padding-bottom: 10mm !important;
  }

  .get-to-your-tour {
    padding-top: 0 !important;
    page-break-before: always !important;
    break-before: page !important;
  }

  section.bikes,
  .tour-price {
    margin-top: 0 !important;
    page-break-before: always !important;
    break-before: page !important;
    break-after: avoid-page !important;
  }

  #bikes {
    break-before: avoid-page !important;
    padding-top: 0 !important;
  }

  /* The video section prints only its still image (Package Image 2). */
  #video-component:has(img.video-component__element--image) {
    display: block !important;
    break-inside: avoid-page !important;
  }

  #video-component iframe,
  #video-component video,
  .video-component__content,
  .video-component__mute-toggle {
    display: none !important;
  }

  .video-component__container {
    padding-top: 0 !important;
    height: 95mm !important;
  }

  /* Itinerary days may continue on the next sheet; the day heading stays with
     its first lines. The wrappers go back to block fragmentation, as for the
     mini containers above. :is() matches the body.duvine-print-prep rules. */
  .itinerary__accordions,
  .itinerary__accordion-info {
    display: block !important;
  }

  :is(body.duvine-print-prep, body) .itinerary__accordion-left {
    grid-row: 1 !important;
  }

  :is(body.duvine-print-prep, body) .itinerary__accordion-day-featured {
    grid-row: 2 !important;
  }

  .itinerary__accordion + .itinerary__accordion {
    margin-top: 16px !important;
  }

  .itinerary__accordion-icon-item + .itinerary__accordion-icon-item {
    margin-top: 24px !important;
  }

  .itinerary__accordion {
    page-break-inside: auto !important;
    break-inside: auto !important;
    padding-top: 0 !important;
  }

  .itinerary__accordion-header,
  .price-details__header,
  .terms-and-conditions__header {
    break-after: avoid-page !important;
  }

  .itinerary__accordion-content,
  .itinerary__accordion-inner,
  .itinerary__footnote {
    break-before: avoid-page !important;
  }

  .itinerary__accordion-icon-item,
  .price-details__table {
    break-inside: avoid-page !important;
  }

  .itinerary__accordion-narrative p {
    orphans: 3 !important;
    widows: 3 !important;
  }

  /* Flex column: the same fragmentation bug as the mini containers. */
  .terms-and-conditions__body {
    display: block !important;
  }

  .terms-and-conditions__section {
    padding: 1.5rem 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }

  .terms-and-conditions__divider {
    break-after: avoid-page !important;
  }

  /* Moved whole, so it often starts a sheet; keep the title off the trim. */
  .pricing-tiers {
    padding-top: 14mm !important;
  }

  /* Content widths. These sat at 71% inside a 71% parent. */
  .get-to-your-tour__details-header {
    padding-bottom: 1rem !important;
  }

  .get-to-your-tour__details-list {
    margin-top: 0.75rem !important;
  }

  .get-to-your-tour__details-row {
    padding: 1rem 0 !important;
  }

  /* Trailing padding here produced a blank sheet before the closing sheet;
     margin is dropped at a break. */
  .image-collection-carousel {
    padding: 0 !important;
    break-before: avoid-page !important;
  }

  .image-collection-swiper {
    padding-bottom: 0 !important;
    margin-bottom: 10mm !important;
  }

  .image-collection-swiper .swiper-wrapper {
    flex-wrap: nowrap !important;
  }

  .image-collection-swiper .swiper-slide {
    width: calc(33.333% - 0.67rem) !important;
    max-width: calc(33.333% - 0.67rem) !important;
    flex: 0 0 calc(33.333% - 0.67rem) !important;
  }

  /* Printable safe area. @page margin is 0 so colour bands bleed; a sheet that
     starts mid-section repeats the inset instead of printing on the trim. */
  .itinerary,
  .inclusions-exclusions,
  .bikes-carousel {
    -webkit-box-decoration-break: clone !important;
    box-decoration-break: clone !important;
    padding-top: 14mm !important;
    padding-bottom: 12mm !important;
  }

  .bikes-carousel {
    padding-bottom: 0 !important;
  }

  .bikes-carousel__header {
    margin-bottom: 0 !important;
  }

  .bikes-swiper .swiper-wrapper {
    -webkit-box-decoration-break: clone !important;
    box-decoration-break: clone !important;
    padding-top: 12mm !important;
  }
}

/* Document validity: option hold expired banner (viewer) */
.duvine-hold-expired-banner {
  position: relative;
  z-index: 1000;
  background: #fff3cd;
  border-bottom: 2px solid #ffca28;
  padding: 0.875rem 1.5rem;
  text-align: center;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #5c4a00;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.duvine-hold-expired-banner__text {
  margin: 0;
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
}
.price-details__validity {
  margin: 0;
}
.price-details__validity + p {
  margin-top: 1.5em;
}
.price-details__validity-label {
  font-weight: 600;
}
/*# sourceMappingURL=main.css.map */
