/* =========================================================================
   Il Sentiero e la Tenda — novaragesci.it
   Direction : Piedmont camp canvas. Toile beige, vert foret, brun corde,
   titres serif chauds. Squelette portail-rubriques rhabille integralement :
   classes et variables prefixees std-, champ lexical du sentier et du camp.
   Aucune ressource distante, typographies systeme uniquement.
   ========================================================================= */

:root {
  --std-toile:       #f4ecdc;
  --std-toile-appui: #ece0c8;
  --std-toile-creux: #e2d3b4;
  --std-encre:       #2c2618;
  --std-encre-douce: #6d6046;
  --std-filet:       #c9b78f;
  --std-accent:      #2e5b34;
  --std-accent-clair:#3f7a47;
  --std-corde:       #8a5a2b;
  --std-sur-accent:  #f7f2e4;
  --std-focus:       #8a5a2b;
  --std-fond-sombre: #22331f;
  --std-encre-inverse: #f4ecdc;
  --std-sent-1: #2e5b34;
  --std-sent-2: #8a5a2b;
  --std-sent-3: #4a6b8a;
  --std-sent-teinte: var(--std-accent);
  --std-titre-police: Georgia, "Palatino Linotype", "Book Antiqua", "Nimbus Roman", serif;
  --std-texte-police: "Segoe UI", Verdana, Geneva, Tahoma, "DejaVu Sans", sans-serif;
  --std-regie-police: "Trebuchet MS", Verdana, Geneva, sans-serif;
  --std-mesure: 38rem;
  --std-halle: 72rem;
  --std-gouttiere: clamp(1rem, 4vw, 2.5rem);
  --std-respiration: clamp(2.2rem, 5vw, 4rem);
  --std-rail: 5.5rem;
  --std-corps: 1.02rem;
  --std-interligne: 1.72;
  --std-trait: 1px;
  --std-arrondi: 3px;
}

*, *::before, *::after { box-sizing: border-box; }

html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  background: var(--std-toile);
  color: var(--std-encre);
  font-family: var(--std-texte-police);
  font-size: var(--std-corps);
  line-height: var(--std-interligne);
  overflow-wrap: break-word;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  font-family: var(--std-titre-police);
  font-weight: 700;
  line-height: 1.22;
  margin: 0 0 .6em;
  letter-spacing: .005em;
  color: var(--std-encre);
}
h1 { font-size: clamp(1.85rem, 1.2rem + 2.6vw, 2.9rem); }
h2 { font-size: clamp(1.35rem, 1.05rem + 1.3vw, 1.9rem); }
h3 { font-size: clamp(1.12rem, 1rem + .6vw, 1.35rem); }
h4 { font-size: 1.02rem; }

p, ul, ol, figure, table, blockquote { margin: 0 0 1.2em; }

a { color: var(--std-accent); text-underline-offset: .18em; }
a:hover { color: var(--std-accent-clair); }

:focus-visible { outline: 2px solid var(--std-focus); outline-offset: 3px; }

hr { border: 0; border-top: var(--std-trait) solid var(--std-filet); margin: var(--std-respiration) 0; }

/* Lien d'evitement */
.std-raccourci {
  position: absolute; left: -9999px; top: 0;
  background: var(--std-accent); color: var(--std-sur-accent);
  padding: .7rem 1.1rem; z-index: 50;
}
.std-raccourci:focus { left: .75rem; top: .75rem; }

/* ================= CONTENEURS ================= */
.std-halle { width: 100%; max-width: var(--std-halle); margin-inline: auto; padding-inline: var(--std-gouttiere); }
.std-halle--lecture { max-width: calc(var(--std-mesure) + 2 * var(--std-gouttiere)); }
.std-quai { padding-block: var(--std-respiration); }
.std-quai + .std-quai { border-top: var(--std-trait) solid var(--std-filet); }
.std-quai--creuse { background: var(--std-toile-creux); }
.std-quai--foret { background: var(--std-fond-sombre); color: var(--std-encre-inverse); }
.std-quai--foret h2, .std-quai--foret h3 { color: var(--std-encre-inverse); }
.std-quai--foret a { color: var(--std-sur-accent); }
.std-quai--foret .std-quai__note { color: var(--std-toile-appui); }
.std-quai__tete {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: .6rem 1.5rem;
  margin-bottom: 1.8rem; padding-bottom: .7rem;
  border-bottom: 2px solid var(--std-accent);
}
.std-quai__tete h2 { margin: 0; }
.std-quai__note {
  font-family: var(--std-regie-police); font-size: .85rem;
  letter-spacing: .08em; text-transform: uppercase; color: var(--std-encre-douce);
}
.std-quai__chapeau { max-width: 62ch; color: var(--std-encre-douce); margin: 0 0 1.8rem; font-size: 1.04rem; }
.std-quai--foret .std-quai__chapeau { color: var(--std-toile-appui); }

/* ================= FRONTON ================= */
.std-fronton { background: var(--std-fond-sombre); color: var(--std-encre-inverse); border-bottom: 4px solid var(--std-corde); }
.std-fronton__corps {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: .8rem 2rem; padding-block: 1rem;
}
.std-enseigne { text-decoration: none; color: inherit; display: block; }
.std-enseigne__nom {
  font-family: var(--std-titre-police); font-size: 1.5rem; font-weight: 700;
  line-height: 1.1; display: block; color: var(--std-sur-accent);
}
.std-enseigne__mention {
  font-family: var(--std-regie-police); font-size: .76rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--std-toile-appui); display: block; margin-top: .25rem; opacity: .85;
}
.std-itineraire { position: relative; }
.std-itineraire__toggle { position: absolute; opacity: 0; pointer-events: none; }
.std-itineraire__handle {
  display: none; font-family: var(--std-regie-police); font-size: .9rem;
  letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
  border: 1px solid var(--std-toile-appui); color: var(--std-sur-accent);
  padding: .45rem .9rem; border-radius: var(--std-arrondi);
}
.std-itineraire ul {
  display: flex; flex-wrap: wrap; gap: .3rem 1.2rem;
  list-style: none; margin: 0; padding: 0;
}
.std-itineraire a {
  font-family: var(--std-regie-police); font-size: .88rem; letter-spacing: .04em;
  color: var(--std-encre-inverse); text-decoration: none;
  padding: .25rem 0; border-bottom: 2px solid transparent; display: inline-block;
}
.std-itineraire a:hover, .std-itineraire a[aria-current="page"] { border-bottom-color: var(--std-toile-appui); }
@media (max-width: 54rem) {
  .std-itineraire__handle { display: inline-block; }
  .std-itineraire ul { display: none; width: 100%; margin-top: .8rem; }
  .std-itineraire__toggle:checked ~ ul { display: grid; gap: .2rem; }
  .std-itineraire ul a { display: block; padding: .5rem .2rem; border-bottom: 1px solid rgba(244,236,220,.25); }
  .std-fronton__corps { align-items: flex-start; }
}

/* ================= JALONS ================= */
.std-jalons { padding-top: 1.2rem; }
.std-jalons ol {
  display: flex; flex-wrap: wrap; gap: .2rem .55rem; list-style: none;
  margin: 0; padding: 0; font-family: var(--std-regie-police);
  font-size: .84rem; color: var(--std-encre-douce);
}
.std-jalons li + li::before { content: "/"; margin-right: .55rem; color: var(--std-filet); }
.std-jalons a { color: var(--std-encre-douce); }

/* ================= PANCARTE ================= */
.std-pancarte { padding-block: clamp(1.8rem, 4vw, 3rem); border-bottom: var(--std-trait) solid var(--std-filet); }
.std-pancarte--voie { border-bottom: 4px solid var(--std-sent-teinte); }
.std-pancarte--large h1 { max-width: 26ch; }
.std-pancarte h1 { max-width: 22ch; }
.std-pancarte__surtitre {
  font-family: var(--std-regie-police); font-size: .84rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--std-sent-teinte, var(--std-accent)); margin: 0 0 .8rem;
}
.std-pancarte__amorce { max-width: var(--std-mesure); font-size: 1.08rem; color: var(--std-encre-douce); margin-bottom: 0; }
.std-pancarte__indice {
  font-family: var(--std-titre-police); font-size: clamp(2.2rem, 5vw, 3.2rem);
  line-height: 1; color: var(--std-sent-teinte, var(--std-accent));
  font-variant-numeric: lining-nums tabular-nums; display: block; margin-bottom: .4rem;
}
.std-mention {
  font-family: var(--std-regie-police); font-size: .85rem; letter-spacing: .05em;
  color: var(--std-encre-douce); margin: 0;
}
.std-mention--groupe {
  display: flex; flex-wrap: wrap; gap: .3rem 1.4rem;
  list-style: none; padding: 0; margin: 1.2rem 0 0;
}

/* ================= HEROS ACCUEIL ================= */
.std-eroe { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 0 2.5rem; align-items: center; }
.std-eroe__testo { min-width: 0; }
.std-eroe__vue { min-width: 0; margin: 0; }
.std-eroe__vue img { border-radius: var(--std-arrondi); }
@media (max-width: 54rem) { .std-eroe { grid-template-columns: 1fr; gap: 1.6rem; } }

/* ================= AIGUILLAGE : rubriques accueil ================= */
.std-aiguillage { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--std-accent); }
.std-embranchement {
  display: grid; grid-template-columns: var(--std-rail) minmax(0, 1fr);
  gap: 0 var(--std-gouttiere); padding-block: clamp(1.6rem, 3.5vw, 2.4rem);
  border-bottom: var(--std-trait) solid var(--std-filet);
}
.std-embranchement__reperage { grid-column: 1; }
.std-embranchement__indice {
  font-family: var(--std-titre-police); font-size: clamp(1.9rem, 4vw, 2.9rem);
  line-height: 1; color: var(--std-sent-teinte);
  font-variant-numeric: lining-nums tabular-nums; display: block;
}
.std-embranchement__barre { display: block; width: 2.4rem; height: 4px; background: var(--std-sent-teinte); margin-top: .7rem; }
.std-embranchement__corps { grid-column: 2; min-width: 0; }
.std-embranchement__intitule { margin-bottom: .5rem; }
.std-embranchement__intitule a { color: var(--std-encre); text-decoration: none; border-bottom: 2px solid transparent; }
.std-embranchement__intitule a:hover { border-bottom-color: var(--std-sent-teinte); }
.std-embranchement__apercu { max-width: 54ch; color: var(--std-encre-douce); margin-bottom: 1rem; }
.std-embranchement__desserte { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .35rem; }
.std-embranchement__desserte li { position: relative; padding-left: 1.1rem; }
.std-embranchement__desserte li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: .5rem; height: 2px; background: var(--std-sent-teinte);
}
.std-embranchement__desserte a { color: var(--std-encre); text-decoration: none; border-bottom: var(--std-trait) solid var(--std-filet); }
.std-embranchement__desserte a:hover { border-bottom-color: var(--std-sent-teinte); }
@media (max-width: 46rem) {
  .std-embranchement { grid-template-columns: 1fr; }
  .std-embranchement__reperage { grid-column: 1; display: flex; align-items: center; gap: .9rem; margin-bottom: .6rem; }
  .std-embranchement__indice { font-size: 1.8rem; }
  .std-embranchement__barre { margin-top: 0; width: 1.6rem; }
  .std-embranchement__corps { grid-column: 1; }
}

/* ================= ACCES ================= */
.std-acces {
  display: inline-block; font-family: var(--std-regie-police); font-size: .9rem;
  letter-spacing: .06em; text-transform: uppercase; color: var(--std-sent-teinte, var(--std-accent));
  text-decoration: none; border-bottom: 2px solid currentColor; padding-bottom: .15rem;
}
.std-acces:hover { color: var(--std-encre); }
.std-acces::after { content: " \2192"; }
.std-acces--plein {
  background: var(--std-accent); color: var(--std-sur-accent);
  border: 0; padding: .7rem 1.2rem; border-radius: var(--std-arrondi);
}
.std-acces--plein:hover { background: var(--std-encre); color: var(--std-toile); }
.std-quai--foret .std-acces { color: var(--std-sur-accent); }

/* ================= DESSERTE : listes d'articles ================= */
.std-desserte { list-style: none; margin: 0; padding: 0; border-top: var(--std-trait) solid var(--std-filet); }
.std-depart {
  display: grid; grid-template-columns: var(--std-rail) minmax(0, 1fr);
  gap: .2rem var(--std-gouttiere); padding-block: 1.3rem;
  border-bottom: var(--std-trait) solid var(--std-filet);
}
.std-depart__horaire {
  font-family: var(--std-regie-police); font-size: .82rem; letter-spacing: .05em;
  color: var(--std-encre-douce); font-variant-numeric: lining-nums tabular-nums; padding-top: .3rem;
}
.std-depart__corps { min-width: 0; }
.std-depart__intitule { font-family: var(--std-titre-police); font-size: 1.2rem; line-height: 1.3; margin: 0 0 .35rem; }
.std-depart__intitule a { color: var(--std-encre); text-decoration: none; }
.std-depart__intitule a:hover { color: var(--std-sent-teinte, var(--std-accent)); }
.std-depart__amorce { margin: 0; color: var(--std-encre-douce); max-width: 60ch; }
.std-quai--foret .std-depart__amorce, .std-quai--foret .std-depart__horaire { color: var(--std-toile-appui); }
.std-quai--foret .std-depart__intitule a { color: var(--std-sur-accent); }
@media (max-width: 46rem) {
  .std-depart { grid-template-columns: 1fr; }
  .std-depart__horaire { padding-top: 0; margin-bottom: .3rem; }
}
.std-etiquette-voie {
  display: inline-block; font-family: var(--std-regie-police); font-size: .74rem;
  letter-spacing: .11em; text-transform: uppercase; color: var(--std-sent-teinte, var(--std-accent));
  border: var(--std-trait) solid currentColor; padding: .12rem .5rem;
  margin-bottom: .5rem; text-decoration: none;
}
a.std-etiquette-voie:hover { background: var(--std-sent-teinte, var(--std-accent)); color: var(--std-sur-accent); }
.std-quai--foret a.std-etiquette-voie { color: var(--std-sur-accent); }

/* ================= CONSIGNE ================= */
.std-consigne { background: var(--std-toile-appui); border-left: 4px solid var(--std-sent-teinte, var(--std-accent)); padding: 1.3rem 1.4rem; margin-block: 1.8rem; border-radius: 0 var(--std-arrondi) var(--std-arrondi) 0; }
.std-consigne h2, .std-consigne h3 { margin-bottom: .5rem; }
.std-consigne p:last-child, .std-consigne ul:last-child { margin-bottom: 0; }
.std-consigne ul { padding-left: 1.1rem; }
.std-consigne li { margin-bottom: .35rem; }
.std-quai--foret .std-consigne { background: rgba(244,236,220,.1); }
.std-quai--foret .std-consigne li, .std-quai--foret .std-consigne h2 { color: var(--std-sur-accent); }

/* ================= PARCOURS : corps article ================= */
.std-parcours { max-width: var(--std-mesure); }
.std-parcours > * { max-width: 100%; }
.std-parcours h2 { margin-top: 2.2rem; padding-top: .9rem; border-top: 2px solid var(--std-sent-teinte, var(--std-accent)); }
.std-parcours h3 { margin-top: 1.8rem; }
.std-parcours ul, .std-parcours ol { padding-left: 1.3rem; }
.std-parcours li { margin-bottom: .45rem; }
.std-parcours .std-consigne h2, .std-parcours .std-sommaire h2 { border-top: 0; padding-top: 0; margin-top: 0; }
.std-annonce { font-size: 1.12rem; line-height: 1.6; border-bottom: var(--std-trait) solid var(--std-filet); padding-bottom: 1.3rem; margin-bottom: 1.6rem; }
.std-exergue {
  margin: 1.8rem 0; padding: .4rem 0 .4rem 1.3rem;
  border-left: 4px solid var(--std-sent-teinte, var(--std-accent));
  font-family: var(--std-titre-police); font-size: 1.14rem; line-height: 1.45;
}
.std-exergue p:last-child { margin-bottom: 0; }
.std-planche { margin: 1.8rem 0; }
.std-planche img { width: 100%; background: var(--std-toile-creux); border-radius: var(--std-arrondi); }
.std-planche figcaption {
  font-family: var(--std-regie-police); font-size: .83rem; color: var(--std-encre-douce);
  padding-top: .5rem; border-top: var(--std-trait) solid var(--std-filet); margin-top: .5rem;
}
.std-sommaire { background: var(--std-toile-appui); padding: 1.1rem 1.3rem; margin-bottom: 2rem; border-radius: var(--std-arrondi); }
.std-sommaire h2 { font-family: var(--std-regie-police); font-size: .85rem; letter-spacing: .11em; text-transform: uppercase; margin: 0 0 .6rem; border: 0; padding: 0; }
.std-sommaire ol { margin: 0; padding-left: 1.2rem; font-size: .96rem; }
.std-sommaire li { margin-bottom: .3rem; }
.std-sommaire a { color: var(--std-encre); }
.std-tableau-defile { overflow-x: auto; margin-bottom: 1.4rem; border: var(--std-trait) solid var(--std-filet); border-radius: var(--std-arrondi); }
.std-tableau-defile table { border-collapse: collapse; width: 100%; min-width: 30rem; margin: 0; font-size: .95rem; }
.std-tableau-defile th, .std-tableau-defile td { text-align: left; padding: .6rem .8rem; border-bottom: var(--std-trait) solid var(--std-filet); vertical-align: top; }
.std-tableau-defile thead th { font-family: var(--std-regie-police); font-size: .82rem; letter-spacing: .07em; text-transform: uppercase; background: var(--std-toile-appui); }
.std-tableau-defile caption { caption-side: top; text-align: left; font-family: var(--std-regie-police); font-size: .83rem; color: var(--std-encre-douce); padding: .6rem .8rem; }

/* ================= CORRESPONDANCE ================= */
.std-correspondance__liste {
  list-style: none; margin: 0; padding: 0; display: grid;
  gap: var(--std-trait); background: var(--std-filet);
  border: var(--std-trait) solid var(--std-filet);
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}
.std-correspondance__liste li { background: var(--std-toile-appui); }
.std-quai--foret .std-correspondance__liste { background: rgba(244,236,220,.3); }
.std-quai--foret .std-correspondance__liste li { background: var(--std-fond-sombre); }
.std-correspondance__liste a {
  display: block; padding: 1rem 1.1rem; text-decoration: none;
  color: var(--std-encre); border-top: 4px solid var(--std-sent-teinte, var(--std-accent)); height: 100%;
}
.std-quai--foret .std-correspondance__liste a { color: var(--std-sur-accent); }
.std-correspondance__liste a:hover { background: var(--std-toile-creux); }
.std-quai--foret .std-correspondance__liste a:hover { background: rgba(244,236,220,.12); }
.std-correspondance__quoi {
  display: block; font-family: var(--std-regie-police); font-size: .76rem;
  letter-spacing: .11em; text-transform: uppercase; color: var(--std-encre-douce); margin-bottom: .3rem;
}
.std-quai--foret .std-correspondance__quoi { color: var(--std-toile-appui); }
.std-correspondance__titre { display: block; font-family: var(--std-titre-police); font-size: 1.06rem; line-height: 1.3; }
.std-relais {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .8rem 1.5rem; padding-block: 1.6rem; border-top: var(--std-trait) solid var(--std-filet);
  font-family: var(--std-regie-police); font-size: .9rem;
}
.std-relais__etat { color: var(--std-encre-douce); }

/* ================= RAIL : rangee visuels ================= */
.std-rail { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.4rem var(--std-gouttiere); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.std-rail li { min-width: 0; }
.std-rail .std-planche { margin: 0; }
.std-rail figcaption a { color: var(--std-encre); text-decoration: none; }
.std-rail figcaption a:hover { color: var(--std-sent-teinte, var(--std-accent)); }

/* ================= CARTES ================= */
.std-carte { background: var(--std-toile-appui); border: var(--std-trait) solid var(--std-filet); border-top: 4px solid var(--std-sent-teinte, var(--std-accent)); padding: 1.2rem 1.3rem; border-radius: 0 0 var(--std-arrondi) var(--std-arrondi); }
.std-carte__surtitre { font-family: var(--std-regie-police); font-size: .78rem; letter-spacing: .11em; text-transform: uppercase; color: var(--std-sent-teinte, var(--std-accent)); margin: 0 0 .4rem; }
.std-carte__titre { margin: 0 0 .4rem; }
.std-carte__titre a { color: var(--std-encre); text-decoration: none; }
.std-carte__titre a:hover { color: var(--std-sent-teinte, var(--std-accent)); }
.std-carte__texte { color: var(--std-encre-douce); margin: 0; font-size: .95rem; }
.std-carte__pied { margin-top: .9rem; padding-top: .7rem; border-top: var(--std-trait) solid var(--std-filet); font-family: var(--std-regie-police); font-size: .8rem; color: var(--std-encre-douce); }
.std-cartes { display: grid; gap: 1.2rem var(--std-gouttiere); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); list-style: none; margin: 0; padding: 0; }

/* ================= TEINTES DE RUBRIQUE ================= */
.std-sent-1 { --std-sent-teinte: var(--std-sent-1); }
.std-sent-2 { --std-sent-teinte: var(--std-sent-2); }
.std-sent-3 { --std-sent-teinte: var(--std-sent-3); }

/* ================= MARCHEPIED ================= */
.std-marchepied { background: var(--std-fond-sombre); color: var(--std-encre-inverse); margin-top: var(--std-respiration); padding-block: var(--std-respiration) 2rem; }
.std-marchepied a { color: var(--std-encre-inverse); }
.std-marchepied a:hover { color: var(--std-toile-appui); }
.std-marchepied__grille { display: grid; gap: 2rem var(--std-gouttiere); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.std-marchepied__colonne { min-width: 0; }
.std-marchepied__colonne h2 { font-family: var(--std-regie-police); font-size: .82rem; letter-spacing: .11em; text-transform: uppercase; margin-bottom: .8rem; color: var(--std-encre-inverse); opacity: .75; }
.std-marchepied ul { list-style: none; margin: 0; padding: 0; }
.std-marchepied li { margin-bottom: .45rem; }
.std-marchepied__colonne p { font-size: .92rem; opacity: .9; }
.std-marchepied__bas { margin-top: 2.4rem; padding-top: 1.2rem; border-top: 1px solid rgba(244,236,220,.35); font-family: var(--std-regie-police); font-size: .83rem; opacity: .85; }

/* ================= UTILITAIRES ================= */
.std-hors-ecran { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.std-sans-marge-bas { margin-bottom: 0; }
.std-centre { text-align: center; }
.std-majuscules { text-transform: uppercase; letter-spacing: .1em; font-size: .85em; }
.std-planche--droite { max-width: 22rem; margin-left: auto; }
.std-depart--vedette { background: var(--std-toile-appui); }
.std-quai--foret .std-depart--vedette { background: rgba(244,236,220,.08); }
