/* General styling */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --sm-heading-color: #000;
  --sm-text-color: #5c5c5c;
  --sm-bg-color: #f5f5f5;
  --sm-bg-linear: linear-gradient(90deg, #fff, #e8e8e8);
  --sm-bg-linear-further: linear-gradient(90deg, #fbfbfb 50%, #e8e8e8);
  --sm-bg-radial: radial-gradient(#474747, #2d2d2d 74%);
}

.sm {
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  background: var(--sm-bg-color);
  position: relative;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-bottom: 30px;
}

.sm__content {
  max-width: 80%;
  margin: 0 auto;
  position: relative;
}

.sm__content-gfx-divider {
  position: absolute;
  right: 0;
  bottom: -152px;
  z-index: 1;
}

.sm__section {
  padding: 46px 0;
  position: relative;
}
@media screen and (min-width: 576px) {
  .sm__section {
    padding: 80px 0;
  }
}

.sm__section.bg-linear {
  background: var(--sm-bg-linear-further);
}

.sm__section.bg-radial {
  background: var(--sm-bg-radial);
}

.sm__heading {
  max-width: 100%;
}

@media screen and (min-width: 768px) {
  .sm__heading {
    max-width: 98%;
  }
}

.sm__heading h3 {
  margin-bottom: 40px;
}

.sm__heading p:last-child {
  margin-bottom: 86px;
}

/* Utilities */
.sm .nobr {
  white-space: nowrap;
}

.sm__center {
  text-align: center;
  align-items: center !important;
}

.sm__absolute {
  position: absolute;
}

.sm__fluid {
  max-width: 100%;
  width: 100%;
  object-fit: contain;
}

.sm__hide-mobile {
  display: none;
}

@media screen and (min-width: 768px) {
  .sm__hide-mobile {
    display: block;
  }
}

.sm__list {
  list-style-type: none;
  padding: 0;
  padding-left: 0 !important;
}

.sm__list li {
  font-size: 17px !important;
  color: var(--sm-text-color);
  position: relative;
  padding-left: 40px;
  margin-bottom: 16px;
  line-height: 28px !important;
  font-weight: 400 !important;
  opacity: 0.85;
}

@media screen and (min-width: 768px) {
  .sm__list li {
    font-size: 18px !important;
  }
}

.sm__list li:last-child {
  margin-bottom: 0;
}

.sm__list li::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 14px;
  width: 7px;
  height: 7px;
  background: var(--sm-text-color);
}

.sm__p-32 {
  padding: 32px;
}

.sm__full-divider {
  margin: 32px auto;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

/* Typography */

.sm h1,
.sm h3 {
  font-size: 1.66em !important;
  font-weight: 300 !important;
  color: var(--sm-heading-color);
  line-height: 1.25;
}

@media screen and (min-width: 768px) {
  .sm h1,
  .sm h3 {
    font-size: 2em !important;
  }
}
.sm h1 {
  font-size: 2em !important;
}
@media screen and (min-width: 768px) {
  .sm h1 {
    font-size: 2.25em !important;
  }
}

.sm h2 {
  font-size: 1.15em !important;
  font-weight: 400 !important;
  color: var(--sm-heading-color);
}

@media screen and (min-width: 768px) {
  .sm h2 {
    font-size: 1.375em !important;
  }
}

.sm h4 {
  font-size: 1.62em;
  font-family: "Roboto", sans-serif !important;
  font-weight: 300 !important;
  line-height: 1.35 !important;
  color: var(--sm-heading-color);
}

.sm p {
  font-size: 16px !important;
  color: var(--sm-text-color) !important;
  line-height: 24px !important;
  font-weight: 400 !important;
  padding-bottom: 0 !important;
  padding-top: 0 !important;
}

@media screen and (min-width: 768px) {
  .sm p {
    font-size: 18px !important;
    line-height: 28px !important;
  }
}

p.sm__text-sm {
  font-size: 0.8em !important;
}

.sm__divider {
  width: 100%;
  max-width: 100%;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

/* Hero section */
.sm__hero {
  width: 100%;
  padding: 56px 0;
}

@media screen and (min-width: 768px) {
  .sm__hero {
    padding: 56px 0 80px 0;
  }
}

.sm__hero h1 {
  margin-bottom: 2px;
}

.sm__hero__logo {
  margin-bottom: 36px;
  max-width: 342px !important;
}
.sm__hero__gfx {
  margin-bottom: 24px;
}

.sm__hero__top {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.sm__hero__top--left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.sm__product {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  margin-top: 32px;
}

.sm__product-gfx--left,
.sm__product-gfx--right {
  position: absolute;
}

.sm__product-gfx--left {
  right: 75%;
}

.sm__product-gfx--right {
  left: 75%;
}

.sm__product-img {
  min-width: 320px;
  max-width: 94%;
  margin: 0 auto;
  z-index: 1;
}

.sm__product-gfx {
  position: absolute;
  max-height: 100%;
  margin-top: -32px;
  max-width: unset !important;
}

.sm__hero-outer-gfx {
  margin-left: -32px;
  margin-top: -32px;
}

/* Video section */
.sm__video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
}

.sm__video-wrapper .sm__video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: 2;
}

.sm__video-wrapper-gfx-01 {
  left: -164px;
  top: 14%;
}
.sm__video-wrapper-gfx-02 {
  right: -164px;
  bottom: 14%;
}

/* 2 col section */
.sm__row {
  display: flex;
  flex-direction: column;
  position: relative;
}

@media screen and (min-width: 768px) {
  .sm__row {
    flex-direction: row;
  }
}

.sm__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .sm__col-6 {
    width: 50%;
  }

  .sm__col-8 {
    width: 66.666%;
  }
  .sm__col-4 {
    width: 33.333%;
  }
}

.sm__col-image {
  margin: 0 auto;
  margin-top: 32px;
}

@media screen and (min-width: 768px) {
  .sm__col-image {
    margin-top: 0;
    margin-left: 32px;
    min-width: 360px;
  }
}
@media screen and (min-width: 992px) {
  .sm__col-image {
    min-width: unset;
  }
}

.sm__gfx-wrapper {
  display: flex;

  bottom: 0;
  width: 100%;
  justify-content: space-between;
  align-items: flex-end;
}

.sm__gfx-wrapper {
  margin-top: 32px;
}

.sm__gfx-wrapper .sm__gfx-right {
  right: 0;
}

/* 360 section */
.sm__360-wrapper {
  position: relative;
  width: 100%;
  /*padding-bottom: 56.25%;*/
  margin-top: 56px;
}

.sm__360-wrapper .sm__360 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: 2;
}

.sm__360-gfx-01 {
  left: -164px;
  top: 14%;
}
.sm__360-gfx-02 {
  right: -164px;
  bottom: 14%;
}

/* full image section */
.sm__section-full {
  position: relative;
  overflow: hidden;
  display: flex;
}

.sm__full-image {
  min-height: 460px;
  object-fit: cover;
  filter: grayscale(1);
  transition: 0.15s ease-in-out;
}

@media screen and (min-width: 576px) {
  .sm__full-image:hover {
    filter: grayscale(0);
    transform: scale(1.02);
  }
}

.sm__bg-01 {
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  min-height: 460px;
  padding: 32px 32px 32px 0;
  pointer-events: none;
  user-select: none;
}

/* review section */
.sm__review {
  position: relative;
  padding: 100px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 46px;
}

.sm__review--sm {
  padding: 70px 0;
}

.sm__review::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  opacity: 0.9;
}

@media screen and (min-width: 576px) {
  .sm__review::after {
    width: calc(100% - 40px);
    height: calc(100% - 40px);
  }
}

.sm__review p {
  font-size: 16px !important;
}

.sm__review h4 {
  margin-bottom: 20px;
}

.sm__review-bg {
  height: 100%;
  width: 100%;
  object-fit: cover;
  opacity: 1;
}

.sm__review-copy {
  position: relative;
  z-index: 1;
}

.sm__review-copy h4 {
  margin-bottom: 40px;
}

.sm__review-author {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  text-align: end;
  margin-top: 32px;
}

.sm__review-author--col {
  flex-direction: column;
  align-items: flex-end !important;
  margin-top: 0;
}

.sm__review-author h4 {
  margin-bottom: 0;
  font-weight: 300 !important;
}

.sm__review-geex {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

.sm__review-author-photo {
  width: 180px;
  height: 180px;
  margin-bottom: 12px;
  object-fit: contain;
}

@media screen and (min-width: 576px) {
  .sm__review-author-photo {
    width: 240px;
    height: 240px;
  }
}

/* Banner */
.sm__banner {
  height: 200px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (min-width: 576px) {
  .sm__banner {
    height: 320px;
  }
}

.sm__banner::after {
  content: "";
  position: absolute;
  width: calc(100% - 40px);
  height: calc(100% - 40px);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: var(--sm-bg-linear);
  opacity: 0.8;
}

.sm__banner-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  mix-blend-mode: darken;
  object-fit: cover;
}

.sm__banner-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sm__banner-txt h3 {
  font-size: 1.4em !important;
  z-index: 1;
  position: relative;
}

@media screen and (min-width: 576px) {
  .sm__banner-txt h3 {
    font-size: 2em !important;
  }
}
