/* ==========================================================================
   COMPONENTS / MINI-MODAL
   ========================================================================== */
.is-inert {
	pointer-events: none;
	-webkit-user-select: none;
	        user-select: none;
}

.has-dialog {
	height: 100vh;
	overflow: hidden;
}

.c-dialog[aria-hidden=true] {
	display: none;
}

.c-dialog[aria-hidden=false] {
	display: block;
	position: relative;
	z-index: 500;
}

.c-dialog__overlay {
	align-items: center;
	background-color: rgba(0, 0, 0, 0.6);
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
}

.c-dialog__container {
	background-color: white;
	border-radius: 0.75rem;
	max-height: 90vh;
	max-width: 40rem;
	min-width: 20rem;
	overflow-y: auto;
	padding: 2rem;
}

.c-dialog__container--fit {
	width: -moz-fit-content;
	width: fit-content;
}

.c-dialog__header {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
}

.c-dialog__title {
	flex-basis: calc(100% - 1.75rem);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
}

.c-dialog__close {
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg fill='%23fff' stroke='%23767676'%3E%3Ccircle cx='14' cy='14' r='14' stroke='none'/%3E%3Ccircle cx='14' cy='14' r='13.5' fill='none'/%3E%3C/g%3E%3Cpath d='m17.061 9.999-3.062 3.062-3.06-3.062-.939.939 3.061 3.061-3.062 3.062.939.939 3.061-3.061 3.062 3.06.939-.939-3.061-3.061 3.06-3.06Z' fill='%23575a5d'/%3E%3C/svg%3E");
	border: 0 none;
	border-radius: 50%;
	cursor: pointer;
	height: 1.75rem;
	line-height: normal;
	padding: 0;
	transform: translate(50%, -50%);
	width: 1.75rem;
}

.c-dialog__content {
	margin-top: 2rem;
}

.c-dialog__content > *:last-child {
	margin-bottom: 0;
}

.c-dialog__options {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 2rem 0;
}

.c-dialog__option {
	border: 1px solid #ccc;
	border-radius: 0.5rem;
	cursor: pointer;
	padding: 1rem;
}

.c-dialog__option:has(:checked) {
	border: 2px solid #000;
}

label.c-dialog__option > :is([type=radio], [type=checkbox]) {
	display: none;
}

/**************************\
  Animation Style
\**************************/
@keyframes dialogFadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
@keyframes dialogFadeOut {
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}
@keyframes dialogSlideIn {
	from {
		transform: translateY(15%);
	}
	to {
		transform: translateY(0);
	}
}
@keyframes dialogSlideOut {
	from {
		transform: translateY(0);
	}
	to {
		transform: translateY(-10%);
	}
}
.c-dialog[aria-hidden=false] .c-dialog__overlay {
	animation: dialogFadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.c-dialog[aria-hidden=false] .c-dialog__container {
	animation: dialogSlideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.c-dialog[aria-hidden=true] .c-dialog__overlay {
	animation: dialogFadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.c-dialog[aria-hidden=true] .c-dialog__container {
	animation: dialogSlideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

@media screen and (prefers-reduced-motion: reduce) {
	.c-dialog[aria-hidden=false] .c-dialog__overlay {
		animation: none;
		opacity: 1;
	}
	.c-dialog[aria-hidden=true] .c-dialog__overlay {
		animation: none;
		opacity: 0;
	}
}