{"version":3,"sources":["webpack:///./src/components/Banner.vue?6bf3","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./src/assets/triangles.webp","webpack:///./src/components/Banner.vue?f976","webpack:///./src/components/Banner.vue?1c0a","webpack:///src/components/Banner.vue","webpack:///./src/components/Banner.vue?8448","webpack:///./src/components/Banner.vue","webpack:///./src/components/Banner.vue?d00f","webpack:///./node_modules/core-js/modules/es6.string.link.js"],"names":["content","__esModule","default","module","i","locals","exports","add","$export","fails","defined","quot","createHTML","string","tag","attribute","value","S","String","p1","replace","NAME","exec","O","P","F","test","toLowerCase","split","length","render","_vm","this","_h","$createElement","_c","_self","staticClass","class","bannerHeight","hasSlides","isDynamic","_e","_t","_l","key","slide","index","slideActive","fields","image","isLarge","_v","_s","activeSlideIndex","slideType","options","description","on","$event","toggleSlide","attrs","hasContactButton","activateContact","contact_button_text","hasLink","path","link","link_text","style","file","imageUrl","straightEdge","staticRenderFns","injectStyles","context","style0","__inject__","component","escape","push","url"],"mappings":"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","file":"js/chunks/chunk-5b0197d0.js?id=08536241e80d6c8b6acc","sourcesContent":["// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-3!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-4!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=style&index=0&lang=sass&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5e265c87\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n  var S = String(defined(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n  var O = {};\n  O[NAME] = exec(createHTML);\n  $export($export.P + $export.F * fails(function () {\n    var test = ''[NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  }), 'String', O);\n};\n","module.exports = __webpack_public_path__ + \"img/triangles.42251042.webp\";","export * from \"-!../../node_modules/vue-style-loader/index.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-3!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-4!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=style&index=0&lang=sass&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"banner\",class:[(\"is-\" + _vm.bannerHeight), {'has-many-slides': _vm.hasSlides}]},[(!_vm.isDynamic)?_c('div',{staticClass:\"banner-inner is-active\"},[_c('div',{staticClass:\"banner-content is-active\"},[_c('div',{staticClass:\"text-content\"},[_vm._t(\"default\")],2)])]):_vm._e(),(_vm.isLarge)?_c('div',_vm._l((10),function(i){return _c('span',{key:(\"tri-\" + i),staticClass:\"banner-triangle\"})}),0):_vm._e(),(_vm.isDynamic)?_c('div',_vm._l((_vm.content),function(slide,index){return _c('div',{key:(\"slide-\" + index),staticClass:\"banner-inner\",class:[{'is-active': _vm.slideActive(index)}, {'has-image': slide.fields.image}]},[_c('div',{staticClass:\"banner-content\",class:{'is-active': _vm.slideActive(index)}},[(_vm.hasSlides && !_vm.isLarge)?_c('div',[_c('span',{staticClass:\"counter\"},[_vm._v(\"\\n            \"+_vm._s(_vm.activeSlideIndex+1)+\"\\n          \")])]):_vm._e(),_c('div',{staticClass:\"text-content\",class:{'has-image': slide.fields.image}},[(_vm.slideType(index))?_c('div',{staticClass:\"controls\"},[_c('span',[_vm._v(\"\\n              \"+_vm._s(slide.fields.options.description)+\"\\n            \")]),(_vm.notLastSlide)?_c('span',{on:{\"click\":function($event){return _vm.toggleSlide(index+1)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.content[_vm.activeSlideIndex+1].fields.options.description)+\" →\\n            \")]):_vm._e()]):_vm._e(),_c('RichText',{attrs:{\"content\":slide.fields.content}}),(_vm.hasContactButton(slide))?_c('button',{staticClass:\"btn primary desktop-only\",on:{\"click\":_vm.activateContact}},[_vm._v(\"\\n            \"+_vm._s(slide.fields.options.contact_button_text)+\"\\n          \")]):_vm._e(),(_vm.hasContactButton(slide))?_c('a',{staticClass:\"btn primary mobile-only\",attrs:{\"href\":\"#contact\"}},[_vm._v(\"\\n            \"+_vm._s(slide.fields.options.contact_button_text)+\"\\n          \")]):_vm._e(),(_vm.hasLink(slide))?_c('router-link',{staticClass:\"btn primary\",attrs:{\"to\":{path: slide.fields.options.link}}},[_vm._v(\"\\n            \"+_vm._s(slide.fields.options.link_text)+\"\\n          \")]):_vm._e()],1),(slide.fields.image)?_c('div',{staticClass:\"image-triangle\"}):_vm._e(),(slide.fields.image)?_c('div',{staticClass:\"banner-image\",class:(\"slide-\" + index),style:(_vm.activeShape)},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.contactActive)?_c('ContactForm'):_c('LazyImage',{key:(\"img-\" + (slide.fields.image.fields.file.fileName)),attrs:{\"responsive\":\"\",\"alt\":\"Slide\",\"url\":_vm.imageUrl(slide)}})],1)],1):_vm._e()])])}),0):_vm._e(),(_vm.hasSlides)?_c('div',{staticClass:\"pagination\"},_vm._l((_vm.content),function(slide,index){return _c('div',{key:(\"pagination-\" + index),on:{\"click\":function($event){return _vm.toggleSlide(index)}}},[_c('span',{class:{'is-active': _vm.slideActive(index)}})])}),0):_vm._e(),(!_vm.straightEdge)?_c('div',{staticClass:\"section-shape\"}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"banner\"\n    :class=\"[`is-${bannerHeight}`, {'has-many-slides': hasSlides}]\">\n\n    <div v-if=\"!isDynamic\" class=\"banner-inner is-active\">\n      <div class=\"banner-content is-active\">\n        <div class=\"text-content\">\n          <slot></slot>\n        </div>\n      </div>\n    </div>\n\n    <div v-if=\"isLarge\">\n      <span class=\"banner-triangle\" v-for=\"i in 10\" :key=\"`tri-${i}`\"></span>\n    </div>\n\n    <div v-if=\"isDynamic\">\n      <div\n        class=\"banner-inner\"\n        v-for=\"(slide, index) in content\"\n        :class=\"[{'is-active': slideActive(index)}, {'has-image': slide.fields.image}]\"\n        :key=\"`slide-${index}`\">\n\n        <div\n          class=\"banner-content\"\n          :class=\"{'is-active': slideActive(index)}\">\n\n          <div v-if=\"hasSlides && !isLarge\">\n            <span class=\"counter\">\n              {{activeSlideIndex+1}}\n            </span>\n          </div>\n\n          <div class=\"text-content\" :class=\"{'has-image': slide.fields.image}\">\n            <div class=\"controls\" v-if=\"slideType(index)\">\n              <span>\n                {{slide.fields.options.description}}\n              </span>\n\n              <span @click=\"toggleSlide(index+1)\" v-if=\"notLastSlide\">\n                {{content[activeSlideIndex+1].fields.options.description}} &rarr;\n              </span>\n            </div>\n\n            <RichText :content=\"slide.fields.content\"/>\n\n            <button\n              v-if=\"hasContactButton(slide)\"\n              class=\"btn primary desktop-only\"\n              @click=\"activateContact\">\n              {{slide.fields.options.contact_button_text}}\n            </button>\n\n            <a\n              v-if=\"hasContactButton(slide)\"\n              class=\"btn primary mobile-only\"\n              href=\"#contact\">\n              {{slide.fields.options.contact_button_text}}\n            </a>\n\n            <router-link\n              class=\"btn primary\"\n              v-if=\"hasLink(slide)\"\n              :to=\"{path: slide.fields.options.link}\">\n              {{slide.fields.options.link_text}}\n            </router-link>\n          </div>\n\n          <div v-if=\"slide.fields.image\" class=\"image-triangle\"></div>\n\n          <div\n            v-if=\"slide.fields.image\"\n            class=\"banner-image\"\n            :style=\"activeShape\"\n            :class=\"`slide-${index}`\">\n\n            <transition name=\"fade\" mode=\"out-in\">\n              <ContactForm v-if=\"contactActive\"/>\n              <LazyImage\n                v-else\n                responsive\n                :key=\"`img-${slide.fields.image.fields.file.fileName}`\"\n                alt=\"Slide\"\n                :url=\"imageUrl(slide)\"/>\n              </transition>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div v-if=\"hasSlides\" class=\"pagination\">\n      <div\n        v-for=\"(slide, index) in content\"\n        :key=\"`pagination-${index}`\"\n        @click=\"toggleSlide(index)\">\n        <span :class=\"{'is-active': slideActive(index)}\"></span>\n      </div>\n    </div>\n\n    <div class=\"section-shape\" v-if=\"!straightEdge\"></div>\n  </div>\n</template>\n\n<script>\n  import { mapState } from 'vuex'\n\n  const RichText = () => import('@/components/RichText')\n  const LazyImage = () => import('@/components/LazyImage')\n  const ContactForm = () => import('@/components/ContactForm')\n\n  export default {\n    name: 'Banner',\n\n    data() {\n      return {\n        activeSlideIndex: 0,\n        contactActive: false,\n        shapes: [\n          'clip-path: polygon(0 28%, 100% 0, 73% 100%, 14% 88%)',\n          'clip-path: polygon(0 0, 100% 28%, 81% 88%, 13% 100%)',\n          'clip-path: polygon(5% 26%, 99% 1%, 91% 93%, 10% 79%)',\n          'clip-path: polygon(0 28%, 100% 0, 73% 100%, 14% 88%)',\n          'clip-path: polygon(0 0, 100% 28%, 81% 88%, 13% 100%)',\n          'clip-path: polygon(5% 26%, 99% 1%, 91% 93%, 10% 79%)',\n          'clip-path: polygon(0 28%, 100% 0, 73% 100%, 14% 88%)',\n          'clip-path: polygon(0 0, 100% 28%, 81% 88%, 13% 100%)',\n          'clip-path: polygon(5% 26%, 99% 1%, 91% 93%, 10% 79%)'\n        ],\n        activeShape: ''\n      }\n    },\n\n    props: [\n      'content',\n      'pageSlug',\n      'index',\n      'noSlant',\n      'options'\n    ],\n\n    components: {\n      RichText,\n      LazyImage,\n      ContactForm\n    },\n\n    computed: {\n      ...mapState(['data']),\n\n      isDynamic() {\n        return !!this.content\n      },\n\n      slideType() {\n        return (index) => {\n          return this.content[index].fields.options ?\n            this.content[index].fields.options.description :\n            false\n        }\n      },\n\n      straightEdge() {\n        if(this.noSlant) {\n          return true\n        } else if(this.options) {\n          return this.options.noSlant\n        } else {\n          return false\n        }\n      },\n\n      notLastSlide() {\n        return this.content.length !== this.activeSlideIndex+1\n      },\n\n      bannerHeight() {\n        return this.options ? this.options.height : 'small'\n      },\n\n      isLarge() {\n        return this.bannerHeight === 'large'\n      },\n\n      hasSlides() {\n        return this.content ? this.content.length > 1 : false\n      },\n\n      slideActive() {\n        return (index) => {\n          return this.activeSlideIndex === index\n        }\n      },\n\n      isLandingPage() {\n        return !!this.$route.params.service\n      },\n\n      hasContactButton() {\n        return (slide) => {\n          return slide.fields.options ? slide.fields.options.has_contact_button : false\n        }\n      },\n\n      hasLink() {\n        return (slide) => {\n          return slide.fields.options ? slide.fields.options.link : false\n        }\n      },\n\n      imageUrl() {\n        return (slide) => {\n          if(this.isLandingPage && this.index === 0) {\n            let url = this.data['asset-' + this.pageSlug]\n            return url ? url.fields.file.url : slide.fields.image.fields.file.url\n          } else {\n            return slide.fields.image.fields.file.url\n          }\n        }\n      }\n    },\n\n    methods: {\n      toggleSlide(index) {\n        this.activeSlideIndex = index\n        this.activeShape = this.shapes[index]\n      },\n\n      activateContact() {\n        this.contactActive = true\n      }\n    },\n\n    mounted() {\n      this.activeSlideIndex = 0\n      this.activeShape = this.shapes[0]\n    }\n  }\n</script>\n\n<style lang=\"sass\">\n  @import '../stylesheets/base/variables'\n  @import '../stylesheets/base/theme'\n  @import '../stylesheets/helpers/mixins'\n  @import '../stylesheets/helpers/extends'\n\n  .banner\n    background: rgba(50, 50, 50, 0.95)\n    color: #fff\n    position: relative\n    width: 100%\n    min-height: 450px\n    padding: $gap-small\n\n    @include media($media-medium)\n      padding: $gap-medium\n\n      &:before\n        content: ''\n        background-image: url('~@/assets/triangles.webp')\n        background-size: cover\n        width: 100%\n        height: 100%\n        left: 0\n        top: 0\n        position: absolute\n        z-index: -1\n\n    .contact-form\n      clip-path: none\n      position absolute\n      top: 0\n      left: 0\n      width: 100%\n      height: 100%\n      padding: 220px 26% 14% 16%\n\n      &.has-submitted\n        margin-top: 0\n\n    p\n      color: #cfcfcf\n\n    a\n      color: #fff\n      transition: color .3s ease-in-out\n\n      &:hover\n        @include themify($themes)\n          color: themed('color-primary')\n\n    h1, h2, h3,\n    .rich-text h1,\n    .rich-text h2,\n    .rich-text h3\n      color: #fff\n      margin: 5px 0\n\n    &.is-large\n      h1, h2, h3,\n      .rich-text h1,\n      .rich-text h2,\n      .rich-text h3\n        color: #a7a7a7\n\n    .btn\n      font-size: 14px\n\n    h1\n      font-size: 32px\n\n      @include media($media-medium)\n        font-size: 42px\n\n    h3\n      font-size: 18px\n\n    p\n      font-weight: bold\n\n    b\n      color: #fff\n\n    .rich-text\n      a\n        font-family: $font-body\n\n      p\n        font-size: 16px\n\n    &.is-small\n      min-height: 600px\n\n      &.has-many-slides\n        @include media($media-lt-medium)\n          min-height: 900px\n\n    &.is-large\n      height: 100vh\n      min-height: 920px\n\n  .image-triangle\n    display: none\n\n    @include media($media-medium)\n      display: block\n      position: absolute\n      top: 50%\n      width: 50%\n      background: $triangle-medium\n      z-index: -10\n      clip-path: polygon(31% 0, 0% 100%, 100% 75%)\n      transform: translateY(-50%)\n      right: 0\n      height: 65%\n\n  .banner-triangle\n    display: none\n\n    @include media($media-medium)\n      display: block\n      position: absolute\n      width: 15%\n      height: 150px\n      max-width: 200px\n      background: $triangle-medium\n      clip-path: polygon(50% 0%, 0% 100%, 100% 100%)\n      pointer-events: none\n\n      .is-large &\n        height: 200px\n\n    &:nth-child(1)\n      transform: rotate(30deg)\n      top: -50px\n      left: -35px\n\n    &:nth-child(2)\n      transform: rotate(-45deg)\n      top: 150px\n      left: -150px\n      z-index: 1\n\n      @include themify($themes)\n        background: themed('color-primary')\n\n    &:nth-child(3)\n      transform: rotate(45deg)\n      top: 270px\n      left: -101px\n\n    &:nth-child(4)\n      transform: rotate(348deg)\n      top: 360px\n      left: -130px\n      background: $triangle-dark\n\n    &:nth-child(5)\n      transform: rotate(332deg)\n      top: 540px\n      left: -160px\n\n    &:nth-child(6)\n      transform: rotate(43deg)\n      top: 600px\n      left: -110px\n\n      @include themify($themes)\n          background: themed('color-primary')\n\n    &:nth-child(7)\n      transform: rotate(75deg)\n      top: 800px\n      left: -110px\n      z-index: 5\n\n    &:nth-child(8)\n      transform: rotate(80deg)\n      top: 840px\n      left: -10px\n      z-index: 4\n      background: $triangle-dark\n\n    &:nth-child(9)\n      transform: rotate(100deg)\n      top: 915px\n      left: -40px\n      z-index: 5\n\n      @include themify($themes)\n        background: themed('color-primary')\n\n    &:nth-child(10)\n      transform: rotate(100deg)\n\n  .banner-image\n    width: 90%\n    height: 65vw\n    max-height: 460px\n    background: rgba(0, 0, 0, 0.5)\n    transition: clip-path .5s ease-in-out\n    margin: auto\n    background: $triangle-dark\n\n    @include media($media-medium)\n      height: 400px\n      width: 100%\n\n      .is-large &\n        height: 800px\n        max-height: 800px\n\n    img\n      object-fit: cover\n      width: 100%\n      height: 100%\n\n  .banner-inner\n    position: absolute\n    left: 50%\n    top: 50%\n    transform: translate(-50%, -50%)\n    width: 90%\n    pointer-events: none\n    user-select: none\n\n    @include media($media-medium)\n      width: 750px\n\n    &.has-image\n      width: calc(100% - #{$gap-x-small})\n\n      @include media($media-medium)\n        width: 80%\n\n        .is-small &\n          width: 70%\n\n    @include media($media-medium)\n      transform: translateX(-50%)\n      top: 0\n      height: 100%\n\n    &.is-active\n      pointer-events: all\n      user-select: auto\n      z-index: 5\n\n  .banner-content\n    transition: opacity .5s ease-in-out\n    opacity: 0\n    pointer-events: none\n    user-select: none\n\n    &.is-active\n      opacity: 1\n      pointer-events: all\n      user-select: auto\n\n    @include media($media-medium)\n      .text-content, .banner-image\n        position: absolute\n        top: 50%\n\n      .text-content\n        left: 0\n        transform: translateY(-50%)\n        width: 100%\n\n        &.has-image\n          width: 48%\n\n      .banner-image\n        right: $gap-small\n        width: 50%\n        transform: translateY(-45%)\n\n    .btn\n      margin-top: $gap-small\n\n  .text-content\n    text-align: center\n\n    @include media($media-medium)\n      &.has-image\n        text-align: left\n\n    .last-word\n      color: #fff\n\n  .pagination\n    background: #0c0c0c\n    clip-path: polygon(15% 0, 85% 0, 100% 90%, 0% 100%)\n    padding: 5px 30px\n    position: absolute\n    bottom: 10px\n    z-index: 10\n    left: 50%\n    transform: translateX(-50%)\n\n    div\n      display: inline-block\n      margin: 0 6px\n      cursor: pointer\n\n    span\n      background: $triangle-medium\n      width: 13px\n      height: 13px\n      display: block\n      clip-path: polygon(50% 0%, 0% 100%, 100% 100%)\n      transition: all .2s ease-in-out\n\n      @include media($media-medium)\n        width: 18px\n        height: 18px\n\n      &.is-active\n        clip-path: polygon(0 0, 0 100%, 100% 50%)\n\n        @include themify($themes)\n          background: themed('color-primary')\n\n  .counter\n    display: none\n\n    @include media($media-medium)\n      display: block\n      position: absolute\n      top: 50%\n      transform: translateY(-50%)\n      left: -120px\n      font-size: 172px\n      font-family: $font-bold\n      color: #272727\n\n  .controls\n    display: none\n\n    @include media($media-medium)\n      position: absolute\n      bottom: -$gap-x-large\n      left: 0\n      display: flex\n      justify-content: space-between\n      font-size: 12px\n      width: calc(100% - #{$gap-medium})\n\n      span\n        transition: opacity .2s ease-in-out\n\n        &:nth-child(2)\n          opacity: 0.4\n          cursor: pointer\n\n          &:hover\n            opacity: 1\n</style>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Banner.vue?vue&type=template&id=3e92db85&\"\nimport script from \"./Banner.vue?vue&type=script&lang=js&\"\nexport * from \"./Banner.vue?vue&type=script&lang=js&\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./Banner.vue?vue&type=style&index=0&lang=sass&\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  \"49ac6d8a\"\n  \n)\n\nexport default component.exports","var escape = require(\"../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".banner{background:rgba(50,50,50,.95);color:#fff;position:relative;width:100%;min-height:450px;padding:15px}@media screen and (min-width:1100px){.banner{padding:30px}.banner:before{content:\\\"\\\";background-image:url(\" + escape(require(\"@/assets/triangles.webp\")) + \");background-size:cover;width:100%;height:100%;left:0;top:0;position:absolute;z-index:-1}}.banner .contact-form{-webkit-clip-path:none;clip-path:none;top:0;left:0;width:100%;height:100%;padding:220px 26% 14% 16%}.banner .contact-form.has-submitted{margin-top:0}.banner p{color:#cfcfcf}.banner a{color:#fff;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.theme-default .banner a:hover{color:#ff9000}.theme-new-website .banner a:hover{color:#3ed112}.banner .rich-text h1,.banner .rich-text h2,.banner .rich-text h3,.banner h1,.banner h2,.banner h3{color:#fff;margin:5px 0}.banner.is-large .rich-text h1,.banner.is-large .rich-text h2,.banner.is-large .rich-text h3,.banner.is-large h1,.banner.is-large h2,.banner.is-large h3{color:#a7a7a7}.banner .btn{font-size:14px}.banner h1{font-size:32px}@media screen and (min-width:1100px){.banner h1{font-size:42px}}.banner h3{font-size:18px}.banner p{font-weight:700}.banner b{color:#fff}.banner .rich-text a{font-family:nexa-light}.banner .rich-text p{font-size:16px}.banner.is-small{min-height:600px}@media screen and (max-width:1101px){.banner.is-small.has-many-slides{min-height:900px}}.banner.is-large{height:100vh;min-height:920px}.image-triangle{display:none}@media screen and (min-width:1100px){.image-triangle{display:block;position:absolute;top:50%;width:50%;background:#6f6f6f;z-index:-10;-webkit-clip-path:polygon(31% 0,0 100%,100% 75%);clip-path:polygon(31% 0,0 100%,100% 75%);-webkit-transform:translateY(-50%);transform:translateY(-50%);right:0;height:65%}}.banner-triangle{display:none}@media screen and (min-width:1100px){.banner-triangle{display:block;position:absolute;width:15%;height:150px;max-width:200px;background:#6f6f6f;-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);pointer-events:none}.is-large .banner-triangle{height:200px}}.banner-triangle:first-child{-webkit-transform:rotate(30deg);transform:rotate(30deg);top:-50px;left:-35px}.banner-triangle:nth-child(2){-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:150px;left:-150px;z-index:1}.theme-default .banner-triangle:nth-child(2){background:#ff9000}.theme-new-website .banner-triangle:nth-child(2){background:#3ed112}.banner-triangle:nth-child(3){-webkit-transform:rotate(45deg);transform:rotate(45deg);top:270px;left:-101px}.banner-triangle:nth-child(4){-webkit-transform:rotate(348deg);transform:rotate(348deg);top:360px;left:-130px;background:#242424}.banner-triangle:nth-child(5){-webkit-transform:rotate(332deg);transform:rotate(332deg);top:540px;left:-160px}.banner-triangle:nth-child(6){-webkit-transform:rotate(43deg);transform:rotate(43deg);top:600px;left:-110px}.theme-default .banner-triangle:nth-child(6){background:#ff9000}.theme-new-website .banner-triangle:nth-child(6){background:#3ed112}.banner-triangle:nth-child(7){-webkit-transform:rotate(75deg);transform:rotate(75deg);top:800px;left:-110px;z-index:5}.banner-triangle:nth-child(8){-webkit-transform:rotate(80deg);transform:rotate(80deg);top:840px;left:-10px;z-index:4;background:#242424}.banner-triangle:nth-child(9){-webkit-transform:rotate(100deg);transform:rotate(100deg);top:915px;left:-40px;z-index:5}.theme-default .banner-triangle:nth-child(9){background:#ff9000}.theme-new-website .banner-triangle:nth-child(9){background:#3ed112}.banner-triangle:nth-child(10){-webkit-transform:rotate(100deg);transform:rotate(100deg)}.banner-image{width:90%;height:65vw;max-height:460px;background:rgba(0,0,0,.5);-webkit-transition:-webkit-clip-path .5s ease-in-out;transition:-webkit-clip-path .5s ease-in-out;transition:clip-path .5s ease-in-out;transition:clip-path .5s ease-in-out,-webkit-clip-path .5s ease-in-out;margin:auto;background:#242424}@media screen and (min-width:1100px){.banner-image{height:400px;width:100%}.is-large .banner-image{height:800px;max-height:800px}}.banner-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.banner-inner{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:90%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (min-width:1100px){.banner-inner{width:750px}}.banner-inner.has-image{width:calc(100% - 10px)}@media screen and (min-width:1100px){.banner-inner.has-image{width:80%}.is-small .banner-inner.has-image{width:70%}}@media screen and (min-width:1100px){.banner-inner{-webkit-transform:translateX(-50%);transform:translateX(-50%);top:0;height:100%}}.banner-inner.is-active{pointer-events:all;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto;z-index:5}.banner-content{-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;opacity:0;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.banner-content.is-active{opacity:1;pointer-events:all;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}@media screen and (min-width:1100px){.banner-content .banner-image,.banner-content .text-content{position:absolute;top:50%}.banner-content .text-content{left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:100%}.banner-content .text-content.has-image{width:48%}.banner-content .banner-image{right:15px;width:50%;-webkit-transform:translateY(-45%);transform:translateY(-45%)}}.banner-content .btn{margin-top:15px}.text-content{text-align:center}@media screen and (min-width:1100px){.text-content.has-image{text-align:left}}.text-content .last-word{color:#fff}.pagination{background:#0c0c0c;-webkit-clip-path:polygon(15% 0,85% 0,100% 90%,0 100%);clip-path:polygon(15% 0,85% 0,100% 90%,0 100%);padding:5px 30px;position:absolute;bottom:10px;z-index:10;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pagination div{display:inline-block;margin:0 6px;cursor:pointer}.pagination span{background:#6f6f6f;width:13px;height:13px;display:block;-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}@media screen and (min-width:1100px){.pagination span{width:18px;height:18px}}.pagination span.is-active{-webkit-clip-path:polygon(0 0,0 100%,100% 50%);clip-path:polygon(0 0,0 100%,100% 50%)}.theme-default .pagination span.is-active{background:#ff9000}.theme-new-website .pagination span.is-active{background:#3ed112}.counter{display:none}@media screen and (min-width:1100px){.counter{display:block;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:-120px;font-size:172px;font-family:nexa-bold;color:#272727}}.controls{display:none}@media screen and (min-width:1100px){.controls{position:absolute;bottom:-100px;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:12px;width:calc(100% - 30px)}.controls span{-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.controls span:nth-child(2){opacity:.4;cursor:pointer}.controls span:nth-child(2):hover{opacity:1}}\", \"\"]);\n\n// exports\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n  return function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  };\n});\n"],"sourceRoot":""}