/*------------------------------------*\
    #BOOKING-OVERLAY
\*------------------------------------*/
.c-booking-overlay {
  --t-booking-overlay-primary: #000;
  --t-booking-overlay-secondary: #333;
  --t-booking-overlay-tertiary: currentColor;
  --t-booking-overlay-muted: #eee;
  position: fixed;
  display: flex;
  flex-direction: column;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  transition: opacity 400ms;
  z-index: 1000;
  pointer-events: none;
  overflow: auto; }
  .booking-overlay-is-active .c-booking-overlay {
    opacity: 1;
    pointer-events: all; }
  .c-booking-overlay__mask {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
    cursor: pointer; }
  .c-booking-overlay__inner {
    position: relative;
    width: 100%;
    max-width: 400px;
    transform: translateX(100%);
    background-color: #fff;
    margin-left: auto;
    padding: 30px;
    border-radius: 7px 0 0 7px;
    transition: transform 400ms;
    z-index: 2;
    flex: 1; }
    .booking-overlay-is-active .c-booking-overlay__inner {
      transform: translateX(0); }
  .c-booking-overlay__close-button {
    position: absolute;
    display: flex;
    top: 0;
    right: 0;
    width: 45px;
    height: 45px;
    cursor: pointer; }
    .c-booking-overlay__close-button span {
      clip: rect(0 0 0 0);
      -webkit-clip-path: inset(50%);
              clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px; }
    .c-booking-overlay__close-button svg {
      display: block;
      width: 20px;
      height: 20px;
      margin: auto;
      fill: var(--t-booking-overlay-tertiary); }
  .c-booking-overlay__sections {
    padding-top: 40px;
    height: 100%;
    display: flex;
    flex-direction: column; }
  .c-booking-overlay__section {
    position: relative;
    display: flex;
    flex-direction: column;
    flex-grow: 1; }
    .c-booking-overlay__section:before {
      content: "Back";
      color: var(--t-booking-overlay-tertiary);
      position: absolute;
      top: 0;
      left: 0;
      display: none;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4.7' height='8.5'%3E%3Cpath d='M4 .7.5 4.2 4 7.8' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat scroll left;
      padding-left: 15px; }
    .c-booking-overlay__section[data-section-id="options"]:not(.is-active):before, .c-booking-overlay__section[data-section-id="options"].sub-options-is-active:before {
      display: block; }
    .c-booking-overlay__section [data-section-id="sub-options"]:not(.is-active) {
      display: none; }
    .c-booking-overlay__section[data-section-id="options"].sub-options-is-active > .c-booking-overlay__section-content > .c-booking-overlay__option:not(.is-active) {
      display: none; }
    .c-booking-overlay__section[data-section-id="options"].sub-options-is-active > .c-booking-overlay__section-content [data-section-id="sub-options"].is-active {
      display: block; }
    .c-booking-overlay__section-heading {
      position: relative;
      margin-bottom: 30px;
      font-size: 130%;
      color: var(--t-booking-overlay-tertiary);
      cursor: pointer;
      opacity: 0; }
      .c-booking-overlay__section-heading:after {
        content: '';
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        width: 25px;
        height: 25px;
        border-radius: 100%;
        background: var(--t-booking-overlay-tertiary) no-repeat center 6px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='768' height='768'%3E%3Cpath d='M704 352H416V64h-64v288H64v64h288v288h64V416h288z' fill='%23fff'/%3E%3C/svg%3E");
        background-size: 50% auto; }
      .c-booking-overlay__sub-section .c-booking-overlay__section-heading {
        opacity: 1;
        line-height: 1; }
        .c-booking-overlay__sub-section .c-booking-overlay__section-heading:after {
          content: none; }
    .c-booking-overlay__section-content {
      display: none; }
    .c-booking-overlay__section.is-active {
      height: 100%; }
      .c-booking-overlay__section.is-active .c-booking-overlay__section-content {
        display: flex;
        flex-direction: column;
        flex-grow: 1; }
    .c-booking-overlay__section.is-active:not(.sub-options-is-active) .c-booking-overlay__section-heading {
      cursor: default;
      opacity: 1; }
      .c-booking-overlay__section.is-active:not(.sub-options-is-active) .c-booking-overlay__section-heading:after {
        display: none; }
    .c-booking-overlay__section:not(:first-child):not(.is-active):not(.sub-options-active) {
      display: none; }
    .c-booking-overlay__section:not(:first-child) {
      border-top: solid 1px var(--t-booking-overlay-muted);
      padding-top: 30px; }
  .c-booking-overlay__option {
    display: block;
    width: 100%;
    margin-bottom: 25px;
    font-size: 110%;
    text-align: left;
    line-height: 1;
    cursor: pointer; }
    .c-booking-overlay__option, .c-booking-overlay__option:hover, .c-booking-overlay__option:active, .c-booking-overlay__option:focus {
      color: var(--t-booking-overlay-tertiary); }
    .c-booking-overlay__option .crop {
      margin-top: 5px;
      padding-bottom: 40%;
      background: no-repeat center center;
      background-size: cover; }
  .c-booking-overlay__cta {
    margin-top: 30px;
    margin-left: -30px;
    margin-right: -30px;
    margin-bottom: -30px;
    padding: 20px;
    background-color: var(--t-booking-overlay-primary);
    color: #fff;
    text-align: center;
    flex-grow: 1; }
    .c-booking-overlay__cta-heading {
      margin-bottom: 15px;
      font-size: 120%;
      color: #fff; }
    .c-booking-overlay__cta-button {
      display: inline-block;
      background-color: #fff;
      padding: 1ch 2ch;
      border-radius: 3px; }
      .c-booking-overlay__cta-button, .c-booking-overlay__cta-button:hover, .c-booking-overlay__cta-button:active, .c-booking-overlay__cta-button:focus {
        color: var(--t-booking-overlay-primary); }
  .c-booking-overlay__sub-options .c-booking-overlay__section-heading {
    margin-top: -50px;
    line-height: 1.2;
    opacity: 1;
    pointer-events: none; }
    .c-booking-overlay__sub-options .c-booking-overlay__section-heading:after {
      content: none; }
  .c-booking-overlay .c-datepicker-booking-form__fields {
    position: relative;
    display: flex;
    margin-bottom: 30px; }
  .c-booking-overlay .c-datepicker-booking-form__field {
    position: relative;
    width: 50%; }
    .c-booking-overlay .c-datepicker-booking-form__field:first-child {
      z-index: 2; }
      .c-booking-overlay .c-datepicker-booking-form__field:first-child > span {
        border-radius: 3px 0 0 3px; }
    .c-booking-overlay .c-datepicker-booking-form__field:last-child {
      margin-left: -1px;
      z-index: 1; }
      .c-booking-overlay .c-datepicker-booking-form__field:last-child > label {
        left: 20px; }
      .c-booking-overlay .c-datepicker-booking-form__field:last-child > span {
        border-radius: 0 3px 3px 0;
        padding-left: 20px; }
    .c-booking-overlay .c-datepicker-booking-form__field-label {
      position: absolute;
      top: 10px;
      left: 14px;
      font-size: 80%;
      opacity: .5; }
    .c-booking-overlay .c-datepicker-booking-form__field-value {
      display: block;
      padding: 30px 14px 10px;
      border: solid 1px transparent;
      background-color: var(--t-booking-overlay-muted); }
      .c-booking-overlay .c-datepicker-booking-form__field-value:empty::before {
        content: attr(data-placeholder); }
      .c-booking-overlay .c-datepicker-booking-form__field-value.is-active {
        border-color: var(--t-booking-overlay-primary); }
  .c-booking-overlay .c-datepicker-booking-form__arrow {
    position: absolute;
    display: flex;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 24px;
    height: 24px;
    background-color: var(--t-booking-overlay-muted);
    z-index: 3; }
    .c-booking-overlay .c-datepicker-booking-form__arrow svg {
      width: 16px;
      height: 16px;
      margin: auto;
      fill: var(--t-booking-overlay-primary); }
  .c-booking-overlay .c-datepicker-booking-form__stepper {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px; }
    .c-booking-overlay .c-datepicker-booking-form__stepper-text {
      margin-right: auto; }
    .c-booking-overlay .c-datepicker-booking-form__stepper-label, .c-booking-overlay .c-datepicker-booking-form__stepper-value, .c-booking-overlay .c-datepicker-booking-form__stepper-definition {
      color: var(--t-booking-overlay-tertiary); }
    .c-booking-overlay .c-datepicker-booking-form__stepper-definition {
      font-size: 80%; }
    .c-booking-overlay .c-datepicker-booking-form__stepper-button {
      border: 1px solid var(--t-booking-overlay-muted);
      border-radius: 50%;
      width: 25px;
      height: 25px;
      padding: 5px;
      display: flex; }
      .c-booking-overlay .c-datepicker-booking-form__stepper-button.is-disabled {
        opacity: .2; }
      .c-booking-overlay .c-datepicker-booking-form__stepper-button svg {
        display: block;
        width: 50%;
        margin: auto; }
      .c-booking-overlay .c-datepicker-booking-form__stepper-button path {
        stroke: var(--t-booking-overlay-tertiary); }
    .c-booking-overlay .c-datepicker-booking-form__stepper-value {
      width: 40px;
      text-align: center;
      padding: 0 5px; }
  .c-booking-overlay .c-datepicker-booking-form__submit {
    display: block;
    width: 100%;
    background-color: var(--t-booking-overlay-primary);
    padding: 2ch;
    border-radius: 3px;
    text-align: center;
    cursor: pointer;
    margin-top: 20px; }
    .c-booking-overlay .c-datepicker-booking-form__submit, .c-booking-overlay .c-datepicker-booking-form__submit:hover, .c-booking-overlay .c-datepicker-booking-form__submit:active, .c-booking-overlay .c-datepicker-booking-form__submit:focus {
      color: #fff; }
  .c-booking-overlay .c-datepicker-booking-form .c-datepicker-message {
    background-color: var(--t-booking-overlay-primary);
    color: #fff;
    padding: 1ch 2ch;
    text-align: center;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    border-radius: 3px 3px 0 0; }
    .c-booking-overlay .c-datepicker-booking-form .c-datepicker-message p {
      margin: 0; }
  .c-booking-overlay .flatpickr-calendar {
    width: auto !important;
    font-size: 90%;
    outline: none;
    position: relative; }
  .c-booking-overlay .flatpickr-input {
    display: none; }
  .c-booking-overlay .flatpickr-months {
    display: flex;
    align-items: center;
    margin-bottom: 15px; }
  .c-booking-overlay .flatpickr-month {
    flex: 1; }
    .c-booking-overlay .flatpickr-month input {
      height: auto;
      margin: 0;
      padding: 0;
      border: none;
      background: none;
      box-shadow: none;
      font-size: inherit;
      color: var(--t-booking-overlay-tertiary);
      text-align: center;
      pointer-events: none;
      line-height: inherit; }
  .c-booking-overlay .flatpickr-current-month {
    display: flex;
    justify-content: center; }
    .c-booking-overlay .flatpickr-current-month .numInputWrapper {
      width: 45px; }
  .c-booking-overlay .flatpickr-weekdaycontainer {
    display: flex; }
  .c-booking-overlay .flatpickr-weekday {
    width: 14.285%;
    padding: 10px 0;
    border-bottom: solid 1px var(--t-booking-overlay-muted);
    text-align: center; }
  .c-booking-overlay .flatpickr-days {
    width: auto !important;
    outline: none;
    display: flex;
    justify-content: space-between;
    align-items: flex-start; }
    .c-booking-overlay .flatpickr-days .dayContainer {
      display: flex;
      flex-wrap: wrap; }
      .c-booking-overlay .flatpickr-days .dayContainer > * {
        width: 14.285%;
        text-align: center; }
  .c-booking-overlay .flatpickr-day {
    padding: 10px 0;
    outline: none;
    cursor: pointer;
    position: relative; }
    .c-booking-overlay .flatpickr-day.prevMonthDay, .c-booking-overlay .flatpickr-day.nextMonthDay {
      opacity: 0; }
    .c-booking-overlay .flatpickr-day.inRange, .c-booking-overlay .flatpickr-day.startRange, .c-booking-overlay .flatpickr-day.endRange {
      opacity: 1; }
    .c-booking-overlay .flatpickr-day.inRange {
      background-color: var(--t-booking-overlay-secondary);
      color: white; }
    .c-booking-overlay .flatpickr-day.selected, .c-booking-overlay .flatpickr-day.endRange {
      border-radius: 4px;
      background-color: var(--t-booking-overlay-primary);
      color: white; }
    .c-booking-overlay .flatpickr-day.startRange {
      border-radius: 4px 0 0 4px; }
    .c-booking-overlay .flatpickr-day.endRange {
      border-radius: 0 4px 4px 0; }
    .c-booking-overlay .flatpickr-day.startRange.endRange {
      border-radius: 4px; }
    .has-pricing-data .flatpickr-day {
      height: 55px;
      padding: 5px 2px;
      margin: 2px 0; }
      .has-pricing-data .flatpickr-day .price {
        display: block;
        font-size: .7em;
        line-height: .7em; }
  .c-booking-overlay .has-pricing-data .flatpickr-day {
    height: 55px;
    padding: 5px 2px;
    margin: 2px 0; }
    .c-booking-overlay .has-pricing-data .flatpickr-day .price {
      display: block;
      font-size: .7em;
      line-height: .7em; }
  .c-booking-overlay .flatpickr-disabled {
    opacity: .4;
    cursor: default; }
    .c-booking-overlay .flatpickr-disabled.available:not(.outofrange) {
      opacity: 1;
      color: #999; }
    .c-booking-overlay .flatpickr-disabled[data-disabledreason]:hover:before {
      content: attr(data-disabledreason); }
    .c-booking-overlay .flatpickr-disabled[data-disabledreason]:before {
      position: absolute;
      bottom: 100%;
      left: 0;
      font-size: 14px;
      background-color: white;
      border: 1px solid var(--t-booking-overlay-primary);
      padding: 5px;
      white-space: nowrap; }
    .c-booking-overlay .flatpickr-disabled:nth-child(7n+6):before, .c-booking-overlay .flatpickr-disabled:nth-child(7n+7):before {
      right: 0;
      left: auto; }
  .c-booking-overlay .flatpickr-prev-month, .c-booking-overlay .flatpickr-next-month {
    position: relative;
    display: block;
    width: 30px;
    height: 30px;
    background: no-repeat center center;
    cursor: pointer; }
    .c-booking-overlay .flatpickr-prev-month svg, .c-booking-overlay .flatpickr-next-month svg {
      display: none; }
  .c-booking-overlay .flatpickr-prev-month {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4.743' height='8.486' viewBox='0 0 4.743 8.486'%3E%3Cpath d='M0,0,3.536,3.536,7.072,0' transform='translate(4.036 0.707) rotate(90)' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1'/%3E%3C/svg%3E%0A"); }
  .c-booking-overlay .flatpickr-next-month {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4.743' height='8.486'%3E%3Cpath d='M.707 7.779l3.536-3.536L.707.707' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .c-booking-overlay .onejourney-tagline {
    display: flex;
    justify-content: flex-end;
    margin-top: 25px; }
    .c-booking-overlay .onejourney-tagline svg {
      height: 14px; }
