* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

p { 
  margin-bottom: 0; 
  white-space: normal;
}

:root {
  
  /* animation */
  --cubic-default: cubic-bezier(0.65, 0.05, 0, 1);
  --duration-default: 0.735s;
  --animation-default: var(--duration-default) var(--cubic-default);
}

html,
body {
	color: var(--black);
	letter-spacing: 0 !important;
}

.list-unstyled {
	list-style: none;
	line-height: 1;
}

.ls-0 { letter-spacing: 0 !important; }

/* —————————————————— LAYOUT —————————————————— */

/* CONTAINERS */
.container-full-desktop {
	width: calc(100% - calc((var(--spacing-60))*2));
	margin: auto;
}

.container-narrow-desktop {
	width: calc(100% - 57.5rem);
	margin: auto;
}

@media only screen and (max-width: 900px) {

	.container-full-desktop,
	.container-narrow-desktop {
		width: calc(100% - calc((var(--spacing-20))*2));
		margin: auto;
	}
}

.w50 { width: 50%; }
.w75 { width: 75%; }
.w100 { width: 100%; }

.max-h-100 { max-height: 100vh; }
.h-100vh { height: 100vh; }

.AspectRatio img.ofit-cover { object-fit: cover !important; }

.lil-aspect-ratio img { object-fit: cover !important; }

.v-middle { vertical-align: middle; }



/* —————————————————— FONTS —————————————————— */

.f-w-100{ font-weight:100; }
.f-w-200{ font-weight:200; }
.f-w-300{ font-weight:300; }
.f-w-400{ font-weight:400; }
.f-w-500{ font-weight:500; }
.f-w-600{ font-weight:600; }
.f-w-700{ font-weight:700; }
.f-w-800{ font-weight:800; }
.f-w-900{ font-weight:900; }

.t-lh-05 { line-height: 0.5 }
.t-lh-06 { line-height: 0.6 }
.t-lh-07 { line-height: 0.7 }
.t-lh-08 { line-height: 0.8 }
.t-lh-09 { line-height: 0.9 }
.t-lh-095 { line-height: 0.95 }
.t-lh-1 { line-height: 1 }
.t-lh-11 { line-height: 1.1 }
.t-lh-112 { line-height: 1.12 }
.t-lh-115 { line-height: 1.15 }
.t-lh-12 { line-height: 1.2 }
.t-lh-125 { line-height: 1.25 }
.t-lh-13 { line-height: 1.3 }
.t-lh-14 { line-height: 1.4 }
.t-lh-15 { line-height: 1.5 }
.t-lh-16 { line-height: 1.6 }
.t-lh-17 { line-height: 1.7 }
.t-lh-18 { line-height: 1.8 }
.t-lh-19 { line-height: 1.9 }

@media only screen and (max-width: 900px) {
  .f-m-w-100{ font-weight:100; }
  .f-m-w-200{ font-weight:200; }
  .f-m-w-300{ font-weight:300; }
  .f-m-w-400{ font-weight:400; }
  .f-m-w-500{ font-weight:500; }
  .f-m-w-600{ font-weight:600; }
  .f-m-w-700{ font-weight:700; }
  .f-m-w-800{ font-weight:800; }
  .f-m-w-900{ font-weight:900; }


  .t-m-lh-05 { line-height: 0.5 }
  .t-m-lh-06 { line-height: 0.6 }
  .t-m-lh-07 { line-height: 0.7 }
  .t-m-lh-08 { line-height: 0.8 }
  .t-m-lh-09 { line-height: 0.9 }
  .t-m-lh-095 { line-height: 0.95 }
  .t-m-lh-1 { line-height: 1 }
  .t-m-lh-11 { line-height: 1.1 }
  .t-m-lh-115 { line-height: 1.15 }
  .t-m-lh-12 { line-height: 1.2 }
  .t-m-lh-125 { line-height: 1.25 }
  .t-m-lh-13 { line-height: 1.3 }
  .t-m-lh-14 { line-height: 1.4 }
  .t-m-lh-15 { line-height: 1.5 }
  .t-m-lh-16 { line-height: 1.6 }
  .t-m-lh-17 { line-height: 1.7 }
  .t-m-lh-18 { line-height: 1.8 }
  .t-m-lh-19 { line-height: 1.9 }
}

/* —————————————————— TEXT STYLES (DESK) —————————————————— */

body {
	font-size: 1.4rem;
	line-height: 1.5;
}

/* —————————————————— TEXT STYLES (MOB) —————————————————— */
@media only screen and (max-width: 900px) {

  body {
	 font-size: 1.3rem;
  	line-height: 1.5;
  }

}


.mx-auto { margin-left: auto; margin-right: auto; }

.ml-auto { margin-left: auto; }
.mr-auto { margin-right: auto; }


@media only screen and (max-width: 900px) {
  .mx-m-auto { margin-left: auto; margin-right: auto; }
}


.stop { clear: both; }

a {
	text-decoration: none;
	color: inherit;
}

a:hover {
	text-decoration: none !important;
	/*color: inherit;*/
}

ul{
  list-style: none;
  margin:0;
  padding:0;
}

.a-underline{
  text-decoration:underline !important;
}

.a-u a{
  text-decoration:underline;
}

button{
  border:0;
}


.align-c { text-align: center; }
.align-l { text-align: left; }
.align-r { text-align: right; }

@media only screen and (max-width: 900px) {
	.align-m-c { text-align: center; }
	.align-m-r { text-align: right; }
	.align-m-l { text-align: left; }
}


.t-u { text-transform: uppercase; }
.t-l { text-transform: lowercase; }
.t-cap { text-transform: capitalize; }
.t-underline { text-decoration: underline; }
.italic{ font-style:italic; }

.full-div { width: 100%; height: 100%; }

.back-cover {
	background-size: cover;
	background-position: center center;
}

.ofit-cover { object-fit: cover; }


.d-none { display: none !important; }
.d-ib { display: inline-block; }
.d-b { display: block; }
.d-f { display: flex; }

.d-ig { display: inline-grid; }
.d-g { display: grid; }

.as{ align-items: start; }
.ac{ align-items: center; }
.ae{ align-items: end; }

.ai-s{ align-items:start; }
.ai-c{ align-items:center; }
.ai-e{ align-items:end; }

.ac-s{ align-content:start; }
.ac-c{ align-content:center; }
.ac-e{ align-content:end; }
.ac-space{ align-content:space-between; }

.as-s{ align-self:start; }
.as-c{ align-self:center; }
.as-e{ align-self:end; }

.jc-s{ justify-content:start; }
.jc-c{ justify-content:center; }
.jc-e{ justify-content:end; }
.jc-space{ justify-content:space-between; }

.js-e{ justify-self:end; }


@media only screen and (max-width: 900px) {
  .d-m-g { display: grid; }

  .as-m{ align-items: start; }
  .ac-m{ align-items: center; }
  .ae-m{ align-items: end; }

  .ac-m-s{ align-content:start; }
  .ac-m-c{ align-content:center; }
  .ac-m-e{ align-content:end; }
  .ac-m-space{ align-content:space-between; }

  .ai-m-s{ align-items:start; }
  .ai-m-c{ align-items:center; }
  .ai-m-e{ align-items:end; }

  .as-m-s{ align-self:start; }
  .as-m-c{ align-self:center; }
  .as-m-e{ align-self:end; }

  .jc-m-s{ justify-content:start; }
  .jc-m-c{ justify-content:center; }
  .jc-m-e{ justify-content:end; }
  .jc-m-space{ justify-content:space-between; }

  .js-m-e{ justify-self:end; }
}





.col-1{ grid-template-columns:repeat(1, 1fr); }
.col-2{ grid-template-columns:repeat(2, 1fr); }
.col-3{ grid-template-columns:repeat(3, 1fr); }
.col-4{ grid-template-columns:repeat(4, 1fr); }
.col-5{ grid-template-columns:repeat(5, 1fr); }
.col-6{ grid-template-columns:repeat(6, 1fr); }
.col-7{ grid-template-columns:repeat(7, 1fr); }
.col-8{ grid-template-columns:repeat(8, 1fr); }


.col-max-auto{ grid-template-columns:max-content auto; }
.col-max-max{ grid-template-columns:max-content max-content; }
.col-max-max-max{ grid-template-columns:max-content max-content max-content; }
.col-auto-max{ grid-template-columns:auto max-content; }
.col-auto-auto{ grid-template-columns:auto auto; }


.vw100 { width: 100vw; width: 100dwh; }
.w-fit { width: fit-content;}

.h0 { height: 0%;}
.h100 { height: 100%;}
.vh100 { height: 100vh; height: 100dvh; }

@media only screen and (max-width: 900px) {
  .w-m-fit { width: fit-content;}
  .m-h-fit-content { height: fit-content; }

  .col-m-1{ grid-template-columns:repeat(1, 1fr); }
  .col-m-2{ grid-template-columns:repeat(2, 1fr); }
  .col-m-3{ grid-template-columns:repeat(3, 1fr); }
  .col-m-4{ grid-template-columns:repeat(4, 1fr); }
  .col-m-5{ grid-template-columns:repeat(5, 1fr); }
  .col-m-6{ grid-template-columns:repeat(6, 1fr); }
  .col-m-7{ grid-template-columns:repeat(7, 1fr); }
  .col-m-8{ grid-template-columns:repeat(8, 1fr); }

  .col-m-max-auto{ grid-template-columns:max-content auto; }
  .col-m-max-max{ grid-template-columns:max-content max-content; }
  .col-m-auto-max{ grid-template-columns:auto max-content; }
  .col-m-auto-auto{ grid-template-columns:auto auto; }
}

.fullscreen{
  width:100vw;
  width:100svw;
  height:100vh;
  height:100svh;
}


/* CURSOR */
.c-pointer { cursor: pointer; }
.pe-none { pointer-events: none; }

/* POSITION */
.p-r { position: relative;}
.p-a { position: absolute; }
.p-f { position: fixed;}
.p-s { position: sticky;}

.p-0 { top: 0; left: 0; }
.p-t-0 { top: 0;}
.p-r-0 { right: 0;}
.p-b-0 { bottom: 0;}
.p-l-0 { left: 0;}


.d-ib { display: inline-block; }
.d-b { display: block; }
.d-none { display: none; }
.d-grid { display: grid; }
.grid-full-align { align-items: center; }
.grid-vert-align { align-items: center; }

.op-0 { opacity: 0; }
.op-01 { opacity: 0.1; }
.op-02 { opacity: 0.2; }
.op-03 { opacity: 0.3; }
.op-04 { opacity: 0.4; }
.op-05 { opacity: 0.5; }
.op-06 { opacity: 0.6; }
.op-07 { opacity: 0.7; }
.op-08 { opacity: 0.8; }
.op-09 { opacity: 0.9; }
.op-1 { opacity: 1; }

.of-h { overflow: hidden; }
.of-s { overflow: scroll; }
.of-y-s { overflow-y: scroll; }


/* BLOCK ALIGN */
.ver-align {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: block;
}

.hor-align {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	display: block;
}

.full-align {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}


.f-left { float: left }
.f-right { float: right; }
.stop { clear: both; }



.circle { border-radius: 50%; }

.br-5 { border-radius: 0.5rem; }
.br-10 { border-radius: 1rem; }
.br-15 { border-radius: 1.5rem; }
.br-20 { border-radius: 2rem; }
.br-25 { border-radius: 2.5rem; }
.br-30 { border-radius: 3rem; }
.br-35 { border-radius: 3.5rem; }
.br-50 { border-radius: 5rem; }
.br-70 { border-radius: 7rem; }

@media only screen and (max-width: 900px) {
  .br-m-0 { border-radius: 0rem; }
  .br-m-5 { border-radius: 0.5rem; }
  .br-m-10 { border-radius: 1rem; }
  .br-m-15 { border-radius: 1.5rem; }
  .br-m-20 { border-radius: 2rem; }
  .br-m-25 { border-radius: 2.5rem; }
  .br-m-30 { border-radius: 3rem; }
  .br-m-35 { border-radius: 3.5rem; }
  .br-m-50 { border-radius: 5rem; }
  .br-m-70 { border-radius: 7rem; }
}

.br-t-25 { border-radius: 25px 25px 0 0; }
.br-t-30 { border-radius: 30px 30px 0 0; }
.br-t-35 { border-radius: 35px 35px 0 0; }

.br-2b { border-radius: 2vw; }
.br-3b { border-radius: 3vw; }
.br-4b { border-radius: 4vw; }

.horizontal-scroll-father {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
}

.horizontal-scroll-child {
	scroll-snap-align: center;
	flex-shrink: 0;
}


.sw-linear{ transition-timing-function: linear; }
.ss-auto{ width: fit-content; }


/* —— SCROLL ANIMATION —— */
.observe{
  opacity:0;
  transition:all 0s;
  transition-delay:0;
  will-change: opacity, filter, transform;
}

.observe.is-inview{
  transform:translateY(0rem);
  filter:blur(0px);
  opacity:1;
  transition:all 1s;
  transition-delay:var(--anime-delay-time, 0ms);
}








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



.video-full-responsive{
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100vw;
  min-height:100vh;
  transform: translate(-50%, -50%);
  border:0;
}
.video-full-responsive.p_16_9{
  aspect-ratio:16 / 9;
}
.video-full-responsive.p_9_16{
  aspect-ratio:9 / 16;
}






/* —————————————————— UNDERLINE LINK —————————————————— */

.underline-link{
  width:fit-content;
  text-decoration: none;
  position: relative;
  display: block;
  cursor:pointer;
}

.underline-link::before,
.underline-link.is--alt::before,
.underline-link.is--alt::after{
  content: "";
  position: absolute;
  bottom: -0.5rem;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transition: transform var(--animation-default);
  transform-origin: right;
  transform: scaleX(0) rotate(0.001deg);
}

.underline-link:hover::before {
  transform-origin: left;
  transform: scaleX(1) rotate(0.001deg);
}

/* Alt */
.underline-link.is--alt::before {
  transform-origin: left;
  transform: scaleX(1) rotate(0.001deg);
  transition-delay: 0.3s;
}

.underline-link.is--alt:hover::before {
  transform-origin: right;
  transform: scaleX(0) rotate(0.001deg);
  transition-delay: 0s;
}

.underline-link.is--alt::after {
  transform-origin: right;
  transform: scaleX(0) rotate(0.001deg);
  transition-delay: 0s;
}

.underline-link.is--alt:hover::after {
  transform-origin: left;
  transform: scaleX(1) rotate(0.001deg);
  transition-delay: 0.3s;
}









