/* =====================================================================
   Créations techniques par H.VALENTIN — feuille de style du site
   Écrite pour ce site. Couleurs, tailles et espacements relevés sur
   l'ancien rendu afin de conserver exactement la même apparence.
   ===================================================================== */

/* ---------- Polices (Open Sans, licence SIL OFL) ---------- */
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/open-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/open-sans-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/open-sans-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;font-display:fallback;src:url(../fonts/open-sans-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/open-sans-latin-700-italic.woff2) format('woff2')}

/* ---------- Réglages ---------- */
:root{
  --accent:#f2d918;
  --accent-survol:#e4cb0d;
  --nuit:#070223;
  --nuit-2:#0c033b;
  --indigo:#1a0883;
  --texte:#8f8d9c;
  --titre:#fff;
  --police-titre:"Open Sans","sans-serif";
  --police-texte:Arial,"Helvetica Neue",Helvetica,"sans-serif";
  /* tailles de titres : 16 px multiplié par une échelle qui diminue sur petits écrans */
  --t-130:21.5443px; --t-100:20px; --t-70:18.5664px;
  /* marges intérieures du bloc de contenu */
  --bande-v:32px; --bande-h:15px; --bande-max:none;
  --gouttiere:24px;
}
@media (max-width:960px){:root{--t-130:19.5578px;--t-100:18.6003px;--t-70:17.6897px}}
@media (max-width:768px){:root{--t-130:18.6178px;--t-100:17.9257px;--t-70:17.2593px}}
@media (min-width:960px){:root{--bande-v:52.8px;--bande-h:30px;--bande-max:900px}}

html{font-size:10px;width:100%;height:100%;min-height:100%}
body{margin:0;position:relative;width:100%;height:auto;min-height:100%;background:#fff;color:var(--texte);
  font-family:var(--police-texte);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:underline}
a:hover{color:#fff04f}
a:focus-visible{outline:1px solid currentColor;outline-offset:2px}
.lien-evitement{position:absolute;left:-9999px;top:0;z-index:3000;padding:8px 14px;background:var(--accent);color:#000}
.lien-evitement:focus{left:8px;top:8px}

/* ---------- Fond de page ---------- */
.fond{position:absolute;inset:0 auto auto 0;width:100%;height:100%;background:#fff url(../img-site/quadrillage.png) repeat 0 0}
.page{position:relative;min-height:100%;height:100%}
.page::before,.page::after{content:'';display:table;line-height:0}
.page::after{clear:both}
.voile-1,.voile-2{position:absolute;top:0;width:100%;height:100%}
.voile-1::before,.voile-1::after,.voile-2::before,.voile-2::after{content:'';display:block;position:absolute;width:100%}
.voile-1::before{top:0;height:20px;background:rgba(0,0,0,.6)}
.voile-1::after{top:20px;height:170px;background:linear-gradient(to top,rgba(0,0,0,0),rgba(0,0,0,.6))}
.voile-2::before{top:310px;height:250px;background:linear-gradient(to top,rgba(0,0,0,.6),rgba(0,0,0,0))}
.voile-2::after{top:560px;bottom:0;background:rgba(0,0,0,.6)}

/* ---------- Cadre central ---------- */
.cadre{position:relative;box-sizing:border-box;width:960px;max-width:100%;margin:0 auto;padding:10px;container-type:inline-size}
@media (max-width:720px){.cadre{padding:5px}}

/* ---------- En-tête ---------- */
.entete{position:relative;margin:30px 10px;padding:0}
.entete::before,.entete::after{content:'';display:table;line-height:0}
.entete::after{clear:both}
@media (max-width:720px){.entete{padding:0 5px}}
.entete__logo{display:flex;align-items:center;justify-content:center;position:relative;max-width:100%;text-align:center}
.entete__bloc{position:relative}
.entete__titre{display:inline-block;margin:-.12em 0 -.1em;padding:0 .04em .06em;white-space:nowrap;
  font-family:var(--police-titre);font-weight:800;line-height:1.25;
  /* le titre occupe exactement la largeur du bandeau du menu */
  font-size:calc(100cqw / 15.76);
  /* style C « indigo du bandeau », foncé de 20 % et dégradé resserré (avant : #070223 → #2a10c4).
     Variante C+3 (brossé) : background:repeating-linear-gradient(to bottom,rgba(255,255,255,.06) 0 1px,rgba(0,0,0,.05) 1px 2px,rgba(255,255,255,0) 2px 3px),
       linear-gradient(to bottom,#4a35d6 0%,#2a10c4 30%,#1a0883 55%,#0c033b 80%,#2a10c4 100%);-webkit-text-stroke:1px #070223;
       filter:drop-shadow(0 2px 3px rgba(0,0,0,.45)) drop-shadow(0 0 1px rgba(255,255,255,.55))
     Variante B blanc : color:#fff;text-shadow:0 2px 0 #070223,0 3px 12px rgba(0,0,0,.7)
     Variante D acier (foncé) : background:linear-gradient(to bottom,#c3c9d0 0%,#949ca6 38%,#565e68 52%,#a3aab3 70%,#646c76 100%);
       -webkit-text-stroke:1px #1c1f24;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5)) */
  color:transparent;background:linear-gradient(to top,#06011f,#1c0a82);-webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.6)) drop-shadow(0 3px 3px rgba(0,0,0,.5)) drop-shadow(0 5px 8px rgba(0,0,0,.35))}
.entete__titre a{color:inherit;text-decoration:none}

/* ---------- Menu ---------- */
.menu{position:relative;padding:7px;margin-bottom:20px;border-radius:5px;border-top:1px solid #2c0cda;
  box-shadow:0 1px 1px rgba(255,255,255,.3);background:var(--nuit) linear-gradient(to top,var(--nuit),var(--indigo))}
.menu::before,.menu::after{content:'';display:table;line-height:0}
.menu::after{clear:both}
.menu__liste{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none;text-transform:uppercase}
.menu__item{display:block;position:relative;box-sizing:border-box}
.menu__lien{display:block;position:relative;box-sizing:border-box;padding:5px 13px;border-radius:5px;color:#fff;
  font-weight:700;text-decoration:none;transition:200ms ease}
.menu__lien:hover{color:var(--accent);background:var(--nuit-2);text-decoration:none}
.menu__item--actif>.menu__lien{color:var(--accent)}
.menu--mobile{display:none}

/* ---------- Diaporama (accueil) ---------- */
.diaporama::after{content:'';display:block;width:930px;max-width:100%;height:22px;margin-top:-8px;
  background:radial-gradient(ellipse 50% 50% at 50% 47%,rgba(0,0,0,.44),rgba(0,0,0,.18) 55%,rgba(0,0,0,0) 100%)}
.sans-diaporama .diaporama::after{display:none}
.diapo{position:relative;margin:0;color:#fff}
.diapo__piste{list-style:none;margin:0;padding:0}
.diapo__vue{position:relative;width:100%;overflow:hidden}
.diapo__piste--active{display:flex;will-change:transform}
.diapo__piste:not(.diapo__piste--active) .diapo__vignette:not(:first-child){display:none}
.diapo__vignette{flex:0 0 100%;width:100%}
.diapo__image{position:relative;overflow:hidden;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}
.diapo__image::before{content:'';display:block;padding-bottom:49%}
.diapo__fleche{position:absolute;top:50%;z-index:55;width:4rem;height:4rem;margin-top:-2rem;display:flex;align-items:center;justify-content:center;
  background:rgba(15,15,15,.5);color:#fff;border-radius:2px;text-decoration:none;transition:opacity 150ms ease}
.diapo__fleche:hover{opacity:.8;color:#fff}
.diapo__fleche svg{width:1.5rem;height:2.4rem}
.diapo__fleche--prec{left:1rem}
.diapo__fleche--suiv{right:1rem}
@media (width < 768px){.diapo__fleche{transform:scale(.75)}.diapo__fleche--prec{left:0}.diapo__fleche--suiv{right:0}}

/* ---------- Bloc de contenu ---------- */
.contenu{position:relative;margin:5px 0 30px;background:var(--nuit);border-radius:5px;box-shadow:0 0 15px #000;border-top:1px solid #240ab4}
@media (width > 960px){.contenu{margin-top:14px}}
.contenu__halo{position:absolute;top:0;width:100%;height:200px;margin:0;overflow:hidden}
.contenu__halo::before{content:'';display:block;position:absolute;top:-200px;width:100%;height:400px;
  background:radial-gradient(ellipse closest-side,var(--indigo),rgba(7,2,35,0)) no-repeat}
.bande{position:relative;padding:var(--bande-v) var(--bande-h)}
.bande--fond{background:var(--nuit)}
.bande__int{position:relative;box-sizing:border-box;width:100%;max-width:var(--bande-max);margin:0 auto;overflow-wrap:break-word}

/* ---------- Pied de page ---------- */
.pied{position:relative}
.pied::before,.pied::after{content:'';display:block;position:absolute;top:0;left:5px;right:5px;height:1px;border-top:3px double var(--accent)}
.pied::before{top:-2px}
@media (width > 960px){.pied::before,.pied::after{left:20px;right:20px}}
.pied__credits{margin-top:16px}
.pied__credits::before,.pied__credits::after{content:'';display:table;line-height:0}
.pied__credits::after{clear:both}
.pied__texte{float:left;position:relative;margin:0;min-width:1.4rem}

/* ---------- Blocs ---------- */
.bloc{position:relative;box-sizing:border-box;width:100%;margin:1em 0}
.bloc:first-child{margin-top:0}
.bloc:last-child{margin-bottom:0}

/* texte */
.b-texte{margin-top:0;margin-bottom:0}
.texte{min-width:4em}
.texte h1,.texte h2,.texte h3{font-family:var(--police-titre);font-weight:700;font-style:normal;color:var(--titre);
  line-height:1.3;text-transform:uppercase;margin-bottom:16px}
.texte h1{font-size:var(--t-130);margin-top:32px}
.texte h2{font-size:var(--t-100);margin-top:28px}
.texte h3{font-size:var(--t-70);margin-top:24px}
.texte .t-130{font-size:var(--t-130);margin-top:32px}
.texte .t-100{font-size:var(--t-100);margin-top:28px}
.texte .t-70{font-size:var(--t-70);margin-top:24px}
.texte p,.texte ul,.texte ol{margin:0 0 16px}
.texte h1 a,.texte h2 a,.texte h3 a{color:var(--accent)}
.b-texte:first-child .texte :first-child,.b-espace+.b-texte .texte>:first-child{margin-top:0}
.b-texte:last-child .texte :last-child{margin-bottom:0}

/* espace */
.espace{display:block}
@media (max-width:640px){.espace{max-height:10px}}

/* image */
.b-image::before,.b-image::after{content:' ';display:table}
.b-image::after{clear:both}
.img{position:relative;max-width:100%;line-height:0;-webkit-user-select:none;user-select:none}
.img--gauche{float:left}
.img--droite{float:right}
.img--centre{margin:0 auto}
.img a{display:block}
.img__cadre{display:block;position:relative;width:100%;height:0}
.img__photo{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;object-fit:cover;
  object-position:calc(100% * var(--pan-x,.5)) calc(100% * var(--pan-y,.5))}
@media (max-width:640px){.img{float:none;margin-left:auto;margin-right:auto}.img--plein-640{width:100%!important}}
@media (max-width:420px){.img--plein-420{width:100%!important}}

/* colonnes */
@media not (max-width:640px){
  .b-colonnes{display:flex;flex-direction:row;align-items:stretch;width:auto!important;margin-left:calc(var(--gouttiere) / -2);margin-right:calc(var(--gouttiere) / -2)}
  .b-colonne{min-width:0;padding:0 calc(var(--gouttiere) / 2);margin-top:0;margin-bottom:0}
}
@media (max-width:640px){
  .b-colonne{display:block!important;width:100%!important;margin-top:3em}
  .b-colonne:first-child{margin-top:0}
}

/* bouton */
.bouton-zone{text-align:right}
.bouton-zone--gauche{text-align:left}
.bouton-zone--centre{text-align:center}
.bouton{display:inline-flex;align-items:center;box-sizing:border-box;min-height:50px;padding:10px 20px;border:0;border-radius:8px;
  background:var(--accent);color:#000;font-family:var(--police-texte);font-size:20px;line-height:24px;text-decoration:none!important;
  transition:background-color 150ms ease}
.bouton:hover{background:var(--accent-survol);color:#000}
.bouton span{display:block}
@media screen and (min-width:480px){.bouton{text-align:center}}

/* ---------- Mobile (bascule gérée par site.js, comme l'original) ---------- */
.barre-mobile{display:none;width:100%;position:relative;z-index:1010;box-sizing:border-box}
.mode-mobile .barre-mobile{display:flex}
.barre-mobile__vide{flex:0 99999 auto;width:44px;padding:0;background:var(--nuit)}
.barre-mobile__titre{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;position:relative;box-sizing:border-box;
  padding:10px;min-height:30px;max-height:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--nuit)}
.barre-mobile__contenu{display:inline-flex;align-content:center;justify-content:center;height:100%}
.barre-mobile__texte{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;max-width:100%;max-height:100%;
  color:#fff;font-family:var(--police-titre);font-weight:700;font-size:3rem;line-height:1}
.barre-mobile__texte>span{margin:-10px;padding:10px;max-width:100%;max-height:50px;overflow:hidden;text-overflow:ellipsis}
.barre-mobile__bouton{display:flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;width:44px;min-height:40px;
  padding:9px;border:0;cursor:pointer;color:#fff;background:var(--nuit-2);font-size:18px;line-height:18px;transition:color 200ms ease}
.barre-mobile__bouton:hover{background:#0e0445}
.barre-mobile__bouton:active,.barre-mobile__bouton:focus{background:#110553}
.burger,.burger::before,.burger::after{display:block;width:22px;height:2px;background-color:currentColor;border-radius:2px;
  transition-property:background-color,transform,width;transition-duration:200ms}
.burger{position:relative;margin:6px 0}
.burger::before,.burger::after{content:'';position:absolute}
.burger::before{top:-6px}
.burger::after{top:6px}
.burger--croix{background-color:transparent;transform:rotate(180deg)}
.burger--croix::before,.burger--croix::after{width:24px}
.burger--croix::before{transform:translate(-1px,6px) rotate(-45deg)}
.burger--croix::after{transform:translate(-1px,-6px) rotate(45deg)}

.mode-mobile .entete{display:none}
.mode-mobile .menu--bureau{display:none}
.mode-mobile .diaporama{margin-top:10px}
.mode-mobile .menu--mobile{display:block;position:absolute;z-index:1011;left:0;right:0;margin:10px 0;
  box-shadow:0 0 0 2000vh rgba(0,0,0,.2),0 2px 4px rgba(0,0,0,.2);transition:opacity 150ms ease,transform 250ms ease}
.mode-mobile.menu-ferme .menu--mobile{visibility:hidden;opacity:0;transform:translate(0,-200px);
  transition:opacity 150ms ease,transform 200ms ease,visibility 200ms}
.menu--mobile .menu__liste{font-size:1.6rem}
.menu--mobile .menu__item{display:list-item;width:100%;max-width:none}
.menu--mobile .menu__lien{padding:15px}

/* ---------- Visionneuse photo + zoom taille réelle ---------- */
.lb{position:fixed;inset:0;z-index:2000;display:none}
.lb--ouvert{display:block}
.lb__fond{position:absolute;inset:0;background:rgba(0,0,0,.92)}
.lb__scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.lb__img{max-width:94vw;max-height:88vh;object-fit:contain;box-shadow:0 0 30px rgba(0,0,0,.6);user-select:none;-webkit-user-select:none}
.lb--zoomable .lb__img{cursor:zoom-in}
.lb--zoom .lb__scene{display:block;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.lb--zoom .lb__img{max-width:none;max-height:none;display:block;margin:auto;cursor:zoom-out;box-shadow:none}
.lb--zoom.lb--glisse .lb__img{cursor:grabbing}
.lb--zoom .lb__prec,.lb--zoom .lb__suiv{display:none}
.lb__barre{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:.6rem;padding:1rem;background:linear-gradient(rgba(0,0,0,.45),transparent);pointer-events:none}
.lb__barre>*{pointer-events:auto}
.lb__compteur{flex:1;color:#fff;font:400 1.4rem/1 "Open Sans",sans-serif;opacity:.85}
.lb__btn{position:relative;z-index:2;border:0;background:rgba(15,15,15,.5);color:#fff;cursor:pointer;font:400 3.2rem/1 Arial,sans-serif;width:4.4rem;height:4.4rem;border-radius:2px;transition:opacity 150ms ease}
.lb__btn:hover{opacity:.8}
.lb__prec,.lb__suiv{position:absolute;top:50%;margin-top:-2.2rem}
.lb__prec{left:1rem}
.lb__suiv{right:1rem}
.lb__zoom::before{content:'';position:absolute;left:1.1rem;top:1rem;width:1.5rem;height:1.5rem;border:.22rem solid #fff;border-radius:50%}
.lb__zoom::after{content:'';position:absolute;left:2.75rem;top:2.65rem;width:.9rem;height:.25rem;background:#fff;transform:rotate(45deg);transform-origin:left center}
.lb__zoom{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-repeat:no-repeat;background-size:.8rem .18rem,.18rem .8rem;background-position:1.62rem 1.86rem,1.93rem 1.55rem;background-color:rgba(15,15,15,.5)}
.lb--zoom .lb__zoom{background-size:.8rem .18rem,0 0}
