/* ========================================================================== */
/* PAGE STRUCTURE                                                             */
/* ========================================================================== */

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

body {
  padding: 0;
  margin: 0;
  color: var(--color-text);
  background-color: var(--color-bg);
}

.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: var(--space-8) var(--space-4);
  overflow: hidden;
}

img {
  max-width: 100%;
}
.kuma-centered {
  text-align: center;
}

/* ========================================================================== */
/* FONTS                                                                      */
/* ========================================================================== */

body {
  font-size: var(--font-size-body);
  font-family: var(--font-family-base);
  line-height: var(--line-height-base);
}
h1 {
  font-size: var(--font-size-h1);
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
  line-height: var(--line-height-title);
}
h2 {
  font-size: var(--font-size-h2);
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
  line-height: var(--line-height-title);
}
h3 {
  font-size: var(--font-size-h3);
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
  line-height: var(--line-height-title);
}
.kuma-small-text {
  font-size: var(--font-size-small);
}
.colored {
  color: var(--color-primary);
}

/* ========================================================================== */
/* BUTTONS                                                                    */
/* ========================================================================== */

.kuma-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--border-radius);
  border: none;
  cursor: pointer;
  background-color: var(--color-primary);
  color: #fff;
  font: inherit;
  text-decoration: none;
}
.kuma-button:hover,
a:hover .kuma-button {
  background-color: var(--color-primary-hover);
}

.kuma-button.secondary {
  color: var(--color-bg);
  background-color: var(--color-secondary);
}
.kuma-button:disabled {
  background: #CCC;
}


/* =================================================================== */
/* FORMS                                                               */
/* =================================================================== */

.kuma-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.kuma-form-field label {
  display: block;
}
.kuma-form-field input:is([type="text"], [type="email"]), 
.kuma-form-field textarea {
  background: var(--color-light);
  width: 100%;
  border: 1px solid var(--color-gray);
  border-radius: 4px;
  font: inherit;
  padding: var(--space-2) var(--space-4);
  &:hover {
    border-color: var(--color-gray-hover);
  }
}
.kuma-form-submit {
  text-align: center;
}
.kuma-form-submit button {
  width: 100%;
}



/* ========================================================================== */
/* SITE HEADER                                                                */
/* ========================================================================== */

.kuma-site-header {
  --transition-time: 200ms;
}

.kuma-site-header .main-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border-bottom: 10px solid var(--color-primary-muted);
}

.kuma-site-header .main-nav .brand-logo {
  width: calc(246px + (var(--space-4) * 2));
  height: calc(50px + (var(--space-4) * 2));
  background: center / 246px no-repeat url('../images/logo.svg');
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}
.kuma-site-header .main-nav .brand-logo:hover {
  background-color: #FFF2;
}

.kuma-site-header .main-nav .nav-list {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  align-items: center;
  flex-direction: column;
  justify-content: center;
}
.kuma-site-header .main-nav .nav-list a {
  padding: var(--space-4);
  color: var(--color-white);
  text-decoration: none;
  display: block;
}

/* Mobile: menu open / close with some cool effects */
@media screen and (width < 800px) {

  .kuma-site-header .main-nav .nav-list {
    opacity: 0;
    transition: var(--transition-time);
    pointer-events: none;
    display: flex;
    position: absolute;
    z-index: 100;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000D;
  }
  .kuma-site-header .main-nav .nav-list a {
    color: var(--color-bg);
  }
  .navigation-open .kuma-site-header .main-nav .nav-list {
    opacity: 1;
    pointer-events: auto;
  }
  #kuma-navigation-toggle {
    z-index: 102;
  }
  .kuma-site-header .main-nav .nav-list li {
    opacity: 0;
    transform: translateY(10px);
    transition:opacity var(--transition-time) ease, transform var(--transition-time) ease;
  }

  /* Staggered animation when menu opens */
  .navigation-open .kuma-site-header .main-nav .nav-list li {
    opacity: 1;
    transform: translateY(0);
  }

  /* Staggered links appearance */
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(1){ transition-delay:calc(1 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(2){ transition-delay:calc(2 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(3){ transition-delay:calc(3 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(4){ transition-delay:calc(4 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(5){ transition-delay:calc(5 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(6){ transition-delay:calc(6 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(7){ transition-delay:calc(7 * (var(--transition-time) / 3)); }
  .navigation-open .kuma-site-header .main-nav .nav-list li:nth-child(8){ transition-delay:calc(8 * (var(--transition-time) / 3)); }

  .kuma-site-header .main-nav .nav-list {
    font-size: var(--font-size-h2);
  }

  .kuma-site-header .main-nav .nav-list li ul {
    display: none;
  }

}

@media screen and (width >= 800px) {

  .kuma-site-header {
    position: relative;
  }

  #kuma-navigation-toggle {
    display: none;
  }
  .kuma-site-header .main-nav .nav-list {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    flex-direction: row;
    font-size: var(--font-size-header);
  }
  .kuma-site-header .main-nav .nav-list a {
    padding: var(--space-2) var(--space-4);
  }
  .kuma-site-header .main-nav .nav-list .current-menu-item>a,
  .kuma-site-header .main-nav .nav-list a:hover {
    border-bottom: 10px solid var(--color-primary);
    margin-bottom: -10px;
  }
  .kuma-site-header .main-nav .nav-list a:hover {
    background: var(--color-primary-muted-hover);
  }

  /* Dropdowns */
  .kuma-site-header .main-nav .nav-list li ul {
    display: none;
    background: var(--color-primary-muted);
    position: absolute;
    z-index: 5;
    list-style-type: none;
    padding: 0;
    margin: 0;
    min-width: 160px;
    margin-top: 10px;
  }
  .kuma-site-header .main-nav .nav-list li {
    position: relative;
  }
  .kuma-site-header .main-nav .nav-list li:hover ul {
    display: block;
  }

}

/* Subnavigation */
.sub-navigation {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  display: flex;
  gap: var(--space-2);

  > a {
    color: var(--color-primary);
    text-decoration: none;

    &:hover {
      color: var(--color-primary-hover);
    }

    &:before {
      content: "";
      display: inline-block;
      margin-right: var(--space-2);
      width: 1px;
      height: 12px;
      background: var(--color-primary);
    }
  }

  .social-links {
    display: flex;
    gap: var(--space-2);
    align-items: center;

    a {
      background: var(--color-primary);
      text-indent: 100%;
      white-space: nowrap;
      overflow: hidden;
      width: 16px;
      aspect-ratio: 1;
      mask: var(--icon-instagram) no-repeat center / 100% 100%;
      &:hover {
        background: var(--color-primary-hover);
      }
    }

    a.linkedin {mask-image: var(--icon-linkedin);}
    a.facebook {mask-image: var(--icon-facebook);}

  }
}
@media screen and (width < 800px) {
  .sub-navigation {
    display: none;
  }
  .navigation-open .sub-navigation {
    display: flex;
    z-index: 101;
    top: 15px;
    right: 54px;
  }
  .admin-bar.navigation-open .sub-navigation {
    top: 58px;
  }
}



/* ========================================================================== */
/* HAMBURGER MENU                                                             */
/* ========================================================================== */

#kuma-navigation-toggle {
  width: 50px;
  height: 50px;
  transform: rotate(0deg);
  cursor: pointer;
  transition: var(--transition-time);
}
#kuma-navigation-toggle:hover {
  background: #FFF2;
}
#kuma-navigation-toggle span {
  display: block;
  position: absolute;
  height: 4px;
  width: 35px;
  background-color: var(--color-primary);
  border-radius: 3px;
  opacity: 1;
  left: 7.5px;
  transform: rotate(0deg);
  transform-origin: center;
  transition: var(--transition-time);
}
#kuma-navigation-toggle span:nth-child(1) {
  top: 10.5px;
}
#kuma-navigation-toggle span:nth-child(2) {
  top: 23.5px;
}
#kuma-navigation-toggle span:nth-child(3) {
  top: 36.5px;
}

/* Open design */
.navigation-open #kuma-navigation-toggle span {
  background-color: var(--color-bg);
}

.navigation-open #kuma-navigation-toggle span:nth-child(1) {
  transform: rotate(135deg);
  top: 23.5px;
}
.navigation-open #kuma-navigation-toggle span:nth-child(2) {
  transform: rotate(180deg);
  width: 0%;
  opacity: 0;
}
.navigation-open #kuma-navigation-toggle span:nth-child(3) {
  transform: rotate(225deg);
  top: 23.5px;
}





/* ========================================================================== */
/* FOOTER                                                                     */
/* ========================================================================== */


.convergence-footer {
}

.footer-top {
  background: var(--color-light);
  border-top: 8px solid var(--color-primary);
}

.footer-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: var(--space-8) var(--space-4);
}

.footer-logo img {
  width: 200px;
  height: auto;
  @media (min-width: 700px) {
    width: 300px;

  }
}

.footer-info {
  display: flex;
  align-items: center;
  gap: 80px;
}

.footer-address,
.footer-contact {
  line-height: 1.5;
}

.footer-contact a {
  color: var(--color-primary);
  text-decoration: none;
}

.footer-social {
  display: flex;
  gap: 16px;
}

.footer-social a {
  background: var(--color-primary);
  color: var(--color-primary);
  font-weight: bold;
  text-decoration: none;
  width: 48px;
  aspect-ratio: 1;
  mask: var(--icon-instagram) no-repeat center / 100% 100%;
}
.footer-social a.linkedin {mask-image: var(--icon-linkedin);}
.footer-social a.facebook {mask-image: var(--icon-facebook);}
.footer-social a:hover {
  background: var(--color-primary-hover);
  color: var(--color-primary-hover);
}



.footer-bottom {
  background: var(--color-primary);
  color: var(--color-bg);

  .footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: bold;
    padding: var(--space-4);
  }

}


.footer-bottom a {
  color: var(--color-bg);
  text-decoration: none;
}

/* DESKTOP */
@media (min-width: 700px) {

  /* La chimère */
  .footer-top {
    overflow: hidden;
    .footer-inner {
      position: relative;
    }
    .footer-inner:before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      width: 200px;
      height: 100%;
      background: var(--color-primary);
      mask: var(--chimere-1) no-repeat center / 100% 100%;
      transform: rotate(-25deg) scale(1.2);
      opacity: .7;
    }
  }
}

/* MOBILE */
@media (max-width: 699px) {

  .footer-top .footer-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
  }

  .footer-info {
    flex-direction: column;
    gap: 24px;
  }

  .footer-logo {
    text-align: center;
    padding-bottom: var(--space-4);
  }

  .footer-social {
    margin-top: 10px;
  }

  .footer-bottom .footer-inner {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }

}