.smb-required-marker {
	color: #dc3545;
}

.smb-helper-block {
    font-size: 13px;
    margin: 3px 0;
}

.smb-div-overlay {
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, .7);
}

.smb-div-overlay-text {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #000;
	font-size: 18px;
	font-weight: 700;
	text-align: center;
}

.smb-div-overlay-text .smb_spinner {	
	display: block;
    width: 40px;
    height: 40px;
	margin: 0 auto;
}

.smb-text-danger {
	color: #dc3545 !important;
}

.smb-calendar-container {
	border: 2px solid #f7f7f7;
	box-shadow: 0 0 #0000, 0 0 #0000, 0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;
	padding: 30px;
}

.smb-calendar-left {
	display: inline-block;
	vertical-align: top;
	text-align: center;
	width: 450px;
	padding: 0 30px;
}

.smb-calendar-header-1 {
	font-size: 20px;
	font-weight: 600;
	color: #000;
	margin: 0 0 20px 0;
}

.smb-calendar-header-2 {
	font-size: 24px;
	font-weight: 600;
	color: #000;
	margin: 0 0 5px 0;
	text-align: center
}

.smb-calendar-header-3 {
	font-size: 24px;
	font-weight: 600;
	color: #000;
	margin: 0 0 5px 0;
	text-align: center
}

.smb-select {
	display: inline-block;
  	min-width: 100px;
}

.smb-select select {
	appearance: none;
	width: 100%;
	font-size: 15px;
	padding: 8px 40px 8px 20px;
	border: 1px solid #caced1;
	border-radius:0;
	color: #000;
	font-weight: 600;
	cursor: pointer;
	background: #f7f7f7 url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 5px top 55%;
    background-size: 16px 16px;
}

.smb_spinner {
	display: inline-block;
	width: 25px;
  	height: 25px;
	animation: 1s rotate linear infinite;
	vertical-align: middle;
 }

.smb-btn .loader {
	
}

@keyframes rotate {
	from {
        transform:rotate(360deg);
    }
    to {
        transform:rotate(0deg);
    }
}

.smb-success-message {
	text-align: center;
	margin-bottom: 20px;
}

.smb-success-message svg {
	display: block;
	height: 100px;
	width: 100px;
	color: #3bbd5e;
	margin: 0 auto;
}

.smb-success-message svg .circle {
	stroke-dasharray: 76;
	stroke-dashoffset: 76;
	-webkit-animation: draw .5s forwards;
		  animation: draw .5s forwards;
}

.smb-success-message svg .tick {
	stroke-dasharray: 18;
	stroke-dashoffset: 18;
	-webkit-animation: draw .6s forwards .6s;
		  animation: draw .6s forwards .6s;
}

.smb-success-message h2 {
	font-size: 32px;
    font-weight: 700;
}


@-webkit-keyframes draw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes draw {
  to {
    stroke-dashoffset: 0;
  }
}

.smb-booking-button-times {
	
}

.smb-booking-button-time {
	border: 2px solid #ccc;
	background: #fff;
	color: #000;
	font-size: 14px;
	padding: 5px 12px;
}

.smb-calendar-time-slots {
	display: inline-block;
	width: calc(50% - 225px);
	vertical-align: top;
	padding: 0 30px;
	border-right: 2px solid #f7f7f7;
	position: relative;
	min-height: 400px;
}

.smb-booking-title-2 {
	font-size: 15px;
	font-weight: 700;
	color: #000;
	text-align: center;
	margin: 30px 0 20px 0;
}

.time-slot {
	border: 1px solid #dee2e6 !important;
	text-align: center;
	padding: 10px;
	margin: 0 0 10px 0;
	cursor: pointer;
	color: #000;
	font-size: 15px;
	font-weight: 600;
}

.time-slot.scheduled {
	cursor: default;
	opacity: .4;
}

.time-slot:hover:not(.scheduled) {
	border-color: #a9acaf !important;
}


.smb-calendar-right {
	display: inline-block;
	width: calc(50% - 231px);
	vertical-align: top;
	padding: 0 30px;
	text-align: center;
}

.smb-calendar-right h3 {
	font-size: 22px;
    font-weight: 800;
    margin: 40px 0;
}

/* Calendar CSS */

.calendar {
    display: flex;
    flex-flow: column;
}

.calendar .header .header-nav-left {
	display: inline-block;
	vertical-align: middle;
	margin: 20px 0;
    width: 60px;
	line-height: .2em;
	cursor: pointer;
}

.calendar .header .header-nav-right {
	display: inline-block;
	vertical-align: middle;
    width: 60px;
	transform: rotate(180deg);
	margin: 20px 0;
	line-height: .2em;
	cursor: pointer;
}

.calendar .header .month-year {
	display: inline-block;
    font-size: 16px;
    font-weight: bold;
    color: #636e73;
    margin: 20px 0;
	vertical-align: middle;
}

.calendar .days {
    display: flex;
    flex-flow: wrap;
}

.calendar .days .day_name {
    width: calc(100% / 7);
    padding: 10px;
    text-transform: uppercase;
    font-size: 15px;
    font-weight: 600;
	min-height: 40px;
}

.calendar .days .day_name:nth-child(7) {
    border: none;
}

.calendar .days .day_num {
    display: flex;
    flex-flow: column;
    width: calc(100% / 7);
	text-align: center;
    font-weight: bold;
    color: #7c878d;
	font-size: 14px;
    min-height: 40px;
	cursor: default;
}

.calendar .days .day_num span {
	display: inline-block;
    height: 32px;
    width: 32px;
    margin: 0 auto;
    text-align: center;
    padding: 5px;
    border-radius: 40px;
	background: #f7f7f7 !important;
	color: #392118 !important;
	cursor:pointer;
}

.calendar .days .day_num .event {
    margin-top: 10px;
    font-weight: 500;
    font-size: 14px;
    padding: 3px 6px;
    border-radius: 4px;
    background-color: #f7c30d;
    color: #fff;
    word-wrap: break-word;
}

.calendar .days .day_num .event.green {
    background-color: #51ce57;
}

.calendar .days .day_num .event.blue {
    background-color: #518fce;
}

.calendar .days .day_num .event.red {
    background-color: #ce5151;
}

.calendar .days .day_num:nth-child(7n+1) {
    /*border-left: 1px solid #e6e9ea;*/
}

.calendar .days .day_num:hover {
    background-color: #fdfdfd;
}

.calendar .days .day_num.ignore {
    color: #ced2d4;
    cursor: inherit;
}

.calendar .days .day_num.ignore span {
    background: transparent !important;
    cursor: default;
	color: #847671!important
}

.calendar .days .day_num.selected {
   
}

.calendar .days .day_num.selected span {
	background: #0224bb !important;
	color: #fff !important;
}

#smb-checkout {
	display: none;
}


#smb-booking-frm {
	max-width: 700px;
	margin: 50px auto;
}

.smb-form-field-block {
	margin: 0 0 15px 0;
}

.smb-form-field-block label {
	color: #392118;
	font-size: 14px;
	display: block;
    font-weight: 600;
    margin: 0 0 4px 0;
	
}

.smb-form-field-block .smb-form-field {
	border: 1px solid #ced4da;
	font-size: 16px;
    padding: 8px;
    width: 100%;
}

.smb-button-container {
	text-align: right;
	margin: 15px 0 0 0;
}

.smb-back-button {
	border: 1px solid #e5e5e5;
	background: #fff;
	color: #000;
	padding: 10px 20px;
    border-radius: 5px;
	font-weight: 600;
}

.smb-back-button svg {
	margin: 0 5px 0 0;
    top: -1px;
    position: relative;
}

.smb-booking-btn {
	background: #0535cc;
	border: 1px solid #0535cc;
	color: #fff;
	padding: 10px 20px;
    border-radius: 5px;
	font-weight: 600;
	margin-left: 15px;
}

.smb-booking-cost {
	margin: 0 0 10px 0;
	font-weight: 700;
}

#card-element {
	display: block;
    width: 100%;
    padding: 8px 12px;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #6B6A75;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    appearance: none;
    border-radius: 2px;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
	height: 42px;
}

.smb-no-avail {
	text-align: center;
    margin: 20px 0;
	
}