*,
:after,
:before {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  font-family: sans-serif;
  line-height: 1.15;
}

body {
  background-color: #fff;
  color: #1d1e27;
  font-family: AvenirBook, Arial, Helvetica, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  text-align: left;
}

p {
  margin-bottom: 1rem;
  margin-top: 0;
}

p:last-child {
  margin-bottom: 0;
}

.page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

@media (min-width: 40.063em) {
  .header__bar-wrapper,
  .header__content-wrapper,
  .breadcrumb__wrapper,
  .page__footer-main {
    margin-left: auto;
    margin-right: auto;
    max-width: 75rem;
    width: 100%;
  }
}

.header {
  color: #fff;
  height: 24rem;
  transition: height 0.3s;
}

.header .fixed-element {
  transition: all 0.3s;
}

.header__bar {
  box-shadow: 0 0.1875rem 0.3125rem rgb(0 0 0 / 10%);
  background: #fff;
  color: #1d1e27;
  display: flex;
  width: 100%;
  position: fixed;
  top: 0;
  z-index: 100;
}

.header__bar-wrapper {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: space-between;
}

.header__content {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  position: fixed;
  top: 0;
  width: 100vw;
  background-color: #fff;
  min-height: 33.125rem;

  /* theme search */
  min-height: 23.75rem;
  position: relative;
  top: auto;
  width: 100%;
}

.header__background {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 23.75rem;
  /*min-height: 33.125rem;*/
  position: absolute;
  width: 100%;
}

.header__background-overlay {
  background: #3c3732;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: flex-end;
  padding-top: 4.0625rem;
  position: absolute;
  width: 100%;
}

.header__content-wrapper {
  display: flex;
  flex-flow: column;
  height: 100%;
  justify-content: center;
  padding: 0 1.25rem 1.25rem;
  position: relative;
  /*padding-top: 0.625rem;*/
}

.header__title {
  margin-bottom: 0.9375rem;
}

.header__title h1 {
  display: inline;
  font-family: AvenirBlack, Arial, Helvetica, sans-serif;
  font-size: 1.875rem;
  line-height: 2.8125rem;

  /* theme2 */
  background-color: #fff;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  box-shadow:
    0.4375rem 0 0 #fff,
    -0.4375rem 0 0 #fff;
  color: #1d1e27;
  margin-left: 0.3125rem;
}

.header__description {
  text-align: left;
  font-size: 1.125rem;
  line-height: 1.375rem;
}

.breadcrumb {
  color: #000;
  font-size: 0.875rem;
  padding: 0.9375rem 1.25rem;
  width: 100%;
  background-color: #e1e1e1;
}

@media (min-width: 40.063em) {
  .header {
    height: 28rem;
  }

  .header__description {
    font-size: 1.5rem;
    line-height: 2.125rem;
  }

  /* theme search */
  .header__content {
    height: 28.125rem;
  }
}

@media (min-width: 64.0625em) {
  .header__bar {
    min-height: 6.25rem;
    padding-top: 0.5rem;
  }

  .header__background-overlay {
    padding-top: 6.25rem;
  }

  .header__content-wrapper {
    padding: 0;
  }

  .header__title {
    margin-bottom: 1.25rem;
  }

  .header__title h1 {
    font-size: 3.75rem;
    line-height: 5rem;
  }

  .breadcrumb {
    font-size: 1rem;
    padding: 1.25rem 0;
  }
}

@media (max-width: 64em) {
  .header__bar-wrapper {
    padding: 0.625rem 1.25rem;
  }
}

.main {
  position: relative;
  flex-grow: 1;
  overflow: hidden;
  /*padding-bottom: 21.125rem;*/
  background-color: #fff;
}

.block-wrapper__content {
  /*padding: 5rem 0;*/
  position: relative;
  z-index: 1;
}

@media (min-width: 40.063em) {
  .main {
    /*padding-bottom: 17.5rem;*/
  }

  .block-wrapper__content {
    /*padding: 5.25rem 0;*/
  }
}

@media (min-width: 64.0625em) {
  .block-wrapper__content {
    /*padding: 8.4375rem 0;*/
  }
}

.footer {
  background-color: #3c3732;
  position: relative;
}

.page__footer-main {
  color: #fff;
  padding: 4.6875rem 1.25rem;
}

@media (min-width: 40.063em) {
  .page__footer-main {
    padding: 1.875rem 1.25rem;
  }
}

@media (min-width: 64.0625em) {
  .page__footer-main {
    padding: 1.875rem 0;
  }
}

/* Loader */

#pun-root {
  min-height: 30vh;
}

.root-loader-wrapper {
  display: block;
  overflow: hidden;
  position: absolute;
  left: 50%;
  top: 50%;
  color: black;
  transform: translate(-50%, -50%);
}

.root-loader {
  display: block;
  width: 3.5rem;
  height: 3.5rem;
  animation: rotate 1.4s ease-in-out infinite;
}

.root-loader-circle {
  stroke-dasharray: 80px, 200px;
  stroke-dashoffset: 0;
  stroke: currentColor;
  animation: rootLoader 1.4s ease-in-out infinite;
}

@keyframes rootLoader {
  0% {
    stroke-dasharray: 1px, 200px;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 100px, 200px;
    stroke-dashoffset: -15px;
  }
  100% {
    stroke-dasharray: 100px, 200px;
    stroke-dashoffset: -125px;
  }
}

@keyframes rotate {
  0% {
    transform-origin: 50% 50%;
  }
  100% {
    transform: rotate(350deg);
  }
}
