/* ── история компании ──────────────────────────────────── */
.sign{background:var(--surface-alt);padding:clamp(48px,6vw,96px) clamp(20px,4vw,56px);
        margin-top:clamp(24px,3vw,40px)}

.sign__in{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:center}

@media (min-width:900px){
.sign__in{grid-template-columns:auto minmax(0,1fr)}
}

.sign__logo{position:relative;width:clamp(240px,30vw,420px);max-width:100%}

.sign__logo img{position:relative;z-index:1;width:100%;height:auto}

/* свечение наведено на знак: его центр — 81 % ширины и 19 % высоты логотипа */
.sign__glow{position:absolute;left:81%;top:19%;width:45%;aspect-ratio:1;
              transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:0;
              background:radial-gradient(circle,rgba(255,203,0,.7) 0%,rgba(255,203,0,.28) 45%,rgba(255,203,0,0) 72%);
              filter:blur(18px);opacity:0;transition:opacity 1.2s ease}

/* свечение разгорается, держится, гаснет — и так по кругу */
.sign.is-on .sign__glow{opacity:1;animation:sign-breath 7s ease-in-out 1.6s infinite}

@keyframes sign-breath{
    0%{opacity:1}
    30%{opacity:1}
    52%{opacity:0}
    70%{opacity:0}
    100%{opacity:1}
  }

@media (prefers-reduced-motion:reduce){
.sign__glow{opacity:1 !important;transition:none !important;animation:none !important}
.sign__bg{opacity:.07 !important;transition:none !important}
:root[data-theme="dark"] .sign__bg{opacity:.12 !important}
}

.sign__text{position:relative;isolation:isolate;max-width:60ch;display:flex;flex-direction:column;gap:18px}

/* силуэт знака лежит за текстом: крупно, приглушённо, вырезан из вектора логотипа */
.sign__bg{position:absolute;right:-4%;top:50%;transform:translateY(-50%);
            width:min(360px,68%);height:auto;z-index:-1;color:var(--text);
            opacity:0;transition:opacity 1.4s ease .5s;pointer-events:none}

.sign.is-on .sign__bg{opacity:.07}

:root[data-theme="dark"] .sign.is-on .sign__bg{opacity:.12}

.sign__text p{margin:0;font-size:16px;line-height:1.7;text-wrap:pretty}

.sign__year{margin-top:14px;display:flex;flex-direction:column;gap:6px}

.sign__year b{font-size:clamp(40px,5vw,64px);font-weight:300;line-height:1}

.sign__year span{font-size:13px;color:var(--text-muted)}

.tl{padding-top:clamp(56px,7vw,96px);max-width:900px}

.tl__group + .tl__group{margin-top:clamp(32px,4vw,48px)}

.tl__cap{margin:0 0 16px;font-size:11.5px;font-weight:500;letter-spacing:.16em;
           text-transform:uppercase;color:var(--text-muted)}

.tl__list{margin:0;padding:0 0 0 28px;list-style:none;border-left:1px solid var(--line);
            display:flex;flex-direction:column;gap:18px}

.tl__list li{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:4px 20px}

@media (min-width:760px){
.tl__list li{grid-template-columns:90px minmax(0,1fr)}
}

.tl__list li::before{content:"";position:absolute;left:-32px;top:9px;width:8px;height:8px;
                       border-radius:50%;background:var(--text)}

.tl__year{font-size:15px;font-weight:500;line-height:1.6}

.tl__text{font-size:15px;line-height:1.6;text-wrap:pretty}

.tl__ph{margin:clamp(32px,4vw,48px) 0;aspect-ratio:16/9;background:var(--surface-alt);
          border:1px dashed var(--line);display:grid;place-items:center;padding:16px;
          text-align:center;font-size:13px;line-height:1.5;color:var(--text-muted)}

.awards{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0;list-style:none}

@media (min-width:600px){
.awards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (min-width:1040px){
.awards{grid-template-columns:repeat(3,minmax(0,1fr))}
}

.award{background:var(--surface-alt);border:1px solid var(--line);padding:20px;
         display:grid;grid-template-rows:subgrid;grid-row:span 2;gap:10px;align-content:start}

@supports not (grid-template-rows:subgrid){
.award{display:flex;flex-direction:column}
}

.award b{font-size:20px;font-weight:500;line-height:1.2}

.award span{font-size:14px;line-height:1.5;color:var(--text-muted);text-wrap:pretty}

.band{margin-top:clamp(56px,7vw,96px);border-top:1px solid var(--line);
        border-bottom:1px solid var(--line);padding:clamp(32px,4vw,48px) 0}

.three{display:grid;grid-template-columns:minmax(0,1fr);gap:16px 32px;margin:0;padding:0;list-style:none}

@media (min-width:760px){
.three{grid-template-columns:repeat(3,minmax(0,1fr))}
}

.three li{font-size:16px;font-weight:500}

.people{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin:0;padding:0;list-style:none}

@media (min-width:760px){
.people{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
}

.person{display:flex;gap:20px;align-items:flex-start;border-top:1px solid var(--line);padding-top:20px}

.person__ph{flex:none;width:96px;height:96px;border-radius:50%;border:1px solid var(--line);
              background:var(--surface-alt);display:grid;place-items:center;font-size:11px;
              color:var(--text-muted)}

.person h3{margin:0;font-size:18px;font-weight:500;line-height:1.3}

.person p{margin:8px 0 0;font-size:14px;line-height:1.6;color:var(--text-muted);text-wrap:pretty}

.cta{margin-top:clamp(56px,7vw,96px);background:var(--surface-alt);
       padding:clamp(40px,5vw,72px) clamp(20px,4vw,56px);display:flex;flex-wrap:wrap;
       align-items:center;justify-content:space-between;gap:24px 40px}

.cta__t{display:flex;flex-direction:column;gap:10px;max-width:60ch}

.cta__t p{margin:0;font-size:15px;line-height:1.6;text-wrap:pretty}

/* ── музей ─────────────────────────────────────────────── */
.mus{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,4vw,56px);
       padding-top:clamp(28px,4vw,44px)}

@media (min-width:900px){
.mus{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;
         column-gap:clamp(40px,6vw,96px)}
}

.mus p{margin:0;max-width:65ch;font-size:16px;line-height:1.6;text-wrap:pretty}

.mus__what{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:16px}

.mus__what li{display:flex;align-items:center;gap:14px;font-size:15px;font-weight:500}

.mus__what svg{flex:none}

.guide{margin-top:clamp(56px,7vw,96px);background:var(--surface-alt);
         padding:clamp(24px,3vw,40px);display:flex;flex-wrap:wrap;align-items:center;gap:24px}

.guide__ph{flex:none;width:120px;height:120px;border-radius:50%;border:1px solid var(--line);
             display:grid;place-items:center;padding:10px;text-align:center;font-size:12px;
             line-height:1.4;color:var(--text-muted)}

.guide h2{margin:0;font-size:20px;font-weight:500;line-height:1.3}

.guide p{margin:8px 0 0;font-size:14px;line-height:1.6;color:var(--text-muted);text-wrap:pretty}

.visit{padding-top:clamp(56px,7vw,96px);max-width:65ch}

.visit p{margin:0 0 24px;font-size:15px;line-height:1.6;text-wrap:pretty}

.visit__links{display:flex;flex-wrap:wrap;gap:14px 40px}

.visit__links a{font-size:18px;font-weight:500;box-shadow:inset 0 -1px 0 var(--accent)}

.visit__links a:hover{color:var(--text)}

.photos{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0;list-style:none}

@media (min-width:600px){
.photos{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (min-width:1040px){
.photos{grid-template-columns:repeat(3,minmax(0,1fr))}
}

.photos li{aspect-ratio:4/3;background:var(--surface-alt);border:1px dashed var(--line);
             display:grid;place-items:center;padding:16px;text-align:center;font-size:13px;
             line-height:1.5;color:var(--text-muted)}

.shots__note{grid-column:1/-1;margin:14px 0 0;font-size:13px;line-height:1.6;color:var(--text-muted)}

/* Снимки архива — единый кадр 4:3, чтобы разные пропорции исходников не ломали ряд */
.shots--hist{margin:clamp(32px,4vw,48px) 0}

.shots--hist .shot img{aspect-ratio:4/3;object-fit:cover;object-position:50% 50%}

/* T64 dop1: с нечётным числом снимков последняя плитка в двухколоночной сетке иначе висит
   у левого края, оставляя пустую половину строки (клиент уже жаловался на пустоту справа от
   фотоблока — T57b). Селектор переживает добавление/удаление фото в админке: срабатывает
   всегда, когда после последнего изменения строка снова стала нечётной. Плитка не растягивается
   на обе колонки — grid-column:1/-1 только даёт ей место для центрирования, а width считает
   ширину ровно одной обычной колонки (гэп — тот же clamp, что и в .shots из base.css).
   Мобильная раскладка (одна колонка, <700px) не затронута — правило живёт в той же
   медиа-границе, что переключает .shots на две колонки. */
@media (min-width:700px){
.shots--hist .shot:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - clamp(16px,2.4vw,28px)/2);justify-self:center}
}

/* Раздел «Как это было» продолжается после ленты снимков: снимки уже дали нужный отступ
   сверху (margin страницы .shots--hist), второй `.tl` не должен добавлять свой обычный
   верхний паддинг заново */
.tl.tl--cont{padding-top:0}

.person__ph{overflow:hidden;padding:0}

img.person__ph{object-fit:cover;object-position:50% 34%}
