.section-gallery, .section-gallery-list { padding: 28px 0; }
.section-gallery .container, .section-gallery-list .container { max-width: 1140px; margin: 0 auto; }
.opg-call{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 12px; }
.opg-call .txt{ font-weight:700; color:#0a6e2f; }
.opg-call .btn-green{ background:#16a34a; color:#fff; padding:8px 12px; border-radius:10px; text-decoration:none; font-weight:700; }
.opg-unlock{ margin:0 0 16px; display:flex; gap:8px; flex-wrap:wrap; }
.opg-unlock input[type=password]{ padding:6px 8px; border:1px solid #ccc; border-radius:8px; }
.opg-unlock .btn-green, .btn-green{ padding:8px 12px; border-radius:10px; border:0; background:#16a34a; color:#fff; font-weight:700; text-decoration:none; display:inline-block; }
.opg-masonry{ display:grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 8px; grid-row-gap:16px; grid-column-gap:16px; grid-auto-flow: row dense; align-items:start; } /* v1.7.10 fix overlap */ /* v1.7.9 grid masonry */
@media (max-width: 1024px){ .opg-masonry{ grid-template-columns: repeat(2, 1fr) !important; } } /* v1.7.10 */ } /* v1.7.9 */
@media (max-width: 640px){ .opg-masonry{ grid-template-columns: 1fr !important; } } /* v1.7.10 */ } /* v1.7.9 */
.opg-masonry .opg-masonry-item{ margin:0; align-self:start; position:relative; display:block; } /* v1.7.10 */ /* v1.7.9 */
.opg-item { position: relative; display:block; } /* v1.7.10 */
.opg-item .thumb { width: 100%; height: auto; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,.08); display:block; user-select:none; max-width:100%; } /* v1.7.10 */
.opg-item .thumb[draggable]{ -webkit-user-drag: none; }
.opg-cap{ font-size:13px; color:#0a6e2f; margin-top:6px; font-weight:600; }
.opg-video .opg-play-btn{ position:absolute; inset:auto 12px 12px auto; background:rgba(0,0,0,.7); color:#fff; padding:6px 10px; border-radius:10px; }
.opg-locked .opg-locked-wrap{ filter: blur(14px) grayscale(60%); transform: scale(1.02); }
.opg-locked::after{ content:''; position:absolute; inset:0; box-shadow: inset 0 0 0 9999px rgba(255,255,255,.05); border-radius:12px; }
.opg-lock{ position:absolute; bottom:10px; left:10px; background:rgba(0,0,0,.7); color:#fff; font-size:12px; padding:4px 8px; border-radius:8px; }
.opg-two{ display:grid; grid-template-columns: 1fr 1fr; gap:24px; margin-top:24px; }
@media (max-width: 900px){ .opg-two{ grid-template-columns: 1fr; } }
.opg-info h3{ margin:0 0 8px; font-size:20px; color:#0a6e2f; font-weight:800; }
.opg-info p{ margin:0; color:#0a6e2f; font-weight:600; }
.opg-modal{ position:fixed; inset:0; display:block; opacity:0; pointer-events:none; transition:opacity .2s; z-index:9999; }
.opg-modal[aria-hidden="false"]{ opacity:1; pointer-events:auto; }
.opg-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.6); }
.opg-modal-wrap{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:4vh 3vw; }
.opg-modal-dialog{ position:relative; width:min(1000px,92vw); max-height:92vh; background:#000; border-radius:14px; overflow:hidden; display:block; }
.opg-modal-content{ padding:0; background:#000; }
.opg-close{ position:absolute; top:8px; right:10px; border:0; background:rgba(0,0,0,.5); color:#fff; font-size:28px; line-height:1; cursor:pointer; border-radius:8px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; z-index:9999; }