/* –––––––––––––––––––––––––––––– CONTAINER SIZING –––––––––––––––––––––––––––––––––*/
.w-narrow { width: min(calc(var(--site-max-width) * 0.5), 100%); }
.w-small { width: min(calc(var(--site-max-width) * 0.7), 100%); }
.w-wide { width: min(calc(var(--site-max-width) * 0.85), 100%); }
.w-max { width: 100%; max-width: unset; }

/* –––––––––––––––––––––––––––––– QUICK SIZING –––––––––––––––––––––––––––––––––*/
.w-10 { width: 10%; }
.w-20 { width: 20%; }
.w-25 { width: 25%; }
.w-30 { width: 30%; }
.w-40 { width: 40%; }
.w-50 { width: 50%; }
.w-60 { width: 60%; }
.w-70 { width: 70%; }
.w-75 { width: 75%; }
.w-80 { width: 80%; }
.w-90 { width: 90%; }
.w-100 { width: 100%; }

.w-min-50 { min-width: 50px; }
.w-min-100 { min-width: 100px; }
.w-min-150 { min-width: 150px; }
.w-min-200 { min-width: 200px; }
.w-min-250 { min-width: 250px; }
.w-min-300 { min-width: 300px; }
.w-min-350 { min-width: 350px; }
.w-min-400 { min-width: 400px; }
.w-min-450 { min-width: 450px; }
.w-min-500 { min-width: 500px; }

.h-100 { height: 100%; }
.h-75 { height: 75%; }
.h-50 { height: 50%; }
.h-25 { height: 25%; }

.h-min-50 { min-height: 50px; }
.h-min-100 { min-height: 100px; }
.h-min-150 { min-height: 150px; }
.h-min-200 { min-height: 200px; }
.h-min-250 { min-height: 250px; }
.h-min-300 { min-height: 300px; }
.h-min-350 { min-height: 350px; }
.h-min-400 { min-height: 400px; }
.h-min-450 { min-height: 450px; }
.h-min-500 { min-height: 500px; }

.no-padding { padding: 0; }

.v-padding-0 { padding-top: 0; padding-bottom: 0; }
.v-padding-s { padding-top: var(--spacing-s); padding-bottom: var(--spacing-s); }
.v-padding-m { padding-top: var(--spacing-m); padding-bottom: var(--spacing-m); }
.v-padding-l { padding-top: var(--spacing-l); padding-bottom: var(--spacing-l); }
.v-padding-xl { padding-top: var(--spacing-xl); padding-bottom: var(--spacing-xl); }
.v-padding-2xl { padding-top: var(--spacing-2xl); padding-bottom: var(--spacing-2xl); }
.v-padding-3xl { padding-top: var(--spacing-3xl); padding-bottom: var(--spacing-3xl); }

.h-padding-0 { padding-left: 0; padding-right: 0; }
.h-padding-s { padding-left: var(--spacing-s); padding-right: var(--spacing-s); }
.h-padding-m { padding-left: var(--spacing-m); padding-right: var(--spacing-m); }
.h-padding-l { padding-left: var(--spacing-l); padding-right: var(--spacing-l); }
.h-padding-xl { padding-left: var(--spacing-xl); padding-right: var(--spacing-xl); }
.h-padding-2xl { padding-left: var(--spacing-2xl); padding-right: var(--spacing-2xl); }
.h-padding-3xl { padding-left: var(--spacing-3xl); padding-right: var(--spacing-3xl); }

@media screen and (max-width: 749px) {
  .w-m-100 { width: 100%; }
  .w-m-75 { width: 75%; }
  .w-m-50 { width: 50%; }
  .w-m-25 { width: 25%; }

  .h-m-100 { height: 100%; }
  .h-m-75 { height: 75%; }
  .h-m-50 { height: 50%; }
  .h-m-25 { height: 25%; }
}

/* –––––––––––––––––––––––––––––– POSITIONING –––––––––––––––––––––––––––––––––*/
.p-relative { position: relative; }

/* –––––––––––––––––––––––––––––– VISIBILITY –––––––––––––––––––––––––––––––––*/
.overflow-hidden { overflow: hidden; }

.z-1 { z-index: 1; }

@media screen and (max-width: 749px) {
  .hide-m { display: none !important; }
}

@media screen and (min-width: 750px) {
  .show-m { display: none; }
}

/* –––––––––––––––––––––––––––––– FLEX & GRID –––––––––––––––––––––––––––––––––*/
.flex { display: flex; }
.flex-row { flex-direction: row; }
.flex-column { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }

.justify-center { justify-content: center; justify-items: center; }
.justify-between { justify-content: space-between; justify-items: space-between; }
.justify-around { justify-content: space-around; justify-items: space-around; }
.justify-evenly { justify-content: space-evenly; justify-items: space-evenly; }
.justify-start { justify-content: flex-start; justify-items: flex-start; }
.justify-end { justify-content: flex-end; justify-items: flex-end; }

.align-center { align-items: center; align-content: center; }
.align-start { align-items: flex-start; align-content: flex-start; }
.align-end { align-items: flex-end; align-content: flex-end; }
.align-stretch { align-items: stretch; align-content: stretch; }
.align-baseline { align-items: baseline; align-content: baseline; }

.grid { display: grid; }
.grid-1 { grid-template-columns: 1fr; }
.grid-2 { grid-template-columns: 2fr; }
.grid-auto { grid-template-columns: auto; }

.grid-1-1 { grid-template-columns: 1fr 1fr; }
.grid-1-2 { grid-template-columns: 1fr 2fr; }
.grid-2-1 { grid-template-columns: 2fr 1fr; }
.grid-1-auto { grid-template-columns: 1fr auto; }
.grid-2-auto { grid-template-columns: 2fr auto; }
.grid-auto-1 { grid-template-columns: auto 1fr; }
.grid-auto-2 { grid-template-columns: auto 2fr; }
.grid-auto-auto { grid-template-columns: auto auto; }

.grid-1-1-1 { grid-template-columns: 1fr 1fr 1fr; }
.grid-2-1-1 { grid-template-columns: 2fr 1fr 1fr; }
.grid-1-2-1 { grid-template-columns: 1fr 2fr 1fr; }
.grid-1-1-2 { grid-template-columns: 1fr 1fr 2fr; }
.grid-2-2-1 { grid-template-columns: 2fr 2fr 1fr; }
.grid-2-1-2 { grid-template-columns: 2fr 1fr 2fr; }
.grid-1-2-2 { grid-template-columns: 1fr 2fr 2fr; }
.grid-2-2-2 { grid-template-columns: 2fr 2fr 2fr; }
.grid-auto-1-1 { grid-template-columns: auto 1fr 1fr; }
.grid-1-auto-1 { grid-template-columns: 1fr auto 1fr; }
.grid-1-1-auto { grid-template-columns: 1fr 1fr auto; }
.grid-auto-2-1 { grid-template-columns: auto 2fr 1fr; }
.grid-2-auto-1 { grid-template-columns: 2fr auto 1fr; }
.grid-2-1-auto { grid-template-columns: 2fr 1fr auto; }
.grid-auto-auto-auto { grid-template-columns: auto auto auto; }

.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }
.order-4 { order: 4; }
.order-5 { order: 5; }
.order-6 { order: 6; }
.order-7 { order: 7; }
.order-8 { order: 8; }
.order-9 { order: 9; }
.order-10 { order: 10; }

@media (max-width: 749px) {
  .grid-m-1 { grid-template-columns: 1fr; }
  .grid-m-1-1 { grid-template-columns: 1fr 1fr; }
  .grid-m-1-2 { grid-template-columns: 1fr 2fr; }
  .grid-m-2-1 { grid-template-columns: 2fr 1fr; }
  .grid-m-1-auto { grid-template-columns: 1fr auto; }
  .grid-m-2-auto { grid-template-columns: 2fr auto; }
  .grid-m-auto-1 { grid-template-columns: auto 1fr; }
  .grid-m-auto-2 { grid-template-columns: auto 2fr; }
  .grid-m-auto-auto { grid-template-columns: auto auto; }
  .grid-m-1-1-1 { grid-template-columns: 1fr 1fr 1fr; }
  .grid-m-2-1-1 { grid-template-columns: 2fr 1fr 1fr; }
  .grid-m-1-2-1 { grid-template-columns: 1fr 2fr 1fr; }
  .grid-m-1-1-2 { grid-template-columns: 1fr 1fr 2fr; }
  .grid-m-2-2-1 { grid-template-columns: 2fr 2fr 1fr; }
  .grid-m-2-1-2 { grid-template-columns: 2fr 1fr 2fr; }
  .grid-m-1-2-2 { grid-template-columns: 1fr 2fr 2fr; }
  .grid-m-2-2-2 { grid-template-columns: 2fr 2fr 2fr; }
  .grid-m-auto-1-1 { grid-template-columns: auto 1fr 1fr; }
  .grid-m-1-auto-1 { grid-template-columns: 1fr auto 1fr; }
  .grid-m-1-1-auto { grid-template-columns: 1fr 1fr auto; }
  .grid-m-auto-2-1 { grid-template-columns: auto 2fr 1fr; }
  .grid-m-2-auto-1 { grid-template-columns: 2fr auto 1fr; }
  .grid-m-2-1-auto { grid-template-columns: 2fr 1fr auto; }
  .grid-m-auto-auto-auto { grid-template-columns: auto auto auto; }

  .order-m--5 { order: -5; }
  .order-m--4 { order: -4; }
  .order-m--3 { order: -3; }
  .order-m--2 { order: -2; }
  .order-m--1 { order: -1; }
  .order-m-0 { order: 0; }
  .order-m-1 { order: 1; }
  .order-m-2 { order: 2; }
  .order-m-3 { order: 3; }
  .order-m-4 { order: 4; }
  .order-m-5 { order: 5; }
  .order-m-6 { order: 6; }
  .order-m-7 { order: 7; }
  .order-m-8 { order: 8; }
  .order-m-9 { order: 9; }
  .order-m-10 { order: 10; }
}

/* –––––––––––––––––––––––––––––– DISTANCES BETWEEN ELEMENTS –––––––––––––––––––––––––––––––––*/
.mb-0 { margin-bottom: 0px; }
.mb-10 { margin-bottom: 5px; }
.mb-20 { margin-bottom: 10px; }
.mb-30 { margin-bottom: 15px; }
.mb-40 { margin-bottom: 20px; }
.mb-50 { margin-bottom: 25px; }
.mb-60 { margin-bottom: 30px; }
.mb-70 { margin-bottom: 35px; }
.mb-80 { margin-bottom: 40px; }
.mb-90 { margin-bottom: 45px; }
.mb-100 { margin-bottom: 50px; }
.mb-120 { margin-bottom: 60px; }
.mb-160 { margin-bottom: 80px; }
.mb-200 { margin-bottom: 100px; }

.gap-0 { gap: 0px !important; }
.gap-10 { gap: 10px; }
.gap-20 { gap: 20px; }
.gap-30 { gap: 30px; }
.gap-40 { gap: 20px; }
.gap-50 { gap: 25px; }
.gap-60 { gap: 30px; }
.gap-70 { gap: 35px; }
.gap-80, .gap-90, .gap-100 { gap: 40px; }
.gap-120 { gap: 60px; }
.gap-160 { gap: 80px; }
.gap-200 { gap: 100px; }

.spacer-flex { flex-grow: 1; }

.spacerv-s { height: 10px; }
.spacerv-m { height: 20px; }
.spacerv-l { height: 30px; }
.spacerv-xl { height: 40px; }
.spacerv-2xl { height: 50px; }
.spacerv-3xl { height: 60px; }

.spacerh-s { width: 10px; }
.spacerh-m { width: 20px; }
.spacerh-l { width: 30px; }
.spacerh-xl { width: 40px; }
.spacerh-2xl { width: 50px; }
.spacerh-3xl { width: 60px; }

@media (min-width: 750px) {
  .mb-10 { margin-bottom: 10px; }
  .mb-20 { margin-bottom: 20px; }
  .mb-30 { margin-bottom: 30px; }
  .mb-40 { margin-bottom: 40px; }
  .mb-50 { margin-bottom: 50px; }
  .mb-60 { margin-bottom: 60px; }
  .mb-70 { margin-bottom: 70px; }
  .mb-80 { margin-bottom: 80px; }
  .mb-90 { margin-bottom: 90px; }
  .mb-100 { margin-bottom: 100px; }
  .mb-120 { margin-bottom: 120px; }
  .mb-160 { margin-bottom: 160px; }
  .mb-200 { margin-bottom: 200px; }

  .gap-40 { gap: 40px; }
  .gap-50 { gap: 50px; }
  .gap-60 { gap: 60px; }
  .gap-70 { gap: 70px; }
  .gap-80 { gap: 80px; }
  .gap-90 { gap: 90px; }
  .gap-100 { gap: 100px; }
  .gap-120 { gap: 120px; }
  .gap-160 { gap: 160px; }
  .gap-200 { gap: 200px; }

  .spacerv-s { height: 20px; }
  .spacerv-m { height: 40px; }
  .spacerv-l { height: 60px; }
  .spacerv-xl { height: 80px; }
  .spacerv-2xl { height: 100px; }
  .spacerv-3xl { height: 120px; }

  .spacerh-s { width: 20px; }
  .spacerh-m { width: 40px; }
  .spacerh-l { width: 60px; }
  .spacerh-xl { width: 80px; }
  .spacerh-2xl { width: 100px; }
  .spacerh-3xl { width: 120px; }
}

/* –––––––––––––––––––––––––––––– IMAGES –––––––––––––––––––––––––––––––––*/
.img-full {
  width: 100%;
  height: 100%;
}

.img-absolute {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}

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

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

/* –––––––––––––––––––––––––––––– ANIMATIONS –––––––––––––––––––––––––––––––––*/
.a-fade-in {
  opacity: 0;
  transition: opacity var(--transition-normal) var(--cubic-bezier);
}

.a-triggered.a-fade-in,
.a-triggered .a-fade-in {
  opacity: 1;
}

.a-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--transition-normal) var(--cubic-bezier), transform var(--transition-normal) var(--cubic-bezier);
}

.a-triggered.a-fade-up,
.a-triggered .a-fade-up {
  opacity: 1;
  transform: translateY(0);
}

.a-fade-down {
  opacity: 0;
  transform: translateY(-30px);
  transition: opacity var(--transition-normal) var(--cubic-bezier), transform var(--transition-normal) var(--cubic-bezier);
}

.a-triggered.a-fade-down,
.a-triggered .a-fade-down {
  opacity: 1;
  transform: translateY(0);
}

.a-slide-up > div {
  display: inline-block;
  overflow: hidden;
}

.a-slide-up > div > span {
  display: inline-block;
  transform: translateY(120%);
  transition: transform var(--transition-slow) var(--cubic-bezier);
}

.a-triggered.a-slide-up span,
.a-triggered .a-slide-up span {
  transform: translateY(0);
}

.a-delay-1 { transition-delay: var(--stagger-base); }
.a-delay-2 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier)); }
.a-delay-3 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 2); }
.a-delay-4 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 3); }
.a-delay-5 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 4); }
.a-delay-6 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 5); }
.a-delay-7 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 6); }
.a-delay-8 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 7); }
.a-delay-9 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 8); }
.a-delay-10 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 9); }
.a-delay-11 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 10); }
.a-delay-12 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 11); }
.a-delay-13 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 12); }
.a-delay-14 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 13); }
.a-delay-15 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 14); }
.a-delay-16 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 15); }
.a-delay-17 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 16); }
.a-delay-18 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 17); }
.a-delay-19 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 18); }
.a-delay-20 { transition-delay: calc(var(--stagger-base) * var(--stagger-multiplier) * 19); }

/* –––––––––––––––––––––––––––––– PARALLAX –––––––––––––––––––––––––––––––––*/
.p-set {
  --p-ratio: 0;
}