:root{
  color-scheme: light;
  --craie:#FAF6EE;
  --papier:#FFFCF6;
  --calcaire:#F0E8D9;
  --pierre:#6B6154;
  --ombre:#241F17;
  --terracotta:#A34E2E;
  --terracotta-pale:#F6E5DA;
  --lichen:#6B7327;
  --lichen-pale:#ECEEDA;
  --ciel:#35617F;
  --filet:#E0D6C3;
  --filet-clair:#EFE8DA;
  --humide:#C9BCA6;
  --col:1060px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{
  margin:0;background:var(--craie);color:var(--ombre);
  font-family:"Newsreader",Georgia,serif;font-weight:400;font-size:16.5px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--col);margin:0 auto;padding-inline:24px}
/* Le contenu du moteur porte .moteur : tout ce qui pourrait déteindre sur le
   gabarit du site (liens, pied de page, marges) y est cantonné. */
.moteur{padding-top:22px;padding-bottom:60px}

h1,h2,h3,.cond,.seg button,.chip,.rank,.score,.hours,.mono{font-family:"Barlow Condensed","Helvetica Neue",Arial,sans-serif}
.mono,.chip,.rank,.hours,.coord{font-family:"IBM Plex Mono",ui-monospace,monospace}
h1{font-size:clamp(34px,5.4vw,52px);line-height:.98;margin:0;font-weight:700;letter-spacing:.005em;text-transform:uppercase;text-wrap:balance}
h2{font-family:"Barlow Condensed",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
   font-size:23px;margin:0 0 10px}
.lede{margin:14px 0 0;max-width:62ch;font-size:17px;font-weight:300;line-height:1.6;color:var(--ombre)}

/* ---- ouverture de page ----
   Le bandeau de marque (barre de menus + enseigne Verti'Calcaire) vient
   désormais du gabarit du site : ce fichier ne dessine plus que le contenu du
   moteur. Les deux règles ci-dessous ne servent qu'au repli, quand le module
   tourne sans le site autour. */
.seul{padding-top:26px}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--pierre);margin:0 0 6px}
.page-title{margin:0}

/* ---- strate ---- */
.strate{display:flex;flex-direction:column;gap:3px;margin:36px 0 26px}
.strate i{display:block;background:var(--filet)}
.strate i:nth-child(1){height:3px}
.strate i:nth-child(2){height:1px;background:var(--filet-clair)}
.strate i:nth-child(3){height:2px}

/* ---- reponse ---- */
.answer{background:var(--terracotta-pale);border-left:4px solid var(--terracotta);
  padding:16px 20px;margin:24px 0 0}
.answer .k{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--terracotta);display:block;margin-bottom:5px}
.answer p{margin:0;font-size:18px;font-weight:300;line-height:1.45}
.answer b{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:23px;
  text-transform:uppercase;letter-spacing:.01em}

/* ---- controles ---- */
.controls{display:flex;flex-wrap:wrap;gap:18px 26px;align-items:flex-end;
  background:var(--papier);border:1px solid var(--filet);padding:16px 18px;margin-top:24px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field .lab{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--pierre)}
select,input[type=text],#npa{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:var(--ombre);
  background:var(--papier);border:1px solid var(--filet);border-radius:0;padding:7px 9px}
#npa{width:190px}
#npa.bad{border-color:var(--lichen);background:var(--lichen-pale)}
.hint{font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--lichen);margin-top:-2px}
.lien{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  background:none;border:0;border-bottom:1px solid var(--terracotta);color:var(--terracotta);
  padding:0 0 1px;cursor:pointer}
.stale{background:var(--lichen-pale);border-left:4px solid var(--lichen);color:var(--ombre);
  padding:12px 16px;margin:18px 0 0;font-size:14.5px;font-weight:300;max-width:none}
.stale b{font-weight:500}
input[type=range]{width:150px;accent-color:var(--terracotta)}
:focus-visible{outline:2px solid var(--terracotta);outline-offset:2px}
.seg{display:flex;flex-wrap:wrap;border:1px solid var(--filet);background:var(--papier)}
.seg button{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:15px;
  text-transform:uppercase;letter-spacing:.04em;border:0;background:transparent;color:var(--pierre);
  padding:8px 14px;cursor:pointer;white-space:nowrap;border-right:1px solid var(--filet)}
.seg button:last-child{border-right:0}
.seg button[aria-pressed=true]{background:var(--terracotta);color:var(--craie)}
.readout{font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ombre)}

.legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:16px 0 18px;
  font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--pierre)}
.key{display:inline-flex;align-items:center;gap:7px}
.sw{width:15px;height:9px;display:inline-block;border:1px solid var(--filet)}
.sw-soleil{background:var(--terracotta)}
.sw-ombre{background:var(--calcaire)}
.sw-mouille{background:var(--pierre)}
.sw-humide{background:var(--humide)}
.paire{display:flex;gap:8px;align-items:center}
.fleche{color:var(--pierre)}
.coord{display:block;color:var(--pierre);font-size:13px;margin-top:7px}

/* ---- liste ---- */
.rows{border:1px solid var(--filet);background:var(--papier)}
details.crag{border-bottom:1px solid var(--filet-clair)}
details.crag:last-child{border-bottom:0}
details.crag>summary{list-style:none;cursor:pointer}
details.crag>summary::-webkit-details-marker{display:none}
.row{display:grid;grid-template-columns:26px minmax(150px,1fr) 214px 1fr 54px;gap:16px;
  align-items:center;padding:13px 18px}
.row:hover{background:var(--craie)}
details.crag[open] .row{background:var(--calcaire)}
.rank{font-size:12px;color:var(--pierre);font-variant-numeric:tabular-nums}
.nm b{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:21px;line-height:1.05;
  text-transform:uppercase;letter-spacing:.015em;display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nm small{display:block;font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--pierre);
  margin-top:3px;font-variant-numeric:tabular-nums}
.nm small .niv{font-style:normal;color:var(--terracotta);font-weight:600}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:500;letter-spacing:.02em;
  border:1px solid var(--filet);padding:3px 7px;color:var(--pierre);white-space:nowrap;background:var(--papier)}
.chip.sec{border-color:var(--filet)}
.chip.humide{background:var(--humide);border-color:var(--humide);color:var(--ombre)}
.chip.mouille{background:var(--pierre);border-color:var(--pierre);color:var(--craie)}
.chip.low{border-color:var(--lichen);color:var(--lichen);background:var(--lichen-pale)}

.track{position:relative;height:19px;background:var(--calcaire);overflow:hidden}
.seg-sun{position:absolute;top:0;bottom:0;background:var(--terracotta)}
.slotmark{position:absolute;top:0;bottom:0;border-left:1px solid var(--ombre);border-right:1px solid var(--ombre)}
.rockbar{display:flex;height:5px;background:var(--calcaire);margin-top:2px}
.rockbar i{display:block;height:100%}
.hours{display:flex;justify-content:space-between;font-family:"IBM Plex Mono",monospace;
  font-size:9.5px;color:var(--pierre);margin-top:4px;letter-spacing:.02em}
.score{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:28px;line-height:1;
  text-align:right;color:var(--ombre);font-variant-numeric:tabular-nums}
.crag:first-child .score{color:var(--terracotta)}
.score span{display:block;font-family:"IBM Plex Mono",monospace;font-size:9px;font-weight:400;
  color:var(--pierre);letter-spacing:.12em;text-transform:uppercase;margin-top:4px}

.detail{padding:4px 18px 22px 60px;background:var(--craie);border-top:1px solid var(--filet-clair)}
.detail p{margin:14px 0 0;font-size:15px;font-weight:300;line-height:1.55;max-width:64ch;color:var(--ombre)}
.detail b{font-weight:500}
.figwrap{overflow-x:auto;margin-top:12px}

.note{font-size:16px;font-weight:300;line-height:1.6;max-width:66ch;margin:0}
.note+.note{margin-top:12px}
.note b,.note strong{font-weight:500}
ul.tight{margin:12px 0 0;padding-left:20px}
ul.tight li{margin-bottom:9px;font-size:15.5px;font-weight:300;line-height:1.55;max-width:66ch}
ul.tight li strong{font-weight:500}
.moteur a{color:var(--ciel)}
.moteur footer{margin-top:14px;font-family:"IBM Plex Mono",monospace;font-size:11px;line-height:1.7;
  color:var(--pierre);max-width:72ch;letter-spacing:.01em}

@media (max-width:840px){
  .row{grid-template-columns:24px minmax(0,1fr) 54px;grid-template-areas:"r n p" ". c c" ". t t";
       row-gap:10px;padding:13px 14px;gap:12px}
  .row>*{min-width:0}
  .rank{grid-area:r}.nm{grid-area:n}.score{grid-area:p}.chipcell{grid-area:c}.trackcell{grid-area:t}
  .detail{padding-left:18px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
