/* ==========================================================
   DENICH'OR — feuille de style unique
   Palette minérale (roche / filon), typo système, zéro
   ressource externe : aucun appel réseau vers un tiers.
   ========================================================== */

:root{
  --roche:#1F272E;
  --roche-2:#2C3740;
  --ardoise:#6A757E;
  --papier:#EFF1EC;
  --papier-2:#E2E5DD;
  --blanc:#FBFCFA;
  --filon:#A8762A;
  --filon-clair:#E3BE63;
  --mousse:#3D5A4C;

  --max:1060px;
  --serif:Georgia,'Iowan Old Style','Palatino Linotype',Palatino,serif;
  --sans:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
}

*{box-sizing:border-box;}

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

body{
  margin:0;
  background:var(--papier);
  color:var(--roche);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.65;
}

.enveloppe{
  max-width:var(--max);
  margin:0 auto;
  padding:0 22px;
}

/* ---------- typographie ---------- */

h1,h2,h3{
  font-family:var(--sans);
  font-weight:800;
  letter-spacing:-0.025em;
  line-height:1.1;
  margin:0 0 .5em;
}

h1{font-size:clamp(2.1rem,6vw,3.6rem);}
h2{font-size:clamp(1.5rem,3.4vw,2.1rem);margin-top:2.4em;}
h3{font-size:1.15rem;letter-spacing:-0.01em;margin-top:2em;}

p{margin:0 0 1.1em;}

a{color:var(--roche);text-underline-offset:3px;text-decoration-color:var(--filon);}
a:hover{color:var(--filon);}

a:focus-visible,button:focus-visible{
  outline:3px solid var(--filon);
  outline-offset:3px;
  border-radius:2px;
}

.sourdine{color:var(--ardoise);}

.etiquette{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ardoise);
  margin:0 0 .9em;
  display:block;
}

.chapeau{
  font-size:1.16rem;
  color:var(--roche-2);
  max-width:56ch;
}

/* ---------- signature : les strates ---------- */

.strates{
  display:flex;
  height:7px;
  margin:3.2rem 0;
  overflow:hidden;
  border-radius:1px;
}
.strates i{display:block;height:100%;}
.strates i:nth-child(1){flex:5;background:var(--roche);}
.strates i:nth-child(2){flex:2;background:var(--mousse);}
.strates i:nth-child(3){flex:1;background:var(--filon);}
.strates i:nth-child(4){flex:3;background:var(--papier-2);}

/* ---------- en-tête ---------- */

.entete{
  border-bottom:1px solid var(--papier-2);
  background:var(--papier);
}
.entete .enveloppe{
  display:flex;
  flex-wrap:wrap;
  gap:14px 26px;
  align-items:baseline;
  padding-top:20px;
  padding-bottom:20px;
}

.marque{
  font-family:var(--sans);
  font-weight:800;
  font-size:1.32rem;
  letter-spacing:-0.03em;
  text-decoration:none;
  color:var(--roche);
  margin-right:auto;
}
.marque span{color:var(--filon);}
.marque:hover{color:var(--roche);}

.menu{
  display:flex;
  flex-wrap:wrap;
  gap:6px 20px;
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.menu a{text-decoration:none;color:var(--ardoise);}
.menu a:hover,.menu a[aria-current="page"]{color:var(--roche);}
.menu a[aria-current="page"]{border-bottom:2px solid var(--filon);}

/* ---------- héros ---------- */

.heros{padding:64px 0 8px;}
.heros h1{max-width:16ch;}

/* ---------- la coupe de prix (élément signature) ---------- */

.coupe{
  background:var(--roche);
  color:var(--blanc);
  border-radius:3px;
  padding:28px 26px 24px;
  margin:2.6rem 0 1rem;
}
.coupe .etiquette{color:var(--filon-clair);}

.couche{margin-bottom:18px;}
.couche:last-of-type{margin-bottom:0;}

.couche-tete{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:14px;
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:#AEB8C0;
  margin-bottom:7px;
}
.couche-tete b{
  font-family:var(--sans);
  font-size:1.02rem;
  letter-spacing:-0.01em;
  color:var(--blanc);
}

.barre{
  height:13px;
  background:#38434C;
  border-radius:2px;
  overflow:hidden;
}
.barre i{
  display:block;
  height:100%;
  width:var(--w,50%);
  background:#7E8B95;
  transform-origin:left center;
  animation:pousse .9s cubic-bezier(.22,.7,.3,1) both;
}
.couche--reel .barre i{background:var(--papier-2);}
.couche--vraie .barre i{background:var(--filon-clair);}

.couche:nth-of-type(2) .barre i{animation-delay:.12s;}
.couche:nth-of-type(3) .barre i{animation-delay:.24s;}

@keyframes pousse{from{transform:scaleX(0);}to{transform:scaleX(1);}}

.coupe-note{
  font-family:var(--mono);
  font-size:.73rem;
  line-height:1.6;
  color:#96A1AA;
  margin:20px 0 0;
  border-top:1px solid #38434C;
  padding-top:14px;
}

/* ---------- grille de cartes ---------- */

.grille{
  display:grid;
  gap:20px;
  grid-template-columns:repeat(auto-fit,minmax(268px,1fr));
  margin:1.6rem 0 0;
  padding:0;
  list-style:none;
}

.carte{
  background:var(--blanc);
  border:1px solid var(--papier-2);
  border-left:4px solid var(--filon);
  border-radius:3px;
  padding:22px 20px;
}
.carte h3{margin-top:0;}
.carte p{margin-bottom:.7em;font-size:.98rem;}
.carte .lien-fort{
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--filon);
}
.carte .lien-fort:hover{color:var(--roche);}

.carte--sobre{border-left-color:var(--mousse);}

/* ---------- listes ---------- */

.contenu ul,.contenu ol{margin:0 0 1.3em;padding-left:1.2em;}
.contenu li{margin-bottom:.5em;}

.reperes{
  list-style:none;
  padding:0;
  margin:1.4rem 0;
  border-top:1px solid var(--papier-2);
}
.reperes li{
  display:flex;
  gap:16px;
  padding:13px 0;
  border-bottom:1px solid var(--papier-2);
  margin:0;
}
.reperes .quand{
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--filon);
  flex:0 0 132px;
  padding-top:3px;
}
.reperes .quoi{flex:1;font-size:.99rem;}

/* ---------- encadré ---------- */

.encadre{
  background:var(--blanc);
  border:1px solid var(--papier-2);
  border-radius:3px;
  padding:20px 22px;
  margin:1.8rem 0;
}
.encadre p:last-child{margin-bottom:0;}
.encadre .etiquette{color:var(--mousse);}

/* ---------- article ---------- */

.contenu{max-width:66ch;}
.contenu h2{margin-top:2em;}

.date{
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ardoise);
}

/* ---------- pied ---------- */

.pied{
  margin-top:70px;
  border-top:1px solid var(--papier-2);
  background:var(--blanc);
  padding:34px 0 46px;
  font-size:.92rem;
}
.pied-liens{
  display:flex;
  flex-wrap:wrap;
  gap:8px 22px;
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.pied-liens a{text-decoration:none;color:var(--ardoise);}
.pied-liens a:hover{color:var(--filon);}
.pied p{margin:0 0 .5em;color:var(--ardoise);font-size:.88rem;max-width:70ch;}

/* ---------- divers ---------- */

.tableau-simple{
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
  margin:1.4rem 0;
}
.tableau-simple th,.tableau-simple td{
  text-align:left;
  padding:11px 12px;
  border-bottom:1px solid var(--papier-2);
  vertical-align:top;
}
.tableau-simple th{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ardoise);
  font-weight:400;
}

@media (max-width:560px){
  body{font-size:17px;}
  .heros{padding-top:44px;}
  .reperes li{flex-direction:column;gap:4px;}
  .reperes .quand{flex:none;}
}

@media (prefers-reduced-motion:reduce){
  .barre i{animation:none;}
  *{transition:none !important;}
}
