/* ================================================================
   CARDS - BASE STYLES
   ================================================================ */

.carts {
	/* Layout */
	width: 260px;
	height: 386px;
	margin: auto;
	aspect-ratio: 370 / 550;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	overflow: hidden;
	text-align: center;
	
	/* Visual */
	background: radial-gradient(126.42% 76.6% at 50% 32.26%, rgba(84, 95, 102, 0.7), rgba(0, 36, 69, 0.13));
	background-color: #000;
	border: solid 1px #504485;
	border-radius: min(5%, 16px);
	box-shadow: 
		0 1px 0 0 rgba(255, 255, 255, 0.1) inset, 
		0 0 20px 3px rgba(7, 13, 79, 0.1), 
		0 0 40px 20px rgba(84, 95, 102, 0.1), 
		0 0 0 1px rgba(255, 255, 255, 0.06) inset, 
		22px -5px 15px rgba(0, 0, 0, 0.3), 
		0 8px 20px rgba(0, 0, 0, 0.4);
	
	/* Interaction */
	cursor: pointer;
	will-change: transform;
}

.carts::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background: radial-gradient(50% 50% at 50% 50%, transparent 0, rgba(0, 0, 0, 0.25) 80%);
	background-color: var(--main-color);
	mix-blend-mode: soft-light;
	opacity: .96;
	z-index: 0;
}

.carts::before {
	content: '';
	background: rgba(0, 0, 0, .35);
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
}

.carts::before,
.carts::after {
	transition: all .3s ease-in-out;
}

/* ================================================================
   CARDS - SECTIONS (header, body, footer)
   ================================================================ */

.carts div.p1 {
	padding: 30px;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 1;
	color: white;
}

/* Header */
.carts .cart-header {
	height: 33.333%;
	position: relative;
	justify-content: flex-start;
	z-index: 2;
}

.carts .cart-header h3 {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1;
	margin: 0 0 .5rem;
	padding: 0;
	position: relative;
	z-index: 1;
}

.carts .cart-header span {
	font-size: 1rem;
	line-height: 1.3;
	font-weight: 300;
	opacity: .5;
	margin-top: auto;
	position: relative;
	z-index: 1;
}

.carts .cart-header::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80%;
	height: 2px;
	background: transparent;
	box-shadow: inset 0 0 0 1px #fff, inset 0 1px 0 1px #000;
	display: block;
	opacity: .25;
}

/* Body */
.carts .cart-body {
	height: 33.333%;
}

.carts .cart-body span {
	display: block;
	margin-bottom: 0;
	font-size: 2rem;
	opacity: .5;
}

.carts .hero {
	font-size: clamp(42px, 3.6596vw, 58px);
	font-weight: 900;
	margin: 0;
	padding: 0;
	line-height: 1;
	display: flex;
	flex-wrap: nowrap;
}

.carts .hero strong {
	font-weight: 600;
}

/* Footer */
.carts .cart-footer {
	height: 33.333%;
}

.carts .cart-footer .btn {
	margin-bottom: 1rem;
}

.carts .cart-footer .iconsset {
	display: flex;
	flex-wrap: nowrap;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 32px;
	font-size: 1rem;
	margin-top: auto;
}

.carts .cart-footer .iconsset span {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 20%;
	height: 100%;
	overflow: hidden;
	font-size: 10px;
	font-weight: 200;
	stroke-width: 1.5;
	color: #fff;
	opacity: .5;
	transition: opacity .6 ease-in-out;
}

.carts .cart-footer .iconsset span:hover {
	opacity: 1;
}

/* ================================================================
   CARDS - HOVER & ACTIVE STATES
   ================================================================ */

.carts:hover::before {
	transform: scale(0, 0);
	border-radius: 50%;
	opacity: 0;
}

.carts.active::before {
	display: none;
}

.carts.active::after {
	opacity: .5;
}

/* Card specific hover backgrounds */
#cart-1.carts.active,
#cart-1.carts:hover {
	background: radial-gradient(ellipse at center, var(--green-color) 0%, var(--dark-color) 100%);
}

#cart-2.carts.active,
#cart-2.carts:hover {
	background: radial-gradient(ellipse at center, var(--red-color) 0%, var(--dark-color) 100%);
}

#cart-3.carts.active,
#cart-3.carts:hover {
	background: radial-gradient(ellipse at center, var(--gold-color) 0%, var(--dark-color) 100%);
}

#cart-3.carts.active {
	transform: perspective(1000px) rotateX(-15deg);
}

/* ================================================================
   CARDS - BUTTON STATES
   ================================================================ */

.carts .btn > i,
.carts .btn:not(.active-btn) > .feather,
.carts.active .btn.active-btn > span {
	display: none;
}

.carts.active .btn.active-btn > .feather,
.carts.active .btn.active-btn > svg {
	width: 100%;
	height: 100%;
}

.carts .btn:hover {
	background: #000;
}

#cart-1.carts.active .btn,
#cart-1.carts.active .btn:hover,
#cart-1.carts.active .btn.active-btn {
	background-color: var(--green-color);
}

#cart-2.carts.active .btn,
#cart-2.carts.active .btn:hover,
#cart-2.carts.active .btn.active-btn {
	background-color: var(--red-color);
}

#cart-3.carts.active .btn,
#cart-3.carts.active .btn:hover,
#cart-3.carts.active .btn.active-btn {
	background-color: var(--gold-color);
}

/* ================================================================
   MEDIA QUERIES
   ================================================================ */

/* Tablet & Desktop (min-width: 768px) */
@media (min-width: 768px) {
	.carts-cnt {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 0;
		width: 100%;
		height: calc(34vw + 6rem);
	}
	
	.carts-cnt .carts {
		/*position: absolute;
		min-width: 280px;
		max-width: 100%;*/ 
	}
	
	.carts .cart-header h3 {
		font-size: clamp(16px, 1.9947vw, 48px);
	}
	
	.carts .cart-header span {
		font-size: clamp(8px, 1.5915vw, 1rem);
	}
	
	.carts-cnt #cart-1 {
		transform: translateX(-85%) translateY(1.8rem) rotate(-18deg) scale(0.95);
		transform-origin: top center;
	}
	
	.carts-cnt #cart-2 {
		z-index: 2;
	}
	
	.carts-cnt #cart-3 {
		transform: translateX(85%) translateY(1.8rem) rotate(18deg) scale(0.95);
		transform-origin: top center;
	}
}

/* Large Desktop (min-width: 992px) */
@media (min-width: 992px) {
	.carts-cnt {
		min-height: calc(540px + 6rem);
	}
	
	.carts {
		min-width: 360px;
		min-height: 537px;
	}
}

/* Mobile & Small Tablet (max-width: 992px) */
@media (max-width: 992px) {
	.carts-cnt .carts::before {
		display: none;
	}
	
	.carts-cnt .carts {
		width: 100%;
		height: auto;
		aspect-ratio: 370 / 550;
		min-width: 260px;
		min-height: 386px;
		max-width: 370px;
		max-height: 550px;
		margin-top: 0;
		margin-bottom: 0;
		transform-style: preserve-3d;
		transition: all .3s ease-in-out;
		container-type: inline-size;
		container-name: card;
	}
	
	.carts-cnt .carts .cart-header h3 {
		font-size: clamp(1.8rem, 9cqw, 3rem);
		opacity: .7;
	}
	
	.carts-cnt .carts .cart-header span {
		font-size: clamp(1rem, 5.5cqw, 1.8rem);
	}
	
	.carts-cnt .carts .cart-body .hero {
		font-size: clamp(3rem, 16cqw, 6rem);
	}
	
	.carts-cnt #cart-1 {
		background: radial-gradient(ellipse at center, var(--green-color) 0%, var(--dark-color) 100%);
	}
	
	.carts-cnt #cart-2 {
		background: radial-gradient(ellipse at center, var(--red-color) 0%, var(--dark-color) 100%);
	}
	
	.carts-cnt #cart-3 {
		background: radial-gradient(ellipse at center, var(--gold-color) 0%, var(--dark-color) 100%);
	}
	
	.carts-cnt #cart-1,
	.carts-cnt #cart-3 {
		transform: perspective(1200px) rotateY(25deg) rotateX(15deg) translateZ(-120px) scale(1, 1) translate(3rem, -43px);
	}
	
	.carts-cnt #cart-2 {
		transform: perspective(1200px) rotateY(-25deg) rotateX(15deg) translateZ(-120px) scale(1, 1) translate(-3rem, -43px);
	}
	
	.carts-cnt #cart-2,
	.carts-cnt #cart-3 {
		margin-top: -4rem;
	}
}

@media (min-width: 1024px) {
	
	.carts-cnt .carts {
		position: absolute;
		width: 31.333%;
		max-width: 19.791666666666664vw;
		max-height: 33.244680851063826vw
	}
}