.fair-gallery{padding:8px 25px 46px;background:#f5f6f7;scroll-margin-top:150px}
.fair-gallery__inner{max-width:1000px;margin:auto}
.fair-gallery h2{margin:0 0 25px;text-align:center;font-size:22px;color:var(--cems-ink,#303234)}
.fair-gallery h2::after{content:'';display:block;width:36px;height:3px;margin:14px auto 0;border-radius:3px;background:var(--cems-orange,#ff873b)}
.fair-gallery__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fair-gallery__card{display:block;overflow:hidden;border:1px solid var(--cems-line,#dce0e2);border-radius:12px;background:#eceff1;cursor:zoom-in;box-shadow:0 4px 15px #30323408}
.fair-gallery__card img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}
.fair-gallery__card:hover{border-color:#e5b693;box-shadow:0 8px 22px #30323416}
.fair-gallery__card:focus-visible,.fair-gallery__dialog button:focus-visible{outline:3px solid #ff873b;outline-offset:3px}
.fair-gallery__dialog{box-sizing:border-box;width:min(1100px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:18px;border:1px solid #555;border-radius:12px;color:#fff;background:#252729;box-shadow:0 20px 60px #0006}
.fair-gallery__dialog::backdrop{background:#111c;backdrop-filter:blur(3px)}
.fair-gallery__dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.fair-gallery__dialog h3{margin:0;font-size:16px;line-height:1.4}
.fair-gallery__dialog button{display:flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;padding:0;border:1px solid #ffffff40;border-radius:6px;background:#ffffff0c;color:#fff;cursor:pointer;font-size:25px}
.fair-gallery__image{display:block;width:100%;height:auto;max-height:calc(100dvh - 190px);object-fit:contain;touch-action:pan-y}
.fair-gallery__controls{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:12px}
.fair-gallery__count{font-size:13px;color:#ddd}
html.fair-gallery-open{overflow:hidden}
@media(max-width:900px){.fair-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.fair-gallery{padding:8px 18px 30px;scroll-margin-top:95px}.fair-gallery__grid{grid-template-columns:1fr;gap:16px}.fair-gallery h2{font-size:20px}.fair-gallery__dialog{padding:12px}}
