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

.aq-catering-widget {
	position: relative;

	overflow: hidden;
	isolation: isolate;

	padding:
		clamp(90px, 12vw, 170px)
		clamp(20px, 5vw, 76px)
		clamp(100px, 11vw, 160px);

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

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


/* --------------------------------------------------------------
   INNER
-------------------------------------------------------------- */

.aq-catering-widget__inner {
	position: relative;

	z-index: 2;

	width: min(1440px, 100%);

	margin: 0 auto;
}


/* --------------------------------------------------------------
   GHOST
-------------------------------------------------------------- */

.aq-catering-widget__ghost {
	position: absolute;

	right: -2vw;
	top: 4vw;

	z-index: 0;

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

	font-family: var(
		--aq-font-display,
		"Anton",
		Impact,
		sans-serif
	);

	font-size: clamp(8rem, 19vw, 24rem);
	font-weight: 400;
	line-height: .75;
	letter-spacing: -.02em;

	text-transform: uppercase;
	white-space: nowrap;

	pointer-events: none;
}


/* --------------------------------------------------------------
   INTRO
-------------------------------------------------------------- */

.aq-catering-widget__intro {
	position: relative;

	z-index: 1;

	max-width: 1120px;

	margin-bottom:
		clamp(48px, 6vw, 80px);
}


.aq-catering-widget__kicker {
	margin: 0 0 20px;

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

	font-family:
		var(--aq-font-body, "Inter", sans-serif);

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

	text-transform: uppercase;
}


.aq-catering-widget__intro h2 {
	max-width: 980px;

	margin: 0 0 18px;

	font-family: var(
		--aq-font-display,
		"Anton",
		Impact,
		sans-serif
	);

	font-size:
		clamp(4rem, 8.2vw, 7.5rem);

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

	text-transform: uppercase;
}


.aq-catering-widget__text {
	max-width: 780px;

	margin: 0;

	color: #1b2030;

	font-family:
		var(--aq-font-body, "Inter", sans-serif);

	font-size:
		clamp(1.18rem, 1.7vw, 1.3rem);

	font-weight: 400;
	line-height: 1.55;
}


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

.aq-catering-widget__grid {
	position: relative;

	z-index: 1;

	display: grid;

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

	gap: clamp(16px, 2vw, 28px);
}


/* --------------------------------------------------------------
   CARD
-------------------------------------------------------------- */

.aq-catering-card {
	position: relative;

	min-height: 540px;

	overflow: hidden;

	background: #fff;

	box-shadow:
		0 30px 80px rgba(13, 24, 66, .12);

	transition:
		transform .55s cubic-bezier(.16, 1, .3, 1),
		box-shadow .55s cubic-bezier(.16, 1, .3, 1);
}


.aq-catering-card:hover {
	transform: translateY(-12px);

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


/* --------------------------------------------------------------
   IMAGE
-------------------------------------------------------------- */

.aq-catering-card__media {
	position: absolute;
	inset: 0;

	margin: 0;

	overflow: hidden;
}


.aq-catering-card__media::after {
	content: "";

	position: absolute;
	inset: 0;

	z-index: 1;

	background:
		linear-gradient(
			180deg,
			rgba(3, 6, 18, .02) 20%,
			rgba(3, 6, 18, .9)
		),
		linear-gradient(
			120deg,
			rgba(5, 60, 255, .16),
			transparent 48%,
			rgba(5, 60, 255, .10)
		);
}


.aq-catering-card__media img {
	width: 100%;
	height: 100%;

	object-fit: cover;

	filter:
		saturate(.94)
		contrast(1.04)
		brightness(.88);

	transition:
		transform .9s cubic-bezier(.16, 1, .3, 1),
		filter .9s cubic-bezier(.16, 1, .3, 1);
}


.aq-catering-card:hover
.aq-catering-card__media img {

	transform: scale(1.08);

	filter:
		saturate(1.08)
		contrast(1.08)
		brightness(.94);
}


/* --------------------------------------------------------------
   CONTENT BOX
-------------------------------------------------------------- */

.aq-catering-card__content {
	position: absolute;

	left: 24px;
	right: 24px;
	bottom: 24px;

	z-index: 3;

	padding: 24px;

	border:
		1px solid rgba(255, 255, 255, .22);

	color: #fff;

	background:
		rgba(3, 7, 18, .42);

	backdrop-filter: blur(16px);

	-webkit-backdrop-filter: blur(16px);
}


/* Number */

.aq-catering-card__number {
	position: absolute;

	right: 22px;
	top: 18px;

	font-family: var(
		--aq-font-display,
		"Anton",
		Impact,
		sans-serif
	);

	font-size: 4rem;
	font-weight: 400;
	line-height: .8;

	color: rgba(255, 255, 255, .18);

	pointer-events: none;
}


/* Kicker */

.aq-catering-card__kicker {
	margin: 0 0 12px;

	color: #9fb1ff;

	font-family:
		var(--aq-font-body, "Inter", sans-serif);

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

	text-transform: uppercase;
}


/* Title */

.aq-catering-card__content h3 {
	position: relative;

	z-index: 1;

	max-width: 90%;

	margin: 0 0 10px;

	font-family: var(
		--aq-font-display,
		"Anton",
		Impact,
		sans-serif
	);

	font-size:
		clamp(2.3rem, 3.6vw, 4rem);

	font-weight: 400;
	line-height: .86;
	letter-spacing: -.02em;

	text-transform: uppercase;
}


/* Text */

.aq-catering-card__text {
	position: relative;

	z-index: 1;

	max-width: 310px;

	margin: 0;

	color: rgba(255, 255, 255, .9);

	font-family:
		var(--aq-font-body, "Inter", sans-serif);

	font-size: .96rem;
	font-weight: 400;
	line-height: 1.42;
}


/* --------------------------------------------------------------
   OPTIONAL FULL CARD LINK
-------------------------------------------------------------- */

.aq-catering-card__hit {
	position: absolute;
	inset: 0;

	z-index: 5;

	cursor: pointer;
}


.aq-catering-card__hit:focus-visible {
	outline:
		3px solid rgba(255, 255, 255, .95);

	outline-offset: -10px;
}


.elementor-editor-active
.aq-catering-card__hit {
	pointer-events: none;
}


/* --------------------------------------------------------------
   FINAL CTA
-------------------------------------------------------------- */

.aq-catering-widget__cta {
	position: relative;

	z-index: 1;

	margin-top:
		clamp(42px, 6vw, 80px);

	padding-top: 28px;

	border-top:
		2px solid rgba(5, 60, 255, .30);
}


.aq-catering-widget__cta a {
	display: inline-flex;
	align-items: center;

	gap: .18em;

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

	font-family: var(
		--aq-font-display,
		"Anton",
		Impact,
		sans-serif
	);

	font-size:
		clamp(2.6rem, 9vw, 7rem);

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

	text-transform: uppercase;
}


.aq-catering-widget__cta span {
	transition:
		transform .35s cubic-bezier(.16, 1, .3, 1);
}


.aq-catering-widget__cta a:hover span {
	transform: translateX(.18em);
}


/* --------------------------------------------------------------
   REVEAL
-------------------------------------------------------------- */

.aq-catering-widget [data-aq-reveal] {
	opacity: 0;

	transform: translateY(44px);

	transition:
		opacity .85s cubic-bezier(.16, 1, .3, 1),
		transform .85s cubic-bezier(.16, 1, .3, 1);

	transition-delay:
		var(--aq-reveal-delay, 0ms);
}


.aq-catering-widget
[data-aq-reveal].is-visible {

	opacity: 1;

	transform: none;
}


/* Elementor editor */

.elementor-editor-active
.aq-catering-widget
[data-aq-reveal] {

	opacity: 1;

	transform: none;
}


/* --------------------------------------------------------------
   TABLET
-------------------------------------------------------------- */

@media (max-width: 1080px) {

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


	.aq-catering-card {
		min-height: 440px;
	}

}


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

@media (max-width: 760px) {

	.aq-catering-widget {
		padding:
			80px
			18px;
	}


	.aq-catering-widget__intro h2 {
		font-size:
			clamp(3.7rem, 15vw, 6rem);
	}


	.aq-catering-card {
		min-height: 430px;
	}


	.aq-catering-card__content {
		left: 16px;
		right: 16px;
		bottom: 16px;

		padding: 20px;
	}


	.aq-catering-widget__cta a {
		font-size:
			clamp(3.3rem, 14vw, 6rem);
	}

}


/* --------------------------------------------------------------
   REDUCED MOTION
-------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

	.aq-catering-widget [data-aq-reveal] {
		opacity: 1;

		transform: none;

		transition: none;
	}

}