/* ==========================================================================
   Компоненты. Мобильная вёрстка — базовая, расширения: 720px (md), 1040px (lg).
   Имена — блок__элемент--модификатор, без вложенности глубже двух уровней.
   ========================================================================== */

/* ---------- шапка ---------- */
.hd{display:flex;align-items:center;gap:var(--s-4);min-height:64px;position:relative}
.hd__brand{display:flex;align-items:center;gap:10px;min-height:var(--tap);white-space:nowrap}
.hd__logo{height:24px;width:auto;color:var(--ink)}
.hd__sub{font-size:12.5px;line-height:1.15;color:var(--muted);padding-left:10px;border-left:1px solid var(--line)}
.hd__word{font-size:19px;font-weight:500;letter-spacing:-.01em}
.hd__nav{display:none}
.hd__nav a{min-height:var(--tap);display:inline-flex;align-items:center;padding:0 11px;border-radius:12px;font-size:15px}
.hd__nav a:hover{background:var(--surface)}
.hd__nav a[aria-current]{background:var(--surface);font-weight:500}
.hd__tools{margin-left:auto;display:flex;gap:6px;align-items:center}
.icon-btn{min-width:var(--tap);min-height:var(--tap);border-radius:var(--r-btn);border:0;background:var(--surface);color:var(--ink);
  font-size:14px;font-weight:500;padding:0 13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.icon-btn svg{width:18px;height:18px}
.hd__opt{display:none}
html:not(.js) .theme-btn{display:none}   /* без JS тема берётся из системы, кнопка не нужна */

/* меню телефона: <details>, работает без JS */
.menu{position:static}
.menu>summary{list-style:none}
.menu>summary::-webkit-details-marker{display:none}
.menu__panel{position:absolute;right:0;left:0;top:calc(100% + 4px);z-index:var(--z-menu);background:var(--surface);border-radius:var(--r-lg);
  padding:var(--s-3);box-shadow:var(--shadow-pop);display:grid;gap:2px}
.menu__panel a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 var(--s-3);border-radius:12px;font-size:17px}
.menu__panel a:hover{background:var(--surface-sunk)}
.menu__panel .soon{color:var(--muted)}
.menu__row{display:flex;gap:6px;padding:var(--s-2) var(--s-3) 0;border-top:1px solid var(--line);margin-top:var(--s-2)}
.menu__row .icon-btn{background:var(--surface-sunk)}
@media (min-width:1040px){
  .hd__nav{display:flex;gap:2px}
  .menu{display:none}
  .hd__opt{display:inline-flex}
}

/* ---------- хлебные крошки ---------- */
.crumbs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap;gap:2px 6px;font-size:var(--fs-caption);color:var(--muted);margin-top:var(--s-2);
  margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter)}
@media (min-width:1040px){.crumbs{flex-wrap:wrap;white-space:normal;overflow:visible}}
.crumbs a{min-height:32px;display:inline-flex;align-items:center;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.crumbs a:hover{color:var(--ink)}
.crumbs li{display:flex;align-items:center;gap:6px}
.crumbs li+li::before{content:"/";color:var(--line-strong)}
.crumbs [aria-current]{color:var(--ink);min-height:32px;display:inline-flex;align-items:center}

/* ---------- кнопки и ссылки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:52px;padding:0 var(--s-5);
  border-radius:var(--r-btn);border:0;background:var(--btn);color:var(--btn-ink);font-weight:500;font-size:16px;cursor:pointer;
  transition:transform var(--dur)}
.btn:active{transform:translateY(1px)}
.btn--dark{background:var(--c-ink);color:var(--c-white)}            /* на светлых плитках в обеих темах */
.btn--accent{background:var(--c-lemon);color:var(--c-ink)}
.btn--line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn--sm{min-height:var(--tap);padding:0 var(--s-4);font-size:15px}
.btn__sub{display:block;font-size:12px;font-weight:400;opacity:.75}
/* кнопка в бота: ссылка t.me с ?start=<источник>, позже — короткая /go/<code> (P1 §3.7) */
.btn-bot{display:inline-flex;align-items:center;gap:var(--s-3);min-height:56px;padding:0 var(--s-5) 0 var(--s-3);border-radius:var(--r-btn);
  background:var(--c-ink);color:var(--c-white);font-weight:500}
.btn-bot__ico{width:34px;height:34px;border-radius:50%;background:var(--c-lemon);color:var(--c-ink);display:grid;place-items:center;flex:none}
.btn-bot__ico svg{width:18px;height:18px}
.btn-bot__txt{display:grid;line-height:1.2}
.btn-bot__txt small{font-size:12px;font-weight:400;opacity:.72}
.more{font-weight:500;min-height:var(--tap);display:inline-flex;align-items:center;gap:6px;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.ext::after{content:"↗";font-size:.85em;margin-left:2px}

/* ---------- чипсы и бейджи ---------- */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{min-height:var(--tap);display:inline-flex;align-items:center;gap:6px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--surface);font-size:14px}
.chip[aria-current]{background:var(--ink);color:var(--bg)}
.chip--glass{background:rgba(255,255,255,.66);color:var(--c-ink)}
.chips--scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter)}
.chips--scroll .chip{flex:none}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1;letter-spacing:.06em;text-transform:uppercase;font-weight:500;
  padding:5px 8px;border-radius:var(--r-xs);background:var(--c-ink);color:var(--c-white);white-space:nowrap}
.badge--win{background:var(--c-lemon);color:var(--c-ink)}
.badge--lead{background:var(--c-ink);color:var(--c-lemon)}
.badge--ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor;opacity:.75;font-weight:400}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}

/* ---------- строка-мета: тонкие разделители, как дата | место | вход в афише ---------- */
.meta{display:flex;flex-wrap:wrap;row-gap:4px;font-size:var(--fs-caption);line-height:1.3;margin-left:-11px;clip-path:inset(0 0 0 11px)}
.meta>*{padding:0 10px;border-left:1px solid color-mix(in srgb,currentColor 35%,transparent)}
.meta b{font-weight:500;font-variant-numeric:tabular-nums}

/* ---------- плитка ---------- */
.tile{border-radius:var(--r-lg);padding:18px;color:var(--tile-ink);display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden;min-width:0}
.tile>.push{margin-top:auto;padding-top:6px}      /* свободное место — только перед нижней строкой */
/* базовые стили содержимого плитки — с нулевой специфичностью (:where), чтобы классы элементов
   (.cover__lede, .lead__title, .lead__dek…) всегда их перекрывали */
:where(.tile) .label{opacity:.72}
:where(.tile) h3{font-size:var(--fs-h3);line-height:var(--lh-head);font-weight:500}
:where(.tile) p{font-size:14px;line-height:1.4}
:where(.tile) .meta{font-size:var(--fs-caption)}
.tile--lemon{background:var(--c-lemon)}.tile--sky{background:var(--c-sky)}.tile--lime{background:var(--c-lime)}
.tile--peach{background:var(--c-peach)}.tile--grey{background:var(--c-grey)}.tile--cream{background:var(--c-cream)}
.tile--skysoft{background:var(--c-sky-soft)}
.tile--surface{background:var(--surface);color:var(--ink)}
.tile--surface .label{color:var(--muted);opacity:1}
.tile--line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.tile--mesh-green{background:url(../img/brand/mesh-green-2.jpg) center/cover no-repeat,var(--c-lime)}
.tile--mesh-orange{background:url(../img/brand/mesh-orange.jpg) center/cover no-repeat,var(--c-peach)}
.tile--mesh-orange-2{background:url(../img/brand/mesh-orange-2.jpg) center/cover no-repeat,var(--c-peach)}
a.tile{transition:transform var(--dur)}
a.tile:hover{transform:translateY(-2px)}
@media (min-width:1040px){.tile{padding:22px}}

/* ---------- изгибы логотипа на обложке ---------- */
.glyph{position:absolute;width:780px;max-width:none;height:auto;right:-340px;bottom:-130px;color:var(--glyph);pointer-events:none}
@media (min-width:1040px){.glyph{width:1100px;right:-380px;bottom:-210px}}

/* ---------- песок: широкая зернистая дымка через правый верхний угол фото ---------- */
/* полоса идёт поперёк угла (от верхнего края к правому), центр внутри кадра; исходник 1487×1573 — масштаб ≈1, без пикселей */
.haze{position:absolute;width:var(--haze-w,105%);max-width:none;aspect-ratio:1487/1573;left:78%;top:20%;transform:translate(-50%,-50%) scaleY(-1);
  background:url(../img/brand/sand.webp) center/100% 100% no-repeat;pointer-events:none}
.photo-mark{position:absolute;top:14px;right:16px;height:26px;width:auto;color:var(--c-ink)}
/* портреты: дымка и логотип в правом нижнем углу, чтобы не закрывать лицо */
.haze--br{top:80%;transform:translate(-50%,-50%)}  /* нижний угол: родная ориентация полосы */
.photo-mark--br{top:auto;bottom:14px}

/* ---------- обложка главной ---------- */
.hero{display:grid;gap:var(--gap-tile);margin-top:4px}
.cover{background:var(--cover-bg);color:var(--cover-ink);padding:26px 20px 22px;gap:18px}
.cover>*:not(.glyph){position:relative}
.cover .label{opacity:1;color:var(--cover-muted)}
.cover__title{font-size:var(--fs-display);line-height:var(--lh-tight);font-weight:500;letter-spacing:-.01em;max-width:14em}
.cover__lede{font-size:var(--fs-lead);color:var(--cover-muted);max-width:36em}
.cover .meta{color:var(--cover-muted)}
.cover .meta b{color:var(--cover-ink)}
.cover .meta>*{white-space:nowrap}
.hero__side{display:grid;gap:var(--gap-tile)}
.stamp{position:absolute;width:96px;height:96px;right:-22px;top:-22px;color:var(--c-ink);opacity:.9;transform:rotate(-12deg)}
@media (min-width:1040px){
  .hero{grid-template-columns:2fr 1fr;margin-top:8px}
  .cover{padding:48px 48px 36px;min-height:540px;gap:20px}
  .hero__side{grid-template-rows:auto 1fr}
  .stamp{width:110px;height:110px;right:-26px;top:-26px}
}

/* поиск */
.search{display:flex;gap:6px;background:var(--field);border-radius:18px;padding:6px;max-width:620px;box-shadow:inset 0 0 0 1px var(--field-line)}
.search input{flex:1;min-width:0;border:0;background:transparent;font-size:16px;color:var(--ink);padding:0 12px;min-height:48px}
.search input::placeholder{color:var(--muted)}
.search input:focus-visible{outline:none;box-shadow:none}
.search:focus-within{box-shadow:0 0 0 3px var(--focus),0 0 0 6px var(--focus-halo)}
.search .btn{min-height:48px;padding:0 18px}

/* ---------- обложка внутренней страницы ---------- */
.pcover{border-radius:var(--r-lg);padding:26px 20px 24px;display:grid;gap:14px;position:relative;overflow:hidden;color:var(--c-ink);margin-top:var(--s-3)}
.pcover>*:not(.glyph){position:relative}
.pcover--awards{background:url(../img/brand/mesh-green.jpg) center/cover no-repeat,var(--c-lemon)}
.pcover--about{background:url(../img/brand/mesh-orange-2.jpg) center/cover no-repeat,var(--c-cream)}
.pcover--plain{background:var(--surface);color:var(--ink)}
.pcover .glyph{color:rgba(255,255,255,.55)}
.pcover__title{font-size:var(--fs-h1);line-height:1.08;font-weight:500;letter-spacing:-.01em;max-width:16em}
.pcover__lede{font-size:var(--fs-lead);max-width:40em;color:var(--tile-muted)}
.pcover .meta{color:var(--tile-muted)}
.pcover .meta b{color:var(--c-ink)}
@media (min-width:1040px){.pcover{padding:48px 48px 40px;gap:18px;min-height:360px;align-content:end}}

/* ---------- заголовок раздела ---------- */
.sh{display:grid;gap:6px;margin:var(--section-gap) 6px var(--s-4)}
.sh .label{color:var(--muted)}
.sh__title{font-size:var(--fs-h2);line-height:1.1;font-weight:500}
.sh__title a{text-decoration:none;display:inline-block;padding-block:8px;margin-block:-8px}
.sh__title a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.12em}
.sh__title a svg{display:inline-block;width:.62em;height:.62em;margin-left:.18em;vertical-align:.02em;transition:transform var(--dur)}
.sh__title a:hover svg{transform:translateX(4px)}
.sh__btn{justify-self:start}
.sh__lede{color:var(--muted);font-size:15px;max-width:56ch}
@media (min-width:1040px){
  .sh{grid-template-columns:1fr auto;align-items:end;column-gap:var(--s-6);margin-inline:0;margin-bottom:var(--s-5)}
  .sh__lede{font-size:17px;grid-column:1}
  .sh .more,.sh__btn{grid-row:1/-1;grid-column:2;align-self:end}
}

/* ---------- «Читать»: обложка материала + список ---------- */
.read{display:grid;gap:var(--gap-tile)}
.lead{min-height:340px;padding:64px 22px;justify-content:center;text-align:center;align-items:center;gap:14px}
.lead .photo-mark{top:18px;right:20px;height:24px}
.lead>.label{position:absolute;top:22px;left:22px}
.lead__title{font-size:30px;line-height:1.12;font-weight:400;max-width:13em}
.lead__dek{font-size:17px;line-height:1.45;max-width:30em}
.lead>.meta{position:absolute;bottom:20px;left:22px}
.news a{display:grid;gap:4px;padding:14px 6px;border-top:1px solid var(--line);min-height:64px}
.news li:first-child a{border-top:0}
.news .label{color:var(--muted);font-size:11.5px}
.news b{font-weight:500;font-size:17px;line-height:1.25}
.news a:hover b{text-decoration:underline;text-underline-offset:3px}
.news .meta{color:var(--muted)}
@media (min-width:1040px){
  .read{grid-template-columns:7fr 5fr;gap:var(--s-8)}
  .lead{min-height:480px;padding:72px 48px}
  .lead__title{font-size:46px}
  .lead__dek{font-size:20px}
  .news a{padding:16px 0}
  .news b{font-size:19px}
}

/* ---------- указатель справочной ---------- */
.gidx{display:grid;column-gap:var(--s-8)}
.gidx a{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:baseline;padding:14px 6px;border-top:1px solid var(--line);min-height:60px}
.gidx .dot{grid-column:1;grid-row:1;align-self:center}
.gidx b{grid-column:2;grid-row:1;font-weight:500;font-size:18px}
.gidx span:not(.dot){grid-column:2;grid-row:2;color:var(--muted);font-size:14px}
.gidx i{font-style:normal;grid-row:1/3;grid-column:3;align-self:center;color:var(--muted)}
@media (min-width:720px){.gidx{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.gidx{grid-template-columns:repeat(3,1fr)}.gidx a{padding:18px 0}}

/* ---------- афиша ---------- */
.events{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:var(--gap-tile);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.ev{scroll-snap-align:start;background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:8px 8px 16px;display:flex;flex-direction:column;gap:10px}
.ev__pic{position:relative;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;background:var(--c-grey)}
.ev__pic>img{width:100%;height:100%;object-fit:cover}
.ev__when{font-family:var(--font-accent);font-style:italic;font-size:26px;line-height:1;padding:0 8px}
.ev h3{font-size:18px;font-weight:500;line-height:1.2;padding:0 8px}
.ev .meta{color:var(--muted);margin-left:-3px;padding-left:0}
.ev .badge{margin-left:8px;align-self:flex-start}
.ev>.meta{margin-left:-3px}
@media (min-width:1040px){.events{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);overflow:visible}}

/* ---------- архив премии: сетка номинаций ---------- */
.arch{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-tile)}
.arch .tile{min-height:172px}
.arch h3{font-size:17px;hyphens:manual}
.arch .num{font-size:28px;line-height:1}
.arch .win{font-size:15px;font-weight:500;line-height:1.25}
.arch__all{grid-column:span 2;min-height:0!important}
.feat{grid-column:span 2;padding:0!important;min-height:300px!important;justify-content:flex-end;color:var(--ink)}
.feat>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feat__box{position:relative;margin:8px;padding:16px;border-radius:var(--r-md);background:var(--surface);display:grid;gap:8px}
.feat__box .meta,.feat__box p{color:var(--muted)}
.feat__box .label{color:var(--muted);opacity:1}
.feat h3{font-size:22px}
@media (min-width:720px){.arch{grid-template-columns:repeat(3,1fr)}.arch__all{grid-column:auto}}
@media (min-width:1040px){
  .arch{grid-template-columns:repeat(4,1fr)}
  .arch__all{grid-column:span 2}
  .arch h3{font-size:19px}
  .feat{grid-row:span 2;min-height:100%!important}
  .feat__box{margin:12px;padding:22px;max-width:420px}
  .feat h3{font-size:28px}
}

/* ---------- люди: лента портретов ---------- */
.ppl{display:grid;grid-auto-flow:column;grid-auto-columns:44%;gap:var(--gap-tile);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.ppl--grid{grid-auto-flow:row;grid-template-columns:1fr 1fr;overflow:visible}
.person{scroll-snap-align:start;background:var(--surface);border-radius:var(--r-lg);padding:8px 8px 14px;display:flex;flex-direction:column;gap:8px;color:var(--ink);position:relative}
.person__pic{aspect-ratio:4/5;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunk)}
.person__pic img{width:100%;height:100%;object-fit:cover}
.person__pic--empty{display:grid;place-items:center;font-family:var(--font-accent);font-style:italic;font-size:44px;color:var(--muted);background:var(--surface-sunk)}
.person b{display:block;font-weight:500;font-size:15px;line-height:1.25;padding:0 6px}
.person__co{display:block;color:var(--muted);font-size:13.5px;padding:0 6px}
.person .meta{padding:0 6px 0 0;margin-left:-5px;color:var(--muted)}
.person .badge{position:absolute;top:16px;left:16px}
a.person:hover b{text-decoration:underline;text-underline-offset:3px}
@media (min-width:720px){.ppl{grid-auto-columns:30%}.ppl--grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1040px){.ppl{grid-auto-flow:row;grid-template-columns:repeat(6,1fr);overflow:visible}.ppl--grid{grid-template-columns:repeat(4,1fr)}}
.ppl+.ppl,.arch+.ppl{margin-top:var(--gap-tile)}

/* ---------- шорт-лист номинации: группы по категориям ---------- */
.roster{display:grid;gap:var(--s-8)}
.roster__group{scroll-margin-top:var(--s-6)}
.roster__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);padding:0 6px var(--s-2);border-bottom:1.5px solid var(--ink)}
.roster__head h3{font-size:var(--fs-h3)}
.roster__head p{color:var(--muted);font-size:14px}
.roster__list{display:grid;column-gap:var(--s-8)}
.roster__item{display:grid;grid-template-columns:44px 1fr auto;gap:2px 12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line);min-height:64px}
.roster__ava{grid-row:1/3;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--surface-sunk);display:grid;place-items:center;font-size:15px;color:var(--muted);font-weight:500}
.roster__ava img{width:100%;height:100%;object-fit:cover}
.roster__name{font-weight:500;line-height:1.25}
.roster__name a{display:inline-block;padding:13px 0;margin:-13px 0;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.roster__name a:hover{text-decoration-color:currentColor}
.roster__co{grid-column:2;color:var(--muted);font-size:14px;line-height:1.3}
.roster__src{grid-row:1/3;grid-column:3;font-size:12px;color:var(--muted);min-height:var(--tap);min-width:var(--tap);justify-content:flex-end;display:inline-flex;align-items:center;padding:0 4px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media (min-width:720px){.roster__list{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.roster__list{grid-template-columns:repeat(3,1fr)}.roster__head{padding-inline:0}.roster__item{padding-inline:0}}

/* ---------- итоги: победители и лидеры ---------- */
.winners{display:grid;gap:var(--gap-tile)}
.winner{display:grid;background:var(--surface);color:var(--ink);border-radius:var(--r-lg);overflow:hidden}
.winner__pic{position:relative;aspect-ratio:4/3;background:var(--surface-sunk);overflow:hidden}
.winner__pic img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.winner__body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}
.winner__name{font-size:clamp(22px,1vw + 18px,30px);line-height:1.15;font-weight:500}
.winner__body .prose{font-size:16px}
@media (min-width:1040px){.winners{grid-template-columns:1fr 1fr}.winner{grid-template-rows:auto 1fr}.winner__body{padding:var(--s-8)}}
.leaders{display:grid;gap:var(--gap-tile)}
.leader{display:grid;grid-template-columns:96px 1fr;gap:var(--s-4);align-items:start;background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:var(--s-3)}
.leader__pic{width:96px;aspect-ratio:4/5;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunk)}
.leader__pic img{width:100%;height:100%;object-fit:cover}
.leader__body{display:flex;flex-direction:column;gap:6px;padding-top:4px;min-width:0}
.leader__body .label{color:var(--muted)}
.leader__name{font-weight:500;font-size:17px;line-height:1.25}
.leader__name a{display:inline-block;padding:12px 0;margin:-12px 0;text-decoration:underline;text-underline-offset:3px}
.leader__body p{font-size:14px;color:var(--muted);line-height:1.45}
.leader--all{grid-template-columns:1fr;align-content:end;background:transparent;box-shadow:inset 0 0 0 1.5px var(--line);padding:var(--s-5);min-height:140px}
.leader--all b{font-size:20px;font-weight:500}
@media (min-width:720px){.leaders{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.leaders{grid-template-columns:repeat(3,1fr)}.leader{grid-template-columns:112px 1fr}.leader__pic{width:112px}}

/* ---------- текстовая колонка с боковой панелью ---------- */
.article{display:grid;gap:var(--s-8)}
.article__aside{display:grid;gap:var(--gap-tile);align-content:start}
@media (min-width:1040px){.article{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s-12)}.article__aside{position:sticky;top:var(--s-6)}}

/* цифры итогов */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-tile)}
.stat{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:var(--s-4) var(--s-5);display:grid;gap:2px}
.stat__n{font-family:var(--font-accent);font-style:italic;font-size:clamp(30px,1.6vw + 24px,44px);line-height:1.05}
.stat__l{font-size:14px;color:var(--muted);line-height:1.3}
@media (min-width:1040px){.stats{grid-template-columns:repeat(4,1fr)}}

/* ---------- источники и ссылки ---------- */
.sources{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:var(--s-4) var(--s-5)}
.sources h2,.sources h3{font-size:var(--fs-label);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:var(--s-2)}
.sources li a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);min-height:56px}
.sources li:first-child a{border-top:0}
.sources b{font-weight:500;line-height:1.3}
.sources span{grid-column:1;font-size:13px;color:var(--muted)}
.sources i{grid-row:1/3;grid-column:2;font-style:normal;color:var(--muted)}
.sources a:hover b{text-decoration:underline;text-underline-offset:3px}

/* ---------- галерея: сетка превью; увеличение — <dialog> (единственный JS сайта, кроме темы) ---------- */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.gallery a{display:block;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-sunk)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.gallery a:hover img{transform:scale(1.03)}
.gallery a:first-child{grid-column:span 2;aspect-ratio:16/10}
@media (min-width:720px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1040px){.gallery{grid-template-columns:repeat(5,1fr);gap:var(--gap-tile)}.gallery a:first-child{grid-row:span 2;aspect-ratio:auto}}
.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100%;height:100%}
.lightbox::backdrop{background:var(--scrim)}
.lightbox[open]{display:grid;grid-template-rows:auto 1fr auto;place-items:center}
.lightbox img{max-width:min(96vw,1400px);max-height:78vh;width:auto;height:auto;border-radius:var(--r-md)}
.lightbox__bar{display:flex;gap:var(--s-2);justify-content:center;padding:var(--s-3);width:100%}
.lightbox__bar .icon-btn{background:var(--c-white);color:var(--c-ink)}
.lightbox__count{color:var(--c-white);font-size:14px;min-height:var(--tap);display:inline-flex;align-items:center;padding:0 var(--s-3)}

/* ---------- примечание ---------- */
.note{display:flex;gap:var(--s-3);align-items:flex-start;background:var(--c-cream);color:var(--c-ink);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:14px;line-height:1.45}
.note b{font-weight:500}

/* ---------- профиль номинанта ---------- */
.profile{display:grid;gap:var(--gap-tile);margin-top:var(--s-3)}
.profile__pic{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--surface-sunk)}
.profile__pic img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.profile__pic .haze{--haze-w:115%}
.profile__main{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}
.profile__name{font-size:var(--fs-h1);line-height:1.08;font-weight:500;letter-spacing:-.01em}
.profile__co{font-size:var(--fs-lead);color:var(--muted)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-size:15px;border-top:1px solid var(--line);padding-top:var(--s-4)}
.facts dt{color:var(--muted)}
.facts dd{font-weight:500}
@media (min-width:1040px){.profile{grid-template-columns:5fr 7fr}.profile__pic{aspect-ratio:auto;min-height:560px}.profile__main{padding:var(--s-10)}}

/* ---------- полоса «О нас» ---------- */
.band{display:grid;background:var(--surface);color:var(--ink);border-radius:var(--r-lg);overflow:hidden}
.band__txt{padding:24px 20px;display:flex;flex-direction:column;gap:16px}
.band__q{font-size:24px;line-height:1.28}
.band__pic{position:relative;aspect-ratio:4/3;overflow:hidden;order:-1}
.band__pic>img{width:100%;height:100%;object-fit:cover}
.band__pic .photo-mark{height:30px;top:16px;right:18px}
@media (min-width:1040px){
  .band{grid-template-columns:5fr 7fr}
  .band__txt{padding:44px 40px}
  .band__q{font-size:34px}
  .band__pic{order:0;aspect-ratio:auto;min-height:100%;--haze-w:95%}
}
.rows a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;min-height:56px;padding:9px 0;border-top:1px solid var(--line)}
.rows b{font-weight:500}
.rows span{font-size:13px;color:var(--muted);grid-column:1}
.rows i{font-style:normal;font-weight:500;font-variant-numeric:tabular-nums;grid-row:1/3;grid-column:2}

/* ---------- вакансии ---------- */
.jobs{display:grid;column-gap:var(--s-8)}
.jobs a{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 6px;border-top:1px solid var(--line);min-height:64px}
.jobs b{font-weight:500;font-size:17px;line-height:1.25}
.jobs .meta{color:var(--muted);grid-column:1}
.jobs i{font-style:normal;font-weight:500;font-variant-numeric:tabular-nums;grid-row:1/3;grid-column:2;align-self:center;white-space:nowrap}
@media (min-width:1040px){.jobs{grid-template-columns:1fr 1fr}.jobs a{padding:16px 0}}

/* ---------- для бизнеса ---------- */
.biz{border-radius:var(--r-lg);padding:26px 20px;color:var(--c-ink);display:grid;gap:18px;position:relative;overflow:hidden;margin-top:var(--section-gap)}
.biz .label{opacity:.72}
.biz__title{font-size:var(--fs-h2);line-height:1.1;font-weight:500;max-width:16em}
.biz__lede{font-size:16px;max-width:40em;color:var(--tile-muted)}
.offers{display:grid}
.offers>div{padding:14px 0;border-top:1px solid rgba(29,29,27,.18);display:grid;gap:4px}
.offers b{font-weight:500;font-size:18px}
.offers p{font-size:14px;color:var(--tile-muted)}
.biz .btn{justify-self:start}
@media (min-width:1040px){
  .biz{padding:48px;gap:24px}
  .offers{grid-template-columns:repeat(3,1fr)}
  .offers>div{border-top:0;border-left:1px solid rgba(29,29,27,.18);padding:4px 24px}
  .offers>div:first-child{border-left:0;padding-left:0}
}

/* ---------- подвал ---------- */
.ft{margin-top:var(--s-12);padding-block:22px 28px;border-top:1px solid var(--line);display:grid;gap:18px;font-size:14px}
.ft__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ft__cols{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}
.ft h2{margin-bottom:2px;font-size:var(--fs-label);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:500}
.ft__cols a{display:flex;align-items:center;min-height:var(--tap)}
.ft__cols a:hover{text-decoration:underline;text-underline-offset:3px}
.ft__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;color:var(--muted);font-size:13px}
.ft__bottom a{min-height:var(--tap);display:inline-flex;align-items:center}
@media (min-width:1040px){
  .ft{margin-top:var(--s-24);grid-template-columns:1fr 3fr;column-gap:var(--s-6);padding-block:32px 36px}
  .ft__top{flex-direction:column;align-items:flex-start;justify-content:flex-start;align-self:start;gap:16px}
  .ft__cols{grid-template-columns:repeat(4,1fr)}
  .ft__bottom{grid-column:1/-1}
}

/* ---------- раскладка «рядом»: 1 → 2 (→ 3) колонки ---------- */
.split{display:grid;gap:var(--gap-tile)}
@media (min-width:720px){.split{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.split--3{grid-template-columns:repeat(3,1fr)}.split--4{grid-template-columns:repeat(4,1fr)}}

/* ---------- таблица оценок (номинации с оценками по параметрам: районы, семейные места) ---------- */
.scorecards{display:grid;gap:var(--gap-tile);grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:start}
.scorecards>li{scroll-snap-align:start}
@media (min-width:720px){.scorecards{grid-auto-flow:row;grid-template-columns:1fr 1fr;overflow:visible}}
@media (min-width:1040px){.scorecards{grid-template-columns:repeat(4,1fr)}}
.scorecard.scorecard--sum{background:var(--c-lemon);color:var(--c-ink);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}
.scorecard--sum .more{margin-top:auto}
.scorecard--sum .num{font-size:56px;line-height:1}
.scorecard{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
/* шапка одинаковой высоты у всех карточек: подпись — 2 строки, имя победителя — 2 строки */
.scorecard__top{background:url(../img/brand/mesh-orange.jpg) center/cover no-repeat,var(--c-peach);color:var(--c-ink);padding:var(--s-4) var(--s-5) var(--s-5);display:grid;gap:6px}
.scorecard__top .label{min-height:2.6em;align-items:flex-start}
.scorecard__top .label{opacity:.75}
.scorecard__win{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3);min-height:calc(2 * 30px * 1.05)}
.scorecard__win b{font-family:var(--font-accent);font-style:italic;font-weight:400;font-size:30px;line-height:1.05}
.scorecard__win span{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.scorecard__note{font-size:13px;color:var(--tile-muted);line-height:1.4}
.scorecard ol{padding:var(--s-3) var(--s-5) var(--s-4);display:grid;gap:2px}
.scorecard li{display:grid;grid-template-columns:22px 1fr auto;gap:2px 10px;align-items:center;font-size:14.5px;padding:5px 0}
.scorecard li>span:first-child{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
.scorecard li b{font-weight:500;font-variant-numeric:tabular-nums}
.bar{grid-column:2/4;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--ink);border-radius:2px}
.scorecard li.is-hl .bar i{background:var(--c-ink)}
.scorecard li.is-hl{background:var(--c-lemon);color:var(--c-ink);margin-inline:-8px;padding-inline:8px;border-radius:var(--r-xs)}
.scorecard li.is-hl>span:first-child{color:var(--c-ink)}
.scorecard li.is-hl .bar{background:rgba(29,29,27,.15)}

/* матрица: все районы × все параметры; на телефоне — прокрутка с закреплённой первой колонкой */
.matrix{overflow-x:auto;background:var(--surface);border-radius:var(--r-lg);-webkit-overflow-scrolling:touch}
.matrix table{width:100%;min-width:760px;font-size:14px;font-variant-numeric:tabular-nums}
.matrix caption{caption-side:top;text-align:left;padding:var(--s-4) var(--s-5) var(--s-2);font-size:13px;color:var(--muted)}
.matrix th,.matrix td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.matrix thead th{font-weight:500;font-size:12px;letter-spacing:.04em;color:var(--muted);vertical-align:bottom;white-space:normal;min-width:84px;line-height:1.25}
.matrix th[scope=row]{text-align:left;font-weight:500;position:sticky;left:0;background:var(--surface);z-index:1}
.matrix th[scope=row] span{display:flex;align-items:center;gap:10px}
.matrix th[scope=row] img{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none}
.matrix thead th:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1}
.matrix tbody tr:last-child>*{border-bottom:0}
.matrix td.top{background:var(--c-lemon);color:var(--c-ink);font-weight:700}
.matrix td.low{color:var(--muted)}
.matrix tr.is-win th[scope=row]{color:var(--ink)}
.matrix tr.is-win th[scope=row]::after{content:"победитель";margin-left:8px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;background:var(--c-lemon);color:var(--c-ink);padding:3px 6px;border-radius:var(--r-xs);font-weight:500}


/* ---------- команда ---------- */
.team{display:grid;gap:var(--gap-tile);grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.team>li{scroll-snap-align:start;background:var(--surface);border-radius:var(--r-lg);padding:8px 8px 18px;display:flex;flex-direction:column;gap:8px}
.team__pic{aspect-ratio:4/5;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunk)}
.team__pic img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.team b{font-size:18px;font-weight:500;padding:4px 8px 0}
.team .label{color:var(--muted);padding:0 8px}
.team p{font-size:14.5px;line-height:1.45;padding:0 8px}
.team .meta{color:var(--muted);padding:0 8px 0 0;margin-left:-3px;margin-top:auto}
@media (min-width:720px){.team{grid-auto-columns:44%}}
@media (min-width:1040px){.team{grid-auto-flow:row;grid-template-columns:repeat(5,1fr);overflow:visible}}

/* ---------- форматы сотрудничества: текстовый список в две колонки ---------- */
.formats{display:grid;column-gap:var(--s-8)}
.formats li{padding:14px 6px;border-top:1px solid var(--line);display:grid;gap:2px}
.formats b{font-weight:500;font-size:17px}
.formats span{color:var(--muted);font-size:15px;line-height:1.4}
@media (min-width:720px){.formats{grid-template-columns:1fr 1fr}}
@media (min-width:1040px){.formats li{padding-inline:0}}
.contact{display:grid;gap:var(--s-3)}

/* ---------- плашка языка (показывает js/lang.js) ---------- */
.langbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;padding:8px var(--gutter);background:var(--c-lemon);color:var(--c-ink);font-size:15px}
.langbar[hidden]{display:none}
.langbar .icon-btn{background:transparent;color:var(--c-ink)}

/* ---------- плитка номинации в разделе рейтинга: две ссылки внутри ---------- */
.nom h3 a{text-decoration:none}
.nom h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}   /* вся плитка кликабельна */
.nom h3 a:focus-visible{outline:none;box-shadow:none}
.nom:focus-within{outline:3px solid var(--focus);outline-offset:3px}
.nom__links{position:relative;z-index:1;display:flex;gap:14px;font-size:14px;font-weight:500}
.nom__links a{min-height:var(--tap);min-width:var(--tap);display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.nom--final,.nom--wide{grid-column:span 2}
@media (min-width:720px){.nom--final{grid-column:span 1}.nom--wide{grid-column:span 3}}
@media (min-width:1040px){.nom--final,.nom--wide{grid-column:span 2}}
