/* ==========================================================================
   Design tokens — extracted from Figma "Maquette Site Internet"
   Fluid sizes interpolate between the mobile frame (390px) and the
   desktop content width (1300px). All sizes are in rem: on desktop the root
   font size follows the screen width, so the whole layout scales like the
   1920px Figma frame (100% at 1920px, 80% at 1536px, 75% at 1440px and below).
   ========================================================================== */

@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Open Sans";
  src: url("../fonts/opensans-latin.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Open Sans";
  src: url("../fonts/opensans-latin-ext.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

html {
  font-size: 100%; /* 16px: mobile and tablet portrait keep the Figma mobile sizes */
}

@media (min-width: 900px) {
  html {
    /* Desktop: scale with the screen, as if the 1920px design were zoomed to fit */
    font-size: clamp(12px, 100vw / 120, 16px);
  }
}

:root {
  /* Colours (Figma variables) */
  --black: #000000;
  --black-87: #212121;
  --black-68: #525252;
  --black-54: #757575;
  --black-12: #e0e0e0;
  --black-6: #f0f0f0;
  --black-3: #f7f7f7;
  --white: #ffffff;
  --blue-87: #3788d8;
  --green-87: #1eac44;
  --border-card: #999999;
  --border-tile: #c2c2c2;

  /* Font families */
  --font-display: "Montserrat", system-ui, sans-serif;
  --font-text: "Open Sans", system-ui, sans-serif;

  /* Type scale — mobile → desktop */
  --fs-hero: clamp(1.75rem, 0.7856rem + 3.956vw, 4rem);       /* Hero M 28 → Hero 64 */
  --fs-h1: clamp(1.125rem, 0.3212rem + 3.297vw, 3rem);          /* Title HM1 18 → Title H1 48 */
  --fs-h4: clamp(0.875rem, 0.5rem + 1.538vw, 1.75rem);             /* Title HM4 14 → Title H4 28 */
  --fs-h3: clamp(0.875rem, 0.5rem + 1.538vw, 1.75rem);             /* Title HM3 14 → Title H3 28 */
  --fs-text: clamp(0.75rem, 0.4288rem + 1.319vw, 1.5rem);        /* Text M 12 → Text 24 */
  --fs-text-alt: clamp(0.75rem, 0.5088rem + 0.989vw, 1.3125rem);    /* Text M 12 → Text Alt 21 */
  --fs-button: clamp(0.875rem, 0.7681rem + 0.44vw, 1.125rem);
  --fs-nav: 1rem;
  --fs-menu: 1.3125rem;
  --fs-footer: clamp(0.6875rem, 0.5537rem + 0.549vw, 1rem);      /* Figma mobile 9px raised to 11px for legibility */

  /* Layout */
  --content-max: 78.75rem;
  --footer-max: 64rem;
  --gutter: 1.5rem;
  --header-h: 3.875rem;
  --main-top: 3rem;          /* gap header → first section: 48 mobile / 96 desktop */
  --section-gap: 1.5rem;       /* gap between sections: 24 mobile / 108 desktop */
  --footer-gap: 3.25rem;        /* gap last section → footer: 52 mobile / 96 desktop */

  /* Radii & shadows */
  --radius-pill: 61.25rem;
  --radius-card: 0.5rem;
  --radius-tile: 0.25rem;
  --shadow-header: 0 0.75rem 2rem 1.25rem var(--white);
  --shadow-card: 0.1875rem 0.25rem 0.5rem var(--black-6);
  --shadow-card-m: 0.1875rem 0.25rem 0.9375rem -0.25rem rgba(12, 12, 13, 0.1);

  /* Motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-reveal: 900ms;
}

@media (min-width: 900px) {
  :root {
    --header-h: 5.5rem;
    --main-top: 6rem;
    --section-gap: 6.75rem;
    --footer-gap: 6rem;
  }
}
