:root {
  --jgv-fond: #e9ece7;
  --jgv-papier: #f8faf5;
  --jgv-encre: #17201c;
  --jgv-sourd: #4d5c54;
  --jgv-filet: #aeb9b2;
  --jgv-jaune: #f2c300;
  --jgv-bleu: #2f5fa7;
  --jgv-signal: #b64b2a;
  --jgv-nuit: #1c2923;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--jgv-fond); color: var(--jgv-encre); font: 18px/1.58 Charter, 'Bitstream Charter', Cambria, Georgia, serif; }
img { max-width: 100%; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--jgv-bleu); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid var(--jgv-jaune); outline-offset: 3px; }
.jgv-saut { position: absolute; left: -999px; }
.jgv-saut:focus { left: 1rem; top: 1rem; z-index: 4; background: var(--jgv-jaune); padding: .5rem; }
.jgv-fronton { min-height: 70px; display: flex; align-items: center; gap: 2rem; padding: .75rem max(5vw, 1.2rem); border-bottom: 1px solid var(--jgv-filet); background: var(--jgv-papier); }
.jgv-marque { font: 700 1.45rem/1 'Gill Sans', 'Trebuchet MS', sans-serif; text-decoration: none; letter-spacing: -.04em; white-space: nowrap; }
.jgv-marque span { background: var(--jgv-jaune); padding: .08em .2em; }
.jgv-nav { display: flex; align-items: center; gap: 1.2rem; margin-left: auto; font: 600 .86rem/1 'Gill Sans', 'Trebuchet MS', sans-serif; }
.jgv-nav a { text-decoration: none; }
.jgv-action { display: inline-block; background: var(--jgv-jaune); color: var(--jgv-encre); padding: .7rem .9rem; font: 700 .8rem/1 'Gill Sans', 'Trebuchet MS', sans-serif; text-decoration: none; border: 0; cursor: pointer; }
.jgv-action:hover { color: var(--jgv-encre); background: #ffd63b; }
.jgv-menu { display: none; }
.jgv-etabli { max-width: 1240px; margin: auto; padding: 0 max(5vw, 1.2rem); }
.jgv-hero { height: 300px; position: relative; overflow: hidden; color: #f8faf5; }
.jgv-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jgv-voile { position: absolute; inset: 0; background: rgba(23, 32, 28, .82); }
.jgv-hero-texte { position: relative; max-width: 980px; padding: 1.45rem max(5vw, 1.2rem); }
.jgv-rubrique { margin: 0; font: 700 .75rem/1.2 'DIN Alternate', 'Arial Narrow', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--jgv-bleu); }
.jgv-hero .jgv-rubrique { color: var(--jgv-jaune); }
h1, h2, h3 { font-family: 'Gill Sans', 'Gill Sans MT', 'Trebuchet MS', sans-serif; line-height: 1.05; letter-spacing: -.035em; }
h1 { max-width: 25ch; margin: .25rem 0 .55rem; font-size: clamp(2.1rem, 3.8vw, 3.55rem); }
h2 { margin: .25rem 0 1.1rem; font-size: clamp(1.8rem, 3vw, 2.8rem); }
h3 { margin: .25rem 0; font-size: 1.35rem; }
.jgv-hero h1 { max-width: 25ch; }
.jgv-hero-texte > p:not(.jgv-rubrique) { margin: .5rem 0; }
.jgv-hero-texte > p:last-child { display: flex; align-items: center; flex-wrap: wrap; gap: .9rem; margin-top: .8rem; }
.jgv-lien-clair { color: #f8faf5; }
.jgv-controles { padding-top: 1.7rem; }
.jgv-entete { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.jgv-entete .jgv-rubrique { min-width: 120px; }
.jgv-categories { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--jgv-filet); border: 1px solid var(--jgv-filet); }
.jgv-categories article { background: var(--jgv-papier); padding: .85rem; }
.jgv-categories article:last-child { grid-column: span 2; }
.jgv-categories img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: .7rem; }
.jgv-categories p { margin: .25rem 0; color: var(--jgv-sourd); font-size: .92rem; }
.jgv-categories h3 a, .jgv-releves h3 a, .jgv-flux h3 a { text-decoration: none; }
.jgv-cadran { display: grid; grid-template-columns: 1fr 1.8fr; gap: 3rem; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.jgv-chiffres { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--jgv-filet); border: 1px solid var(--jgv-filet); }
.jgv-chiffres p { margin: 0; padding: 1rem; background: var(--jgv-papier); font-family: 'DIN Alternate', 'Arial Narrow', sans-serif; }
.jgv-chiffres strong { font-size: 1.5rem; color: var(--jgv-bleu); }
.jgv-chiffres .jgv-action { align-self: stretch; display: grid; place-items: center; }
.jgv-flux { padding-bottom: 3.5rem; }
.jgv-flux article { display: grid; grid-template-columns: 220px 1fr; gap: 1.3rem; padding: 1rem 0; border-top: 1px solid var(--jgv-filet); }
.jgv-flux img { width: 220px; height: 124px; object-fit: cover; }
.jgv-flux p { margin: .25rem 0; color: var(--jgv-sourd); font-size: .95rem; }
.jgv-rappel { border-top: 5px solid var(--jgv-signal); padding-top: 1.4rem; padding-bottom: 3.5rem; }
.jgv-confiance { border-top: 1px solid var(--jgv-filet); padding-top: 2.2rem; padding-bottom: 4rem; }
.jgv-fil { display: flex; align-items: center; gap: .55rem; padding: 1.4rem 0; color: var(--jgv-sourd); font: 600 .77rem/1.3 'DIN Alternate', 'Arial Narrow', sans-serif; }
.jgv-rubrique-head { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; padding-bottom: 3rem; }
.jgv-rubrique-head img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.jgv-rubrique-head h1 { margin: 0; }
.jgv-releves { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--jgv-filet); border: 1px solid var(--jgv-filet); margin-bottom: 2rem; }
.jgv-releves > h2 { grid-column: 1 / -1; margin: 0; padding: 1rem; background: var(--jgv-papier); }
.jgv-releves article { background: var(--jgv-papier); padding: 1rem; }
.jgv-releves img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.jgv-releves p { color: var(--jgv-sourd); font-size: .9rem; }
.jgv-note { margin: 2rem 0; padding: 1.3rem 1.4rem; border-left: 5px solid var(--jgv-bleu); background: #e8f0fb; }
.jgv-note h2 { font-size: 1.55rem; }
.jgv-article { max-width: 920px; margin: auto; padding-bottom: 4rem; }
.jgv-article, .jgv-corps, .jgv-corps > *, .jgv-texte { min-width: 0; }
.jgv-chapo { max-width: 46rem; font-size: 1.25rem; }
.jgv-article figure { margin: 2rem 0; }
.jgv-article figure img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.jgv-article figcaption { padding-top: .5rem; color: var(--jgv-sourd); font-size: .85rem; }
.jgv-corps { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 3rem; }
.jgv-sommaire { font: 600 .82rem/1.4 'Gill Sans', 'Trebuchet MS', sans-serif; }
.jgv-sommaire a { display: block; margin: .35rem 0; color: var(--jgv-sourd); }
.jgv-porte { margin: 2rem 0; padding: 1rem 1.2rem; border-left: 5px solid var(--jgv-signal); background: #f4dfd8; }
.jgv-porte strong, .jgv-source strong { font-family: 'Gill Sans', 'Trebuchet MS', sans-serif; }
.jgv-source { margin: 2rem 0; padding: 1.1rem; border: 1px solid var(--jgv-bleu); background: #e8f0fb; font-size: .9rem; }
.jgv-source strong { color: var(--jgv-bleu); }
.jgv-table { max-width: 100%; overflow-x: auto; border: 1px solid var(--jgv-filet); }
table { width: 100%; min-width: 460px; border-collapse: collapse; font-size: .9rem; }
th, td { padding: .7rem; border-bottom: 1px solid var(--jgv-filet); text-align: left; }
th { font-family: 'Gill Sans', 'Trebuchet MS', sans-serif; }
.jgv-suite { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--jgv-filet); }
.jgv-suite h2 { margin-bottom: .3rem; font-size: 1.45rem; }
.jgv-calcul, .jgv-check { margin: 2rem 0; padding: 1.3rem; border: 1px solid var(--jgv-filet); background: var(--jgv-papier); }
.jgv-calcul form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.jgv-calcul label { font: 600 .9rem/1.3 'Gill Sans', 'Trebuchet MS', sans-serif; }
.jgv-calcul input[type=number] { display: block; width: 100%; margin-top: .35rem; padding: .65rem; border: 1px solid var(--jgv-encre); background: #fff; font: inherit; }
.jgv-calcul fieldset { display: grid; grid-column: 1 / -1; gap: .5rem; border: 1px solid var(--jgv-filet); }
.jgv-calcul fieldset label { font-family: Charter, Georgia, serif; font-weight: 400; }
.jgv-result { display: block; margin-top: 1rem; padding: 1rem; background: #e8f0fb; font-weight: 700; }
.jgv-check li { margin: .7rem 0; }
.jgv-texte { max-width: 720px; }
.jgv-pied { display: grid; grid-template-columns: 1.5fr 2fr 1fr; gap: 2rem; padding: 2rem max(5vw, 1.2rem); border-top: 1px solid var(--jgv-filet); background: var(--jgv-papier); font-size: .86rem; }
.jgv-pied p { margin: .3rem 0; color: var(--jgv-sourd); }
.jgv-pied nav { display: flex; flex-wrap: wrap; gap: .7rem 1rem; font-family: 'Gill Sans', 'Trebuchet MS', sans-serif; }
@media (max-width: 46rem) {
  .jgv-fronton { gap: 1rem; flex-wrap: wrap; }
  .jgv-menu { display: block; margin-left: auto; padding: .45rem .65rem; border: 1px solid var(--jgv-encre); background: transparent; }
  .jgv-nav { display: none; width: 100%; margin: 0; flex-wrap: wrap; gap: .8rem 1rem; }
  .jgv-nav[data-open=true] { display: flex; }
  .jgv-hero { height: auto; min-height: 360px; }
  .jgv-hero-texte { padding: 1.35rem max(5vw, 1.2rem) 1.6rem; }
  .jgv-hero h1 { max-width: 15ch; font-size: clamp(2rem, 10vw, 2.55rem); }
  .jgv-hero-texte > p:last-child { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .jgv-lien-clair { margin-left: 0; }
  .jgv-categories, .jgv-releves { grid-template-columns: 1fr; }
  .jgv-categories article:last-child { grid-column: auto; }
  .jgv-categories img { aspect-ratio: 16 / 9; }
  .jgv-cadran, .jgv-rubrique-head { grid-template-columns: 1fr; gap: 1.2rem; }
  .jgv-chiffres { grid-template-columns: 1fr 1fr; }
  .jgv-flux article { grid-template-columns: 110px 1fr; gap: .9rem; }
  .jgv-flux img { width: 110px; height: 88px; }
  .jgv-corps { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .jgv-sommaire { padding-top: 1rem; border-top: 1px solid var(--jgv-filet); }
  .jgv-calcul form { grid-template-columns: 1fr; }
  .jgv-pied { grid-template-columns: 1fr; }
  .jgv-entete { display: block; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  .jgv-fronton, .jgv-pied, .jgv-fil, .jgv-menu, .jgv-suite { display: none; }
  .jgv-check { border: 0; }
  .jgv-etabli { max-width: none; padding: 0; }
}
