* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  height: 100%;
}

/* ------------------------- Scaling System by Osmo [https://osmo.supply/] -------------------------  */

/* Desktop */
:root {
  --size-unit: 16; /* body font-size in design - no px */
  --size-container-ideal: 1440; /* screen-size in design - no px */
  --size-container-min: 992px;
  --size-container-max: 1920px;
  --size-container: clamp(
    var(--size-container-min),
    100vw,
    var(--size-container-max)
  );
  --size-font: calc(
    var(--size-container) / (var(--size-container-ideal) / var(--size-unit))
  );
}

/* Tablet */
@media screen and (max-width: 991px) {
  :root {
    --size-container-ideal: 834; /* screen-size in design - no px */
    --size-container-min: 768px;
    --size-container-max: 991px;
  }
}

/* Mobile Landscape */
@media screen and (max-width: 767px) {
  :root {
    --size-container-ideal: 550; /* screen-size in design - no px */
    --size-container-min: 480px;
    --size-container-max: 767px;
  }
}

/* Mobile Portrait */
@media screen and (max-width: 479px) {
  :root {
    --size-container-ideal: 390; /* screen-size in design - no px */
    --size-container-min: 320px;
    --size-container-max: 479px;
  }
}

/** LENIS **/
html.lenis {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: visible;
}
.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

body {
  margin: 0;
  min-height: 100%;
  padding-top: var(--notification-height, 0px);
  background-color: var(--swatch--off-white);
  color: var(--swatch--black);
  font-family: var(--font-family--body);
  font-size: var(--size-font);
  font-weight: 400;
  line-height: 1.2;
  -webkit-font-smoothing: antialiased;
  transition: background-color 0.6s var(--transition--ease);

  &.overflow-hidden {
    overflow: hidden;
  }
}

/*** FONT RESET ***/
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin: 0;
  font-family: var(--font-family--heading);
  font-weight: 500; /*regular*/
  text-box: trim-both cap alphabetic;
}
/*** FONT SIZES ****/

h1,
.h1 {
  font-size: var(--fs--h1);
  line-height: 1;
  letter-spacing: -0.03em;
}

h2,
.h2 {
  font-size: var(--fs--h2);
  line-height: 1.1;
  font-weight: 500;
  letter-spacing: -0.02em;
}
h3,
.h3 {
  font-size: var(--fs--h3);
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: -0.02em;
}
h4,
.h4 {
  font-size: var(--fs--h4);
  font-weight: 500;
  letter-spacing: -0.01em;
}
h5,
.h5 {
  font-size: var(--fs--h5);
  line-height: 1;
}

p {
  margin: 0 0 1em;
  font-size: var(--fs--body);
  line-height: 1.3;
}

.p {
  margin: 0;
  font-size: var(--fs--body);
  line-height: 1.3;
}

.bold {
  font-weight: 500;
}

.p-lrg {
  font-size: var(--fs--body-lrg);
}

.p-sml {
  font-size: var(--fs--body-sml);
  overflow-wrap: anywhere;
}

ul,
ol {
  margin: 1em 0;
  padding-left: 1.2em;
  font-size: var(--fs--body);
  line-height: 1.5;
}

img {
  height: auto;
  width: 100%;
  max-width: 100%;
  vertical-align: middle;
  display: inline-block;
}

svg {
  width: 100%;
  height: auto;
}

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

input {
  -webkit-appearance: none;
  border-radius: 0;
}

.img-absolute,
.img-absolute img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.relative {
  position: relative;
}

.t-center {
  text-align: center;
}

/** GRID CLASSES **/
.grid-2,
.grid-3,
.grid-4,
.grid-5 {
  display: grid;
  grid-template-rows: auto;
  width: 100%;
  grid-gap: var(--padd--side);
}
.grid-2 {
  grid-template-columns: 1fr 1fr;
  grid-gap: 3em;

  @media all and (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

.grid-3 {
  grid-template-columns: 1fr 1fr 1fr;
  @media all and (max-width: 768px) {
    grid-template-columns: 1fr;
    grid-gap: 3em;
  }
}

.grid-4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  @media all and (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

.grid-5 {
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  @media all and (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

/*** NOTIFICATION BAR ***/

.notification-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 21;
  overflow: hidden;
  background-color: var(--swatch--black);
  color: var(--swatch--white);

  .notification-bar-inner {
    display: block;
    padding: 0.7em 4em;
    text-align: center;
    font-size: var(--fs--body-sml);
    line-height: 1;
  }

  .notification-bar-close {
    position: absolute;
    top: 50%;
    right: 1.5em;
    transform: translateY(-50%);
    display: flex;
    width: 1em;
    padding: 0;
    background: none;
    border: 0;
    color: currentColor;
    cursor: pointer;
  }
}

/*** NAVIGATION **/
/* Solid by default. .ghost = clear over a hero. .menu-open = sitting on the open mega menu. */

.header {
  --nav-line-color: var(--swatch--light-green);

  position: fixed;
  z-index: 20;
  top: var(--notification-height, 0px);
  left: 0;
  right: 0;
  padding: 1.8em var(--padd--side) 0;
  color: var(--swatch--dark-green);
  background-color: var(--swatch--off-white);
  transition:
    color 0.4s var(--transition--ease),
    background-color 0.4s var(--transition--ease);

  &.ghost,
  &.menu-open {
    color: var(--swatch--off-white);
    background-color: transparent;
  }

  .nav-container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: end;
    padding-bottom: 1.1em;
  }

  .logo {
    display: block;
    width: 7em;
    color: inherit;

    svg {
      display: block;
      width: 100%;
      height: auto;
    }
  }

  .logo-wordmark {
    width: 14em;
    padding-bottom: 0.2em;

    svg {
      display: block;
      width: 100%;
      height: auto;
    }
  }

  .nav-right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    grid-gap: 1.5em;
  }

  .nav-line {
    width: 100%;
    height: 1px;
    background-color: var(--nav-line-color);
  }

  @media all and (max-width: 768px) {
    padding-top: 1em;

    .nav-container {
      grid-template-columns: 1fr auto;
      padding-bottom: 0.8em;
    }

    .logo {
      width: 4.5em;
    }

    .logo-wordmark,
    .nav-buttons {
      display: none;
    }
  }
}

.nav-buttons {
  display: flex;
  align-items: center;
  grid-gap: 1em;
  list-style: none;
  margin: 0;
  padding: 0;
}

.btn.nav-btn {
  padding: 0.4em var(--padd--30);
  font-size: var(--fs--body-sml);
  color: inherit;
  background-color: transparent;
  border: 1px solid currentColor;
  border-radius: 100vmax;

  &:hover {
    color: var(--swatch--black);
    background-color: var(--swatch--light-green);
    border-color: var(--swatch--light-green);
  }
}

.menu-toggle-btn {
  padding: 0;
  font-family: var(--font-family--heading);
  font-size: var(--fs--body-lrg);
  font-weight: 500;
  line-height: 1;
  text-box: trim-both cap alphabetic;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;

  .menu-toggle-label {
    display: inline-block;
    min-width: 3.4em; /* stops the bar shifting between "Menu" and "Close" */
    text-align: right;
  }
}

/*** MEGA MENU ***/
/* Hidden until .is-open; JS animates the clip-path and staggers the columns in */

.mega-menu {
  position: fixed;
  z-index: 19;
  top: var(--notification-height, 0px);
  left: 0;
  right: 0;
  max-height: calc(100dvh - var(--notification-height, 0px));
  overflow-y: auto;
  padding: calc(var(--header-height, 6em) + var(--padd--50)) var(--padd--side) var(--padd--70);
  color: var(--swatch--off-white);
  background-color: color-mix(in srgb, var(--swatch--black) 92%, transparent);
  visibility: hidden;
  clip-path: polygon(0 0, 100% 0, 100% 0%, 0 0%);

  &.is-open {
    visibility: visible;
  }

  .mega-menu__inner {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1.25fr 1.2fr;
    grid-gap: var(--padd--50);
  }

  .mega-menu__title {
    margin: 0 0 0.9em;
    font-family: var(--font-family--heading);
    font-size: var(--fs--h3);
    font-weight: 500;
    line-height: 1.2;
    text-box: trim-both cap alphabetic;
    color: var(--swatch--light-grey);
  }

  .mega-menu__list {
    display: flex;
    flex-direction: column;
    grid-gap: 0.85em;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: var(--fs--h5);

    &.large {
      grid-gap: 0.4em;
      font-size: var(--fs--h3);
      line-height: 1.2;

      .mega-menu__link {
        color: var(--swatch--light-grey);
      }
    }
  }

  .mega-menu__link {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;

    &:hover {
      color: var(--swatch--light-green);
    }
  }

  .mega-menu__buttons {
    display: none;
  }

  @media all and (max-width: 768px) {
    height: calc(100dvh - var(--notification-height, 0px));
    padding-top: calc(var(--header-height, 4em) + 2em);

    .mega-menu__inner {
      grid-template-columns: 1fr;
      grid-gap: 2.5em;
    }

    .mega-menu__buttons {
      display: block;

      .nav-buttons {
        flex-wrap: wrap;
      }
    }
  }
}

/*** BUTTONS ***/

.btn-wrapper {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  grid-gap: 0.75em;
  list-style: none;
  padding: 0;

  @media all and (max-width: 768px) {
    flex-direction: column;
    align-items: flex-start;
  }
}

.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0.7em 1em;
  font-family: var(--font-family--heading);
  font-size: var(--fs--button-sml);
  line-height: 1;
  text-align: center;
  text-box: trim-both cap alphabetic;
  cursor: pointer;
  color: var(--swatch--white);
  background-color: var(--swatch--black);
  border: 2px solid var(--swatch--black);
  transition:
    color 0.3s ease,
    background-color 0.3s ease;

  &.lrg {
    font-size: var(--fs--button);
  }

  &.ghost,
  &.secondary {
    color: var(--swatch--black);
    background-color: transparent;
  }

  /* Light green pill — e.g. hero button */
  &.primary {
    padding: 1.25em 2.4em;
    color: var(--swatch--black);
    background-color: var(--swatch--light-green);
    border: 0;
    border-radius: 100vmax;

    &:hover {
      color: var(--swatch--off-white);
      background-color: var(--swatch--dark-green);
    }
  }
}

/*** FOOTER ***/

footer {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  grid-gap: var(--padd--50);
  padding: var(--padd--100) var(--padd--side);

  .foot-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    grid-gap: 1em;
  }

  @media all and (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

.footer-menu,
.footer-policies {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-menu {
  display: flex;
  flex-direction: column;
  grid-gap: 0.4em;
}

.footer-base {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  grid-gap: 1em;
  padding: 1.5em var(--padd--side);
  font-size: var(--fs--body-sml);

  .footer-policies {
    display: flex;
    grid-gap: 1.5em;
    font-size: inherit;
  }
}

/***** HERO SECTION *****/

.hero-section {
  position: relative;
  display: flex;
  height: 100svh;
  min-height: 40em;
  overflow: hidden;
  color: var(--swatch--off-white);

  .bg {
    position: absolute;
    inset: 0;
  }

  .hero-media {
    position: absolute;
    inset: 0;
  }

  .black-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
  }

  /* Darkens the top so the ghost nav stays readable */
  .gradient-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 30%;
    background: #000;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
  }

  .content {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    padding:
      calc(var(--notification-height, 0px) + var(--header-height, 6em) + var(--padd--165))
      var(--padd--side)
      var(--padd--70);
  }

  .hero-text {
    display: flex;
    flex-direction: column;
    grid-gap: var(--padd--50);
    max-width: 60em;
  }

  .hero-description {
    margin: 0;
  }

  .mobile {
    display: none;
  }

  @media all and (max-width: 768px) {
    .content {
      padding-top: calc(var(--notification-height, 0px) + var(--header-height, 4em) + var(--padd--70));
    }

    .hero-text {
      grid-gap: 1.5em;
    }

    .desktop {
      display: none;
    }

    .mobile {
      display: block;
    }
  }
}

/***** TEXT SECTION *****/

.text_section {
  padding: var(--padd--165) var(--padd--side);

  &.is-first {
    padding-top: calc(var(--padd--200) + var(--notification-height, 0px));
  }

  .content {
    display: flex;
    flex-direction: column;
    align-items: center;
    grid-gap: 1.5em;
    max-width: 60em;
    margin: auto;
    text-align: center;
  }

  @media all and (max-width: 768px) {
    padding: var(--padd--100) var(--padd--side);
  }
}

/***** IMAGE TEXT *****/

.image-text {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  grid-gap: var(--padd--100);
  padding: var(--padd--165) var(--padd--side);

  &.reverse {
    .media {
      order: 2;
    }
  }

  .media {
    position: relative;
  }

  .single-media {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
  }

  .content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    grid-gap: 1.5em;
  }

  @media all and (max-width: 768px) {
    grid-template-columns: 1fr;
    grid-gap: var(--padd--50);
    padding: var(--padd--100) var(--padd--side);

    &.reverse .media {
      order: 0;
    }
  }
}

/***** COLUMNS *****/

.columns {
  padding: var(--padd--165) var(--padd--side);

  .heading {
    margin-bottom: var(--padd--50);
  }

  .item {
    display: flex;
    flex-direction: column;
    grid-gap: 1.5em;
  }

  .media {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
  }

  .content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    grid-gap: 1em;
  }

  /* "Read more" accordion inside an item — body sits above the header */
  .accordion {
    border: 0;

    .accordion-header {
      padding: 0;
    }

    &.open .accordion-body {
      padding: 0 0 1em;
    }
  }

  &.is-carousel {
    padding-right: 0;
    padding-left: 0;

    .heading {
      padding: 0 var(--padd--side);
    }

    .column-swiper {
      padding: 0 var(--padd--side);
    }

    .item {
      width: calc(100% / 3 - 3em);
      margin-right: 3em;
    }
  }

  @media all and (max-width: 768px) {
    padding: var(--padd--100) var(--padd--side);

    &.is-carousel .item {
      width: 80%;
      margin-right: 1.5em;
    }
  }
}

/***** SWIPER *****/

.swiper {
  .swiper-button-disabled {
    opacity: 0;
  }
}

/***** ACCORDION *****/

.accordion-wrapper {
  padding: var(--padd--165) var(--padd--side);

  .heading {
    margin-bottom: var(--padd--50);
  }

  @media all and (max-width: 768px) {
    padding: var(--padd--100) var(--padd--side);
  }
}

.accordion {
  border-bottom: 1px solid currentColor;

  .accordion-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1em 0 0.8em;
    cursor: pointer;

    .icon {
      display: flex;
      width: 1em;
      flex-shrink: 0;

      svg {
        transition: var(--transition--ease) 0.6s transform;
      }
    }
  }

  .accordion-body {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: var(--transition--ease) 0.6s all;

    & > div {
      overflow: hidden;
    }
  }

  /* Heading + link only (no description) — plain list row */
  &.is-link {
    .read-more {
      flex-shrink: 0;
      margin-left: 2em;
      text-decoration: underline;
    }
  }

  &.open {
    .accordion-header .icon svg {
      transform: rotate(45deg);
    }

    .accordion-body {
      grid-template-rows: 1fr;
      opacity: 1;
      padding: 0.3em 0 2em;
    }
  }
}

/***** VIDEO SECTION *****/

.video-section {
  padding: var(--padd--165) var(--padd--side);

  .heading {
    margin-bottom: var(--padd--50);
  }

  @media all and (max-width: 768px) {
    padding: var(--padd--100) var(--padd--side);
  }
}

/***** VIDEO PLAYER *****/

.video-player {
  --timeline-rounded-corners: 1.5em;
  --timeline-dot-height: 0.75em;
  --timeline-dot-color: var(--swatch--white);
  --progress-bg: rgba(239, 238, 236, 0.2);
  --progress-fill-bg: var(--swatch--white);
  --progress-height: 0.2em;

  pointer-events: auto;
  color: var(--swatch--white);
  isolation: isolate;
  background-color: var(--swatch--black);
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
  overflow: hidden;
}

.video-player[data-player-update-size="cover"] {
  width: 100%;
  min-width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 100%;
  max-height: 100%;
}

.video-player__iframe {
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
}

.video-player__before {
  padding-top: 62.5%;
}

.video-player__placeholder {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: opacity 0.3s linear;
  display: block;
  position: absolute;
}

.video-player[data-player-activated="true"][data-player-loaded="true"]
  .video-player__placeholder {
  opacity: 0;
}

.video-player__dark {
  opacity: 0.5;
  pointer-events: none;
  background-color: var(--swatch--black);
  width: 100%;
  height: 100%;
  transition: opacity 0.3s linear;
  position: absolute;
}

.video-player[data-player-playing="false"] .video-player__dark {
  opacity: 0.33;
}

.video-player[data-player-activated="false"][data-player-playing="false"]
  .video-player__dark {
  opacity: 0;
}

.video-player[data-player-activated="true"][data-player-loaded="true"]
  .video-player__dark {
  opacity: 0;
}

@media (hover: hover) and (pointer: fine) {
  .video-player[data-player-hover="true"]:hover .video-player__dark {
    opacity: 0.33 !important;
  }
}

.video-player__play,
.video-player__pause {
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
}

.video-player__btn {
  justify-content: center;
  align-items: center;
  width: 6em;
  height: 6em;
  transition: opacity 0.3s linear;
  display: flex;
  position: relative;
}

.video-player__btn-play-svg {
  width: 70%;
}

.video-player__btn-pause-svg {
  width: 70%;
}

.video-player .video-player__pause {
  display: none;
}

.video-player[data-player-playing="true"] .video-player__pause {
  display: flex;
}

.video-player .video-player__pause .video-player__btn {
  opacity: 0;
}

.video-player[data-player-activated="true"][data-player-playing="false"]
  .video-player__pause
  .video-player__btn,
.video-player[data-player-activated="true"][data-player-hover="true"]:hover
  .video-player__pause
  .video-player__btn {
  opacity: 1;
}

@media (hover: none) and (pointer: coarse) {
  .video-player[data-player-activated="true"][data-player-playing="true"]
    .video-player__pause
    .video-player__btn {
    opacity: 0 !important;
  }
}

.video-player[data-player-playing="true"] .video-player__play {
  opacity: 0;
}

.video-player__loading {
  pointer-events: none;
  color: var(--swatch--white);
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  transition: opacity 0.3s linear;
  display: flex;
  position: absolute;
  opacity: 0;
}

.video-player__loading-svg {
  width: 6em;
  height: 6em;
  animation: spin 1s linear infinite;
  transform-origin: center;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.video-player[data-player-playing="true"] .video-player__loading {
  opacity: 1;
}

.video-player[data-player-playing="true"][data-player-loaded="true"]
  .video-player__loading {
  opacity: 0;
}

.video-player__interface {
  pointer-events: none;
  flex-flow: column;
  justify-content: flex-end;
  align-items: stretch;
  width: 100%;
  height: 100%;
  padding: min(2em, 4vw);
  transition: opacity 0.3s linear;
  display: flex;
  position: absolute;
  opacity: 0;
}

.video-player[data-player-activated="false"][data-player-playing="false"]
  .video-player__interface {
  opacity: 0;
}

.video-player .video-player__interface * {
  pointer-events: all;
}

.video-player[data-player-activated="true"][data-player-playing="false"]
  .video-player__interface,
.video-player[data-player-activated="true"][data-player-hover="true"]:hover
  .video-player__interface {
  opacity: 1;
}

@media (hover: none) and (pointer: coarse) {
  .video-player[data-player-activated="true"][data-player-playing="true"]
    .video-player__interface {
    opacity: 0 !important;
  }
}

.video-player__interface-bottom {
  grid-gap: 1em;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.video-player__timeline {
  flex-grow: 1;
  justify-content: center;
  align-items: center;
  height: 1.5em;
  display: flex;
  position: relative;
}

.video-player__timeline-input {
  pointer-events: auto;
  cursor: pointer;
  appearance: none;
  background-color: transparent;
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}

.video-player__timeline-progress {
  vertical-align: top;
  appearance: none;
  height: var(--progress-height);
  border-radius: var(--timeline-rounded-corners);
  color: var(--progress-fill-bg);
  background-color: transparent;
  border: none;
  width: 100%;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  overflow: hidden;
}

.video-player progress::-webkit-progress-bar {
  border-radius: var(--timeline-rounded-corners);
  background-color: var(--progress-bg);
}

.video-player progress::-webkit-progress-value {
  background: var(--progress-fill-bg);
}

.video-player progress::-moz-progress-bar {
  border-radius: var(--timeline-rounded-corners);
  background: var(--progress-fill-bg);
}

.video-player [type="range"]::-webkit-slider-thumb {
  appearance: none;
}

.video-player [type="range"]:focus {
  outline: none;
}

.video-player [type="range"]::-webkit-slider-runnable-track {
  width: 100%;
  height: var(--progress-height);
  cursor: pointer;
  border-radius: var(--timeline-rounded-corners);
  background-color: transparent;
  border-color: transparent;
  color: transparent;
}

.video-player [type="range"]::-webkit-slider-thumb {
  height: var(--timeline-dot-height);
  width: var(--timeline-dot-height);
  border-radius: var(--timeline-rounded-corners);
  background-color: var(--timeline-dot-color);
  cursor: pointer;
  appearance: none;
  margin-top: calc(
    (var(--progress-height) / 2) - (var(--timeline-dot-height) / 2)
  );
}

.video-player [type="range"]::-moz-range-track {
  width: 100%;
  height: var(--progress-height);
  cursor: pointer;
  background: var(--progress-bg);
  border: 0;
  border-radius: var(--timeline-rounded-corners);
  overflow: hidden;
  opacity: 1 !important;
}

.video-player [type="range"]::-moz-range-thumb {
  border: 0;
  height: var(--timeline-dot-height);
  width: var(--timeline-dot-height);
  border-radius: var(--timeline-rounded-corners);
  background: var(--timeline-dot-color);
  cursor: pointer;
}

.video-player__duration {
  flex-shrink: 0;
  width: 2.25em;
}

.video-player__duration-span {
  text-align: center;
  white-space: nowrap;
  user-select: none;
  width: 100%;
  display: block;
}

.video-player__mute,
.video-player__fullscreen {
  cursor: pointer;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 1.5em;
  height: 1.5em;
  display: flex;
  position: relative;
}

.video-player__volume-up-svg,
.video-player__volume-mute-svg,
.video-player__fullscreen-scale-svg,
.video-player__fullscreen-shrink-svg {
  width: 100%;
  position: absolute;
}

.video-player .video-player__mute svg:nth-child(2),
.video-player[data-player-muted="true"] .video-player__mute svg:nth-child(1) {
  display: none;
}

.video-player .video-player__mute svg:nth-child(1),
.video-player[data-player-muted="true"] .video-player__mute svg:nth-child(2) {
  display: block;
}

.video-player .video-player__fullscreen svg:nth-child(2),
.video-player[data-player-fullscreen="true"]
  .video-player__fullscreen
  svg:nth-child(1) {
  display: none;
}

.video-player .video-player__fullscreen svg:nth-child(1),
.video-player[data-player-fullscreen="true"]
  .video-player__fullscreen
  svg:nth-child(2) {
  display: block;
}


/**** SINGLE *****/

.single-template {
  padding: calc(var(--padd--165) + var(--notification-height, 0px)) var(--padd--side) var(--padd--165);

  .heading {
    display: flex;
    flex-direction: column;
    grid-gap: 1em;
    max-width: 60em;
    margin: 0 auto var(--padd--50);
  }

  .single-feature {
    position: relative;
    aspect-ratio: 16 / 9;
    margin-bottom: var(--padd--50);
    overflow: hidden;
  }

  .single-content {
    max-width: 50em;
    margin: auto;
  }
}

/**** 404 *****/

.not-found {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  grid-gap: 1.5em;
  min-height: 100svh;
  padding: 0 var(--padd--side);
  text-align: center;
}
