
.rsvp-widget-container { 
    position: fixed;
    top: 50%;
    left: 50%;
    width: auto;
    height: auto;
    -webkit-transform: translate(-50%,-50%);
       -moz-transform: translate(-50%,-50%);
        -ms-transform: translate(-50%,-50%);
         -o-transform: translate(-50%,-50%);
            transform: translate(-50%,-50%);
    z-index: 1000;
    opacity: 1;
    background: #fafafa;
    -webkit-transition: all 0.3s ease-in-out 0s;
       -moz-transition: all 0.3s ease-in-out 0s;
        -ms-transition: all 0.3s ease-in-out 0s;
         -o-transition: all 0.3s ease-in-out 0s;
            transition: all 0.3s ease-in-out 0s;
    padding: 36px 72px;
    box-shadow: 0 0 15px 2px rgba(0, 0, 0, 0.3);
}

.rsvp-widget-container.hidden {
    opacity: 0;
    visibility: hidden;
    z-index: -1;
}

/*.rsvp-button-activation .qbutton { pointer-events: none; color: #393939; background: transparent; border: none; }*/

rsvp-element {
    --rsvp-expand-position: relative;
    /*--rsvp-font: 'Quicksand';*/
    --rsvp-font-weight: 300;
    --rsvp-font-size: 1.3em;
    --rsvp-text-primary: #5c5c5c;
    --rsvp-selector-color: #000;
    --rsvp-selected-background: #918d8c;
    --rsvp-selected-color: #fff;
    --rsvp-border-color: rgba(0, 0, 0, .5);
    --rsvp-button-primary: #010413;
    --rsvp-button-text: #fff;
    --rsvp-background-color: #fff;
    /*font-family: 'Quicksand', "Helvetica Neue", Helvetica, Arial, sans-serif;*/
    font-family: inherit;
    margin: 0;
    background-color: transparent;
    /*background-color: var(--rsvp-background-color);*/
    color: var(--rsvp-text-primary);
    position: relative;
    display: block;
    -webkit-transition: all 0.3s ease-in-out;
       -moz-transition: all 0.3s ease-in-out;
        -ms-transition: all 0.3s ease-in-out;
         -o-transition: all 0.3s ease-in-out;
            transition: all 0.3s ease-in-out;
}

.rsvp-element {
    max-width: 600px;
    margin: 0 auto;
}


a.close-rsvp {
    position: absolute;
    top: 5px;
    right: 10px;
}

rsvp-calendar-month,
rsvp-calendar-month-status {
    /*--rsvp-calendar-header-color: #000;*/
    /*--rsvp-calendar-color: #000;*/
    /*--rsvp-calendar-background-color: #fff;*/
    --rsvp-calendar-box-shadow: none;
    /*--rsvp-calendar-selected-background-color: #000;*/
    /*--rsvp-calendar-selected-color: #fff;*/
    --rsvp-calendar-placeholder-background-color: #f7f6f5;
    --rsvp-calendar-placeholder-border: 1px solid #f7f6f5;
    /*--rsvp-calendar-border-radius: 0px;*/
    /*--rsvp-calendar-font-weight: 700;*/
    /*--rsvp-font-weight: 800;*/
    --rsvp-selector-text-transform: uppercase;
    /*--rsvp-font-size: 28px;*/
}


rsvp-booking-steps {
    position: relative;
    display: block;
    min-height: 100px
}

.step-templates {
    display: none
}

.step-container {
    -webkit-transition: opacity .5s ease;
    transition: opacity .5s ease
}

.step-container.fade-out {
    opacity: 0
}

rsvp-booking-steps .spinner {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #fafafa;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center
}

rsvp-booking-steps .back-button {
    font-size: .8em;
    cursor: pointer;
    text-align: center
}

rsvp-booking-steps .loader,
rsvp-booking-steps .loader:after,
rsvp-booking-steps .loader:before {
    border-radius: 50%;
    width: 2.5em;
    height: 2.5em;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation: load7 1.8s ease-in-out infinite;
    animation: load7 1.8s ease-in-out infinite
}

rsvp-booking-steps .loader {
    color: var(--rsvp-button-primary, #777);
    font-size: 10px;
    margin: 0 auto;
    position: relative;
    text-indent: -9999em;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation-delay: -.16s;
    animation-delay: -.16s
}

rsvp-booking-steps .loader:after,
rsvp-booking-steps .loader:before {
    content: "";
    position: absolute;
    top: 0
}

rsvp-booking-steps .loader:before {
    left: -3.5em;
    -webkit-animation-delay: -.32s;
    animation-delay: -.32s
}

rsvp-booking-steps .loader:after {
    left: 3.5em
}

@-webkit-keyframes load7 {

    0%,
    80%,
    to {
        -webkit-box-shadow: 0 2.5em 0 -1.3em;
        box-shadow: 0 2.5em 0 -1.3em
    }

    40% {
        -webkit-box-shadow: 0 2.5em 0 0;
        box-shadow: 0 2.5em 0 0
    }
}

@keyframes load7 {

    0%,
    80%,
    to {
        -webkit-box-shadow: 0 2.5em 0 -1.3em;
        box-shadow: 0 2.5em 0 -1.3em
    }

    40% {
        -webkit-box-shadow: 0 2.5em 0 0;
        box-shadow: 0 2.5em 0 0
    }
}

rsvp-element {
    margin: 35px;
    /*background-color: #fafafa;*/
    /*background-color: var(--rsvp-background-color);*/
    color: var(--rsvp-text-primary);
    position: relative;
    display: block;
    /*max-width: 360px;*/
}


rsvp-booking-button {
    background-color: #918d8c;
    border-color: #918d8c;
    display: block;
    overflow: hidden;
    max-width: 300px;
    margin: 0 auto
}

rsvp-booking-button:hover {
    -webkit-filter: brightness(110%);
    filter: brightness(110%)
}

rsvp-booking-button>button {
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: none;
    padding: 8px 0;
    cursor: pointer;
    color: var(--rsvp-button-text);
    text-transform: uppercase;
    font-size: 18px;
    letter-spacing: 2px;
}


/* CUSTOM STYLE */

.rsvp-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fafafa;
    z-index: -1;
    opacity: 0.75;
}
.rsvp-overlay.active { z-index: 1000; }

.rsvp-section.pax {
    width: 100%;
    max-width: 280px;
    margin: 0 auto 22px;
}

.rsvp-section .section-title {
    display: block;
    font-size: 18px;
    text-align: center;
    margin-bottom: 4px;
}

.rsvp-seating-section .seating-section-header {
    position: relative;
    text-align: center;
    font-size: 14px;
    margin-bottom: 0;
    margin-top: 18px;
    text-transform: uppercase;
    letter-spacing: 3px;
}

rsvp-seating-section .seating-items { justify-content: space-evenly; }

.rsvp-seating-section > rsvp-seating-section > div > h4.seating-section-header {
    font-weight: 600;
    padding-top: 36px;
    margin-top: 36px;
    margin-bottom: 9px;
}

.rsvp-seating-section > rsvp-seating-section > div > h4.seating-section-header:before {
    content: "";
    position: absolute;
    width: 108px;
    height: 1px;
    background: #b1aca7;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}


rsvp-seating-section .no-available {
    -webkit-filter: none;
       -moz-filter: none;
        -ms-filter: none;
         -o-filter: none;
            filter: none;
}

rsvp-calendar-month-status {
    --rsvp-calendar-height: 48px;
    --rsvp-calendar-width: 48px;
    --rsvp-calendar-status-mobile-top-offset: 1px;
    --rsvp-calendar-status-round-bottom: 7px;
    --rsvp-calendar-status-round-width: 5px;
    --rsvp-calendar-status-round-height: 5px;
    --rsvp-calendar-status-round-border-radius: 50%;
    --rsvp-calendar-available-status-color: #55bd55;
    --rsvp-calendar-limited-availability-status-color: #55bd55;
    --rsvp-calendar-sold-out-status-color: #EB736D;
    --rsvp-calendar-booking-not-open-status-color: #ffde3b;
}

rsvp-range-section > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    margin-bottom: 18px!important;
}


rsvp-range-section rsvp-selector-row { text-transform: capitalize; }

rsvp-range-section.display-calendar > div > rsvp-selector-row {
    margin-top: -30px;
}

/* SELEZIONE ORARIO */
rsvp-seating-item { max-width: 144px; }
rsvp-seating-item > div { border-radius: 0; border-color: #918d8c;}

rsvp-seating-item>div.limited { border-color: #918d8c; }
rsvp-seating-section .limited-seats-label { display: none; }

.seating-items .in-progress {
    text-align: center;
    font-size: 14px;
    line-height: 18px;
    display: block;
    margin-top: 9px;
}

span.no-available-text { display: block; }
.in-progress + .no-available .no-available-text, .in-progress + .no-available > rsvp-step-link.hydrated {
    display: none;
}

rsvp-booking-button { margin-top: 27px; }

rsvp-pax-section { display: block; margin-bottom: 24px; }

#bookingStepForm {
    max-width: 720px;
    min-width: 300px;
    margin: 0 auto;
}

#bookingStepForm .step-container {
    max-width: 600px;
    margin: 0 auto;
    width: 80%;
}

.step-container + div {
    text-align: center;
    color: red;
    font-size: 14px;
    margin-top: 18px;
}

rsvp-booking-ticket-types > div { text-align: center; }
rsvp-booking-ticket-types > div > div > div { margin-bottom: 18px; }
rsvp-booking-ticket-types > div > div > div rsvp-selector-row {
    width: 150px;
    display: block;
    margin: 0 auto;
}
rsvp-booking-ticket-types > div > div > div label {
    font-weight: 500;
    margin-bottom: 9px!important;
    display: inline-block;
}
rsvp-booking-ticket-types > div > div > div input.form-control {
    width: 30px;
    text-align: right;
    padding-left: 7px;
}

.phone-input-container .country-list .country.highlight { background: rgba(0,0,0,0.25) }
.phone-input-container .country-list .country.highlight .dial-code { color: #fff; }

rsvp-booking-additional-info > div > div { display: block; margin-bottom: 18px; }

#bookingStepForm textarea {
    width: 100%;
    margin-top: 9px;
    margin-bottom: 9px;
    height: 50px;
}

.ConfirmInfo.booking-step label {
    font-size: 14px;
}

.payment-category.selected { border: inherit; }

.payment-category { flex: 1 1 70px; }
.payment-logo { display: none!important; }
#browser-card-element .payment-action {
    margin-left: 0;
    border: none;
    background: none;
}
#card-element { height: auto; }
#browser-card-element .payment-action [role="alert"] {
    color: red;
    font-size:  12px;
}


#bookingStepForm rsvp-input input,
#bookingStepForm rsvp-phone input {
    border-radius: 0;
    background: transparent;
    border: 1px solid #b1aca7;
    line-height: 24px;
    font-size: 16px;
    padding: 6px 12px;
    color: #918d8c;
}

#bookingStepForm label.control-label {
    display: block;
    /*margin-bottom: 10px;*/
    width: 100%;
    font-size: 0.8em;
}
#bookingStepForm select {
    display: block;
    width: 100%;
    height: 38px;

    border-radius: 0;
    background: transparent;
    border: 1px solid #b1aca7;
    line-height: 24px;
    font-size: 16px;
    padding: 6px 12px;
    color: #918d8c;
}

#bookingStepForm rsvp-phone ::placeholder,
#bookingStepForm rsvp-phone :-ms-input-placeholder,
#bookingStepForm rsvp-phone ::-ms-input-placeholder {
  color: #9e968e;
}

#bookingStepForm rsvp-input input:focus {
    outline: none;
    border-color: #918d8c;
}

.step-container + div {
    text-align: center;
    font-style: italic;
}

rsvp-input[name="Comments"] {
    margin-top: 18px;
}

.ConfirmInfo rsvp-span {
    font-weight: 500;
}

rsvp-span[name="Bookable.Name"],
rsvp-span[name="Booking.Time.Range"] {
    display: inline-block;
    font-weight:  bold;
}


/* PREFERRED LANGUAGE SELECTION */
.preferred-language-title {
    margin-top: 20px;
    display: inline-block;
}

.preferred-language {
    overflow: hidden;
    text-align: left;
    list-style-type: none;
    margin: 5px 0 0 0;
    padding: 0!important;
}

.preferred-language li {
  display: inline-block;
  margin: 0 5px 0 0;
  width: 100px;
  height: 40px;
  text-align: center;
  position: relative;
}

.preferred-language label,
.preferred-language input {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.preferred-language input[type="radio"] {
  opacity: 0;
  z-index: 100;
}

.preferred-language input[type="radio"]:checked+label,
.Checked+label {
  background: #918d8c;
  color: #fff;
}

.preferred-language label {
    border: 1px solid #918d8c;
    cursor: pointer;
    z-index: 90;
    line-height: 40px;
    margin: 0;
}

.payment-categories .payment-category {
    border: none;
    margin: 10px 0;
    background: #fff;
    padding: 0;
}

.payment-category>div .payment-logo {
    display: none;
}

#browser-card-element .payment-action {
    margin-left: 0;
    border: none;
    height: 32px;
}

#card-element { border-radius: 0; }

.StripePaymentApiPay form h4:nth-child(4) {
    font-family: Heebo, sans-serif;
    margin-top: 18px;
    margin-bottom: 18px;
}

.StripeElement .ElementsApp,
.StripeElement .ElementsApp .InputElement {
    color: #5c5c5c;
}

/* SUMMARY */

.Summary.booking-step {
    text-align: center;
}

.Summary.booking-step .email-confirmation { margin-top: 18px; }

.Summary.booking-step rsvp-span[name="Booking.Email"] {
    text-decoration: underline;
}


.Summary.booking-step .rsvp-alternative-availability-container h3 {
    font-size: 18px;
    text-transform: none;
}

.Summary.booking-step .rsvp-alternative-availability-container hr {
    width: 36px;
    margin: 36px auto;
}
.Summary.booking-step .rsvp-alternative-availability-container span.alt-desc {
    width: 100%;
}

/* ALTERNATIVE AVAILABILITY */

rsvp-alternative-availability hr {
    width: 36px;
    margin: 15px auto 0;
}

rsvp-alternative-availability .alts { margin-top: 9px; }

rsvp-alternative-availability div div {
    margin-bottom:  20px;
    padding-bottom:  20px;
    position:  relative;
}
rsvp-alternative-availability > div > div:after {
    content:  "";
    position: absolute;
    bottom:  0;
    left:  50%;
    width:  30%;
    height:  1px;
    -webkit-transform:  translateX(-50%);
       -moz-transform:  translateX(-50%);
        -ms-transform:  translateX(-50%);
         -o-transform:  translateX(-50%);
            transform:  translateX(-50%);
    background: #555;
}

span.alt-desc {
    font-size: 14px;
    display: inline-block;
    width: 85%;
    min-width: 280px;
    line-height: 18px;
    margin-top: 12px;
}

span.alt-desc.small {
    margin-top: 0px;
    font-size: 12px;
    -webkit-transform: translateY(-9px);
       -moz-transform: translateY(-9px);
        -ms-transform: translateY(-9px);
         -o-transform: translateY(-9px);
            transform: translateY(-9px);
}

.extra-links {
    margin-top: 18px;
}

.alt-button {
    display: inline-block!important;
    padding: 3px 9px!important;
    border: 1px solid #8e8e8e!important;
    color: #8e8e8e;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 3px;
    cursor: pointer;
    margin: 12px 0;
    -webkit-transition: all .3s ease-in-out 0s;
    -moz-transition: all .3s ease-in-out 0s;
    -ms-transition: all .3s ease-in-out 0s;
    -o-transition: all .3s ease-in-out 0s;
    transition: all .3s ease-in-out 0s;
    height: auto;
    line-height: inherit;
    font-weight:  500;
    width:  300px;
}

.alt-button:hover {
    border-color: #7d7870;
    background-color: #7d7870;
    color: #f7f6f5;
}

/* FRANCESCANA @ MARIA LUIGIA  */
.alt-button.faml {
    border: 2px solid #48556D!important;
    background: #48556D;
    /*color: #48556D;*/
    color: #fff!important;
}

.alt-button.faml:hover {
    border: 2px solid #48556D!important;
    /*background: #48556D;*/
    background: transparent;
    /*color: #fff;*/
    color: #48556D!important;
}

/* FRANCESCHETTA  */
.alt-button.fra {
    border: 2px solid rgb(253,195,51)!important;
    background: rgb(253,195,51);
    /*color: rgb(253,195,51);*/
    color: #fff!important;
}

.alt-button.fra:hover {
    border: 2px solid rgb(253,195,51)!important;
    /*background: rgb(253,195,51);*/
    background: transparent;
    /*color: #fff;*/
    color: rgb(253,195,51)!important;
}

/* CAVALLINO  */
.alt-button.cav {
    border: 2px solid #DA291C!important;
    background: #DA291C;
    /*color: #DA291C;*/
    color:  #fff!important;
}
.alt-button.cav:hover {
    border: 2px solid #DA291C!important;
    /*background: #DA291C;*/
    background: transparent;
    /*color: #fff;*/
    color: #DA291C!important;
}

rsvp-alternative-availability div.no-alts + p {
    margin-top: 9px;
    color: #7d7870;
}

/* BACK BUTTON */

rsvp-step-link[name="Initial"],
rsvp-step-link[name="ContactDetails"],
rsvp-step-link[name="OptionalExtras"],
rsvp-step-link[name="ConfirmInfo"] {
    position: relative;
    display: block;
    margin: 36px 0 18px;
    text-align: center;
    color: #5c5c5c;
}


rsvp-step-link[name="Initial"]:after,
rsvp-step-link[name="ContactDetails"]:after,
rsvp-step-link[name="OptionalExtras"]:after,
rsvp-step-link[name="ConfirmInfo"]:after {
    content: "";
    display: block;
    width: 76px;
    height: 1px;
    background: #ccc;
    position: absolute;
    left: 50%;
    bottom: -7px;
    -webkit-transform: translateX(-50%);
       -moz-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
         -o-transform: translateX(-50%);
            transform: translateX(-50%);
}


rsvp-step-link[name="Initial"] span,
rsvp-step-link[name="ContactDetails"] span,
rsvp-step-link[name="OptionalExtras"] span,
rsvp-step-link[name="ConfirmInfo"] span {
    text-transform: uppercase;
}


rsvp-step-link[name="Initial"] span:hover,
rsvp-step-link[name="ContactDetails"] span:hover,
rsvp-step-link[name="OptionalExtras"] span:hover,
rsvp-step-link[name="ConfirmInfo"] span:hover {
    font-weight: 400;
}

/* pulsante waiting list */
rsvp-step-link[name="SoldOutWaitlist"] span {
    display: inline-block;
    padding: 3px 9px;
    border: 1px solid #8e8e8e;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 3px;
    cursor: pointer;
    margin: 9px 0px 12px;
    -webkit-transition: all 0.3s ease-in-out 0s;
       -moz-transition: all 0.3s ease-in-out 0s;
        -ms-transition: all 0.3s ease-in-out 0s;
         -o-transition: all 0.3s ease-in-out 0s;
            transition: all 0.3s ease-in-out 0s;
}

rsvp-step-link[name="SoldOutWaitlist"] span:hover {
    border-color: #918d8c;
    background-color: #918d8c;
    color: #f7f6f5;
}

rsvp-step h2 {
    text-align: center;
    text-transform: none;
    font-size: 24px;
    margin-bottom: 8px;
}

.OptionalExtras p {
    text-align: center;
    margin-bottom: 18px;
}

.OptionalExtras .option-group {
    text-align: center;
    margin-bottom: 18px;
    overflow: hidden;
    padding-bottom: 36px;
    border-bottom: 1px solid #ccc;
}

/* WAITING LIST */

.SoldOutWaitlist.booking-step h3 {
    text-align: center;
    font-size: 18px;
    margin-top: 32px;
}

.SoldOutWaitlist.booking-step .wl-selected-date {
    text-align: center;
    margin-top: 9px;
    font-weight: 500;
    font-size: 20px;
}

.SoldOutWaitlist.booking-step rsvp-input label,
.SoldOutWaitlist.booking-step rsvp-phone .phone-label {
    font-size: 16px;
    margin-top: 18px;
    margin-bottom: 0;
}

.SoldOutWaitlist.booking-step rsvp-input[name="Seats"] label,
.SoldOutWaitlist.booking-step rsvp-input[name="PreferredDateTime"] label {
    text-align: center;
}


.SoldOutWaitlist rsvp-input rsvp-selector-row {
    width: 200px!important;
    margin: 0 auto;
    display: block;
}

.SoldOutWaitlist input[type="number"] {
    width: 100%;
    font-family: "Heebo", sans-serif;
    border-color: #918d8c;
    border-radius: 0;
    box-shadow: none;
    margin-top: 3px;
}

/* WAITINGLIST TIME SELECTION */
.waitinglist-times {
    overflow: hidden;
    text-align: center;
    list-style-type: none;
    margin: 25px 0 0 0;
    padding: 0!important;
}

.waitinglist-times li {
  display: inline-block;
  margin: 0 5px 0 0;
  width: 100px;
  height: 40px;
  position: relative;
}

.waitinglist-times label,
.waitinglist-times input {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.waitinglist-times input[type="radio"] {
  opacity: 0;
  z-index: 100;
}

.waitinglist-times input[type="radio"]:checked+label,
.Checked+label {
  background: #918d8c;
  color: #fff;
}

.waitinglist-times label {
    border: 1px solid #918d8c;
    cursor: pointer;
    z-index: 90;
    line-height: 40px;
    margin: 0;
}

/* WAITINGLIST SUMMARY */
.WaitlistSuccess .extra-link-title { margin-bottom: 3px; }
