/* HOMEPAGE */

.events-home-header {

	& {
		padding: 1.5rem;
	}

	& .events-home-logo {
		width:100px;
		aspect-ratio: 1/1;
		object-fit:contain;
		object-position:center center;
	}

	& .events-home-title {
		font-size: 4.5rem;
		font-weight: 300;
		line-height: 1.2;
	}

}

.events-home.container {

	& {
		padding: 1.5rem;
		flex-grow: 1;
	}

	& .event-row {
		padding: 1.5rem;
		margin-bottom: 1rem;
		border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
		display:flex;
		justify-content: space-between;
		align-items:center;
		position:relative;
		cursor:pointer;
		border-radius:7px;
	}

	& .event-row:hover {
		border-color: #999;
		filter:brightness(1.2)
	}

	& .event-row-bg {
		position:absolute;
		top:0;
		left:0;
		width:100%;
		height:100%;
		background: center center no-repeat;
		background-size:cover;
		/* filter:grayscale(1); */
		opacity:0.1;
		z-index:-1;
	}

	& .event-row-logo {
		border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
		margin-right: 20px;
		width:100px;
		aspect-ratio: 1/1;
		object-fit:contain;
		object-position:center center;
		border-radius:100%;
		padding:7px;
		overflow:hidden;
	}
	
	& .event-row-details {
		flex-grow:1;
		margin:0;
	}

	& .event-row-details > span {
		display:block;
	}

	& .event-row-title {
		font-size: 3rem;
		font-weight: 300;
		line-height: 1;
		margin-bottom:7px;
	}
}

footer.events-home-footer {
	padding: 3rem;
}



/* LANDING PAGE */

.add-mode-bar {
	z-index:100;
	background: rgba(var(--bs-danger-rgb));
	color: white;
	text-align: center;
	position:sticky;
	top:0;
	padding: .75em;
}

.landing-header {
	position: relative;
	background-position: center center;
	background-size: cover;
}

.landing-header .overlay {
	background: rgba(0,0,0,0.5);
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 0;
}

.landing-header img.logo{
	max-height:120px;
	width:auto
}

.landing-header .landing-header-content {
	position: relative;
	z-index: 10;
	height: 100%;
	text-align: center;
	padding: 1rem;
}

.landing-header img.navbar-brand {
	display: block;
	margin: 1rem auto;
	width: 180px;
}

.landing-header img.landing-logo {
	max-width: 500px;
	max-height: 200px;
	height: auto;
	width: auto;
	margin: 1rem auto;
	display: block;
}

.landing-header h1.landing-title {
	margin: 1rem;
}

.landing-header .landing-description {
	margin: 1rem;
}

.landing-tools {
	position: sticky;
	top:0;
	height:0;
	z-index:100;
}

.landing-tools > .container {
	position:relative
}

.landing-tools-navbar {
	display: flex;
	gap:10px;
	justify-content: end;
	align-items: center;
	padding:15px 20px;
}

.landing-tools-navbar .btn {
	box-shadow: 0 2px 5px -3px rgba(0,0,0,0.2);
}

/* CONTENT PAGE */

.page-event-title {
	font-size: 2.5rem;
	font-weight: 300;
}

.page-event-logo {
	max-width:300px;
	max-height:100px;
}

.page-title {
	font-size: 3.5rem;
	font-weight: 300;
}

/* 404 */

.error-404 {
	height: 100vh;
	display:flex;
	justify-content: center;
	align-items: center;
}

/* FORM PRENOTAZIONE */

.service-item,
.guest-item,
.payment-method-item {
	margin-bottom:1.5rem;
	border:1px solid #e5e5e5;
	border-radius:7px;
	transition: box-shadow 0.2s linear;
}

.service-item:focus-within,
.guest-item:focus-within,
.payment-method-item:focus-within {
	box-shadow: 0 18px 15px -25px rgba(0,0,0,.4);
}

.service-item-inner,
.guest-item-inner,
.payment-methods-inner {
	/* border: 1px solid #dedede; */
	padding:20px;
	height:100%;
	display: flex;
	gap:0 20px;
}

.service-item-info1 {
	flex-shrink: 1;
	flex-grow: 1;
}

.service-item-info2 {
	flex-shrink: 0;
	flex-grow: 0;
	display: flex;
	gap:20px;
	flex-direction: column;
	align-items: end;
	justify-content: space-between;
}

.service-item-title {
	font-weight: 300;
}

.service-item-description {
	flex-grow:1;
	color:#666;
	font-size: 1.25rem;
	font-weight: 300;
}

.service-item-counter {
	display: flex;
	flex-wrap: nowrap;
	margin-bottom:10px;
}

.service-item-counter-up,
.service-item-counter-down,
.service-item-counter-input {
	border:0;
	padding:0.5rem;
	appearance: none;
	-moz-appearance:none;
	-webkit-appearance: none;
	-moz-appearance: textfield;
  margin: 0;
	line-height: 0;
	font-size: 1.3em;
}

.service-item-counter-up,
.service-item-counter-down {
	height:45px;
	aspect-ratio: 3/5;
	font-weight: 300;
	background-color: #dedede;
	display: flex;
	justify-content: center;
	align-items: center;
}

.service-item-counter-up:hover:not(:disabled),
.service-item-counter-down:hover:not(:disabled) {
	background-color: #ccc;
}

.service-item-counter-up {
	border-radius: 0 4px 4px 0;
}

.service-item-counter-down {
	border-radius: 4px 0 0 4px;
}

.service-item-counter-input {
	max-width: 45px;
	border: 1px solid #dedede;
	text-align: center;
}

.service-item-check {
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
	font-size: 1.1em;
	font-weight: 300;
	gap: 10px;
	background: #e5e5e5;
	padding: 6px 6px 6px 10px;
	border-radius: 4px;
	cursor:pointer;
	display: flex;
	align-items:center;
}

.service-item-check::before {
	content:'Seleziona';
	font-size: 1.1em;
	font-weight: 300;
}
.service-item-check.checked::before {
	content:'Rimuovi';
}

.service-item-check:hover{
	background-color: #cccccc;
}

.service-item-check::after {
	content:"";
	font-family: 'Font Awesome 6 Free';
	font-weight: 900;
	display: inline-block;
	width: 33px;
	height: 33px;
	outline: 1px solid #dedede;
	border: 5px solid #fff;
	background-color: #fff;
	border-radius: 4px;
	text-align: center;
	line-height: 24px;;
}

.service-item-check.checked::after {
	background-color: var(--bs-primary);
	content:"\f00c";
	font-family: 'Font Awesome 6 Free';
	font-weight: 900;
	color:white;
}

.service-item-price-box {
	text-align: right;
}

.service-item-price {
	font-size:1.5em;
	font-weight: 300;
}

.service-item-price-cad {
	display: block;
	line-height: 1;
}

.guest-items header {
	background: var(--bs-body-bg);
	position: sticky;
	top:0;
	padding: 20px 0;
	z-index:10;
}

.guest-items header > * {
	margin:0;
}

.guest-items .service-title
{
	font-size:2.5rem;
	font-weight: 300;
	line-height: 1.1;
}

.guest-item-inner {
	display: grid;
	grid-template-columns: min-content 1fr 1fr 1fr 1fr;
}

.guest-input-group {
	margin-bottom:0.7rem;
}

.guest-input-group label {
	font-size: 13px;
	background: var(--bs-body-bg);
	margin-left: 5px;
	margin-bottom: -10px;
	display: table;
	position: relative;
	color: #666;
	padding: 0 5px;
}

.guest-input {
	width:100%;
	display:block;
	font-size: 1em;
	font-weight: 300;
	border:1px solid #f0f0f0;
	border-radius: 4px;
	padding:10px;
}

.guest-input:focus {
	outline: 0;
	border-color:#ccc;
}

.guest-input-first-name,
.guest-input-last-name {
	font-size:1.3em;
}

.guest-user-icon {
	grid-column: 1;
	grid-row: 1/3;
	text-align:center;
	color:#333;
}
.guest-user-icon i{
	color:#dedede;
}

.guest-first-name {
	grid-column: 2/4;
	grid-row: 1;
}
.guest-last-name {
	grid-column: 4/6;
	grid-row: 1;
}
.guest-second-row {
	grid-column: 2/6;
	grid-row: 2;
	display: flex;
	gap:20px;
}

.guest-second-row .guest-input-group {
	flex:1;
}

span.req {
	color: darkred;
	font-size: 18px;
	line-height: 0;
}

.payment-methods-inner {
	padding:0px;
}

.payment-method-item {
	cursor:pointer;
	text-align: center;
	flex: 1;
	padding: 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:10px;
}

.payment-method-item:hover {
	border-color: #ccc
}

.payment-method-item > * {
	margin:0;
}

.payment-method-item i {
	color:#aaa;
}

.payment-method-item > p {
	flex-grow: 1;
}

.payment-method-item > p small {
	line-height: 1.3;
	display: inline-block;
	margin-top: 5px;
	color:#666;
}

.payment-method-item input {
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
	outline: 1px solid #dedede;
	border: 5px solid #ffffff;
	background: #ffffff;
	width:30px;
	height:30px;
	border-radius: 100%;
}

.payment-method-item input:checked {
	background: var(--bs-primary);
}

.notes textarea {
	height:100px;
	font-size:1.1em;
	font-weight: 300;
	margin-bottom: 3rem;
}

.privacy-box {
	display: flex;
	gap: 10px;
	flex-wrap: nowrap;
	align-items: start;
}

.privacy-box input {
	flex: 1 0 auto;
	width:20px;
	height:20px;
}


[data-bs-theme=dark] {

	.service-item,
	.guest-item {
		border-color: #555;
	}

	.service-item-title {
		color:#fff;
	}

	.service-item-description {
		color:#aaa;
	}

	.service-item-counter-up,
	.service-item-counter-down {
		background-color: #454545;
	}

	.service-item-counter-up:hover:not(:disabled),
	.service-item-counter-down:hover:not(:disabled) {
		background-color: #333333;
	}

	.service-item-counter-input {
		border-color: #454545;
	}

	.service-item-check {
		background: #454545;
	}

	.service-item-check:hover{
		background-color: #333333;
	}

	.service-item-check::after {
		outline-color: #454545;
		border-color: #666;
		background-color: #666;
	}

	.service-item-check.checked::after {
		border-color: var(--bs-primary);
		background-color: var(--bs-primary);
		color: white;
	}

	.guest-input-group label {
		color: #aaa;
	}

	.guest-input {
		border-color: #333;
		background-color: transparent;
	}

	.guest-input:focus {
		border-color:#666;
	}

	.guest-user-icon {
		color:#999;
	}
	.guest-user-icon i{
		color:#454545;
	}

	.payment-method-item {
		border-color:#454545
	}
	.payment-method-item:hover {
		border-color: #666
	}

	.payment-method-item i {
		color:#666;
	}

	.payment-method-item > p small {
		color:#ccc;
	}

	.payment-method-item input {
		outline-color: #454545;
		border-color: #ccc;
		background: #ccc;
	}

	.payment-method-item input:checked {
		background: var(--bs-primary);
	}

	.receipt-event-logo img{
		background: var(--bs-body-bg);
	}

}

.richText-toolbar a {
	color: #333 !important
}

.cart-navigation {
	display: flex;
	flex-direction: row;
	justify-content: end;
	align-items: center;
	gap: 10px;
}

.cart-navigation .step-forward {
	flex: 0 1 33%;
}

.cart-navigation .step-back {
	margin-right: auto;
}

#form_step_guests .form-control:focus {
	background: none;
	color: #333333;
	outline: 0;
	border: 0 !important;
	border-bottom: 1px solid #333333 !important;
	box-shadow: none;
}

.cart-steps {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-content: center;
	gap: 20px;
	padding-bottom: 1rem;
}

.cart-steps span.active{
	font-weight:bold;
}

.cart-step-title {
	text-align: center;
	margin: 1.5rem 0;
}

.cart-step {
	margin-bottom:1.5rem;
}

.cart-step .guest {
	padding: 1rem;
	margin-bottom:1rem;
	border-radius: var(--bs-border-radius);
	border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
	box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
}

.cart-step .guest input {
	padding:0.5rem 0;
	border:0;
	border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
	border-radius:0;
}

/* CONFERMA PRENOTAZIONE */

#summary {
	padding: 1.5rem;
	margin-bottom: 3rem;
	flex-grow: 1;
}

.receipt {
	width:95%;
	max-width:550px;
	filter: drop-shadow(2px 2px 40px rgba(0,0,0,0.3));
	margin-top: -35px;
	background: #f5f5f5;
	color: #555555;
	position: relative;
	z-index: 10;
	padding:2rem;
}

.receipt::before,
.receipt::after {
	content: '';
	background: url('../img/receipt-cut.svg') repeat-x;
	width: 100%;
	height: 16px;
	position: absolute;
	background-size: 23px;
	background-position: -6px;
	left: 0;
}

.receipt::before {
	top: -15px;
}
.receipt::after {
	bottom: -15px;
	transform: rotate(180deg);
}

.receipt-event-header {
	margin-left:-3rem;
	margin-right:-3rem;
}

.receipt-event-header img {
	aspect-ratio: 3/1;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.receipt-event-logo img {
	width: 100px;
	aspect-ratio: 1/1;
	object-fit: contain;
	object-position: center;
	border: 1px solid #ddd;
	padding:5px;
}

.reservation-line {
	border-bottom: 1px solid #ccc;
	justify-content:space-between;
	display: flex;
	align-items:center;
	padding: 0.5rem 0;
	flex-wrap:wrap;
}

.reservation-lines .reservation-line:first-child {
	border-top: 1px solid #ccc;
}

.reservation-line strong {
	flex-grow: 1;
	flex-basis:100%;
}

.reservation-total-line{
	justify-content: end;
	display: flex;
	align-items: end;
	padding: 0.75rem 0;
	flex-direction:column;
}

.reservation-notify-sent{
	padding: 1.5rem 0;
	text-align:center;
}

.thank-you-text {
	font-size: 1.25rem;
	font-weight: 300;
	text-align:center;
}

/* CONTROLLO QR */

.qr-valid,
.qr-invalid{
	text-align: center;
	padding: 1.5rem;
	display:flex;
	flex-direction: column;
	justify-content: center;
}

.qr-check-tickets p {
	padding: .5rem;
	margin:0;
	display:flex;
	justify-content:center;
	align-items:center;
}

.qr-ticket-block {
	display: flex;
	flex-wrap: wrap;
	text-align: left;
	gap: 20px;
	border: 1px solid #dedeed;
	border-radius: 7px;
	padding: 0.6rem 1rem;
	align-items: center;
}

.qr-check-tickets h4 img {
	flex-grow: 0;
	width: 40px;
	flex-shrink: 1;
}

.qr-check-tickets h4 span {
	flex-grow: 1;
}

@media (max-width:991px) {

	.landing-header-content {
		padding:.5rem
	}

	.landing-header img.landing-logo {
		max-width: 200px;
		max-height: 100px;
		margin: .5rem auto;
	}

	.landing-header .landing-description {
		margin: .5rem;
		line-height: 1.3;
	}

	.landing-tools {
		height:auto;
		padding: 0;
	}

	.landing-tools-navbar {
		gap:5px;
		padding:5px 0px;
	}

	.landing-tools-navbar .btn {
		padding:0px 5px;
		font-size:1em;
	}

	#mini-cart .btn .badge {
		position: relative !important;
		top: auto !important;
		left: auto !important;
		margin: 0;
		transform: none !important;
		display: inline;
		background: none !important;
		padding: 0;
	}

	.cart-navigation .step-forward {
		flex: 1 1 auto;
	}

	.guest-second-row {
		display: block;
	}

	.payment-methods-inner{
		flex-direction: column;
	}

	.payment-method-item {
		text-align: left;
		align-items: start;
		flex-direction: row;
	}

	.payment-method-item i {
		font-size:2em;
	}

	.payment-method-item input {
		flex-shrink: 0;
		width:20px;
		height:20px;
	}

}

@media (max-width:575px) {

	.events-home-header {

		& {
			text-align: center;
		}

		& .events-home-title {
			font-size: 3rem;
		}

	}

	.events-home.container {

		& .event-row {
			padding: 1.2rem;
			flex-direction: column;
			justify-content: start;
			align-items:center;
			text-align:center;
			gap:10px;
		}

		& .event-row-logo {
			margin-right:0;
		}

		& .event-row-title {
			font-size:2rem;
		}
		
		& .event-row-book {
			width:100%;
		}
		
	}

	.cart-steps span:not(.active){
		display:none;
	}

	.service-item-inner {
		flex-direction: column;
		gap:unset;
	}
	.service-item-info2 {
		flex-direction:row-reverse;
		align-items: center;
	}
	.service-item-counter {
		margin:0;
	}

	.service-item-low {
		margin-bottom:1rem;
	}

	.service-item-check {
		flex-direction: row-reverse;
		padding: 6px 10px 6px 6px;
	}

	.guest-item-inner {
		display:block;
	}

	.guest-user-icon {
		display: flex;
		align-items: center;
		gap: 10px;
		margin-bottom: 0.7rem;
	}

	.guest-input {
		padding: 5px 10px;
	}

}