/* --------------------------------------------------------------
   AL QUÈRTO - BOOKING FORM
-------------------------------------------------------------- */

.aq-booking-form {
	position: relative;

	width: min(1180px, 100%);

	margin: 0 auto;

	padding:
		clamp(34px, 5vw, 68px);

	border:
		1px solid rgba(5, 60, 255, .20);

	background:
		radial-gradient(
			circle at 90% 10%,
			rgba(5, 60, 255, .11),
			transparent 26rem
		),
		rgba(255, 255, 255, .82);

	box-shadow:
		0 34px 100px rgba(5, 60, 255, .10);
}

.aq-booking-form__field p {
	margin-top: 0;
	margin-bottom: 5px;
}

.wpcf7-form-control.wpcf7-submit.has-spinner {
	margin-bottom: 20px;
}

.aq-catering-form__field p {
	margin-top: 0;
	margin-bottom: 5px;
}

.aq-catering-form__privacy p {
	margin-top: 0;
	margin-bottom: 0;
}

/* --------------------------------------------------------------
   HEADER
-------------------------------------------------------------- */

.aq-booking-form__head {
	max-width: 820px;

	margin-bottom:
		clamp(36px, 5vw, 58px);
}


.aq-booking-form__kicker {
	display: block;

	margin-bottom: 16px;

	color:
		var(--aq-blue, #053cff);

	font-family:
		var(--aq-font-body);

	font-size: .72rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .09em;

	text-transform: uppercase;
}


.aq-booking-form__head h2 {
	margin:
		0
		0
		18px;

	font-family:
		var(--aq-font-display);

	font-size:
		clamp(3.6rem, 6.8vw, 7rem);

	font-weight: 400;
	line-height: .9;
	letter-spacing: -.04em;

	text-transform: uppercase;
}


.aq-booking-form__head p {
	max-width: 680px;

	margin: 0;

	color: #171e2f;

	font-family:
		var(--aq-font-body);

	font-size:
		clamp(1rem, 1.25vw, 1.16rem);

	line-height: 1.55;
}


/* --------------------------------------------------------------
   GRID
-------------------------------------------------------------- */

.aq-booking-form__grid {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap:
		24px
		clamp(18px, 2.5vw, 32px);
}


.aq-booking-form__field--full {
	grid-column: 1 / -1;
}


/* --------------------------------------------------------------
   FIELD
-------------------------------------------------------------- */

.aq-booking-form__field {
	min-width: 0;
}


.aq-booking-form label {
	display: block;

	margin-bottom: 9px;

	color:
		var(--aq-black, #04070f);

	font-family:
		var(--aq-font-body);

	font-size: .72rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .075em;

	text-transform: uppercase;
}


/* CF7 wrappers */

.aq-booking-form .wpcf7-form-control-wrap {
	display: block;

	width: 100%;
}


/* --------------------------------------------------------------
   INPUTS
-------------------------------------------------------------- */

.aq-booking-form input[type="text"],
.aq-booking-form input[type="email"],
.aq-booking-form input[type="tel"],
.aq-booking-form input[type="number"],
.aq-booking-form input[type="date"],
.aq-booking-form select,
.aq-booking-form textarea {

	width: 100%;

	margin: 0;

	padding:
		15px
		16px;

	border:
		1px solid rgba(5, 60, 255, .20);

	border-radius: 0;

	outline: none;

	color:
		var(--aq-black, #04070f);

	background:
		rgba(255, 255, 255, .80);

	box-shadow: none;

	font-family:
		var(--aq-font-body);

	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;

	transition:
		border-color .25s ease,
		background .25s ease,
		box-shadow .25s ease;
}


.aq-booking-form textarea {
	display: block;

	min-height: 130px;

	resize: vertical;
}


/* Placeholder */

.aq-booking-form
input::placeholder,
.aq-booking-form
textarea::placeholder {

	color:
		rgba(23, 30, 47, .42);

	opacity: 1;
}


/* Focus */

.aq-booking-form
input:focus,
.aq-booking-form
select:focus,
.aq-booking-form
textarea:focus {

	border-color:
		var(--aq-blue, #053cff);

	background: #fff;

	box-shadow:
		0 0 0 3px
		rgba(5, 60, 255, .08);
}


/* --------------------------------------------------------------
   SELECT
-------------------------------------------------------------- */

.aq-booking-form select {
	min-height: 53px;

	cursor: pointer;
}


/* --------------------------------------------------------------
   PRIVACY
-------------------------------------------------------------- */

.aq-booking-form__privacy {
	margin-top: 4px;

	color: #171e2f;

	font-family:
		var(--aq-font-body);

	font-size: .86rem;
	line-height: 1.5;
}


.aq-booking-form__privacy
.wpcf7-list-item {

	margin: 0;
}


.aq-booking-form__privacy label {
	display: flex;

	align-items: flex-start;

	gap: 10px;

	margin: 0;

	font-size: .86rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;

	text-transform: none;

	cursor: pointer;
}


.aq-booking-form__privacy
input[type="checkbox"] {

	flex: 0 0 auto;

	width: 17px;
	height: 17px;

	margin-top: 2px;

	accent-color:
		var(--aq-blue, #053cff);
}


.aq-booking-form__privacy a {
	color:
		var(--aq-blue, #053cff);

	text-decoration: underline;

	text-underline-offset: 3px;
}


/* --------------------------------------------------------------
   SUBMIT
-------------------------------------------------------------- */

.aq-booking-form__submit {
	display: flex;

	align-items: center;

	gap: 20px;

	flex-wrap: wrap;

	margin-top: 8px;
}


.aq-booking-form
input[type="submit"] {

	display: inline-flex;

	align-items: center;
	justify-content: center;

	min-width: 210px;

	padding:
		17px
		24px;

	border:
		1px solid
		var(--aq-blue, #053cff);

	border-radius: 0;

	color: #fff;

	background:
		var(--aq-blue, #053cff);

	box-shadow:
		0 20px 54px
		rgba(5, 60, 255, .18);

	font-family:
		var(--aq-font-body);

	font-size: .74rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .075em;

	text-transform: uppercase;

	cursor: pointer;

	transition:
		color .35s ease,
		background .35s ease,
		transform .35s cubic-bezier(.16, 1, .3, 1),
		box-shadow .35s cubic-bezier(.16, 1, .3, 1);
}


.aq-booking-form
input[type="submit"]:hover {

	color:
		var(--aq-blue, #053cff);

	background: #fff;

	transform:
		translateY(-4px);

	box-shadow:
		0 30px 70px
		rgba(5, 60, 255, .24);
}


.aq-booking-form__submit > span {
	max-width: 360px;

	color:
		rgba(23, 30, 47, .58);

	font-family:
		var(--aq-font-body);

	font-size: .78rem;
	line-height: 1.4;
}


/* --------------------------------------------------------------
   CF7 VALIDATION
-------------------------------------------------------------- */

.aq-booking-form
.wpcf7-not-valid {

	border-color: #c62828 !important;
}


.aq-booking-form
.wpcf7-not-valid-tip {

	margin-top: 7px;

	color: #c62828;

	font-family:
		var(--aq-font-body);

	font-size: .76rem;
	font-weight: 700;
}


/* --------------------------------------------------------------
   CF7 RESPONSE
-------------------------------------------------------------- */

.aq-booking-form
.wpcf7-response-output {

	margin:
		28px
		0
		0 !important;

	padding:
		16px
		18px !important;

	border:
		1px solid
		var(--aq-blue, #053cff) !important;

	color:
		var(--aq-black, #04070f);

	background:
		rgba(5, 60, 255, .06);

	font-family:
		var(--aq-font-body);

	font-size: .9rem;
	line-height: 1.45;
}


/* Spinner */

.aq-booking-form
.wpcf7-spinner {

	background-color:
		var(--aq-blue, #053cff);
}


/* --------------------------------------------------------------
   MOBILE
-------------------------------------------------------------- */

@media (max-width: 767px) {

	.aq-booking-form {
		padding:
			34px
			20px;
	}


	.aq-booking-form__grid {
		grid-template-columns: 1fr;

		gap: 20px;
	}


	.aq-booking-form__field--full {
		grid-column: auto;
	}


	.aq-booking-form__head h2 {
		font-size:
			clamp(3.1rem, 15vw, 5.2rem);
	}


	.aq-booking-form__submit {
		align-items: flex-start;

		flex-direction: column;
	}


	.aq-booking-form
	input[type="submit"] {

		width: 100%;
	}

}

/* --------------------------------------------------------------
   AL QUÈRTO - OPENTABLE BOOKING
-------------------------------------------------------------- */

.aq-opentable-booking {
	position: relative;

	overflow: hidden;

	padding:
		clamp(80px, 9vw, 140px)
		clamp(20px, 5vw, 76px);

	background:
		radial-gradient(
			circle at 88% 18%,
			rgba(5, 60, 255, .13),
			transparent 30rem
		),
		linear-gradient(
			180deg,
			#fffef9 0%,
			#fbfaf5 100%
		);
}


/* --------------------------------------------------------------
   INNER - ONE COLUMN
-------------------------------------------------------------- */

.aq-opentable-booking__inner {
	display: grid;

	grid-template-columns: 1fr;

	gap:
		clamp(38px, 5vw, 68px);

	width: min(1440px, 100%);

	margin: 0 auto;
}


/* --------------------------------------------------------------
   COPY
-------------------------------------------------------------- */

.aq-opentable-booking__copy {
	max-width: 900px;
}


.aq-opentable-booking__kicker {
	display: block;

	margin-bottom: 16px;

	color:
		var(--aq-blue, #053cff);

	font-family:
		var(--aq-font-body);

	font-size: .72rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .09em;

	text-transform: uppercase;
}


.aq-opentable-booking__copy h2 {
	max-width: 950px;

	margin:
		0
		0
		20px;

	font-family:
		var(--aq-font-display);

	font-size:
		clamp(3.2rem, 5.3vw, 4rem);

	font-weight: 400;
	line-height: .9;
	letter-spacing: -.04em;

	text-transform: uppercase;
}


.aq-opentable-booking__copy p {
	max-width: 720px;

	margin: 0;

	color: #171e2f;

	font-family:
		var(--aq-font-body);

	font-size:
		clamp(1rem, 1.25vw, 1.16rem);

	line-height: 1.55;
}


.aq-opentable-booking__copy small {
	display: block;

	margin-top: 24px;

	color:
		var(--aq-blue, #053cff);

	font-family:
		var(--aq-font-body);

	font-size: .72rem;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: .06em;

	text-transform: uppercase;
}


/* --------------------------------------------------------------
   OPENTABLE WIDGET
-------------------------------------------------------------- */

.aq-opentable-booking__widget {

}


/* OpenTable iframe */

.aq-opentable-booking__widget iframe {
	display: block !important;

	width: 100% !important;
	max-width: 100% !important;

	min-width: 0 !important;

	margin: 0 !important;

	border: 0 !important;
}


/*
 * Alcune versioni del loader OpenTable
 * generano wrapper aggiuntivi.
 */
.aq-opentable-booking__widget > div,
.aq-opentable-booking__widget > span {
	width: 100% !important;
	max-width: 100% !important;
}


/* --------------------------------------------------------------
   MOBILE
-------------------------------------------------------------- */

@media (max-width: 767px) {

	.aq-opentable-booking {
		padding:
			72px
			18px;
	}


	.aq-opentable-booking__inner {
		gap: 34px;
	}


	.aq-opentable-booking__copy h2 {
		font-size:
			clamp(3.2rem, 15vw, 5.4rem);
	}


	.aq-opentable-booking__widget {
		padding:
			18px
			12px;
	}

}

/* --------------------------------------------------------------
   AL QUÈRTO - CATERING FORM
-------------------------------------------------------------- */

.aq-catering-form {
	position: relative;

	width: min(1180px, 100%);

	margin: 0 auto;

	padding:
		clamp(34px, 5vw, 68px);

	border:
		1px solid rgba(5, 60, 255, .20);

	background:
		radial-gradient(
			circle at 90% 10%,
			rgba(5, 60, 255, .11),
			transparent 26rem
		),
		rgba(255, 255, 255, .82);

	box-shadow:
		0 34px 100px
		rgba(5, 60, 255, .10);
}


/* HEAD */

.aq-catering-form__head {
	max-width: 850px;

	margin-bottom:
		clamp(36px, 5vw, 58px);
}


.aq-catering-form__kicker {
	display: block;

	margin-bottom: 16px;

	color:
		var(--aq-blue, #053cff);

	font-family:
		var(--aq-font-body);

	font-size: .72rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .09em;

	text-transform: uppercase;
}


.aq-catering-form__head h2 {
	margin:
		0
		0
		20px;

	font-family:
		var(--aq-font-display);

	font-size:
		clamp(3.6rem, 6.5vw, 7rem);

	font-weight: 400;
	line-height: .9;
	letter-spacing: -.04em;

	text-transform: uppercase;
}


.aq-catering-form__head p {
	max-width: 720px;

	margin: 0;

	color: #171e2f;

	font-family:
		var(--aq-font-body);

	font-size:
		clamp(1rem, 1.25vw, 1.16rem);

	line-height: 1.55;
}


/* GRID */

.aq-catering-form__grid {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap:
		24px
		clamp(18px, 2.5vw, 32px);
}


.aq-catering-form__field--full {
	grid-column: 1 / -1;
}


/* LABEL */

.aq-catering-form label {
	display: block;

	margin-bottom: 9px;

	color:
		var(--aq-black, #04070f);

	font-family:
		var(--aq-font-body);

	font-size: .72rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .075em;

	text-transform: uppercase;
}


.aq-catering-form .wpcf7-form-control-wrap {
	display: block;

	width: 100%;
}


/* INPUTS */

.aq-catering-form input[type="text"],
.aq-catering-form input[type="email"],
.aq-catering-form input[type="tel"],
.aq-catering-form input[type="number"],
.aq-catering-form input[type="date"],
.aq-catering-form select,
.aq-catering-form textarea {

	width: 100%;

	margin: 0;

	padding:
		15px
		16px;

	border:
		1px solid rgba(5, 60, 255, .20);

	border-radius: 0;

	outline: none;

	color:
		var(--aq-black, #04070f);

	background:
		rgba(255, 255, 255, .80);

	font-family:
		var(--aq-font-body);

	font-size: 1rem;

	transition:
		border-color .25s ease,
		box-shadow .25s ease,
		background .25s ease;
}


.aq-catering-form textarea {
	min-height: 150px;

	resize: vertical;
}


.aq-catering-form
input:focus,
.aq-catering-form
select:focus,
.aq-catering-form
textarea:focus {

	border-color:
		var(--aq-blue, #053cff);

	background: #fff;

	box-shadow:
		0 0 0 3px
		rgba(5, 60, 255, .08);
}


/* PRIVACY */

.aq-catering-form__privacy {
	font-family:
		var(--aq-font-body);

	font-size: .86rem;
	line-height: 1.5;
}


.aq-catering-form__privacy
.wpcf7-list-item {

	margin: 0;
}


.aq-catering-form__privacy label {
	display: flex;

	align-items: flex-start;

	gap: 10px;

	margin: 0;

	font-size: .86rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;

	text-transform: none;
}


.aq-catering-form__privacy
input[type="checkbox"] {

	width: 17px;
	height: 17px;

	margin-top: 2px;

	accent-color:
		var(--aq-blue, #053cff);
}


.aq-catering-form__privacy a {
	color:
		var(--aq-blue, #053cff);

	text-decoration: underline;

	text-underline-offset: 3px;
}


/* SUBMIT */

.aq-catering-form__submit {
	display: flex;

	align-items: center;

	gap: 20px;

	flex-wrap: wrap;

	margin-top: 8px;
}


.aq-catering-form
input[type="submit"] {

	padding:
		17px
		24px;

	border:
		1px solid
		var(--aq-blue, #053cff);

	border-radius: 0;

	color: #fff;

	background:
		var(--aq-blue, #053cff);

	font-family:
		var(--aq-font-body);

	font-size: .74rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .075em;

	text-transform: uppercase;

	cursor: pointer;

	transition:
		color .35s ease,
		background .35s ease,
		transform .35s cubic-bezier(.16, 1, .3, 1),
		box-shadow .35s cubic-bezier(.16, 1, .3, 1);
}


.aq-catering-form
input[type="submit"]:hover {

	color:
		var(--aq-blue, #053cff);

	background: #fff;

	transform:
		translateY(-4px);

	box-shadow:
		0 30px 70px
		rgba(5, 60, 255, .24);
}


.aq-catering-form__submit > span {
	max-width: 390px;

	color:
		rgba(23, 30, 47, .58);

	font-family:
		var(--aq-font-body);

	font-size: .78rem;
	line-height: 1.4;
}


/* CF7 */

.aq-catering-form
.wpcf7-not-valid {

	border-color:
		#c62828 !important;
}


.aq-catering-form
.wpcf7-not-valid-tip {

	margin-top: 7px;

	color: #c62828;

	font-family:
		var(--aq-font-body);

	font-size: .76rem;
	font-weight: 700;
}


.aq-catering-form
.wpcf7-response-output {

	margin:
		28px
		0
		0 !important;

	padding:
		16px
		18px !important;

	border:
		1px solid
		var(--aq-blue, #053cff) !important;

	background:
		rgba(5, 60, 255, .06);

	font-family:
		var(--aq-font-body);

	font-size: .9rem;
}


/* MOBILE */

@media (max-width: 767px) {

	.aq-catering-form {
		padding:
			34px
			20px;
	}


	.aq-catering-form__grid {
		grid-template-columns: 1fr;
	}


	.aq-catering-form__field--full {
		grid-column: auto;
	}


	.aq-catering-form__head h2 {
		font-size:
			clamp(3.1rem, 15vw, 5.2rem);
	}


	.aq-catering-form__submit {
		align-items: flex-start;

		flex-direction: column;
	}


	.aq-catering-form
	input[type="submit"] {

		width: 100%;
	}

}