/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;700&display=swap");
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

a {
  text-decoration: none;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after {
  content: "";
  content: none;
}

q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

* {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Manrope", sans-serif;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -2px;
}

h1, h2, h3, h4, h5, h6, p, ul, li {
  color: #313476;
}
h1.light-text, h2.light-text, h3.light-text, h4.light-text, h5.light-text, h6.light-text, p.light-text, ul.light-text, li.light-text {
  color: #ffffff;
}
h1.bold, h2.bold, h3.bold, h4.bold, h5.bold, h6.bold, p.bold, ul.bold, li.bold {
  font-weight: 700;
}

h1 {
  font-size: 2.375rem;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.75rem;
}

h4 {
  font-size: 1.125rem;
}

p, li {
  font-size: 1rem;
  line-height: 2;
}

@media screen and (min-width: 768px) {
  h1 {
    font-size: 3.75rem;
  }
  h2 {
    font-size: 3rem;
  }
  h3 {
    font-size: 2.25rem;
  }
  h4 {
    font-size: 1.5rem;
  }
  p, li {
    font-size: 1rem;
    line-height: 2;
  }
}
.heading {
  margin-bottom: 1.875rem;
}
.heading h2 {
  font-size: 0.8125rem;
  margin-bottom: 1rem;
  color: #3AABE6;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.heading h3 {
  font-size: 2rem;
}
.heading:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .heading h2 {
    font-size: 1rem;
  }
  .heading h3 {
    font-size: 3rem;
  }
}

.highlight {
  color: #E4A741;
}

* {
  box-sizing: border-box;
}

body {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  color: #313476;
  background-color: #F4F4FB;
}

.section {
  padding: 2.5rem 0;
}
@media screen and (min-width: 768px) {
  .section {
    padding: 3.125rem 0;
  }
}
@media screen and (min-width: 1280px) {
  .section {
    padding: 4.6875rem 0;
  }
}

.wrap {
  width: calc(100% - 48px);
  margin: auto;
}
@media screen and (min-width: 768px) {
  .wrap {
    width: 75%;
  }
}
@media screen and (min-width: 1280px) {
  .wrap {
    width: 1280px;
  }
}

.grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
  row-gap: 1.875rem;
}
@media screen and (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(8, 1fr);
  }
}
@media screen and (min-width: 1280px) {
  .grid {
    grid-template-columns: repeat(12, 1fr);
  }
}

.small-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}

.grid.align-h-center,
.small-grid.align-h-center {
  align-items: center;
}
.grid.relative,
.small-grid.relative {
  position: relative;
}

.auto-grid {
  --auto-grid-min-size: 16rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--auto-grid-min-size), 1fr));
  grid-gap: 1.25rem;
}

#hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding-top: calc(75px + 5rem);
  margin-bottom: 4.6875rem;
}
@media screen and (min-width: 768px) {
  #hero {
    padding-top: calc(150px + 7.5rem);
  }
}
#hero .hero-hook {
  grid-column: 1/-1;
  z-index: 2;
}
#hero .hero-hook p {
  grid-column: 1/-1;
  margin: 3.125rem 0;
}
@media screen and (min-width: 768px) {
  #hero .hero-hook {
    grid-column: span 6;
  }
}
@media screen and (min-width: 1280px) {
  #hero .hero-hook {
    grid-column: span 5;
  }
  #hero .hero-hook p {
    grid-column: span 5;
  }
}

#about .text-content {
  grid-row: 1/2;
  grid-column: 1/-1;
}
#about img {
  width: 100%;
  grid-column: 1/-1;
  grid-row: 2/3;
}
#about img:nth-of-type(2) {
  display: none;
}
@media screen and (min-width: 768px) {
  #about img {
    grid-column: span 4;
    grid-row: 2/3;
  }
  #about img:nth-of-type(2) {
    display: block;
  }
  #about .text-content {
    grid-column: 1/-1;
  }
}
@media screen and (min-width: 1280px) {
  #about {
    margin-bottom: 4.6875rem;
  }
  #about img:first-of-type {
    grid-column: 1/span 5;
    grid-row: 1/2;
  }
  #about img:nth-of-type(2) {
    grid-column: 4/span 3;
    align-self: end;
    margin-bottom: -4.6875rem;
    grid-row: 1/2;
  }
  #about .text-content {
    grid-column: 8/span 5;
  }
}

#vision .text-content, #vision img {
  grid-column: 1/-1;
}
#vision img {
  width: 100%;
}
#vision li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 0.3125rem;
  border-radius: 50em;
  background-color: #E4A741;
}
@media screen and (min-width: 768px) {
  #vision .text-content, #vision img {
    grid-row-start: 1;
  }
  #vision .text-content {
    z-index: 2;
    grid-column: 1/span 4;
  }
  #vision img {
    grid-column: 5/span 4;
  }
}
@media screen and (min-width: 1280px) {
  #vision .text-content, #vision img {
    grid-row-start: 1;
  }
  #vision .text-content {
    z-index: 2;
    grid-column: 1/span 5;
  }
  #vision img {
    grid-column: 7/span 6;
  }
}

#skills .text-content,
#skills .skills-list {
  grid-column: 1/-1;
}
#skills .skills-list p,
#skills .skills-list ul {
  grid-column: 1/-1;
}
#skills .skills-list ul li {
  display: flex;
  align-items: center;
  grid-column: 1/-1;
  padding: 0.625rem 1.25rem;
  margin-bottom: 1.25rem;
  border-radius: 0.625rem;
  line-height: 2;
  background: #ecedf7;
}
#skills .skills-list ul li:last-of-type {
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  #skills .skills-list ul li {
    grid-column: span 3;
  }
}
@media screen and (min-width: 1280px) {
  #skills .text-content {
    grid-column: span 4;
  }
  #skills .skills-list {
    grid-column: span 8;
  }
}

#polyvalence .text-content {
  width: 100%;
  margin-bottom: 1.875rem;
}
#polyvalence .text-content .heading, #polyvalence .text-content p {
  grid-column: 1/-1;
  margin: 0;
}
#polyvalence .card {
  padding: 0.625rem;
  grid-column: span 3;
}
#polyvalence .card:first-of-type {
  grid-column: span 6;
}
#polyvalence .card .img-card {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
#polyvalence .card h4 {
  padding-top: 0.625rem;
}
@media screen and (min-width: 768px) {
  #polyvalence .card {
    grid-column: span 4;
  }
  #polyvalence .card:first-of-type {
    grid-column: span 8;
  }
}
@media screen and (min-width: 1280px) {
  #polyvalence .text-content .heading {
    grid-column: span 5;
    margin: 0;
  }
  #polyvalence .text-content p {
    grid-column: 6/span 7;
  }
  #polyvalence .card {
    grid-column: span 3;
  }
  #polyvalence .card:first-of-type {
    grid-column: span 6;
  }
  #polyvalence .card h4 {
    grid-column: 3;
    padding: 0.625rem 1.25rem;
  }
}

#engagements .text-content,
#engagements .items-zone {
  grid-column: 1/-1;
}
#engagements .text-content {
  margin-bottom: 1.875rem;
}
#engagements .items-zone .item {
  grid-column: 1/-1;
  margin-bottom: 1.875rem;
}
#engagements .items-zone .item:first-of-type .item-text {
  margin-top: 0;
}
#engagements .items-zone .item .item-icon-square {
  display: none;
}
#engagements .items-zone .item .item-text {
  grid-column: 1/-1;
  margin-top: 1.875rem;
}
#engagements .items-zone .item .item-text i {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-right: 0.625rem;
  padding: 0.4375rem;
  color: #3AABE6;
  background: rgba(58, 171, 230, 0.2);
  border-radius: 3px;
}
#engagements .items-zone .item:last-of-type {
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  #engagements .items-zone {
    grid-column: 1/-1;
  }
  #engagements .items-zone .item .item-icon-square {
    display: block;
  }
  #engagements .items-zone .item .item-text {
    margin-top: 0;
    grid-column: span 5;
  }
  #engagements .items-zone .item .item-text i {
    display: none;
  }
  #engagements .items-zone .item:last-of-type {
    margin-bottom: 0;
  }
}
@media screen and (min-width: 1280px) {
  #engagements .text-content {
    grid-column: span 4;
    margin-bottom: 0;
  }
  #engagements .items-zone {
    grid-column: 7/span 6;
  }
  #engagements .items-zone .item {
    margin-bottom: 3.125rem;
  }
}

#projects .text-content {
  grid-column: 1/-1;
  margin-bottom: 1.875rem;
}
#projects .card {
  grid-column: span 3;
}
#projects .card .collab-projects {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
#projects .card .collab-projects img {
  min-width: 60%;
  max-width: 80%;
  max-height: 70%;
}
@media screen and (min-width: 768px) {
  #projects .text-content {
    grid-column: 2/span 6;
    margin-bottom: 3.125rem;
  }
  #projects .card {
    grid-column: span 4;
  }
}
@media screen and (min-width: 1280px) {
  #projects .text-content {
    grid-column: 4/span 6;
    margin-bottom: 3.125rem;
  }
  #projects .card {
    grid-column: span 4;
  }
}

#contact .text-content {
  grid-column: 1/-1;
  margin-bottom: 2.5rem;
}
#contact .text-content .item-text {
  grid-column: span 3;
}
#contact form {
  grid-column: 1/-1;
}
#contact form .input {
  grid-column: 1/-1;
  margin-bottom: 1.875rem;
}
#contact form .cta {
  grid-column: 1/-1;
}
@media screen and (min-width: 768px) {
  #contact form {
    grid-column: 1/-1;
  }
  #contact form .input {
    grid-column: 1/-1;
  }
  #contact form .input.half {
    grid-column: span 3;
  }
  #contact form .cta {
    grid-column: 4/span 3;
  }
}
@media screen and (min-width: 1280px) {
  #contact .text-content {
    grid-column: span 4;
  }
  #contact .text-content .small-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  #contact form {
    grid-column: 7/span 6;
  }
  #contact form .cta {
    grid-column: 4/span 3;
  }
}

article {
  grid-column: 1/-1;
}
article .back-to-site {
  display: inline-block;
  padding: 0.75rem;
  color: #313476;
  background-color: #ecedf7;
  border-radius: 0.625rem;
  transition: 0.2s ease-in-out;
}
article .back-to-site i {
  margin-right: 0.625rem;
}
article h1, article h2, article h3, article h4, article h5, article h6 {
  margin-bottom: 1.25rem;
  margin-top: 2.5rem;
}
article p {
  margin-bottom: 0.625rem;
}
@media screen and (min-width: 768px) {
  article {
    grid-column: 2/span 6;
  }
}
@media screen and (min-width: 768px) {
  article {
    grid-column: 3/span 8;
  }
}

header {
  position: absolute;
  width: 100%;
  top: 0;
  height: 5rem;
  z-index: 9;
}
header .wrap {
  display: flex;
  flex-direction: row;
  height: 100%;
  align-items: center;
  justify-content: space-between;
}
header #logo {
  height: calc(0.6 * 5rem);
}
header #logo img {
  height: 100%;
}
header nav {
  position: fixed;
  display: flex;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  transform: translateX(-100%);
  z-index: 9999;
  background-color: #F4F4FB;
  transition: transform 0.2s ease-in;
  opacity: 0;
}
header nav.open {
  opacity: 1;
  transform: translateX(0);
}
header nav #close-nav {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  top: 1.875rem;
  right: 1.875rem;
  width: 4rem;
  height: 4rem;
  border-radius: 1.25rem;
  background: #ecedf7;
  cursor: pointer;
}
header nav #close-nav i {
  font-size: 2rem;
  color: #313476;
}
header nav a {
  text-decoration: none;
}
header nav ul {
  width: 100%;
  padding: 0 2.5rem;
  align-self: center;
}
header nav ul li {
  display: block;
  width: 100%;
  font-size: 1.25rem;
  font-weight: 700;
  padding: 1.25rem 0;
  border-bottom: 1px solid #e5e6f4;
  color: #313476;
}
header nav ul li i {
  font-size: 1.25rem;
  margin-left: 0.3125rem;
}
@media screen and (min-width: 1280px) {
  header nav {
    position: relative;
    display: block;
    flex-grow: 2;
    transform: translateX(0);
    width: auto;
    height: auto;
    background-color: transparent;
    opacity: 1;
  }
  header nav.open {
    display: block;
  }
  header nav #close-nav {
    display: none;
  }
  header nav ul {
    width: auto;
    text-align: right;
    padding: 0;
  }
  header nav ul li {
    display: inline-flex;
    align-items: center;
    width: auto;
    padding: 0;
    margin: 0 0 0 2rem;
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: none;
    transition: 0.2s ease-in;
  }
  header nav ul li:hover {
    color: #E4A741;
  }
}
@media screen and (min-width: 768px) {
  header {
    height: 7.5rem;
  }
  header #logo {
    height: calc(0.6 * 7.5rem);
  }
  header #logo img {
    height: 100%;
  }
}

#hamburger {
  position: relative;
  display: block;
  left: 0;
  z-index: 999;
  width: calc(5rem * 0.5);
  height: calc(5rem * 0.382);
  cursor: pointer;
}
@media screen and (min-width: 1280px) {
  #hamburger {
    display: none;
  }
}
#hamburger span {
  display: block;
  position: absolute;
  width: 100%;
  height: 4px;
  background-color: #ffffff;
  transition: 0.2s ease-in-out;
}
#hamburger span:nth-of-type(2), #hamburger span:nth-of-type(3) {
  margin-top: calc((5rem * 0.382) / 2 - 1px);
  right: 0;
}
#hamburger span:last-of-type {
  bottom: 0;
}
#hamburger.is-active span:first-of-type {
  top: -5px;
  opacity: 0;
}
#hamburger.is-active span:last-of-type {
  bottom: -5px;
  opacity: 0;
}
#hamburger.is-active span:nth-of-type(2), #hamburger.is-active span:nth-of-type(3) {
  width: 100%;
}
#hamburger.is-active span:nth-of-type(2) {
  transform: rotate(45deg);
}
#hamburger.is-active span:nth-of-type(3) {
  transform: rotate(-45deg);
}

footer {
  padding: 1.875rem;
  text-align: center;
}
footer a {
  color: #313476;
}
footer img, footer p, footer ul {
  grid-column: 1/-1;
}
footer img {
  grid-column: 2/span 4;
  width: 100%;
  margin: auto;
}
footer ul a::after {
  content: "|";
  padding: 0 0.625rem;
}
footer ul a:last-of-type::after {
  content: "";
  padding: 0;
}
footer ul li {
  display: inline-block;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  footer img, footer p, footer ul {
    grid-column: 3/span 4;
  }
  footer img {
    width: 80%;
  }
}
@media screen and (min-width: 1280px) {
  footer img, footer p, footer ul {
    grid-column: 5/span 4;
  }
}

.cta {
  outline: none;
  text-decoration: none;
  border: none;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  background-color: #E4A741;
  padding: 1.25rem;
  text-transform: uppercase;
  box-shadow: 0px 20px 30px -10px rgba(228, 167, 65, 0.4);
  cursor: pointer;
}
.cta i {
  z-index: 2;
  margin-left: 3.125rem;
  font-size: 1.25rem;
}
@media screen and (min-width: 768px) {
  .cta {
    padding: 1.875rem;
  }
}

.caption-background {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: rgba(49, 52, 118, 0.5);
}
.caption-background.to-right {
  background: linear-gradient(to right, #313476 2.23%, rgba(49, 52, 118, 0.1));
}
.caption-background.to-top {
  background: linear-gradient(to top, #313476 2.23%, rgba(49, 52, 118, 0.1));
}
@media screen and (min-width: 1280px) {
  .caption-background.hero {
    background: linear-gradient(to right, #313476 2.23%, rgba(49, 52, 118, 0.1));
  }
}

.card {
  background-color: #ffffff;
  box-shadow: 0px 50px 70px -20px rgba(49, 52, 118, 0.4);
}

.text-content.center {
  text-align: center;
}
.text-content p, .text-content li {
  margin-bottom: 1.25rem;
}
.text-content p:last-of-type {
  margin-bottom: 0;
}
.text-content:last-child {
  margin-bottom: 0;
}

.item .item-icon-square {
  position: relative;
  grid-column: span 2;
  width: 100%;
  padding-top: 100%;
  box-shadow: 0px 20px 30px -10px rgba(58, 171, 230, 0.4);
}
.item .item-icon-square .item-icon {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(58, 171, 230, 0.2);
}
.item .item-icon-square .item-icon i {
  color: #3AABE6;
  font-size: 2.5rem;
}
.item .item-text h4 {
  margin-bottom: 0.625rem;
  letter-spacing: -1px;
}
.item .item-text h4, .item .item-text p {
  color: #313476;
}
@media screen and (min-width: 768px) {
  .item .item-icon-square {
    grid-column: span 1;
  }
}

.ratio {
  position: relative;
}
.ratio.hd {
  padding-top: 56.25%;
}
.ratio.hd.vertical {
  padding-top: 156.25%;
}
.ratio.golden {
  padding-top: 61.8%;
}
.ratio.golden.vertical {
  padding-top: 161.8%;
}
.ratio.cardratio {
  padding-top: 120%;
}

.shadow {
  box-shadow: 0px 50px 70px -20px rgba(49, 52, 118, 0.4);
}

label {
  font-size: 0.875rem;
  color: #313476;
}

input {
  border-radius: 0;
}

input[type=text],
input[type=password],
input[type=email],
input[type=phone],
input[type=number],
textarea {
  font-size: 1rem;
  color: #313476;
  background-color: transparent;
  border: none;
}
input[type=text]::-moz-placeholder, input[type=password]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=phone]::-moz-placeholder, input[type=number]::-moz-placeholder, textarea::-moz-placeholder {
  color: #9d9fd6;
}
input[type=text]:-ms-input-placeholder, input[type=password]:-ms-input-placeholder, input[type=email]:-ms-input-placeholder, input[type=phone]:-ms-input-placeholder, input[type=number]:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: #9d9fd6;
}
input[type=text]::placeholder,
input[type=password]::placeholder,
input[type=email]::placeholder,
input[type=phone]::placeholder,
input[type=number]::placeholder,
textarea::placeholder {
  color: #9d9fd6;
}
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=phone]:focus,
input[type=number]:focus,
textarea:focus {
  outline: none;
  border-color: #E4A741;
}

input[type=text],
input[type=password],
input[type=email],
input[type=phone],
input[type=number] {
  border-bottom: 0.1875rem solid;
  border-color: #e5e6f4;
  height: 3.125rem;
}

textarea {
  padding: 1.25rem;
  margin-top: 0.625rem;
  border: 0.1875rem solid;
  border-color: #e5e6f4;
  min-height: 12.5rem;
  resize: vertical;
}

.input label,
.input input,
.input textarea {
  width: 100%;
}

.custom-select {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 3.75rem;
  font-size: 1rem;
  border-radius: 0.625rem;
  overflow: hidden;
  background: #e5e6f4;
}
.custom-select select {
  position: absolute;
  width: 100%;
  height: 100%;
  padding: 0 1.25rem;
  border: none;
  color: #313476;
  font-size: 1rem;
  box-shadow: none;
  background: transparent;
  background-image: none;
  -webkit-appearance: none;
}
.custom-select i {
  position: absolute;
  right: 1.25rem;
  font-size: 1rem;
  color: #313476;
}

.textarea {
  width: 100%;
  overflow: hidden;
  resize: vertical;
  min-height: 6.25rem;
  padding: 1.875rem 0;
  line-height: 2;
}

@media screen and (min-width: 1280px) {
  .cta:hover {
    transition: 0.2s ease-in-out;
  }
  .cta:hover:hover {
    background-color: #d4901e;
  }
  .back-to-site:hover {
    background-color: #3AABE6;
    color: #ffffff;
  }
  footer li {
    transition: 0.2s ease-in-out;
  }
  footer li:hover {
    color: #E4A741;
  }
}/*# sourceMappingURL=style.css.map */