body.photo-page{background:var(--paper);color:var(--ink)}
.photo-main{width:min(100% - 3rem,var(--max));margin:0 auto;padding:4rem 0 6rem}
.photo-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:end;border-bottom:2px solid var(--ink);padding-bottom:2rem;margin-bottom:2rem}
.photo-hero h1{font-family:var(--display);text-transform:uppercase;font-size:clamp(3rem,8vw,7rem);line-height:.82;margin:0}
.photo-hero p{font-family:var(--serif);font-size:1.1rem;line-height:1.6;margin:0}
.photo-toolbar{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:.8rem;margin:2rem 0;position:sticky;top:92px;background:var(--paper);z-index:20;padding:.75rem 0}
.photo-toolbar input,.photo-toolbar select{width:100%;border:2px solid var(--ink);background:var(--paper-light);padding:.85rem;font:inherit;min-width:0}
.photo-list-controls{display:flex;align-items:center;justify-content:flex-start;gap:1rem;margin-bottom:1rem}.photo-count{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:0}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.photo-card{border:2px solid var(--ink);background:var(--paper-light);cursor:pointer;display:flex;flex-direction:column}
.photo-card[hidden]{display:none}.photo-card img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.25);border-bottom:2px solid var(--ink)}
.photo-card-body{padding:.9rem;text-align:center}.photo-card h2{font-family:var(--display);text-transform:uppercase;font-size:1.15rem;line-height:1.05;margin:0;text-align:center}.photo-title-date,.photo-title-text{display:block;text-align:center}.photo-title-date{font-family:var(--sans);font-size:.72em;line-height:1.25;letter-spacing:.08em;margin-bottom:.45rem}.photo-title-date:empty{display:none}.photo-meta{font-size:.75rem;line-height:1.4;margin:0;color:#3e3b36}.photo-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.6rem}.photo-tag{font-size:.64rem;border:1px solid var(--ink);padding:.2rem .35rem;text-transform:uppercase}
.photo-empty{padding:3rem;border:2px dashed var(--ink);font-family:var(--serif)}
.photo-dialog{width:min(1000px,calc(100% - 2rem));max-height:92vh;border:2px solid var(--ink);padding:0;background:var(--paper-light);color:var(--ink)}.photo-dialog::backdrop{background:rgba(12,12,12,.82)}
.photo-dialog-inner{display:grid;grid-template-columns:1.35fr .65fr;min-height:60vh}.photo-dialog-image{background:#111;display:flex;align-items:center;justify-content:center}.photo-dialog-image img{max-width:100%;max-height:88vh;object-fit:contain}.photo-dialog-info{padding:2rem;position:relative;overflow:auto;display:flex;align-items:center;justify-content:center;text-align:center}.photo-dialog-content{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.4rem}.photo-dialog-info h2{font-family:var(--display);text-transform:uppercase;font-size:2rem;line-height:1;margin:0;text-align:center;width:100%}.photo-dialog-info .photo-title-date{font-size:.55em;margin-bottom:.7rem}.photo-dialog-contribute{display:inline-block;border:2px solid var(--ink);background:var(--yellow);color:var(--ink);padding:.8rem 1rem;font-weight:900;text-transform:uppercase;text-decoration:none;line-height:1.25;max-width:22rem}.photo-dialog-contribute:hover,.photo-dialog-contribute:focus-visible{background:var(--ink);color:var(--paper-light)}.photo-dialog-close{position:absolute;right:1rem;top:1rem;border:2px solid var(--ink);background:var(--paper);width:2.5rem;height:2.5rem;font-size:1.2rem;cursor:pointer}
[dir="rtl"] .photo-dialog-close{right:auto;left:1rem}
.photo-back{display:inline-block;margin-top:1rem;font-weight:800;text-transform:uppercase}
@media(max-width:1100px){.photo-grid{grid-template-columns:repeat(3,1fr)}.photo-toolbar{grid-template-columns:repeat(2,1fr)}.photo-toolbar input{grid-column:1/-1}}
@media(max-width:760px){.photo-list-controls{align-items:flex-start;flex-direction:column}.photo-main{width:min(100% - 2rem,var(--max));padding-top:2rem}.photo-hero{grid-template-columns:minmax(0,1fr)}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-toolbar{position:static;grid-template-columns:minmax(0,1fr)}.photo-toolbar input{grid-column:auto}.photo-dialog-inner{grid-template-columns:minmax(0,1fr)}.photo-dialog-info{padding:1.3rem}.photo-dialog-image img{max-height:55vh}}
@media(max-width:460px){.photo-grid{grid-template-columns:1fr}}

.photo-bottom-links{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:1.4rem}.photo-bottom-links .photo-back{margin-top:0}
.photo-card h2 a{color:inherit;text-decoration:none;display:block}.photo-card:focus-visible,.photo-card h2 a:focus-visible,.photo-pagination button:focus-visible{outline:4px solid #1d5fd1;outline-offset:3px}.photo-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem;margin:2rem 0}.photo-pagination button{border:2px solid var(--ink);background:var(--paper-light);padding:.55rem .75rem;font-weight:900;cursor:pointer;min-width:2.6rem}.photo-pagination button.is-current{background:var(--ink);color:var(--paper-light)}.photo-pagination button:disabled{opacity:.45;cursor:not-allowed}.photo-pagination span{padding:.5rem}.skip-link{position:fixed;inset-inline-start:1rem;top:1rem;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;z-index:9999}.skip-link:focus{width:auto;height:auto;margin:0;overflow:visible;clip:auto;clip-path:none;background:#fff;padding:.8rem;border:2px solid #000}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Contribution directement dans la fenêtre photo */
.photo-dialog-contribute{font:inherit;cursor:pointer}
.photo-dialog-contribution-panel{width:min(100%,28rem);margin-top:.25rem;text-align:left}
[dir="rtl"] .photo-dialog-contribution-panel{text-align:right}
.photo-dialog-contribution-intro{margin:0 0 1rem;line-height:1.45}
.photo-dialog-contribution-form{display:grid;gap:.85rem;width:100%}
.photo-dialog-contribution-form label{display:grid;gap:.35rem;font-weight:800;text-align:left}
[dir="rtl"] .photo-dialog-contribution-form label{text-align:right}
.photo-dialog-contribution-form input,.photo-dialog-contribution-form textarea{width:100%;box-sizing:border-box;border:2px solid var(--ink);background:var(--paper-light);color:var(--ink);padding:.7rem .75rem;font:inherit}
.photo-dialog-contribution-form textarea{resize:vertical;min-height:7rem}
.photo-dialog-submit{justify-self:center;border:2px solid var(--ink);background:var(--ink);color:var(--paper-light);padding:.7rem 1.2rem;font-weight:900;text-transform:uppercase;cursor:pointer}
.photo-dialog-submit:disabled{opacity:.6;cursor:wait}
.photo-dialog-contribution-status{min-height:1.4em;margin:.2rem 0 0;font-weight:800;text-align:center}
.photo-dialog-contribution-form .privacy-note{font-size:.82rem;line-height:1.35;margin:0;opacity:.8;text-align:center}
.photo-dialog-contribution-form .honey{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
@media(max-width:820px){.photo-dialog-info{align-items:flex-start}.photo-dialog-content{padding-top:2.8rem}.photo-dialog-contribution-panel{width:100%}}


/* V1.1 — correction photothèque arabe sur mobile : aucun élément ne peut élargir le viewport */
body.photo-page{max-width:100vw;overflow-x:hidden}
.photo-main,.photo-hero,.photo-toolbar,.photo-grid,.photo-list-controls,.photo-card,.photo-card-body{min-width:0}
.photo-toolbar>*,.photo-toolbar input,.photo-toolbar select{max-width:100%;min-width:0;box-sizing:border-box}
.photo-toolbar select{overflow:hidden;text-overflow:ellipsis}
.photo-pagination{display:none!important}
@media(max-width:760px){
  body.photo-page,.photo-page .site-header,.photo-main{max-width:100vw}
  .photo-main{width:100%;padding-inline:1rem}
  .photo-hero,.photo-toolbar,.photo-grid,.photo-list-controls{width:100%;max-width:100%}
  .photo-hero>*{min-width:0;max-width:100%}
  .photo-hero h1,.photo-hero p{max-width:100%;overflow-wrap:anywhere}
  .photo-toolbar input,.photo-toolbar select{inline-size:100%;max-inline-size:100%}
  html[dir="rtl"] body.photo-page .photo-toolbar,
  html[dir="rtl"] body.photo-page .photo-toolbar input,
  html[dir="rtl"] body.photo-page .photo-toolbar select{direction:rtl;text-align:right}
  html[dir="rtl"] body.photo-page .site-header{direction:rtl;max-width:100vw;overflow:hidden}
  html[dir="rtl"] body.photo-page .site-header>*{min-width:0}
  html[dir="rtl"] body.photo-page .brand-text{display:none}
  html[dir="rtl"] body.photo-page .photo-grid{direction:rtl}
  html[dir="rtl"] body.photo-page .photo-card{direction:rtl;max-width:100%}
}
@media(max-width:460px){.photo-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  body.photo-page .main-nav.is-open{flex-direction:column;width:100%;max-width:100vw;overflow-x:hidden}
  body.photo-page .main-nav a{max-width:100%;overflow-wrap:anywhere}
}
