/* Shared utility extension: viewport-based sizing helpers.
 * Base unsuffixed classes act as xs/mobile.
 * Responsive variants follow Bootstrap breakpoints:
 * sm >= 576px, md >= 768px, lg >= 992px, xl >= 1200px, xxl >= 1400px.
 */

.vh-25 { height: 25vh !important; }
.min-vh-25 { min-height: 25vh !important; }
.max-vh-25 { max-height: 25vh !important; }
.vw-25 { width: 25vw !important; }
.min-vw-25 { min-width: 25vw !important; }
.max-vw-25 { max-width: 25vw !important; }

.vh-33 { height: 33.333333vh !important; }
.min-vh-33 { min-height: 33.333333vh !important; }
.max-vh-33 { max-height: 33.333333vh !important; }
.vw-33 { width: 33.333333vw !important; }
.min-vw-33 { min-width: 33.333333vw !important; }
.max-vw-33 { max-width: 33.333333vw !important; }

.vh-40 { height: 40vh !important; }
.min-vh-40 { min-height: 40vh !important; }
.max-vh-40 { max-height: 40vh !important; }
.vw-40 { width: 40vw !important; }
.min-vw-40 { min-width: 40vw !important; }
.max-vw-40 { max-width: 40vw !important; }

.vh-50 { height: 50vh !important; }
.min-vh-50 { min-height: 50vh !important; }
.max-vh-50 { max-height: 50vh !important; }
.vw-50 { width: 50vw !important; }
.min-vw-50 { min-width: 50vw !important; }
.max-vw-50 { max-width: 50vw !important; }

.vh-60 { height: 60vh !important; }
.min-vh-60 { min-height: 60vh !important; }
.max-vh-60 { max-height: 60vh !important; }
.vw-60 { width: 60vw !important; }
.min-vw-60 { min-width: 60vw !important; }
.max-vw-60 { max-width: 60vw !important; }

.vh-66 { height: 66.666667vh !important; }
.min-vh-66 { min-height: 66.666667vh !important; }
.max-vh-66 { max-height: 66.666667vh !important; }
.vw-66 { width: 66.666667vw !important; }
.min-vw-66 { min-width: 66.666667vw !important; }
.max-vw-66 { max-width: 66.666667vw !important; }

.vh-75 { height: 75vh !important; }
.min-vh-75 { min-height: 75vh !important; }
.max-vh-75 { max-height: 75vh !important; }
.vw-75 { width: 75vw !important; }
.min-vw-75 { min-width: 75vw !important; }
.max-vw-75 { max-width: 75vw !important; }

.vh-80 { height: 80vh !important; }
.min-vh-80 { min-height: 80vh !important; }
.max-vh-80 { max-height: 80vh !important; }
.vw-80 { width: 80vw !important; }
.min-vw-80 { min-width: 80vw !important; }
.max-vw-80 { max-width: 80vw !important; }

.vh-90 { height: 90vh !important; }
.min-vh-90 { min-height: 90vh !important; }
.max-vh-90 { max-height: 90vh !important; }
.vw-90 { width: 90vw !important; }
.min-vw-90 { min-width: 90vw !important; }
.max-vw-90 { max-width: 90vw !important; }

.vh-100 { height: 100vh !important; }
.min-vh-100 { min-height: 100vh !important; }
.max-vh-100 { max-height: 100vh !important; }
.vw-100 { width: 100vw !important; }
.min-vw-100 { min-width: 100vw !important; }
.max-vw-100 { max-width: 100vw !important; }

@media (min-width: 576px) {
	.vh-sm-25 { height: 25vh !important; }
	.min-vh-sm-25 { min-height: 25vh !important; }
	.max-vh-sm-25 { max-height: 25vh !important; }
	.vw-sm-25 { width: 25vw !important; }
	.min-vw-sm-25 { min-width: 25vw !important; }
	.max-vw-sm-25 { max-width: 25vw !important; }

	.vh-sm-33 { height: 33.333333vh !important; }
	.min-vh-sm-33 { min-height: 33.333333vh !important; }
	.max-vh-sm-33 { max-height: 33.333333vh !important; }
	.vw-sm-33 { width: 33.333333vw !important; }
	.min-vw-sm-33 { min-width: 33.333333vw !important; }
	.max-vw-sm-33 { max-width: 33.333333vw !important; }

	.vh-sm-40 { height: 40vh !important; }
	.min-vh-sm-40 { min-height: 40vh !important; }
	.max-vh-sm-40 { max-height: 40vh !important; }
	.vw-sm-40 { width: 40vw !important; }
	.min-vw-sm-40 { min-width: 40vw !important; }
	.max-vw-sm-40 { max-width: 40vw !important; }

	.vh-sm-50 { height: 50vh !important; }
	.min-vh-sm-50 { min-height: 50vh !important; }
	.max-vh-sm-50 { max-height: 50vh !important; }
	.vw-sm-50 { width: 50vw !important; }
	.min-vw-sm-50 { min-width: 50vw !important; }
	.max-vw-sm-50 { max-width: 50vw !important; }

	.vh-sm-60 { height: 60vh !important; }
	.min-vh-sm-60 { min-height: 60vh !important; }
	.max-vh-sm-60 { max-height: 60vh !important; }
	.vw-sm-60 { width: 60vw !important; }
	.min-vw-sm-60 { min-width: 60vw !important; }
	.max-vw-sm-60 { max-width: 60vw !important; }

	.vh-sm-66 { height: 66.666667vh !important; }
	.min-vh-sm-66 { min-height: 66.666667vh !important; }
	.max-vh-sm-66 { max-height: 66.666667vh !important; }
	.vw-sm-66 { width: 66.666667vw !important; }
	.min-vw-sm-66 { min-width: 66.666667vw !important; }
	.max-vw-sm-66 { max-width: 66.666667vw !important; }

	.vh-sm-75 { height: 75vh !important; }
	.min-vh-sm-75 { min-height: 75vh !important; }
	.max-vh-sm-75 { max-height: 75vh !important; }
	.vw-sm-75 { width: 75vw !important; }
	.min-vw-sm-75 { min-width: 75vw !important; }
	.max-vw-sm-75 { max-width: 75vw !important; }

	.vh-sm-80 { height: 80vh !important; }
	.min-vh-sm-80 { min-height: 80vh !important; }
	.max-vh-sm-80 { max-height: 80vh !important; }
	.vw-sm-80 { width: 80vw !important; }
	.min-vw-sm-80 { min-width: 80vw !important; }
	.max-vw-sm-80 { max-width: 80vw !important; }

	.vh-sm-90 { height: 90vh !important; }
	.min-vh-sm-90 { min-height: 90vh !important; }
	.max-vh-sm-90 { max-height: 90vh !important; }
	.vw-sm-90 { width: 90vw !important; }
	.min-vw-sm-90 { min-width: 90vw !important; }
	.max-vw-sm-90 { max-width: 90vw !important; }

	.vh-sm-100 { height: 100vh !important; }
	.min-vh-sm-100 { min-height: 100vh !important; }
	.max-vh-sm-100 { max-height: 100vh !important; }
	.vw-sm-100 { width: 100vw !important; }
	.min-vw-sm-100 { min-width: 100vw !important; }
	.max-vw-sm-100 { max-width: 100vw !important; }
}

@media (min-width: 768px) {
	.vh-md-25 { height: 25vh !important; }
	.min-vh-md-25 { min-height: 25vh !important; }
	.max-vh-md-25 { max-height: 25vh !important; }
	.vw-md-25 { width: 25vw !important; }
	.min-vw-md-25 { min-width: 25vw !important; }
	.max-vw-md-25 { max-width: 25vw !important; }

	.vh-md-33 { height: 33.333333vh !important; }
	.min-vh-md-33 { min-height: 33.333333vh !important; }
	.max-vh-md-33 { max-height: 33.333333vh !important; }
	.vw-md-33 { width: 33.333333vw !important; }
	.min-vw-md-33 { min-width: 33.333333vw !important; }
	.max-vw-md-33 { max-width: 33.333333vw !important; }

	.vh-md-40 { height: 40vh !important; }
	.min-vh-md-40 { min-height: 40vh !important; }
	.max-vh-md-40 { max-height: 40vh !important; }
	.vw-md-40 { width: 40vw !important; }
	.min-vw-md-40 { min-width: 40vw !important; }
	.max-vw-md-40 { max-width: 40vw !important; }

	.vh-md-50 { height: 50vh !important; }
	.min-vh-md-50 { min-height: 50vh !important; }
	.max-vh-md-50 { max-height: 50vh !important; }
	.vw-md-50 { width: 50vw !important; }
	.min-vw-md-50 { min-width: 50vw !important; }
	.max-vw-md-50 { max-width: 50vw !important; }

	.vh-md-60 { height: 60vh !important; }
	.min-vh-md-60 { min-height: 60vh !important; }
	.max-vh-md-60 { max-height: 60vh !important; }
	.vw-md-60 { width: 60vw !important; }
	.min-vw-md-60 { min-width: 60vw !important; }
	.max-vw-md-60 { max-width: 60vw !important; }

	.vh-md-66 { height: 66.666667vh !important; }
	.min-vh-md-66 { min-height: 66.666667vh !important; }
	.max-vh-md-66 { max-height: 66.666667vh !important; }
	.vw-md-66 { width: 66.666667vw !important; }
	.min-vw-md-66 { min-width: 66.666667vw !important; }
	.max-vw-md-66 { max-width: 66.666667vw !important; }

	.vh-md-75 { height: 75vh !important; }
	.min-vh-md-75 { min-height: 75vh !important; }
	.max-vh-md-75 { max-height: 75vh !important; }
	.vw-md-75 { width: 75vw !important; }
	.min-vw-md-75 { min-width: 75vw !important; }
	.max-vw-md-75 { max-width: 75vw !important; }

	.vh-md-80 { height: 80vh !important; }
	.min-vh-md-80 { min-height: 80vh !important; }
	.max-vh-md-80 { max-height: 80vh !important; }
	.vw-md-80 { width: 80vw !important; }
	.min-vw-md-80 { min-width: 80vw !important; }
	.max-vw-md-80 { max-width: 80vw !important; }

	.vh-md-90 { height: 90vh !important; }
	.min-vh-md-90 { min-height: 90vh !important; }
	.max-vh-md-90 { max-height: 90vh !important; }
	.vw-md-90 { width: 90vw !important; }
	.min-vw-md-90 { min-width: 90vw !important; }
	.max-vw-md-90 { max-width: 90vw !important; }

	.vh-md-100 { height: 100vh !important; }
	.min-vh-md-100 { min-height: 100vh !important; }
	.max-vh-md-100 { max-height: 100vh !important; }
	.vw-md-100 { width: 100vw !important; }
	.min-vw-md-100 { min-width: 100vw !important; }
	.max-vw-md-100 { max-width: 100vw !important; }
}

@media (min-width: 992px) {
	.vh-lg-25 { height: 25vh !important; }
	.min-vh-lg-25 { min-height: 25vh !important; }
	.max-vh-lg-25 { max-height: 25vh !important; }
	.vw-lg-25 { width: 25vw !important; }
	.min-vw-lg-25 { min-width: 25vw !important; }
	.max-vw-lg-25 { max-width: 25vw !important; }

	.vh-lg-33 { height: 33.333333vh !important; }
	.min-vh-lg-33 { min-height: 33.333333vh !important; }
	.max-vh-lg-33 { max-height: 33.333333vh !important; }
	.vw-lg-33 { width: 33.333333vw !important; }
	.min-vw-lg-33 { min-width: 33.333333vw !important; }
	.max-vw-lg-33 { max-width: 33.333333vw !important; }

	.vh-lg-40 { height: 40vh !important; }
	.min-vh-lg-40 { min-height: 40vh !important; }
	.max-vh-lg-40 { max-height: 40vh !important; }
	.vw-lg-40 { width: 40vw !important; }
	.min-vw-lg-40 { min-width: 40vw !important; }
	.max-vw-lg-40 { max-width: 40vw !important; }

	.vh-lg-50 { height: 50vh !important; }
	.min-vh-lg-50 { min-height: 50vh !important; }
	.max-vh-lg-50 { max-height: 50vh !important; }
	.vw-lg-50 { width: 50vw !important; }
	.min-vw-lg-50 { min-width: 50vw !important; }
	.max-vw-lg-50 { max-width: 50vw !important; }

	.vh-lg-60 { height: 60vh !important; }
	.min-vh-lg-60 { min-height: 60vh !important; }
	.max-vh-lg-60 { max-height: 60vh !important; }
	.vw-lg-60 { width: 60vw !important; }
	.min-vw-lg-60 { min-width: 60vw !important; }
	.max-vw-lg-60 { max-width: 60vw !important; }

	.vh-lg-66 { height: 66.666667vh !important; }
	.min-vh-lg-66 { min-height: 66.666667vh !important; }
	.max-vh-lg-66 { max-height: 66.666667vh !important; }
	.vw-lg-66 { width: 66.666667vw !important; }
	.min-vw-lg-66 { min-width: 66.666667vw !important; }
	.max-vw-lg-66 { max-width: 66.666667vw !important; }

	.vh-lg-75 { height: 75vh !important; }
	.min-vh-lg-75 { min-height: 75vh !important; }
	.max-vh-lg-75 { max-height: 75vh !important; }
	.vw-lg-75 { width: 75vw !important; }
	.min-vw-lg-75 { min-width: 75vw !important; }
	.max-vw-lg-75 { max-width: 75vw !important; }

	.vh-lg-80 { height: 80vh !important; }
	.min-vh-lg-80 { min-height: 80vh !important; }
	.max-vh-lg-80 { max-height: 80vh !important; }
	.vw-lg-80 { width: 80vw !important; }
	.min-vw-lg-80 { min-width: 80vw !important; }
	.max-vw-lg-80 { max-width: 80vw !important; }

	.vh-lg-90 { height: 90vh !important; }
	.min-vh-lg-90 { min-height: 90vh !important; }
	.max-vh-lg-90 { max-height: 90vh !important; }
	.vw-lg-90 { width: 90vw !important; }
	.min-vw-lg-90 { min-width: 90vw !important; }
	.max-vw-lg-90 { max-width: 90vw !important; }

	.vh-lg-100 { height: 100vh !important; }
	.min-vh-lg-100 { min-height: 100vh !important; }
	.max-vh-lg-100 { max-height: 100vh !important; }
	.vw-lg-100 { width: 100vw !important; }
	.min-vw-lg-100 { min-width: 100vw !important; }
	.max-vw-lg-100 { max-width: 100vw !important; }
}

@media (min-width: 1200px) {
	.vh-xl-25 { height: 25vh !important; }
	.min-vh-xl-25 { min-height: 25vh !important; }
	.max-vh-xl-25 { max-height: 25vh !important; }
	.vw-xl-25 { width: 25vw !important; }
	.min-vw-xl-25 { min-width: 25vw !important; }
	.max-vw-xl-25 { max-width: 25vw !important; }

	.vh-xl-33 { height: 33.333333vh !important; }
	.min-vh-xl-33 { min-height: 33.333333vh !important; }
	.max-vh-xl-33 { max-height: 33.333333vh !important; }
	.vw-xl-33 { width: 33.333333vw !important; }
	.min-vw-xl-33 { min-width: 33.333333vw !important; }
	.max-vw-xl-33 { max-width: 33.333333vw !important; }

	.vh-xl-40 { height: 40vh !important; }
	.min-vh-xl-40 { min-height: 40vh !important; }
	.max-vh-xl-40 { max-height: 40vh !important; }
	.vw-xl-40 { width: 40vw !important; }
	.min-vw-xl-40 { min-width: 40vw !important; }
	.max-vw-xl-40 { max-width: 40vw !important; }

	.vh-xl-50 { height: 50vh !important; }
	.min-vh-xl-50 { min-height: 50vh !important; }
	.max-vh-xl-50 { max-height: 50vh !important; }
	.vw-xl-50 { width: 50vw !important; }
	.min-vw-xl-50 { min-width: 50vw !important; }
	.max-vw-xl-50 { max-width: 50vw !important; }

	.vh-xl-60 { height: 60vh !important; }
	.min-vh-xl-60 { min-height: 60vh !important; }
	.max-vh-xl-60 { max-height: 60vh !important; }
	.vw-xl-60 { width: 60vw !important; }
	.min-vw-xl-60 { min-width: 60vw !important; }
	.max-vw-xl-60 { max-width: 60vw !important; }

	.vh-xl-66 { height: 66.666667vh !important; }
	.min-vh-xl-66 { min-height: 66.666667vh !important; }
	.max-vh-xl-66 { max-height: 66.666667vh !important; }
	.vw-xl-66 { width: 66.666667vw !important; }
	.min-vw-xl-66 { min-width: 66.666667vw !important; }
	.max-vw-xl-66 { max-width: 66.666667vw !important; }

	.vh-xl-75 { height: 75vh !important; }
	.min-vh-xl-75 { min-height: 75vh !important; }
	.max-vh-xl-75 { max-height: 75vh !important; }
	.vw-xl-75 { width: 75vw !important; }
	.min-vw-xl-75 { min-width: 75vw !important; }
	.max-vw-xl-75 { max-width: 75vw !important; }

	.vh-xl-80 { height: 80vh !important; }
	.min-vh-xl-80 { min-height: 80vh !important; }
	.max-vh-xl-80 { max-height: 80vh !important; }
	.vw-xl-80 { width: 80vw !important; }
	.min-vw-xl-80 { min-width: 80vw !important; }
	.max-vw-xl-80 { max-width: 80vw !important; }

	.vh-xl-90 { height: 90vh !important; }
	.min-vh-xl-90 { min-height: 90vh !important; }
	.max-vh-xl-90 { max-height: 90vh !important; }
	.vw-xl-90 { width: 90vw !important; }
	.min-vw-xl-90 { min-width: 90vw !important; }
	.max-vw-xl-90 { max-width: 90vw !important; }

	.vh-xl-100 { height: 100vh !important; }
	.min-vh-xl-100 { min-height: 100vh !important; }
	.max-vh-xl-100 { max-height: 100vh !important; }
	.vw-xl-100 { width: 100vw !important; }
	.min-vw-xl-100 { min-width: 100vw !important; }
	.max-vw-xl-100 { max-width: 100vw !important; }
}

@media (min-width: 1400px) {
	.vh-xxl-25 { height: 25vh !important; }
	.min-vh-xxl-25 { min-height: 25vh !important; }
	.max-vh-xxl-25 { max-height: 25vh !important; }
	.vw-xxl-25 { width: 25vw !important; }
	.min-vw-xxl-25 { min-width: 25vw !important; }
	.max-vw-xxl-25 { max-width: 25vw !important; }

	.vh-xxl-33 { height: 33.333333vh !important; }
	.min-vh-xxl-33 { min-height: 33.333333vh !important; }
	.max-vh-xxl-33 { max-height: 33.333333vh !important; }
	.vw-xxl-33 { width: 33.333333vw !important; }
	.min-vw-xxl-33 { min-width: 33.333333vw !important; }
	.max-vw-xxl-33 { max-width: 33.333333vw !important; }

	.vh-xxl-40 { height: 40vh !important; }
	.min-vh-xxl-40 { min-height: 40vh !important; }
	.max-vh-xxl-40 { max-height: 40vh !important; }
	.vw-xxl-40 { width: 40vw !important; }
	.min-vw-xxl-40 { min-width: 40vw !important; }
	.max-vw-xxl-40 { max-width: 40vw !important; }

	.vh-xxl-50 { height: 50vh !important; }
	.min-vh-xxl-50 { min-height: 50vh !important; }
	.max-vh-xxl-50 { max-height: 50vh !important; }
	.vw-xxl-50 { width: 50vw !important; }
	.min-vw-xxl-50 { min-width: 50vw !important; }
	.max-vw-xxl-50 { max-width: 50vw !important; }

	.vh-xxl-60 { height: 60vh !important; }
	.min-vh-xxl-60 { min-height: 60vh !important; }
	.max-vh-xxl-60 { max-height: 60vh !important; }
	.vw-xxl-60 { width: 60vw !important; }
	.min-vw-xxl-60 { min-width: 60vw !important; }
	.max-vw-xxl-60 { max-width: 60vw !important; }

	.vh-xxl-66 { height: 66.666667vh !important; }
	.min-vh-xxl-66 { min-height: 66.666667vh !important; }
	.max-vh-xxl-66 { max-height: 66.666667vh !important; }
	.vw-xxl-66 { width: 66.666667vw !important; }
	.min-vw-xxl-66 { min-width: 66.666667vw !important; }
	.max-vw-xxl-66 { max-width: 66.666667vw !important; }

	.vh-xxl-75 { height: 75vh !important; }
	.min-vh-xxl-75 { min-height: 75vh !important; }
	.max-vh-xxl-75 { max-height: 75vh !important; }
	.vw-xxl-75 { width: 75vw !important; }
	.min-vw-xxl-75 { min-width: 75vw !important; }
	.max-vw-xxl-75 { max-width: 75vw !important; }

	.vh-xxl-80 { height: 80vh !important; }
	.min-vh-xxl-80 { min-height: 80vh !important; }
	.max-vh-xxl-80 { max-height: 80vh !important; }
	.vw-xxl-80 { width: 80vw !important; }
	.min-vw-xxl-80 { min-width: 80vw !important; }
	.max-vw-xxl-80 { max-width: 80vw !important; }

	.vh-xxl-90 { height: 90vh !important; }
	.min-vh-xxl-90 { min-height: 90vh !important; }
	.max-vh-xxl-90 { max-height: 90vh !important; }
	.vw-xxl-90 { width: 90vw !important; }
	.min-vw-xxl-90 { min-width: 90vw !important; }
	.max-vw-xxl-90 { max-width: 90vw !important; }

	.vh-xxl-100 { height: 100vh !important; }
	.min-vh-xxl-100 { min-height: 100vh !important; }
	.max-vh-xxl-100 { max-height: 100vh !important; }
	.vw-xxl-100 { width: 100vw !important; }
	.min-vw-xxl-100 { min-width: 100vw !important; }
	.max-vw-xxl-100 { max-width: 100vw !important; }
}
