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

  /* Base color declarations */

  --primary-h: 209;
  --primary-s: 100;
  --primary-l: 20;

  --secondary-h: 207;
  --secondary-s: 100;
  --secondary-l: 39;

  --primary: hsl(var(--primary-h), calc(var(--primary-s) * 1%), calc(var(--primary-l) * 1%)); /* #003466 alias Darkblue */
  --secondary: hsl(var(--secondary-h), calc(var(--secondary-s) * 1%), calc(var(--secondary-l) * 1%)); /* #006EC7 alias Greco blue*/
  --red: hsla(9, 84%, 45%, 1); /* #D42E12 */
  --grey: hsla(0, 0%, 61%, 1); /* #9B9B9B */
  --dark-grey: hsla(0, 0%, 19%, 1); /* #313131 */
  --background-white: hsla(0, 0%, 98%, 1); /* #F9F9F9 */
  --purple: hsla(248, 24%, 25%, 1); /* #353150 */
  --dark-green: hsla(52, 40%, 28%, 1); /* #635B2A */
  --green: hsla(124, 41%, 32%, 1); /* #317436 */
  --white: hsla(0, 0%, 100%, 1);
  --black: hsla(0, 0%, 0%, 1);
  --blue: hsla(192, 32.468%, 15.098%, 1); /* #1A2E33 */
  --light-green: hsla(84, 61%, 39%, 1); /* #6FA027 */
  --light-blue: hsla(205, 87%, 44%, 1); /* #0F81D2 */
  --yellow: hsla(52, 71%, 59%, 1); /* #E1CD4B */
  --blue-2: hsla(173, 100%, 40%, 1); /* #00CBB2 */
  /* 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-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: 4.688rem;

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

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

  /* UI */

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

  /* MISC */

  --transition-time: 0.25s;
}
svg {
  margin-top: -1px;
}
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);
}

.starts-offscreen {
  transform: translateX(100%);
}

.starts-offscreen.is-open {
  transform: translateX(0);
}

.auto-grid {
  --min-col-size: 20rem;
  --gap: 1rem;

  display: grid;
  gap: var(--gap);

  grid-template-columns: repeat(auto-fit, minmax(min(var(--min-col-size), 100%), 1fr));
}

.component-cta.component-cta--cta-white-rounded-red {
  display: flex;
  height: 3.125rem;
  padding: 0.9375rem 1.5625rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.625rem;

  border-radius: 4.6875rem;
  background: var(--red);
  border-color: var(--red);

  color: var(--background-white);
  text-align: center;
  font-family: var(--font-family-firaSans);
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  text-transform: uppercase;
}

@media (min-width: 64rem /* 1024px */) {
  :root {
    --header-height: 6.25rem;
  }
}
