/* KMCA Galerie photos — style assorti au thème Enfold (noir / blanc / rouge, Oswald + Lato) */
.kmg{--kmg-accent:#d63e2d;--kmg-ink:#111;--kmg-muted:#6b6b6b;--kmg-line:#e3e3e3;--kmg-card:#f7f7f7;--kmg-bg:#fff;--kmg-cols:4;--kmg-gap:12px;--kmg-title:oswald,'Oswald',Impact,'Arial Narrow',sans-serif;color:var(--kmg-ink);margin:0 0 2em}
.kmg-sombre{--kmg-ink:#f2f2f2;--kmg-muted:#aaa;--kmg-line:#333;--kmg-card:#1b1b1b;--kmg-bg:#111}
.kmg *,.kmg *::before,.kmg *::after{box-sizing:border-box}
.kmg [hidden]{display:none!important}
.kmg-ico{flex:none;vertical-align:middle}

/* En-tête */
.kmg-head{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid var(--kmg-line)}
.kmg-count{margin:0;font-family:var(--kmg-title);text-transform:uppercase;letter-spacing:.06em;font-size:15px;color:var(--kmg-muted)}
.kmg-count strong{color:var(--kmg-accent);font-size:20px;font-weight:600;margin-right:2px}

/* Boutons */
.kmg-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin:0;padding:12px 22px;border:2px solid var(--kmg-accent);border-radius:3px;background:var(--kmg-accent);color:#fff!important;font-family:var(--kmg-title);font-size:15px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;line-height:1.2;cursor:pointer;text-decoration:none;transition:background .2s,color .2s,transform .15s,box-shadow .2s}
.kmg-btn:hover,.kmg-btn:focus-visible{background:#111;border-color:#111;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.kmg-btn:active{transform:translateY(1px)}
.kmg-btn[aria-expanded="true"]{background:#111;border-color:#111}
.kmg-btn-ghost{background:transparent;color:var(--kmg-ink)!important;border-color:var(--kmg-ink)}
.kmg-btn-ghost:hover{background:var(--kmg-ink);color:var(--kmg-bg)!important}
.kmg-btn:disabled{opacity:.55;cursor:wait}
.kmg-more-wrap{text-align:center;margin:26px 0 0}

/* Grille régulière (ordre de lecture gauche → droite, plus récentes en premier) avec une grande vignette de temps en temps */
.kmg-grid{display:grid;grid-template-columns:repeat(var(--kmg-cols),minmax(0,1fr));grid-auto-flow:dense;gap:var(--kmg-gap)}
.kmg-item{margin:0;padding:0;aspect-ratio:1;min-width:0;animation:kmgIn .5s ease both}
.kmg-item:nth-child(9n+1){grid-column:span 2;grid-row:span 2}
.kmg-grid .kmg-link,.kmg-grid .kmg-link img{width:100%;height:100%}
.kmg-grid .kmg-link img{object-fit:cover}
.kmg-link{position:relative;display:block;overflow:hidden;border-radius:4px;background:var(--kmg-card);outline-offset:3px}
.kmg-link img,.kmg-img{display:block;width:100%;height:auto;margin:0;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .4s}
.kmg-link::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0) 55%);opacity:0;transition:opacity .35s}
.kmg-link::before{content:"";position:absolute;left:0;bottom:0;z-index:2;width:100%;height:3px;background:var(--kmg-accent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.kmg-link:hover img,.kmg-link:focus-visible img{transform:scale(1.05)}
.kmg-link:hover::after,.kmg-link:focus-visible::after,.kmg-link:hover .kmg-cap,.kmg-link:focus-visible .kmg-cap{opacity:1}
.kmg-link:hover::before,.kmg-link:focus-visible::before{transform:scaleX(1)}
.kmg-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;flex-direction:column;gap:2px;padding:14px 14px 12px;color:#fff;font-size:14px;line-height:1.35;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}
.kmg-link:hover .kmg-cap{transform:none}
.kmg-cap span{font-family:var(--kmg-title);text-transform:uppercase;letter-spacing:.04em}
.kmg-cap small{opacity:.8;font-size:12px}
@media (hover:none){.kmg-cap{opacity:1;transform:none}.kmg-link::after{opacity:.85}}
@keyframes kmgIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:989px){.kmg-grid{--kmg-cols:3!important}}
@media (max-width:767px){.kmg-grid{--kmg-cols:2!important;--kmg-gap:8px}.kmg-head{justify-content:center;text-align:center}.kmg-btn{width:100%}}

.kmg-empty{text-align:center;padding:48px 20px;border:2px dashed var(--kmg-line);border-radius:6px;color:var(--kmg-muted)}
.kmg-empty .kmg-ico{width:40px;height:40px;color:var(--kmg-accent)}

/* Formulaire */
.kmg-form-wrap{margin:0 0 26px;animation:kmgIn .35s ease both}
.kmg-form{position:relative;background:var(--kmg-card);border:1px solid var(--kmg-line);border-top:3px solid var(--kmg-accent);border-radius:4px;padding:24px;display:flex;flex-direction:column;gap:16px}
.kmg-intro{margin:0;color:var(--kmg-muted)}
.kmg-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.kmg-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;padding:24px;margin:0;border:2px dashed #c9c9c9;border-radius:4px;background:var(--kmg-bg);text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.kmg-drop:hover,.kmg-drop.is-over{border-color:var(--kmg-accent);background:color-mix(in srgb,var(--kmg-accent) 6%,var(--kmg-bg))}
.kmg-drop .kmg-ico{width:34px;height:34px;color:var(--kmg-accent)}
.kmg-drop strong{font-family:var(--kmg-title);text-transform:uppercase;letter-spacing:.06em;font-size:16px;font-weight:500}
.kmg-drop span{font-size:13px;color:var(--kmg-muted)}
.kmg-drop input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.kmg-js .kmg-drop input[type=file]{pointer-events:none}
.kmg-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.kmg-previews:empty{display:none}
.kmg-previews li{position:relative;aspect-ratio:1;margin:0;padding:0;border-radius:4px;overflow:hidden;background:#ddd;list-style:none}
.kmg-previews img{width:100%;height:100%;object-fit:cover;display:block}
.kmg-previews button{position:absolute;top:4px;right:4px;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;font-size:15px;line-height:24px;text-align:center;cursor:pointer}
.kmg-previews button:hover{background:var(--kmg-accent)}
.kmg-previews li.is-done::after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;font-size:28px}
.kmg-previews li.is-err::after{content:"!";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(214,62,45,.75);color:#fff;font-size:28px;font-weight:700}
.kmg-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.kmg-field{display:flex;flex-direction:column;gap:6px;margin:0;font-weight:600;font-size:14px}
.kmg-field em{font-style:normal;font-weight:400;color:var(--kmg-muted);font-size:12px}
.kmg-wide{grid-column:1/-1}
.kmg .kmg-field input{width:100%;margin:0;padding:11px 12px;border:1px solid #d5d5d5;border-radius:3px;background:var(--kmg-bg);color:var(--kmg-ink);font-size:15px;transition:border-color .2s,box-shadow .2s}
.kmg .kmg-field input:focus{outline:none;border-color:var(--kmg-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--kmg-accent) 18%,transparent)}
.kmg-check{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:14px;line-height:1.45;cursor:pointer}
.kmg-check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--kmg-accent)}
.kmg-submit{align-self:flex-start}
.kmg-msg{margin:0;padding:12px 14px;border-radius:3px;font-size:14px;border-left:4px solid}
.kmg-ok{background:#e8f5ec;border-color:#2e7d32;color:#1d4d22}
.kmg-err{background:#fdecea;border-color:var(--kmg-accent);color:#7a1f15}
.kmg-progress{display:flex;align-items:center;gap:12px}
.kmg-bar{flex:1;height:8px;border-radius:4px;background:var(--kmg-line);overflow:hidden}
.kmg-bar i{display:block;height:100%;width:0;background:var(--kmg-accent);transition:width .25s}
.kmg-ptext{font-size:13px;color:var(--kmg-muted);white-space:nowrap}
@media (max-width:767px){.kmg-form{padding:18px}.kmg-fields{grid-template-columns:1fr}.kmg-submit{align-self:stretch}}

/* Visionneuse plein écran */
.kmg-lb{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;background:rgba(8,8,8,.96);opacity:0;transition:opacity .25s;touch-action:pan-y}
.kmg-lb.is-open{opacity:1}
.kmg-lb[hidden]{display:none!important}
.kmg-lb figure{margin:0;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;align-items:center}
.kmg-lb img{max-width:94vw;max-height:80vh;width:auto;height:auto;border-radius:3px;box-shadow:0 20px 60px rgba(0,0,0,.6);transition:opacity .2s,transform .25s}
.kmg-lb img.is-loading{opacity:.2;transform:scale(.98)}
.kmg-lb figcaption{margin-top:14px;color:#ddd;text-align:center;font-size:14px;line-height:1.4}
.kmg-lb figcaption b{display:block;font-family:var(--kmg-title,oswald,sans-serif);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:#fff;font-size:16px}
.kmg-lb button{position:absolute;display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background .2s}
.kmg-lb button:hover,.kmg-lb button:focus-visible{background:var(--kmg-accent,#d63e2d);outline:none}
.kmg-lb .kmg-x{top:16px;right:16px}
.kmg-lb .kmg-prev{left:16px;top:50%;margin-top:-26px}
.kmg-lb .kmg-next{right:16px;top:50%;margin-top:-26px}
.kmg-lb .kmg-n{position:absolute;top:28px;left:24px;color:#aaa;font-family:var(--kmg-title,oswald,sans-serif);letter-spacing:.1em;font-size:14px}
@media (max-width:767px){.kmg-lb .kmg-prev,.kmg-lb .kmg-next{top:auto;bottom:18px;margin:0}.kmg-lb img{max-height:72vh}}
html.kmg-noscroll{overflow:hidden}
@media (prefers-reduced-motion:reduce){.kmg *,.kmg-lb,.kmg-lb *{animation:none!important;transition:none!important}}

/* Albums par événement */
.kmg-albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.kmg-album{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#1b1b1b;color:#fff!important;text-decoration:none!important;outline-offset:3px;animation:kmgIn .5s ease both}
.kmg-album img,.kmg-album-ph{display:block;width:100%;height:100%;margin:0;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.kmg-album-ph{background:linear-gradient(135deg,#2a2a2a,#111)}
.kmg-album::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.05) 60%);transition:background .35s}
.kmg-album::before{content:"";position:absolute;left:0;bottom:0;z-index:3;width:100%;height:4px;background:var(--kmg-accent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.kmg-album:hover img,.kmg-album:focus-visible img{transform:scale(1.06)}
.kmg-album:hover::before,.kmg-album:focus-visible::before{transform:scaleX(1)}
.kmg-album-info{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;gap:4px;padding:18px 18px 16px}
.kmg-album-info strong{font-family:var(--kmg-title);font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:19px;line-height:1.2;color:#fff}
.kmg-album-info small{font-size:13px;color:rgba(255,255,255,.82)}
.kmg-badge{position:absolute;top:12px;right:12px;z-index:2;padding:4px 10px;border-radius:999px;background:var(--kmg-accent);color:#fff;font-size:12px;font-weight:700;line-height:1.3}
.kmg-head-ev{align-items:flex-end}
.kmg-back{display:inline-block;margin:0 0 8px;font-family:var(--kmg-title);font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--kmg-muted)!important;text-decoration:none!important;transition:color .2s}
.kmg-back:hover,.kmg-back:focus-visible{color:var(--kmg-accent)!important}
.kmg .kmg-ev-title{margin:0 0 4px!important;padding:0!important;font-family:var(--kmg-title);font-size:26px;font-weight:500;line-height:1.15;text-transform:uppercase;letter-spacing:.03em;color:var(--kmg-ink)!important}
.kmg-ev-desc{margin:-6px 0 18px;color:var(--kmg-muted)}
.kmg .kmg-field select{width:100%;margin:0;padding:11px 12px;border:1px solid #d5d5d5;border-radius:3px;background:var(--kmg-bg);color:var(--kmg-ink);font-size:15px}
.kmg .kmg-field select:focus{outline:none;border-color:var(--kmg-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--kmg-accent) 18%,transparent)}
@media (max-width:767px){.kmg-albums{grid-template-columns:1fr 1fr;gap:10px}.kmg-album-info{padding:12px}.kmg-album-info strong{font-size:15px}.kmg-badge{top:8px;right:8px;font-size:11px}.kmg-head-ev{flex-direction:column;align-items:stretch}}
@media (max-width:420px){.kmg-albums{grid-template-columns:1fr}}
