:root {
	--white: #ffffff;
	--black: #000000;
	--gray: #565656;
	--darkgray: #242424;
	--lightgray: #CBCBCB;
	--heading-font: 'CS_Rachel', 'Inter', serif;
}

html {
	height:100%;
	font-size: 15px;
	margin: 0;
	padding: 0;
}

body {
	font-weight: 300;
	line-height: 1.4;
	margin: 0;
	padding: 0;
}

strong,b {
	font-weight: bold;
}

a {
	color:var(--color-text);
	outline:none;
}

img,svg {
	max-width:100%;
	height:auto;
}

img.aligncenter {
	clear:both;
	display:block;
	margin:auto;
}

p {
	margin: 0 0 1.5rem;
}

hr {
	border-top-width:0;
	margin:30px 0;
}
.x-bordered{
	border-left: 1px solid;
	border-right: 1px solid;
}

.y-bordered{
	border-top: 1px solid;
	border-bottom: 1px solid;
}

.td-none,
.td-none * {
	text-decoration:none!important;
}
.grid-limit{
	max-width: var(--grid-limit);
	margin-inline: auto;
}
.wrap.grid-limit{
	padding-inline: 15px;
	margin-inline: auto;
}

.text-featured {
	font-weight:500;
	font-size:larger;
}

small,.small-font {
	font-size:11px;
}
.static,
.position-static {
	position:static !important;
}
.relative, 
.position-relative{
	position:relative;
}

iframe {
	max-width:100%;
}

code {
	white-space:normal;
}

.border,
.bordered {
	border:1px solid !important;
}

.border-top {
	border-top:1px solid;
}

.border-bottom {
	border-bottom:1px solid;
}
.cursor-pointer{
	cursor: pointer !important;
}

.text-uppercase,
.uppercase {
	text-transform:uppercase;
}

.underline,
.text-underline {
/* text-decoration: underline; */
}

.h-screen {
	height:100vh;
}

.min-h-screen {
	min-height:100vh;
}

.min-h-halfscreen {
	min-height:50vh;
}

.td-none,
.decoration-none,
.text-decoration-none,
.decoration-none *,
.text-decoration-none * {
	text-decoration:none;
}

.no-scrollbars::-webkit-scrollbar {
  display: none;
}
.no-scrollbars {
  -ms-overflow-style: none;
  scrollbar-width: none; 
}

.w-100,
.w-full {
	width:100%!important;
}
.left-0{
	left: 0;
}
.top-0{
	top: 0;
}

.h-100,
.h-full {
	height:100%!important;
}

.text-underline,
.td-underline {
	text-decoration:underline;
}

.font-nowrap {
	white-space:nowrap;
}
.line-clamp,
.line-clamp-1{
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}
.line-clamp-2{
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
.line-clamp-3{
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.justify,
.text-justify {
	text-align:justify;
}

.small-font,
.font-small {
	font-size: smaller;
}
.overflow-scroll{
	overflow-x: scroll;
	overflow-y: hidden;
}
.rounded {
	border-radius: 1rem;
}
.absolute{
	position: absolute;
}
.inset-0{
	inset: 0;
}

.rounded-top {
	border-top-right-radius: 1rem;
	border-top-left-radius: 1rem;
}

.rounded-bottom {
	border-bottom-right-radius: 1rem;
	border-bottom-left-radius: 1rem;
}

.container {
	max-width: var(--grid-limit);
}
.box-shadow{
	box-shadow: var(--box-shadow);
}


.px{
	padding-inline: var(--px);
}
.pl{
	padding-left: var(--px);
}
.pr{
	padding-right: var(--px);
}

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

section {
	position:relative;
}
.smaller{
	font-size: smaller;
}
.smaller,
.text-smaller{
	font-size: smaller;
}

.py {
	padding-top: var(--py);
	padding-bottom: var(--py);
}
.py-extra{
	padding-top: calc(2*var(--py));
	padding-bottom: calc(2*var(--py));
}

.pb-content {
	padding-bottom:50px;
}

.py.white-content +
.py.white-content {
	padding-top:0;
}

.thumb-container,
.thumb {
	display:block;
	text-decoration:none;
	position:relative;
	background-repeat:no-repeat;
	background-size:cover;
	background-position:center center;
	object-fit: cover;
}

.thumb-container.absolute,
.thumb.absolute {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
}
.object-cover{
	object-fit: cover;
}
.object-contain{
	object-fit: contain;
}

/* COLORS */

.white,.white a,a.white,.text-white,a.text-white, .text-white a {
	color:var(--white) !important;
}

.white-content, .bg-white, .button.bg-white {
	background-color:var(--white);
	color: var(--color-primary);
}

.white-content .button {
}

.bg-transparent{
	background-color: transparent !important;
}
.black,.black a,a.black {
	color:var(--black);
}

/* BACKGROUNDS */

.black-content,
.bg-black {
	background-color: var(--black) !important;
}
.bg-gray{
	background-color: var(--gray) !important;
}
.bg-darkgray{
	background-color: var(--darkgray) !important;
}
.bg-transparent{
	background-color: transparent;
}
.bg-primary{
	background-color: var(--color-primary);
}
.bg-secondary{
	background-color: var(--color-secondary);
}
.bg-alt{
	background-color: var(--color-alt);
}
.bg-lightgray{
	background-color: var(--lightgray) !important;
}
.bg-lightgray2{
	background-color: var(--lightgray2) !important;
}
.bg-dark{
	background-color: var(--dark);
}

.text-color{
	color: var(--color-text);
}

.text-primary, 
.text-primary a{
	color: var(--color-primary) !important;
}
.text-secondary, 
.text-secondary a{
	color: var(--color-secondary) !important;
}

.text-alt, 
.text-alt a{
	color: var(--color-alt) !important;
}

.text-gray,
.text-gray a{
	color: var(--gray) !important;
}
.text-lightgray,
.text-lightgray a{
	color: var(--lightgray) !important;
}
.text-lightgra2,
.text-lightgray2 a{
	color: var(--lightgray2) !important;
}
.text-lightgra3,
.text-lightgray3 a{
	color: var(--lightgray3) !important;
}

.hover-effect {
	transition:all .3s;
}

.gap-1{
	gap: 1rem;
}
.gap-2{
	gap: 2rem;
}
.gap-3{
	gap: 3rem;
}
.gap-4{
	gap: 4rem;
}
.gap-5{
	gap: 5rem;
}

@media (min-width: 992px){
		
	.gap-lg-1{
		gap: 1rem;
	}
	.gap-lg-2{
		gap: 2rem;
	}
	.gap-lg-3{
		gap: 3rem;
	}
	.gap-lg-4{
		gap: 4rem;
	}
	.gap-lg-5{
		gap: 5rem;
	}
}


/* HEADINGS & FONTS CLASSES */

h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6 {
	text-wrap: balance;
}

.h1,.h2,.h3,h1,h2,h3 {
	clear:both;
	line-height:1.2;
	font-weight: bold;
	display:block;
	font-family: var(--heading-font);
}
h1,h2,h3 {
	margin:0 0 1.3rem;
}

.h4,.h5,.h6,h4,h5,h6 {
	clear:both;
	line-height: 1.3;
	font-weight: 600;
}
h4,h5,h6 {
	margin:0 0 1rem;
}

h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6 {
	text-wrap: balance;
}

h1,.h1 {
	font-size: 2.5rem;
	line-height:1.1;
}

h2,.h2 {
	font-size: 2rem;
	line-height: 1.1;
}

h3,.h3 {
	font-size: 1.6rem;
	line-height: 1.2;
}

h4,.h4 {
	font-size: 1.3rem;
	line-height: 1.2;
}

h5,.h5 {
	font-size: 1.1rem;
}

h1 {
	margin: 0 0 1.1rem;
}

h2 {
	margin: 0 0 1rem;
}

h3 {
	margin: 0 0 1rem;
}

h4 {
	margin: 0 0 .8rem;
}

h5 {
	margin: 0 0 .8rem;
}

h6,.h6 {}

.title,
.heading-font{
	font-family: var(--heading-font);
}

.section-title{
	font-size: 2rem;
}

.small-font,
.font-smaller{
	font-size: smaller;
}

.font-heading, .heading-font{
	font-family: var(--heading-font);
}

.overflow-hidden {
	overflow:hidden;
}

.embed-responsive {
	position:relative;
	display:block;
	width:100%;
	padding:0;
	overflow:hidden;
}

.embed-responsive iframe {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	width:100%;
	height:100%;
	border:0;
}

.embed-responsive::before {
	display:block;
	content:"";
}

.embed-responsive-16by9::before {
	padding-top:56.25%;
}

.embed-responsive-4by3::before {
	padding-top:75%;
}

.embed-responsive-21by9::before {
	padding-top:42.857143%;
}

.embed-responsive-1by1::before {
	padding-top:100%;
}

.aspect-video{
	aspect-ratio: 16/9;
}
.aspect-portrait{
	aspect-ratio: 9/16;
}
.aspect-square{
	aspect-ratio: 1;
}
.aspect-fullscreen,
.aspect-4-3{
	aspect-ratio: 4/3;
}
.aspect-threefour{
	aspect-ratio: 3/4;
}
.aspect-landscape{
	aspect-ratio: 30/9;
}
.aspect-wide{
	aspect-ratio: 21/11;
}

.text-nowrap {
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.font-regular,.font-300 {
	font-weight:300!important;
}

.font-normal,.font-400 {
	font-weight:400!important;
}

.font-medium,.font-500 {
	font-weight:500!important;
}

.font-semibold {
	font-weight:500!important;
}
.font-bold, 
.text-bold,
.bold{
	font-weight: bold !important;
}

.text-balance{
	text-wrap: balance !important;
}
.text-pretty{
	text-wrap: pretty !important;
}
.list-style-none{
	list-style: none !important;
}
.sticky{
	position: sticky;
	top: var(--header-height);
}
.d-grid{
	display: grid;
}
.grid-cols-1{
	grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2{
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3{
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4{
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5{
	grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-6{
	grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-7{
	grid-template-columns: repeat(7, minmax(0, 1fr));
}
.grid-cols-8{
	grid-template-columns: repeat(8, minmax(0, 1fr));
}
.grid-cols-9{
	grid-template-columns: repeat(9, minmax(0, 1fr));
}
.grid-cols-10{
	grid-template-columns: repeat(10, minmax(0, 1fr));
}
.grid-cols-11{
	grid-template-columns: repeat(11, minmax(0, 1fr));
}
.grid-cols-12{
	grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-cols-none{
	grid-template-columns: none;	
}
.grid-cols-subgrid{
	grid-template-columns: subgrid;
}

@media (min-width: 992px){
	
	.rounded-lg {
		border-radius: 1rem;
	}
	.d-lg-grid{
		display: grid;
	}
	.grid-cols-lg-1{
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}
	.grid-cols-lg-2{
		grid-template-columns: 2 repeat(2, minmax(0, 1fr));
	}
	.grid-cols-lg-3{
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.grid-cols-lg-4{
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.grid-cols-lg-5{
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
	.grid-cols-lg-6{
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
	.grid-cols-lg-7{
		grid-template-columns: repeat(7, minmax(0, 1fr));
	}
	.grid-cols-lg-8{
		grid-template-columns: repeat(8, minmax(0, 1fr));
	}
	.grid-cols-lg-9{
		grid-template-columns: repeat(9, minmax(0, 1fr));
	}
	.grid-cols-lg-10{
		grid-template-columns: repeat(10, minmax(0, 1fr));
	}
	.grid-cols-lg-11{
		grid-template-columns: repeat(11, minmax(0, 1fr));
	}
	.grid-cols-lg-12{
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}
	.grid-cols-lg-none{
		grid-template-columns: none;	
	}
	.grid-cols-lg-subgrid{
		grid-template-columns: subgrid;
	}
		
	.sticky-lg{
		position: sticky;
		top: var(--header-height);
	}
}



/* animated element */
.animated-element {
	opacity:0;
	-webkit-transform:translate3d(0,10px,0);
	-moz-transform:translate3d(0,10px,0);
	transform:translate3d(0,10px,0);
}

.animated-element.from-left {
	-webkit-transform:translate3d(-10px,0px,0);
	-moz-transform:translate3d(-10px,0px,0);
	transform:translate3d(-10px,0px,0);
}
.animated-element.from-right {
	-webkit-transform:translate3d(10px,0px,0);
	-moz-transform:translate3d(10px,0px,0);
	transform:translate3d(10px,0px,0);
}

.animated-element.visible {
	-webkit-animation:moveUp .6s ease forwards;
	-moz-animation:moveUp .6s ease forwards;
	-ms-animation:moveUp .6s ease forwards;
	animation:moveUp .6s ease forwards;
}

@-webkit-keyframes moveUp {
	0% {
	}
	
	100% {
		-webkit-transform:translate3d(0,0,0);
		-moz-transform:translate3d(0,0,0);
		transform:translate3d(0,0,0);
		opacity:1;
	}
}

@-moz-keyframes moveUp {
	0% {
	}
	
	100% {
		-webkit-transform:translate3d(0,0,0);
		-moz-transform:translate3d(0,0,0);
		transform:translate3d(0,0,0);
		opacity:1;
	}
}

@-ms-keyframes moveUp {
	0% {
	}
	
	100% {
		-webkit-transform:translate3d(0,0,0);
		-moz-transform:translate3d(0,0,0);
		transform:translate3d(0,0,0);
		opacity:1;
	}
}

@keyframes moveUp {
	0% {
	}
	
	100% {
		-webkit-transform:translate3d(0,0,0);
		-moz-transform:translate3d(0,0,0);
		transform:translate3d(0,0,0);
		opacity:1;
	}
}

.animated-element.delay1{
	animation-delay: .2s;
}
.animated-element.delay2{
	animation-delay: .4s;
}
.animated-element.delay3{
	animation-delay: .6s;
}
.animated-element.delay4{
	animation-delay: .8s;
}
.animated-element.delay5{
	animation-delay: 1s;
}
.animated-element.delay6{
	animation-delay: 1.2s;
}

/****************************************************/
/* OWL CAROUSEL */
/****************************************************/

.owl-carousel {
	padding:0;
	margin:0;
}

.gallery-carousel.owl-carousel .owl-stage {
	display:flex;
	align-items:center;
}

.owl-carousel li {
	list-style:none;
}

.owl-dots {
	text-align:center;
	display: flex;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	justify-content: center;
	padding: 1rem;
}

.owl-dots .owl-dot {
	width: 1rem;
	height: 1rem;
	position:relative;
	border-radius:0;
	border:none;
	margin: 0 1rem 0 0;
	display:block;
	vertical-align:middle;
	border: 1px solid #fff;
	border-radius: 50%;
	transition: all .3s;
	background-color: var(--white);
	opacity: 0.3;
}

.owl-dots .owl-dot.active {
	opacity: 1;
}


.owl-nav {
	position: absolute;
	right: 0;
	bottom: 100%;
	display: flex;
	margin: 1rem 1rem;
	gap: 1rem;
}

.owl-carousel .owl-nav .owl-next,
.owl-carousel .owl-nav .owl-prev {
	top: 3px;
	width: 3.1rem;
	aspect-ratio: 1;
	border: 1px solid;
	background-image: url(img/svg/angle_left.svg);
	background-repeat:no-repeat;
	background-position:center;
	background-size: 30%;
	transition:all .3s;
	border-radius: 50%;
	font-size: 0;
	opacity: 0.4;
	transition: all .3s;
}
.owl-carousel .owl-nav > *:hover {
	opacity: 1;
}

.owl-carousel .owl-nav .owl-prev {
}

.owl-carousel .owl-nav .owl-next {
	transform: rotate(180deg);
}
.owl-carousel .owl-nav .owl-next.disabled,.owl-carousel .owl-nav .owl-prev.disabled {
	opacity:0;
	visibility:hidden;
}


@media (min-width: 992px){
	.owl-nav {
		margin: 0 0 1.5rem;
		gap: 1rem;
	}
	.owl-dots{
		bottom: 2rem;
	}
		
	
}

/* Smooth Scroll Utilities */
.scroll-smooth {
	scroll-behavior: smooth;
}

.scroll-auto {
	scroll-behavior: auto;
}

/* Enhanced scrolling for touch devices */
.smooth-touch {
	-webkit-overflow-scrolling: touch;
}

/* Scroll snap utilities */
.snap-y {
	scroll-snap-type: y mandatory;
}

.snap-x {
	scroll-snap-type: x mandatory;
}

.snap-start {
	scroll-snap-align: start;
}

.snap-center {
	scroll-snap-align: center;
}

.snap-end {
	scroll-snap-align: end;
}

