/*
 * Custom classes and utilities
 */

.cursor-pointer {
	cursor: pointer;
}

.cursor-pointer:disabled,
.cursor-pointer.disabled,
fieldset:disabled .cursor-pointer {
	cursor: default;
}


.rounded-top-start {
	border-top-left-radius: var(--bs-border-radius) !important;
}


.img-cover {
	height:     100%;
	width:      100%;
	object-fit: cover;
}


.spinner-border-fs {
	--bs-spinner-width:        1em;
	--bs-spinner-height:       1em;
	--bs-spinner-border-width: 0.2em;
}


form:invalid .form-hide-invalid {
	display: none;
}

form:valid .form-hide-valid {
	display: none;
}


.progress-top {
	--bs-progress-height:        0.3rem;
	--bs-progress-bg:            transparent;
	--bs-progress-border-radius: 0;

	position:                    fixed;
	top:                         0;
	left:                        0;
	right:                       0;
	z-index:                     9999;
}

.progress-top .progress-bar {
	width:       100%;
	margin-left: -100%;
	animation:   progress-bar-loading 1.5s ease-in-out infinite;
}

@keyframes progress-bar-loading {
	0% {
		margin-left: -100%
	}

	100% {
		margin-left: 100%;
	}
}


.card-img-top-left {
	width:                  100%;
	border-top-left-radius: var(--bs-card-inner-border-radius);
}

.card-img-top-right {
	width:                   100%;
	border-top-right-radius: var(--bs-card-inner-border-radius);
}


.btn-gallery {
	position:      absolute;
	bottom:        0;
	background:    rgba(0, 0, 0, 0.5);
	left:          50%;
	width:         130px;
	margin:        10px 10px 10px -65px;
	font-size:     12px;
	padding:       4px;
	border-radius: 5px !important;
	text-align:    center;
	top:           auto;
	height:        auto;
}


/*
 * Style overrides and additions
 */

.card {
	transition: all 0.1s ease;
}

.card:hover {
	opacity: 0.8;
}


.form-control.is-invalid, .was-validated .form-control:invalid {
	border-color: var(--bs-danger) !important; /* Adds !important to overwrite other colors */
}
