:root {
  /**
    *
    * COLORS
    *
    **/

  /* Base color declarations */

  --primary-h: 219;
  --primary-s: 79;
  --primary-l: 66;

  --secondary-h: 0;
  --secondary-s: 79;
  --secondary-l: 72;

  --primary: hsl(var(--primary-h), calc(var(--primary-s) * 1%), calc(var(--primary-l) * 1%));
  --secondary: hsl(var(--secondary-h), calc(var(--secondary-s) * 1%), calc(var(--secondary-l) * 1%));
  --white: hsla(0, 0%, 100%, 1); /* #FFFFFF */
  --white2: hsl(0, 0%, 100%, 0.25); /* #FFFFFF */
  --white3: hsla(0, 0%, 100%, 0.8); /* #FFFFFF */
  --white4: hsla(0, 0%, 100%, 0.5); /* #FFFFFF */
  --black: hsla(0, 0%, 0%, 1); /* #000000 */
  --black2: hsla(0, 0%, 0%, 0.25); /*#000000 */
  --text-color: hsla(0, 0%, 15%, 1); /* #262626 */
  --text-color2: hsl(0, 0, 13, 1); /*#222222*/
  --grey: hsla(0, 1%, 34%, 1); /* #575757 */
  --grey2: hsla(0, 1%, 34%, 0.3); /* #575757 */
  --grey3: hsla(215, 14%, 34%, 1); /* #4A5560 */
  --grey4: hsla(0, 1%, 34%, 0.04); /* #585656 */
  --grey5: hsla(0, 0%, 96%, 1); /* #F5F5F5 */
  --grey6: hsla(0, 0%, 53%, 1); /* #878787 */
  --blue: hsla(202, 100%, 39%, 1); /* #0071B8 */
  --blue2: hsla(202, 100%, 39%, 0.8); /* #0071B8 */
  --blue3: hsla(202, 100%, 39%, 0.25); /* #0071B8 */
  --blue4: hsla(219, 75%, 35%, 1); /* #17479E */
  --blue5: hsla(202, 100%, 39%, 0.7); /* #0071B8 */
  --blue6: hsla(202, 100%, 39%, 0.2); /* #0071B8 */
  --blue-light: hsla(201, 63%, 94%, 1); /* #E5F2F9 */
  --blue7: hsla(202, 100%, 30%, 1); /* #00639B */
  --blue8: hsla(202, 100%, 39%, 1); /* #0080c8 */
  --dark-blue: hsla(201, 100%, 19%, 1); /* #004063 */
  --orange: hsla(25, 94%, 48%, 1); /* #F27C2A */
  --orange2: hsla(25, 94%, 48%, 0.1); /* #EC6707 */
  --light-grey: hsla(0, 0%, 94%, 1); /* #F0F0F0 */
  --light-grey2: hsla(0, 0%, 72%, 1); /* #B7B7B7 */
  --light-grey-with-alpha: hsla(0, 0%, 94%, 0.5); /* #F0F0F0 */
  --yellow: hsla(57, 100%, 51%, 1); /* #FFF200 */
  --box-shadow: hsla(0, 0%, 0%, 0.12);
  --disabled-grey-button: hsla(0, 0%, 44%, 1);
  --green-light: hsla(110, 63%, 87%, 1); /* #D1F3CA */
  --green: hsla(110, 76%, 27%, 1); /* #227810 */

  /* Support moyen des syntaxes de couleurs relatives.
    Ok pour start le projet mais remplacer les teintes par des couleurs declarées en attendant un meilleur suport

    https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_colors/Relative_colors

    IMPORTANT : garder un niveau d'abstraction suffisant pour les couleurs pour pouvoir passer facilement d'un projet à l'autre :
    primary-secondary-accent -> ok pour passer d'un projet à un autre.
    A l'inverse, blue-red-yellow ne passeront pas
    */

  --primary-200: hsl(var(--primary-h), calc(var(--primary-s) * 1%), 20%);
  --primary-400: hsl(var(--primary-h), calc(var(--primary-s) * 1%), 40%);
  --primary-600: hsl(var(--primary-h), calc(var(--primary-s) * 1%), 60%);
  --primary-800: hsl(var(--primary-h), calc(var(--primary-s) * 1%), 80%);

  --primary-40a: hsla(var(--primary-h), calc(var(--primary-s) * 1%), calc(var(--primary-l) * 1%), 0.4);

  --secondary-200: hsl(var(--secondary-h), calc(var(--secondary-s) * 1%), 20%);
  --secondary-400: hsl(var(--secondary-h), calc(var(--secondary-s) * 1%), 40%);
  --secondary-600: hsl(var(--secondary-h), calc(var(--secondary-s) * 1%), 60%);
  --secondary-800: hsl(var(--secondary-h), calc(var(--secondary-s) * 1%), 80%);

  --secondary-40a: hsla(var(--secondary-h), calc(var(--secondary-s) * 1%), calc(var(--secondary-l) * 1%), 0.4);

  /**
    *
    * MEDIA QUERIES
    *
    **/
  --mq-mobile: 23.438rem; /* 375px */
  --mq-large-mobile: 35.5rem; /* 568px */
  --mq-tablet: 48rem; /* 768px */
  --mq-desktop: 64rem; /* 1024px */
  --mq-large-desktop: 85.375rem; /* 1366px */
  --mq-x-large-desktop: 105rem; /* 1680px */

  /**
    *
    * LAYOUT
    *
    **/

  --padding-x: 1.25rem;
  --padding-y: 2.5rem;
  --header-height: 4rem;

  --min-external-margin: 1rem;
  --min-content-width: calc(100vw - var(--min-external-margin) * 2);
  --max-content-width: 90rem;
  --content-width: clamp(var(--min-content-width), 90vw, var(--max-content-width));

  --page-padding-top: var(--header-height);

  /* UI */

  --button-radius: 0.75rem;
  --Border-button-rounded: 2.5rem;
  --Border-border-width: 0.063rem;

  --dropdown-arrow-background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M19 9L12 16L5 9' stroke='%23575656' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  /* MISC */

  --transition-time: 0.25s;
}

html {
  line-height: 1.25rem;
  font-weight: 400;
  color: var(--text-color);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%; /* Safari/Chrome, other WebKit */
  -moz-text-size-adjust: 100%; /* Firefox, other Gecko */
  text-size-adjust: 100%; /* Opera/IE 8+ */
  text-rendering: optimizelegibility;
}

body {
  font-size: calc(var(--base-font-size) * 1px);
  font-family: var(--font-family);
  max-width: 100vw;
  overflow-x: hidden;
}

* {
  color: inherit;
}

a {
  text-decoration: none;
}

a,
button,
select,
input[type='checkbox'],
label[for] {
  cursor: pointer;
}

input::placeholder {
  font-family: var(--font-family);
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  color: var(--text);
  opacity: 0.5;
}

input:focus::placeholder {
  opacity: 1;
}

input:focus-visible {
  border: 0.125rem solid var(--primary-40a);
}

.content-width {
  width: var(--content-width);
  max-width: var(--max-content-width);
  margin: 0 auto;
}

/* COLOURING */

.color--white {
  color: var(--white);
}
.background-color--white {
  background-color: var(--white);
}

.color--black {
  color: var(--black);
}
.background-color--black {
  background-color: var(--black);
}

.color--primary {
  color: var(--primary);
}
.color--primary-200 {
  color: var(--primary-200);
}
.color--primary-400 {
  color: var(--primary-400);
}
.color--primary-600 {
  color: var(--primary-600);
}
.color--primary-800 {
  color: var(--primary-800);
}

.background-color--primary {
  background-color: var(--primary);
}
.background-color--primary-200 {
  background-color: var(--primary-200);
}
.background-color--primary-400 {
  background-color: var(--primary-400);
}
.background-color--primary-600 {
  background-color: var(--primary-600);
}
.background-color--primary-800 {
  background-color: var(--primary-800);
}

.color--secondary {
  color: var(--secondary);
}
.color--secondary-200 {
  color: var(--secondary-200);
}
.color--secondary-400 {
  color: var(--secondary-400);
}
.color--secondary-600 {
  color: var(--secondary-600);
}
.color--secondary-800 {
  color: var(--secondary-800);
}

.background-color--secondary {
  background-color: var(--secondary);
}
.background-color--secondary-200 {
  background-color: var(--secondary-200);
}
.background-color--secondary-400 {
  background-color: var(--secondary-400);
}
.background-color--secondary-600 {
  background-color: var(--secondary-600);
}
.background-color--secondary-800 {
  background-color: var(--secondary-800);
}
