.fg-gallery,
.fg-gallery * { box-sizing: border-box; }
.fg-gallery { --fg-primary: var(--primary-color, #1769aa); --fg-text: #222; --fg-muted: #767676; --fg-border: #e7e7e7; --fg-bg: #fff; color: var(--fg-text); }
.fg-gallery__filters { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 28px; }
.fg-gallery__filter { appearance:none; border:1px solid var(--fg-border); background:#fff; color:#333; border-radius:7px; padding:10px 16px; font:inherit; line-height:1.2; cursor:pointer; transition:.18s ease; }
.fg-gallery__filter:hover { border-color:var(--fg-primary); color:var(--fg-primary); }
.fg-gallery__filter.is-active { background:var(--fg-primary); border-color:var(--fg-primary); color:#fff; }
.fg-gallery__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.fg-gallery__grid--single { grid-template-columns:minmax(260px,380px); }
.fg-card { min-width:0; border:1px solid var(--fg-border); border-radius:10px; overflow:hidden; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.04); transition:transform .18s ease,box-shadow .18s ease; }
.fg-card:hover { transform:translateY(-2px); box-shadow:0 7px 24px rgba(0,0,0,.09); }
.fg-card[hidden] { display:none !important; }
.fg-card__open { display:block; width:100%; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.fg-card__image-wrap { position:relative; display:block; height:225px; overflow:hidden; background:#f1f2f3; }
.fg-card__image { display:block; width:100%; height:100%; object-fit:cover; transition:transform .28s ease; }
.fg-card:hover .fg-card__image { transform:scale(1.025); }
.fg-card__image-placeholder { display:flex; width:100%; height:100%; align-items:center; justify-content:center; color:#999; }
.fg-card__compare-badge { position:absolute; right:12px; top:12px; border-radius:999px; background:rgba(255,255,255,.93); color:#333; padding:6px 10px; font-size:12px; font-weight:600; box-shadow:0 2px 8px rgba(0,0,0,.12); }
.fg-card__body { display:block; padding:17px 18px 19px; }
.fg-card__category { display:block; color:var(--fg-primary); font-size:12px; line-height:1.3; margin-bottom:6px; }
.fg-card__title { display:block; color:#202020; font-size:18px; font-weight:600; line-height:1.3; margin-bottom:9px; }
.fg-card__meta { display:flex; flex-wrap:wrap; gap:5px 12px; min-height:20px; color:var(--fg-muted); font-size:13px; line-height:1.4; }
.fg-card__more { display:inline-flex; margin-top:15px; min-height:38px; align-items:center; justify-content:center; padding:8px 18px; border-radius:5px; background:var(--fg-primary); color:#fff; font-size:14px; font-weight:600; }
.fg-gallery__empty { padding:28px; border:1px dashed #d7d7d7; border-radius:9px; text-align:center; color:var(--fg-muted); background:#fafafa; }

.fg-modal { position:fixed; inset:0; z-index:1030; display:none; align-items:flex-start; justify-content:center; overflow:auto; padding:36px 18px; }
.fg-modal.is-open { display:flex; }
.fg-modal__backdrop { position:fixed; inset:0; background:rgba(0,0,0,.62); }
.fg-modal__dialog { position:relative; z-index:1; width:min(1060px,100%); margin:auto; background:#fff; border-radius:12px; box-shadow:0 25px 80px rgba(0,0,0,.3); padding:28px; outline:none; }
.fg-modal__close { position:absolute; z-index:5; right:12px; top:10px; width:42px; height:42px; padding:0; border:0; border-radius:50%; background:transparent; color:#666; font-size:34px; line-height:38px; cursor:pointer; }
.fg-modal__close:hover { background:#f3f3f3; color:#111; }
.fg-modal__head { padding-right:42px; margin-bottom:20px; }
.fg-modal__title { margin:0 0 7px; font-size:28px; line-height:1.2; color:#1f1f1f; }
.fg-modal__meta { display:flex; flex-wrap:wrap; gap:6px 14px; color:var(--fg-muted); font-size:14px; }
.fg-modal__layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:28px; align-items:start; }
.fg-modal__visual,.fg-modal__content { min-width:0; }

.fg-compare { position:relative; width:100%; aspect-ratio:4/3; min-height:300px; overflow:hidden; border-radius:8px; background:#ececec; user-select:none; touch-action:pan-y; }
.fg-compare__after,.fg-compare__before { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.fg-compare__before { clip-path:inset(0 calc(100% - var(--fg-position)) 0 0); }
.fg-compare__line { position:absolute; z-index:3; left:var(--fg-position); top:0; bottom:0; width:3px; transform:translateX(-50%); background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.08); pointer-events:none; }
.fg-compare__line span { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#fff; color:#333; font-size:18px; box-shadow:0 2px 12px rgba(0,0,0,.25); }
.fg-compare__range { position:absolute; z-index:4; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.fg-compare__label { position:absolute; z-index:2; top:12px; padding:6px 10px; border-radius:4px; background:rgba(0,0,0,.58); color:#fff; font-size:12px; line-height:1; pointer-events:none; }
.fg-compare__label--before { left:12px; }
.fg-compare__label--after { right:12px; }
.fg-modal__single-photo { display:flex; width:100%; aspect-ratio:4/3; min-height:300px; align-items:center; justify-content:center; overflow:hidden; border-radius:8px; background:#f2f2f2; color:#888; }
.fg-modal__single-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.fg-modal__extra { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:10px; }
.fg-modal__extra a { display:block; aspect-ratio:1/1; overflow:hidden; border-radius:6px; background:#eee; }
.fg-modal__extra img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .18s ease; }
.fg-modal__extra a:hover img { transform:scale(1.04); }
.fg-modal__description { color:#444; line-height:1.6; margin-bottom:22px; overflow-wrap:anywhere; }
.fg-modal__materials { margin:0 0 24px; }
.fg-modal__materials h3 { margin:0 0 12px; font-size:18px; line-height:1.3; }
.fg-modal__materials ul { margin:0; padding:0 0 0 20px; }
.fg-modal__materials li { margin:7px 0; }
.fg-modal__materials a { color:var(--fg-primary); text-decoration:none; }
.fg-modal__materials a:hover { text-decoration:underline; }
.fg-modal__actions { margin-top:20px; }
.fg-button { appearance:none; display:inline-flex; min-height:44px; align-items:center; justify-content:center; border:0; border-radius:5px; padding:11px 22px; background:var(--fg-primary); color:#fff !important; font:inherit; font-weight:600; text-decoration:none !important; cursor:pointer; }
.fg-button:hover { filter:brightness(.94); }
.fg-modal__share { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:25px; padding-top:17px; border-top:1px solid var(--fg-border); }
.fg-modal__share-title { color:var(--fg-muted); font-size:13px; margin-right:2px; }
.fg-modal__share a { display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center; border:0; border-radius:50%; color:#fff; text-decoration:none; transition:transform .16s ease,filter .16s ease; }
.fg-modal__share a:hover { transform:translateY(-1px); filter:brightness(.95); }
.fg-modal__share svg { display:block; width:19px; height:19px; fill:currentColor; }
.fg-social--vk { background:#4680c2; }
.fg-social--ok { background:#ee8208; }
.fg-social--telegram { background:#26a5e4; }
body.fg-modal-lock, body.fg-lightbox-lock { overflow:hidden !important; }

@media (max-width: 991px) {
  .fg-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .fg-card__image-wrap { height:210px; }
  .fg-modal { padding:22px 12px; }
  .fg-modal__dialog { padding:22px; }
  .fg-modal__layout { grid-template-columns:1fr; gap:22px; }
  .fg-modal__content { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
  .fg-modal__description,.fg-modal__share { grid-column:1/-1; }
}

@media (max-width: 640px) {
  .fg-gallery__filters { gap:7px; margin-bottom:20px; overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; scrollbar-width:thin; }
  .fg-gallery__filter { flex:0 0 auto; padding:9px 13px; font-size:13px; }
  .fg-gallery__grid { grid-template-columns:1fr; gap:16px; }
  .fg-card__image-wrap { height:225px; }
  .fg-modal { padding:0; align-items:stretch; }
  .fg-modal__dialog { min-height:100%; width:100%; border-radius:0; padding:19px 15px 28px; }
  .fg-modal__close { position:fixed; right:8px; top:8px; background:rgba(255,255,255,.92); box-shadow:0 1px 8px rgba(0,0,0,.12); }
  .fg-modal__head { padding-right:40px; }
  .fg-modal__title { font-size:22px; }
  .fg-modal__layout { gap:18px; }
  .fg-compare,.fg-modal__single-photo { min-height:220px; aspect-ratio:4/3; }
  .fg-modal__extra { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fg-modal__content { display:block; }
  .fg-modal__materials { margin-top:20px; }
  .fg-button { width:100%; }
}


/* Просмотр дополнительных фотографий поверх страницы */
.fg-lightbox { position:fixed; inset:0; z-index:12000; display:none; align-items:center; justify-content:center; padding:24px; }
.fg-lightbox.is-open { display:flex; }
.fg-lightbox__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.86); }
.fg-lightbox__dialog { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:min(1180px,100%); height:min(88vh,900px); }
.fg-lightbox__image { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; box-shadow:0 16px 60px rgba(0,0,0,.35); }
.fg-lightbox__close { position:fixed; z-index:2; right:20px; top:15px; width:46px; height:46px; border:0; border-radius:50%; background:rgba(255,255,255,.94); color:#222; font-size:34px; line-height:42px; cursor:pointer; }
.fg-lightbox__nav { position:fixed; z-index:2; top:50%; transform:translateY(-50%); width:52px; height:52px; align-items:center; justify-content:center; border:0; border-radius:50%; background:rgba(255,255,255,.94); color:#222; font-size:40px; line-height:1; cursor:pointer; }
.fg-lightbox__nav--prev { left:18px; }
.fg-lightbox__nav--next { right:18px; }
.fg-lightbox__counter { position:fixed; z-index:2; left:50%; bottom:16px; transform:translateX(-50%); padding:7px 12px; border-radius:999px; background:rgba(0,0,0,.58); color:#fff; font-size:13px; }
.fg-modal__extra a { cursor:zoom-in; }

@media (max-width:640px) {
  .fg-gallery__grid--single { grid-template-columns:1fr; }
  .fg-lightbox { padding:12px; }
  .fg-lightbox__close { right:8px; top:8px; width:42px; height:42px; }
  .fg-lightbox__nav { width:42px; height:42px; font-size:32px; }
  .fg-lightbox__nav--prev { left:7px; }
  .fg-lightbox__nav--next { right:7px; }
}

/* 1.2.0: двухуровневая фильтрация */
.fg-gallery__filter-block{margin-bottom:14px}.fg-gallery__filter-block+.fg-gallery__filter-block{margin-top:-2px;margin-bottom:22px}.fg-gallery__filter-label{margin:0 0 8px;color:#747b83;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.fg-gallery__filters--series .fg-gallery__filter{background:#f6f8fa;border-color:#dfe4e8;color:#4c5660}.fg-gallery__filters--series .fg-gallery__filter:hover{background:#eef4fa;border-color:#bfd2e4;color:#155f9f}.fg-gallery__filters--series .fg-gallery__filter.is-active{background:#e7f1fb;border-color:#9ebfde;color:#145b98;box-shadow:inset 0 0 0 1px rgba(20,91,152,.04)}.fg-gallery__series-block[hidden]{display:none!important}
@media(max-width:640px){.fg-gallery__filter-label{padding-left:1px}.fg-gallery__filter-block+.fg-gallery__filter-block{margin-top:0}.fg-gallery__filters--series{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}}
.fg-gallery__filter-block .fg-gallery__filters{margin-bottom:0}
