html {
  --fla-heading-font-family: "CenturyGothicStd", "Inter", sans-serif;
  --fla-subheading-font-family: "Poppins";
  --fla-body-font-family: "Inter", "Helvetica Neue", "Arial", "Helvetica", "sans-serif";
  --fla-text-color-light: rgba(255,255,255,0.618);
}

body {
  --fla-dock-height: 0px;
}

body[data-fla-state*="do:1"] {
  --fla-dock-height: var(--fla-footer-height);
}

/**
 * TO BE INCLUDED WITHIN THE CONTENT CONTAINING ELEMENT
 * (WHERE THE SCOLLING DOES HAPPEN)
 */
/**
 * Must be applied not to the block element but the h1/h2/h3 directly
 * block must be display: contents
 */
/**
  NOTE: THIS IS SPECIFIC TO FONTS
  ARIAL: 0.318/2
 */
/**
 * What this does, is:
 * Given a Text like "First, Last and Always" we have the descender "y"
 * this mixin calculates the space that is taken by descenders and subtracts it
 * from the height of the element via negative margin bottom. By the way:
 * the descender space is also taken if we have text that does NOT have a descender!
 * When to use:
 * - The text block needs to sit bottom align with a specific design line or element
 *
 * When NOT to use:
 * - If another text block is placed below this one. in that case we need to use another mixin "centuryGothicDescendantEqualizer"
 *
 * Get the UnitsPerEM via "ttx -t head CenturyGothicStd.ttf" (fonttools)
 * Get the sTypoDescender via `ttx -t OS/2 CenturyGothicStd.ttf` (fonttools)
 * Calculate the Descener Ratio: Descender Ratio = |sTypoDescender| / unitsPerEm
 * Translate into CSS: margin-bottom: calc(-1*<DescenderRatio>)
 *
 * @see https://stackoverflow.com/questions/27631736/meaning-of-top-ascent-baseline-descent-bottom-and-leading-in-androids-font
 */
/**
 What we do here is:
 Based on this graphic: https://i.sstatic.net/LwZJF.png we cut off the
 distance from the bottom to the Descent
 */
/**
 * @deprecated Moved to a SDC component
 */
/**
 * Meant to glue the menu image before and after the content area so it can be used as glass background..
 */
/**
 * Use the content's image as a background below the content area to prevent boring grey areas
 */
/*
 * Use this for sections where the main content area must start below the header (not overlayed by the glass header)
 * to look fine u need to define a backkground image either for the body element or the layout container
 */
/**
 * =========================================
 * Frontpage specific global settings
 * =========================================
 */
.region.region-content {
  overflow: auto;
}

.region.region-content .block:not(.block-views-blockfla-frontpage-hero-slider-block-1):not(:last-of-type) {
  padding: 1rem;
}

.region.region-content .block:not(:last-of-type):not([class*="hero2"]) {
  margin-bottom: 8vh;
}

.region.region-content h2 {
  font-size: 1.25rem;
}

/**
 * =========================================
 * Frontpage Hero Slider Block
 * =========================================
 * @todo Migrate this into a component
 */
.block-views-blockfla-frontpage-hero-slider-block-1,
.block.fla-frontpage-heroslider {
  height: calc(70vh - var(--fla-dock-height));
  width: 100%;
  position: relative;
  /*
  @include container-query("layout-container", "phone-up"){
    aspect-ratio: 7.5/3;
    height: auto;
  }
  //*/
  /*
  @include pseudo(after);
  &:after{
    display: block;
    position: relative;
    height: 4vh;
    background-color: black;
  }
  //*/
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div, .block-views-blockfla-frontpage-hero-slider-block-1 .view, .block-views-blockfla-frontpage-hero-slider-block-1 .view-content,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel.slide, .block-views-blockfla-frontpage-hero-slider-block-1 .carousel-inner,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel-item,
.block.fla-frontpage-heroslider > div,
.block.fla-frontpage-heroslider .view,
.block.fla-frontpage-heroslider .view-content,
.block.fla-frontpage-heroslider .carousel.slide,
.block.fla-frontpage-heroslider .carousel-inner,
.block.fla-frontpage-heroslider .carousel-item {
  height: 100%;
  overflow: visible;
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div .row, .block-views-blockfla-frontpage-hero-slider-block-1 > div [class^="col-"], .block-views-blockfla-frontpage-hero-slider-block-1 > div picture img, .block-views-blockfla-frontpage-hero-slider-block-1 .view .row, .block-views-blockfla-frontpage-hero-slider-block-1 .view [class^="col-"], .block-views-blockfla-frontpage-hero-slider-block-1 .view picture img, .block-views-blockfla-frontpage-hero-slider-block-1 .view-content .row, .block-views-blockfla-frontpage-hero-slider-block-1 .view-content [class^="col-"], .block-views-blockfla-frontpage-hero-slider-block-1 .view-content picture img,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel.slide .row,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel.slide [class^="col-"],
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel.slide picture img, .block-views-blockfla-frontpage-hero-slider-block-1 .carousel-inner .row, .block-views-blockfla-frontpage-hero-slider-block-1 .carousel-inner [class^="col-"], .block-views-blockfla-frontpage-hero-slider-block-1 .carousel-inner picture img,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel-item .row,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel-item [class^="col-"],
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel-item picture img,
.block.fla-frontpage-heroslider > div .row,
.block.fla-frontpage-heroslider > div [class^="col-"],
.block.fla-frontpage-heroslider > div picture img,
.block.fla-frontpage-heroslider .view .row,
.block.fla-frontpage-heroslider .view [class^="col-"],
.block.fla-frontpage-heroslider .view picture img,
.block.fla-frontpage-heroslider .view-content .row,
.block.fla-frontpage-heroslider .view-content [class^="col-"],
.block.fla-frontpage-heroslider .view-content picture img,
.block.fla-frontpage-heroslider .carousel.slide .row,
.block.fla-frontpage-heroslider .carousel.slide [class^="col-"],
.block.fla-frontpage-heroslider .carousel.slide picture img,
.block.fla-frontpage-heroslider .carousel-inner .row,
.block.fla-frontpage-heroslider .carousel-inner [class^="col-"],
.block.fla-frontpage-heroslider .carousel-inner picture img,
.block.fla-frontpage-heroslider .carousel-item .row,
.block.fla-frontpage-heroslider .carousel-item [class^="col-"],
.block.fla-frontpage-heroslider .carousel-item picture img {
  height: 100%;
}

.block-views-blockfla-frontpage-hero-slider-block-1 .carousel-control-prev,
.block-views-blockfla-frontpage-hero-slider-block-1 .carousel-control-next,
.block.fla-frontpage-heroslider .carousel-control-prev,
.block.fla-frontpage-heroslider .carousel-control-next {
  bottom: 44%;
  top: auto;
  z-index: 1000;
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div:after,
.block.fla-frontpage-heroslider > div:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div:before,
.block.fla-frontpage-heroslider > div:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div:before, .block-views-blockfla-frontpage-hero-slider-block-1 > div:after,
.block.fla-frontpage-heroslider > div:before,
.block.fla-frontpage-heroslider > div:after {
  background-repeat: no-repeat;
  z-index: 1;
  pointer-events: none;
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div:before,
.block.fla-frontpage-heroslider > div:before {
  opacity: 0.5;
  background-size: 100% 120%;
  background-image: url(/themes/custom/fla/img/backgrounds/vignette-full-scree_1920x1080.jpg), linear-gradient(45deg, rgba(0, 0, 0, 0.6), transparent), linear-gradient(60deg, rgba(0, 0, 0, 0.1), transparent);
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div:after,
.block.fla-frontpage-heroslider > div:after {
  background-size: 100% 100%;
  background-image: linear-gradient(to top, black 0%, transparent 17%, transparent 100%);
}

.block-views-blockfla-frontpage-hero-slider-block-1 > div .carousel-indicators,
.block.fla-frontpage-heroslider > div .carousel-indicators {
  display: none;
  --bs-carousel-indicator-active-bg: white;
}

@container layout-container (min-width: 501px) and (min-height: 501px) {
  .block-views-blockfla-frontpage-hero-slider-block-1 > div .carousel-indicators,
.block.fla-frontpage-heroslider > div .carousel-indicators {
    text-align: center;
    display: block;
    bottom: -3rem;
  }
}

/**
 * =========================================
 * END Frontpage Hero Slider Block
 * =========================================
 */
/**
 * =========================================
 * Frontpage Introtext
 * =========================================
 *
 */
.block[id*="introtext"] {
  margin-top: 1.5rem;
  padding: 1rem;
}

@container layout-container (min-width: 768px) and (min-height: 1024px) {
  .block[id*="introtext"] {
    padding: 2rem;
  }
}

/**
 * =========================================
 * Frontpage featured projects and samples
 * =========================================
 *
 */
.block-views-blockfla-frontpage-projects-block-1,
.block-views-blockfla-frontpage-samples-block-1 {
  margin: auto;
  margin-top: 5rem;
  container-name: frontpage-featured-projects;
  container-type: inline-size;
}

.block-views-blockfla-frontpage-projects-block-1 > h2 + div,
.block-views-blockfla-frontpage-samples-block-1 > h2 + div {
  position: relative;
}

.block-views-blockfla-frontpage-projects-block-1 .view-footer,
.block-views-blockfla-frontpage-samples-block-1 .view-footer {
  padding: 1rem;
  text-align: right;
}

.block-views-blockfla-frontpage-projects-block-1 .view-footer a,
.block-views-blockfla-frontpage-samples-block-1 .view-footer a {
  color: white;
  font-weight: 300;
}

.block-views-blockfla-frontpage-projects-block-1 h2,
.block-views-blockfla-frontpage-samples-block-1 h2 {
  color: #91532b;
}

/**
 * =========================================
 * Frontpage stats ( Counters )
 * =========================================
 * @todo Should go into a component
 */
.block-fla-theme-fla-frontpage-counter-collection {
  display: none;
}

@container html-container (min-width: 1200px) and (min-height: 768px) {
  .block-fla-theme-fla-frontpage-counter-collection {
    width: 1024px;
    margin: auto;
  }
}

.block-fla-theme-fla-frontpage-counter-collection > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

.block-fla-theme-fla-frontpage-counter-collection [data-component-id="fla:counter"] {
  flex: 0 0 50%;
}

@container html-container (min-width: 768px) {
  .block-fla-theme-fla-frontpage-counter-collection [data-component-id="fla:counter"] {
    flex-basis: 33.33%;
  }
}

@container html-container (min-width: 1024px) and (min-height: 768px) {
  .block-fla-theme-fla-frontpage-counter-collection [data-component-id="fla:counter"] {
    flex-basis: 20%;
  }
}

#block-fla-flafrontpagecountercollection-2 {
  background-color: white;
}

#block-fla-flafrontpagecountercollection-2 .counter__text {
  fill: #000;
}

/**
 * =========================================
 * Frontpage Services
 * =========================================
 */
@container layout-container (min-width: 501px) and (min-height: 501px) {
  .block-views-blockfla-frontpage-services-block-1 {
    padding: 1rem !important;
  }
}

.block-views-blockfla-frontpage-services-block-1 [data-component-id="fla:gradient_table"] {
  --cols: 2;
}

@container layout-container (min-width: 768px) and (min-height: 1024px) {
  .block-views-blockfla-frontpage-services-block-1 [data-component-id="fla:gradient_table"][data-num-items="6"] {
    --cols: 3;
  }
}

.block-views-blockfla-frontpage-services-block-1 > h2 {
  text-align: center;
  text-transform: uppercase;
}

.block-views-blockfla-frontpage-services-block-1 .view {
  margin: auto -1rem;
}

@container layout-container (min-width: 1024px) and (min-height: 768px) {
  .block-views-blockfla-frontpage-services-block-1 .view {
    max-width: 80%;
    margin: auto;
  }
}

.block-views-blockfla-frontpage-services-block-1 .grid > article:nth-of-type(1):before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-views-blockfla-frontpage-services-block-1 .grid > article:nth-of-type(1):before {
  --dot-size: 7px;
  bottom: calc( -1 * ( var(--gap) + var(--dot-size) )  / 2);
  right: calc( -1 * ( var(--gap) + var(--dot-size) )  / 2);
  left: auto;
  top: auto;
  background-color: white;
  border-radius: 10px;
  width: var(--dot-size);
  height: var(--dot-size);
}

.block-views-blockfla-frontpage-services-block-1 .node__links {
  display: none;
}

@container layout-container (min-width: 768px) and (min-height: 1024px) {
  .block-views-blockfla-frontpage-services-block-1 .node__links {
    display: block !important;
  }
}

.block-views-blockfla-frontpage-services-block-1 .field--name-body {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

/**
 * =========================================
 * Frontpage fps articles (gradient table component - obsolete
 * =========================================
 * @todo Should go into a component
 */
/*
.block-views-blockfla-frontpage-fps-block-1 {
  [data-component-id="fla:gradient_table"] {
    --cols: 2 !important;
      .node__links{
        display: none;
        @include container-query("layout-container", "phone-up") {
          display: block;
        }
    }
    .field--name-body, h2{
      @include line-clamp(2);
    }

    .grid > *:nth-of-type(1){
      @include grid-intersection-dot(white, before)
    }
  }
}
 */
.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] {
  --cols: 2 !important;
}

@container layout-container (min-width: 501px) and (min-height: 501px) {
  .block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] .field--name-body, .block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] .node__links {
    display: block;
  }
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * {
  background: linear-gradient(45deg, #434343, #232323, #434343);
  padding: 5px;
  border-radius: 5px !important;
  transition-duration: 0.7s;
  transition-timing-function: ease-in-out;
  transition-behavior: allow-discrete;
  transition-property: transform, background, background-color, background-image, background-position !important;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > *:before {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  z-index: 0;
  pointer-events: none;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > *:before {
  background-color: black;
  border-radius: 5px;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * h2, .block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * .node__content {
  position: relative;
  z-index: 1;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * {
  aspect-ratio: 1/1.1;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * .node__content {
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * h2 {
  font-size: 1.25rem;
  font-weight: 300;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * .field--name-body {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * .node__links {
  text-transform: lowercase;
  text-align: right;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * .node__links li:last-of-type {
  padding-right: 0;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * .node__links .node-readmore:after {
  content: " >>>";
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * h2 {
  --line-height: 1.42857143;
  line-height: var(--line-height);
  height: calc( 2.4em * var(--line-height));
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * h2:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-views-blockfla-frontpage-fps-block-1 [data-component-id="fla:card_collection"] > * h2:after {
  top: auto;
  height: 4px;
  background-image: linear-gradient(to right, white, transparent);
}

/**
 * =========================================
 * Frontpage contact us (CTA buttons)
 * =========================================
 * @todo Should go into a component
 */
.block-fla-theme-fla-frontpage-contact {
  padding-top: 0vh;
  position: relative;
}

@container layout-container (max-width: 500px) and (max-height: 1000px) {
  .block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] .grid > div:nth-of-type(1), .block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] .grid > div:nth-of-type(2), .block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] .grid > div:nth-of-type(3), .block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] .grid > div:nth-of-type(9) {
    display: none;
  }
  .block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] .grid > div:nth-of-type(5) {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -60px;
  }
}

@container layout-container (min-width: 501px) and (min-height: 501px) {
  .block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] {
    --cols: 3;
  }
}

.block-fla-theme-fla-frontpage-contact [data-component-id="fla:gradient_table"] > div {
  text-align: center;
}

.block-fla-theme-fla-frontpage-contact .cta {
  margin-top: 15vh;
  margin-bottom: 10vh;
  font-size: 1.5rem;
}

.block-fla-theme-fla-frontpage-contact .cta [class^="col"] {
  padding: 3vh;
}

.block-fla-theme-fla-frontpage-contact .cta [class^="col"]:not(:last-of-type) {
  border-right: 1px solid #efefef;
}

.block-fla-theme-fla-frontpage-contact .cta, .block-fla-theme-fla-frontpage-contact .cta > .container {
  position: relative;
}

.block-fla-theme-fla-frontpage-contact .cta:before, .block-fla-theme-fla-frontpage-contact .cta > .container:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-fla-theme-fla-frontpage-contact .cta:after, .block-fla-theme-fla-frontpage-contact .cta > .container:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-fla-theme-fla-frontpage-contact .cta:before, .block-fla-theme-fla-frontpage-contact .cta:after, .block-fla-theme-fla-frontpage-contact .cta > .container:before, .block-fla-theme-fla-frontpage-contact .cta > .container:after {
  height: 1px;
  width: 50vw;
  z-index: 1;
  pointer-events: none;
}

.block-fla-theme-fla-frontpage-contact .cta:before, .block-fla-theme-fla-frontpage-contact .cta > .container:before {
  left: auto;
  right: 50%;
  background-image: linear-gradient(to left, white, transparent);
}

.block-fla-theme-fla-frontpage-contact .cta:after, .block-fla-theme-fla-frontpage-contact .cta > .container:after {
  left: 50%;
  right: auto;
  background-image: linear-gradient(to right, white, transparent);
}

.block-fla-theme-fla-frontpage-contact .cta > .container:before, .block-fla-theme-fla-frontpage-contact .cta > .container:after {
  top: auto;
  bottom: 0;
}

@media screen and (max-width: 387px) {
  .block-fla-theme-fla-frontpage-contact .cta {
    margin-bottom: calc(10vh + 30px);
  }
  .block-fla-theme-fla-frontpage-contact .cta .col:nth-of-type(1) {
    order: 1;
  }
  .block-fla-theme-fla-frontpage-contact .cta .col:nth-of-type(2) {
    order: 3;
  }
  .block-fla-theme-fla-frontpage-contact .cta .col:nth-of-type(3) {
    order: 2;
  }
  .block-fla-theme-fla-frontpage-contact .cta .col:nth-of-type(2) {
    position: absolute;
    bottom: -100px;
  }
}

/**
 * =========================================
 * Frontpage address block
 * =========================================
 * @todo Should go into a component
 */
.block-fla-theme-frontpage-address .address {
  padding: 10rem 2rem 10rem 2rem;
  padding-bottom: calc(var(--fla-footer-height) + 2rem);
  width: 100%;
  background: transparent url(/themes/custom/fla/img/hands-black-white.jpg) no-repeat center center;
  background-size: cover;
  z-index: 10;
  position: relative;
  text-align: center;
  font-size: 1.5rem;
}

.block-fla-theme-frontpage-address .address strong {
  font-weight: 400;
}

.block-fla-theme-frontpage-address .address:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-fla-theme-frontpage-address .address:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.block-fla-theme-frontpage-address .address:before, .block-fla-theme-frontpage-address .address:after {
  background-repeat: no-repeat;
  z-index: 1;
  pointer-events: none;
}

.block-fla-theme-frontpage-address .address:before {
  opacity: 0.8;
  background-size: 100% 120%;
  background-image: url(/themes/custom/fla/img/backgrounds/vignette-full-scree_1920x1080.jpg), linear-gradient(45deg, rgba(0, 0, 0, 0.6), transparent), linear-gradient(60deg, rgba(0, 0, 0, 0.1), transparent);
}

.block-fla-theme-frontpage-address .address:after {
  background-size: 100% 100%;
  background-image: linear-gradient(to top, black 0%, transparent 17%, transparent 100%);
  transform: rotate(180deg);
}

.block-fla-theme-frontpage-address .address .content {
  z-index: 100;
  position: relative;
}

/*# sourceMappingURL=fla-frontpage2.css.map */