/* ===========================
   Titres
   =========================== */
h1 {
  text-align: left;
  font-size: 18px;
  font-weight: 400;
  text-transform: lowercase;
  margin: 0 0 18px 0;
  color: black;
  letter-spacing: normal;
}

h1::first-letter {
  text-transform: uppercase;
}

.h1-root {
  text-align: left;
  font-size: 18px;
  font-weight: 400;
  text-transform: lowercase;
  margin: 22px 0 12px;
  color: black;
  position: relative;
}

.h1-root::first-letter {
  text-transform: uppercase;
}

.h1-root a { color: inherit; text-decoration: none; }
.h1-root a:hover { color: var(--accent); }

.h2-light {
  text-align: left;
  font-size: 14px;
  font-weight: 400;
  text-transform: lowercase;
  line-height: 1.25;
  margin: 14px 0 8px;
  color: black;
  margin-left: 0;
  position: relative;
}

.h2-light::first-letter {
  text-transform: uppercase;
}

.h2-light::before {
  display: none;
}

.h3-light {
  text-align: left;
  font-size: 14px;
  font-weight: 400;
  text-transform: lowercase;
  line-height: 1.2;
  margin: 10px 0 6px;
  color: black;
  margin-left: 0;
  letter-spacing: normal;
}

.h3-light::first-letter {
  text-transform: uppercase;
}

/* ===== Améliorations typographiques & liens ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap');

html {
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
}

body{
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  line-height: 1.6;
  letter-spacing: 0.1px;
}

h1, .h1-root {
  line-height: 1.35;
}

.h2-light,
.h3-light{
  line-height: 1.35;
}

.sitemap-list li{
  line-height: 1.45;
  margin: 7px 0;
}

/* Liens avec soulignement animé from-left */
a:link,
a:visited{
  color: #000;
  text-decoration: none;
  position: relative;
}

a::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s cubic-bezier(.25,.8,.25,1);
  will-change: transform;
}

a:hover::after,
a:focus-visible::after{
  transform: scaleX(1);
}

a:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 6px;
}

@media print{
  a{ color:#000; text-decoration:none; }
}

/* ===========================
   Termes à mettre en avant
   =========================== */
.brand-caps {
  font-weight: 800;
  text-transform: uppercase;
}

h1 .brand-caps,
.h1-root .brand-caps,
.h2-light .brand-caps,
.h3-light .brand-caps,
a .brand-caps {
  text-transform: uppercase !important;
  font-weight: 800;
}
