/* Base Styles */

.br-content {
  font-weight: 400;
  line-height: 1.2;
  font-family: arial;
}

.br-content * {
  box-sizing: border-box;
}

/* Option Blocks */

.section-title {
  font-size: 1.2rem;
}

.option-block {
  margin-bottom: 3rem;
  background-color: #f8f8f8;
  border: 1px solid #dfdfdf;
  border-left: 2px solid #4e8de9;
  padding: 1rem;
  max-width: 20rem;
  transition: all ease-in-out 0.3s;
}

.option-title {
  margin: 0 0 0.8rem 0;
  font-size: 1.1rem;
}

/* Form Elements */

.br-content select, .br-content input[type="text"], .br-content input[type="tel"], .br-content input[type="email"] {
  display: block;
  width: 100%;
  height: 2.5rem;
  text-indent: 0.5rem;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  transition: all .15s ease-in-out;
}

.br-content select {
  cursor: pointer;
}

.medium-size-imput {
  max-width: 15rem;
}

.small-size-imput {
  max-width: 10rem;
}

.br-content select:focus, .br-content input[type="text"]:focus, .br-content input[type="tel"]:focus, .br-content input[type="email"]:focus {
  outline: 0;
  border-color: #80bdff;
  box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25);
}

.contact-details label {
  margin-top:1.5rem;
}

/* Form Elements | Radio & Checkbox */

.br-list-block {
  list-style: none;
  padding: 0;
  margin: 0;
}

.br-list-block li {
  margin-top: 0.8rem;
}

.br-list-block li label {
  cursor: pointer;
  display: flex;
}

.br-list-block label>span {
  margin-left: 1rem;
  line-height: 1.4rem;
}

.br-list-block input {
  cursor: pointer;
  margin: 0;
  opacity: 0;
  position: absolute;
}

.br-list-block svg {
  width: 1.4rem;
  height: 1.4rem;
  flex-shrink: 0;
}

.br-list-block input:hover + label > svg>* {
  transition: fill ease-in-out 0.2s;
}

.br-list-block input:focus-visible + label {
  text-decoration: underline;
}

.br-icon-on {
  animation-name: tick;
  animation-duration: 0.3s;
}

.br-list-block input + label>.br-icon-on {
  display:none;
}
.br-list-block input + label>.br-icon-off {
  display:inline-block;
}

.br-list-block input:checked + label>.br-icon-off {
  display:none;
}
.br-list-block input:checked + label>.br-icon-on {
  display:inline-block;
}

@keyframes tick {
  0% {transform: scale(0, 0);}
  75%  {transform: scale(1.1, 1.1);}
  100%  {transform: scale(1, 1);}
}

/* Group Size Options */

.price-option {
  margin-top: 1.5rem;
}

.price-option-label {
  display: block;
  margin-bottom: 0.4rem;
}

.price-option input[type="text"] {
  cursor: default;
  width: 4rem;
  border-top: 1px solid #c6c6c6;
  border-right: 0;
  border-bottom: 1px solid #c6c6c6;
  border-left: 0;
  border-radius: 0;
  text-indent: 0;
  text-align: center;
}

.br-content .price-option input[type="text"]:focus {
  box-shadow: none;
  border-color:#c6c6c6;
}

.price-option-inputs {
  display: flex;
  align-items: center;
}

/* Group Size Buttons */

.price-option-button {
  height: 2.5rem;
  width: 4rem;
  background: rgb(221,221,221);
  background: linear-gradient(0deg, rgba(221,221,221,1) 5%, rgba(233,233,233,1) 30%, rgba(240,240,240,1) 95%, rgba(246,246,246,1) 100%);
  border: 1px solid #c6c6c6;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all ease-in-out 0.3s;
}

.price-option-button:hover {
  border-color: #919191;
}

.price-option-button svg {
  width: 0.8rem;
  height: 0.8rem;
}

.price-option-button:first-of-type {
  border-top-left-radius: 0.4em;
  border-bottom-left-radius: 0.4em;
}

.price-option-button:last-of-type {
  border-top-right-radius: 0.4em;
  border-bottom-right-radius: 0.4em;
}

/* Group Size Capacity */

.group-capacity {
  text-align: right;
  font-weight: bold;
}

/* Extras */

.br-extra-block {
  margin-top: 2rem;
}

/* Forms */

.br-form-block {
  margin-top: 2rem;
}

/* Sub Title */

.br-sub-title {
  display: block;
  margin-bottom: 0.4rem;
}

/* Error Alert */

.error-on + .error-alert {
  display: block;
}

.error-on {
  border-color: red !important;
}

.error-alert {
  color:red;
  margin-top: 1rem;
}

/* Loader | Spinner */

.br-loader {
	padding: 3rem 1rem;
  max-width: 20rem;
	text-align: center;
}

.spinner {
	-webkit-animation: spinner 1500ms infinite linear;
	-moz-animation: spinner 1500ms infinite linear;
	-ms-animation: spinner 1500ms infinite linear;
	-o-animation: spinner 1500ms infinite linear;
	animation: spinner 1500ms infinite linear;
	-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
	-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
	box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
	display: inline-block;
	border-radius: 0.5em;
	font-size: 10px;
	width: 1em;
	height: 1em;
	overflow: hidden;
	text-indent: 100%;
}

@-webkit-keyframes spinner {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@-moz-keyframes spinner {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@-o-keyframes spinner {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
	}

	100% {
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@keyframes spinner {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
	}

	100% {
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

/* Total Price */

.br-price {
  font-size: 1.5rem;
  margin-bottom: 3rem;
}

.br-price-value {
  font-weight: bold;
  margin-left: 0.5rem;
}

/* BR Button */

.br-button {
  all:unset;
  display: inline-block;
  box-sizing: border-box;
  height: 2.5rem;
  cursor: pointer;
  margin: 0 0 3rem 0;
  font-size: 0.8rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 0.8rem;
  padding: 1em 2.5em;
  color: #ffffff;
  border: 1px solid #333333;
  border-radius: 0.4em;
  text-transform: uppercase;
  vertical-align: middle;
  transition: all ease-in-out 0.3s;
  position: relative;
}

.br-button::after {
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  background-color: red;
  position: relative;
}

.br-button.br-button-secondary {
  background-color: #dddddd;
  margin-right: 1rem;
  color:#6c6c6c;
  border-color:#6c6c6c;
  box-shadow: 0px 5px 10px 0px rgba(108,108,108,0.3);
  padding: 1em 1.5em;
}

.br-button.br-button-secondary:hover, .br-button.br-button-secondary:focus {
  background-color: #c6c6c6;
}


@media only screen and (max-width: 340px) {
  .br-button {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: 1.5rem;
    margin-bottom: 0;
  }
}

/* Checkout */

.checkout-item {
  display: flex;
  justify-content: space-between;
}

@media only screen and (max-width: 380px) {
  .checkout-item {
    flex-direction: column;
  }
}

.checkout-item span:first-child {
  flex-basis: 35%;
}

.checkout-item span:last-child {
  flex-basis: 60%;
}

.checkout-item span {
  margin-top: 0.5rem;
}

.checkout-sub-title {
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 1.5rem;
  margin-bottom: 0;
}

.br-button.pay-now {
  background-color: #2dbc2d;
  box-shadow: 0px 5px 10px 0px rgba(45,188,45,0.3);
}
.br-button.pay-now:hover, .br-button.pay-now:focus {
  background-color: #269d26;
}


/* Full Booking Details */

.full-details, .full-customber {
  display: none;
  padding-top: 3rem;
}

.checkout-sub-title:first-of-type {
  margin-top: 0;
}

.full-details-toggle {
  cursor: pointer;
  font-size: 0.8rem;
  line-height: 0.8rem;
  padding: 0.4em 1em;
  transition: all ease-in-out 0.3s;
  margin: -3rem 0.5rem 3rem 0.5rem;
  max-width: 8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #dfdfdf;
  border-top:0;
  border-bottom-left-radius: 0.5em;
  border-bottom-right-radius: 0.5em;
}

.full-details-toggle:hover {
  border-color: #333333;
}

.full-details-toggle span {
  vertical-align: middle;
}

.full-details-toggle span:last-child {
  width: 0.6rem;
  height: 0.6rem;
  transition: all ease-in-out 0.2s;
}

.toggle-button-open span:last-child {
  transform: rotate(180deg);
}

/* Discounts */

.br-discount-code {
  display: none;
}

.br-discount-toggle {
  cursor: pointer;
  margin-bottom: 1.5rem;
  vertical-align: middle;
}

.br-discount-toggle:hover {
  text-decoration: underline;
}

.br-discount-toggle span {
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  margin-left: 1rem;
}

.br-discount-inputs {
  display: flex;
}

.br-discount-inputs input[type="text"] {
  max-width: 10rem;
  margin-right: 1rem;
}


@media only screen and (max-width: 340px) {
  .br-discount-inputs {
    flex-direction: column;
    display: block;
  }
  .br-discount-inputs input[type="text"] {
    max-width: none;
    margin-right:0;
  }
  .br-discount-inputs .br-button {
    margin-bottom: 3rem;
  }
}
