:root {
  --color-primary:#e67e22;
  --color-primary-rgb: 230, 126, 34;
  --color-primary-gradient-default: rgba(var(--color-primary-rgb),.43);
  --color-primary-dark:#cf6d17;
  --color-secondary: #34495e;
  --color-secondary-rgb: 52, 73, 94;
  --color-grey-1: #575757;
  --color-grey-2: #a3a3a3;
  --color-light-grey-1: #F8F8F8 ;
  --color-light-grey-2: #dfdfdf; }

/*
$color-primary : #e67e22;
$color-primary-dark:#cf6d17;
$color-secondary: #34495e;
$color-grey-1: #575757;
$color-grey-2: #a3a3a3;
$color-light-grey-1: #F8F8F8 ;
$color-light-grey-2 : #dfdfdf;
*/
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

body {
  box-sizing: border-box; }

html {
  font-size: 62.5%;
  box-sizing: border-box; }
  @media only screen and (max-width: 75em) {
    html {
      font-size: 50%; } }
  @media only screen and (max-width: 43.75em) {
    html {
      font-size: 40%; } }

.container {
  display: grid;
  grid-template-columns: [full-start] 1fr [middle-start] 114.6rem [middle-end] 1fr [full-end];
  display: flex !important;
  flex-direction: column; }

.row {
  max-width: 114.6rem;
  margin: 0 auto; }

ul {
  list-style: none; }

@font-face {
  font-family: "Nirmala";
  src: url("../font/Nirmala.ttf"); }

@font-face {
  font-family: "NirmalaB";
  src: url("../font/NirmalaB.ttf"); }

@font-face {
  font-family: "yugothic";
  src: url("../font/yugothic.ttf"); }

.heading-1 {
  font-size: 5rem;
  font-family: Nirmala;
  font-weight: 100;
  letter-spacing: 5px;
  line-height: 60px; }
  .heading-1--grey {
    color: var(--color-light-grey-2); }
  .heading-1--secondary {
    color: var(--color-secondary); }

.heading-2 {
  font-family: Nirmala;
  font-weight: 100;
  font-size: 4rem;
  letter-spacing: 3px;
  color: var(--color-light-grey-2); }

.heading-3 {
  font-family: "NirmalaB";
  font-size: 3rem;
  color: var(--color-secondary);
  text-align: center;
  margin-bottom: 8rem; }
  .heading-3::after {
    content: "";
    display: block;
    background-color: var(--color-primary);
    margin: 0 auto;
    margin-top: 5px;
    width: 100px;
    height: 3px; }

.heading-4 {
  font-size: 2rem;
  color: var(--color-secondary);
  font-family: "NirmalaB";
  margin-bottom: 2.5rem; }

.heading-5 {
  font-size: 2rem;
  letter-spacing: 2.5px;
  color: var(--color-primary);
  font-family: Nirmala;
  font-weight: 100;
  margin-bottom: 3rem; }
  @media only screen and (max-width: 37.5em) {
    .heading-5 {
      font-size: 1.5rem;
      letter-spacing: 1.5px; } }

.u-margin-auto {
  margin: 0 auto; }

.projects-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, 35rem);
  grid-auto-rows: 29rem;
  grid-gap: 4rem;
  justify-items: center;
  justify-content: center; }

.project {
  cursor: pointer;
  width: 100%;
  height: 100%;
  border-radius: 5px;
  position: relative;
  transform: scale(0.95);
  transition: all .2s; }
  .project:hover {
    transform: scale(1); }
  .project__link {
    width: 100%;
    height: 100%; }
  .project__img-wrapper {
    width: 100%;
    height: 100%; }
    .project__img-wrapper::after {
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      background: linear-gradient(rgba(217, 220, 223, 0.47), rgba(217, 220, 223, 0.47));
      z-index: 9999;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      border-radius: 5px; }
  .project__img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    border-radius: 5px;
    position: relative; }
    .project__img::after {
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      background: linear-gradient(rgba(217, 220, 223, 0.47), rgba(217, 220, 223, 0.47));
      z-index: 9999;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      border-radius: 5px; }

.subject {
  display: grid;
  grid-template-columns: 68% 1fr;
  grid-auto-rows: min-content;
  grid-row-gap: 5px; }
  .subject:not(:last-of-type) {
    margin-bottom: 9rem; }
  @media only screen and (max-width: 37.5em) {
    .subject {
      grid-template-columns: 1fr; } }
  .subject__title {
    font-family: "NirmalaB";
    font-size: 2rem;
    letter-spacing: 1.5px;
    color: var(--color-secondary); }
  .subject__subtitle {
    font-family: Nirmala;
    font-weight: 100;
    font-weight: 200;
    font-size: 2rem;
    letter-spacing: 1.8px;
    color: var(--color-grey-1);
    grid-column: 1 / 2; }
  .subject__date {
    margin-left: auto;
    font-family: Nirmala;
    font-size: 1.5rem;
    letter-spacing: 1.5px;
    color: var(--color-primary-dark);
    grid-column: 2 / 3; }
    @media only screen and (max-width: 37.5em) {
      .subject__date {
        grid-column: 1 / 2;
        margin: 0; } }
  .subject__description {
    margin-top: 2rem;
    font-family: Nirmala;
    font-weight: 100;
    font-size: 2rem;
    color: var(--color-secondary);
    grid-column: 1 / 2; }
  .subject__btn:visited, .subject__btn:link {
    grid-row: 4 / 5;
    margin-top: 3.5rem;
    color: #fff;
    text-decoration: none;
    font-size: 2.3rem;
    font-family: Nirmala;
    font-weight: 100;
    background-color: var(--color-primary);
    display: inline-block;
    justify-self: start;
    padding: .7rem 4rem;
    border-radius: 100px; }

.popup-overlay {
  position: fixed;
  height: 100vh;
  width: 100%;
  z-index: 50;
  background-color: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden; }
  @supports (-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px)) {
    .popup-overlay {
      -webkit-backdrop-filter: blur(10px);
      backdrop-filter: blur(10px);
      background-color: rgba(0, 0, 0, 0.8); } }

.popup {
  width: 95%;
  z-index: 60;
  background-color: #fff;
  padding-right: 1rem;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  grid-template-columns: 45rem 1fr;
  grid-column-gap: 5rem;
  align-items: center;
  border-radius: 5px;
  visibility: hidden;
  opacity: 0;
  transition: all .5s; }
  @media only screen and (max-width: 81.25em) {
    .popup .subject {
      grid-template-columns: 1fr; } }
  @media only screen and (max-width: 62.5em) {
    .popup {
      grid-template-columns: 30rem 1fr; } }
  @media only screen and (max-width: 51.875em) {
    .popup {
      grid-template-columns: 1fr;
      padding: 2rem 1rem; } }
  .popup__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(auto-fit, min-content);
    grid-gap: 2rem;
    margin-top: 2.5rem; }
    @media only screen and (max-width: 43.75em) {
      .popup__form {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center; } }
  .popup .form__group {
    display: flex;
    flex-direction: column;
    width: 100%; }
  .popup .form__input-group {
    display: flex;
    align-items: center;
    border: 1px solid var(--color-grey-2);
    border-radius: 3px;
    width: 100%;
    margin-bottom: .5rem; }
  .popup .form__message-group {
    grid-column: 1 / 3;
    width: 100%; }
  .popup .form__input {
    padding: .7rem;
    width: auto;
    height: 3.2rem;
    border: none;
    font-family: "yugothic"; }
    .popup .form__input:focus, .popup .form__input:active {
      border: none;
      outline: none; }
  .popup .form__icon {
    font-size: 2rem;
    color: var(--color-primary);
    padding: .5rem; }
  .popup .form__message {
    grid-column: 1 /3;
    border: 1px solid var(--color-grey-2);
    width: 100%;
    border-radius: 3px;
    font-size: 1.5rem;
    font-family: "yugothic";
    padding: 1rem; }
    .popup .form__message:active, .popup .form__message:focus {
      border: 1px solid var(--color-grey-2);
      outline: none; }
  .popup .form__submit {
    outline: 0;
    border: 0;
    grid-column: 1 / 3;
    margin-top: .5rem;
    color: #fff;
    text-decoration: none;
    font-size: 2.3rem;
    font-family: Nirmala;
    font-weight: 100;
    background-color: white;
    color: var(--color-primary);
    display: inline-block;
    justify-self: center;
    padding: .7rem 4rem;
    border-radius: 100px;
    border: 1px solid var(--color-primary);
    cursor: pointer;
    transition: all .2s; }
    .popup .form__submit:hover, .popup .form__submit:active, .popup .form__submit:focus {
      transform: translateY(-3px);
      background-color: var(--color-primary);
      color: #fff;
      box-shadow: 0 3px 2px rgba(0, 0, 0, 0.5); }
  .popup .form__error {
    color: red;
    font-family: Nirmala;
    font-size: 1.5rem; }
  .popup__img-box {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr; }
    @media only screen and (max-width: 51.875em) {
      .popup__img-box {
        display: none; } }
  .popup__img {
    width: 100%; }
  .popup__icon {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    font-size: 2rem;
    color: rgba(var(--color-secondary), 0.5); }
    .popup__icon:hover {
      color: var(--color-primary); }

.popup--form {
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 5rem; }
  @media only screen and (max-width: 25em) {
    .popup--form {
      width: 95%; } }
  @media only screen and (max-width: 21.875em) {
    .popup--form {
      padding: 5rem 0; } }

.popup__close {
  cursor: pointer; }

.theme-changer {
  position: fixed;
  background-color: #fff;
  left: 0;
  top: 30%;
  width: 200px;
  height: 200px;
  padding: 1rem;
  transform: translateX(-100%);
  z-index: 9999;
  box-shadow: 4px 4px 0 0 rgba(110, 110, 110, 0.15);
  transition: all .5s; }
  @media only screen and (max-width: 31.25em) {
    .theme-changer {
      display: none; } }

.color-list {
  display: flex;
  flex-wrap: wrap;
  padding: 1rem 0; }

.color {
  width: 2rem;
  height: 2rem;
  border-radius: 100%;
  margin: .2rem;
  cursor: pointer; }

.theme-changer__icon {
  text-decoration: none;
  background-color: #ffff;
  padding: .5rem;
  font-size: 2rem;
  position: absolute;
  left: 100%;
  top: 50%;
  box-shadow: 4px 4px 0 0 rgba(110, 110, 110, 0.15);
  transform: translateY(-50%); }

.theme-changer.active {
  transform: translateX(0); }

.footer {
  grid-row: 6 / 7;
  grid-column: full-start / full-end;
  background-color: var(--color-primary);
  width: 100%; }
  .footer__content {
    position: relative;
    display: grid;
    height: 100%;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 100%;
    align-items: center; }
  .footer__list {
    border-top: 1.5px solid var(--color-secondary);
    padding-top: 1.5rem;
    margin-left: 3rem;
    width: 75%;
    list-style: none;
    display: flex;
    align-items: center; }
    @media only screen and (max-width: 37.5em) {
      .footer__list {
        margin-top: 2rem;
        border: 0;
        flex-direction: column; } }
  .footer__item {
    cursor: pointer;
    padding: .3rem;
    transition: all .2s; }
    .footer__item:not(:last-of-type) {
      margin-right: 5.5rem; }
    .footer__item:hover {
      transform: rotate(5deg) scale(1.2);
      box-shadow: 0 2px 2px rgba(0, 0, 0, 0.4); }
      .footer__item:hover .footer__link {
        color: var(--color-secondary); }
    @media only screen and (max-width: 37.5em) {
      .footer__item:not(:last-of-type) {
        margin-bottom: 1rem; } }
  .footer__link, .footer__item, .footer__copyright {
    text-decoration: none;
    font-family: Nirmala;
    font-size: 2rem;
    letter-spacing: 1.5px;
    color: #fff; }
    @media only screen and (max-width: 56.25em) {
      .footer__link, .footer__item, .footer__copyright {
        font-size: 1.5rem; } }
  .footer__link {
    transition: all .2s; }
  .footer__copyright {
    border-top: 1.5px solid var(--color-secondary);
    width: 65%;
    margin-left: auto;
    margin-top: 3rem;
    margin-right: 6rem;
    padding-top: 1.5rem; }
    @media only screen and (max-width: 37.5em) {
      .footer__copyright {
        width: 80%; } }

.header {
  height: 53.240740740740740740740740740741vh;
  grid-column: full-start / full-end;
  background-image: linear-gradient(var(--color-primary-gradient-default), var(--color-primary-gradient-default)), url("/ressources/images/hero.webp");
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center; }

.heading {
  text-align: center; }

.about {
  grid-column: middle-start / middle-end;
  display: block;
  padding-top: 5rem;
  padding: 5rem 3rem 0 3rem; }

.presentation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-row: min-content;
  grid-gap: 1.5rem; }
  .presentation__text {
    font-size: 2rem;
    font-family: Nirmala;
    font-weight: 100;
    color: var(--color-secondary); }
  @media only screen and (max-width: 43.75em) {
    .presentation {
      grid-template-columns: 1fr; } }

.skills {
  grid-row: 3 / 4;
  grid-column: full-start / full-end;
  padding-bottom: 15rem; }
  .skills__box {
    max-width: 100rem;
    margin: 0 auto;
    background: #fff;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2);
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid rgba(var(--color-secondary), 0.2);
    border-radius: 10px;
    margin-top: -15rem;
    padding: 4.5rem 1rem 15rem 1rem;
    position: relative; }
    @media only screen and (max-width: 62.5em) {
      .skills__box {
        max-width: max-content;
        grid-column-gap: 3rem; } }
    .skills__box::after {
      content: "";
      display: block;
      width: 1px;
      height: 95%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background-color: rgba(var(--color-secondary-rgb), 0.2); }

.barre {
  width: 100%;
  height: 25rem;
  background-color: var(--color-primary); }

.skill {
  text-align: center; }
  .skill__icon {
    font-size: 10rem;
    color: var(--color-primary);
    margin-bottom: 2rem; }
  .skill__info {
    font-size: 1.8rem;
    font-family: Nirmala;
    font-weight: 100;
    color: var(--color-secondary);
    letter-spacing: .8px;
    margin-bottom: 4rem; }

.formations {
  grid-row: 4 / 5;
  grid-column: full-start / full-end;
  background-color: var(--color-light-grey-1);
  padding: 2rem 2rem; }

.projects {
  grid-row: 5 / 6;
  grid-column: middle-start / middle-end;
  padding: 2.5rem 0 40rem 0; }
  @media only screen and (max-width: 56.25em) {
    .projects {
      padding-bottom: 20rem; } }
