@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: url('../bundles/design/fonts/open-sans-v36-latin-ext-300.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('../bundles/design/fonts/open-sans-v29-latin-regular.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url('../bundles/design/fonts/open-sans-v29-latin-600.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('../bundles/design/fonts/open-sans-v29-latin-700.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  src: url('../bundles/design/fonts/open-sans-v29-latin-800.woff2') format('woff2');
  font-display: swap;
}

h2, .h2 {
  font-weight: 800;
}

a {
  font-weight: 700;
}

.fw-extra-bold {
  font-weight: 800 !important;
}

.footer-nav {
  font-size: 15px;
  gap: .5rem;
}
.footer-nav .nav-divider {
  color: rgba(38, 38, 38, .25);
}

@media (max-width: 576px) {
  .container, .container-fluid, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    --bs-gutter-x: 36px;
  }
  .row {
    --bs-gutter-x: 18px;
  }
}

.btn-wide, .w-384 {
  width: 384px;
  max-width: 100%;
}

.btn-primary,
.badge.text-bg-primary {
  background-image: linear-gradient(90deg, #3caaf4 0%, #66c2ff 100%);
}
.btn-danger {
  background-image: linear-gradient(90deg, #ff4a62 0%, #ff657a 100%);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-danger:hover, .btn-danger:focus, .btn-danger:active {
  background-image: none;
}

.list-check {
  list-style: none;
  padding-left: 0;
  margin-bottom: 10px;
}
.list-check li {
  display: flex;
  align-items: flex-start;
}
.list-check li::before {
  content: "";
  flex: 0 0 1.375em;
  width: 1.375em;
  height: 1.375em;
  margin-right: 0.625em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='20' viewBox='0 0 24 20'%3E%3Cpath d='M23.1,1.41a3,3,0,0,0-4.33,0L7.94,12.46,5.23,9.69a3,3,0,0,0-4.33,0,3.16,3.16,0,0,0,0,4.42l4.87,5a3,3,0,0,0,4.33,0l13-13.25A3.16,3.16,0,0,0,23.1,1.41Z'/%3E%3C/svg%3E") no-repeat center;
  -webkit-mask-size: 1.125em 0.875em;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='20' viewBox='0 0 24 20'%3E%3Cpath d='M23.1,1.41a3,3,0,0,0-4.33,0L7.94,12.46,5.23,9.69a3,3,0,0,0-4.33,0,3.16,3.16,0,0,0,0,4.42l4.87,5a3,3,0,0,0,4.33,0l13-13.25A3.16,3.16,0,0,0,23.1,1.41Z'/%3E%3C/svg%3E") no-repeat center;
  mask-size: 1.125em 0.875em;
}

.media-row {
  display: grid;
  grid-template-areas: "title" "img" "text";
  align-items: center;
  column-gap: 3rem; /* 48px row/col gutter, not the container's --bs-gutter-x (decoupled from container padding) */
  row-gap: 1.5rem;
}
.media-row > *:first-child { grid-area: title; margin-bottom: 0; }
.media-row > *:nth-child(2) { grid-area: img; }
.media-row > *:last-child { grid-area: text; margin-bottom: 0; }

@media (min-width: 576px) {
  .media-row {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "img title" "img text";
  }
  .media-row > *:first-child { align-self: end; }
  .media-row > *:last-child { align-self: start; }
  .media-row-reverse {
    grid-template-areas: "title img" "text img";
  }
}

.avatar {
  width: 160px;
  height: 160px;
}
.avatar::after {
  content: attr(data-initial);
  color: var(--bs-primary);
  font-size: 68px;
  font-weight: 800;
  line-height: 1;
}

.avatar-photo {
  width: 180px;
  height: 180px;
  object-fit: cover;
  border: 4px solid #fff;
}
@media (min-width: 768px) {
  .avatar-photo {
    width: 240px;
    height: 240px;
  }
}

.icon-check {
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url('/bundles/design/images/svg/checkmark_blue.svg') center / contain no-repeat;
}

.stars-rating {
  text-align: center;
  color: #ffb505;
  font-size: 22px;
  letter-spacing: 2px;
  margin-top: 26px;
}
.stars-rating span {
  display: block;
  color: #666;
  letter-spacing: 0;
  margin-top: 4px;
}
.stars-rating span.lead {
  font-size: 1.1rem;
}

.logo-grayscale {
  filter: grayscale(100%) brightness(0.45);
  height: 46px;
  width: auto;
}

.list-legal {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
  text-align: left;
}
.list-legal li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 14px;
  color: #444;
}
.list-legal li::before {
  content: '§';
  position: absolute;
  left: 0;
  top: -2px;
  font-weight: 800;
  color: var(--bs-primary);
  font-size: 20px;
}
.list-legal b {
  color: #262626;
}

.table-col-vertical {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
  height: 96px;
  margin: 0 auto;
}
