:root {
  --text-color: #222222;
  --primary-blue: rgb(0, 121, 193);
  --lighter-blue: #dce8f6;
  --light-blue: #84b1de;
  --dark-blue: #006dac;
  --blue-darker: #00478d;
  --primary-red: #ee1c25;
  --dark-red: #dd1b25;
  --gray: #8e8e8e;
  --bg-dark-gray: #8e8e8e;
  --bg-light-gray: #f8f9fa;
  --bg-gray: #aeaeae;
  --bg-white: #ffffff;
  --green-success: #4caf50;
  --green-stock: green;
  --orange-appro: orange;
  --acr-nord: #3470bf;
  --acr-nord-dark: rgb(24, 63, 162);
  --acr-centre: #d92929;
  --acr-centre-dark: rgb(150, 22, 22);
  --acr-idf: #ff914d;
  --acr-idf-dark: rgb(197, 101, 41);
  --acr-aquitaine: #3b568c;
  --acr-aquitaine-dark: rgb(27, 53, 105);
  --gradient-primary: linear-gradient(135deg, rgb(0, 121, 193), rgba(238, 28, 37, 0.8));
  --landing-text-color: #666666;
}

* {
  /*font-family: 'Open Sans', sans-serif;*/
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: 'Montserrat', sans-serif;
}

h1 {
  font-weight: 700;
  line-height: 1.15;
  padding: 0.625rem;
}

h2 {
  font-weight: 700;
  line-height: 1.2;
}

h3 {
  font-weight: 600;
  line-height: 1.25;
}

h4 {
  font-weight: 600;
  line-height: 1.3;
}

h5 {
  font-weight: 600;
  line-height: 1.35;
}

/* Surcharge fs-* : max = Bootstrap, min = +10% mobile */
.fs-1 { font-size: clamp(2.125rem, 4vw, 2.5rem) !important; }      /* 34px → 40px */
.fs-2 { font-size: clamp(1.875rem, 3.5vw, 2rem) !important; }      /* 30px → 32px */
.fs-3 { font-size: clamp(1.625rem, 3vw, 1.75rem) !important; }     /* 26px → 28px */
.fs-4 { font-size: clamp(1.375rem, 2.5vw, 1.5rem) !important; }    /* 22px → 24px */
.fs-5 { font-size: clamp(1.125rem, 2vw, 1.25rem) !important; }     /* 18px → 20px */
.fs-6 { font-size: clamp(0.9375rem, 1.5vw, 1rem) !important; }     /* 15px → 16px */

/* Titres identiques */
h1 { font-size: clamp(2.125rem, 4vw, 2.5rem); }
h2 { font-size: clamp(1.875rem, 3.5vw, 2rem); }
h3 { font-size: clamp(1.625rem, 3vw, 1.75rem); }
h4 { font-size: clamp(1.375rem, 2.5vw, 1.5rem); }
h5 { font-size: clamp(1.125rem, 2vw, 1.25rem); }
h6 { font-size: clamp(0.9375rem, 1.5vw, 1rem); }

.small { font-size: clamp(0.8125rem, 1.8vw, 0.875rem) !important; }

.mini-small { 
  font-size: clamp(0.75rem, 1.7vw, 0.8125rem) !important; 
  /* 12px → 13px - parfait entre les deux */
}

.extra-small { font-size: clamp(0.6875rem, 1.6vw, 0.75rem) !important; }

html {
  font-size: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: var(--bg-light-gray);
}

html, body {
    width: 100%;
    margin: 0;
    /*overflow-x: hidden;*/
}

main {
  flex-grow: 1;
}

body, p, li, a, input, textarea {
  font-size: clamp(0.9375rem, 1.5vw, 1rem);
  color: var(--text-color);
}

.container {
  background-color: var(--bg-white);
  max-width: 1500px !important;
}

/********* TEXT COLORS ********/

.txt-primary-blue {
  color: var(--primary-blue);
}

.txt-primary-red {
  color: var(--primary-red);
}

.txt-default {
  color: var(--text-color);
}

.txt-green-stock {
  color: var(--green-stock);
}

.txt-orange-appro {
  color: var(--orange-appro);
}

.txt-landing {
  color: var(--landing-text-color);
}

/********* BG COLORS ********/

.bg-primary-blue {
  background-color: var(--primary-blue);
}

.bg-light-blue {
  background-color: var(--light-blue);
}

.bg-lighter-blue {
  background-color: var(--lighter-blue);
}

/* Disable default number input spinners */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.form-control:focus {
    border-color: var(--primary-blue);
    outline: none;
    box-shadow: 0 0 0 2px var(--light-blue-faded);
}

.form-control[readonly] {
    background-color: #fff;
    cursor: pointer;
  }

.form-control::placeholder {
    font-style: italic;
    font-size: clamp(0.75rem, 1.7vw, 0.8125rem) !important; 
    color: #adb5bd;
}

.form-select {
  width: 100%;
  padding: 0.9rem 1.2rem;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  font-size: clamp(0.85rem, 2.2vw, 1.05rem);
  font-family: 'Montserrat', sans-serif;
  color: #333;
  background: white;
  transition: all 0.3s ease;
  height: 50px;
  line-height: 1.5;
}

.form-select option {
  color: #333;
  padding: 0.5rem;
}

.form-select option[value=""] {
  color: #9ca3af;
}