/* ОБЪЕКТ — блок «Объект в фотографиях» (objg-*) и просмотр фото (objg-lb).
   Изолирован от main.css: селекторы из двух классов (.objg .objg-x). Раскладка — от ширины места вставки
   (container queries; пороги чуть ниже 600/1024 — ширина блока меньше экрана на полосу прокрутки):
     до 589px — 2 фото в ряд, «Все фотографии» — кнопкой на всю ширину под заголовком;
     590–1009px — 3 в ряд; от 1010px — 4 в ряд, «Все фотографии» справа от заголовка.
   Ховер — только на устройствах с мышью; увеличение фото — через inset, не transform (так фото не мылится).
   main.css гасит рамку фокуса у всего (* { outline: none !important }) — поэтому у :focus-visible здесь !important. */

.objg,
.objg *,
.objg *::before,
.objg *::after{box-sizing:border-box;}

.objg{
  container:objg / inline-size;
  background:var(--objekt-color-bg);
  color:var(--objekt-color-cream);
  font-family:var(--objekt-font-body);
  padding:var(--objekt-section-py-cq) 0;
  margin:0;
}
.objg .objg-wrap{
  --objg-pad:16px;
  --objg-gap:clamp(10px, 1.1vw, 20px);
  --objg-ease:cubic-bezier(.2,.7,.2,1);
  padding:0 var(--objg-pad);
}
.objg :where(p){margin:0;padding:0;}
.objg :where(button){margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;box-shadow:none;-webkit-appearance:none;appearance:none;text-transform:none;letter-spacing:normal;}
.objg svg{display:block;flex-shrink:0;}

/* ---------- шапка ---------- */
.objg .objg-head{display:flex;flex-direction:column;align-items:stretch;gap:20px;margin-bottom:clamp(20px, 2.2vw, 36px);}
.objg .objg-head--bare{align-items:flex-end;}
.objg .objg-eyebrow{
  display:flex;align-items:center;gap:16px;
  font-size:var(--objekt-fs-caption);
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--objekt-color-accent);
  margin:0 0 16px;
}
.objg .objg-eyebrow span{flex-shrink:0;}
/* линия справа от эйдброу — как во всех obj*-блоках сайта, на телефоне тоже */
.objg .objg-eyebrow i{display:block;flex:1 1 auto;max-width:560px;height:1px;background:var(--objekt-color-line-strong);}
.objg .objg-title{
  font-family:var(--objekt-font-heading);
  font-weight:500;
  font-size:var(--objekt-fs-display-mobile-cq, clamp(32px, 11cqw, 48px));
  line-height:1.05;
  letter-spacing:var(--objekt-tracking-heading);
  color:var(--objekt-color-cream);
  margin:0;
}
.objg .objg-sub{margin-top:10px;font-size:clamp(15px, 1vw, 18px);line-height:1.45;color:rgba(169,150,125,0.9);}

/* «Все фотографии · 24» — кнопка в тонкой рамке: сетка слева, стрелка ↗ справа */
.objg .objg-all{
  display:flex;align-items:center;gap:16px;width:100%;
  min-height:52px;padding:0 18px;
  border:1px solid rgba(169,150,125,0.6);border-radius:2px;
  font-size:clamp(15px, 0.95vw, 17px);font-weight:500;line-height:1.2;color:var(--objekt-color-cream);
  transition:border-color .2s ease, background-color .2s ease;
}
.objg .objg-all__grid{display:flex;width:24px;height:24px;color:var(--objekt-color-accent);}
.objg .objg-all__grid svg{width:100%;height:100%;}
.objg .objg-all__text{flex:1 1 auto;text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums;}
.objg .objg-all__arrow{display:flex;width:24px;height:24px;margin-left:24px;color:var(--objekt-color-accent);transition:transform .25s var(--objg-ease);}
.objg .objg-all__arrow svg{width:100%;height:100%;}
.objg .objg-all:focus-visible{outline:2px solid var(--objekt-color-accent) !important;outline-offset:3px;}
@media (hover:hover){
  .objg .objg-all:hover{border-color:var(--objekt-color-accent);background:rgba(169,150,125,0.06);}
  .objg .objg-all:hover .objg-all__arrow{transform:translate(4px, -4px);}
}

/* ---------- сетка ---------- */
.objg .objg-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--objg-gap);}
.objg .objg-item{
  position:relative;display:block;width:100%;aspect-ratio:1 / 1;overflow:hidden;
  border:1px solid rgba(169,150,125,0.35);border-radius:0;
  background:#252220;
  cursor:zoom-in;
  transition:border-color .3s ease;
}
.objg .objg-item[hidden]{display:none;}
.objg .objg-item__img{
  position:absolute;top:0;left:0;display:block;width:100%;height:100%;max-width:none;
  object-fit:cover;object-position:50% 50%;
  transition:top .6s var(--objg-ease), left .6s var(--objg-ease), width .6s var(--objg-ease), height .6s var(--objg-ease);
}
.objg .objg-item__shade{
  position:absolute;inset:auto 0 0 0;height:45%;
  background:linear-gradient(0deg, rgba(12,11,10,0.55), rgba(12,11,10,0));
  opacity:0;transition:opacity .4s ease;pointer-events:none;
}
/* значок «развернуть» — всегда в правом нижнем углу (как на референсе) */
.objg .objg-item__zoom{
  position:absolute;right:clamp(8px, 4cqw, 14px);bottom:clamp(8px, 4cqw, 14px);
  display:flex;align-items:center;justify-content:center;
  width:clamp(30px, 9cqw, 38px);height:clamp(30px, 9cqw, 38px);
  background:rgba(20,18,17,0.72);border:1px solid rgba(245,242,237,0.12);
  color:var(--objekt-color-cream);
  transition:background-color .3s ease, border-color .3s ease, color .3s ease;
}
.objg .objg-item__zoom svg{width:55%;height:55%;}
.objg .objg-item:focus-visible{outline:2px solid var(--objekt-color-accent) !important;outline-offset:3px;border-color:var(--objekt-color-accent);}
@media (hover:hover){
  .objg .objg-item:hover{border-color:var(--objekt-color-accent);}
  .objg .objg-item:hover .objg-item__img{top:-2%;left:-2%;width:104%;height:104%;}
  .objg .objg-item:hover .objg-item__shade{opacity:1;}
  .objg .objg-item:hover .objg-item__zoom{border-color:var(--objekt-color-accent);color:var(--objekt-color-accent);}
}
.objg .objg-item:focus-visible .objg-item__shade{opacity:1;}
.objg .objg-item:focus-visible .objg-item__zoom{border-color:var(--objekt-color-accent);color:var(--objekt-color-accent);}
/* новые фото после «Загрузить ещё» — мягко, лесенкой (задержку ставит скрипт) */
.objg .objg-item.is-new{animation:objgIn .4s var(--objg-ease) both;}
@keyframes objgIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}

/* ---------- низ: счётчик, «Загрузить ещё», сколько добавится ---------- */
.objg .objg-foot{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:clamp(24px, 2.4vw, 36px);transition:opacity .35s ease;}
.objg .objg-foot[hidden]{display:none;}
.objg .objg-foot.is-leaving{opacity:0;}
.objg .objg-count{font-size:14px;line-height:1.4;color:rgba(245,242,237,0.7);font-variant-numeric:tabular-nums;}
.objg .objg-more{
  display:flex;align-items:center;justify-content:center;gap:14px;
  width:100%;min-height:clamp(52px, 3.2vw, 64px);padding:0 24px;
  background:var(--objekt-color-accent);border-radius:2px;
  font-size:var(--objekt-fs-button, 17px);font-weight:500;color:var(--objekt-color-bg);
  transition:background-color .2s ease;
}
.objg .objg-more__plus{display:flex;width:22px;height:22px;}
.objg .objg-more__plus svg{width:100%;height:100%;}
.objg .objg-more:hover{background:var(--objekt-color-accent-hover, #B8A68E);}
.objg .objg-more:focus-visible{outline:2px solid var(--objekt-color-cream) !important;outline-offset:3px;}
.objg .objg-next{font-size:13px;line-height:1.4;color:rgba(245,242,237,0.45);}

/* ---------- раскладка по ширине места ---------- */
@container objg (min-width: 390px){
  .objg .objg-wrap{--objg-pad:20px;}
}
@container objg (min-width: 590px){
  .objg .objg-wrap{--objg-pad:32px;}
  .objg .objg-grid{grid-template-columns:repeat(3, minmax(0, 1fr));}
  .objg .objg-title{font-size:clamp(36px, 6.4cqw, 64px);}
  .objg .objg-head{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:32px;}
  .objg .objg-all{width:auto;flex-shrink:0;min-height:clamp(52px, 3.4vw, 60px);padding:0 clamp(18px, 1.4vw, 24px);}
  .objg .objg-more{width:min(100%, 640px);}
  .objg .objg-item__zoom{right:12px;bottom:12px;width:36px;height:36px;}
}
@container objg (min-width: 1010px){
  .objg .objg-grid{grid-template-columns:repeat(4, minmax(0, 1fr));}
  .objg .objg-title{font-size:var(--objekt-fs-display-split-cq, clamp(34px, 3.6cqw, 64px));}
  .objg .objg-more{width:78%;}
}
@container objg (min-width: 1200px){
  .objg .objg-wrap{width:min(81.77083cqw, 1600px);margin:0 auto;padding:0;}
}

/* ================= просмотр фото ================= */
.objg-lb,
.objg-lb *,
.objg-lb *::before,
.objg-lb *::after{box-sizing:border-box;}
.objg-lb{
  position:fixed;inset:0;z-index:100002;
  display:grid;grid-template-rows:auto minmax(0, 1fr) auto;grid-template-columns:minmax(0, 1fr);   /* колонка не растягивается по ленте миниатюр */
  height:100vh;height:100dvh;
  padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
  background:rgba(12,11,10,0.96);
  color:var(--objekt-color-cream, #F5F2ED);
  font-family:var(--objekt-font-body, 'Manrope', sans-serif);
  opacity:0;transition:opacity .25s ease;
  touch-action:none;
}
.objg-lb[hidden]{display:none;}
.objg-lb.is-open{opacity:1;}
.objg-lb :where(button){margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;appearance:none;}
.objg-lb svg{display:block;}
.objg-lb :where(button):focus-visible{outline:2px solid var(--objekt-color-accent, #A9967D) !important;outline-offset:3px;}
.objg-lb__top{display:flex;align-items:center;justify-content:space-between;height:clamp(56px, 7vh, 72px);padding:0 clamp(16px, 2.2vw, 32px);}
.objg-lb__count{font-size:15px;letter-spacing:.04em;font-variant-numeric:tabular-nums;color:rgba(245,242,237,0.7);}
.objg-lb__close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-8px;color:var(--objekt-color-cream, #F5F2ED);transition:color .2s ease;}
.objg-lb__close svg{width:28px;height:28px;}
.objg-lb__close:hover{color:var(--objekt-color-accent, #A9967D);}
.objg-lb__stage{position:relative;overflow:hidden;margin:0 clamp(12px, 7vw, 120px);}
.objg-lb__img{
  position:absolute;inset:0;margin:auto;
  display:block;max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;user-select:none;-webkit-user-drag:none;
  opacity:0;transition:opacity .25s ease;
}
.objg-lb__img.is-shown{opacity:1;}
.objg-lb.is-dragging .objg-lb__img{transition:none;}
.objg-lb__spinner{
  position:absolute;left:50%;top:50%;width:36px;height:36px;margin:-18px 0 0 -18px;
  border:2px solid rgba(169,150,125,0.25);border-top-color:var(--objekt-color-accent, #A9967D);border-radius:50%;
  opacity:0;visibility:hidden;transition:opacity .2s ease, visibility .2s;
  animation:objgSpin .9s linear infinite;
}
.objg-lb.is-loading .objg-lb__spinner{opacity:1;visibility:visible;}
@keyframes objgSpin{to{transform:rotate(360deg);}}
.objg-lb__nav{
  position:absolute;top:50%;z-index:2;
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;margin-top:-28px;border-radius:50%;
  border:1px solid rgba(169,150,125,0.6);
  color:var(--objekt-color-cream, #F5F2ED);background:rgba(12,11,10,0.35);
  transition:border-color .2s ease, background-color .2s ease, color .2s ease;
}
.objg-lb__nav svg{width:24px;height:24px;}
.objg-lb__nav:hover{border-color:var(--objekt-color-accent, #A9967D);background:rgba(169,150,125,0.12);color:var(--objekt-color-accent, #A9967D);}
.objg-lb__prev{left:clamp(12px, 2.2vw, 32px);}
.objg-lb__next{right:clamp(12px, 2.2vw, 32px);}
.objg-lb__bottom{min-height:clamp(52px, 8vh, 76px);padding:12px clamp(16px, 4vw, 48px) 16px;text-align:center;}
.objg-lb__caption{max-width:52em;margin:0 auto;font-size:15px;line-height:1.5;color:rgba(245,242,237,0.8);}
.objg-lb__hint{position:absolute;inset:0;pointer-events:none;}
/* телефон: листание свайпом, стрелки скрыты */
@media (hover:none), (max-width:767px){
  .objg-lb__nav{display:none;}
  .objg-lb__stage{margin:0;}
}

@media (prefers-reduced-motion: reduce){
  .objg .objg-item__img,
  .objg .objg-item.is-new,
  .objg .objg-foot,
  .objg-lb,
  .objg-lb__img{transition:none !important;animation:none !important;}
}

/* лента миниатюр под подписью (общий модуль objekt-thumbs) */
.objg-lb__bottom{min-width:0;}
.objg-lb__bottom .objth{margin-top:10px;}
.objg-lb__caption:empty{display:none;}
.objg-lb__caption:empty + .objth{margin-top:0;}
