:root {
  --grey: #f6f6f6;
  --grey2: #e6e6e6;
  --grey3: #f0f0f0;
  --grey4: #9c9c9c;
  --grey5: #6e6e6e;
  --blue: #0070cc;
  --blue2: #0061b0;
  --blue3: #91c2ea;
  --blue4: #e8f2fa;
  --red: #ed1c24;
  --red2: #ce2034;
  --red3: #f4898d;
  --red4: #ffcfd1;
  --red5: #feeff0;
  --dark: #2d2d2d;
  --dark2: #6e6e6e;
  --dark3: #9c9c9c;
}

.hdr {
  border-bottom: 1px solid var(--grey3);
  position: relative;
}
.hdr__wrap{
  padding: 0 45px;
  height: 96px;
  align-items: center;
  position: relative;
  position: relative;
  z-index: 120;
}
.hdr__logo {
  display: block;
  margin-right: auto;
  width: 115px;
}
.hdr__burger {
  display: none;
  width: 24px;
  height: 24px;
  border: none;
  flex-shrink: 0;
  flex-grow: 0;
  margin-right: 2rem;
  background: none;
  cursor: pointer;
}
.hdr__burger img {
  display: block;
  margin: 0 auto;
}
.hdr__logoimg {
  display: block;
  width: 100%;
  height: auto;
}
.hdr__logo--white{
  display: none;
}
.hdr__button {
  margin-left: auto;
  white-space: nowrap;
  padding: 0 25px;
}
.hdrmenu {
  position: absolute;
  z-index: 10;
  top: 0;
  height: 100%;
  transform: translateX(-50%);
  left: 50%;
}
.hdrmenu>ul{
  align-items: stretch;
  height: 100%;
}
.hdrmenu li {
  padding: 0 1rem;
  display: flex;
  flex-flow: column nowrap;
}
.hdrmenu a {
  color: #000;
  font-size: 1.6rem;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 2rem;
  position: relative;
}
a.hdrmenu--expanded:hover::before,
a.hdrmenu--expanded.active::before{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  border-radius: 3px;
  height: 3px;
  background: #fff;
}
.hdr__white .hdrmenu a:hover::before,
.hdr.opened .hdrmenu a:hover::before,
.hdr__white .hdrmenu a.active::before,
.hdr.opened .hdrmenu a.active::before{
  background: var(--dark);
}
.hdrmenu--expanded::after{
  margin-left: 6px;
  content:"";
  display: block;
  width: 12px;
  height: 9px;
  position: relative;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 0L11.1962 9L0.803848 9L6 0Z' fill='%236E6E6E'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  transform: rotate(180deg);
  transition: transform 0.25s ease;
}
.hdrmenu--expanded:hover::after{
  filter:brightness(0);
}
.hdrmenu--expanded.active::after{
  transform: rotate(0);
}
.hdrmenu__current {
  font-weight: 700;
}
.hdrmenu a:hover {
  color: #000;
}
.hdr__blue,
.hdr__dark{
  background: var(--blue);
  border-bottom: none;
}
.hdr__dark{
  background: var(--dark);
}
.hdr:not(.hdr__white):not(.opened) .hdrmenu a{
  color: #fff;
}
.hdr:not(.hdr__white):not(.opened) .hdrmenu a:hover{
  color: #f2f2f2;
}
.hdr:not(.hdr__white):not(.opened) .hdr__button{
  background: #fff;
  color: var(--blue);
}
.hdr:not(.hdr__white):not(.opened) .hdr__button:hover{
  background: var(--blue4);
}
.hdr__grey {
  background: #f1f1f1;
}

.hdr:not(.opened):not(.hdr__white) .hdr__logo--black{
  display: none;
}
.hdr:not(.opened):not(.hdr__white) .hdr__logo--white{
  display: block;
}
.hdr:not(.opened):not(.hdr__white) .hdrmenu--expanded::after{
  filter: brightness(0) invert(1);
}


.hdr.opened .hdr__wrap{
  background: #fff;
}

body .hdr.opened .hdr__wrap{
  background: #fff;
}


.dropmenu{
  display: block;
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  background: #fff;
  z-index: 100;
  opacity: 1;
  height: 0;
  overflow: hidden;
  transition: height 0.2s ease;
}
.dropmenu__back{
  position: fixed;
  pointer-events: none;
  z-index: 98;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:#000;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.dropmenu.active{
  height: 360px;
  opacity: 1;
}
.dropmenu__back.active{
  opacity: 0.4;
  pointer-events: auto;
}
.dropmenu__panel{
  box-shadow: inset 0 0 0 1px var(--grey3);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 360px;
  background: #fff;
  padding: 48px 0 0px;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;
}
.dropmenu__panel.active{
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0px);
}

.dropmenu1__grid{
  display: grid;
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
}
.dropmenu--left{
  padding-right: 30px;
  width: 245px;
  flex-shrink: 0;
}
.dropmenu__box{
  position: relative;
  min-height: 240px;
  padding-top: 5rem;
}
.dropmenu__iconitem{
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: flex-start;
  padding: 10px 15px;
  border-radius: 1rem;
  color:#000 !important;
}
.dropmenu__iconitem img{
  display: block;
  max-width: 20px;
  max-height: 20px;
  object-fit: contain;
}
.dropmenu__iconitem span{
  display: block;
  padding-left: 10px;
}
.dropmenu__iconitem:hover{
  text-decoration: none;
  background: var(--blue4);
}
.dropmenu__box .capstext{
  color:var(--grey4);
  position: absolute;
  top: 0;
  left: 0;
  font-size: 12px;
  line-height: 18px;
}
.dropmenu1__center{
  flex-grow: 1;
  border-left: 1px solid var(--grey2);
  border-right: 1px solid var(--grey2);
  display: grid;
  grid-template-columns: max-content max-content;
  padding: 0 20px 15px;
  grid-gap: 0 30px;
}
.dropmenu1__center .dropmenu__iconitem{
  min-width: 250px;
}
.dropmenu1__right{
  position: relative;
  padding-top: 4rem;
  margin-left: 75px;
  width: 240px;
  flex-shrink: 0;
}
.dropmenu__redbutton{
  height: 60px;
  padding: 0 30px;
  width: 100%;
  max-width: 240px;
  display: inline-flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  background: var(--red5);
  border-radius: 1rem;
  white-space: nowrap;
  color:#000;
  transition: background 0.3s ease;
}
.dropmenu__redbutton img{
  flex-shrink: 0;
  margin-right: 5px;
}
.dropmenu__redbutton span{
  display: block;
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}
.dropmenu__redbutton span::after{
  content:"";
  display: block;
  margin-left: 9px;
  width: 14px;
  height: 13px;
  background: url(../img/menu/icon-arrow.svg) no-repeat;
  background-size: contain;
  transition: transform 0.3s ease;
}
.dropmenu__redbutton:hover{
  text-decoration: none;
  color:#fff;
  background: var(--red);
}
.dropmenu__redbutton:hover img{
  filter: brightness(0) invert(1);
}
.dropmenu__redbutton:hover span::after{
  filter: brightness(0) invert(1);
  transform: translateX(3px);
}


.dropmenu2__grid{
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  justify-content: space-between;
}
.dropmenu2__col{
  border-right:1px solid var(--grey2);
  width: 25%;
  flex-grow: 1;
  flex-shrink: 1;
  margin-left: 20px;
  padding-right: 34px;
  min-height: 240px;
}
.dropmenu2__col:first-child{
  margin-left: 0;
}
.dropmenu2__col.dropmenu1__right{
  text-align: right;
  border:none;
  padding-right: 0;
}
.panelmorelinkwrap{
  text-align: center;
  padding-top: 25px;
}
.panellink{
  color:#000;
  display: inline-block;
}
.panellink:hover{
  color:#000;
}


.hdrfloat {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background-color: #fff;
  transition: transform 0.2s ease;
  transform: translateY(-100%);
  pointer-events: none;
}
.hdr-active .hdrfloat {
  transform: translateY(0);
  pointer-events: auto;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
@media (min-width: 992px) {
  .hdrfloat .cmtyhero__wrap {
    height: 75px;
  }
  .hdrfloat .hdr__button {
    height: 45px;
  }
}



.cmtynavblock {
  background: #fff;
  position: sticky;
  transition: top 0.2s ease, transform 0.2s ease;
  left: 0;
  z-index: 100;
  border-top: 1px solid var(--grey3);
  border-bottom: 1px solid var(--grey3);
  height: 8rem;
  top: 0;
}
.hdr-active .cmtynavblock {
  top: 75px;
}
.cmtynavblock .container {
  height: 100%;
}
.cmtynavblock__list {
  height: 100%;
  align-items: stretch;
  justify-content: center;
}
.cmtynavblock__list li {
  padding: 0 55px;
  height: 100%;
}
.cmtynavblock__list a {
  height: 100%;
  display: flex;
  white-space: nowrap;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 10px;
  text-decoration: none;
  color: var(--dark);
  position: relative;
}
.cmtynavblock__list a:not(.cmtynavblock__active):hover {
  color: var(--blue2);
}
.cmtynavblock__active::after {
  position: absolute;
  content: "";
  display: block;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--dark);
  border-radius: 3px;
}




/* === === === === === === === === INNERPAGE BLOCKS === === === === === === === === */
.innerhero {
  background: var(--blue);
  color: #fff;
  position: relative;
  padding: 8rem 0 11rem;
  overflow: hidden;
}
.innerhero__main {
  min-height: 400px;
  max-width: 830px;
  width: 65%;
  display: flex;
  flex-flow: column nowrap;
  align-items: flex-start;
  justify-content: center;
}
.innerhero__main {
  min-height: 300px;
}
@media (min-width:1300px){
  .innerhero__mega{
      font-size: 10rem;
      line-height: 1.18;
      padding-top: 2rem;
  }
}
.innerhero__main--long {
  max-width: none;
  width: 100%;
}
.innerhero__pre {
  text-transform: uppercase;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.with-apache{
  font-weight: normal;
}
.innerhero__descr {
  font-weight: 400;
  opacity: 0.8;
}
.innerhero__button {
  color: #fff;
  border: 2px solid #fff;
  background: #fff;
  color: var(--blue);
  font-size: 2rem;
  line-height: 1;
  padding: 0 4rem;
  margin-top: 5rem;
  height: 6rem;
}
.innerhero__button:hover {
  background: var(--grey);
  color: var(--blue);
}
.innerhero__pic {
  position: absolute;
  display: block;
}

.cardsimple {
  border: 1px solid var(--grey2);
  background: #fff;
  box-sizing: border-box;
  border-radius: 10px;
  transition: box-shadow 0.4s ease;
  position: relative;
}
.cardsimple:hover {
  box-shadow: 8px 8px 10px rgba(0, 0, 0, 0.1);
}

.usecasecard {
  min-height: 29rem;
  padding: 3rem 3rem 10rem;
}
.cardsimple__icon {
  width: 48px;
  height: 48px;
  margin-bottom: 2rem;
}
.cardsimple__icon img {
  width: 100%;
  height: 100%;
  display: block;
}
.cardsimple__title {
  font-size: 2rem;
  line-height: 2.6rem;
  font-weight: bold;
  padding-bottom: 1.2rem;
}
.cardsimple__text:not(.cardsimple__text--long) {
  max-width: 280px;
}
.cardsimple__bottom {
  position: absolute;
  bottom: 3rem;
  left: 3rem;
  z-index: 10;
}
.cardsimple__button,
.blockheader__button {
  width: 125px;
  height: 45px;
}

.blockcapslead {
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: nowrap;
  padding-bottom: 6rem;
}
.blockheader {
  flex-flow: column nowrap;
  align-items: stretch;
  position: relative;
  padding-top: 3rem;
}
.blockheader:not(.blockheader--spl)::before {
  content: "";
  display: block;
  width: 4rem;
  height: 3px;
  background: #000;
  position: absolute;
  top: 0;
  left: 0;
}
.blockheader--spl {
  padding-top: 0;
}
.blockheader__left {
  width: 45%;
  padding-right: 4rem;
  flex-shrink: 0;
}
.blockheader__left--full {
  width: 100%;
}
.blockheader__right {
  display: block;
  padding-top: 2rem;
  max-width: 850px;
}
.blockheader__right p:not(:last-child) {
  margin-bottom: 1rem;
}
.blockheader__button {
  margin-top: 3rem;
}
.blockheader--hor {
  flex-flow: column nowrap;
}
.blockheader--hor .blockheader__right {
  margin-left: 0;
  padding-top: 2rem;
}

.dashlist li {
  margin-bottom: 10px;
  position: relative;
  padding-left: 21px;
}
.dashlist li::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 1.2rem;
  height: 1px;
  width: 15px;
  background: #000;
}
.videoscr {
  position: relative;
  display: block;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  transition: box-shadow 0.3s ease;
}
.videoscr img,
.videoscr a,
.videoscr iframe {
  display: block;
  border: none;
  width: 100%;
  max-width: 350px;
  height: auto;
  transform: translate3d(0, 0, 0);
  transition: transform 0.3s ease;
}
.videoscr:hover img {
  transform: scale(1.01);
}
.videoscr:hover {
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.05);
}
.videoscr::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  opacity: 1;
  background-image: url(../img/icon-video.svg);
  background-repeat: no-repeat;
  background-size: 4rem;
  background-position: 50% 50%;
  transition: background 0.3s ease;
}
.videoscr__descr {
  padding-top: 1.5rem;
  color: var(--grey4);
  max-width: 350px;
}

/* === VIDEO with TITLE === */
.comvideo {
  max-width: 524px;
  width: 100%;
  overflow: hidden;
  display: block;
  position: relative;
}
.comvideo__box {
  display: block;
  position: relative;
  width: 100%;
  height: 0;
  box-sizing: border-box;
  padding-bottom: 62%;
  overflow: hidden;
  background: var(--dark3);
}
.comvideo__screen,
.comvideo__box iframe {
  border: none;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
}
.comvideo__screen[data-youtube]::after {
  pointer-events: none;
  content: "";
  display: block;
  position: absolute;
  z-index: 20;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  background: url(../img/icon-video.svg) center center no-repeat;
  background-size: 40px;
  transition: background 0.2s ease;
}
.comvideo__screen:hover[data-youtube]::after {
  background-color: rgba(0, 0, 0, 0.1);
}
.comvideo__screen img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
}
.comvideo__txt {
  position: absolute;
  z-index: 5;
  font-size: 2.4rem;
  line-height: 1.6;
  top: 3.5rem;
  left: 3.5rem;
  max-width: 75%;
  color: #fff;
}
.comvideo__txt--black {
  color: #000;
}
.comvideo__txt--small{
  font-size: 1.9rem;
  line-height: 1.5;
  max-width: 80%;
  top: 2rem;
  left: 2rem;
}
.comvideo__txt--medium {
  font-size: 2.2rem;
  line-height: 1.5;
  max-width: 80%;
  top: 2rem;
  left: 2rem;
}
.comvideo__sub {
  position: absolute;
  left: 3rem;
  bottom: 3rem;
  text-transform: uppercase;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 2px;
  color: #fff;
  z-index: 10;
}
.comvideo__txt--black + .comvideo__sub {
  color: #000;
}
.comvideo__descr p {
  margin-bottom: 0.5rem;
}
.comvideo__gray {
  font-style: italic;
  color: var(--grey5);
}
/* === END VIDEO with TITLE === */
.picwrap {
  background: var(--grey);
  border-radius: 1rem;
  padding: 6rem 0 6rem;
  max-width: 100%;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
}
.picwrap img {
  display: block;
  margin: auto;
}

@media (max-width: 1199px) {
  .innerhero__main {
    width: auto;
    min-height: auto;
  }
}

@media (max-width: 992px) {
  .innerhero__main {
    width: auto;
    min-height: auto;
  }
}

@media (max-width: 767px) {
  .innerhero__main {
    max-width: none;
    width: auto;
    min-height: auto;
  }
  .innerhero__main br {
    display: none;
  }
  .innerhero__pre {
    padding-bottom: 2rem;
  }
  .innerhero__main .h1 {
    font-size: 4.4rem;
    line-height: 1.15;
  }
  .innerhero__button {
    margin-top: 3rem;
    height: 5rem;
  }
  .innerhero__pic {
    display: none;
  }
  .blockcapslead {
    padding-bottom: 3rem;
  }
  .blockheader {
    flex-flow: column nowrap;
    align-items: stretch;
  }
  .blockheader__left {
    width: auto;
    font-size: 2.6rem;
    line-height: 3.6rem;
    padding-right: 0;
  }
  .blockheader__left br {
    display: none;
  }
  .blockheader--hor .blockheader__right {
    padding-top: 0;
  }
  .blockheader__right {
    padding-top: 1.5rem;
  }
  .cardsimple {
    padding: 3rem 2rem;
    min-height: auto;
  }
  .cardsimple__bottom {
    position: relative;
    bottom: auto;
    left: auto;
    padding-top: 3rem;
  }
  .cardsimple__icon {
    width: 32px;
    height: 32px;
  }
  .dashlist li {
    margin-bottom: 5px;
  }
}
/* === === === === === === === === END INNERPAGE BLOCKS === === === === === === === === */
