/* Volume — feuille de style de la version commerciale (Belle Portée).
   Écrite pour ce projet : aucune règle, aucun nom de classe ni aucune valeur copiés d'un site tiers.
   Échelle : --u = 1/192 de la largeur en grand écran, 1/37,5 en petit écran. */

/* ---------- jetons ---------- */
:root{
  --papier:#f2efe8; --encre:#1c1f1d; --terre:#a3452a; --estuaire:#2f3f39; --doc:#fbfaf6; --gris:#6b706c;
  --encre-rgb:28 31 29; --papier-rgb:242 239 232; --terre-clair:#be684e;
  --encre-25:rgb(var(--encre-rgb) / .25); --blanc-40:rgb(255 255 255 / .4);
  --sans:"DM Sans",system-ui,sans-serif; --serif:"Cormorant Garamond",Georgia,serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
  --u:calc(100vw / 37.5);
  --rail:calc(6 * var(--u));
  --marge:16px;
  --sortie:cubic-bezier(.16,1,.3,1);       /* décélération longue */
  --bascule:cubic-bezier(.76,0,.2,1);      /* accélération puis freinage */
}
@media (min-width:769px){:root{--u:calc(100vw / 192);--marge:24px}}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--papier);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--encre);font:400 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,figure,ul,ol,dl,dd{margin:0}
ul,ol{list-style:none;padding:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--terre);color:#fff}
:focus-visible{outline:2px solid var(--terre);outline-offset:3px}
.v-saut{position:fixed;left:1rem;top:-4rem;z-index:3000;background:var(--encre);color:var(--papier);padding:.6rem 1rem;transition:top .2s}
.v-saut:focus{top:1rem}
.v-etiquette{font:600 14px/1.1 var(--sans)}
.v-mono{font:400 12px/1.5 var(--mono);color:var(--gris)}
.v-legende{font:400 12px/1.5 var(--mono);color:var(--gris);margin-top:.6rem;max-width:46em}
.v-serif-titre{font:400 28px/1.1 var(--serif);letter-spacing:-.01em}
@media (min-width:769px){.v-serif-titre{font-size:calc(4.2 * var(--u))}}
.v-centre{text-align:center}

/* lien italique souligné : le trait se retire vers la droite puis revient de la gauche */
.v-trait{position:relative;display:inline-block;font:italic 400 18px/1.15 var(--serif);text-decoration:none;color:inherit;cursor:pointer}
.v-trait::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform-origin:100% 50%;transition:transform .5s var(--bascule)}
.v-trait:hover::after,.v-trait:focus-visible::after{animation:v-trait .8s var(--bascule)}
@keyframes v-trait{0%{transform:scaleX(1);transform-origin:100% 50%}45%{transform:scaleX(0);transform-origin:100% 50%}55%{transform:scaleX(0);transform-origin:0 50%}100%{transform:scaleX(1);transform-origin:0 50%}}

/* bouton : texte gras souligné ; un aplat ardoise monte du bas au survol */
.v-btn{position:relative;display:inline-block;overflow:hidden;font:600 17px/1.2 var(--sans);letter-spacing:-.01em;color:var(--encre);text-decoration:none;padding:0 .12em .12em;border-bottom:2px solid var(--encre)}
.v-btn::before{content:"";position:absolute;inset:0;background:var(--encre);transform:translateY(101%);transition:transform .45s var(--bascule)}
.v-btn__txt{position:relative;transition:color .45s var(--bascule)}
.v-btn:hover::before,.v-btn:focus-visible::before{transform:none}
.v-btn:hover .v-btn__txt,.v-btn:focus-visible .v-btn__txt{color:var(--papier)}
.v-btn--grand{font-size:clamp(22px,2.1vw,34px)}

/* ---------- enveloppe ---------- */
.v-logo{position:fixed;left:0;top:0;z-index:900;display:none;flex-direction:column;padding:calc(3 * var(--u));color:var(--encre);text-decoration:none;font:400 calc(2.8 * var(--u))/1 var(--serif);transition:opacity .5s}
.v-logo em{font-size:.55em;color:var(--gris);margin-top:.25em}
.v-p-accueil .v-logo,.v-p-projet .v-logo{color:#fff}.v-p-accueil .v-logo em,.v-p-projet .v-logo em{color:rgb(255 255 255 / .8)}
html.v-defile .v-logo{opacity:0;pointer-events:none}
.v-rail{position:fixed;top:0;right:0;bottom:0;width:var(--rail);z-index:950;background:var(--papier);border-left:1px solid var(--encre-25);display:none}
.v-rail__menu{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:calc(.55 * var(--u))}
.v-rail__menu i{display:block;width:1px;height:calc(3.2 * var(--u));background:var(--encre);transition:transform .9s var(--sortie)}
html.v-menu-ouvert .v-rail__menu i:nth-child(1){transform:translateX(calc(.65 * var(--u))) rotate(45deg)}
html.v-menu-ouvert .v-rail__menu i:nth-child(2){transform:scaleY(0)}
html.v-menu-ouvert .v-rail__menu i:nth-child(3){transform:translateX(calc(-.65 * var(--u))) rotate(-45deg)}
.v-rail__liens{position:absolute;left:50%;top:calc(15.5 * var(--u));transform:translateX(-50%) rotate(-90deg);display:flex;gap:1.4em;white-space:nowrap;font:italic 15px/1 var(--serif);z-index:2}
.v-rail__liens a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s var(--sortie)}
.v-rail__liens a:hover,.v-rail__liens a:focus-visible{background-size:100% 1px}
.v-rail__jauge{position:absolute;left:50%;bottom:calc(9 * var(--u));width:1px;height:calc(6 * var(--u));background:var(--encre-25)}
.v-rail__jauge span{position:absolute;inset:0;background:var(--encre);transform-origin:50% 0;transform:scaleY(0)}
.v-rail__pct{position:absolute;left:50%;bottom:calc(4 * var(--u));transform:translateX(-50%) rotate(-90deg);font:italic 15px/1 var(--serif);white-space:nowrap}
.v-barre{position:fixed;top:0;left:0;right:0;z-index:950;height:62px;display:flex;justify-content:space-between;align-items:center;padding:0 .75rem;background:var(--papier);border-bottom:1px solid var(--encre-25)}
.v-barre__nom{font:400 22px/1 var(--serif);text-decoration:none}
.v-barre__btn{width:44px;height:44px;position:relative}
.v-barre__btn i{position:absolute;left:10px;right:10px;height:2px;background:var(--encre);transition:transform .4s var(--bascule)}
.v-barre__btn i:first-child{top:17px}.v-barre__btn i:last-child{top:25px}
html.v-menu-ouvert .v-barre__btn i:first-child{transform:translateY(4px) rotate(45deg)}
html.v-menu-ouvert .v-barre__btn i:last-child{transform:translateY(-4px) rotate(-45deg)}
@media (min-width:769px){.v-logo{display:flex}.v-rail{display:block}.v-barre{display:none}body{padding-right:var(--rail)}}
@media (max-width:768px){body{padding-top:62px}}

/* menu : un panneau de quatre bandes horizontales qui glissent depuis la droite, en cascade */
.v-menu{position:fixed;inset:0;z-index:940;visibility:hidden}
html.v-menu-ouvert .v-menu{visibility:visible}
.v-menu__voile{position:absolute;inset:0;background:rgb(var(--encre-rgb) / .6);opacity:0;transition:opacity .6s}
html.v-menu-ouvert .v-menu__voile{opacity:1}
.v-menu__panneau{position:absolute;top:0;bottom:0;right:var(--rail);width:72%;display:flex;flex-direction:column}
.v-menu__panneau ul{flex:1;display:flex;flex-direction:column}
.v-menu__rang{flex:1;transform:translateX(105%);transition:transform .95s var(--bascule);transition-delay:calc(var(--i, 0) * 70ms)}
.v-menu__rang:nth-child(1){--i:0}.v-menu__rang:nth-child(2){--i:1}.v-menu__rang:nth-child(3){--i:2}.v-menu__rang:nth-child(4){--i:3}
html.v-menu-ouvert .v-menu__rang{transform:none}
.v-menu__rang a{height:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:0 calc(6 * var(--u)) calc(3.5 * var(--u));background:var(--papier);border-bottom:1px solid var(--encre-25);text-decoration:none;transition:background .5s,color .5s}
.v-menu__mot{font:400 calc(5.2 * var(--u))/1 var(--serif);overflow:hidden}
.v-menu__n{font:400 12px var(--mono);color:var(--gris);order:2;transition:color .5s}
.v-menu__rang a:hover,.v-menu__rang a:focus-visible{background:var(--terre);color:#fff}
.v-menu__rang a:hover .v-menu__n,.v-menu__rang a:focus-visible .v-menu__n{color:#fff}
.v-menu__rang a[aria-current=page] .v-menu__mot::after{content:" •";color:var(--terre)}
.v-menu__note{position:absolute;right:calc(6 * var(--u));top:calc(3 * var(--u));font:italic 14px var(--serif);opacity:0;transition:opacity .5s .6s}
html.v-menu-ouvert .v-menu__note{opacity:1}
@media (max-width:768px){
  .v-menu__panneau{right:0;width:100%;top:62px}
  .v-menu__rang a{padding:0 1.25rem 1.2rem}
  .v-menu__mot{font-size:44px}
  .v-menu__note{left:1.25rem;right:auto;top:auto;bottom:1rem;z-index:2}
}

/* entrée de page : un aplat terre cuite remonte et découvre la page */
.v-entree{position:fixed;inset:0;z-index:1000;background:var(--terre);pointer-events:none;transform-origin:50% 0;animation:v-entree 1.05s var(--bascule) .08s both}
@keyframes v-entree{to{transform:scaleY(0)}}
html.v-calme .v-entree,html.no-js .v-entree{display:none}

/* ---------- intro de l'accueil (une fois par visite, grand écran) ---------- */
.v-intro{position:fixed;inset:0;z-index:1100;background:var(--papier);display:none;flex-direction:column;justify-content:center;padding:0 calc(10 * var(--u))}
html.v-intro-on .v-intro{display:flex}
.v-intro__phrase{font:600 calc(9.5 * var(--u))/1 var(--sans);letter-spacing:-.04em;display:flex;align-items:baseline;gap:.25em;white-space:nowrap}
.v-intro__mots{position:relative;display:inline-block;height:1.15em;overflow:hidden;vertical-align:bottom;font:italic 400 1.08em/1.15 var(--serif);letter-spacing:-.01em;color:var(--terre);transition:width .45s var(--bascule)}
.v-intro__mots span{display:block;white-space:nowrap}
.v-intro__compteur{position:absolute;left:calc(10 * var(--u));right:calc(10 * var(--u));bottom:calc(6 * var(--u));display:flex;align-items:center;gap:1.2rem;font:12px var(--mono)}
.v-intro__compteur i{flex:1;height:1px;background:var(--encre);transform-origin:0 50%;transform:scaleX(0);transition:transform .4s}
.v-intro__passer{position:absolute;right:calc(3 * var(--u));top:calc(3 * var(--u));font-size:14px;text-decoration:underline}
.v-intro.is-fin{transform:translateY(-100%);transition:transform 1s var(--bascule)}

/* ---------- accueil : parcours horizontal ---------- */
.v-ouverture{position:relative;color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:calc(100vh - 62px);padding:calc(3 * var(--u)) 0}
.v-ouverture__fond{position:absolute;inset:0}
.v-ouverture__fond img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.v-ouverture::after{content:"";position:absolute;left:0;right:0;bottom:0;height:50%;background:linear-gradient(transparent,rgb(0 0 0 / .62));z-index:1}
.v-ouverture__texte{position:relative;z-index:2;font:400 18px/1.25 var(--serif);padding:0 20px;margin-bottom:12px;max-width:24em}
.v-ouverture__nom{position:relative;z-index:2;font:400 52px/1.1 var(--serif);white-space:nowrap;overflow:hidden;padding:0 20px 36px}
.v-ouverture__nom .v-car{display:inline-block}
.v-ouverture__legende{position:absolute;left:calc(2 * var(--u) + 12px);bottom:12px;z-index:2;font:11px var(--mono);opacity:.78}
.v-presentation__col{padding:3rem 20px;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--encre-25)}
.v-presentation__haut{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.v-presentation__mini{width:42%;aspect-ratio:3/2;overflow:hidden}
.v-presentation__mini img,.v-carte__img img,.v-vignette figure img,.v-mesure__img img,.v-savoir__img img{width:100%;height:100%;object-fit:cover}
.v-presentation__bas{display:flex;flex-direction:column;align-items:flex-start;gap:1.2rem}
.v-presentation__cartes{padding:2rem 20px;display:flex;flex-direction:column;gap:2.5rem;border-bottom:1px solid var(--encre-25)}
.v-carte a{display:flex;flex-direction:column;height:100%;text-decoration:none}
.v-carte__img{height:400px;overflow:hidden}
.v-carte__meta{font:11px var(--mono);color:var(--gris);margin:1.1rem 0 .4rem}
.v-carte__titre{font:400 15px var(--sans)}
.v-carte__role{font-size:13px;color:var(--gris);margin:.25rem 0 .6rem}
.v-mesure{padding:3rem 20px;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;background:var(--papier)}
.v-mesure__mot{font:600 clamp(80px,13vw,260px)/.85 var(--sans);letter-spacing:-.045em}
.v-mesure__cote{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0 1rem;font:italic clamp(18px,1.9vw,34px) var(--serif);white-space:nowrap}
.v-mesure__fleche{flex:1;height:1px;background:var(--encre);position:relative;transform-origin:0 50%}
.v-mesure__fleche::before{content:"";position:absolute;left:0;top:-6px;height:13px;width:1px;background:var(--encre)}
.v-mesure__fleche--d::before{left:auto;right:0}
.v-mesure__sens{font:600 clamp(22px,2.6vw,52px)/1.1 var(--sans);letter-spacing:-.025em}
.v-mesure__bas{display:flex;flex-direction:column;gap:2rem}
.v-mesure__texte p+p{margin-top:1em}
.v-mesure__img{aspect-ratio:3/2;overflow:hidden}
.v-savoir__texte{padding:3rem 20px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:3rem;text-align:center}
.v-savoir__liste{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.2rem;margin-top:2rem;font:italic 19px var(--serif)}
.v-savoir__img{position:relative;height:420px;overflow:hidden}
.v-savoir__img>div{position:absolute;inset:0}
.v-fin__accent{background:var(--terre);color:#fff;padding:3rem 20px 1rem;display:flex;flex-direction:column;justify-content:space-between;gap:6rem}
.v-fin__accent>div{display:flex;flex-direction:column;align-items:flex-start;gap:1.8rem}
.v-fin__mot{font:400 80px/1.05 var(--serif);letter-spacing:-.025em;white-space:nowrap;overflow:hidden}
.v-fin__mot .v-car{display:inline-block}
.v-fin__grille{padding:3rem 20px;display:grid;grid-template-columns:1fr;gap:3rem 20px}
.v-vignette a{display:flex;flex-direction:column;height:100%;text-decoration:none}
.v-vignette figure{height:220px;overflow:hidden}
.v-vignette h3{font:400 15px var(--sans);margin:1.2rem 0 .6rem}
.v-fin__mention{font-size:12px;color:var(--gris);align-self:end}
.v-pref{text-decoration:underline;font-size:inherit}
.v-aide{position:fixed;left:calc(3 * var(--u));top:calc(11 * var(--u));z-index:30;display:none;align-items:center;gap:1.2rem;color:#fff;font:12px var(--mono);transition:opacity .5s}
.v-aide button{background:rgb(var(--encre-rgb) / .55);color:#fff;border:1px solid rgb(255 255 255 / .6);padding:.35rem .7rem}
.v-aide.is-cache{opacity:0;pointer-events:none}
html.v-horiz .v-aide,html.v-retour .v-aide{display:flex}

@media (min-width:769px){
  /* lecture verticale en grand écran : chaque panneau garde sa composition */
  .v-ouverture{min-height:100vh;align-items:flex-end;justify-content:space-between}
  .v-ouverture__texte{order:-1;font-size:calc(2.8 * var(--u));width:calc(48 * var(--u));max-width:none;padding:0;margin:0 calc(12 * var(--u)) 0 0}
  .v-ouverture__nom{font-size:13vw;width:100%;text-align:center;padding:0}
  .v-presentation,.v-savoir,.v-fin{display:flex}
  .v-presentation__col{width:calc(80 * var(--u));flex:none;padding:calc(5 * var(--u)) calc(6 * var(--u));border-right:1px solid var(--encre-25)}
  .v-presentation__mini{width:calc(21 * var(--u))}
  .v-presentation__bas{width:calc(50 * var(--u))}
  .v-presentation__cartes{flex:1;flex-direction:row;gap:calc(2 * var(--u));padding:calc(5 * var(--u)) calc(6 * var(--u))}
  .v-carte{width:calc(71 * var(--u));flex:none}
  .v-mesure{padding:calc(5 * var(--u)) calc(6 * var(--u))}
  .v-mesure__bas{flex-direction:row;align-items:flex-end;gap:2rem}
  .v-mesure__texte{flex:1;max-width:calc(70 * var(--u));font-size:calc(2 * var(--u))}
  .v-mesure__img{width:calc(60 * var(--u));flex:none}
  .v-savoir__texte{width:50%;padding:calc(5 * var(--u)) calc(6 * var(--u))}
  .v-savoir__texte>div{width:calc(60 * var(--u))}
  .v-savoir__img{width:50%;height:auto;min-height:70vh}
  .v-fin__accent{width:calc(112 * var(--u));flex:none;padding:calc(5 * var(--u)) calc(6 * var(--u)) 0}
  .v-fin__accent>div{width:calc(60 * var(--u))}
  .v-fin__mot{font-size:calc(27 * var(--u))}
  .v-fin__grille{flex:1;grid-template-columns:1fr 1fr;padding:calc(5 * var(--u)) calc(12 * var(--u)) calc(5 * var(--u)) calc(6 * var(--u))}
  .v-vignette figure{height:auto;aspect-ratio:3/1;flex:none}
  .v-vignette h3{font-size:calc(2.8 * var(--u));line-height:1.1;letter-spacing:-.02em}
}
/* parcours horizontal actif */
html.v-horiz,html.v-horiz body{overflow:hidden;height:100%}
html.v-horiz .v-parcours{position:fixed;top:0;left:0;bottom:0;right:var(--rail);overflow:hidden}
html.v-horiz .v-piste{display:flex;height:100%;width:max-content;will-change:transform}
html.v-horiz .v-pan{height:100vh;flex:none}
html.v-horiz .v-ouverture{width:calc(100vw - var(--rail))}
html.v-horiz .v-presentation__col,html.v-horiz .v-presentation__cartes{border-bottom:0}
html.v-horiz .v-presentation__cartes{border-right:1px solid var(--encre-25)}
html.v-horiz .v-carte__img{height:auto;flex:1}
html.v-horiz .v-mesure{width:calc(200 * var(--u));border-right:1px solid var(--encre-25)}
html.v-horiz .v-mesure__mot{font-size:calc(24 * var(--u))}
html.v-horiz .v-mesure__img{height:42vh;aspect-ratio:auto}
html.v-horiz .v-savoir{width:calc(188 * var(--u))}
html.v-horiz .v-savoir__img{height:100%}
html.v-horiz .v-savoir__img>div{left:calc(-15 * var(--u));right:calc(-15 * var(--u))}
html.v-horiz .v-fin__grille{width:calc(156 * var(--u));grid-template-rows:1fr 1fr}
html.v-horiz .v-vignette figure{aspect-ratio:auto;flex:1}

/* ---------- pages verticales ---------- */
.v-page{display:block}
.v-projets{padding:1rem var(--marge) 0}
@media (min-width:769px){.v-projets{padding-top:calc(12 * var(--u))}}
.v-projets__barre{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-bottom:1.5rem}
.v-geant{font:600 11.8vw/.95 var(--sans);letter-spacing:-.045em;text-align:center}
.v-projets__chapo{font:400 clamp(20px,2.35vw,40px)/1.3 var(--sans);letter-spacing:-.015em;margin-top:1rem;max-width:62.5%}
@media (max-width:768px){.v-projets__chapo{max-width:none}}
/* bande d'images glissable */
.v-bande{position:relative;height:52vw;max-height:820px;margin:4.5rem calc(-1 * var(--marge)) 0;overflow:hidden;cursor:grab;touch-action:pan-y;perspective:900px}
.v-bande:active{cursor:grabbing}
.v-bande__rail{position:absolute;inset:0;will-change:transform}
.v-bande__el{position:absolute;overflow:hidden}
.v-bande__el img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;pointer-events:none}
.v-bande__el--l{width:30vw;height:21vw}
.v-bande__el--h{width:30vw;height:40vw}
.v-bande__el.is-avant{transform:translateZ(18px)}
.v-bande__aide{margin:.8rem 0 4rem}
html.v-calme .v-bande{height:auto;overflow-x:auto;display:block;cursor:auto}
html.v-calme .v-bande__rail{position:static;display:flex;gap:1rem;width:max-content}
html.v-calme .v-bande__el{position:static;transform:none}
@media (max-width:768px){.v-bande{height:90vw}.v-bande__el--l{width:62vw;height:43vw}.v-bande__el--h{width:52vw;height:68vw}}
.v-grille{display:grid;grid-template-columns:1fr;gap:2.5rem 1.5rem;margin-bottom:2rem}
@media (min-width:768px){.v-grille{grid-template-columns:repeat(3,1fr)}}
.v-grille__img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.v-grille__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--sortie)}
.v-grille__survol{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;background:rgb(var(--papier-rgb) / .94);font:600 1.3rem/1.1 var(--sans);letter-spacing:-.02em;opacity:0;transition:opacity .35s}
.v-grille__img:hover .v-grille__survol,.v-grille__img:focus-visible .v-grille__survol{opacity:1}
.v-grille__img:hover img{transform:scale(1.04)}
.v-grille__num{font:12px var(--mono);color:var(--terre);margin:.9rem 0 .3rem}
.v-grille__titre{font:600 clamp(22px,2vw,32px)/1.1 var(--sans);letter-spacing:-.02em;margin-bottom:.8rem}
.v-grille__titre a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.v-grille__meta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem;font-size:14px}
.v-grille__meta dt{font:11px var(--mono);color:var(--gris)}
.v-liste{position:relative;padding:1rem 0 3rem}
.v-liste ul{border-top:2px solid var(--encre)}
.v-liste li{border-bottom:2px solid var(--encre)}
.v-liste__lien{position:relative;z-index:2;display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;gap:1rem;padding:1.2rem 0;text-decoration:none}
.v-liste__n{font:13px var(--mono)}
.v-liste__titre{font:400 clamp(34px,6vw,110px)/1 var(--serif);transition:transform .7s var(--sortie),color .3s}
.v-liste__meta{font:12px var(--mono);color:var(--gris)}
.v-liste__lien:hover .v-liste__titre,.v-liste__lien:focus-visible .v-liste__titre,.v-liste__lien.is-actif .v-liste__titre{transform:translateX(1.5rem);color:var(--terre)}
.v-liste__apercu{position:absolute;right:6%;top:2rem;z-index:1;width:min(30vw,420px);aspect-ratio:4/3;overflow:hidden;pointer-events:none}
.v-liste__apercu img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--sortie)}
@media (max-width:768px){.v-liste__apercu{display:none}.v-liste__lien{grid-template-columns:2.5rem 1fr}.v-liste__meta{grid-column:2}}

/* ---------- projet : ouverture ---------- */
.v-ouv__col-in{display:flex;flex-direction:column;gap:1.5rem;padding:2rem 20px}
.v-ouv__titre{font:400 40px/1.05 var(--serif);margin:.6rem 0 1rem}
.v-ouv__resume{font-size:16px;line-height:1.5}
.v-ouv__fiche{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem .6rem;border-top:1px solid var(--encre-25);padding-top:1.5rem;font-size:14px;line-height:1.35}
.v-ouv__fiche span{display:block;font:11px var(--mono);color:var(--gris);margin-bottom:.2rem}
.v-ouv__une{height:calc(100vh - 62px);overflow:hidden}
.v-ouv__une img,.v-ouv__img img{width:100%;height:100%;object-fit:cover}
.v-ouv__img{aspect-ratio:3/2;overflow:hidden}
@media (min-width:769px){
  .v-ouv{display:flex;flex-direction:row-reverse;align-items:flex-start}
  .v-ouv__col{position:sticky;top:0;width:calc(45 * var(--u));flex:none;height:100vh}
  .v-ouv__col-in{height:100%;justify-content:space-between;padding:calc(5 * var(--u)) calc(6 * var(--u))}
  .v-ouv__titre{font-size:calc(4.6 * var(--u))}
  .v-ouv__resume{font-size:calc(1.8 * var(--u))}
  .v-ouv__fiche{border:0;padding:0}
  .v-ouv__medias{flex:1;min-width:0}
  .v-ouv__une{height:100vh}
}
/* ---------- projet : article ---------- */
.v-article{padding:3rem var(--marge) 2rem;display:grid;grid-template-columns:1fr;gap:1.5rem}
.v-article__titre{font:600 44px/.95 var(--sans);letter-spacing:-.035em;margin-bottom:1.5rem}
.v-sommaire{margin-bottom:2rem;font-size:15px}
.v-sommaire li{border-top:1px solid rgb(var(--encre-rgb) / .2)}
.v-sommaire a{display:block;padding:.45rem 0;text-decoration:none;transition:color .3s}
.v-sommaire a:hover,.v-sommaire a:focus-visible,.v-sommaire a.is-actif{color:var(--terre)}
@media (min-width:1024px){
  .v-article{grid-template-columns:repeat(24,1fr);gap:0 var(--marge)}
  .v-article__cote{grid-column:1 / 9}
  .v-article__corps{grid-column:10 / 25}
  .v-article__colle{position:sticky;top:2rem;min-height:calc(100vh - 7rem);display:flex;flex-direction:column;justify-content:space-between}
  .v-article__titre{font-size:clamp(40px,4.4vw,96px)}
}
.v-article__corps{padding-top:1rem}
.v-article__corps p{max-width:38em;font-size:17px;line-height:1.6;margin:1.2em 0}
.v-article__resume{font:600 clamp(22px,2.8vw,40px)/1.15 var(--sans);letter-spacing:-.02em}
.v-article__fiche{display:grid;grid-template-columns:1fr;gap:1rem;margin:2.5rem 0 1rem}
@media (min-width:768px){.v-article__fiche{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.v-article__fiche{grid-template-columns:repeat(3,1fr)}}
.v-article__fiche dt,.v-article__role span{font:14px var(--mono);color:var(--gris)}
.v-article__fiche dd,.v-article__role p{font:400 clamp(16px,1.9vw,30px)/1.1 var(--sans)!important;letter-spacing:-.01em;margin:0!important}
.v-article__role{border-top:2px solid var(--encre);padding-top:1rem}
.v-article__h{font:600 clamp(26px,3vw,48px)/1.05 var(--sans);letter-spacing:-.025em;margin:4rem 0 2.2rem;scroll-margin-top:5rem}
.v-article__h span{font-size:.45em;vertical-align:.6em;margin-right:.4em;color:var(--terre);letter-spacing:0}
.v-fig,.v-plan{margin:2.5rem 0}
.v-fig__cadre{overflow:hidden}
.v-fig__cadre img{width:100%;height:100%;object-fit:cover}
.v-plan__btn{display:block;width:100%;position:relative;cursor:zoom-in;text-align:left}
.v-plan__cadre{display:block;border:2px solid var(--encre);background:var(--doc)}
.v-plan__cadre img{width:100%;height:100%;object-fit:contain}
.v-plan__zoom{position:absolute;right:.75rem;bottom:.6rem;background:var(--encre);color:var(--papier);padding:.2rem .55rem;font:600 14px var(--sans);transition:background .3s}
.v-plan__btn:hover .v-plan__zoom,.v-plan__btn:focus-visible .v-plan__zoom{background:var(--terre)}
.v-loupe{position:fixed;inset:0;z-index:1500;background:var(--doc);display:flex;flex-direction:column}
.v-loupe[hidden]{display:none}
.v-loupe__barre{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:2px solid var(--encre);font:13px var(--mono)}
.v-loupe__barre button{background:var(--encre);color:var(--papier);padding:.45rem .8rem;margin-left:.4rem}
.v-loupe__zone{flex:1;overflow:auto;cursor:grab}
.v-loupe__zone img{max-width:none;margin:auto}
.v-suivant{position:relative;display:block;color:#fff;text-decoration:none}
.v-suivant figure{height:100vh;overflow:hidden}
.v-suivant img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--sortie)}
.v-suivant:hover img{transform:scale(1.03)}
.v-suivant::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgb(0 0 0 / .6))}
.v-suivant__txt{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:2rem 1.25rem;font-weight:600}
.v-suivant__txt .v-mono{color:#fff}
.v-suivant__titre{font:400 clamp(40px,7vw,150px)/1 var(--serif);border-bottom:1px solid}
@media (min-width:769px){.v-suivant__txt{padding:calc(5 * var(--u)) calc(6 * var(--u))}}

/* ---------- à propos ---------- */
.v-portrait__img{height:450px;overflow:hidden}
.v-portrait__img img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.v-portrait__txt{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:1rem;padding:3rem 20px}
.v-portrait__titre{font:400 32px/1 var(--serif)}
@media (min-width:769px){
  .v-portrait{display:flex;height:100vh}
  .v-portrait__img,.v-portrait__txt{width:50%;height:100%}
  .v-portrait__txt{padding:calc(5 * var(--u)) calc(6 * var(--u))}
  .v-portrait__titre{font-size:calc(6.4 * var(--u));width:calc(62 * var(--u))}
  .v-portrait__txt p{font-size:calc(1.9 * var(--u))}
}
.v-marge{padding:0 var(--marge)}
@media (min-width:769px){.v-marge{padding-top:calc(3 * var(--u))}}
.v-bloc{margin:3rem 0}
@media (min-width:1024px){.v-bloc{margin:6rem 0}}
.v-rubrique{display:inline-flex;align-items:baseline;gap:.5rem;margin-bottom:2rem;font:600 clamp(18px,1.9vw,32px)/1.1 var(--sans);letter-spacing:-.02em}
.v-rubrique__n{font-size:.6em;font-weight:600}
.v-rubrique__t{border-bottom:2px solid var(--encre);padding-bottom:2px}
@media (min-width:1024px){.v-rubrique{margin-bottom:5rem}}
.v-grand{font:600 clamp(40px,9vw,170px)/1 var(--sans);letter-spacing:-.04em;margin-bottom:3rem}
.v-deux{display:grid;gap:1.5rem;font-size:16px}
.v-deux p+p{margin-top:1em}
@media (min-width:1024px){.v-deux{grid-template-columns:repeat(24,1fr);gap:0 var(--marge)}.v-deux>div:first-child{grid-column:9 / 16}.v-deux>div:last-child{grid-column:17 / 24}}
.v-comp li{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.6rem}
.v-comp__nom{font:400 clamp(20px,2.6vw,48px)/1 var(--sans);letter-spacing:-.02em;align-self:flex-start;border-bottom:2px solid var(--encre);padding-bottom:.15em}
.v-comp__desc{color:var(--gris)}
@media (min-width:1024px){.v-comp{margin-left:45%}.v-comp li{flex-direction:row;align-items:baseline;gap:1.2rem;margin-bottom:1rem}}
.v-outils{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 2rem;border-top:2px solid var(--encre)}
.v-outils li{display:flex;flex-direction:column;gap:.2rem;padding:1rem 0;border-bottom:1px solid var(--encre-25)}
.v-outils li span:first-child{font:600 24px var(--sans);letter-spacing:-.02em}
.v-outils li span:last-child{color:var(--gris);font-size:15px}
.v-accs{border-top:2px solid var(--encre)}
.v-acc{border-bottom:2px solid var(--encre)}
.v-acc__btn{position:relative;width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem .5rem 1rem;text-align:left;overflow:hidden;isolation:isolate}
.v-acc__btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--encre);clip-path:inset(100% 0 0 0);transition:clip-path .5s var(--bascule)}
.v-acc__btn:hover::before,.v-acc__btn:focus-visible::before,.v-acc__btn[aria-expanded=true]::before{clip-path:inset(0)}
.v-acc__btn:hover,.v-acc__btn:focus-visible,.v-acc__btn[aria-expanded=true]{color:var(--papier)}
.v-acc__btn{transition:color .5s var(--bascule)}
.v-acc__titre{font:400 clamp(44px,7.4vw,130px)/1.15 var(--sans);letter-spacing:-.045em}
.v-acc__annee{font:clamp(13px,1.6vw,28px)/1 var(--mono);white-space:nowrap}
@media (min-width:768px){.v-acc__btn{padding:.5rem 1.5rem 1.2rem}}
.v-acc__corps{background:var(--encre);color:var(--papier);overflow:hidden;transition:height .9s var(--bascule)}
.v-acc__corps[hidden]{display:none}
.v-acc__in{display:grid;gap:1.5rem;align-items:end;padding:1rem}
@media (min-width:1024px){.v-acc__in{grid-template-columns:1fr 1fr;padding:1.5rem}}
.v-acc__phrase{font:400 clamp(22px,2.4vw,40px)/1.1 var(--sans);letter-spacing:-.015em;margin-bottom:1.5rem}
.v-acc__boite{background:var(--papier);color:var(--encre);padding:1.2rem 1.6rem}
.v-acc__boite li+li{margin-top:.4rem}
.v-acc__img{aspect-ratio:4/3;overflow:hidden}
.v-acc__img img{width:100%;height:100%;object-fit:cover}
.v-dispo{background:var(--terre);color:#fff}
.v-dispo__txt{padding:3rem 20px;display:flex;flex-direction:column;justify-content:space-between;gap:6rem}
.v-dispo__txt>div{display:flex;flex-direction:column;align-items:flex-start;gap:1.8rem}
.v-dispo__img{height:450px;overflow:hidden}
.v-dispo__img img{width:100%;height:100%;object-fit:cover}
@media (min-width:769px){.v-dispo{display:flex;min-height:80vh}.v-dispo__txt,.v-dispo__img{width:50%;height:auto}.v-dispo__txt{padding:calc(5 * var(--u)) calc(6 * var(--u))}}

/* ---------- contact ---------- */
.v-contact__grille{position:relative;padding:0 20px 20px}
.v-contact__txt{display:flex;flex-direction:column;gap:3rem;padding:2rem 0}
.v-contact__a{display:flex;flex-direction:column;align-items:flex-start;gap:1.2rem}
.v-contact__titre{font-size:30px}
.v-contact__details{font:italic 20px/1.5 var(--serif);margin-top:1.2rem}
.v-contact__details p+p{margin-top:1em}
.v-contact__details .v-trait{font-size:inherit}
.v-contact__details .v-mono{font-style:normal;font-size:11px}
.v-contact__img{height:450px;overflow:hidden}
.v-contact__img img{width:100%;height:100%;object-fit:cover}
@media (min-width:769px){
  .v-contact__grille{display:flex;height:100vh;padding:calc(3 * var(--u)) calc(9 * var(--u)) calc(3 * var(--u)) calc(6 * var(--u))}
  .v-contact__txt{flex:1;flex-direction:row;align-items:flex-end;justify-content:space-between;padding:3rem 2rem 3rem 0}
  .v-contact__a{width:50%}
  .v-contact__a .v-contact__ouvrir{margin-top:2.5rem}
  .v-contact__b{width:50%}
  .v-contact__titre{font-size:calc(4.2 * var(--u))}
  .v-contact__img{width:calc(78 * var(--u));flex:none;height:auto}
}
.v-contact__ouvrir{font-size:18px}
.v-form{position:fixed;inset:0;z-index:960}
@media (min-width:769px){.v-form{position:absolute;left:auto;width:calc(87 * var(--u))}}
.v-form[hidden]{display:none}
.v-form__fond,.v-form__face{position:absolute;inset:0}
.v-form__fond{background:var(--terre-clair)}
.v-form__face{background:var(--terre);color:#fff;overflow:hidden}
.v-form__in{position:absolute;inset:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:1.5rem 20px 3rem}
@media (min-width:769px){.v-form__in{padding:calc(6 * var(--u)) calc(12 * var(--u)) calc(6 * var(--u)) calc(6 * var(--u))}}
.v-form__in form{width:100%}
.v-form__note{color:#fff;opacity:.9;margin:1rem 0 1.5rem}
.v-champ{margin-bottom:1.5rem}
.v-champ label{display:block;font:600 14px var(--sans)}
.v-champ input,.v-champ textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--blanc-40);color:#fff;font:17px var(--sans);padding:.6rem 0;border-radius:0}
.v-champ textarea{border:1px solid var(--blanc-40);padding:.75rem;margin-top:.5rem;resize:vertical}
.v-champ input:focus,.v-champ textarea:focus{outline:none;border-color:#fff}
.v-champ input::placeholder{color:rgb(255 255 255 / .6)}
.v-form__err{min-height:1.2em;font-size:14px}
.v-form__envoi{font-size:20px}

/* ---------- pied de page ---------- */
.v-pied{padding:4rem var(--marge) 1.5rem}
.v-pied__ligne{height:2px;background:var(--encre);transform-origin:0 50%}
.v-pied__grille{display:grid;grid-template-columns:1fr 1fr;gap:2rem 1rem;padding-top:2rem}
.v-pied__id{grid-column:1 / -1}
.v-pied__nom{font:600 clamp(28px,3.3vw,60px)/1.1 var(--sans);letter-spacing:-.025em;margin-bottom:.5rem}
.v-pied__t{font:14px var(--mono);color:var(--gris);margin-bottom:.5rem}
.v-pied li{margin-bottom:.3rem}
.v-pied a{text-underline-offset:.2em;text-decoration-thickness:1px}
@media (min-width:1024px){.v-pied__grille{grid-template-columns:8fr 4fr 4fr 4fr;column-gap:var(--marge)}.v-pied__id{grid-column:auto;margin-right:16%}}
.v-pied__mention{color:var(--gris);font-size:14px;margin-top:1rem;max-width:60em}
.v-p-accueil .v-pied{display:none}

/* ---------- apparitions (déclenchées par site.js) ---------- */
html.js-anim [data-rv]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--sortie),transform .9s var(--sortie);transition-delay:calc(var(--d, 0) * 1ms)}
html.js-anim [data-rv].is-vu{opacity:1;transform:none}
html.js-anim [data-rv=trait]{opacity:1;transform:scaleX(0);transition:transform 1.3s var(--bascule)}
html.js-anim [data-rv=trait].is-vu{transform:none}
html.js-anim [data-rv=lignes]{opacity:1;transform:none}
.v-ligne{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.v-ligne>span{display:block;transform:translateY(105%);transition:transform 1s var(--bascule);transition-delay:calc(var(--d, 0) * 1ms)}
[data-rv=lignes].is-vu .v-ligne>span{transform:none}
html.js-anim [data-img]{clip-path:inset(0 0 100% 0);transition:clip-path 1.25s var(--bascule)}
html.js-anim [data-img] img{transform:scale(1.08);transition:transform 1.6s var(--sortie)}
html.js-anim [data-img].is-vu{clip-path:inset(0)}
html.js-anim [data-img].is-vu img{transform:none}

/* ---------- mouvements réduits ---------- */
html.v-calme *,html.v-calme *::before,html.v-calme *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;transition-delay:0s!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}
.v-carte .v-trait,.v-vignette .v-trait,.v-presentation__bas .v-trait{align-self:flex-start}
html.v-horiz .v-fin__grille{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
html.v-horiz .v-vignette,html.v-horiz .v-vignette a,html.v-horiz .v-vignette figure{min-height:0}
.v-trait,.v-btn{align-self:flex-start}
@media (min-width:1024px){.v-comp__nom{white-space:nowrap}}
