#tide-product {
    font-family: var(--tide-booking-font-body);
    font-size: var(--tide-booking-font-size-body);
    line-height: var(--tide-booking-line-height-body);
    color: var(--tide-booking-gray-dark);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: 1690px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    padding: 0 15px
}

#tide-product #tide-product,
#tide-product .dropdown select,
#tide-product .qsm__panel,
#tide-product .qsm,
#tide-product .button,
#tide-product .form__row,
#tide-product .form__region,
#tide-product .form__group,
#tide-product .form__label,
#tide-product .form,
#tide-product ul li,
#tide-product ol li,
#tide-product dl li,
#tide-product ul,
#tide-product ol,
#tide-product dl {
    padding: 0;
    margin: 0;
    box-sizing: border-box
}

#tide-product .cta {
    height: var(--tide-booking-cta-height);
    width: var(--tide-booking-cta-width);
    padding: var(--tide-booking-cta-padding);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    gap: 5px;
    outline: none;
    border-radius: var(--tide-booking-cta-border-radius);
    border: var(--tide-booking-cta-border);
    line-height: 1.2;
    font-family: var(--tide-booking-cta-font-family-secondary);
    font-size: var(--tide-booking-cta-font-size);
    font-weight: var(--tide-booking-cta-font-weight);
    text-decoration: var(--tide-booking-cta-text-decoration);
    color: var(--tide-booking-cta-color);
    background: var(--tide-booking-cta-background);
    box-sizing: border-box;
    transition: all .3s ease
}

@media only screen and (min-width: 576px) {
    #tide-product .cta {
        width: var(--tide-booking-cta-width-xs);
        height: var(--tide-booking-cta-height-xs);
        font-size: var(--tide-booking-cta-font-size-xs)
    }
}

#tide-product .cta .icon {
    width: var(--tide-booking-cta-icon-size);
    height: var(--tide-booking-cta-icon-size)
}

#tide-product .cta:hover {
    background: var(--tide-booking-cta-background-hover);
    text-decoration: var(--tide-booking-cta-text-decoration-hover);
    color: var(--tide-booking-cta-color-hover);
    fill: var(--tide-booking-cta-icon-color-hover);
    border: var(--tide-booking-cta-border-hover)
}

#tide-product .cta:focus,
#tide-product .cta:active {
    text-decoration: var(--tide-booking-cta-text-decoration-focus);
    background: var(--tide-booking-cta-background-focus);
    color: var(--tide-booking-cta-color-focus);
    fill: var(--tide-booking-cta-icon-color-focus);
    border: var(--tide-booking-cta-border-focus)
}

#tide-product .cta span {
    display: flex;
    align-items: center;
    gap: 5px
}

#tide-product .cta--secondary {
    height: var(--tide-booking-cta-height-secondary);
    width: var(--tide-booking-cta-width-secondary);
    padding: var(--tide-booking-cta-padding-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    align-self: center;
    outline: none;
    border-radius: var(--tide-booking-cta-border-radius-secondary);
    border: var(--tide-booking-cta-border-secondary);
    line-height: 1.2;
    font-family: var(--tide-booking-cta-font-family-secondary);
    font-size: var(--tide-booking-cta-font-size-secondary);
    font-weight: var(--tide-booking-cta-font-weight-secondary);
    text-decoration: var(--tide-booking-cta-text-decoration-secondary);
    color: var(--tide-booking-cta-color-secondary);
    background: var(--tide-booking-cta-background-secondary);
    box-sizing: border-box;
    transition: all .3s ease
}

@media only screen and (min-width: 576px) {
    #tide-product .cta--secondary {
        height: var(--tide-booking-cta-height-xs-secondary);
        font-size: var(--tide-booking-cta-font-size-xs-secondary)
    }
}

#tide-product .cta--secondary .icon {
    width: var(--tide-booking-cta-icon-size-secondary);
    height: var(--tide-booking-cta-icon-size-secondary);
    fill: var(--tide-booking-color-primary)
}

#tide-product .cta--secondary:hover {
    background: var(--tide-booking-cta-background-secondary-hover);
    color: var(--tide-booking-cta-color-secondary-hover);
    fill: var(--tide-booking-cta-icon-color-secondary-hover);
    border: var(--tide-booking-cta-border-secondary-hover);
    text-decoration: var(--tide-booking-cta-text-decoration-secondary-hover)
}

#tide-product .cta--secondary:focus,
#tide-product .cta--secondary:active {
    text-decoration: none;
    background: var(--tide-booking-cta-background-secondary-focus);
    color: var(--tide-booking-cta-color-secondary-focus);
    fill: var(--tide-booking-cta-icon-color-secondary-focus);
    border: var(--tide-booking-cta-border-secondary-focus);
    text-decoration: var(--tide-booking-cta-text-decoration-secondary-hover)
}

#tide-product .cta--secondary span {
    display: flex;
    align-items: center;
    gap: 5px
}

#tide-product #tide-product::-webkit-scrollbar {
    width: 8px;
    height: 8px
}

#tide-product #tide-product::-webkit-scrollbar-track {
    padding: 2px;
    background: rgba(0, 0, 0, 0)
}

#tide-product #tide-product::-webkit-scrollbar-thumb {
    border-radius: 4px;
    background-color: #cbcbcb
}

#tide-product .dropdown select,
#tide-product .cta--add-remove .icon,
#tide-product .cta--add-remove,
#tide-product .cta,
#tide-product .typeahead__option .button,
#tide-product .button,
#tide-product .form__input,
#tide-product a {
    transition-duration: .2s;
    transition-property: width, height, transform, border, fill, color, background-color, box-shadow, opacity;
    transition-timing-function: ease-out
}

#tide-product h1,
#tide-product h2,
#tide-product h3,
#tide-product h4,
#tide-product h5,
#tide-product h6 {
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color)
}

#tide-product h1:empty,
#tide-product h2:empty,
#tide-product h3:empty,
#tide-product h4:empty,
#tide-product h5:empty,
#tide-product h6:empty {
    display: none
}

#tide-product h1 em,
#tide-product h2 em,
#tide-product h3 em,
#tide-product h4 em,
#tide-product h5 em,
#tide-product h6 em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

#tide-product h1,
#tide-product h2,
#tide-product h3 {
    margin-bottom: 15px
}

#tide-product h4,
#tide-product h5,
#tide-product h6 {
    margin-bottom: 11.25px
}

#tide-product h1 {
    font-size: var(--tide-booking-h1)
}

@media only screen and (min-width: 768px) {
    #tide-product h1 {
        font-size: var(--tide-booking-h1-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product h1 {
        font-size: var(--tide-booking-h1-xl)
    }
}

#tide-product h2 {
    font-size: var(--tide-booking-h2)
}

@media only screen and (min-width: 768px) {
    #tide-product h2 {
        font-size: var(--tide-booking-h2-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product h2 {
        font-size: var(--tide-booking-h2-xl)
    }
}

#tide-product h3 {
    font-size: var(--tide-booking-h3)
}

@media only screen and (min-width: 768px) {
    #tide-product h3 {
        font-size: var(--tide-booking-h3-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product h3 {
        font-size: var(--tide-booking-h3-xl)
    }
}

#tide-product h4 {
    font-size: var(--tide-booking-h4)
}

@media only screen and (min-width: 768px) {
    #tide-product h4 {
        font-size: var(--tide-booking-h4-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product h4 {
        font-size: var(--tide-booking-h4-xl)
    }
}

#tide-product h5 {
    font-size: var(--tide-booking-h5)
}

@media only screen and (min-width: 1650px) {
    #tide-product h5 {
        font-size: var(--tide-booking-h5-xl)
    }
}

#tide-product h6 {
    font-size: var(--tide-booking-h6)
}

@media only screen and (min-width: 992px) {
    #tide-product h6 {
        font-size: var(--tide-booking-h6-md)
    }
}

#tide-product h6+p {
    margin-top: -4.5px
}

#tide-product p {
    margin-top: 0
}

#tide-product a {
    color: var(--tide-booking-a-color);
    cursor: pointer;
    outline: none;
    text-decoration: var(--tide-booking-a-text-decoration)
}

#tide-product a:hover,
#tide-product a:focus,
#tide-product a:active {
    outline: none
}

#tide-product a:hover {
    color: var(--tide-booking-a-color-hover);
    text-decoration: var(--tide-booking-a-text-decoration-hover)
}

#tide-product a:focus,
#tide-product a:active {
    color: var(--tide-booking-a-color-focus);
    text-decoration: var(--tide-booking-a-text-decoration-focus)
}

#tide-product ul,
#tide-product ol,
#tide-product dl {
    margin-left: 19.95px
}

#tide-product input {
    min-height: var(--tide-booking-datepicker-input-height);
    padding: 0 15px;
    border: var(--tide-booking-datepicker-input-border);
    border-radius: var(--tide-booking-datepicker-input-border-radius);
    font-family: var(--tide-booking-font-body);
    font-size: var(--tide-booking-font-size-body);
    font-weight: 400;
    outline: none;
    color: var(--tide-booking-datepicker-input-color);
    background-color: var(--tide-booking-datepicker-input-background)
}

@media only screen and (min-width: 1200px) {
    #tide-product input {
        font-size: var(--tide-booking-font-size-body-lg);
        min-height: var(--tide-booking-datepicker-input-height-lg)
    }
}

#tide-product input:hover,
#tide-product input:focus,
#tide-product input:focus-within,
#tide-product input:active {
    outline: none
}

#tide-product textarea {
    min-height: 250px;
    max-height: 60vh;
    padding: 12px 15px;
    font-family: var(--tide-booking-font-body);
    font-size: var(--input-font-size--mobile);
    border-radius: 5px;
    resize: vertical;
    outline: none
}

@media only screen and (min-width: 576px) {
    #tide-product textarea {
        font-size: var(--input-font-size--desktop)
    }
}

#tide-product textarea:focus,
#tide-product textarea:active {
    border: var(--tide-booking-form-input-border-focus)
}

#tide-product button {
    cursor: pointer;
    outline: none
}

#tide-product button:hover,
#tide-product button:focus,
#tide-product button:active {
    outline: none
}

#tide-product strong {
    font-weight: 400;
    color: var(--tide-booking-black)
}

#tide-product small {
    font-size: var(--tide-booking-small-font-size--mobile)
}

@media only screen and (min-width: 576px) {
    #tide-product small {
        font-size: var(--tide-booking-small-font-size--desktop)
    }
}

#tide-product ::-webkit-input-placeholder {
    font-style: var(--tide-booking-form-input-placeholder-font-style);
    color: var(--tide-booking-form-input-placeholder-color)
}

#tide-product ::-moz-placeholder {
    font-style: var(--tide-booking-form-input-placeholder-font-style);
    color: var(--tide-booking-form-input-placeholder-color)
}

#tide-product :-ms-input-placeholder {
    font-style: var(--tide-booking-form-input-placeholder-font-style);
    color: var(--tide-booking-form-input-placeholder-color)
}

#tide-product :-moz-placeholder {
    font-style: var(--tide-booking-form-input-placeholder-font-style);
    color: var(--tide-booking-form-input-placeholder-color)
}

#tide-product .loader {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    z-index: 1
}

#tide-product .loader__spinner {
    max-width: 50px;
    max-height: 50px;
    min-width: 50px;
    min-height: 50px;
    border: var(--tide-booking-spinner-border);
    border-top-color: var(--tide-booking-spinner-border-top-color);
    border-radius: 50%;
    border-radius: 50%;
    animation: spin 2s linear infinite
}

#tide-product .loader__spinner--dots {
    width: auto;
    height: auto;
    border: none;
    border-radius: initial;
    animation: initial
}

#tide-product .loader__spinner--dots:after {
    content: " .";
    font-size: 20px;
    animation: dots 1s steps(5, end) infinite
}

#tide-product .loader--centered {
    width: 100%;
    align-items: center
}

@keyframes spin {
    0% {
        transform: rotate(0deg)
    }

    100% {
        transform: rotate(360deg)
    }
}

@keyframes dots {

    0%,
    20% {
        color: rgba(0, 0, 0, 0);
        text-shadow: .25em 0 0 rgba(0, 0, 0, 0), .5em 0 0 rgba(0, 0, 0, 0)
    }

    40% {
        color: var(--tide-booking-spinner-animation-color);
        text-shadow: .25em 0 0 rgba(0, 0, 0, 0), .5em 0 0 rgba(0, 0, 0, 0)
    }

    60% {
        text-shadow: .25em 0 0 var(--tide-booking-spinner-animation-color), .5em 0 0 rgba(0, 0, 0, 0)
    }

    80%,
    100% {
        text-shadow: .25em 0 0 var(--tide-booking-spinner-animation-color), .5em 0 0 var(--tide-booking-spinner-animation-color)
    }
}

#tide-product .decrement-increment {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    min-height: var(--tide-booking-decrement-increment-height)
}

@media only screen and (min-width: 576px) {
    #tide-product .decrement-increment {
        display: grid;
        grid-template-columns: 125px auto;
        justify-content: flex-start
    }
}

#tide-product .decrement-increment__label {
    margin-bottom: 0;
    display: flex;
    font-family: var(--tide-booking-decrement-increment-label-font);
    font-weight: var(--tide-booking-decrement-increment-label-font-weight);
    color: var(--tide-booking-decrement-increment-label-color)
}

#tide-product .decrement-increment__ui {
    display: flex;
    align-items: center;
    gap: 8px
}

#tide-product .decrement-increment__ui span {
    min-width: 30px;
    text-align: center;
    font-family: var(--tide-booking-decrement-increment-number-font);
    font-weight: var(--tide-booking-decrement-increment-number-font-weight);
    color: var(--tide-booking-decrement-increment-number-color)
}

#tide-product .form__wrapper {
    display: flex;
    flex-direction: column;
    gap: 20rem
}

#tide-product .form__label {
    margin-bottom: 7.5px;
    display: flex;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    line-height: 22px
}

#tide-product .form__input {
    width: 100%;
    border: var(--tide-booking-form-input-border);
    background: var(--tide-booking-form-input-background);
    border-radius: var(--tide-booking-form-input-border-radius);
    box-sizing: border-box
}

#tide-product .form__group {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px
}

#tide-product .form__group-input {
    position: relative;
    width: 100%
}

#tide-product .form__group--icon:focus .icon svg,
#tide-product .form__group--icon:focus-within .icon svg,
#tide-product .form__group--icon:active .icon svg {
    fill: var(--tide-booking-color-secondary)
}

#tide-product .form__group--icon .form__label {
    position: absolute;
    top: 3px;
    left: 47.5px;
    font-size: 14px;
    pointer-events: none;
    color: var(--tide-booking-datepicker-input-label-color)
}

@media only screen and (min-width: 768px) {
    #tide-product .form__group--icon .form__label {
        left: 17.5px
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__group--icon .form__label {
        font-size: 16px
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__group--icon .form__label {
        left: 47.5px
    }
}

#tide-product .form__group--icon .form__input {
    min-height: var(--tide-booking-datepicker-input-height);
    padding: 0 15px;
    border: var(--tide-booking-datepicker-input-border);
    border-radius: var(--tide-booking-datepicker-input-border-radius);
    font-family: var(--tide-booking-font-body);
    font-size: var(--tide-booking-font-size-body);
    font-weight: 400;
    outline: none;
    color: var(--tide-booking-datepicker-input-color);
    background-color: var(--tide-booking-datepicker-input-background);
    padding-left: 20px;
    padding-top: 16px
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__group--icon .form__input {
        font-size: var(--tide-booking-font-size-body-lg);
        min-height: var(--tide-booking-datepicker-input-height-lg)
    }
}

#tide-product .form__group--icon .form__input:hover,
#tide-product .form__group--icon .form__input:focus,
#tide-product .form__group--icon .form__input:focus-within,
#tide-product .form__group--icon .form__input:active {
    outline: none
}

@media only screen and (min-width: 768px) {
    #tide-product .form__group--icon .form__input {
        padding-left: 20px
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__group--icon .form__input {
        padding-left: 20px
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__group--icon .form__input {
        font-size: 15.5px
    }
}

#tide-product .form__group--icon .form .typeahead__trigger {
    height: 45px;
    max-height: 45px;
    padding-left: 40px;
    font-size: 16px;
    background-color: var(--tide-booking-white)
}

@media only screen and (min-width: 768px) {
    #tide-product .form__group--icon .form .typeahead__trigger {
        padding-left: 10px
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__group--icon .form .typeahead__trigger {
        padding-left: 40px
    }
}

#tide-product .form__group--datepicker .form__group-input {
    width: 50%
}

#tide-product .form__group--submit .cta {
    width: 100%;
    justify-content: center
}

#tide-product .form__group--success-message:before {
    content: "";
    width: 49.95px;
    height: 19.95px;
    border-left: 2.5px solid var(--tide-booking-black);
    border-bottom: 2.5px solid var(--tide-booking-black);
    margin: 0 auto 45px auto;
    transform: rotate(-45deg)
}

#tide-product .form__region+.form__region {
    margin-top: 60px
}

#tide-product .form__region-header {
    margin-bottom: 4.5px;
    display: flex;
    flex-flow: row wrap;
    align-items: center
}

@media only screen and (min-width: 576px) {
    #tide-product .form__region-heading {
        padding-right: 30px
    }
}

#tide-product .form__region-label {
    width: 100%;
    order: 2
}

@media only screen and (min-width: 576px) {
    #tide-product .form__region-label {
        width: auto;
        margin-top: 0;
        order: initial;
        margin-bottom: 11px
    }
}

#tide-product .form__region--errors {
    padding-left: 0 !important;
    border: none !important;
    color: var(--tide-booking-invalid)
}

#tide-product .form__twocolumn {
    display: flex;
    flex-direction: column
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__twocolumn {
        flex-direction: row
    }
}

#tide-product .form__twocolumn+#tide-product .form__twocolumn {
    margin-top: 15px
}

#tide-product .form__twocolumn+.form__row {
    margin-top: 15px
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__twocolumn-column {
        padding-right: 18px
    }
}

#tide-product .form__twocolumn-column .form__twocolumn-column+.form__twocolumn-column {
    margin-top: 15px
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__twocolumn-column .form__twocolumn-column+.form__twocolumn-column {
        margin-top: 0;
        padding-left: 18px;
        padding-right: 0
    }
}

#tide-product .form__row {
    margin-right: -7.5px;
    margin-left: -7.5px;
    display: flex;
    flex-wrap: wrap
}

#tide-product .form__row .form__group {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-height: 1px;
    padding-right: 7.5px;
    padding-left: 7.5px;
    margin-bottom: 15px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    flex-basis: 100%
}

#tide-product .form__row .form__group:last-of-type {
    margin-bottom: 0
}

#tide-product .form__row .form__group--10 {
    width: 10%;
    flex: 0 0 10%
}

#tide-product .form__row .form__group--20 {
    width: 20%;
    flex: 0 0 20%
}

#tide-product .form__row .form__group--25 {
    width: 25%;
    flex: 0 0 25%
}

#tide-product .form__row .form__group--30 {
    width: 30%;
    flex: 0 0 30%
}

#tide-product .form__row .form__group--33 {
    width: 33.33%;
    flex: 0 0 33.33%
}

#tide-product .form__row .form__group--40 {
    width: 40%;
    flex: 0 0 40%
}

#tide-product .form__row .form__group--50 {
    width: 50%;
    flex: 0 0 50%
}

#tide-product .form__row .form__group--60 {
    width: 60%;
    flex: 0 0 60%
}

#tide-product .form__row .form__group--66 {
    width: 66.66%;
    flex: 0 0 66.66%
}

#tide-product .form__row .form__group--70 {
    width: 70%;
    flex: 0 0 70%
}

#tide-product .form__row .form__group--75 {
    width: 75%;
    flex: 0 0 75%
}

#tide-product .form__row .form__group--80 {
    width: 80%;
    flex: 0 0 80%
}

#tide-product .form__row .form__group--90 {
    width: 90%;
    flex: 0 0 90%
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-10 {
        width: 10%;
        flex-basis: 10%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-20 {
        width: 20%;
        flex-basis: 20%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-25 {
        width: 25%;
        flex-basis: 25%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-30 {
        width: 30%;
        flex-basis: 30%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-33 {
        width: 33.33%;
        flex-basis: 33.33%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-40 {
        width: 40%;
        flex-basis: 40%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-50 {
        width: 50%;
        flex-basis: 50%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-60 {
        width: 60%;
        flex-basis: 60%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-66 {
        width: 66.66%;
        flex-basis: 66.66%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-70 {
        width: 70%;
        flex-basis: 70%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-75 {
        width: 75%;
        flex-basis: 75%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-80 {
        width: 80%;
        flex-basis: 80%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-90 {
        width: 90%;
        flex-basis: 90%
    }
}

@media only screen and (min-width: 576px) {
    #tide-product .form__row .form__group--xs-100 {
        width: 100%;
        flex-basis: 100%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-10 {
        width: 10%;
        flex-basis: 10%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-20 {
        width: 20%;
        flex-basis: 20%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-25 {
        width: 25%;
        flex-basis: 25%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-30 {
        width: 30%;
        flex-basis: 30%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-33 {
        width: 33.33%;
        flex-basis: 33.33%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-40 {
        width: 40%;
        flex-basis: 40%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-50 {
        width: 50%;
        flex-basis: 50%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-60 {
        width: 60%;
        flex-basis: 60%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-66 {
        width: 66.66%;
        flex-basis: 66.66%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-70 {
        width: 70%;
        flex-basis: 70%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-75 {
        width: 75%;
        flex-basis: 75%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-80 {
        width: 80%;
        flex-basis: 80%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-90 {
        width: 90%;
        flex-basis: 90%
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row .form__group--sm-100 {
        width: 100%;
        flex-basis: 100%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-10 {
        width: 10%;
        flex-basis: 10%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-20 {
        width: 20%;
        flex-basis: 20%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-25 {
        width: 25%;
        flex-basis: 25%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-30 {
        width: 30%;
        flex-basis: 30%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-33 {
        width: 33.33%;
        flex-basis: 33.33%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-40 {
        width: 40%;
        flex-basis: 40%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-50 {
        width: 50%;
        flex-basis: 50%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-60 {
        width: 60%;
        flex-basis: 60%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-66 {
        width: 66.66%;
        flex-basis: 66.66%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-70 {
        width: 70%;
        flex-basis: 70%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-75 {
        width: 75%;
        flex-basis: 75%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-80 {
        width: 80%;
        flex-basis: 80%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-90 {
        width: 90%;
        flex-basis: 90%
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__row .form__group--md-100 {
        width: 100%;
        flex-basis: 100%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-10 {
        width: 10%;
        flex-basis: 10%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-20 {
        width: 20%;
        flex-basis: 20%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-25 {
        width: 25%;
        flex-basis: 25%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-30 {
        width: 30%;
        flex-basis: 30%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-33 {
        width: 33.33%;
        flex-basis: 33.33%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-40 {
        width: 40%;
        flex-basis: 40%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-50 {
        width: 50%;
        flex-basis: 50%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-60 {
        width: 60%;
        flex-basis: 60%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-66 {
        width: 66.66%;
        flex-basis: 66.66%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-70 {
        width: 70%;
        flex-basis: 70%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-75 {
        width: 75%;
        flex-basis: 75%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-80 {
        width: 80%;
        flex-basis: 80%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-90 {
        width: 90%;
        flex-basis: 90%
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__row .form__group--lg-100 {
        width: 100%;
        flex-basis: 100%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-10 {
        width: 10%;
        flex-basis: 10%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-20 {
        width: 20%;
        flex-basis: 20%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-25 {
        width: 25%;
        flex-basis: 25%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-30 {
        width: 30%;
        flex-basis: 30%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-33 {
        width: 33.33%;
        flex-basis: 33.33%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-40 {
        width: 40%;
        flex-basis: 40%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-50 {
        width: 50%;
        flex-basis: 50%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-60 {
        width: 60%;
        flex-basis: 60%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-66 {
        width: 66.66%;
        flex-basis: 66.66%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-70 {
        width: 70%;
        flex-basis: 70%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-75 {
        width: 75%;
        flex-basis: 75%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-80 {
        width: 80%;
        flex-basis: 80%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-90 {
        width: 90%;
        flex-basis: 90%
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__row .form__group--xl-100 {
        width: 100%;
        flex-basis: 100%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-10 {
        width: 10%;
        flex-basis: 10%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-20 {
        width: 20%;
        flex-basis: 20%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-25 {
        width: 25%;
        flex-basis: 25%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-30 {
        width: 30%;
        flex-basis: 30%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-33 {
        width: 33.33%;
        flex-basis: 33.33%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-40 {
        width: 40%;
        flex-basis: 40%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-50 {
        width: 50%;
        flex-basis: 50%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-60 {
        width: 60%;
        flex-basis: 60%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-66 {
        width: 66.66%;
        flex-basis: 66.66%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-70 {
        width: 70%;
        flex-basis: 70%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-75 {
        width: 75%;
        flex-basis: 75%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-80 {
        width: 80%;
        flex-basis: 80%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-90 {
        width: 90%;
        flex-basis: 90%
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__row .form__group--xxl-100 {
        width: 100%;
        flex-basis: 100%
    }
}

#tide-product .form__row .form__group--datepicker {
    flex-direction: row
}

#tide-product .form__row .form__group--success-message {
    max-width: var(--tide-booking-container-article);
    margin-right: auto;
    margin-left: auto
}

#tide-product .form__row .form__group--inline {
    width: auto;
    flex-grow: 0;
    white-space: nowrap
}

#tide-product .form__row+.form__row {
    margin-top: 15px
}

#tide-product .form__row--actions .form__group {
    flex-flow: row nowrap;
    align-items: flex-end;
    justify-content: flex-end
}

#tide-product .form__row--additional-actions .form__group {
    display: flex;
    flex-direction: column;
    display: inline-flex;
    justify-content: center;
    align-items: center
}

@media only screen and (min-width: 768px) {
    #tide-product .form__row--additional-actions .form__group {
        flex-direction: row
    }
}

#tide-product .form__row--choose-office {
    display: flex
}

#tide-product .form__row--disclaimer {
    width: 100%
}

#tide-product .form__row--validation {
    margin-bottom: 15px;
    flex-direction: column;
    color: var(--tide-booking-invalid-dark)
}

#tide-product .form__row--validation p {
    opacity: 1
}

#tide-product .form__row--validation ul {
    margin-inline-start: 30px;
    margin-top: 10px
}

#tide-product .form__row--validation .form__group {
    flex-basis: initial
}

#tide-product .form__row--inline {
    align-items: flex-end
}

#tide-product .form__row--inline .form__group {
    margin-bottom: 0
}

#tide-product .form__group {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px
}

#tide-product .form__group-input {
    position: relative;
    width: 100%
}

#tide-product .form__group .checkbox+.checkbox {
    margin-top: 15px
}

#tide-product .form__group .radiobutton+.radiobutton {
    margin-top: 15px
}

#tide-product .form__group--error .form__label {
    color: var(--tide-booking-invalid)
}

#tide-product .form__group--error .form__input {
    border-color: var(--tide-booking-invalid-light);
    color: var(--tide-booking-invalid-dark);
    background: var(--tide-booking-invalid-light)
}

#tide-product .form__group--error .radiobutton__label {
    color: var(--tide-booking-invalid-dark)
}

#tide-product .form__group--error .radiobutton__input {
    border: 2px solid var(--tide-booking-invalid-dark);
    background: var(--tide-booking-invalid-light)
}

#tide-product .form__group--error .radiobutton__input:after {
    background: var(--tide-booking-invalid-dark)
}

#tide-product .form__group--error ::-webkit-input-placeholder {
    color: var(--tide-booking-invalid-dark)
}

#tide-product .form__group--error ::-moz-placeholder {
    color: var(--tide-booking-invalid-dark)
}

#tide-product .form__group--error :-ms-input-placeholder {
    color: var(--tide-booking-invalid-dark)
}

#tide-product .form__group--error :-moz-placeholder {
    color: var(--tide-booking-invalid-dark)
}

#tide-product .form__group--icon:focus .icon svg,
#tide-product .form__group--icon:focus-within .icon svg,
#tide-product .form__group--icon:active .icon svg {
    fill: var(--tide-booking-color-secondary)
}

#tide-product .form__group--icon .form__label {
    position: absolute;
    top: 3px;
    left: 47.5px;
    font-size: 13px;
    pointer-events: none
}

@media only screen and (min-width: 768px) {
    #tide-product .form__group--icon .form__label {
        left: 17.5px
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__group--icon .form__label {
        left: 47.5px
    }
}

#tide-product .form__group--icon .form__input {
    height: 45px;
    max-height: 45px;
    padding-left: 20px;
    padding-top: 16px;
    font-size: 14.5px;
    background-color: #fff
}

@media only screen and (min-width: 768px) {
    #tide-product .form__group--icon .form__input {
        padding-left: 20px
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__group--icon .form__input {
        padding-left: 20px
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__group--icon .form__input {
        font-size: 15.5px
    }
}

#tide-product .form__group--icon .form .typeahead__trigger {
    height: 45px;
    max-height: 45px;
    padding-left: 40px;
    font-size: 16px;
    background-color: #fff
}

@media only screen and (min-width: 768px) {
    #tide-product .form__group--icon .form .typeahead__trigger {
        padding-left: 10px
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__group--icon .form .typeahead__trigger {
        padding-left: 40px
    }
}

#tide-product .form__group--datepicker .form__group-input {
    width: 50%
}

#tide-product .form__group--datepicker .form__group-input:nth-child(1) .form__input {
    border-radius: 5px 0 0 5px
}

#tide-product .form__group--datepicker .form__group-input:nth-child(2) .form__input {
    border-radius: 0 5px 5px 0
}

#tide-product .form__group--submit .cta {
    width: 100%;
    justify-content: center
}

#tide-product .form__group--success-message:before {
    content: "";
    width: 49.95px;
    height: 19.95px;
    border-left: 2.5px solid #000;
    border-bottom: 2.5px solid #000;
    margin: 0 auto 45px auto;
    transform: rotate(-45deg)
}

#tide-product .form__error-heading {
    font-family: var(--tide-booking-font-heading)
}

#tide-product .form__room {
    display: grid;
    grid-template-rows: repeat(1, 1fr);
    gap: 15px;
    padding: 15px;
    background: var(--tide-booking-room-options-card-background);
    outline: var(--tide-booking-room-options-card-border);
    border-radius: var(--tide-booking-room-options-card-border-radius)
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room {
        gap: 25px;
        grid-template-columns: 75% 20%;
        justify-content: space-between
    }
}

#tide-product .form__room__container {
    margin-top: -25px
}

#tide-product .form__room__header {
    font-size: var(--tide-booking-h3);
    color: #666
}

@media only screen and (min-width: 768px) {
    #tide-product .form__room__header {
        font-size: var(--tide-booking-h3-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__room__header {
        font-size: var(--tide-booking-h3-xl)
    }
}

#tide-product .form__room__wrapper {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: repeat(1, 1fr);
    gap: 15px
}

@media only screen and (min-width: 768px) {
    #tide-product .form__room__wrapper {
        gap: 25px;
        grid-template-columns: 230px 1fr
    }
}

#tide-product .form__room__image {
    width: 100%;
    height: 230px;
    object-fit: cover;
    overflow: hidden;
    border-radius: var(--tide-booking-room-options-image-border-radius);
    position: relative
}

#tide-product .form__room__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center
}

#tide-product .form__room__favorite {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #26b489;
    font-size: 20px
}

#tide-product .form__room__footer {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    gap: 10px
}

@media only screen and (min-width: 576px) {
    #tide-product .form__room__footer {
        flex-direction: row
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__footer {
        display: flex;
        flex-direction: column;
        align-items: flex-end
    }
}

#tide-product .form__room__footer p {
    margin-bottom: 0;
    font-size: 14px;
    padding-bottom: 2px
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__footer p {
        font-size: 16px;
        text-align: right
    }
}

#tide-product .form__room__footer__top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    width: 100%
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__footer__top {
        align-items: flex-end
    }
}

#tide-product .form__room__footer__bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    width: 100%;
    max-width: 230px
}

#tide-product .form__room__footer .cta {
    width: 100%;
    max-width: 230px;
    justify-content: center
}

#tide-product .form__room__title {
    font-family: var(--tide-booking-room-options-title-font-family);
    font-weight: var(--tide-booking-room-options-title-font-weight);
    color: var(--tide-booking-room-options-title-color);
    margin-bottom: 5px
}

#tide-product .form__room__text {
    font-size: 14px;
    line-height: 18px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical
}

#tide-product .form__room__days {
    font-size: 14px
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__days {
        font-size: 16px;
        text-align: right
    }
}

#tide-product .form__room__usps {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;
    row-gap: 0rem;
    margin: 0
}

#tide-product .form__room__select {
    display: grid;
    grid-template-rows: repeat(1, 1fr);
    gap: 10px;
    margin-top: 15px
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__select {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px
    }
}

#tide-product .form__room__price {
    font-size: 16px;
    font-weight: 400;
    margin-bottom: 5px
}

#tide-product .form__room__price span {
    font-size: 20px;
    font-weight: 400
}

#tide-product .form__room__price--increase {
    color: var(--tide-booking-price-increase)
}

#tide-product .form__room__price--decrease {
    color: var(--tide-booking-price-decrease)
}

#tide-product .form__room__alternatives__header {
    margin: 30px 0rem 10px 0rem;
    font-size: var(--tide-booking-h6);
    color: var(--tide-booking-room-options-alternative-header-color);
    font-size: 16px
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__alternatives__header {
        font-size: var(--tide-booking-h6-md)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__room__alternatives__header {
        font-size: 18px
    }
}

#tide-product .form__room__alternatives__btn {
    margin-bottom: 5px;
    outline: none;
    border: none;
    background: rgba(0, 0, 0, 0);
    text-align: right;
    color: var(--tide-booking-room-options-alternative-btn-color);
    text-decoration: var(--tide-booking-room-options-alternative-btn-text-decoration);
    transition: color .3s ease, text-decoration .3s ease
}

#tide-product .form__room__alternatives__btn:hover {
    text-decoration: var(--tide-booking-room-options-alternative-btn-text-decoration-hover);
    color: var(--tide-booking-room-options-alternative-btn-color-hover)
}

#tide-product .form__room__alternatives__content {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: repeat(1, 1fr);
    gap: 15px
}

@media only screen and (min-width: 768px) {
    #tide-product .form__room__alternatives__content {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media only screen and (min-width: 1920px) {
    #tide-product .form__room__alternatives__content {
        grid-template-columns: repeat(3, 1fr)
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__alternatives__content .form__room {
        display: grid;
        grid-template-rows: repeat(1, 1fr);
        grid-template-columns: 1fr
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .form__room__alternatives__content .form__room__wrapper {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-template-rows: repeat(1, 1fr);
        gap: 15px
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__alternatives__content .form__room__footer {
        flex-direction: row
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__alternatives__content .form__room__footer__top {
        align-items: flex-start
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__alternatives__content .form__room__dates {
        text-align: left;
        font-size: 14px
    }
}

@media only screen and (min-width: 992px) {
    #tide-product .form__room__alternatives__content .form__room__days {
        text-align: left;
        font-size: 14px
    }
}

#tide-product .form__twocolumn-column+.form__twocolumn-column {
    margin-top: 15px
}

@media only screen and (min-width: 1650px) {
    #tide-product .form__twocolumn-column+.form__twocolumn-column {
        margin-top: 0;
        padding-left: 18px;
        padding-right: 0
    }
}

#tide-product .booking .form {
    max-width: 100%
}

#tide-product .booking .form__region .booking-card__body {
    background-color: rgba(0, 0, 0, 0)
}

#tide-product .form__travelers__wrapper {
    background: var(--tide-booking-form-card-background);
    outline: var(--tide-booking-form-card-border);
    border-radius: var(--tide-booking-form-card-border-radius);
    margin-top: -25px
}

#tide-product .form__travelers .form__region {
    padding: 15px
}

@media only screen and (min-width: 768px) {
    #tide-product .form__travelers .form__region {
        padding: 15px
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .form__travelers .form__region {
        padding: 15px;
        padding-bottom: 20px
    }
}

#tide-product .form__travelers .form__region-heading {
    margin-bottom: 0px
}

#tide-product .form__travelers .form__region-header {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    margin: 15px 0px;
    margin-top: 5px
}

#tide-product .form__travelers .form__region-label {
    margin-top: 5px;
    margin-bottom: 0;
    font-size: 16px;
    color: var(--tide-booking-form-card-label-color)
}

@media only screen and (min-width: 576px) {
    #tide-product .form__travelers .form__region-label {
        margin-top: 0px
    }
}

#tide-product .form__travelers .form__group {
    gap: 5px;
    margin-bottom: 0px;
    min-height: 85px
}

#tide-product .form__travelers .form__group .form__label {
    color: var(--tide-booking-form-label-color);
    font-family: var(--tide-booking-form-label-font-family);
    font-weight: var(--tide-booking-form-label-font-weight)
}

#tide-product .form__travelers .form__group--error .form__label {
    color: var(--tide-booking-invalid)
}

#tide-product .form__travelers .form__group .form__input {
    min-height: var(--tide-booking-form-input-height)
}

#tide-product .form__travelers .form__group .form__input:focus,
#tide-product .form__travelers .form__group .form__input:active {
    border: var(--tide-booking-form-input-border-focus)
}

#tide-product .booking .form__region--errors {
    background-color: rgba(0, 0, 0, 0);
    padding-left: 15px !important
}

#tide-product .booking .form__region+.form__region {
    margin-top: 0;
    border-top: var(--tide-booking-form-group-border)
}

#tide-product .booking__panel .typeahead .form__input {
    outline: var(--tide-booking-form-typeahead-agent-border);
    background: var(--tide-booking-form-typeahead-agent-background);
    border-radius: var(--tide-booking-form-typeahead-agent-border-radius);
    color: var(--tide-booking-form-typeahead-agent-color)
}

#tide-product .form__booking--summary {
    margin-top: -25px;
    background: var(--tide-booking-form-summary-background);
    border-radius: var(--tide-booking-form-summary-border-radius);
    outline: var(--tide-booking-form-summary-border)
}

#tide-product .form__booking--summary .form__region {
    padding: 22.5px 15px
}

#tide-product .form__booking--summary .form__row+.form__row {
    margin-top: 0px
}

#tide-product .form__booking--summary li {
    font-size: 16px;
    line-height: 1.6
}

#tide-product .form__booking--summary li p {
    font-size: 16px;
    line-height: 1.6
}

#tide-product .form__booking--message {
    margin-top: -25px;
    background: var(--tide-booking-confirmation-background);
    border-radius: var(--tide-booking-confirmation-border-radius);
    outline: var(--tide-booking-confirmation-border);
    padding: 0px 15px
}

#tide-product .form__booking--flight .booking-card__group {
    outline: none;
    border-radius: 0px;
    background: rgba(0, 0, 0, 0)
}

#tide-product .button {
    border: none;
    background: rgba(0, 0, 0, 0);
    cursor: pointer;
    outline: none
}

#tide-product .button:hover,
#tide-product .button:focus,
#tide-product .button:active {
    outline: none
}

#tide-product .button--clear {
    width: 25px;
    height: 25px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border: none;
    background: rgba(0, 0, 0, 0)
}

#tide-product .button--clear:before,
#tide-product .button--clear:after {
    content: "";
    position: absolute;
    width: 16px;
    height: 1px;
    background-color: var(--tide-booking-form-typeahead-agent-clear-icon-color)
}

#tide-product .button--clear:before {
    transform: rotate(45deg)
}

#tide-product .button--clear:after {
    transform: rotate(-45deg)
}

#tide-product .button--decrement,
#tide-product .button--increment {
    position: relative;
    width: var(--tide-booking-decrement-increment-width);
    height: var(--tide-booking-decrement-increment-height);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 var(--tide-booking-decrement-increment-width);
    border-radius: var(--tide-booking-decrement-increment-border-radius);
    border: var(--tide-booking-decrement-increment-border);
    background: var(--tide-booking-decrement-increment-background);
    transition: all .3s ease
}

#tide-product .button--decrement .icon,
#tide-product .button--increment .icon {
    width: var(--tide-booking-decrement-increment-icon-width);
    height: var(--tide-booking-decrement-increment-icon-height);
    fill: var(--tide-booking-decrement-increment-icon-color)
}

#tide-product .button--decrement:hover,
#tide-product .button--increment:hover {
    background: var(--tide-booking-decrement-increment-background-hover);
    color: var(--tide-booking-decrement-increment-color-hover);
    fill: var(--tide-booking-decrement-increment-icon-color-hover);
    border: var(--tide-booking-decrement-increment-border-hover)
}

#tide-product .button--decrement:hover .icon,
#tide-product .button--increment:hover .icon {
    fill: var(--tide-booking-decrement-increment-icon-color-hover)
}

#tide-product .button--decrement:focus,
#tide-product .button--decrement:active,
#tide-product .button--increment:focus,
#tide-product .button--increment:active {
    background: var(--tide-booking-decrement-increment-background-focus);
    color: var(--tide-booking-decrement-increment-color-focus);
    fill: var(--tide-booking-decrement-increment-icon-color-focus);
    border: var(--tide-booking-decrement-increment-border-focus)
}

#tide-product .button--decrement:focus .icon,
#tide-product .button--decrement:active .icon,
#tide-product .button--increment:focus .icon,
#tide-product .button--increment:active .icon {
    fill: var(--tide-booking-decrement-increment-icon-color-focus)
}

#tide-product .button--disabled {
    opacity: .5;
    cursor: not-allowed
}

#tide-product .button--min,
#tide-product .button--plus {
    position: relative;
    width: 3.5rem;
    height: 3.5rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background-color: var(--tide-booking-bg-secondary)
}

#tide-product .button--min:active,
#tide-product .button--plus:active {
    opacity: 1;
    outline: none;
    fill: var(--tide-booking-color-primary-dark);
    color: var(--tide-booking-color-primary-dark);
    background-color: var(--tide-booking-transparent)
}

#tide-product .button--min:hover,
#tide-product .button--plus:hover {
    opacity: 1;
    outline: none;
    fill: var(--tide-booking-color-primary);
    color: var(--tide-booking-color-primary);
    background-color: var(--tide-booking-transparent)
}

#tide-product .button--min:before,
#tide-product .button--plus:before {
    content: "";
    position: absolute;
    width: 1.2rem;
    height: .2rem;
    display: inline-flex;
    background-color: var(--tide-booking-color-primary)
}

#tide-product .button--plus:after {
    content: "";
    position: absolute;
    width: 1.2rem;
    height: .2rem;
    transform: rotate(90deg);
    display: inline-flex;
    background-color: var(--tide-booking-color-primary)
}

#tide-product .typeahead__option .button {
    width: 100%;
    padding: 12px 15px;
    flex-shrink: 0;
    text-align: left;
    color: var(--tide-booking-form-typeahead-agent-options-color)
}

#tide-product .typeahead__option .button:hover {
    color: var(--tide-booking-form-typeahead-agent-options-color-hover);
    background-color: var(--tide-booking-form-typeahead-agent-options-background-hover)
}

#tide-product .typeahead__option-header .button {
    padding: 10.05px 15px;
    font-size: 15px;
    font-style: normal
}

#tide-product .typeahead__option--tree .typeahead__option-header .button {
    padding-left: 15px
}

#tide-product .form__group .typeahead .button--clear {
    position: absolute;
    right: 15px
}

@media only screen and (min-width: 576px) {
    #tide-product .cta--add {
        margin: var(--tide-booking-cta-margin-secondary)
    }
}

#tide-product .cta--add span {
    display: flex;
    align-items: center;
    gap: 5px
}

#tide-product .cta--disabled {
    opacity: .5;
    pointer-events: none;
    cursor: not-allowed
}

#tide-product .cta--disabled:hover,
#tide-product .cta--disabled:focus,
#tide-product .cta--disabled:active {
    opacity: .5
}

#tide-product .cta--icon {
    flex-shrink: 0;
    white-space: nowrap
}

#tide-product .cta--secondary .icon {
    width: 16px;
    height: 16px
}

#tide-product .cta--select {
    background: var(--tide-booking-cta-background-select);
    color: var(--tide-booking-cta-color-select);
    border: var(--tide-booking-cta-border-select);
    border-radius: var(--tide-booking-cta-border-radius-select)
}

#tide-product .cta--select:hover,
#tide-product .cta--select:focus,
#tide-product .cta--select:active {
    border: var(--tide-booking-cta-border-select-hover);
    background: var(--tide-booking-cta-background-select-hover);
    color: var(--tide-booking-cta-color-select-hover)
}

#tide-product .cta--selected {
    background: var(--tide-booking-cta-background-selected);
    color: var(--tide-booking-cta-color-selected);
    border: var(--tide-booking-cta-border-selected);
    border-radius: var(--tide-booking-flight-options-filter-btn-border-radius)
}

#tide-product .cta--selected:before {
    content: "";
    width: 13px;
    height: 6px;
    margin-right: 8px;
    display: inline-flex;
    flex-shrink: 0;
    border-left: 1.5px solid var(--tide-booking-cta-color-selected-icon);
    border-bottom: 1.5px solid var(--tide-booking-cta-color-selected-icon);
    transform: rotate(-45deg) translate3D(2px, -1px, 0)
}

#tide-product .cta--selected:hover,
#tide-product .cta--selected:focus,
#tide-product .cta--selected:active {
    border: var(--tide-booking-cta-border-selected);
    background: var(--tide-booking-cta-background-selected);
    color: var(--tide-booking-cta-color-selected)
}

#tide-product .cta--filter {
    position: absolute;
    right: 15px;
    top: -70px;
    width: auto;
    display: flex;
    align-items: center;
    padding: 10px;
    gap: 5px;
    background: var(--tide-booking-flight-options-filter-btn-background);
    color: var(--tide-booking-flight-options-filter-btn-color);
    border: var(--tide-booking-flight-options-filter-btn-border);
    border-radius: var(--tide-booking-flight-options-filter-btn-border-radius)
}

@media only screen and (min-width: 576px) {
    #tide-product .cta--filter {
        padding: var(--tide-booking-cta-padding)
    }
}

#tide-product .cta--filter span {
    display: none
}

@media only screen and (min-width: 576px) {
    #tide-product .cta--filter span {
        display: flex
    }
}

#tide-product .cta--filter svg {
    fill: var(--tide-booking-flight-options-filter-btn-icon-color)
}

#tide-product .cta--filter:hover,
#tide-product .cta--filter:focus,
#tide-product .cta--filter:active {
    border: var(--tide-booking-flight-options-filter-btn-hover-border);
    background: var(--tide-booking-flight-options-filter-btn-hover-background);
    color: var(--tide-booking-flight-options-filter-btn-hover-color)
}

#tide-product .cta--filter:hover svg,
#tide-product .cta--filter:focus svg,
#tide-product .cta--filter:active svg {
    fill: var(--tide-booking-flight-options-filter-btn-hover-icon-color)
}

#tide-product .cta--close {
    padding: 0px;
    background: rgba(0, 0, 0, 0);
    border: none;
    position: absolute;
    top: -5px;
    right: 0px;
    justify-content: flex-end
}

#tide-product .cta--close .icon {
    width: 25px;
    height: 25px;
    fill: var(--tide-booking-flight-options-filter-header-close-icon-color)
}

#tide-product .cta--close:hover,
#tide-product .cta--close:focus,
#tide-product .cta--close:active {
    border: none;
    background: rgba(0, 0, 0, 0)
}

#tide-product .cta--close:hover .icon,
#tide-product .cta--close:focus .icon,
#tide-product .cta--close:active .icon {
    fill: var(--tide-booking-flight-options-filter-header-close-icon-color)
}

#tide-product .cta--add-remove {
    padding: 5px;
    background: var(--tide-booking-form-summary-voucher-remove-btn-background);
    border: var(--tide-booking-form-summary-voucher-remove-btn-border);
    border-radius: var(--tide-booking-form-summary-voucher-remove-btn-border-radius);
    display: flex;
    justify-content: center;
    align-items: center
}

#tide-product .cta--add-remove .icon {
    width: 16px;
    height: 16px;
    fill: var(--tide-booking-form-summary-voucher-remove-btn-color)
}

#tide-product .cta--add-remove:hover,
#tide-product .cta--add-remove:focus,
#tide-product .cta--add-remove:active {
    border: var(--tide-booking-form-summary-voucher-remove-btn-border-hover);
    background: var(--tide-booking-form-summary-voucher-remove-btn-background-hover)
}

#tide-product .cta--add-remove:hover .icon,
#tide-product .cta--add-remove:focus .icon,
#tide-product .cta--add-remove:active .icon {
    fill: var(--tide-booking-form-summary-voucher-remove-btn-color-hover)
}

#tide-product .qsm__panel {
    position: absolute;
    border-radius: .5rem;
    border: var(--tide-booking-datepicker-container-border);
    box-sizing: border-box
}

#tide-product .qsm__close {
    position: absolute;
    right: 15px;
    top: 15px;
    fill: var(--tide-booking-datepicker-close-color)
}

#tide-product .dropdown {
    position: relative;
    display: flex;
    flex-direction: column
}

#tide-product .dropdown:after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    right: 10px;
    top: 43%;
    border-bottom: 1.5px solid;
    border-left: 1.5px solid;
    border-color: var(--tide-booking-dropdown-arrow-color);
    transform: rotate(-45deg) translateY(-50%);
    transition-duration: .2s;
    transition-property: width, height, transform, border, fill, color, background, box-shadow, opacity;
    transition-timing-function: ease-out
}

#tide-product .dropdown:hover:after {
    border-color: var(--tide-booking-dropdown-arrow-color-hover)
}

#tide-product .dropdown select {
    width: 100%;
    height: var(--tide-booking-dropdown-height);
    border: var(--tide-booking-dropdown-border);
    border-radius: var(--tide-booking-dropdown-border-radius);
    font-family: var(--tide-booking-dropdown-font-family);
    font-size: 16px;
    background: var(--tide-booking-dropdown-background);
    outline: none;
    box-shadow: none;
    cursor: pointer;
    -moz-appearance: none;
    -webkit-appearance: none;
    padding-left: 15px
}

@media only screen and (min-width: 1200px) {
    #tide-product .dropdown select {
        font-size: 18px
    }
}

#tide-product .dropdown select:focus,
#tide-product .dropdown select:active {
    border: var(--tide-booking-dropdown-border-focus);
    outline: none;
    box-shadow: none
}

#tide-product .dropdown select:disabled {
    cursor: not-allowed
}

#tide-product .dropdown select:disabled .dropdown::after {
    border-color: var(--tide-booking-dropdown-arrow-color-disabled)
}

#tide-product .dropdown select:disabled .dropdown::afterhover {
    border-color: var(--tide-booking-dropdown-arrow-color-disabled)
}

#tide-product .dropdown--small select {
    padding-right: 30px;
    padding-left: 10px
}

#tide-product .date-range-picker {
    display: flex;
    width: 100%;
    padding: 15px;
    gap: 30px;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box
}

@media only screen and (min-width: 992px) {
    #tide-product .date-range-picker {
        flex-flow: row
    }
}

#tide-product .date-range-picker * {
    box-sizing: border-box
}

#tide-product .date-range-picker__from,
#tide-product .date-range-picker__to {
    flex-basis: 50%
}

#tide-product .calendar {
    display: flex;
    flex-flow: column
}

#tide-product .calendar__header {
    display: flex;
    flex-flow: column
}

#tide-product .calendar__pager {
    font-size: var(--tide-booking-h4);
    position: relative;
    display: flex;
    align-items: center;
    height: 30px;
    gap: 5px;
    color: var(--tide-booking-datepicker-month-color);
    font-family: var(--tide-booking-datepicker-month-font)
}

@media only screen and (min-width: 768px) {
    #tide-product .calendar__pager {
        font-size: var(--tide-booking-h4-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .calendar__pager {
        font-size: var(--tide-booking-h4-xl)
    }
}

#tide-product .calendar__current-month {
    flex-grow: 1;
    text-align: center
}

#tide-product .calendar__current-month:first-letter {
    text-transform: uppercase
}

#tide-product .calendar__previous,
#tide-product .calendar__next {
    width: auto;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tide-booking-datepicker-prev-next-color);
    fill: var(--tide-booking-datepicker-prev-next-color);
    background: var(--tide-booking-datepicker-prev-next-background);
    cursor: pointer
}

#tide-product .calendar__previous--disabled,
#tide-product .calendar__next--disabled {
    visibility: hidden
}

#tide-product .calendar__previous .icon,
#tide-product .calendar__next .icon {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    width: 15px !important;
    height: 15px !important;
    display: block !important
}

@media(max-width: 991px) {
    #tide-product .calendar__next {
        position: absolute;
        top: initial;
        right: 0;
        justify-content: flex-end
    }
}

#tide-product .calendar__previous {
    transform: rotate(180deg)
}

#tide-product .calendar__day-labels {
    display: flex;
    justify-content: stretch;
    margin: 10px 0;
    font-size: 16px;
    color: var(--tide-booking-datepicker-day-labels-color)
}

@media only screen and (min-width: 1200px) {
    #tide-product .calendar__day-labels {
        font-size: 18px
    }
}

#tide-product .calendar__day-label {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    width: 55px
}

#tide-product .calendar__body {
    display: flex;
    flex-flow: column;
    gap: 3px;
    width: 100%
}

#tide-product .calendar__week {
    display: flex;
    gap: 3px
}

#tide-product .calendar__day {
    position: relative;
    width: 14.2857142857%;
    height: 45px;
    padding: 2px 0;
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    border-radius: var(--tide-booking-datepicker-day-border-radius);
    border: var(--tide-booking-datepicker-day-border);
    font-size: 16px;
    line-height: 1;
    background: var(--tide-booking-datepicker-day-background);
    color: var(--tide-booking-datepicker-day-color);
    transition-property: border, background-color, color;
    transition-duration: 200ms;
    box-sizing: border-box;
    cursor: pointer;
    overflow: hidden
}

@media only screen and (min-width: 1200px) {
    #tide-product .calendar__day {
        font-size: 18px
    }
}

#tide-product .calendar__day:hover {
    color: var(--tide-booking-datepicker-day-color-hover);
    background: var(--tide-booking-datepicker-day-background-hover);
    border: var(--tide-booking-datepicker-day-border-hover)
}

#tide-product .calendar__day--selected {
    border: var(--tide-booking-datepicker-day-border-selected);
    background-color: var(--tide-booking-datepicker-day-background-selected);
    color: var(--tide-booking-datepicker-day-color-selected)
}

#tide-product .calendar__day--selected:hover {
    border: var(--tide-booking-datepicker-day-border-selected-hover);
    background: var(--tide-booking-datepicker-day-background-selected-hover);
    color: var(--tide-booking-datepicker-day-color-selected-hover)
}

#tide-product .calendar__day--disabled {
    color: var(--tide-booking-datepicker-day-color-disabled);
    background: var(--tide-booking-datepicker-day-background-disabled);
    border: var(--tide-booking-datepicker-day-border-disabled);
    cursor: not-allowed
}

#tide-product .calendar__day--disabled:hover {
    color: var(--tide-booking-datepicker-day-color-disabled);
    background: var(--tide-booking-datepicker-day-background-disabled);
    border: var(--tide-booking-datepicker-day-border-disabled)
}

#tide-product .calendar__day--outside-month {
    color: var(--tide-booking-datepicker-day-color-outside-month);
    background: var(--tide-booking-datepicker-day-background-outside-month);
    border: var(--tide-booking-datepicker-day-border-outside-month);
    opacity: var(--tide-booking-datepicker-day-opacity-outside-month)
}

#tide-product .calendar__day--outside-month:hover {
    color: var(--tide-booking-datepicker-day-color-outside-month);
    background: var(--tide-booking-datepicker-day-background-outside-month);
    border: var(--tide-booking-datepicker-day-border-outside-month)
}

#tide-product .qsm__panel--mobile {
    top: 0;
    position: fixed;
    bottom: 0
}

#tide-product .qsm__panel .date-range-picker {
    margin: auto
}

#tide-product .qsm__panel .date-range-picker__from,
#tide-product .qsm__panel .date-range-picker__to {
    width: 100%;
    flex-basis: initial
}

@media only screen and (min-width: 768px) {
    #tide-product .product-intro .qsm--inline .qsm__panel--dates-pricing {
        width: 100% !important;
        left: 2px !important
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product .product-intro .qsm--inline .qsm__panel--dates-pricing {
        width: auto !important;
        left: initial !important;
        padding: 15px
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product {
        font-size: var(--tide-booking-font-size-body-lg)
    }
}

#tide-product.has-overlay,
#tide-product.has-itinerary-schedule-active {
    overflow: hidden
}

@media only screen and (min-width: 992px) {
    #tide-product {
        padding: 0 30px
    }
}

@media only screen and (min-width: 1200px) {
    #tide-product {
        padding: 0 45px
    }
}

#tide-product .booking-product {
    background: var(--tide-booking-component-background);
    border-radius: var(--tide-booking-component-radius);
    border: var(--tide-booking-component-border);
    width: 100%
}

#tide-product .booking-product__header {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: var(--tide-booking-component-header-background);
    color: var(--tide-booking-component-header-color);
    border-radius: var(--tide-booking-component-header-border-radius);
    padding: 20px 30px;
    gap: 20px
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__header {
        display: flex;
        justify-content: center;
        justify-content: space-between;
        flex-direction: row;
        gap: 10px
    }
}

#tide-product .booking-product__hotel {
    display: flex;
    flex-direction: column;
    gap: 0px
}

#tide-product .booking-product__hotel .rating .icon {
    fill: var(--tide-booking-component-header-star-rating)
}

#tide-product .booking-product__title {
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color);
    font-size: var(--tide-booking-h1);
    color: var(--tide-booking-component-header-title)
}

#tide-product .booking-product__title:empty {
    display: none
}

#tide-product .booking-product__title em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__title {
        font-size: var(--tide-booking-h1-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .booking-product__title {
        font-size: var(--tide-booking-h1-xl)
    }
}

#tide-product .booking-product__price {
    display: flex;
    flex-direction: column;
    gap: 10px
}

#tide-product .booking-product__price .pricing {
    display: flex;
    flex-direction: column;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 20px
}

@media only screen and (min-width: 992px) {
    #tide-product .booking-product__price .pricing {
        justify-content: flex-end !important;
        align-items: flex-end !important
    }
}

#tide-product .booking-product__price .pricing__price {
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color);
    color: var(--tide-booking-component-header-price-color);
    font-family: var(--tide-booking-component-header-price-font-family);
    font-size: var(--tide-booking-component-header-price-font-size--mobile);
    font-weight: var(--tide-booking-component-header-price-font-weight)
}

#tide-product .booking-product__price .pricing__price:empty {
    display: none
}

#tide-product .booking-product__price .pricing__price em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

@media only screen and (min-width: 992px) {
    #tide-product .booking-product__price .pricing__price {
        font-size: var(--tide-booking-component-header-price-font-size--desktop)
    }
}

#tide-product .booking-product__price .pricing__header {
    display: flex;
    justify-content: center;
    justify-content: flex-start;
    flex-shrink: 0;
    white-space: nowrap
}

@media only screen and (min-width: 992px) {
    #tide-product .booking-product__price .pricing__header {
        justify-content: flex-end
    }
}

#tide-product .booking-product__price .pricing__header * {
    line-height: 1
}

#tide-product .booking-product__price .pricing__footer {
    text-transform: uppercase;
    font-size: 12px
}

#tide-product .booking-product__price .package-icons {
    justify-content: flex-end
}

@media only screen and (min-width: 992px) {
    #tide-product .booking-product__price .package-icons {
        width: auto;
        margin-left: auto !important
    }
}

#tide-product .booking-product__price .package-icons svg {
    fill: var(--tide-booking-component-header-icon-color)
}

#tide-product .booking-product__price .package-icons {
    display: flex;
    justify-content: flex-start;
    align-items: center
}

#tide-product .booking-product__price .package-icons__icon {
    display: flex;
    justify-content: flex-start;
    align-items: center
}

#tide-product .booking-product__price .package-icons__icon+.package-icons__icon:before {
    content: "+";
    color: var(--tide-booking-component-header-icon-color);
    display: inline;
    margin: 0 10px;
    transition: color .2s ease-out
}

#tide-product .booking-product__body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 20px 30px;
    gap: 30px
}

#tide-product .booking-product__body .booking-product__room__header,
#tide-product .booking-product__body .booking-product__room__body,
#tide-product .booking-product__body .booking-product__room__group-header,
#tide-product .booking-product__body .booking-product__room__footer {
    background-color: rgba(0, 0, 0, 0);
    padding: 0
}

#tide-product .booking-product__body .booking-product__room__actions {
    position: relative;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__body .booking-product__room__actions {
        display: flex;
        flex-direction: row;
        gap: 60px
    }
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__body .booking-product__room__actions .decrement-increment:last-child {
        grid-template-columns: 105px auto
    }
}

#tide-product .booking-product__body .booking-product__room-children {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px
}

#tide-product .booking-product__body .booking-product__room-children-ages {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 125px));
    gap: 10px
}

#tide-product .booking-product__body .booking-product__room__body {
    max-height: inherit
}

#tide-product .booking-product__body .booking-product__room__header {
    border: none;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 0px;
    margin-top: 20px
}

#tide-product .booking-product__body .booking-product__room__heading {
    font-family: var(--tide-booking-font-body);
    font-size: var(--tide-booking-h4);
    font-weight: 400;
    margin-bottom: 0px
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__body .booking-product__room__heading {
        font-size: var(--tide-booking-h4-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .booking-product__body .booking-product__room__heading {
        font-size: var(--tide-booking-h4-xl)
    }
}

#tide-product .booking-product__body .form__group--datepicker {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: 5px;
    position: relative
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__body .form__group--datepicker {
        flex-direction: row
    }
}

#tide-product .booking-product__body .form__group--datepicker .form__group-input {
    width: 100%
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__body .form__group--datepicker .form__group-input {
        width: 50%
    }
}

#tide-product .booking-product__body .form__group--datepicker .qsm__panel {
    display: flex;
    background-color: var(--tide-booking-datepicker-container-background);
    z-index: 98;
    visibility: hidden;
    opacity: 0;
    transition: all .3s ease-in-out
}

#tide-product .booking-product__body .form__group--datepicker .qsm__panel--active {
    visibility: visible;
    pointer-events: all;
    opacity: 1
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__body .form__group--datepicker .qsm__panel--active {
        width: auto
    }
}

#tide-product .booking-product__body .form__group .form__label {
    margin-bottom: 0;
    opacity: .7;
    left: 20px;
    line-height: 1.35
}

#tide-product .booking-product__dates {
    margin-top: 0rem
}

#tide-product .booking-product__dates:first-child {
    margin-top: 0
}

#tide-product .booking-product__dates-title {
    display: flex;
    justify-content: center;
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color);
    font-size: var(--tide-booking-h2);
    align-items: center;
    margin-bottom: 10px
}

#tide-product .booking-product__dates-title:empty {
    display: none
}

#tide-product .booking-product__dates-title em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__dates-title {
        font-size: var(--tide-booking-h2-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .booking-product__dates-title {
        font-size: var(--tide-booking-h2-xl)
    }
}

#tide-product .booking-product__dates-title svg {
    width: 25px;
    height: 25px;
    padding-right: 15px;
    fill: var(--tide-booking-color-primary)
}

#tide-product .booking-product__rooms {
    margin-top: 0rem
}

#tide-product .booking-product__rooms:first-child {
    margin-top: 0
}

#tide-product .booking-product__rooms-title {
    display: flex;
    justify-content: center;
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color);
    font-size: var(--tide-booking-h2);
    align-items: center;
    margin-bottom: 10px
}

#tide-product .booking-product__rooms-title:empty {
    display: none
}

#tide-product .booking-product__rooms-title em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__rooms-title {
        font-size: var(--tide-booking-h2-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .booking-product__rooms-title {
        font-size: var(--tide-booking-h2-xl)
    }
}

#tide-product .booking-product__rooms-title svg {
    width: 25px;
    height: 25px;
    padding-right: 15px;
    fill: var(--tide-booking-color-primary)
}

#tide-product .booking-product__rooms__container {
    display: flex;
    flex-direction: column;
    gap: 20px
}

@media only screen and (min-width: 576px) {
    #tide-product .booking-product__rooms__container {
        justify-content: space-between;
        flex-direction: row;
        gap: 20px
    }
}

#tide-product .booking-product__rooms__wrapper {
    width: 100%
}

#tide-product .booking-product__rooms__header {
    border: none;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 0px;
    margin-bottom: 0px
}

#tide-product .booking-product__rooms__heading {
    font-size: var(--tide-booking-h3);
    font-family: var(--tide-booking-font-body);
    font-weight: 500;
    margin-bottom: 0rem;
    color: var(--tide-booking-text-color-primary)
}

@media only screen and (min-width: 768px) {
    #tide-product .booking-product__rooms__heading {
        font-size: var(--tide-booking-h3-sm)
    }
}

@media only screen and (min-width: 1650px) {
    #tide-product .booking-product__rooms__heading {
        font-size: var(--tide-booking-h3-xl)
    }
}

#tide-product .booking-product__rooms-body {
    display: flex;
    flex-direction: column;
    gap: 10px
}

#tide-product .booking-product__rooms__footer {
    display: flex;
    justify-content: flex-start
}

@media only screen and (min-width: 576px) {
    #tide-product .booking-product__rooms__footer {
        justify-content: flex-end
    }
}

#tide-product .booking-product__footer {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px 30px;
    border-top: 1px solid #dbdad4
}

#tide-product .booking-product__footer-total {
    display: flex;
    justify-content: center;
    justify-content: space-between;
    min-height: 27px
}

#tide-product .booking-product__footer-actions {
    display: flex;
    justify-content: flex-end;
    gap: 1rem
}

#tide-product .booking-product__footer-label {
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color);
    font-size: 24px
}

#tide-product .booking-product__footer-label:empty {
    display: none
}

#tide-product .booking-product__footer-label em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

#tide-product .booking-product__footer-price {
    margin: 0;
    display: inline-flex;
    flex-flow: row wrap;
    font-family: var(--tide-booking-font-heading);
    font-weight: normal;
    line-height: 1.35;
    word-break: break-word;
    color: var(--tide-booking-heading-color);
    font-size: var(--tide-booking-component-header-price-font-size--mobile);
    color: var(--tide-booking-gray-dark)
}

#tide-product .booking-product__footer-price:empty {
    display: none
}

#tide-product .booking-product__footer-price em {
    width: 100%;
    font-family: var(--tide-booking-font-handwritten);
    font-style: normal
}

@media only screen and (min-width: 992px) {
    #tide-product .booking-product__footer-price {
        font-size: var(--tide-booking-component-header-price-font-size--desktop)
    }
}

#tide-product .booking-product__footer-cta {
    display: flex;
    justify-content: center;
    justify-content: space-between;
    gap: 1rem
}

#tide-product .booking-product__footer-cta .cta {
    width: 100% !important;
    margin-left: 0 !important
}