@font-face {
  font-family: 'Avenir Next';
  src: url("../fonts/AvenirNext-Bold.woff2") format("woff2"), url("../fonts/AvenirNext-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Avenir Next';
  src: url("../fonts/AvenirNext-Regular.woff2") format("woff2"), url("../fonts/AvenirNext-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Bodoni 72';
  src: url("../fonts/Bodoni.woff2") format("woff2"), url("../fonts/Bodoni.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap; }

html {
  font-size: 16px; }
  @media (max-width: 820px) {
    html {
      font-size: 10px; } }

* {
  margin: 0;
  padding: 0;
  font-family: 'Avenir Next', sans-serif;
  box-sizing: border-box; }

.container {
  max-width: 1520px;
  padding: 0 4rem;
  margin: 0 auto; }
  @media (max-width: 820px) {
    .container {
      padding: 0 2rem; } }

a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent; }
  a:hover {
    border-bottom: 1px solid #000; }

header {
  background-color: #d82b91;
  text-align: center;
  padding: 15.25rem 0 12.8125rem 0; }
  header h1 {
    font-size: 5rem;
    line-height: 5.5rem;
    text-align: center;
    margin-bottom: 2.875rem; }
    header h1 span {
      color: white; }
  header img {
    width: 15rem;
    display: inline-block; }

section.happiness {
  text-align: center;
  padding: 8.0625rem 0 8.75rem 0; }
  @media (max-width: 820px) {
    section.happiness {
      padding: 6.25rem 0 5rem 0; } }
  section.happiness img {
    width: 12.375rem; }
  section.happiness h2 {
    font-size: 5rem;
    line-height: 1.125;
    margin-bottom: 1.625rem;
    margin-top: 0.3em; }
    @media (max-width: 820px) {
      section.happiness h2 {
        font-size: 4.0625rem; } }
    section.happiness h2 span {
      font-family: 'Bodoni 72';
      font-weight: normal; }
  section.happiness p {
    font-size: 1.5625rem; }

section.videos {
  padding: 8.75rem 0 5.4375rem 0; }
  @media (max-width: 820px) {
    section.videos {
      padding: 5rem 0 3.75rem 0; } }
  section.videos h2 {
    font-size: 3.125rem; }
    @media (max-width: 820px) {
      section.videos h2 {
        font-size: 2.5rem; } }
  section.videos .video {
    position: relative;
    margin: 2.5rem 0;
    cursor: pointer;
    line-height: 0; }
    section.videos .video::after {
      content: '';
      position: absolute;
      aspect-ratio: 1;
      width: 20%;
      background: no-repeat center center url("../img/play.svg");
      background-size: contain;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
      @media (max-width: 820px) {
        section.videos .video::after {
          width: 15%; } }
    section.videos .video .info {
      position: absolute;
      bottom: 3rem;
      left: 3rem;
      right: 3rem;
      color: #fff;
      line-height: 1.3; }
      @media (max-width: 820px) {
        section.videos .video .info {
          left: 2rem;
          right: 2rem;
          bottom: 1.5rem; } }
      section.videos .video .info h3 {
        font-size: 2.1875rem; }
        @media (max-width: 820px) {
          section.videos .video .info h3 {
            font-size: 1.5rem; } }
      section.videos .video .info p {
        font-size: 1.875rem; }
        @media (max-width: 820px) {
          section.videos .video .info p {
            font-size: 1.375rem; } }
    section.videos .video video {
      width: 100%; }
    section.videos .video.play .info {
      display: none; }
    section.videos .video.play::after {
      display: none; }
  section.videos .all {
    text-align: right;
    font-size: 1.5rem; }
    section.videos .all a {
      padding-right: 1.5rem;
      position: relative; }
      section.videos .all a:after {
        width: 1rem;
        height: 0.7em;
        right: 0;
        position: absolute;
        content: '';
        background: no-repeat center center url("../img/arrow.svg");
        background-size: contain;
        top: 50%;
        transform: translateY(-50%); }

section.contact {
  padding: 5.4375rem 0 15rem 0;
  text-align: center; }
  @media (max-width: 820px) {
    section.contact {
      padding: 5.4375rem 0 10.625rem 0; } }
  section.contact h2 {
    font-size: 4.375rem;
    line-height: 4.625rem;
    margin-bottom: 1.125rem; }
    section.contact h2 span:first-child {
      color: #d82b91; }
    section.contact h2 span:last-child {
      font-weight: normal;
      font-family: 'Bodoni 72'; }
  section.contact p {
    font-size: 1.375rem;
    line-height: 2rem; }

section.presentation {
  background-color: #f7f7f7;
  padding: 15rem 0 15rem 0;
  text-align: center; }
  @media (max-width: 820px) {
    section.presentation {
      padding: 11.25rem 0 11.25rem 0; } }
  section.presentation h2 {
    font-size: 5rem;
    line-height: 5.625rem;
    margin-bottom: 3.125rem; }
    section.presentation h2 span {
      color: #d82b91; }
  section.presentation a.button {
    background-color: #000;
    color: white;
    font-size: 1.375rem;
    padding: 0.5em 1em;
    border: 0;
    display: inline-block; }

section.team {
  padding: 13.75rem 0 13.75rem 0;
  overflow: hidden;
  width: 100%; }
  @media (max-width: 820px) {
    section.team {
      padding: 9.375rem 0 9.375rem 0; } }
  section.team .intro {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 2.8125rem; }
    section.team .intro a {
      font-size: 1.5rem;
      margin-bottom: 0.2em;
      padding-right: 1.5rem;
      position: relative; }
      section.team .intro a:after {
        width: 1rem;
        height: 0.7em;
        right: 0;
        position: absolute;
        content: '';
        background: no-repeat center center url("../img/arrow.svg");
        background-size: contain;
        top: 50%;
        transform: translateY(-50%); }
      @media (max-width: 820px) {
        section.team .intro a {
          display: none; } }
  section.team h2 {
    font-size: 3.125rem;
    line-height: 1; }
    @media (max-width: 820px) {
      section.team h2 {
        font-size: 2.5rem; } }
    section.team h2 span {
      color: #d82b91; }
  section.team .download {
    text-align: center; }
  section.team a.button {
    border: 1px solid black;
    font-size: 1.375rem;
    padding: 0.5em 1em;
    display: inline-block; }
  section.team .swiper-slide {
    width: 23.75rem; }
    section.team .swiper-slide .user-image {
      background-color: #d3d3d3;
      width: 100%;
      aspect-ratio: 1;
      margin-bottom: 1.875rem;
      line-height: 0; }
      section.team .swiper-slide .user-image img {
        width: 100%;
        height: 100%;
        object-fit: cover; }
    section.team .swiper-slide .user-info {
      font-size: 1.375rem;
      line-height: 1.875rem; }
    section.team .swiper-slide::after {
      content: '';
      position: absolute;
      right: -50px;
      top: 0;
      bottom: 0;
      width: 1px;
      background-color: #707070; }
    section.team .swiper-slide:last-child::after {
      display: none; }
  section.team .swiper {
    overflow: visible;
    user-select: none;
    margin-bottom: 8.125rem; }
    @media (max-width: 820px) {
      section.team .swiper {
        margin-bottom: 4.375rem; } }

section.downloads {
  padding-bottom: 9.375rem; }
  @media (max-width: 820px) {
    section.downloads {
      padding-bottom: 5rem; } }
  section.downloads .block {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    margin-bottom: 5.9375rem; }
    @media (max-width: 820px) {
      section.downloads .block {
        flex-direction: column; }
        section.downloads .block.mobile-reverse {
          flex-direction: column-reverse; } }
    section.downloads .block > div {
      width: 50%; }
      @media (max-width: 820px) {
        section.downloads .block > div {
          width: 100%; } }
    section.downloads .block .title {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      background-color: #d82b91; }
      @media (max-width: 820px) {
        section.downloads .block .title {
          padding: 12% 10%; } }
      section.downloads .block .title h2 {
        font-size: 2.8125rem; }
      section.downloads .block .title.black {
        background-color: black;
        color: #d82b91; }
    section.downloads .block .content {
      background-color: #f7f7f7;
      padding: 12% 10%; }
      section.downloads .block .content h3 {
        font-size: 2.1875rem;
        margin-bottom: 0.4em; }
      section.downloads .block .content p {
        font-size: 1.375rem; }
  section.downloads a.button {
    border: 1px solid black;
    font-size: 1.375rem;
    padding: 0.5em 1em;
    display: inline-block;
    margin-top: 1.375rem; }

footer {
  padding-bottom: 3.125rem; }
  footer .first {
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    padding: 2.1875rem 0;
    display: flex;
    flex-direction: row;
    align-items: center; }
    @media (max-width: 820px) {
      footer .first {
        flex-direction: column; } }
    footer .first img {
      width: 12.375rem;
      margin-left: 6.875rem;
      margin-right: 18.75rem; }
      @media (max-width: 820px) {
        footer .first img {
          margin: 0;
          margin-bottom: 1em; } }
    footer .first ul {
      list-style-type: none;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap; }
      footer .first ul li {
        width: 50%;
        font-size: 1.4375rem;
        margin: 0.9375rem 0; }
      @media (max-width: 820px) {
        footer .first ul {
          text-align: center; } }
  footer .last {
    padding: 2.1875rem 0;
    border-bottom: 1px solid #000;
    display: flex;
    flex-direction: row;
    gap: 1.6875rem; }
    @media (max-width: 820px) {
      footer .last {
        flex-wrap: wrap;
        text-align: center;
        align-items: center;
        justify-content: center; } }
    footer .last p {
      flex-grow: 1;
      font-size: 1.375rem; }
    footer .last img {
      width: 1.6875rem; }
    footer .last a.icon {
      border: 0; }
