/***************************/
/*     Decks and Cards     */
/***************************/

.deck {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-inline: auto;
	gap:15px;
}

.desktop.wide .deck { max-width: 1280px; }

.card {
	width: 350px;
	height: 250px;
	position: relative;
	cursor: pointer;
	border-radius: 8px;
	background-color: black;
	transition: box-shadow .35s ease;
}

.desktop.wide .card { width:calc((100%/3) - 15px); }
.mobile .card { width:calc(100% - 22px); }

.card_img { overflow: hidden; border-radius: 8px; height: 250px; }
.card_img img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	transition: transform .85s ease;
}

.card-arrow {
	width: 30px;
	font-size: 24px;
	position: absolute;
	right: 20px;
	bottom: 20px;
	height: 36px;
}
@-webkit-keyframes slide { 0%, to { transform: translate(0) }	50% { transform: translate(10px) }}
@keyframes slide { 0%, to { transform: translate(0) }	50% {	transform: translate(10px) }}

@media (hover: hover) { 
	.card:hover { box-shadow: 0 0 0px 6px rgba(0,0,0, .15); }
	.card:hover .card_img img { transform:scale(1.1); }
	.card:hover .card-arrow { animation: slide 1.3s ease-in-out infinite; }
}

.card-content {
	background: linear-gradient(
		rgba(0, 0, 0, 0.0) 0%,
		rgba(0, 0, 0, 0.1) 5%,
		rgba(0, 0, 0, 0.2) 10%,
		rgba(0, 0, 0, 0.5) 30%,
		rgba(0, 0, 0, 0.6) 40%,
		rgba(0, 0, 0, 0.7) 60%,
		rgba(0, 0, 0, 0.8) 70%,   
		rgba(0, 0, 0, .9) 100%
    );
	min-height: 90px;
	border-radius: 0 0 10px 10px;
	color: white;
	padding: 10px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	position: absolute;
	bottom: 0;
	width: 100%;
	transition: background-color .3s ease-in-out;
}
.card-content.row { 
	flex-direction:row; 
	&:has(.date) .card-title {
		width: calc(100% - 100px);
		margin-right: auto;
		align-self: end;
		height: 50px;
		line-height: 55px;
		padding-left: 15px;
	}
}

.card-content.row .card-title:has(.card-subtitle) {
	height: unset;
	line-height: unset;	
	& .card-subtitle { font-size: 14px; }	
}


.card-content:has(.card-subtitle:empty) { 
	min-height:60px; 
	& .card-title { padding-bottom:3px; }
	& .card-arrow { bottom:13px; }
}

.card-content:has(.card-subtitle:not(:empty)) { 
	& .card-title { padding-bottom:3px; }
}

.card-title {
	font-size: 22px;
	font-weight: bold;
	color: white;
	font-family: Lato;
	text-shadow: 1px 1px 1px rgba(0,0,0,.8);
	text-wrap: balance;
	width: calc(100% - 30px);
	padding-left: 10px;
	align-content: flex-end;
	margin-bottom: 0;
	padding-bottom: 6px;
	margin-right: auto;
}
.card-subtitle {
	text-shadow: 1px 1px 1px rgba(0,0,0,.8);
	width: calc(100% - 50px);
	padding-left: 10px;
	padding-bottom: 3px;
}
.card-subtitle:empty { display:none; }

.card .date {
	width: 54px;
	text-align: center;
	text-transform: uppercase;
	color: rgba(255,255,255,.85);
	font-size: 18px;
	line-height: 105%;
	font-weight: bold;
	text-shadow: 1px 1px 1px rgba(0,0,0,.8);
	background-color: rgba(255,255,255,.2);
	border-radius: 5px;
	height: 50px;
	align-content: center;
	align-self: flex-end;
	&.tl {
		top: 10px;
		position: absolute;
		left: 10px;
	}
	& .month { font-size: 13px; }
}


/* ---~~~ .Ribbons ~~~--- */

.ribbon {
	position: absolute;
	right: -5px; top: -5px;
	z-index: 1;
	overflow: hidden;
	width: 75px; height: 75px;
	text-align: right;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
	line-height: 20px;
}
.ribbon.bottom {
	right: unset;
	top: unset;
	left: -5px;
	bottom: -5px;
}
.tablet .ribbon.bottom, .mobile .ribbon.bottom { bottom: 0px; }

.ribbon.top {
	right: unset;
	top: -5px;
	left: -5px;
	bottom: -5px;
	transform: rotate(-90deg);
}
.ribbon.top span i { transform: unset; }

.ribbon.bottom span {
	transform: rotate(225deg);
	-webkit-transform: rotate(225deg);
	top: 36px; right: -4px;
}

.ribbon span {
	font-family: Arial;
	font-size: 10px;
	font-weight: bold;
	color: #FFF;
	text-transform: uppercase;
	text-align: center;
	height: 20px;
	transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	width: 100px;
	display: block;
	background: #79A70A;
	background: linear-gradient(#F70505 0%, #8F0808 100%);
	box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
	position: absolute;
	top: 19px; right: -21px;
}
.ribbon span i {
	font-style: normal;
	transform: rotate(180deg);
	display: block;
	text-shadow: 1px 0px 1px rgba(0,0,0,.6);
}

.ribbon span::before {
	content: "";
	position: absolute; left: 0px; top: 100%;
	z-index: -1;
	border-left: 3px solid #8F0808;
	border-right: 3px solid transparent;
	border-bottom: 3px solid transparent;
	border-top: 3px solid #8F0808;
}
.ribbon span::after {
	content: "";
	position: absolute; right: 0px; top: 100%;
	z-index: -1;
	border-left: 3px solid transparent;
	border-right: 3px solid #8F0808;
	border-bottom: 3px solid transparent;
	border-top: 3px solid #8F0808;
}

.ribbon.yellow span { background: #79A70A; background: linear-gradient(#F79E05 0%, #8F5408 100%); }
.ribbon.yellow span::before { border-left: 3px solid #8F5408; border-top: 3px solid #8F5408; }
.ribbon.yellow span::after { border-right: 3px solid #8F5408; border-top: 3px solid #8F5408; }
.ribbon.blue span { background: #79A70A; background: linear-gradient(#2989d8 0%, #1e5799 100%); }
.ribbon.blue span::before { border-left: 3px solid #1e5799; border-top: 3px solid #1e5799; }
.ribbon.blue span::after { border-right: 3px solid #1e5799; border-top: 3px solid #1e5799; }
.ribbon.gray span { background: #B6BAC9; background: linear-gradient(#B6BAC9 0%, #808080 100%); }
.ribbon.gray span::before { border-left: 3px solid #808080; border-top: 3px solid #808080; }
.ribbon.gray span::after { border-right: 3px solid #808080; border-top: 3px solid #808080; }
