/* Modal Styles - Enable / Prevent Button Clicks When Opened / Closed */
.modalCon {
	background-color: rgba(0,0,0,0);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
	z-index: 995;
	transition: all 0s ease, background-color 0.5s ease;
	display: flex;
	justify-content: center;
	align-items: center;
}
body:not(.open) .modalCon {
	pointer-events: none;
}
body.open .modalCon {
	background-color: rgba(0,0,0,0.65);
}

/* Modal Items */
.modal-item {
	padding: 0;
	text-align: center;
	width: 80%;
	height: 80%;
	transform: scale(0);
	opacity: 0;
	z-index: 999;
	position: absolute;
	top: 0;
	left: 0;
	margin: 0 10%;
	margin-top: 5%;
	border-radius: 40px;
	overflow-x: clip;
	overflow-y: auto;
	transition: all 0.5s ease, transform 0.5s ease, opacity 0.4s ease;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), inset 0 2px 4px rgba(255, 255, 255, 0.6);
}
.modal-item.open {
	opacity: 1;
	transform: scale(1);
}
.modal-item-con {
	margin: 3vh auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: calc(1vh + 1vw);
	justify-items: center;
	height: fit-content;
	width: fit-content;
	min-width: 25%;
	max-width: 80%;
}
.modal-item-con > :only-child {
	grid-column: 1 / -1;
}

.modal-inner-btn {
	transition: all 0.3s ease, width 0.3s ease 0.3s, height 0.3s ease 0.3s;
	width: var(--btn-size-large);
    height: var(--btn-size-large);
	border-radius: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	color: inherit;
	background: rgba(255, 200, 200, 0.1);
	margin: 2px 0;
	cursor: pointer;
}
.modal-inner-btn:hover {
	transition: all 0.15s ease;
	transform: scale(1.05);
}

/* Modal Option Btns Container */
.modalOpenBtn {
	/*padding: 15px 15px;*/
	transition: all 0.5s ease, opacity 0.75s ease 0.5s, margin 0s ease, width 0.5s ease 0.5s, height 0.5s ease 0.5s;
	width: var(--btn-size-large);
    height: var(--btn-size-large);
	margin: 0;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-direction: column;
	opacity: 1;
	position: absolute;
	bottom: 4%;
	right: 4%;
	z-index: 1000;
	background-color: rgba(0,0,0,0.3);
	box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.45);
	backdrop-filter: blur(4px) saturate(105%) brightness(90%);
	text-shadow: 0px 0px 1px rgba(0,0,0,0.25);
	border-radius: calc(var(--btn-size) + 10px);
}
.modalOpenBtn.open {
	transition: all 0.5s ease, opacity 0.5s ease, margin 0s ease, width 0s ease, height 0.5s ease;
	height: calc((var(--btn-size-large) * 3) + 8px);
}

/* modal opt btn */
.modalOpenBtn .modalOptBtn {
	transition: all 0.5s ease, width 0.5s ease 0.5s, height 0.5s ease 0.5s;
	width: var(--btn-size-large);
    height: var(--btn-size-large);
	border-radius: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	color: inherit;
	background: rgba(255, 200, 200, 0.1);
	opacity: 0;
	margin: 2px 0;
}
.modalOpenBtn.open .modalOptBtn {
	transition: all 0.5s ease, width 0s ease, height 0s ease, opacity 0.5s ease 0.5s;
	opacity: 1;
}
.modalOpenBtn .modalOptBtn, .modalOptBtn i {
	cursor: pointer;
}
.modalOptBtn i {
	transition: all 0.1s ease, rotate 0.5s ease;
}
.modalOpenBtn .modalOptBtn:not(.m-link):not(.m-gear):hover i {
	transition: all 0.1s ease, rotate 0.5s ease;
	transform: scale(1.15);
}
.modalOpenBtn .modalOptBtn.m-link:hover i {
	animation: linkPop 0.5s ease;
}
.modalOpenBtn .modalOptBtn.m-gear:hover i {
	animation: gearSpin 1s ease;
}
@keyframes linkPop {
	0% {transform:scale(1)}
	50% {transform:scale(1.1)}
	100% {transform:scale(1)}
}
@keyframes gearSpin {
	0% {transform:rotate(0deg)}
	100% {transform:rotate(360deg)}
}
.modalOpenBtn:not(.open) .modalOptBtn:not(.openBtn) {
	pointer-events: none;
}
/* remove top margin from top button */
.modalOpenBtn .modalOptBtn:nth-child(2) {
	margin-top: 0;
}

/* Modal Open Btn */
.modalOpenBtn .openBtn {
	margin: 0 0;
	position: absolute;
	bottom: 0;
	z-index: 999;
	opacity: 1;
	pointer-events: all;
}
.modalOpenBtn.open .openBtn i {
	rotate: 45deg;
	color: rgb(255, 65, 65);
}

/* Media Queries */
/* Position + Size Fix (Small Width) */
@media screen and (max-width: 700px) {
	.modalOpenBtn {
		right: 7.5%;
		bottom: 5%;
		width: var(--btn-size);
    	height: var(--btn-size);
	}
	.modalOpenBtn .modalOptBtn {
		width: var(--btn-size);
    	height: var(--btn-size);
	}
	.modalOpenBtn.open {
		height: calc((var(--btn-size) * 3) + 8px);
	}
	.modal-inner-btn {
		width: var(--btn-size);
    	height: var(--btn-size);
	}
	.modal-item-con {
		min-width: 50%;
	}
}
/* Position + Size Fix (Small Height + Large Width) */
@media screen and (min-width: 701px) and (max-height: 700px) {
	.modalOpenBtn {
		right: 5%;
		bottom: 5%;
		width: var(--btn-size);
    	height: var(--btn-size);
	}
	.modalOpenBtn .modalOptBtn {
		width: var(--btn-size);
    	height: var(--btn-size);
	}
	.modalOpenBtn.open {
		height: calc((var(--btn-size) * 3) + 8px);
	}
}
/* Modal Position Fix (large width + large height)
@media screen and (min-width: 701) {
	.modal-item {
		text-align: center;
		width: 80%;
		height: 80%;
		margin: 10%;
		margin-top: 0%;
		margin-bottom: 20%;
		top: 0;
		left: 0;
	}
}
*/