/* custom css framework */

.width-100 { width:100% }
.height-100 { height: :100% }
.width-fit-content { width: fit-content }
.height-fit-content { height: fit-content }

.height-is-full-screen {
   /*  min-height: 82.5vh;
    height: calc(680px + (900 - 680) * ((100vw - 375px) / (1920 - 375)));
	*/
  /*
  min-height: 97svh;
  height: calc(640px + (882 - 640) * ((100vw - 300px) / (1920 - 375)));
  */
  min-height: 99svh; /* Ensures consistent height in modern browsers */
  height: 99dvh; /* Modern dynamic viewport height */
  height: calc(99vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); /* Fallback for older browsers */
}

.has-inner-z-index-1 > *,
.has-background-video, .has-background-image,
.has-background-video > *,
.has-background-image > *,
.is-relative {
	position:relative
}

.is-absolute {position:absolute}
.is-top-0 { top: 0 }
.is-right-0 { right: 0 }
.is-left-0 { left: 0 }
.is-bottom-0 { bottom: 0 }

.is-position-unset,
.has-background-image .is-a-link-to-container {
	position: unset
} 

.has-inner-z-index-1 > *,
.has-background-video > *,
.has-background-image > *,
.is-z-index-1 {
	z-index:1 
}

.is-grid {display:grid}
.grid-has-2-column {grid-template-columns:repeat(2, 1fr)}

.is-flex {display:flex}
.is-flex-wrap {flex-wrap:wrap}
.is-flex-column {flex-direction:column}
.is-align-center {align-items:center}
.is-align-self-center {align-self:center}
.is-justify-center {justify-content:center}
.is-justify-between {justify-content:space-between}
.is-justify-evenly { justify-content: space-evenly }
.is-justify-around { justify-content: space-around }
.is-justify-end { justify-content: flex-end }

.is-a-link-to-container a:before,
a.is-a-link-to-container:before {
	content: '';
}

.is-a-link-to-container a:before,
a.is-a-link-to-container:before,
.has-background-video > figure,
.has-background-image > figure {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}

.has-background-video > figure,
.has-background-image > figure,
.is-z-index-min-1 {
	z-index: -1
}

.is-background-video *,
.is-background-image *,
img.is-background-image {
	width: 100%;
    height: 100%;
}

.is-background-video *,
.is-background-image *,
img.is-background-image,
.object-fit-cover {
    object-fit: cover
}

.object-fit-contain { object-fit: contain }

.is-line-height-1 { line-height: 1 }
.is-bold { font-weight: 600 }

.is-1-1-ratio { aspect-ratio: 1/1 }
.is-3-2-ratio { aspect-ratio: 3/2 }
.is-3-2-custom-ratio { aspect-ratio: 596 / 407 }
.is-2-3-ratio { aspect-ratio: 2/3 }
.is-2-3-custom-ratio { aspect-ratio: 389 / 480 }

.is-grayscale { filter: grayscale(1) }

.m-0-auto { margin: 0 auto }
.m-auto-0 { margin: auto 0 }
.mt-auto { margin-top: auto }

.is-blur-background {
	-webkit-backdrop-filter: blur(9px);
	backdrop-filter: blur(9px);
}

.is-blur-background:hover {
	-webkit-backdrop-filter: blur(1px);
	backdrop-filter: blur(1px);
}

.is-scaled-up-on-hover {
	transition: all .375s cubic-bezier(.16,.68,.43,.99);
}

.is-scaled-up-on-hover:hover {
	transform: scale(1.005);
}

.overflow-is-hidden { overflow: hidden }

.is-hidden {
    overflow: hidden;
    clip: rect(0 0 0 0);
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    position: absolute;
    top: -999vh;
    left: -999vw;
    content-visibility: hidden;
}

.alignfull {
	margin-left: calc(-100vw / 2 + 100% / 2);
	margin-right: calc(-100vw / 2 + 100% / 2);
	max-width: 100vw!important;
	width: auto!important;
}

.is-mirrored {
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
}

.light-when-not-hovered {
	 filter: brightness(100%) contrast(110%) saturate(100%) blur(0px) hue-rotate(0deg);
}

.light-when-not-hovered:not(:hover) {
    filter: brightness(100%) contrast(100%) saturate(50%) blur(0px) hue-rotate(0deg);
    opacity: 0.95;
}

.has-transition-200ms {
	transition-duration: .2s;
}

.has-transition-250ms {
	transition-duration: .25s;
}

.has-transition-300ms {
	transition-duration: .3s;
}

.has-transition-350ms {
	transition-duration: .35s;
}

.has-transition-375ms {
	transition-duration: .375s;
}

.has-transition-400ms {
	transition-duration: .4s;
}

.cubic-bezier {
    transition-timing-function: cubic-bezier(0.29, 1.01, 1, -0.68);
}

.linear {
    transition-timing-function: linear;
}

.steps {
    transition-timing-function: steps(6);
}
	
.pointer { cursor: pointer }

.pointer-events-none { pointer-events: none }


/* texts */

.text-align-left { text-align: left }
.text-align-center { text-align: center }
.text-align-right { text-align: right }

.is-uppercase { text-transform: uppercase }
.is-capital { text-transform: capitalize!important }

/*
.txt-left { text-align: left }
.txt-center { text-align: center }
.txt-right { text-align: right }
*/

/* list */
.list-type-disc  {list-style-type: disc }
.list-type-none  {list-style-type: none }
.list-type-circle  {list-style-type: circle }
.list-type-square  {list-style-type: square }

@media (min-width: 768px) {
	
	.is-hidden-desktop {
		overflow: hidden;
		clip: rect(0 0 0 0);
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		border: 0;
		position: absolute;
		top: -999vh;
		left: -999vw;
		content-visibility: hidden;
	}
	
	.alignfull-desktop {
		margin-left: calc(-100vw / 2 + 100% / 2);
		margin-right: calc(-100vw / 2 + 100% / 2);
		max-width: 100vw!important;
		width: auto!important;
	}
	
	.grid-has-2-column-desktop {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.grid-has-3-column-desktop {
		grid-template-columns: repeat(3, 1fr);
	}
	
	.grid-has-4-column-desktop {
		grid-template-columns: repeat(4, 1fr);
	}
	
	.grid-column-span-2-desktop {
		grid-column: span 2;
	}
	
	.grid-column-span-3-desktop {
		grid-column: span 3;
	}
	
}

@media (min-width: 3540px) {
	
	
}

@media (min-width: 1025px) and (max-width: 1366px) {
	
	
}

@media (min-width: 768px) and (max-width: 1024px) {

	
	
}

@media (max-width: 767px) {
	
	.is-hidden-mobile {
		overflow: hidden;
		clip: rect(0 0 0 0);
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		border: 0;
		position: absolute;
		top: -999vh;
		left: -999vw;
		content-visibility: hidden;
	}
	
	.alignfull-mobile {
		margin-left: calc(-100vw / 2 + 100% / 2);
		margin-right: calc(-100vw / 2 + 100% / 2);
		max-width: 100vw!important;
		width: auto!important;
	}
	
	.is-flex-column-mobile { flex-direction: column }
	
	.grid-has-2-column-mobile {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.grid-column-span-2-mobile {
		grid-column: span 2;
	}
	
	.grid-column-span-3-mobile {
		grid-column: span 3;
	}
	
	.is-1-1-ratio-mobile {
		aspect-ratio: 1/1
	}
	
}

@media (max-width: 499px) {
	
	
	
}