/*
	Abstracts are helpers, variables and functions
	for scss compliation.
*/
/**==================================================================================================================================
BREAKPOINT
@TODO: remove? What is use case?? either use simple global points or write custom line. why does first breakpoint have to be 0?
 ==================================================================================================================================*/
/**==================================================================================================================================
BREAKPOINT ENDS
==================================================================================================================================*/
span.edit-link {
  display: inline-block;
  background-color: yellow;
  font-weight: 700;
  position: fixed;
  left: 0;
  bottom: 3.125rem;
  transform: translateX(-45px);
  transition: all 0.2s;
}

span.edit-link a {
  display: block;
  padding: 0.9375rem;
}

span.edit-link:hover {
  transform: translateX(0);
}

/*
	Variables for compliation
	NB! Colors should be added to base/config file as css root variable.
*/
/**
 * Block section background colors.
 * Include the background options ACF fields group to use these.
 */
/*
 * makes ul/ol as a dropdown select (normaly in mobile)
 * Structure: div > title > list > li > a
*/
/*
	Variables for legacy dc plugins
*/
section.hero {
  --hero-frame-top: 2.5rem;
  --hero-frame-x: 2.5rem;
  --hero-frame-bottom: 2.5rem;
  --hero-radius: 10px;
  --hero-notch: 4.75rem;
  --hero-notch-gap: 1rem;
  --hero-notch-bg: var(--color__white);
  --hero-topbar-gap: 2rem;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100svh;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--hero-frame-top) var(--hero-frame-x) var(--hero-frame-bottom);
  overflow: visible;
  /* @include breakpoint(medium down) {
  	height: 94svh;
  } */
  /* --- Background video / image ------------------------------------- */
  /* --- Notch: bottom-right cut-out for the scroll button ------------- */
  /* --- Topbar integrated in the hero --------------------------------- */
  /* --- Content ------------------------------------------------------- */
  /* --- Preloader ----------------------------------------------------- */
  /* --- Preloading start states ---------------------------------------- */
}

section.hero .homepage-hero__background {
  position: absolute;
  top: var(--hero-frame-top);
  right: var(--hero-frame-x);
  bottom: var(--hero-frame-bottom);
  left: var(--hero-frame-x);
  border-radius: var(--hero-radius);
  overflow: hidden;
  z-index: 5;
}

@media screen and (max-width: 850px) {
  section.hero .homepage-hero__background {
    border-bottom-left-radius: var(--element-border-radius);
    border-bottom-right-radius: var(--element-border-radius);
  }
}
section.hero .homepage-hero__background .homepage-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

section.hero .homepage-hero__notch {
  --n: calc(var(--hero-notch) + var(--hero-notch-gap));
  --r: var(--element-border-radius);
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 6;
  width: var(--n);
  height: var(--n);
  background: var(--hero-notch-bg);
  border-top-left-radius: var(--r);
  transform-origin: 100% 100%;
}

section.hero .homepage-hero__notch::before, section.hero .homepage-hero__notch::after {
  content: "";
  position: absolute;
  width: var(--r);
  height: var(--r);
  background: radial-gradient(var(--r) at top left, rgba(0, 0, 0, 0) 98%, var(--hero-notch-bg) 100%);
}

section.hero .homepage-hero__notch::before {
  right: 0;
  bottom: 100%;
}

section.hero .homepage-hero__notch::after {
  right: 100%;
  bottom: 0;
}

section.hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.45) 100%);
  pointer-events: none;
}

section.hero .hero-topbar {
  position: absolute;
  top: calc(var(--hero-frame-top) + var(--hero-topbar-gap));
  left: calc(var(--hero-frame-x) + var(--hero-topbar-gap));
  right: calc(var(--hero-frame-x) + var(--hero-topbar-gap));
  z-index: 8;
}

@media screen and (max-width: 850px) {
  section.hero .hero-topbar {
    left: var(--page-gutter);
    right: var(--page-gutter);
    top: 1.25rem;
  }
}
section.hero .hero-watermark {
  position: absolute;
  left: -40px;
  bottom: -486px;
  width: 42%;
  min-width: 620px;
  max-width: 724px;
  opacity: 0.12;
  pointer-events: none;
}

section.hero .hero-watermark svg {
  display: block;
  width: 100%;
  height: auto;
}

@media screen and (max-width: 850px) {
  section.hero .hero-watermark {
    display: none;
  }
}
section.hero .block-section-wrapper {
  position: relative;
  z-index: 5;
  width: 90%;
  max-width: 90%;
}

@media screen and (max-width: 850px) {
  section.hero .block-section-wrapper {
    width: calc(100% - 2 * var(--page-gutter));
    max-width: calc(100% - 2 * var(--page-gutter));
    margin-top: -2rem;
  }
}
section.hero .homepage-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 4rem;
  width: 100%;
}

@media screen and (max-width: 850px) {
  section.hero .homepage-hero__content {
    gap: 3rem;
  }
}
section.hero .homepage-hero__title {
  color: var(--color__white);
  max-width: 15ch;
  font-weight: 900;
}

section.hero .homepage-hero__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
}

@media screen and (max-width: 850px) {
  section.hero .homepage-hero__cta {
    width: 100%;
  }
}
@media screen and (max-width: 850px) {
  section.hero .homepage-hero__cta a {
    width: 100%;
  }
}
section.hero .homepage-hero__scroll {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 7;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--hero-notch);
  height: var(--hero-notch);
  padding: 0;
  border: none;
  border-radius: var(--element-border-radius);
  background-color: var(--color__blue);
  color: var(--color__white);
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transform-origin: 100% 100%;
  transition: background-color 0.3s var(--ease__smooth);
}

section.hero .homepage-hero__scroll svg {
  width: 1rem;
  height: auto;
}

section.hero .homepage-hero__scroll svg path {
  stroke: currentColor;
}

section.hero .homepage-hero__scroll:hover {
  background-color: var(--color__blue-hover);
}

section.hero .preloader {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color__white);
  pointer-events: none;
}

section.hero .preloader .preloader-logo {
  width: 6rem;
  opacity: 0;
}

section.hero .preloader .preloader-logo svg {
  display: block;
  width: 100%;
  height: auto;
}

section.hero:not(.hero--preloading) .preloader {
  display: none;
}

section.hero.hero--preloading .homepage-hero__background {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border-radius: 0;
  -webkit-clip-path: inset(50% 50% 50% 50% round var(--hero-radius));
          clip-path: inset(50% 50% 50% 50% round var(--hero-radius));
}

section.hero.hero--preloading .homepage-hero__content {
  opacity: 0;
}

section.hero.hero--preloading .homepage-hero__cta {
  opacity: 0;
  visibility: hidden;
}

section.hero.hero--preloading .homepage-hero__notch,
section.hero.hero--preloading .homepage-hero__scroll,
section.hero.hero--preloading .hero-topbar {
  opacity: 0;
  visibility: hidden;
}

section.hero.hero--preloading .hero-watermark {
  opacity: 0;
}

@media screen and (max-width: 850px) {
  section.hero {
    --hero-frame-top: 0rem;
    --hero-frame-x: 0rem;
    --hero-frame-bottom: 0rem;
    --hero-radius: 0px;
  }
  section.hero .hero-watermark {
    width: 60%;
  }
  section.hero .homepage-hero__cta {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  section.hero .homepage-hero__notch {
    right: 0;
    left: 0;
    margin: 0 auto;
    width: calc(var(--hero-notch) + 2 * var(--hero-notch-gap));
    height: calc(var(--hero-notch) + var(--hero-notch-gap));
    border-top-right-radius: var(--r);
    transform-origin: 50% 100%;
  }
  section.hero .homepage-hero__notch::before {
    right: 100%;
    bottom: 0;
  }
  section.hero .homepage-hero__notch::after {
    right: auto;
    left: 100%;
    background: radial-gradient(var(--r) at top right, rgba(0, 0, 0, 0) 98%, var(--hero-notch-bg) 100%);
  }
  section.hero .homepage-hero__scroll {
    right: 0;
    left: 0;
    margin: 0 auto;
    transform-origin: 50% 100%;
  }
}
