/* Polices auto-hébergées (woff2, Google Fonts, licence OFL). Titres courts : Uncial Antiqua (repli Almendra). Texte et titres de cartes : Crimson Pro (fichier variable 200-900). */
@font-face{font-family:"Uncial Antiqua";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/UncialAntiqua-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Almendra";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/Almendra-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Crimson Pro";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/CrimsonPro-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Crimson Pro";font-style:italic;font-weight:200 900;font-display:swap;src:url(../fonts/CrimsonPro-var-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Repli à métriques proches : limite le saut de mise en page avant l'arrivée des polices */
@font-face{font-family:"Uncial Repli";src:local("Georgia");size-adjust:92%;ascent-override:95%;descent-override:25%;line-gap-override:0%}
@font-face{font-family:"Crimson Repli";src:local("Georgia");size-adjust:92%;ascent-override:98%;descent-override:30%;line-gap-override:0%}

/*
Theme Name: Visit Loch Ness · vl-tissage
Theme URI: https://visitlochness.net/
Author: Visit Loch Ness
Description: Thème code pur de Visit Loch Ness : le tissage. Trois bandes-photos verticales croisées par deux bandes vertes translucides, un fil rouge qui passe dessus-dessous comme dans une étoffe de tartan.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: vl-tissage
*/

/* ---------- Jetons : Brume · Tourbe · Vert tartan · Rouge clan (mode clair uniquement) ---------- */
:root{
  --vl-brume:#EEF0EC;         /* fond de page */
  --vl-tourbe:#1F1A17;        /* texte : 15,0:1 sur Brume */
  --vl-vert:#1C3C14;          /* bandes translucides, pied : Brume dessus 10,7:1, blanc 12,3:1 */
  --vl-rouge:#C8102E;         /* rouge tartan vif (corr-2 : loin du lie-de-vin #8A1E3F de greta) : blanc dessus 5,9:1, 5,1:1 sur Brume, 4,6:1 sur Surf */
  --vl-rouge-fonce:#A30D26;   /* survol du rouge : blanc dessus 7,9:1 */
  --vl-vert-88:rgba(28,60,20,.88);

  /* Appoints dérivés de Tourbe / Brume */
  --vl-doux:#57534E;          /* texte secondaire : 6,6:1 sur Brume */
  --vl-filet:#C9CDC4;         /* filets décoratifs */
  --vl-bord:#76726C;          /* bordure de champ : 3,8:1 sur Brume */
  --vl-surf:#E3E6E0;          /* bandes alternées, encadrés clairs */
  --vl-carte:#F7F8F5;         /* surface des cartes et du panneau de lecture */

  /* Polices : Uncial Antiqua = titres courts et logo seulement ; Crimson Pro = tout le reste */
  --vl-uncial:'Uncial Antiqua','Almendra','Uncial Repli',Georgia,serif;
  --vl-crimson:'Crimson Pro','Crimson Repli',Georgia,'Times New Roman',serif;

  /* Variables des blocs figés (single-article, rail, footer…) */
  --sb-fond:var(--vl-brume);
  --sb-encre:var(--vl-tourbe);
  --sb-accent:var(--vl-rouge);
  --sb-accent-fonce:var(--vl-rouge-fonce);
  --sb-accent-clair:var(--vl-brume);
  --sb-fonce:var(--vl-vert);
  --sb-sur-fonce:var(--vl-brume);
  --sb-fond-carte:var(--vl-carte);
  --sb-surf:var(--vl-surf);
  --sb-filet:var(--vl-filet);
  --sb-doux:var(--vl-doux);
  --sb-rayon:0;
  --sb-rayon-grand:0;
  --sb-ombre:none;
  --sb-ombre-forte:none;
  --sb-conteneur:1200px;
  --sb-lecture:820px;
  --sb-rail:340px;
  --sb-gouttiere:24px;
  --sb-titre:var(--vl-crimson);
  --sb-texte:var(--vl-crimson);

  /* Le tartan comme MATIÈRE (lisières, cadres, coins) — jamais posé sur le sujet d'une photo (corrections-1, 19/10) */
  --vl-tartan:
    repeating-linear-gradient(0deg, transparent 0 9px, rgba(200,16,46,.95) 9px 12px, transparent 12px 21px),
    repeating-linear-gradient(90deg, transparent 0 9px, rgba(200,16,46,.95) 9px 12px, transparent 12px 21px),
    repeating-linear-gradient(0deg, rgba(238,240,236,.13) 0 4px, transparent 4px 7px),
    repeating-linear-gradient(90deg, rgba(238,240,236,.13) 0 4px, transparent 4px 7px),
    #1C3C14;
  --vl-tartan-h:
    linear-gradient(transparent 0 2px, rgba(200,16,46,.95) 2px 4px, transparent 4px),
    repeating-linear-gradient(90deg, rgba(238,240,236,.18) 0 4px, transparent 4px 10px),
    #1C3C14;
  /* « Étoffe » : un tartan très pâle pour les fonds de section alternés */
  --vl-etoffe:
    repeating-linear-gradient(90deg, transparent 0 62px, rgba(200,16,46,.08) 62px 64px),
    repeating-linear-gradient(0deg, transparent 0 62px, rgba(200,16,46,.08) 62px 64px),
    repeating-linear-gradient(90deg, rgba(28,60,20,.045) 0 26px, transparent 26px 64px),
    repeating-linear-gradient(0deg, rgba(28,60,20,.045) 0 26px, transparent 26px 64px),
    #F5F7F3;
  --vl-ombre:0 1px 2px rgba(31,26,23,.08), 0 14px 30px -16px rgba(31,26,23,.38);
  --vl-rose:#F2707C;          /* petits repères sur le vert (dérivé clair du rouge tartan) */
  --vl-rose-pale:#F8C9CE;     /* deuxième ton du titre, titres du pied */
  /* Coin découpé à lisière tartan : la forme signature de toutes les cartes et de tous les boutons (corr-2) */
  --vl-coin:linear-gradient(to top left, transparent calc(50% - 1px), rgba(255,255,255,.85) calc(50% - 1px) calc(50% + .5px), transparent calc(50% + .5px)), repeating-linear-gradient(45deg, var(--vl-vert) 0 3px, #C8102E 3px 5px, var(--vl-vert) 5px 8px), var(--vl-vert);
  --vl-ombre-forte:0 2px 4px rgba(31,26,23,.10), 0 24px 44px -18px rgba(31,26,23,.5);

  --vl-W:min(1200px, 100%);  /* largeur du conteneur (marges comprises) : sert à poser les fils du hero */
  --vl-pad:24px;             /* gouttière du conteneur */
  --vl-entete-h:72px;
}
@media (max-width:860px){ :root{ --vl-pad:20px; --sb-gouttiere:20px; } }
@media (max-width:760px){ :root{ --vl-entete-h:60px; } }

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
body{
  margin:0; background:var(--vl-brume); color:var(--vl-tourbe);
  font-family:var(--vl-crimson); font-size:1.25rem; line-height:1.6; font-synthesis-weight:none;
  overflow-x:clip; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
@media (max-width:760px){ body{ font-size:1.125rem; } }
img,svg,video{ max-width:100%; }
img{ height:auto; display:block; }
a{ color:inherit; }
[hidden]{ display:none !important; }
h1,h2,h3,h4{ font-family:var(--vl-crimson); font-weight:600; color:var(--vl-tourbe); margin:0; }
p{ margin:0 0 1em; }
button,input,textarea,select{ font:inherit; color:inherit; }
:focus-visible{ outline:3px solid var(--vl-rouge); outline-offset:3px; }
::selection{ background:var(--vl-rouge); color:#fff; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/*
 * BLOC FIGÉ — PIED DE PAGE (thématique) — CSS
 * Origine : curieux-du-web.com, règles `.sbt-footer*` / `.sbt-cookies*` / `.sbt-popup-sortie*` / `.sbt-btn*`.
 */

.sbt-btn{
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 24px; border-radius: 999px; font-weight: 700; font-size: 1rem;
	background: var(--sb-accent, #2563eb); color: #fff; text-decoration: none; border: 0; cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
}
.sbt-btn:hover{ transform: translateY(-2px); box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); }
.sbt-btn--petit{ padding: 10px 18px; font-size: .875rem; }
.sbt-btn--fantome{ background: transparent; border: 1.5px solid rgba(255,255,255,.5); color: inherit; }

.sbt-footer{ background: var(--sb-fonce, #141733); color: var(--sb-sur-fonce, #ffffff); padding-block: clamp(40px,6vw,64px) 24px; }
.sbt-footer a{ color: #c4c7e4; text-decoration: none; }
.sbt-footer a:hover{ color: #fff; }
.sbt-footer a.sbt-btn, .sbt-footer a.sbt-btn:hover{ color: #fff; } /* « .sbt-footer a » battait la couleur du bouton (texte gris sur accent) */

.sbt-footer-cta{
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
	padding: 24px 28px; margin-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12);
}
@media (max-width: 600px){ .sbt-footer-cta{ padding: 20px; } }
.sbt-footer-cta .sbt-t3{ color: #fff; margin: 0 0 4px; font-size: 1.25rem; }
.sbt-footer-cta p{ color: #a9acd0; margin: 0; max-width: 46ch; }

.sbt-footer-grille{ display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12); }
@media (max-width: 980px){ .sbt-footer-grille{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .sbt-footer-grille{ grid-template-columns: 1fr; } }
.sbt-footer-colonne .sbt-t4{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: #8b8fb5; margin: 0 0 14px; }
.sbt-footer-colonne ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sbt-footer-colonne ul a{ font-size: .875rem; }
.sbt-footer-logo{ display: block; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: 1.125rem; color: #fff; margin-bottom: 14px; }
.sbt-footer-desc{ color: #a9acd0; font-size: .9375rem; margin: 0; max-width: 32ch; }
.sbt-footer-contact{ display: flex; flex-direction: column; gap: 8px; font-size: .875rem; }

.sbt-footer-bas{ padding-top: 20px; font-size: .8125rem; color: #8b8fb5; }

/* Bandeau cookies — deux boutons de MÊME poids (même classe .sbt-btn/.sbt-btn--petit),
   jamais un seul « J'ai compris » qui vaudrait acceptation forcée. */
.sbt-cookies{
	position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 80;
	background: var(--sb-fonce, #141733); color: #fff; border-radius: 12px;
	padding: 10px 14px; display: none; align-items: center; gap: 12px;
	box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); max-height: 64px; overflow: hidden;
}
.sbt-cookies.est-visible{ display: flex; }
.sbt-cookies p{ margin: 0; flex: 1; min-width: 0; font-size: .75rem; line-height: 1.3; }
.sbt-cookies-actions{ display: flex; gap: 8px; flex-shrink: 0; }
.sbt-cookies .sbt-btn{ flex-shrink: 0; padding: 8px 14px; min-height: 32px; font-size: .8125rem; }

/* Popup de sortie — jamais de colonne image vide : si pas d'image, la boîte bascule sur
   une seule colonne (cf. .sbt-popup-sortie-boite--sans-image). */
.sbt-popup-sortie{ position: fixed; inset: 0; z-index: 90; display: none; align-items: center; justify-content: center; padding: 20px; }
.sbt-popup-sortie.est-ouvert{ display: flex; }
.sbt-popup-sortie-fond{ position: absolute; inset: 0; background: rgba(15,23,42,.7); }
.sbt-popup-sortie-boite{
	position: relative; z-index: 1; background: var(--sb-fond-carte, #ffffff); border-radius: var(--sb-rayon, 14px);
	max-width: 720px; width: 100%; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden;
	box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); max-height: 90vh;
}
.sbt-popup-sortie-boite--sans-image{ grid-template-columns: 1fr; max-width: 480px; }
@media (max-width: 640px){ .sbt-popup-sortie-boite{ grid-template-columns: 1fr; max-height: 85vh; overflow-y: auto; } }
.sbt-popup-sortie-image{ min-height: 220px; }
.sbt-popup-sortie-image img{ width: 100%; height: 100%; object-fit: cover; }
.sbt-popup-sortie-texte{ padding: 28px; color: var(--sb-encre, #0f172a); }
.sbt-popup-sortie-fermer{
	position: absolute; top: 12px; right: 12px; z-index: 2; width: 40px; height: 40px; border-radius: 50%;
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.sbt-popup-sortie-fermer svg{ width: 20px; height: 20px; }

/*
 * BLOC FIGÉ — SIGNATURE / BOÎTE AUTEUR (thématique) — CSS
 * Visuel inspiré de solutionminceur.fr, classes `.sbt-auteur*`, variables `var(--sb-*, repli)`.
 */

.sbt-auteur{
	display: grid; grid-template-columns: 120px 1fr; gap: 26px; margin: 54px 0 10px;
	padding: 30px; border-radius: var(--sb-rayon-grand, 22px);
	background: var(--sb-surf, #f4f5fa); border: 1px solid var(--sb-filet, #e2e5ef);
}
.sbt-auteur-photo img{
	width: 120px; height: 120px; border-radius: 50%; object-fit: cover;
	box-shadow: 0 0 0 5px var(--sb-fond-carte, #ffffff), var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08));
}
.sbt-auteur-sur{ margin: 0 0 2px; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sb-doux, #55607a); }
.sbt-auteur-nom{ font-size: 1.5rem; margin: 0 0 4px; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-auteur-nom a{ color: var(--sb-encre, #0f172a); text-decoration: none; }
.sbt-auteur-nom a:hover{ text-decoration: underline; }
.sbt-auteur-role{ margin: 0 0 12px; font-size: .8125rem; font-weight: 600; color: var(--sb-accent, #2563eb); text-transform: uppercase; letter-spacing: .05em; }
.sbt-auteur-bio{ font-size: .96875rem; line-height: 1.7; color: var(--sb-encre, #0f172a); margin: 0 0 16px; }
.sbt-auteur-chiffres{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.sbt-auteur-chiffres span{ background: var(--sb-fond-carte, #ffffff); border-radius: 12px; padding: 8px 12px; font-size: .78125rem; color: var(--sb-doux, #55607a); }
.sbt-auteur-chiffres b{ color: var(--sb-encre, #0f172a); margin-right: 4px; }
.sbt-auteur-der{ margin-bottom: 18px; }
.sbt-auteur-der p{ margin: 0 0 6px; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sb-doux, #55607a); }
.sbt-auteur-der a{ display: block; font-size: .9375rem; font-weight: 500; padding: 6px 0; color: var(--sb-encre, #0f172a); text-decoration: none; border-bottom: 1px dashed var(--sb-filet, #e2e5ef); }
.sbt-auteur-der a:hover{ color: var(--sb-accent, #2563eb); }
.sbt-auteur-actions{ display: flex; flex-wrap: wrap; gap: 10px; }
.sbt-auteur-actions .sbt-btn{
	display: inline-block; padding: 10px 18px; border-radius: 999px; font-size: .875rem; font-weight: 600;
	text-decoration: none; background: var(--sb-accent, #2563eb); color: #fff;
}
.sbt-auteur-actions .sbt-btn--fantome{ background: transparent; border: 1.5px solid var(--sb-filet, #e2e5ef); color: var(--sb-encre, #0f172a); }

@media (max-width: 700px){
	.sbt-auteur{ grid-template-columns: 1fr; padding: 22px; }
	.sbt-auteur-photo img{ width: 88px; height: 88px; }
}

/*
 * BLOC FIGÉ — ENCADRÉS « LE SAVIEZ-VOUS » / « POINTS À RETENIR » (thématique) — CSS
 * Origine : amatauto.fr, règles `.amat-encadre--retenir` / `.a2-saviez` (renommées `.sbt-encadre--retenir` /
 * `.sbt-encadre--saviez`). Structure : grille icône + texte pour « le saviez-vous », liste à coches pour « points à retenir ».
 */

.sbt-encadre{ margin-block: 2em; border-radius: var(--sb-rayon-grand, 22px); }

.sbt-encadre-titre{
	margin: 0 0 12px; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif);
	font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em;
}

/* « Points à retenir » — fond foncé, liste à puces check. */
.sbt-encadre--retenir{
	background: var(--sb-fonce, #141733); color: var(--sb-sur-fonce, #ffffff);
	padding: 28px 30px;
}
.sbt-encadre--retenir .sbt-encadre-titre{ color: var(--sb-accent-clair, #93c5fd); }
.sbt-retenir-liste{ list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sbt-retenir-liste li{
	position: relative; padding-left: 32px; font-size: 1rem; line-height: 1.55;
}
.sbt-retenir-liste li::before{
	content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; border-radius: 50%;
	background: var(--sb-accent, #2563eb)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")
		center / 12px no-repeat;
}

/* « Le saviez-vous ? » — encadré clair, icône ampoule. */
.sbt-encadre--saviez{
	display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start;
	padding: 22px 24px; background: var(--sb-surf, #f4f5fa);
}
.sbt-encadre--saviez::before{
	content: "?"; grid-row: 1 / span 2; width: 48px; height: 48px; border-radius: 14px;
	background: var(--sb-accent, #2563eb); color: #fff; display: flex; align-items: center; justify-content: center;
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: 1.375rem;
}
.sbt-encadre--saviez .sbt-encadre-titre{ grid-column: 2; margin: 0; color: var(--sb-encre, #0f172a); }
.sbt-encadre--saviez p:not(.sbt-encadre-titre){ grid-column: 2; margin: 0; font-size: 1rem; line-height: 1.6; color: var(--sb-encre, #0f172a); }

@media (max-width: 620px){
	.sbt-encadre--saviez{ grid-template-columns: 1fr; }
	.sbt-encadre--saviez::before{ grid-row: 1; }
	.sbt-encadre--saviez .sbt-encadre-titre, .sbt-encadre--saviez p:not(.sbt-encadre-titre){ grid-column: 1; }
}
/* La règle de liste du corps d'article écrasait le retrait → la coche mangeait la 1re lettre. */
.sbt-article-corps .sbt-retenir-liste{ padding: 0; margin: 0; list-style: none; }
.sbt-article-corps .sbt-retenir-liste li{ padding-left: 34px; margin: 0; text-indent: 0; }

/*
 * BLOC FIGÉ — FAQ EN ACCORDÉON (thématique) — CSS
 * Visuel inspiré de solutionminceur.fr, classes `.sbt-faq*`, variables `var(--sb-*, repli)`.
 * Mécanisme accordéon (natif <details>/<summary>, sans JS) : cf. partial-faq.php.
 */

.sbt-faq{ margin: 56px 0; padding: 30px; border-radius: var(--sb-rayon-grand, 22px); background: var(--sb-surf, #f4f5fa); border: 1px solid var(--sb-filet, #e2e5ef); }
.sbt-faq-liste{ display: grid; gap: 10px; }
.sbt-faq-liste details{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef) !important;
	border-radius: 14px; padding: 0 !important; transition: box-shadow .25s ease, border-color .25s ease;
}
.sbt-faq-liste details[open]{ box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); border-color: var(--sb-accent, #2563eb) !important; }
.sbt-faq-liste summary{
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
	gap: 18px; padding: 18px 20px; font-size: 1.03rem; font-weight: 600; line-height: 1.45; color: var(--sb-encre, #0f172a);
}
.sbt-faq-liste summary::-webkit-details-marker{ display: none; }
.sbt-faq-liste summary::after{
	content: ""; width: 30px; height: 30px; flex: none; border-radius: 50%;
	background: var(--sb-surf, #f4f5fa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 15px no-repeat;
	transition: transform .3s ease;
}
.sbt-faq-liste details[open] summary::after{ transform: rotate(135deg); }
.sbt-faq-liste summary:hover{ color: var(--sb-accent, #2563eb); }
.sbt-faq-reponse{ padding: 0 20px 18px; font-size: .96875rem; line-height: 1.75; color: var(--sb-doux, #55607a); }
.sbt-faq-reponse p{ margin: 0 0 14px; }
.sbt-faq-reponse p:last-child{ margin-bottom: 0; }

@media (max-width: 760px){
	.sbt-faq{ padding: 20px; }
}

/*
 * BLOC FIGÉ — BARRE LATÉRALE D'ARTICLE (thématique) — CSS
 * Origine : curieux-du-web.com, règles `.sbt-rail` / `.sbt-rail-carte`.
 */

/* Rail sticky — collé à la colonne de texte, séparation par un filet interne, jamais un
   gap blanc entre les deux colonnes. */
.sbt-rail{
	position: sticky; top: 96px; align-self: start;
	display: flex; flex-direction: column; gap: 20px;
	border-left: 1px solid var(--sb-filet, #e2e5ef); padding-left: 20px;
}
/* ⛔ GARDE-FOU (retour répété ×3) : jamais de overflow-y ni de max-height ici — la colonne reste
   collante et accompagne TOUTE la lecture de l'article jusqu'en bas, sans sa propre barre de défilement interne. */
.sbt-rail-carte{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-radius: var(--sb-rayon, 14px); padding: 18px;
}
.sbt-rail-carte .sbt-t4, .sbt-rail-carte h4{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .875rem;
	text-transform: uppercase; letter-spacing: .04em; color: var(--sb-doux, #55607a); margin: 0 0 10px;
}

/* Option mobile : sous 1080px, la grille parente passe déjà en une colonne (cf. .sbt-article-mise-en-page
   dans single-article.css) — le rail redevient donc naturellement un bloc statique empilé sous le texte. */
@media (max-width: 1080px){
	.sbt-rail{ position: static; border-left: 0; padding-left: 0; border-top: 1px solid var(--sb-filet, #e2e5ef); padding-top: 20px; }
}

/*
 * BLOC FIGÉ — SOMMAIRE (thématique) — CSS
 * CSS volontairement simple (la robustesse de ce bloc est dans le PHP — ids séquentiels, exclusion FAQ/Sources,
 * seuil de 3 titres — pas dans son habillage). Rendu `<details>` natif, classes `.sbt-sommaire*`.
 */

.sbt-sommaire{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-left: 4px solid var(--sb-accent, #2563eb); border-radius: var(--sb-rayon, 14px);
	padding: 16px 20px;
}
.sbt-sommaire-titre{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700;
	font-size: .9375rem; cursor: pointer; list-style: none;
}
.sbt-sommaire-titre::-webkit-details-marker{ display: none; }
.sbt-sommaire ol{ list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sbt-sommaire li a{
	display: flex; align-items: baseline; gap: 10px; font-size: .9375rem;
	color: var(--sb-encre, #0f172a); text-decoration: none;
}
.sbt-sommaire li a:hover{ color: var(--sb-accent, #2563eb); text-decoration: underline; }
.sbt-sommaire-num{
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: .75rem;
	color: var(--sb-encre, #0f172a); background: var(--sb-surf, #f4f5fa); border-radius: 50%;
	width: 20px; height: 20px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}

/*
 * BLOC FIGÉ — ARTICLE (thématique) — CSS
 * Origine : curieux-du-web.com, règles `.sbt-article*` / `.sbt-fil-ariane` / `.sbt-a-lire` / `.sbt-carte*`.
 * Couleurs/polices/espacements uniquement en `var(--sb-*, repli)`.
 *
 * INTERDIT DE MODIFIER : voir single-article.php (un seul <article>, « à lire aussi »
 * en <div>). LIBRE DE MODIFIER : toutes les valeurs des var() ci-dessous.
 */

.sbt-conteneur{ max-width: var(--sb-conteneur, 1240px); margin-inline: auto; padding-inline: var(--sb-gouttiere, 24px); }

.sbt-fil-ariane{ font-size: .8125rem; color: var(--sb-doux, #55607a); display: flex; gap: 6px; flex-wrap: wrap; padding-block: 16px; }
.sbt-fil-ariane a{ color: var(--sb-doux, #55607a); text-decoration: none; }
.sbt-fil-ariane a:hover{ color: var(--sb-encre, #0f172a); }

.sbt-article-entete{ max-width: var(--sb-lecture, 720px); margin-inline: auto; padding-block: 8px 24px; }
.sbt-article-pastille{
	display: inline-block; background: var(--sb-surf, #f4f5fa); color: var(--sb-encre, #0f172a);
	font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-weight: 700; font-size: .75rem;
	text-transform: uppercase; letter-spacing: .04em; padding: 6px 12px; border-radius: 999px; margin-bottom: 16px;
	text-decoration: none;
}
.sbt-article-entete h1{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); line-height: 1.15; margin: 0; }
.sbt-article-chapo{ font-family: var(--sb-texte, 'Inter', system-ui, sans-serif); font-style: italic; font-size: clamp(1.0625rem,1rem + .3vw,1.3125rem); color: var(--sb-doux, #55607a); margin-top: 16px; }
.sbt-article-meta{ display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 20px; font-size: .875rem; color: var(--sb-doux, #55607a); }
.sbt-article-meta img{ width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.sbt-article-meta-auteur{ color: inherit; font-weight: 600; text-decoration: none; }

.sbt-article-une{ max-width: var(--sb-conteneur, 1240px); margin: 28px auto 32px; padding-inline: var(--sb-gouttiere, 24px); }
.sbt-article-une-cadre{ aspect-ratio: 2.4 / 1; max-height: min(520px, 46vh); overflow: hidden; border-radius: var(--sb-rayon, 14px); box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08)); }
.sbt-article-une-cadre img{ width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px){ .sbt-article-une-cadre{ aspect-ratio: auto; height: 220px; max-height: 220px; } }

/* Grille corps + rail — align-items:start obligatoire pour que le rail sticky
   (cf. partial-sidebar.css) tienne sur toute la hauteur du contenu. */
.sbt-article-mise-en-page{
	display: grid; grid-template-columns: minmax(0, var(--sb-lecture, 720px)) var(--sb-rail, 340px);
	column-gap: var(--sb-gouttiere, 24px); row-gap: var(--sb-gouttiere, 24px);
	max-width: var(--sb-conteneur, 1240px); margin-inline: auto;
	padding: 32px var(--sb-gouttiere, 24px) 64px; align-items: start; justify-content: center;
}
@media (max-width: 1080px){ .sbt-article-mise-en-page{ grid-template-columns: minmax(0,1fr); } .sbt-article-principal, .sbt-rail{ min-width: 0; } }
.sbt-article-mise-en-page--suite{ padding-top: 0; }

.sbt-article-corps{ font-size: 1.0625rem; line-height: 1.7; color: var(--sb-encre, #0f172a); font-family: var(--sb-texte, 'Inter', system-ui, sans-serif); }
.sbt-article-corps h2{ margin-top: 2.2em; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-article-corps h3{ margin-top: 1.8em; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }
.sbt-article-corps p{ margin-bottom: 1.3em; }
.sbt-article-corps img{ border-radius: var(--sb-rayon, 14px); margin-block: 1.6em; width: 100%; height: auto; }
.sbt-article-corps blockquote{
	margin: 1.8em 0; padding: 18px 24px; border-left: 4px solid var(--sb-accent, #2563eb);
	background: var(--sb-surf, #f4f5fa); border-radius: 8px; font-style: italic;
}

/* Sommaire replié en accordéon sur mobile uniquement (en desktop, il vit dans le rail —
   cf. partial-sidebar.php / partial-sommaire.php). */
.sbt-sommaire-mobile{ display: none; }
@media (max-width: 1080px){ .sbt-sommaire-mobile{ display: block; margin-bottom: 24px; } }
/* Sous 1080px le rail passe SOUS l'article ; sa carte sommaire ferait doublon avec le sommaire mobile de tête. */
@media (max-width: 1080px){ .sbt-rail-carte--sommaire{ display: none; } }

/* « À lire aussi » (toujours un <div>, jamais un <article> — cf. single-article.php) */
.sbt-a-lire{ margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--sb-filet, #e2e5ef); }
.sbt-kicker{ font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); font-size: .9375rem; font-weight: 700; margin-bottom: 12px; }
.sbt-grille{ display: grid; gap: var(--sb-gouttiere, 24px); }
.sbt-grille--3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 760px){ .sbt-grille--3{ grid-template-columns: 1fr; } }
.sbt-carte{
	background: var(--sb-fond-carte, #ffffff); border: 1px solid var(--sb-filet, #e2e5ef);
	border-radius: var(--sb-rayon, 14px); overflow: hidden; box-shadow: var(--sb-ombre, 0 8px 24px rgba(15,23,42,.08));
	transition: transform .2s ease, box-shadow .2s ease;
}
.sbt-carte:hover{ transform: translateY(-4px); box-shadow: var(--sb-ombre-forte, 0 16px 40px rgba(15,23,42,.16)); }
.sbt-carte a{ display: block; color: inherit; text-decoration: none; }
.sbt-carte img{ width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.sbt-carte-corps{ padding: 18px; }
.sbt-carte-corps h3{ margin: 0; font-size: 1.0625rem; font-family: var(--sb-titre, 'Manrope', system-ui, sans-serif); }

.sbt-article-commentaires{ margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--sb-filet, #e2e5ef); }

/* Sous-titres collés au paragraphe suivant (marge basse 0 px mesurée sur d'autres sites) */
.sbt-article-corps h2{ margin-bottom: .6em; }
.sbt-article-corps h3{ margin-bottom: .45em; }

/* Visit Loch Ness · thème vl-tissage · une seule feuille (assemblée après fonts.css, style.css et blocs/*.css dans tout.css) */

/* =====================================================================
   1. Outils communs
   ===================================================================== */
.vl-defs{ position:absolute; width:0; height:0; overflow:hidden; }
.vl-sr{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.vl-evitement{ position:absolute; left:12px; top:-60px; z-index:100; background:var(--vl-rouge); color:#fff; padding:10px 16px; font:600 1rem var(--vl-crimson); text-decoration:none; }
.vl-evitement:focus{ top:8px; }
[id]{ scroll-margin-top:96px; }
.vl-conteneur{ width:100%; max-width:1200px; margin-inline:auto; padding-inline:var(--vl-pad); }
.vl-conteneur--lecture{ max-width:900px; }
.vl-section{ position:relative; padding-block:44px; }
.vl-hero.vl-section{ padding-block:0; }

/* Boutons : angles droits, rouge clan */
.vl-btn, .sbt-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:0 26px;
  border:2px solid var(--vl-rouge); border-radius:0; background:var(--vl-rouge); color:#fff;
  font:700 1.125rem/1 var(--vl-crimson); text-decoration:none; white-space:nowrap; cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease; transform:none;
}
.vl-btn:hover, .sbt-btn:hover{ background:var(--vl-rouge-fonce); border-color:var(--vl-rouge-fonce); color:#fff; transform:none; box-shadow:none; }
.vl-btn--ligne{ background:transparent; color:var(--vl-tourbe); border-color:var(--vl-tourbe); }
.vl-btn--ligne:hover{ background:var(--vl-vert); border-color:var(--vl-vert); color:var(--vl-brume); }
.vl-btn[disabled]{ opacity:.55; cursor:default; }
.sbt-btn--petit{ min-height:44px; padding:0 18px; font-size:1rem; }
.sbt-btn--fantome{ background:transparent; border:2px solid currentColor; color:inherit; }
.vl-lien-fleche{ font:600 1.0625rem/1.2 var(--vl-crimson); color:var(--vl-rouge); text-decoration:none; border-bottom:2px solid var(--vl-rouge); padding-bottom:2px; white-space:nowrap; }
.vl-lien-fleche:hover{ color:var(--vl-rouge-fonce); border-color:var(--vl-rouge-fonce); }
.vl-vide{ font-size:1.25rem; color:var(--vl-doux); }
.vl-vide a{ color:var(--vl-rouge); }

/* Repli d'une photo absente : aplat Vert tartan et fil rouge (jamais de case vide) */
.vl-photo-vide{
  display:block; width:100%; height:100%; min-height:100%;
  background:
    linear-gradient(var(--vl-rouge),var(--vl-rouge)) 0 62%/100% 5px no-repeat,
    linear-gradient(90deg, rgba(238,240,236,.14) 0 14%, transparent 14% 30%, rgba(238,240,236,.14) 30% 38%, transparent 38%),
    var(--vl-vert);
}

/* Épingle de kilt : étiquette Vert tartan en coin haut droit des photos */
.vl-epingle{ width:22px; height:22px; flex:none; }
.vl-epingle--carte{ position:absolute; top:0; right:0; z-index:3; box-sizing:content-box; width:24px; height:24px; padding:6px; background:var(--vl-vert-88); color:var(--vl-brume); }

/* Séparation de section : deux filets de 2 px, rouge et vert, qui se croisent (dessus puis dessous) */
.vl-croix{
  height:14px; margin:0;
  background:
    repeating-linear-gradient(90deg, transparent 0 22px, var(--vl-vert) 22px 24px, transparent 24px 48px),
    linear-gradient(var(--vl-rouge),var(--vl-rouge)) 0 6px/100% 2px no-repeat,
    repeating-linear-gradient(90deg, transparent 0 46px, var(--vl-vert) 46px 48px);
}

/* =====================================================================
   2. En-tête du site (collant, ≤ 72 px)
   ===================================================================== */
.vl-entete{
  position:sticky; top:0; z-index:60; height:var(--vl-entete-h); background:rgba(238,240,236,.97);
  border-bottom:1px solid var(--vl-filet);
}
.vl-entete.est-defile{ box-shadow:0 8px 0 -6px rgba(31,26,23,.08); }
.vl-entete__in{ height:100%; width:100%; max-width:1200px; margin-inline:auto; padding-inline:var(--vl-pad); display:flex; align-items:center; gap:28px; }
.vl-logo{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--vl-tourbe); flex:none; }
.vl-logo__marque{ width:40px; height:40px; display:block; }
.vl-logo__nom{ font:400 1.375rem/1 var(--vl-uncial); white-space:nowrap; letter-spacing:.01em; }
.vl-nav{ margin-left:auto; min-width:0; }
.vl-nav ul{ display:flex; align-items:center; gap:2px 22px; margin:0; padding:0; list-style:none; }
.vl-nav a{ display:block; padding:6px 2px; font:600 1.0625rem/1.2 var(--vl-crimson); color:var(--vl-tourbe); text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap; }
.vl-nav a:hover{ border-bottom-color:var(--vl-rouge); }
.vl-nav a[aria-current]{ border-bottom-color:var(--vl-rouge); }
.vl-burger{ display:none; margin-left:auto; align-items:center; gap:8px; min-height:44px; padding:0 14px; border:2px solid var(--vl-tourbe); background:transparent; font:600 1rem var(--vl-crimson); cursor:pointer; }
.vl-burger svg{ width:22px; height:22px; }
.vl-lecture{ position:absolute; left:0; right:0; bottom:-1px; height:3px; }
.vl-lecture span{ display:block; height:100%; width:var(--vl-lu,0%); background:var(--vl-rouge); }
.vl-tiroir{ background:var(--vl-brume); border-bottom:2px solid var(--vl-vert); }
.vl-tiroir ul{ list-style:none; margin:0 auto; padding:8px var(--vl-pad) 14px; max-width:1200px; }
.vl-tiroir a{ display:block; padding:12px 0; border-bottom:1px solid var(--vl-filet); font:600 1.1875rem/1.2 var(--vl-crimson); text-decoration:none; }
.vl-tiroir a[aria-current]{ color:var(--vl-rouge); }
@media (max-width:1180px){
  .vl-nav{ display:none; }
  .vl-burger{ display:inline-flex; }
}
@media (max-width:420px){ .vl-logo__nom{ font-size:1.1875rem; } .vl-logo__marque{ width:34px; height:34px; } .vl-burger span{ display:none; } .vl-burger{ padding:0 10px; } }

/* Bandeau cookies : une bande fine EN HAUT de la page, dans sa place réservée (html.vl-ck, posée avant le rendu) */
:root{ --vl-ck-h:48px; }
.vl-ck body{ padding-top:var(--vl-ck-h); }
.sbt-cookies{
  position:absolute; top:0; left:0; right:0; bottom:auto; z-index:80; transform:none; width:auto; height:var(--vl-ck-h); max-height:none;
  padding:0 max(20px, calc((100vw - 1200px)/2 + var(--vl-pad))); gap:16px; border:0; border-radius:0; box-shadow:none; overflow:hidden;
  background:var(--vl-tourbe); color:var(--vl-brume); display:none; align-items:center; justify-content:space-between;
}
.vl-ck .sbt-cookies, .sbt-cookies.est-visible{ display:flex; }
.sbt-cookies p{ margin:0; flex:0 1 auto; font:500 .9375rem/1.25 var(--vl-crimson); }
.sbt-cookies .sbt-btn{ min-height:36px; padding:0 14px; font-size:.9375rem; }
.sbt-cookies .sbt-btn--fantome{ border:2px solid var(--vl-brume); color:var(--vl-brume); background:transparent; }
.sbt-cookies .sbt-btn--fantome:hover{ background:rgba(238,240,236,.16); border-color:var(--vl-brume); }
.sbt-cookies-actions{ display:flex; gap:8px; flex:none; }
@media (max-width:760px){ .sbt-cookies{ padding:0 10px 0 14px; gap:10px; } .sbt-cookies p{ font-size:.8125rem; flex:1 1 auto; } .sbt-cookies .sbt-btn{ padding:0 10px; font-size:.875rem; } }
@media (max-width:420px){ :root{ --vl-ck-h:56px; } .sbt-cookies p{ font-size:.75rem; line-height:1.2; } }

/* =====================================================================
   3. Premier écran : le tissage
   ===================================================================== */
.vl-hero{ position:relative; height:700px; overflow:hidden; background:var(--vl-vert); isolation:isolate; }
.vl-hero__bandes{ position:absolute; inset:0; display:grid; grid-template-columns:5fr 3fr 4fr; z-index:0; }
.vl-bande{ margin:0; position:relative; overflow:hidden; min-width:0; background:var(--vl-vert); }
.vl-bande img, .vl-bande .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* Fils rouges verticaux (6 px) : ils courent sur les photos, passent DESSUS la bande haute et DESSOUS la bande basse */
.vl-fil, .vl-fil-sur{
  position:absolute; top:0; bottom:0; width:6px; display:block;
  background:repeating-linear-gradient(0deg, var(--vl-rouge) 0 3px, #E0283F 3px 5px, var(--vl-rouge) 5px 6px);
  box-shadow:0 0 0 1px rgba(31,26,23,.28);
}
.vl-fil{ z-index:1; }
.vl-fil-sur{ z-index:3; }
.vl-fil--a, .vl-fil-sur--a{ left:calc((50% - var(--vl-W)/2 + var(--vl-pad)) / 2 - 3px); }
.vl-fil--b, .vl-fil-sur--b{ left:calc(50% - var(--vl-W)/2 + var(--vl-pad) + (var(--vl-W) - 2 * var(--vl-pad)) * .645 - 3px); }
.vl-fil--c, .vl-fil-sur--c{ left:calc(100% - (50% - var(--vl-W)/2 + var(--vl-pad)) / 2 - 3px); }
/* Les bandes horizontales du tissage : Vert tartan à 72 %, juste la hauteur du texte (la photo domine) */
.vl-trame{
  position:absolute; left:0; right:0; z-index:2; display:flex; align-items:center;
  background:rgba(28,60,20,.72); color:var(--vl-brume);
}
.vl-trame > .vl-conteneur{ position:relative; z-index:1; }
.vl-trame--haute{ top:40px; padding-block:16px 15px; }
.vl-hero h1{ font:400 clamp(2.125rem, 3.5vw, 3.125rem)/1.06 var(--vl-uncial); color:var(--vl-brume); letter-spacing:0; max-width:24em; text-shadow:0 1px 14px rgba(15,30,10,.45); }
/* Titre en deux tons : « Loch Ness » en rose de clan pâle (teinte claire du Rouge clan), sur sa propre ligne */
.vl-h1-ton{ display:block; color:var(--vl-rose-pale); }
.vl-hero__ligne{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 28px; margin-top:8px; }
.vl-hero__sous{ margin:0; font:500 1.125rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
/* Les preuves, comptées sur le site : chacune ouverte par un court fil rouge */
.vl-preuves{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 20px; font:500 1.0625rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
.vl-preuves li{ display:inline-flex; align-items:baseline; gap:8px; }
.vl-preuves li::before{ content:""; flex:none; width:14px; height:3px; background:var(--vl-rose); transform:translateY(-4px); }
.vl-preuves b{ font-weight:700; color:#fff; }
/* Le bas du hero : la bande basse passe derrière la carte-formulaire, qui flotte au-dessus de la photo */
.vl-hero__pied{ position:absolute; left:0; right:0; bottom:48px; z-index:4; }
.vl-trame--basse{ top:50%; height:56px; transform:translateY(-50%); z-index:0; }
.vl-hero__pied > .vl-conteneur{ position:relative; z-index:1; }
.vl-hero__formulaire{
  position:relative; background:#FBFBF9; color:var(--vl-tourbe); padding:18px 26px 18px 36px;
  box-shadow:0 2px 4px rgba(31,26,23,.12), 0 26px 50px -18px rgba(15,25,10,.62);
}
/* Lisière de tartan sur le bord gauche de la carte : le motif encadre, il ne recouvre rien */
.vl-hero__formulaire::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:10px; background:var(--vl-tartan); }

/* L'outil « Mon itinéraire » */
.vl-outil{ position:relative; color:var(--vl-brume); }
.vl-outil :focus-visible{ outline-color:#fff; }
.vl-outil .vl-form-etape{ display:none; }
.vl-outil .vl-form-etape.est-active{ display:grid; }
.vl-etape-titre{ display:block; margin:0 0 8px; font:600 1.125rem/1.2 var(--vl-crimson); color:var(--vl-brume); }
.vl-tuiles{ display:grid; gap:10px; }
.vl-tuiles--jours{ grid-template-columns:repeat(5,minmax(0,1fr)); }
.vl-tuiles--base{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.vl-tuile{
  min-height:52px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:4px 8px;
  border:2px solid var(--vl-brume); border-radius:0; background:var(--vl-brume); color:var(--vl-tourbe);
  font:600 1.0625rem/1.15 var(--vl-crimson); text-align:center; cursor:pointer;
}
.vl-tuile b{ font:700 1.5rem/1 var(--vl-crimson); }
.vl-tuile small{ font:500 .8125rem/1.1 var(--vl-crimson); }
.vl-tuile:hover{ border-color:var(--vl-rouge); }
.vl-tuile[aria-pressed="true"]{ background:var(--vl-rouge); border-color:var(--vl-rouge); color:#fff; }
.vl-select{
  width:100%; height:52px; border:2px solid var(--vl-brume); border-radius:0; padding:0 36px 0 12px; appearance:none; -webkit-appearance:none; cursor:pointer;
  background:var(--vl-brume) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231F1A17' stroke-width='2.2'/%3E%3C/svg%3E") no-repeat right 12px center;
  font:600 1.125rem/1 var(--vl-crimson); color:var(--vl-tourbe);
}
.vl-form-action{ display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.vl-form-action .vl-btn{ width:100%; border-color:var(--vl-brume); }
.vl-form-action .vl-btn:hover{ border-color:var(--vl-brume); }
.vl-retour{ border:0; background:none; padding:2px 0; font:600 1rem/1.2 var(--vl-crimson); color:var(--vl-brume); text-decoration:underline; text-underline-offset:3px; cursor:pointer; text-align:center; min-height:24px; }
.vl-erreur{ margin:0; font:600 .9375rem/1.3 var(--vl-crimson); }
.vl-erreur:empty{ display:none; }
.vl-outil .vl-erreur{ display:inline-block; padding:3px 10px; background:var(--vl-rouge); color:#fff; }
.vl-outil .vl-erreur:empty{ display:none; }

/* Étape 3 : l'itinéraire, jour par jour */
.vl-resultat__resume{ margin:0 0 6px; font:600 1rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
.vl-jours{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px 8px; }
.vl-jours a, .vl-jours li > span{
  display:flex; align-items:center; gap:8px; min-height:32px; padding:0 10px; background:var(--vl-brume); color:var(--vl-tourbe);
  border-left:3px solid var(--vl-rouge); font:600 1rem/1.1 var(--vl-crimson); text-decoration:none; white-space:nowrap; overflow:hidden;
}
.vl-jours a:hover{ background:#fff; }
.vl-jours b{ color:var(--vl-rouge); font-weight:700; }
.vl-jours em{ font-style:normal; overflow:hidden; text-overflow:ellipsis; }
.vl-jours .est-libre{ background:rgba(238,240,236,.82); color:var(--vl-doux); }
.vl-saison{ margin:6px 0 0; font:500 .9375rem/1.35 var(--vl-crimson); color:var(--vl-brume); }
.vl-saison a{ color:var(--vl-brume); text-decoration:underline; text-underline-offset:3px; font-weight:600; }
.vl-mail__titre{ display:block; margin:0 0 6px; font:500 .9375rem/1.25 var(--vl-crimson); color:var(--vl-brume); }
.vl-mail__titre i{ font-style:italic; opacity:.9; }
.vl-mail__ligne{ display:flex; gap:8px; }
.vl-mail input[type=email]{ flex:1; min-width:0; height:44px; border:2px solid var(--vl-brume); border-radius:0; background:var(--vl-brume); padding:0 12px; font:500 1rem var(--vl-crimson); color:var(--vl-tourbe); }
.vl-mail .vl-btn{ width:auto; min-height:44px; padding:0 18px; font-size:1rem; }
.vl-consent{ display:flex; align-items:flex-start; gap:8px; margin-top:6px; font:500 .8125rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
.vl-consent input{ width:18px; height:18px; margin:1px 0 0; flex:none; accent-color:var(--vl-rouge); }
.vl-consent a{ color:var(--vl-brume); text-decoration:underline; }
.vl-envoye{ margin:0; font:600 1.0625rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
.vl-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* L'outil dans la carte claire du hero : texte Tourbe, tuiles blanches à ombre douce */
.vl-outil--hero{ color:var(--vl-tourbe); }
.vl-outil--hero :focus-visible{ outline-color:var(--vl-rouge); }
.vl-outil--hero .vl-form-etape.est-active{ grid-template-columns:minmax(0,1fr) minmax(220px,250px); column-gap:28px; align-items:end; }
.vl-outil--hero .vl-form-etape[data-vl-etape="3"].est-active{ align-items:start; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); }
.vl-outil--hero .vl-form-champs--deux{ display:grid; grid-template-columns:minmax(150px,.62fr) minmax(0,2fr); gap:14px; }
.vl-outil--hero .vl-champ{ min-width:0; }
.vl-outil--hero .vl-etape-titre, .vl-outil--hero .vl-resultat__resume, .vl-outil--hero .vl-mail__titre, .vl-outil--hero .vl-consent, .vl-outil--hero .vl-envoye{ color:var(--vl-tourbe); }
.vl-outil--hero .vl-saison{ color:var(--vl-doux); }
.vl-outil--hero .vl-saison a, .vl-outil--hero .vl-consent a{ color:var(--vl-rouge); }
.vl-outil--hero .vl-tuile{ background:#fff; border:1px solid var(--vl-filet); box-shadow:0 1px 2px rgba(31,26,23,.08), 0 6px 14px -10px rgba(31,26,23,.35); transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.vl-outil--hero .vl-tuile:hover{ border-color:var(--vl-rouge); box-shadow:0 1px 2px rgba(31,26,23,.08), 0 10px 18px -10px rgba(200,16,46,.45); }
.vl-outil--hero .vl-tuile[aria-pressed="true"]{ background:var(--vl-rouge); border-color:var(--vl-rouge); color:#fff; }
.vl-outil--hero .vl-select, .vl-outil--hero .vl-mail input[type=email]{ background-color:#fff; border:1px solid var(--vl-bord); }
.vl-outil--hero .vl-form-action .vl-btn, .vl-outil--hero .vl-form-action .vl-btn:hover{ border-color:var(--vl-rouge); }
.vl-outil--hero .vl-form-action .vl-btn{ box-shadow:0 10px 20px -12px rgba(200,16,46,.75); }
.vl-outil--hero .vl-retour{ color:var(--vl-doux); }
.vl-outil--hero .vl-jours a, .vl-outil--hero .vl-jours li > span{ background:var(--vl-brume); }
.vl-outil--hero .vl-jours a:hover{ background:#fff; box-shadow:0 0 0 1px var(--vl-rouge) inset; }

/* Hero (≤ 860 px) : deux bandes-photos ; la bande haute en tête, la carte en bas, la photo entre les deux */
@media (max-width:860px){
  .vl-hero{ height:auto; min-height:560px; display:flex; flex-direction:column; justify-content:space-between; padding:12px 0 14px; }
  .vl-hero__bandes{ grid-template-columns:3fr 2fr; }
  .vl-bande--3, .vl-fil--b, .vl-fil-sur--b{ display:none; }
  .vl-trame--haute{ position:relative; top:auto; padding-block:12px; }
  .vl-hero h1{ font-size:clamp(1.75rem, 8vw, 2.25rem); }
  .vl-hero__sous{ font-size:1.0625rem; }
  .vl-hero__ligne{ gap:6px; margin-top:6px; }
  .vl-preuves{ gap:2px 14px; font-size:.9375rem; }
  .vl-hero__pied{ position:relative; bottom:auto; }
  .vl-trame--basse{ height:44px; }
  .vl-hero__formulaire{ padding:12px 14px 14px 22px; }
  .vl-hero__formulaire::before{ width:8px; }
  .vl-outil--hero .vl-form-etape.est-active{ display:flex; flex-direction:column; gap:10px; min-height:0; padding-block:0; align-items:stretch; }
  .vl-outil--hero .vl-form-champs--deux{ grid-template-columns:1fr; gap:10px; }
  .vl-outil--hero .vl-form-etape[data-vl-etape="3"].est-active{ align-items:stretch; }
  .vl-tuile{ min-height:50px; }
  .vl-tuiles--base .vl-tuile{ font-size:.9375rem; padding:4px 4px; }
  .vl-jours{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-jours a, .vl-jours li > span{ min-height:40px; }
  .vl-mail__titre{ font-size:.9375rem; }
}

/* =====================================================================
   4. Sections de l'accueil, grilles et cartes
   ===================================================================== */
.vl-sec-tete{ display:flex; align-items:baseline; justify-content:space-between; gap:16px 24px; flex-wrap:wrap; margin:0 0 24px; }
.vl-sec-tete h2, .vl-qui h2, .vl-ap-sens h2, .vl-methode h2{ font:400 clamp(1.625rem, 2.6vw, 2.125rem)/1.15 var(--vl-uncial); color:var(--vl-tourbe); }
.vl-grille{ display:grid; gap:24px; align-items:start; }
.vl-grille--1{ grid-template-columns:minmax(0,520px); }
.vl-grille--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.vl-grille--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.vl-grille--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.vl-grille-rub{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.vl-grille-rub .est-cachee{ display:none; }
.vl-plus{ margin:32px 0 0; text-align:center; }

.vl-carte{ position:relative; background:var(--vl-carte); border-left:2px solid var(--vl-rouge); border-radius:0; min-width:0; }
.vl-carte__lien{ display:flex; flex-direction:column; text-decoration:none; color:inherit; height:100%; }
.vl-carte__photo{ position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-carte__photo img, .vl-carte__photo .vl-photo-vide{ width:100%; height:100%; object-fit:cover; display:block; }
.vl-carte__corps{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:16px 18px 20px; }
.vl-etiquette{ font:600 .9375rem/1.2 var(--vl-crimson); color:var(--vl-rouge); }
.vl-carte__titre{ font:600 1.375rem/1.2 var(--vl-crimson); color:var(--vl-tourbe); }
.vl-carte__resume{ font-size:1.0625rem; line-height:1.45; color:var(--vl-doux); }
.vl-carte__date{ font-size:.9375rem; color:var(--vl-doux); }
.vl-carte__lien:hover .vl-carte__titre{ color:var(--vl-rouge); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px; }

/* S4 — mise en page tissée : une grande carte, trois fils */
.vl-tisse{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:24px; align-items:start; }
.vl-tisse--seul{ grid-template-columns:minmax(0,560px); }
.vl-tisse__fils{ display:grid; gap:16px; }
.vl-carte--grande .vl-carte__titre{ font-size:1.75rem; }
.vl-carte--grande .vl-carte__resume{ display:block; }
.vl-carte--ligne .vl-carte__lien{ flex-direction:row; align-items:stretch; }
.vl-carte--ligne .vl-carte__photo{ flex:0 0 36%; aspect-ratio:4/3; }
.vl-carte--ligne .vl-carte__corps{ justify-content:center; padding:12px 18px; }
.vl-carte--ligne .vl-carte__titre{ font-size:1.25rem; }
.vl-carte--ligne .vl-epingle--carte{ width:18px; height:18px; padding:5px; }

/* S5 — quatre saisons : quatre cartes claires sur le Vert tartan (le fil rouge sépare la photo du texte, jamais dessus) */
.vl-saisons__bandes{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; align-items:stretch; }
.vl-saison-tuile{ display:flex; flex-direction:column; min-width:0; background:var(--vl-carte); color:var(--vl-tourbe); box-shadow:0 2px 4px rgba(0,0,0,.18), 0 22px 40px -22px rgba(0,0,0,.7); }
.vl-saison-tuile__photo{ position:relative; display:block; height:240px; overflow:hidden; background:var(--vl-vert); }
.vl-saison-tuile__photo img, .vl-saison-tuile__photo .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-saison-tuile__photo::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:6px; background:var(--vl-tartan-h); }
.vl-saison-tuile__txt{ flex:1; display:block; padding:14px 18px 18px; font:500 1.0625rem/1.4 var(--vl-crimson); color:var(--vl-doux); }
.vl-saison-tuile__txt b{ display:block; margin-bottom:4px; font:600 1.3125rem/1.2 var(--vl-crimson); color:var(--vl-tourbe); }
.vl-saisons__liens{ display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 0; }

/* S6 — sur l'eau et à pied */
.vl-eaupied__cols{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.vl-eaupied__titre{ margin:0 0 14px; font:600 1.5rem/1.2 var(--vl-crimson); padding-bottom:8px; border-bottom:2px solid var(--vl-rouge); }
.vl-liens-vignettes{ list-style:none; margin:0 0 16px; padding:0; display:grid; gap:12px; }
.vl-liens-vignettes a{ display:flex; gap:16px; align-items:center; text-decoration:none; color:inherit; background:var(--vl-carte); border-left:2px solid var(--vl-rouge); }
.vl-vignette{ flex:0 0 128px; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-vignette img, .vl-vignette .vl-photo-vide{ width:100%; height:100%; object-fit:cover; display:block; }
.vl-lien-texte{ padding:8px 16px 8px 0; font:600 1.1875rem/1.25 var(--vl-crimson); }
.vl-liens-vignettes a:hover .vl-lien-texte{ color:var(--vl-rouge); text-decoration:underline; text-underline-offset:3px; }

/* S8 — qui écrit ici */
.vl-qui__grille{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,520px); gap:56px; align-items:center; }
.vl-qui__texte p{ max-width:34em; }
.vl-qui__texte h2{ margin-bottom:16px; }
.vl-qui__photo{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-qui__photo img, .vl-qui__photo .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* =====================================================================
   5. En-têtes tissés : pages et rubriques
   ===================================================================== */
.vl-tete{ padding:0; background:var(--vl-vert); color:var(--vl-brume); overflow:hidden; }
.vl-tete__grille{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:40px; align-items:center; min-height:216px; padding-block:28px; }
.vl-tete__texte{ min-width:0; }
.vl-surtitre{ margin:0 0 6px; font:600 1rem/1.2 var(--vl-crimson); color:var(--vl-brume); opacity:.92; }
.vl-tete h1{ font:400 clamp(1.875rem, 3.3vw, 2.875rem)/1.1 var(--vl-uncial); color:var(--vl-brume); }
.vl-tete__chapo{ margin:12px 0 0; max-width:42em; font:500 1.25rem/1.45 var(--vl-crimson); color:var(--vl-brume); }
.vl-tete__nombre, .vl-tete__date{ margin:10px 0 0; font:600 1.0625rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
.vl-tete__bandes{ align-self:stretch; margin-block:-28px; min-height:216px; }
.vl-bandes{ position:relative; display:grid; grid-template-columns:5fr 3fr 4fr; gap:8px; height:100%; min-height:216px; }
.vl-bandes::before{ content:""; position:absolute; left:0; right:0; top:auto; bottom:10%; height:6px; background:var(--vl-rouge); z-index:0; }
.vl-bandes .vl-bande{ min-height:216px; }
.vl-bandes .vl-bande--1::after, .vl-bandes .vl-bande--3::after{ content:""; position:absolute; left:0; right:0; top:auto; bottom:10%; height:6px; background:repeating-linear-gradient(90deg, var(--vl-rouge) 0 3px, #E0283F 3px 5px, var(--vl-rouge) 5px 6px); z-index:2; }
.vl-tete--court .vl-tete__grille{ min-height:176px; padding-block:22px; }
.vl-tete--court .vl-tete__bandes, .vl-tete--court .vl-bandes, .vl-tete--court .vl-bandes .vl-bande{ min-height:176px; }
.vl-tete--court .vl-tete__bandes{ margin-block:-22px; }
.vl-tete--court .vl-tete__chapo{ margin-top:8px; font-size:1.1875rem; }
.vl-recherche{ display:flex; gap:10px; margin:14px 0 0; max-width:560px; }
.vl-recherche input{ flex:1; min-width:0; height:48px; border:2px solid var(--vl-brume); border-radius:0; padding:0 14px; background:var(--vl-brume); font:500 1.0625rem var(--vl-crimson); color:var(--vl-tourbe); }
.vl-recherche .vl-btn{ border-color:var(--vl-brume); }
.vl-404 .vl-recherche input{ background:#fff; border-color:var(--vl-bord); }
.vl-404 .vl-recherche .vl-btn{ border-color:var(--vl-rouge); }
.vl-404__liens{ list-style:none; margin:24px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.vl-pastille{ display:inline-block; padding:8px 16px; border:2px solid var(--vl-tourbe); font:600 1.0625rem/1.2 var(--vl-crimson); text-decoration:none; }
.vl-pastille:hover{ background:var(--vl-vert); border-color:var(--vl-vert); color:var(--vl-brume); }
.vl-rub-liste{ padding-block:40px 56px; }

/* =====================================================================
   6. Article : la lisière, le panneau de lecture, la barre latérale
   ===================================================================== */
.vl-lisiere{ padding-block:8px 52px; background:var(--vl-brume); }
.vl-lisiere__grille{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.68fr); column-gap:56px; align-items:start; }
.vl-lisiere__haut{ grid-column:1; grid-row:1; display:flex; flex-wrap:wrap; align-items:center; gap:4px 16px; min-height:44px; }
.vl-lisiere__texte{ grid-column:1; grid-row:2; min-width:0; padding-bottom:12px; }
.vl-lisiere__photo{ grid-column:2; grid-row:2; position:relative; min-width:0; }
.vl-lisiere .sbt-fil-ariane{ padding:0; font-size:1rem; color:var(--vl-doux); }
.vl-lisiere .sbt-fil-ariane a{ color:var(--vl-doux); }
.vl-lisiere .sbt-article-pastille{ background:var(--vl-vert); color:var(--vl-brume); border-radius:0; padding:5px 12px; margin:0; font:600 .9375rem/1.2 var(--vl-crimson); text-transform:none; letter-spacing:0; }
.vl-lisiere h1{ font:600 clamp(2rem, 3vw, 2.75rem)/1.12 var(--vl-crimson); letter-spacing:-.005em; color:var(--vl-tourbe); margin:0; }
.vl-lisiere .sbt-article-chapo{ margin:16px 0 0; max-width:36em; font:italic 400 clamp(1.1875rem, 1.1rem + .4vw, 1.4375rem)/1.45 var(--vl-crimson); color:var(--vl-doux); }
.vl-lisiere .sbt-article-meta{ margin-top:20px; gap:14px; align-items:center; font-size: 1.0625rem; }
.vl-lisiere .sbt-article-meta img{ width:44px; height:44px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px var(--vl-rouge); }
.vl-meta__qui{ display:flex; flex-direction:column; line-height:1.3; }
.vl-meta__qui .sbt-article-meta-auteur{ font-weight:700; color:var(--vl-tourbe); }
.vl-meta__date{ color:var(--vl-doux); }
.vl-lisiere__cadre{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-lisiere__cadre img, .vl-lisiere__cadre .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-route{
  position:relative; z-index:4; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:-30px 18px 0 0; padding:0;
  background:var(--vl-carte); border:1px solid var(--vl-filet); border-left:3px solid var(--vl-rouge); box-shadow:5px 5px 0 var(--vl-vert);
}
.vl-route li{ padding:10px 14px 11px; border-left:1px solid var(--vl-filet); min-width:0; }
.vl-route li:first-child{ border-left:0; }
.vl-route span{ display:block; font:500 .875rem/1.2 var(--vl-crimson); color:var(--vl-doux); }
.vl-route b{ display:block; font:600 1.0625rem/1.25 var(--vl-crimson); color:var(--vl-tourbe); overflow-wrap:anywhere; }

/* Grille corps + barre : la colonne de lecture prend la place, la barre est fixe, 40 px entre les deux */
.sbt-article-mise-en-page{
  grid-template-columns:minmax(0,1fr) var(--sb-rail); column-gap:40px; row-gap:24px; justify-content:stretch;
  max-width:1200px; padding:0 var(--vl-pad) 64px;
}
.sbt-article-principal{ background:var(--vl-carte); border-left:2px solid var(--vl-rouge); padding:40px 48px 44px; min-width:0; }
.sbt-article-principal > :first-child{ margin-top:0; }
@media (max-width:1080px){ .sbt-article-mise-en-page{ grid-template-columns:minmax(0,1fr); } }

/* Corps de texte : rythme vertical constant */
.sbt-article-corps, .vl-prose{ font:400 1.25rem/1.65 var(--vl-crimson); color:var(--vl-tourbe); }
.sbt-article-corps > *, .vl-prose > *{ margin-top:0; }
.sbt-article-corps h2, .vl-prose h2{ font:600 clamp(1.625rem, 1.3rem + 1vw, 2rem)/1.2 var(--vl-crimson); letter-spacing:-.005em; margin:2em 0 .55em; }
.sbt-article-corps h3, .vl-prose h3{ font:600 1.4375rem/1.3 var(--vl-crimson); margin:1.7em 0 .45em; }
.sbt-article-corps h2:first-child, .vl-prose h2:first-child{ margin-top:0; }
.sbt-article-corps p, .vl-prose p{ margin:0 0 1.2em; }
.sbt-article-corps a, .vl-prose a{ color:var(--vl-rouge); text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; }
.sbt-article-corps a:hover, .vl-prose a:hover{ color:var(--vl-rouge-fonce); }
.sbt-article-corps strong, .vl-prose strong{ font-weight:700; }
.sbt-article-corps h2[id]{ scroll-margin-top:104px; }
.sbt-article-corps :is(p, figure) > img, .vl-prose :is(p, figure) > img{ width:100%; aspect-ratio:3/2; max-height:460px; object-fit:cover; border-radius:0; margin-block:1.6em; }
.sbt-article-corps figure{ margin:1.6em 0; }
.sbt-article-corps figcaption{ font:italic 400 .9375rem/1.4 var(--vl-crimson); color:var(--vl-doux); margin-top:8px; }
.sbt-article-corps blockquote, .vl-prose blockquote{ margin:1.8em 0; padding:16px 22px; border-left:3px solid var(--vl-rouge); background:var(--vl-surf); border-radius:0; font-style:italic; }
.sbt-article-corps blockquote p:last-child{ margin:0; }
/* Listes : des repères, jamais des puces brutes */
.sbt-article-corps ul:not(.sbt-retenir-liste), .vl-prose ul{ list-style:none; padding:0; margin:0 0 1.4em; }
.sbt-article-corps ul:not(.sbt-retenir-liste) > li, .vl-prose ul > li{ position:relative; padding-left:28px; margin:.55em 0; }
.sbt-article-corps ul:not(.sbt-retenir-liste) > li::before, .vl-prose ul > li::before{ content:""; position:absolute; left:2px; top:.62em; width:10px; height:10px; background:var(--vl-rouge); box-shadow:4px 4px 0 var(--vl-vert); }
.sbt-article-corps ol, .vl-prose ol{ list-style:none; counter-reset:vl-ol; padding:0; margin:0 0 1.4em; }
.sbt-article-corps ol:not(.sbt-retenir-liste) > li, .vl-prose ol > li{ counter-increment:vl-ol; position:relative; padding-left:44px; margin:.7em 0; }
.sbt-article-corps ol:not(.sbt-retenir-liste) > li::before, .vl-prose ol > li::before{ content:counter(vl-ol); position:absolute; left:0; top:.1em; width:28px; height:28px; background:var(--vl-vert); color:var(--vl-brume); font:700 1rem/28px var(--vl-crimson); text-align:center; }
/* Tableaux : défilants, en-tête Vert tartan, cartes empilées sur mobile */
.sbs_tableau{ overflow-x:auto; margin:1.8em 0; border:1px solid var(--vl-filet); -webkit-overflow-scrolling:touch; background:#fff; }
.sbt-article-corps table, .vl-prose table{ width:100%; min-width:520px; border-collapse:collapse; font:500 1.0625rem/1.45 var(--vl-crimson); }
.sbt-article-corps th, .vl-prose th{ background:var(--vl-vert); color:var(--vl-brume); text-align:left; font-weight:600; padding:12px 14px; vertical-align:bottom; }
.sbt-article-corps td, .vl-prose td{ padding:11px 14px; border-top:1px solid var(--vl-filet); vertical-align:top; }
.sbt-article-corps tbody tr:nth-child(even) td, .vl-prose tbody tr:nth-child(even) td{ background:var(--vl-surf); }
.sbt-article-corps td:first-child{ font-weight:600; }
@media (max-width:620px){
  .sbs_tableau{ overflow:visible; border:0; background:none; }
  .sbt-article-corps table.vl-tableau, .sbt-article-corps table.vl-tableau tbody, .sbt-article-corps table.vl-tableau tr, .sbt-article-corps table.vl-tableau td{ display:block; width:100%; min-width:0; }
  .sbt-article-corps table.vl-tableau thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .sbt-article-corps table.vl-tableau tr{ margin:0 0 12px; padding:6px 14px 8px; background:#fff; border:1px solid var(--vl-filet); border-left:3px solid var(--vl-rouge); }
  .sbt-article-corps table.vl-tableau tbody tr:nth-child(even) td, .sbt-article-corps table.vl-tableau td{ background:none; }
  .sbt-article-corps table.vl-tableau td{ display:grid; grid-template-columns:minmax(0,40%) minmax(0,1fr); gap:10px; padding:7px 0; border-top:1px solid var(--vl-filet); }
  .sbt-article-corps table.vl-tableau td::before{ content:attr(data-label); font:500 .9375rem/1.35 var(--vl-crimson); color:var(--vl-doux); }
  .sbt-article-corps table.vl-tableau td:first-child{ display:block; border-top:0; font-size:1.125rem; }
  .sbt-article-corps table.vl-tableau td:first-child::before{ display:none; }
}
/* Sources : encadré numéroté discret en fin d'article */
.sbt-article-corps aside.sb-sources{ margin:2.4em 0 0; padding:20px 24px; background:var(--vl-surf); border-left:3px solid var(--vl-vert); font:400 1rem/1.5 var(--vl-crimson); color:var(--vl-doux); }
.sbt-article-corps aside.sb-sources h2{ font:600 1.0625rem/1.2 var(--vl-crimson); color:var(--vl-tourbe); margin:0 0 10px; }
.sbt-article-corps aside.sb-sources ul{ counter-reset:vl-src; margin:0; }
.sbt-article-corps aside.sb-sources li{ counter-increment:vl-src; padding-left:32px; margin:.5em 0; }
.sbt-article-corps aside.sb-sources li::before{ content:counter(vl-src); left:0; top:.1em; width:22px; height:22px; background:var(--vl-vert); color:var(--vl-brume); font:600 .8125rem/22px var(--vl-crimson); text-align:center; box-shadow:none; }
.sbt-article-corps aside.sb-sources a{ color:var(--vl-tourbe); }

/* Blocs figés : habillage (angles droits, Rouge clan, Vert tartan) */
.sbt-encadre{ border-radius:0; margin-block:2em; }
.sbt-encadre-titre{ font:600 1.0625rem/1.2 var(--vl-crimson); text-transform:none; letter-spacing:0; }
.sbt-encadre--retenir{ background:var(--vl-vert); color:var(--vl-brume); padding:26px 30px; border-top:6px solid var(--vl-rouge); }
.sbt-encadre--retenir .sbt-encadre-titre{ color:var(--vl-brume); }
.sbt-retenir-liste li::before{ border-radius:0; background-color:var(--vl-rouge); }
.sbt-article-corps .sbt-retenir-liste li{ color:var(--vl-brume); }
.sbt-encadre--saviez{ background:var(--vl-surf); border-left:3px solid var(--vl-rouge); padding:20px 24px; }
.sbt-encadre--saviez::before{ border-radius:0; background:var(--vl-rouge); color:#fff; }
.sbt-faq{ border-radius:0; background:var(--vl-surf); border:0; border-left:3px solid var(--vl-vert); }
.sbt-faq-liste details{ border-radius:0; background:var(--vl-carte); }
.sbt-faq-liste details[open]{ border-color:var(--vl-rouge) !important; }
.sbt-faq-liste summary::after{ border-radius:0; background-color:var(--vl-surf); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C8102E' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E"); }
.sbt-faq-liste summary:hover{ color:var(--vl-rouge); }
.sbt-faq-reponse{ color:var(--vl-tourbe); }
.sbt-sommaire{ border-radius:0; border-left:4px solid var(--vl-rouge); background:var(--vl-carte); }
.sbt-sommaire-num{ border-radius:0; background:var(--vl-vert); color:var(--vl-brume); }
.sbt-auteur{ border-radius:0; background:var(--vl-surf); border:0; border-left:3px solid var(--vl-vert); margin:44px 0 0; }
.sbt-auteur-photo img{ border-radius:50%; box-shadow:0 0 0 3px var(--vl-carte), 0 0 0 5px var(--vl-rouge); }
.sbt-auteur-role{ color:var(--vl-rouge); text-transform:none; letter-spacing:0; font-size:1rem; }
.sbt-auteur-sur{ text-transform:none; letter-spacing:0; font-size:.9375rem; }
.sbt-auteur-chiffres span{ border-radius:0; }
.sbt-auteur-actions .sbt-btn{ border-radius:0; background:var(--vl-rouge); color:#fff; }
.sbt-auteur-actions .sbt-btn--fantome{ background:transparent; color:var(--vl-tourbe); border:2px solid var(--vl-tourbe); }
.sbt-auteur-der a{ border-bottom-style:solid; }
.sbt-a-lire{ border-top:0; margin-top:0; padding-top:0; }
.sbt-kicker{ font:400 clamp(1.5rem, 2.4vw, 1.875rem)/1.2 var(--vl-uncial); margin:0 0 20px; }

/* Barre latérale : UN bloc collant (l'outil en tête, le sommaire dessous), plus court que la fenêtre, sans défilement interne */
.sbt-rail{
  top:88px; gap:14px; padding:16px; border-left:2px solid var(--vl-vert); background:var(--vl-carte); border-top:6px solid var(--vl-rouge);
}
.sbt-rail > .vl-outil{ order:-1; }
.sbt-rail-carte{ background:transparent; border:0; padding:0; border-radius:0; }
.sbt-rail .sbt-sommaire{ border:0; border-left:0; background:transparent; padding:0; }
.sbt-rail .sbt-sommaire-titre{ font:600 1.0625rem/1.2 var(--vl-crimson); }
.sbt-rail .sbt-sommaire ol{ gap:4px; margin-top:8px; }
.sbt-rail .sbt-sommaire li a{ font:500 1rem/1.3 var(--vl-crimson); }
.sbt-rail .sbt-sommaire-libelle{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sbt-rail .sbt-sommaire-num{ width:22px; height:22px; font-size:.8125rem; }
.sbt-rail.est-resultat .sbt-rail-carte--sommaire{ display:none; }
.sbt-rail-carte--sommaire{ border-top:1px solid var(--vl-filet); padding-top:12px; }
@media (max-width:1080px){
  .sbt-rail{ position:static; padding:16px; border-top:6px solid var(--vl-rouge); border-left:2px solid var(--vl-vert); }
  .sbt-article-principal{ padding:28px 24px 32px; }
}
@media (max-width:560px){ .sbt-article-principal{ padding:22px 18px 28px; } }

/* Variante « barre latérale » de l'outil */
.vl-outil--rail{ background:var(--vl-vert); padding:14px 14px 16px; }
.vl-outil__titre{ margin:0 0 10px; font:600 1.1875rem/1.2 var(--vl-crimson); color:var(--vl-brume); }
.vl-outil__pas{ font-weight:500; font-size:.9375rem; opacity:.92; }
.vl-outil--rail .vl-form-etape.est-active{ display:flex; flex-direction:column; gap:12px; }
.vl-outil--rail .vl-form-champs--deux{ display:grid; gap:10px; }
.vl-outil--rail .vl-tuiles--jours{ gap:6px; }
.vl-outil--rail .vl-tuiles--jours .vl-tuile{ padding:4px 2px; min-height:56px; }
.vl-outil--rail .vl-tuiles--base{ grid-template-columns:1fr; gap:6px; }
.vl-outil--rail .vl-tuiles--base .vl-tuile{ min-height:44px; flex-direction:row; justify-content:flex-start; padding:0 12px; }
.vl-outil--rail .vl-jours{ grid-template-columns:1fr; }
.vl-outil--rail .vl-form-action--mail{ gap:6px; }
.vl-outil--rail .vl-mail__ligne{ flex-direction:column; }
.vl-outil--rail .vl-mail .vl-btn{ width:100%; }

/* « À lire aussi » : pleine largeur, sans case vide */
.vl-alire{ padding-block:8px 64px; }
.vl-alire .vl-grille{ align-items:start; }
.vl-alire__plus{ margin:20px 0 0; font-size:1.0625rem; color:var(--vl-doux); }
.vl-alire__plus a{ color:var(--vl-rouge); }
.sbt-article-commentaires{ margin-top:32px; padding-top:24px; border-top:1px solid var(--vl-filet); }

/* =====================================================================
   7. Pages : panneau, contact, à propos, auteur
   ===================================================================== */
.vl-page-corps{ padding-block:40px 64px; }
.vl-page-corps__grille{ display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:start; max-width:960px; }
.vl-page-corps__grille.a-sommaire{ grid-template-columns:minmax(0,1fr) 300px; max-width:1200px; }
.vl-panneau{ background:var(--vl-carte); border-left:2px solid var(--vl-rouge); padding:40px 48px 44px; min-width:0; }
.vl-page-rail{ position:sticky; top:88px; }
.vl-page-rail .sbt-rail-carte{ padding:16px; background:var(--vl-carte); border:1px solid var(--vl-filet); border-top:4px solid var(--vl-vert); }
@media (max-width:1080px){ .vl-page-corps__grille.a-sommaire{ grid-template-columns:minmax(0,1fr); } .vl-page-rail{ position:static; order:-1; } }
@media (max-width:760px){ .vl-panneau{ padding:24px 18px 28px; } }

/* Contact */
.vl-contact{ padding-block:32px 56px; }
.vl-contact__grille{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:40px; align-items:start; }
.vl-contact__carte{ background:var(--vl-carte); border-left:2px solid var(--vl-rouge); padding:24px 28px 26px; min-width:0; }
.vl-contact-form{ display:grid; gap:14px; }
.vl-contact-form label > span, .vl-sujets legend{ display:block; margin:0 0 4px; font:600 1.0625rem/1.2 var(--vl-crimson); padding:0; }
.vl-contact-form__ligne{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.vl-contact-form input[type=text], .vl-contact-form input[type=email], .vl-contact-form textarea{
  width:100%; border:2px solid var(--vl-bord); border-radius:0; background:#fff; padding:0 14px; height:46px; font:500 1.0625rem var(--vl-crimson); color:var(--vl-tourbe);
}
.vl-contact-form textarea{ height:auto; padding:10px 14px; resize:vertical; min-height:92px; line-height:1.4; }
.vl-sujets{ border:0; padding:0; margin:0; min-width:0; }
.vl-sujets legend{ float:left; width:100%; }
.vl-sujets legend + *{ clear:both; }
.vl-sujet{ display:inline-block; margin:0 6px 6px 0; }
.vl-sujet input{ position:absolute; opacity:0; width:1px; height:1px; }
.vl-sujet span{ display:block; margin:0 !important; padding:9px 16px; min-height:44px; border:2px solid var(--vl-tourbe); font:600 1.0625rem/1.3 var(--vl-crimson); cursor:pointer; }
.vl-contact-form .vl-sujet span{ padding:9px 16px; }
.vl-sujet input:checked + span{ background:var(--vl-vert); border-color:var(--vl-vert); color:var(--vl-brume); }
.vl-sujet input:focus-visible + span{ outline:3px solid var(--vl-rouge); outline-offset:2px; }
.vl-contact-form .vl-erreur{ color:var(--vl-rouge); }
.vl-contact-form__bas{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; }
.vl-rgpd{ font:500 .9375rem/1.35 var(--vl-crimson); color:var(--vl-doux); flex:1 1 220px; }
.vl-rgpd a{ color:var(--vl-rouge); }
.vl-merci{ padding:12px 4px; }
.vl-merci__titre{ font:600 1.625rem/1.2 var(--vl-crimson); margin:0 0 8px; }
.vl-contact__photo{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-contact__photo img, .vl-contact__photo .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-contact__motifs{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:10px; }
.vl-contact__motifs a{ display:block; padding:10px 16px; background:var(--vl-carte); border-left:2px solid var(--vl-rouge); text-decoration:none; }
.vl-contact__motifs b{ display:block; font:600 1.1875rem/1.2 var(--vl-crimson); }
.vl-contact__motifs span{ display:block; font-size:1.0625rem; line-height:1.35; color:var(--vl-doux); }
.vl-contact__motifs a:hover b{ color:var(--vl-rouge); }

/* À propos */
.vl-ap-sens__grille{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,520px); gap:56px; align-items:center; }
.vl-ap-sens h2{ margin-bottom:16px; }
.vl-ap-sens__texte p{ max-width:36em; }
.vl-independance{ margin:20px 0 22px; padding:14px 18px; background:var(--vl-surf); border-left:3px solid var(--vl-vert); }
.vl-ap-sens__photo{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-ap-sens__photo img, .vl-ap-sens__photo .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-ap-rubriques__liste{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; }
.vl-ap-rubriques__liste a{ display:block; background:var(--vl-carte); border-left:2px solid var(--vl-rouge); text-decoration:none; }
.vl-ap-rubriques__photo{ display:block; aspect-ratio:4/3; overflow:hidden; background:var(--vl-vert); }
.vl-ap-rubriques__photo img, .vl-ap-rubriques__photo .vl-photo-vide{ width:100%; height:100%; object-fit:cover; }
.vl-ap-rubriques__liste b{ display:block; padding:10px 14px 12px; font:600 1.1875rem/1.2 var(--vl-crimson); }
.vl-ap-rubriques__liste a:hover b{ color:var(--vl-rouge); }
ol.vl-etapes{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
ol.vl-etapes li{ display:grid; gap:6px; align-content:start; padding:20px 22px 22px; background:var(--vl-carte); border-left:2px solid var(--vl-rouge); }
.vl-etapes__num{ width:36px; height:36px; display:block; background:var(--vl-vert); color:var(--vl-brume); font:700 1.25rem/36px var(--vl-crimson); text-align:center; }
ol.vl-etapes b{ font:600 1.3125rem/1.25 var(--vl-crimson); }
ol.vl-etapes li > span:last-child{ font-size:1.125rem; line-height:1.5; color:var(--vl-doux); }
.vl-redacteurs__liste{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; }
.vl-redacteur a{ display:grid; justify-items:start; gap:4px; padding:20px; background:var(--vl-carte); border-left:2px solid var(--vl-rouge); text-decoration:none; height:100%; }
.vl-redacteur__photo{ display:block; width:96px; height:96px; border-radius:50%; overflow:hidden; box-shadow:0 0 0 3px var(--vl-carte), 0 0 0 5px var(--vl-rouge); }
.vl-redacteur__photo img{ width:100%; height:100%; object-fit:cover; }
.vl-redacteur b{ font:600 1.25rem/1.2 var(--vl-crimson); margin-top:10px; }
.vl-redacteur__role{ font-size:1rem; color:var(--vl-doux); }
.vl-redacteur__n{ font-size:1rem; font-weight:600; color:var(--vl-rouge); }

/* Auteur */
.vl-auteur-tete{ background:var(--vl-vert); color:var(--vl-brume); padding-block:36px; }
.vl-auteur-tete__in{ display:grid; grid-template-columns:200px minmax(0,1fr); gap:36px; align-items:center; }
.vl-auteur-tete__portrait{ width:200px; height:200px; border-radius:50%; overflow:hidden; box-shadow:0 0 0 4px var(--vl-vert), 0 0 0 8px var(--vl-rouge); background:var(--vl-brume); }
.vl-auteur-tete__portrait img{ width:100%; height:100%; object-fit:cover; }
.vl-monogramme{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; background:var(--vl-brume); color:var(--vl-vert); font:600 4rem/1 var(--vl-crimson); }
.vl-auteur-tete h1{ font:400 clamp(1.875rem, 3.3vw, 2.75rem)/1.1 var(--vl-uncial); color:var(--vl-brume); }
.vl-auteur-tete__role{ margin:8px 0 0; font:600 1.125rem/1.3 var(--vl-crimson); color:var(--vl-brume); }
.vl-auteur-tete__bio{ margin:12px 0 0; max-width:44em; font-size:1.1875rem; line-height:1.5; color:var(--vl-brume); }
.vl-auteur-tete__n{ margin:10px 0 0; font:600 1.0625rem var(--vl-crimson); }

/* =====================================================================
   8. Pied de page dense (corr-2, 19/10) : Vert tartan, lisière de tartan en tête, marque + « Nous écrire »,
      puis 4 colonnes (Rubriques · Guides pour commencer · Villages-bases · Le site), © en bas. Écart à la DA accepté par deux juges.
   ===================================================================== */
.sbt-footer{ position:relative; background:var(--vl-vert); color:var(--vl-brume); padding:0; margin:0; }
.sbt-footer::before{ content:""; display:block; height:12px; background:var(--vl-tartan); }
.sbt-footer .sbt-conteneur{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:40px; row-gap:0;
  width:100%; max-width:1200px; margin-inline:auto; padding:34px var(--vl-pad) 0;
}
.sbt-footer .sbt-footer-grille{ display:contents; }
/* Ligne 1 : la marque et sa devise, « Nous écrire » à droite ; un filet clair sépare des colonnes */
.sbt-footer .sbt-footer-grille > .sbt-footer-colonne:first-child{ grid-row:1; grid-column:1 / span 3; display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 22px; align-self:center; }
.sbt-footer-logo{ display:block; margin:0; font:400 1.75rem/1.1 var(--vl-uncial); color:var(--vl-brume); }
.sbt-footer .sbt-footer-desc{ margin:0; max-width:none; font:italic 400 1.1875rem/1.35 var(--vl-crimson); color:var(--vl-rose-pale); }
.sbt-footer .sbt-footer-cta{ grid-row:1; grid-column:4; justify-self:end; align-self:center; display:block; margin:0; padding:0; border:0; }
.sbt-footer .sbt-footer-cta > div{ display:none; }
.sbt-footer .sbt-footer-cta a.sbt-btn, .sbt-footer .sbt-footer-cta a.sbt-btn:hover{ position:relative; min-height:50px; padding:0 34px 0 24px; border:0; background:var(--vl-rouge); color:#fff; text-decoration:none; font:700 1.125rem/1 var(--vl-crimson); box-shadow:0 12px 22px -12px rgba(0,0,0,.7); }
.sbt-footer .sbt-footer-cta a.sbt-btn:hover{ background:var(--vl-rouge-fonce); }
.sbt-footer .sbt-footer-grille::before{ content:""; grid-row:2; grid-column:1 / -1; height:1px; margin:26px 0 30px; background:rgba(238,240,236,.24); }
/* Ligne 3 : les colonnes de liens */
.sbt-footer .sbt-footer-grille > .sbt-footer-colonne:not(:first-child){ grid-row:3; min-width:0; align-self:start; }
.sbt-footer .sbt-footer-colonne:not(:has(li)){ display:none; } /* colonne « Le site » du bloc figé, remplacée par la nôtre */
.sbt-footer .sbt-footer-colonne .sbt-t4{ display:block; margin:0 0 14px; font:700 1.1875rem/1.2 var(--vl-crimson); text-transform:none; letter-spacing:0; color:var(--vl-rose-pale); }
.sbt-footer .sbt-footer-colonne ul{ display:flex; flex-direction:column; gap:10px; margin:0; padding:0; list-style:none; }
.sbt-footer .sbt-footer-colonne li{ min-width:0; }
.sbt-footer .sbt-footer-colonne ul a{ font:500 1.0625rem/1.3 var(--vl-crimson); color:var(--vl-brume); text-decoration:none; }
.sbt-footer .sbt-footer-colonne ul a:hover{ color:#fff; text-decoration:underline; text-underline-offset:4px; }
.sbt-footer .vl-pied-col--bases ul{ gap:14px; }
.sbt-footer .vl-pied-col--bases a{ font-weight:700; }
.sbt-footer .vl-pied-col--bases li span{ display:block; margin-top:2px; font:italic 400 1rem/1.3 var(--vl-crimson); color:rgba(238,240,236,.86); }
/* Ligne 4 : © */
.sbt-footer .sbt-footer-bas{ grid-row:4; grid-column:1 / -1; margin:32px 0 0; padding:16px 0 20px; border-top:1px solid rgba(238,240,236,.24); font:500 1rem/1.3 var(--vl-crimson); color:rgba(238,240,236,.9); }
@media (max-width:960px){
  .sbt-footer .sbt-conteneur{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; row-gap:30px; }
  .sbt-footer .sbt-footer-grille > .sbt-footer-colonne:first-child{ grid-column:1 / -1; }
  .sbt-footer .sbt-footer-cta{ grid-row:2; grid-column:1 / -1; justify-self:start; }
  .sbt-footer .sbt-footer-grille::before{ grid-row:3; margin:0; }
  .sbt-footer .sbt-footer-grille > .sbt-footer-colonne:not(:first-child){ grid-row:auto; }
  .sbt-footer .sbt-footer-bas{ grid-row:auto; margin-top:4px; }
}
@media (max-width:480px){
  .sbt-footer .sbt-conteneur{ grid-template-columns:minmax(0,1fr); row-gap:24px; padding-top:26px; }
  .sbt-footer-logo{ font-size:1.5rem; }
  .sbt-footer .sbt-footer-desc{ font-size:1.0625rem; }
}

/* =====================================================================
   9. Infographies du socle ([sbs_jauges], [sbs_tarifs], [sbs_frise], [sbs_lieu]) : habillage dans la palette
   ===================================================================== */
sbs-jauges, sbs-tarifs, sbs-frise, sbs-lieu{ display:block; margin:1.8em 0; }
sbs-jauges{ max-width:100%; overflow:hidden; background:var(--vl-vert); color:var(--vl-brume); border-top:6px solid var(--vl-rouge); padding:22px 28px 18px; }
.sbs_jauges_titre, .sbs_tarifs_titre, .sbs_frise_titre{ display:block; margin-bottom:10px; font:600 1.125rem/1.2 var(--vl-crimson); }
sbs-jauges .sbs_jauges_titre{ color:var(--vl-brume); }
sbs-jauge{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:baseline; gap:2px 10px; padding:12px 0; border-top:1px solid rgba(238,240,236,.28); }
.sbs_jauge_libelle{ font:500 1.125rem/1.35 var(--vl-crimson); color:var(--vl-brume); }
.sbs_jauge_valeur{ font:700 2rem/1.1 var(--vl-crimson); font-feature-settings:"tnum"; color:var(--vl-brume); text-align:right; white-space:normal; overflow-wrap:anywhere; min-width:0; }
.sbs_jauge_unite{ font:500 1rem/1.2 var(--vl-crimson); color:var(--vl-brume); max-width:9em; }
.sbs_source{ display:block; margin-top:10px; font:italic 400 .9375rem/1.4 var(--vl-crimson); color:var(--vl-brume); }
sbs-tarifs, sbs-frise, sbs-lieu{ background:var(--vl-surf); border-left:3px solid var(--vl-vert); padding:20px 24px; color:var(--vl-tourbe); }
sbs-tarif{ display:grid; grid-template-columns:minmax(0,1fr) 140px auto; gap:12px; align-items:center; padding:8px 0; }
.sbs_tarif_libelle{ font:600 1.0625rem var(--vl-crimson); } .sbs_tarif_prix{ font:700 1.125rem var(--vl-crimson); }
.sbs_tarif_barre{ width:100%; height:10px; accent-color:var(--vl-rouge); }
.sbs_tarifs_notes, sbs-tarifs .sbs_source, sbs-frise .sbs_source, sbs-lieu .sbs_source{ color:var(--vl-doux); }
sbs-etape{ display:grid; gap:2px; padding:10px 0 10px 18px; border-left:3px solid var(--vl-rouge); }
.sbs_etape_date{ font:700 .9375rem var(--vl-crimson); color:var(--vl-rouge); } .sbs_etape_titre{ font:600 1.125rem var(--vl-crimson); } .sbs_etape_desc{ font:400 1.0625rem/1.4 var(--vl-crimson); color:var(--vl-doux); }
.sbs_lieu_nom{ font:600 1.25rem var(--vl-crimson); display:block; } .sbs_lieu_adresse{ font-style:normal; display:block; margin:4px 0; } .sbs_lieu_acces{ display:block; color:var(--vl-doux); }
.sbs_lieu_carte{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font:700 1rem var(--vl-crimson); color:var(--vl-rouge); }
@media (max-width:560px){
  sbs-jauge{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
  .sbs_jauge_valeur{ text-align:left; font-size:1.5rem; } .sbs_jauge_unite{ max-width:none; }
  sbs-jauges{ padding:18px 16px 14px; }
  /* Nom et prix sur la même ligne, la barre dessous (corr-2 : le prix tombait sous sa barre, au-dessus du nom suivant) */
  sbs-tarif{ grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"lib prix" "barre barre"; gap:2px 12px; padding:10px 0; }
  .sbs_tarif_libelle{ grid-area:lib; } .sbs_tarif_prix{ grid-area:prix; text-align:right; } .sbs_tarif_barre{ grid-area:barre; }
}

/* =====================================================================
   10. Adaptations de largeur
   ===================================================================== */
@media (max-width:1080px){
  .vl-grille--4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-grille-rub{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-tisse{ grid-template-columns:minmax(0,1fr); }
  .vl-tisse__fils{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .vl-carte--ligne .vl-carte__lien{ flex-direction:column; }
  .vl-carte--ligne .vl-carte__photo{ flex:none; }
  .vl-contact__grille{ grid-template-columns:minmax(0,1fr); }
  .vl-contact__cote{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; }
  .vl-contact__motifs{ margin-top:0; }
  .vl-lisiere__grille{ grid-template-columns:minmax(0,1fr) minmax(0,.7fr); column-gap:32px; }
}
@media (max-width:960px){
  .vl-qui__grille, .vl-ap-sens__grille{ grid-template-columns:minmax(0,1fr); gap:28px; }
  ol.vl-etapes{ grid-template-columns:minmax(0,1fr); }
  .vl-tete__grille{ grid-template-columns:minmax(0,1fr); gap:0; padding-bottom:0; min-height:0; }
  .vl-tete__bandes{ margin:20px calc(-1 * var(--vl-pad)) 0; min-height:104px; height:104px; }
  .vl-tete .vl-bandes, .vl-tete--court .vl-bandes, .vl-tete .vl-bandes .vl-bande{ min-height:104px; height:104px; }
  .vl-tete--court .vl-tete__bandes{ margin:16px calc(-1 * var(--vl-pad)) 0; min-height:84px; height:84px; }
  .vl-tete--court .vl-bandes, .vl-tete--court .vl-bandes .vl-bande{ min-height:84px; height:84px; }
  .vl-lisiere__grille{ grid-template-columns:minmax(0,1fr); }
  .vl-lisiere__haut, .vl-lisiere__texte, .vl-lisiere__photo{ grid-column:1; }
  .vl-lisiere__haut{ grid-row:1; } .vl-lisiere__texte{ grid-row:2; padding-bottom:20px; } .vl-lisiere__photo{ grid-row:3; }
  .vl-route{ margin-right:12px; }
  .vl-auteur-tete__in{ grid-template-columns:120px minmax(0,1fr); gap:20px; }
  .vl-auteur-tete__portrait{ width:120px; height:120px; }
}
@media (max-width:860px){
  .vl-eaupied__cols{ grid-template-columns:minmax(0,1fr); gap:28px; }
  .vl-saisons__bandes{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px){
  .vl-section{ padding-block:32px; }
  .vl-grille--2, .vl-grille--3, .vl-grille--4, .vl-grille-rub{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .vl-tisse__fils{ grid-template-columns:minmax(0,1fr); }
  .vl-carte--ligne .vl-carte__lien{ flex-direction:row; }
  .vl-carte--ligne .vl-carte__photo{ flex:0 0 38%; }
  .vl-contact__cote{ grid-template-columns:minmax(0,1fr); }
  .vl-contact-form__ligne{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .vl-contact__carte{ padding:18px 16px 20px; }
  .vl-contact-form{ gap:10px; }
  .vl-sujet{ margin:0 4px 6px 0; } .vl-sujet span{ padding:8px 11px; font-size:1rem; }
  .vl-tete__chapo{ font-size:1.125rem; }
  .vl-sec-tete{ margin-bottom:18px; }
  .vl-vignette{ flex-basis:112px; }
  .vl-lisiere{ padding-bottom:46px; }
  .vl-route{ grid-template-columns:repeat(3,minmax(0,1fr)); margin-right:8px; }
  .vl-route li{ padding:8px 10px; } .vl-route span{ font-size:.8125rem; } .vl-route b{ font-size:.9375rem; }
  .vl-lisiere h1{ font-size:1.875rem; }
}
@media (max-width:420px){
  .vl-saisons__bandes{ grid-template-columns:minmax(0,1fr); }
  .vl-contact__carte{ padding:14px 14px 16px; }
}

/* Contact mobile : le formulaire tient entier (bouton compris) dans 390×700 (sb-sortie premier_ecran, 19/10). */
@media (max-width: 640px){
  body:has(.vl-contact) .vl-tete--court .vl-tete__bandes{ margin-top:10px; height:52px; min-height:52px; }
  body:has(.vl-contact) .vl-tete--court .vl-tete__bandes .vl-bandes, body:has(.vl-contact) .vl-tete--court .vl-tete__bandes .vl-bande{ height:52px; min-height:52px; }
  body:has(.vl-contact) .vl-tete--court .vl-tete__grille{ min-height:0; padding-block:14px 0; }
  body:has(.vl-contact) .vl-tete--court h1{ font-size:1.75rem; }
  body:has(.vl-contact) .vl-tete--court .vl-tete__chapo{ font-size:1rem; line-height:1.35; margin-top:4px; }
  .vl-contact{ padding-block:12px 40px; }
  .vl-contact__carte{ padding:12px 12px 14px; }
  .vl-contact-form{ gap:8px; }
  .vl-contact-form__ligne{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .vl-contact-form label > span, .vl-sujets legend{ font-size:.9375rem; margin-bottom:2px; }
  .vl-contact-form input[type=text], .vl-contact-form input[type=email]{ height:42px; padding:0 10px; }
  .vl-contact-form textarea{ min-height:56px; }
  .vl-contact-form .vl-sujet span{ padding:7px 10px; min-height:40px; }
}

/* =====================================================================
   11. Corrections-1 (19/10/2026) — profondeur sans arrondi, motif en lisière, zéro case vide
   ===================================================================== */

/* --- Cartes : angles droits, ombre douce, lisière de tartan sous la photo, étiquette en pastille sur la photo --- */
.vl-grille, .vl-grille-rub, .vl-alire .vl-grille{ align-items:stretch; }
.vl-carte{
  display:flex; flex-direction:column; border-left:0; background:var(--vl-carte); box-shadow:var(--vl-ombre);
  transition:box-shadow .25s ease, transform .25s ease;
}
.vl-carte:hover{ transform:translateY(-3px); box-shadow:var(--vl-ombre-forte); }
.vl-carte__lien{ flex:1; }
.vl-carte__corps{ flex:1; }
.vl-carte__photo::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:6px; background:var(--vl-tartan-h); z-index:2; }
.vl-carte__photo img{ transition:transform .5s ease; }
.vl-carte:hover .vl-carte__photo img{ transform:scale(1.035); }
.vl-carte__photo .vl-etiquette{
  position:absolute; left:10px; top:10px; z-index:3; max-width:calc(100% - 56px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  padding:5px 10px 5px 9px; background:rgba(28,60,20,.92); border-left:3px solid var(--vl-rose); color:var(--vl-brume);
  font:600 .9375rem/1.2 var(--vl-crimson); box-shadow:0 4px 12px -4px rgba(0,0,0,.45);
}
.vl-epingle--carte{ width:18px; height:18px; padding:5px; }
.vl-carte--ligne .vl-epingle--carte{ display:none; }
.vl-carte--ligne .vl-carte__photo .vl-etiquette{ left:6px; top:6px; max-width:calc(100% - 12px); padding:3px 7px; font-size:.8125rem; }
.vl-carte--ligne .vl-carte__photo::after{ height:4px; }

/* --- Grilles de rubrique / auteur / recherche : 6 colonnes, gabarit choisi selon le nombre (vl_grille_cartes) --- */
.vl-grille-rub{ grid-template-columns:repeat(6,minmax(0,1fr)); gap:28px 24px; }
.vl-grille-rub > .vl-carte{ grid-column:span 2; }
.vl-grille-rub > .vl-c-demi{ grid-column:span 3; }
.vl-grille-rub > .vl-c-une3{ grid-column:1 / -1; }
@media (min-width:1081px){
  .vl-grille-rub > .vl-c-une3 .vl-carte__lien{ flex-direction:row; }
  .vl-grille-rub > .vl-c-une3 .vl-carte__photo{ flex:0 0 58%; aspect-ratio:16/9; }
  .vl-grille-rub > .vl-c-une3 .vl-carte__corps{ justify-content:center; padding:28px 36px; gap:10px; }
  .vl-grille-rub > .vl-c-une3 .vl-carte__titre{ font-size:1.875rem; line-height:1.15; }
  .vl-grille-rub > .vl-c-une3 .vl-carte__resume{ font-size:1.1875rem; }
  .vl-grille-rub > .vl-c-demi .vl-carte__photo{ aspect-ratio:16/9; }
  .vl-grille-rub > .vl-c-demi .vl-carte__titre{ font-size:1.5625rem; }
}
@media (max-width:1080px){
  .vl-grille-rub{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-grille-rub > .vl-carte, .vl-grille-rub > .vl-c-demi, .vl-grille-rub > .vl-c-une3{ grid-column:auto; }
  .vl-grille-rub > .vl-c-une2{ grid-column:1 / -1; }
}
@media (min-width:761px) and (max-width:1080px){
  .vl-grille-rub > .vl-c-une2 .vl-carte__lien{ flex-direction:row; }
  .vl-grille-rub > .vl-c-une2 .vl-carte__photo{ flex:0 0 52%; }
  .vl-grille-rub > .vl-c-une2 .vl-carte__corps{ justify-content:center; padding:22px 26px; }
}
@media (max-width:760px){ .vl-grille-rub{ grid-template-columns:minmax(0,1fr); gap:20px; } .vl-grille-rub > .vl-carte{ grid-column:auto !important; } }

/* --- Accueil : quatre fonds qui alternent (Brume · étoffe · Vert tartan · Brume foncée) --- */
.vl-itineraires, .vl-eaupied{ background:var(--vl-etoffe); }
.vl-saisons{ background:var(--vl-vert); color:var(--vl-brume); }
.vl-saisons .vl-sec-tete h2{ color:var(--vl-brume); }
.vl-qui{ background:var(--vl-surf); }
.vl-croix{ background-color:var(--vl-brume); }

/* S6 — rangées blanches à ombre douce */
.vl-liens-vignettes a{ border-left:0; background:#fff; box-shadow:var(--vl-ombre); transition:box-shadow .25s ease, transform .25s ease; }
.vl-liens-vignettes a:hover{ transform:translateX(3px); box-shadow:var(--vl-ombre-forte); }
.vl-vignette{ position:relative; }
.vl-vignette::after{ content:""; position:absolute; top:0; bottom:0; right:0; width:5px; background:var(--vl-tartan); }

/* --- Photos d'illustration (Qui écrit ici, À propos, Contact, en-tête d'article) : le tartan passe DERRIÈRE, en cadre décalé --- */
.vl-qui__photo, .vl-ap-sens__photo, .vl-contact__photo{ overflow:visible; isolation:isolate; box-shadow:var(--vl-ombre); }
.vl-qui__photo::before, .vl-ap-sens__photo::before, .vl-contact__photo::before{
  content:""; position:absolute; z-index:-1; top:18px; left:18px; right:-18px; bottom:-18px; background:var(--vl-tartan);
}
/* (corr-2) l'en-tête d'article n'a plus de cadre décalé : voir section 12 */
.vl-route{ margin:-30px 22px 0 22px; box-shadow:var(--vl-ombre-forte); border-left:3px solid var(--vl-rouge); }
@media (max-width:760px){
  .vl-qui__photo::before, .vl-ap-sens__photo::before, .vl-contact__photo::before{ top:12px; left:12px; right:-10px; bottom:-10px; }
  .vl-route{ margin:-24px 12px 0 12px; }
}

/* --- Article : le panneau commence par son contenu (plus de bande vide en tête) --- */
.sbt-article-corps > :first-child, .sbt-article-principal > .sbt-article-corps:first-child > :first-child{ margin-top:0 !important; }

/* --- Étapes rédigées dans les guides (<div class="vl-etapes"><ol>) : pleine largeur du panneau, une étape par rangée --- */
:is(.sbt-article-corps, .vl-prose) div.vl-etapes{ margin:1.6em 0 1.8em; }
:is(.sbt-article-corps, .vl-prose) div.vl-etapes > ol{ display:grid; grid-template-columns:minmax(0,1fr); gap:14px; margin:0; padding:0; list-style:none; counter-reset:vl-et; }
:is(.sbt-article-corps, .vl-prose) div.vl-etapes > ol > li{
  counter-increment:vl-et; position:relative; margin:0; padding:18px 22px 18px 76px; background:#fff; box-shadow:var(--vl-ombre);
  font:400 1.1875rem/1.55 var(--vl-crimson); color:var(--vl-tourbe);
}
:is(.sbt-article-corps, .vl-prose) div.vl-etapes > ol > li::before{
  content:counter(vl-et); position:absolute; left:20px; top:18px; width:38px; height:38px; background:var(--vl-vert); color:var(--vl-brume);
  font:700 1.1875rem/38px var(--vl-crimson); text-align:center; box-shadow:4px 4px 0 var(--vl-rouge);
}
:is(.sbt-article-corps, .vl-prose) div.vl-etapes > ol > li > :is(strong, b):first-child{ display:block; margin:0 0 4px; font:600 1.3125rem/1.3 var(--vl-crimson); color:var(--vl-tourbe); }
@media (max-width:560px){
  :is(.sbt-article-corps, .vl-prose) div.vl-etapes > ol > li{ padding:16px 16px 16px 60px; font-size:1.0625rem; }
  :is(.sbt-article-corps, .vl-prose) div.vl-etapes > ol > li::before{ left:12px; top:16px; width:32px; height:32px; line-height:32px; font-size:1rem; }
}

/* --- « Bon à savoir » : toujours un encadré (articles ET pages), lisière de tartan à gauche --- */
:is(.sbt-article-corps, .vl-prose) aside.vl-conseil{
  position:relative; margin:1.8em 0; padding:18px 24px 18px 34px; background:#fff; box-shadow:var(--vl-ombre);
  font:400 1.1875rem/1.55 var(--vl-crimson); color:var(--vl-tourbe);
}
:is(.sbt-article-corps, .vl-prose) aside.vl-conseil::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:10px; background:var(--vl-tartan); }
:is(.sbt-article-corps, .vl-prose) aside.vl-conseil p{ margin:0 0 .6em; }
:is(.sbt-article-corps, .vl-prose) aside.vl-conseil p:last-child{ margin-bottom:0; }
:is(.sbt-article-corps, .vl-prose) aside.vl-conseil .vl-conseil__titre{ margin:0 0 6px; font:700 1.0625rem/1.2 var(--vl-crimson); color:var(--vl-rouge); }

/* --- Boutons secondaires : surface blanche, filet fin, ombre douce (plus de cadre noir de 2 px) --- */
.vl-btn--ligne, .sbt-auteur-actions .sbt-btn--fantome, .vl-pastille{
  background:#fff; color:var(--vl-tourbe); border:1px solid var(--vl-filet); box-shadow:var(--vl-ombre);
  transition:border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.vl-btn--ligne:hover, .sbt-auteur-actions .sbt-btn--fantome:hover, .vl-pastille:hover{ background:#fff; color:var(--vl-rouge); border-color:var(--vl-rouge); box-shadow:var(--vl-ombre-forte); }
.vl-btn{ box-shadow:0 10px 20px -14px rgba(200,16,46,.8); }
.vl-btn--ligne{ box-shadow:var(--vl-ombre); }

/* --- En-tête de rubrique : ≥ 320 px, UNE grande photo propre à la rubrique, bordée d'une lisière de tartan --- */
.vl-tete--une{ position:relative; min-height:340px; display:flex; align-items:center; }
.vl-tete--une > .vl-conteneur{ position:relative; z-index:1; width:100%; pointer-events:none; } /* conteneur transparent posé sur toute la largeur : seul le texte reçoit les clics */
.vl-tete--une .vl-tete__texte{ pointer-events:auto; }
.vl-tete--une .vl-tete__grille{ grid-template-columns:minmax(0,1fr); min-height:340px; padding-block:40px; }
.vl-tete--une .vl-tete__texte{ max-width:calc(50% - 40px); }
.vl-tete__une{ position:absolute; top:0; bottom:0; right:0; width:calc(50% - 6px); background:var(--vl-vert); }
.vl-tete__une img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-tete__une::before{ content:""; position:absolute; top:0; bottom:0; left:-16px; width:16px; background:var(--vl-tartan); z-index:1; }
.vl-tete--rubrique .vl-tete__nombre{ display:inline-flex; align-items:baseline; gap:6px; margin-top:16px; padding:6px 12px; background:rgba(238,240,236,.12); border-left:3px solid var(--vl-rose); }
@media (max-width:960px){
  .vl-tete--une{ display:flex; flex-direction:column; align-items:stretch; min-height:0; }
  .vl-tete--une > .vl-conteneur{ order:1; }
  .vl-tete__une{ order:2; }
  .vl-tete--une .vl-tete__grille{ min-height:0; padding-block:28px 24px; }
  .vl-tete--une .vl-tete__texte{ max-width:none; }
  .vl-tete__une{ position:relative; width:auto; height:220px; }
  .vl-tete__une::before{ top:0; left:0; right:0; bottom:auto; width:auto; height:10px; }
}
@media (max-width:560px){ .vl-tete__une{ height:180px; } }

/* --- Contact : les deux colonnes finissent au même niveau (la carte du formulaire s'étire, le message prend la place) --- */
@media (min-width:1081px){
  .vl-contact__grille{ align-items:start; }
  .vl-contact__carte{ display:flex; flex-direction:column; box-shadow:var(--vl-ombre); border-left:0; position:relative; padding-left:36px; }
  .vl-contact__carte::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:10px; background:var(--vl-tartan); }
  .vl-contact__carte > .vl-contact-form{ flex:1; display:flex; flex-direction:column; gap:14px; }
  .vl-contact-form__message{ display:flex; flex-direction:column; }
  .vl-contact__photo{ aspect-ratio:21/9; }
  .vl-contact__motifs{ margin-top:16px; gap:10px; }
  .vl-contact__motifs a{ border-left:0; background:#fff; box-shadow:var(--vl-ombre); padding:9px 16px; }
}

/* --- Saisons sur petit écran : deux par rangée, photos plus basses --- */
@media (max-width:860px){ .vl-saison-tuile__photo{ height:190px; } }
@media (max-width:420px){
  .vl-saisons__bandes{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .vl-saison-tuile__photo{ height:130px; }
  .vl-saison-tuile__txt{ padding:10px 12px 12px; font-size:.9375rem; }
  .vl-saison-tuile__txt b{ font-size:1.125rem; }
}

/* --- Pastilles de sujet (Contact) : même finition que les boutons secondaires --- */
.vl-sujet span{ border:1px solid var(--vl-filet); background:#fff; box-shadow:var(--vl-ombre); transition:border-color .2s ease, color .2s ease; }
.vl-sujet span:hover{ border-color:var(--vl-rouge); color:var(--vl-rouge); }
.vl-sujet input:checked + span{ background:var(--vl-vert); border-color:var(--vl-vert); color:var(--vl-brume); box-shadow:none; }
.vl-contact-form input[type=text], .vl-contact-form input[type=email], .vl-contact-form textarea{ border-width:1px; }
/* En-tête de rubrique sur mobile : la photo touche le bas du bandeau (pas de marge verte résiduelle) */
.vl-section.vl-tete--une{ padding-block:0; }

/* --- Vignettes d'auteurs : badge de clan carré (le portrait rond est déjà vu sur le parc, juge 19/10) --- */
.sbt-article-meta img, .vl-lisiere .sbt-article-meta img, .sbt-auteur-photo img, .vl-redacteur__photo, .vl-auteur-tete__portrait{
  border-radius:0; box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--vl-rouge), 5px 5px 0 4px var(--vl-vert);
}
.sbt-auteur-photo img{ width:112px; height:112px; }

/* =====================================================================
   12. Corrections-2 (19/10/2026) — premier écran fini, forme signature (coin découpé à lisière tartan),
       en-tête d'article propre au tissage, mobile
   ===================================================================== */

/* --- Premier écran : plus de bande basse ; le bandeau s'arrête après le texte (≥ 70 % de photo sans voile) --- */
.vl-trame--basse, .vl-fil-sur{ display:none; }
.vl-fil--a, .vl-fil--c{ z-index:3; } /* le tissage reste : les fils a et c passent DESSUS le bandeau, b DESSOUS */
@media (min-width:861px){
  .vl-trame--haute{ right:auto; width:min(100%, max(calc(50% + 420px), 1000px)); padding-left:max(0px, calc(50% - 600px)); padding-block:13px 12px; }
  .vl-trame--haute > .vl-conteneur{ max-width:none; margin:0; }
  .vl-hero__formulaire{ max-width:880px; }
  .vl-hero__formulaire:has(.vl-form-etape[data-vl-etape="3"].est-active){ max-width:none; }
}
.vl-hero__formulaire{ box-shadow:0 3px 6px rgba(15,25,10,.22), 0 38px 66px -18px rgba(8,18,6,.82); }
.vl-hero__formulaire::after{ content:""; position:absolute; right:0; bottom:0; width:26px; height:26px; background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%); }

/* La pastille : un fait du site, à cheval sur le bandeau et la photo, avec son ombre */
.vl-hero__pastille{
  position:absolute; z-index:5; top:126px; left:min(calc(min(100%, max(50% + 420px, 1000px)) - 40px), calc(100% - 300px));
  display:flex; align-items:center; gap:12px; max-width:276px; padding:6px 30px 6px 14px;
  background:#fff; color:var(--vl-tourbe); text-decoration:none; transform:rotate(-2deg);
  box-shadow:0 2px 4px rgba(0,0,0,.2), 0 20px 36px -12px rgba(0,0,0,.62); transition:transform .25s ease;
}
.vl-hero__pastille:hover{ transform:rotate(0deg) translateY(-2px); }
.vl-hero__pastille::after{ content:""; position:absolute; right:0; bottom:0; width:18px; height:18px; background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%); }
.vl-hero__pastille b{ font:700 2.25rem/1 var(--vl-crimson); color:var(--vl-rouge); }
.vl-hero__pastille > span{ display:flex; flex-direction:column; font:700 1.125rem/1.05 var(--vl-crimson); }
.vl-hero__pastille small{ margin-top:2px; font:500 .8125rem/1.2 var(--vl-crimson); color:var(--vl-doux); white-space:nowrap; }
@media (max-width:860px){
  .vl-hero__pastille{ position:relative; top:auto; left:auto; z-index:5; align-self:flex-end; margin:-18px 16px auto auto; padding:5px 26px 5px 12px; }
  .vl-trame--haute{ padding-bottom:28px; } /* la pastille mord sur la marge basse du bandeau, jamais sur ses preuves */
  .vl-hero__pastille b{ font-size:2rem; }
  .vl-hero__pastille > span{ font-size:1rem; }
}

/* Sélecteur de jours : des pastilles soignées (pas de case blanche à bord gris) */
.vl-outil--hero .vl-tuile{ position:relative; background:var(--vl-brume); border:0; box-shadow:inset 0 0 0 1px rgba(28,60,20,.14), 0 1px 0 #fff; }
.vl-outil--hero .vl-tuile:hover{ box-shadow:inset 0 0 0 2px var(--vl-rouge), 0 8px 16px -10px rgba(200,16,46,.55); }
.vl-outil--hero .vl-tuile[aria-pressed="true"]{ background:var(--vl-rouge); color:#fff; box-shadow:0 10px 18px -10px rgba(200,16,46,.85); }
.vl-tuile[aria-pressed="true"]::after{ content:""; position:absolute; right:0; bottom:0; width:12px; height:12px; background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%); }
.vl-outil--hero .vl-jours a, .vl-outil--hero .vl-jours li > span, .vl-jours a, .vl-jours li > span{ border-left:0; box-shadow:inset 0 -3px 0 var(--vl-rouge); }

/* --- Forme signature : angles droits, ombre douce, coin bas-droit découpé à lisière tartan --- */
.vl-carte, .vl-saison-tuile, .vl-liens-vignettes a, .vl-ap-rubriques__liste a, .vl-redacteur a, ol.vl-etapes li, .vl-contact__motifs a, .vl-panneau, .sbt-article-principal, .vl-contact__carte{ position:relative; }
.vl-carte::after, .vl-saison-tuile::after, .vl-liens-vignettes a::after, .vl-ap-rubriques__liste a::after, .vl-redacteur a::after, ol.vl-etapes li::after, .vl-contact__motifs a::after, .vl-panneau::after, .sbt-article-principal::after{
  content:""; position:absolute; right:0; bottom:0; z-index:4; width:24px; height:24px; pointer-events:none;
  background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%);
}
.vl-liens-vignettes a::after, .vl-contact__motifs a::after{ width:16px; height:16px; }
/* Plus de trait de couleur à gauche (non-ressemblance greta-gipfcip) : l'ombre et le coin portent la forme */
.vl-liens-vignettes a, .vl-ap-rubriques__liste a, .vl-redacteur a, ol.vl-etapes li, .vl-contact__motifs a, .vl-panneau, .sbt-article-principal, .vl-contact__carte{ border-left:0; box-shadow:var(--vl-ombre); }
.vl-ap-rubriques__liste a, .vl-redacteur a, ol.vl-etapes li, .vl-contact__motifs a{ background:#fff; }
.sbt-sommaire{ border-left:0; border-top:4px solid var(--vl-vert); }
.sbt-rail{ border-left:0; box-shadow:var(--vl-ombre); }

/* Étiquettes : pastille Vert tartan, coin en lisière tartan (plus de trait à gauche) ; sur chaque carte, saisons comprises */
:is(.vl-carte__photo, .vl-saison-tuile__photo) .vl-etiquette{
  position:absolute; left:10px; top:10px; z-index:3; max-width:calc(100% - 56px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  padding:5px 20px 5px 10px; background:rgba(28,60,20,.94); border-left:0; color:var(--vl-brume);
  font:600 .9375rem/1.2 var(--vl-crimson); box-shadow:0 4px 12px -4px rgba(0,0,0,.45);
}
:is(.vl-carte__photo, .vl-saison-tuile__photo) .vl-etiquette::after{ content:""; position:absolute; right:0; bottom:0; width:12px; height:12px; background:linear-gradient(to top left, transparent calc(50% - 1px), rgba(255,255,255,.9) calc(50% - 1px) calc(50% + .5px), transparent calc(50% + .5px)), repeating-linear-gradient(45deg, #C8102E 0 2px, var(--vl-brume) 2px 4px); clip-path:polygon(100% 0,100% 100%,0 100%); }
.vl-carte--ligne .vl-carte__photo .vl-etiquette{ padding:3px 14px 3px 7px; }
.vl-carte--ligne .vl-carte__photo .vl-etiquette::after{ width:9px; height:9px; }
.vl-tete--rubrique .vl-tete__nombre{ position:relative; border-left:0; padding-right:22px; }
.vl-tete--rubrique .vl-tete__nombre::after{ content:""; position:absolute; right:0; bottom:0; width:12px; height:12px; background:repeating-linear-gradient(45deg, #C8102E 0 2px, var(--vl-brume) 2px 4px); clip-path:polygon(100% 0,100% 100%,0 100%); }

/* --- Boutons : le principal en rouge tartan, les secondaires en Vert tartan plein (jamais blancs à bord gris) ; tous avec le coin --- */
.vl-btn{ position:relative; padding-right:34px; }
.vl-btn::after{ content:""; position:absolute; right:-2px; bottom:-2px; width:16px; height:16px; background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%); }
.vl-btn--ligne, .sbt-auteur-actions .sbt-btn--fantome, .vl-pastille{
  position:relative; background:var(--vl-vert); color:var(--vl-brume); border:2px solid var(--vl-vert); box-shadow:0 10px 20px -14px rgba(28,60,20,.9);
}
.vl-btn--ligne:hover, .sbt-auteur-actions .sbt-btn--fantome:hover, .vl-pastille:hover{ background:#2C5522; border-color:#2C5522; color:#fff; box-shadow:0 14px 24px -14px rgba(28,60,20,.95); }
.vl-pastille{ padding-right:30px; }
.vl-pastille::after, .sbt-auteur-actions .sbt-btn--fantome::after{ content:""; position:absolute; right:-2px; bottom:-2px; width:14px; height:14px; background:repeating-linear-gradient(45deg, #C8102E 0 2px, var(--vl-brume) 2px 4px); clip-path:polygon(100% 0,100% 100%,0 100%); }
.vl-btn--ligne::after{ background:repeating-linear-gradient(45deg, #C8102E 0 2px, var(--vl-brume) 2px 4px); }
/* Sur le fond Vert tartan (« Quand partir ») : contour tartan, intérieur vert */
.vl-saisons .vl-btn--ligne{ --vl-lisiere-btn:repeating-linear-gradient(90deg, transparent 0 7px, #C8102E 7px 9px) border-box, repeating-linear-gradient(0deg, transparent 0 7px, #C8102E 7px 9px) border-box, repeating-linear-gradient(90deg, rgba(28,60,20,.45) 0 3px, transparent 3px 6px) border-box, repeating-linear-gradient(0deg, rgba(28,60,20,.45) 0 3px, transparent 3px 6px) border-box var(--vl-brume);
  border:4px solid transparent; background:linear-gradient(var(--vl-vert), var(--vl-vert)) padding-box, var(--vl-lisiere-btn); color:var(--vl-brume); }
.vl-saisons .vl-btn--ligne:hover{ background:linear-gradient(#2C5522, #2C5522) padding-box, var(--vl-lisiere-btn); }
/* Motifs du formulaire de contact : pastilles Brume, sans bord gris */
.vl-sujet span{ border:0; background:var(--vl-surf); box-shadow:none; }
.vl-sujet span:hover{ color:var(--vl-tourbe); box-shadow:inset 0 0 0 2px var(--vl-rouge); }
.vl-sujet input:checked + span{ background:var(--vl-vert); color:var(--vl-brume); box-shadow:0 8px 14px -10px rgba(28,60,20,.9); }

/* --- En-tête d'article « lisière » : photo pleine hauteur à droite jusqu'au bord de l'écran, bande de tartan verticale
       entre le texte et la photo, carte de route posée par-dessus la lisière. Aucun cadre décalé. --- */
.vl-lisiere--une{ position:relative; padding:0; overflow:hidden; }
.vl-lisiere--une .vl-lisiere__grille{ display:block; position:relative; z-index:2; min-height:470px; padding-block:12px 44px; }
.vl-lisiere--une .vl-lisiere__haut, .vl-lisiere--une .vl-lisiere__texte{ max-width:min(520px, calc(50% - 32px)); }
.vl-lisiere--une .vl-lisiere__texte{ padding-bottom:0; }
.vl-lisiere__une{ position:absolute; top:0; bottom:0; right:0; left:calc(50% + 20px); z-index:1; background:var(--vl-vert); }
.vl-lisiere__une img, .vl-lisiere__une .vl-photo-vide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-lisiere__une::before{ content:""; position:absolute; top:0; bottom:0; left:-16px; width:16px; background:var(--vl-tartan); z-index:1; }
.vl-lisiere--une .vl-route{
  position:relative; z-index:4; width:min(680px, calc(50% + 120px)); margin:28px 0 0; border:0; background:#fff; box-shadow:var(--vl-ombre-forte);
}
.vl-lisiere--une .vl-route::after{ content:""; position:absolute; right:0; bottom:0; width:20px; height:20px; background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%); }
@media (max-width:960px){
  .vl-lisiere--une{ display:flex; flex-direction:column; }
  .vl-lisiere--une .vl-lisiere__grille{ order:1; min-height:0; padding-block:8px 0; }
  .vl-lisiere--une .vl-lisiere__haut, .vl-lisiere--une .vl-lisiere__texte{ max-width:none; }
  .vl-lisiere--une .vl-route{ width:auto; margin:20px 0 0; }
  .vl-lisiere__une{ order:2; position:relative; left:auto; right:auto; height:300px; margin-top:-30px; }
  .vl-lisiere__une::before{ left:0; right:0; top:0; bottom:auto; width:auto; height:12px; }
}
@media (max-width:560px){ .vl-lisiere__une{ height:230px; } }

/* --- Page auteur à 390 : la photo au-dessus, la biographie sur toute la largeur --- */
@media (max-width:560px){
  .vl-auteur-tete__in{ grid-template-columns:minmax(0,1fr); gap:18px; }
  .vl-auteur-tete__portrait{ width:120px; height:120px; }
}
.vl-tuile{ position:relative; }
.sbt-footer .sbt-footer-cta a.sbt-btn::after, .sbt-auteur-actions .sbt-btn::after{ content:""; position:absolute; right:0; bottom:0; width:16px; height:16px; background:var(--vl-coin); clip-path:polygon(100% 0,100% 100%,0 100%); }
.sbt-auteur-actions .sbt-btn{ position:relative; padding-right:34px; }
.sbt-auteur-actions .sbt-btn--fantome::after{ background:repeating-linear-gradient(45deg, #C8102E 0 2px, var(--vl-brume) 2px 4px); }
/* Prix à 390 : alignés sur la première ligne du nom */
@media (max-width:560px){ sbs-tarif{ align-items:baseline; } .sbs_tarif_barre{ align-self:center; } }
/* En-tête d'article mobile : l'épingle ne se cache plus sous la carte de route */
@media (max-width:960px){ .vl-lisiere__une .vl-epingle--carte{ display:none; } }
/* À propos : vignettes de rubrique de même hauteur */
.vl-ap-rubriques__liste a{ height:100%; }

/* =====================================================================
   À propos — refonte 19/10 (chiffres, manifeste, rubriques décrites, méthode en 4 temps, signataires, faire/ne pas faire)
   ===================================================================== */
.vl-ap-chapeau{ font-size:1.375rem; line-height:1.5; font-weight:500; }
.vl-ap-chiffres{ background:var(--vl-vert); color:var(--vl-brume); border-block:2px solid var(--vl-rouge); }
.vl-ap-chiffres__liste{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.vl-ap-chiffres__liste li{ display:grid; gap:2px; align-content:center; padding:26px 22px; border-left:1px solid rgba(238,240,236,.22); }
.vl-ap-chiffres__liste li:first-child{ border-left:0; padding-left:0; }
.vl-ap-chiffres__liste b{ font:400 clamp(1.875rem,3.2vw,2.75rem)/1.05 var(--vl-uncial); color:var(--vl-brume); }
.vl-ap-chiffres__liste span{ font-size:1.0625rem; line-height:1.35; color:rgba(238,240,236,.9); }
.vl-ap-pourquoi__grille{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:56px; align-items:start; }
.vl-ap-etiquette{ display:inline-block; margin-bottom:12px; padding:4px 10px; background:var(--vl-rouge); color:#fff; font:700 .9375rem/1.3 var(--vl-crimson); letter-spacing:.06em; text-transform:uppercase; }
.vl-ap-pourquoi__titre h2{ font:400 clamp(1.75rem,2.9vw,2.375rem)/1.18 var(--vl-uncial); color:var(--vl-tourbe); }
.vl-ap-pourquoi__texte{ padding-left:28px; border-left:2px solid var(--vl-rouge); }
.vl-ap-pourquoi__texte p{ margin:0 0 18px; }
.vl-ap-pourquoi__texte p:first-child{ font-size:1.375rem; line-height:1.55; font-weight:500; }
.vl-ap-rubriques__liste{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.vl-ap-rubriques__dec{ display:block; padding:0 14px 16px; font-size:1.0625rem; line-height:1.45; color:var(--vl-doux); }
.vl-ap-rubriques__liste a{ height:100%; }
ol.vl-etapes--quatre{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.vl-ap-devise{ margin:32px 0 0; padding:22px 28px; background:var(--vl-surf); border-left:4px solid var(--vl-rouge); font:italic 500 clamp(1.375rem,2.2vw,1.75rem)/1.35 var(--vl-crimson); color:var(--vl-tourbe); }
.vl-redacteurs__liste--bio{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.vl-redacteurs__liste--bio .vl-redacteur a{ padding:28px 24px; gap:6px; }
.vl-redacteurs__liste--bio .vl-redacteur__photo{ width:120px; height:120px; }
.vl-redacteur__bio{ margin-top:8px; font-size:1.0625rem; line-height:1.5; color:var(--vl-tourbe); }
.vl-redacteur a:hover b{ color:var(--vl-rouge); }
.vl-ap-duel__grille{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.vl-ap-duel__col{ padding:28px 30px; background:var(--vl-carte); border-left:4px solid var(--vl-vert); }
.vl-ap-duel__col h3{ margin:0 0 10px; font:600 1.5rem/1.2 var(--vl-crimson); }
.vl-ap-duel__col p{ margin:0; font-size:1.1875rem; line-height:1.6; }
.vl-ap-duel__col--non{ background:var(--vl-vert); color:var(--vl-brume); border-left-color:var(--vl-rouge); }
.vl-ap-duel__col--non h3{ color:var(--vl-brume); }
.vl-ap-ecrire{ background:var(--vl-surf); border-top:2px solid var(--vl-rouge); padding-block:40px; }
.vl-ap-ecrire__grille{ display:flex; align-items:center; justify-content:space-between; gap:24px 40px; flex-wrap:wrap; }
.vl-ap-ecrire h2{ font:400 clamp(1.625rem,2.6vw,2.125rem)/1.15 var(--vl-uncial); margin:0 0 8px; }
.vl-ap-ecrire p{ margin:0; max-width:40em; font-size:1.1875rem; }
@media (max-width:960px){
  .vl-ap-chiffres__liste{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-ap-chiffres__liste li:nth-child(3){ border-left:0; padding-left:0; }
  .vl-ap-pourquoi__grille{ grid-template-columns:minmax(0,1fr); gap:20px; }
  ol.vl-etapes--quatre{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-ap-rubriques__liste{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vl-redacteurs__liste--bio{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px){
  ol.vl-etapes--quatre, .vl-ap-duel__grille{ grid-template-columns:minmax(0,1fr); }
  .vl-ap-pourquoi__texte{ padding-left:16px; }
  .vl-ap-chiffres__liste li{ padding:18px 14px; }
  .vl-ap-ecrire__grille .vl-btn{ width:100%; text-align:center; }
}
