/* ==========================================================================
   Settings
   ========================================================================== */
/* Colour Palette
   ========================================================================== */
/* Typography
   ========================================================================== */
/* Spacings
   ========================================================================== */
/* Screen widths
   ========================================================================== */
/* Transitions
   ========================================================================== */
/* ==========================================================================
   Functions
   ========================================================================== */
/* ==========================================================================
   Mixins
   ========================================================================== */
.page--we-happy-few .loader {
  background-color: #a4d2b5; }

.page--we-happy-few #js-about .quote .q {
  display: none; }

th {
  text-align: left;
  padding-right: 15px; }

.happy {
  visibility: hidden; }
  .is-loaded .happy {
    visibility: visible; }

.home.-happy {
  min-height: 430px;
  /* &::after {
			content: "";
			position: absolute;
			top: 0;
			right: 0;
			bottom: 0;
			left: 0;
			background-color: #071621;
			opacity: 0.7;
		} */ }

.happy__home {
  padding: 0 30px;
  max-width: 98%;
  margin-top: 26px;
  position: relative;
  z-index: 9; }

@media (max-width: 767px) {
  .happy__logo {
    width: 150px;
    height: auto;
    margin-bottom: 20px; } }

@media (min-width: 768px) {
  .happy__logo {
    width: 281px;
    height: 235px;
    margin-bottom: 40px; } }

.is-loaded .happy__logo {
  -webkit-animation-name: fadeInUp;
          animation-name: fadeInUp;
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
  -webkit-animation-duration: 0.9s;
          animation-duration: 0.9s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

@media (max-width: 767px) {
  .happy__heading {
    font-size: 26px; } }

.is-loaded .happy__heading {
  -webkit-animation-name: fadeInUp;
          animation-name: fadeInUp;
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
  -webkit-animation-duration: 0.9s;
          animation-duration: 0.9s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.is-loaded .happy__button {
  -webkit-animation-name: fadeInUp;
          animation-name: fadeInUp;
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
  -webkit-animation-duration: 0.9s;
          animation-duration: 0.9s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

.happy__buttons {
  position: absolute;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 98;
  width: 150px; }
  :lang(fr) .happy__buttons {
    width: 180px; }
  @media (max-width: 767px) {
    .happy__buttons {
      display: none; } }
  @media (max-width: 1279px) {
    .happy__buttons {
      top: 160px;
      right: 30px; } }
  @media (min-width: 1280px) and (max-width: 1679px) {
    .happy__buttons {
      top: 78px;
      right: 55px; } }
  @media (min-width: 1680px) {
    .happy__buttons {
      top: 93px;
      right: 55px; } }
  .happy__buttons .button {
    display: block;
    margin-bottom: 10px; }

.happy-nav {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background-color: #05111a;
  text-align: center;
  font-family: Baskerville Old Face, serif;
  text-transform: lowercase;
  z-index: 99; }
  @media (max-width: 767px) {
    .happy-nav {
      display: none; } }
  @media (min-width: 768px) and (max-width: 1279px) {
    .happy-nav {
      top: 85px; } }
  @media (max-width: 1679px) {
    .happy-nav {
      font-size: 14px; } }
  @media (min-width: 1680px) {
    .happy-nav {
      font-size: 18px; } }

.happy-nav__list {
  margin: 0;
  padding: 0;
  list-style-type: none; }

.happy-nav__item {
  display: inline-block; }

.happy-nav__link {
  color: #FFFFFF; }
  @media (max-width: 1679px) {
    .happy-nav__link {
      padding: 0 10px;
      line-height: 43px; } }
  @media (min-width: 1680px) {
    .happy-nav__link {
      padding: 0 10px;
      line-height: 53px; } }
  .happy-nav__link abbr[title] {
    border-bottom: none; }

.happy__community {
  margin-top: 35px;
  font-size: 0; }

.happy__community__item {
  font-size: 16px;
  display: inline-block;
  padding: 0 10px; }
  @media (max-width: 767px) {
    .happy__community__item {
      margin-bottom: 10px; } }

@media (max-width: 767px) {
  .happy__features__item {
    margin-bottom: 30px; } }

@media (min-width: 768px) {
  .happy__features__item {
    margin-bottom: 60px; } }

.happy__features__image {
  display: block;
  margin-bottom: 30px;
  width: 100%; }

.happy__features__title {
  color: #ebca70;
  margin: 0;
  margin-bottom: 5px; }

.h.-beige {
  color: #f3ecda; }

.h1 {
  margin-bottom: 0; }

.section {
  overflow: hidden; }
  .section.-green {
    background-color: #a4d2b5; }
  .section.-yellow {
    background-color: #ecbb53; }
  .section.-blue {
    background-color: #05111a; }
  .section.-light-blue {
    background-color: #141f27; }
  @media (max-width: 767px) {
    .section.-padding {
      padding: 75px 0; } }
  @media (min-width: 768px) and (max-width: 1679px) {
    .section.-padding {
      padding: 100px 0; } }
  @media (min-width: 1680px) {
    .section.-padding {
      padding: 150px 0; } }
  @media (max-width: 767px) {
    .section.-big-padding {
      padding: 75px 0; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .section.-big-padding {
      padding: 100px 0; } }
  @media (min-width: 1024px) and (max-width: 1679px) {
    .section.-big-padding {
      padding: 140px 0; } }
  @media (min-width: 1680px) {
    .section.-big-padding {
      padding: 230px 0; } }
  .section.-center {
    text-align: center; }
  @media (max-width: 1023px) {
    .section.-mobile-center {
      text-align: center; } }

.section__text__max {
  display: inline-block;
  max-width: 550px; }

.button {
  text-align: center;
  color: #FFFFFF;
  font-family: "Source Sans Pro", sans-serif; }
  .button.-orange {
    background-color: #f05f2f; }
    .button.-orange::after {
      border-color: rgba(240, 95, 47, 0.55); }
    .button.-orange:hover {
      background-color: #dc4310; }
      .button.-orange:hover::after {
        border-color: rgba(220, 67, 16, 0.55); }
  .button.-pink {
    background-color: #e2386e; }
    .button.-pink::after {
      border-color: rgba(226, 56, 110, 0.55); }
    .button.-pink:hover {
      background-color: #ca1d54; }
      .button.-pink:hover::after {
        border-color: rgba(202, 29, 84, 0.55); }
  .button.-big {
    height: 60px;
    line-height: 60px;
    padding: 0 30px; }
    .button.-big::after {
      height: 60px; }
  .button.-tabs {
    opacity: 0.5;
    margin-right: 15px; }
    .button.-tabs:hover {
      opacity: 0.75; }
    .button.-tabs.-active {
      opacity: 1; }

.circle-button {
  border-radius: 50%;
  width: 40px;
  height: 40px;
  padding: 0;
  vertical-align: middle;
  height: 100%;
  font-size: 0; }
  .circle-button::before {
    display: inline-block;
    height: 100%;
    content: "";
    vertical-align: middle; }
  .circle-button > * {
    display: inline-block;
    vertical-align: middle; }
  .circle-button::after {
    width: 40px;
    height: 40px;
    border-radius: 50%; }
  .circle-button svg {
    height: 14px;
    fill: #FFFFFF; }
  .circle-button.-bigger {
    width: 60px;
    height: 60px; }
    .circle-button.-bigger::after {
      width: 60px;
      height: 60px; }
    .circle-button.-bigger svg {
      width: 21px;
      height: 21px; }

.circle {
  background-color: transparent; }
  @media (min-width: 768px) and (max-width: 1023px) {
    .circle {
      width: 475px;
      height: 475px;
      padding-bottom: 0;
      margin: 0 auto;
      margin-bottom: 15px; } }

.circle-content__content {
  margin: 0;
  padding: 0;
  color: #FFFFFF; }

.container.-max {
  max-width: 1090px; }

.background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat; }
  .background.-right {
    background-position: center right; }
    @media (max-width: 1023px) {
      .background.-right {
        display: none; } }
    @media (min-width: 1024px) and (max-width: 1279px) {
      .background.-right {
        background-position: center right -15%; } }
  .background.-left {
    background-position: center left 35%; }
    @media (max-width: 1023px) {
      .background.-left {
        display: none; } }
  .background.-img {
    background-size: auto 100%; }

.nav-tabs {
  margin-bottom: 0; }
  .nav-tabs a.button {
    color: #FFFFFF;
    -webkit-transition: background-color 0.3s, -webkit-transform 0.1s, opacity 0.3s;
            transition: background-color 0.3s, transform 0.1s, opacity 0.3s; }
  @media (max-width: 1023px) {
    .nav-tabs li {
      margin: 15px 0; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .nav-tabs li {
      display: inline-block; } }

@media (max-width: 1023px) {
  .carousel.-grid {
    padding-top: 30px;
    margin-bottom: 0; } }

@media (min-width: 1024px) and (max-width: 1679px) {
  .carousel.-grid {
    margin-top: 75px; } }

@media (min-width: 1680px) {
  .carousel.-grid {
    margin-top: 100px; } }

.carousel__thumbnail {
  display: block;
  padding: 0 20px;
  margin-bottom: 40px;
  position: relative; }

.carousel__thumbnail__buttons {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: opacity 0.3s;
          transition: opacity 0.3s; }
  @media (min-width: 1280px) {
    .carousel__thumbnail__buttons {
      opacity: 0; }
      .carousel__thumbnail:hover .carousel__thumbnail__buttons {
        opacity: 1; } }
  .carousel__thumbnail__buttons .circle-button {
    margin: 0 5px; }

.carousel__arrow {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: rgba(140, 152, 190, 0.1);
  -webkit-transition: background-color 0.3s;
          transition: background-color 0.3s; }
  @media (min-width: 1024px) {
    .carousel__arrow {
      width: 60px;
      height: 60px; } }
  @media (min-width: 1280px) {
    .carousel__arrow {
      width: 70px;
      height: 70px; } }
  .carousel__arrow:hover {
    background-color: rgba(140, 152, 190, 0.2); }
  .carousel__arrow svg {
    width: 8px;
    height: 14px;
    fill: #ebca70; }
    @media (min-width: 1024px) {
      .carousel__arrow svg {
        width: 10px;
        height: 17px; } }
    @media (min-width: 1280px) {
      .carousel__arrow svg {
        width: 11px;
        height: 19px; } }

@media (min-width: 768px) {
  .carousel__arrow--prev {
    left: 1.5%; } }

@media (min-width: 1680px) {
  .carousel__arrow--prev {
    left: 6%; } }

@media (min-width: 1800px) {
  .carousel__arrow--prev {
    left: 8%; } }

@media (min-width: 768px) {
  .carousel__arrow--next {
    right: 1.5%; } }

@media (min-width: 1680px) {
  .carousel__arrow--next {
    right: 6%; } }

@media (min-width: 1800px) {
  .carousel__arrow--next {
    right: 8%; } }

.happy__cloud {
  position: absolute;
  top: 0;
  z-index: 0;
  pointer-events: none; }
  .happy__cloud.-right {
    right: 0; }
  .happy__cloud.-left {
    left: 0; }
  .happy__cloud.-c00 {
    top: auto;
    bottom: -10%; }
  .happy__cloud.-c01 {
    top: 25%; }
  .happy__cloud.-c02 {
    top: 65%; }
  .happy__cloud.-c03 {
    top: -50%; }
  .happy__cloud.-c04 {
    top: 25%; }
    @media (max-width: 1023px) {
      .happy__cloud.-c04 {
        display: none; } }
    @media (max-width: 1279px) {
      .happy__cloud.-c04 {
        max-width: 375px; } }
    @media (min-width: 1280px) and (max-width: 1679px) {
      .happy__cloud.-c04 {
        max-width: 475px; } }

.happy__third {
  display: inline-block;
  font-size: 16px;
  width: 100%;
  padding-left: 40px;
  vertical-align: top; }
  @media (max-width: 767px) {
    .happy__third {
      margin-bottom: 20px; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .happy__third {
      width: 50%; }
      .happy__third.-empty {
        display: none; } }
  @media (min-width: 1024px) {
    .happy__third {
      width: 33.3333333333%; } }
