.style-light rsvp-element form p,
.style-light rsvp-element form h1,
.style-light rsvp-element form h2,
.style-light rsvp-element form h3,
.style-light rsvp-element form h4,
.style-light rsvp-element form h5,
.style-light input[type=checkbox]:checked:before { 
    color: #384560;
}

.smartphone .main-container .row-container .row-parent {
    padding-left: 18px;
    padding-right: 18px;
}

rsvp-element {
    margin: 35px 0;
    --rsvp-expand-position: relative;
    /*--rsvp-font: 'Quicksand';*/
    --rsvp-font-weight: 300;
    --rsvp-font-size: 1.3em;
    --rsvp-text-primary: #384560;
    --rsvp-selector-color: #384560;
    --rsvp-selected-background: #384560;
    --rsvp-selected-color: #fff;
    --rsvp-border-color: rgba(0, 0, 0, .5);
    --rsvp-button-primary: #384560;
    --rsvp-button-text: #fff;
    --rsvp-background-color: transparent;
    /*font-family: 'Quicksand', "Helvetica Neue", Helvetica, Arial, sans-serif;*/

    -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-seating-selector {
    /*font-family: "Work Sans", sans-serif;*/
}

rsvp-calendar-month, 
rsvp-calendar-month-status {
    --rsvp-calendar-header-color: #384560;
    --rsvp-calendar-color: #384560;
    --rsvp-calendar-background-color: #fff;
    --rsvp-calendar-box-shadow: none;
    --rsvp-calendar-border: 1px solid #dee2eb;
    --rsvp-calendar-selected-background-color: #384560;
    --rsvp-calendar-selected-color: #fff;
    --rsvp-calendar-placeholder-background-color: #fff;
    --rsvp-calendar-placeholder-border: 1px solid #fff;
    --rsvp-calendar-border-radius: 0px;
    /*--rsvp-calendar-font-weight: 700;*/
    /*--rsvp-font-weight: 800;*/
    --rsvp-selector-text-transform: uppercase;
    /*--rsvp-font-size: 28px;*/
}


/*rsvp-range-section {*/
rsvp-calendar-month-status {
    /*--rsvp-background-color: transparent;*/
    /*--rsvp-calendar-header-color: #6e6e6e;*/
    /*--rsvp-calendar-header-border-radius: 0px;*/
    /*--rsvp-calendar-header-border: none;*/
    /*--rsvp-calendar-header-background-color: none;*/
    /*--rsvp-calendar-header-padding: 0px;*/
    /*--rsvp-calendar-header-font-weight: 700;*/
    --rsvp-calendar-header-letter-spacing: 0px;
    /*--rsvp-calendar-header-margin: 3px;*/
    /*--rsvp-calendar-color: #fffff;*/
    /*--rsvp-calendar-border-radius: 2px;*/
    /*--rsvp-calendar-border: none;*/
    --rsvp-calendar-background-color: #eeeee;
    /*--rsvp-calendar-font-weight: 700;*/
    /*--rsvp-calendar-font-size: 16px;*/
    /*--rsvp-calendar-letter-spacing: 0px;*/
    --rsvp-calendar-line-height: 18px;
    /*--rsvp-calendar-align-items: center;*/
    /*--rsvp-calendar-margin: 3px;*/
    --rsvp-calendar-height: 48px;
    --rsvp-calendar-width: 42px;
    /*--rsvp-calendar-selected-background-color: #e8e8e8;*/
    --rsvp-calendar-selected-color: #fff!important;
    /*--rsvp-calendar-selected-border-radius: 0px;*/
    /*--rsvp-calendar-selected-font-weight: 400;*/
    --rsvp-calendar-selected-height: 48px;
    --rsvp-calendar-selected-width: 42px;
    /*--rsvp-calendar-selected-font-size: 16px;*/
    /*--rsvp-calendar-selected-letter-spacing: 0px;*/
    /*--rsvp-calendar-selected-line-height: 16px;*/
    --rsvp-calendar-closed-date-background-color: #dee2eb;
    --rsvp-calendar-closed-date-border: 1px solid #dee2eb;
    --rsvp-calendar-closed-date-opacity: 0.25;    
    /*--rsvp-calendar-closed-date-color: #fff;*/
    /*--rsvp-calendar-placeholder-background-color: #5f5f5;*/
    /*--rsvp-calendar-placeholder-border: 1px solid #fff;*/
    --rsvp-calendar-status-round-margin: 0 auto;
    --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;

}

.dates.closed-date.selected { color: #fff!important; }



rsvp-booking-steps {
    position: relative;
    display: block;
    min-height: 100px
}


.step-container {
    margin-bottom: 20px;
    -webkit-transition: opacity .5s ease;
    transition: opacity .5s ease
}

.step-container.fade-out {
    opacity: 0
}

.loading-message {
    color: var(--rsvp-button-primary, #384560)
}

@-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-booking-button {
    background-color: #384560;
    background-color: var(--rsvp-button-primary);
    border: 1px solid #384560;
    display: inline-block;
    overflow: hidden;
    max-width: 300px;
    margin: 0 auto
}
rsvp-booking-button:hover { background: transparent; }



.style-light rsvp-booking-button button[type=submit],
.style-light rsvp-booking-button button[type=button] {
    background-color: inherit;
    /*font-family: "Work Sans";*/
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 0.1em;
    padding: 15px 20px;
}
.style-light rsvp-booking-button button[type=submit]:hover,
.style-light rsvp-booking-button button[type=button]:hover {
    color: #384560;   
}

rsvp-booking-button:hover {
    -webkit-filter: brightness(110%);
    filter: brightness(110%)
}

rsvp-booking-button>button,
rsvp-booking-button>span {
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: none;
    padding: 8px 0;
    cursor: pointer;
    color: var(--rsvp-button-text)
}

rsvp-booking-button>span {
    display: block;
    text-align: center;
    line-height: 15px
}

/* CUSTOM STYLE */

.rsvp-section.pax {
    width: 100%;
    max-width: 280px;
    margin: 0 auto 27px;
}

.rsvp-section .section-title {
    display: block;
    font-size: 18px;
    text-align: center;
    margin-bottom: 4px;
}

.booking-step h3 { text-transform: uppercase; /*font-family: ltc-bodoni-175,serif;*/ margin-bottom: 18px; }

.rsvp-seating-section .seating-section-header {
    text-align: center;
    font-weight: 400;
    color: #384560;
    margin-bottom: 9px;
    margin-top: 18px;
}

rsvp-range-section rsvp-selector-row { text-transform: capitalize; }

rsvp-element[bookable-id="3220"] rsvp-range-section rsvp-selector-row { font-size: 18px; }
.smartphone rsvp-element[bookable-id="3220"] rsvp-range-section rsvp-selector-row { font-size: 22px; }

rsvp-booking-button { margin-top: 27px; }



.ContactInfo label {
    display: block;
    width: 300px;
    text-align: left;
    margin: 0 auto 10px;
    position: relative;
    font-family: "Work Sans", sans-serif;
    font-size: 14px;
    height: 38px;
    line-height: 38px;
}

.ContactInfo label > input {
    display: inline-block;
    margin: 0;
    width: 60%;
    float: right;
}

.ConfirmAndPay h2 {
    margin-bottom: 18px;
}

.ConfirmAndPay p {
    font-size: 18px;
    font-weight: normal;
    font-family: "Work Sans", sans-serif;
    margin-top: 0;
}

.payment-action #card-element {
    max-width: 360px;
    margin: 0 auto;
    border: 1px solid #ddd;
    border-radius: 0;
}

.payment-action #card-errors {
    color: #eb1c26;
    margin-top: 5px;
}



/* - - - - - - */


rsvp-seating-section .no-available {
    margin:0;
    font-size: 18px;            
    -webkit-filter: none;
       -moz-filter: none;
        -ms-filter: none;
         -o-filter: none;
            filter: none;
}
rsvp-seating-section .no-available h4 { margin-top: 0; }

rsvp-range-section > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    margin-bottom: 18px!important;
}

rsvp-element[bookable-id="2911"] rsvp-range-section.display-calendar > div > rsvp-selector-row {
    margin-top: -30px;
}
rsvp-element[bookable-id="3220"] rsvp-range-section.display-calendar > div {
    overflow: hidden;
    height: 42px;
}

rsvp-seating-item { max-width: 144px; }
rsvp-seating-item > div { border-radius: 0; }

rsvp-seating-item>div.limited { border-color: #384560; }
rsvp-seating-section .limited-seats-label { display: none; }

#bookingStepForm {
    max-width: 500px;
    margin: 0 auto;
}

#bookingStepForm rsvp-input input,
#bookingStepForm rsvp-phone input {
    border-radius: 0;
    background: transparent;
    border: 1px solid #9ca7a7;
    line-height: 24px;
    font-size: 16px;
    padding: 6px 12px;
    color: #384560;
}

#bookingStepForm rsvp-phone ::placeholder { color: #9ca7a7; }
#bookingStepForm rsvp-phone ::-moz-placeholder { color: #9ca7a7; } 
#bookingStepForm rsvp-phone :-ms-input-placeholder { color: #9ca7a7; }
#bookingStepForm rsvp-phone ::-ms-input-placeholder { color: #9ca7a7; }

rsvp-phone { 
    font-family: "Work Sans", sans-serif;
}
rsvp-phone .phone-label {
    text-align: left;
    font-family: "Work Sans", sans-serif;
    font-size: 16px;
    margin-top: 18px;
    margin-bottom: 9px;
}


#bookingStepForm rsvp-input input:focus {
    outline: none;
    border-color: #384560;
}

rsvp-input label {
    font-size: 16px;
    font-family: "Work Sans", sans-serif;
    text-align: left;
    line-height: 1;
    margin-bottom: 18px;
}

.step-container + div {
    text-align: center;
    font-style: italic;
}

rsvp-input[name="Comments"] {
    margin-top: 18px;
}

.ConfirmInfo.booking-step {
    text-align: left;
}
.ConfirmInfo.booking-step div {
    text-align: center;
}
.ConfirmInfo.booking-step label {
    font-family: "Work Sans", sans-serif;
    font-size: 14px;
    cursor: pointer;
}

.ConfirmInfo p {
    font-weight: normal;
    color: #384560!important;
}
.ConfirmInfo rsvp-span {
    font-weight: 600;
}

rsvp-span[name="Bookable.Name"],
rsvp-span[name="Booking.Time.Range"] {
    display: block;
}

.StripePaymentApiPay.booking-step div p {
    font-family: "Work Sans", sans-serif;
    font-weight: 300;
    font-size: 16px;
    margin-bottom: 36px;
}

.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: "Work Sans", sans-serif;
    margin-top: 18px;
    margin-bottom: 18px;
}

rsvp-step-link[name="SoldOutWaitlist"],
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-top: 9px;
    text-align: center;
    color: #384560;
    font-family: "Work Sans", sans-serif;
    font-size: 14px;
}

rsvp-step-link[name="SoldOutWaitlist"]:after,
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="SoldOutWaitlist"] span,
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="SoldOutWaitlist"] span:hover,
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;
}

rsvp-step h2 {
    text-align: center;
    text-transform: none;
    font-size: 24px;
    margin-bottom: 8px;
}

.OptionalExtras p {
    text-align: center;
    margin-bottom: 18px;
}

.OptionalExtras.booking-step p:not(.your-booking):not(.option-group-name) {
    font-weight: normal;
    font-size: 18px;
    margin-bottom: 36px;
}

rsvp-element[bookable-id="3220"] .OptionalExtras.booking-step p:not(.your-booking):not(.option-group-name) {
    margin-bottom: inherit;
    margin-top: 36px;
}

.OptionalExtras .option-group {
    text-align: center;
    margin-bottom: 18px;
    overflow: hidden;
    padding-bottom: 36px;
    border-bottom: 1px solid #ccc;
    font-family: "Work Sans", sans-serif;
}

rsvp-booking-optional-extra .option-group:last-of-type { margin-top: 0; border-top: none; padding-top: 0;  }

.OptionalExtras .option-group > .padding-20 {
    margin-bottom: 18px;
}

.OptionalExtras .option-group label {
    font-size: 18px;   
}

.OptionalExtras .option-group rsvp-selector-row {
    overflow: hidden;
    width: 180px!important;
    display: block;
    margin: 0 auto;
}

input[type="number"] {
    width: 100%;
    font-family: "Work sans", sans-serif;
    border-color: #384560;
    border-radius: 0;
    box-shadow: none;
    margin-top: 3px;
}

/* WAITING LIST */

.SoldOutWaitlist.booking-step h3 {
    text-align: center;
    font-size: 18px;
    margin-top: 32px;
}

.SoldOutWaitlist.booking-step rsvp-input 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: "Work sans", sans-serif;
    border-color: #384560;
    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: #384560;
  color: #fff;
}

.waitinglist-times label {
    border: 1px solid #384560;
    cursor: pointer;
    z-index: 90;
    line-height: 40px;
    margin: 0;
}


/* WAITINGLIST SUMMARY */
.WaitlistSuccess .extra-link-title { margin-bottom: 9px; }

.WaitlistSuccess h5 { margin-bottom: 5px; }
.WaitlistSuccess span.alt-desc.small { 
    -webkit-transform: none;
       -moz-transform: none;
        -ms-transform: none;
         -o-transform: none;
            transform: none;
}

/* errors */

#bookingStepForm .errors {
    text-align: center;
    padding: 9px;
    margin-bottom: 18px;
    color: #EB736D;
    font-weight: 500;
    font-size: 24px;
}

/* YOUR BOOKING */
p.your-booking {
    font-weight: normal;
    text-align: center;
    font-size: 20px;
    margin-bottom: 18px;
}

p.your-booking i {
    font-weight: bold;
}

p.your-booking rsvp-span,
p.your-booking span { 
    font-weight: bold; 
}

.Summary.booking-step h5 { margin-bottom: 9px; }

/* ALTERNATIVE AVAILABILITY */

rsvp-alternative-availability hr {
    width: 36px;
    margin: 15px auto 0;
}

rsvp-alternative-availability .alts { margin-top: 9px; }

span.alt-desc {
    font-size: 14px;
    display: inline-block;
    width: 85%;
    min-width: 280px;
    line-height: 18px;
    margin-top: 22px;
}

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);
}

.alt-button {
    display: inline-block;
    padding: 6px 9px;
    color: #384560!important;
    border: 1px solid #384560;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 3px;
    cursor: pointer;
    margin: 12px 0px;
    -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;
    font-weight:  500;
    width:  300px;
}

.alt-button:hover {
    border-color: #384560;
    background-color: #384560;
    color: #fff!important;
}

/* 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;
}


/* pulsante waiting list */
rsvp-step-link[name="SoldOutWaitlist"] span {
    display: inline-block;
    padding: 6px 9px;
    border: 1px solid #384560;
    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;
    font-family: ltc-bodoni-175,serif;
}

rsvp-step-link[name="SoldOutWaitlist"] span:hover {
    border-color: #384560;
    background-color: #384560;
    color: #fff;
}